:root{color-scheme:dark;--bg:#151c26;--bg2:#1b2531;--panel:#223040;--panel2:#27384a;--surface:#2a3a4c;--surface2:#33475c;--ink:#f6f8fb;--text:#dce5ee;--muted:#a6b4c3;--dim:#7e8ea0;--line:rgba(255,255,255,.13);--line2:rgba(255,255,255,.20);--teal:#35b9a8;--teal2:#63d6c9;--blue:#6aa8e8;--green:#3bd17f;--danger:#ef637e;--warning:#f3bd63;--shadow:rgba(5,10,18,.28) 0 22px 55px -28px,rgba(5,10,18,.18) 0 10px 24px -16px;--inner:inset 0 1px 0 rgba(255,255,255,.07)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 15% -8%,rgba(53,185,168,.12),transparent 34%),radial-gradient(circle at 82% -6%,rgba(106,168,232,.10),transparent 30%),linear-gradient(180deg,#18212c 0,#151c26 45%,#141b24 100%);color:var(--text);font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-feature-settings:'cv01','ss03';font-weight:400}.page-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:rgba(27,37,49,.86);border-bottom:1px solid var(--line);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20;box-shadow:0 10px 30px rgba(5,10,18,.16)}.brand{display:flex;align-items:center;gap:16px;color:var(--ink);text-decoration:none}.brand-logo{height:34px;width:auto;display:block;filter:drop-shadow(0 10px 22px rgba(5,10,18,.30))}.brand-subtitle{font-size:12px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;border-left:1px solid var(--line2);padding-left:16px}.nav-actions{display:flex;align-items:center;gap:14px}.nav-actions a{color:var(--text);text-decoration:none;font-weight:510}.nav-actions a:hover{color:var(--ink)}.user-chip{border:1px solid var(--line);background:rgba(255,255,255,.055);border-radius:999px;color:var(--muted);padding:7px 11px;font-size:13px}main{flex:1;max-width:1380px;margin:0 auto;padding:34px}a{color:var(--teal2)}.btn,button,.primary{appearance:none;border:1px solid rgba(99,214,201,.28);border-radius:8px;background:linear-gradient(135deg,var(--teal),#65aee8);color:#08131a;padding:10px 15px;font:700 15px 'Inter',system-ui;cursor:pointer;box-shadow:rgba(53,185,168,.18) 0 14px 28px -16px}.btn:hover,button:hover,.primary:hover{filter:brightness(1.06)}.btn-secondary,.btn-ghost{background:rgba(255,255,255,.065);color:var(--text);border:1px solid var(--line);box-shadow:none}.btn-danger{background:linear-gradient(135deg,var(--danger),#f28b5c);border-color:rgba(239,99,126,.35);color:#fff}.hero{border:1px solid var(--line);background:linear-gradient(135deg,rgba(42,58,76,.90),rgba(34,48,64,.86));border-radius:16px;padding:34px;margin-bottom:24px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(53,185,168,.06),transparent 46%,rgba(106,168,232,.06));pointer-events:none}.hero:after{content:"";position:absolute;inset:auto -80px -130px auto;width:390px;height:250px;background:radial-gradient(circle,rgba(99,214,201,.16),transparent 68%);opacity:.9}.hero>*{position:relative;z-index:1}.hero-split,.device-hero{display:flex;align-items:center;justify-content:space-between;gap:30px}.eyebrow{text-transform:uppercase;color:var(--teal2);font-weight:700;font-size:12px;letter-spacing:.14em;margin:0 0 10px}.hero h1{font-size:52px;line-height:1.03;letter-spacing:-1.2px;font-weight:510;margin:0;color:var(--ink);max-width:780px}.hero-copy{font-size:18px;line-height:1.6;color:var(--muted);max-width:760px;margin:14px 0 0}.hero-metrics,.hero-card{display:flex;gap:14px;z-index:1}.hero-metrics div,.hero-card{background:rgba(255,255,255,.07);border:1px solid var(--line);border-radius:14px;padding:18px 22px;box-shadow:var(--inner);min-width:130px}.hero-metrics strong,.hero-card strong{display:block;font-size:34px;font-weight:600;color:var(--ink);font-feature-settings:'tnum'}.hero-metrics span,.hero-card span{color:var(--muted)}.hero-card{display:block;text-align:center}.back-link{display:inline-block;margin-bottom:12px;text-decoration:none;color:var(--muted)}.notice{margin-top:18px;background:rgba(59,209,127,.13);border:1px solid rgba(59,209,127,.35);color:#a1f4c0;padding:11px 13px;border-radius:8px;font-weight:510}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.device-card,.panel,.summary-card,.radio-card{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.052));border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow),var(--inner)}.device-card{display:block;color:var(--text);text-decoration:none;padding:22px;transition:.16s transform,.16s border,.16s background}.device-card:hover{transform:translateY(-2px);border-color:rgba(99,214,201,.42);background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.065))}.card-topline{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.status-dot{width:9px;height:9px;border-radius:99px;background:var(--green);box-shadow:0 0 0 4px rgba(59,209,127,.15);display:inline-block}.status-dot.large{width:13px;height:13px;margin-bottom:8px}.device-card h2{font-size:25px;font-weight:510;letter-spacing:-.3px;margin:12px 0 4px;color:var(--ink)}.muted{color:var(--muted);font-weight:400}.small{font-size:13px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.metric-row div{background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:10px;padding:12px}.metric-row strong{display:block;font-size:24px;font-weight:600;color:var(--ink);font-feature-settings:'tnum'}.metric-row span{display:block;color:var(--muted);font-size:12px}.compact-dl,.stacked-dl{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin:0}.stacked-dl{grid-template-columns:1fr}.compact-dl dt,.stacked-dl dt{color:var(--teal2);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.compact-dl dd,.stacked-dl dd{margin:0;color:var(--muted);overflow-wrap:anywhere}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.summary-card{padding:18px}.summary-card span{display:block;color:var(--muted);font-size:13px}.summary-card strong{display:block;margin-top:6px;font-size:20px;font-weight:510;color:var(--ink);overflow-wrap:anywhere}.workspace{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start}.rail{position:sticky;top:98px;display:grid;gap:16px}.panel{padding:24px;margin-bottom:18px}.panel.slim{padding:20px}.panel h2{margin:0 0 14px;font-size:25px;font-weight:510;letter-spacing:-.3px;color:var(--ink)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-head h2{margin:0}.button-stack{margin:8px 0}.button-stack .btn{width:100%}.field-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.content-stack{min-width:0}.feature-panel{padding:28px}.radio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px}.radio-card{padding:18px;box-shadow:var(--inner)}.radio-card>div:first-child{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.radio-card h3{font-size:22px;font-weight:510;color:var(--ink);margin:8px 0 0;overflow-wrap:anywhere}.upload-box,.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}.upload-box{background:rgba(255,255,255,.045);border:1px dashed rgba(99,214,201,.42);border-radius:12px;padding:18px;margin-top:16px}.wide{grid-column:span 2}.firmware-list{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:14px}.accordion-list{display:grid;gap:14px}.wifi-editor{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.045);overflow:hidden}.wifi-editor summary{cursor:pointer;display:grid;grid-template-columns:140px 1fr auto;gap:12px;align-items:center;padding:16px 18px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.045));color:var(--muted)}.wifi-editor summary strong{color:var(--ink);font-size:20px;font-weight:510;overflow-wrap:anywhere}.wifi-editor summary em{font-style:normal;color:var(--muted)}.wifi-editor form{padding:18px}.toggle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;grid-column:1/-1}label{display:block;color:var(--text);font-weight:510;font-size:14px}input,select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.075);color:var(--ink);border-radius:8px;padding:10px 11px;font:400 15px 'Inter',system-ui;margin-top:5px}input::placeholder{color:var(--dim)}input:focus,select:focus{outline:2px solid rgba(99,214,201,.25);border-color:var(--teal2)}input[type=checkbox]{width:auto;margin:0 7px 0 0}input[type=file]{background:rgba(255,255,255,.075)}small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.035)}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--teal2);font-size:12px;text-transform:uppercase;letter-spacing:.08em}td{color:var(--muted);overflow-wrap:anywhere}.params td:first-child{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;color:#cbd8e5}.split-panel{display:grid;grid-template-columns:1fr 1fr;gap:24px}pre{white-space:pre-wrap;max-height:520px;overflow:auto;background:#1a2430;color:#d8e2f0;border:1px solid var(--line);border-radius:10px;padding:16px;font:12px/1.6 'JetBrains Mono',ui-monospace,monospace}.empty-state{border:1px dashed rgba(99,214,201,.35);background:rgba(255,255,255,.045);border-radius:12px;color:var(--muted);padding:38px;text-align:center}.empty-state.compact{padding:16px;margin-top:12px}.login-card{max-width:440px;margin:80px auto;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.055));border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow),var(--inner)}.login-logo{height:40px;width:auto;display:block;margin-bottom:24px;filter:drop-shadow(0 10px 22px rgba(5,10,18,.30))}.login-card h1{font-size:38px;font-weight:510;color:var(--ink);margin:0 0 8px}.login-card p{color:var(--muted);line-height:1.55}.alert{background:rgba(239,99,126,.13);color:#ffc0cb;border:1px solid rgba(239,99,126,.35);border-radius:8px;padding:11px;margin:12px 0}@media(max-width:980px){.workspace{grid-template-columns:1fr}.rail{position:static}.summary-grid{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:38px}.hero-split,.device-hero{display:block}.hero-card{margin-top:18px}.split-panel{grid-template-columns:1fr}}@media(max-width:680px){main{padding:18px}.topbar{height:auto;padding:14px;align-items:flex-start;gap:12px}.brand{align-items:flex-start;flex-direction:column;gap:6px}.brand-logo{height:30px}.brand-subtitle{border-left:0;padding-left:0}.nav-actions{flex-wrap:wrap;justify-content:flex-end}.summary-grid{grid-template-columns:1fr}.metric-row{grid-template-columns:1fr}.firmware-list,.field-row{grid-template-columns:1fr}.wide{grid-column:span 1}.wifi-editor summary{grid-template-columns:1fr}.hero h1{font-size:32px}}

.upload-progress{grid-column:1/-1;display:grid;gap:8px;color:var(--muted);font-size:13px}.progress-shell{height:10px;background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:999px;overflow:hidden}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--blue));border-radius:999px;transition:width .18s ease}.progress-bar.failed{background:linear-gradient(90deg,var(--danger),#f28b5c)}.firmware-status-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px}.firmware-status-grid h3{margin:0 0 10px;color:var(--ink);font-size:17px}.firmware-file-list,.fault-list,.task-list{display:grid;gap:10px}.firmware-file-card,.fault-card,.task-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:12px;padding:13px}.fault-card,.task-card{display:block}.fault-card{border-color:rgba(239,99,126,.38);background:rgba(239,99,126,.10)}.task-card{border-color:rgba(99,214,201,.25);background:rgba(99,214,201,.07)}.firmware-file-card strong,.fault-card strong,.task-card strong{display:block;color:var(--ink);font-weight:650}.firmware-file-card span,.fault-card span,.task-card span{display:block;color:var(--muted);margin-top:3px}.firmware-file-card small,.fault-card small,.task-card small{display:block;color:var(--dim);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;margin-top:5px;overflow-wrap:anywhere}.firmware-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.firmware-actions form{margin:0}@media(max-width:980px){.firmware-status-grid{grid-template-columns:1fr}.firmware-file-card{grid-template-columns:1fr}.firmware-actions{justify-content:flex-start}}

.firmware-live-status{margin:0 0 12px;padding:12px 14px;border-radius:12px;background:rgba(99,214,201,.08);border:1px solid rgba(99,214,201,.22)}.firmware-live-status strong{display:block;color:var(--ink);font-weight:700}.firmware-live-status span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.event-list{display:grid;gap:10px;margin-top:10px}
.firmware-page-stack{display:grid;grid-template-columns:1fr;gap:18px}.firmware-upload-box{border:1px solid rgba(99,214,201,.18);background:rgba(15,23,42,.34);border-radius:16px;padding:16px}.firmware-library-panel,.firmware-upgrade-status{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);padding:16px}.firmware-library-panel h3,.firmware-upgrade-status h3{margin:0 0 10px;color:var(--ink);font-size:17px}.firmware-upgrade-status .empty-state{margin:0}.firmware-active-card{border-color:rgba(59,209,127,.48);background:rgba(59,209,127,.10);box-shadow:0 0 0 0 rgba(59,209,127,.25),0 0 28px rgba(59,209,127,.12)}.firmware-active-badge{position:relative;display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:9px 13px;background:rgba(59,209,127,.16);border:1px solid rgba(59,209,127,.42);color:#c8ffdc;font-weight:850;box-shadow:0 0 0 0 rgba(59,209,127,.35);animation:statusPulseGreen 1.8s ease-out infinite}.firmware-active-badge .client-status-dot{position:static;display:inline-block}.firmware-change-btn{background:linear-gradient(135deg,#a84455,#c45d6a);border-color:rgba(196,93,106,.58);color:#fff;box-shadow:0 10px 24px rgba(168,68,85,.15);font-weight:850}.firmware-delete-btn{background:linear-gradient(135deg,#8f3f49,#a9535b);border-color:rgba(169,83,91,.48);color:#ffe8ec;box-shadow:0 8px 20px rgba(143,63,73,.12);font-weight:780}.firmware-change-btn:hover,.firmware-delete-btn:hover{filter:brightness(1.07)}.firmware-activate-confirm-dialog{border:1px solid rgba(239,99,126,.42);border-radius:18px;padding:0;background:rgba(24,31,42,.98);color:var(--text);box-shadow:0 28px 80px rgba(0,0,0,.45);max-width:460px}.firmware-activate-confirm-dialog::backdrop{background:rgba(5,10,18,.68);backdrop-filter:blur(7px)}.firmware-confirm-box{padding:24px;display:grid;gap:14px;text-align:left}.firmware-warning-icon{width:78px;height:78px;margin:0 auto 4px;border-radius:22px;display:grid;place-items:center;background:rgba(243,189,99,.18);border:1px solid rgba(243,189,99,.58);color:#ffd987;font-size:42px;box-shadow:0 0 0 0 rgba(243,189,99,.36),0 0 42px rgba(243,189,99,.18);animation:firmwareWarningBeacon 1.25s ease-in-out infinite}@keyframes firmwareWarningBeacon{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(243,189,99,.36),0 0 30px rgba(243,189,99,.16)}50%{transform:scale(1.08);box-shadow:0 0 0 12px rgba(243,189,99,.08),0 0 62px rgba(243,189,99,.36)}}.firmware-confirm-box h3{margin:0;color:var(--ink);font-size:22px}.firmware-confirm-copy{margin:0;color:var(--muted);line-height:1.5}.firmware-confirm-target{border:1px solid rgba(239,99,126,.22);background:rgba(239,99,126,.08);border-radius:13px;padding:12px}.firmware-confirm-target strong,.firmware-confirm-target span{display:block}.firmware-confirm-target span{color:var(--muted);font-size:12px;margin-top:4px;overflow-wrap:anywhere}.firmware-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.firmware-confirm-no{background:rgba(255,255,255,.08);border-color:var(--line2);color:var(--ink)}.firmware-confirm-yes{background:linear-gradient(135deg,#a84455,#c45d6a);border-color:rgba(196,93,106,.58);color:#fff}.checkbox-card{display:flex!important;align-items:center;gap:8px;color:var(--muted)}.checkbox-card input{width:auto}.firmware-log-list{display:grid;gap:8px;max-height:360px;overflow-y:auto;padding-right:4px}.firmware-log-head,.firmware-log-row{display:grid;grid-template-columns:1.1fr .7fr minmax(180px,1.6fr) 1.1fr 1.1fr .7fr;gap:10px;align-items:center}.firmware-log-head{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:0 4px}.firmware-log-row{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.045);padding:10px 12px;color:var(--text);font-size:12px}.firmware-log-row span{overflow-wrap:anywhere}.firmware-result{display:inline-flex;justify-content:center;border-radius:999px;padding:5px 8px;font-weight:800}.firmware-result.succeeded,.firmware-result.uploaded{background:rgba(59,209,127,.16);color:#baf7cf;border:1px solid rgba(59,209,127,.35)}.firmware-result.running{background:rgba(99,214,201,.14);color:#c9fffa;border:1px solid rgba(99,214,201,.32)}.firmware-result.failed{background:rgba(239,99,126,.16);color:#ffd3dc;border:1px solid rgba(239,99,126,.38)}@media(max-width:980px){.firmware-log-head{display:none}.firmware-log-row{grid-template-columns:1fr}.firmware-result{justify-content:flex-start}}


.view-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.view-card{background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--inner)}.view-card h3{margin:0 0 14px;color:var(--ink);font-size:18px;font-weight:650}.next-list{color:var(--muted);line-height:1.55;margin:12px 0 16px;padding-left:20px}.next-list li{margin:7px 0}.inline-filter{max-width:320px;margin:0}.params tbody tr{transition:background .12s}.params tbody tr:hover{background:rgba(99,214,201,.06)}@media(max-width:980px){.view-grid{grid-template-columns:1fr}.inline-filter{max-width:none;width:100%;margin-top:10px}}

/* Keep admin/debug data from overwhelming the operational page. */
.admin-advanced { margin-top: 18px; }
.admin-advanced > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.admin-advanced > summary::-webkit-details-marker { display: none; }
.admin-advanced > summary:after { content: 'Open debug data'; color: var(--muted); border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; white-space: nowrap; }
.admin-advanced[open] > summary:after { content: 'Close debug data'; }
.advanced-body { margin-top: 18px; display: grid; gap: 18px; }
.bounded-pre { max-height: 340px; overflow: auto; white-space: pre-wrap; word-break: break-word; }
.bounded-table { max-height: 520px; overflow: auto; border: 1px solid var(--line); border-radius: 14px; }
.params .param-value { max-width: 520px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.compact-table { margin-top: 12px; }
.usp-snapshot { text-align: left; }


/* Human-readable tenant device page */
.customer-dashboard { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; margin-top: 22px; }
.customer-main { display: grid; gap: 22px; }
.customer-side { display: grid; gap: 22px; position: sticky; top: 92px; }
.customer-panel { padding: 28px; }
.customer-status-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; background: linear-gradient(135deg, rgba(33, 76, 93, .72), rgba(31, 42, 57, .96)); }
.customer-status-copy h2 { font-size: clamp(1.8rem, 4vw, 3rem); margin: 4px 0 8px; }
.customer-readable { max-width: 760px; color: var(--muted); font-size: 1.05rem; line-height: 1.65; }
.health-badges { display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 12px; min-width: 420px; }
.health-badge { border: 1px solid var(--line); border-radius: 18px; padding: 18px; background: rgba(255,255,255,.055); display: grid; gap: 6px; }
.health-badge strong { font-size: 1.2rem; color: #fff; }
.health-badge small { color: var(--muted); line-height: 1.35; }
.health-badge.good span { width: 12px; height: 12px; border-radius: 999px; background: #35d986; box-shadow: 0 0 0 5px rgba(53,217,134,.14); }
.customer-wifi-list, .customer-device-list { display: grid; gap: 12px; }
.customer-wifi-card, .customer-device-row { display: flex; justify-content: space-between; gap: 18px; align-items: center; border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; background: rgba(255,255,255,.045); }
.customer-wifi-card strong, .customer-device-row strong { display: block; color: #fff; font-size: 1.12rem; margin-bottom: 4px; }
.customer-wifi-card small, .customer-device-row small { color: var(--muted); }
.customer-mini-metrics { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.customer-mini-metrics span { border: 1px solid var(--line); border-radius: 999px; padding: 7px 10px; color: var(--muted); background: rgba(255,255,255,.035); }
.wifi-dot { display: inline-block; width: 10px; height: 10px; margin-right: 10px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 0 5px rgba(68,209,201,.12); vertical-align: middle; }
.customer-device-row > div:last-child { text-align: right; display: grid; gap: 5px; justify-items: end; }
.customer-details summary { list-style: none; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.customer-details summary::-webkit-details-marker { display: none; }
.customer-details dl { margin-top: 16px; }
@media (max-width: 1100px) { .customer-dashboard { grid-template-columns: 1fr; } .customer-side { position: static; } .health-badges { min-width: 0; grid-template-columns: 1fr; } .customer-status-panel { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .customer-wifi-card, .customer-device-row { align-items: flex-start; flex-direction: column; } .customer-device-row > div:last-child { text-align: left; justify-items: start; } }


/* Customer device page v2: clean ISP support dashboard. Overrides older customer-* experiment. */
.client-page { max-width: 1120px; margin: 22px auto 0; display: grid; gap: 18px; }
.client-topline { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding: 4px 0 2px; }
.client-topline h2 { margin: 0; color: var(--ink); font-size: 32px; line-height: 1.05; letter-spacing: -.55px; font-weight: 590; }
.client-topline p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); font-size: 16px; line-height: 1.5; max-width: 620px; }
.client-actions-inline { display: flex; gap: 10px; align-items: center; flex-shrink: 0; }
.client-actions-inline form { margin: 0; }
.client-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.client-stat { position: relative; min-width: 0; padding: 18px; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: rgba(255,255,255,.035); box-shadow: inset 0 1px 0 rgba(255,255,255,.045); }
.client-stat small { color: var(--muted); font-size: 12px; letter-spacing: .01em; margin: 0 0 10px; }
.client-stat strong { display: block; color: var(--ink); font-size: 25px; line-height: 1.1; font-weight: 590; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.client-stat em { display: block; color: var(--dim); font-style: normal; font-size: 12px; margin-top: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.client-status-dot { position: absolute; top: 18px; right: 18px; width: 10px; height: 10px; border-radius: 999px; background: var(--green); box-shadow: 0 0 0 5px rgba(59,209,127,.12); }
.client-grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.client-grid-two.lower { grid-template-columns: minmax(0, 1fr) 360px; }
.client-card { min-width: 0; padding: 22px; border: 1px solid rgba(255,255,255,.08); border-radius: 16px; background: rgba(255,255,255,.035); box-shadow: var(--inner); }
.client-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.client-card h3 { margin: 0; color: var(--ink); font-size: 23px; line-height: 1.15; font-weight: 590; letter-spacing: -.25px; }
.clean-list { display: grid; gap: 10px; }
.clean-row { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.075); border-radius: 12px; background: rgba(255,255,255,.032); }
.clean-row strong { display: block; color: var(--ink); font-size: 16px; line-height: 1.25; font-weight: 590; overflow-wrap: anywhere; }
.clean-row span { color: var(--muted); font-size: 13px; line-height: 1.35; }
.row-meta { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 8px; flex-shrink: 0; max-width: 50%; }
.row-meta span { padding: 5px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025); color: var(--muted); white-space: nowrap; }
.client-empty { padding: 18px; border: 1px dashed rgba(255,255,255,.12); border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.025); }
.support-card { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.support-card p:not(.eyebrow) { color: var(--muted); margin: 8px 0 0; line-height: 1.5; max-width: 440px; }
.support-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.support-buttons form { margin: 0; }
.client-details summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; }
.client-details summary::-webkit-details-marker { display: none; }
.client-details summary > span { border: 1px solid rgba(255,255,255,.08); border-radius: 999px; padding: 6px 10px; color: var(--muted); font-size: 13px; }
.client-detail-list { margin: 18px 0 0; display: grid; grid-template-columns: 120px 1fr; gap: 10px 14px; }
.client-detail-list dt { color: var(--teal2); text-transform: uppercase; font-size: 11px; letter-spacing: .1em; font-weight: 700; }
.client-detail-list dd { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 1120px) { .client-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .client-grid-two, .client-grid-two.lower { grid-template-columns: 1fr; } .client-topline { align-items: start; flex-direction: column; } .client-actions-inline { flex-wrap: wrap; } }
@media (max-width: 650px) { .client-stat-grid { grid-template-columns: 1fr; } .clean-row, .support-card { align-items: flex-start; flex-direction: column; } .row-meta { justify-content: flex-start; max-width: 100%; } .support-buttons { justify-content: flex-start; } .client-topline h2 { font-size: 26px; } }


/* Client tabs: focused customer control surfaces */
.client-tabs > input[type=radio] { position: absolute; opacity: 0; pointer-events: none; }
.client-tabbar { display: flex; gap: 8px; padding: 6px; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: rgba(255,255,255,.028); width: max-content; max-width: 100%; overflow-x: auto; }
.client-tabbar label { cursor: pointer; color: var(--muted); border-radius: 10px; padding: 10px 14px; font-size: 14px; font-weight: 590; white-space: nowrap; }
#tab-overview:checked ~ .client-tabbar label[for=tab-overview], #tab-wifi:checked ~ .client-tabbar label[for=tab-wifi], #tab-clients:checked ~ .client-tabbar label[for=tab-clients], #tab-firmware:checked ~ .client-tabbar label[for=tab-firmware], #tab-diagnostics:checked ~ .client-tabbar label[for=tab-diagnostics], #tab-actions:checked ~ .client-tabbar label[for=tab-actions] { color: var(--ink); background: rgba(99,214,201,.14); border: 1px solid rgba(99,214,201,.22); }
.client-pane { display: none; }
#tab-overview:checked ~ .pane-overview, #tab-wifi:checked ~ .pane-wifi, #tab-clients:checked ~ .pane-clients, #tab-firmware:checked ~ .pane-firmware, #tab-diagnostics:checked ~ .pane-diagnostics, #tab-actions:checked ~ .pane-actions { display: grid; gap: 18px; }
.text-link { color: var(--teal2); cursor: pointer; font-size: 14px; font-weight: 590; }
.client-card.full { width: 100%; }
.client-help { color: var(--muted); margin: 8px 0 0; line-height: 1.5; max-width: 680px; }
.wifi-control-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.wifi-control-card { display: grid; gap: 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; padding: 16px; background: rgba(255,255,255,.03); }
.wifi-control-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.wifi-control-head strong { color: var(--ink); display: block; font-size: 17px; }
.wifi-control-head span { color: var(--muted); font-size: 13px; }
.switch-row { display: flex; gap: 6px; align-items: center; color: var(--muted); white-space: nowrap; }
.client-health-list { display: grid; gap: 10px; }
.client-health-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(140px, 220px) minmax(150px, auto); gap: 16px; align-items: center; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; padding: 14px 16px; background: rgba(255,255,255,.03); }
.client-health-row strong { color: var(--ink); }
.client-health-row span { color: var(--muted); font-size: 13px; }
.signal-meter { height: 10px; border-radius: 999px; overflow: hidden; background: rgba(255,255,255,.08); }
.signal-meter span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ef637e, #f3bd63, #35b9a8); }
.client-offline-badge{height:44px;border:1px dashed rgba(148,163,184,.28);border-radius:12px;background:rgba(15,23,42,.28);display:grid;place-items:center;text-align:center;color:#94a3b8}.client-offline-badge strong{font-size:13px;color:#cbd5e1}.client-offline-badge span{font-size:11px;color:#94a3b8}.client-health-row[data-status="offline"] .signal-meter{display:none}
.client-wired-badge{min-height:44px;border:1px solid rgba(82,211,216,.32);border-radius:12px;background:linear-gradient(135deg,rgba(45,212,191,.16),rgba(15,23,42,.26));display:flex;align-items:center;justify-content:center;gap:9px;color:#bffcff;text-align:center;font-weight:800;letter-spacing:.02em}.client-wired-badge strong{font-size:14px;color:#e7ffff}.client-wired-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:rgba(82,211,216,.18);border:1px solid rgba(82,211,216,.34);color:#5eead4;font-size:14px;line-height:1}.client-health-row .client-wired-badge span{color:#5eead4;font-size:14px}
.client-health-meta { text-align: right; }
.client-health-meta strong, .client-health-meta span { display: block; }
@media (max-width: 760px) { .client-tabbar { width: 100%; } .client-health-row { grid-template-columns: 1fr; } .client-health-meta { text-align: left; } }


/* WAN clarity + safe Wi-Fi operator options */
.wan-card { background: linear-gradient(180deg, rgba(53,185,168,.06), rgba(255,255,255,.03)); }
.wan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.wan-grid div { border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 14px; background: rgba(255,255,255,.03); min-width: 0; }
.wan-grid small { color: var(--muted); margin: 0 0 7px; }
.wan-grid strong { display: block; color: var(--ink); font-size: 17px; overflow-wrap: anywhere; }
.wan-grid em { display: block; color: var(--dim); font-size: 12px; font-style: normal; margin-top: 5px; overflow-wrap: anywhere; }
.wifi-advanced-notes { border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.025); padding: 0; overflow: hidden; }
.wifi-advanced-notes summary { cursor: pointer; color: var(--teal2); font-weight: 590; padding: 11px 12px; list-style: none; }
.wifi-advanced-notes summary::-webkit-details-marker { display: none; }
.wifi-advanced-notes div { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 12px 12px; }
.wifi-advanced-notes span { border: 1px solid rgba(255,255,255,.08); border-radius: 999px; padding: 6px 9px; color: var(--muted); background: rgba(255,255,255,.025); font-size: 12px; }
@media (max-width: 900px) { .wan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wan-grid { grid-template-columns: 1fr; } }

.operator-console { margin-top: 0; }
.client-topline.compact { padding-bottom: 6px; }
.operator-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.operator-wan-grid div em { display:block; color: var(--dim); font-size: 12px; margin-top: 4px; font-style: normal; }
.rich-client-row { grid-template-columns: minmax(260px, 1.25fr) minmax(160px, .8fr) minmax(260px, 1fr); }
.client-main span { display:block; color: var(--muted); margin-top: 4px; overflow-wrap:anywhere; }
.operator-notes { margin-top: 16px; }
.firmware-customer-card .upload-box { margin-top: 0; }
@media (max-width: 1120px) { .operator-stats { grid-template-columns: repeat(2, minmax(0,1fr)); } .rich-client-row { grid-template-columns: 1fr; } }
@media (max-width: 650px) { .operator-stats { grid-template-columns: 1fr; } }

.device-product-card{width:230px;min-width:230px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));box-shadow:var(--shadow),var(--inner);padding:12px;text-align:center}.page-shell>main{width:100%}.gateway-notice{width:min(100%,var(--portal-page-max,1180px));margin:12px auto 0}
.device-product-card img{display:block;width:100%;height:150px;object-fit:contain;border-radius:12px;background:transparent;filter:drop-shadow(0 18px 16px rgba(0,0,0,.28));padding:0 10px}
.device-product-card span{display:block;margin-top:8px;color:var(--muted);font-size:13px;font-weight:600}
.wan-summary-stat strong{font-size:24px}
.wan-summary-stat em{overflow-wrap:anywhere}
@media(max-width:980px){.device-product-card{width:100%;max-width:260px;margin-top:18px}.device-product-card img{height:150px}}

/* WAN card readability overrides */
.wan-summary-stat{padding:17px 16px 15px}
.wan-summary-stat strong{font-size:23px;line-height:1.12;margin-bottom:8px}
.wan-summary-stat em{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;margin-top:5px}
.wan-summary-stat .mac-line{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11.5px;letter-spacing:.01em;color:var(--muted)}
.wan-summary-stat .nat-line{font-size:13px;letter-spacing:.01em;color:#c7d3df;font-weight:520}

.wifi-bulk-card{margin:0 0 18px;padding:16px;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:rgba(15,23,42,.62);display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,360px) auto;gap:14px;align-items:end}.wifi-bulk-card strong{display:block;color:#e5edf6;margin-bottom:4px}.wifi-bulk-card span{display:block;color:#94a3b8;font-size:13px;line-height:1.35}.wifi-busy-overlay{position:fixed;inset:0;z-index:1000;background:rgba(2,6,23,.58);backdrop-filter:blur(5px);display:grid;place-items:center}.wifi-busy-overlay[hidden]{display:none}.wifi-busy-box{min-width:280px;max-width:420px;padding:24px;border:1px solid rgba(96,165,250,.28);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.96),rgba(30,41,59,.94));box-shadow:0 22px 70px rgba(0,0,0,.42);text-align:center;color:#e5edf6}.wifi-busy-box strong{display:block;margin:12px 0 6px;font-size:17px}.wifi-busy-box span{color:#aab7c7;font-size:13px}.wifi-spinner{width:42px;height:42px;margin:0 auto;border:4px solid rgba(148,163,184,.22);border-top-color:#38bdf8;border-radius:999px;animation:wifiSpin .85s linear infinite}@keyframes wifiSpin{to{transform:rotate(360deg)}}@media(max-width:820px){.wifi-bulk-card{grid-template-columns:1fr}}

.wifi-busy-logo{display:block;height:34px;width:auto;margin:0 auto 14px;object-fit:contain}.wifi-spinner.complete{border-color:rgba(34,197,94,.32);border-top-color:#22c55e;animation:none;position:relative}.wifi-spinner.complete:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#86efac;font-weight:800;font-size:23px}.wifi-busy-overlay[data-state="error"] .wifi-spinner{border-top-color:#f87171}

.portal-busy-overlay{position:fixed;inset:0;z-index:1100;background:rgba(2,6,23,.58);backdrop-filter:blur(5px);display:grid;place-items:center}.portal-busy-overlay[hidden]{display:none}.portal-busy-box{min-width:280px;max-width:420px;padding:24px;border:1px solid rgba(96,165,250,.28);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.96),rgba(30,41,59,.94));box-shadow:0 22px 70px rgba(0,0,0,.42);text-align:center;color:#e5edf6}.portal-busy-logo{display:block;height:34px;width:auto;margin:0 auto 14px;object-fit:contain}.portal-busy-box strong{display:block;margin:12px 0 6px;font-size:17px}.portal-busy-box span{color:#aab7c7;font-size:13px}.portal-busy-box small{display:block;margin-top:8px;color:#7dd3fc;font-size:12px}.portal-spinner{width:42px;height:42px;margin:0 auto;border:4px solid rgba(148,163,184,.22);border-top-color:#38bdf8;border-radius:999px;animation:wifiSpin .85s linear infinite}.portal-spinner.complete{border-color:rgba(34,197,94,.32);border-top-color:#22c55e;animation:none;position:relative}.portal-spinner.complete:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#86efac;font-weight:800;font-size:23px}.portal-busy-overlay[data-state="error"] .portal-spinner{border-top-color:#f87171}.portal-progress-shell{height:10px;margin:16px auto 0;background:rgba(255,255,255,.08);border:1px solid rgba(125,211,252,.22);border-radius:999px;overflow:hidden;max-width:330px}.portal-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#2dd4bf,#38bdf8,#5eead4);border-radius:999px;transition:width .32s ease;box-shadow:0 0 18px rgba(45,212,191,.38)}

.wifi-advanced-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:16px;margin:0 0 18px}.wifi-advanced-card{padding:16px;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:rgba(15,23,42,.5)}.wifi-band-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(140px,190px) minmax(120px,160px) auto;gap:12px;align-items:end;padding:12px 0;border-top:1px solid rgba(148,163,184,.12)}.wifi-band-form:first-of-type{border-top:0}.wifi-band-head strong{display:block;color:#e5edf6}.wifi-band-head span{display:block;color:#94a3b8;font-size:12px;line-height:1.35}.wifi-band-form label{font-size:12px;color:#94a3b8}.wifi-band-form select,.wifi-band-form input[type="text"],.wifi-band-form input:not([type]){width:100%}@media(max-width:980px){.wifi-advanced-grid{grid-template-columns:1fr}.wifi-band-form{grid-template-columns:1fr}}

/* Wi-Fi advanced controls layout cleanup */
.wifi-advanced-panel{margin-top:18px;padding:0!important;border:1px solid rgba(45,212,191,.22)!important;border-radius:16px!important;background:rgba(15,23,42,.34)!important;overflow:hidden}.wifi-advanced-panel>summary{cursor:pointer;list-style:none;padding:14px 16px;display:flex;justify-content:space-between;gap:14px;align-items:center;color:#5eead4}.wifi-advanced-panel>summary::-webkit-details-marker{display:none}.wifi-advanced-panel>summary span{font-weight:700;letter-spacing:.02em}.wifi-advanced-panel>summary em{font-style:normal;color:#94a3b8;font-size:12px}.wifi-advanced-panel[open]>summary{border-bottom:1px solid rgba(148,163,184,.14)}.wifi-advanced-grid.compact{display:grid;grid-template-columns:1fr;gap:12px;margin:12px 14px}.wifi-advanced-grid.compact .wifi-advanced-card{padding:14px;border-radius:14px;background:rgba(2,6,23,.22);max-width:100%;overflow:hidden}.wifi-advanced-grid.compact .wifi-advanced-card h3{font-size:17px;margin:2px 0 6px}.wifi-advanced-grid.compact .client-help{font-size:12.5px;max-width:760px}.wifi-advanced-footnote{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 14px}.wifi-advanced-footnote span{font-size:12px;color:#94a3b8;border:1px solid rgba(148,163,184,.12);border-radius:999px;padding:6px 9px;background:rgba(15,23,42,.32)}.wifi-radio-card-shell{display:grid;gap:14px}.wifi-radio-control-list{display:grid;gap:14px;margin-top:12px}.wifi-radio-card{display:grid;gap:12px;padding:14px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(15,23,42,.42)}.wifi-radio-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.wifi-radio-card-head strong{display:block;color:#e5edf6;font-size:18px}.wifi-radio-card-head span{display:block;color:#94a3b8;font-size:12px;line-height:1.35}.wifi-radio-toggle-row{display:flex;flex-wrap:wrap;gap:14px 20px;padding:10px 0;border-top:1px solid rgba(148,163,184,.10);border-bottom:1px solid rgba(148,163,184,.10)}.wifi-radio-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}.wifi-radio-settings-grid label,.wifi-radio-channel-select{font-size:12px;color:#94a3b8}.wifi-radio-settings-grid select,.wifi-radio-channel-select select{width:100%}.wifi-radio-channel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.wifi-radio-channel-select{display:grid;gap:7px;padding:12px;border:1px solid rgba(56,189,248,.16);border-radius:13px;background:rgba(2,6,23,.22)}.wifi-radio-channel-select strong{display:block;color:#dff7ff;font-size:13px}.wifi-radio-channel-select small{display:block;color:#7f8ea3;font-size:11px}.wifi-channel-picker{margin:0;padding:12px;border:1px solid rgba(56,189,248,.18);border-radius:14px;background:rgba(2,6,23,.22);min-width:0}.wifi-channel-picker legend{padding:0 6px;color:#dff7ff;font-size:13px;font-weight:800}.wifi-channel-picker legend small{display:block;color:#7f8ea3;font-size:11px;font-weight:600;margin-top:2px}.wifi-channel-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.wifi-channel-option input{position:absolute;opacity:0;pointer-events:none}.wifi-channel-option span{display:inline-grid;place-items:center;min-width:42px;padding:7px 10px;border:1px solid rgba(148,163,184,.20);border-radius:10px;background:rgba(15,23,42,.56);color:#dbeafe;font-weight:800;cursor:pointer}.wifi-channel-option input:checked+span{border-color:rgba(45,212,191,.75);background:linear-gradient(135deg,rgba(45,212,191,.30),rgba(56,189,248,.14));color:#ecfeff;box-shadow:0 0 0 1px rgba(45,212,191,.18)}.wifi-channel-option span:hover{border-color:rgba(125,211,252,.55)}.wifi-radio-hint{margin:0;color:#7dd3fc;font-size:12px;line-height:1.35}.wifi-radio-card .btn{white-space:nowrap}@media(max-width:980px){.wifi-advanced-panel>summary{align-items:flex-start;flex-direction:column}.wifi-radio-card-head{flex-direction:column}.wifi-radio-card-head .btn{width:100%}.wifi-radio-settings-grid{grid-template-columns:1fr}}

.wifi-guest-status-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 16px;padding:12px 14px;border:1px solid rgba(45,212,191,.18);border-radius:16px;background:linear-gradient(135deg,rgba(20,184,166,.12),rgba(15,23,42,.42))}.wifi-guest-status-card small{display:block;color:#5eead4;text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:700}.wifi-guest-status-card strong{display:block;color:#e5edf6;font-size:16px;margin:2px 0}.wifi-guest-status-card span{display:block;color:#9fb0c3;font-size:12.5px}@media(max-width:720px){.wifi-guest-status-card{align-items:flex-start;flex-direction:column}.wifi-guest-status-card .btn{width:100%}}

.password-eye-wrap{display:flex;align-items:center;gap:6px}.password-eye-wrap input{flex:1;min-width:0}.password-eye{height:38px;min-width:40px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:rgba(15,23,42,.55);color:#d9e4f2;cursor:pointer}.password-eye:hover{border-color:rgba(45,212,191,.5);color:#5eead4}

/* Wi-Fi refresh + guest cleanup */
.wifi-refresh-form{margin:0;align-self:flex-start}.wifi-refresh-form .btn{white-space:nowrap}.wifi-guest-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.wifi-guest-card-head h3{margin:2px 0 0!important}.wifi-guest-pills{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.wifi-guest-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(190px,270px) minmax(210px,.8fr) minmax(120px,160px);gap:12px;align-items:end;padding-top:12px;border-top:1px solid rgba(148,163,184,.12)}.wifi-guest-form label{font-size:12px;color:#94a3b8}.wifi-guest-form input:not([type]){width:100%}.wifi-guest-switches{display:grid;gap:8px;align-self:center}.wifi-guest-switches .switch-row{margin:0}.muted-text{color:#64748b;font-size:11px}@media(max-width:980px){.wifi-guest-card-head{flex-direction:column}.wifi-guest-pills{justify-content:flex-start}.wifi-guest-form{grid-template-columns:1fr}.wifi-refresh-form{width:100%}.wifi-refresh-form .btn{width:100%}}

/* Overview status cards */
.overview-action-row{display:flex;justify-content:flex-end;margin:-2px 0 2px}.overview-refresh-form{margin:0}.gateway-stat.good{border-color:rgba(59,209,127,.25)}.gateway-stat .current-uptime-line{color:var(--ink);font-weight:800;font-size:13px;letter-spacing:.01em}.gateway-stat.offline{border-color:rgba(239,99,126,.35);background:rgba(239,99,126,.07)}.client-status-dot.online{background:var(--green);animation:statusPulseGreen 1.55s ease-out infinite}.client-status-dot.offline{background:var(--danger);box-shadow:0 0 0 5px rgba(239,99,126,.12);animation:statusPulseRed 1.55s ease-out infinite}@keyframes statusPulseGreen{0%{box-shadow:0 0 0 0 rgba(59,209,127,.45)}70%{box-shadow:0 0 0 10px rgba(59,209,127,0)}100%{box-shadow:0 0 0 0 rgba(59,209,127,0)}}@keyframes statusPulseRed{0%{box-shadow:0 0 0 0 rgba(239,99,126,.48)}70%{box-shadow:0 0 0 10px rgba(239,99,126,0)}100%{box-shadow:0 0 0 0 rgba(239,99,126,0)}}.latency-stat{overflow:hidden}.latency-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:rgba(148,163,184,.55)}.latency-green:before{background:var(--green)}.latency-yellow:before{background:#facc15}.latency-orange:before{background:#fb923c}.latency-red:before{background:var(--danger)}.latency-muted:before{background:rgba(148,163,184,.45)}.latency-green{border-color:rgba(59,209,127,.25)}.latency-yellow{border-color:rgba(250,204,21,.30)}.latency-orange{border-color:rgba(251,146,60,.34)}.latency-red{border-color:rgba(239,99,126,.36)}@media(max-width:650px){.overview-action-row{justify-content:stretch}.overview-refresh-form,.overview-refresh-form .btn{width:100%}}

/* Client history polish */
.client-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 12px}
.client-filter-pill{border:1px solid rgba(56,189,248,.28);border-radius:10px;background:rgba(56,189,248,.12);color:#d9f7ff;font-weight:700;padding:8px 13px;cursor:pointer}
.client-filter-pill.active,.client-filter-pill:hover{background:linear-gradient(90deg,#35b9a8,#5fb6df);color:#06111a;border-color:transparent}
.client-filter-row .small{margin-left:2px}
.client-health-row{transition:border-color .15s ease,transform .15s ease,background .15s ease}
.client-health-row:hover{border-color:rgba(56,189,248,.34);background:rgba(56,189,248,.055);transform:translateY(-1px)}
.client-health-meta span,.client-health-meta small{overflow-wrap:anywhere}
.client-health-meta small{display:block;color:var(--dim);font-size:12px;margin-top:3px}
.task-list.compact .task-card span{white-space:normal;overflow-wrap:anywhere}
.client-overview-link{text-decoration:none;color:inherit}.client-overview-link:hover{border-color:rgba(56,189,248,.34);background:rgba(56,189,248,.055)}
.client-detail-page{max-width:1120px;margin:22px auto;display:grid;gap:18px}.client-detail-hero{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;padding:24px;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:linear-gradient(135deg,rgba(53,185,168,.12),rgba(15,23,42,.58));box-shadow:var(--inner)}.client-detail-hero.offline{background:linear-gradient(135deg,rgba(239,99,126,.10),rgba(15,23,42,.58))}.client-detail-hero h1{margin:8px 0;color:var(--ink);font-size:34px;line-height:1.05}.client-detail-hero p{margin:0;color:var(--muted);overflow-wrap:anywhere}.client-detail-status{text-align:right;display:grid;gap:7px;justify-items:end}.status-pill{display:inline-flex;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.status-pill.online{background:rgba(59,209,127,.15);color:#86efac;border:1px solid rgba(59,209,127,.28)}.status-pill.offline{background:rgba(239,99,126,.14);color:#fca5b5;border:1px solid rgba(239,99,126,.30)}.client-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.client-detail-grid.lower{grid-template-columns:1.05fr .95fr}.client-detail-card{min-width:0;padding:22px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.035);box-shadow:var(--inner)}.client-detail-list.wide{grid-template-columns:150px 1fr}.stale-note{margin:14px 0 0;color:#94a3b8;border-top:1px solid rgba(148,163,184,.12);padding-top:12px}.client-detail-card .muted{color:#94a3b8}
.timeline-list,.session-list{display:grid;gap:10px}.timeline-event{display:grid;grid-template-columns:18px 1fr;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.075);border-radius:12px;background:rgba(255,255,255,.028)}.timeline-event>span{width:10px;height:10px;border-radius:999px;background:var(--teal2);margin-top:5px;box-shadow:0 0 0 5px rgba(99,214,201,.12)}.timeline-event.disconnected>span{background:var(--danger);box-shadow:0 0 0 5px rgba(239,99,126,.12)}.timeline-event strong,.session-row strong{display:block;color:var(--ink)}.timeline-event p{margin:3px 0;color:var(--muted)}.timeline-event small,.session-row small,.session-row span{display:block;color:var(--dim);font-size:12px;overflow-wrap:anywhere}.session-row{padding:12px;border:1px solid rgba(255,255,255,.075);border-radius:12px;background:rgba(255,255,255,.028)}@media(max-width:820px){.client-detail-hero{align-items:flex-start;flex-direction:column}.client-detail-status{text-align:left;justify-items:start}.client-detail-grid,.client-detail-grid.lower{grid-template-columns:1fr}}


/* Client detail redesign: lifecycle, usage, fingerprinting, and visible disconnect state */
.inline-refresh-form{margin-top:12px}.inline-refresh-form .secondary{width:100%;justify-content:center}.status-pill.disconnect-pulse{background:rgba(239,99,126,.18);border-color:rgba(239,99,126,.62);color:#ffd7de;box-shadow:0 0 0 0 rgba(239,99,126,.45),0 0 22px rgba(239,99,126,.22);animation:disconnectPulse 2.4s ease-in-out infinite}@keyframes disconnectPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,99,126,.38),0 0 18px rgba(239,99,126,.18)}50%{box-shadow:0 0 0 7px rgba(239,99,126,.08),0 0 30px rgba(239,99,126,.34)}}
.fingerprint-chip{display:inline-flex;align-items:center;gap:10px;margin-top:12px;padding:9px 12px;border:1px solid var(--line);background:rgba(255,255,255,.055);border-radius:999px}.fingerprint-chip small{color:var(--muted)}.fingerprint-logo{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:rgba(99,214,201,.12);color:#fff;font-weight:800}.fingerprint-large{display:flex;gap:14px;align-items:center;margin:8px 0 16px}.fingerprint-large>span{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,rgba(99,214,201,.18),rgba(106,168,232,.14));border:1px solid var(--line);color:#fff;font-size:24px;font-weight:850}.fingerprint-large strong,.fingerprint-large small{display:block}.fingerprint-large small{color:var(--muted);margin-top:4px}.usage-total{margin:8px 0 16px;padding:16px;border:1px solid rgba(99,214,201,.24);background:rgba(99,214,201,.075);border-radius:16px}.usage-total strong{display:block;color:#fff;font-size:1.7rem}.usage-total span{color:var(--muted);font-size:13px}.wide-card{grid-column:span 2}.range-pills{display:flex;gap:7px;flex-wrap:wrap}.range-pills span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;background:rgba(255,255,255,.04)}.history-bar{display:flex;gap:5px;align-items:center;min-height:34px;margin:12px 0 10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.04)}.history-segment{height:16px;min-width:22px;flex:1;border-radius:999px;background:rgba(255,255,255,.10)}.history-segment.connected{background:linear-gradient(90deg,rgba(59,209,127,.8),rgba(99,214,201,.72))}.history-segment.disconnected{background:linear-gradient(90deg,rgba(239,99,126,.95),rgba(242,139,92,.88));flex:.5}.history-segment.empty{background:rgba(255,255,255,.12);min-width:100%}.timeline-list.compact{max-height:360px;overflow:auto;padding-right:4px}@media(max-width:980px){.wide-card{grid-column:span 1}.fingerprint-chip{border-radius:16px;align-items:flex-start}.client-detail-grid{grid-template-columns:1fr}}


/* Scalable clients list */
.client-scale-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,220px) auto;gap:10px;align-items:end;margin:10px 0 12px}.client-scale-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.client-scale-toolbar input,.client-scale-toolbar select{width:100%;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.045);color:var(--ink);padding:10px 12px;outline:none}.client-scale-toolbar input:focus,.client-scale-toolbar select:focus{border-color:rgba(99,214,201,.45);box-shadow:0 0 0 3px rgba(99,214,201,.08)}.scalable-client-list{max-height:680px;overflow:auto;padding-right:4px;scrollbar-color:rgba(99,214,201,.45) rgba(255,255,255,.04)}.compact-client-row{grid-template-columns:minmax(280px,1.35fr) minmax(130px,.55fr) minmax(230px,.85fr);padding:10px 14px}.compact-client-row .client-main strong{font-size:15px}.compact-client-row .client-main span,.compact-client-row .client-health-meta span{font-size:12px}.compact-client-row .signal-meter{height:10px}.compact-client-row .client-offline-badge{height:38px}.client-list-footer{display:flex;justify-content:center;margin-top:12px}@media(max-width:900px){.client-scale-toolbar{grid-template-columns:1fr}.compact-client-row{grid-template-columns:1fr}.scalable-client-list{max-height:none}}


/* Device fingerprint icons */
.device-icon{display:inline-flex;align-items:center;gap:5px;color:#cbd5e1;vertical-align:middle}.device-icon img{width:15px;height:15px;display:inline-block}.fingerprint-logo img,.fingerprint-large img{max-width:70%;max-height:70%;display:block}.fingerprint-chip .fingerprint-logo{overflow:hidden}.fingerprint-large>span{overflow:hidden}


/* Public footer + overview polish */
.public-footer{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;padding:26px 0 10px;border-top:1px solid rgba(148,163,184,.12);margin-top:28px}.mini-action-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:7px 10px;border-radius:999px;border:1px solid rgba(99,214,201,.28);background:rgba(99,214,201,.10);color:#d8fffb;text-decoration:none;font-size:12px;font-weight:800}.overview-clients-card .client-card-head{align-items:start}.overview-client-counts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;letter-spacing:.02em;border:1px solid rgba(148,163,184,.22);background:rgba(148,163,184,.10);color:#cbd5e1}.status-pill.online{background:rgba(59,209,127,.14);border-color:rgba(59,209,127,.34);color:#9ff0bd}.status-pill.offline{background:rgba(239,99,126,.13);border-color:rgba(239,99,126,.36);color:#ffb4c3}.overview-client-list{max-height:330px;overflow:auto;padding-right:3px}.compact-overview-client{grid-template-columns:minmax(0,1fr) auto;gap:10px}.overview-client-meta{align-items:flex-end;gap:6px}.signal-pill{--signal:50%;position:relative;overflow:hidden;display:inline-flex;min-width:76px;justify-content:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;color:#eafaf8;border:1px solid rgba(99,214,201,.24);background:rgba(15,23,42,.7)}.signal-pill:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--signal);background:linear-gradient(90deg,#ef637e,#f3bd63,#35b9a8);opacity:.48}.signal-pill{isolation:isolate}.signal-pill *,.signal-pill{z-index:1}.signal-pill.unknown,.signal-pill.offline{color:#94a3b8;border-color:rgba(148,163,184,.2)}.signal-pill.unknown:before,.signal-pill.offline:before{display:none}.client-overview-more{cursor:pointer;color:#9eece4;justify-content:center;text-align:center}.latency-panel{max-width:980px;margin:0 auto}.latency-hero-card small{color:var(--muted)}.latency-chart{display:grid;gap:14px;margin:12px 0 18px}.latency-bar-row{display:grid;grid-template-columns:70px 80px 1fr;gap:12px;align-items:center}.latency-bar-row span{color:var(--muted);font-weight:800}.latency-bar-row strong{font-family:'JetBrains Mono',monospace}.latency-bar-row div{height:14px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.latency-bar-row i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#35b9a8,#f3bd63,#ef637e)}.latency-bar-row.primary div{height:20px}.latency-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.latency-meta-grid>div{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(255,255,255,.035)}.latency-meta-grid small{display:block;color:var(--muted)}
@media(max-width:760px){.compact-overview-client{grid-template-columns:1fr}.overview-client-meta{align-items:flex-start}.latency-bar-row{grid-template-columns:1fr}.latency-meta-grid{grid-template-columns:1fr}}


/* compact footer and quality color corrections */
.public-footer{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;align-items:center;color:rgba(166,180,195,.78);font-size:11px;line-height:1.2;padding:8px 0;border-top:1px solid rgba(148,163,184,.08);margin-top:8px;min-height:30px}.public-footer span+span:before{content:"•";margin-right:10px;color:rgba(166,180,195,.45)}
.signal-meter[data-quality="good"] span{background:linear-gradient(90deg,#2fcf7e,#35d986)}.signal-meter[data-quality="fair"] span{background:linear-gradient(90deg,#f3bd63,#facc15)}.signal-meter[data-quality="poor"] span{background:linear-gradient(90deg,#ef637e,#fb923c)}
.signal-pill[data-quality="good"]{border-color:rgba(59,209,127,.34);color:#b8ffd0}.signal-pill[data-quality="fair"]{border-color:rgba(243,189,99,.38);color:#ffe3a3}.signal-pill[data-quality="poor"]{border-color:rgba(239,99,126,.42);color:#ffd1da}.signal-pill[data-quality="good"]:before{background:linear-gradient(90deg,#2fcf7e,#35d986)}.signal-pill[data-quality="fair"]:before{background:linear-gradient(90deg,#f3bd63,#facc15)}.signal-pill[data-quality="poor"]:before{background:linear-gradient(90deg,#ef637e,#fb923c)}
.overview-inline-connection{display:inline-flex;align-items:center;gap:4px;vertical-align:-2px}.overview-inline-ethernet{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:#9aa8b6;vertical-align:-2px}.overview-inline-ethernet svg{display:block;width:14px;height:14px;fill:currentColor}
.latency-hero-card.latency-green{background:rgba(59,209,127,.13);border-color:rgba(59,209,127,.38);box-shadow:0 0 34px rgba(59,209,127,.12)}.latency-hero-card.latency-yellow{background:rgba(250,204,21,.12);border-color:rgba(250,204,21,.38)}.latency-hero-card.latency-orange{background:rgba(251,146,60,.13);border-color:rgba(251,146,60,.42)}.latency-hero-card.latency-red{background:rgba(239,99,126,.13);border-color:rgba(239,99,126,.44)}
.latency-ping-form{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px;align-items:end;margin:0 0 18px}.latency-ping-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.latency-ping-form input{border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.045);color:var(--ink);padding:10px 12px;outline:none}.latency-ping-form input:focus{border-color:rgba(99,214,201,.45);box-shadow:0 0 0 3px rgba(99,214,201,.08)}
.latency-bar-row.latency-green i{background:linear-gradient(90deg,#2fcf7e,#35d986)}.latency-bar-row.latency-yellow i{background:linear-gradient(90deg,#f3bd63,#facc15)}.latency-bar-row.latency-orange i{background:linear-gradient(90deg,#f59e0b,#fb923c)}.latency-bar-row.latency-red i{background:linear-gradient(90deg,#ef637e,#fb7185)}
@media(max-width:760px){.latency-ping-form{grid-template-columns:1fr}.public-footer{font-size:10px;padding:7px 10px}}

/* SHIFT cloud latency history and separated troubleshooting */
.latency-history-graph{min-height:190px;display:flex;align-items:end;gap:4px;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.025));margin:0 0 18px;overflow:hidden}.latency-history-graph>span{display:block;flex:1;min-width:5px;border-radius:7px 7px 0 0;background:rgba(148,163,184,.35)}.latency-history-graph>span.latency-green{background:linear-gradient(180deg,#35d986,#2fcf7e)}.latency-history-graph>span.latency-yellow{background:linear-gradient(180deg,#facc15,#f3bd63)}.latency-history-graph>span.latency-orange{background:linear-gradient(180deg,#fb923c,#f59e0b)}.latency-history-graph>span.latency-red{background:linear-gradient(180deg,#fb7185,#ef637e)}.troubleshoot-panel{margin-top:18px}.latency-diagnostic-result{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:12px 0;background:rgba(255,255,255,.04)}.latency-diagnostic-result small,.latency-diagnostic-result span{display:block;color:var(--muted)}.latency-diagnostic-result strong{display:block;color:#fff;font-size:20px;margin:4px 0}.latency-diagnostic-result.latency-green{border-color:rgba(59,209,127,.32);background:rgba(59,209,127,.08)}.latency-diagnostic-result.latency-yellow{border-color:rgba(250,204,21,.34);background:rgba(250,204,21,.08)}.latency-diagnostic-result.latency-orange{border-color:rgba(251,146,60,.38);background:rgba(251,146,60,.08)}.latency-diagnostic-result.latency-red{border-color:rgba(239,99,126,.42);background:rgba(239,99,126,.09)}


/* Latency history + troubleshooting polish v4 */
.public-footer{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;align-items:center;color:rgba(166,180,195,.82);font-size:11px;line-height:1.25;padding:8px 10px;border-top:1px solid rgba(148,163,184,.08);margin-top:8px;min-height:32px}.public-footer span{display:inline-flex;align-items:center;gap:6px}.public-footer span+span:before{content:"•";margin-right:4px;color:rgba(166,180,195,.42)}.public-footer a{color:rgba(220,232,238,.9);text-decoration:none}.public-footer a:hover{color:#d8fffb}.footer-fish-icon{height:7px;width:auto;opacity:.68;vertical-align:middle;filter:none}
.latency-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 16px}.latency-kpi{border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.04);padding:14px 16px;box-shadow:var(--inner)}.latency-kpi small{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.latency-kpi strong{display:block;color:var(--ink);font-size:22px;margin:5px 0 3px}.latency-kpi span{color:var(--muted);font-size:12px}.latency-kpi.latency-green{border-color:rgba(59,209,127,.32);background:rgba(59,209,127,.075)}.latency-kpi.latency-yellow{border-color:rgba(250,204,21,.34);background:rgba(250,204,21,.075)}.latency-kpi.latency-orange{border-color:rgba(251,146,60,.38);background:rgba(251,146,60,.08)}.latency-kpi.latency-red{border-color:rgba(239,99,126,.42);background:rgba(239,99,126,.085)}
.latency-sample-strip{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.025));padding:14px 16px;margin-top:4px}.latency-sample-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.latency-sample-head strong{color:var(--ink)}.latency-sample-head span{color:var(--muted);font-size:12px}.latency-sample-list{display:flex;gap:8px;flex-wrap:wrap}.latency-sample-pill{display:inline-flex;flex-direction:column;gap:2px;min-width:82px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:rgba(255,255,255,.035)}.latency-sample-pill b{color:var(--ink);font-size:14px}.latency-sample-pill em{font-style:normal;color:var(--muted);font-size:10px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.latency-sample-pill.latency-green{border-color:rgba(59,209,127,.28);background:rgba(59,209,127,.07)}.latency-sample-pill.latency-yellow{border-color:rgba(250,204,21,.28);background:rgba(250,204,21,.07)}.latency-sample-pill.latency-orange{border-color:rgba(251,146,60,.32);background:rgba(251,146,60,.075)}.latency-sample-pill.latency-red{border-color:rgba(239,99,126,.36);background:rgba(239,99,126,.08)}
.latency-history-graph{display:none}.latency-chart{display:none}.latency-bar-row.primary{background:transparent}.latency-diagnostic-result{border:1px solid var(--line);border-radius:15px;padding:14px 16px;margin:12px 0;background:rgba(255,255,255,.04)}.latency-diagnostic-result strong{display:block;color:#fff;font-size:20px;margin:4px 0}.latency-diagnostic-result small,.latency-diagnostic-result span{display:block;color:var(--muted)}.diagnostic-metrics{margin-top:12px}.diagnostic-metrics>div{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:12px;padding:11px 12px}.diagnostic-metrics>div small{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.diagnostic-metrics>div strong{font-size:18px;margin:2px 0 0}.diagnostic-metrics>div.latency-green{border-color:rgba(59,209,127,.34);background:rgba(59,209,127,.075)}.diagnostic-metrics>div.latency-yellow{border-color:rgba(250,204,21,.36);background:rgba(250,204,21,.08)}.diagnostic-metrics>div.latency-orange{border-color:rgba(251,146,60,.4);background:rgba(251,146,60,.085)}.diagnostic-metrics>div.latency-red{border-color:rgba(239,99,126,.46);background:rgba(239,99,126,.095)}
@media(max-width:900px){.latency-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.latency-summary-grid{grid-template-columns:1fr}.latency-sample-head{align-items:flex-start;flex-direction:column}.public-footer{font-size:10px;padding:7px 10px}}
.latency-rrd-wrap{position:relative;overflow:hidden;border:1px solid rgba(99,214,201,.22);border-radius:22px;background:radial-gradient(circle at top left,rgba(34,197,94,.16),transparent 34%),linear-gradient(180deg,rgba(15,23,42,.96),rgba(2,6,23,.96));padding:16px 18px 12px;margin:6px 0 16px;box-shadow:0 18px 50px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.06)}.latency-rrd-wrap:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(99,214,201,.08),transparent 42%,rgba(74,222,128,.07));pointer-events:none}.latency-line-graph{position:relative;z-index:1;display:block;width:100%;height:276px;overflow:visible;background:linear-gradient(180deg,rgba(15,23,42,.48),rgba(2,6,23,.22));border:1px solid rgba(148,163,184,.16);border-radius:18px;cursor:crosshair;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.latency-grid-line{stroke:rgba(148,163,184,.18);stroke-width:1;stroke-dasharray:2 5}.latency-grid-line.vertical{stroke:rgba(99,214,201,.12)}.latency-y-label,.latency-x-label{fill:rgba(226,232,240,.78);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.latency-y-label{text-anchor:end}.latency-x-label{text-anchor:middle}.latency-fill-area{fill:url(#latency-fill);stroke:none}.latency-offline-gap,.signal-offline-gap{fill:rgba(239,99,126,.11);stroke:none}.latency-offline-boundary,.signal-offline-boundary{stroke:rgba(239,99,126,.72);stroke-width:1.6;stroke-dasharray:5 5}.latency-offline-label,.signal-offline-label{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.02em;fill:rgba(255,190,203,.9);paint-order:stroke;stroke:rgba(2,6,23,.9);stroke-width:3px}.latency-line-glow{fill:none;stroke:#22c55e;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.24}.latency-avg-line{fill:none;stroke:#86efac;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 14px rgba(74,222,128,.58))}.latency-dot{fill:#ecfdf5;stroke:#22c55e;stroke-width:1.5;filter:drop-shadow(0 0 10px rgba(74,222,128,.56))}.latency-zoom-selection{fill:rgba(99,214,201,.2);stroke:#63d6c9;stroke-width:1.2}.graph-legend{position:relative;z-index:1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:rgba(226,232,240,.9);font-size:12px;margin-top:10px}.graph-legend span{display:inline-flex;align-items:center;gap:7px;font-weight:700}.graph-legend i{display:inline-block;width:18px;height:8px;border-radius:999px}.graph-legend i.avg{background:linear-gradient(90deg,#14b8a6,#86efac);box-shadow:0 0 16px rgba(74,222,128,.44)}.graph-legend i.min,.graph-legend i.max{display:none}.graph-legend em{margin-left:auto;color:rgba(203,213,225,.7);font-style:normal}.latency-range-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid rgba(99,214,201,.16);border-radius:18px;background:linear-gradient(180deg,rgba(15,23,42,.62),rgba(15,23,42,.36));padding:11px 12px;margin:0 0 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.range-pills{display:flex;gap:6px;flex-wrap:wrap}.range-pill{border:1px solid rgba(148,163,184,.16);border-radius:999px;padding:7px 11px;color:rgba(203,213,225,.82);text-decoration:none;background:rgba(255,255,255,.035);transition:all .15s ease}.range-pill.active,.range-pill:hover{color:#03211d;background:linear-gradient(135deg,#63d6c9,#86efac);border-color:transparent;box-shadow:0 8px 20px rgba(45,212,191,.2)}.latency-range-controls label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.latency-range-controls input{min-height:34px;padding:6px 8px;border-radius:10px;border:1px solid rgba(148,163,184,.2);background:rgba(15,23,42,.82);color:var(--ink)}.range-summary{color:rgba(203,213,225,.72);font-size:12px;white-space:nowrap}.custom-range-panel{margin-left:auto;position:relative}.custom-range-panel summary{list-style:none;cursor:pointer;border:1px solid rgba(148,163,184,.16);border-radius:999px;padding:7px 11px;color:rgba(203,213,225,.82);background:rgba(255,255,255,.035);font-size:12px}.custom-range-panel summary::-webkit-details-marker{display:none}.custom-range-panel[open] summary{color:#03211d;background:linear-gradient(135deg,#63d6c9,#86efac);border-color:transparent}.custom-range-panel form{position:absolute;right:0;top:calc(100% + 8px);z-index:10;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:520px;padding:12px;border:1px solid rgba(99,214,201,.22);border-radius:16px;background:rgba(2,6,23,.97);box-shadow:0 18px 44px rgba(0,0,0,.42)}@media(max-width:760px){.custom-range-panel{margin-left:0}.custom-range-panel form{position:static;min-width:0;margin-top:8px}.range-summary{white-space:normal}}
.graph-metric-grid a{text-decoration:none}.graph-metric-pill{transition:all .15s ease}.graph-metric-pill.active{border-color:rgba(99,214,201,.58);background:linear-gradient(135deg,rgba(99,214,201,.22),rgba(134,239,172,.14));box-shadow:0 0 0 1px rgba(99,214,201,.18),0 18px 40px rgba(20,184,166,.16)}.graph-metric-pill.active small,.graph-metric-pill.active strong{color:#eafff7}.graph-metric-pill:hover{transform:translateY(-1px);border-color:rgba(99,214,201,.38)}.latency-formula{display:flex;gap:10px;align-items:flex-start;border:1px solid rgba(99,214,201,.14);border-radius:16px;background:rgba(15,23,42,.34);padding:10px 12px;margin:-2px 0 14px;color:rgba(203,213,225,.78);font-size:12px}.latency-formula strong{color:#e2e8f0;white-space:nowrap}.latency-formula span{line-height:1.45}

/* Client detail live-source and signal history graph */
.current-connection-card{border-color:rgba(99,214,201,.22);background:linear-gradient(180deg,rgba(99,214,201,.075),rgba(255,255,255,.035))}.connection-now{display:grid;gap:4px;margin:8px 0 14px;padding:12px;border-radius:14px;border:1px solid rgba(99,214,201,.22);background:rgba(99,214,201,.08)}.connection-now strong{color:#d8fffb;font-size:18px}.connection-now span{color:var(--muted);line-height:1.45}.connection-now.offline{border-color:rgba(239,99,126,.24);background:rgba(239,99,126,.08)}.muted-usage-card{opacity:.92}.signal-history-card{grid-column:1/-1}.client-signal-graph{width:100%;height:auto;display:block;margin-top:12px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(180deg,rgba(7,12,20,.55),rgba(10,18,28,.34));padding:6px}.signal-axis{stroke:rgba(148,163,184,.25);stroke-width:1}.signal-axis-label{fill:rgba(203,213,225,.72);font-size:12px;font-weight:700}.signal-history-line{fill:none;stroke:#63d6c9;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgba(99,214,201,.45))}.signal-history-dot{stroke:#10202d;stroke-width:2;fill:#63d6c9}.signal-history-dot.good,.signal-history-dot.excellent{fill:#3bd17f}.signal-history-dot.fair{fill:#f3bd63}.signal-history-dot.weak,.signal-history-dot.poor{fill:#ef637e}.signal-graph-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;font-weight:800;margin-top:8px}

/* Client signal range + true time-scaled timeline */
.client-range-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0 10px}.client-range-row .range-pill{display:inline-flex;text-decoration:none;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:800;background:rgba(255,255,255,.04)}.client-range-row .range-pill.active,.client-range-row .range-pill:hover{border-color:rgba(99,214,201,.46);background:linear-gradient(90deg,rgba(53,185,168,.25),rgba(95,182,223,.18));color:#eaffff}.client-range-row .custom-range-panel{position:relative}.client-range-row .custom-range-panel summary{cursor:pointer;list-style:none;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:800;background:rgba(255,255,255,.04)}.client-range-row .custom-range-form{position:absolute;right:0;top:34px;z-index:4;display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;width:min(620px,calc(100vw - 56px));padding:12px;border:1px solid rgba(99,214,201,.22);border-radius:14px;background:#101923;box-shadow:0 20px 60px rgba(0,0,0,.45)}.client-range-row .custom-range-form label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.client-range-row .custom-range-form input{border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.055);color:var(--ink);padding:9px}.client-signal-wrap{position:relative}.signal-grid-line{stroke:rgba(148,163,184,.12);stroke-width:1;stroke-dasharray:3 6}.client-signal-zoom-selection{fill:rgba(99,214,201,.18);stroke:#63d6c9;stroke-width:1.2}.timeline-scale{position:relative;display:block;height:42px;padding:0;margin:12px 0 4px;overflow:hidden}.timeline-scale .history-segment{position:absolute;top:11px;height:18px;min-width:0;display:block;border-radius:999px;box-shadow:0 0 16px rgba(0,0,0,.18)}.timeline-scale .history-segment.connected{background:linear-gradient(90deg,#35d986,#63d6c9)}.timeline-scale .history-segment.disconnected{background:linear-gradient(90deg,#ef637e,#f28b5c)}.timeline-scale .history-segment.empty{left:0;width:100%;background:rgba(255,255,255,.12)}.timeline-axis-labels{position:relative;height:24px;margin:0 0 10px;color:rgba(203,213,225,.66);font-size:10px}.timeline-axis-labels>span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}.timeline-axis-labels>span:first-child{transform:none}.timeline-axis-labels>span:last-child{transform:translateX(-100%)}@media(max-width:760px){.client-range-row .custom-range-form{position:static;width:100%;grid-template-columns:1fr}.timeline-axis-labels{font-size:9px}}

/* Match client dBm graph to latency graph visual system */
.signal-rrd-wrap{margin-top:12px}.signal-rrd-wrap .client-signal-graph{position:relative;z-index:1;display:block;width:100%;height:276px;overflow:visible;background:linear-gradient(180deg,rgba(15,23,42,.48),rgba(2,6,23,.22));border:1px solid rgba(148,163,184,.16);border-radius:18px;cursor:crosshair;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);padding:0}.signal-fill-area{fill:url(#signal-fill)}.signal-rrd-wrap .latency-dot{fill:#ecfdf5;stroke:#22c55e;stroke-width:1.5;filter:drop-shadow(0 0 10px rgba(74,222,128,.56))}.timeline-legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 8px;color:var(--muted);font-size:12px;font-weight:800}.timeline-legend span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(148,163,184,.16);border-radius:999px;background:rgba(255,255,255,.035);padding:6px 9px}.timeline-legend .legend-connected:before,.timeline-legend .legend-disconnected:before{content:"";width:10px;height:10px;border-radius:999px;display:inline-block}.timeline-legend .legend-connected:before{background:#35d986}.timeline-legend .legend-disconnected:before{background:#ef637e}.timeline-scale .history-segment.disconnected{background:#ef637e}.timeline-scale .history-segment.connected{background:#35d986}

/* Admin client polling settings */
.settings-form{display:grid;gap:16px}.settings-form label{display:grid;gap:6px;color:#dbeafe}.settings-form input,.settings-form select{background:#0b1220;border:1px solid rgba(148,163,184,.28);border-radius:12px;color:#e5f2ff;padding:10px 12px}.checkbox-inline{display:inline-flex!important;grid-template-columns:auto 1fr;align-items:center;gap:8px}.checkbox-inline input{width:auto}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.device-tile{text-decoration:none;color:inherit}.notice{border:1px solid rgba(45,212,191,.35);background:rgba(20,184,166,.12);color:#ccfbf1;border-radius:14px;padding:12px 14px;margin:10px 0}

/* Theme unification overrides */
:root{--portal-radius-card:18px;--portal-radius-hero:22px;--portal-panel-bg:linear-gradient(180deg,rgba(34,48,64,.76),rgba(24,34,46,.82));--portal-card-bg:rgba(255,255,255,.04);--portal-card-border:rgba(255,255,255,.10);--portal-card-padding:22px;--portal-page-gap:18px;--portal-page-max:1180px}.dashboard-page,.admin-polling-panel,.client-detail-page,.client-page,.latency-page{width:min(100%,var(--portal-page-max));margin:22px auto 0;display:grid;gap:var(--portal-page-gap)}.theme-card,.panel,.feature-panel,.client-card,.client-detail-card,.summary-card,.view-card,.wifi-control-card,.firmware-library-panel,.firmware-upgrade-status,.firmware-upload-box,.device-tile{border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);box-shadow:var(--inner);padding:var(--portal-card-padding)}.hero,.client-detail-hero,.theme-hero{width:min(100%,var(--portal-page-max));margin:0 auto 18px;border:1px solid rgba(99,214,201,.16);border-radius:var(--portal-radius-hero);background:radial-gradient(circle at top left,rgba(53,185,168,.14),transparent 36%),linear-gradient(135deg,rgba(34,48,64,.78),rgba(20,29,40,.92));box-shadow:var(--shadow),var(--inner);padding:26px}.section-head{align-items:flex-start;margin-bottom:16px}.section-head h2,.client-card h3,.client-detail-card h3,.view-card h3,.firmware-library-panel h3,.firmware-upgrade-status h3{color:var(--ink);font-weight:650;letter-spacing:-.02em}.section-head h2{font-size:clamp(24px,2.4vw,32px);line-height:1.08;margin:0}.hero h1,.client-detail-hero h1{font-size:clamp(32px,4vw,46px);line-height:1.02;letter-spacing:-.04em}.eyebrow{color:var(--teal2);font-weight:800;letter-spacing:.12em;text-transform:uppercase}.muted,.client-help{color:var(--muted)}input,select,textarea{border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.62);color:var(--ink);padding:10px 12px}input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(99,214,201,.5);box-shadow:0 0 0 3px rgba(99,214,201,.10)}.table-wrap table{width:100%;border-collapse:separate;border-spacing:0}.table-wrap th{color:var(--teal2);font-size:11px;text-transform:uppercase;letter-spacing:.1em;text-align:left}.table-wrap td,.table-wrap th{padding:12px;border-bottom:1px solid rgba(148,163,184,.12)}.notice.danger-notice{border-color:rgba(239,99,126,.4);background:rgba(239,99,126,.12);color:#ffd1da}.login-page{min-height:calc(100vh - 190px);display:grid;place-items:center}.login-panel{width:min(100%,460px)}.login-form{margin-top:8px}.troubleshoot-panel{margin-top:18px}@media(max-width:760px){main{padding:20px}.theme-card,.panel,.feature-panel,.client-card,.client-detail-card,.summary-card,.view-card,.wifi-control-card,.firmware-library-panel,.firmware-upgrade-status,.firmware-upload-box,.device-tile{padding:18px}.hero,.client-detail-hero,.theme-hero{padding:20px}}

/* Customer tab variance close-out: all Overview/Wi-Fi/Clients/Firmware/Diagnostics/Actions panes share one grid rhythm. */
.client-tabs{--tab-panel-bg:var(--portal-card-bg);--tab-panel-border:var(--portal-card-border);--tab-panel-radius:var(--portal-radius-card);--tab-panel-pad:var(--portal-card-padding);align-items:stretch}.client-tabs>input[type=radio]{width:1px;height:1px;inset:auto auto auto 0;overflow:hidden}.client-tabbar{width:100%;background:rgba(15,23,42,.34);border-color:var(--tab-panel-border);border-radius:var(--tab-panel-radius);padding:8px;gap:8px}.client-tabbar label{flex:1;min-width:112px;text-align:center;justify-content:center}.client-pane{width:100%}#tab-overview:checked ~ .pane-overview,#tab-wifi:checked ~ .pane-wifi,#tab-clients:checked ~ .pane-clients,#tab-firmware:checked ~ .pane-firmware,#tab-diagnostics:checked ~ .pane-diagnostics,#tab-actions:checked ~ .pane-actions{display:grid;gap:var(--portal-page-gap);width:100%}.client-pane>.client-card,.client-pane>.client-grid-two,.pane-overview>.client-stat-grid,.pane-overview>.client-grid-two{width:100%}.client-stat,.client-card,.wifi-bulk-card,.wifi-control-card,.wifi-guest-status-card,.wifi-advanced-card,.firmware-upload-box,.firmware-library-panel,.firmware-upgrade-status,.support-card,.client-details,.clean-row,.client-health-row{border-color:var(--tab-panel-border);border-radius:var(--tab-panel-radius);background:var(--tab-panel-bg);box-shadow:var(--inner)}.client-card,.support-card,.client-details{padding:var(--tab-panel-pad)}.client-card.full{display:grid;gap:18px}.client-card.full>.client-card-head,.firmware-customer-card>.client-card-head{margin-bottom:0}.client-card-head{gap:18px}.wifi-bulk-card,.wifi-guest-status-card,.wifi-control-card,.wifi-advanced-card,.firmware-upload-box,.firmware-library-panel,.firmware-upgrade-status{padding:18px}.wifi-bulk-card{grid-template-columns:minmax(240px,1fr) minmax(260px,380px) minmax(180px,auto);align-items:end;margin:0}.wifi-bulk-card .btn{width:100%;min-height:42px}.firmware-page-stack{gap:18px}.firmware-upload-box{margin:0;display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:16px;align-items:end}.firmware-upload-box label.wide{grid-column:1/-1}.firmware-upload-box .upload-progress,.firmware-upload-box .btn{grid-column:1/-1}.firmware-upload-box input[type=file]{width:100%;padding:9px;background:rgba(15,23,42,.62);border:1px solid var(--line);border-radius:12px;color:var(--ink)}.firmware-upload-box input[type=file]::file-selector-button{margin-right:12px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--teal),var(--blue));color:#07131b;font-weight:800;padding:9px 12px}.firmware-file-card,.firmware-log-row,.firmware-log-head{border-radius:14px}.client-grid-two.lower{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.support-card{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,420px);align-items:start}.support-buttons{display:grid;grid-template-columns:1fr;gap:10px;justify-content:stretch}.support-buttons form,.support-buttons .btn{width:100%}.client-details{min-height:100%}.client-details summary{min-height:100%;align-items:flex-start}.client-filter-row,.client-scale-toolbar{gap:12px}.client-scale-toolbar{align-items:end}.client-scale-toolbar label{display:grid;gap:6px}.overview-action-row{display:flex;justify-content:flex-end}.pane-clients .client-live-status,.pane-clients .client-filter-row,.pane-clients .client-scale-toolbar{margin:0;padding:18px;border:1px solid var(--tab-panel-border);border-radius:var(--tab-panel-radius);background:var(--tab-panel-bg);box-shadow:var(--inner)}.pane-clients .client-live-status{display:grid;gap:4px}.pane-clients .client-filter-row{align-items:center}.pane-clients .client-scale-toolbar{grid-template-columns:minmax(240px,1fr) minmax(220px,320px) auto;align-items:end}.pane-clients .scalable-client-list{padding-right:0}.pane-clients .client-health-row{padding:18px}.pane-clients .client-list-footer{margin-top:0}@media(max-width:900px){.client-tabbar label{min-width:96px}.wifi-bulk-card,.firmware-upload-box,.support-card,.client-grid-two.lower,.pane-clients .client-scale-toolbar{grid-template-columns:1fr}.overview-action-row{justify-content:stretch}.overview-action-row .btn{width:100%}}

/* Client detail page theme alignment: match unified customer device tabs. */
.client-detail-page{width:min(100%,1120px);max-width:1120px;margin:22px auto 0;display:grid;gap:var(--portal-page-gap)}
.client-detail-hero{width:100%;margin:0;border:1px solid rgba(99,214,201,.16);border-radius:var(--portal-radius-hero);background:radial-gradient(circle at top left,rgba(53,185,168,.14),transparent 36%),linear-gradient(135deg,rgba(34,48,64,.78),rgba(20,29,40,.92));box-shadow:var(--shadow),var(--inner);padding:26px;align-items:center;overflow:hidden}
.client-detail-hero.offline{background:radial-gradient(circle at top left,rgba(239,99,126,.13),transparent 36%),linear-gradient(135deg,rgba(34,48,64,.78),rgba(20,29,40,.92))}
.client-detail-hero h1{font-size:clamp(32px,4vw,46px);line-height:1.02;letter-spacing:-.04em;margin:8px 0;color:var(--ink)}
.client-detail-status{min-width:260px;text-align:left;justify-items:stretch;padding:18px;border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);box-shadow:var(--inner)}
.client-detail-status .status-pill{justify-self:start}.client-detail-status strong{color:var(--ink)}.client-detail-status small{color:var(--muted);line-height:1.4}.inline-refresh-form{margin-top:8px}.inline-refresh-form .secondary,.client-range-row .custom-range-form .secondary{width:100%;justify-content:center;border-radius:12px;border:1px solid rgba(99,214,201,.28);background:rgba(99,214,201,.10);color:#d8fffb;font-weight:800;padding:10px 12px}
.fingerprint-chip{border-color:var(--portal-card-border);background:var(--portal-card-bg);border-radius:999px}.fingerprint-large>span{border-radius:var(--portal-radius-card);border-color:var(--portal-card-border);background:var(--portal-card-bg)}
.client-detail-grid,.client-detail-grid.lower{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--portal-page-gap);width:100%}.client-detail-grid.lower{align-items:start}.client-detail-card{border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);box-shadow:var(--inner);padding:var(--portal-card-padding)}.client-detail-card.wide-card,.signal-history-card{grid-column:1/-1}.current-connection-card{border-color:var(--portal-card-border);background:var(--portal-card-bg)}.connection-now,.usage-total{margin:10px 0 16px;padding:18px;border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);box-shadow:var(--inner)}.connection-now strong{font-size:16px}.usage-total strong{font-size:1.35rem}.client-detail-list{margin:16px 0 0}.client-detail-list.wide{grid-template-columns:minmax(128px,170px) minmax(0,1fr)}
.signal-history-card{display:grid;gap:18px}.signal-history-card .client-card-head,.client-detail-grid.lower .client-card-head{margin-bottom:0}.client-range-row{margin:0}.signal-rrd-wrap{margin-top:0;border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);padding:18px;box-shadow:var(--inner)}.signal-rrd-wrap .client-signal-graph{height:276px;border-radius:14px}.signal-graph-meta{margin-top:0;padding:14px 16px;border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg)}
.timeline-scale{border-color:var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg)}.timeline-event,.session-row{border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);padding:18px;box-shadow:var(--inner)}.timeline-list.compact,.session-list{gap:12px}.timeline-axis-labels{color:var(--muted)}.timeline-legend span{border-color:var(--portal-card-border);background:var(--portal-card-bg)}
@media(max-width:900px){.client-detail-hero{display:grid;gap:18px}.client-detail-status{min-width:0}.client-detail-grid,.client-detail-grid.lower{grid-template-columns:1fr}.client-detail-list.wide{grid-template-columns:1fr}.client-detail-list dt{margin-top:6px}.client-range-row .custom-range-form{position:static;width:100%;grid-template-columns:1fr}.signal-graph-meta{display:grid;grid-template-columns:1fr}.client-detail-hero{padding:20px}.client-detail-card,.client-detail-status,.connection-now,.usage-total,.signal-rrd-wrap,.timeline-event,.session-row{padding:18px}}

/* Exact client template route alignment: make /clients/<mac> use the same hero + client-page system as the gateway tabs. */
.client-device-hero{align-items:center}
.client-device-hero .hero-copy{max-width:720px}
.client-device-hero .client-detail-status{min-width:280px;display:grid;gap:8px;justify-items:start;text-align:left;padding:18px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(255,255,255,.045);box-shadow:var(--inner)}
.client-device-hero .client-detail-status strong{font-size:26px;line-height:1.05;color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-device-hero .client-detail-status span:not(.status-pill){color:var(--muted);font-size:13px;line-height:1.4}
.client-detail-page.operator-console{width:auto;max-width:1120px;margin:22px auto 0;gap:18px}
.client-detail-summary-grid{width:100%}
.client-detail-page .client-detail-grid,.client-detail-page .client-detail-grid.lower{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;align-items:start}
.client-detail-page .client-detail-card{min-width:0;padding:22px;border:1px solid var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:var(--tab-panel-bg,var(--portal-card-bg));box-shadow:var(--inner)}
.client-detail-page .client-detail-card.wide-card,.client-detail-page .signal-history-card{grid-column:1/-1}
.client-detail-page .client-detail-card>.eyebrow{margin-top:0}
.client-detail-page .client-detail-list.wide{grid-template-columns:minmax(128px,170px) minmax(0,1fr)}
.client-detail-page .fingerprint-large{margin:8px 0 14px;min-width:0}
.client-detail-page .fingerprint-large div{min-width:0}.client-detail-page .fingerprint-large strong,.client-detail-page .fingerprint-large small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-detail-page .connection-now,.client-detail-page .usage-total,.client-detail-page .signal-rrd-wrap,.client-detail-page .signal-graph-meta,.client-detail-page .timeline-scale,.client-detail-page .timeline-event,.client-detail-page .session-row,.client-detail-page .timeline-legend span{border-color:var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:var(--tab-panel-bg,var(--portal-card-bg));box-shadow:var(--inner)}
.client-detail-page .client-range-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.client-detail-page .range-pill{border-radius:10px}
.client-detail-page .timeline-event{grid-template-columns:18px minmax(0,1fr)}.client-detail-page .session-row{display:grid;gap:6px;min-width:0}.client-detail-page .session-row span,.client-detail-page .session-row small{overflow-wrap:anywhere}
@media(max-width:1120px){.client-detail-page .client-detail-grid,.client-detail-page .client-detail-grid.lower{grid-template-columns:1fr}.client-device-hero{grid-template-columns:1fr}.client-device-hero .client-detail-status{min-width:0;width:100%}.client-detail-page .client-detail-list.wide{grid-template-columns:1fr}.client-detail-page .client-detail-list dt{margin-top:6px}}

/* Client detail route final: keep it inside the same gateway tab shell, not a standalone dashboard. */
.client-detail-tab-shell{gap:18px}
.client-tabbar a{flex:1;min-width:112px;text-align:center;justify-content:center;display:inline-flex;align-items:center;cursor:pointer;color:var(--muted);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:590;white-space:nowrap;text-decoration:none}
.client-tabbar a.active,.client-tabbar a:hover{color:var(--ink);background:rgba(99,214,201,.14);border:1px solid rgba(99,214,201,.22)}
.client-detail-console-card{display:grid;gap:18px;padding:22px;border-color:var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:var(--tab-panel-bg,var(--portal-card-bg));box-shadow:var(--inner)}
.client-detail-console-head{margin-bottom:0;align-items:flex-start}.client-detail-back{display:inline-block;margin-bottom:10px}.client-detail-console-head .inline-refresh-form{margin:0;flex-shrink:0}.client-detail-console-head .btn{min-width:180px}
.client-detail-primary-row{padding:18px;border-color:var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:rgba(255,255,255,.032)}
.client-detail-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.client-detail-mini-panel,.client-detail-section{min-width:0;border:1px solid var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:rgba(255,255,255,.032);box-shadow:var(--inner);padding:18px}
.client-detail-mini-panel>.eyebrow,.client-detail-section .eyebrow{margin-top:0}.client-detail-mini-panel .client-detail-list{margin-top:12px}.client-detail-mini-panel .client-detail-list.wide{grid-template-columns:minmax(120px,160px) minmax(0,1fr)}
.fingerprint-large.compact{margin:4px 0 12px}.fingerprint-large.compact>span{width:44px;height:44px}.fingerprint-large.compact img{max-width:28px;max-height:28px}
.client-detail-section{display:grid;gap:14px}.client-detail-section .client-card-head{margin-bottom:0}.client-detail-section.signal-history-card{grid-column:auto}.client-detail-section .signal-rrd-wrap{margin-top:0}.client-detail-section .timeline-list.compact{max-height:430px;overflow:auto;padding-right:8px}.client-sessions-section{max-width:560px}
.client-detail-console-card .signal-graph-meta{margin-top:0}.client-detail-console-card .timeline-event,.client-detail-console-card .session-row{background:rgba(255,255,255,.032)}
@media(max-width:1120px){.client-detail-compact-grid{grid-template-columns:1fr}.client-detail-console-head{display:grid}.client-detail-console-head .inline-refresh-form,.client-detail-console-head .btn{width:100%}.client-detail-mini-panel .client-detail-list.wide{grid-template-columns:1fr}.client-sessions-section{max-width:none}}

/* Client detail redesign v2: subscriber hero, clear Clients subview, less redundancy. */
.subscriber-hero{align-items:stretch}.subscriber-info-card{position:relative;z-index:1;min-width:300px;max-width:340px;border:1px solid rgba(99,214,201,.18);border-radius:18px;background:rgba(255,255,255,.045);box-shadow:var(--inner);padding:20px;display:grid;gap:12px}.subscriber-info-card strong{color:var(--ink);font-size:24px;line-height:1.05}.subscriber-info-card dl{margin:0;display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px 12px}.subscriber-info-card dt{color:var(--teal2);text-transform:uppercase;font-size:10px;letter-spacing:.12em;font-weight:800}.subscriber-info-card dd{margin:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-tabbar-detail a{display:grid;gap:2px;place-items:center;line-height:1.15}.client-tabbar-detail a small{font-size:10px;color:#a8fff4;letter-spacing:.08em;text-transform:uppercase;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-tabbar-detail a.has-subview{background:rgba(99,214,201,.16);border-color:rgba(99,214,201,.32)}
.client-detail-redesign-v2{gap:16px}.client-detail-toolbar{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.client-detail-toolbar .inline-refresh-form{margin:0}.client-subview-pill{justify-self:start;border:1px solid rgba(99,214,201,.24);background:rgba(99,214,201,.08);border-radius:999px;padding:7px 11px;color:#d8fffb;font-size:12px;font-weight:800}.client-detail-identity-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:18px;align-items:center;padding:18px;border:1px solid var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:linear-gradient(135deg,rgba(99,214,201,.07),rgba(255,255,255,.03));box-shadow:var(--inner)}.client-identity-main{display:flex;align-items:center;gap:16px;min-width:0}.client-device-avatar{width:54px;height:54px;border-radius:16px;border:1px solid rgba(99,214,201,.18);background:rgba(99,214,201,.08);display:grid;place-items:center;flex:0 0 auto}.client-device-avatar img{max-width:34px;max-height:34px}.client-identity-main h3{margin:0;color:var(--ink);font-size:30px;line-height:1.05}.client-identity-main p:not(.eyebrow){margin:6px 0 0;color:var(--muted);overflow-wrap:anywhere}.client-identity-status{justify-self:end;text-align:right;display:grid;gap:4px}.client-identity-status strong{color:var(--ink);font-size:26px}.client-identity-status span:not(.status-pill){color:var(--muted);font-size:13px}.client-detail-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.client-detail-kpi-row .client-stat{padding:16px}.client-detail-kpi-row .client-stat strong{font-size:20px}.section-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.section-kicker .eyebrow{margin:0}.section-kicker span{color:var(--muted);font-size:12px;border:1px solid rgba(255,255,255,.10);border-radius:999px;padding:5px 9px;background:rgba(255,255,255,.03)}.client-detail-support-drawer{border:1px solid var(--tab-panel-border,var(--portal-card-border));border-radius:var(--tab-panel-radius,var(--portal-radius-card));background:rgba(255,255,255,.028);box-shadow:var(--inner);overflow:hidden}.client-detail-support-drawer summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;color:var(--ink);font-weight:800}.client-detail-support-drawer summary::-webkit-details-marker{display:none}.client-detail-support-drawer summary small{color:var(--muted);font-weight:500}.client-detail-support-drawer[open] summary{border-bottom:1px solid var(--tab-panel-border,var(--portal-card-border))}.support-detail-grid{padding:16px}.signal-focus-card .client-card-head h3{font-size:24px}.signal-focus-card .client-help{max-width:560px}.signal-focus-card .signal-rrd-wrap .client-signal-graph{height:230px}.signal-focus-card .signal-rrd-wrap{padding:14px}.client-detail-bottom-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px}.timeline-focus-card .timeline-list.compact{max-height:320px}.compact-sessions{max-height:520px;overflow:auto;padding-right:6px}.compact-sessions .session-row{padding:14px}.client-detail-redesign-v2 .signal-graph-meta{display:none}
@media(max-width:1120px){.subscriber-hero{display:grid}.subscriber-info-card{min-width:0;max-width:none}.client-detail-toolbar{grid-template-columns:1fr}.client-detail-toolbar .inline-refresh-form,.client-detail-toolbar .btn{width:100%}.client-detail-identity-strip,.client-detail-bottom-grid{grid-template-columns:1fr}.client-identity-status{justify-self:start;text-align:left}.client-detail-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.client-detail-kpi-row{grid-template-columns:1fr}.client-identity-main{align-items:flex-start}.subscriber-info-card dl{grid-template-columns:1fr}.client-tabbar-detail a small{display:none}}

/* Tenant/customer dashboard search layouts */
.dashboard-page{max-width:min(var(--portal-page-max),100%);overflow:hidden}.tenant-dashboard-page{--portal-page-max:1180px;margin:22px auto 0}.tenant-hero-card{padding:24px}.tenant-dashboard-head{align-items:flex-start;margin-bottom:0}.tenant-dashboard-head .btn{flex:0 0 auto}.admin-console-banner{width:min(100%,var(--portal-page-max));margin:14px auto 0;border:1px solid rgba(99,214,201,.22);border-radius:16px;background:linear-gradient(135deg,rgba(99,214,201,.16),rgba(37,99,235,.08));box-shadow:var(--inner);padding:12px 18px;display:flex;gap:12px;align-items:center;justify-content:space-between;color:#dffcff}.admin-console-banner strong,.operator-nav-chip{letter-spacing:.08em;text-transform:uppercase}.admin-console-banner span{color:var(--muted);font-size:13px}.operator-nav-chip{border:1px solid rgba(99,214,201,.28);border-radius:999px;background:rgba(99,214,201,.08);padding:8px 11px;color:#dffcff;font-size:12px;font-weight:800}.search-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);padding:16px;box-shadow:var(--inner)}.search-panel label{display:grid;gap:6px;color:#dbeafe;font-weight:700;min-width:0}.search-panel input{width:100%;min-width:0;background:#0b1220;border:1px solid rgba(148,163,184,.28);border-radius:12px;color:#e5f2ff;padding:10px 12px}.tenant-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,360px));gap:16px}.tenant-management-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.tenant-feature-list,.tenant-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.dashboard-page .device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,360px));gap:16px}.tenant-device-list{grid-template-columns:repeat(auto-fill,minmax(260px,360px))}.tenant-account-card{display:grid;gap:12px;min-width:0}.tenant-account-card .btn{justify-self:start}.tenant-summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.tenant-dashboard-page .metric-card{min-width:0}.metric-card{border:1px solid var(--portal-card-border);border-radius:var(--portal-radius-card);background:var(--portal-card-bg);padding:16px;box-shadow:var(--inner);overflow:hidden}.metric-card span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.09em;overflow:hidden;text-overflow:ellipsis}.metric-card strong{display:block;color:var(--ink);font-size:clamp(22px,3vw,30px);margin-top:4px;overflow-wrap:anywhere}.tenant-device-list{margin-top:14px}#tenant-source-policy{scroll-margin-top:150px}.source-policy-enrollment-list{margin-top:12px;max-height:260px;overflow:auto;border:1px solid rgba(148,163,184,.20);border-radius:12px;background:rgba(2,6,23,.22);padding:12px;display:grid;gap:8px}.source-policy-enrollment-list h4{margin:0;color:var(--ink);font-size:14px}.source-policy-enrollment-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center;border:1px solid rgba(148,163,184,.16);border-radius:10px;padding:8px;background:rgba(255,255,255,.035)}.source-policy-enrollment-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dffcff}.source-policy-enrollments summary{list-style:none;cursor:pointer}.source-policy-enrollments summary::-webkit-details-marker{display:none}.tenant-tool-card{display:grid;gap:10px;color:inherit;text-decoration:none;min-width:0;transition:border-color .16s ease,transform .16s ease,background .16s ease}.tenant-tool-card:hover,.tenant-tool-card:focus-visible{border-color:rgba(99,214,201,.48);background:rgba(99,214,201,.06);transform:translateY(-1px);outline:none}.tenant-tool-card .btn{justify-self:start}.dashboard-page details summary{cursor:pointer;padding:4px 0;color:var(--ink)}.settings-form textarea{width:100%;min-width:0;background:#0b1220;border:1px solid rgba(148,163,184,.28);border-radius:12px;color:#e5f2ff;padding:10px 12px;resize:vertical}.form-grid.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.advanced-audit-card{margin-top:14px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(15,23,42,.34);padding:10px 12px}.advanced-audit-card summary{display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:800}.advanced-audit-card summary span{font-size:12px;color:var(--muted);font-weight:700}.onboarded-audit-list{margin-top:10px;max-height:240px;overflow:auto;display:grid;gap:8px;padding-right:4px}.audit-row{display:grid;grid-template-columns:90px minmax(0,1fr) 130px;gap:10px;align-items:center;border:1px solid rgba(148,163,184,.16);border-radius:10px;padding:8px;background:rgba(2,6,23,.24)}.audit-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dffcff}.audit-row span{color:var(--muted);font-size:12px}@media(max-width:860px){.tenant-management-grid,.form-grid.two-col,.audit-row{grid-template-columns:1fr}.admin-console-banner{display:grid}.search-panel{grid-template-columns:1fr}.search-panel .btn{width:100%}}

/* Client device detail cleanup: remove duplicate panels, split link rates, and standardize readable graph rendering. */
 .client-detail-compact-grid:has(.history-summary-panel){grid-template-columns:1fr}.history-summary-panel{width:100%}.session-stat.online-session{border-color:rgba(59,209,127,.38);background:linear-gradient(135deg,rgba(59,209,127,.14),rgba(99,214,201,.06));box-shadow:0 0 0 1px rgba(59,209,127,.08),var(--inner)}.session-stat.online-session strong{color:#dfffe9}.session-stat .client-status-dot{position:absolute;top:16px;right:16px}.client-detail-kpi-row .client-stat small{text-transform:uppercase;letter-spacing:.12em;font-weight:800}.connection-detail-card{overflow:hidden;isolation:isolate}.connection-detail-card::before{content:"";position:absolute;inset:0;height:100%;background:radial-gradient(circle at 18% 22%,rgba(99,214,201,.10),transparent 38%);z-index:-1}.connection-detail-card.connection-ethernet::before{background:radial-gradient(circle at 18% 22%,rgba(59,209,127,.12),transparent 38%)}.connection-card-main{display:flex;align-items:flex-start;gap:10px;margin-top:8px;min-width:0}.connection-card-main>div{min-width:0}.connection-card-main strong{font-size:22px}.connection-card-main em{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.connection-icon{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;max-height:32px!important;border-radius:10px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.14);background:linear-gradient(145deg,rgba(99,214,201,.16),rgba(15,23,42,.62));box-shadow:inset 0 1px 0 rgba(255,255,255,.08);color:#a8fff4;line-height:0;overflow:hidden}.connection-icon svg{display:block;width:19px!important;height:19px!important;max-width:19px!important;max-height:19px!important;fill:currentColor!important}.ethernet-icon{color:#b8ffd5;background:linear-gradient(145deg,rgba(59,209,127,.20),rgba(15,23,42,.64))}.lan-icon{font-weight:900;font-size:18px}.connection-card-facts{display:grid;gap:6px;margin:12px 0 0;padding:0}.connection-card-facts div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:baseline;min-width:0}.connection-card-facts dt{margin:0;color:var(--teal2);font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:800}.connection-card-facts dd{margin:0;color:#e8fffc;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shared-line-graph{--graph-label:#dff7ff;--graph-muted:#a9c7d6}.signal-rrd-wrap .client-signal-graph{height:360px;min-height:360px}.client-signal-graph .latency-y-label,.client-signal-graph .latency-x-label{fill:var(--graph-label);font-size:15px;font-weight:800;paint-order:stroke;stroke:rgba(2,6,23,.86);stroke-width:3px;stroke-linejoin:round}.client-signal-graph .latency-grid-line{stroke:rgba(190,242,255,.16);stroke-width:1.1}.client-signal-graph .latency-grid-line.vertical{stroke:rgba(190,242,255,.11)}.client-signal-graph .latency-avg-line{stroke-width:3.2}.client-signal-graph .latency-line-glow{stroke-width:8;opacity:.42}.client-signal-graph .signal-history-dot{stroke-width:2}.signal-rrd-wrap .graph-legend{font-size:14px}.signal-rrd-wrap .graph-legend span{font-size:14px;color:#ecfeff}.signal-rrd-wrap .graph-legend em{font-size:13px;color:var(--graph-muted)}


/* Client detail RF graph/live cards: keep last-known rates readable and render single-sample RF graphs. */
.link-rate-stat strong{font-size:clamp(16px,1.35vw,20px)!important;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.link-rate-stat em{margin-top:5px}

/* Beacon network cards: WAN ports, DHCP, NAT/firewall/QoS readiness */
.network-ops-grid{align-items:start}.network-card .clean-list{gap:10px}.port-row.good{border-color:rgba(59,209,127,.24);background:rgba(59,209,127,.055)}.port-row.attention{border-color:rgba(251,191,36,.34);background:rgba(251,191,36,.08)}.muted-row{opacity:.78}.danger-text{color:#fecaca!important;font-weight:800}.compact-details{margin-top:12px;border:1px solid var(--portal-card-border);border-radius:14px;background:rgba(255,255,255,.03);padding:10px 12px}.compact-details summary{cursor:pointer;color:var(--ink);font-weight:800}.dhcp-pool-card{display:grid;gap:10px;margin-top:10px;border:1px solid var(--portal-card-border);border-radius:16px;background:rgba(255,255,255,.032);padding:12px}.mini-kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.mini-kv-grid span{border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(15,23,42,.30);padding:9px 10px;color:var(--muted);font-size:12px}.mini-kv-grid b{display:block;color:var(--ink);font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-list{gap:8px}.clean-row.compact{padding:10px 12px}.network-feature-card{margin-top:0}.compact-feature-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.compact-feature-grid .client-stat strong{font-size:20px}

/* TR-143 speed test polished operator card */
.speedtest-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.speedtest-result{position:relative;display:grid;gap:9px;min-width:0;padding:18px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:linear-gradient(145deg,rgba(15,23,42,.70),rgba(30,41,59,.40));box-shadow:var(--inner)}.speedtest-result.good{border-color:rgba(59,209,127,.30);background:linear-gradient(145deg,rgba(59,209,127,.10),rgba(15,23,42,.62))}.speedtest-result.running{border-color:rgba(125,211,252,.32);background:linear-gradient(145deg,rgba(56,189,248,.10),rgba(15,23,42,.62))}.speedtest-result.server{border-color:rgba(99,214,201,.24)}.speedtest-result>div{min-width:0}.speedtest-result small{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.speedtest-result strong{display:block;margin-top:6px;color:var(--ink);font-size:28px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.speedtest-result em{display:block;color:var(--dim);font-style:normal;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.speedtest-result .status-pill{position:absolute;top:16px;right:16px}.speedtest-time{color:#93a7ba!important;text-transform:none!important;letter-spacing:0!important;font-weight:600!important;overflow-wrap:anywhere}.speedtest-run-form{grid-template-columns:minmax(230px,1fr) minmax(190px,260px) minmax(260px,auto)}.speedtest-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.speedtest-actions .btn{width:100%}.speedtest-history{display:grid;gap:8px;border:1px solid var(--portal-card-border);border-radius:16px;background:rgba(255,255,255,.026);padding:12px}@media(max-width:900px){.speedtest-run-form,.speedtest-actions{grid-template-columns:1fr}}

/* SHIFT Speedtest centered browser-style flow */
.shift-speedtest-card{background:radial-gradient(circle at 50% 30%,rgba(59,130,246,.10),transparent 46%),linear-gradient(180deg,rgba(15,23,42,.58),rgba(2,6,23,.42));border-color:rgba(99,214,201,.14)}
.shift-speedtest-heading{margin-bottom:6px}.shift-speedtest{--shift-accent:var(--teal,#63d6c9);--shift-accent-blue:#3b82f6;--sst-ring:553;display:flex;flex-direction:column;align-items:center;gap:1.35rem;width:min(100%,520px);margin:0 auto;padding:8px 12px 22px;color:var(--ink,#e5f2ff);text-align:center}.shift-speedtest-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:.55rem;width:100%}.shift-speedtest-refresh-form{margin:0}.shift-speedtest-results-btn,.shift-speedtest-refresh-btn{appearance:none;background:rgba(15,23,42,.35);border:1px solid rgba(226,232,240,.12);border-radius:999px;color:rgba(226,242,255,.55);font-size:12px;font-weight:800;letter-spacing:.04em;padding:6px 11px;cursor:pointer;transition:color .18s,border-color .18s,background .18s}.shift-speedtest-results-btn:hover:not(:disabled),.shift-speedtest-refresh-btn:hover{color:#f8fbff;border-color:rgba(99,214,201,.35);background:rgba(99,214,201,.08)}.shift-speedtest-results-btn:disabled{opacity:.35;cursor:default}.shift-speedtest-center{position:relative;width:clamp(190px,34vw,228px);height:clamp(190px,34vw,228px);display:grid;place-items:center}.shift-speedtest-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.sst-ring-track{fill:none;stroke:rgba(226,232,240,.08);stroke-width:4}.sst-ring-arc{fill:none;stroke:var(--shift-accent);stroke-width:4;stroke-linecap:round;transition:stroke-dasharray .45s ease,opacity .2s ease;filter:drop-shadow(0 0 8px rgba(99,214,201,.42))}.shift-speedtest-form{position:absolute;inset:0;margin:0;display:grid;place-items:center}.shift-speedtest-launch{appearance:none;width:72%;height:72%;border:1px solid rgba(99,214,201,.22);border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(99,214,201,.10),rgba(15,23,42,.24) 48%,rgba(2,6,23,.08));box-shadow:inset 0 0 44px rgba(99,214,201,.08),0 22px 60px rgba(0,0,0,.28);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.shift-speedtest-launch:hover:not(:disabled){transform:scale(1.035);border-color:rgba(99,214,201,.52);box-shadow:inset 0 0 50px rgba(99,214,201,.12),0 0 36px rgba(99,214,201,.18),0 24px 70px rgba(0,0,0,.34)}.shift-speedtest-launch:focus-visible{outline:2px solid var(--shift-accent);outline-offset:6px}.shift-speedtest-launch:disabled{cursor:default;opacity:.92}.sst-label-go,.sst-label-running,.sst-label-result{display:none}.shift-speedtest[data-sst-state="idle"] .sst-label-go,.shift-speedtest[data-sst-state="warning"] .sst-label-go{display:block}.shift-speedtest[data-sst-state="running"] .sst-label-running{display:flex;flex-direction:column;align-items:center;gap:4px}.shift-speedtest[data-sst-state="complete"] .sst-label-result{display:flex;flex-direction:column;align-items:center;gap:3px}.sst-label-go{font-size:clamp(42px,8vw,58px);font-weight:900;letter-spacing:.05em;line-height:1;text-shadow:0 0 22px rgba(99,214,201,.20)}.sst-phase-label{font-size:12px;color:rgba(226,242,255,.72);font-weight:900;letter-spacing:.12em;text-transform:uppercase;animation:sstBlink 1.4s ease-in-out infinite}.sst-primary-value{font-size:clamp(34px,6vw,50px);font-weight:900;letter-spacing:-.05em;line-height:.98}.sst-primary-unit{font-size:11px;color:rgba(226,242,255,.52);font-weight:900;letter-spacing:.12em;text-transform:uppercase}.sst-primary-action{margin-top:5px;font-size:10px;color:var(--shift-accent);font-weight:900;letter-spacing:.16em;text-transform:uppercase}.shift-speedtest[data-sst-state="idle"] .sst-ring-arc{stroke-dasharray:30 18;animation:sstIdlePulse 3s ease-in-out infinite}.shift-speedtest[data-sst-state="running"] .sst-ring-arc{stroke-dasharray:138 415;animation:sstRingSpin 1.05s linear infinite;filter:drop-shadow(0 0 12px rgba(99,214,201,.65))}.shift-speedtest[data-sst-state="running"] .shift-speedtest-launch{border-color:rgba(99,214,201,.34)}.shift-speedtest[data-sst-state="complete"] .sst-ring-arc{animation:none;filter:drop-shadow(0 0 7px rgba(59,130,246,.30));stroke:var(--shift-accent-blue)}@keyframes sstIdlePulse{0%,100%{opacity:.55}50%{opacity:1}}@keyframes sstRingSpin{to{transform:rotate(360deg);transform-origin:100px 100px}}@keyframes sstBlink{0%,100%{opacity:1}50%{opacity:.38}}.shift-speedtest-speeds{display:none;gap:clamp(1.6rem,6vw,3rem);justify-content:center;width:100%}.shift-speedtest[data-sst-state="complete"] .shift-speedtest-speeds{display:flex}.sst-speed-block{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:110px}.sst-arrow{width:18px;height:18px;stroke:var(--shift-accent);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.sst-speed-value{font-size:clamp(24px,4vw,34px);font-weight:850;color:#fff;line-height:1;letter-spacing:-.04em}.sst-speed-unit{font-size:10px;color:rgba(226,242,255,.45);text-transform:uppercase;letter-spacing:.12em;font-weight:900}.sst-speed-label{font-size:11px;color:rgba(226,242,255,.50);text-transform:uppercase;letter-spacing:.10em;font-weight:900;margin-top:2px}.shift-speedtest-identity{display:flex;align-items:flex-start;justify-content:center;gap:1.5rem;width:100%;max-width:520px}.sst-ident-block{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;flex:1}.sst-ident-divider{width:1px;min-height:48px;background:linear-gradient(transparent,rgba(226,232,240,.16),transparent);align-self:center}.sst-ident-label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:rgba(226,242,255,.38);font-weight:900}.sst-ident-value{max-width:220px;font-size:13px;color:rgba(248,251,255,.82);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sst-ident-sub{max-width:220px;font-size:12px;color:rgba(226,242,255,.42);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-speedtest-connections{display:flex;flex-direction:column;align-items:center;gap:.45rem}.sst-conn-label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:rgba(226,242,255,.36);font-weight:900}.sst-conn-pills{display:flex;gap:4px;background:rgba(226,232,240,.055);border:1px solid rgba(226,232,240,.08);border-radius:999px;padding:3px}.sst-conn-pill{border:0;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:900;cursor:default}.sst-conn-pill.sst-active{background:linear-gradient(135deg,var(--shift-accent),var(--shift-accent-blue));color:#02111f;box-shadow:0 0 18px rgba(99,214,201,.18)}.sst-conn-pill.sst-disabled{background:transparent;color:rgba(226,242,255,.24)}.sst-conn-note{font-size:11px;color:rgba(226,242,255,.32);letter-spacing:.03em}.shift-speedtest-status{min-height:1.2rem;font-size:12px;color:rgba(226,242,255,.48);text-align:center}.shift-speedtest-status.sst-error{color:#fca5a5}@media(max-width:680px){.shift-speedtest{padding-left:0;padding-right:0}.shift-speedtest-toolbar{justify-content:center}.shift-speedtest-identity{gap:1rem}.sst-ident-value,.sst-ident-sub{max-width:150px}.shift-speedtest-speeds{gap:1.2rem}.sst-speed-block{min-width:90px}}

.shift-speedtest[data-sst-state="warning"] .sst-ring-arc{stroke:#f3bd63;stroke-dasharray:30 18;animation:sstIdlePulse 2.2s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(243,189,99,.35))}.shift-speedtest[data-sst-state="warning"] .shift-speedtest-launch{border-color:rgba(243,189,99,.42)}


/* Simple speedtest busy-overlay redesign */
.simple-speedtest-card{background:linear-gradient(180deg,rgba(15,23,42,.66),rgba(2,6,23,.44));border-color:rgba(99,214,201,.16)}
.simple-speedtest{width:100%;max-width:none;margin:0;padding:4px 0 8px;align-items:stretch;text-align:left}.simple-speedtest-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,340px);gap:16px;align-items:stretch}.simple-speedtest-latest,.simple-speedtest-form{border:1px solid rgba(226,232,240,.10);border-radius:18px;background:rgba(15,23,42,.42);padding:18px;box-shadow:var(--inner)}.simple-speedtest-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.simple-speedtest-values div{border:1px solid rgba(99,214,201,.16);border-radius:14px;background:rgba(99,214,201,.055);padding:14px}.simple-speedtest-values strong{display:block;font-size:36px;line-height:1;color:#fff;font-weight:900;letter-spacing:-.04em}.simple-speedtest-values span,.simple-speedtest-empty span{display:block;margin-top:5px;color:rgba(226,242,255,.56);font-size:13px}.simple-speedtest-empty strong{display:block;color:#fff;font-size:24px;margin:8px 0}.simple-speedtest-form{display:flex;flex-direction:column;justify-content:center;gap:10px}.simple-speedtest-button{width:100%;min-height:58px;font-size:17px;border-radius:14px}.simple-speedtest-button:disabled{opacity:.7;cursor:default}.simple-speedtest-history{margin-top:14px}.speedtest-busy-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:rgba(2,6,23,.70);backdrop-filter:blur(8px)}.speedtest-busy-overlay[hidden]{display:none}.speedtest-busy-box{width:min(92vw,460px);border:1px solid rgba(99,214,201,.26);border-radius:24px;background:linear-gradient(145deg,rgba(15,23,42,.98),rgba(30,41,59,.96));box-shadow:0 28px 90px rgba(0,0,0,.50);padding:28px;text-align:center;color:#e5edf6}.speedtest-busy-spinner{width:54px;height:54px;margin:8px auto 16px;border:5px solid rgba(148,163,184,.20);border-top-color:#63d6c9;border-radius:999px;animation:wifiSpin .85s linear infinite}.speedtest-busy-box strong{display:block;font-size:19px;margin:8px 0 6px;color:#fff}.speedtest-busy-box span{display:block;color:#aab7c7;font-size:14px;line-height:1.45}.speedtest-progress-shell{height:12px;margin:20px auto 8px;background:rgba(255,255,255,.08);border:1px solid rgba(125,211,252,.22);border-radius:999px;overflow:hidden}.speedtest-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#2dd4bf,#38bdf8,#5eead4);border-radius:999px;transition:width .35s ease;box-shadow:0 0 18px rgba(45,212,191,.38)}#sst-progress-label{display:block;color:#7dd3fc;font-size:12px;margin-top:8px}@media(max-width:820px){.simple-speedtest-grid{grid-template-columns:1fr}.simple-speedtest-values{grid-template-columns:1fr}.simple-speedtest-form{align-items:stretch}}

/* Speedtest card polish: quick upload is primary; download is historical context. */
.shift-speedtest-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}
.shift-speedtest-fulltest-form{margin:0}.shift-speedtest-full-btn{appearance:none;background:rgba(15,23,42,.22);border:1px solid rgba(226,232,240,.14);border-radius:999px;color:rgba(226,242,255,.62);font-size:12px;font-weight:850;letter-spacing:.03em;padding:7px 11px;cursor:pointer;transition:opacity .18s,border-color .18s,color .18s,background .18s}.shift-speedtest-full-btn:hover:not(:disabled){color:#fff;border-color:rgba(99,214,201,.35);background:rgba(99,214,201,.08)}.shift-speedtest-full-btn:disabled{opacity:.4;cursor:default}
.simple-speedtest-value-card{position:relative}.simple-speedtest-value-card.primary-upload{border-color:rgba(99,214,201,.30);background:linear-gradient(180deg,rgba(99,214,201,.11),rgba(99,214,201,.045))}.simple-speedtest-value-card.historical-download{border-color:rgba(59,130,246,.18);background:rgba(59,130,246,.045)}.sst-speed-age{display:block;margin-top:7px;color:rgba(226,242,255,.45);font-size:11px;font-style:normal;white-space:nowrap}.sst-speed-age--none{font-style:italic;color:rgba(226,242,255,.32)}.sst-dir-pill{display:inline-block;margin:0 0 7px 0;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sst-dir-upload{background:rgba(99,214,201,.15);color:#63d6c9}.sst-dir-download{background:rgba(59,130,246,.16);color:#93c5fd}.clean-row .sst-dir-pill{margin:0 6px 0 0;vertical-align:middle}
@media(max-width:680px){.shift-speedtest-toolbar-actions{justify-content:flex-start}.sst-speed-age{white-space:normal}}

/* Diagnostics page premium polish: speedtest first, compact toolbar, enhanced cards */
/* Speedtest card: elevated ambient glow when at top of diagnostics */
.pane-diagnostics .simple-speedtest-card{border-color:rgba(99,214,201,.26);background:radial-gradient(ellipse at 65% -10%,rgba(53,185,168,.15) 0%,transparent 48%),linear-gradient(180deg,rgba(15,23,42,.70) 0%,rgba(2,6,23,.54) 100%);box-shadow:0 0 0 1px rgba(99,214,201,.08),0 28px 72px -22px rgba(53,185,168,.22),var(--inner)}

/* Compact diagnostics toolbar */
.diag-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 2px 2px;border:0;background:transparent;box-shadow:none}
.diag-toolbar-left{display:flex;align-items:center;gap:14px;min-width:0}
.diag-toolbar-left .eyebrow{margin:0}
.diag-toolbar-hint{color:var(--dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.diag-toolbar-actions{display:flex;gap:8px;flex-shrink:0}
.diag-toolbar-actions form{margin:0}

/* Network cards in diagnostics: deeper, richer surfaces */
.pane-diagnostics .network-card{border-color:rgba(255,255,255,.10);background:linear-gradient(180deg,rgba(34,48,64,.54),rgba(20,30,44,.46))}
.pane-diagnostics .network-card .client-card-head h3{font-size:20px}

/* HC220 diagnostics accordions: premium OCC surfaces, Wi-Fi drawer behavior preserved. */
.pane-diagnostics .diagnostics-action-row{justify-content:flex-end;margin:-2px 0 0}
.pane-diagnostics .diagnostics-action-row .btn{border-color:rgba(99,214,201,.20);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.026));color:var(--ink)}
.pane-diagnostics .diagnostics-accordion-card{position:relative;margin:0!important;padding:0!important;overflow:hidden!important;border:1px solid rgba(226,232,240,.105)!important;border-radius:20px!important;background:radial-gradient(circle at 12% 0%,rgba(99,214,201,.10),transparent 34%),radial-gradient(circle at 92% 0%,rgba(106,168,232,.075),transparent 30%),linear-gradient(180deg,rgba(34,48,64,.58),rgba(15,23,42,.46))!important;box-shadow:var(--inner),0 22px 58px -38px rgba(2,6,23,.95)!important}
.pane-diagnostics .diagnostics-accordion-card::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),rgba(99,214,201,.32),transparent);pointer-events:none}
.pane-diagnostics .diagnostics-accordion-card>summary{position:relative;min-height:74px;padding:18px 20px!important;background:linear-gradient(90deg,rgba(255,255,255,.040),rgba(255,255,255,.018),transparent 72%)!important;transition:background .18s,border-color .18s}
.pane-diagnostics .diagnostics-accordion-card>summary:hover{background:linear-gradient(90deg,rgba(255,255,255,.060),rgba(99,214,201,.035),transparent 72%)!important}
.pane-diagnostics .diagnostics-card-title{color:var(--teal2)!important;font-size:clamp(18px,1.6vw,22px)!important;font-weight:760!important;letter-spacing:-.025em}
.pane-diagnostics .diagnostics-accordion-card .hc220-summary-action{border-color:rgba(226,232,240,.14)!important;background:rgba(15,23,42,.42)!important;color:rgba(226,242,255,.72)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.pane-diagnostics .diagnostics-accordion-card[open] .hc220-summary-action{border-color:rgba(99,214,201,.32)!important;background:rgba(99,214,201,.11)!important;color:#d8fffb!important}
.pane-diagnostics .diagnostics-card-body{gap:14px!important;padding:16px 20px 20px!important;border-top:1px solid rgba(226,232,240,.10)!important;background:linear-gradient(180deg,rgba(2,6,23,.10),rgba(2,6,23,.20))}
.pane-diagnostics .diagnostics-card-body .latency-ping-form{margin:0;padding:14px;border:1px solid rgba(226,232,240,.10);border-radius:16px;background:rgba(15,23,42,.34)}
.pane-diagnostics .diagnostics-card-body .latency-ping-form label{color:rgba(203,213,225,.82);font-size:12px;font-weight:800}.pane-diagnostics .diagnostics-card-body .latency-ping-form input{background:rgba(2,6,23,.34);border-color:rgba(226,232,240,.13)}
.pane-diagnostics .diagnostics-card-body .latency-ping-form .btn{border-color:rgba(99,214,201,.22);background:linear-gradient(180deg,rgba(255,255,255,.070),rgba(255,255,255,.032));color:#e8fffc;font-weight:850}
.pane-diagnostics .diagnostics-accordion-card .latency-diagnostic-result{margin-top:0;border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.055)}
.pane-diagnostics .hc220-ping-card,.pane-diagnostics .hc220-traceroute-card,.pane-diagnostics .hc220-ookla-speedtest-card{border-color:rgba(226,232,240,.105)!important}
@media(max-width:760px){.pane-diagnostics .diagnostics-accordion-card>summary{align-items:flex-start!important;padding:16px!important}.pane-diagnostics .diagnostics-card-body{padding:14px 16px 16px!important}}

/* Port status rows: sharper state cues with smooth transitions */
.port-row{transition:border-color .14s,background .14s}
.port-row.good{border-color:rgba(59,209,127,.30);background:linear-gradient(90deg,rgba(59,209,127,.08),rgba(59,209,127,.03))}
.port-row.attention{border-color:rgba(243,189,99,.42);background:linear-gradient(90deg,rgba(243,189,99,.11),rgba(243,189,99,.04))}
.port-row .row-meta span:last-child{font-size:11px;font-family:'JetBrains Mono',ui-monospace,monospace;letter-spacing:.01em}

/* WAN pill badge: teal glow */
.port-row .pill{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:rgba(53,185,168,.16);border:1px solid rgba(53,185,168,.34);color:#63d6c9;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;margin-left:6px}

/* DHCP pool card: blue-accent premium surface */
.dhcp-pool-card{border-color:rgba(106,168,232,.18);background:linear-gradient(180deg,rgba(15,23,42,.46),rgba(2,6,23,.30))}
.mini-kv-grid span{background:rgba(15,23,42,.40);border-color:rgba(148,163,184,.12)}

/* Diagnostics page: premium operator command surface */
.pane-diagnostics{position:relative;isolation:isolate;gap:18px!important;padding:0;background:transparent;border:0;box-shadow:none}
.pane-diagnostics::before{content:none}
.diagnostics-command-card{border-color:var(--portal-card-border);background:var(--portal-panel-bg);box-shadow:var(--shadow),var(--inner);padding:22px}
.diagnostics-command-head{align-items:flex-start;margin-bottom:16px}.diagnostics-command-head h3{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.04em;margin:2px 0 0}.diagnostics-command-head .client-help{max-width:760px}.diagnostics-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.diagnostics-summary-strip span{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 12px;border:1px solid rgba(226,232,240,.10);border-radius:999px;background:rgba(15,23,42,.36);color:#dbeafe;font-size:12px;font-weight:750;letter-spacing:.02em}.diagnostics-summary-strip span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal2);box-shadow:0 0 14px rgba(99,214,201,.65)}
.pane-diagnostics .shift-speedtest-heading{align-items:flex-start}.pane-diagnostics .shift-speedtest-heading h3{font-size:clamp(24px,2.3vw,34px);letter-spacing:-.04em}.pane-diagnostics .simple-speedtest-grid{position:relative}.pane-diagnostics .simple-speedtest-value-card{backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 16px 36px -26px rgba(0,0,0,.9)}
.pane-diagnostics .network-ops-grid{gap:18px;align-items:start}.pane-diagnostics .network-card{position:relative;overflow:hidden}.pane-diagnostics .network-card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(99,214,201,.45),transparent)}.diag-toolbar .btn,.diag-toolbar-actions .btn{border-color:rgba(99,214,201,.24);background:linear-gradient(180deg,rgba(99,214,201,.12),rgba(99,214,201,.045));color:#e8fffc}.diagnostics-feature-card{grid-column:1/-1;margin-top:2px;border-color:rgba(106,168,232,.20);background:radial-gradient(circle at 85% 0%,rgba(106,168,232,.12),transparent 34%),linear-gradient(180deg,rgba(34,48,64,.54),rgba(20,30,44,.46))}.diagnostics-feature-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.diagnostics-feature-card .client-stat{background:rgba(15,23,42,.35);border-color:rgba(226,232,240,.10)}
.traceroute-result-card{padding:14px;margin-top:14px;border-color:rgba(45,212,191,.36);background:linear-gradient(180deg,rgba(20,83,75,.34),rgba(15,23,42,.32))}.traceroute-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.traceroute-result-head strong{font-size:22px;margin:2px 0}.traceroute-result-badge{flex:0 0 auto;border:1px solid rgba(45,212,191,.30);border-radius:999px;padding:6px 10px;background:rgba(15,118,110,.22);color:#ccfbf1;font-size:12px;font-weight:850}.traceroute-route-list{display:grid;gap:7px;max-height:360px;overflow:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-color:rgba(99,214,201,.45) rgba(15,23,42,.36);scrollbar-width:thin}.traceroute-hop-row{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(290px,auto);align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(226,232,240,.09);border-radius:12px;background:rgba(15,23,42,.30)}.traceroute-hop-index{display:block;width:28px;color:#a7f3d0;font-weight:900;font-size:13px;text-align:center}.traceroute-hop-index::before{content:"#";opacity:.55;font-weight:800}.traceroute-hop-main{min-width:0}.traceroute-hop-main strong{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.traceroute-hop-main span{display:block;font-size:11px;line-height:1.25;color:rgba(226,242,255,.52);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.traceroute-hop-rtt{text-align:right;min-width:290px}.traceroute-hop-rtt span{font-family:'JetBrains Mono',ui-monospace,monospace;color:#e0f2fe;font-size:11px;line-height:1.25;white-space:nowrap}@media(max-width:900px){.traceroute-hop-row{grid-template-columns:28px minmax(0,1fr);align-items:start}.traceroute-hop-rtt{grid-column:2;text-align:left;min-width:0}.traceroute-hop-rtt span{white-space:normal}}

@media(max-width:900px){.diagnostics-summary-strip,.diagnostics-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.diagnostics-command-head{display:grid;gap:12px}.diag-toolbar-actions,.diag-toolbar-actions form,.diag-toolbar-actions .btn{width:100%}.diagnostics-summary-strip,.diagnostics-feature-grid{grid-template-columns:1fr}}


/* Speedtest diagnostics tuning: refresh above card, green launch glow, scrollable history */
.simple-speedtest-value-card.primary-download{border-color:rgba(59,130,246,.30);background:linear-gradient(180deg,rgba(59,130,246,.12),rgba(59,130,246,.045))}
.simple-speedtest-form small{display:none}
.pane-diagnostics .simple-speedtest-button{background:linear-gradient(135deg,#15803d,#166534 52%,#14532d);border:1px solid rgba(134,239,172,.34);color:#ecfdf5;text-shadow:0 1px 0 rgba(0,0,0,.28);box-shadow:0 0 0 1px rgba(34,197,94,.12),0 0 14px rgba(34,197,94,.20),0 16px 34px -22px rgba(34,197,94,.55);animation:speedtestGreenGlow 2.8s ease-in-out infinite}
.pane-diagnostics .simple-speedtest-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 0 1px rgba(134,239,172,.24),0 0 22px rgba(34,197,94,.30),0 20px 40px -20px rgba(34,197,94,.62)}
.pane-diagnostics .simple-speedtest-button:disabled{animation:none;background:rgba(34,197,94,.18);border-color:rgba(134,239,172,.20);box-shadow:none;color:rgba(240,255,244,.70)}
@keyframes speedtestGreenGlow{0%,100%{box-shadow:0 0 0 1px rgba(34,197,94,.12),0 0 12px rgba(34,197,94,.18),0 16px 34px -22px rgba(34,197,94,.50)}50%{box-shadow:0 0 0 1px rgba(134,239,172,.24),0 0 24px rgba(34,197,94,.30),0 20px 46px -22px rgba(34,197,94,.62)}}
.simple-speedtest-history .clean-list{max-height:320px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-color:rgba(99,214,201,.45) rgba(15,23,42,.36);scrollbar-width:thin}
.simple-speedtest-history .clean-list::-webkit-scrollbar{width:8px}.simple-speedtest-history .clean-list::-webkit-scrollbar-track{background:rgba(15,23,42,.36);border-radius:999px}.simple-speedtest-history .clean-list::-webkit-scrollbar-thumb{background:rgba(99,214,201,.45);border-radius:999px}
.hc220-speedtest-run-list{display:grid;gap:8px;max-height:260px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-color:rgba(99,214,201,.45) rgba(15,23,42,.36);scrollbar-width:thin}.hc220-speedtest-run-list::-webkit-scrollbar{width:8px}.hc220-speedtest-run-list::-webkit-scrollbar-track{background:rgba(15,23,42,.36);border-radius:999px}.hc220-speedtest-run-list::-webkit-scrollbar-thumb{background:rgba(99,214,201,.45);border-radius:999px}.hc220-speedtest-run{display:grid;grid-template-columns:minmax(230px,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid rgba(226,232,240,.10);border-radius:14px;background:linear-gradient(180deg,rgba(15,23,42,.48),rgba(15,23,42,.26));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.hc220-speedtest-run-main{min-width:0}.hc220-speedtest-run-main strong{display:block;margin:0 0 3px;color:#f8fafc;font-size:13px;line-height:1.25;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hc220-speedtest-run-main span{display:block;color:rgba(203,213,225,.74);font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hc220-speedtest-run-metrics{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:7px;min-width:350px}.hc220-speedtest-run .metric-pill{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px;min-width:0;padding:7px 9px;border:1px solid rgba(226,232,240,.09);border-radius:11px;background:rgba(2,6,23,.26);line-height:1}.hc220-speedtest-run .metric-pill small{color:rgba(148,163,184,.82);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.hc220-speedtest-run .metric-pill strong{color:#e2e8f0;font-size:14px;font-weight:900;font-variant-numeric:tabular-nums}.hc220-speedtest-run .metric-pill em{color:rgba(203,213,225,.60);font-size:9px;font-style:normal;font-weight:800}.hc220-speedtest-run .metric-pill.download{border-color:rgba(96,165,250,.20);background:rgba(37,99,235,.11)}.hc220-speedtest-run .metric-pill.upload{border-color:rgba(45,212,191,.20);background:rgba(20,184,166,.10)}@media(max-width:900px){.hc220-speedtest-run{grid-template-columns:1fr}.hc220-speedtest-run-metrics{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Latency page: use the same device tab shell, no standalone boxed wrapper. */
.latency-page .latency-tabbar span.active{flex:1;min-width:112px;text-align:center;justify-content:center;display:inline-flex;align-items:center;cursor:default;color:var(--ink);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:590;white-space:nowrap;background:rgba(99,214,201,.14);border:1px solid rgba(99,214,201,.22)}.latency-page .latency-pane.active{display:grid;gap:18px}.latency-page .latency-card{padding:var(--portal-card-padding);gap:16px}.latency-page .latency-card-head{align-items:flex-start;gap:14px;margin-bottom:0}.latency-page .latency-card-head h3{margin:2px 0 6px;color:var(--ink)}.latency-page .latency-card-head .support-buttons{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.latency-page .latency-card-head .support-buttons form{margin:0}.latency-page .latency-range-controls{margin-top:0}.latency-page .latency-summary-grid{margin:0 0 14px}.latency-page .latency-kpi strong{font-size:20px}.latency-page .latency-formula{margin:0 0 14px}.latency-page .latency-ping-form{margin-top:0}.latency-page .client-empty.compact{margin:0}@media(max-width:760px){.latency-page .latency-card-head{flex-direction:column}.latency-page .latency-card-head .support-buttons{width:100%;justify-content:flex-start}.latency-page .latency-card-head .support-buttons .btn,.latency-page .latency-card-head .support-buttons form,.latency-page .latency-card-head .support-buttons button{width:100%}}

/* Actions tab layout repair: keep controls/details inside their cards. */
.pane-actions .client-grid-two.lower{
  grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);
  align-items:start;
}
.pane-actions .support-card{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:18px;
  align-content:start;
  overflow:hidden;
}
.pane-actions .support-card > div:first-child,
.pane-actions .action-button-grid,
.pane-actions .action-button-grid form{
  min-width:0;
}
.pane-actions .action-button-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
}
.pane-actions .action-button-grid form{
  display:grid;
  gap:6px;
  margin:0;
}
.pane-actions .action-button-grid form .btn,
.pane-actions .action-button-grid form button{
  width:100%;
  min-height:42px;
}
.pane-actions .action-button-grid .field-row{
  grid-template-columns:minmax(86px,110px) minmax(0,1fr);
  align-items:center;
}
.pane-actions .action-button-grid .field-row input{
  width:100%;
  min-width:0;
}
.pane-actions .client-details{
  display:block;
  min-height:0;
  overflow:hidden;
}
.pane-actions [data-template-panel="tplink-hc220-g5-network-state"],
.pane-actions [data-template-panel="tplink-hc220-g5-event-log"]{
  grid-column:1/-1;
}
.pane-actions [data-template-panel="tplink-hc220-g5-network-state"] .hc220-topic-grid{
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
}
.pane-actions [data-template-panel="tplink-hc220-g5-network-state"] .nested-card{
  min-width:0;
}
.pane-actions .client-details summary{
  min-height:0;
  align-items:flex-start;
  padding:0;
}
.pane-actions .client-details[open] summary{
  padding-bottom:14px;
  border-bottom:1px solid rgba(148,163,184,.12);
}
.pane-actions .client-detail-list{
  margin:14px 0 0;
  grid-template-columns:minmax(118px,150px) minmax(0,1fr);
  gap:10px 16px;
}
.pane-actions .wan-mode-card{gap:16px;align-items:stretch}.wan-mode-card-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:16px;align-items:start}.wan-mode-current{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wan-mode-current>div{border:1px solid rgba(148,163,184,.14);background:rgba(15,23,42,.30);border-radius:14px;padding:10px 12px;min-width:0}.wan-mode-current dt{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.wan-mode-current dd{margin:4px 0 0;color:var(--ink);font-weight:800;overflow-wrap:anywhere}.wan-mode-control{position:relative;display:grid;gap:14px}.wan-mode-radio{position:absolute;opacity:0;pointer-events:none}.wan-mode-choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wan-mode-choice{cursor:pointer;display:grid;gap:4px;padding:14px 16px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(15,23,42,.32);box-shadow:var(--inner);transition:border-color .15s,background .15s,transform .15s}.wan-mode-choice:hover{border-color:rgba(99,214,201,.30);background:rgba(15,23,42,.46)}.wan-mode-choice strong{color:var(--ink);font-size:16px}.wan-mode-choice span{color:var(--muted);font-size:13px;line-height:1.35}.wan-mode-radio-dhcp:checked~.wan-mode-choice-row .wan-choice-dhcp,.wan-mode-radio-static:checked~.wan-mode-choice-row .wan-choice-static,.wan-mode-radio-pppoe:checked~.wan-mode-choice-row .wan-choice-pppoe{border-color:rgba(99,214,201,.55);background:linear-gradient(135deg,rgba(53,185,168,.20),rgba(59,130,246,.08));box-shadow:0 0 0 1px rgba(99,214,201,.12),var(--inner)}.wan-mode-panel{display:none;border:1px solid rgba(148,163,184,.14);border-radius:18px;background:rgba(15,23,42,.28);padding:16px;gap:14px}.wan-mode-radio-dhcp:checked~.wan-mode-panel-dhcp,.wan-mode-radio-static:checked~.wan-mode-panel-static,.wan-mode-radio-pppoe:checked~.wan-mode-panel-pppoe{display:grid}.wan-mode-panel>div{display:grid;gap:4px}.wan-mode-panel>div strong{color:var(--ink);font-size:15px}.wan-mode-panel>div span{color:var(--muted);font-size:13px;line-height:1.4}.wan-mode-panel form{margin:0;display:grid;gap:14px}.wan-mode-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wan-mode-field-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.wan-mode-field-grid input{width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.045);color:var(--ink);padding:10px 12px;outline:none}.wan-mode-field-grid input:focus{border-color:rgba(99,214,201,.45);box-shadow:0 0 0 3px rgba(99,214,201,.10)}.wan-mode-panel .btn{justify-self:start;min-width:150px}
@media(max-width:900px){.wan-mode-card-head,.wan-mode-choice-row,.wan-mode-field-grid{grid-template-columns:1fr}.wan-mode-current{grid-template-columns:1fr}}
.pane-actions .client-detail-list dd{
  min-width:0;
}
@media(max-width:980px){
  .pane-actions .client-grid-two.lower,
  .pane-actions .action-button-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .pane-actions .client-detail-list,
  .pane-actions .action-button-grid .field-row{
    grid-template-columns:1fr;
  }
}

/* Actions tab refresh consolidation polish. */
.pane-actions .action-button-grid .primary-action{
  grid-column:1/-1;
}
.pane-actions .action-button-grid .primary-action .btn{
  min-height:46px;
}

/* Auth account management */
.oauth-login-grid { display:grid; grid-template-columns:1fr; gap:0.7rem; margin:1.1rem 0 0.85rem; }
.oauth-login-grid .btn { width:100%; min-height:44px; display:flex; align-items:center; justify-content:center; text-align:center; white-space:normal; line-height:1.2; padding:0.72rem 1rem; }
.login-panel { width:min(100%,520px); }
.login-panel .section-head { margin-bottom:1rem; }
.login-panel .client-help { margin:0.65rem 0 1rem; line-height:1.45; }
.login-panel .settings-form label { display:grid; gap:0.4rem; margin-bottom:0.95rem; }
.login-panel .settings-form input { width:100%; box-sizing:border-box; }
@media (max-width:560px){ .login-panel { width:100%; } .login-panel .section-head h2 { font-size:clamp(24px,7vw,32px); } }
.tenant-users-panel { margin: 1.25rem 0; }
.tenant-user-list { display: grid; gap: 0.6rem; margin-bottom: 1rem; }
.tenant-user-form { margin-top: 0.75rem; }
.account-users-page{width:min(100%,var(--portal-page-max));margin:22px auto 0}.tenant-user-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:18px;align-items:start}.tenant-user-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:rgba(2,6,23,.18)}.tenant-user-table{width:100%;border-collapse:collapse;min-width:560px}.tenant-user-table th,.tenant-user-table td{padding:12px 14px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.tenant-user-table th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.07em;background:rgba(255,255,255,.035)}.tenant-user-table tr:last-child td{border-bottom:0}.tenant-user-table strong{color:var(--ink)}.tenant-user-invite-card .section-head{margin-bottom:10px}@media(max-width:820px){.tenant-user-layout{grid-template-columns:1fr}.tenant-user-table th,.tenant-user-table td{padding:10px 9px;font-size:13px}}
/* Premium login page: dark existing-account sign-in inspired by stacked auth layouts. */
.login-page-premium{position:relative;isolation:isolate;min-height:calc(100vh - 156px);display:grid;place-items:center;padding:clamp(22px,4vw,54px) 0;overflow:hidden}.login-page-premium:before{content:"";position:absolute;inset:-80px max(-34px,-4vw);z-index:-3;background:radial-gradient(circle at 18% 14%,rgba(45,212,191,.20),transparent 32%),radial-gradient(circle at 86% 18%,rgba(96,165,250,.18),transparent 30%),radial-gradient(circle at 68% 88%,rgba(59,130,246,.13),transparent 30%),linear-gradient(135deg,#07111d 0%,#101b2a 46%,#0b1320 100%)}.login-page-premium:after{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(148,163,184,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.045) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at center,#000 0%,transparent 72%)}.login-orb{position:absolute;z-index:-1;border-radius:999px;filter:blur(2px);opacity:.78;pointer-events:none}.login-orb-teal{width:290px;height:290px;left:7%;top:9%;background:radial-gradient(circle,rgba(45,212,191,.22),transparent 68%)}.login-orb-blue{width:360px;height:360px;right:2%;bottom:3%;background:radial-gradient(circle,rgba(96,165,250,.18),transparent 70%)}.login-stage{width:min(100%,1080px);display:grid;grid-template-columns:minmax(320px,.92fr) minmax(390px,520px);gap:26px;align-items:stretch}.login-story,.login-panel-premium{position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:28px;background:linear-gradient(145deg,rgba(15,23,42,.78),rgba(24,34,46,.66));box-shadow:0 34px 90px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(18px)}.login-story{display:flex;flex-direction:column;justify-content:space-between;min-height:610px;padding:34px}.login-story:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 22% 18%,rgba(45,212,191,.20),transparent 35%),linear-gradient(180deg,rgba(255,255,255,.055),transparent 38%);pointer-events:none}.login-brand-lockup,.login-story>.eyebrow,.login-story h1,.login-story p,.login-signal-card,.login-mini-grid{position:relative}.login-brand-lockup{display:flex;align-items:center;gap:14px;color:#e8fdfb;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.13em}.login-brand-mark{height:38px;width:auto;filter:drop-shadow(0 14px 24px rgba(0,0,0,.35))}.login-story h1{margin:12px 0 10px;color:#fff;font-size:clamp(42px,6vw,68px);line-height:.92;letter-spacing:-2.4px;font-weight:780}.login-lede{max-width:450px;color:#b8c6d6;font-size:17px;line-height:1.62;margin:0}.login-signal-card{margin-top:auto;display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:18px;border:1px solid rgba(45,212,191,.22);border-radius:20px;background:rgba(2,6,23,.34)}.login-signal-card strong,.login-signal-card small{display:block}.login-signal-card strong{color:#f8fbff;font-size:16px}.login-signal-card small{color:#94a3b8;margin-top:5px;line-height:1.35}.login-signal-dot{display:inline-block;width:11px;height:11px;margin-right:9px;border-radius:999px;background:#35d986;box-shadow:0 0 0 6px rgba(53,217,134,.14),0 0 25px rgba(53,217,134,.38)}.login-status-pill{flex-shrink:0;border:1px solid rgba(45,212,191,.30);border-radius:999px;background:rgba(45,212,191,.12);color:#b7fff5;padding:7px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.login-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.login-mini-grid span{min-width:0;border:1px solid rgba(148,163,184,.13);border-radius:15px;background:rgba(255,255,255,.045);padding:13px}.login-mini-grid strong,.login-mini-grid small{display:block}.login-mini-grid strong{color:#fff;font-size:14px}.login-mini-grid small{color:#8fa0b3;font-size:11px;margin-top:4px}.login-panel-premium{padding:clamp(26px,4vw,42px);align-self:center}.login-panel-premium:before{content:"";position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,#2dd4bf,#38bdf8,#5eead4)}.login-card-head h2{margin:5px 0 8px;color:#fff;font-size:clamp(30px,4vw,42px);line-height:1.05;letter-spacing:-1.2px}.login-card-head .muted{font-size:15px;color:#aebccd}.login-method-card{height:58px;margin:26px 0 18px;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:14px;border:1px solid rgba(148,163,184,.18);border-radius:15px;background:rgba(255,255,255,.045);color:#eef7ff;font-weight:760;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.login-method-icon{width:42px;height:100%;display:grid;place-items:center;border-right:1px solid rgba(148,163,184,.14);color:#5eead4;font-size:25px}.login-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin:2px 0 22px;color:#7f90a4;font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:850}.login-divider:before,.login-divider:after{content:"";height:1px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.26))}.login-divider:after{background:linear-gradient(90deg,rgba(148,163,184,.26),transparent)}.login-form-premium{display:grid;gap:17px}.login-form-premium label{display:grid;gap:8px;color:#c5d2e1;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.075em}.login-form-premium input{height:52px;width:100%;border:1px solid rgba(148,163,184,.20);border-radius:14px;background:rgba(2,6,23,.40);color:#f8fbff;padding:0 15px;font-size:15px;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.login-form-premium input::placeholder{color:#66778b}.login-form-premium input:focus{border-color:rgba(45,212,191,.58);background:rgba(2,6,23,.55);box-shadow:0 0 0 4px rgba(45,212,191,.10),inset 0 1px 0 rgba(255,255,255,.05)}.login-password-wrap{gap:9px}.login-password-wrap input{flex:1}.login-password-wrap .password-eye{height:52px;min-width:52px;border-radius:14px;background:rgba(2,6,23,.46)}.login-submit{height:56px;margin-top:4px;border:0;border-radius:15px;background:linear-gradient(135deg,#20d7c5,#4da3ff 58%,#69e7d8);color:#03111b;font-weight:950;letter-spacing:.02em;box-shadow:0 18px 36px rgba(45,212,191,.22),0 10px 24px rgba(77,163,255,.14);transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.login-submit:hover{transform:translateY(-1px);filter:saturate(1.08) brightness(1.03);box-shadow:0 22px 42px rgba(45,212,191,.25),0 14px 28px rgba(77,163,255,.17)}.login-footnote{margin:18px 0 0;color:#8293a7;font-size:13px;text-align:center}.login-panel-premium .danger-notice{margin:0 0 16px;border-color:rgba(239,99,126,.42);background:rgba(239,99,126,.13)}@media(max-width:980px){.login-stage{grid-template-columns:1fr;max-width:620px}.login-story{min-height:auto;gap:28px}.login-mini-grid{grid-template-columns:1fr}.login-signal-card{flex-direction:column}.login-page-premium{place-items:start center}}@media(max-width:620px){main{padding:18px}.login-page-premium{padding:8px 0 24px}.login-story,.login-panel-premium{border-radius:22px;padding:24px}.login-brand-lockup{align-items:flex-start;flex-direction:column}.login-story h1{font-size:42px}.login-method-card{grid-template-columns:38px 1fr}.login-form-premium input,.login-password-wrap .password-eye,.login-submit{height:50px}}

/* Premium login v2: dark SSO stack, no create-account CTA. */
.login-auth-stack{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin:25px 0 20px!important}.login-auth-option{height:56px!important;width:100%;justify-content:flex-start!important;gap:14px!important;border:1px solid rgba(148,163,184,.18)!important;border-radius:15px!important;background:rgba(255,255,255,.045)!important;color:#eef7ff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;font-weight:800!important;text-decoration:none!important}.login-auth-option:hover{border-color:rgba(45,212,191,.42)!important;background:rgba(45,212,191,.075)!important;color:#fff!important;transform:translateY(-1px)}.login-auth-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;border:1px solid rgba(148,163,184,.16);background:rgba(2,6,23,.34);font-weight:950}.google-icon{color:#fff;background:linear-gradient(135deg,#4285f4,#34a853 45%,#fbbc05 72%,#ea4335)}.microsoft-icon{color:#5eead4}.login-footnote a{color:#9ff8f0;text-decoration:none;font-weight:800}.login-footnote a:hover{text-decoration:underline}.login-panel-premium .notice{margin:14px 0;border-color:rgba(99,214,201,.24);background:rgba(99,214,201,.08)}

/* Local/admin login split: single-card dark auth, no SSO/create-account controls. */
.login-stage-single{grid-template-columns:minmax(360px,560px);justify-content:center}.login-panel-local{width:min(100%,560px);margin:0 auto}.login-page-local .login-panel-premium,.login-page-admin .login-panel-premium{min-height:auto}.login-page-local .login-card-head h2,.login-page-admin .login-card-head h2{font-size:clamp(34px,4.2vw,48px)}.login-page-local .login-card-head,.login-page-admin .login-card-head{text-align:left}.admin-login-panel:before{background:linear-gradient(90deg,#38bdf8,#2dd4bf,#a7f3d0)}.admin-login-submit{background:linear-gradient(135deg,#38bdf8,#2dd4bf 56%,#a7f3d0)}.login-panel-local .login-form-premium{margin-top:24px}.login-stage-single .login-footnote{margin-top:18px}.login-page-local .login-auth-stack,.login-page-admin .login-auth-stack{display:none!important}@media(max-width:620px){.login-stage-single{grid-template-columns:1fr}.login-panel-local{width:100%}}

/* TOTP email setup flow. */
.totp-setup-box{display:grid;gap:12px;margin:20px 0 18px;padding:16px;border:1px solid rgba(45,212,191,.22);border-radius:16px;background:rgba(2,6,23,.30)}.totp-setup-box label{display:grid;gap:7px;color:#c5d2e1;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.075em}.totp-setup-box input,.totp-setup-box textarea{width:100%;border:1px solid rgba(148,163,184,.20);border-radius:12px;background:rgba(2,6,23,.42);color:#f8fbff;padding:12px 13px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;outline:none;resize:vertical}.totp-confirm-panel{width:min(100%,640px)}

/* Login/auth v3: match the OCC app shell instead of using a standalone splash background. */
.captcha-box{margin:4px 0 2px;min-height:0}.captcha-box .cf-turnstile,.captcha-box .g-recaptcha{display:flex;justify-content:center}.totp-qr-card{display:grid;gap:10px;place-items:center;text-align:center;padding:16px;border:1px solid rgba(99,214,201,.24);border-radius:16px;background:rgba(255,255,255,.045)}.totp-qr-card img{width:220px;max-width:100%;height:auto;border-radius:12px;background:#fff;padding:12px}.totp-qr-card span{color:var(--muted);font-size:13px;line-height:1.4}
.login-page-premium{width:min(100%,var(--portal-page-max));min-height:auto;margin:22px auto 0;padding:clamp(18px,3vw,34px) 16px;display:grid;place-items:center;overflow:visible;background:transparent}.login-page-premium:before,.login-page-premium:after,.login-orb{display:none!important}.login-stage{width:min(100%,var(--portal-page-max));gap:var(--portal-page-gap);align-items:start}.login-stage-single{grid-template-columns:minmax(0,520px);justify-content:center}.login-panel-premium{border-radius:var(--portal-radius-card);border:1px solid var(--portal-card-border);background:var(--portal-panel-bg);box-shadow:var(--shadow),var(--inner);backdrop-filter:none;padding:var(--portal-card-padding)}.login-panel-local{width:min(100%,520px);margin:0 auto}.login-card-head h2,.login-page-local .login-card-head h2,.login-page-admin .login-card-head h2{font-size:clamp(28px,3vw,36px);line-height:1.05;margin:6px 0 8px}.login-card-head .muted{max-width:42rem}.login-panel-local .login-form-premium{margin-top:18px}.login-stage-single .login-footnote{margin-top:16px;line-height:1.55}.login-password-wrap{background:transparent}.login-submit,.admin-login-submit{min-height:44px;border-radius:12px}.login-page-premium .settings-form label{color:#dbeafe}.login-page-premium .settings-form input{background:rgba(2,6,23,.42);border:1px solid rgba(148,163,184,.26);border-radius:12px;color:#e5f2ff}.login-page-premium .settings-form input:focus{border-color:rgba(99,214,201,.48);box-shadow:0 0 0 3px rgba(99,214,201,.10);outline:none}@media(max-width:620px){.login-page-premium{padding:16px 0}.login-stage-single{grid-template-columns:1fr}.login-panel-local{width:100%}.login-panel-premium{padding:18px}}

/* Account users readable card layout. */
.account-users-readable .tenant-user-layout{grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:20px;align-items:start}.account-users-readable .tenant-user-list-card{min-width:0}.tenant-user-card-list{display:grid;gap:16px}.tenant-user-card{display:grid;gap:16px;padding:16px;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:rgba(2,6,23,.20);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.tenant-user-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.tenant-user-card-head h4{margin:4px 0 3px;font-size:20px;line-height:1.15;color:var(--ink);overflow-wrap:anywhere}.tenant-user-email{margin:0;color:var(--muted);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13px;overflow-wrap:anywhere}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:82px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;border:1px solid rgba(255,255,255,.14);white-space:nowrap}.status-good{color:#a7f3d0;background:rgba(16,185,129,.12);border-color:rgba(52,211,153,.25)}.status-bad{color:#fecdd3;background:rgba(244,63,94,.12);border-color:rgba(251,113,133,.28)}.tenant-user-control-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.tenant-user-control-card{display:grid;gap:12px;margin:0;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(15,23,42,.28);min-width:0}.control-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.control-card-head h5{margin:3px 0 0;font-size:15px;color:var(--ink)}.permission-chip-grid,.twofa-method-list,.passkey-list{display:flex;flex-wrap:wrap;gap:8px}.permission-chip,.passkey-remove{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;padding:8px 10px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:rgba(255,255,255,.045);color:var(--text);font-size:13px;font-weight:750;line-height:1.2;text-transform:none!important;letter-spacing:0!important}.permission-chip input,.passkey-remove input{width:auto!important;margin:0;accent-color:var(--teal)}.passkey-summary{display:grid;gap:8px}.passkey-summary strong{color:var(--ink)}.passkey-summary .client-help{margin:0;line-height:1.45}.tenant-user-actions{display:flex;justify-content:flex-end;padding-top:2px}.tenant-user-actions form{margin:0}.btn-danger{background:linear-gradient(135deg,#ef637e,#f97373);border-color:rgba(255,255,255,.14);color:#fff}.btn-danger:hover{filter:brightness(1.05)}@media(max-width:1080px){.account-users-readable .tenant-user-layout{grid-template-columns:1fr}.tenant-user-control-grid{grid-template-columns:1fr}}@media(max-width:640px){.tenant-user-card-head,.control-card-head{flex-direction:column;align-items:stretch}.tenant-user-actions{justify-content:stretch}.tenant-user-actions .btn{width:100%}}

/* Account users scalable row layout. */
.account-users-scalable .tenant-user-layout{grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:20px;align-items:start}.tenant-user-row-list{display:grid;gap:12px}.tenant-user-row{border:1px solid rgba(148,163,184,.18);border-radius:18px;background:rgba(2,6,23,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);overflow:hidden}.tenant-user-summary-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,.9fr);gap:14px;align-items:center;padding:14px 16px}.tenant-user-primary{display:flex;align-items:center;gap:13px;min-width:0}.avatar-badge{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,rgba(45,212,191,.22),rgba(96,165,250,.14));border:1px solid rgba(99,214,201,.22);color:#dffdfa;font-weight:950}.tenant-user-primary h4{margin:0 0 3px;color:var(--ink);font-size:17px;line-height:1.15;overflow-wrap:anywhere}.tenant-user-summary-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}.summary-chip{display:inline-flex;align-items:center;min-height:30px;padding:6px 9px;border:1px solid rgba(148,163,184,.16);border-radius:999px;background:rgba(255,255,255,.045);color:var(--text);font-size:12px;font-weight:760;line-height:1.2}.user-manage-panel{border-top:1px solid rgba(255,255,255,.08)}.user-manage-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:12px 16px;color:#bdeee8;font-weight:850;background:rgba(15,23,42,.30)}.user-manage-panel>summary::-webkit-details-marker{display:none}.user-manage-panel>summary:after{content:'Open';font-size:12px;color:var(--muted);font-weight:800}.user-manage-panel[open]>summary:after{content:'Close'}.user-manage-panel>summary small{color:var(--muted);font-weight:650}.user-manage-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 16px;background:rgba(2,6,23,.12)}.user-manage-card{display:grid;gap:12px;min-width:0;margin:0;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(15,23,42,.26)}.danger-zone-card{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center}.user-manage-card .client-help{margin:.25rem 0 0;line-height:1.45}.account-users-scalable .tenant-user-control-grid,.account-users-scalable .tenant-user-card-list,.account-users-scalable .tenant-user-card{display:contents}@media(max-width:1080px){.account-users-scalable .tenant-user-layout{grid-template-columns:1fr}.tenant-user-summary-row{grid-template-columns:1fr}.tenant-user-summary-meta{justify-content:flex-start}.user-manage-body{grid-template-columns:1fr}.danger-zone-card{grid-template-columns:1fr}}@media(max-width:640px){.tenant-user-summary-row,.user-manage-body{padding:12px}.user-manage-panel>summary{align-items:flex-start;flex-direction:column}.summary-chip{max-width:100%}.danger-zone-card .btn{width:100%}}


/* Passkey enrollment controls. */
.passkey-enroll-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid rgba(148,163,184,.14)}
.passkey-enroll-actions .btn{white-space:nowrap}
.passkey-enroll-actions [data-passkey-status]{flex:1 1 220px;min-width:0}

.passkey-label-field{display:grid;gap:5px;min-width:220px;flex:1 1 240px;color:var(--text);font-size:12px;font-weight:800}.passkey-label-field input{width:100%;min-height:38px;border-radius:10px;border:1px solid rgba(148,163,184,.22);background:rgba(15,23,42,.58);color:var(--ink);padding:8px 10px}

/* Tenant users clearer access + 2FA action UI. */
.account-users-clear-actions .access-level-options{display:grid;gap:10px}
.account-users-clear-actions .access-level-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(15,23,42,.34);cursor:pointer}
.account-users-clear-actions .access-level-option:has(input:checked){border-color:rgba(45,212,191,.55);background:rgba(20,184,166,.12)}
.account-users-clear-actions .access-level-option input{margin-top:3px;accent-color:#14b8a6}
.account-users-clear-actions .access-level-option span{display:grid;gap:4px}
.account-users-clear-actions .access-level-option strong{color:var(--ink);font-size:14px}
.account-users-clear-actions .access-level-option small,.account-users-clear-actions .twofa-action-row small{color:var(--muted);font-size:12px;line-height:1.35}
.account-users-clear-actions .twofa-action-card{gap:16px}
.account-users-clear-actions .twofa-action-list,.account-users-clear-actions .passkey-action-list{display:grid;gap:10px}
.account-users-clear-actions .twofa-action-row,.account-users-clear-actions .passkey-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(148,163,184,.16);border-radius:14px;background:rgba(2,6,23,.18)}
.account-users-clear-actions .twofa-action-row>div{display:grid;gap:4px}
.account-users-clear-actions .twofa-action-row form,.account-users-clear-actions .passkey-action-row form{margin:0;display:flex;justify-content:flex-end}
.account-users-clear-actions .passkey-action-row span{font-weight:800;color:var(--ink)}
@media (max-width:720px){.account-users-clear-actions .twofa-action-row,.account-users-clear-actions .passkey-action-row{grid-template-columns:1fr}.account-users-clear-actions .twofa-action-row form,.account-users-clear-actions .passkey-action-row form{justify-content:flex-start}}


/* Tenant users final polish: tighter copy, cleaner rows. */
.account-users-polished .tenant-user-list-card .compact-head{margin-bottom:10px}
.account-users-polished .user-manage-panel summary{padding:11px 16px}
.account-users-polished .user-manage-body{gap:12px;padding:14px}
.account-users-polished .user-manage-card{padding:14px;gap:12px}
.account-users-polished .control-card-head{gap:10px;align-items:center}
.account-users-polished .control-card-head h5{margin-top:2px}
.account-users-polished .access-level-option{padding:11px 12px}
.account-users-polished .twofa-action-row,.account-users-polished .passkey-action-row{padding:10px 12px}
.account-users-polished .tenant-user-summary-row{padding:13px 16px}
.account-users-polished .client-help{line-height:1.35}
.account-users-polished .btn.btn-secondary{white-space:nowrap}


/* Admin tenant directory and add-tenant panel. */
.tenant-admin-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start;margin-top:16px}
.tenant-create-card,.tenant-directory-card{min-width:0}
.tenant-create-form{margin-top:8px}
.tenant-directory-search{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:end;margin:0 0 14px;padding:12px}
.tenant-directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.tenant-account-card h3{overflow-wrap:anywhere}
@media (max-width:860px){.tenant-admin-layout{grid-template-columns:1fr}.tenant-directory-search{grid-template-columns:1fr}.tenant-directory-search .btn{width:100%}}


/* Admin tenant deletion guard. */
.tenant-danger-panel{border-color:rgba(248,113,113,.28);background:linear-gradient(135deg,rgba(127,29,29,.18),rgba(2,6,23,.26))}
.tenant-delete-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;margin-top:8px}
.tenant-delete-form .btn-danger{white-space:nowrap}
@media (max-width:720px){.tenant-delete-form{grid-template-columns:1fr}.tenant-delete-form .btn-danger{width:100%}}

/* Device operator UI framework v1: one shell for Nokia Beacon 3.1, Beacon 6, and device subpages. */
:root{
  --device-ui-page-max:var(--portal-page-max,1180px);
  --device-ui-gap:18px;
  --device-ui-card-radius:18px;
  --device-ui-control-radius:12px;
  --device-ui-card-pad:22px;
  --device-ui-card-bg:rgba(255,255,255,.04);
  --device-ui-card-border:rgba(255,255,255,.10);
  --device-ui-nav-bg:rgba(15,23,42,.34);
  --device-ui-nav-active-bg:rgba(99,214,201,.14);
  --device-ui-nav-active-border:rgba(99,214,201,.22);
}
.gateway-hero,.device-hero,.client-page.operator-console,.gateway-notice,.summary-grid{
  width:min(100%,var(--device-ui-page-max));
  max-width:var(--device-ui-page-max);
  margin-left:auto;
  margin-right:auto;
}
.client-page.operator-console{
  margin-top:22px;
  display:grid;
  gap:var(--device-ui-gap);
  align-items:stretch;
}
.client-tabbar.device-nav,.client-page.operator-console>.client-tabbar{
  width:100%;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
  gap:8px;
  padding:8px;
  border:1px solid var(--device-ui-card-border);
  border-radius:var(--device-ui-card-radius);
  background:var(--device-ui-nav-bg);
  box-shadow:var(--inner);
  overflow:visible;
}
.client-tabbar.device-nav :is(label,a,span.active),.client-page.operator-console>.client-tabbar :is(label,a,span.active){
  min-height:42px;
  width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:10px 14px;
  border:1px solid transparent;
  border-radius:var(--device-ui-control-radius);
  color:var(--muted);
  font-size:14px;
  line-height:1.15;
  font-weight:650;
  text-align:center;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
}
.client-tabbar.device-nav a,.client-page.operator-console>.client-tabbar a{color:var(--muted)}
.client-tabbar.device-nav a span,.client-page.operator-console>.client-tabbar a span{display:block}
.client-tabbar.device-nav :is(a.active,span.active),.client-page.operator-console>.client-tabbar :is(a.active,span.active),
#tab-overview:checked ~ .client-tabbar.device-nav label[for=tab-overview],
#tab-wifi:checked ~ .client-tabbar.device-nav label[for=tab-wifi],
#tab-clients:checked ~ .client-tabbar.device-nav label[for=tab-clients],
#tab-firmware:checked ~ .client-tabbar.device-nav label[for=tab-firmware],
#tab-diagnostics:checked ~ .client-tabbar.device-nav label[for=tab-diagnostics],
#tab-actions:checked ~ .client-tabbar.device-nav label[for=tab-actions]{
  color:var(--ink);
  background:var(--device-ui-nav-active-bg);
  border-color:var(--device-ui-nav-active-border);
}
.client-tabbar.device-nav a:hover,.client-page.operator-console>.client-tabbar a:hover,
.client-tabbar.device-nav label:hover,.client-page.operator-console>.client-tabbar label:hover{
  color:var(--ink);
  border-color:rgba(99,214,201,.18);
  background:rgba(99,214,201,.08);
}
.client-tabbar.device-nav a small,.client-page.operator-console>.client-tabbar a small{
  display:block;
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#a8fff4;
  font-size:10px;
  line-height:1.1;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.client-tabbar.device-nav a.has-subview,.client-page.operator-console>.client-tabbar a.has-subview{display:grid;place-items:center;gap:2px}
.client-pane.active,.latency-pane.active{display:grid;gap:var(--device-ui-gap);width:100%}
.client-pane>.client-card,.client-page.operator-console .client-card,.client-page.operator-console .client-stat,.client-page.operator-console .client-detail-console-card,.client-page.operator-console .client-detail-mini-panel,.client-page.operator-console .client-detail-section{
  border-color:var(--device-ui-card-border);
  border-radius:var(--device-ui-card-radius);
  background:var(--device-ui-card-bg);
  box-shadow:var(--inner);
}
.client-page.operator-console .client-card,.client-page.operator-console .client-detail-console-card{padding:var(--device-ui-card-pad)}
.client-page.operator-console .client-card-head{margin-bottom:0;gap:18px;align-items:flex-start}
.client-page.operator-console .support-buttons{gap:10px;align-items:center}
.client-page.operator-console :is(.btn,.btn-secondary,.mini-action-btn,.range-pill){border-radius:var(--device-ui-control-radius)}
@media(max-width:760px){
  .client-tabbar.device-nav,.client-page.operator-console>.client-tabbar{grid-template-columns:1fr 1fr}
  .client-tabbar.device-nav :is(label,a,span.active),.client-page.operator-console>.client-tabbar :is(label,a,span.active){min-width:0;white-space:normal}
}
@media(max-width:480px){.client-tabbar.device-nav,.client-page.operator-console>.client-tabbar{grid-template-columns:1fr}}

/* HC220 compact extra SSID + advanced Wi-Fi drawer */
.hc220-extra-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0 10px;padding:13px 15px;border:1px solid rgba(45,212,191,.18);border-radius:16px;background:rgba(15,23,42,.34)}
.hc220-extra-strip strong{display:block;color:#e5edf6;font-size:16px;margin:2px 0 3px}.hc220-extra-strip span{display:block;color:#9fb0c3;font-size:12.5px;line-height:1.4}.hc220-slot-pills{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;min-width:260px}.hc220-slot-pills span{border:1px solid rgba(148,163,184,.14);border-radius:999px;padding:6px 9px;background:rgba(2,6,23,.24);color:#c8d6e4;font-size:11.5px;white-space:nowrap}.hc220-advanced-drawer{margin-top:10px!important;border-color:rgba(148,163,184,.16)!important;background:rgba(2,6,23,.18)!important}.hc220-advanced-body{display:grid;gap:14px;padding:14px}.hc220-advanced-intro{padding:0 0 12px;border-bottom:1px solid rgba(148,163,184,.12)}.hc220-advanced-intro h3{margin:2px 0 5px;font-size:17px}.hc220-compact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.hc220-compact-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:10px;border:1px solid rgba(148,163,184,.14);border-radius:13px;background:rgba(15,23,42,.32)}.hc220-compact-form label{font-size:12px;color:#94a3b8}.hc220-compact-form input,.hc220-compact-form select{width:100%}.hc220-toggle-table{display:grid;gap:8px}.hc220-toggle-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(130px,170px) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:rgba(15,23,42,.24)}.hc220-toggle-row strong{display:block;color:#e5edf6;font-size:14px}.hc220-toggle-row span{display:block;color:#94a3b8;font-size:12px;line-height:1.35}.hc220-toggle-row select{width:100%}@media(max-width:980px){.hc220-extra-strip{align-items:flex-start;flex-direction:column}.hc220-slot-pills{justify-content:flex-start;min-width:0}.hc220-compact-actions{grid-template-columns:1fr}.hc220-toggle-row{grid-template-columns:1fr}.hc220-toggle-row .btn,.hc220-compact-form .btn{width:100%}}

/* HC220 advanced Wi-Fi suite v3 — premium operator layout */
.hc220-advanced-suite{margin:18px 0 0!important;border:1px solid rgba(45,212,191,.24)!important;border-radius:20px!important;background:linear-gradient(180deg,rgba(15,23,42,.62),rgba(8,15,26,.48))!important;box-shadow:var(--inner),0 18px 50px rgba(2,6,23,.22)!important;overflow:hidden!important}.hc220-advanced-suite>summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;background:linear-gradient(90deg,rgba(20,184,166,.12),rgba(96,165,250,.06),transparent)!important}.hc220-advanced-suite>summary::-webkit-details-marker{display:none}.hc220-advanced-suite>summary strong{display:block;color:#eef7fb;font-size:20px;font-weight:760;letter-spacing:-.01em}.hc220-advanced-suite>summary small{display:block;color:#9fb0c3;font-size:12.5px;margin-top:4px}.hc220-kicker{display:block;color:#5eead4!important;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}.hc220-summary-action{flex:0 0 auto;border:1px solid rgba(94,234,212,.28);border-radius:999px;background:rgba(94,234,212,.10);color:#d9fffb;font-weight:800;font-size:13px;padding:9px 13px}.hc220-advanced-suite[open] .hc220-summary-action{background:rgba(94,234,212,.18);border-color:rgba(94,234,212,.42)}.hc220-suite-body{display:grid!important;gap:18px!important;padding:18px 20px 20px!important;border-top:1px solid rgba(148,163,184,.12)!important}.hc220-slot-board{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}.hc220-slot-card{position:relative;min-height:118px;padding:16px;border:1px solid rgba(148,163,184,.14);border-radius:17px;background:rgba(15,23,42,.42);overflow:hidden}.hc220-slot-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:rgba(148,163,184,.36)}.hc220-slot-card.primary:before{background:linear-gradient(90deg,#35b9a8,#63d6c9)}.hc220-slot-card.secondary:before{background:linear-gradient(90deg,#60a5fa,#63d6c9)}.hc220-slot-card.guest:before{background:linear-gradient(90deg,#a78bfa,#60a5fa)}.hc220-slot-card.internal:before{background:linear-gradient(90deg,#64748b,#94a3b8)}.hc220-slot-card span{display:inline-flex;color:#06111a;background:#63d6c9;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.hc220-slot-card.guest span{background:#c4b5fd}.hc220-slot-card.internal span{background:#94a3b8}.hc220-slot-card strong{display:block;color:#f4f8fb;font-size:20px;margin:14px 0 7px}.hc220-slot-card small{display:block;color:#9fb0c3;font-size:12.5px;line-height:1.45}.hc220-feature-section{display:grid!important;gap:13px!important;padding:16px;border:1px solid rgba(148,163,184,.12);border-radius:18px;background:rgba(2,6,23,.18)}.hc220-section-title{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:18px!important}.hc220-section-title h3{margin:0!important;color:#f3f8fb!important;font-size:22px!important;letter-spacing:-.015em}.hc220-section-title p{margin:0!important;max-width:520px;color:#9fb0c3;font-size:12.5px;line-height:1.45;text-align:right}.hc220-command-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}.hc220-command-card{display:grid!important;grid-template-rows:auto 1fr auto!important;gap:12px!important;min-height:188px!important;padding:15px!important;border:1px solid rgba(94,234,212,.16)!important;border-radius:16px!important;background:linear-gradient(180deg,rgba(30,41,59,.70),rgba(15,23,42,.48))!important}.hc220-command-card strong{display:block;color:#f3f8fb;font-size:16px}.hc220-command-card span{display:block;color:#9fb0c3;font-size:12px;line-height:1.4;margin-top:4px}.hc220-command-card label{display:grid!important;gap:6px!important;color:#aab8c6!important;font-size:12px!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.045em}.hc220-command-card input,.hc220-command-card select{width:100%!important;min-height:42px!important;border-radius:12px!important;background:rgba(7,13,26,.74)!important;border:1px solid rgba(148,163,184,.18)!important;color:#f5f9fc!important;padding:10px 12px!important}.hc220-command-card .btn{width:100%!important;min-height:40px!important}.hc220-feature-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.hc220-feature-card{display:grid!important;grid-template-columns:minmax(260px,1fr) minmax(210px,260px)!important;gap:14px!important;align-items:center!important;padding:13px 14px!important;border:1px solid rgba(148,163,184,.12)!important;border-radius:15px!important;background:rgba(15,23,42,.34)!important}.hc220-feature-copy span{display:inline-flex;color:#7dd3fc;border:1px solid rgba(125,211,252,.20);background:rgba(56,189,248,.08);border-radius:999px;padding:3px 8px;font-size:10.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px}.hc220-feature-copy strong{display:block;color:#edf6fb;font-size:15px;margin-bottom:3px}.hc220-feature-copy small{display:block;color:#98a9ba;font-size:12px;line-height:1.38}.hc220-feature-control{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important}.hc220-feature-control select{width:100%!important;min-height:40px!important;border-radius:12px!important;background:rgba(7,13,26,.74)!important;border:1px solid rgba(148,163,184,.18)!important;color:#f5f9fc!important;padding:9px 11px!important}.hc220-feature-control .btn{min-height:40px!important;padding-inline:14px!important}@media(max-width:1100px){.hc220-slot-board,.hc220-command-grid,.hc220-feature-grid{grid-template-columns:1fr 1fr!important}.hc220-feature-card{grid-template-columns:1fr!important}.hc220-section-title{align-items:flex-start!important;flex-direction:column!important}.hc220-section-title p{text-align:left!important}}@media(max-width:720px){.hc220-slot-board,.hc220-command-grid,.hc220-feature-grid{grid-template-columns:1fr!important}.hc220-advanced-suite>summary{align-items:flex-start!important;flex-direction:column!important}.hc220-summary-action{width:100%;text-align:center}.hc220-feature-control{grid-template-columns:1fr!important}.hc220-feature-control .btn{width:100%!important}}

/* HC220 advanced suite open/closed affordance */
.hc220-summary-action{font-size:0!important}.hc220-summary-action:after{content:'Open controls';font-size:13px}.hc220-advanced-suite[open] .hc220-summary-action:after{content:'Close controls'}

/* HC220 guest Wi-Fi compact pass v5 */
.hc220-guest-suite .hc220-suite-body{gap:12px!important;padding:14px 16px 16px!important}.hc220-guest-suite .hc220-feature-section{margin:0!important}.hc220-guest-compact{border:1px solid rgba(94,234,212,.18);border-radius:16px;background:rgba(15,23,42,.34);padding:14px!important}.hc220-guest-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.hc220-guest-title h3{margin:0;color:#eef7fb;font-size:17px;line-height:1.2}.hc220-guest-compact-form{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1.2fr) minmax(95px,.55fr) minmax(150px,.8fr) auto;gap:10px;align-items:end}.hc220-guest-compact-form label{min-width:0;font-size:12px;color:#9fb0c3}.hc220-guest-compact-form input{width:100%;min-width:0}.hc220-guest-limit input{text-align:center}.hc220-guest-compact-form .wifi-guest-switches{gap:6px}.hc220-guest-compact-form .switch-row{white-space:nowrap}.hc220-guest-compact-form .btn{white-space:nowrap}@media(max-width:1180px){.hc220-guest-compact-form{grid-template-columns:1fr 1fr}.hc220-guest-compact-form .btn{width:100%}}@media(max-width:720px){.hc220-guest-title{flex-direction:column}.hc220-guest-compact-form{grid-template-columns:1fr}.hc220-guest-compact-form .switch-row{white-space:normal}}

/* HC220 TAUC-mapped Wi-Fi/RF controls v6 */
.wifi-feature-toggle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:7px;margin:8px 0 10px;padding:9px;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:rgba(15,23,42,.22)}.wifi-feature-toggle-grid .switch-row{margin:0;font-size:12px}.hc220-radio-compact{padding:14px!important}.hc220-radio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px}.hc220-radio-card{border:1px solid rgba(148,163,184,.15);border-radius:15px;background:rgba(15,23,42,.30);padding:12px;display:grid;gap:10px}.hc220-radio-card .wifi-radio-card-head{align-items:flex-start}.hc220-radio-card .wifi-radio-settings-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.hc220-radio-card .wifi-channel-options{max-height:120px;overflow:auto}.hc220-radio-card .wifi-radio-hint{margin:0;color:#8ea1b5;font-size:11.5px}@media(max-width:720px){.hc220-radio-grid{grid-template-columns:1fr}.wifi-feature-toggle-grid{grid-template-columns:1fr}}

/* HC220 TAUC operations panel v7 */
.hc220-operations-panel{margin:18px 0;padding:16px;border:1px solid rgba(94,234,212,.18);border-radius:18px;background:linear-gradient(135deg,rgba(15,23,42,.88),rgba(8,47,73,.55));}
.hc220-ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:12px;}
.hc220-op-card{display:flex;flex-direction:column;gap:6px;padding:13px 14px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(15,23,42,.72);box-shadow:0 8px 24px rgba(0,0,0,.18);}
.hc220-op-card small{color:#5eead4;text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:.72rem;}
.hc220-op-card strong{color:#f8fafc;font-size:1.02rem;line-height:1.2;}
.hc220-op-card span,.hc220-op-card em{color:#cbd5e1;font-size:.86rem;line-height:1.35;}
.hc220-op-card em{color:#94a3b8;font-style:normal;}
.hc220-guest-compact-form select{min-width:100%;}
.hc220-secondary-compact{border:1px solid rgba(94,234,212,.16);border-radius:16px;background:rgba(15,23,42,.30);padding:14px!important}.hc220-secondary-grid,.hc220-management-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:10px}.hc220-secondary-grid form,.hc220-secondary-feature-grid form,.hc220-management-action-grid form{display:grid;gap:8px;align-content:end}.hc220-secondary-feature-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.latency-selected-value-line,.latency-grid-line.selected-value{stroke:#f8fafc;stroke-width:1.2;stroke-dasharray:6 5;opacity:.55}.latency-y-label.selected-value{fill:#f8fafc;font-weight:900;font-size:12px;paint-order:stroke;stroke:#020617;stroke-width:4px}

/* Nokia USP mesh unit overview */
.mesh-units-stat .mesh-unit-list{display:grid;gap:6px;margin-top:8px}.mesh-units-stat .mesh-unit-line{display:block;text-decoration:none;border:1px solid rgba(94,234,212,.18);border-radius:10px;padding:7px 8px;background:rgba(15,23,42,.26)}.mesh-units-stat .mesh-unit-line span{display:block;color:#e5f7f5;font-weight:800;font-size:12px}.mesh-units-stat .mesh-unit-line small{display:block;color:#9fb0c3;font-size:11px;line-height:1.35;margin-top:2px}
