:root{font-family:Inter,system-ui,sans-serif;color:#e9f0ff;background:#090f1c;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 0,#153c48 0,transparent 45%)}.shell{max-width:1240px;margin:auto;padding:0 36px}header{height:110px;display:flex;align-items:center;gap:30px;border-bottom:1px solid #273248}.brand{font-size:24px;letter-spacing:3px;font-weight:850;color:white;text-decoration:none}.brand span{font-size:10px;display:block;letter-spacing:5px;color:#6ad7e5;margin-top:6px}#account{margin-left:auto;display:flex;align-items:center;gap:16px}#connection,.muted,footer{color:#91a1ba;font-size:14px}h1{font-size:42px;letter-spacing:-1px;margin:12px 0}h2{font-size:26px;letter-spacing:-.6px}button,.primary{display:inline-block;text-decoration:none;cursor:pointer;font:inherit;border:1px solid #38465d;background:#202b3e;color:#e9f0ff;padding:12px 17px;border-radius:10px;transition:.15s}button:hover{filter:brightness(1.15)}button:disabled{opacity:.35;cursor:default}.primary{background:#58d9dc;color:#082026;font-weight:750;border-color:#58d9dc}.danger{color:#ffb6bc}.intro{display:flex;align-items:center;justify-content:space-between;margin:42px 0 26px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#6ad7e5}.grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px}.card{background:#121c2de6;border:1px solid #2a384f;border-radius:18px;padding:28px}.player{display:flex;flex-direction:column}.player h2{font-size:32px;overflow-wrap:anywhere}.player #dj{color:#91a1ba}.player progress{margin-top:auto}progress{width:100%;height:6px;accent-color:#58d9dc}.timeline,.mic-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.timeline{margin:13px 0 24px}.timeline button{padding:6px 11px;font-size:12px}.controls{display:flex;gap:10px;flex-wrap:wrap}.pill{border-radius:20px;border:1px solid #43516a;font-size:10px;padding:6px 10px;letter-spacing:1px}.pill.live{color:#58d9dc;border-color:#58d9dc}.meter{height:14px;background:#26344b;border-radius:8px;overflow:hidden;margin:24px 0}.meter div{height:100%;width:0;background:linear-gradient(90deg,#58d9dc,#f4d770);transition:width .1s}input[type=range]{width:100%;accent-color:#58d9dc;margin:14px 0 20px}.mic label{color:#91a1ba;font-size:13px}.mic #mic{width:100%}.queue h2 span{font-size:16px;background:#25334a;padding:3px 9px;border-radius:20px;margin-left:8px}form{display:flex;gap:10px}input[type=url]{min-width:0;flex:1;background:#0c1423;color:white;border:1px solid #38465d;border-radius:10px;padding:14px;font:inherit}ol{list-style:none;padding:0;margin:20px 0}li{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid #26344b}li .number{color:#6ad7e5}li .title{flex:1;overflow-wrap:anywhere}li button{padding:6px 9px;font-size:12px}.tips p{line-height:1.6}#notice{color:#f4d770;min-height:24px}footer{padding:20px 0 35px}#welcome{padding:80px 0;max-width:650px}#welcome h1{font-size:76px;line-height:1.05}#welcome p{line-height:1.8;margin:25px 0}#welcome .primary{margin:12px 0}[hidden]{display:none!important}@media(max-width:800px){.shell{padding:0 18px}header{gap:12px}.grid{grid-template-columns:1fr}.intro{align-items:flex-start}.intro h1{font-size:30px}#connection{display:none}.brand{font-size:20px}#account{font-size:12px}#welcome h1{font-size:56px}form{flex-direction:column}.card{padding:22px}}

.dropzone{border:2px dashed #456078;border-radius:14px;background:#0c1625;padding:28px 20px;text-align:center;cursor:pointer;transition:.2s;margin-top:12px}.dropzone strong,.dropzone span,.dropzone small{display:block}.dropzone strong{font-size:20px;color:#d8f9fa}.dropzone span{color:#6ad7e5;margin-top:8px}.dropzone small{font-size:12px;color:#91a1ba;margin-top:16px;line-height:1.5}.dropzone.dragging{border-color:#58d9dc;background:#14333d}.dropzone.disabled{opacity:.45;cursor:default}.dropzone:focus-visible{outline:2px solid #58d9dc;outline-offset:4px}.upload-results{list-style:none;padding:0}.upload-results li{padding:7px 0;border:0;font-size:13px;overflow-wrap:anywhere}.upload-results .success{color:#6ad7e5}.upload-results .error{color:#ffb6bc}#uploadLabel{font-size:13px;color:#6ad7e5;overflow-wrap:anywhere}#uploadProgress{height:8px}

.library{grid-column:1/-1}#librarySearch{width:100%;padding:12px;border:1px solid #38465d;border-radius:10px;background:#0c1423;color:white;font:inherit}#libraryList{max-height:420px;overflow:auto;list-style:none;padding:0}.library h2 span{color:#6ad7e5;font-size:18px}

.library .title small{display:block;color:#9aa6bd;margin-top:6px}.library select{margin:12px 0;padding:12px;background:#101725;color:#fff;border:1px solid #344055;border-radius:10px}dialog{background:#151e2d;color:#fff;border:1px solid #344055;border-radius:16px;padding:28px;width:min(460px,90vw)}dialog::backdrop{background:#0009}dialog label{display:block;margin:16px 0}dialog input{display:block;width:100%;margin-top:8px}dialog .controls{margin-top:20px}

/* Song editor uses stacked fields rather than the queue form's horizontal layout. */
#metadataDialog{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:32px;box-sizing:border-box}
#metadataForm{display:flex;flex-direction:column;gap:0;width:100%}
#metadataForm h2{margin:0 0 12px;font-size:26px}
#metadataForm label{width:100%;margin:12px 0;font-size:15px;font-weight:600}
#metadataForm input{box-sizing:border-box;width:100%;min-width:0;min-height:52px;padding:14px 16px;font:inherit;font-size:16px;color:#fff;background:#0c1423;border:1px solid #43536d;border-radius:10px}
#metadataForm input:focus{outline:2px solid #58d9dc;outline-offset:2px}
#metadataForm .controls{justify-content:flex-end;gap:12px;margin-top:20px}
#metadataForm button{min-height:46px;padding:12px 20px;font-size:15px}
@media(max-width:600px){#metadataDialog{padding:24px}#metadataForm .controls button{flex:1}}

/* Radio studio console */
:root{background:#080a10}body{background:radial-gradient(ellipse at 90% 0,#26151d,transparent 50%),#080a10}.shell{max-width:1480px}.brand{display:flex;align-items:center;gap:16px}.brand img{width:76px;height:76px;object-fit:contain;border-radius:12px;border:1px solid #455066}.brand span{color:#c4cad6;letter-spacing:4px}.intro{margin:28px 0 20px}.intro h1{font-size:34px}.broadcast-strip{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:28px 32px;background:linear-gradient(130deg,#1d202b,#10121a);border:1px solid #363b4b;border-radius:16px;box-shadow:0 12px 36px #0005}.on-air{display:flex;align-items:center;gap:16px;width:fit-content;margin-top:12px;padding:16px 24px;background:#0a0b10;border:2px solid #414655;border-radius:8px;color:#858b99;font-size:30px;letter-spacing:3px}.live-dot{width:14px;height:14px;border-radius:50%;background:currentColor;flex-shrink:0}.on-air.live{background:#410d15;color:#ff525f;border-color:#ed3344;box-shadow:0 0 24px #ec334440,inset 0 0 20px #ec334420}.on-air.live .live-dot{box-shadow:0 0 14px #ff3344}.on-air.music-on{color:#69dfb4;border-color:#357c62}.broadcast-strip p{color:#a5adbd;font-size:14px;margin-bottom:0}.studio-clock{text-align:right}.studio-clock span,.studio-clock small{display:block;font-size:10px;letter-spacing:2px;color:#9ba5b7}.studio-clock strong{display:block;font-family:ui-monospace,monospace;font-size:40px;letter-spacing:3px;margin:10px 0}.grid{grid-template-columns:1.6fr 1fr}.card{background:linear-gradient(145deg,#1a1e2a,#10141d);border-color:#343b4c;box-shadow:0 8px 24px #0003}.eyebrow{color:#aab6ce}.player h2{font-size:36px}.player progress{height:10px}.mic .meter{height:22px;border:1px solid #3e495e;padding:3px;background:#070c14}.mic #mic{min-height:52px}.mic .pill.live{color:#ff525f;border-color:#ed3344;background:#410d15}.queue{grid-column:1}.library{grid-column:1/-1;grid-row:3}.tips{grid-column:2;grid-row:2}.library #libraryList li{padding:18px 4px}.library .title strong{font-size:17px}
@media(max-width:800px){header{height:auto;min-height:100px;flex-wrap:wrap;padding:16px 0}.brand img{width:58px;height:58px}.broadcast-strip{padding:22px;align-items:flex-start;flex-direction:column}.on-air{font-size:22px;padding:14px 16px;letter-spacing:1px}.studio-clock{text-align:left}.studio-clock strong{font-size:30px}.grid{grid-template-columns:1fr}.queue,.tips,.library{grid-column:1;grid-row:auto}.player h2{font-size:28px}}

.requests{grid-column:1/-1;grid-row:4}.requests ul{max-height:440px;overflow:auto;padding:0}.requests small{display:block;margin-top:7px;color:#aab6ce}.requests select{padding:12px;color:#fff;background:#101725;border:1px solid #344055;border-radius:8px}@media(max-width:800px){.requests{grid-column:1;grid-row:auto}.requests li{flex-wrap:wrap}.requests li .title{flex-basis:100%}}

.calendar{grid-column:1/-1;grid-row:4}.requests{grid-row:5}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:20px 0}.calendar-day{background:#0c111c;border:1px solid #303b4e;border-radius:10px;padding:12px;min-height:180px}.calendar-day.today{border-color:#58d9dc}.calendar-day h3{font-size:13px;margin:0 0 16px;color:#c7d4e9}.calendar-slot{border-left:5px solid;padding:10px;background:#202a3b;border-radius:5px;margin:10px 0;overflow-wrap:anywhere}.calendar-slot strong{font-size:13px}.calendar-slot p{margin:8px 0;font-size:13px}.calendar-slot small{display:block;font-size:11px;line-height:1.5;color:#d0dae9}.calendar-slot button{font-size:11px;padding:5px 8px;margin-top:10px}.presenter-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.presenter-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px}.booking-form{display:grid;grid-template-columns:1.3fr 1.2fr 1fr auto;align-items:end;gap:16px}.booking-form label{font-size:13px}.booking-form input,.booking-form select{display:block;width:100%;min-width:0;height:48px;padding:12px;margin-top:8px;color:#fff;background:#0c1423;border:1px solid #43536d;border-radius:8px;font:inherit}.booking-form button{min-height:48px}#bookingResult{color:#ffc857}@media(max-width:1100px){.calendar-days{grid-template-columns:repeat(4,minmax(0,1fr))}.booking-form{grid-template-columns:1fr 1fr}}@media(max-width:650px){.calendar,.requests{grid-column:1;grid-row:auto}.calendar-days{grid-template-columns:1fr}.calendar-day{min-height:0}.booking-form{grid-template-columns:1fr}}

/* Presenter workspaces: separate preparation and scheduling from live output. */
.shell{max-width:1560px;padding:0 32px}header{height:96px}.brand img{width:64px;height:64px}.intro{margin:24px 0 18px}.intro h1{font-size:28px;margin:8px 0}.broadcast-strip{padding:20px 28px;margin-bottom:20px}.on-air{font-size:26px;margin-top:8px;padding:12px 20px}.studio-clock strong{font-size:32px}.workspace-tabs{display:flex;gap:6px;border-bottom:1px solid #354056;margin-bottom:22px;padding-bottom:0}.workspace-tabs button{border:none;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;padding:16px 24px;background:transparent;color:#aab6ca;font-weight:650}.workspace-tabs button[aria-selected=true]{background:#1b273b;border-bottom-color:#58d9dc;color:#fff}.tab-count{margin-left:8px;border-radius:20px;background:#68303b;color:#ffd5db;font-size:11px;padding:3px 7px}.studio-console{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:20px;align-items:start}.studio-console .card{padding:24px;min-width:0;grid-row:auto;grid-column:auto}.studio-console .player{grid-column:1;grid-row:1;min-height:340px}.studio-console .mic{grid-column:2;grid-row:1;min-height:340px}.studio-console .queue{grid-column:1;grid-row:2}.studio-console .requests{grid-column:2;grid-row:2}.studio-console .player h2{font-size:30px;min-height:72px;margin:18px 0}.studio-console .player .controls{margin-top:8px}.studio-console .queue ol{max-height:390px;overflow:auto;margin-bottom:0}.studio-console .requests ul{max-height:390px}.studio-console .requests li{flex-wrap:wrap;gap:8px}.studio-console .requests li .title{flex-basis:100%;margin-bottom:4px}.studio-console .requests h2{margin-bottom:16px}.studio-console .requests li button{padding:7px 12px}.workspace>.card{padding:28px}.workspace-heading{padding-bottom:18px;margin-bottom:20px;border-bottom:1px solid #354056}.workspace-heading h1{font-size:28px}.ingest{margin:20px 0 24px;padding:16px 20px;border:1px solid #38465c;background:#101827;border-radius:12px}.ingest summary{cursor:pointer;font-weight:650;color:#6ad7e5}.ingest .dropzone{margin-top:20px}.library #libraryList{max-height:580px}.calendar-days{margin-bottom:30px}.booking-form{padding-top:24px;border-top:1px solid #354056}.workspace{padding-bottom:20px}.workspace .card{grid-row:auto;grid-column:auto}
@media(max-width:900px){.studio-console{grid-template-columns:1fr}.studio-console .player,.studio-console .mic,.studio-console .queue,.studio-console .requests{grid-column:1;grid-row:auto;min-height:0}.studio-console .player h2{min-height:0}.shell{padding:0 18px}.workspace-tabs button{padding:14px 12px;font-size:13px}.workspace>.card{padding:20px}.broadcast-strip{padding:20px}.calendar-days{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.calendar-days{grid-template-columns:1fr}.workspace-tabs{gap:0}.workspace-tabs button{flex:1;padding:14px 8px}.tab-count{margin-left:3px}}

.handover-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 20px;border:1px solid #38465d;background:#101827;border-radius:10px;margin-bottom:20px}.handover-bar span{flex:1;min-width:180px;font-size:13px}.handover-bar select{padding:10px;background:#1a2436;color:#fff;border:1px solid #43536d;border-radius:8px}.studio-console .soundboard{grid-column:1;grid-row:3}.studio-console .audio-levels{grid-column:2;grid-row:3}.studio-console .requests{grid-row:2}.soundboard #soundboardPads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.soundboard #soundboardPads button{min-height:76px;background:#342134;border-color:#a1587e;font-weight:700;overflow-wrap:anywhere}.audio-levels label{display:block;margin:14px 0}.audio-levels output{float:right;color:#6ad7e5}.audio-levels input{display:block;width:100%;margin:12px 0}.library li{flex-wrap:wrap}.library li .title{min-width:220px}.queue li[draggable=true]{cursor:grab}.queue li.dragging{opacity:.4}#cueBar{position:sticky;bottom:0;z-index:20;padding:16px 24px;background:#192c35;border:1px solid #6ad7e5;border-radius:12px;box-shadow:0 -10px 35px #0007;display:flex;align-items:center;flex-wrap:wrap;gap:14px}#cueBar strong{font-size:12px;color:#6ad7e5}#cueBar small{flex-basis:100%;color:#bac9d2}#cueTitle{flex:1}#requestKind{margin-left:8px}@media(max-width:900px){.studio-console .soundboard,.studio-console .audio-levels{grid-column:1;grid-row:auto}}@media(max-width:550px){.soundboard #soundboardPads{grid-template-columns:1fr 1fr}.queue li{flex-wrap:wrap}.queue li .title{flex-basis:70%}.handover-bar select{width:100%}}

.show-features{max-width:1100px;margin:auto}.show-features form{display:flex;gap:12px;flex-wrap:wrap}.show-features input{min-width:260px;flex:1}#showPlaylists li{display:flex;gap:12px;align-items:center;padding:12px;flex-wrap:wrap}#showPlaylists li span{flex:1}#studioEmergency:not(:empty){padding:14px;background:#b91c1c;color:white;border-radius:8px}#liveTalkTimer{font-variant-numeric:tabular-nums;}

/* Independent columns keep shorter panels from leaving empty grid rows. */
.studio-console{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:16px;align-items:start}
.studio-column{display:flex;flex-direction:column;gap:16px;min-width:0}
.studio-console .studio-column .card{width:100%;min-height:0;grid-column:auto;grid-row:auto;padding:20px}
.studio-console .player h2{min-height:0;font-size:27px;line-height:1.3;margin:12px 0 16px}
.studio-console .player progress{margin-top:8px}
.studio-console .player #dj{margin:0 0 10px}
.studio-console .timeline{margin:10px 0 14px}
.studio-console .player .controls{margin-top:0}
.studio-console .card h2{margin-top:12px;margin-bottom:14px}
.studio-console .card p{line-height:1.45}
.studio-console .mic p{margin:10px 0}
.studio-console .mic .meter{margin:14px 0;height:18px}
.studio-console .mic input[type=range]{margin:10px 0 12px}
.studio-console .mic #mic{min-height:46px;margin-top:8px}
.studio-console .mic #voiceInfo{margin-bottom:0}
.studio-console #liveAudience{font-size:12px;color:#aab6ce;line-height:1.65;padding:10px 12px;background:#0c1423;border-radius:8px}
.studio-console .queue ol,.studio-console .requests ul{margin-top:12px;max-height:340px}
.studio-console .soundboard #soundboardPads{gap:8px}
.studio-console .soundboard #soundboardPads button{min-height:54px;padding:10px}
.studio-console .audio-levels label{margin:10px 0}
.handover-bar{padding:12px 16px;margin-bottom:16px}
.workspace-tabs{margin-bottom:16px}
@media(max-width:900px){.studio-console{grid-template-columns:1fr}.studio-column{gap:14px}.studio-console .studio-column .card{padding:18px}.studio-console .player h2{font-size:24px}}
/* Schedule approval inbox */
.schedule-notifications{padding:14px 18px;background:#162a36;border:1px solid #417b8b;border-radius:12px;margin-bottom:18px}.schedule-notifications ul{margin:8px 0;padding:0}.schedule-notifications li{padding:7px 0;font-size:13px}.booking-inbox{display:grid;gap:16px;margin-top:18px}.booking-request{padding:20px;border:1px solid #354056;border-left:5px solid;border-radius:12px;background:#101725;min-width:0}.booking-request h3{margin:0 0 10px;overflow-wrap:anywhere}.booking-status{font-size:12px;letter-spacing:1px;color:#ffc857}.booking-review{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.booking-review>select,.booking-review>label:first-of-type{grid-column:1/-1}.booking-request label{display:block;font-size:13px;color:#aab6ce}.booking-request input,.booking-request textarea,.booking-request select,#managerFilter{display:block;width:100%;min-width:0;padding:12px;margin-top:7px;background:#080f1c;color:#fff;border:1px solid #43536d;border-radius:8px;font:inherit}.booking-request textarea{min-height:80px;resize:vertical}.booking-request>button{margin:12px 8px 0 0}.booking-request details{margin-top:18px;border-top:1px solid #354056;padding-top:14px}.booking-request summary{cursor:pointer;color:#6ad7e5}.booking-messages{max-height:320px;overflow:auto}.booking-messages p{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;background:#1b2638;border-radius:8px;font-size:13px}.booking-message-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.booking-message-form button{align-self:flex-start}.calendar-slot[data-status=pending]{border-style:dashed;opacity:.8}.calendar-slot[data-status=alternative]{outline:1px dashed #ffc857}.workspace-tabs{flex-wrap:wrap}@media(max-width:600px){.booking-review{grid-template-columns:1fr}.booking-review>*{grid-column:1!important}.booking-request{padding:16px}.workspace-tabs button{flex:0 1 auto}}

/* Neon weekly broadcast timetable */
#workspace-schedule .calendar{background:linear-gradient(135deg,#101528,#080d1c);border:1px solid #384677;box-shadow:0 0 32px #1c1d502a;overflow:hidden}
#workspace-schedule .workspace-heading{padding:28px;border:1px solid #365584;border-radius:16px;background:radial-gradient(ellipse at 90% 10%,#7c167044,transparent 60%),linear-gradient(125deg,#101d37,#101126);box-shadow:inset 0 0 28px #14d8f011;margin-bottom:24px}
#workspace-schedule .workspace-heading h1{font-size:clamp(28px,3vw,42px);color:#f5fbff;text-shadow:0 0 20px #59e8ff66;margin:10px 0}
#workspace-schedule .workspace-heading .eyebrow{color:#66e7ff;letter-spacing:2px}
#workspace-schedule .workspace-heading p{color:#c2b8df;margin-bottom:0}
#calendarRange{font-size:19px;font-weight:700;color:#e8eaff}
#presenterLegend{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
#presenterLegend>span{border:1px solid #384d74;padding:10px 14px;border-radius:9px;background:#141e35;font-size:13px;color:#f0f5ff}
.schedule-grid-note{font-size:12px;color:#a9b7d1}.schedule-scroll{overflow:auto;max-height:820px;border:1px solid #427397;border-radius:12px;box-shadow:0 0 20px #23dcff15;margin-bottom:28px}
#calendarDays{display:grid;grid-template-columns:110px repeat(7,minmax(150px,1fr));gap:1px;background:#263450;margin:0;min-width:1160px}
.schedule-corner,.schedule-day-heading{position:sticky;top:0;z-index:2;background:linear-gradient(#192443,#10172d);padding:16px 10px;text-align:center;border-bottom:2px solid #42d5ed;box-shadow:inset 0 0 15px #17cdf014}
.schedule-day-heading strong{display:block;text-transform:uppercase;font-size:13px;letter-spacing:.6px;color:#ebfaff}.schedule-day-heading small{display:block;margin-top:6px;color:#abbcd9}.schedule-day-heading.today{border-bottom-color:#ee62cf;background:#30203d}.schedule-day-heading.today small{color:#ff99e1}
.schedule-corner{left:0;z-index:3;color:#65def8;font-size:12px;font-weight:800}.schedule-time{position:sticky;left:0;z-index:1;background:#10192b;color:#8dddf2;padding:20px 8px;text-align:center;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;min-height:116px}
.schedule-cell{padding:8px;background:linear-gradient(140deg,#11192b,#0b1121);min-height:116px;display:flex;flex-direction:column;gap:8px;min-width:0}
.schedule-empty{color:#344563;align-self:center;margin:auto;font-size:20px}
#calendarDays .calendar-slot{margin:0;padding:12px 10px;border:1px solid var(--presenter-colour,#5cdbf7);border-left-width:4px;border-radius:9px;background:linear-gradient(125deg,#20283d,#12182b);box-shadow:0 0 10px color-mix(in srgb,var(--presenter-colour,#5cdbf7) 22%,transparent);overflow-wrap:anywhere}
#calendarDays .calendar-slot .schedule-show-title{margin:0 0 8px;color:#fff;font-size:14px;font-weight:750;line-height:1.35}
#calendarDays .calendar-slot strong{display:block;color:var(--presenter-colour,#5cdbf7);font-size:12px;margin-bottom:7px}
#calendarDays .calendar-slot small{font-size:10px;color:#bac8df;line-height:1.6}
#calendarDays .calendar-slot .schedule-slot-status{margin-top:8px;font-size:9px;letter-spacing:.7px;font-weight:750;color:#a1e3c6}
#calendarDays .calendar-slot[data-status=pending]{border-style:dashed;opacity:1;box-shadow:none}#calendarDays .calendar-slot[data-status=pending] .schedule-slot-status{color:#ffc978}
#calendarDays .calendar-slot[data-status=alternative] .schedule-slot-status{color:#ffb6e3}
#calendarDays .calendar-slot button{padding:4px 8px;font-size:10px;margin-top:8px;background:#18243a}
@media(max-width:650px){#workspace-schedule .workspace-heading{padding:18px}.schedule-scroll{max-height:650px}}

/* Pink studio schedule */
#workspace-schedule .calendar{background:linear-gradient(135deg,#24132b,#160f22);border-color:#774367;box-shadow:0 0 32px #e76aba18}
#workspace-schedule .workspace-heading{background:radial-gradient(ellipse at 85% 15%,#d44d9740,transparent 65%),linear-gradient(125deg,#40213c,#211429);border-color:#a85d8a;box-shadow:inset 0 0 35px #ff98db12;border-radius:20px}
#workspace-schedule .workspace-heading h1{color:#ffe8f6;text-shadow:0 0 22px #f98bcc55}
#workspace-schedule .workspace-heading .eyebrow{color:#ffacd9}#workspace-schedule .workspace-heading p{color:#e6bcd5}
#calendarRange{color:#ffd5ed}#presenterLegend>span{background:#352039;border-color:#8c5078;border-radius:14px;color:#ffe6f5}
.schedule-grid-note{color:#d5acc8}.schedule-scroll{border-color:#9d5b89;border-radius:16px;box-shadow:0 0 24px #fb89d522}
#calendarDays{background:#57344f;gap:2px}
.schedule-corner,.schedule-day-heading{background:linear-gradient(#542c4b,#321f37);border-bottom-color:#fa91cf;box-shadow:inset 0 0 18px #ff93d312}
.schedule-corner,.schedule-time{color:#ffb9e3}.schedule-day-heading strong{color:#ffe9f8}.schedule-day-heading small{color:#e0b7d1}.schedule-day-heading.today{background:linear-gradient(#894069,#52243f);border-bottom-color:#ffc0e5}.schedule-day-heading.today small{color:#ffdaed}
.schedule-time{background:#2e1b31;min-height:116px}.schedule-cell{background:linear-gradient(140deg,#2c1c31,#211626)}.schedule-empty{color:#764564}
#calendarDays .calendar-slot{background:linear-gradient(125deg,#4a2b47,#2b1c33);border-radius:13px;padding:14px 12px}
#calendarDays .calendar-slot .schedule-show-title{color:#fff0fa}#calendarDays .calendar-slot small{color:#e9c9df}#calendarDays .calendar-slot button{background:#53314e;border-color:#915875}
#workspace-schedule #bookSlot{background:linear-gradient(135deg,#ffaddc,#f282c0);color:#391629;border-color:#ffbce3;box-shadow:0 5px 18px #f36db233}

/* Preview palette: electric magenta and cyan on midnight blue */
#workspace-schedule .calendar{background:linear-gradient(135deg,#090c24,#030717);border-color:#43468e;box-shadow:0 0 30px #fc29df18}
#workspace-schedule .workspace-heading{background:radial-gradient(ellipse at 15% 20%,#f224dd35,transparent 60%),radial-gradient(ellipse at 95% 90%,#00dfff30,transparent 55%),#080c25;border-color:#f145db;box-shadow:0 0 18px #f325d42b,inset 0 0 32px #00d9ff12}
#workspace-schedule .workspace-heading h1{color:#fff;text-shadow:0 0 20px #ff42db77}#workspace-schedule .workspace-heading .eyebrow{color:#34efff}#workspace-schedule .workspace-heading p{color:#dacafa}
#calendarRange{color:#d9fbff}#presenterLegend>span{background:#0c102a;border-color:#7359b0;color:#fff;box-shadow:0 0 10px #e72ce322}
.schedule-grid-note{color:#b9c9e9}.schedule-scroll{border-color:#17def7;box-shadow:0 0 16px #00dfff22}#calendarDays{background:#183854;gap:2px}
.schedule-corner,.schedule-day-heading{background:linear-gradient(#14133d,#060c21);border-bottom-color:#25dfff;box-shadow:inset 0 0 15px #00cfff28}
.schedule-day-heading strong{color:#fff;text-shadow:0 0 9px #009eff}.schedule-day-heading small{color:#b6d8fa}.schedule-day-heading.today{background:linear-gradient(#411048,#130d30);border-bottom-color:#ff40e3}.schedule-day-heading.today small{color:#ffabec}
.schedule-corner,.schedule-time{color:#72edff}.schedule-time{background:#050d20;box-shadow:inset 0 0 12px #00baff10}.schedule-cell{background:linear-gradient(135deg,#090d24,#05081a)}.schedule-empty{color:#284367}
#calendarDays .calendar-slot{background:linear-gradient(125deg,#171434,#080f25);box-shadow:0 0 13px color-mix(in srgb,var(--presenter-colour,#20ddff) 35%,transparent),inset 0 0 15px color-mix(in srgb,var(--presenter-colour,#20ddff) 12%,transparent)}
#calendarDays .calendar-slot .schedule-show-title{color:#fff}#calendarDays .calendar-slot small{color:#c4d6f3}#calendarDays .calendar-slot button{background:#171b3b;border-color:#675098}
#workspace-schedule #bookSlot{background:linear-gradient(135deg,#ff43df,#b238ed);color:#fff;border-color:#ff9cef;box-shadow:0 0 16px #ff30d344}

/* Five999 unified neon studio theme */
:root{--studio-bg:#050819;--studio-panel:#10132d;--studio-cyan:#25dfff;--studio-pink:#ff43df;--studio-line:#423969;color:#eef4ff;background:var(--studio-bg);color-scheme:dark}
body{background:radial-gradient(ellipse at 10% 0,#ec26cb1c,transparent 48%),radial-gradient(ellipse at 95% 20%,#00cfff16,transparent 50%),var(--studio-bg);background-attachment:fixed}
header{border-bottom-color:#674580}.brand img{border-color:#765593;box-shadow:0 0 20px #ed29ce18}.brand span,.eyebrow{color:#67eaff}
.card{background:linear-gradient(140deg,#151332,#090f23);border-color:var(--studio-line);box-shadow:0 8px 28px #0004,0 0 18px #e332dc09}
.broadcast-strip{background:radial-gradient(ellipse at 15% 20%,#f224dd25,transparent 60%),radial-gradient(ellipse at 95% 90%,#00dfff20,transparent 55%),#080c25;border-color:#a33e9f;box-shadow:0 0 22px #f325d41b,inset 0 0 24px #00d9ff0a}
.studio-clock strong{color:#e9fcff;text-shadow:0 0 16px #26dfff50}.studio-clock span,.studio-clock small{color:#b9c9e9}
.workspace-tabs{border-bottom-color:#574378}.workspace-tabs button{color:#bdb7d9}.workspace-tabs button[aria-selected=true]{background:linear-gradient(#371743,#17112d);border-bottom-color:var(--studio-pink);color:#fff;box-shadow:0 -5px 18px #f430d911}
.workspace-heading{border-bottom-color:#534170}.workspace-heading h1,.intro h1{color:#fff;text-shadow:0 0 18px #ef3fde25}
button,.primary{background:#1a1b3c;border-color:#65507c;color:#edf5ff}button:hover:not(:disabled){border-color:#ed79e1;box-shadow:0 0 12px #f633db22}
.primary{background:linear-gradient(135deg,#ff43df,#ad3ae8);border-color:#ff9cee;color:#fff;box-shadow:0 0 14px #ed38d02a}
button:focus-visible,a:focus-visible{outline:2px solid var(--studio-cyan);outline-offset:3px}
input:not([type=range]):not([type=checkbox]):not([type=file]),select,textarea,#librarySearch,.library select,.requests select,.booking-request input,.booking-request select,.booking-request textarea,#managerFilter,#metadataForm input{background:#080d24;color:#f3f4ff;border-color:#584975;border-radius:10px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--studio-cyan);outline-offset:2px}input::placeholder,textarea::placeholder{color:#a4a2c0}
input[type=range]{accent-color:var(--studio-cyan)}progress{accent-color:var(--studio-pink)}progress::-webkit-progress-bar{background:#27213f;border-radius:8px}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--studio-pink),var(--studio-cyan));border-radius:8px}
li{border-bottom-color:#383251}.queue h2 span,.tab-count{background:#441d4d;color:#ffc0ef}.player #dj,.mic label,.muted,footer,#connection{color:#acb5d1}li .number,.library h2 span{color:#67eaff}
.ingest{background:#0b1129;border-color:#5c4480}.ingest summary{color:#ff9ce9}.dropzone{background:linear-gradient(135deg,#251330,#0b1b32);border-color:#da56cd}.dropzone strong{color:#fff0fb}.dropzone span{color:#66e8ff}.dropzone.dragging{border-color:var(--studio-cyan);background:#123047}
.booking-request{background:linear-gradient(140deg,#17142f,#0a1125);border-top-color:#4c4070;border-right-color:#4c4070;border-bottom-color:#4c4070}.booking-request details{border-top-color:#49365f}.booking-request summary{color:#6ceaff}.booking-messages p{background:#241c3e;color:#eee6fa}.schedule-notifications{background:linear-gradient(135deg,#172140,#1c1230);border-color:#4da6c4}
dialog,#metadataDialog{background:linear-gradient(140deg,#211530,#0b1126);border-color:#b85fbc;box-shadow:0 0 32px #ef43d333}dialog::backdrop{background:#030617cc}
#cueBar{background:#11142e;border-color:#26dfff;box-shadow:0 0 20px #26dfff22}
.soundboard button{background:linear-gradient(135deg,#32133f,#0f2137);border-color:#b14fa9;color:#fff}.soundboard button:hover{border-color:#3eeaff}
/* Live and safety indicators retain their established meanings. */
.on-air.live,.mic .pill.live{background:#410d15;color:#ff525f;border-color:#ed3344}.on-air.music-on{color:#69dfb4;border-color:#357c62}.danger{color:#ffb6bc}.meter div{background:linear-gradient(90deg,#58d9dc,#f4d770)}

/* Neon presenter identities, request cards and conversations */
#presenterLegend>span{border-color:var(--presenter-colour,#ff39e5);box-shadow:0 0 12px color-mix(in srgb,var(--presenter-colour,#ff39e5) 24%,transparent)}
.presenter-dot{box-shadow:0 0 10px currentColor}#calendarDays .calendar-slot strong{text-shadow:0 0 9px color-mix(in srgb,var(--presenter-colour,#ff39e5) 55%,transparent)}
.booking-request{background:radial-gradient(ellipse at 100% 0,#00deff12,transparent 60%),linear-gradient(135deg,#1d1032,#081226);border:1px solid #953bac;border-left:5px solid var(--presenter-colour,#ff39e5);box-shadow:0 0 18px #f029de15;border-radius:16px}
.booking-request h3{color:#fff1fc;text-shadow:0 0 12px #ff43df22}.booking-request>p{color:#d4dbf2}
.booking-status{display:inline-block;margin:8px 12px 10px 0;padding:7px 10px;border-radius:8px;background:#241434;border:1px solid #855092;color:#ffb1f2;font-size:11px}
.booking-request[data-status=approved] .booking-status{color:#77ffe2;border-color:#309b8b;background:#0c292b}.booking-request[data-status=rejected] .booking-status{color:#ff9cc8;border-color:#a84472}.booking-request[data-status=pending] .booking-status{color:#ffe679;border-color:#91782b}
.booking-request details{border-top:1px solid #963b9f;margin-top:20px;padding-top:16px}.booking-request summary{color:#3eeaff;font-weight:650;text-shadow:0 0 10px #26dfff33}
.booking-messages p{background:linear-gradient(125deg,#2f1645,#10253e);border:1px solid #7051a0;border-left:3px solid #29dcff;padding:14px 16px;border-radius:12px;color:#f0e7ff;line-height:1.6}
.booking-message-form label,.booking-review label{color:#e6b5f0}.booking-message-form textarea,.booking-review textarea,.booking-review input,.booking-review select{background:#0b1028;border-color:#9b4caa;color:#fff}
.booking-message-form button,.booking-review button:last-child{background:linear-gradient(135deg,#ff43df,#a338ea);border-color:#ff92e9;color:#fff;box-shadow:0 0 14px #f132d92a}

.private-preparation{margin:24px 0;padding:24px;border:1px solid #cc46c7;border-radius:16px;background:linear-gradient(135deg,#231334,#0b172b);box-shadow:0 0 20px #ef35d515}.private-preparation h2{color:#ffb3ef}.private-preparation>p{line-height:1.6}#prepSummary{color:#6eeaff}#prepQueue li{padding:14px 0;flex-wrap:wrap}#prepQueue li[draggable=true]{cursor:grab}#prepSaveForm{margin-top:20px}#prepSaveForm input{flex:1;min-width:0;padding:12px}
.manager-conversations{margin-top:32px;border-top:2px solid #df47d8;padding-top:24px}.manager-conversations h2{color:#ffb3ef}.manager-conversations .booking-request{border-color:#8843a0}.manager-conversations details p{white-space:pre-wrap;overflow-wrap:anywhere}

.queue-drag-handle{font-size:24px;color:#65eaff;cursor:grab;padding:4px 6px;line-height:1;flex-shrink:0}#queue li[draggable=true],#prepQueue li{cursor:grab}#queue li.drag-target,#prepQueue li.drag-target{border-top:2px solid #ff43df;background:#ff43df12;box-shadow:inset 0 0 14px #26dfff15}#queue li.dragging,#prepQueue li.dragging{opacity:.55}#queue li[draggable=false] .queue-drag-handle{color:#77698b;cursor:default}

/* Presenter mixing console */
#workspace-live .studio-console{gap:22px;background:linear-gradient(145deg,#141327,#070b17);padding:18px;border:1px solid #534269;border-radius:22px;box-shadow:0 20px 45px #0005}
#workspace-live .card{position:relative;background:linear-gradient(150deg,#202039,#0b1021);border:1px solid #4f4765;border-radius:12px;box-shadow:inset 0 1px 0 #ffffff12,0 8px 20px #0004}
#workspace-live .card:before{content:'';position:absolute;top:10px;right:10px;width:5px;height:5px;border-radius:50%;background:#05070e;border:1px solid #68617b}
#workspace-live .eyebrow{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:2px}#workspace-live h2{font-size:23px}
#workspace-live .player{padding-top:24px;min-height:350px}.deck-platter{float:right;align-self:flex-end;width:138px;height:138px;margin:5px 0 16px 18px;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,#131323 0px,#131323 3px,#303046 4px,#131323 5px);border:3px solid #635177;box-shadow:0 0 0 7px #0a0d1b,0 0 22px #f62bcd22}
.deck-platter span{display:grid;place-items:center;text-align:center;width:66px;height:66px;border-radius:50%;background:linear-gradient(135deg,#ff48da,#532d9d);color:#fff;font-size:10px;font-weight:850;letter-spacing:1px;border:2px solid #ff8ce9}
#workspace-live .player #track{font-size:28px;min-height:0;margin:12px 0}#workspace-live .player #dj{font-family:ui-monospace,monospace;color:#73eaff}#workspace-live .timeline{font-family:ui-monospace,monospace;background:#04091a;padding:12px;border:1px solid #45325f;border-radius:8px}
#workspace-live .controls button{font-size:12px;text-transform:uppercase;letter-spacing:.7px;box-shadow:inset 0 1px 0 #ffffff15}
#workspace-live .audio-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#workspace-live .audio-levels>.eyebrow,#workspace-live .audio-levels>h2,#workspace-live .audio-levels>button,#workspace-live .audio-levels>p{grid-column:1/-1}
#workspace-live .audio-levels>h2{margin:0 0 8px}
#workspace-live .audio-levels>label{display:flex;flex-direction:column;align-items:center;gap:10px;width:auto;margin:0;padding:16px 6px;background:linear-gradient(#181a31,#090e1d);border:1px solid #4b3d67;border-radius:9px;font-size:11px;color:#fff;min-width:0;overflow:hidden}
#workspace-live .audio-levels output{font-family:ui-monospace,monospace;color:#55e9ff;background:#030a18;padding:6px;border:1px solid #304765;border-radius:5px}
#workspace-live .audio-levels input[type=range]{writing-mode:vertical-lr;direction:rtl;width:32px;height:150px;margin:4px 0;accent-color:#27e5ff}
#workspace-live .audio-levels>label:nth-of-type(2) input{accent-color:#ff43dc}#workspace-live .audio-levels>label:nth-of-type(3) input{accent-color:#bb76ff}
#workspace-live .mic .meter{height:24px;background:repeating-linear-gradient(90deg,#061013 0,#061013 8px,#243540 9px);border-radius:4px}#workspace-live .mic #mic{font-weight:800;letter-spacing:.8px;border-width:2px}
#workspace-live #soundboardPads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}#workspace-live #soundboardPads button{min-height:70px;margin:0;border:2px solid #b33db4;border-radius:10px;background:linear-gradient(#391f4b,#171a35);font-size:12px;overflow-wrap:anywhere;box-shadow:inset 0 0 14px #ff34db17}
#workspace-live #soundboardPads button:nth-child(3n+2){border-color:#2ddcef}#workspace-live #soundboardPads button:nth-child(3n){border-color:#9a6cee}
#workspace-live .queue li{background:#0b1023;margin:6px 0;padding:12px;border:1px solid #343752;border-radius:8px;font-size:13px}
@media(max-width:650px){#workspace-live .studio-console{padding:10px;gap:14px}.deck-platter{width:110px;height:110px}#workspace-live .audio-levels>label{font-size:10px}#workspace-live #soundboardPads{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Programme diagnostics and private microphone preparation */
.deck-platter{animation:deck-spin 4s linear infinite;animation-play-state:paused}.deck-platter.spinning{animation-play-state:running}@keyframes deck-spin{to{transform:rotate(360deg)}}
.output-bars{display:flex;align-items:flex-end;gap:4px;height:70px;overflow:hidden;background:#080d1c;padding:6px;border-radius:8px;clear:both}.output-bars span{flex:1;min-width:3px;height:3px;background:linear-gradient(to top,#25e4d4 0%,#f852dc 75%,#ff5252 100%);transition:height 70ms linear}
.mic-check{border:1px solid #734271;border-radius:12px;padding:14px;margin:16px 0;background:#161025}.mic-check audio{width:100%}
@media(prefers-reduced-motion:reduce){.deck-platter{animation:none}.output-bars span{transition:none}}

.studio-meter-panel{clear:both;padding:16px;background:linear-gradient(#080e14,#10171b);border:1px solid #34434a;border-radius:8px;box-shadow:inset 0 2px 12px #0009;margin:16px 0;font-family:ui-monospace,monospace}.meter-panel-heading{display:flex;justify-content:space-between;color:#b9ced0;font-size:10px;letter-spacing:1.5px;margin-bottom:12px}#meterMode{color:#4be7ac}.spectrum-layout{display:flex;gap:8px}.db-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:#70848b;width:22px;padding:0 0 2px}
.studio-meter-panel .output-bars{flex:1;height:110px;padding:0;gap:3px;border-radius:0;background:none;align-items:stretch}.spectrum-band{flex:1;display:flex;flex-direction:column-reverse;gap:2px;min-width:2px}.spectrum-band i{flex:1;border-radius:1px}.studio-meter-panel i.green{background:#15382b}.studio-meter-panel i.amber{background:#3d3519}.studio-meter-panel i.red{background:#3d1c22}.studio-meter-panel i.green.lit,.studio-meter-panel i.green.peak{background:#39ed98;box-shadow:0 0 4px #39ed9855}.studio-meter-panel i.amber.lit,.studio-meter-panel i.amber.peak{background:#ffcf4a;box-shadow:0 0 4px #ffcf4a55}.studio-meter-panel i.red.lit,.studio-meter-panel i.red.peak{background:#ff535d;box-shadow:0 0 4px #ff535d66}.studio-meter-panel i.peak{filter:brightness(1.35)}.frequency-axis{display:flex;justify-content:space-between;margin:7px 0 18px 30px;color:#778d94;font-size:9px}.console-level-row{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;align-items:center;margin:8px 0;font-size:10px;color:#b7c9cc}.console-level-row output{text-align:right;color:#51e3ac}.console-vu{display:flex;gap:2px;height:13px}.console-vu i{flex:1;min-width:1px;border-radius:1px}.vu-scale{display:flex;justify-content:space-between;margin:0 48px;font-size:9px;color:#778d94}#workspace-live .studio-meter-panel #outputLabel{font-family:inherit;font-size:10px;color:#91a0aa;line-height:1.5;margin:12px 0 0}

/* Compact independent columns: shorter panels do not leave empty grid rows. */
#workspace-live .studio-console{gap:14px;padding:14px;align-items:start}
#workspace-live .studio-column{display:flex;flex-direction:column;gap:14px;min-width:0}
#workspace-live .studio-console .studio-column .card{grid-column:auto;grid-row:auto;min-height:0;margin:0;padding:18px}
#workspace-live .studio-console .player{min-height:0}
#workspace-live .studio-console .card h2{margin:8px 0 12px}
#workspace-live .studio-console .card p{margin:8px 0;line-height:1.45}
#workspace-live .studio-console .queue ol,#workspace-live .studio-console .requests ul{margin:10px 0 0;max-height:360px}
#workspace-live .studio-meter-panel{margin:12px 0;padding:12px}
#workspace-live .mic-check{margin:12px 0;padding:12px}
@media(max-width:900px){#workspace-live .studio-console{grid-template-columns:1fr;padding:10px;gap:12px}#workspace-live .studio-column{gap:12px}}

/* Compact programme panel without decorative vinyl. */
#workspace-live .player{display:block;min-height:0!important;padding-top:16px!important}
#workspace-live .player>.eyebrow{display:block;margin-bottom:8px}
#workspace-live .player .studio-meter-panel{margin:8px 0 12px;padding:10px 12px}
#workspace-live .player .output-bars{height:82px}
#workspace-live .player h2{margin:8px 0;font-size:24px}
#workspace-live .player .timeline{margin:8px 0 10px}
#workspace-live .player .controls{margin-top:0}

.calendar-slot.manager-editable{cursor:pointer}.calendar-slot.manager-editable:hover,.calendar-slot.manager-editable:focus-visible{outline:2px solid #ff69de;outline-offset:2px;filter:brightness(1.15)}#calendarBookingDialog{width:min(760px,94vw);max-height:88vh;overflow:auto;background:#161025;color:#f3eafa;border:1px solid #ef5bd7;border-radius:16px;padding:20px}#calendarBookingDialog::backdrop{background:#040510bb}#calendarBookingDialog .booking-request{margin-top:12px}#calendarBookingDialog .booking-review{display:grid;grid-template-columns:1fr 1fr;gap:12px}#calendarBookingDialog textarea{min-height:80px}#calendarBookingDialog input,#calendarBookingDialog select{width:100%;min-width:0}@media(max-width:600px){#calendarBookingDialog .booking-review{grid-template-columns:1fr}}
