:root{--plum: #370544;--plum-2: #4a1259;--plum-3: #5e2470;--plum-deep: #22022b;--coral: #eb5554;--coral-deep: #c13d3d;--coral-tint: #fdeceb;--amber: #d08c0b;--green: #1ba154;--bg: #f6f4f8;--surface: #ffffff;--surface-2: #faf8fb;--line: #e6e1ea;--line-strong: #d3cbd9;--ink: #1e1424;--ink-2: #5d5266;--ink-3: #8c8294;--focus: #eb555466;--font: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius: 8px;--shadow: 0 1px 2px #22022b14, 0 4px 16px #22022b12}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--plum)}.logo-dark{color:#fff}.logo-word{display:inline-flex;flex-direction:column;gap:3px}.logo-text{font-weight:300;letter-spacing:.06em;font-size:15px;line-height:1}.logo-text b{font-weight:800}.logo-rule{height:3px;background:linear-gradient(90deg,var(--coral) 0 64%,transparent 64% 67%,var(--coral) 67%);border-radius:1px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);padding:7px 12px;border-radius:var(--radius);cursor:pointer;font-weight:600;font-size:13px;white-space:nowrap;text-decoration:none}.btn:hover{border-color:var(--plum-3)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--coral);border-color:var(--coral);color:#fff}.btn-primary:hover{background:var(--coral-deep);border-color:var(--coral-deep)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:#0000000a;border-color:transparent}.btn-on-dark{background:#ffffff14;border-color:#ffffff2e;color:#fff}.btn-on-dark:hover{background:#ffffff24;border-color:#fff5}.btn-danger{color:var(--coral-deep)}.btn-sm{padding:4px 8px;font-size:12px}.icon-btn{border:0;background:transparent;cursor:pointer;padding:4px 6px;border-radius:6px;color:var(--ink-3);line-height:1}.icon-btn:hover{background:#0000000d;color:var(--ink)}:focus-visible{outline:2px solid var(--coral);outline-offset:1px}.field{border:1px solid var(--line-strong);border-radius:6px;padding:5px 8px;background:var(--surface)}.field:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px var(--focus)}.field-bare{border:1px solid transparent;background:transparent;border-radius:6px;padding:3px 6px}.field-bare:hover{border-color:#ffffff40}.field-bare:focus{outline:none;border-color:var(--coral);background:#ffffff10}.appbar{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--plum);color:#fff;position:sticky;top:0;z-index:30}.appbar .spacer{flex:1}.appbar a.home{text-decoration:none}.crumbs{display:flex;align-items:center;gap:8px;color:#ffffffb0;font-size:13px;min-width:0}.crumbs input{color:#fff;font-weight:700;font-size:16px;width:22ch;min-width:8ch}.presence{display:flex;align-items:center}.presence span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;border:2px solid var(--plum);margin-left:-6px}.conn{font-size:12px;display:inline-flex;align-items:center;gap:6px;color:#ffffffb0}.conn:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}.conn.off:before{background:var(--amber)}.page{max-width:1100px;margin:0 auto;padding:28px 20px 80px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head h1{margin:0;font-size:26px;font-weight:800;color:var(--plum)}.page-head p{margin:4px 0 0;color:var(--ink-2)}.show-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;box-shadow:var(--shadow);overflow:hidden}.show-card header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.show-card header h2{margin:0;font-size:17px;font-weight:700;flex:1}.rundown-row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line)}.rundown-row:last-child{border-bottom:0}.rundown-row a.name{font-weight:600;text-decoration:none;flex:1}.rundown-row a.name:hover{color:var(--coral-deep)}.rundown-row .meta{color:var(--ink-3);font-size:12px}.empty{padding:40px;text-align:center;color:var(--ink-2)}.notice-banner{background:#e8f6ee;color:#146b3a;padding:10px 14px;border-radius:var(--radius);margin-bottom:16px;font-weight:600}.invite{display:flex;gap:8px;padding:14px 16px}.invite input{flex:1}.signin{min-height:100%;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,var(--plum) 0 45%,var(--bg) 45%)}.signin-card{width:min(420px,100%);background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:28px}.signin-card h1{font-size:22px;font-weight:800;color:var(--plum);margin:22px 0 6px}.signin-card p{color:var(--ink-2);margin:0 0 16px;line-height:1.5}.signin-card form{display:flex;flex-direction:column;gap:10px}.signin-card .field{padding:10px 12px}.signin-card .btn-primary{justify-content:center;padding:10px}.signin-card .error-banner{margin:0}.error-banner{background:var(--coral-tint);color:var(--coral-deep);padding:10px 14px;border-radius:var(--radius);margin-bottom:16px;font-weight:600}.editor{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.stat{display:flex;flex-direction:column;gap:2px}.stat label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.stat .value{font-weight:700;font-size:15px}.stat input{width:9ch;font-weight:700}.stat input.wide{width:18ch}.toolbar .spacer{flex:1}.issues-pill{background:var(--coral-tint);color:var(--coral-deep);border:0;border-radius:999px;padding:5px 11px;font-weight:700;font-size:12px;cursor:pointer}.grid-wrap{flex:1;overflow:auto;position:relative}.grid{display:grid;min-width:max-content}.grid-head{display:contents}.grid-head>div{position:sticky;top:0;z-index:10;background:var(--surface-2);border-bottom:1px solid var(--line-strong);padding:8px 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);display:flex;align-items:center;gap:4px;white-space:nowrap}.col-head{position:relative}.col-head .col-name{cursor:text;flex:1;overflow:hidden;text-overflow:ellipsis}.col-head input{width:100%;text-transform:none;letter-spacing:0;font-weight:700}.col-resize{position:absolute;right:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:2}.col-resize:hover{background:var(--coral);opacity:.4}.row{display:contents}.row>div{background:var(--surface);border-bottom:1px solid var(--line);padding:8px 10px;min-height:52px;position:relative}.row.group>div{background:#f1ebf4;border-bottom-color:var(--line-strong)}.row.group .title-cell input.title{font-size:15px;color:var(--plum)}.row.child>.cell-title{padding-left:26px}.row.past>div{opacity:.45}.row.current>div{background:var(--coral-tint)}.row.current>.cell-num{box-shadow:inset 4px 0 0 var(--coral)}.row.drop-before>div{box-shadow:inset 0 3px 0 var(--coral)}.row.drop-after>div{box-shadow:inset 0 -3px 0 var(--coral)}.row.flash>div{animation:flash 1.2s ease-out}@keyframes flash{0%{background:#fff4c2}}.cell-handle{display:flex;align-items:flex-start;justify-content:center;padding:8px 2px!important;color:var(--ink-3);cursor:grab;-webkit-user-select:none;user-select:none}.cell-handle:active{cursor:grabbing}.cell-num{display:flex;align-items:flex-start;justify-content:center;padding:0!important}.num-tile{width:100%;height:100%;min-height:52px;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;font-weight:700;font-size:13px}.num-tile.colored{color:#fff}.cell-time{font-family:var(--mono);font-size:13px}.cell-time .hard{display:inline-flex;align-items:center;gap:4px}.pin{border:0;background:transparent;cursor:pointer;padding:0 2px;color:var(--ink-3);font-size:12px;opacity:0}.row:hover .pin,.pin.on{opacity:1}.pin.on{color:var(--coral-deep)}.gap-note{display:block;font-size:11px;font-family:var(--font);font-weight:600;margin-top:2px}.gap-note.gap{color:var(--ink-3)}.gap-note.overlap{color:var(--coral-deep)}.cell-time input,.cell-dur input{width:100%;font-family:var(--mono);font-size:13px}.title-cell{display:flex;flex-direction:column;gap:1px}.title-cell input{width:100%;padding:2px 4px;border-radius:4px;border:1px solid transparent;background:transparent}.title-cell input:hover{border-color:var(--line)}.title-cell input:focus{outline:none;border-color:var(--coral);background:#fff}.title-cell input.title{font-weight:700}.title-cell input.subtitle{color:var(--ink-2);font-size:13px}.title-cell input.subtitle::placeholder{color:transparent}.row:hover .title-cell input.subtitle::placeholder,.title-cell input.subtitle:focus::placeholder{color:var(--ink-3)}.issue-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--coral)}.cell-text{white-space:pre-wrap;word-break:break-word;cursor:text;min-height:20px;border-radius:4px;padding:2px 4px;margin:-2px -4px}.cell-text:hover{background:#0000000a}.cell-text:focus{outline:2px solid var(--coral)}.cell-text.placeholder{color:transparent}.cell-edit{width:100%;resize:none;border:1px solid var(--coral);border-radius:4px;padding:2px 4px;margin:-3px -5px;background:#fff;box-shadow:0 0 0 3px var(--focus);line-height:1.4;overflow:hidden}.cell-edit:focus{outline:none}.mf{display:grid;grid-template-columns:auto 1fr;gap:1px 8px;font-size:13px;margin:0}.mf dt{color:var(--ink-3);font-weight:600}.mf dd{margin:0}.cell-actions{display:flex;align-items:flex-start;gap:2px;padding:6px 4px!important}.add-row{display:flex;gap:8px;padding:14px 20px 120px}.menu{position:fixed;z-index:100;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 8px 30px #22022b2e;padding:6px;min-width:210px}.menu button.item{display:flex;width:100%;align-items:center;gap:8px;text-align:left;border:0;background:transparent;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px}.menu button.item:hover{background:var(--bg)}.menu button.item.danger{color:var(--coral-deep)}.menu hr{border:0;border-top:1px solid var(--line);margin:6px 0}.menu .label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px 4px}.swatches{display:flex;flex-wrap:wrap;gap:6px;padding:4px 10px 8px}.swatch{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;padding:0}.swatch.none{background:repeating-linear-gradient(45deg,#fff 0,#fff 4px,#e6e1ea 4px,#e6e1ea 8px)}.swatch.on{box-shadow:0 0 0 2px var(--ink)}.seg{display:flex;gap:4px;padding:2px 10px 8px;flex-wrap:wrap}.seg button{border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:3px 9px;font-size:12px;cursor:pointer}.seg button.on{background:var(--plum);border-color:var(--plum);color:#fff}.issues-panel{position:fixed;right:16px;top:120px;width:320px;max-height:60vh;overflow:auto;z-index:40;background:#fff;border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 8px 30px #22022b2e}.issues-panel header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:700}.issues-panel header span{flex:1}.issues-panel button.issue{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:10px 14px;cursor:pointer}.issues-panel button.issue:hover{background:var(--bg)}.issues-panel .issue b{display:block;font-size:13px}.issues-panel .issue small{color:var(--ink-2)}.dark{background:var(--plum-deep);color:#fff;min-height:100%}.live{display:grid;grid-template-rows:auto 1fr;height:100%}.live-body{display:grid;grid-template-columns:minmax(420px,1.1fr) minmax(360px,1fr);gap:20px;padding:20px;min-height:0}.live-main{display:flex;flex-direction:column;gap:16px;min-height:0}.panel{background:var(--plum);border:1px solid #ffffff1a;border-radius:14px;padding:18px 20px}.kicker{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ffffff8c}.now-title{font-size:clamp(24px,3vw,38px);font-weight:800;line-height:1.15;margin:6px 0 2px}.now-sub{color:#ffffffb0;font-size:16px;white-space:pre-wrap}.countdown{font-family:var(--mono);font-weight:700;font-size:clamp(64px,9vw,128px);line-height:1;letter-spacing:-.02em;margin-top:14px}.countdown.warn{color:#ffc65c}.countdown.over{color:var(--coral)}.progress{height:8px;background:#ffffff1a;border-radius:99px;overflow:hidden;margin-top:14px}.progress div{height:100%;background:var(--coral);transition:width .2s linear}.live-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.live-stats .panel{padding:12px 16px}.big-stat{font-family:var(--mono);font-size:26px;font-weight:700;margin-top:4px}.late{color:var(--coral)}.early{color:#6fe3a1}.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.controls .go{font-size:22px;padding:16px 34px;border-radius:12px;flex:1;justify-content:center}.controls .btn{padding:12px 18px}.anchor{display:inline-flex;border:1px solid #ffffff33;border-radius:999px;overflow:hidden}.anchor button{background:transparent;border:0;color:#ffffffb0;padding:6px 12px;cursor:pointer;font-size:12px;font-weight:600}.anchor button.on{background:#ffffff26;color:#fff}.live-list{overflow:auto;border-radius:14px;background:var(--plum);border:1px solid #ffffff1a}.live-item{display:grid;grid-template-columns:52px 74px 1fr 64px 44px;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid #ffffff12}.live-item.group{background:#ffffff0d;font-weight:700;color:#fffc;grid-template-columns:52px 74px 1fr}.live-item.past{opacity:.4}.live-item.current{background:var(--coral);color:#fff}.live-item.next{box-shadow:inset 4px 0 #ffffff80}.live-item .n{font-weight:700;display:flex;align-items:center;gap:6px}.live-item .n i{width:8px;height:8px;border-radius:50%;display:inline-block}.live-item .t{font-family:var(--mono);font-size:13px;color:#ffffffb0}.live-item.current .t{color:#fff}.live-item .title{font-weight:600}.live-item .title small{display:block;font-weight:400;color:#fff9}.live-item .d{font-family:var(--mono);font-size:13px;text-align:right;color:#ffffffb0}.live-item .jump{opacity:0}.live-item:hover .jump{opacity:1}.kbd{font-family:var(--mono);font-size:11px;border:1px solid #ffffff40;border-radius:4px;padding:1px 5px;color:#ffffffb0}.timer{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4vh 4vw;gap:2vh;background:#000;color:#fff}.timer .t-title{font-size:4.5vw;font-weight:800;line-height:1.1}.timer .t-count{font-family:var(--mono);font-weight:700;font-size:24vw;line-height:.9;letter-spacing:-.03em}.timer .t-count.warn{color:#ffc65c}.timer .t-count.over{color:var(--coral)}.timer .t-next{font-size:2.6vw;color:#ffffffa0}.timer .t-foot{position:fixed;bottom:2vh;left:3vw;right:3vw;display:flex;justify-content:space-between;font-size:1.8vw;color:#ffffff80;font-family:var(--mono)}.timer .t-idle{font-size:5vw;font-weight:300;color:#ffffff80}@media(max-width:900px){.live-body{grid-template-columns:1fr}.toolbar{gap:12px}.crumbs input{width:14ch}}@media print{.appbar,.toolbar .btn,.cell-handle,.cell-actions,.add-row,.pin{display:none!important}.grid-wrap{overflow:visible}}
