:root{--brand:#1769e0;--brand-rgb:23,105,224;--sidebar:#0d2c55;--ink:#172033;--muted:#6f7b91;--surface:#fff;--page:#f3f6fb;--line:#e5eaf2;--shadow:0 12px 34px rgba(25,43,77,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:268px;background:linear-gradient(180deg,var(--sidebar),#081f3d);display:flex;flex-direction:column;z-index:1040;box-shadow:16px 0 44px rgba(6,27,52,.12)}.brand-wrap{display:flex;align-items:center;gap:12px;padding:23px 20px;border-bottom:1px solid rgba(255,255,255,.09);color:#fff}.brand-logo{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:12px;padding:6px}.brand-wrap strong{display:block;font-size:1rem;line-height:1.2}.brand-wrap small{display:block;color:rgba(255,255,255,.62);font-size:.72rem;margin-top:3px}.sidebar-nav{padding:15px 12px;overflow:auto}.sidebar-nav .nav-link{display:flex;align-items:center;gap:13px;color:rgba(255,255,255,.76);border-radius:10px;padding:10px 13px;margin:2px 0;font-size:.9rem;transition:.18s}.sidebar-nav .nav-link i{width:20px;font-size:1rem}.sidebar-nav .nav-link:hover{color:#fff;background:rgba(255,255,255,.08)}.sidebar-nav .nav-link.active{background:#fff;color:var(--sidebar);font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.12)}.sidebar-footer{margin-top:auto;padding:16px;border-top:1px solid rgba(255,255,255,.09)}.main-area{min-height:100vh;margin-left:268px;display:flex;flex-direction:column}.topbar{height:88px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 30px;position:sticky;top:0;z-index:1020}.topbar h1{font-size:1.35rem;margin:0;font-weight:800}.topbar p{font-size:.8rem;color:var(--muted);margin:3px 0 0}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.live-pill{display:inline-flex;align-items:center;gap:7px;background:#e9fbf1;color:#137744;border:1px solid #c9f1db;border-radius:99px;padding:7px 11px;font-size:.78rem;font-weight:700}.live-pill span{width:8px;height:8px;border-radius:50%;background:#19a65d;box-shadow:0 0 0 4px rgba(25,166,93,.12)}.content-wrap{padding:28px 30px;flex:1}.app-footer{padding:14px 30px 24px;color:#8792a6;font-size:.78rem}.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff}.btn-brand:hover,.btn-brand:focus{background:color-mix(in srgb,var(--brand),#000 12%);border-color:color-mix(in srgb,var(--brand),#000 12%);color:#fff}.card-soft{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);background:#fff}.metric-card{height:100%;padding:20px;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:95px;height:95px;border-radius:50%;background:rgba(var(--brand-rgb),.05);right:-28px;top:-30px}.metric-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--brand),#fff 88%);color:var(--brand);font-size:1.1rem}.metric-label{color:var(--muted);font-size:.8rem;font-weight:700;margin-top:15px}.metric-value{font-size:1.7rem;font-weight:850;letter-spacing:-.04em;margin-top:2px}.metric-note{font-size:.74rem;color:#8b96aa}.section-card{border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.section-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2{font-size:1rem;font-weight:800;margin:0}.section-head p{font-size:.76rem;color:var(--muted);margin:3px 0 0}.table{--bs-table-bg:transparent}.table thead th{font-size:.69rem;text-transform:uppercase;letter-spacing:.06em;color:#78849a;border-bottom-color:var(--line);white-space:nowrap}.table tbody td{font-size:.84rem;border-bottom-color:#edf0f5;vertical-align:middle}.device-name{display:flex;align-items:center;gap:10px}.device-avatar{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#edf4ff;color:var(--brand)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.status-dot.online{background:#1cad62}.status-dot.offline{background:#a9b1bf}.health-bar{width:76px;height:6px;border-radius:20px;background:#edf0f4;overflow:hidden}.health-bar span{display:block;height:100%;background:var(--brand);border-radius:inherit}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:20px}.page-intro h2{font-size:1.15rem;font-weight:800;margin:0}.page-intro p{color:var(--muted);font-size:.82rem;margin:4px 0 0}.form-control,.form-select{border-color:#dfe5ee;border-radius:10px}.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--brand),transparent 84%)}.modal-content{border:0;border-radius:18px;box-shadow:0 30px 80px rgba(28,44,74,.2)}.modal-header,.modal-footer{border-color:var(--line)}.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}.empty-state i{font-size:2.2rem;color:#aeb8c9}.empty-state h3{color:var(--ink);font-size:1rem;margin-top:12px}.qr-box{background:#fff;border:1px dashed #b9c5d8;border-radius:16px;padding:18px;display:inline-grid;place-items:center}.policy-card{border:1px solid var(--line);border-radius:14px;padding:16px;height:100%;background:#fff}.policy-card h3{font-size:.93rem;font-weight:800}.policy-card p{font-size:.76rem;color:var(--muted)}.command-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;background:#f1f5fb;border:1px solid #e3e9f1;border-radius:8px;font-size:.76rem}.login-body{background:#eef3fa;min-height:100vh}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr)}.login-visual{background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand),#061b3c 55%));color:#fff;display:grid;place-items:center;padding:60px;position:relative;overflow:hidden}.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.14)}.login-visual:before{width:560px;height:560px;right:-220px;top:-180px}.login-visual:after{width:360px;height:360px;left:-140px;bottom:-120px}.login-visual-inner{max-width:620px;position:relative;z-index:1}.eyebrow{display:inline-block;border:1px solid rgba(255,255,255,.28);border-radius:99px;padding:7px 11px;font-size:.75rem;margin-bottom:20px}.login-visual h1{font-size:clamp(2.4rem,5vw,4.3rem);font-weight:900;letter-spacing:-.055em;line-height:1.02}.login-visual p{max-width:580px;font-size:1.05rem;color:rgba(255,255,255,.78);margin-top:20px}.visual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:38px}.visual-grid div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);padding:16px;border-radius:14px;display:flex;flex-direction:column;gap:10px}.visual-grid i{font-size:1.25rem}.visual-grid strong{font-size:.8rem}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(100%,440px);background:#fff;border-radius:22px;padding:34px;box-shadow:0 25px 70px rgba(28,47,78,.12)}.login-logo{width:64px;height:64px;object-fit:contain;margin-bottom:20px}.login-card h2{font-size:1.45rem;font-weight:850}.login-help{font-size:.75rem;color:var(--muted);margin-top:18px;text-align:center}.login-help a{color:var(--brand);text-decoration:none;font-weight:700}.progress-thin{height:7px}.accent-preview{width:44px;height:44px;border-radius:12px;border:1px solid var(--line)}.text-brand{color:var(--brand)!important}.bg-brand-soft{background:color-mix(in srgb,var(--brand),#fff 90%)}.nav-tabs .nav-link{border:0;color:#6d798d;font-size:.84rem;font-weight:700}.nav-tabs .nav-link.active{color:var(--brand);border-bottom:2px solid var(--brand)}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar{padding:0 18px}.content-wrap{padding:20px 16px}.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100vh}.topbar-actions .btn{display:none}}
@media(max-width:575.98px){.topbar h1{font-size:1.05rem}.content-wrap{padding:16px 12px}.page-intro{align-items:flex-start;flex-direction:column}.visual-grid{grid-template-columns:1fr}.login-card{padding:26px 20px}.table-responsive{font-size:.78rem}}
