:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--surface-2: #f1f0ec;--ink: #0b0b0b;--ink-2: #52514e;--muted: #76746e;--grid: #e1e0d9;--axis: #c3c2b7;--border: rgba(11, 11, 11, .12);--accent: #256abf;--accent-ink: #ffffff;--live: #2a78d6;--draft: #eb6834;--seg-asset: #1baf7a;--seg-new: #eda100;--seg-code: #6250d6;--good: #0ca30c;--good-ink: #006300;--warn-bg: #fdf3d7;--warn-ink: #6b4a00;--error-bg: #fbe4e4;--error-ink: #9b1c1c;--ok-bg: #e2f5e2;--pending-bg: #fdf0e9;--pending-ink: #a8431a;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #252523;--ink: #f0efec;--ink-2: #c3c2b7;--muted: #96948d;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .12);--accent: #3987e5;--live: #3987e5;--draft: #d95926;--seg-asset: #199e70;--seg-new: #c98500;--seg-code: #9085e9;--good-ink: #0ca30c;--warn-bg: #3a2f10;--warn-ink: #f5d27a;--error-bg: #3d1818;--error-ink: #f3a3a3;--ok-bg: #143214;--pending-bg: #35201a;--pending-ink: #f0a07c}}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink)}h1,h2,h3,h4,p{margin:0}h1{font-size:1.5rem}h3{font-size:1rem}h4{font-size:.9rem;margin:16px 0 6px;color:var(--ink-2)}code{background:var(--surface-2);padding:1px 5px;border-radius:4px}.muted{color:var(--muted)}.small{font-size:.85rem}.empty{color:var(--muted);padding:12px 0}ul.plain{padding-left:18px;margin:10px 0 0}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:18px 12px;background:var(--surface);border-right:1px solid var(--border)}.brand{font-weight:700;font-size:1.1rem;padding:0 10px 10px}.brand span{color:var(--muted);font-weight:500}nav{display:flex;flex-direction:column;gap:2px}.nav-heading{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:14px 10px 4px}nav a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;color:var(--ink-2);text-decoration:none}nav a:hover{background:var(--surface-2)}nav a.active{background:var(--surface-2);color:var(--ink);font-weight:600}.nav-badge{min-width:20px;padding:0 6px;border-radius:10px;text-align:center;background:var(--pending-bg);color:var(--pending-ink);font-size:.75rem;font-weight:600}.sidebar-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--border);display:grid;gap:4px}.mode{font-size:.85rem;font-weight:600}.mode-local{color:var(--warn-ink)}.mode-firebase{color:var(--good-ink)}main{padding:22px 28px 60px;max-width:1180px;width:100%;display:grid;gap:16px;align-content:start}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.topbar-actions{display:flex;align-items:center;gap:12px}.save{font-size:.85rem;color:var(--muted)}.save-error{color:var(--error-ink);font-weight:600}.gate{min-height:100vh;display:grid;place-items:center;padding:16px}.gate .card{max-width:420px;display:grid;gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin:0}.card>h3{margin-bottom:6px}.banner{padding:10px 14px;border-radius:8px;font-size:.92rem}.banner ul{margin:6px 0 0;padding-left:18px}.banner.warn{background:var(--warn-bg);color:var(--warn-ink)}.banner.error{background:var(--error-bg);color:var(--error-ink)}.banner.ok{background:var(--ok-bg);color:var(--good-ink)}.btn{font:inherit;padding:7px 14px;border-radius:7px;cursor:pointer;white-space:nowrap;border:1px solid var(--border);background:var(--surface);color:var(--ink)}main>.btn{justify-self:start}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.ghost{border-color:transparent;color:var(--ink-2);padding:5px 8px}.btn.danger{color:var(--error-ink)}.link{font:inherit;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-align:left}.link:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=text],input[type=search],input[type=number],input[type=datetime-local],select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:6px 9px;min-width:0}.text-input{width:100%}.badge{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:10px;font-size:.72rem;font-weight:600;white-space:nowrap;vertical-align:middle}.badge.support{background:var(--surface-2);color:var(--ink-2)}.badge.risky{background:var(--warn-bg);color:var(--warn-ink)}.badge.phase-active{background:var(--ok-bg);color:var(--good-ink)}.badge.phase-scheduled{background:var(--surface-2);color:var(--ink-2)}.badge.phase-ended,.badge.phase-disabled{background:var(--surface-2);color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.stat-label{color:var(--ink-2);font-size:.85rem}.stat-value{font-size:1.55rem;font-weight:650;margin:2px 0}.stat-delta{font-size:.85rem;color:var(--pending-ink);font-weight:600}.filter-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.filter-row input[type=search]{flex:1 1 240px;max-width:380px}.check{display:flex;align-items:center;gap:6px;color:var(--ink-2);font-size:.9rem}.group{padding-bottom:6px}.knob{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:8px 24px;align-items:center;padding:12px 0 12px 12px;margin-left:-12px;border-top:1px solid var(--grid);border-left:3px solid transparent}.knob.pending{border-left-color:var(--draft)}.knob.invalid{border-left-color:var(--error-ink)}.knob-label{font-weight:600}.knob-help{color:var(--ink-2);font-size:.88rem}.knob-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;margin-top:3px}.pending-note{color:var(--pending-ink);font-weight:600}.problem-note{color:var(--error-ink);font-weight:600;font-size:.85rem}.knob-control{display:flex;justify-content:flex-end}.number-control{display:flex;align-items:center;gap:10px;width:100%}.number-control input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.number-box{display:flex;align-items:center;gap:5px}.number-box input{width:84px;text-align:right;font-variant-numeric:tabular-nums}.unit{color:var(--muted);font-size:.85rem;min-width:34px}.toggle-wrap{display:flex;align-items:center;gap:10px}.toggle{width:44px;height:24px;border-radius:12px;border:0;padding:2px;cursor:pointer;flex:none;background:var(--axis);transition:background .15s}.toggle[aria-checked=true]{background:var(--accent)}.toggle-thumb{display:block;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s}.toggle[aria-checked=true] .toggle-thumb{transform:translate(20px)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}.chart-card figcaption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.chart-card figcaption p{font-size:.85rem}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--ink-2);align-items:center}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.swatch.live{background:var(--live)}.swatch.draft{background:var(--draft)}.swatch.seg-asset{background:var(--seg-asset)}.swatch.seg-new{background:var(--seg-new)}.swatch.seg-code{background:var(--seg-code)}.chart-wrap{position:relative}.chart-wrap svg{width:100%;height:auto;display:block;touch-action:pan-y}.grid{stroke:var(--grid);stroke-width:1}.axis{stroke:var(--axis);stroke-width:1}.tick{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.line.live{stroke:var(--live)}.line.draft{stroke:var(--draft)}.dot{stroke:var(--surface);stroke-width:2}.dot.live{fill:var(--live)}.dot.draft{fill:var(--draft)}.crosshair{stroke:var(--axis);stroke-width:1}.tooltip{position:absolute;top:4px;transform:translate(10px);pointer-events:none;z-index:2;display:grid;gap:2px;padding:8px 10px;border-radius:8px;font-size:.82rem;white-space:nowrap;background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 14px #00000024}.tooltip[data-flip=true]{transform:translate(calc(-100% - 10px))}.tooltip b{margin-left:6px}.range-chart{display:grid;gap:12px}.range-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px}.range-label{font-size:.88rem;color:var(--ink-2)}.range-tracks{display:grid;gap:2px;padding-right:86px}.range-track{position:relative;height:14px}.range-bar{position:absolute;top:2px;height:10px;border-radius:4px}.range-bar.live{background:var(--live)}.range-bar.draft{background:var(--draft)}.range-value{position:absolute;top:-2px;margin-left:6px;font-size:.75rem;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.range-axis{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);border-top:1px solid var(--axis);padding-top:4px}.range-chart .range-axis{margin-left:72px;margin-right:86px}.stack-bar{display:flex;gap:2px;height:26px;margin:12px 0 8px}.stack-seg{display:grid;place-items:center;min-width:26px;border-radius:4px;color:#fff;font-size:.8rem;font-weight:600}.stack-seg.seg-asset{background:var(--seg-asset)}.stack-seg.seg-new{background:var(--seg-new);color:#0b0b0b}.stack-seg.seg-code{background:var(--seg-code)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:8px}.cat-card{font:inherit;text-align:left;display:grid;gap:3px;padding:12px;border-radius:8px;cursor:pointer;background:var(--surface);color:var(--ink);border:1px solid var(--border)}.cat-card:hover{background:var(--surface-2)}.timeline{margin-top:10px}.timeline-rows{position:relative;display:grid;gap:6px;padding:18px 0 8px}.timeline-row{position:relative;height:26px}.timeline-bar{position:absolute;top:0;height:10px;border-radius:4px;background:var(--axis)}.timeline-bar.phase-active{background:var(--good)}.timeline-bar.phase-scheduled{background:var(--live)}.timeline-name{position:absolute;top:11px;font-size:.75rem;color:var(--ink-2);white-space:nowrap}.timeline-now{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--ink-2)}.timeline-now span{position:absolute;top:-2px;left:4px;font-size:.7rem;color:var(--ink-2)}.event-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.event-name{flex:1 1 200px;font-weight:600;width:auto}.event-dates{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}.event-dates label{display:grid;gap:4px;font-size:.85rem;color:var(--ink-2)}.override{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--grid)}.add-override{margin-top:8px;max-width:100%}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-weight:600;color:var(--ink-2);font-size:.8rem}th,td{padding:8px 10px 8px 0;border-bottom:1px solid var(--grid);vertical-align:middle}.publish-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.publish-row .text-input{flex:1 1 260px;width:auto}.payload{max-height:380px;overflow:auto;background:var(--surface-2);padding:12px;border-radius:8px;font-size:.8rem;margin:12px 0 0}@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;padding:10px 12px;border-right:0;border-bottom:1px solid var(--border)}nav{flex-direction:row;overflow-x:auto;padding-bottom:4px}nav a{white-space:nowrap}.nav-heading,.sidebar-foot .small{display:none}.sidebar-foot{margin:0;padding:6px 10px 0;border:0;display:flex;gap:12px}main{padding:16px}.knob{grid-template-columns:minmax(0,1fr)}.knob-control{justify-content:flex-start}.override{grid-template-columns:minmax(0,1fr) auto}}
