.admin-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.admin-sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:6px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.admin-brand{flex-direction:column;gap:2px;padding:6px 10px 20px;display:flex}.admin-brand-mark{letter-spacing:1.5px;font-size:19px;font-weight:800}.admin-brand-mark span{color:var(--accent)}.admin-brand-tag{color:var(--muted);letter-spacing:2px;text-transform:uppercase;font-size:11px}.admin-nav{flex-direction:column;gap:2px;display:flex}.admin-nav a{color:var(--muted);border-radius:10px;align-items:center;gap:11px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.admin-nav a:hover{background:var(--panel-2);color:var(--ink)}.admin-nav>a.active{background:var(--panel-2);color:var(--ink);font-weight:600}.admin-spacer{flex:1}.admin-logout-btn{border:1px solid var(--line);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;padding:10px;font-size:13px}.admin-logout-btn:hover{color:var(--ink);border-color:var(--accent)}.admin-main{flex-direction:column;max-width:1480px;height:100vh;padding:32px 40px;display:flex;overflow-y:auto}.view-body{flex-direction:column;flex:1;min-height:0;display:flex}.venues-group{flex-direction:column;display:flex}.admin-nav-row{color:var(--muted);border-radius:10px;align-items:center;display:flex}.admin-nav-row:hover{background:var(--panel-2);color:var(--ink)}.admin-nav-row.active{background:var(--panel-2);color:var(--ink);font-weight:600}.venues-row-link{min-width:0;color:inherit;flex:1;align-items:center;gap:8px;padding:10px 8px 10px 2px;font-size:14px;font-weight:500;display:flex}.venues-chevron{width:18px;height:18px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.venues-chevron:hover{background:color-mix(in srgb, currentColor 15%, transparent)}.venues-add{width:22px;height:22px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;font-size:16px;line-height:1;display:flex}.venues-add:hover{background:color-mix(in srgb, currentColor 15%, transparent)}.venue-switcher-list{flex-direction:column;gap:1px;max-height:220px;margin-top:2px;padding-left:22px;display:flex;overflow-y:auto}.venue-switcher-item{color:var(--muted);border-radius:8px;align-items:center;gap:9px;padding:7px 8px;font-size:13px;display:flex}.venue-switcher-item:hover{background:var(--panel-2);color:var(--ink)}.venue-switcher-item.active{background:var(--panel-2);color:var(--ink);font-weight:600}.venue-switcher-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.venue-type-icon{color:var(--muted);flex-shrink:0}.venue-switcher-item.active .venue-type-icon{color:inherit}.admin-nav-group{flex-direction:column;gap:4px;display:flex}.admin-nav-label{color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;padding:6px 12px 2px;font-size:11px}.theme-toggle{border:1px solid var(--line);cursor:pointer;width:100%;color:var(--ink);background:0 0;border-radius:9px;align-items:center;gap:9px;margin-bottom:8px;padding:8px 10px;font-size:13px;display:flex}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle-track{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;flex-shrink:0;width:34px;height:19px;transition:background .15s;position:relative}.theme-toggle-track.on{background:var(--accent)}.theme-toggle-thumb{background:var(--panel);border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;font-size:9px;line-height:1;transition:transform .15s;display:flex;position:absolute;top:1px;left:1px}.theme-toggle-track.on .theme-toggle-thumb{transform:translate(15px)}.theme-toggle-label{font-weight:500}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:26px;display:flex}.page-head h1{letter-spacing:-.01em;margin:0 0 4px;font-size:30px;font-weight:800}.page-head p{color:var(--muted);margin:0;font-size:14px}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.card h2,.card h3{margin:0 0 12px;font-size:16px;font-weight:700}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;position:relative}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;font-size:11px;font-weight:500}.stat .v{letter-spacing:-.01em;color:var(--ink);margin-top:4px;font-size:32px;font-weight:800}.stat .sub{color:var(--muted);margin-top:3px;font-size:11px}.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--ink-soft)}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn.primary:hover{filter:brightness(.92)}.btn.danger{color:var(--red);background:0 0;border-color:#0000}.btn.danger:hover{border-color:var(--red)}.btn.ghost{background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:7px 13px;font-size:13px}.btn.icon-only{padding:10px}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--muted);font-size:13px;font-weight:600}.hint,.field .hint{color:var(--muted);font-size:12px;line-height:1.45}input[type=text],input[type=password],input[type=url],input[type=number],select,textarea{background:var(--field);border:1px solid var(--line);color:var(--ink);border-radius:9px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:1;min-width:180px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px 14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.row-link{cursor:pointer;transition:background .12s}tr.row-link:hover{background:var(--panel-2)}tr.row-link:active{background:color-mix(in srgb, var(--accent) 12%, transparent)}tr.row-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.badge{border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.purpose{color:var(--ink-soft);background:var(--panel-2)}.badge.on{color:var(--ink-soft)}.badge.on .dot{background:var(--green)}.badge.off{color:var(--muted)}.badge .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.markup-wrap{grid-template-columns:minmax(0,1fr) 280px;align-items:stretch;gap:16px;display:grid}.markup-stage{border:1px solid var(--line);background:#000;border-radius:10px;align-self:start;max-width:100%;max-height:calc(100vh - 165px);position:relative;overflow:hidden}.markup-stage img{object-fit:fill;width:100%;height:100%;display:block}.markup-stage svg{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.markup-tools{flex-direction:column;gap:12px;display:flex}.tools-bottom{flex-direction:column;gap:12px;margin-top:auto;display:flex}.tool-group{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:13px}.tool-group h4{margin:0 0 8px;font-size:13px}.tool-group .hint{margin:6px 0 0}.hdr-gear{position:relative}.hdr-gear .menu{z-index:31;min-width:234px}.gear-overlay{z-index:30;position:fixed;inset:0}.menu-file{text-align:left;width:100%;color:var(--ink);cursor:pointer;border-radius:7px;padding:9px 12px;font-size:14px;display:block}.menu-file:hover{background:var(--panel-2)}.history-row{gap:8px;display:flex}.history-row .btn{flex:1}.tool-group .legend{align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.swatch{border-radius:4px;width:14px;height:14px}.swatch.roi{background:#38d27a}.swatch.line{background:#f5c542}.seg{border:1px solid var(--line);border-radius:999px;display:flex;overflow:hidden}.seg button{background:var(--bg);min-width:0;color:var(--muted);cursor:pointer;white-space:nowrap;border:none;flex:1;padding:8px;font-size:13px}.seg button.active{background:var(--ink);color:var(--bg)}.seg-pills{gap:6px;display:flex}.seg-pills button{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;flex:1;padding:8px;font-size:13px}.seg-pills button.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.obj-list{flex-direction:column;gap:6px;margin-top:12px;display:flex}.obj-row{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 9px;font-size:13px;display:flex}.obj-row:hover{border-color:var(--muted)}.obj-row.sel{border-color:var(--accent);background:var(--panel-2)}.obj-name{flex:1;font-weight:600}.obj-del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:13px;line-height:1}.obj-del:hover{color:var(--red);background:var(--bg)}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);padding:48px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.pill{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px}.toast{background:var(--panel);border:1px solid var(--accent);z-index:50;border-radius:10px;padding:12px 18px;font-size:14px;position:fixed;bottom:22px;right:22px}.section-gap{margin-top:26px}pre.code{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:14px;font-size:12.5px;line-height:1.5;overflow:auto}.menu{z-index:21;background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 34px #00000073}.menu button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:9px 12px;font-size:14px;display:block}.menu button:hover{background:var(--panel-2)}.menu button.danger{color:var(--red)}.menu-sep{background:var(--line);height:1px;margin:6px 4px}.report2{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.seg.period{flex-shrink:0}.seg.period button{flex:none;padding:8px 12px;font-size:13px}.analytics-top{grid-template-columns:minmax(0,1fr) minmax(200px,260px);align-items:start;gap:14px;display:grid}.stat-strip-side{flex-direction:column;gap:10px;display:flex}.stat-strip-side .stat{flex-direction:column;flex:1;justify-content:center;display:flex}@media (max-width:700px){.analytics-top{grid-template-columns:1fr}.stat-strip-side{flex-flow:wrap}.stat-strip-side .stat{flex:140px}}.stat-trio{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}@media (max-width:560px){.stat-trio{grid-template-columns:1fr 1fr}}.livedot{background:var(--accent-soft);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1.6s infinite pulse;display:inline-block}.report2-body{flex:1;grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;gap:20px;min-height:0;display:grid}.report-log{flex-direction:column;min-height:0;display:flex}.analytics-card .chart-fill{flex-direction:column;flex:1;min-height:0;display:flex}.report-log .log-list{flex:1;min-height:0;max-height:none}@media (max-width:1100px){.report2{flex:none}.report2-body{flex:none;grid-template-columns:1fr;min-height:0}.report-log .log-list{flex:none;max-height:320px}}.period-wrap{position:relative}.cal{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:286px;padding:14px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 34px #00000080}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:14px;display:flex}.cal-head button{color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 9px;font-size:18px;line-height:1}.cal-head button:hover{background:var(--panel-2)}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-wd{text-align:center;color:var(--muted);padding:4px 0;font-size:11px}.cal-day{aspect-ratio:1;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:0;font-size:12.5px}.cal-day:hover:not(:disabled){background:var(--panel-2)}.cal-day.range{background:var(--panel-2);border-radius:2px}.cal-day.edge{background:var(--ink);color:var(--bg)}.cal-day:disabled{color:color-mix(in srgb, var(--muted) 45%, transparent);cursor:default}.cal-quick{gap:6px;margin-top:10px;display:flex}.cal-quick button{background:var(--bg);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:7px;flex:1;padding:6px;font-size:12px}.cal-quick button:hover{color:var(--ink);border-color:var(--accent)}.cal-foot{margin-top:10px}.cal-actions{gap:8px;margin-top:8px;display:flex}.cal-actions .btn{flex:1}.live-card{border:1px solid var(--line);aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;max-height:340px;position:relative;overflow:hidden}.live-card video,.live-card img{object-fit:contain;width:100%;height:100%;display:block}.live-badge{z-index:2;color:#fff;letter-spacing:1px;background:#0000008c;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:flex;position:absolute;top:10px;left:10px}.live-badge .dot{background:var(--red);border-radius:50%;width:8px;height:8px;animation:1.6s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--red) 60%, transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--red) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--red) 0%, transparent)}}.live-empty{height:100%;color:var(--muted);place-items:center;display:grid}.chart-card{padding:16px}.analytics-card{flex-direction:column;gap:16px;min-width:0;min-height:0;display:flex}.analytics-card .live-card{align-self:start}.chart-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.chart-head h3{margin:0;font-size:14px}.legend-row{color:var(--muted);gap:14px;font-size:12px;display:flex}.legend-row .sw{vertical-align:middle;border-radius:3px;width:11px;height:11px;margin-right:5px;display:inline-block}.chart2{flex:1;gap:8px;min-height:180px;display:flex}.chart2 .yaxis{text-align:right;width:34px;color:var(--muted);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;padding-bottom:18px;font-size:11px;display:flex}.chart2 .plot{flex:1;position:relative}.chart2 .grid{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 18px}.chart2 .gline{border-top:1px dashed var(--line);height:0}.chart2 .cols{align-items:flex-end;gap:3px;display:flex;position:absolute;inset:0}.chart2 .col2{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.chart2 .pair{justify-content:center;align-items:flex-end;gap:2px;width:100%;height:calc(100% - 18px);display:flex;position:relative}.chart2 .pair .bar{z-index:2;border-radius:6px 6px 0 0;width:46%;min-height:1px;position:relative}.chart2 .typical-mark{border-top:2px dashed var(--muted);pointer-events:none;z-index:1;opacity:.85;height:0;position:absolute;left:27%;right:27%}.chart2 .typical-mark.wide{left:4%;right:4%}.chart2 .col2:hover .bar,.chart2 .col2.hot .bar{filter:brightness(1.12)saturate(1.1)}.chart2 .xlabel{height:18px;color:var(--muted);white-space:nowrap;font-size:10px;line-height:18px}.chart2 .bar-tip{color:#fff;white-space:nowrap;pointer-events:none;z-index:6;background:#141210f5;border-radius:12px;padding:6px 12px;font-size:12px;font-weight:600;position:absolute;top:-4px;transform:translate(-50%);box-shadow:0 6px 18px #00000059}.chart2 .median-line{border-top:1.5px dashed var(--accent-soft);pointer-events:none;z-index:3;position:absolute;left:0;right:0}.chart2 .median-label{color:var(--accent-soft);background:var(--panel);white-space:nowrap;padding:0 4px;font-size:10px;font-weight:600;position:absolute;top:-16px;right:2px}.chart2 .peak-label{color:var(--ink);white-space:nowrap;font-size:12px;font-weight:800;position:absolute;left:50%;transform:translate(-50%)}.chart2 .bar-value{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.log-card{flex-direction:column;display:flex}.log-list{flex-direction:column;max-height:300px;margin:2px -6px 0;padding:0 6px;display:flex;overflow-y:auto}.log-row{border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 8px;font-size:13px;display:flex}.log-row+.log-row{border-top:1px solid var(--line)}.log-row:hover{background:var(--panel-2)}.log-dir{align-items:center;gap:8px;font-weight:600;display:flex}.log-row .t{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.log-in{color:var(--green)}.log-out{color:var(--red)}.log-empty{color:var(--muted);padding:18px 2px;font-size:13px}.invite-box{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:10px;margin-top:14px;padding:12px}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:360px;padding:30px}.login-card h1{margin:0 0 6px;font-size:20px}.login-card p{color:var(--muted);margin:0 0 22px;font-size:13px}.login-err{color:var(--red);margin-top:12px;font-size:13px}
