:root{font-family:"Segoe UI Variable","Segoe UI",sans-serif;color:#eeeef0;background:#171819;color-scheme:dark;--muted:#a3a6a8;--line:#393c3e;--accent:#bbf6cf;--surface:#222426}*{box-sizing:border-box}body{margin:0}main{max-width:980px;margin:auto;padding:24px 28px 48px}button,input,a,summary{font:inherit}button,a,summary{touch-action:manipulation}button,a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}button{border:1px solid var(--line);border-radius:6px;padding:10px 15px;background:var(--surface);color:inherit;cursor:pointer}button:hover:not(:disabled),summary:hover{background:#303335}button:disabled{opacity:.4;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:#163723;font-weight:650}.primary:hover:not(:disabled){background:#d3fbdf}.icon-button{width:44px;padding:10px;flex-shrink:0}svg{width:19px;height:19px;flex-shrink:0;stroke-width:1.75}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input{background:#171819;border:1px solid #505456;color:inherit;padding:11px 12px;border-radius:5px;min-width:0;width:100%;min-height:44px}input[type=number]{width:100px}input[type=checkbox]{width:19px;min-height:19px;accent-color:var(--accent)}label{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--muted)}small,.eyebrow{color:var(--muted);font-size:13px}h1,h2,h3,p{margin:0}h1{font-size:19px;display:flex;align-items:center;gap:9px;font-weight:600}h2{font-size:19px;font-weight:600}h3{font-size:17px;font-weight:550;overflow-wrap:anywhere}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}
header{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px}.header-tools{display:flex;align-items:center;gap:16px}#connection{max-width:300px}#settings{border:0;margin:0;position:relative}#settings summary{padding:10px;list-style:none}#settings[open]>div{position:absolute;right:0;top:48px;width:280px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:6px;z-index:5;box-shadow:0 12px 40px #0005}#notificationControls label{flex-direction:row;align-items:center;color:inherit}#notificationStatus{display:block;margin-top:8px}
.clock{text-align:center;padding:30px 0 24px}.clock h2{font-size:23px;margin:9px 0;overflow-wrap:anywhere;min-height:28px}.eyebrow{font-size:12px;text-transform:uppercase}.digits{font-family:"Bahnschrift","DIN Alternate",monospace;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.12;white-space:nowrap;letter-spacing:0;max-width:100%}.green{color:#bbf6cf}.yellow{color:#ffe49a}.red{color:#ff858c}.clock-status{min-height:28px;display:flex;justify-content:center;gap:14px;align-items:center}#status{font-size:13px;text-transform:uppercase}#phase{font-size:13px}.transport{display:flex;justify-content:center;gap:16px;align-items:center;padding:0 0 26px}.transport-main{min-width:150px;min-height:50px;font-size:17px}.adjustments{display:flex;gap:6px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:24px;margin-top:8px}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);padding:14px 4px;min-width:80px}.tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent)}#draftBadge{font-size:10px;color:#ffe49a}section[role=tabpanel]{padding:24px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.row{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:16px 0}.next-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 22px}.next-row h3{margin-top:7px}.next-row button{max-width:50%;text-align:left}.next-row button span{overflow-wrap:anywhere}.run-entries,.playlist-entries{list-style:none;padding:0;margin:0}.run-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 12px;border-top:1px solid var(--line);border-left:3px solid transparent}.run-entry.active{border-left-color:var(--accent);background:#25352b}.run-entry h3{margin-bottom:5px}.run-entry .row{margin:0;flex-shrink:0}.run-entry small{display:block}.run-entry-title{min-width:0}.run-entry .row button{font-size:13px;padding:8px 10px}.run-entry.next h3:after{content:" · Up next";color:var(--accent);font-size:12px}details{border-top:1px solid var(--line);margin-top:20px}summary{cursor:pointer;min-height:52px;padding:14px 0;color:var(--muted)}summary svg{vertical-align:middle;margin-right:8px}summary::marker{color:var(--muted)}.editor-content{padding:10px 0 20px;max-width:100%}.editor-content>label{margin-bottom:12px}.editor-content p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 16px}.editor-content>input{width:100%}#presets button{min-width:60px}.playlist-toolbar{justify-content:space-between}.file-actions{display:flex;gap:8px}#playlistNotice,#runNotice{font-size:13px;color:var(--muted);margin:14px 0;overflow-wrap:anywhere}.playlist-entry{border-top:1px solid var(--line);padding:0 0 0 10px;border-left:3px solid transparent}.playlist-entry.active{border-left-color:var(--accent)}.playlist-entry details{margin:0;border:0}.playlist-entry summary{display:flex;align-items:center;gap:12px;list-style:none;color:inherit;padding:16px 0}.playlist-entry summary::-webkit-details-marker{display:none}.playlist-number{width:24px;color:var(--muted);font-size:13px;flex-shrink:0}.playlist-summary{flex:1;min-width:0}.playlist-summary strong{display:block;font-size:15px;font-weight:550;overflow-wrap:anywhere}.playlist-summary small{display:block;margin-top:5px}.playlist-entry summary>svg{width:16px;margin-right:10px}.playlist-fields{display:grid;grid-template-columns:minmax(0,1fr) 100px 100px;gap:12px;padding:0 10px 14px 36px}.playlist-fields input{width:100%}.playlist-actions{display:flex;gap:6px;grid-column:1/-1}.playlist-entry[draggable=true]{cursor:grab}.playlist-entry.dragging{opacity:.45}.save-bar{display:flex;gap:8px;padding:16px 0;position:sticky;bottom:0;background:#171819;border-top:1px solid var(--line)}.pairing-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center;margin-bottom:28px}#qr{background:white;padding:12px;border-radius:4px;justify-self:start;max-width:100%}#qr:empty{display:none}#qr img{display:block;width:196px;max-width:100%;height:auto}.danger{color:#ffadb2}#message{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#292c2e;border:1px solid #555b5e;border-radius:6px;padding:12px 18px;font-size:14px;max-width:min(560px,calc(100% - 32px));width:max-content;z-index:20;box-shadow:0 6px 30px #0005;overflow-wrap:anywhere}#landing{text-align:center;min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.landing-clock{font:500 100px "Bahnschrift",monospace;color:var(--accent)}#landing h2{font-size:32px}
body.display{background:#080909}body.display main{max-width:none;padding:0}body.display #appHeader{display:none}body.display #session{min-height:100dvh;display:flex;align-items:center;justify-content:center}body.display .clock{width:100%;padding:36px 24px 130px}body.display .clock h2{font-size:28px;max-width:1000px;margin:16px auto}body.display .eyebrow{font-size:16px}body.display .clock-status{margin-top:18px}body.display #status{font-size:22px}body.display #phase{font-size:16px}#displayTools{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;max-width:calc(100% - 32px);width:max-content;padding:12px 16px;background:#202224;border:1px solid var(--line);border-radius:6px;transition:opacity .2s}body.display.tools-idle #displayTools{opacity:0;pointer-events:none}body.display.tools-idle #displayTools:focus-within{opacity:1;pointer-events:auto}.display-connection{position:fixed;top:16px;left:16px;right:16px;color:#ffe49a;font-size:14px;text-align:center}.display-connection:empty{display:none}
@media(max-width:600px){main{padding:12px 16px 120px}.header-tools{gap:8px}#connection{max-width:150px;font-size:11px}h1{font-size:17px}.clock{padding:24px 0 16px}.clock h2{font-size:20px}.transport{position:sticky;top:0;z-index:4;background:#171819;padding:12px 0;gap:8px;justify-content:space-between}.transport-main{min-width:115px;font-size:16px}.adjustments button{padding:9px;gap:4px}.adjustments{gap:4px}.tabs{gap:12px;justify-content:space-between}.tabs button{min-width:0;flex:1}.section-heading{align-items:baseline}.section-heading h2{font-size:17px}.section-heading small{font-size:11px}.next-row{align-items:stretch;flex-direction:column;gap:14px}.next-row button{max-width:100%;justify-content:flex-start}.run-entry{align-items:flex-start;flex-direction:column;gap:10px}.playlist-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-left:0}.playlist-fields>label:first-child{grid-column:1/-1}.playlist-fields input[type=number]{width:100%}.pairing-layout{grid-template-columns:minmax(0,1fr);gap:18px}#qr{justify-self:center}body.display .clock{padding:40px 12px 120px}body.display .clock h2{font-size:22px}body.display #status{font-size:18px}#displayTools{bottom:16px;width:calc(100% - 24px)}.save-bar{bottom:0}#message{bottom:12px}.landing-clock{font-size:80px}}
.adjustments button{white-space:nowrap;min-width:44px}
body.display.time-up{background:#ff858c;color:#000}
body.display.time-up .digits,body.display.time-up .clock small,body.display.time-up .eyebrow{color:#000}
.playlist-fields>label:first-child,.playlist-fields>label:nth-child(2){grid-column:1/-1}
.drag-handle{cursor:grab;touch-action:none;border:0;background:none;color:var(--muted);padding:4px;width:28px;min-width:28px}
.drag-handle svg{margin:0!important}.playlist-entry summary{gap:8px}.playlist-number{width:18px}
@media(max-width:600px){.adjustments button{font-size:13px}}
@media(max-width:360px){.adjustments button span{display:none}.adjustments button{width:44px}.tabs{gap:4px}}
@media(max-height:500px){body.display .clock{padding:16px 16px 90px}body.display .clock h2{font-size:20px;margin:6px auto}body.display .clock-status{margin-top:4px}body.display .eyebrow{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#displayLauncher{width:100%;max-width:560px;margin:0 auto;padding:48px 24px;min-height:100dvh;display:flex;flex-direction:column;align-items:stretch;gap:24px}
#displayLauncher h1{font-size:26px;justify-content:center;text-align:center}
.display-app-icon{align-self:center;border-radius:16px}
.join-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
#savedDisplayActions{justify-content:center;margin:0}
#joinDisplay{display:flex;flex-direction:column;gap:14px}
#joinDisplay button{align-self:flex-start}
#joinStatus,#displayUpdate{color:#ffe49a;font-size:14px;line-height:1.6;overflow-wrap:anywhere;min-height:22px}
#installHelp{border-top:1px solid var(--line);padding-top:20px}
#installHelp p{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.7}
#scanVideo{display:block;width:100%;max-height:45dvh;aspect-ratio:1;object-fit:cover;background:#171819;border-radius:6px;margin-bottom:12px}
body.display .clock{padding-top:max(36px,env(safe-area-inset-top));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
#displayTools{bottom:max(16px,env(safe-area-inset-bottom))}
.display-connection{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}
@media(max-width:600px){#displayLauncher{padding:max(32px,env(safe-area-inset-top)) 20px max(32px,env(safe-area-inset-bottom))}body.display .clock{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}
