:root{--bg: #0f1115;--panel-bg: #1a1d24;--panel-border: #2a2f3a;--text: #e6e8eb;--muted: #8a909b;--accent: #2f81f7;--danger: #e5534b;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;color:var(--text)}html,body,#app{margin:0;padding:0;height:100%;width:100%;background:var(--bg)}*{box-sizing:border-box}button{font:inherit;background:#232733;border:1px solid var(--panel-border);color:var(--text);padding:5px 11px;border-radius:5px;cursor:pointer}button:hover:not(:disabled){background:#2c313e}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{border-color:var(--danger);color:#ff9b94}input,select{font:inherit;background:#0d0f13;color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:6px 8px;width:100%}.app-shell{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel-bg);border-bottom:1px solid var(--panel-border)}.brand{font-size:15px}.spacer{flex:1}.who{color:var(--muted);margin-right:4px}.nudge{color:#ffcf5c;margin-right:10px}.content{flex:1;min-height:0;padding:10px}.splash{display:grid;place-items:center;height:100%;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:100%}.grid-cell{display:flex;flex-direction:column;background:#000;border:1px solid var(--panel-border);border-radius:8px;overflow:hidden;min-height:0}.cell-bar{padding:6px;background:var(--panel-bg);border-bottom:1px solid var(--panel-border)}.cell-bar select{width:auto;min-width:180px}.cell-video{position:relative;flex:1;min-height:0;background:#000}.cell-video video{width:100%;height:100%;object-fit:contain;display:block}.cell-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:13px;pointer-events:none;text-align:center;padding:8px}.cell-error{color:#ff9b94}.cell-label{position:absolute;left:8px;bottom:8px;background:#0000008c;padding:2px 8px;border-radius:4px;font-size:12px}.grid-hint{color:var(--muted);padding:12px;text-align:center}.grid-hint.err{color:#ff9b94}.login-mask{display:grid;place-items:center;height:100%}.login-card{display:flex;flex-direction:column;gap:12px;background:var(--panel-bg);border:1px solid var(--panel-border);padding:28px;border-radius:10px;width:320px}.login-card h1{margin:0 0 6px;font-size:18px;text-align:center}.login-card label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.login-error,.modal-error{color:#ff9b94;font-size:12px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:50;padding:20px}.modal{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:16px;width:min(960px,95vw);max-height:90vh;overflow:auto}.modal.narrow{width:340px;display:flex;flex-direction:column;gap:10px}.modal.narrow label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-head h2{margin:0;font-size:16px}.admin-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:760px){.admin-cols{grid-template-columns:1fr}}.group{border:1px solid var(--panel-border);border-radius:8px;padding:10px;background:#14171d}.group>h3{margin:0 0 8px;font-size:13px;color:var(--muted)}.group h4{margin:12px 0 6px;font-size:12px;color:var(--muted)}.form{display:flex;flex-direction:column;gap:8px}.form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.form label.chk{flex-direction:row;align-items:center;gap:6px}.form label.chk input{width:auto}.row{display:flex;gap:8px}.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th{text-align:left;color:var(--muted);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--panel-border)}.tbl td{padding:5px 6px;border-bottom:1px solid #20242d;vertical-align:top}.tbl td.actions{white-space:nowrap;display:flex;gap:6px}.tbl td.actions button{padding:3px 8px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.url{word-break:break-all;max-width:260px}.muted{color:var(--muted)}
