:root{font-family:Inter,"Noto Sans TC","Microsoft JhengHei",sans-serif;color:#182c39;background:#f0f4f6;font-size:15px;--accent:#007f72;--line:#dce5e9}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:24px;padding:20px 4%;border-bottom:1px solid var(--line);background:white}a{color:var(--accent);text-decoration:none}.brand{font-size:22px;font-weight:800;color:#182c39;margin-right:auto}.brand small{font-size:10px;letter-spacing:2px;margin-left:10px;color:var(--accent)}main{max-width:1440px;margin:auto;padding:30px 4%}h1{font-size:32px;letter-spacing:-1px;margin:8px 0 12px}h2{font-size:20px;margin:0 0 22px}.hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--accent);font-weight:800}.muted,footer{color:#607582;font-size:13px;line-height:1.7}.badge{padding:10px 16px;background:#d8f3e8;border-radius:30px;color:#006257}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:24px;min-width:0}.narrow{max-width:430px;margin:9vh auto}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.grid .grid{gap:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stats article{padding:20px;border-radius:12px;border:1px solid var(--line);background:white;margin-bottom:24px}.stats strong{display:block;font-size:30px;margin-top:8px}nav{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:26px;flex-wrap:wrap}button{border:0;border-radius:7px;padding:11px 17px;background:var(--accent);color:white;font:inherit;cursor:pointer}button:hover{filter:brightness(.92)}button:disabled{opacity:.5;cursor:wait}nav button,.secondary{background:#e8eef1;color:#344d5b}nav .selected{background:#173c49;color:white}label{display:block;font-size:13px;font-weight:600;margin-bottom:17px}input,select{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #c8d5dd;border-radius:7px;background:white;color:inherit;font:inherit}input[type=checkbox]{display:inline;width:auto;margin:0 7px 0 0}.days{display:flex;gap:15px}.days label{margin:0}fieldset{border:1px solid var(--line);border-radius:7px;margin:0 0 17px;padding:15px}legend{font-size:13px}.row{border-top:1px solid var(--line);padding:17px 0}.row p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:#607582}.row button{padding:6px 12px;font-size:12px;margin-right:8px}.danger{background:#fce8e5;color:#a53528}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top;max-width:450px;overflow-wrap:anywhere}th{color:#607582;background:#f8fafb}#notice{position:sticky;top:10px;z-index:5;border-radius:8px;background:#183e49;color:white;white-space:pre-wrap}#notice:not(:empty){padding:14px;margin-bottom:20px}footer{text-align:center;padding:20px}#items{padding-left:24px}#items li{padding:12px 0;border-bottom:1px solid var(--line);cursor:grab}#items button{padding:4px 9px;margin-left:5px}.tv{background:#000;color:#fff;overflow:hidden}#screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}#player,#media-player{width:min(100vw,177.7778vh);height:min(56.25vw,100vh);background:#000}#media-player{object-fit:contain}#tv-controls{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;gap:8px;background:#111d;padding:12px;opacity:.1;transition:opacity .2s}#tv-controls:hover,#tv-controls:focus-within{opacity:1}#tv-status{margin-right:auto;font-size:12px}#tv-message{position:fixed;top:15px;left:20px;max-width:85%;background:#15242bdd;border-radius:8px;padding:10px}#tv-message:empty{display:none}dialog{border:1px solid var(--line);border-radius:16px;max-width:640px;width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:clamp(20px,3vw,32px);overflow-x:hidden;overflow-y:auto;color:#182c39}dialog::backdrop{background:#000a}dialog p{font-size:13px;line-height:1.7}#pair-error{color:#b32b2b}[hidden]{display:none!important}@media(max-width:800px){.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}header{flex-wrap:wrap;gap:12px}#clock{display:none}.hero{display:block}h1{font-size:26px}.days{gap:9px}#tv-controls{flex-wrap:wrap}}
/* Focus the control panel on the actions needed to start playback. */
#workspace h1{margin:0 0 20px}.content-group{padding:8px 0 4px}.content-group h2{margin:4px 0 16px}.optional{background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 18px;padding:15px 18px}.optional summary{cursor:pointer;font-weight:700}.optional[open] summary{margin-bottom:18px}.optional .card{margin-bottom:12px}.tv #tv-controls{opacity:0}.tv #tv-controls:hover,.tv #tv-controls:focus-within{opacity:1}#tv-countdown{position:fixed;inset:0;display:grid;place-items:center;background:#000;color:#fff;font-size:clamp(8rem,27vw,22rem);font-weight:800;z-index:3;pointer-events:none}#tv-message{z-index:4}
html:has(body.tv){background:#000}body.tv{min-height:100vh}
.row p.video-error{display:inline-block;margin:0 0 12px;padding:8px 11px;border-radius:7px;background:#fff0ed;color:#9d2e20;font-weight:700}
#tv-loading,#tv-pairing{position:fixed;inset:0;z-index:6;display:grid;place-items:center;background:#000;color:#fff}#tv-loading{font-size:24px}#tv-pairing form{width:min(440px,calc(100vw - 32px));padding:28px;border:1px solid #36505a;border-radius:16px;background:#13232b}#tv-pairing h1{font-size:27px;margin:0 0 12px}#tv-pairing p{color:#c3d2d9;line-height:1.6}#tv-pairing label{color:#fff}#tv-pairing button{width:100%}#pair-error{min-height:1.3em;color:#ffaaa0!important}
#tv-pairing form input{color:#000!important;-webkit-text-fill-color:#000!important;background:#fff!important;caret-color:#000!important;opacity:1}
#tv-pairing form input::selection{color:#000;background:#b8d6ff}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.section-head h2{margin:0}.section-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.fixed-list-panel{height:380px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.entry-dialog{max-width:640px;width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow-x:hidden;overflow-y:auto}.entry-dialog form{width:100%;min-width:0}.entry-dialog label,.entry-dialog input,.entry-dialog select{min-width:0;max-width:100%}.dialog-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.item-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.item-add-row label{margin:0}.wide-dialog{max-width:840px;width:calc(100vw - 32px)}.entry-dialog #items{height:min(300px,36vh);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:600px){dialog,.entry-dialog,.wide-dialog{width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 16px);padding:18px;border-radius:12px}.entry-dialog .grid,.item-add-row{grid-template-columns:1fr}.dialog-actions button{flex:1 1 130px}.entry-dialog #items{height:min(260px,32vh)}}
@media(max-width:800px){.fixed-list-panel{height:320px}.item-add-row{grid-template-columns:1fr}}
.playlist-tree-node{padding:12px 0;border-bottom:1px solid var(--line)}.playlist-tree-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px}.playlist-tree-details{min-width:0}.playlist-tree-details summary{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:700;min-height:36px}.playlist-tree-details summary span:first-child{overflow-wrap:anywhere}.tree-count{flex:none;color:#607582;font-size:12px;font-weight:500}.playlist-tree-items{list-style:none;margin:8px 0 2px 10px;padding:2px 0 2px 18px;border-left:2px solid var(--line)}.playlist-tree-item{padding:9px 4px;display:flex;flex-direction:column;gap:5px}.playlist-tree-item-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.playlist-tree-item-main span{font-size:12px}.playlist-tree-actions{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.playlist-tree-actions button{padding:7px 10px;font-size:12px}.playlist-tree-item .video-error{margin:0;width:max-content;max-width:100%}
@media(max-width:800px){.playlist-tree-row{grid-template-columns:1fr}.playlist-tree-actions{margin:2px 0 0 28px}}
.device-online-list{height:380px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.schedule-row-layout{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(0,1.3fr);gap:28px;align-items:start}.schedule-row-main>strong{display:block;font-size:18px;line-height:1.5;overflow-wrap:anywhere}.schedule-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.schedule-row-details{min-width:0;font-size:17px;line-height:1.6;overflow-wrap:anywhere}.schedule-playlist strong{font-size:19px;overflow-wrap:anywhere}.schedule-date{margin-top:8px;font-size:17px;font-weight:600;color:#405966}
@media(max-width:1050px){.schedule-row-layout{grid-template-columns:1fr;gap:18px}.schedule-row-details{font-size:16px}.schedule-playlist strong{font-size:18px}.schedule-date{font-size:16px}}
.media-upload-busy{overflow:hidden}.upload-progress-card{width:min(520px,calc(100vw - 32px));padding:30px;border-radius:16px;background:#fff;box-shadow:0 20px 70px #0008;text-align:center}.upload-progress-card h2{margin:0 0 12px}.upload-progress-card p{overflow-wrap:anywhere}.upload-progress-card progress{display:block;width:100%;height:20px;margin:22px 0 12px;accent-color:var(--accent)}#upload-progress-overlay{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;padding:16px;background:#000b;color:#182c39}#upload-progress-overlay[open]{display:grid;place-items:center}#upload-progress-overlay::backdrop{background:#000b}#upload-progress-value{display:block;font-size:22px;color:var(--accent)}#upload-progress-status{margin:12px 0 0;color:#405966;line-height:1.6}

