@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap";:root{--bg:#12161d;--bg-secondary:#161b24;--surface:#1a2029;--surface-raised:#212836;--border:#2b3342;--text:#eef1f6;--text-muted:#8b94a6;--accent:#f2a71b;--accent-dim:#7a5a1e;--live:#2dd4bf;--danger:#ef5b5b;--font-display:"Inter", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"IBM Plex Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark]{--bg:#12161d;--text:#eef1f6;--accent:#f2a71b}[data-theme=light]{--bg:#eef1f6;--text:#12161d;--accent:#f2a71b;--accent-dim:#7a5a1e;--surface:#e4e7ed;--border:#d0d4dc}[data-theme=chroma]{--bg:#0f0;--text:#000;--accent:#000;--text-muted:#333;--surface:#0f0;--border:transparent;--danger:#000}[data-theme=chroma] .v-progress,[data-theme=chroma] .v-hint,[data-theme=chroma] .onair-indicator,.no-hud .v-progress,.no-hud .v-hint,.no-hud .onair-indicator{display:none!important}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-body,Inter, sans-serif);-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text)}h1,h2,h3,h4{font-family:var(--font-display,"Inter");font-weight:600}code,pre,.mono{font-family:var(--font-mono,"IBM Plex Mono", monospace)}.app{background:var(--bg);height:100%;color:var(--text);flex-direction:column;display:flex}.toolbar{background:var(--bg-secondary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.logo{font-size:15px;font-family:var(--font-display);color:var(--text);font-weight:700}.toolbar-center{color:var(--text-muted);font-size:11px}.shortcut-hint{font-family:var(--font-mono)}.toolbar-right{align-items:center;gap:4px;display:flex}.theme-dot{border:2px solid var(--border);cursor:pointer;background:var(--surface);width:30px;height:30px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:15px;transition:all .15s;display:flex}.theme-dot.active{border-color:var(--accent);color:var(--accent)}.theme-dot:hover{transform:scale(1.15)}.layout{flex-direction:column;height:100%;display:flex}.controller-body{flex:1;gap:16px;padding:12px 16px;display:flex;overflow:hidden}.rundown-panel{flex-direction:column;flex:1;min-width:0;display:flex}.panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.panel-header h2{font-size:15px}.panel-actions{align-items:center;gap:6px;display:flex}.count-badge{color:var(--text-muted);font-size:12px}.break-group{border-left:1px solid var(--border);gap:2px;margin-left:4px;padding-left:6px;display:flex}.rundown-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.rundown-item{background:var(--surface);border:1px solid var(--border);border-radius:0;align-items:center;gap:6px;padding:6px 8px;transition:all .15s;display:flex}.rundown-item.active{border-color:var(--accent);background:var(--surface-raised)}.rundown-item.done{opacity:.35}.item-order{background:var(--accent);width:22px;height:22px;color:var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.item-info{cursor:pointer;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.item-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.item-info .speaker{color:var(--text-muted);white-space:nowrap;font-size:11px}.item-info .duration{font-variant-numeric:tabular-nums;color:var(--text-muted);margin-left:auto;font-size:12px;font-weight:600}.item-edit{flex-wrap:wrap;flex:1;align-items:center;gap:4px;display:flex}.item-edit input,.item-edit select{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);font-size:12px;font-family:var(--font-body);border-radius:0;padding:3px 6px}.item-edit input[type=number]{width:60px}.item-edit label{align-items:center;gap:4px;font-size:11px;display:flex}.edit-actions{gap:4px;display:flex}.item-actions{flex-shrink:0;gap:0;display:flex}.item-actions .btn-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:13px}.item-actions .btn-link:hover{opacity:.7;color:var(--text)}.item-actions .btn-link.danger:hover{opacity:1;color:var(--danger)}.item-actions .btn-link:disabled{opacity:.1;cursor:default}.play-btn,.pause-btn{min-height:24px;padding:3px 8px!important;font-size:12px!important}.live-badge{color:var(--accent);font-variant-numeric:tabular-nums;margin-left:6px;font-size:12px;font-weight:700}.item-note{cursor:help;opacity:.6;margin-left:4px;font-size:13px}.done-badge{color:var(--live);font-size:16px}.btn-sm{cursor:pointer;background:var(--surface-raised);color:var(--text);border:none;border-radius:0;padding:3px 8px;font-size:11px}.btn-sm:hover{background:var(--border)}.btn{cursor:pointer;background:var(--surface-raised);color:var(--text);font-size:12px;font-weight:500;font-family:var(--font-body);border:none;border-radius:0;padding:6px 14px;transition:all .15s}.btn:hover{background:var(--border)}.btn-primary{background:var(--accent);color:var(--bg);font-weight:600}.btn-primary:hover{filter:brightness(1.15)}.btn.danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.3;cursor:default}.empty{text-align:center;color:var(--text-muted);padding:30px 0;font-size:13px}.preview-panel{flex-direction:column;flex-shrink:0;gap:8px;width:400px;display:flex}.preview-links{flex-wrap:wrap;gap:4px;display:flex}.preview-header{justify-content:space-between;align-items:center;padding:2px 4px 8px;display:flex}.preview-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:12px}.preview-header .pip-btn{opacity:.8;width:32px;height:32px;font-size:15px;position:static}.preview-screen{border:1px solid var(--border);background:var(--surface);border-radius:0;flex:1;justify-content:center;align-items:center;min-height:240px;display:flex;position:relative;overflow:hidden}.preview-idle{text-align:center;color:var(--text-muted)}.preview-idle .preview-next{margin-bottom:4px;font-size:22px;font-weight:300}.preview-idle .preview-time{font-size:42px;font-weight:200}.blackout-overlay{z-index:5;background:#000;position:absolute;inset:0}.timer-display{text-align:center;width:100%;padding:16px}.timer-label{font-size:calc(2.5vw * var(--timer-scale,1));white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-weight:300;overflow:hidden}.timer-speaker{font-size:calc(1.2vw * var(--timer-scale,1));color:var(--text-muted);margin-bottom:6px}.timer-number{font-size:calc(10vw * var(--timer-scale,1));font-variant-numeric:tabular-nums;font-weight:200;line-height:1;font-family:var(--font-display);transition:color .5s}.timer-bar-bg{background:var(--border);border-radius:0;max-width:80%;height:5px;margin:12px auto 0;overflow:hidden}.timer-bar-fill{border-radius:0;height:100%}.timer-overtime{font-size:calc(1.5vw * var(--timer-scale,1));color:var(--danger);margin-top:10px;font-weight:700;animation:1s infinite pulse}.timer-finished{font-size:calc(1.5vw * var(--timer-scale,1));opacity:.7;margin-top:10px;font-weight:600}.timer-next{font-size:calc(1vw * var(--timer-scale,1));color:var(--text-muted);margin-top:18px}.viewer[data-pos=center] .timer-display{position:static;transform:none}.viewer[data-pos=top-left] .timer-display{text-align:left;width:auto;padding:0;position:absolute;top:20px;left:20px}.viewer[data-pos=top-right] .timer-display{text-align:right;width:auto;padding:0;position:absolute;top:20px;right:20px}.viewer[data-pos=bottom-left] .timer-display{text-align:left;width:auto;padding:0;position:absolute;bottom:20px;left:20px}.viewer[data-pos=bottom-right] .timer-display{text-align:right;width:auto;padding:0;position:absolute;bottom:20px;right:20px}.viewer[data-pos=top] .timer-display{width:auto;padding:0;position:absolute;top:20px;left:50%;transform:translate(-50%)}.viewer[data-pos=bottom] .timer-display{width:auto;padding:0;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.viewer[data-pos=top-left] .timer-bar-bg,.viewer[data-pos=bottom-left] .timer-bar-bg{margin:12px 0 0}.viewer[data-pos=top-right] .timer-bar-bg,.viewer[data-pos=bottom-right] .timer-bar-bg{margin:12px 0 0 auto}.hide-bar .timer-bar-bg{display:none!important}.mono-timer .timer-number{letter-spacing:2px;font-weight:500;font-family:var(--font-mono,"IBM Plex Mono", monospace)!important}.transport{flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;display:flex}.tweak-group{gap:3px;margin-left:auto;display:flex}.rp-label{color:var(--text-muted);justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.rp-bar-bg{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.rp-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width 1s}.viewer{-webkit-user-select:none;user-select:none;background:var(--bg);height:100%;color:var(--text);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.pip-btn{z-index:9998;border:1px solid var(--accent);background:var(--surface-raised);width:40px;height:40px;color:var(--accent);cursor:pointer;opacity:.75;border-radius:0;justify-content:center;align-items:center;font-size:18px;transition:opacity .2s,transform .15s;display:flex;position:fixed;top:14px;left:14px;box-shadow:0 2px 10px #00000059}.pip-btn:hover{opacity:1;transform:scale(1.12)}.pip-btn.active{opacity:1;border-color:var(--live);color:var(--live);box-shadow:0 0 12px var(--live)}[data-theme=chroma] .pip-btn{opacity:.4}.blackout{z-index:999;background:#000;position:fixed;inset:0}.onair-indicator{color:var(--danger);letter-spacing:3px;font-size:1.2vw;font-weight:800;animation:1.5s infinite pulse;position:absolute;top:20px;right:30px}.flash-overlay{z-index:100;justify-content:center;align-items:center;animation:.3s ease-in-out 3 flashAnim;display:flex;position:fixed;inset:0}.flash-text{text-align:center;padding:10vw;font-size:10vw;font-weight:900}.v-progress{gap:6px;display:flex;position:absolute;bottom:30px}.v-dot{background:var(--border);border-radius:50%;width:10px;height:10px;transition:all .3s}.v-dot.live{box-shadow:0 0 6px var(--accent);background:var(--accent);transform:scale(1.4)}.v-dot.done{background:var(--accent);opacity:.6}.v-hint{opacity:.2;font-size:10px;position:absolute;bottom:10px}.share-bar{color:var(--text-muted);background:var(--bg-secondary);border-top:1px solid var(--border);align-items:center;gap:8px;padding:6px 16px;font-size:11px;display:flex}.share-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:0;width:260px;padding:3px 8px;font-size:11px}.share-hint{color:var(--text-muted)}.modal-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:0;width:90%;max-width:440px;padding:20px}.modal h3{margin-bottom:10px;font-size:15px}.modal textarea{background:var(--bg-secondary);border:1px solid var(--border);width:100%;color:var(--text);font-size:13px;font-family:var(--font-body);resize:vertical;border-radius:0;margin-bottom:10px;padding:6px 10px}.modal-row{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.modal-row label{align-items:center;gap:4px;font-size:11px;display:flex}.modal-row select{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);border-radius:0;padding:3px 6px}.modal-row input[type=color]{cursor:pointer;border:none;border-radius:0;width:30px;height:30px}.modal-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.modal-actions{justify-content:flex-end;gap:6px;display:flex}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes flashAnim{0%,to{opacity:1}50%{opacity:.1}}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.btn:hover{filter:brightness(1.08)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes dialogIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn,.btn-sm,.btn-ghost,.btn-primary,.btn-secondary,.btn-danger,.btn-warning,.btn-icon,.dl,.logout,.portal-link,.field input,.field select,.field textarea,button,input,select,textarea{border-radius:6px}@media (width<=1024px){.controller-body{flex-direction:column}.preview-panel{width:100%}}@media (width<=800px){.login-page{padding:16px}.rundown-item{flex-wrap:wrap}}@media (width<=480px){.controller-body{gap:12px}.preview-panel{padding:16px}}:focus-visible{outline:2px solid var(--accent,var(--live,#f2a71b));outline-offset:2px}.monitor{background:var(--bg);height:100%;color:var(--text);-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:2.4vh;padding:7vh 4vw 3vh;display:flex;position:relative;overflow:hidden}.monitor-head{font-size:calc(1.1vw * var(--timer-scale,1));align-items:baseline;gap:14px;display:flex;position:absolute;top:2.2vh;left:4vw;right:4vw}.monitor-event{font-weight:600}.monitor-room{color:var(--text-muted)}.monitor-stale{color:var(--accent);font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:6px;margin-left:auto;font-size:.85em;display:inline-flex}.monitor-stale:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}.monitor-body{flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.monitor-session{font-size:calc(1vw * var(--timer-scale,1));color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:1.2vh}.monitor-idle{text-align:center;color:var(--text-muted)}.monitor-idle-title{font-size:calc(3vw * var(--timer-scale,1));color:var(--text);font-weight:300}.monitor-idle-note{font-size:calc(1.1vw * var(--timer-scale,1));color:var(--text-muted);margin-top:10px}.monitor-message{border:1px solid var(--accent);text-align:center;max-width:90%;padding:14px 22px}.monitor-message-label{font-size:calc(.85vw * var(--timer-scale,1));text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:6px;display:block}.monitor-message-body{font-size:calc(1.9vw * var(--timer-scale,1));white-space:pre-wrap;overflow-wrap:anywhere;font-weight:500;line-height:1.25}.monitor-message-time{font-family:var(--font-mono);font-size:calc(.8vw * var(--timer-scale,1));color:var(--text-muted);margin-top:6px;display:block}.monitor-off{text-align:center;gap:10px}.monitor-brand{font-family:var(--font-mono);font-size:calc(.9vw * var(--timer-scale,1));letter-spacing:3px;text-transform:uppercase;color:var(--text-muted);position:absolute;top:2.2vh;left:4vw}.monitor-off-title{font-size:calc(2.6vw * var(--timer-scale,1));color:var(--text-muted);font-weight:300}.monitor-off-hint{max-width:62ch;font-size:calc(1vw * var(--timer-scale,1));color:var(--text-muted);line-height:1.5}@media (width<=800px){.monitor{padding:12vh 6vw 4vh}.monitor-head{flex-wrap:wrap;font-size:13px}.monitor-session,.monitor-idle-note,.monitor-off-hint{font-size:14px}.monitor-idle-title,.monitor-off-title{font-size:28px}.monitor-message-label{font-size:12px}.monitor-message-body{font-size:22px}}
