:root{--bg:#f4f1e9;--paper:#fffef9;--ink:#243a32;--muted:#748078;--line:#dedfd3;--orange:#c65d37;--green:#254a3c;--soft:#e9eee6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:7px;padding:10px 14px;font-weight:600;color:var(--ink);background:transparent;transition:background .15s}button:hover{background:var(--soft)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:2px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:#fffefb;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid #a3b9a7}textarea{resize:vertical}header{padding:23px 3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:20px;letter-spacing:2px;font-weight:800}.brand-light{font-weight:400}.brand small{font-size:8px;display:block;letter-spacing:2.4px;margin-top:1px}.logo{font-size:41px;line-height:1;color:var(--orange)}nav{display:flex;gap:6px}.nav{font-size:13px;font-weight:500;color:var(--muted)}.nav.active{background:var(--green);color:white}.local-badge{font-size:9px;letter-spacing:1.5px;white-space:nowrap;display:flex;align-items:center;gap:7px}.local-badge i{width:6px;height:6px;border-radius:100%;background:#6e8a51}main{padding:34px 3% 50px;max-width:1900px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:var(--muted)}h1{font:normal 54px/1.1 Georgia,serif;margin:8px 0 10px;letter-spacing:-1.5px}.masthead p{margin:0;color:var(--muted);font-size:13px}.station-symbol{font-size:40px;letter-spacing:8px;color:var(--orange);padding-right:22px;opacity:.85}.workflow{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:24px;gap:50px;font-size:11px;color:var(--muted)}.workflow b{color:var(--orange);margin-right:10px;font-size:10px}.desk-grid{display:grid;grid-template-columns:minmax(290px,1.1fr) minmax(300px,1fr) minmax(280px,.9fr);gap:18px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 3px 8px #243a3203}.panel-head{padding:22px 20px 17px;display:flex;align-items:center;justify-content:space-between;gap:5px}h2{font:normal 25px/1.2 Georgia,serif;margin:5px 0 0;letter-spacing:-.5px}.count{font:11px 'Segoe UI',sans-serif;border:1px solid var(--line);border-radius:20px;padding:3px 7px;vertical-align:middle;margin-left:5px}.quiet{font-size:11px;padding:7px 9px;color:var(--muted);white-space:nowrap}.primary{background:var(--orange);color:white}.primary:hover{background:#ac4b2c}.secondary{background:var(--green);color:white}.secondary:hover{background:#37604f}.filters{padding:0 20px 18px}.filter-row{display:flex;gap:8px;margin-top:9px}.filter-row label:first-child{flex:1}.filter-row label:last-child{width:125px}.filter-row select{font-size:11px;padding:8px}.search-label input{font-size:12px}.library{max-height:590px;overflow:auto}.track{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid #eeeee5}.track:hover{background:#f4f5ee}.cover{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:5px;background:#e5e8dd;color:#8b9879;font:17px Georgia,serif}.track-info{min-width:0;flex:1}.track-title{font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-meta{color:var(--muted);font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-add{font-size:20px;border:1px solid var(--line);padding:0;width:27px;height:27px;line-height:23px;border-radius:100%;color:var(--green)}.length{font-size:10px;color:var(--muted);white-space:nowrap}.unavailable{font-size:9px;color:#b07947}.pagination{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:10px;font-size:10px;color:var(--muted)}.queue-summary{display:flex;justify-content:space-between;padding:10px 20px;background:#f0f2e9;font-size:10px;color:var(--muted)}#queue{min-height:230px;max-height:565px;overflow:auto}.queue-item{display:flex;align-items:center;gap:9px;padding:15px;border-bottom:1px solid #eeeee5;cursor:pointer;border-left:3px solid transparent}.queue-item:hover{background:#f4f5ee}.queue-item.selected{border-left-color:var(--orange);background:#f6eee3}.queue-number{font-size:11px;color:var(--muted);width:17px}.queue-item .track-title{white-space:normal}.queue-buttons{display:flex;flex-direction:column;gap:1px}.queue-buttons button{padding:0 4px;font-size:11px;color:var(--muted);line-height:15px}.status{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--orange);margin-top:5px}.queue-actions{padding:18px 17px 0;display:flex;gap:8px}.queue-actions button{flex:1;font-size:11px;padding:11px 6px}.footnote{font-size:10px;color:var(--muted);line-height:1.7;margin:14px 20px 20px}.empty{text-align:center;padding:45px 25px;color:var(--muted);font-size:12px}.empty h3{color:var(--ink);font:22px Georgia,serif}.empty-icon{font-size:38px;color:var(--orange)}.editor-content{padding:0 20px 20px}.editor-content h3{font:23px Georgia,serif;margin:4px 0}.editor-content .track-meta{white-space:normal;margin-bottom:18px}.editor-label{display:flex;justify-content:space-between;align-items:center;margin:20px 0 8px;font-size:10px;letter-spacing:1px;font-weight:600}.source{background:#f4f5ee;padding:12px;border-radius:6px;margin-bottom:10px}.source label{display:flex;gap:7px;font-size:11px;font-weight:600;align-items:start}.source input{width:auto;margin-top:3px}.source a{color:var(--green);text-decoration:underline;font-size:10px}.source p{font-size:10px;line-height:1.65;color:var(--muted);max-height:120px;overflow:auto}.source-provider{font-size:8px;color:var(--orange);margin-top:7px;letter-spacing:1px}.editor-content textarea{font-size:12px;line-height:1.8;min-height:160px}.editor-save{width:100%;margin-top:10px}.warning{font-size:11px;color:#9b5e38}.job{background:var(--green);color:#fff;border-radius:8px;padding:13px 18px;margin-bottom:18px;font-size:12px;display:flex;justify-content:space-between;gap:12px}.job.error{background:#894a37}.job.done{background:#e3eadc;color:var(--green)}.job button{font-size:10px;padding:0 6px;color:inherit}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:20px;max-width:1100px}.settings-card{padding:25px}.settings-card label{display:block;font-size:11px;margin-top:18px;font-weight:600}.settings-card input,.settings-card textarea{margin-top:6px;font-size:12px;font-weight:400}.settings-card .footnote{margin:14px 0}.settings-actions{display:flex;gap:12px;margin-top:24px}.connection-note{font-size:11px;padding:8px;background:var(--soft);border-radius:5px}.danger{color:#a94f34}.section-intro{margin:10px 0 25px}.section-intro p{color:var(--muted)}.show-card{max-width:900px;padding:25px;margin-bottom:16px}.show-card audio{width:100%;margin:18px 0}.show-card .show-actions{display:flex;gap:12px;align-items:center}.show-card p{color:var(--muted);font-size:12px}.show-card .published{color:var(--green);font-size:11px}footer{display:flex;justify-content:space-between;padding:20px 3%;border-top:1px solid var(--line);font-size:8px;letter-spacing:1.7px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 22px;border-radius:8px;max-width:90%;z-index:20;box-shadow:0 5px 20px #0002;font-size:12px}#login{min-height:100vh;display:grid;place-items:center}#login form{max-width:450px;padding:30px}#login h1{font-size:40px}#login label{display:block;margin:25px 0}#login input{margin-top:7px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(min-width:1550px){.library,#queue{max-height:670px}}@media(max-width:1100px){.desk-grid{grid-template-columns:1fr 1fr}.editorial{grid-column:1/-1}.local-badge{display:none}.workflow{gap:25px}.station-symbol{font-size:30px}}@media(max-width:650px){header{flex-wrap:wrap;padding:16px 5%;gap:17px}nav{width:100%}.nav{flex:1;font-size:11px}main{padding:25px 4%}.masthead{margin-bottom:20px}h1{font-size:43px}.station-symbol{display:none}.workflow{gap:10px;justify-content:space-between;font-size:9px}.workflow b{display:block;margin-bottom:3px}.desk-grid,.settings-grid{grid-template-columns:1fr}.editorial{grid-column:auto}.library{max-height:350px}#queue{max-height:380px}.masthead p{font-size:11px}.settings-actions{flex-wrap:wrap}footer{font-size:7px;gap:14px}.panel-head{padding:18px}h2{font-size:23px}}

.station-player{padding:20px 25px;margin-bottom:24px}.station-player h2{font-size:23px;margin:7px 0}.station-player p{font-size:12px;color:var(--muted)}.station-controls{display:flex;gap:10px;flex-wrap:wrap}.station-player audio{width:100%;margin-top:15px}.station-player .footnote{margin:10px 0 0}.playlist-entries{max-height:230px;overflow:auto;font-size:12px;line-height:1.9;padding-left:23px}.playlist-entries .dj{color:var(--orange)}details summary{cursor:pointer;margin:24px 0;color:var(--muted)}

.queue-item.frozen{background:#edf0e9}.freeze-boundary{padding:10px 16px;background:#254a3c;color:white;font-size:9px;letter-spacing:1px}.commit-bar{padding:15px 18px 0}.commit-bar button{width:100%;font-size:11px}.commit-bar p{font-size:10px;color:var(--muted);line-height:1.6}
.dj-panel{padding:22px 25px;margin-bottom:24px}.dj-panel h2{margin:5px 0 10px}.dj-panel label{display:block;margin-bottom:14px}.dj-fields{display:grid;grid-template-columns:2fr 2fr 1fr;gap:15px}.dj-panel .footnote{color:var(--muted);font-size:12px}@media(max-width:700px){.dj-fields{grid-template-columns:1fr}.dj-panel{padding:18px}}
.dj-management{display:grid;grid-template-columns:1fr 1fr;gap:22px}.dj-card{padding:18px 0;border-bottom:1px solid var(--line)}.dj-card h3{margin:0 0 8px}.dj-card p{white-space:pre-wrap}.dj-card small{display:block;color:var(--muted);margin:10px 0}@media(max-width:800px){.dj-management{grid-template-columns:1fr}}
.station-order{padding-left:24px;max-height:420px;overflow:auto}.station-order li{padding:12px;border-bottom:1px solid var(--line)}.station-order span,.station-order strong,.station-order small{display:block}.station-order span,.station-order small{color:var(--muted);font-size:11px}.station-order .current-item{background:var(--soft)}#clip-preview{width:100%;margin:12px 0}#future-additions>summary{font-size:22px;font-weight:600;margin:20px 0}

.job {display:flex;flex-direction:column;gap:9px}
.job-heading {display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.job-heading span,.job-model,.job-detail {font-size:.85rem;opacity:.8}
.job progress {width:100%;height:16px;accent-color:var(--accent,#d18b44)}
.job progress:indeterminate {opacity:.65}

.dj-break{padding:8px 16px;border-top:1px dashed var(--line);font-size:12px}.dj-break.has-break{background:var(--soft);border-left:4px solid var(--orange)}.dj-break p{margin:5px 0}.dj-break button{font-size:11px;padding:5px 8px}

.album-group{padding:14px 16px 8px;background:var(--soft);border-bottom:1px solid var(--line)}.album-group strong,.album-group span{display:block}.album-group span{font-size:11px;color:var(--muted)}
#plan-results{max-height:320px;overflow:auto;margin:12px 0}#plan-items{margin:12px 0;max-height:600px;overflow:auto}#plan-items input[type=checkbox]{width:auto;margin:0 6px 0 0;padding:0}#plan-items label{display:flex;align-items:center;font-size:12px}#plan-items .track-info{min-width:0}@media(max-width:650px){#plan-items .track{flex-wrap:wrap}#plan-items .track-info{flex-basis:100%}}

@media(max-width:650px){nav{flex-wrap:wrap}.nav{flex:1 1 28%;white-space:nowrap}}

.job {position:relative;padding-right:48px}
.job .job-dismiss {position:absolute;top:8px;right:8px;width:32px;height:32px;padding:0;font-size:24px;line-height:1;border-radius:5px}
.job .job-dismiss:hover {background:#ffffff26}

.station-queue {padding:14px 18px;margin-bottom:18px}
.station-queue h2 {font-size:18px;margin:0 0 8px}
:is(.station-queue,.onair-main) .station-order {list-style:none;padding:0;margin:0;max-height:260px;overflow:auto}
.station-queue-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
:is(.station-queue,.onair-main) .station-order li {display:grid;grid-template-columns:28px minmax(0,1fr) 44px auto auto;align-items:center;gap:10px;padding:6px 8px}
:is(.station-queue,.onair-main) .queue-track {min-width:0}
:is(.station-queue,.onair-main) .queue-track strong {font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(.station-queue,.onair-main) .queue-track small {font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(.station-queue,.onair-main) .queue-position,:is(.station-queue,.onair-main) .queue-duration {font-size:11px;font-variant-numeric:tabular-nums}
:is(.station-queue,.onair-main) .queue-duration {text-align:right}
:is(.station-queue,.onair-main) .station-order button {padding:4px 8px;font-size:11px}

#android-playlists{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:16px 0;max-height:320px;overflow:auto}#android-playlists label{display:flex;align-items:center;gap:10px;padding:8px;background:var(--soft);border-radius:6px}#android-playlists input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}

.album-results{margin:12px 0 18px}.album-results-heading{display:flex;justify-content:space-between;align-items:end;padding:12px 14px;background:var(--soft);border-radius:7px 7px 0 0}.album-results-heading p{font-size:11px;color:var(--muted);margin:4px 0 0}.album-result{padding:14px;border:1px solid var(--line);border-top:0;background:var(--paper)}.album-result:last-child{border-radius:0 0 7px 7px}.album-result-title strong,.album-result-title span{display:block}.album-result-title span{font-size:11px;color:var(--muted)}.album-result-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:10px}.album-result-actions label{font-size:10px;font-weight:600}.album-result-actions select{display:block;margin-top:3px;padding:7px;min-width:120px}.album-result-actions button{font-size:11px;padding:8px 10px}@media(max-width:650px){.album-result-actions>*{flex:1 1 45%}.album-result-actions label select{width:100%}}

.dj-personality{margin:10px 0}.dj-personality summary{cursor:pointer;color:var(--muted);font-size:12px}.dj-personality p{white-space:pre-wrap;overflow-wrap:anywhere}

#dj-modal{width:min(780px,94vw);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);padding:0;box-shadow:0 20px 80px #0004}#dj-modal::backdrop{background:#13251dcc}.dj-modal-close{float:right;font-size:26px;line-height:1}#dj-modal textarea{min-height:240px}#dj-modal label{display:block;margin:16px 0}
.dj-assets{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:18px 0}.dj-asset{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.dj-asset .footnote{margin:6px 0 10px}.dj-asset [role=status]{margin:8px 0 0}.dj-asset img{width:112px;height:112px;flex:0 0 112px;object-fit:cover;border-radius:12px;background:var(--line)}

body{padding-bottom:58px}.job.status-footer{position:fixed;bottom:0;left:0;right:0;z-index:30;margin:0;border-radius:0;padding:8px 18px;display:block;box-shadow:0 -2px 12px #0002;font-size:11px}.status-footer-row{display:flex;align-items:center;gap:12px;min-height:24px}.status-footer-label{font-size:9px;letter-spacing:1px;white-space:nowrap}.status-footer-message{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job.status-footer progress{width:100px;height:5px;flex-shrink:0}.status-footer button{padding:2px 8px;font-size:18px;color:inherit}#job-details{max-height:25vh;overflow:auto;border-top:1px solid #ffffff40;margin-top:8px;padding:10px 0}#job-details p{margin:5px 0}#toast{bottom:66px}@media(max-width:650px){.job.status-footer{padding:7px 10px}.status-footer-label{display:none}.job.status-footer progress{width:60px}}

.dj-management{grid-template-columns:1fr}.dj-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:3px;padding:12px 0}.dj-card h3{grid-column:1;grid-row:1;margin:0;font-size:15px;line-height:1.3}.dj-card small{grid-column:1;grid-row:2;margin:0;font-size:11px;overflow-wrap:anywhere}.dj-card>button{grid-column:2;grid-row:1 / 3;padding:7px 12px;font-size:12px}.dj-card .dj-personality{grid-column:1 / -1;grid-row:3;margin:2px 0 0}.dj-card .dj-personality summary{margin:0;font-size:11px}.dj-card .dj-personality p{margin:8px 0 2px;font-size:12px;line-height:1.5}.dj-card:last-child{border-bottom:0}

.dj-card-actions{grid-column:2;grid-row:1 / 3;display:flex;align-items:center;gap:4px}.dj-card-actions .secondary{font-size:12px;padding:7px 12px}.dj-card-actions .quiet{font-size:11px;padding:7px}

.dj-transfer .footnote{margin:8px 0 18px}.dj-transfer-controls{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.dj-export-controls{display:flex;gap:8px;align-items:center;flex:1;min-width:240px;max-width:500px}.dj-export-controls select{min-width:0;flex:1}.dj-transfer a.secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap;padding:10px 14px;border:1px solid transparent;border-radius:7px;font-weight:600;font-size:14px}.dj-transfer-controls>button{white-space:nowrap}@media(max-width:650px){.dj-transfer-controls{gap:12px}.dj-transfer-controls>button,.dj-export-controls{width:100%;max-width:none}.dj-export-controls{min-width:0}}

.dj-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:3px}.dj-card .dj-avatar{grid-column:1;grid-row:1/3;width:48px;height:48px;overflow:hidden;display:grid;place-items:center;border-radius:8px;background:var(--soft);color:var(--muted);font-size:14px;font-weight:700}.dj-card .dj-avatar img{display:block;width:100%;height:100%;object-fit:contain}.dj-card h3{grid-column:2;grid-row:1;margin:0;font-size:16px;line-height:1.3}.dj-card small{grid-column:2;grid-row:2;margin:0;font-size:11px;overflow-wrap:anywhere}.dj-card .dj-card-actions{grid-column:3;grid-row:1/3;display:flex;align-items:center;gap:4px}.dj-card .dj-personality{grid-column:1/-1;grid-row:3;margin:2px 0 0}.dj-card .dj-personality summary{margin:0;font-size:11px}.dj-card .dj-personality p{margin:8px 0 2px;font-size:12px;line-height:1.5}@media(max-width:650px){.dj-card{grid-template-columns:44px minmax(0,1fr) auto}.dj-card .dj-avatar{width:40px;height:40px}.dj-card .dj-card-actions .secondary{font-size:11px;padding:7px 8px}.dj-card .dj-card-actions .quiet{font-size:10px;padding:7px 6px}}

a.nav{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:7px;padding:10px 14px}a.nav:hover{background:var(--soft)}a.nav.active:hover{background:var(--green)}

.device-panel{margin-bottom:18px}.device-panel .panel-head{margin-bottom:4px}.device-list{display:grid;gap:8px;margin:12px 0 18px}.device-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--soft);border-radius:7px}.device-row strong,.device-row small{display:block}.device-row small{font-size:11px;color:var(--muted);margin-top:3px}.device-indicator{width:10px;height:10px;border-radius:50%;background:#9ca3af;flex:none}.device-indicator.connected{background:#31a36a;box-shadow:0 0 0 3px #31a36a22}.device-connect{border-top:1px solid var(--line);padding-top:12px}.device-connect summary{cursor:pointer;font-weight:650}.device-connect-body{max-width:540px}.device-connect-body p{font-size:13px;color:var(--muted)}

.server-status-panel progress{width:100%;height:6px;accent-color:var(--accent,#9be2c2)}
.server-status-panel>.panel-head{padding:0;margin-bottom:18px;border-bottom:0}
#server-work{margin:0;padding:12px 14px;background:var(--soft);border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#server-work p{margin:0;font-size:12px}
#storage-panel{margin-top:18px}
.storage-sizes{width:100%;border-collapse:collapse;font-size:12px;margin:6px 0 16px}
.storage-sizes td{padding:5px 8px;border-bottom:1px solid var(--line)}
.storage-sizes td:nth-child(n+2){text-align:right;white-space:nowrap;color:var(--muted)}
.storage-cleanup{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}
.storage-cleanup .footnote{margin:4px 0}
.storage-result{font-size:12px;margin:4px 0 0}
.storage-actions{display:flex;gap:8px;flex-shrink:0}
#storage-panel #storage-cleanup{margin-top:14px}
#server-video{margin:10px 0 0;padding:12px 14px;background:var(--soft);border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#server-video h3{margin:0 0 4px;font-size:13px}
#server-video p{margin:0;font-size:12px}
#server-video progress{width:100%;margin-top:8px}
#server-work p+p{margin-top:6px}
#server-work h3{margin:0 0 6px;font:600 13px/1.5 'Segoe UI',sans-serif}
#server-work .footnote{font-size:11px}
#server-work h4{margin:10px 0 4px;font-size:11px;color:var(--muted)}
#server-job-activity{margin:0;padding-left:18px;color:var(--muted);font-size:11px}
#server-job-activity li+li{margin-top:3px}
#server-job-activity time{font-variant-numeric:tabular-nums}
#server-work progress{display:block;margin:10px 0 6px}
.server-status-panel>#server-cancel{margin-top:12px}
.server-status-panel>.footnote{margin:12px 0 0}
#android-playlists{display:block;max-height:360px;margin:6px 0 16px;font-size:12px}
#android-playlists label.android-playlist-item{display:flex;align-items:center;gap:7px;margin:0;padding:1px 8px;min-height:22px;border-radius:4px;background:transparent;font-size:12px;line-height:1.25}
#android-playlists label.android-playlist-item:hover{background:var(--soft)}
#android-playlists input{width:13px;height:13px;margin:0}
#android-playlists details{margin:0;padding:0}
#android-playlists summary{cursor:pointer;margin:0;padding:2px 8px;min-height:22px;font-size:12px;line-height:1.25;font-weight:600;border-radius:4px;list-style:none}
#android-playlists summary::-webkit-details-marker{display:none}
#android-playlists summary:hover{background:var(--soft)}
.android-playlist-folder[open]>summary{color:var(--green)}
.android-playlist-children{margin-left:15px;padding-left:8px;border-left:1px solid var(--line)}
.playlist-tree-actions{display:flex;gap:8px;margin-top:10px}
.playlist-tree-actions button{padding:4px 8px;font-size:11px}
.server-indicator{display:inline-flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}.server-indicator::before{content:"";width:8px;height:8px;border-radius:50%;background:#aaa}.server-indicator.online::before{background:#9be2c2}.server-indicator.offline::before{background:#e58b8b}

#android-playlists summary::before{content:"▸";display:inline-block;width:14px;color:var(--muted)}
#android-playlists details[open]>summary::before{content:"▾"}

.connections-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.connections-columns>.dj-panel{min-width:0;margin-bottom:0}
.connections-columns .device-panel>.panel-head{padding:0;margin-bottom:12px}
@media(max-width:900px){.connections-columns{grid-template-columns:1fr}}

#rendered-dj-library{margin-top:28px}.dj-library-search{max-width:560px}.dj-audio-library{max-height:620px;overflow:auto;margin:16px 0 22px}.dj-audio-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,420px);gap:18px;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line)}.dj-audio-info strong,.dj-audio-info span,.dj-audio-info small{display:block}.dj-audio-info span,.dj-audio-info small{color:var(--muted);font-size:12px}.dj-audio-row audio{width:100%;height:38px}@media(max-width:700px){.dj-audio-row{grid-template-columns:1fr;gap:8px}.dj-audio-library{max-height:none}}

.album-track-list{border-top:1px solid var(--line);margin-top:12px}.album-track-list-items{list-style:none;padding:0;margin:0}.album-track-list-items li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--line)}.album-track-list-items li>div{min-width:0}.album-track-list-items strong,.album-track-list-items span{display:block}.album-track-list-items strong{font-size:12px}.album-track-list-items span{font-size:11px;color:var(--muted)}.album-track-list-items button{flex:0 0 auto}.album-track-list-items li:last-child{border-bottom:0}

.server-lifetime{margin:2px 0 12px;color:var(--muted);font-size:12px}.server-status-panel .server-lifetime{font-variant-numeric:tabular-nums}
.dj-audio-row{grid-template-columns:minmax(180px,1fr) minmax(220px,420px) auto}.dj-audio-row .danger{color:var(--orange);border:1px solid var(--line)}.dj-audio-row .danger:hover{background:#f7ebe5}@media(max-width:700px){.dj-audio-row{grid-template-columns:1fr}.dj-audio-row .danger{justify-self:end}}

/* The roster gets a full-width two-column card grid; other DJ tools stay stacked. */
#djs .dj-management{display:block}
#djs .dj-management>.panel{margin-bottom:24px}
#djs #dj-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;align-items:start}
@media(max-width:700px){#djs #dj-list{grid-template-columns:minmax(0,1fr);column-gap:0}}

.dj-prompt-log{grid-column:1/-1;min-width:0;margin:0}.dj-prompt-log summary{margin:0;padding:6px 0;cursor:pointer}.dj-prompt-content pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:440px;overflow:auto;padding:12px;background:var(--cream,#f5f2eb);font-size:12px;line-height:1.5}.dj-prompt-content p{font-size:12px;color:var(--muted)}

:root{--field:#fffefb;--selected:#f6eee3;--cream:#f5f2eb;--action-green:#254a3c}
:root[data-theme="dark"]{color-scheme:dark;--bg:#111814;--paper:#1b2520;--ink:#e5eee8;--muted:#a4b2a8;--line:#35443b;--orange:#e5a16e;--green:#7cbe98;--action-green:#315f49;--soft:#26352c;--field:#18221c;--selected:#392f25;--cream:#202b24}
:root[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:var(--field);color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] .track{border-color:var(--line)}
:root[data-theme="dark"] .nav.active,:root[data-theme="dark"] .secondary,:root[data-theme="dark"] .job:not(.done):not(.error),:root[data-theme="dark"] .freeze-boundary{background:var(--action-green)}
:root[data-theme="dark"] .secondary:hover{background:#3a7052}
:root[data-theme="dark"] .track:hover,:root[data-theme="dark"] .queue-item:hover{background:#202c25}
:root[data-theme="dark"] .cover,:root[data-theme="dark"] .queue-summary,:root[data-theme="dark"] .source,:root[data-theme="dark"] .queue-item.frozen{background:var(--soft);color:var(--ink)}
:root[data-theme="dark"] .queue-item.selected{background:var(--selected)}
:root[data-theme="dark"] .dj-break.has-break{background:var(--soft)}
:root[data-theme="dark"] .job.done{background:#293c30;color:#dcebe0}

:root[data-theme="dark"] #dj-modal{background:var(--paper);color:var(--ink)}
.theme-toggle{flex:none;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;font-size:22px;line-height:1;color:var(--ink);display:grid;place-items:center}
.theme-toggle:hover{background:var(--soft)}
@media(max-width:1100px){.theme-toggle{margin-left:auto}}
#settings-form fieldset{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:14px 0}#settings-form fieldset label{display:inline-flex;align-items:center;gap:6px;margin:4px 18px 4px 0}#settings-form fieldset input[type=radio]{width:auto;margin:0;padding:0;accent-color:var(--green)}
/* Monochrome theme + compact controls (overrides) */
:root{--bg:#f3f3f3;--paper:#fff;--ink:#161616;--muted:#6e6e6e;--line:#dadada;--orange:#161616;--green:#161616;--soft:#ececec;--action-green:#161616;--field:#fff;--selected:#ebebeb;--cream:#f1f1f1}
:root[data-theme="dark"]{--bg:#111;--paper:#1b1b1b;--ink:#eee;--muted:#9a9a9a;--line:#333;--orange:#eee;--green:#eee;--action-green:#eee;--soft:#262626;--field:#161616;--selected:#2a2a2a;--cream:#202020}
body{background:var(--bg)}
input,select,textarea{background:var(--field)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--muted)}
button:focus-visible,a:focus-visible{outline:2px solid var(--ink)}
.track:hover,.queue-item:hover,.queue-summary,.source,.cover,.freeze-boundary~*{background:var(--soft)}
.cover{color:var(--muted)}
.queue-item.selected,.queue-item.frozen,.dj-break.has-break{background:var(--selected)}
.queue-item.selected,.dj-break.has-break{border-left-color:var(--ink)}

/* buttons: compact, three clear tiers */
button{padding:6px 12px;font-size:12px;font-weight:550;border-radius:6px;line-height:1.4}
.primary,.nav.active,:root[data-theme="dark"] .nav.active,.job:not(.done):not(.error),.freeze-boundary{background:var(--ink);color:var(--paper)}
.primary:hover,.secondary:hover,a.nav.active:hover{background:var(--ink);opacity:.82}
.secondary,:root[data-theme="dark"] .secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.secondary:hover,:root[data-theme="dark"] .secondary:hover{background:var(--soft);opacity:1}
.job{background:var(--ink);color:var(--paper)}
.job.error{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}
.job.done,:root[data-theme="dark"] .job.done{background:var(--soft);color:var(--ink)}
.quiet{border-color:var(--line);color:var(--ink);font-weight:500}
.quiet:hover{background:var(--soft)}
.danger,.dj-audio-row .danger{color:var(--ink);text-decoration:underline}
.nav{padding:6px 12px;font-size:12px}
a.nav{padding:6px 12px}
nav{flex-wrap:wrap}
header{padding:16px 3%}
.track-add{padding:0;width:26px;height:26px;color:var(--ink)}
.queue-buttons button{padding:0 4px}
.local-badge i,.device-indicator.connected,.server-indicator.online::before{background:var(--ink);box-shadow:none}
.device-indicator,.server-indicator::before,.server-indicator.offline::before{background:transparent;border:1.5px solid var(--muted);box-shadow:none}
.server-indicator.online::before,.device-indicator.connected{border-color:var(--ink);background:var(--ink)}
progress,.job progress,.server-status-panel progress{accent-color:var(--ink)}
input[type=checkbox],input[type=radio]{accent-color:var(--ink)}
#dj-modal::backdrop{background:#000a}
.station-symbol,.logo,.empty-icon{color:var(--ink)}
.workflow b,.status,.source-provider{color:var(--muted)}
.unavailable,.warning{color:var(--muted)}
/* groups of adjacent buttons wrap instead of colliding */
:is(div,p,span,li,td):has(>button+button):not(.queue-buttons):not(.pagination):not(.status-footer-row){display:flex;flex-wrap:wrap;align-items:center;gap:6px}
:is(div,p,span,li):has(>button+button) button{flex:0 1 auto;white-space:normal}
.queue-actions button,.commit-bar button{flex:1 1 auto}
.settings-actions,.show-card .show-actions{gap:8px;flex-wrap:wrap}
.panel-head{flex-wrap:wrap}
:root[data-theme="dark"] .primary,:root[data-theme="dark"] .nav.active{background:var(--ink);color:var(--paper)}
:root[data-theme="dark"] .job:not(.done):not(.error),:root[data-theme="dark"] .freeze-boundary{background:var(--soft);color:var(--ink);border-top:1px solid var(--line)}
:root[data-theme="dark"] .job.error{background:var(--paper);color:var(--ink)}
#station-title.pending{visibility:hidden}
.logo{width:44px;height:36px;flex:none;color:var(--ink)}
/* Theme-aware surfaces that used to hardcode light colours */
#toast{background:var(--ink);color:var(--paper)}
.dj-audio-row .danger:hover{background:var(--soft)}
#job-details{border-top-color:var(--line)}
.dj-sample-queue{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}
.dj-sample-queue-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.dj-sample-queue ol{list-style:none;margin:8px 0 0;padding:0}
.dj-sample-queue li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:12px}
.dj-sample-queue li div{min-width:0}.dj-sample-queue li span{overflow-wrap:anywhere}
.dj-sample-queue li div>span{display:block;color:var(--muted)}
.dj-sample-queue-actions{display:flex;flex:none;gap:6px}

.server-breaks{margin-top:18px}.server-breaks h3{margin:0 0 8px}
#server-writer{margin:12px 0 0;padding:12px 14px;background:var(--soft);border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#server-writer p{margin:0;font-size:12px}#server-writer p+p{margin-top:6px}#server-writer h3{margin:0 0 6px;font:600 13px/1.5 'Segoe UI',sans-serif}#server-writer .footnote{font-size:11px}#server-writer h4{margin:10px 0 4px;font-size:11px;color:var(--muted)}
.server-activity{margin:0;padding-left:18px;color:var(--muted);font-size:11px}.server-activity li+li{margin-top:3px}.server-activity time{font-variant-numeric:tabular-nums}
/* Keep long activity histories from stretching the status page */
#server-job-activity,.server-activity{max-height:7.5rem;overflow-y:auto;overscroll-behavior:contain}
.server-breaks a{color:var(--ink)}
#server-recent-renders ol{margin:0}#server-recent-renders li:first-child{border-top:0;padding-top:0}#server-recent-renders p{margin:0}
#server-recent-renders audio{flex:0 1 280px;min-width:0;height:36px}
@media(max-width:700px){#server-recent-renders li{flex-direction:column;align-items:stretch}#server-recent-renders audio{flex:none;width:100%}}
/* On Air and Playlists layout */
.onair-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:20px;align-items:start}
.onair-now{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.onair-main .station-queue-heading{flex-wrap:wrap;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.onair-main .station-queue-heading h3{margin:0;font-size:15px}
.seg{display:flex;gap:3px;margin:14px 0;padding:3px;border:1px solid var(--line);border-radius:8px}
.seg legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.dj-panel .seg label{display:flex;flex:1;align-items:center;justify-content:center;margin:0;padding:7px 6px;border-radius:6px;font-size:12px;font-weight:550;text-align:center;cursor:pointer}
.seg input{position:absolute;width:1px;height:1px;opacity:0}
.dj-panel .seg label:has(input:checked){background:var(--ink);color:var(--paper)}
.seg label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.start-row{display:flex;gap:12px;flex-wrap:wrap}.start-row label{flex:1 1 150px}
.start-actions{display:flex;gap:8px;flex-wrap:wrap}.start-actions button{flex:1 1 140px;padding:10px 12px}
.start-draft{margin:0 0 14px;padding:10px 12px;border-radius:6px;background:var(--soft);font-size:12px}
.auto-running{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;border-radius:8px;background:var(--soft)}
.auto-running div{flex:1;min-width:0}.auto-running strong{font-size:12px}.auto-running p{margin:2px 0 0;color:var(--muted);font-size:11px}
.review-card{padding:14px 0;border-top:1px solid var(--line)}
.review-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.review-head small,.review-meta{color:var(--muted);font-size:11px}.review-meta{margin:2px 0 6px}
.review-card details summary{margin:6px 0;font-size:12px}
.review-breaks{list-style:none;margin:0 0 10px;padding:0}.review-breaks li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:12px}
.review-download{color:var(--muted);font-size:11px}
.clip-editor{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}
.clip-editor-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.clip-editor h3{margin:0;font-size:14px}
.playlists-grid{display:grid;grid-template-columns:220px minmax(0,1.4fr) minmax(300px,1fr);gap:18px;align-items:start}
.pl-sidebar{padding:14px 10px}
.pl-item{display:flex;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border-radius:6px;font-size:13px;font-weight:500;text-align:left}
.pl-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-item small{flex:none;color:var(--muted);font-size:11px}
.pl-item.active{background:var(--selected);font-weight:650}
.pl-heading{padding:14px 10px 6px}.pl-sidebar>.footnote,#pl-list .footnote{margin:4px 10px}
.pl-sidebar #plan-new{width:100%;margin-top:10px}
#removed-playlists summary{margin:14px 10px 6px;font-size:12px}#removed-playlists p{margin:6px 10px;font-size:12px}#removed-playlists>details>button{margin:4px 10px}
.pl-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pl-save-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 20px 14px}.pl-save-row label{flex:1 1 180px}
#plan-editor .pl-actions{margin:4px 0 6px}#plan-editor h3{margin:18px 0 0}
.inline-editor{padding:2px 0 8px;border-left:3px solid var(--ink);background:var(--paper)}
.inline-editor .editor-content{padding:0 16px 8px 20px}
@media(max-width:1250px){.playlists-grid{grid-template-columns:200px minmax(0,1fr)}.playlists-grid>.library-panel{grid-column:1/-1}}
@media(max-width:900px){.onair-grid,.playlists-grid{grid-template-columns:1fr}.playlists-grid>.library-panel{grid-column:auto}}
/* DJ Logs */
.logs-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
.logs-toolbar .dj-library-search{flex:1 1 320px;margin:0}
#djlogs .dj-audio-library{max-height:none;overflow:visible;margin:12px 0 0}
.dj-log-row{padding:12px 0;border-top:1px solid var(--line)}
.dj-log-head{display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,360px) auto;gap:14px;align-items:center}
.dj-log-head .dj-audio-info span{display:block;color:var(--muted);font-size:12px}
.dj-log-head audio{width:100%;height:36px}
.dj-log-row .dj-prompt-log summary{padding:6px 0 0;font-size:12px;color:var(--muted)}
.prompt-summary{display:grid;gap:12px;margin:10px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}
.prompt-summary section{min-width:0}
.prompt-summary h4{margin:0 0 4px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.prompt-summary p,.prompt-summary ul{margin:0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.prompt-summary section:first-child p{white-space:pre-wrap}
.prompt-summary ul{padding-left:18px}
.prompt-summary .footnote{margin:0;font-size:11px}
.storage-cleanup>summary{margin:0;font-weight:600;color:var(--ink)}
.storage-cleanup h3{margin:18px 0 4px;font-size:14px}.storage-cleanup p{font-size:12px;color:var(--muted)}
@media(max-width:700px){.dj-log-head{grid-template-columns:1fr}.dj-log-head button{justify-self:start}}
.prompt-summary a{color:var(--ink)}
/* On Air running order: one compact line per item */
.onair-main .station-order{max-height:480px;margin-top:10px;border-top:1px solid var(--line)}
.onair-main .station-order li{grid-template-columns:32px minmax(0,1fr) 52px auto;padding:7px 8px;border-bottom:1px solid var(--line)}
.onair-main .station-order .queue-position{text-align:right;color:var(--muted)}
.onair-main .station-order .queue-track strong{font-size:13px}
.onair-main .station-order .queue-track small,.onair-main .station-order .queue-duration{color:var(--muted)}
.onair-main .station-order li.played{opacity:.55}
.onair-main .station-order li.dj .queue-track strong::before{content:'MIC · ';font-size:10px;letter-spacing:1px;color:var(--muted)}
.onair-main .station-order li.current-item{background:var(--selected);box-shadow:inset 3px 0 0 var(--ink)}
.onair-main .station-order li.current-item .queue-position{color:var(--ink);font-weight:700}

/* DJ Showcase */
.showcase-columns{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;align-items:start}
.showcase-panel{padding:20px}.weekly-recap{padding:20px;margin-bottom:20px;border-left:4px solid var(--orange)}.weekly-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}.weekly-head h3{margin:6px 0 4px;font-size:22px}.weekly-head .footnote{margin:0}.weekly-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.weekly-toggle{display:flex;gap:8px;align-items:center;font-size:12px}.weekly-toggle input{width:auto;min-height:0;margin:0}.weekly-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:16px 0 12px}.weekly-stat{background:var(--soft);border-radius:7px;padding:10px 12px;min-width:0}.weekly-stat small{display:block;font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.weekly-stat strong{display:block;margin-top:4px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-recap>.footnote{margin:0}@media(max-width:700px){.weekly-actions{align-items:flex-start}}
.showcase-panel h3{margin:0 0 10px}
#showcase-form label{display:block;margin:0 0 16px;font-size:11px;font-weight:600}
#showcase-form input,#showcase-form select,#showcase-form textarea{display:block;width:100%;margin-top:6px;font-size:13px;font-weight:400;min-height:0;padding:10px 12px}
#showcase-form .footnote{margin:12px 0 0}
#showcase-queue{margin-top:14px}
#showcase-renders .dj-audio-row{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}
#showcase-renders .dj-audio-row:first-child{border-top:0}
#showcase-renders .dj-audio-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
#showcase-renders audio{width:100%}
.showcase-meta,.showcase-sources{font-size:12px;color:var(--muted);margin:0}
.showcase-sources a{color:inherit}
.showcase-actions{display:flex;gap:2px;align-items:center}
.icon-action{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:7px;color:var(--muted);background:transparent}
.icon-action:hover{background:var(--soft);color:var(--ink)}
.icon-action[data-showcase-delete]:hover,.icon-action[data-delete-dj-sample]:hover,.icon-action[data-dj-delete]:hover:not(:disabled),.icon-action[data-dj-audio-delete]:hover:not(:disabled){color:#a94f34}
#showcase-renders .dj-audio-row{padding:10px 0}
#showcase-renders .dj-audio-info{gap:4px}
#showcase-renders .dj-prompt-log summary{padding:2px 0;font-size:12px;color:var(--muted)}
@media (max-width:820px){.showcase-columns{grid-template-columns:1fr}}
.showcase-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.server-job-details{font-size:12px;color:var(--muted);margin:-4px 0 6px;overflow-wrap:anywhere}
/* The header stays in reach on long pages. */
header{position:sticky;top:0;z-index:25;background:var(--bg);box-shadow:0 2px 10px #0000000f}
html{scroll-padding-top:96px}
/* DJ log pages and bulk selection. */
.dj-log-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;position:sticky;top:0;z-index:2;background:var(--paper)}
.dj-log-bottom{position:static;justify-content:flex-end}
.dj-log-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0 6px 0 0}
.dj-log-check input,.dj-log-select{width:16px;height:16px;margin:0;accent-color:var(--orange)}
.dj-log-pages{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.dj-log-head{grid-template-columns:auto minmax(200px,1fr) minmax(220px,360px) auto}
@media(max-width:700px){.dj-log-head{grid-template-columns:auto 1fr}.dj-log-head audio,.dj-log-head .showcase-actions{grid-column:2}}
/* Saved samples on a DJ profile: compact rows, like the Showcase list. */
#dj-test-samples .dj-audio-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);border-bottom:0}
#dj-test-samples .dj-audio-row:first-child{border-top:0}
#dj-test-samples .dj-audio-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
#dj-test-samples audio{width:100%}
#dj-test-samples .dj-prompt-log summary{padding:2px 0;font-size:12px;color:var(--muted)}
/* DJ index: name and latest test sample beside the photo; Create in the page header. */
.dj-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.dj-intro #dj-new{flex:none}
#dj-list .dj-card{grid-template-columns:52px minmax(0,1fr) auto;padding:12px 0}
#dj-list .dj-card .dj-avatar{grid-row:1}
#dj-list .dj-card-body{grid-column:2;grid-row:1;min-width:0;display:flex;flex-direction:column;gap:6px}
#dj-list .dj-card-body h3{margin:0}
#dj-list .dj-card-body audio{width:100%;max-width:420px;height:34px}
#dj-list .dj-card-body small{font-size:11px;color:var(--muted)}
#dj-list .dj-card .dj-card-actions{grid-row:1}
@media(max-width:650px){.dj-intro{flex-direction:column;align-items:stretch}}
/* DJ editor: Back and Save stay in reach just below the header. */
.dj-edit-bar{position:sticky;top:var(--header-h,76px);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px;padding:10px 0;background:var(--bg);border-bottom:1px solid var(--line)}
#dj-list a.dj-avatar{text-decoration:none;cursor:pointer}
#dj-list a.dj-avatar:hover{outline:2px solid var(--line);outline-offset:2px}
.dj-name-link{color:inherit;text-decoration:none}
.dj-name-link:hover{text-decoration:underline}
.dj-draft-badge{display:inline-block;margin-left:8px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;font-weight:600;vertical-align:middle}
