:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef2f5;--panel:#fff;--panel-2:#f7f9fb;--ink:#15202b;--muted:#667481;--line:#d8e0e7;--nav:#121c25;--nav-2:#1e2c38;--accent:#176b5f;--accent-2:#145c8d;--amber:#b36b00;--danger:#b42318;--ok:#16803f;--violet:#6b4bb8;--shadow:0 18px 44px #121f2c1c}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;color:var(--ink);margin:0;font-family:Yu Gothic UI,Meiryo,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, var(--nav), #0d151c);color:#eef5f8;border-right:1px solid #263744;flex-direction:column;gap:20px;padding:22px 18px;display:flex}.brand{align-items:center;gap:12px;min-height:52px;display:flex}.brand-mark{color:#17212a;background:#f0b13f;border-radius:8px;place-items:center;width:46px;height:46px;display:grid}.brand strong,.brand span{display:block}.brand strong{font-size:17px}.brand span{color:#aebbc6;margin-top:2px;font-size:12px}.nav-list{gap:6px;display:grid}.nav-item{color:#c8d4dd;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;width:100%;padding:11px 12px;text-decoration:none;display:flex}.nav-item.active,.nav-item:hover{background:var(--nav-2);color:#fff}.section-label,.operator-card label{color:#aebbc6;margin:0;font-size:12px;font-weight:800}.operator-card,.permission-box{background:#101b24c7;border:1px solid #314553;border-radius:8px;gap:10px;padding:13px;display:grid}.select-with-icon{background:#0f1922;border:1px solid #344a5b;border-radius:7px;align-items:center;gap:8px;padding:0 10px;display:flex}.select-with-icon select{color:#fff;background:0 0;border:0;outline:0;width:100%;min-height:40px}.role-pill{border-radius:999px;justify-content:center;align-items:center;min-height:32px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.role-platform{color:#26203f;background:#e7defd}.role-reseller{color:#123f4f;background:#d8eff7}.role-admin{color:#104332;background:#d9f3e7}.role-viewer{color:#543900;background:#fff0c9}.role-site{color:#273f5b;background:#dfeaf6}.role-external{color:#5c3048;background:#f5e0eb}.operator-identity{align-items:center;gap:9px;min-width:0;display:flex}.operator-identity div{min-width:0}.operator-identity strong,.operator-identity span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.operator-identity span{color:#aebbc6;margin-top:3px;font-size:11px}.logout-button{color:#dbe5eb;background:#101b24;border:1px solid #344a5b;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:42px;margin-top:auto;display:flex}.operator-meta,.session-list{gap:8px;margin:0;display:grid}.operator-meta div,.session-list div{grid-template-columns:74px minmax(0,1fr);gap:8px;display:grid}.operator-meta dt,.session-list dt{color:#91a1ad;font-size:12px}.operator-meta dd,.session-list dd{color:#eef5f8;overflow-wrap:anywhere;min-width:0;margin:0}.permission-list{gap:8px;display:grid}.permission-list span{color:#d7e3eb;align-items:center;gap:7px;font-size:13px;display:flex}.workspace{gap:16px;min-width:0;padding:22px;display:grid}.topbar,.control-strip,.viewer-panel,.camera-panel,.access-panel,.session-panel,.alert-panel,.role-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.topbar{border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;align-items:center;gap:6px;margin:0 0 4px;font-size:12px;font-weight:900;display:flex}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin-bottom:0;font-size:28px}h2{margin-bottom:0;font-size:19px}.status-cluster{grid-template-columns:repeat(4,minmax(78px,1fr));gap:10px;display:grid}.metric{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;min-width:0;padding:10px 12px}.metric span,.metric small{display:block}.metric span{font-size:23px;font-weight:900}.metric small{color:var(--muted);white-space:nowrap}.metric.live span{color:var(--ok)}.metric.warning span{color:var(--amber)}.metric.offline span{color:var(--danger)}.role-overview{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.role-card{min-height:108px;box-shadow:none;border-radius:8px;gap:6px;padding:13px;display:grid}.role-card span{color:var(--muted);font-size:12px;font-weight:900}.role-card strong{font-size:15px}.role-card small{color:var(--muted);line-height:1.5}.role-card.active{border-width:2px}.role-card.role-platform.active{border-color:var(--violet)}.role-card.role-reseller.active{border-color:#1b83a3}.role-card.role-admin.active{border-color:var(--accent)}.role-card.role-viewer.active{border-color:#c98900}.role-card.role-site.active{border-color:#527da6}.role-card.role-external.active{border-color:#a9547f}.control-strip{border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.search-wrap{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:8px;flex:300px;align-items:center;gap:8px;padding:0 10px;display:flex}.search-wrap input,.control-strip select{background:0 0;border:0;outline:0;min-height:42px}.search-wrap input{width:100%}.control-strip select{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:0 12px}.toggle{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 12px;display:flex}.view-toggle{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.view-toggle button{background:var(--panel-2);border:0;align-items:center;gap:6px;min-height:42px;padding:0 14px;display:flex}.view-toggle button.selected{color:#fff;background:var(--accent-2)}.main-grid{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:16px;display:grid}.viewer-panel,.camera-panel,.access-panel,.session-panel,.alert-panel{border-radius:8px;overflow:hidden}.video-stage{aspect-ratio:16/9;background:#111b21;width:100%;position:relative;overflow:hidden}.video-stage video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.video-stage.has-video video{display:block}.video-stage.has-video .simulated-feed{display:none}.simulated-feed{background:linear-gradient(#24333d,#101820);position:absolute;inset:0}.feed-overlay,.camera-hud{z-index:2;color:#fff;background:#040c12b8;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-weight:900;display:flex;position:absolute}.feed-overlay{top:14px;left:14px}.camera-hud{font-size:12px;bottom:14px;right:14px}.camera-hud span{border-left:1px solid #ffffff40;padding-left:8px}.camera-hud span:first-child{border-left:0;padding-left:0}.record-dot{background:#ef4444;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 5px #ef444429}.tunnel-scene{position:absolute;inset:0;overflow:hidden}.pipe{border:46px solid #a0aeb56b;border-bottom:0;border-radius:50% 50% 0 0;width:82%;height:86%;position:absolute;bottom:-12%;left:50%;transform:translate(-50%);box-shadow:inset 0 30px 90px #00000073}.work-light{filter:blur(16px);background:#ffce69e6;border-radius:50%;width:18%;height:18%;position:absolute}.work-light.one{top:30%;right:20%}.work-light.two{opacity:.7;top:42%;left:18%}.scan-line{background:#42d3ffb8;height:2px;position:absolute;top:46%;left:0;right:0;box-shadow:0 0 18px #42d3ffb8}.worker-line{background:repeating-linear-gradient(90deg,#e3ac3d 0 18px,#1d252d 18px 32px);width:64%;height:5px;position:absolute;bottom:22%;left:18%;transform:skewY(-8deg)}.viewer-meta{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.badge-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.status-badge,.soft-badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.status-badge.live{color:#0d5e2e;background:#dff5e6}.status-badge.warning{color:#7a4b00;background:#fff1d8}.status-badge.offline{color:#8f1f17;background:#ffe5e2}.soft-badge{color:var(--muted);background:var(--panel-2)}.grid-view{background:#101820;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;padding:16px;display:grid}.wall-view{align-content:start;min-height:360px}.grid-tile{aspect-ratio:16/9;background:#091016;border:1px solid #ffffff29;border-radius:8px;min-width:0;position:relative;overflow:hidden}.grid-caption{z-index:4;pointer-events:none;min-width:0;position:absolute;bottom:8px;left:10px;right:10px}.grid-caption strong,.grid-caption small{color:#fff;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.grid-caption strong{font-weight:900}.grid-caption small{color:#cdd7df;margin-top:2px}.empty-slot{color:#9eb0bb;background:#111b22;place-content:center;justify-items:center;gap:6px;display:grid}.empty-slot small{color:#dbe6ec;border:1px solid #fff3;border-radius:50%;place-items:center;min-width:24px;min-height:24px;display:grid}.wall-empty{color:#9eb0bb;grid-column:1/-1;place-content:center;justify-items:center;gap:10px;min-height:360px;display:grid}.wall-empty strong{color:#dbe6ec}.operations-bar{border-top:1px solid var(--line);background:var(--panel-2);grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;display:grid}.operations-bar.single-action>span{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.operations-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}button.wall-fullscreen-action{color:var(--ink);background:var(--panel)}.token-action:disabled{cursor:not-allowed;opacity:.48}.stream-surface{background:#091016;width:100%;height:100%;min-height:100%;position:relative;overflow:hidden}.stream-surface video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.stream-placeholder{color:#dbe6ec;text-align:center;background:#111b22;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex;position:absolute;inset:0}.stream-placeholder svg{color:#78909e}.stream-placeholder span{color:#9eb0bb;font-size:13px}.stream-surface.compact .feed-overlay{padding:6px;font-size:10px;top:8px;left:8px}.stream-surface.compact .feed-overlay>span:not(:first-child){display:none}.stream-fullscreen-action{z-index:6;color:#fff;background:#040c12c7;border:1px solid #ffffff40;border-radius:6px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:10px;right:10px}.stream-surface.compact .stream-fullscreen-action{width:27px;height:27px;top:8px;right:8px}.stream-surface:fullscreen,.stream-surface.is-fullscreen{background:#000;width:100vw;height:100vh}.stream-surface.is-fullscreen{z-index:100;position:fixed;inset:0}.stream-surface:fullscreen .feed-overlay,.stream-surface.is-fullscreen .feed-overlay{padding:7px 10px;font-size:13px;top:14px;left:14px}.stream-surface.compact:fullscreen .feed-overlay>span,.stream-surface.compact.is-fullscreen .feed-overlay>span{display:inline}.viewer-panel:fullscreen,.viewer-panel.is-fullscreen{background:#091016;border:0;border-radius:0;grid-template-rows:minmax(0,1fr) auto;width:100vw;height:100vh;display:grid}.viewer-panel.is-fullscreen{z-index:90;position:fixed;inset:0}.wall-fullscreen-open{overflow:hidden}.viewer-panel:fullscreen .grid-view,.viewer-panel.is-fullscreen .grid-view{grid-template-columns:repeat(var(--wall-columns,1), minmax(0, 1fr));grid-template-rows:repeat(var(--wall-rows,1), minmax(0, 1fr));align-content:stretch;gap:8px;min-height:0;padding:8px;overflow:hidden}.viewer-panel:fullscreen .grid-tile,.viewer-panel.is-fullscreen .grid-tile{aspect-ratio:auto;border-radius:4px;min-height:0}.viewer-panel:fullscreen .operations-bar,.viewer-panel.is-fullscreen .operations-bar{background:#101820;border-color:#ffffff24;min-height:58px}.viewer-panel:fullscreen .operations-bar>span,.viewer-panel.is-fullscreen .operations-bar>span{color:#cdd7df}.empty-list{color:var(--muted);text-align:center;padding:18px;font-size:13px}.loading-screen{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:12px;display:grid}.load-state-card{width:min(420px,100vw - 32px);color:var(--ink);text-align:center;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;justify-items:center;gap:12px;padding:28px;display:grid}.load-state-card span{color:var(--muted);font-size:13px}.role-summary{background:var(--panel);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:13px 16px;display:grid}.role-summary>div:first-child{gap:3px;display:grid}.role-chip-list{align-items:center;gap:8px;min-width:0;display:flex;overflow-x:auto}.role-chip{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;align-items:baseline;gap:7px;min-width:max-content;padding:7px 10px;display:flex}.role-chip strong{font-size:12px}.role-chip small{color:var(--muted);font-size:11px}.wallboard-session-status{color:#17695e;white-space:nowrap;background:#effaf7;border:1px solid #b9ddd5;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:1px 7px;min-height:38px;padding:7px 10px;font-size:11px;font-weight:800;display:grid}.wallboard-session-status svg{color:var(--ok);grid-row:1/3}.wallboard-session-status small{color:var(--muted);font-size:9px;font-weight:700}.login-page{background:#eef2f5;grid-template-columns:minmax(380px,.9fr) minmax(420px,1.1fr);min-height:100vh;display:grid}.login-page-minimal{grid-template-columns:minmax(0,1fr)}.login-page-minimal .login-form-panel{min-height:100vh}.login-service-name{color:#121c25;letter-spacing:-.04em;text-align:center;margin:0 0 32px;font-size:clamp(36px,6vw,52px);line-height:1}.login-identity{color:#f2f6f8;background:#121c25;flex-direction:column;justify-content:space-between;gap:56px;padding:clamp(32px,6vw,88px);display:flex}.login-brand{align-self:flex-start}.login-identity h1{letter-spacing:0;margin:10px 0 14px;font-size:40px}.login-identity p:not(.eyebrow){color:#b9c7d0;max-width:520px;line-height:1.8}.login-security{color:#c7d4dc;border-top:1px solid #344651;align-items:center;gap:10px;padding-top:20px;font-size:13px;display:flex}.login-form-panel{place-items:center;padding:32px;display:grid}.login-form-wrap{width:min(420px,100%)}.login-form-wrap h2{margin:8px 0 28px;font-size:28px}.login-form-wrap form{gap:18px;display:grid}.login-form-wrap label{color:#394854;gap:7px;font-size:13px;font-weight:800;display:grid}.login-form-wrap input{border:1px solid var(--line);background:#fff;border-radius:7px;outline:0;width:100%;min-height:48px;padding:0 12px}.login-form-wrap input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px #145c8d1f}.login-submit{color:#fff;background:var(--accent-2);border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:48px;font-weight:900;text-decoration:none;display:flex}.login-submit:disabled{opacity:.55}.login-error{color:var(--danger);margin:0;font-size:13px}.hls-connector{align-items:center;gap:10px;display:flex}.hls-connector input{border:1px solid var(--line);background:#fff;border-radius:8px;flex:1;min-width:0;min-height:40px;padding:0 10px}.hls-connector button,.token-action{color:#fff;border:0;border-radius:8px;min-height:40px;padding:0 14px;font-weight:900}.hls-connector button{background:var(--accent-2)}.token-action{background:var(--accent);align-items:center;gap:7px;display:flex}.camera-panel,.access-panel,.session-panel,.alert-panel{padding:16px}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.tool-panel>.panel-head,.table-panel>.panel-head{border-bottom:1px solid var(--line);margin-bottom:0;padding:14px 16px}.camera-panel-head-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.clear-selection-button{white-space:nowrap;min-height:34px;padding-inline:10px}.camera-list{gap:10px;max-height:648px;padding-right:4px;display:grid;overflow:auto}.camera-card{border:1px solid var(--line);background:var(--panel-2);text-align:left;border-radius:8px;width:100%;padding:12px}.camera-card.active{border-color:var(--accent);box-shadow:0 0 0 3px #1e6f6829}.camera-card:disabled{cursor:not-allowed;opacity:.48}.my-view-marker{border:1px solid var(--line-strong);width:30px;height:30px;color:var(--muted);background:var(--panel);border-radius:50%;flex:0 0 30px;place-items:center;font-weight:900;display:grid}.camera-card.active .my-view-marker{border-color:var(--accent);color:#fff;background:var(--accent)}.camera-title{justify-content:space-between;align-items:start;gap:10px;display:flex}.camera-title strong{display:block}.camera-card small{color:var(--muted);margin-top:4px;display:block}.camera-data-row{color:var(--muted);grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:11px;font-size:12px;display:grid}.camera-data-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lower-grid{grid-template-columns:repeat(2,minmax(280px,1fr));align-items:start;gap:16px;display:grid}.access-table,.alert-list{gap:8px;display:grid}.access-row{border:1px solid var(--line);background:var(--panel-2);border-radius:7px;grid-template-columns:112px minmax(0,1fr) minmax(190px,.9fr) 54px;align-items:center;gap:10px;min-height:42px;padding:8px 10px;display:grid}.access-row span{color:var(--muted);font-size:12px;font-weight:900}.access-row strong,.access-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.access-row small{color:var(--muted)}.access-row em{justify-self:end;font-size:12px;font-style:normal;font-weight:900}.access-row.allowed em{color:var(--ok)}.access-row.denied{opacity:.64}.access-row.denied em{color:var(--danger)}.session-list div{border-bottom:1px solid var(--line);grid-template-columns:84px minmax(0,1fr);padding:9px 0}.session-list dt{color:var(--muted)}.session-list dd{color:var(--ink)}.alert-item{border:1px solid var(--line);background:var(--panel-2);border-radius:7px;grid-template-columns:14px minmax(0,1fr);align-items:center;gap:8px 10px;padding:10px;display:grid}.alert-item strong,.alert-item small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.alert-item small{color:var(--muted);grid-column:2}.alert-action{border:1px solid var(--line-strong);background:var(--panel-strong);color:var(--text);font:inherit;cursor:pointer;grid-column:2;justify-self:end;padding:6px 9px;font-size:12px}.status-dot{border-radius:50%;width:10px;height:10px}.status-dot.live{background:var(--ok)}.status-dot.warning{background:var(--amber)}.status-dot.offline{background:var(--danger)}@media (max-width:1240px){.main-grid,.lower-grid{grid-template-columns:1fr}.role-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.app-shell{grid-template-columns:minmax(0,1fr)}.login-page{grid-template-columns:1fr}.login-identity{gap:28px;padding:28px}.login-identity h1{font-size:32px}.status-cluster{grid-template-columns:repeat(2,minmax(0,1fr))}.access-row{grid-template-columns:96px minmax(0,1fr) 48px}.access-row small{display:none}}@media (max-width:640px){.app-shell,.workspace{width:100%;min-width:0;max-width:100%}.workspace{padding:14px}.topbar,.viewer-meta,.operations-bar{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.role-overview,.grid-view{grid-template-columns:1fr}.control-strip{grid-template-columns:1fr;align-items:stretch;width:100%;min-width:0;display:grid}.search-wrap,.control-strip select,.toggle,.main-grid,.viewer-panel,.camera-panel{width:100%;min-width:0;max-width:100%}.view-toggle{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.view-toggle button{justify-content:center;min-width:0;padding:0 8px}.operations-bar,.hls-connector{grid-template-columns:1fr;display:grid}.operations-actions{justify-content:stretch}.operations-actions .token-action{flex:1;justify-content:center}}.management-shell{background:var(--bg);min-height:100vh}.management-header{color:#eef5f8;background:var(--nav);border-bottom:1px solid #263744;grid-template-columns:260px minmax(0,1fr) auto;align-items:center;gap:20px;min-height:72px;padding:10px 24px;display:grid}.management-brand{color:inherit;text-decoration:none}.management-brand .brand-mark{width:42px;height:42px}.management-nav{align-items:center;gap:4px;display:flex}.management-nav a{color:#c8d4dd;border-radius:7px;align-items:center;gap:7px;min-height:42px;padding:0 12px;font-size:13px;font-weight:800;text-decoration:none;display:flex}.management-nav a.active,.management-nav a:hover{color:#fff;background:var(--nav-2)}.management-user{align-items:center;gap:10px;font-size:13px;display:flex}.management-user button{color:#dbe5eb;background:0 0;border:1px solid #344a5b;border-radius:7px;place-items:center;width:38px;height:38px;display:grid}.management-main{width:min(1480px,100%);margin:0 auto;padding:28px}.management-title{margin-bottom:18px}.management-title h1{letter-spacing:0;margin:5px 0 0;font-size:28px}.management-grid{grid-template-columns:minmax(300px,360px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.camera-management-grid{grid-template-columns:minmax(300px,330px) minmax(0,1fr)}.camera-workspace{gap:16px;min-width:0;display:grid}.tool-panel,.table-panel,.recording-viewer{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}.wide-panel{min-width:0}.form-grid{gap:13px;padding:16px;display:grid}.form-grid label{color:#43515d;gap:6px;font-size:12px;font-weight:800;display:grid}.form-grid input:not([type=checkbox]),.form-grid select,.data-table select,.data-table input{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:7px;padding:0 10px}.management-message{border:1px solid #b8d3cc;border-radius:7px;grid-column:1/-1}.management-list-section{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-top:18px;overflow:hidden}.organization-table .table-row{grid-template-columns:110px minmax(190px,1.3fr) minmax(170px,1fr) 72px minmax(150px,auto)}.row-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);background:#fff;border-radius:7px;place-items:center;display:inline-grid}.icon-button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--line))}.inline-check{white-space:nowrap;grid-template-columns:none;align-items:center;gap:8px!important;display:flex!important}.primary-button,.secondary-button,.icon-text-button{border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:40px;font-weight:900;display:inline-flex}.primary-button{color:#fff;background:var(--accent-2);border:0}.secondary-button,.icon-text-button{border:1px solid var(--line);color:var(--ink);background:#fff;padding:0 10px}.secondary-button:disabled{opacity:.4;cursor:not-allowed}.form-message{border-top:1px solid var(--line);color:var(--accent);background:#f3faf8;margin:0;padding:12px 16px;font-size:13px}.credential-panel{background:#f3faf8;border:1px solid #b8d3cc;border-radius:7px;margin:0 16px 16px;padding:14px}.credential-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.credential-panel-head>span,.credential-panel>div{align-items:center;gap:8px;display:flex}.credential-panel .icon-button{width:32px;height:32px;margin-left:auto}.credential-panel dl{gap:5px;margin:14px 0 10px;display:grid}.credential-panel dt,.credential-panel small{color:var(--muted);font-size:11px}.credential-panel dd{overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin:0 0 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;display:grid}.credential-panel dd span{overflow-wrap:anywhere;min-width:0}.credential-panel dd .icon-button{margin-left:0}.table-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:70px;padding:12px 16px;display:flex}.table-toolbar h2{margin:3px 0 0;font-size:18px}.compact-search{flex:0 320px}.data-table{width:100%;overflow-x:auto}.table-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:760px;min-height:64px;padding:9px 14px;font-size:13px;display:grid}.table-row:last-child{border-bottom:0}.table-head{min-height:42px;color:var(--muted);background:var(--panel-2);font-size:11px;font-weight:900}.user-table .table-row{grid-template-columns:minmax(190px,1.35fr) minmax(170px,1.15fr) minmax(150px,1fr) 96px 132px}.camera-admin-table .table-row.selected{box-shadow:inset 3px 0 0 var(--accent-2);background:#eef8f5}.camera-id-cell,.icon-value{align-items:center;gap:8px;display:flex}.camera-id-cell>span,.icon-value>span{min-width:0}.camera-id-cell>svg,.icon-value>svg{color:var(--accent);flex:none}.camera-detail-head{gap:16px;min-height:78px}.camera-detail-head>div:first-child{min-width:0}.camera-detail-head h2,.camera-detail-head small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.camera-detail-head small{color:var(--muted);font-size:12px}.camera-setting-strip{justify-content:flex-end;align-items:center;gap:8px;display:flex}.camera-setting-strip select{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:76px;min-height:40px;padding:0 8px}.camera-detail-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr);display:grid}.assignment-form{align-content:start;gap:12px;padding:16px;display:grid}.assignment-form label{color:#43515d;gap:6px;font-size:12px;font-weight:800;display:grid}.assignment-form input,.assignment-form select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:7px;padding:0 10px}.assignment-form select:disabled{color:var(--muted);background:var(--panel-2)}.section-heading{align-items:center;gap:8px;min-height:34px;display:flex}.section-heading .soft-badge{margin-left:auto}.assignment-history{border-left:1px solid var(--line);min-width:0;padding:16px}.assignment-history-list{max-height:330px;margin-top:8px;overflow-y:auto}.assignment-history-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,.7fr) minmax(210px,1.3fr) minmax(130px,1fr);align-items:center;gap:12px;min-height:74px;padding:10px 4px 10px 20px;font-size:12px;display:grid;position:relative}.assignment-history-row:last-child{border-bottom:0}.assignment-history-row strong,.assignment-history-row small{display:block}.assignment-history-row small{color:var(--muted);font-size:11px}.assignment-history-row>div:nth-of-type(2){gap:5px;display:grid}.assignment-history-row>div:nth-of-type(2) span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;min-width:0;display:flex;overflow:hidden}.history-marker{border:2px solid var(--accent-2);background:#fff;border-radius:50%;width:8px;height:8px;position:absolute;left:2px}.audit-table .table-row{grid-template-columns:140px minmax(170px,1.25fr) 130px minmax(150px,1fr) minmax(150px,1fr) 64px}.table-row>span{min-width:0}.table-row strong,.table-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.table-row small{color:var(--muted);margin-top:3px;font-size:11px}.grant-line{align-items:center;gap:5px;display:flex!important}.grant-line button{width:23px;height:23px;color:var(--danger);background:0 0;border:0;place-items:center;display:inline-grid}.user-cell{align-items:center;gap:8px;display:flex}.user-cell>span{min-width:0}.state-chip{border-radius:999px;justify-content:center;align-items:center;min-height:27px;padding:0 8px;font-size:11px;font-style:normal;font-weight:900;display:inline-flex}.state-chip.active{color:#0d5e2e;background:#dff5e6}.state-chip.disabled{color:#7b3a34;background:#f6e4e2}.recording-layout{grid-template-columns:minmax(0,1.5fr) minmax(340px,.75fr);align-items:start;gap:16px;display:grid}.recording-viewer video,.recording-empty{aspect-ratio:16/9;background:#091016;width:100%}.recording-viewer video{display:block}.recording-empty{color:#dbe6ec;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.recording-empty span{color:#93a6b2;font-size:12px}.recording-meta{gap:4px;padding:14px 16px;display:grid}.recording-meta span{color:var(--muted);font-size:12px}.recording-list{max-height:660px;overflow:auto}.recording-list button{border:0;border-bottom:1px solid var(--line);text-align:left;background:#fff;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:66px;padding:10px 12px;display:grid}.recording-list button.active{box-shadow:inset 3px 0 0 var(--accent);background:#f1f8f6}.recording-list button:disabled{cursor:default;opacity:.65}.recording-list strong,.recording-list small{display:block}.recording-list small,.recording-list em{color:var(--muted);font-size:11px;font-style:normal}.audit-panel{min-width:0}@media (max-width:960px){.management-header{grid-template-columns:1fr auto}.management-nav{grid-area:2/1/auto/-1;overflow-x:auto}.management-nav a{flex:none}.management-grid,.recording-layout,.camera-detail-layout{grid-template-columns:1fr}.assignment-history{border-top:1px solid var(--line);border-left:0}.camera-detail-head{flex-direction:column;align-items:flex-start}.camera-setting-strip{flex-wrap:wrap;justify-content:flex-start;width:100%}}@media (max-width:860px){.sidebar{gap:10px;min-width:0;padding:14px;position:relative;overflow:hidden}.sidebar .operator-card,.sidebar .permission-box{display:none}.sidebar .nav-list{display:flex;overflow-x:auto}.sidebar .nav-item{white-space:nowrap;flex:none;width:auto}.sidebar .logout-button{width:42px;min-height:42px;margin:0;font-size:0;position:absolute;top:19px;right:14px}}@media (max-width:640px){.role-summary{grid-template-columns:1fr auto}.wallboard-session-status{white-space:normal;grid-column:1/-1}.role-chip-list{grid-area:2/1/auto/-1}.role-chip small{display:none}.role-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.role-card{min-height:120px}.management-header,.management-main,.login-form-panel{padding:14px}.management-user span{display:none}.management-brand{min-width:0}.management-nav a{padding:0 10px}.table-toolbar{flex-direction:column;align-items:stretch}.compact-search{flex-basis:auto}}.management-grid>.wide-panel{grid-column:1/-1}.registration-collapsed{grid-template-columns:minmax(0,1fr)}.page-action-bar{border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px;display:flex}.page-action-bar>div{gap:3px;min-width:0;display:grid}.page-action-bar span,.table-toolbar small{color:var(--muted);font-size:12px}.page-action-bar button{flex:none;padding-inline:14px}.status-banner{color:#165c4d;background:#f1faf7;border:1px solid #b8d3cc;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;margin-bottom:14px;padding:11px 14px;display:grid}.status-banner.error{color:#8f2018;background:#fff6f5;border-color:#e7bbb6}.status-banner p{margin:0;font-size:13px;font-weight:700}.status-banner>button{width:32px;height:32px;color:inherit;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.management-state-page{min-height:100vh;color:var(--muted);background:var(--bg);place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.management-state-card{border:1px solid var(--line);width:min(520px,100%);color:var(--danger);background:var(--panel);box-shadow:var(--shadow);border-radius:10px;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:24px;display:grid}.management-state-card h1{color:var(--ink);margin:4px 0 8px;font-size:22px}.management-state-card p:not(.eyebrow){color:var(--muted);margin:0;line-height:1.7}.management-state-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.management-state-actions a{padding-inline:12px;text-decoration:none}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.table-toolbar-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.table-toolbar-actions .compact-search{width:min(320px,42vw)}.camera-admin-table .table-row{grid-template-columns:minmax(135px,.9fr) minmax(155px,1.1fr) minmax(150px,1fr) minmax(150px,1fr) 90px 86px;min-width:820px}.empty-list{flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:150px;display:flex}.empty-list strong,.empty-list span{display:block}.empty-list strong{color:var(--ink)}.empty-list span{max-width:430px;line-height:1.6}.audit-toolbar .search-wrap{padding-right:4px}.audit-toolbar .search-wrap button{white-space:nowrap;flex:none;min-height:34px;padding-inline:12px}.audit-toolbar .compact-search{flex-basis:420px}.data-table.is-loading{opacity:.55;pointer-events:none}.table-pagination{border-top:1px solid var(--line);min-height:58px;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.table-pagination>div{align-items:center;gap:10px;display:flex}.table-pagination button{min-height:36px}@media (max-width:1180px){.camera-management-grid{grid-template-columns:1fr}.camera-registration-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-registration-panel .form-grid .primary-button,.camera-registration-panel .credential-panel{grid-column:1/-1}}@media (max-width:760px){.management-main{padding:18px 14px 28px}.management-title h1{font-size:24px}.page-action-bar,.table-toolbar-actions,.table-pagination{flex-direction:column;align-items:stretch}.page-action-bar button,.table-toolbar-actions .compact-search{width:100%}.camera-registration-panel .form-grid{grid-template-columns:1fr}.camera-admin-table,.user-table,.audit-table{overflow:visible}.camera-admin-table .table-head,.user-table .table-head,.audit-table .table-head{display:none}.camera-admin-table .table-row,.user-table .table-row,.audit-table .table-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;min-width:0;padding:14px;display:grid}.camera-admin-table .table-row>span,.user-table .table-row>span,.audit-table .table-row>span{white-space:normal;gap:4px;display:grid}.camera-admin-table .table-row>span:before,.user-table .table-row>span:before,.audit-table .table-row>span:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.camera-admin-table .camera-id-cell,.camera-admin-table .icon-value,.user-table .user-cell{display:flex}.camera-admin-table .table-row>span:last-child,.user-table .table-row>span:last-child{grid-column:1/-1}.camera-admin-table .table-row>span:last-child .icon-text-button,.user-table .row-actions,.user-table .row-actions .secondary-button{width:100%}.table-pagination>div{justify-content:space-between}}.app-shell{grid-template-columns:260px minmax(0,1fr)}.sidebar-brand{color:inherit;text-decoration:none}.management-workspace{min-width:0}.management-list-panel,.create-panel{margin-bottom:16px}.create-panel .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.create-panel .form-grid .primary-button{grid-column:4;justify-self:end;padding-inline:18px}.main-grid.wall-mode{grid-template-columns:minmax(0,1fr)}.grid-view{grid-template-columns:repeat(var(--wall-columns,1), minmax(0, 1fr))}.wall-view{min-height:0}.wall-empty span{color:#b8c8d1;text-align:center;max-width:520px;font-size:13px;line-height:1.65}.dashboard-notice{color:#165c4d;background:#f1faf7;border:1px solid #b8d3cc;border-radius:8px;align-items:center;min-height:46px;padding:11px 14px;font-size:13px;font-weight:800;display:flex}.dashboard-notice.error{color:#8f2018;background:#fff6f5;border-color:#e7bbb6}.eyebrow{text-transform:none;font-size:13px}.table-row small,.assignment-history-row small,.recording-list small,.recording-list em{font-size:12px}.icon-button{width:42px;height:42px}.stream-surface.compact .stream-fullscreen-action{width:36px;height:36px}button:disabled,select:disabled,input:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb, var(--accent-2) 52%, white);outline-offset:2px}.primary-button:disabled,.icon-text-button:disabled,.icon-button:disabled{opacity:.48}.danger-button{background:var(--danger)}.confirmation-backdrop{z-index:1000;background:#060e1494;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirmation-dialog{border:1px solid var(--line);background:var(--panel);border-radius:10px;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(560px,100%);max-height:calc(100vh - 48px);padding:22px;display:grid;overflow:auto;box-shadow:0 28px 80px #050e1652}.confirmation-icon{color:#73501a;background:#fff0d5;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.confirmation-icon.danger{color:var(--danger);background:#fde8e6}.confirmation-copy h2{margin:0 0 8px;font-size:21px}.confirmation-copy>p{color:var(--muted);margin:0;line-height:1.7}.confirmation-copy dl{gap:8px;margin:16px 0 0;display:grid}.confirmation-copy dl>div{background:var(--panel-2);border-radius:7px;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}.confirmation-copy dt{color:var(--muted);font-size:12px;font-weight:800}.confirmation-copy dd{overflow-wrap:anywhere;margin:0;font-weight:800}.confirmation-actions{grid-column:1/-1;justify-content:flex-end;gap:9px;display:flex}.confirmation-actions button{min-width:124px;padding-inline:14px}.audit-filter-form{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel-2);grid-template-columns:minmax(250px,1.4fr) repeat(3,minmax(135px,.65fr)) repeat(2,minmax(140px,.6fr)) auto;align-items:end;gap:10px;padding:14px;display:grid}.audit-filter-form label{color:#43515d;gap:6px;font-size:12px;font-weight:800;display:grid}.audit-filter-form input,.audit-filter-form select{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:#fff;border-radius:7px;padding:0 10px}.audit-filter-actions{gap:8px;display:flex}.audit-filter-actions button{white-space:nowrap;padding-inline:13px}.recordings-empty-panel{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:8px;place-content:center;justify-items:center;gap:18px;min-height:360px;padding:38px;display:grid}.recordings-empty-panel h2{margin-bottom:8px;font-size:22px}.recordings-empty-panel p:not(.eyebrow){color:var(--muted);margin:0;line-height:1.7}.recordings-empty-panel .primary-button{padding-inline:16px;text-decoration:none}.recordings-empty-icon{width:62px;height:62px;color:var(--accent-2);background:#e6f1f7;border-radius:50%;place-items:center;display:grid}.camera-registration-form label small{color:var(--muted);font-size:11px;font-weight:500;line-height:1.5}.camera-registration-form>label{align-content:start;min-width:0}.form-readonly-value{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:var(--panel-2);border-radius:7px;align-items:center;gap:8px;padding:0 10px;font-size:13px;font-weight:800;display:flex}.camera-registration-actions{grid-column:1/-1;justify-content:flex-end;align-items:center;gap:14px;display:flex}.camera-registration-actions>small{color:var(--muted);margin-right:auto;font-size:12px}.camera-registration-form .registration-submit{flex:none;padding-inline:16px}.alert-action:disabled{cursor:wait;opacity:.58}@media (max-width:1240px){.audit-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-filter-form .search-wrap{grid-column:1/-1}}@media (max-width:1180px){.create-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.create-panel .form-grid .primary-button{grid-column:2}}@media (max-width:860px){.app-shell{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.create-panel .form-grid{grid-template-columns:1fr}.create-panel .form-grid .primary-button{grid-column:1;justify-self:stretch}.grid-view,.audit-filter-form{grid-template-columns:1fr}.audit-filter-form .search-wrap{grid-column:auto}.audit-filter-actions,.audit-filter-actions button{width:100%}.camera-registration-actions{flex-direction:column;align-items:stretch}.camera-registration-actions .registration-submit{width:100%}.confirmation-dialog{grid-template-columns:1fr}.confirmation-icon{width:38px;height:38px}.confirmation-actions{flex-direction:column-reverse;grid-column:auto}.confirmation-actions button{width:100%}}@media (max-width:480px){.camera-admin-table .table-row,.user-table .table-row,.audit-table .table-row,.management-state-card{grid-template-columns:1fr}.management-state-actions{flex-direction:column-reverse;grid-column:auto}}.camera-registration-stack{gap:16px;margin-bottom:16px;display:grid}.camera-registration-stack .camera-registration-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.camera-registration-stack .camera-registration-panel .primary-button{align-self:center}.camera-credential-summary{margin:0}.company-camera-table .table-row{grid-template-columns:minmax(140px,1.1fr) minmax(130px,1fr) minmax(130px,1fr) 88px 96px 84px;min-width:800px}@media (max-width:1100px){.company-camera-table{overflow:visible}.company-camera-table .table-head{display:none}.company-camera-table .table-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;min-width:0;padding:14px}.company-camera-table .table-row>span{white-space:normal;gap:4px;display:grid}.company-camera-table .table-row>span:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.company-camera-table .camera-id-cell{display:flex}.company-camera-table .table-row>span:last-child{grid-column:1/-1}.company-camera-table .table-row>span:last-child .icon-text-button{width:100%}}@media (max-width:480px){.company-camera-table .table-row{grid-template-columns:1fr}.company-camera-table .table-row>span:last-child{grid-column:auto}}.camera-setting-strip .danger{color:#9f2d24;background:#fff7f6;border-color:#e9c3bf}.camera-detail-layout{grid-template-columns:minmax(220px,.7fr) minmax(260px,.9fr) minmax(0,1.4fr)}.gopro-setup{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:18px}.gopro-setup-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.gopro-setup-head h2{margin:4px 0 0;font-size:20px}.gopro-prerequisite{border-left:3px solid var(--accent-2);color:#43515d;background:#f3faf8;margin:14px 0;padding:12px 14px;font-size:13px;line-height:1.65}.gopro-qr-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.gopro-qr-card{border:1px solid var(--line);background:#fff;border-radius:8px;align-content:start;gap:12px;min-width:0;padding:15px;display:grid}.gopro-qr-heading{align-items:flex-start;gap:10px;display:flex}.gopro-qr-heading>span{color:#fff;background:var(--accent-2);border-radius:8px;flex:none;place-items:center;width:34px;height:34px;display:grid}.gopro-qr-heading small,.gopro-qr-heading p{color:var(--muted);font-size:11px}.gopro-qr-heading h3{margin:2px 0 4px;font-size:16px}.gopro-qr-heading p{margin:0;line-height:1.55}.qr-local-inputs{gap:9px;display:grid}.qr-local-inputs label{color:#43515d;gap:5px;font-size:11px;font-weight:800;display:grid}.qr-local-inputs input{border:1px solid var(--line);border-radius:7px;width:100%;min-height:40px;padding:0 10px}.field-error{color:#a43127}.qr-placeholder,.qr-image-wrap{min-height:230px;color:var(--muted);background:var(--panel-2);text-align:center;border:1px dashed #b8c4cc;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:12px;display:flex}.qr-image-wrap{background:#fff;border-style:solid;padding:10px}.qr-image-wrap img{width:min(100%,250px);height:auto;image-rendering:pixelated}.qr-image-wrap .secondary-button{text-decoration:none}.qr-command{overflow-wrap:anywhere;color:#33414d;background:#f1f4f6;border-radius:6px;padding:8px;font-size:10px;display:block}.stream-qr-notice{color:#725018;background:#fffaf0;border:1px solid #f0d6a5;border-radius:7px;margin:0;padding:11px;font-size:12px;font-weight:800;line-height:1.65}@media (max-width:1180px){.camera-registration-stack .camera-registration-panel .form-grid,.gopro-qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-detail-layout{grid-template-columns:1fr}.assignment-history{border-top:1px solid var(--line);border-left:0}}@media (max-width:760px){.camera-registration-stack .camera-registration-panel .form-grid,.gopro-qr-grid{grid-template-columns:1fr}.gopro-setup-head{flex-direction:column;align-items:flex-start}}
