:root { color-scheme: light; --ink:#0b1628; --muted:#68758a; --line:#dfe6ef; --canvas:#f3f6fa; --surface:#fff; --accent:#5c43e6; --success:#0d9b74; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--canvas); }
button,input,select { font:inherit; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:244px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; padding:26px 20px; display:flex; flex-direction:column; color:white; background:#0b1628; }
.brand { display:flex; align-items:center; gap:12px; color:white; text-decoration:none; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--accent); font-weight:850; }
.brand strong,.brand small { display:block; }.brand small{margin-top:3px;color:#91a0b7;font-size:11px}.brand strong{font-size:15px}
.admin-nav{margin-top:42px;display:grid;gap:6px;min-height:0;overflow-y:auto}.nav-group[hidden],.nav-tree[hidden]{display:none}.nav-item{width:100%;display:flex;gap:12px;align-items:center;padding:12px 14px;border:0;border-radius:11px;color:#aab5c7;background:transparent;text-align:left;text-decoration:none;cursor:pointer}.nav-item strong{flex:1;font-size:13px}.nav-item.active{color:white;background:#18263d}.nav-toggle[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}.nav-chevron{transition:transform .16s ease}.nav-tree{display:grid;gap:2px;margin:4px 0 10px 24px;padding-left:10px;border-left:1px solid #27344a}.tree-branch{display:grid;gap:1px}.tree-link{width:100%;min-height:31px;padding:6px 8px;overflow:hidden;border:0;border-radius:7px;color:#91a0b7;background:transparent;text-align:left;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-size:12px;cursor:pointer}.tree-link:hover,.tree-link.current{color:white;background:#18263d}.tree-link.current::before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#36d6a5}.camera-link{padding-left:20px;font-size:11px}
.mobile-menu-toggle{display:none}
.sidebar-foot{margin-top:auto;padding:16px 8px 0;border-top:1px solid #27344a}.sidebar-foot strong{display:block;font-size:13px}.sidebar-foot button{margin-top:8px;padding:0;border:0;color:#98a7bc;background:transparent;cursor:pointer}
.workspace{padding:clamp(24px,4vw,52px)}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.eyebrow{margin:0 0 8px;color:var(--accent);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.topbar h1{margin:0;font-size:clamp(32px,4vw,48px);letter-spacing:-.045em}.topbar p:not(.eyebrow){margin:8px 0 0;color:var(--muted)}
.primary-button,.secondary-button{min-height:44px;border-radius:11px;padding:0 17px;display:inline-grid;place-items:center;font-weight:800;text-decoration:none;cursor:pointer}.primary-button{border:0;color:white;background:var(--accent)}.secondary-button{border:1px solid var(--line);color:var(--ink);background:white}.full{width:100%;margin-top:20px}
.error-banner{margin-top:24px;border:1px solid #f0b7bd;border-radius:12px;padding:13px;color:#962d38;background:#fff2f3}.admin-grid{margin-top:42px;display:grid;grid-template-columns:minmax(280px,380px) minmax(420px,1fr);gap:24px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{margin:0;font-size:18px}.section-heading span{color:var(--muted);font-size:12px}.client-list{margin-top:14px;display:grid;gap:11px}.client-card{width:100%;padding:17px;border:1px solid var(--line);border-radius:15px;display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left;color:var(--ink);background:white;cursor:pointer;transition:.18s ease}.client-card:hover,.client-card.active{border-color:#9b8cf3;box-shadow:0 9px 25px rgba(32,42,62,.08)}.client-card.active{box-shadow:0 0 0 3px rgba(92,67,230,.08)}.client-card strong{font-size:15px}.client-card small{grid-column:1/-1;color:var(--muted)}.status-dot{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--success)}.loading-card{padding:28px;text-align:center;color:var(--muted);background:white;border:1px dashed var(--line);border-radius:15px}
.detail-panel{min-height:470px;padding:28px;border:1px solid var(--line);border-radius:19px;background:white}.detail-panel.empty{display:grid;place-items:center;text-align:center;color:var(--muted)}.detail-icon{width:56px;height:56px;margin:0 auto 15px;display:grid;place-items:center;border-radius:17px;color:var(--accent);background:#efecff;font-size:24px}.detail-panel h2{margin:0;color:var(--ink)}.detail-panel p{color:var(--muted)}.detail-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.branch-list{margin-top:25px;display:grid;gap:14px}.branch-card{padding:18px;border:1px solid var(--line);border-radius:14px}.branch-card header{display:flex;align-items:center;justify-content:space-between}.branch-card h3{margin:0;font-size:15px}.branch-card header span{color:var(--muted);font-size:12px}.camera-list{margin-top:14px;display:grid;gap:8px}.camera-row{padding:11px 12px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;background:#f6f8fb}.camera-name{font-size:13px;font-weight:750}.camera-status{display:flex;align-items:center;gap:6px;color:var(--success);font-size:11px;font-weight:800}.camera-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}.company-empty{margin-top:28px;padding:35px 20px;text-align:center;border:1px dashed var(--line);border-radius:15px;background:#fafbfe}.company-empty h3{margin:0}.company-empty .primary-button{margin-top:10px}
dialog{width:min(480px,calc(100% - 28px));border:0;border-radius:20px;padding:0;box-shadow:0 28px 80px rgba(5,14,28,.28)}dialog::backdrop{background:rgba(9,18,34,.55)}dialog form{padding:28px}.dialog-heading{display:flex;justify-content:space-between;gap:20px}.dialog-heading h2{margin:0;font-size:28px}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:white;font-size:23px;cursor:pointer}label{display:grid;gap:8px;margin-top:22px;font-size:13px;font-weight:750}input{min-height:48px;padding:0 13px;border:1px solid var(--line);border-radius:11px;outline:none}input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(92,67,230,.1)}
dialog{max-height:calc(100vh - 28px);overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}select{min-height:48px;padding:0 13px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:white;outline:none}select:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(92,67,230,.1)}.camera-result{margin-top:18px;padding:12px;border-radius:11px;color:#176b56;background:#eaf8f3;font-size:13px;font-weight:750}.camera-result.error{color:#962d38;background:#fff2f3}
@media(max-width:850px){body.mobile-nav-open{overflow:hidden}.app-shell{display:block;overflow-x:clip}.sidebar{position:sticky;z-index:100;top:0;width:100%;min-width:0;height:auto;min-height:72px;padding:12px 14px;display:flex;align-items:center;overflow:visible}.brand-mark{width:40px;height:40px}.brand small{display:none}.mobile-menu-toggle{min-width:48px;min-height:48px;margin-left:auto;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #27344a;border-radius:12px;color:white;background:#18263d;font-weight:800}.mobile-menu-toggle[aria-expanded="true"]{color:#0b1628;background:#36d6a5}.admin-nav{position:absolute;z-index:101;top:calc(100% + 7px);left:10px;width:calc(100% - 20px);min-width:0;max-width:calc(100vw - 20px);max-height:calc(100dvh - 88px);margin:0;padding:10px;display:none;gap:6px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #27344a;border-radius:14px;background:#0b1628;box-shadow:0 18px 38px rgba(3,10,20,.34)}body.mobile-nav-open .admin-nav{display:grid}.nav-tree{min-width:0;margin:4px 0 10px 24px}.tree-link{max-width:100%}.sidebar-foot{margin:0 0 0 5px;padding:0;border:0}.sidebar-foot strong{display:none}.sidebar-foot button{min-height:44px;margin:0;padding:0 8px;color:white}.workspace{width:100%;min-width:0;padding:28px 18px 24px}.topbar{display:block}.topbar .primary-button{width:100%;margin-top:20px}.admin-grid{grid-template-columns:1fr;margin-top:30px}.detail-panel{min-height:300px}.detail-heading{display:block}.detail-actions{justify-content:stretch;margin-top:18px}.detail-actions>*{flex:1 1 100%}.secondary-button{font-size:12px}.form-grid{grid-template-columns:1fr}dialog form{padding:22px}}
