:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#f5f7fb;background:#0b1020}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,rgba(56,189,248,.18),transparent 35%),#0b1020}a{color:inherit;text-decoration:none}.page{width:min(960px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 3rem}.hero{display:grid;gap:1rem}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:#7dd3fc}h1{margin:0;font-size:clamp(2rem,5vw,3rem)}.subtitle{margin:0;max-width:60ch;color:#cbd5e1}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.5rem}.card{padding:1.25rem;border:1px solid rgba(148,163,184,.25);border-radius:1rem;background:#0f172abf}.card h2{margin:0 0 .5rem}.card p{margin:0 0 1rem;color:#cbd5e1}.page-header{display:grid;gap:.5rem;margin-bottom:1.5rem}.back-link{color:#7dd3fc}.room-form{display:grid;gap:.5rem;margin-bottom:1rem}.form-row{display:flex;gap:.75rem;flex-wrap:wrap}input{flex:1;min-width:220px;padding:.75rem 1rem;border-radius:.75rem;border:1px solid rgba(148,163,184,.35);background:#0f172ae6;color:inherit}.button{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.1rem;border-radius:.75rem;border:0;cursor:pointer;font-weight:600}.button.primary{background:#0284c7;color:#fff}.button.secondary{background:#334155;color:#fff}.button.danger{background:#b91c1c;color:#fff}.button:disabled{opacity:.6;cursor:not-allowed}.error-banner,.status-banner{padding:.85rem 1rem;border-radius:.75rem;margin:0 0 1rem}.error-banner{background:#b91c1c2e;border:1px solid rgba(248,113,113,.35)}.status-banner{background:#3341558c}.status-banner.live{background:#16a34a2e;border:1px solid rgba(74,222,128,.35)}.video-shell{position:relative;overflow:hidden;border-radius:1rem;background:#020617;border:1px solid rgba(148,163,184,.25);aspect-ratio:16 / 9}.video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.video.mirror{transform:scaleX(-1)}.video-label{position:absolute;top:.75rem;left:.75rem;z-index:1;padding:.35rem .65rem;border-radius:999px;background:#0f172abf;font-size:.85rem}.video-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#94a3b8;z-index:1;pointer-events:none}.video-play-button{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:fit-content;height:fit-content;z-index:2;padding:.85rem 1.25rem;border:0;border-radius:999px;background:#0284c7eb;color:#fff;font-weight:600;cursor:pointer}.status-banner.mobile-permission{background:#0284c726;border:1px solid rgba(56,189,248,.35)}.media-controls{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.media-control{flex:1;min-width:140px;min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;border-radius:.85rem;border:1px solid rgba(148,163,184,.35);background:#334155d9;color:#f8fafc;font-weight:600;cursor:pointer;touch-action:manipulation}.media-control.active{background:#16a34a38;border-color:#4ade8073}.media-control.inactive{background:#b91c1c38;border-color:#f8717173}.media-control:disabled{opacity:.6;cursor:not-allowed}.media-control-icon{font-size:1.25rem;line-height:1}.media-control-label{font-size:.95rem}.dashboard-page{width:min(1200px,calc(100% - 2rem))}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.metric-card{padding:1.1rem 1.25rem;border-radius:1rem;border:1px solid rgba(148,163,184,.25);background:#0f172abf}.metric-label{margin:0;color:#94a3b8;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.metric-card h2{margin:.35rem 0;font-size:1.75rem}.metric-detail{margin:0;color:#cbd5e1;font-size:.9rem}.dashboard-table-shell{border:1px solid rgba(148,163,184,.25);border-radius:1rem;background:#0f172abf;overflow:hidden}.dashboard-table-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(148,163,184,.2)}.dashboard-table-header h2{margin:0;font-size:1.1rem}.dashboard-count{color:#94a3b8;font-size:.9rem}.dashboard-table-wrap{overflow-x:auto}.dashboard-table{width:100%;border-collapse:collapse;min-width:900px}.dashboard-table th,.dashboard-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(148,163,184,.15);vertical-align:top}.dashboard-table th{color:#94a3b8;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.stream-room{font-weight:600}.stream-id,.stream-error{margin-top:.25rem;color:#94a3b8;font-size:.8rem}.stream-error{color:#fca5a5}.status-pill{display:inline-flex;padding:.25rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}.status-recording,.status-finalizing{background:#16a34a33;color:#86efac}.status-uploaded{background:#0284c733;color:#7dd3fc}.status-processing{background:#eab30833;color:#fde047}.status-ready{background:#4f46e533;color:#c4b5fd}.status-failed{background:#b91c1c33;color:#fca5a5}.dashboard-empty{padding:1.25rem;color:#94a3b8}.dashboard-monitor-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.mini-chart{padding:1rem 1.1rem;border-radius:1rem;border:1px solid rgba(148,163,184,.25);background:#0f172abf}.mini-chart-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.mini-chart-label{color:#94a3b8;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.mini-chart-value{color:#f8fafc;font-size:.95rem;font-weight:600}.mini-chart-svg{width:100%;height:48px;display:block}.monitor-meta h2{margin:.35rem 0;font-size:1.5rem}.dashboard-delete-btn{padding:.5rem .8rem;font-size:.85rem}.replay-page{width:min(1100px,calc(100% - 2rem))}.replay-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.replay-card{overflow:hidden;border-radius:1rem;border:1px solid rgba(148,163,184,.25);background:#0f172abf}.replay-poster{aspect-ratio:16 / 9;background-color:#020617;background-size:cover;background-position:center}.replay-card-body{display:grid;gap:.45rem;padding:1rem 1.1rem 1.2rem}.replay-card-body h2{margin:0;font-size:1.15rem}.replay-meta{margin:0;color:#94a3b8;font-size:.9rem}.replay-empty{display:grid;gap:.75rem;padding:1.25rem;border-radius:1rem;border:1px solid rgba(148,163,184,.25);background:#0f172abf;color:#cbd5e1}.replay-empty p{margin:0}.dashboard-watch-link{display:inline-block;margin-top:.35rem;color:#7dd3fc;font-size:.85rem;font-weight:600}
