:root{--ink:#e9ece8;--muted:#a7b4b1;--paper:#101816;--panel:#192521;--line:#34463e;--accent:#d8ef80;--danger:#ffb3a7}
html,body{background:var(--paper);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif;line-height:1.55}a{color:var(--accent)}
.app-shell{max-width:none;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 20px;border-bottom:1px solid var(--line)}
.brand{font-size:15px;font-weight:800;letter-spacing:2px;text-decoration:none;color:var(--ink);display:flex;align-items:baseline;gap:10px}.brand span{display:inline;font-size:9px;color:var(--muted);letter-spacing:3px;margin-top:0}.masthead nav{display:flex;align-items:center;gap:24px;min-width:0}.masthead nav a{font-size:13px;text-decoration:none;color:var(--muted)}.masthead-user{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.masthead-logout{margin:0}.masthead-logout button{margin:0;padding:0;border:0;background:none;font-size:13px;color:var(--muted);cursor:pointer}.masthead-logout button:hover{color:var(--ink);filter:none}
.studio-main{padding:22px 20px 60px}h1{font-size:clamp(32px,4.5vw,64px);letter-spacing:-2px;font-weight:650;line-height:1.08;margin:8px 0 24px}h2{font-size:21px;font-weight:600;letter-spacing:-.4px;margin-bottom:20px}h3{font-size:18px}.eyebrow{font-family:Consolas,monospace;font-size:11px;letter-spacing:2.5px;color:var(--accent);margin:0 0 20px}.lede{max-width:720px;color:var(--muted);font-size:18px;margin-bottom:30px}.hero{padding:30px 0 60px;max-width:1000px}.hero h1{font-size:clamp(40px,6vw,82px)}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);gap:42px;padding-top:32px}.feature-grid p{color:var(--muted);font-size:14px}.step{display:block;font-family:Consolas,monospace;color:var(--accent);font-size:11px;margin-bottom:22px}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:24px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;margin-bottom:24px}.narrow{max-width:520px}.section-heading,.title-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.section-heading>span{color:var(--muted);font-size:12px}.hint{font-size:13px;color:var(--muted);margin-top:12px}.notice{padding:14px 18px;border:1px solid var(--line);border-radius:10px;margin-bottom:24px;background:#22332a;font-size:14px}.danger{background:#422822;color:var(--danger);border-color:#854b40}
label{display:block;color:var(--muted);font-size:13px;margin:18px 0 8px}input:not([type=checkbox]),textarea,select,.form-control{display:block;width:100%;padding:12px 14px;background:#111c16;border:1px solid #506155;color:var(--ink);border-radius:8px}input:focus,textarea:focus,.form-control:focus{background:#15241c;color:var(--ink);border-color:var(--accent);box-shadow:0 0 0 2px #d8ef8033;outline:0}textarea{min-height:90px}input[type=checkbox]{accent-color:var(--accent)}.inline-label{display:flex;gap:10px;align-items:center;margin:18px 0 8px}select:focus{background:#15241c;color:var(--ink);border-color:var(--accent);box-shadow:0 0 0 2px #d8ef8033;outline:0}.device-settings{margin-top:22px;padding:6px 16px 14px;background:#0d1712;border:1px solid var(--line);border-radius:10px}.device-settings h3{font-size:14px;color:var(--muted);margin:14px 0 0;letter-spacing:.04em;text-transform:uppercase}.device-settings label:first-of-type{margin-top:12px}
button,.action{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border-radius:8px;border:1px solid #506155;background:transparent;color:var(--ink);font-size:13px;text-decoration:none;margin:8px 8px 8px 0;cursor:pointer}.action,.btn-primary{background:var(--accent);color:#162016;border-color:var(--accent);font-weight:650}.action{padding:13px 20px}button:hover,.action:hover{filter:brightness(1.13);color:inherit}button:disabled{opacity:.4;cursor:not-allowed}.record-button{background:#763b32;border-color:#ac695f}.danger-button{background:#4a231e;border-color:#ac695f;color:var(--danger)}.recording-label{color:var(--danger);font-family:Consolas,monospace;font-size:12px;margin-top:28px}.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.person-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 10px 10px;background:#111c16;border:1px solid var(--line);border-radius:10px;overflow:hidden}.avatar{display:grid;place-items:center;width:52px;height:52px;background:#334d3c;color:var(--accent);font-size:24px;border-radius:50%;margin-bottom:12px}.person-card video{display:none;width:auto;height:auto;max-width:100%;max-height:var(--preview-max,40vh);aspect-ratio:var(--ar,16/9);object-fit:contain;background:#000;border-radius:6px;margin:10px auto 0}.person-card video[data-live]{display:block}.talk-timer{display:block;font-family:Consolas,monospace;font-size:22px;color:var(--accent);margin-top:8px;letter-spacing:1px}.timer-row{display:flex;align-items:baseline;gap:18px;margin:-8px 0 16px}.timer-row .eyebrow{margin:0}.episode-timer{font-family:Consolas,monospace;font-size:44px;font-weight:600;letter-spacing:2px;color:var(--ink)}.stage{width:100%;max-height:440px;background:#000;border-radius:10px;margin-bottom:14px;overflow:hidden}.stage video{display:block;width:100%;max-height:440px;object-fit:contain}.status-light{position:absolute;top:10px;right:10px;width:12px;height:12px;border-radius:50%;background:#5b6a5f;box-shadow:0 0 0 2px #0d1712}.status-light.ready{background:#4fd66a;box-shadow:0 0 0 2px #0d1712,0 0 8px #4fd66a88}.status-light.recording{background:#ff4d3d;box-shadow:0 0 0 2px #0d1712,0 0 10px #ff4d3d99;animation:rec-pulse 1.2s ease-in-out infinite}@keyframes rec-pulse{50%{opacity:.45}}.sound-grid{display:flex;flex-wrap:wrap}.sound-grid button{background:#283b2e}.episode-row{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);padding:18px 0;gap:6px}.episode-row span{font-size:12px;color:var(--muted)}.marker-row{display:flex;align-items:baseline;gap:18px;border-top:1px solid var(--line);padding:16px 0;font-size:14px}.marker-row time{font-family:Consolas,monospace;color:var(--accent)}.marker-row p{margin:0;overflow-wrap:anywhere}.marker-row input{flex:1;min-width:160px;margin:0;padding:8px 10px;font-size:14px;background:transparent;border-color:transparent}.marker-row input:hover,.marker-row input:focus{background:#111c16;border-color:#506155}.marker-row input:focus{border-color:var(--accent)}.offset-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0}.offset-row input{width:120px}.offset-row>strong{min-width:120px}#blazor-error-ui{background:#422822;color:white}.form-floating>label{color:#9dab9e}.form-floating>label:after{background:transparent!important}.text-danger{color:var(--danger)!important}.nav-pills .nav-link.active{background:#46633e}.valid.modified:not([type=checkbox]){outline:1px solid var(--accent)}
/* Keep native controls and Bootstrap account forms consistent with the studio theme. */
:root{color-scheme:dark;--bs-body-color:var(--ink);--bs-body-bg:var(--paper);--bs-secondary-color:var(--muted);--bs-secondary-bg:#26372e;--bs-border-color:var(--line)}
input:not([type=checkbox]):disabled,textarea:disabled,select:disabled,.form-control:disabled,
input:not([type=checkbox])[readonly],textarea[readonly],.form-control[readonly]{background:#26372e;color:#d4ddd5;-webkit-text-fill-color:#d4ddd5;border-color:#607568;opacity:1}
input::placeholder,textarea::placeholder,.form-control::placeholder{color:#a7b4b1;opacity:1}
.form-floating>label{margin:0;color:var(--muted)}
.form-floating>.form-control:disabled~label,.form-floating>.form-control[readonly]~label{color:#b9c9be}
.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{color:#b9c9be}
.action:hover,.action:focus-visible,.btn-primary:hover,.btn-primary:focus-visible,.btn-primary:active{background:#e2f79d;color:#162016;border-color:#e2f79d}
button:disabled,.btn:disabled{background:#304136;color:#c0cdc4;border-color:#607568;opacity:1;filter:none;cursor:not-allowed}
@media(max-width:800px){.workspace-grid,.feature-grid{grid-template-columns:1fr}.masthead{align-items:start}.masthead nav{flex:0 1 auto;flex-direction:column;align-items:flex-start;gap:8px}.masthead-user{max-width:100%}.studio-main{padding-top:30px}.panel{padding:20px}.marker-row{flex-wrap:wrap;gap:8px}.title-row{align-items:start}.title-row h1{font-size:34px}.brand span{font-size:8px}}
.mute-row{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:8px}.mute-row button{margin:2px;padding:6px 10px;font-size:12px}.mute-row button.kick-button{border-color:#ac695f;color:var(--danger)}.mute-row button.muted{background:#4a231e;border-color:#ac695f;color:var(--danger)}.mute-badge{display:block;font-size:12px;color:var(--danger);margin-top:6px}.mute-badge[hidden]{display:none}
/* Copies of the raw blocks each page is securing (hub Safety): green two, yellow one, red none; the alarm banner is the server's stop. */
.safety-badge{display:inline-block;font-size:11px;line-height:1.4;padding:0 7px;border-radius:10px;border:1px solid #506155;color:var(--muted);white-space:nowrap}
.safety-badge.safety-ok{border-color:#4fd66a;color:#4fd66a}.safety-badge.safety-warn{border-color:#f2c94c;color:#f2c94c}
.safety-badge.safety-danger{border-color:#ff4d3d;color:#ff4d3d;background:#4a231e;animation:rec-pulse 1.2s ease-in-out infinite}
.alarm-banner{position:sticky;top:8px;z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:18px 22px;margin:0 0 14px;border-radius:14px;background:#b3261e;color:#fff;font-size:17px;box-shadow:0 0 0 3px #ff4d3d66,0 12px 30px #0009}
.alarm-banner strong{font-size:24px;letter-spacing:1px}.alarm-banner span{flex:1 1 320px;line-height:1.4}.alarm-banner button{margin:0;color:#fff;border-color:#fff8}
.stage-card .stage-video:empty{display:none}.stage-card video,.stage-card .stage-video img{display:block;width:auto;height:auto;max-width:100%;max-height:var(--preview-max,40vh);aspect-ratio:var(--ar,16/9);object-fit:contain;background:#000;border-radius:6px;margin:10px auto 0}
.sound-item{display:flex;flex-direction:column;align-items:stretch;margin:0 8px 8px 0;min-width:140px}.sound-item button{margin:0}.sound-item input[type=range]{width:100%;padding:0;margin:4px 0 0;background:transparent;border:0;accent-color:var(--accent);height:18px}
.leave-backdrop{position:fixed;inset:0;background:#000000aa;display:grid;place-items:center;z-index:100;padding:16px}.leave-dialog{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:520px;box-shadow:0 20px 60px #000a}.leave-dialog h2{margin-top:0}.leave-dialog p{color:var(--muted);font-size:14px}
.provider-button,.provider-button:hover,.provider-button:focus-visible,.provider-button:active{display:inline-flex;align-items:center;justify-content:flex-start;gap:12px;min-width:240px;box-sizing:border-box;background:#fff;color:#1f1f1f;border:1px solid #d0d5d2;font-weight:600;padding:10px 18px 10px 14px}.provider-button:hover,.provider-button:focus-visible{background:#f2f4f2;border-color:#b8c0bb}.provider-logo{width:20px;height:20px;flex:none}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--line)}.admin-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table td .hint{font-family:Consolas,monospace;font-size:11px;margin:0;overflow-wrap:anywhere}.admin-table button{margin:0;padding:6px 10px;font-size:12px}
.user-id-box{margin:0 0 24px}.user-id-row{display:flex;gap:10px;align-items:center;margin-top:8px}.user-id-row input{font-family:Consolas,monospace;font-size:13px;margin:0}.user-id-row button{margin:0;white-space:nowrap}
.talk-timer.talk-ok{color:#4fd66a}.talk-timer.talk-warn{color:#f2c94c}.talk-timer.talk-over{color:#ff4d3d}.next-mic{display:inline-block;margin-left:6px;font-size:18px;line-height:1;vertical-align:-2px;animation:next-pulse 1.6s ease-in-out infinite}.next-mic[hidden]{display:none}@keyframes next-pulse{50%{opacity:.35}}
.person-card{transition:box-shadow .15s}.person-card.voice-green{border-color:#4fd66a;box-shadow:0 0 0 2px #4fd66a,0 0 18px #4fd66a88}.person-card.voice-yellow{border-color:#f2c94c;box-shadow:0 0 0 2px #f2c94c,0 0 18px #f2c94c88}.person-card.voice-red{border-color:#ff4d3d;box-shadow:0 0 0 2px #ff4d3d,0 0 18px #ff4d3d99}.hand-badge{display:inline-block;margin-left:6px;font-size:18px;line-height:1;vertical-align:-2px;animation:next-pulse 1.2s ease-in-out infinite}.hand-badge[hidden]{display:none}.mute-row button.active{background:#4b4a1e;border-color:#c9b64a;color:#f2e39a}
.sound-buttons{display:flex}.sound-buttons button:first-child{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}.sound-buttons .hold-button{margin:0;padding:6px 10px;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;background:#1d2b22;touch-action:none;user-select:none}.sound-buttons .hold-button:active{background:#4fd66a;color:#162016}
.studio-stage>.panel{margin-top:20px}.title-tools{display:flex;align-items:center;gap:14px}.title-tools button{margin:0;font-size:18px;padding:8px 12px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 2px}.toolbar button{margin:0;font-size:15px;padding:10px 14px;line-height:1.2}.toolbar button.active{background:#2c4a36;border-color:var(--accent)}.toolbar .action{padding:10px 18px}.toolbar .recording-label{margin:0;font-size:14px}.toolbar-hint{margin-top:6px;min-height:1.2em}.settings-panel{padding:8px 20px 16px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}.settings-grid .device-settings{margin-top:10px}.mute-row button{font-size:16px;padding:6px 10px}.person-card{padding-top:18px}.person-card .hint{margin-top:2px}.upload-label{display:block;margin-top:14px;cursor:pointer}.upload-label input{margin-top:6px}.panel-soundboard .sound-grid{flex-direction:column}.panel-soundboard .sound-item{margin-right:0;width:100%}.section-heading span[title]{cursor:help}
@media(max-width:640px){.title-row{flex-wrap:wrap;gap:8px}.title-row h1{font-size:30px;letter-spacing:-1px;margin-bottom:10px}.episode-timer{font-size:28px;letter-spacing:1px}.studio-main{padding:24px 4vw 60px}}
.session-page h1{font-size:clamp(26px,2.6vw,40px);letter-spacing:-1px;margin:4px 0 10px}.session-page .notice{padding:10px 14px;margin-bottom:12px}.session-page>.hint{margin-top:0}.session-page .person-card{padding-top:16px}.session-page .avatar{width:44px;height:44px;font-size:20px;margin-bottom:8px}
.panel-notes .marker-row{flex-wrap:wrap;gap:8px 12px;padding:10px 0;font-size:13px}.panel-notes .marker-row input{min-width:0;flex-basis:100%}.panel-notes .marker-row p{flex-basis:100%}

.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;width:100%;min-height:26px}.card-head .card-name{font-size:15px}.card-head .talk-timer{margin:0;font-size:18px;letter-spacing:.5px}.card-head .next-mic,.card-head .hand-badge{margin:0;font-size:17px}.card-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:help}.card-head .status-light{position:static;width:10px;height:10px;box-shadow:none}.session-page .person-card{padding:10px 10px 8px}.person-card video{margin-top:8px}
.add-note{flex:1;margin:0;border-style:dashed;white-space:nowrap}
.camera-controls label{margin:10px 0 2px;font-size:12px}.camera-controls input[type=range]{width:100%;margin:0;padding:0;background:transparent;border:0;accent-color:var(--accent);height:20px}.camera-controls select{margin-bottom:4px}.camera-controls .section-heading h3{margin:14px 0 0}.camera-controls .section-heading button{margin:10px 0 0;padding:4px 10px}video.mirrored{transform:scaleX(-1)}
.template-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.template-row button{margin:0;padding:8px 10px;font-size:12px}.sound-buttons .remove-button{margin:0;padding:6px 8px;border-left:0;border-radius:0 8px 8px 0;background:transparent;color:#ff5a4d;display:flex;align-items:center}.sound-buttons .remove-button:hover:not(:disabled){background:#4a231e}.sound-buttons .remove-button:disabled{color:var(--muted)}.sound-buttons .hold-button{border-radius:0}.sound-buttons .stop-button{margin:0;padding:6px 10px;border-left:0;border-radius:0;background:#2b1d1d}.sound-buttons .stop-button:disabled{opacity:.35}
.upload-label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px dashed #506155;border-radius:8px;font-size:13px;color:var(--ink)}.upload-label:hover{border-color:var(--accent)}.upload-label input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;overflow:hidden;pointer-events:none}
.listen-settings .listen-toggle{display:flex;width:100%;justify-content:flex-start;margin:6px 0 0}.listen-toggle.muted{background:#4a231e;border-color:#ac695f}.silenced-badge{margin-left:6px;font-size:14px;cursor:help}.title-edit .podcast-input{flex:0 1 220px;font-size:14px;font-weight:400}.episode-group{margin:18px 0 0;font-family:Consolas,monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.episode-group+.episode-row{border-top:none}.title-pen{margin:0 0 0 12px;padding:4px 10px;font-size:16px;letter-spacing:0;vertical-align:middle;opacity:.7}.title-pen:hover{opacity:1}.title-edit{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.title-edit input{flex:1;min-width:0;margin:0;font-size:24px;font-weight:700}.title-edit button{margin:0;padding:8px 12px;font-size:16px}@media(max-width:640px){.title-edit{flex:1 0 100%}.title-edit input{font-size:18px}}.topic-timer{display:block;max-width:min(60vw,420px);margin-top:4px;font-family:Consolas,monospace;font-size:16px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.topic-timer.topic-ok{color:#4fd66a}.topic-timer.topic-warn{color:#f2c94c}.topic-timer.topic-over{color:#ff4d3d}.topic-timer.paused{opacity:.55}.rundown-planned{font-family:Consolas,monospace;font-size:12px;color:var(--muted);cursor:help}.rundown-planned.over{color:var(--danger)}.doc-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;max-height:104px;overflow-y:auto}.doc-tabs button,.doc-upload{margin:0;padding:4px 10px;font-size:13px;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-tabs button.active{background:#2c4a36;border-color:var(--accent)}.doc-upload{display:inline-flex;align-items:center;border:1px dashed #506155;border-radius:8px;color:var(--ink);cursor:pointer}.doc-upload:hover{border-color:var(--accent)}.doc-upload input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;overflow:hidden;pointer-events:none}.doc-name{display:flex;align-items:center;gap:6px;margin:0 0 12px}.doc-name input{flex:1;min-width:0;margin:0}.doc-name button{margin:0;padding:6px 10px}.card-body.gobbo-open{width:100%}.card-body.gobbo-open video{display:none!important}.gobbo{display:flex;flex-direction:column;width:100%;height:var(--preview-max,40vh);min-height:180px;margin-top:8px;border:1px solid var(--line);border-radius:6px;background:#0b130f;text-align:left;line-height:1.45;overflow:hidden}.gobbo-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px 4px 10px;border-bottom:1px solid var(--line);font-size:13px}.gobbo-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.gobbo-head span{display:inline-flex;gap:4px;flex:none}.gobbo-head button{margin:0;padding:2px 8px;font-size:12px}.gobbo mdlib-podcast-editor{flex:1;min-height:0;overflow-y:auto;padding:4px 8px}.panel-rundown .section-heading>span{display:inline-flex;align-items:center;gap:8px}.panel-rundown .section-heading button{margin:0;padding:4px 10px}
.timer-block{display:flex;flex-direction:column;align-items:flex-end;line-height:1}.timer-block .eyebrow{margin:2px 0 0;font-size:10px;letter-spacing:2px}.session-page .title-row{margin-bottom:2px}.session-page h1{margin:0 0 4px}.session-page>.hint{margin:0 0 10px}.session-page .episode-timer{font-size:36px}
.card-body{display:inline-flex;flex-direction:column;align-items:stretch;max-width:100%;min-width:60%}.card-body .card-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;width:100%;justify-content:stretch}.head-left{justify-self:start;display:flex;align-items:center;gap:6px;min-width:0;text-align:left}.head-left .card-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-body .talk-timer{justify-self:center}.card-body .card-state{justify-self:end;text-align:right}.card-body video{margin:8px 0 0}.stage-card .card-body{width:100%}
.remove-note{margin:0 0 0 auto;padding:0 4px;font-size:13px;line-height:1;border:0;background:transparent;color:var(--danger);flex:none}.remove-note:hover{filter:brightness(1.3)}
/* Episode page layout: columns of panels, reordered by dragging a heading, folded with ▾, detached with ⧉ into
   /session/{id}/<panel>. Side columns stay in view (sticky) and never exceed the window: each panel scrolls inside. */
/* .studio-layout = band above, the columns, band below. */
.studio-layout{display:flex;flex-direction:column;gap:20px}
.studio-columns{display:flex;gap:20px;align-items:flex-start}
/* A band holds one panel at full width; it scrolls inside. */
.layout-band{--band-max:60vh;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}
.layout-band.sized{--band-max:var(--band-h);height:var(--band-h);align-items:stretch}
.band-col{position:relative;flex:1 1 320px;min-width:0;max-height:var(--band-max);display:flex;flex-direction:column;gap:14px}
.band-col.band-stage{flex:3 1 600px;max-height:none}
.band-col.folded{flex:0 1 auto}
.band-col>.dock-panel{flex:0 1 auto;min-height:0;padding:16px 18px}
.layout-band.sized .band-col>.dock-panel:not(.folded){flex:1 1 0}
.layout-band.sized .band-stage{overflow-y:auto}
.band-col>.dock-panel.folded{flex:none}
.band-resize{height:12px;margin:-14px 0;display:grid;place-items:center;cursor:ns-resize;touch-action:none}
.band-resize span{width:80px;height:4px;border-radius:4px;background:#506155}
.band-resize:hover span{background:var(--accent)}
.band-item{position:relative}
.stage-col{position:relative}
.drop-band{position:sticky;z-index:80;padding:16px;border:2px dashed var(--accent);border-radius:12px;background:#101816e6;color:var(--accent);font-size:14px;text-align:center}
.drop-band-top{top:10px}
.drop-band-bottom{bottom:10px}
.drop-band:hover{background:#22332ae6}
.layout-col{min-width:0}
.stage-col{flex:1 1 0}
.side-col{flex:0 0 260px;min-width:min-content;position:sticky;top:10px;max-height:var(--dock-max,calc(100dvh - 20px));display:flex;flex-direction:column;gap:14px}
.side-col.wide{flex-basis:520px}
@media(max-width:1600px){.side-col.wide{flex-basis:420px}}
.layout-col.col-collapsed{flex:0 0 46px}
.studio-columns.stage-folded .side-col:not(.col-collapsed){flex-grow:1}
.dock-panel{position:relative;display:flex;flex-direction:column;min-height:0;margin:0}
.side-col .dock-panel{flex:0 1 auto;padding:16px 18px}
.side-col .dock-panel.folded{flex:none}
.dock-panel h2{font-size:18px;margin:0}
.panel-head{flex:none;gap:10px;margin-bottom:10px;cursor:grab}
.panel-head[draggable=false]{cursor:default}
.panel-head>span{white-space:nowrap}
.panel-tools{display:inline-flex;align-items:center;gap:6px}
.panel-tools .layout-button{margin:0;padding:2px 7px;font-size:13px;line-height:1.3;border-color:transparent;color:var(--muted)}
.panel-tools .layout-button:hover{border-color:#506155;color:var(--ink)}
.dock-panel.folded .panel-head{margin-bottom:0}
.panel-main{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.panel-body{flex:1 1 auto;min-height:60px;overflow-y:auto;overscroll-behavior:contain}
.panel-main>.panel-body{padding-right:4px}
.panel-main>:not(.panel-body){flex:none}
.side-col .dock-panel h2{font-size:17px}
.stage-panel .stage-head{margin-bottom:6px}
.stage-panel .stage-head h2,.stage-panel>.panel-head h2{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:600}
.stage-panel>.panel-head{margin-bottom:6px}
.stage-col.col-collapsed .stage-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 6px}
/* A column whose panels are all folded shrinks to a vertical strip. */
.col-collapsed .dock-panel{padding:12px 6px}
.col-collapsed .panel-head{flex-direction:column-reverse;align-items:center;justify-content:flex-end;gap:10px}
.col-collapsed .panel-head h2{writing-mode:vertical-rl;font-size:14px;white-space:nowrap}
.col-collapsed .panel-tools{flex-direction:column}
/* Drop targets, shown only while a heading is dragged. */
.drop-gutter{flex:0 0 34px;align-self:stretch;min-height:160px;display:grid;place-items:center;border:2px dashed #506155;border-radius:12px;color:var(--muted);font-size:20px}
.drop-on{position:absolute;inset:0;display:grid;place-items:start center;padding-top:14px;background:#101816cc;border:2px dashed var(--accent);border-radius:16px;color:var(--accent);font-size:13px;z-index:5}
.drop-gutter:hover{border-color:var(--accent);color:var(--accent)}
.dock-chip{margin:0;padding:6px 10px;font-size:13px}
/* Account profile: avatar and colour. */
.profile-editor{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.profile-avatar{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#1d2b22;box-shadow:0 0 0 3px var(--profile-color);font-weight:700;font-size:20px;color:var(--ink)}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.profile-controls button{margin:0;padding:6px 10px}
.profile-upload,.profile-color{position:relative;display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 10px;border:1px solid #506155;border-radius:8px;background:transparent;color:var(--ink);font-size:13px;cursor:pointer}
.profile-file{display:none!important}
.profile-color input{width:34px;height:24px;padding:0;border:0;background:none;cursor:pointer}
/* REC warm-up: yellow lights and a 3…2…1 over every preview until the take really records. */
.status-light.recording.pending{background:#f2c94c;box-shadow:0 0 0 2px #0d1712,0 0 10px #f2c94c99;animation:none}
.rec-countdown{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#0d1712b3;color:#f2c94c;font-family:Consolas,monospace;font-size:64px;line-height:1;font-weight:700;pointer-events:none}
.rec-countdown[hidden]{display:none}
.sound-options{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.sound-options input[type=range]{flex:1 1 100%;min-width:0}
.sound-volume{display:flex;align-items:center;gap:6px;flex:1 1 100%;min-width:0}.sound-volume input[type=range]{flex:1 1 auto}
.sound-handle{cursor:grab;color:var(--muted,#8a998f);font-size:16px;line-height:1;padding:2px 2px 2px 0;user-select:none;touch-action:none}.sound-handle:active{cursor:grabbing}
.sound-item.drop-target{outline:2px dashed var(--accent);outline-offset:3px;border-radius:8px}
.together-toggle{display:inline-flex;align-items:center;gap:3px;margin:0;font-size:13px;color:var(--muted);white-space:nowrap;cursor:pointer}
.together-toggle input{width:15px;height:15px;margin:0}
.sound-privacy{padding:0 6px;min-height:0;line-height:1.4;font-size:13px;margin-left:auto}.sound-owner{margin-left:auto;flex-shrink:0;font-size:12px;color:var(--muted);white-space:nowrap}
.minutes-input{display:inline-flex;align-items:center;gap:4px;margin:0;color:var(--muted);font-size:14px;white-space:nowrap}
.minutes-input input{flex:none;width:78px;padding:8px;font-size:16px;font-weight:400}
@media(max-width:1300px){.studio-columns{flex-wrap:wrap}.stage-col{flex:1 1 100%}.side-col{flex-grow:1}}
@media(max-width:1000px){.side-col,.side-col.wide{flex:1 1 100%;position:static;max-height:none}.side-col .dock-panel{max-height:80vh}.drop-gutter{display:none}}
/* Detached panel window: the panel alone, as tall as the window. */
body:has(.popout-page) .masthead{display:none}
body:has(.popout-page) .studio-main{padding:10px 12px}
.popout-page{display:flex;flex-direction:column;height:calc(100dvh - 20px)}
.popout-page .popout-title{margin:0 0 6px;font-size:12px}
.popout-page .dock-panel{flex:1 1 auto;padding:16px 18px}
/* Notes: actions at the bottom; cues. */
.note-actions{flex:none;display:flex;gap:6px;margin-top:10px}
.note-actions .cue-button{margin:0;padding:8px 10px}.note-actions .cue-button.active{background:#2c4a36;border-color:var(--accent);animation:rec-pulse 1.6s ease-in-out infinite}
.marker-row.cue-start,.marker-row.cue-end{font-weight:600}
.marker-row.cue-highlight time{color:#ffd76a}
.note-actions .pause-cue.active{background:#4a3a1c;border-color:#e0a030}
.marker-row.cue-cut time{color:#e0a030}
/* Chat. */
.chat-list{display:flex;flex-direction:column;gap:6px}
.chat-msg{padding:6px 10px;border-radius:10px;background:#111c16;font-size:13px}
.chat-msg.mine{background:#1d2b22;margin-left:18px}
.chat-msg.private{box-shadow:inset 3px 0 0 #ffd76a}
.chat-msg p{margin:2px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}
.chat-meta{display:flex;align-items:baseline;gap:6px;font-size:11px;color:var(--muted)}
.chat-meta time{font-family:Consolas,monospace}
.chat-name{margin:0;padding:0;border:0;background:none;color:var(--accent);font-size:12px;font-weight:600}
.chat-compose{flex:none;display:flex;flex-direction:column;gap:6px;margin-top:10px}
.chat-compose select{padding:6px 8px;font-size:13px}
.chat-send{display:flex;gap:6px}
.chat-send input{flex:1;min-width:0;padding:8px 10px;font-size:14px}
.chat-send button{margin:0;padding:8px 12px}
.unread{display:inline-block;margin-left:6px;padding:0 7px;border-radius:999px;background:#ffd76a;color:#162016;font-size:12px;vertical-align:middle}
.chat-toasts{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;width:min(560px,calc(100vw - 32px))}
.chat-toast{margin:0;justify-content:flex-start;gap:8px;padding:12px 16px;border:1px solid var(--accent);border-radius:12px;background:#1d2b22;box-shadow:0 8px 24px #000a;font-size:16px;text-align:left;overflow-wrap:anywhere}
.chat-toast.private{border-color:#ffd76a}
.extra-settings .section-heading{display:flex;justify-content:space-between;align-items:center}.extra-settings .section-heading span{display:inline-flex;gap:4px}.extra-settings .section-heading button{margin:10px 0 0;padding:4px 8px;font-size:13px}.extra-row{display:flex;align-items:center;gap:6px;margin-top:8px}.extra-row select{flex:1 1 0;min-width:0;margin:0;padding:8px 10px;font-size:13px}.extra-kind{display:inline-flex;align-items:center;gap:4px;flex:none;cursor:help}.extra-kind .status-light{width:8px;height:8px}.extra-remove{flex:none;margin:0;padding:4px 8px;background:transparent;color:#ff5a4d;border-color:transparent}.extra-remove:hover:not(:disabled){background:#4a231e}.extra-preview{display:block;width:100%;max-height:160px;margin-top:6px;border-radius:6px;background:#000;object-fit:contain}.extra-badge{margin-left:6px;font-size:12px;color:var(--muted);white-space:nowrap;cursor:help}
.channel-settings .section-heading{display:flex;justify-content:space-between;align-items:center}.channel-settings .section-heading span{display:inline-flex;gap:4px}.channel-settings .section-heading button{margin:10px 0 0;padding:4px 8px;font-size:13px}.channel-settings .detect-button{margin:10px 0 0;padding:6px 10px;font-size:13px}.channel-row{display:flex;align-items:center;gap:6px;margin-top:8px}.channel-row select{flex:1 1 0;min-width:0;margin:0;padding:8px 10px;font-size:13px}.star-button{flex:none;margin:0;padding:4px 7px;font-size:15px;line-height:1;background:transparent;border-color:transparent;color:var(--muted)}.star-button.on{color:#f2c94c}.star-button:hover:not(:disabled){background:#2c3a30}.call-mark{flex:none;font-size:13px;cursor:help}.remote-channel .remote-device{flex:1;min-width:0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.listen-chips{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 4px 26px}.listen-chips .listen-toggle{margin:0;padding:3px 8px;font-size:12px}
.transfer-progress{width:90px;height:8px;accent-color:var(--accent);cursor:help}
.channel-row .side-select{flex:0 0 86px}.level-meter{height:4px;margin:5px 34px 2px 26px;background:#1d2b22;border-radius:2px;overflow:hidden;cursor:help}.level-meter i{display:block;height:100%;width:0;background:var(--accent);transition:width .1s linear}.level-meter i.hot{background:#ff5a4d}.device-settings .profile-editor{margin-top:16px}.profile-controls .profile-color,.device-settings .profile-controls .profile-color{margin:0;padding:3px 10px;height:34px}.profile-controls .profile-upload{height:34px}.profile-controls button{height:34px}.profile-color input{margin:0;display:inline-block}
.upload-pace label{margin:10px 0 2px;font-size:12px}.upload-pace input[type=range]{width:100%;margin:0;padding:0;background:transparent;border:0;accent-color:var(--accent);height:20px}.upload-pace .pace-scale{display:flex;justify-content:space-between;font-size:11px;opacity:.7}
.episode-timer.waiting{opacity:.4}
.legal{max-width:760px;padding:20px 0 40px}.legal h1{font-size:clamp(32px,4vw,52px)}.legal h2{margin:34px 0 12px}.legal p,.legal li{color:var(--muted);line-height:1.6}.legal li{margin-bottom:6px}.legal a,.legal-links a{color:var(--accent)}.legal-links{margin-top:40px}
mdlib-podcast-editor{display:block}mdlib-podcast-editor::part(editor){--podcast-bg:var(--paper);--podcast-panel:#0b130f;--podcast-input:#0e1a14;--podcast-border:var(--line);--podcast-text:var(--ink);--podcast-muted:var(--muted);--podcast-accent:var(--accent);--podcast-duration:var(--danger);font-size:14px}.panel-rundown mdlib-podcast-editor{margin-top:4px}
