:root{color-scheme:light;color:var(--text);background:var(--background);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--background: #f7f8fa;--surface: #ffffff;--surface-muted: #f1f3f5;--text: #111827;--muted: #6b7280;--soft: #9ca3af;--border: #e5e7eb;--primary: #087f8c;--primary-soft: #dff7f5;--danger: #dc2626;--danger-soft: #fee2e2;--success: #16a34a;--success-soft: #dcfce7;--warning: #d97706;--warning-soft: #fef3c7}:root[data-theme=dark]{color-scheme:dark;--background: #101113;--surface: #181a1d;--surface-muted: #24272b;--text: #f9fafb;--muted: #a1a1aa;--soft: #71717a;--border: #30343a;--primary: #5eead4;--primary-soft: #173b39;--danger: #f87171;--danger-soft: #3c2228;--success: #4ade80;--success-soft: #173426;--warning: #fbbf24;--warning-soft: #3a2f16}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--background)}button,input,select,textarea{font:inherit}button{cursor:pointer}svg{width:20px;height:20px;stroke-width:2}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,var(--primary-soft),var(--background) 55%)}.login-card{width:min(440px,100%);padding:40px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:0 28px 70px #0000001f}.login-card h1,.content h1{margin:8px 0;color:var(--text)}.login-card p{color:var(--muted);line-height:1.6}.login-card label{display:grid;gap:8px;margin:18px 0;font-weight:650}input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--surface)}textarea{resize:vertical;font-family:inherit}input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--primary)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(44,177,188,.22);border-color:var(--primary)}.login-card button{width:100%;padding:13px;border:0;border-radius:10px;color:#fff;background:var(--primary);font-weight:750}.eyebrow{color:var(--primary);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.error{margin:16px 0;padding:12px 14px;border-radius:10px;color:var(--danger);background:var(--danger-soft)}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 16px;border-right:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 24px;font-size:20px;font-weight:900}.brand svg{width:27px;height:27px;color:var(--primary)}.brand small{margin:0 0 0 auto;padding:4px 5px;border-radius:6px;color:var(--primary);background:var(--primary-soft);font-size:9px;letter-spacing:.08em}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border:0;border-radius:12px;color:var(--muted);background:transparent;font-weight:750;text-align:left}.nav-item:hover{color:var(--text);background:var(--surface-muted)}.nav-item.active{color:var(--primary);background:var(--primary-soft)}.sidebar-footer{display:flex;align-items:center;gap:6px;margin-top:auto;padding:16px 4px 0;border-top:1px solid var(--border)}.admin-identity{min-width:0;flex:1}.admin-identity strong,.admin-identity span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-identity strong{font-size:13px}.admin-identity span{margin-top:3px;color:var(--muted);font-size:11px}.admin-identity .admin-version{margin-top:6px;color:var(--soft);font-size:10px}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--border);border-radius:11px;color:var(--muted);background:var(--surface)}.icon-button:hover{color:var(--text);background:var(--surface-muted)}.main-content{min-width:0}.page-header{position:sticky;z-index:4;top:0;display:flex;align-items:center;justify-content:space-between;min-height:102px;padding:24px clamp(20px,4vw,48px);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--background) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.page-header h1{margin:0;color:var(--text);font-size:clamp(26px,3vw,34px);letter-spacing:-.04em}.page-header p{margin:6px 0 0;color:var(--muted)}.page-body{display:grid;gap:18px;max-width:1440px;margin:0 auto;padding:28px clamp(20px,4vw,48px) 60px}.card{border:1px solid var(--border);border-radius:18px;background:var(--surface)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:14px}.metric-card{display:flex;align-items:center;gap:14px;padding:18px}.metric-card span,.metric-card strong{display:block}.metric-card>div>span{color:var(--muted);font-size:12px;font-weight:750}.metric-card strong{margin-top:4px;font-size:23px}.metric-icon{display:grid;place-items:center;padding:10px;border-radius:12px;color:var(--primary);background:var(--primary-soft)}.secondary{padding:10px 14px;border:1px solid var(--border);border-radius:9px;color:var(--text);background:var(--surface)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 8px 24px #102a430d}table{width:100%;border-collapse:collapse;font-size:13px}th,td{max-width:280px;padding:13px 15px;border-bottom:1px solid var(--border);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}th{color:var(--muted);background:var(--surface-muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.empty{padding:42px;border:1px dashed var(--border);border-radius:14px;color:var(--muted);text-align:center}.inventory-stack{display:grid;gap:20px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.toolbar p{margin:0;color:var(--muted)}.toolbar>button,.form-actions button,.device-action>button{padding:11px 16px;border:0;border-radius:9px;color:#fff;background:var(--primary);font-weight:750}button:disabled{cursor:not-allowed;opacity:.5}.panel{padding:24px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 8px 24px #102a430d}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.panel-heading h2{margin:6px 0}.panel-heading code{color:var(--muted)}.inventory-form form,.serial-import{display:grid;gap:16px}.serial-import{grid-template-columns:minmax(0,1fr) auto;align-items:end}.inventory-form label,.device-action label{display:grid;gap:7px;color:var(--text);font-weight:650}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-actions{display:flex;justify-content:flex-end}.notice{padding:12px 14px;border-left:4px solid var(--primary);color:var(--muted);background:var(--primary-soft)}.device-details{display:grid;gap:18px}.device-details .panel-heading{margin-bottom:0}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.detail-grid div{padding:14px;border-radius:10px;background:var(--surface-muted)}.detail-grid dt{margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.detail-grid dd{margin:0;overflow-wrap:anywhere}details{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 0}summary{cursor:pointer;color:var(--text);font-weight:700}pre{max-height:260px;overflow:auto;padding:14px;border-radius:8px;background:var(--text);color:var(--border);white-space:pre-wrap;overflow-wrap:anywhere}.device-action{display:grid;gap:14px;padding:18px;border:1px solid var(--border);border-radius:12px}.device-action h3,.device-action p{margin:0}.device-action p{color:var(--muted)}.device-action-buttons{display:flex;flex-wrap:wrap;gap:10px;padding:2px;overflow:visible}.device-action-buttons button,.action-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:40px;padding:10px 14px;border:1px solid var(--primary);border-radius:9px;color:#fff;background:var(--primary);font-weight:750;line-height:1.2;white-space:nowrap}.device-action-buttons button.secondary{border:1px solid var(--border);color:var(--text);background:var(--surface)}.device-action-buttons button.danger,.action-button.danger{border-color:var(--danger);background:var(--danger)}.device-errors{display:grid;gap:12px;padding:18px;border:1px solid var(--border);border-radius:12px}.device-errors.has-errors{border-color:var(--danger);background:var(--danger-soft)}.device-errors h3{margin:5px 0 0}.device-errors small{color:var(--muted)}.modal-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:24px;background:#102a438c}.modal{width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto}.modal .panel-heading{align-items:center;margin-bottom:16px}.modal .panel-heading h2{margin:0}.modal-action{padding:18px;border:1px solid var(--border);background:var(--surface-muted)}.modal-action.danger-zone{border-color:var(--danger);background:var(--danger-soft)}.modal-action>button{justify-self:end}.inventory-management form{display:grid;gap:16px}.action-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.action-heading>div{display:grid;gap:8px}.action-heading .secondary{flex:0 0 auto}.split-actions{gap:10px}.split-actions .secondary{color:var(--text);background:var(--surface)}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-grid label,.confirmation{display:flex;align-items:center;gap:9px}.danger-zone{border-color:var(--danger);background:var(--danger-soft)}.danger-zone button.danger{background:var(--danger)}.remove-board{display:grid;gap:12px;padding:16px;border:1px solid var(--danger);border-radius:10px}.remove-board .danger{justify-self:start;padding:10px 14px;border:0;border-radius:9px;color:#fff}.status{display:inline-flex;padding:4px 8px;border-radius:999px;color:var(--text);background:var(--border);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.status-factory{color:var(--warning);background:var(--warning-soft)}.status-claimable{color:var(--success);background:var(--success-soft)}.status-provisioning{color:var(--primary);background:var(--primary-soft)}.status-claimed{color:var(--success);background:var(--success-soft)}.status-recovery{color:var(--danger);background:var(--danger-soft)}.compact{padding:7px 10px}.access-log-stack{display:grid;gap:16px}.view-description{margin:-12px 0 2px;color:var(--muted)}.access-filters{display:grid;grid-template-columns:minmax(280px,1fr) 180px 220px;gap:16px}.access-filters label{display:grid;gap:7px;color:var(--text);font-weight:650}.access-log-table{min-width:1500px}.access-log-table td{max-width:320px}.access-path{min-width:260px}.access-agent{max-width:260px}.access-request-id{max-width:180px}.access-outcome{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.access-allowed{color:var(--success);background:var(--success-soft)}.access-denied{color:var(--danger);background:var(--danger-soft)}.access-rejected{color:var(--warning);background:var(--warning-soft)}.access-error{color:var(--danger);background:var(--danger-soft)}.identity-label{display:grid;gap:3px}.identity-label small{max-width:240px;overflow:hidden;color:var(--muted);text-overflow:ellipsis}.no-table-results{padding:32px;color:var(--muted);text-align:center}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;color:var(--muted)}.pagination label{display:flex;align-items:center;gap:8px}.pagination select{width:auto;padding:7px 30px 7px 9px}.email-test-panel{max-width:720px}.email-test-panel .panel-heading p{margin:8px 0 0;color:var(--muted);line-height:1.5}.email-test-form{display:grid;gap:18px}.email-test-form label{display:grid;gap:7px;color:var(--text);font-weight:650}.email-test-form button{padding:11px 16px;border:0;border-radius:9px;color:#fff;background:var(--primary);font-weight:750}.success{padding:12px 14px;border-radius:10px;color:var(--success);background:var(--success-soft)}.user-management{display:grid;gap:16px}.row-actions{display:flex;flex-wrap:wrap;gap:7px}.user-dialog form,.user-dialog label{display:grid;gap:14px}.user-dialog label{color:var(--text);font-weight:650}.site-management{display:grid;gap:16px}.site-dialog{width:min(1080px,100%);display:grid;gap:22px}.site-section{display:grid;gap:12px}.site-section h3,.site-section p{margin:0}.firmware-stack{min-width:0;display:grid;gap:20px}.firmware-stack .toolbar{flex-wrap:wrap}.firmware-stack .toolbar p{flex:1 1 420px}.firmware-import{max-width:900px}.firmware-import .panel-heading p,.rollout-confirmation p{margin:8px 0 0;color:var(--muted);line-height:1.5}.firmware-import form{display:grid;gap:16px}.firmware-import label{display:grid;gap:7px;color:var(--text);font-weight:650}.firmware-table{min-width:1120px}.firmware-table td{max-width:300px}.firmware-table th:last-child,.firmware-table td:last-child{min-width:230px;overflow:visible;text-overflow:clip}.firmware-table td strong,.firmware-table td small{display:block}.firmware-table td small{margin-top:5px;color:var(--muted)}.artifact-link{color:var(--primary);font-weight:700}.status-ready,.status-healthy{color:var(--success);background:var(--success-soft)}.status-rolling_out{color:var(--primary);background:var(--primary-soft)}.status-paused{color:var(--warning);background:var(--warning-soft)}.status-complete{color:var(--success);background:var(--success-soft)}.status-cancelled,.status-failed{color:var(--danger);background:var(--danger-soft)}.rollout-confirmation{display:grid;gap:18px;max-width:760px;border-color:var(--warning)}.rollout-confirmation.stop{border-color:var(--danger)}.rollout-confirmation h2{margin:6px 0}.firmware-actions{display:flex;justify-content:flex-end;gap:10px}.firmware-actions button{padding:11px 16px;border:0;border-radius:9px;font-weight:750}.firmware-actions button:not(.secondary){color:#fff;background:var(--primary)}.firmware-actions button.danger{color:#fff;background:var(--danger)}.compact-actions{justify-content:flex-start;flex-wrap:wrap}.compact-actions button{min-height:34px;border:1px solid var(--border);line-height:1.2;white-space:nowrap}.force-update{border-color:var(--warning);background:var(--warning-soft)}.force-update>div:first-child,.firmware-rollback>div:first-child{display:grid;gap:8px}.force-update form,.firmware-rollback form{display:grid;gap:16px}.force-update-warning{margin:0;padding:12px 14px;border-radius:10px;color:var(--warning);background:var(--warning-soft)}.firmware-rollback .form-actions button.danger{color:#fff;background:var(--danger)}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header{position:static}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.serial-import,.form-grid,.detail-grid,.access-filters{grid-template-columns:1fr}.pagination{flex-wrap:wrap;justify-content:flex-start}.action-heading{display:grid}.serial-import .secondary{justify-self:start}}
