
.crsw-wrap,
.crsw-wrap * {
    box-sizing: border-box;
}

.crsw-wrap {
    --crsw-accent: #ff6500;
    --crsw-accent-2: #ff8533;
    --crsw-card: rgba(15,15,15,.82);
    --crsw-border: rgba(255,255,255,.09);
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 20px 70px;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    background: transparent;
}

.crsw-hero {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    margin-bottom:35px;
}

.crsw-eyebrow {
    display:block;
    color:var(--crsw-accent);
    font-size:10px;
    font-weight:800;
    letter-spacing:2px;
    margin-bottom:6px;
}

.crsw-hero h1 {
    margin:0;
    color:#fff;
    font-size:clamp(46px,7vw,78px);
    font-weight:900;
    letter-spacing:-4px;
    line-height:1;
}

.crsw-hero h1 span {
    color:var(--crsw-accent);
}

.crsw-hero p {
    max-width:650px;
    color:#8c8c8c;
    line-height:1.7;
    margin:18px 0 0;
}

.crsw-hero-icon {
    width:105px;
    height:105px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--crsw-accent);
    font-size:42px;
    border:1px solid rgba(255,101,0,.25);
    background:rgba(255,101,0,.06);
    box-shadow:0 0 70px rgba(255,101,0,.10);
}

.crsw-toolbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    margin-bottom:15px;
}

.crsw-primary,
.crsw-submit {
    border:0;
    cursor:pointer;
    background:var(--crsw-accent);
    color:#fff;
    border-radius:7px;
    font-weight:800;
    transition:.2s;
}

.crsw-primary {
    min-height:48px;
    padding:0 18px;
}

.crsw-submit {
    padding:13px 18px;
}

.crsw-primary:hover,
.crsw-submit:hover {
    background:var(--crsw-accent-2);
    transform:translateY(-2px);
}

.crsw-primary:disabled,
.crsw-submit:disabled {
    opacity:.5;
    cursor:not-allowed;
    transform:none;
}

.crsw-status {
    color:#8d8d8d;
    font-size:12px;
}

.crsw-status.open:before {
    content:"●";
    color:#43c463;
    margin-right:6px;
}

.crsw-status.closed:before {
    content:"●";
    color:#d35a5a;
    margin-right:6px;
}

.crsw-form-panel {
    padding:27px;
    margin-bottom:30px;
    border-radius:12px;
    background:rgba(12,12,12,.87);
    border:1px solid rgba(255,101,0,.20);
    backdrop-filter:blur(15px);
}

.crsw-form-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:22px;
}

.crsw-form-head h2,
.crsw-list-head h2 {
    margin:0;
    color:#fff;
}

.crsw-icon-btn {
    width:38px;
    height:38px;
    border:1px solid #333;
    border-radius:6px;
    background:#171717;
    color:#aaa;
    cursor:pointer;
    font-size:22px;
}

.crsw-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
}

.crsw-grid label > span {
    display:block;
    margin-bottom:8px;
    color:#ccc;
    font-size:11px;
    font-weight:700;
}

.crsw-grid input {
    width:100%;
    height:50px;
    padding:0 14px;
    border:1px solid #363636;
    border-radius:7px;
    outline:0;
    background:#171717;
    color:#fff;
}

.crsw-grid input:focus {
    border-color:var(--crsw-accent);
    box-shadow:0 0 0 3px rgba(255,101,0,.08);
}

.crsw-message {
    margin-top:13px;
    font-size:12px;
}

.crsw-message.success { color:#5fd378; }
.crsw-message.error { color:#ff7070; }

.crsw-list-head {
    margin-top:35px;
    margin-bottom:14px;
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:15px;
}

.crsw-list-count {
    color:#777;
    font-size:11px;
}

.crsw-list-count strong {
    color:#fff;
}

.crsw-sort {
    display:flex;
    gap:7px;
    margin-bottom:14px;
}

.crsw-sort button {
    padding:8px 12px;
    cursor:pointer;
    border:1px solid #292929;
    border-radius:6px;
    background:rgba(15,15,15,.70);
    color:#777;
}

.crsw-sort button.active {
    border-color:rgba(255,101,0,.4);
    background:rgba(255,101,0,.08);
    color:var(--crsw-accent);
}

.crsw-song-list {
    display:flex;
    flex-direction:column;
    gap:8px;
}

.crsw-song {
    position:relative;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:14px;
    min-height:72px;
    padding:13px 15px 13px 20px;
    border:1px solid rgba(255,255,255,.06);
    border-radius:9px;
    background:rgba(20,20,20,.82);
    overflow:hidden;
}

.crsw-song:before {
    content:"";
    position:absolute;
    left:0; top:0; bottom:0;
    width:4px;
    background:var(--crsw-accent);
}

.crsw-song.played {
    opacity:.45;
}

.crsw-song.played .crsw-song-name {
    text-decoration:line-through;
}

.crsw-song-main {
    min-width:0;
}

.crsw-song-name {
    display:block;
    color:#fff;
    font-size:14px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.crsw-song-meta {
    margin-top:5px;
    color:#666;
    font-size:10px;
}

.crsw-vote {
    min-width:68px;
    height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid #303030;
    border-radius:7px;
    background:#171717;
    color:#888;
    cursor:pointer;
    transition:.2s;
}

.crsw-vote:hover:not(:disabled) {
    border-color:var(--crsw-accent);
    color:var(--crsw-accent);
}

.crsw-vote.voted {
    color:var(--crsw-accent);
    border-color:rgba(255,101,0,.35);
    background:rgba(255,101,0,.08);
}

.crsw-vote:disabled {
    cursor:default;
}

.crsw-empty,
.crsw-loading {
    padding:45px 20px;
    border:1px dashed #2c2c2c;
    border-radius:10px;
    text-align:center;
    color:#666;
}

.crsw-info {
    margin-top:20px;
    padding:15px;
    border:1px solid rgba(255,101,0,.16);
    border-radius:8px;
    background:rgba(255,101,0,.045);
    color:#777;
    font-size:11px;
}

@media (max-width:650px) {
    .crsw-wrap { padding:30px 15px 55px; }
    .crsw-hero-icon { display:none; }
    .crsw-grid { grid-template-columns:1fr; }
    .crsw-toolbar,
    .crsw-list-head {
        align-items:flex-start;
        flex-direction:column;
    }
}
