:root{--ink:#202327;--muted:#62707b;--blue:#244aca;--line:#dce2e9;--bg:#f3f5f8}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.5 system-ui,-apple-system,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;padding:11px 17px;font-weight:600}button:hover{background:#eaf0ff}button:disabled{opacity:.6;cursor:wait}.primary{background:var(--blue);border-color:var(--blue);color:white}.primary:hover{background:#18389f}header{height:106px;padding:12px max(5%,24px);background:white;display:flex;justify-content:space-between;align-items:center}#brand{display:flex;align-items:center;gap:25px;text-decoration:none;color:var(--ink)}#brand img{width:137px;height:82px;object-fit:contain}#brand span{font-size:14px;font-weight:750;letter-spacing:2px;border-left:1px solid var(--line);padding-left:25px}.identity{display:flex;gap:18px;align-items:center}.identity label{display:flex;gap:12px;align-items:center;font-size:14px}.avatar{border-radius:50%;background:#202327;color:white;width:38px;height:38px;display:grid;place-items:center}.demo{background:#e8edf8;color:#364767;text-align:center;padding:8px 18px;font-size:13px}nav{display:flex;gap:8px;padding:16px 5%;background:white;border-bottom:1px solid var(--line)}nav button{border:none;background:transparent}nav .active{background:#eaf0ff;color:var(--blue)}main{max-width:1440px;padding:38px 5% 55px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:750;color:var(--blue);margin:0 0 8px}h1{font-size:36px;letter-spacing:-1.2px;line-height:1.2;margin:0 0 10px}h2{font-size:21px;margin:0 0 10px}h3{font-size:16px}p{margin:0 0 14px}.heading p:not(.eyebrow),.muted,.hint{color:var(--muted)}.hint{font-size:14px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:white;border-radius:12px;margin-bottom:34px}.metrics>div{padding:22px 28px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics strong{font-size:30px;display:block;line-height:1.3}.metrics span{color:var(--muted);font-size:14px}.section-title{display:flex;justify-content:space-between;gap:20px;margin-bottom:10px}.section-title span{color:var(--muted);font-size:14px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.card{border:1px solid var(--line);background:white;border-radius:12px;padding:23px}.card-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.card h2{font-size:20px}.card .time{font-size:18px;font-weight:600}.card small{display:block;color:var(--muted);font-size:14px;margin:7px 0 18px}.badge{font-size:12px;font-weight:650;display:inline-block;padding:4px 9px;border-radius:5px;white-space:nowrap;align-self:start}.ready{background:#e2f3eb;color:#216344}.missing{background:#fff0d9;color:#885719}.cover{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:30px;padding-top:25px;gap:20px}.cover p{color:var(--muted);margin:0}.upload-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:30px}form,aside{padding:28px;background:white;border:1px solid var(--line);border-radius:12px}label{display:block;font-size:14px;font-weight:600;margin-bottom:18px}input:not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid #ccd4df;border-radius:7px;padding:11px 12px;background:white;color:var(--ink);margin-top:6px;font-weight:400}input[type=checkbox]{margin-right:8px;width:17px;height:17px}input[type=file]{font-size:14px}.identity select{width:auto;margin:0;padding:7px}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:18px}.filebox{border:2px dashed #bdc8dc;background:#f7f9fd;border-radius:9px;display:flex;align-items:center;flex-direction:column;padding:24px 15px;gap:9px;margin-bottom:24px}.filebox>span{font-size:14px;color:var(--muted)}.filebox .file-icon{font-size:34px;color:var(--blue)}details{border-top:1px solid var(--line);padding-top:16px;margin:20px 0}summary{cursor:pointer;font-weight:650;margin-bottom:16px}aside{align-self:start}aside hr{border:0;border-top:1px solid var(--line);margin:24px 0}aside ol{padding-left:22px;color:var(--muted)}aside li{padding:4px}.slotline{border-left:3px solid #ced8f5;padding:0 0 0 13px;margin:17px 0}.slotline span{display:block;font-size:14px;color:var(--muted)}.notice,#result:not(:empty){padding:15px;background:#edf2fc;border-radius:7px;margin-bottom:18px;font-size:14px}.error{color:#9e2c2c!important;background:#fff0ef!important}.success{color:#216344!important;background:#e2f3eb!important}.legend{display:flex;align-items:center;gap:18px;margin-bottom:15px;font-size:14px}.schedule-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:white}#calendar{border-collapse:collapse;width:100%;min-width:1080px;table-layout:fixed}th,td{border:1px solid var(--line);padding:8px;vertical-align:top}th{background:#edf1f6;font-size:14px;text-align:left;padding:13px 8px}th:first-child{width:75px}td:first-child{font-size:14px;font-weight:650;background:#fafbfc}td button{border:0;border-radius:5px;width:100%;text-align:left;padding:8px;font-size:14px;font-weight:600;min-height:82px}td button span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}td button.repeat{background:#f0f3f9}td button.first{background:#f0f4ff}td button.night{background:#f7f7f8;color:#62707b}dialog{border:0;border-radius:13px;padding:0;width:min(520px,94vw);max-height:90vh}dialog::backdrop{background:#15203966}dialog form{border:0}.dialogtitle{display:flex;justify-content:space-between;align-items:center}.dialogtitle button{border:0}footer{border-top:1px solid var(--line);padding:20px 5%;font-size:14px;display:flex;justify-content:space-between;gap:15px;color:var(--muted)}[hidden]{display:none!important}:focus-visible{outline:3px solid #6886ed;outline-offset:3px}@media(max-width:750px){header{padding:12px 18px;height:88px}#brand img{width:94px;height:64px}#brand span{font-size:11px;padding-left:12px;letter-spacing:1px}#brand{gap:12px}.identity label{font-size:0}.identity select{font-size:13px;max-width:135px}.avatar{display:none}nav{padding:10px;gap:0}nav button{font-size:14px;padding:10px}.demo{font-size:12px}main{padding:25px 18px}h1{font-size:28px}.heading{align-items:start;flex-direction:column}.metrics>div{padding:14px 10px}.metrics strong{font-size:23px}.metrics span{font-size:12px}.cards,.upload-layout,.formrow{grid-template-columns:1fr}.section-title{flex-direction:column;gap:0}.cover{align-items:start;flex-direction:column}form,aside{padding:20px}.legend{flex-wrap:wrap;gap:10px}footer{flex-direction:column} }

#calendar button span.calendar-ready{display:inline-block;background:#e2f3eb;color:#216344;font-weight:650;padding:3px 7px;border-radius:4px;margin-top:7px}#deliveryHelp{margin-top:20px}#submit{width:100%;padding:15px;font-size:17px}input[readonly],select:disabled{background:#f3f5f8;color:#465463}

/* Administration has a separate visual shell. */
.admin-mode{--blue:#2357bd;--bg:#e9edf3;background:var(--bg)}
.admin-mode header{background:#172333;color:#fff;border-bottom:4px solid #f3b64b}
.admin-mode #brand{color:#fff}.admin-mode #brand img{filter:invert(1)}
.admin-mode #brand span{border-color:#536174;letter-spacing:1.4px}
.admin-mode .avatar{background:#f3b64b;color:#172333;font-weight:750}
.admin-mode .identity select{background:#25364c;color:white;border-color:#52627a}
.admin-mode .demo{background:#25364c;color:#dce5ef}
#adminBanner{background:#fff;border-left:5px solid #f3b64b;margin:28px 5% 0;padding:21px 25px;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 2px 10px #17233308}
#adminBanner strong{font-size:23px;vertical-align:middle}#adminBanner p{color:#62707b;margin:7px 0 0}
.admin-tag{background:#172333;color:#fff;font-size:12px;letter-spacing:1.2px;font-weight:800;padding:6px 10px;border-radius:4px;margin-right:14px;vertical-align:middle}
.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 25px}
.admin-summary>div{background:white;border:1px solid #d3dbe6;border-top:3px solid #345d98;border-radius:7px;padding:17px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.admin-summary>div:last-child{border-top-color:#d0952e}.admin-summary span{font-size:14px;color:#546376}.admin-summary strong{font-size:27px}
.admin-mode #calendar th{background:#25364c;color:white;border-color:#47576c}.admin-mode #calendar td:first-child{background:#dfe6ef;color:#25364c}
.admin-mode .eyebrow{color:#536783}.admin-mode .schedule-wrap{box-shadow:0 5px 20px #1723330a}
@media(min-width:1050px){.admin-mode nav{position:absolute;top:141px;bottom:auto;width:218px;min-height:calc(100vh - 141px);background:#172333;padding:27px 16px;display:flex;flex-direction:column;border:0;gap:9px}.admin-mode nav button{text-align:left;color:#dce5ef;padding:15px}.admin-mode nav .active{background:#344c6e;color:white;border-left:3px solid #f3b64b;border-radius:5px}.admin-mode #adminNav{order:-1}.admin-mode main{margin-left:218px;max-width:none;padding:28px 32px 55px}.admin-mode #adminBanner{margin:28px 32px 0 250px}.admin-mode footer{margin-left:218px;padding-left:32px}}
@media(max-width:750px){#adminBanner{margin:18px 18px 0;padding:17px;align-items:start;flex-direction:column}#adminBanner strong{font-size:20px}.admin-summary{gap:8px}.admin-summary>div{padding:12px;flex-direction:column;align-items:start;gap:3px}.admin-summary span{font-size:12px}.admin-summary strong{font-size:23px}.admin-mode nav{background:#172333}.admin-mode nav button{color:#dce5ef}.admin-mode nav .active{color:white;background:#344c6e}}

/* Host overview prioritises delivery and programme status. */
.delivery-actions{display:flex;flex-direction:column;gap:9px;min-width:230px;flex-shrink:0}
.delivery-actions .primary{padding:14px 24px;font-size:17px}
.delivery-actions .secondary-action{background:transparent;border-color:transparent;color:#4b5b72;font-size:14px;padding:10px 16px;font-weight:600}
.delivery-actions .secondary-action:hover{background:#e7edf7;color:var(--blue)}
#home .heading{align-items:start;margin-bottom:26px}
.host-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0 24px;border-bottom:1px solid var(--line);margin-bottom:27px}
#home .metrics{display:flex;gap:30px;background:transparent;border:0;border-radius:0;margin:0}
#home .metrics>div{padding:0;border:0;display:flex;align-items:baseline;gap:9px}
#home .metrics strong{font-size:23px;line-height:1.3}
#home .metrics span{font-size:14px}
.deadline-note{margin:0;color:var(--muted);font-size:14px}
#home .section-title h2{font-size:23px}
@media(max-width:750px){.delivery-actions{width:100%;min-width:0}.host-overview{align-items:start;flex-direction:column;gap:12px;padding-top:0}#home .metrics{gap:22px}#home .metrics>div{align-items:start;flex-direction:column;gap:2px}.deadline-note{font-size:13px}}

.delivery-actions .secondary-action{background:#fff;border:1px solid #aab8cd;color:#324963;box-shadow:0 1px 2px #17233308}
.delivery-actions .secondary-action:hover{background:#e7edf7;border-color:#758caa;color:#244aca}
.card.card-ready{background:#def2e5;border-color:#8bc49c;border-left:5px solid #318453}
.card.card-ready h2,.card.card-ready .time{color:#184f30}
.card.card-ready small{color:#37614a}
.card.card-ready .badge.ready{background:#237346;color:#fff}
.card.card-ready button{border-color:#91bea0;color:#205c39;background:#f5fcf7}
.card.card-missing{background:#fff9ed;border-color:#e6cd9c;border-left:5px solid #c58c27}
.card.card-missing .badge.missing{background:#f6dfaf;color:#704a0e}

#calendar td.schedule-ready{background:#def2e5}#calendar td.schedule-ready button{background:#def2e5;color:#184f30;border-left:4px solid #318453}#calendar td.schedule-ready button:hover{background:#cce9d6}#calendar td.schedule-ready button span{color:#37614a}#calendar td.schedule-ready button span.calendar-ready{background:#237346;color:#fff}

.delivery-summary{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.summary-row{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #d8e1dc;font-size:14px}.summary-row span{color:#546376}.summary-row strong{font-weight:600;overflow-wrap:anywhere}.delivery-summary .hint{margin-top:15px}.receipt-content{max-width:850px;background:#def2e5;border:1px solid #8bc49c;border-top:5px solid #318453;border-radius:12px;padding:30px;margin-top:25px}.receipt-top{display:flex;align-items:center;gap:20px;margin-bottom:20px}.receipt-check{background:#237346;color:white;border-radius:50%;width:56px;height:56px;display:grid;place-items:center;font-size:28px;flex-shrink:0}.receipt-top h2{font-size:25px;margin:10px 0 5px}.receipt-top p{margin:0}.receipt-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.receipt-content h3{margin-top:23px}.receipt-content .slotline{border-color:#8bc49c}@media(max-width:750px){.summary-row{grid-template-columns:1fr;gap:3px}.receipt-content{padding:20px}.receipt-top{gap:12px}.receipt-top h2{font-size:21px}.receipt-actions{flex-direction:column}}

#programs aside form{padding:0;border:0;border-radius:0}#programs h3{margin-top:24px}#programResult:not(:empty),#replacementResult:not(:empty){padding:12px;margin-top:16px;border-radius:6px;font-size:14px}.replacement-item{padding:15px 0;border-top:1px solid var(--line)}.replacement-item p{font-size:14px;color:var(--muted);margin-top:5px}#programTimes p{font-size:14px}@media(min-width:1050px){.admin-mode #programNav{order:0}}

.library-file{border-top:1px solid var(--line);padding:20px 0}.library-file h3{margin:0 0 7px;overflow-wrap:anywhere}.library-file audio{display:block;width:100%;margin-top:12px}.library-file p{font-size:14px;color:var(--muted)}#realLibrary{margin-top:20px}#realResult:not(:empty){padding:16px;margin-top:20px;border-radius:7px;background:#edf2fc}#integration .heading{align-items:center}

#calendar .calendar-episode{font-weight:600;font-size:.85rem;line-height:1.35;margin:5px 0;color:inherit;}

.work-indicator:not([hidden]){display:flex;align-items:center;gap:12px;padding:16px;margin:12px 0;background:#fff3cd;border:1px solid #d7a82e;border-radius:10px}.work-spinner{width:22px;height:22px;border:3px solid #dac996;border-top-color:#705614;border-radius:50%;animation:work-spin 1s linear infinite}@keyframes work-spin{to{transform:rotate(360deg)}}
