:root{--bg:#f5f9f8;--bg-strong:#e6f1ef;--panel:#fff;--panel-muted:#f7fbfb;--ink:#071f33;--text:#0c2638;--text-muted:#637786;--border:#d8e8e6;--accent:#0087d5;--accent-strong:#005f9e;--accent-soft:rgba(0,135,213,.11);--success:#00a977;--success-strong:#087451;--success-soft:rgba(0,169,119,.12);--warning:#b7791f;--warning-soft:rgba(183,121,31,.14);--danger:#c43b3b;--danger-soft:rgba(196,59,59,.12);--radius:10px;--radius-lg:18px;--shadow:0 14px 38px rgba(7,31,51,.075);--shadow-strong:0 30px 84px rgba(7,31,51,.15);--ring:0 0 0 3px rgba(0,135,213,.16)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Roboto,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}h1{margin-bottom:8px;font-size:34px;line-height:1.05;letter-spacing:0}h1,h2{color:var(--ink)}h2{font-size:19px;line-height:1.2}h2,h3{margin-bottom:6px}h3{font-size:15px;line-height:1.3}p{line-height:1.55}.admin-shell{min-height:100vh;display:grid;grid-template-columns:304px minmax(0,1fr);background:radial-gradient(circle at 24% 8%,rgba(0,135,213,.12),transparent 24%),radial-gradient(circle at 80% 0,rgba(0,169,119,.12),transparent 30%),linear-gradient(135deg,#fbfefd 0,var(--bg) 48%,#f7fbff 100%)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto;background:linear-gradient(180deg,hsla(0,0%,100%,.98),rgba(247,251,251,.96));border-right:1px solid rgba(7,31,51,.09);padding:22px 16px;display:flex;flex-direction:column;gap:18px;box-shadow:20px 0 60px rgba(7,31,51,.08)}.brand-block{display:grid;grid-template-columns:42px 1fr;grid-gap:12px;gap:12px;align-items:center;padding:8px 8px 16px;border-bottom:1px solid var(--border)}.brand-mark{width:42px;height:42px}.brand-title{display:block;font-size:18px;font-weight:800;letter-spacing:0}.brand-subtitle{display:block;color:var(--text-muted);line-height:1.4;font-size:12px}.nav-group{display:grid;grid-gap:4px;gap:4px}.nav-label{display:block;margin-bottom:6px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#789098}.nav-link{border-radius:14px;padding:9px 10px;color:#40525b;font-size:14px;font-weight:800;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;min-height:52px;border:1px solid transparent}.nav-link.active,.nav-link:hover{background:linear-gradient(135deg,var(--accent-soft),var(--success-soft));color:var(--ink);border-color:rgba(0,135,213,.14);box-shadow:inset 3px 0 0 var(--accent)}.nav-link.locked{color:#8a9aa1;cursor:not-allowed;opacity:.72}.nav-link.locked:after{content:"locked";font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#9aa8ae}.nav-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(0,135,213,.16);border-radius:12px;background:#fff;color:var(--accent-strong);font-size:11px;font-weight:900;letter-spacing:0}.nav-copy{min-width:0;display:grid;grid-gap:2px;gap:2px}.nav-copy small,.nav-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-copy small{color:var(--text-muted);font-size:11px;font-weight:700}.alert-shortcut{display:grid;grid-gap:4px;gap:4px;border:1px solid rgba(0,135,213,.18);border-radius:14px;padding:13px;background:linear-gradient(135deg,#f9fdff,#f3fbf8);color:var(--accent-strong);box-shadow:0 10px 24px rgba(7,31,51,.05)}.alert-shortcut span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.alert-shortcut strong{color:var(--text);font-size:13px;line-height:1.3}.sidebar-footer{margin-top:auto;display:grid;grid-template-columns:38px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;color:var(--text-muted);border-top:1px solid var(--border);padding-top:16px;font-size:12px}.sidebar-footer span,.sidebar-footer strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer form,.sidebar-footer>span,.sidebar-footer>strong{grid-column:1/-1}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--success));color:#fff;font-weight:900}.main{min-width:0;padding:22px clamp(18px,2.2vw,34px) 44px;display:grid;grid-gap:22px;gap:22px;align-content:start}.platform-topbar,.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.platform-topbar{align-items:center;min-height:64px;border-bottom:1px solid rgba(7,31,51,.08);padding-bottom:14px}.platform-topbar strong{font-size:17px}.topbar p{max-width:780px;color:var(--text-muted);margin-bottom:0}.row-actions,.topbar-session{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.topbar-session span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:hsla(0,0%,100%,.84);border-radius:999px;padding:8px 11px;color:var(--text-muted);font-size:12px;font-weight:800;box-shadow:0 8px 18px rgba(7,31,51,.035)}.inline-dot,.status-dot{width:8px;height:8px;border-radius:999px;background:var(--success);box-shadow:0 0 0 4px rgba(0,169,119,.12)}.card,.platform-card{background:linear-gradient(180deg,hsla(0,0%,100%,.99),rgba(251,254,253,.95));border:1px solid rgba(7,31,51,.09);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px;min-width:0}.platform-card.featured{box-shadow:var(--shadow-strong);border-color:rgba(0,135,213,.18)}.card-head,.platform-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.muted{color:var(--text-muted)}.page-stack,.stack-md{display:grid;grid-gap:14px;gap:14px}.grid-6{grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:14px}.grid-4,.grid-6{display:grid;gap:14px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px}.grid-2,.grid-3{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px}.overview-grid{display:grid;grid-template-columns:1.05fr 1fr .95fr;grid-gap:14px;gap:14px;align-items:start}.metric-card,.signal-card{display:grid;grid-gap:9px;gap:9px;border:1px solid rgba(7,31,51,.09);border-radius:16px;background:hsla(0,0%,100%,.97);padding:17px;min-height:124px;box-shadow:0 12px 32px rgba(7,31,51,.065)}.metric-card span{color:var(--text-muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.metric-card strong{font-size:28px;line-height:1}.metric-card small{color:var(--text-muted);line-height:1.45}.metric-card.tone-success{border-color:rgba(21,151,91,.22);background:linear-gradient(180deg,#fff,#f5fbf8)}.metric-card.tone-info{border-color:rgba(0,120,200,.2);background:linear-gradient(180deg,#fff,#f4faff)}.metric-card.tone-warning{border-color:rgba(183,121,31,.24);background:linear-gradient(180deg,#fff,#fffbf2)}.metric-card.tone-danger{border-color:rgba(196,59,59,.22);background:linear-gradient(180deg,#fff,#fff7f7)}.badge,.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:800;border:1px solid var(--border);background:var(--panel-muted);color:var(--text-muted);white-space:nowrap}.badge.success,.tone-success{background:var(--success-soft);color:var(--success-strong);border-color:transparent}.badge.accent,.tone-info{background:var(--accent-soft);color:var(--accent-strong);border-color:transparent}.badge.warning,.tone-warning{background:var(--warning-soft);color:var(--warning);border-color:transparent}.badge.danger,.tone-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:12px;border:1px solid transparent;padding:0 14px;font-weight:850;cursor:pointer;font-size:14px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.button:hover{transform:translateY(-1px)}.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring)}.button.primary{background:linear-gradient(135deg,#006ec3,#00a977);color:#fff;box-shadow:0 12px 24px rgba(0,135,213,.18)}.button.secondary{background:#fff;color:var(--text);border-color:var(--border)}.button.compact,.button.small{min-height:32px;padding:0 10px;font-size:12px}.button.disabled{cursor:not-allowed;background:var(--panel-muted);color:var(--text-muted);border-color:var(--border);opacity:1}.field{display:grid;grid-gap:6px;gap:6px}.field label,.field span{font-size:12px;font-weight:800;color:var(--text-muted)}.field input,.field select,.field textarea{width:100%;min-height:40px;border:1px solid var(--border);border-radius:var(--radius);padding:0 11px;background:#fff;color:var(--text)}.field textarea{padding-top:10px}.table-scroll{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:#fff}.platform-table,.table{width:100%;border-collapse:collapse}.platform-table td,.platform-table th,.table td,.table th{padding:11px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.platform-table th,.table th{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:linear-gradient(180deg,#fbfefd,var(--panel-muted));position:-webkit-sticky;position:sticky;top:0;z-index:1}.platform-table tbody tr:hover,.table tbody tr:hover{background:rgba(0,135,213,.035)}.platform-table tr:last-child td,.table tr:last-child td{border-bottom:0}.table.compact td,.table.compact th{padding:10px 9px}.kv{display:grid;grid-gap:8px;gap:8px}.kv-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:9px 0}.kv-row:last-child{border-bottom:0}.stat-value{font-size:30px;font-weight:800}.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.mini-grid span{display:grid;grid-gap:3px;gap:3px;color:var(--text-muted);font-size:12px}.mini-grid strong{color:var(--text);overflow-wrap:anywhere}.alert-card,.object-card{display:grid;grid-gap:12px;gap:12px;border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--panel);min-width:0}.object-card:hover{border-color:rgba(21,151,91,.35);box-shadow:0 10px 24px rgba(21,55,65,.08)}.alert-card,.object-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:start}.object-card-head div{min-width:0}.object-card-head span,.object-card-head strong{display:block;overflow-wrap:anywhere}.alert-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.alert-card p{margin-bottom:0}.state-panel{display:grid;place-items:center;grid-gap:6px;gap:6px;min-height:150px;text-align:center;border:1px dashed rgba(16,36,44,.18);border-radius:var(--radius);background:linear-gradient(135deg,#f9fcfb,#eff8f5);padding:18px}.state-panel.restricted{background:#fffbf2;border-color:rgba(183,121,31,.32)}.chart-surface{height:178px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,rgba(0,135,213,.08),rgba(0,169,119,.05)),#fff;position:relative;overflow:hidden}.chart-surface:before{content:"";position:absolute;inset:18px;background-image:linear-gradient(rgba(100,115,124,.14) 1px,transparent 0),linear-gradient(90deg,rgba(100,115,124,.14) 1px,transparent 0);background-size:42px 42px}.chart-surface:after{content:"";position:absolute;left:18px;right:18px;top:64%;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--success));box-shadow:72px -28px 0 -1px rgba(0,120,200,.5),156px -44px 0 -1px rgba(21,151,91,.45),244px -18px 0 -1px rgba(183,121,31,.42)}.chart-value{color:var(--accent-strong)}.platform-map{min-height:660px;display:grid;grid-template-columns:320px minmax(0,1fr) 320px;grid-gap:16px;gap:16px}.map-canvas,.map-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow);padding:18px;min-width:0}.map-canvas{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(0,135,213,.11),rgba(0,169,119,.1)),#edf8f5}.map-canvas:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 28% 28%,rgba(21,151,91,.18),transparent 16%),radial-gradient(circle at 74% 66%,rgba(0,120,200,.16),transparent 18%),linear-gradient(120deg,transparent 0 42%,hsla(0,0%,100%,.45) 42% 44%,transparent 44% 100%)}.map-canvas:after{content:"";position:absolute;inset:12%;border:1px solid rgba(16,36,44,.08);border-radius:42% 58% 48% 52%;transform:rotate(-7deg)}.map-canvas.tile-surface{background-color:#dbece7;background-image:url(https://tile.openstreetmap.org/6/36/20.png);background-size:cover;background-position:50%}.map-canvas.tile-surface:before{background:rgba(246,251,250,.42);-webkit-backdrop-filter:saturate(.9);backdrop-filter:saturate(.9)}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(100,115,124,.1) 1px,transparent 0),linear-gradient(90deg,rgba(100,115,124,.1) 1px,transparent 0);background-size:56px 56px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.2));mask-image:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.2))}.map-pin{position:absolute;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:var(--accent);color:#fff;box-shadow:0 10px 24px rgba(0,120,200,.28);transform:translate(-50%,-50%)}.map-pin span{position:absolute;top:40px;white-space:nowrap;color:var(--text);font-size:12px;font-weight:800}.map-pin.risk-critical,.map-pin.risk-high{background:var(--danger)}.map-pin.risk-low,.map-pin.risk-normal{background:var(--success)}.map-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted);font-weight:800;text-align:center;padding:20px;z-index:2}.map-ready-panel{position:absolute;inset:auto 28px 28px 28px;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.map-ready-panel span{border:1px solid hsla(0,0%,100%,.72);background:hsla(0,0%,100%,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;padding:12px;font-size:12px;color:var(--text-muted);box-shadow:var(--shadow)}.map-ready-panel strong{display:block;color:var(--ink);font-size:18px;margin-bottom:3px}.role-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);grid-gap:16px;gap:16px;align-items:stretch}.command-panel{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff,#f2fbfb 48%,#eef9f6)}.command-panel:after{content:"";position:absolute;right:-80px;top:-90px;width:300px;height:300px;border-radius:999px;border:54px solid rgba(0,135,213,.08)}.hero-copy{position:relative;z-index:1;display:grid;grid-gap:18px;gap:18px}.hero-copy h1{max-width:760px;font-size:clamp(34px,4vw,54px)}.hero-copy p{max-width:780px;color:var(--text-muted);font-size:16px}.system-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.system-strip span{display:grid;grid-gap:4px;gap:4px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:hsla(0,0%,100%,.72);font-size:12px;color:var(--text-muted)}.system-strip strong{color:var(--text);font-size:16px}.login-shell{--login-brand-blue:#0058b0;--login-brand-blue-dark:#003898;--login-brand-blue-light:#0088d8;--login-brand-ink:#383838;--login-brand-accent:#0070c8;--login-button-bg:linear-gradient(180deg,#0068c0,#0058b0);--login-button-bg-hover:linear-gradient(180deg,#0050a8,#003898);--login-focus-ring:rgba(0,136,216,.22);--login-navy:#003090;--login-blue:var(--login-brand-blue);--login-ink:var(--login-brand-ink);--login-muted:#526b7a;--login-line:rgba(0,88,176,.16);min-height:100vh;display:grid;place-items:center;padding:clamp(24px,5vw,56px);background:radial-gradient(circle at 50% 47%,rgba(0,136,216,.08),transparent 33%),linear-gradient(135deg,#fbfdff,#f3f8fc 52%,#f9fcfe)}.login-panel{width:100%;display:grid;place-items:center}.login-minimal-panel{align-content:center}.login-card-shell{width:min(100%,440px);display:grid;grid-gap:20px;gap:20px;text-align:center;transform:translateY(-1.5vh)}.login-brand-lockup{display:grid;grid-gap:9px;gap:9px;justify-items:center;color:var(--login-blue);margin-bottom:2px}.login-logo-frame{display:inline-flex;align-items:center;justify-content:center}.login-logo-frame img{display:block;width:176px;height:auto;image-rendering:auto}.login-brand-lockup>span:last-child{color:var(--login-brand-blue-dark);font-size:10.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.login-heading{display:grid;grid-gap:8px;gap:8px}.login-heading h1{margin:0;color:var(--login-navy);font-size:clamp(26px,3vw,32px);line-height:1.1}.login-heading p{margin:0;color:var(--login-muted);line-height:1.55}.login-form-card{display:grid;grid-gap:14px;gap:14px;text-align:left;background:hsla(0,0%,100%,.97);border:1px solid rgba(14,77,112,.13);border-radius:var(--radius-lg);box-shadow:0 20px 54px rgba(3,24,39,.1);padding:24px}.login-form-card label{color:var(--login-ink)}.login-form-card .input{border-color:var(--login-line);color:var(--login-ink);background:#fff}.login-form-card .input:focus{border-color:var(--login-brand-blue);box-shadow:0 0 0 3px var(--login-focus-ring)}.login-form-card .input:-webkit-autofill,.login-form-card .input:-webkit-autofill:focus,.login-form-card .input:-webkit-autofill:hover{border-color:rgba(0,88,176,.18);-webkit-text-fill-color:var(--login-ink);caret-color:var(--login-ink);-webkit-box-shadow:inset 0 0 0 1000px #f7fbff;-webkit-transition:background-color 9999s ease-in-out 0s;transition:background-color 9999s ease-in-out 0s}.login-form-card .button.primary{background:var(--login-button-bg);color:#fff;box-shadow:0 12px 24px rgba(0,88,176,.2)}.login-form-card .button.primary:hover{background:var(--login-button-bg-hover);box-shadow:0 14px 28px rgba(0,64,160,.23)}.login-form-card .button.primary:focus-visible{outline:3px solid var(--login-focus-ring);outline-offset:3px}.login-form-card .button.primary:disabled{background:#8ba9c8;box-shadow:none;cursor:not-allowed}.login-links{display:flex;gap:10px;flex-wrap:wrap}.login-links,.login-links a{align-items:center;justify-content:center}.login-links a{min-height:36px;display:inline-flex;border:1px solid rgba(14,77,112,.14);border-radius:999px;background:hsla(0,0%,100%,.68);color:var(--login-ink);padding:0 14px;font-size:13px;font-weight:800}.login-links a:focus-visible,.login-links a:hover{border-color:rgba(0,88,176,.34);background:hsla(0,0%,100%,.9);color:var(--login-brand-blue-dark);outline:none;box-shadow:0 0 0 3px rgba(0,136,216,.12)}.login-footer{margin:0;color:var(--login-muted);font-size:12px;font-weight:600}.scientific-chart{display:grid;grid-gap:8px;gap:8px}.scientific-chart svg{width:100%;height:116px;overflow:visible}.chart-grid-line{fill:none;stroke:rgba(99,119,134,.2);stroke-width:1}.chart-line{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 8px 12px rgba(0,135,213,.18))}.chart-dot{fill:#fff;stroke:var(--success);stroke-width:2}.chart-scale{display:flex;justify-content:space-between;color:var(--text-muted);font-size:12px;font-weight:800}.cleanup-section{border-top:1px dashed var(--border);margin-top:16px;padding-top:16px}.mobile-flow{min-height:100vh;display:grid;align-content:start;grid-gap:16px;gap:16px;padding:18px;background:var(--bg)}.mobile-card{width:min(100%,520px);margin:0 auto;display:grid;grid-gap:14px;gap:14px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);padding:20px}.mobile-card,.raw-json{border-radius:var(--radius)}.raw-json{margin:0;max-height:420px;overflow:auto;background:#0e1720;color:#e5f2ff;padding:16px;font-size:12px;line-height:1.55;white-space:pre-wrap}.sensor-hero-card{border-color:rgba(0,135,213,.18);background:linear-gradient(135deg,#fff,#f5fbff 54%,#f1fbf7)}.sensor-hero-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(340px,1.15fr) minmax(260px,.85fr);grid-gap:18px;gap:18px;align-items:start}.reading-cluster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.reading-cluster span{display:grid;grid-gap:4px;gap:4px;min-height:82px;border:1px solid rgba(7,31,51,.08);border-radius:14px;background:hsla(0,0%,100%,.76);padding:13px;color:var(--text-muted);font-size:12px;font-weight:800}.reading-cluster strong{color:var(--ink);font-size:22px;overflow-wrap:anywhere}.gateway-topology{display:grid;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr) 80px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:center}.topology-node{min-height:142px;display:grid;align-content:center;grid-gap:8px;gap:8px;border:1px solid rgba(0,135,213,.16);border-radius:18px;padding:18px;background:linear-gradient(180deg,#fff,#f5fbff);box-shadow:0 12px 30px rgba(7,31,51,.06)}.topology-node span{color:var(--text-muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.topology-node strong{color:var(--ink);font-size:20px;overflow-wrap:anywhere}.topology-node small{color:var(--text-muted);line-height:1.45}.topology-line{height:2px;border-radius:999px;background:linear-gradient(90deg,rgba(0,135,213,.2),var(--accent),rgba(0,169,119,.3));position:relative}.topology-line:after{content:"";position:absolute;right:0;top:50%;width:9px;height:9px;border-top:2px solid var(--success);border-right:2px solid var(--success);transform:translateY(-50%) rotate(45deg)}@media (max-width:1280px){.grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr 1fr}.platform-map{grid-template-columns:240px minmax(0,1fr)}.gateway-topology,.sensor-hero-grid{grid-template-columns:1fr}.topology-line{width:2px;height:34px;justify-self:center}.topology-line:after{right:auto;left:50%;top:auto;bottom:0;transform:translateX(-50%) rotate(135deg)}.role-hero{grid-template-columns:1fr}.system-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-map .map-panel:last-child{grid-column:1/-1}}@media (max-width:980px){.admin-shell,.login-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid-2,.grid-3,.grid-4,.overview-grid,.platform-map{grid-template-columns:1fr}.platform-topbar,.topbar{display:grid}}.signal-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:132px}.signal-card span{color:var(--text-muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.signal-card strong{display:block;margin:8px 0 4px;font-size:30px;color:var(--ink)}.signal-card small{color:var(--text-muted);line-height:1.45}.signal-card-visual{width:54px;height:54px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-soft),var(--success-soft));color:var(--accent-strong);font-weight:900}.admin-overview{display:grid;grid-gap:18px;gap:18px;min-width:0}.command-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border:1px solid rgba(7,31,51,.08);border-radius:22px;padding:24px;background:linear-gradient(135deg,hsla(0,0%,100%,.94),rgba(247,252,251,.92));box-shadow:0 16px 46px rgba(7,31,51,.06)}.command-header h1{max-width:760px;margin-bottom:8px;font-size:clamp(32px,3.5vw,48px)}.command-header p{max-width:780px;margin-bottom:0;color:var(--text-muted);font-size:16px}.command-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;min-width:min(100%,360px)}.eyebrow{display:inline-flex;margin-bottom:8px;color:var(--accent-strong);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.overview-command-panel{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);grid-gap:14px;gap:14px;align-items:stretch}.overview-command-primary{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff,#f6fbff 52%,#f2fbf8)}.overview-command-primary:after{content:"";position:absolute;right:-84px;top:-100px;width:280px;height:280px;border:42px solid rgba(0,135,213,.07);border-radius:999px}.command-primary-copy,.command-state-grid{position:relative;z-index:1}.command-primary-copy h2{max-width:760px;font-size:clamp(24px,2.5vw,34px)}.command-primary-copy p{max-width:820px;color:var(--text-muted)}.command-state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:18px}.command-state-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.command-state-grid div{display:grid;grid-gap:5px;gap:5px;min-width:0;border:1px solid rgba(7,31,51,.08);border-radius:14px;background:hsla(0,0%,100%,.74);padding:13px}.command-state-grid span,.queue-item span,.readiness-item span,.reading-stat span{color:var(--text-muted);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.command-state-grid strong,.queue-item strong,.readiness-item strong,.reading-stat strong{color:var(--ink);overflow-wrap:anywhere}.operator-queue{display:grid;grid-gap:10px;gap:10px}.queue-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 12px;gap:4px 12px;align-items:center;border:1px solid var(--border);border-radius:14px;background:#fff;padding:13px}.queue-item:hover{border-color:rgba(0,135,213,.24);box-shadow:0 10px 24px rgba(7,31,51,.06)}.queue-item small{color:var(--text-muted);line-height:1.35}.queue-item .status-badge{grid-row:span 2}.overview-kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:12px;gap:12px}.overview-kpi-strip .metric-card{min-height:118px}.overview-snapshot-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) minmax(260px,.8fr) minmax(260px,.8fr);align-items:stretch}.overview-snapshot-grid,.package-summary{display:grid;grid-gap:14px;gap:14px}.context-row,.package-status-row,.snapshot-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.context-row strong,.package-status-row .muted,.snapshot-footer strong{overflow-wrap:anywhere;text-align:right}.reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.reading-stat{display:grid;grid-gap:6px;gap:6px;min-height:86px;border:1px solid rgba(7,31,51,.08);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fcfb);padding:14px}.reading-stat strong{font-size:22px}.snapshot-footer{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.overview-risk-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:14px}.overview-risk-grid,.risk-panel{display:grid;gap:14px;align-items:start}.risk-panel{grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);grid-gap:14px}.risk-state{display:grid;grid-gap:8px;gap:8px;border:1px solid rgba(7,31,51,.08);border-radius:16px;padding:16px;background:#fff}.risk-state span{color:var(--text-muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.risk-state strong{font-size:28px;color:var(--ink)}.risk-state p{margin-bottom:0;color:var(--text-muted)}.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.readiness-item{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--border);border-radius:14px;padding:13px;background:#fff;min-width:0}.readiness-item small{color:var(--text-muted);overflow-wrap:anywhere}.readiness-item .status-badge{justify-self:start;margin-top:4px}.overview-map-preview{min-height:176px;margin-top:12px;box-shadow:none}.activity-list,.cleanup-list,.context-list{display:grid;grid-gap:10px;gap:10px}.activity-item,.cleanup-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:start;border:1px solid var(--border);border-radius:14px;background:#fff;padding:13px;min-width:0}.cleanup-item span,.cleanup-item strong{display:block;overflow-wrap:anywhere}.activity-item{grid-template-columns:auto minmax(0,1fr);align-items:center}.activity-item span,.activity-item strong{display:block;overflow-wrap:anywhere}.context-row{border-bottom:1px solid var(--border);padding:10px 0}.context-row:last-child{border-bottom:0}@media (max-width:1400px){.overview-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1080px){.command-header,.platform-topbar{display:grid}.command-header-actions{justify-content:flex-start}.overview-command-panel,.overview-risk-grid,.risk-panel{grid-template-columns:1fr}.command-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.command-header{padding:18px}.command-state-grid,.command-state-grid.compact,.overview-kpi-strip,.overview-snapshot-grid,.readiness-grid,.reading-grid{grid-template-columns:1fr}.context-row,.package-status-row,.snapshot-footer{display:grid}.context-row strong,.package-status-row .muted,.snapshot-footer strong{text-align:left}}