/* VEGA Visibilidade — visual do Vega Design System (claude.ai/design, projeto a7cc03).
   Temas claro e escuro, Poppins, ações em pílula, cards com luz de borda superior.
   Só aparência: ids, classes e textos do HTML/JS continuam os mesmos. */

/* Poppins hospedada localmente (OFL, assets/fonts/OFL.txt): a CSP só permite fontes do próprio servidor */
@font-face{font-family:"Poppins";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/poppins-latin-300.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/poppins-latin-400.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-latin-500.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-latin-600.woff2) format("woff2")}

/* ---------- Tokens ---------- */
:root{
  color-scheme:dark;
  --neutral-rgb:229,235,245;
  --coral:#fc6845;--coral-400:#ff8969;--coral-a12:rgba(252,104,69,.12);--coral-a20:rgba(252,104,69,.2);--coral-a35:rgba(252,104,69,.35);
  --blue:var(--coral);--blue-400:var(--coral-400);--mint:#85d1b1;--amber:#f5a524;
  --surface-page:#0b0f16;--surface-shell:#0e131c;--surface-sunken:#090d14;--surface-card:#121923;--surface-card-hover:#182231;
  --surface-raised:#1a2431;--surface-input:#111925;--surface-input-focus:#172231;--surface-track:#263243;
  --surface-inverse:#f1f5fb;--surface-glass:rgba(12,17,25,.84);
  --text-primary:#f1f5fb;--text-secondary:#b7c2d2;--text-tertiary:#8997aa;--text-disabled:#566276;--text-inverse:#101722;
  --border-subtle:rgba(var(--neutral-rgb),.075);--border-default:rgba(var(--neutral-rgb),.12);--border-strong:rgba(var(--neutral-rgb),.22);
  --status-critical:#ff795f;--status-critical-bg:rgba(255,121,95,.14);
  --status-medium:#f3bd65;--status-medium-bg:rgba(243,189,101,.14);
  --status-success:#60d5ac;--status-success-bg:rgba(96,213,172,.14);
  --rim-top:inset 0 1px 0 rgba(var(--neutral-rgb),.075);
  --elev-card:var(--rim-top),0 8px 24px rgba(0,0,0,.2);
  --elev-popover:inset 0 0 0 1px rgba(var(--neutral-rgb),.12),0 18px 48px rgba(0,0,0,.42);
  --elev-modal:inset 0 0 0 1px rgba(var(--neutral-rgb),.12),0 32px 80px rgba(0,0,0,.56);
  --ring-focus:0 0 0 2px var(--surface-page),0 0 0 4px rgba(255,137,105,.7);
  --glow-neutral:radial-gradient(120% 90% at 50% 130%,rgba(var(--neutral-rgb),.045) 0%,rgba(var(--neutral-rgb),0) 70%);
  --glow-info:radial-gradient(120% 90% at 50% 130%,rgba(252,104,69,.16) 0%,rgba(252,104,69,0) 70%);
  --r-input:8px;--r-card:12px;--r-card-lg:16px;--r-panel:20px;--r-full:999px;
  --ease:cubic-bezier(.2,0,0,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --t-hover:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease);
  --font:"Poppins","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --sidebar-w:248px;--topbar-h:64px;
  /* nomes antigos, mantidos para qualquer uso fora deste arquivo */
  --bg:var(--surface-page);--surface:var(--surface-card);--border:var(--border-subtle);--muted:var(--text-tertiary);--text:var(--text-primary);--orange:var(--coral)
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--surface-page);color:var(--text-primary);font:400 14px/1.45 var(--font);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* light sweep da marca: uma vez, canto superior direito, sumindo para baixo */
body::before{content:'';position:fixed;top:0;right:0;width:62%;height:420px;pointer-events:none;z-index:0;
  background:radial-gradient(60% 70% at 85% 0%,rgba(var(--neutral-rgb),.10) 0%,rgba(var(--neutral-rgb),0) 70%),radial-gradient(40% 40% at 100% 0%,rgba(var(--neutral-rgb),.08) 0%,rgba(var(--neutral-rgb),0) 70%)}
button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.4;cursor:not-allowed}
a{color:inherit;text-decoration:none;transition:var(--t-hover)}
.hidden,[hidden]{display:none!important}
.muted{color:var(--text-tertiary)}
:focus-visible{outline:none;box-shadow:var(--ring-focus)}
::selection{background:var(--coral-a35);color:var(--text-primary)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--scroll-thumb,#26262a);border-radius:var(--r-full);border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover,#303035);background-clip:content-box}
strong,b,td{font-variant-numeric:tabular-nums}

/* ---------- Marca ---------- */
.brand{display:flex;align-items:center;gap:12px;color:var(--text-primary)}
.vega-logo{width:88px;height:auto;display:block}
.product-name{color:var(--text-tertiary);font-size:10px;font-weight:500;letter-spacing:.1em;border-left:1px solid var(--border-strong);padding-left:12px}
.brand-icon,.brand small{display:none}

/* ---------- Menu lateral ---------- */
aside{width:var(--sidebar-w);position:fixed;inset:0 auto 0 0;z-index:20;background:var(--surface-shell);border-right:1px solid var(--border-subtle);color:var(--text-secondary);padding:20px 14px;overflow-y:auto;display:flex;flex-direction:column}
aside>.brand{height:24px;padding:0 8px}
.nav-label{font-size:11px;font-weight:500;letter-spacing:.1em;color:var(--text-tertiary);margin:36px 12px 10px}
nav{display:grid;gap:2px}
nav button{position:relative;display:flex;gap:10px;align-items:center;text-align:left;min-height:42px;padding:10px;white-space:nowrap;border:0;border-radius:var(--r-card);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;line-height:1.3;transition:var(--t-hover),transform 80ms var(--ease)}
nav button:hover{background:rgba(var(--neutral-rgb),.05);color:var(--text-primary)}
nav button:active{transform:scale(.98)}
nav button.selected{background:rgba(var(--neutral-rgb),.08);color:var(--text-primary)}
.mobile-more-menu{display:contents}
nav [data-view=links]{order:1}nav [data-view=monitor]{order:2}nav [data-view=history]{order:3}nav [data-view=incidents]{order:4}nav [data-view=reports]{order:5}nav [data-view=manage]{order:6}nav [data-view=users]{order:7}nav [data-view=account]{order:8}
#mobile-more,.mobile-more-scrim{display:none}
nav button.selected::before{content:'';position:absolute;left:-14px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--coral)}
.nav-icon{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;color:var(--text-tertiary);transition:color 140ms var(--ease)}
nav button:hover .nav-icon,nav button.selected .nav-icon{color:var(--text-primary)}
.aside-foot{margin-top:auto;padding:16px 12px 0;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}
.aside-foot small{display:block;color:var(--text-tertiary);margin-top:6px;font-size:11px}
.dot{display:inline-block;width:7px;height:7px;background:var(--mint);border-radius:50%;margin-right:8px;box-shadow:0 0 0 3px rgba(133,209,177,.16)}

/* ---------- Barra superior ---------- */
.workspace{position:relative;z-index:1;margin-left:var(--sidebar-w);min-width:0}
.workspace>header{position:sticky;top:0;z-index:15;height:var(--topbar-h);background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:13px}
.workspace>header>div:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#breadcrumb{color:var(--text-primary);font-weight:500}
.slash{margin:0 10px;color:var(--text-disabled)}
.header-right{display:flex;gap:10px;align-items:center;flex-shrink:0}
.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--coral-a20);color:var(--coral-400);font-size:12px;font-weight:600}
#identity{font-size:13px;color:var(--text-secondary)}
main{padding:28px 24px 0;max-width:1512px;margin:auto}

/* ---------- Títulos ---------- */
.page-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}
h1{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.24;margin:0 0 6px;text-wrap:balance}
h2{font-size:16px;font-weight:600;line-height:1.24;margin:0;letter-spacing:-.01em}
h3{font-size:14px;font-weight:500}
p{text-wrap:pretty}
.page-title p{font-size:14px;margin:0}
.eyebrow{font-size:11px;font-weight:500;color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase}
.page-title .eyebrow{display:none}
.section-heading{margin:28px 0 14px}
.section-heading p{margin-top:6px}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;height:24px;border:1px solid var(--border-default);border-radius:var(--r-full);padding:0 11px;background:rgba(179,179,186,.1);color:var(--text-secondary);font-size:11px;font-weight:600;white-space:nowrap}
.badge.success,.badge.live{color:var(--status-success);background:var(--status-success-bg);border-color:rgba(133,209,177,.26)}
.badge.failed{background:var(--status-critical-bg);color:var(--status-critical);border-color:var(--coral-a35)}
.badge.live:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--status-success);animation:vega-live 1.6s ease-in-out infinite}
@keyframes vega-live{50%{opacity:.35}}

/* ---------- Indicadores do monitor ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}
.stats article{min-width:0;padding:20px;background:var(--surface-card) var(--glow-neutral);border:1px solid var(--border-subtle);border-radius:var(--r-card-lg);box-shadow:var(--elev-card)}
.stats article div{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.stats article div>span{font-size:13px;color:var(--text-tertiary)}
.stats strong{display:block;font-size:30px;font-weight:500;letter-spacing:-.02em;line-height:1.08;margin-top:14px}
.stats small{display:block;margin-top:8px;font-size:12px;color:var(--text-tertiary)}
.stat-icon{display:none}

/* ---------- Painéis (cards) ---------- */
.panel{position:relative;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-card-lg);box-shadow:var(--elev-card);overflow:hidden}
.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}
.panel-heading>.muted{font-size:12px}
.section-number,.terminal-symbol,.empty-icon,.orbit,.orbit-small,.hero-status,.terminal-top,.keyboard-hint{display:none}
.panel-foot{border-top:1px solid var(--border-subtle);padding:12px 20px;font-size:11px;color:var(--text-tertiary);line-height:1.6}
.hint{font-size:12px;line-height:1.6;color:var(--text-tertiary);margin:0}

/* ---------- Formulários ---------- */
label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;color:var(--text-secondary)}
input,select{height:40px;width:100%;min-width:0;border:1px solid var(--border-default);background-color:var(--surface-input);color:var(--text-primary);border-radius:var(--r-input);padding:0 12px;font-size:14px;font-weight:400;transition:var(--t-hover),box-shadow 140ms var(--ease)}
select{appearance:none;-webkit-appearance:none;padding-right:36px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a8a93' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
select option{background:var(--surface-raised);color:var(--text-primary)}
input::placeholder,textarea::placeholder{color:var(--text-tertiary)}
input:hover,select:hover{border-color:var(--border-strong)}
input:focus,select:focus,textarea:focus{outline:none;background-color:var(--surface-input-focus);border-color:var(--border-strong);box-shadow:0 0 0 3px var(--coral-a12)}
input[type=checkbox],input[type=radio]{accent-color:var(--coral)}

/* ---------- Botões (pílulas) ---------- */
.primary,.danger,.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;border:1px solid var(--border-default);border-radius:var(--r-full);font-size:13px;font-weight:600;background:rgba(var(--neutral-rgb),.06);color:var(--text-primary);line-height:1.3;white-space:nowrap;transition:var(--t-hover),transform 80ms var(--ease)}
.primary:active:not(:disabled),.danger:active:not(:disabled),.ghost:active:not(:disabled){transform:scale(.98)}
.primary{background:var(--surface-inverse);border-color:transparent;color:var(--text-inverse)}
.primary:hover{background:var(--primary-hover,#fff)}
.ghost:hover{background:rgba(var(--neutral-rgb),.11)}
.danger{background:var(--status-critical-bg);border-color:var(--coral-a35);color:var(--status-critical)}
.danger:hover{background:var(--coral-a20)}
.text-button{border:0;background:none;color:var(--blue-400);font-size:13px;font-weight:500;padding:6px 0;text-decoration:none}
.text-button:hover{color:var(--coral-400)}

/* ---------- Monitor de rotas ---------- */
.query-form{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.25fr) auto;align-items:end;gap:16px;padding:20px 20px 0}
#start{grid-column:4;grid-row:1;min-height:40px}
.repeat{grid-column:1/4;grid-row:2;display:flex;flex-direction:row;align-items:center;gap:9px;font-weight:400;font-size:13px;width:max-content}
.repeat input{height:16px;width:16px;margin:0}
.switch-track{display:none}
#stop{grid-column:4;grid-row:2}
.query-bottom{padding:12px 20px 18px}
.measurement{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:24px 0 16px;padding:0 1px;scroll-margin-top:84px}
.measurement h2{font-size:20px;line-height:1.24;margin:4px 0;font-weight:600}
.measurement p{font-size:12px;color:var(--text-tertiary);margin:0}
.measurement .eyebrow{font-size:11px}
.measurement-values{display:flex;gap:24px}
.measurement-values>div{border-left:1px solid var(--border-subtle);padding-left:20px}
.measurement-values span{display:block;font-size:12px;color:var(--text-tertiary)}
.measurement-values strong{display:block;font-size:24px;font-weight:500;letter-spacing:-.02em;line-height:1.08;margin-top:6px}
.trace-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;margin-top:20px}
.trace-layout>section{min-width:0}
.route-meta{padding:12px 20px;font-size:12px;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);line-height:1.6}
.route{height:350px;overflow:auto;scrollbar-width:thin}
.empty{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;color:var(--text-tertiary);background:var(--glow-neutral)}
.empty p{font-size:13px;max-width:320px;line-height:1.6;margin:0}
.empty h3{color:var(--text-primary);margin:0 0 6px}
pre{margin:0;background:var(--surface-sunken);color:var(--text-secondary);font:12px/1.9 var(--mono);padding:16px 20px;height:393px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin}

/* ---------- Tabelas ---------- */
table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
td,th{padding:13px 16px;border-bottom:1px solid var(--border-subtle);white-space:nowrap}
th{font-size:11px;color:var(--text-tertiary);font-weight:500;background:transparent}
td{color:var(--text-secondary)}
td strong{color:var(--text-primary)}
tr:last-child td{border-bottom:0}
tbody tr{transition:background-color 140ms var(--ease)}
tbody tr:hover{background:rgba(var(--neutral-rgb),.03)}
td small{display:block;font-size:11px;color:var(--text-tertiary);margin-top:4px}
.hops-table{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}
.hops-table th{font-family:var(--font)}
.hops-table td:first-child{color:var(--text-tertiary);width:65px}
.hops-table td:nth-child(3),.hops-table td:nth-child(4),.hops-table th:nth-child(3),.hops-table th:nth-child(4){text-align:right}
.table-wrap{margin-top:20px;overflow-x:auto}
.table-scroll{overflow-x:auto}

/* ---------- Consultas recentes ---------- */
.recent-section{margin-top:28px}
.recent-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.recent-grid{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-card-lg);box-shadow:var(--elev-card);overflow:hidden}
.recent-card{width:100%;display:grid;grid-template-columns:180px minmax(140px,1fr) minmax(130px,1fr) 200px;align-items:center;gap:18px;padding:14px 20px;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;text-align:left;color:var(--text-secondary);transition:var(--t-hover)}
.recent-card:last-child{border-bottom:0}
.recent-card:hover{background:var(--surface-card-hover)}
.recent-card-top{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text-tertiary)}
.path-tag,.path-tag.wan{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 8px;border-radius:var(--r-full);background:rgba(var(--neutral-rgb),.06);border:1px solid var(--border-default);font-size:10px;color:var(--text-secondary);min-width:36px;font-weight:600}
.recent-card strong{font-size:13px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-card p{font-size:12px;color:var(--text-tertiary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-card-foot{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--text-tertiary)}
.recent-card-foot b{font-weight:500;color:var(--text-primary)}
.note{display:flex;gap:8px;align-items:center;margin-top:16px;color:var(--text-tertiary);font-size:12px;line-height:1.6}
.note p{margin:0}
.note>span{font-size:12px}
footer{display:flex;justify-content:space-between;border-top:1px solid var(--border-subtle);margin-top:28px;padding:20px 0;font-size:11px;color:var(--text-tertiary)}

/* ---------- Cadastros e histórico ---------- */
.manage-grid{display:grid;grid-template-columns:1fr 1.7fr;gap:16px}
.form-panel{padding:24px;display:flex;flex-direction:column;gap:16px}
.form-panel h2{margin-bottom:2px}
.form-panel .primary{align-self:start}
.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.list{font-size:13px;color:var(--text-tertiary);line-height:2}
.narrow{max-width:480px}
.history-toolbar{display:flex;align-items:end;gap:16px;margin-top:20px}
.search-label{flex:1}
.search-label input{border-radius:var(--r-full);padding-left:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a8a93' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center}
.history-toolbar>label:not(.search-label){width:190px}
.history-toolbar>span{font-size:12px;padding-bottom:10px}

/* ---------- Avisos ---------- */
.toast{position:fixed;bottom:24px;right:24px;max-width:420px;background:var(--surface-raised);color:var(--text-primary);border:0;border-radius:var(--r-card-lg);box-shadow:var(--elev-popover);padding:16px 20px;font-size:13px;z-index:40;animation:vega-in 320ms var(--ease-out)}
@keyframes vega-in{from{opacity:0;transform:translateY(8px)}}
.error{color:var(--status-critical);font-size:13px}

/* ---------- Login ---------- */
.login{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-art{display:none}
.login-form{width:100%;max-width:400px;background:var(--surface-card) var(--glow-neutral);border:1px solid var(--border-subtle);border-radius:var(--r-panel);box-shadow:var(--elev-card);padding:32px;display:flex;flex-direction:column;gap:18px}
.mobile-brand{display:flex;padding:0 0 22px;margin:0 0 4px;border-bottom:1px solid var(--border-subtle);gap:13px}
.login-form h2{font-size:24px;margin:0;font-weight:600;letter-spacing:-.02em}
.login-form p{font-size:14px;line-height:1.6;margin:0}
.login-form .eyebrow{display:none}
.login-form .primary{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 22px;font-size:14px}
.login-form small{font-size:12px;line-height:1.6}
.login-form #login-error:empty{display:none}

/* ---------- Comparação de rotas ---------- */
.comparison-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 20px}
.comparison-actions>span{font-size:12px;color:var(--text-tertiary)}
.comparison-panel{margin:20px 0;scroll-margin-top:84px}
.report-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-actions .ghost{display:inline-flex;align-items:center;text-decoration:none}
.comparison-context{padding:16px 20px;border-bottom:1px solid var(--border-subtle)}
.comparison-context strong{font-size:16px;overflow-wrap:anywhere}
.comparison-context p{font-size:13px;color:var(--text-tertiary);margin:5px 0}
.comparison-columns{display:grid;grid-template-columns:1fr 1fr}
.comparison-columns>section{min-width:0}
.comparison-columns>section+section{border-left:1px solid var(--border-subtle)}
.comparison-path-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px}
.comparison-columns .comparison-path-title h2{font-size:16px}
.comparison-summary{font-size:18px;font-weight:500;margin:0;padding:0 20px 16px;color:var(--text-primary);line-height:1.5}
.comparison-route{height:320px;overflow:auto;border-top:1px solid var(--border-subtle)}
.comparison-wait{padding:20px}
.comparison-columns details{border-top:1px solid var(--border-subtle);padding:12px 20px}
.comparison-columns details summary{cursor:pointer;font-size:12px;color:var(--text-secondary)}
.comparison-columns details p{font-size:12px;color:var(--text-tertiary)}
.comparison-columns pre{height:220px;padding:10px 0;background:transparent}
.comparison-columns details .comparison-route{height:260px;margin:12px -20px}
.comparison-conclusion{padding:16px 20px;border-top:1px solid var(--border-subtle);background:var(--surface-sunken) var(--glow-info);font-size:14px;line-height:1.7}
.comparison-history{margin-top:32px}

/* ---------- Visão geral da rede ---------- */
.monitor-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.monitor-toolbar label{min-width:240px}
.monitor-toolbar>span{font-size:12px;padding:8px 0}
.edge-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}
.edge-stats article{background:var(--surface-card) var(--glow-neutral);border:1px solid var(--border-subtle);border-radius:var(--r-card-lg);box-shadow:var(--elev-card);padding:20px;min-width:0}
.edge-stats article>span{font-size:13px;color:var(--text-tertiary)}
.edge-stats strong{display:block;font-size:30px;font-weight:500;letter-spacing:-.02em;line-height:1.08;margin-top:14px}
.traffic-chart{padding:16px 14px;min-height:150px}
.traffic-chart svg{width:100%;display:block}
.traffic-chart text,.metric-dialog .traffic-chart text{font:11px var(--font);fill:var(--text-tertiary)}
.traffic-chart .hint{padding:24px}
.monitor-note{margin:14px 0 24px}
.findings-panel{margin-top:20px}
.network-findings{padding:6px 20px}
.network-findings article{display:flex;align-items:start;gap:14px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}
.network-findings article:last-child{border:0}
.network-findings strong{font-size:14px;font-weight:500;color:var(--text-primary)}
.network-findings p{font-size:13px;line-height:1.6;color:var(--text-tertiary);margin:5px 0 0}
.network-findings>.hint{padding:18px 0}
.technical-details{margin:16px 0;padding:16px 20px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-card-lg);box-shadow:var(--elev-card)}
details>summary{cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:500;transition:color 140ms var(--ease)}
details>summary:hover{color:var(--text-primary)}
.technical-details[open]>summary{margin-bottom:16px}
.technical-details .table-wrap{margin:12px 0}
.technical-details>.hint{line-height:1.8}
.technical-details .panel{box-shadow:none;background:var(--surface-sunken)}
#wan-rows strong{font-weight:500}
#wan-rows td{padding-top:17px;padding-bottom:17px}

/* Equipamento da borda */
.border-equipment{margin:20px 0}
.border-equipment-head{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.border-equipment-head h2{font-size:24px;font-weight:600;letter-spacing:-.02em;margin:6px 0}
.border-equipment-head p{margin:4px 0;font-size:13px}
.equipment-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border-subtle);background:var(--surface-sunken)}
.equipment-metrics>button,.equipment-metrics>div{padding:18px 24px;border:0;border-right:1px solid var(--border-subtle);text-align:left;background:transparent;color:var(--text-primary);min-width:0;transition:var(--t-hover)}
.equipment-metrics>button:hover{background:var(--surface-card-hover)}
.equipment-metrics>:last-child{border-right:0}
.equipment-metrics span,.equipment-metrics small{display:block;font-size:13px;color:var(--text-tertiary)}
.equipment-metrics strong{display:block;font-size:30px;font-weight:500;letter-spacing:-.02em;line-height:1.08;margin:10px 0 8px}
.equipment-metrics small{font-size:11px}
.health-clock{display:block;font-size:11px;color:var(--text-tertiary);margin-top:4px;line-height:1.5}
.border-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin:20px 0}
.border-layout>.panel{min-width:0}
.border-alerts{margin:0}
.border-alerts .network-findings{max-height:295px;overflow:auto}
.border-alerts .network-findings p{font-size:12px}
.finding-since{font-size:11px;color:var(--text-tertiary)}

/* Mapa de portas */
.device-face{background:var(--surface-sunken);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--r-card);margin:20px;padding:18px 20px 22px}
.device-face-brand{font-size:17px;letter-spacing:.04em;font-weight:600;display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:24px}
.device-face-brand span{font-size:11px;font-weight:400;letter-spacing:0;color:var(--text-tertiary)}
#port-device-name{font:inherit;letter-spacing:normal;overflow-wrap:anywhere;min-width:0}
.port-map{display:flex;flex-wrap:wrap;gap:12px}
.device-port{display:flex;flex-direction:column;align-items:center;gap:6px;width:42px;background:none;color:var(--text-secondary);border:0;padding:0;font-size:11px}
.device-port:hover .port-socket,.device-port:focus-visible .port-socket{border-color:var(--text-primary)}
.port-socket{display:block;width:36px;height:30px;background:#050505;border:2px solid #43434a;border-radius:3px;position:relative}
.port-socket:after{content:'';position:absolute;left:7px;right:7px;bottom:5px;border-top:4px solid #62626b}
.port-light{height:4px;width:12px;background:#43434a;border-radius:2px}
.device-port.active .port-light,.port-legend .active{background:var(--mint)}
.device-port.active .port-socket{border-color:var(--mint)}
.device-port.disabled{opacity:.45}
.device-port.unknown{opacity:.5}
.device-port.is-selected .port-socket{outline:2px solid var(--blue-400);outline-offset:3px}
.port-legend{display:flex;gap:20px;padding:0 24px 20px;flex-wrap:wrap}
.port-legend span{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--text-tertiary)}
.port-legend i{width:8px;height:8px;border-radius:50%;background:#62626b}
.port-legend .disabled{background:#303035}
.port-legend .unknown{background:transparent;border:1px solid #62626b}
.port-panel .device-face{padding:18px 16px 10px;margin:20px 20px 12px}
.port-panel .device-face-brand{font-size:13px;letter-spacing:0;margin:0 4px 4px;min-width:0}
.port-panel .device-face-brand strong{overflow-wrap:anywhere}
.port-map.has-equipment-svg{display:block;overflow-x:auto;scrollbar-width:thin}
.port-selection{display:flex;align-items:center;gap:20px;padding:16px 24px;margin:0 0 12px;min-height:81px;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
.port-selection>div:first-child{margin-right:auto}
.port-selection strong,.port-selection small,.port-selection b{display:block}
.port-selection strong{font-size:15px;margin:4px 0}
.port-selection small{font-size:12px;color:var(--text-tertiary)}
.port-selection b{font-weight:500;font-size:14px;margin-top:5px}
.port-selection p{font-size:13px;color:var(--text-tertiary);margin:0;line-height:1.6}
.port-state{display:inline-flex;align-items:center;height:22px;font-size:11px;font-weight:600;border:1px solid var(--border-default);padding:0 10px;border-radius:var(--r-full);color:var(--text-secondary);background:rgba(179,179,186,.1)}
.port-state.active{color:var(--status-success);background:var(--status-success-bg);border-color:rgba(133,209,177,.26)}
.unprofiled-ports{display:flex;flex-wrap:wrap;gap:16px;padding:20px 0}
.unprofiled-ports .device-port{color:var(--text-secondary);width:auto;min-width:44px;max-width:110px;overflow-wrap:anywhere}

/* Arte do painel frontal (SVG do equipamento): cores do hardware real, sem mudança */
.equipment-svg{display:block;width:100%;min-width:590px;height:auto;font-family:Arial,sans-serif}
.case-top{fill:#303235;stroke:#2c2625;stroke-width:1}
.case-face{fill:#a13b40;stroke:#752a2f;stroke-width:1}
.rack .case-face,.rack-ear{fill:#292c30;stroke:#1d1c1c}
.case-wordmark{fill:#e9e9e9;font-size:17px;font-style:italic;letter-spacing:.2px}
.case-model{fill:#f3dddd;font-size:9px;letter-spacing:.5px}
.case-caption{fill:#e8c8ca;font-size:8px;letter-spacing:.3px}
.rack .case-caption,.rack .case-model{fill:#c7c4c4}
.svg-port{outline:none}
.svg-port[data-port]{cursor:pointer}
.port-focus{fill:transparent;stroke:transparent;stroke-width:2}
.socket-frame{fill:#b3b8bc;stroke:#c8cdd0}
.socket-hole{fill:#171616}
.socket-led{fill:#686363}
.socket-label{fill:#ececec;font-size:10px}
.svg-port.active .socket-frame{stroke:#81d5af;stroke-width:2}
.svg-port.disabled .socket-frame{fill:#788087}
.svg-port.disabled .socket-hole{fill:#3d3a3a}
.svg-port.unknown{opacity:.62}
.svg-port.selected .port-focus{stroke:var(--blue-400);fill:rgba(253,122,88,.14)}
.svg-port:hover .port-focus,.svg-port:focus-visible .port-focus{stroke:#fff3f0;fill:#ffffff18}
.equipment-svg.hex .socket-label{fill:#4b4747;font-size:12px}
.equipment-svg.hex .socket-frame{fill:#d5cdb5;stroke:#dce3da}
.equipment-svg.hex .svg-port.active .socket-frame{stroke:#257958}
.equipment-svg.hex .svg-port.selected .port-focus{stroke:#fc5c34;fill:#fc5c341f}
.equipment-svg.hex .svg-port:hover .port-focus,.equipment-svg.hex .svg-port:focus-visible .port-focus{stroke:#514d4d}
/* Pulse reports a fresh UP state, independently of packet rate. */
.svg-port.active .socket-led{fill:#22c55e;filter:drop-shadow(0 0 2px #22c55e80);animation:vega-port-up 1.4s ease-in-out infinite}
@keyframes vega-port-up{0%,100%{opacity:1}50%{opacity:.28}}

/* Rotas e conexões */
.border-routing{margin:20px 0}
.routing-status{display:flex;flex-wrap:wrap;gap:16px;padding:20px}
.routing-card{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-card);padding:16px;min-width:260px;flex:1}
.routing-card>div{display:flex;justify-content:space-between;gap:20px;align-items:center}
.routing-card strong{font-size:14px;color:var(--text-primary)}
.routing-card p,.routing-card>span{font-size:13px;color:var(--text-tertiary)}
.routing-card b{color:var(--text-primary);font-weight:500}
.connection-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}
.connection-card{display:block;text-align:left;background:var(--surface-card) var(--glow-neutral);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--r-card-lg);box-shadow:var(--elev-card);padding:20px;min-width:0;transition:var(--t-hover)}
.connection-card:hover{background-color:var(--surface-card-hover)}
.connection-card.is-selected{border-color:var(--border-strong);background-image:var(--glow-info)}
.connection-card-top{display:flex;justify-content:space-between;gap:16px;align-items:center}
.connection-card-top strong{font-size:16px;font-weight:600}
.connection-values{display:flex;justify-content:space-between;gap:16px;margin-top:22px;flex-wrap:wrap}
.connection-values small{display:block;font-size:12px;color:var(--text-tertiary)}
.connection-values b{display:block;font-size:24px;font-weight:500;letter-spacing:-.02em;line-height:1.08;margin:8px 0 4px}
.connection-card-foot{display:flex;justify-content:space-between;border-top:1px solid var(--border-subtle);padding-top:12px;margin-top:16px;font-size:12px;color:var(--text-tertiary);line-height:1.7}
.traffic-selection{display:flex;justify-content:space-between;gap:24px;padding:20px 24px;align-items:end}
.traffic-selection label{min-width:230px}
.traffic-selection>div{display:flex;gap:32px}
.traffic-selection span{display:block;color:var(--text-tertiary);font-size:12px}
.traffic-selection strong{display:block;font-size:20px;color:var(--text-primary);font-weight:500;letter-spacing:-.01em;margin-top:6px}
.history-coverage{padding:0 24px 16px}
.overview-empty{padding:20px;color:var(--text-tertiary);font-size:13px;line-height:1.8;margin:0}
.optical-status{padding:5px}
.optical-row{display:flex;gap:12px;flex-wrap:wrap;padding:18px;font-size:13px}
.optical-row strong{width:100%}
.interface-errors{max-height:290px;overflow:auto}
#traffic-chart{height:330px;min-width:0;width:100%}
#metric-dialog-chart{height:280px;width:100%;min-width:0}
.link-source-pill{font-size:12px;color:var(--blue-400)}
.capacity-note{font-size:13px;color:var(--text-tertiary)}

/* Usuários na rede */
.subscribers-panel{margin:20px 0}
.subscriber-cards{display:grid;grid-template-columns:1fr 1fr}
.subscriber-cards article{padding:24px;border-right:1px solid var(--border-subtle)}
.subscriber-cards article:last-child{border-right:0}
.subscriber-cards span,.subscriber-cards small{display:block;color:var(--text-tertiary);font-size:13px}
.subscriber-cards strong{display:block;font-size:36px;font-weight:500;letter-spacing:-.02em;line-height:1.08;color:var(--text-primary);margin:14px 0 10px}
.subscriber-cards small{font-size:12px;margin-top:6px}
.subscribers-panel>details{padding:14px 20px;border-top:1px solid var(--border-subtle)}
.subscriber-chart{height:300px;width:100%;min-width:0}

/* Fontes (Zabbix) */
.source-config{margin-top:24px}
.source-padding{padding:20px}
.source-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.source-metrics small{display:block;color:var(--text-tertiary);margin-bottom:8px}
.source-metrics strong{font-size:24px;font-weight:500;letter-spacing:-.02em}
.source-metrics .source-clock{font-size:12px;margin:8px 0 0;line-height:1.5}
#zabbix-summary{margin-bottom:24px}
#zabbix-summary svg{display:block;width:100%;height:auto}
#zabbix-summary svg text{fill:var(--text-tertiary)}
.source-config form{margin:18px 0}

/* ---------- Diálogos ---------- */
.metric-dialog,.registry-dialog,.setup-dialog{padding:0;border:0;border-radius:var(--r-panel);background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--elev-modal)}
.metric-dialog[open],.registry-dialog[open],.setup-dialog[open]{animation:vega-in 320ms var(--ease-out)}
.metric-dialog{width:min(960px,95vw)}
.metric-dialog::backdrop,.registry-dialog::backdrop,.setup-dialog::backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.metric-dialog .panel,.registry-dialog .panel,.setup-dialog .panel{background:transparent;box-shadow:none;border:0}
.registry-dialog{width:min(660px,94vw);max-height:90vh;overflow:auto}
.registry-dialog .form-panel{gap:14px}
.registry-dialog h2{font-size:20px;margin:0}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:6px}
textarea{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--r-input);resize:vertical;min-height:65px;color:var(--text-primary);background:var(--surface-input)}
.registry-dialog input,.registry-dialog select,.registry-dialog textarea,.setup-dialog input,.setup-dialog select{background-color:var(--surface-sunken)}
.registry-check{display:flex;flex-direction:row;align-items:center;gap:9px;font-weight:400}
.registry-check input{width:16px;height:16px;margin:0}
.registry-dialog summary{font-size:13px}
.registry-dialog details label{margin:12px 0}
.registry-dialog .error:empty{display:none}
.registry-dialog form>p{margin:0}

/* Empresas e equipamentos */
.registry-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:20px 0}
.registry-toolbar label{min-width:260px;max-width:400px;flex:1}
.registry-actions,.registry-device-actions{display:flex;gap:8px;flex-wrap:wrap}
.registry-device-actions{padding:16px 20px}
.registry-devices{display:grid;gap:16px}
.registry-device .panel-heading{align-items:start}
.registry-device .panel-heading h2{font-size:18px;margin:6px 0}
.registry-device .eyebrow{font-size:11px}
#access-result{overflow-wrap:anywhere}
.snmp-pair{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-card);padding:16px;margin:8px 0}
.snmp-pair h3{font-size:14px;margin:0 0 8px}
.snmp-pair select{width:100%;min-width:0}
.snmp-pair label{min-width:0}
.snmp-pair>label{margin-top:12px}
.snmp-pair>.two-cols{margin-top:12px;gap:12px}
#link-host-settings{margin:12px 0 18px;border-top:1px solid var(--border-subtle);padding-top:12px}
#link-host-settings>label{margin:12px 0}
.link-host-search{display:flex;align-items:end;gap:10px;margin:12px 0}
.link-host-search label{flex:1;min-width:0}
.link-host-search button{flex:none}
#link-host-status{line-height:1.6}

/* Assistente de configuração */
.setup-dialog{width:min(820px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.setup-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;gap:8px;list-style:none;margin:22px 0}
.setup-steps li{font-size:13px;color:var(--text-tertiary);border-bottom:2px solid var(--surface-track);padding:10px 0}
.setup-steps li>span{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid var(--border-default);border-radius:50%;margin-right:6px;font-size:12px}
.setup-steps .complete{color:var(--status-success);border-color:var(--status-success)}
.setup-section{padding:18px 0;border-top:1px solid var(--border-subtle);margin-top:18px}
.setup-section h3{margin:0 0 12px;font-size:16px;font-weight:600}
.setup-links{list-style:none;padding:0}
.setup-links li{display:flex;justify-content:space-between;gap:12px;padding:10px 0}
.setup-dialog .registry-toolbar{padding:0;margin:12px 0}
.setup-dialog .registry-toolbar label{flex:1;min-width:0}
.setup-dialog .registry-toolbar input,.setup-dialog .registry-toolbar select{width:100%}
#setup-subscriber-form{padding:12px 0}
#setup-subscriber-fields{border:0;padding:0;margin:0;display:grid;gap:14px;min-width:0}
#setup-subscriber-fields:disabled{opacity:.4}

/* Incidentes */
.incident-filters{padding:20px;display:flex;gap:14px;flex-wrap:wrap}
.incident-filters label{flex:1;min-width:150px}
.incident-filters select{width:100%}
#view-incidents td{vertical-align:top;white-space:normal}
#view-incidents td:nth-child(2){min-width:230px;max-width:360px;overflow-wrap:anywhere}
#view-incidents details{margin-top:8px}
#view-incidents .edge-stats{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Relatórios */
.reports-form{display:grid;grid-template-columns:1fr 1.3fr 1.2fr 1fr auto;align-items:end;gap:14px;padding:20px}
.report-help{margin:14px 0 24px}
.report-preview{margin:24px 0;scroll-margin-top:84px}
.report-preview-context{padding:0 20px;margin:16px 0;font-size:13px;color:var(--text-tertiary)}
.report-body{padding:0 20px 20px}
.report-body h2{font-size:16px;margin:24px 0 12px}
.report-body>p{font-size:13px;line-height:1.8;color:var(--text-tertiary)}
.report-body .notice{padding:14px 16px;border:1px solid rgba(245,165,36,.26);border-radius:var(--r-card);background:var(--status-medium-bg);color:var(--amber);font-size:13px}
.report-kpis{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}
.report-kpis article{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-card);padding:16px;flex:1;min-width:150px}
.report-kpis span{font-size:12px;color:var(--text-tertiary);display:block}
.report-kpis strong{display:block;font-size:24px;font-weight:500;letter-spacing:-.02em;line-height:1.08;margin-top:10px}
.reports-history-heading{display:flex;justify-content:space-between;align-items:center}
.report-body .table-wrap{margin:16px 0}
.report-body td small{font-size:11px;white-space:normal;max-width:230px}
.report-body .report-note{font-size:12px}

/* ---------- Responsivo ---------- */
@media(min-width:1600px){.route{height:410px}pre{height:453px}}
@media(min-width:1151px){.border-layout:not(.secondary){grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)}}
@media(min-width:701px){.equipment-svg{min-width:0}}

@media(max-width:1200px){
  :root{--sidebar-w:228px}
  aside{padding:20px 10px}
  nav button{font-size:12.5px}
  nav button.selected::before{left:-10px}
  main{padding:24px 20px 0}
  .workspace>header{padding:0 20px}
  .recent-card{grid-template-columns:160px 1fr 1fr}
  .recent-card-foot{grid-column:2/4}
  .query-form{grid-template-columns:1fr 1fr auto}
  .path-label{grid-column:2/4}
  .destination{grid-row:2;grid-column:1/3}
  #start{grid-column:3;grid-row:2}
  .repeat{grid-row:3;grid-column:1/3}
  #stop{grid-column:3;grid-row:3}
  .measurement-values{gap:18px}
  .measurement-values>div{padding-left:16px}
  .reports-form{grid-template-columns:1fr 1fr}
  .reports-form button{width:max-content}
  .report-preview>.panel-heading{align-items:start;flex-direction:column}
}
@media(max-width:1150px){
  .border-layout{grid-template-columns:1fr}
  .equipment-metrics>button,.equipment-metrics>div{padding:16px}
  .traffic-selection{flex-wrap:wrap}
  .device-face{max-width:760px}
  .border-alerts .network-findings{max-height:250px}
}
@media(max-width:1100px){
  .edge-stats{grid-template-columns:repeat(2,1fr)}
  .edge-stats strong{font-size:26px}
}
@media(max-width:1000px){
  .measurement{align-items:start;flex-direction:column;gap:14px}
  .measurement-values{width:100%;justify-content:space-between}
  .measurement-values>div:first-child{border:0;padding-left:0}
  .trace-layout{grid-template-columns:1fr}
  .route{height:300px}
  pre{height:250px}
  .manage-grid{grid-template-columns:1fr}
}
@media(max-width:850px){
  .comparison-columns{grid-template-columns:1fr}
  .comparison-columns>section+section{border-left:0;border-top:1px solid var(--border-subtle)}
  .comparison-panel>.panel-heading{align-items:start;flex-direction:column}
  .comparison-route{height:260px}
  .comparison-actions button{flex:1;white-space:normal}
  .comparison-actions>span{width:100%}
}
@media(max-width:760px){
  .source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  #traffic-chart{height:285px}
  .snmp-pair .two-cols{grid-template-columns:1fr}
  .setup-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .setup-dialog .two-cols{grid-template-columns:1fr}
  .setup-dialog .registry-toolbar{flex-wrap:wrap}
  .setup-dialog .registry-toolbar label{flex-basis:100%}
  #view-incidents .edge-stats{grid-template-columns:1fr}
  .incident-filters label{min-width:100%}
  .subscriber-cards{grid-template-columns:1fr}
  .subscriber-cards article{border-right:0;border-bottom:1px solid var(--border-subtle)}
}

/* Celular: cabeçalho de vidro no topo, menu vira barra inferior com rolagem lateral */
@media(max-width:700px){
  :root{--topbar-h:56px}
  body::before{width:100%;height:300px}
  aside{position:static;width:100%;padding:14px 16px;border-right:0;background:transparent}
  aside>.brand{padding:0}
  .nav-label,.aside-foot{display:none}
  nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:0;
    height:calc(64px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);border-top:1px solid var(--border-default)}
  /* vidro num pseudo-elemento: backdrop-filter no próprio nav prenderia o painel "Mais" (position:fixed) dentro da barra */
  nav::after{content:'';position:absolute;inset:0;z-index:-1;background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  nav::-webkit-scrollbar{display:none}
  nav>button[data-view="links"],nav>button[data-view="monitor"],nav>button[data-view="incidents"],nav>button[data-view="reports"]{flex:1 1 20%;width:auto;min-width:0}
  nav>.mobile-more-menu{display:none}
  nav>.mobile-more-menu.is-open{display:flex;position:fixed;left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:2;flex-direction:column;gap:4px;max-height:min(60vh,480px);overflow:auto;padding:12px;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:28px;box-shadow:var(--elev-modal)}
  nav>.mobile-more-menu button{width:100%;min-height:48px;flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 14px;border-radius:var(--r-card);font-size:13px;text-align:left}
  nav>.mobile-more-menu button span{display:block;overflow:visible}
  nav>.mobile-more-menu button.selected{background:var(--surface-card-hover)}
  nav>.mobile-more-menu button.selected::before{display:none}
  nav>#mobile-more{display:flex;flex:1 1 20%;width:auto;min-width:0;min-height:44px;flex-direction:column;justify-content:center;gap:4px;padding:6px 4px;border-radius:var(--r-card);background:transparent;color:var(--text-tertiary);font-size:10px;font-weight:400;line-height:1.2;text-align:center}
  nav>#mobile-more.selected{color:var(--text-primary);font-weight:600}
  nav>#mobile-more.selected::before{left:30px;right:30px;top:0;bottom:auto;width:auto;height:2px;border-radius:0 0 2px 2px}
  nav>.mobile-more-scrim{display:block;position:fixed;inset:0;z-index:1;width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  nav>.mobile-more-scrim.hidden{display:none}
  nav button{flex:0 0 auto;width:84px;min-height:44px;flex-direction:column;justify-content:center;gap:4px;padding:6px 4px;border-radius:var(--r-card);background:transparent;color:var(--text-tertiary);font-size:10px;font-weight:400;line-height:1.2;text-align:center;white-space:normal}
  nav button span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  nav button:hover{background:transparent}
  nav button.selected{background:transparent;color:var(--text-primary);font-weight:600}
  nav button.selected::before{left:30px;right:30px;top:0;bottom:auto;width:auto;height:2px;border-radius:0 0 2px 2px}
  .nav-icon{width:21px;height:21px;stroke-width:1.6}
  nav button.selected .nav-icon{stroke-width:2}
  .workspace{margin:0}
  .workspace>header{padding:0 16px;font-size:12px}
  .workspace>header>div:first-child{display:none}
  .header-right{width:100%}
  #identity{margin-right:auto}
  .header-right{gap:8px}
  .avatar{width:30px;height:30px;flex-shrink:0}
  #identity{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
  #logout{min-height:36px;padding:0 14px}
  main{padding:20px 16px calc(96px + env(safe-area-inset-bottom))}
  .page-title{align-items:start;gap:12px;margin-bottom:20px}
  h1{font-size:24px}
  .page-title p{font-size:13px;line-height:1.6}
  .badge{white-space:normal;height:auto;min-height:24px;padding:3px 10px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stats article{padding:16px}
  .stats article div>span{font-size:12px}
  .stats strong{font-size:22px;margin-top:10px}
  .query-form{grid-template-columns:1fr;gap:14px;padding:18px 16px 0}
  .query-form>label,#start,#stop{grid-column:1;grid-row:auto}
  .repeat{grid-row:auto!important}
  #start{width:100%;grid-row:5;min-height:48px}
  #stop{grid-row:6}
  .query-bottom{padding:12px 16px 16px}
  .panel-heading{padding:14px 16px}
  .panel-heading>.muted{display:none}
  .measurement-values{gap:12px}
  .measurement-values>div{padding-left:12px}
  .measurement-values span{font-size:11px;max-width:100px;line-height:1.5}
  .measurement-values strong{font-size:20px}
  .measurement p{line-height:1.7;font-size:11px}
  .route-meta{padding:11px 16px;font-size:11px}
  .hops-table{font-size:11px}
  td,th{padding:11px 12px}
  .hops-table td:first-child{width:45px}
  .panel-foot{padding:10px 16px}
  pre{padding:14px 16px;font-size:11px}
  .recent-card{grid-template-columns:1fr auto;gap:8px;padding:14px 16px}
  .recent-card-top{grid-column:1/3}
  .recent-card strong{grid-column:1}
  .recent-card p{grid-column:1/3;font-size:11px}
  .recent-card-foot{grid-column:1/3}
  .note{font-size:11px;align-items:start}
  .history-toolbar{flex-wrap:wrap}
  .search-label{min-width:100%}
  .history-toolbar>label:not(.search-label){width:60%}
  .two-cols{grid-template-columns:1fr}
  .form-panel{padding:18px}
  .primary,.danger,.ghost{min-height:44px}
  .toast{left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom))}
  footer{font-size:10px;gap:12px}
  .login{padding:16px}
  .login-form{padding:24px}
  .vega-logo,.login-form .vega-logo{width:84px}
  .product-name{font-size:9px;padding-left:10px}
  .monitor-toolbar label{min-width:100%}
  .monitor-toolbar .primary,.monitor-toolbar .ghost{flex:1}
  .edge-stats{gap:10px}
  .edge-stats article{padding:16px}
  .edge-stats article>span{font-size:12px}
  .edge-stats strong{font-size:22px;margin-top:10px}
  .border-equipment-head{display:block;padding:18px 16px}
  .border-equipment-head h2{font-size:20px}
  .equipment-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .equipment-metrics strong{font-size:22px}
  .equipment-metrics>button:nth-child(2){border-right:0}
  .equipment-metrics>button:nth-child(-n+2){border-bottom:1px solid var(--border-subtle)}
  .connection-cards{grid-template-columns:1fr}
  .device-face{margin:16px;padding:15px}
  .device-face-brand{flex-wrap:wrap}
  .port-map{gap:13px 10px}
  .traffic-selection{padding:16px}
  .traffic-selection label{width:100%;min-width:0}
  .traffic-selection>div{width:100%;gap:20px;flex-wrap:wrap}
  .routing-card{min-width:0;width:100%}
  .routing-card>div{flex-wrap:wrap}
  .border-layout{gap:16px}
  .connection-values b{font-size:20px}
  .registry-toolbar label{min-width:100%}
  .registry-toolbar button{flex:1}
  .registry-device .panel-heading{flex-wrap:wrap}
  .registry-device-actions .ghost,.registry-device-actions .primary{flex:1}
  .registry-dialog .form-panel{padding:18px}
  .reports-form{grid-template-columns:1fr;padding:18px 16px}
  .reports-form button{width:100%}
  .report-body{padding:0 16px 16px}
  .report-preview-context{padding:0 16px}
  .report-kpis{gap:10px}
  .report-kpis article{min-width:125px;padding:12px}
  .report-kpis strong{font-size:20px}
  .port-panel .device-face{margin:14px 14px 10px;padding:12px 8px 4px}
  .port-panel .device-face-brand{gap:6px}
  .port-selection{padding:14px 16px;gap:14px}
  .port-selection>div:first-child{flex:1 1 50%}
  .port-selection .ghost{margin-left:auto}
  .port-map.has-equipment-svg{padding-bottom:6px}
  .metric-dialog,.registry-dialog,.setup-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}
}
@media(max-width:550px){
  .link-host-search{flex-wrap:wrap}
  .link-host-search label{flex-basis:100%}
}
.noc-board{padding:24px;margin:0 0 28px;background:var(--surface-card) var(--glow-neutral)}
.noc-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}
.noc-heading h1{font-size:28px;margin:6px 0}
.noc-heading p{margin:0}
.noc-clock-wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
#noc-clock{font:500 22px var(--mono);font-variant-numeric:tabular-nums}
.noc-tv-exit{display:none}
.noc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.noc-kpi{min-width:0;padding:16px 18px;border:1px solid var(--border-subtle);border-radius:var(--r-card);background:var(--surface-sunken)}
.noc-kpi span,.noc-kpi small{display:block;color:var(--text-tertiary);font-size:12px}
.noc-kpi strong{display:block;margin:8px 0 3px;font-size:28px;font-weight:500;font-variant-numeric:tabular-nums}
.noc-kpi-alert{order:-1}
.noc-kpi-alert.severity-clear{border-color:var(--border-subtle);background:var(--surface-sunken)}.noc-kpi-alert.severity-stale{border-color:rgba(245,165,36,.35);background:var(--surface-sunken)}.noc-kpi-alert.severity-warning{border-color:rgba(245,165,36,.55);background:var(--surface-sunken)}.noc-kpi-alert.severity-critical{border-color:var(--coral-a35);background:var(--status-critical-bg)}
.noc-section{margin-top:22px}
.noc-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 10px}
.noc-problems{display:grid;gap:8px}
.noc-problem,.noc-clear{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--r-card);background:var(--surface-sunken)}
.noc-problem{border-left:4px solid var(--border-strong);background:var(--surface-sunken)}.noc-problem.critical{border-color:var(--coral-a35);border-left-color:var(--status-critical);background:var(--status-critical-bg)}
.noc-problem.warning{border-color:var(--border-subtle);border-left-color:var(--status-medium);background:var(--surface-sunken)}
.noc-state-icon{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1px solid currentColor;border-radius:50%;font-weight:600}
.noc-problem.critical .noc-state-icon{color:var(--status-critical)}.noc-problem.warning .noc-state-icon{color:var(--status-medium)}
.noc-problem-main{min-width:0;flex:1}.noc-problem-main strong{font-size:14px}.noc-problem-main p{margin:3px 0;font-size:13px}.noc-problem-main small{color:var(--text-tertiary)}.noc-problem-main ul{margin:5px 0;padding-left:18px;color:var(--text-secondary);font-size:13px}.noc-problem-main li+li{margin-top:3px}.noc-issue-count{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:6px;padding:0 5px;border-radius:99px;background:var(--surface-card-hover);color:var(--text-secondary);font:12px var(--mono)}.noc-more{margin:4px 0;color:var(--text-tertiary);font-size:13px}
.noc-companies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.noc-company-tile{text-align:left;display:grid;gap:7px;min-width:0;padding:16px;border:1px solid var(--border-subtle);border-radius:var(--r-card);background:var(--surface-sunken);color:var(--text-primary)}
.noc-company-tile:hover{border-color:var(--border-strong);background:var(--surface-card-hover)}.noc-company-tile.warning{border-color:rgba(245,165,36,.35)}.noc-company-tile.stale{opacity:.68}
.noc-tile-head{display:flex;justify-content:space-between;align-items:start;gap:8px}.noc-tile-head strong{font-size:15px}.noc-tile-status{font-size:11px;color:var(--text-tertiary)}
.noc-company-tile.warning .noc-tile-status{color:var(--status-medium)}.noc-tile-device,.noc-tile-link,.noc-company-tile small{color:var(--text-tertiary);font-size:12px;overflow-wrap:anywhere}
.noc-tile-link{color:var(--text-secondary)}.noc-link-quality{margin:0 0 22px}.noc-link-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.noc-link-kpis article{min-width:0;padding:16px;border-right:1px solid var(--border-subtle)}.noc-link-kpis article:last-child{border:0}.noc-link-kpis span{display:block;color:var(--text-tertiary);font-size:12px}.noc-link-kpis strong{display:block;margin-top:8px;font-size:15px;font-weight:500;overflow-wrap:anywhere}
.noc-flow-slot{margin-top:20px}.noc-flow-empty{padding:28px 20px;color:var(--text-tertiary);font-size:13px}
body.noc-tv aside,body.noc-tv .workspace>header,body.noc-tv main>footer{display:none!important}body.noc-tv .workspace{margin:0}body.noc-tv main{max-width:none;height:100vh;overflow:hidden;padding:18px 28px}body.noc-tv #view-links>*:not(#noc-board){display:none!important}body.noc-tv #noc-board{height:calc(100vh - 36px);min-height:0;overflow:hidden;padding:22px 30px;margin:0;display:flex;flex-direction:column}body.noc-tv .noc-heading h1{font-size:34px}body.noc-tv .noc-kpis{margin:12px 0;gap:10px}body.noc-tv .noc-kpi{padding:12px 16px}body.noc-tv .noc-kpi strong{font-size:34px;margin:3px 0}body.noc-tv .noc-section{margin-top:12px}body.noc-tv .noc-problems{gap:5px}body.noc-tv .noc-problem{padding:8px 12px;gap:10px}body.noc-tv .noc-problem-main strong{font-size:17px}body.noc-tv .noc-problem-main ul{margin:2px 0;font-size:13px}body.noc-tv .noc-problem-main li+li{margin-top:1px}body.noc-tv .noc-problem-main small{font-size:11px}body.noc-tv .noc-companies{gap:6px}body.noc-tv .noc-company-tile{padding:10px;gap:3px}body.noc-tv .noc-tile-head strong{font-size:16px}body.noc-tv .noc-tile-device,body.noc-tv .noc-tile-link,body.noc-tv .noc-company-tile small{font-size:11px}body.noc-tv .noc-tv-button{display:none}body.noc-tv .noc-tv-exit{display:inline-flex}
.noc-detail-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--r-card);background:var(--surface-card)}.noc-detail-toolbar label{display:grid;gap:5px;min-width:150px;color:var(--text-tertiary);font-size:12px}.noc-breadcrumb{display:flex;gap:8px;align-items:center;margin-right:auto;padding-bottom:8px;color:var(--text-tertiary);font-size:13px}.noc-breadcrumb strong{color:var(--text-primary)}.noc-link-page{display:grid;gap:16px}.noc-link-page .noc-link-quality{margin:0}.noc-series-panel{min-width:0}.noc-series-panel .traffic-chart{height:290px}.noc-quality-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.noc-link-page .noc-link-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.noc-insights-grid{display:grid;grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);gap:16px}.experience-card,.path-card,.heatmap-panel{min-width:0;padding:18px}.experience-content{display:flex;align-items:center;gap:20px;min-height:116px}.experience-score{display:grid;place-items:center;width:94px;height:94px;flex:0 0 94px;border:2px solid var(--status-success);border-radius:50%;font:600 38px var(--mono);color:var(--status-success)}.experience-score.atenção{border-color:var(--status-medium);color:var(--status-medium)}.experience-score.ruim{border-color:var(--status-critical);color:var(--status-critical)}.experience-score.sem-dados{border-color:var(--border-strong);color:var(--text-tertiary);font-size:25px}.experience-content ul{padding-left:18px;color:var(--text-secondary);font-size:13px}.experience-content li+li{margin-top:4px}.path-map{display:block;width:100%;height:auto;max-height:180px}.path-map.compact{width:100%;height:48px;max-height:48px}.path-node{fill:var(--surface-sunken);stroke:var(--border-strong);stroke-width:1}.path-node.unintegrated{stroke-dasharray:3 3;opacity:.48}.path-node-label,.path-title{fill:var(--text-secondary);font:12px Poppins,system-ui,sans-serif}.path-title{fill:var(--text-tertiary);font-size:11px}.path-edge-label{fill:var(--text-secondary);font:11px Poppins,system-ui,sans-serif}.path-edge.problem{filter:drop-shadow(0 0 4px #f36b59)}.path-empty{padding:24px;color:var(--text-tertiary)}.noc-mini-score{display:flex;align-items:center;gap:6px;color:var(--text-tertiary);font-size:11px}.noc-mini-score b{color:var(--text-primary);font:600 13px var(--mono)}.quality-heatmap{display:grid;gap:3px;overflow-x:auto}.heat-hours,.heat-row{display:grid;grid-template-columns:52px repeat(24,minmax(8px,1fr));gap:3px;min-width:340px}.heat-hours{margin:0 0 4px;color:var(--text-tertiary);font:9px var(--mono);text-align:center}.heat-row>span{align-self:center;color:var(--text-tertiary);font-size:10px}.heat-cell,.heat-sample{min-width:0;height:14px;padding:0;border:0;border-radius:3px;background:rgba(var(--neutral-rgb),.045)}.heat-cell:disabled{cursor:default;opacity:.58}.heat-cell.warning,.heat-sample.warning{background:var(--status-medium)}.heat-cell.critical,.heat-sample.critical{background:var(--status-critical)}.heat-cell:not(:disabled){cursor:pointer}.heat-cell:not(:disabled):hover{outline:2px solid var(--text-primary);outline-offset:1px}.heat-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;color:var(--text-tertiary);font-size:11px}.heat-legend span{display:flex;align-items:center;gap:6px}.heat-sample{display:inline-block;width:12px;height:12px}.noc-company-tile .path-map{margin-top:2px}.noc-company-tile .path-title{font-size:8px}
.noc-correlation{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-subtle);border-left:4px solid var(--status-medium);border-radius:var(--r-card);background:var(--surface-sunken)}.noc-correlation.critical{border-color:var(--coral-a35);border-left-color:var(--status-critical);background:var(--status-critical-bg)}.noc-correlation .noc-state-icon{color:var(--status-medium)}.noc-correlation.critical .noc-state-icon{color:var(--status-critical)}.noc-correlation>div{min-width:0;flex:1}.noc-correlation p{margin:4px 0;font-size:13px;color:var(--text-secondary)}.noc-correlation small{font-size:11px;color:var(--text-tertiary)}
@media(max-width:900px){.noc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.noc-link-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.noc-link-kpis article:nth-child(3){border-right:0}}
@media(max-width:700px){.noc-board{padding:16px;margin-bottom:20px}.noc-heading{align-items:flex-start}.noc-heading h1{font-size:22px}.noc-clock-wrap{gap:6px;justify-content:flex-end}.noc-clock-wrap .hint{max-width:90px;text-align:right;font-size:10px}.noc-clock-wrap #noc-clock{font-size:15px}.noc-tv-button{min-height:34px;padding:0 10px;font-size:11px}.noc-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.noc-kpi{padding:12px}.noc-kpi strong{font-size:22px}.noc-kpi span,.noc-kpi small{font-size:10px}.noc-section{margin-top:16px}.noc-section-heading .hint{display:none}.noc-companies{display:none}.noc-problem{align-items:flex-start;flex-wrap:wrap;padding:12px}.noc-problem-main{flex-basis:calc(100% - 48px)}.noc-problem>.ghost{margin-left:44px}.noc-link-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.noc-link-kpis article{padding:12px}.noc-link-kpis article:nth-child(3){border-right:1px solid var(--border-subtle)}.noc-link-kpis article:nth-child(2n){border-right:0}.noc-detail-title{margin-top:4px}body.noc-tv main{padding:12px 12px calc(20px + env(safe-area-inset-bottom))}body.noc-tv #noc-board{min-height:calc(100vh - 32px);padding:16px}body.noc-tv .noc-heading h1{font-size:27px}body.noc-tv .noc-kpi strong{font-size:28px}body.noc-tv .noc-problem-main strong{font-size:15px}body.noc-tv .noc-problem-main p{font-size:13px}}
@media(max-width:700px){.noc-detail-toolbar{align-items:stretch;gap:8px}.noc-breadcrumb{flex-basis:100%;margin:0;padding:0}.noc-detail-toolbar label{flex:1 1 130px;min-width:0}.noc-link-page .noc-link-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.noc-quality-grid{grid-template-columns:1fr}.noc-series-panel .traffic-chart{height:250px}}
@media(max-width:850px){.noc-insights-grid{grid-template-columns:1fr}.experience-card,.path-card,.heatmap-panel{padding:14px}.heatmap-panel{overflow:hidden}.heat-hours,.heat-row{grid-template-columns:44px repeat(24,minmax(8px,1fr));gap:2px}.heat-cell{height:12px}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .svg-port.active .socket-led{opacity:1}
}

.path-edge.standby{opacity:.62}.path-edge.unintegrated{opacity:.55}.path-particle{filter:drop-shadow(0 0 4px currentColor)}.noc-correlation{box-shadow:0 0 0 1px rgba(245,165,36,.12),0 10px 34px rgba(0,0,0,.22)}.noc-correlation.critical{box-shadow:0 0 0 1px rgba(243,107,89,.32),0 0 24px rgba(243,107,89,.12)}@media(min-width:1200px){body.noc-tv .noc-companies-section{flex:1;min-height:0;display:flex;flex-direction:column}body.noc-tv .noc-companies{flex:1;grid-auto-rows:minmax(0,1fr);align-items:stretch}body.noc-tv .noc-company-tile{height:100%;align-content:space-between;grid-template-rows:auto auto auto auto minmax(120px,1fr) auto}body.noc-tv .noc-company-tile .path-map{height:100%;max-height:none;min-height:120px}}
.noc-flow-panel{padding:12px 16px;border:1px solid rgba(252,92,52,.2);border-radius:var(--r-card);background:radial-gradient(ellipse at 0 0,rgba(252,92,52,.08),transparent 42%),linear-gradient(120deg,var(--theme-panel,rgba(25,15,12,.96)),var(--theme-panel,rgba(20,17,16,.98)));box-shadow:inset 0 1px rgba(247,143,117,.05),0 0 24px rgba(252,92,52,.035)}.noc-flow-status{display:flex;align-items:center;gap:8px;color:var(--text-tertiary);font:10px var(--mono);letter-spacing:.04em}.noc-flow-window{margin-left:auto;color:var(--text-tertiary);font:11px Poppins,system-ui,sans-serif;letter-spacing:0}.noc-flow-pulse{width:7px;height:7px;border-radius:50%;background:#fc5c34;box-shadow:0 0 10px rgba(252,92,52,.8)}.noc-flow-pulse.stale{background:var(--status-medium);box-shadow:0 0 8px rgba(245,165,36,.6)}.noc-flow-rows{display:grid;gap:7px;margin-top:10px}.noc-flow-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.85fr) minmax(110px,.3fr);align-items:center;gap:14px;min-width:0;padding:3px 0}.noc-flow-identity{display:flex;align-items:center;gap:9px;min-width:0}.noc-flow-logo,.noc-flow-monogram{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;object-fit:contain}.noc-flow-monogram{border:1px solid rgba(252,92,52,.32);border-radius:6px;background:rgba(252,92,52,.08);color:var(--theme-critical,#f09179);font:600 11px var(--mono)}.noc-flow-name{display:grid;min-width:0;gap:1px}.noc-flow-name strong{overflow:hidden;color:var(--text-primary);font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.noc-flow-name small{overflow:hidden;color:var(--text-tertiary);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.noc-flow-meter{height:5px;overflow:hidden;border-radius:99px;background:rgba(var(--neutral-rgb),.07)}.noc-flow-meter>span{display:block;height:100%;min-width:2px;border-radius:inherit;background:linear-gradient(90deg,#fc5c34,#fc5c34);box-shadow:0 0 10px rgba(252,92,52,.38);transition:width .35s ease}.noc-flow-rate{text-align:right;font-variant-numeric:tabular-nums}.noc-flow-rate strong{display:block;color:var(--text-primary);font:500 12px var(--mono)}.noc-flow-rate small{display:block;color:var(--theme-critical,#fd7a58);font:10px var(--mono)}.noc-flow-state{margin:8px 0 2px;color:var(--text-tertiary);font-size:12px}.noc-flow-foot{margin:6px 0 0;color:var(--text-tertiary);font-size:10px}
body.noc-tv .noc-flow-section{margin-top:8px}body.noc-tv .noc-flow-section .noc-section-heading{margin-bottom:5px}body.noc-tv .noc-flow-panel{padding:7px 12px}body.noc-tv .noc-flow-rows{gap:3px;margin-top:5px}body.noc-tv .noc-flow-row{padding:1px 0;grid-template-columns:minmax(180px,1fr) minmax(120px,.85fr) minmax(110px,.3fr)}body.noc-tv .noc-flow-row:nth-child(n+4){display:none}body.noc-tv .noc-flow-name strong,body.noc-tv .noc-flow-rate strong{font-size:11px}body.noc-tv .noc-flow-name small,body.noc-tv .noc-flow-rate small{font-size:9px}body.noc-tv .noc-flow-foot{display:none}
@media(max-width:700px){.noc-flow-panel{padding:10px}.noc-flow-row{grid-template-columns:minmax(0,1fr) 90px;gap:8px}.noc-flow-meter{grid-column:1 / 2;grid-row:2;margin-left:29px}.noc-flow-rate{grid-column:2;grid-row:1 / 3}.noc-flow-window{display:none}}
.noc-open-flow{font-size:11px;white-space:nowrap}.flow-analysis{display:grid;gap:16px;padding:22px;background:radial-gradient(ellipse at 4% 0,rgba(252,92,52,.08),transparent 34%),var(--surface-card)}.flow-analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.flow-analysis-head h1{margin:5px 0;font-size:27px;letter-spacing:-.04em}.flow-analysis-head h1 span{color:var(--theme-critical,#fd7a58)}.flow-analysis-head p{margin:0;font-size:12px}.flow-analysis-actions{display:flex;gap:7px;flex-wrap:wrap}.flow-analysis-actions button{min-height:34px;font-size:11px}.flow-dimensions,.flow-periods{display:flex;gap:5px;overflow:auto;scrollbar-width:thin}.flow-dimensions button,.flow-periods button{flex:0 0 auto;min-height:34px;padding:0 13px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--surface-sunken);color:var(--text-secondary);font-size:11px}.flow-dimensions button[aria-pressed=true],.flow-periods button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border);box-shadow:none}.flow-attention{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:12px;padding:13px 16px;background:linear-gradient(100deg,rgba(252,92,52,.055),transparent 70%)}.flow-attention h2,.flow-analysis .panel-heading h2{margin:3px 0;font-size:15px}.flow-attention ul{display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;list-style:none}.flow-attention li{padding:7px 10px;border-left:2px solid var(--status-medium);border-radius:5px;background:rgba(245,165,36,.08);color:var(--text-secondary);font-size:11px}.flow-attention li.critical{border-color:var(--status-critical);background:var(--status-critical-bg)}.flow-attention .flow-empty{margin:0}.flow-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.flow-kpis article{display:grid;gap:5px;padding:13px 15px;background:linear-gradient(135deg,var(--theme-panel,rgba(64,42,36,.75)),var(--surface-card))}.flow-kpis article>span{color:var(--text-tertiary);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.flow-kpis strong{min-width:0;overflow:hidden;color:var(--text-primary);font:500 20px var(--mono);text-overflow:ellipsis;white-space:nowrap}.flow-kpis small{color:var(--text-tertiary);font-size:10px}.flow-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.flow-toolbar label{display:grid;gap:5px;min-width:170px;color:var(--text-tertiary);font-size:10px}.flow-toolbar select{height:35px;padding:0 10px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-sunken);color:var(--text-primary)}.flow-toolbar select:disabled{opacity:.55}.flow-periods{margin-left:auto}.flow-analysis-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:12px}.flow-analysis-grid>.panel{min-width:0;padding:15px}.flow-chart-panel{grid-row:span 2}.flow-analysis .panel-heading{margin-bottom:12px}.flow-analysis .panel-heading .eyebrow{font-size:9px}.flow-legend{display:flex;align-items:center;gap:6px;color:var(--text-tertiary);font-size:10px}.flow-legend i{width:8px;height:8px;border-radius:2px;background:#fc5c34}.flow-legend i.out{margin-left:8px;background:#fd7a58}.flow-chart-empty{display:grid;place-content:center;justify-items:center;gap:9px;min-height:270px;padding:25px;text-align:center;border:1px dashed var(--border-subtle);border-radius:10px;background:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(var(--neutral-rgb),.025) 40px)}.flow-chart-empty>span{color:var(--theme-critical,#fc5c34);font-size:30px}.flow-chart-empty strong{font-size:13px;font-weight:500}.flow-chart-empty small{max-width:370px;color:var(--text-tertiary);font-size:11px;line-height:1.6}.flow-analysis-chart{display:block;width:100%;height:auto;min-height:230px}.flow-gridline{stroke:rgba(var(--neutral-rgb),.07);stroke-width:1}.flow-axis-label{fill:var(--text-tertiary);font:10px var(--mono)}.flow-area-in{fill:var(--theme-critical,rgba(252,92,52,.55))}.flow-area-out{fill:var(--theme-critical,rgba(253,122,88,.62))}.flow-line-in,.flow-line-out{fill:none;stroke:#fc5c34;stroke-width:1.4}.flow-line-out{stroke:#ffae9a}.flow-chart-note{margin:0;color:var(--text-tertiary);font-size:10px}.flow-ranking ol{display:grid;gap:2px;margin:0;padding:0;list-style:none}.flow-ranking li{display:grid;grid-template-columns:26px minmax(100px,1fr) minmax(56px,.6fr) auto;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px solid rgba(var(--neutral-rgb),.045)}.flow-ranking li>b{color:var(--text-tertiary);font:10px var(--mono)}.flow-ranking li>span{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.flow-ranking li small{display:block;color:var(--text-tertiary);font-size:9px}.flow-ranking li svg{width:100%;height:24px;overflow:visible}.flow-ranking polyline{fill:none;stroke:#fc5c34;stroke-width:1.7}.flow-ranking li>strong,.flow-content-rows article>strong{color:var(--text-secondary);font:10px var(--mono);white-space:nowrap}.flow-content-rows{display:grid;gap:8px}.flow-content-rows article{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(80px,1fr) 76px;align-items:center;gap:11px}.flow-content-id{display:flex;align-items:center;gap:8px;min-width:0;font-size:11px}.flow-content-id>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-content-id small{display:block;color:var(--text-tertiary);font-size:9px}.flow-content-id img,.flow-monogram{width:20px;height:20px;flex:0 0 20px;object-fit:contain}.flow-monogram{display:grid;place-items:center;border:1px solid rgba(252,92,52,.3);border-radius:6px;color:var(--theme-critical,#f4a18c);font:11px var(--mono)}.flow-content-bar{height:5px;overflow:hidden;border-radius:8px;background:rgba(var(--neutral-rgb),.07)}.flow-content-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#fc5c34,#fc5c34)}.flow-donut-wrap{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:12px}.flow-donut-wrap svg{width:130px;height:130px;transform:rotate(-90deg)}.flow-donut-segment{cursor:pointer;transition:opacity .15s}.flow-donut-segment:hover,.flow-donut-segment.selected{opacity:.62}.flow-donut-wrap svg text{fill:var(--text-secondary);font:3.6px var(--mono);transform:rotate(90deg);transform-origin:50px 50px}.flow-category-legend{display:grid;gap:4px}.flow-category-legend button{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px;border:0;border-radius:5px;background:transparent;color:var(--text-secondary);text-align:left;font-size:10px}.flow-category-legend button:hover,.flow-category-legend button.selected{background:rgba(var(--neutral-rgb),.055)}.flow-category-legend i{width:8px;height:8px;border-radius:2px;background:var(--category-color)}.flow-category-legend strong{font:10px var(--mono)}.flow-empty{padding:12px;border-radius:8px;background:rgba(var(--neutral-rgb),.025);color:var(--text-tertiary);font-size:11px;line-height:1.6}.flow-data-note{margin:0;padding:9px 12px;border-left:2px solid var(--border-strong);color:var(--text-tertiary);font-size:10px}
@media(max-width:900px){.flow-analysis-grid{grid-template-columns:1fr}.flow-chart-panel{grid-row:auto}.flow-attention{grid-template-columns:1fr}.flow-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.flow-analysis{padding:14px;gap:12px}.flow-analysis-head{display:grid}.flow-analysis-head h1{font-size:22px}.flow-analysis-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.flow-analysis-actions button{padding:0 5px;font-size:10px}.flow-dimensions button{padding:0 10px}.flow-toolbar{align-items:stretch}.flow-toolbar label{min-width:calc(50% - 6px);flex:1}.flow-periods{width:100%;margin:0}.flow-periods button{flex:1;padding:0 8px}.flow-chart-empty{min-height:220px}.flow-content-rows article{grid-template-columns:minmax(0,1fr) 74px;gap:7px}.flow-content-bar{grid-column:1;grid-row:2;margin-left:28px}.flow-content-rows article>strong{grid-column:2;grid-row:1 / 3;text-align:right}.flow-donut-wrap{grid-template-columns:112px 1fr;gap:8px}.flow-donut-wrap svg{width:112px;height:112px}.flow-ranking li{grid-template-columns:22px minmax(90px,1fr) 55px auto;gap:5px}.flow-ranking li>span{font-size:10px}}
.flow-analysis-head{position:static;z-index:auto;height:auto;padding:0;border:0;border-radius:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:inherit}.flow-analysis-head>div:first-child{display:block;min-width:0;overflow:visible;white-space:normal;text-overflow:clip}
/* Pele NOC: console de telemetria com sinais cromáticos reservados a condições anormais. */
#noc-board,#noc-link-page,#noc-flow-analysis{--noc-glow:rgba(252,92,52,.14);--noc-line:rgba(252,92,52,.18);--noc-panel:linear-gradient(145deg,var(--theme-panel,rgba(38,20,15,.97)),var(--theme-panel,rgba(24,13,10,.98)));}
#noc-board{position:relative;isolation:isolate;overflow:hidden;border-color:var(--noc-line);background:radial-gradient(ellipse at 12% 0,rgba(252,92,52,.13),transparent 36%),linear-gradient(150deg,var(--theme-panel,#191818) 0%,var(--theme-panel,#131212) 58%,var(--theme-panel,#181616) 100%);box-shadow:inset 0 1px rgba(238,145,122,.08),0 18px 55px rgba(0,0,0,.24),0 0 38px rgba(252,92,52,.045)}
#noc-board::before{position:absolute;inset:0;z-index:-1;content:"";pointer-events:none;background-image:linear-gradient(rgba(252,92,52,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(252,92,52,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.66),transparent 82%)}
#noc-board::after{position:absolute;top:0;left:24px;right:24px;height:1px;content:"";pointer-events:none;background:linear-gradient(90deg,transparent,rgba(252,92,52,.58),transparent);box-shadow:0 0 12px var(--noc-glow)}
#noc-board>*{position:relative;z-index:1}
.noc-heading{position:relative;padding:4px 0 18px;border-bottom:1px solid rgba(190,110,90,.14)}
.noc-heading .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--theme-muted,#a4a0a0);font:10px var(--mono);letter-spacing:.15em}
.noc-heading .eyebrow::before{width:6px;height:6px;border-radius:50%;content:"";background:#fc5c34;box-shadow:0 0 10px rgba(252,92,52,.72)}
.noc-heading h1{color:var(--theme-critical,#f7efed);font-size:30px;letter-spacing:-.035em;text-shadow:0 0 25px rgba(253,122,88,.13)}
.noc-heading p{color:var(--theme-muted,#928d8d);font-size:12px;letter-spacing:.015em}
.noc-heading #noc-updated{font:10px var(--mono);color:var(--theme-muted,#a29e9e)}
.noc-heading #noc-clock{color:var(--theme-critical,#f0ded9);font:500 20px var(--mono);text-shadow:0 0 16px rgba(252,92,52,.2)}
.noc-heading .ghost{border-color:rgba(252,92,52,.2);background:var(--theme-panel,rgba(27,12,8,.62));color:var(--theme-muted,#bbb8b8)}
.noc-heading .ghost:hover{border-color:rgba(252,92,52,.48);color:var(--theme-critical,#fbe9e5);box-shadow:0 0 16px rgba(252,92,52,.1)}
.noc-kpis{gap:10px;margin:16px 0 22px}
.noc-kpi{position:relative;overflow:hidden;border-color:rgba(168,112,98,.16);border-radius:12px;background:linear-gradient(145deg,var(--theme-panel,rgba(55,31,25,.91)),var(--theme-panel,rgba(31,17,13,.97)));box-shadow:inset 0 1px rgba(238,198,188,.035),0 6px 20px rgba(0,0,0,.14)}
.noc-kpi::before{position:absolute;inset:0 0 auto;height:1px;content:"";background:linear-gradient(90deg,transparent,rgba(252,92,52,.35),transparent)}
.noc-kpi span{color:var(--theme-muted,#a9a5a5);font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.noc-kpi strong{color:var(--theme-ink,#edecec);font:500 29px var(--mono);text-shadow:0 0 20px rgba(252,92,52,.1)}
.noc-kpi small{color:var(--theme-muted,#827c7c);font-size:10px}
.noc-kpi-alert.severity-clear,.noc-kpi-alert.severity-stale,.noc-kpi-alert.severity-warning,.noc-kpi-alert.severity-critical{background:linear-gradient(145deg,var(--theme-panel,rgba(55,31,25,.91)),var(--theme-panel,rgba(31,17,13,.97)))}
.noc-kpi-alert.severity-stale,.noc-kpi-alert.severity-warning{border-color:rgba(245,165,36,.42)}
.noc-kpi-alert.severity-critical{border-color:rgba(243,107,89,.58);background:linear-gradient(145deg,var(--theme-panel,rgba(70,37,38,.74)),var(--theme-panel,rgba(28,23,22,.98)))}
.noc-section{position:relative;margin-top:17px;padding-top:2px}
.noc-section-heading{align-items:center;margin-bottom:10px}
.noc-section-heading h2{display:flex;align-items:center;gap:9px;color:var(--theme-ink,#e4e2e2);font-size:13px;letter-spacing:.015em}
.noc-section-heading h2::before{width:5px;height:15px;border-radius:3px;content:"";background:linear-gradient(#fc5c34,#524e4e);box-shadow:0 0 10px rgba(252,92,52,.2)}
.noc-section-heading .hint{color:var(--theme-muted,#817b7b);font:9px var(--mono);letter-spacing:.035em}
.noc-problem,.noc-clear{border-color:rgba(171,120,107,.16);border-radius:10px;background:linear-gradient(110deg,var(--theme-panel,rgba(43,24,19,.95)),var(--theme-panel,rgba(28,16,13,.96)));box-shadow:inset 0 1px rgba(229,200,193,.025)}
.noc-problem{border-left-width:3px}
.noc-problem.critical{border-color:rgba(243,107,89,.48);border-left-color:var(--status-critical);background:linear-gradient(110deg,var(--theme-panel,rgba(67,34,36,.68)),var(--theme-panel,rgba(29,20,18,.97)))}
.noc-problem.warning{border-color:rgba(245,165,36,.22);border-left-color:var(--status-medium);background:linear-gradient(110deg,var(--theme-panel,rgba(39,35,27,.58)),var(--theme-panel,rgba(28,18,15,.97)))}
.noc-state-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(186,120,103,.18);border-radius:8px;background:rgba(176,107,90,.07);color:var(--theme-muted,#bdbaba)}
.noc-problem-main strong{color:var(--theme-ink,#e9e7e7);font-size:13px}
.noc-problem-main p,.noc-problem-main ul{color:var(--theme-muted,#a9a5a5)}
.noc-problem-main small{color:var(--theme-muted,#837c7c);font:9px var(--mono)}
.noc-company-tile{position:relative;overflow:hidden;border-color:rgba(168,110,95,.16);border-radius:11px;background:linear-gradient(145deg,var(--theme-panel,rgba(46,25,20,.95)),var(--theme-panel,rgba(28,15,12,.98)));box-shadow:inset 0 1px rgba(235,197,188,.035)}
.noc-company-tile::after{position:absolute;top:0;right:12px;width:36px;height:1px;content:"";background:rgba(252,92,52,.34)}
.noc-company-tile:hover{border-color:rgba(252,92,52,.35);box-shadow:0 0 22px rgba(252,92,52,.08)}
.noc-company-tile.warning{border-color:rgba(245,165,36,.4)}
.noc-flow-section .noc-section-heading h2::before{background:linear-gradient(#fc5c34,#524e4e)}
.noc-flow-panel{border-color:rgba(252,92,52,.23);background:radial-gradient(ellipse at 2% 0,rgba(252,92,52,.15),transparent 40%),linear-gradient(130deg,var(--theme-panel,rgba(41,19,13,.98)),var(--theme-panel,rgba(25,13,10,.98)));box-shadow:inset 0 1px rgba(235,165,147,.065),0 10px 30px rgba(0,0,0,.16),0 0 26px rgba(252,92,52,.055)}
#noc-link-page>.panel,#noc-link-page .panel,#noc-flow-analysis .panel{border-color:rgba(170,108,92,.17);background:var(--noc-panel);box-shadow:inset 0 1px rgba(231,184,172,.035),0 9px 28px rgba(0,0,0,.14)}
#noc-link-page .noc-link-kpis article{background:linear-gradient(145deg,var(--theme-panel,rgba(53,29,23,.82)),var(--theme-panel,rgba(28,15,12,.75)))}
#noc-link-page .noc-link-kpis strong{color:var(--theme-critical,#f0e2de);font-family:var(--mono)}
#noc-link-page .noc-series-panel .panel-heading h2,#noc-link-page .noc-link-quality h2{color:var(--theme-ink,#e6e4e4)}
#noc-flow-analysis .flow-analysis{border-color:rgba(252,92,52,.22);background:radial-gradient(ellipse at 10% 0,rgba(252,92,52,.14),transparent 36%),linear-gradient(145deg,var(--theme-panel,#1a1919),var(--theme-panel,#111111) 72%,var(--theme-panel,#191818));box-shadow:inset 0 1px rgba(238,145,122,.06),0 18px 55px rgba(0,0,0,.23),0 0 32px rgba(252,92,52,.045)}
#noc-flow-analysis .flow-analysis-head h1{color:var(--theme-critical,#f7efed)}
#noc-flow-analysis .flow-analysis-head h1 span{color:var(--theme-critical,#fd7a58)}
#noc-flow-analysis .flow-kpis article{background:linear-gradient(145deg,var(--theme-panel,rgba(53,29,23,.96)),var(--theme-panel,rgba(28,15,12,.98)))}
#noc-flow-analysis .flow-kpis strong{color:var(--theme-critical,#f3e6e3)}
#noc-flow-analysis .flow-dimensions button[aria-pressed=true],#noc-flow-analysis .flow-periods button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border);box-shadow:none}
#noc-flow-analysis .flow-chart-panel,#noc-flow-analysis .flow-ranking,#noc-flow-analysis .flow-content,#noc-flow-analysis .flow-categories{background:linear-gradient(150deg,var(--theme-panel,rgba(41,22,17,.98)),var(--theme-panel,rgba(25,13,10,.99)))}
.flow-analysis-chart-live{width:100%;height:310px}
.flow-attention li{border-left-color:rgba(170,120,108,.36);background:rgba(153,107,95,.075)}
.flow-attention li.warning{border-left-color:var(--status-medium);background:rgba(245,165,36,.09)}
.flow-attention li.critical{border-left-color:var(--status-critical);background:var(--status-critical-bg)}
.flow-attention li.info{border-left-color:rgba(252,92,52,.45);background:rgba(252,92,52,.06)}
.flow-export-choice{display:grid;gap:2px;align-content:center;color:var(--theme-muted,#928d8d);font-size:9px;text-align:left}
.flow-export-choice select{height:26px;padding:0 5px;border:1px solid rgba(252,92,52,.2);border-radius:6px;background:var(--theme-panel,#141414);color:var(--theme-muted,#c6c3c3);font-size:10px}
@media(max-width:700px){#noc-board{padding:15px 13px}.noc-heading{gap:10px;padding-bottom:12px}.noc-heading h1{font-size:22px}.noc-heading .eyebrow{font-size:8px}.noc-clock-wrap{gap:5px;flex-wrap:wrap;max-width:132px}.noc-clock-wrap #noc-updated{width:100%;font-size:8px}.noc-clock-wrap #noc-clock{font-size:15px}.noc-open-flow{padding:0 7px;font-size:9px}.noc-kpi{padding:10px}.noc-kpi strong{font-size:20px}.noc-kpi span,.noc-kpi small{font-size:8px}.noc-section-heading h2{font-size:11px}.noc-section-heading .hint{display:none}.noc-flow-section .noc-section-heading{align-items:flex-start}.noc-flow-section .noc-section-heading .ghost{min-height:30px;padding:0 7px;font-size:9px}.flow-analysis-chart-live{height:245px}.flow-analysis-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-export-choice{display:none}}
body.noc-tv #noc-board{border-color:rgba(252,92,52,.23);box-shadow:inset 0 1px rgba(238,145,122,.08),0 0 70px rgba(252,92,52,.045)}
@media(prefers-reduced-motion:reduce){#noc-board *,#noc-link-page *,#noc-flow-analysis *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Marca de serviço usa o SVG local como máscara para colorir o glifo com a cor oficial. */
.flow-kpis article strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere;line-height:1.25}


/* Identidade de marca com ativos Simple Icons locais sob CSP sem estilos inline. */
.flow-width-0{width:0%}
.flow-width-1{width:1%}
.flow-width-2{width:2%}
.flow-width-3{width:3%}
.flow-width-4{width:4%}
.flow-width-5{width:5%}
.flow-width-6{width:6%}
.flow-width-7{width:7%}
.flow-width-8{width:8%}
.flow-width-9{width:9%}
.flow-width-10{width:10%}
.flow-width-11{width:11%}
.flow-width-12{width:12%}
.flow-width-13{width:13%}
.flow-width-14{width:14%}
.flow-width-15{width:15%}
.flow-width-16{width:16%}
.flow-width-17{width:17%}
.flow-width-18{width:18%}
.flow-width-19{width:19%}
.flow-width-20{width:20%}
.flow-width-21{width:21%}
.flow-width-22{width:22%}
.flow-width-23{width:23%}
.flow-width-24{width:24%}
.flow-width-25{width:25%}
.flow-width-26{width:26%}
.flow-width-27{width:27%}
.flow-width-28{width:28%}
.flow-width-29{width:29%}
.flow-width-30{width:30%}
.flow-width-31{width:31%}
.flow-width-32{width:32%}
.flow-width-33{width:33%}
.flow-width-34{width:34%}
.flow-width-35{width:35%}
.flow-width-36{width:36%}
.flow-width-37{width:37%}
.flow-width-38{width:38%}
.flow-width-39{width:39%}
.flow-width-40{width:40%}
.flow-width-41{width:41%}
.flow-width-42{width:42%}
.flow-width-43{width:43%}
.flow-width-44{width:44%}
.flow-width-45{width:45%}
.flow-width-46{width:46%}
.flow-width-47{width:47%}
.flow-width-48{width:48%}
.flow-width-49{width:49%}
.flow-width-50{width:50%}
.flow-width-51{width:51%}
.flow-width-52{width:52%}
.flow-width-53{width:53%}
.flow-width-54{width:54%}
.flow-width-55{width:55%}
.flow-width-56{width:56%}
.flow-width-57{width:57%}
.flow-width-58{width:58%}
.flow-width-59{width:59%}
.flow-width-60{width:60%}
.flow-width-61{width:61%}
.flow-width-62{width:62%}
.flow-width-63{width:63%}
.flow-width-64{width:64%}
.flow-width-65{width:65%}
.flow-width-66{width:66%}
.flow-width-67{width:67%}
.flow-width-68{width:68%}
.flow-width-69{width:69%}
.flow-width-70{width:70%}
.flow-width-71{width:71%}
.flow-width-72{width:72%}
.flow-width-73{width:73%}
.flow-width-74{width:74%}
.flow-width-75{width:75%}
.flow-width-76{width:76%}
.flow-width-77{width:77%}
.flow-width-78{width:78%}
.flow-width-79{width:79%}
.flow-width-80{width:80%}
.flow-width-81{width:81%}
.flow-width-82{width:82%}
.flow-width-83{width:83%}
.flow-width-84{width:84%}
.flow-width-85{width:85%}
.flow-width-86{width:86%}
.flow-width-87{width:87%}
.flow-width-88{width:88%}
.flow-width-89{width:89%}
.flow-width-90{width:90%}
.flow-width-91{width:91%}
.flow-width-92{width:92%}
.flow-width-93{width:93%}
.flow-width-94{width:94%}
.flow-width-95{width:95%}
.flow-width-96{width:96%}
.flow-width-97{width:97%}
.flow-width-98{width:98%}
.flow-width-99{width:99%}
.flow-width-100{width:100%}
.flow-category-color-0{--category-color:#fc5c34;background:#fc5c34}
.flow-category-color-1{--category-color:#fc5c34;background:#fc5c34}
.flow-category-color-2{--category-color:#fd7a58;background:#fd7a58}
.flow-category-color-3{--category-color:#42bd9c;background:#42bd9c}
.flow-category-color-4{--category-color:#878181;background:#878181}
.flow-category-color-5{--category-color:#b68a52;background:#b68a52}
.flow-category-color-6{--category-color:#c06b74;background:#c06b74}

.flow-service-icon{display:inline-flex;width:20px;height:20px;flex:0 0 20px;align-items:center;justify-content:center}.flow-service-icon svg{display:block;width:20px;height:20px}

/* Ajustes de publicação: mini mapa real e camada de qualidade por link na TV. */
.path-map.compact{height:122px;max-height:122px;min-height:122px;overflow:visible}
.path-label-bg{fill:#1b1a1a;stroke:rgba(252,92,52,.4);stroke-width:1}
.path-map.compact .path-edge-label{font-size:11px;font-weight:600;paint-order:stroke;stroke:#1b1a1a;stroke-width:2px}
.noc-tile-heatmaps{display:none}
.noc-tile-heatrow{display:grid;grid-template-columns:minmax(70px,100px) minmax(0,1fr);align-items:center;gap:7px;min-width:0}
.noc-tile-heatrow>small{overflow:hidden;color:var(--text-tertiary);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.noc-tile-hours{display:grid;grid-template-columns:repeat(24,minmax(2px,1fr));gap:2px;min-width:0}
.noc-tile-hours i{height:5px;border-radius:2px;background:rgba(var(--neutral-rgb),.07)}
.noc-tile-hours i.warning{background:var(--status-medium)}.noc-tile-hours i.critical{background:var(--status-critical)}.noc-tile-hours i.empty{background:rgba(var(--neutral-rgb),.035)}
.noc-analysis-nav{order:5}nav [data-view=flow]{order:6}nav [data-view=reports]{order:7}nav [data-view=manage]{order:8}nav [data-view=users]{order:9}nav [data-view=account]{order:10}
.flow-analysis-actions [data-flow-export=csv]{border-color:rgba(252,92,52,.25);color:var(--theme-critical,#f4a18c)}
@media(min-width:1200px){body.noc-tv main{padding:12px 20px}body.noc-tv #noc-board{height:calc(100vh - 24px);padding:14px 22px}body.noc-tv .noc-heading{min-height:49px}body.noc-tv .noc-heading h1{font-size:27px;margin:2px 0}body.noc-tv .noc-heading p{font-size:11px}body.noc-tv .noc-kpis{margin:7px 0;gap:8px}body.noc-tv .noc-kpi{padding:8px 14px}body.noc-tv .noc-kpi strong{font-size:27px;margin:0}body.noc-tv .noc-kpi small{font-size:10px}body.noc-tv .noc-section{margin-top:7px}body.noc-tv .noc-section-heading{margin-bottom:5px}body.noc-tv .noc-section-heading h2{font-size:14px}body.noc-tv .noc-section-heading .hint{font-size:10px}body.noc-tv .noc-problem{padding:6px 10px;gap:8px}body.noc-tv .noc-problem-main strong{font-size:13px}body.noc-tv .noc-problem-main ul{font-size:10px;line-height:1.3}body.noc-tv .noc-problem-main small{font-size:9px}body.noc-tv .noc-correlated{padding:7px 10px;gap:9px}body.noc-tv .noc-correlated p{margin:2px 0;font-size:11px}body.noc-tv .noc-correlated small{font-size:9px}body.noc-tv .noc-companies{gap:7px}body.noc-tv .noc-company-tile{height:auto;align-content:start;grid-template-rows:none;padding:8px 10px;gap:3px}body.noc-tv .noc-tile-head strong{font-size:13px}body.noc-tv .noc-tile-device,body.noc-tv .noc-tile-link,body.noc-tv .noc-company-tile small{font-size:9px}body.noc-tv .noc-company-tile .path-map{height:112px;max-height:112px;min-height:112px}body.noc-tv .noc-tile-heatmaps{display:grid;gap:3px;margin-top:1px}body.noc-tv .noc-tile-hours i{height:4px}body.noc-tv .noc-company-tile > small{margin-top:0}body.noc-tv .noc-flow-panel{padding:5px 10px}body.noc-tv .noc-flow-row{padding:0}body.noc-tv .noc-flow-status{font-size:9px}}
@media(max-width:700px){.flow-analysis-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-analysis-actions [data-flow-export=csv]{min-width:0;font-size:9px}}

.flow-export-menu{position:relative}.flow-export-menu>[data-flow-export-toggle]{border-color:rgba(252,92,52,.3);color:var(--theme-critical,#f4a18c)}.flow-export-options{position:absolute;z-index:20;top:calc(100% + 5px);right:0;display:grid;min-width:130px;padding:5px;border:1px solid rgba(252,92,52,.25);border-radius:9px;background:var(--theme-panel,#161515);box-shadow:0 12px 32px rgba(0,0,0,.45)}.flow-export-options[hidden]{display:none}.flow-export-options button{min-height:32px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);text-align:left;font-size:11px}.flow-export-options button:hover{background:rgba(252,92,52,.1);color:var(--text-primary)}@media(max-width:700px){.flow-export-menu{min-width:0}.flow-export-menu>[data-flow-export-toggle]{width:100%;padding:0 5px;font-size:10px}}

/* D7 · Operação MSP */
.d7-page{display:grid;gap:16px;padding:22px;border-color:rgba(170,108,92,.2);background:radial-gradient(ellipse at 8% 0,rgba(252,92,52,.1),transparent 34%),linear-gradient(150deg,var(--theme-panel,#191818) 0%,var(--theme-panel,#131212) 58%,var(--theme-panel,#181616) 100%)}
.d7-page>header,.d7-panel>header,.d7-incident>header{position:static;z-index:auto;height:auto;min-height:0;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;}
.d7-page-head,.d7-panel>header,.d7-incident>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.d7-page-head h1{margin:4px 0;font-size:27px;color:var(--theme-critical,#f3e8e5)}.d7-page-head p{margin:0}
.d7-panel{min-width:0;padding:17px;border-color:rgba(170,108,92,.17);background:linear-gradient(145deg,var(--theme-panel,rgba(38,20,15,.97)),var(--theme-panel,rgba(24,13,10,.98)))}
.d7-panel>header{align-items:center;margin-bottom:14px}.d7-panel h2{margin:3px 0;color:var(--theme-ink,#e6e4e4);font-size:17px}.d7-panel label,.d7-maintenance-form label,.d7-sla-form label,.d7-actions label{display:grid;gap:5px;color:var(--text-tertiary);font-size:12px}
.d7-panel select,.d7-panel input,.d7-panel textarea{min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--theme-sunken,rgba(18,8,5,.75));color:var(--text-primary);font:inherit}
.d7-panel textarea{min-height:70px;resize:vertical}.d7-panel [disabled]{opacity:.55;cursor:not-allowed}
.d7-incident-list{display:grid;gap:12px}.d7-incident{padding:15px;border:1px solid rgba(170,108,92,.17);border-left:3px solid #e2a64b;border-radius:11px;background:var(--theme-sunken,rgba(19,8,5,.56))}.d7-incident>header{align-items:flex-start}.d7-incident h3{margin:8px 0 3px;font-size:17px;color:var(--theme-ink,#edecec)}.d7-incident header p,.d7-incident p{margin:4px 0;color:var(--text-tertiary);font-size:12px}.d7-state{display:inline-flex;align-items:center;min-height:23px;margin:0 6px 0 0;padding:3px 8px;border:1px solid rgba(190,109,89,.22);border-radius:999px;background:rgba(252,92,52,.08);color:var(--theme-muted,#bdb9b9);font-size:10px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.d7-state.is-active{border-color:rgba(231,99,83,.35);color:var(--theme-critical,#ff9b89)}.d7-state.is-resolved,.d7-state.is-ready{border-color:rgba(76,194,154,.27);color:var(--theme-accent,#8bdabb)}.d7-state.is-muted{border-color:rgba(233,177,83,.3);color:var(--theme-warning,#eac27c)}.d7-symptoms{max-width:100ch}.d7-affected{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.d7-affected span{padding:5px 8px;border:1px solid rgba(162,116,105,.14);border-radius:7px;background:rgba(165,104,89,.06);font-size:11px;color:var(--theme-muted,#c3c0c0)}.d7-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:10px 0;border-block:1px solid rgba(162,116,105,.12)}.d7-actions>span{margin-right:auto;color:var(--text-tertiary);font-size:11px}.d7-actions label{min-width:190px}.d7-notes,.d7-diagnostic{margin-top:9px;border-bottom:1px solid rgba(162,116,105,.12);color:var(--text-secondary)}.d7-notes summary,.d7-diagnostic summary{padding:10px 0;cursor:pointer;color:var(--theme-ink,#cac8c8);font-size:12px;font-weight:600}.d7-notes ol{display:grid;gap:8px;padding-left:22px}.d7-notes li{padding:9px;border-radius:8px;background:rgba(163,91,73,.07)}.d7-notes time{margin-left:8px;color:var(--text-tertiary);font-size:10px}.d7-notes li p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--theme-ink,#d8d5d5)}.d7-notes form,.d7-diagnostic form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin:10px 0}.d7-diagnostic form{grid-template-columns:minmax(0,1fr) minmax(180px,.6fr) auto}.d7-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px}.d7-maintenance-form,.d7-sla-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}.d7-maintenance-form .d7-wide{grid-column:1/-1}.d7-maintenance-form>button{justify-self:start}.d7-maintenance-list{display:grid;gap:8px;margin-top:14px}.d7-maintenance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(162,116,105,.13);border-radius:9px;background:var(--theme-sunken,rgba(19,8,5,.42))}.d7-maintenance-row.is-active{border-color:rgba(233,177,83,.3)}.d7-maintenance-row strong{display:block;margin:6px 0 3px;color:var(--theme-ink,#e6e4e4);font-size:12px}.d7-maintenance-row p,.d7-maintenance-row small{margin:3px 0;color:var(--text-tertiary);font-size:11px}.d7-sla-form{grid-template-columns:minmax(0,1fr) minmax(130px,.65fr) auto auto;margin-bottom:12px}.d7-sla-result .table-wrap{max-height:360px;overflow:auto}.d7-sla-result table{min-width:700px}.d7-sla-result td small{display:block;color:var(--text-tertiary);font-size:10px}.d7-data-note{padding:9px 11px;border-left:3px solid #fc5c34;background:rgba(252,92,52,.07);color:var(--theme-critical,#dfb4a9);font-size:11px}.d7-data-note.is-warning{border-color:#e4ae54;color:var(--theme-warning,#efcd8a);background:rgba(224,166,69,.07)}.d7-channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.d7-channel-grid article{display:grid;justify-items:start;gap:6px;padding:11px;border:1px solid rgba(162,116,105,.13);border-radius:9px;background:var(--theme-sunken,rgba(19,8,5,.42))}.d7-channel-grid strong{color:var(--theme-ink,#e6e4e4);font-size:12px}.d7-channel-grid small{color:var(--text-tertiary);font-size:10px}.d7-empty{display:grid;gap:4px;padding:17px;border:1px dashed rgba(162,116,105,.21);border-radius:9px;color:var(--text-secondary)}.d7-empty span,.d7-error{color:var(--text-tertiary);font-size:12px}.d7-error{padding:12px;border-left:3px solid #e56b58;background:rgba(225,83,69,.08);color:var(--theme-critical,#ffc0b2)}.d7-maintenance-banner{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:10px 13px;border:1px solid rgba(233,177,83,.38);border-radius:9px;background:rgba(183,117,35,.13);color:var(--theme-warning,#f0d08f)}.d7-maintenance-banner strong{flex:none;font-size:10px;letter-spacing:.08em}.d7-maintenance-banner span{flex:1;color:var(--theme-warning,#e5c990);font-size:11px}.d7-maintenance-banner[hidden]{display:none}
.d7-operations-nav{order:6}nav .d7-operations-nav.selected{color:var(--theme-critical,#f19e89)}
@media(max-width:900px){.d7-two-col{grid-template-columns:1fr}.d7-sla-form{grid-template-columns:repeat(2,minmax(0,1fr))}.d7-sla-form button,.d7-sla-form a{justify-self:start}}
@media(max-width:700px){.d7-page{padding:13px;gap:11px}.d7-page>header.d7-page-head{align-items:flex-start;flex-direction:column}.d7-page>header>div:first-child,.d7-panel>header>div:first-child,.d7-incident>header>div:first-child{display:block;min-width:0;white-space:normal;overflow:visible;text-overflow:clip}.d7-page-head h1{font-size:21px}.d7-panel{padding:12px}.d7-panel>header{align-items:flex-start;flex-direction:column}.d7-incident{padding:11px}.d7-incident>header{flex-direction:column}.d7-incident h3{font-size:15px}.d7-incident>header>a{min-height:34px}.d7-actions{align-items:stretch;gap:8px}.d7-actions>span{flex-basis:100%}.d7-actions label{flex:1 1 100%;min-width:0}.d7-actions button{flex:1}.d7-notes form,.d7-diagnostic form{grid-template-columns:1fr}.d7-two-col{gap:11px}.d7-maintenance-form,.d7-sla-form{grid-template-columns:1fr}.d7-maintenance-form .d7-wide{grid-column:auto}.d7-maintenance-row{align-items:flex-start}.d7-channel-grid{grid-template-columns:1fr}.d7-maintenance-banner{align-items:flex-start;flex-wrap:wrap;gap:6px}.d7-maintenance-banner strong{flex-basis:100%}.d7-maintenance-banner span{flex-basis:100%}.d7-maintenance-banner button{min-height:32px}}

/* Lyra monitoring adapter */
.lyra-admin,.lyra-link-panel{border-color:rgba(252,92,52,.24);background:linear-gradient(135deg,var(--theme-panel,rgba(42,20,14,.96)),var(--theme-panel,rgba(26,13,10,.97)));}
.lyra-config-form,.lyra-binding-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;margin:16px 0;}
.lyra-config-form label,.lyra-binding-form label{display:grid;gap:6px;color:var(--muted,var(--theme-muted,#a6a1a1));font-size:.82rem;}
.lyra-config-form input:not([type=checkbox]),.lyra-binding-form select{width:100%;min-width:0;}
.lyra-enabled{display:flex!important;align-items:center;gap:8px;}
.lyra-admin h3{margin:20px 0 8px;font-size:1rem;}
.lyra-summary{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
.lyra-summary.is-stale{opacity:.7;}
.lyra-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(252,92,52,.2);border-radius:999px;padding:4px 9px;color:var(--theme-critical,#e2c1b9);background:rgba(148,58,35,.08);font-size:.72rem;line-height:1.3;}
.lyra-chip b{color:var(--theme-ink,#e9e8e8);font-weight:600;}
.lyra-chip.warning{border-color:rgba(255,177,91,.45);color:var(--theme-warning,#ffd49b);background:rgba(255,177,91,.08);}
.lyra-chip.unavailable{color:var(--theme-muted,#a39592);border-color:rgba(180,164,160,.2);background:rgba(180,164,160,.05);}
.lyra-link-panel{margin:16px 0;}
@media(max-width:850px){.lyra-config-form,.lyra-binding-form{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){.lyra-config-form,.lyra-binding-form{grid-template-columns:1fr;}.lyra-admin .d7-page-head,.lyra-admin>header{align-items:flex-start;}}

/* Monitoramento de clientes: densidade operacional com leitura clara por cliente, equipamento e link. */
.noc-live-sync{display:inline-flex;align-items:center;gap:7px;margin-left:9px;padding:5px 9px;border:1px solid rgba(63,204,165,.24);border-radius:999px;background:rgba(63,204,165,.07);color:var(--theme-accent,#76d8b8);font:600 9px var(--mono);letter-spacing:.12em;vertical-align:middle}.noc-live-sync i{width:6px;height:6px;border-radius:50%;background:#56d8aa;box-shadow:0 0 10px #56d8aa;animation:noc-sync-pulse 1.8s ease-out infinite}@keyframes noc-sync-pulse{50%{box-shadow:0 0 0 5px rgba(86,216,170,.08)}}
.noc-client-nav{display:flex;align-items:center;gap:5px;padding:12px 0;border-bottom:1px solid rgba(190,110,90,.12)}.noc-client-nav>button,.noc-incident-filters button,.noc-company-tabs button{min-height:34px;padding:0 13px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-tertiary);font:inherit;font-size:12px;font-weight:500;cursor:pointer}.noc-client-nav>button:hover,.noc-incident-filters button:hover,.noc-company-tabs button:hover{color:var(--text-primary);background:rgba(198,128,110,.06)}.noc-client-nav>button.selected,.noc-incident-filters button.selected{border-color:rgba(252,92,52,.2);background:rgba(252,92,52,.09);color:var(--theme-critical,#edad9d)}.noc-client-search{display:flex;align-items:center;gap:8px;min-width:220px;margin-left:auto;padding:0 10px;border:1px solid rgba(171,114,100,.18);border-radius:8px;background:var(--theme-sunken,rgba(20,10,7,.56));color:var(--theme-muted,#857f7f)}.noc-client-search input{width:100%;min-width:0;height:34px;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit;font-size:12px}.noc-client-search kbd{flex:0 0 auto;padding:2px 5px;border:1px solid rgba(180,144,135,.18);border-radius:4px;color:var(--theme-muted,#908b8b);font:9px var(--mono)}.noc-kpi span{display:flex;align-items:center;gap:7px}.noc-kpi span i{display:grid;place-items:center;width:18px;height:18px;border:1px solid rgba(252,92,52,.22);border-radius:5px;color:var(--theme-critical,#fc5c34);font:11px var(--mono);font-style:normal}
.noc-incident-section .noc-section-heading{align-items:center}.noc-incident-filters{display:flex;gap:4px}.noc-incident-filters button{min-height:29px;padding:0 9px;font-size:10px}.noc-incident-list{display:grid;gap:7px}.client-incident{display:grid;grid-template-columns:128px minmax(0,1fr) auto;align-items:center;gap:13px;padding:11px 13px;border:1px solid rgba(166,116,104,.14);border-radius:9px;background:var(--theme-panel,rgba(33,17,13,.75))}.client-incident.is-active{border-left:2px solid var(--status-medium)}.client-incident-state{color:var(--theme-muted,#b6b2b2);font:10px var(--mono);letter-spacing:.07em}.client-incident.is-active .client-incident-state{color:var(--status-medium)}.client-incident p,.client-incident small{display:block;margin:3px 0 0;color:var(--text-tertiary);font-size:11px}.client-incident .ghost{white-space:nowrap}
.noc-client-workspace{margin-top:20px}.noc-company-tabs{display:flex;gap:6px;overflow:auto;padding:3px 0 10px;scrollbar-width:thin}.noc-company-tabs button{flex:0 0 auto;min-height:31px;padding:0 11px;border-color:rgba(160,106,92,.13);background:var(--theme-sunken,rgba(23,11,8,.44));font-size:11px}.noc-company-tabs button.selected{border-color:rgba(252,92,52,.34);background:rgba(252,92,52,.12);color:var(--theme-critical,#f2c4b8)}.noc-company-tabs b{margin-left:5px;color:var(--theme-muted,#8c8787);font:10px var(--mono)}.noc-client-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.client-company-card,.client-link-card,.client-device-card{min-width:0;padding:14px;border:1px solid rgba(164,110,96,.15);border-radius:11px;background:linear-gradient(145deg,var(--theme-panel,rgba(40,22,17,.91)),var(--theme-panel,rgba(25,13,10,.94)));box-shadow:inset 0 1px rgba(234,194,184,.035),0 8px 20px rgba(0,0,0,.12)}.client-company-card>header,.client-link-card>header,.client-device-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.client-company-card h3,.client-link-card h3,.client-device-card h3{margin:4px 0;color:var(--theme-ink,#ebe9e9);font-size:16px}.client-company-card small,.client-link-card small,.client-device-card header small{color:var(--theme-muted,#8f8989);font-size:10px}.client-card-kicker{color:var(--theme-muted,#9b9595);font:9px var(--mono);letter-spacing:.1em}.client-company-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:13px 0 5px}.client-company-stats span{color:var(--theme-muted,#8e8989);font-size:9px}.client-company-stats b{display:block;margin-bottom:3px;color:var(--theme-ink,#dfdede);font:500 11px var(--mono)}.client-company-spark{height:38px;color:var(--theme-critical,#fc5c34)}.client-company-card>.ghost,.client-link-card>.ghost,.client-device-card>.ghost{min-height:30px;margin-top:9px;padding:0 10px;font-size:10px}
.client-link-card.critical{border-color:rgba(243,107,89,.35)}.client-link-card.warning{border-color:rgba(245,165,36,.3)}.client-link-values{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 13px;margin:12px 0;color:var(--theme-muted,#a09c9c);font-size:10px}.client-link-values strong{color:var(--theme-critical,#f7eeec);font:500 13px var(--mono)}.client-link-chart{display:grid;gap:3px;color:var(--theme-critical,#fc5c34)}.client-link-chart svg,.client-company-spark svg{display:block;width:100%;height:54px;overflow:visible}.client-link-chart .traffic-in,.client-link-chart .traffic-out{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.client-link-chart .traffic-in{stroke:#fc5c34}.client-link-chart .traffic-out{stroke:#e6a08e}.client-link-chart .capacity-mark,.client-link-chart .limit{stroke:#8d7c78;stroke-width:1;stroke-dasharray:4 4}.client-link-chart .chart-peak{fill:var(--status-medium)}.client-link-chart .chart-minimum{fill:var(--theme-critical,#e6a08e)}.traffic-legend{display:flex;align-items:center;gap:6px;color:var(--theme-muted,#817a7a);font-size:9px}.traffic-legend i{width:9px;height:2px;background:#fc5c34}.traffic-legend i.out{margin-left:6px;background:#e6a08e}.traffic-legend i.limit{margin-left:6px;background:#8d7c78}.client-insights{display:grid;gap:4px;margin:8px 0;padding-left:15px;color:var(--theme-muted,#9c9797);font-size:10px}.client-insights li::marker{color:var(--theme-critical,#ba6c59)}.client-device-status{padding:4px 7px;border:1px solid rgba(71,196,157,.2);border-radius:999px;color:var(--theme-accent,#72d3ae);font:9px var(--mono)}.client-device-status.stale{border-color:rgba(245,165,36,.3);color:var(--status-medium)}.client-device-visual{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:11px 12px;border:1px solid rgba(167,106,91,.12);border-radius:8px;background:linear-gradient(90deg,var(--theme-panel,rgba(52,28,22,.7)),rgba(23,12,9,.3));color:var(--theme-muted,#bab6b6);font-size:11px}.device-silhouette{color:var(--theme-muted,#a29d9d);font-size:17px;letter-spacing:2px;text-shadow:0 0 12px rgba(252,92,52,.2)}.client-device-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.client-device-metrics span{padding:7px;border:1px solid rgba(155,106,94,.1);border-radius:7px;color:var(--theme-muted,#847d7d);font-size:9px}.client-device-metrics b{display:block;margin-top:4px;color:var(--theme-ink,#dcdbdb);font:500 11px var(--mono)}.client-device-log,.client-recommendation{margin:6px 0;color:var(--theme-muted,#938d8d);font-size:10px;line-height:1.5}.client-recommendation{padding:7px 9px;border-left:2px solid rgba(252,92,52,.36);background:rgba(57,29,22,.28)}.noc-spark-empty{display:block;padding:14px 0;color:var(--theme-muted,#777171);font-size:10px}.noc-clear{padding:20px;border:1px dashed rgba(168,117,104,.18);border-radius:9px;color:var(--theme-muted,#b5b2b2)}.noc-clear p{margin:5px 0 0;color:var(--theme-muted,#8c8787);font-size:11px}
#noc-board[data-workspace-tab="traffic"] .noc-attention-section,#noc-board[data-workspace-tab="traffic"] .noc-incident-section,#noc-board[data-workspace-tab="traffic"] .noc-flow-section,#noc-board[data-workspace-tab="devices"] .noc-attention-section,#noc-board[data-workspace-tab="devices"] .noc-incident-section,#noc-board[data-workspace-tab="devices"] .noc-flow-section,#noc-board[data-workspace-tab="links"] .noc-attention-section,#noc-board[data-workspace-tab="links"] .noc-incident-section,#noc-board[data-workspace-tab="links"] .noc-flow-section{display:none}#noc-board[data-workspace-tab="traffic"] .noc-company-tabs,#noc-board[data-workspace-tab="links"] .noc-company-tabs{display:none}
@media(max-width:900px){.noc-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.noc-client-cards{grid-template-columns:1fr}.client-link-card,.client-device-card{padding:12px}}
@media(max-width:700px){.noc-client-nav{gap:2px;overflow:auto}.noc-client-nav>button{flex:0 0 auto;min-height:31px;padding:0 8px;font-size:10px}.noc-client-search{flex:0 0 100%;order:2;margin:5px 0 0}.noc-client-search kbd{display:none}.noc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.noc-kpi:last-child{grid-column:span 2}.noc-incident-section .noc-section-heading{align-items:flex-start;flex-direction:column}.noc-incident-filters{width:100%}.noc-incident-filters button{flex:1}.client-incident{grid-template-columns:1fr auto;gap:5px 9px;padding:10px}.client-incident-state{grid-column:1/-1}.client-incident p{font-size:10px}.client-incident .ghost{grid-column:2;grid-row:2}.noc-company-tabs{margin-right:-4px}.noc-company-tabs button{font-size:10px}.client-company-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.client-device-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.client-device-visual{align-items:flex-start;flex-direction:column}.client-link-values{gap:5px 8px}.client-link-values strong{font-size:11px}.client-link-chart svg{height:46px}}
@media(min-width:1200px){body.noc-tv .noc-client-nav,body.noc-tv .noc-company-tabs,body.noc-tv .noc-incident-filters,body.noc-tv .noc-client-search{display:none}body.noc-tv #noc-board[data-workspace-tab="overview"] .noc-flow-section{display:none}body.noc-tv #noc-board{overflow:auto!important;height:auto!important;min-height:100vh!important}body.noc-tv main{height:auto!important;overflow:auto!important}body.noc-tv .noc-client-cards{grid-template-columns:repeat(3,minmax(0,1fr))}body.noc-tv .client-company-card{padding:9px}body.noc-tv .noc-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}
.client-device-visual{flex-direction:column;align-items:stretch;gap:14px;padding:20px 16px}
.client-device-visual>strong{align-self:flex-start}
.client-device-visual .equipment-svg{display:block;flex:none;width:100%;min-width:0;max-width:1000px;height:auto;max-height:none;margin:0 auto;filter:saturate(.76) brightness(.86)}
#noc-client-cards[data-tab="devices"]>.client-device-card:only-child{grid-column:1/-1}
.border-layout:not(.secondary)>.port-panel,.border-layout:not(.secondary)>.border-alerts{grid-column:1/-1}
.port-map.has-equipment-svg .equipment-svg{max-width:1200px;margin:0 auto}
@media(max-width:700px){.client-device-visual{padding:14px 6px}}
@media(min-width:1200px){body.noc-tv main{height:100vh!important;overflow:hidden!important;padding:8px 14px!important}body.noc-tv #noc-board{display:flex!important;flex-direction:column;height:calc(100vh - 16px)!important;min-height:0!important;overflow:hidden!important;padding:12px 20px!important}body.noc-tv .noc-client-nav,body.noc-tv .noc-company-tabs,body.noc-tv .noc-incident-filters,body.noc-tv .noc-client-search,body.noc-tv .noc-flow-section{display:none!important}body.noc-tv #noc-board[data-workspace-tab="overview"] .noc-attention-section,body.noc-tv #noc-board[data-workspace-tab="overview"] .noc-incident-section{display:block}body.noc-tv .noc-heading{min-height:42px;padding:0 0 7px}body.noc-tv .noc-heading h1{font-size:23px;margin:0}body.noc-tv .noc-heading p{font-size:10px}body.noc-tv .noc-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin:7px 0;gap:7px}body.noc-tv .noc-kpi{padding:7px 10px}body.noc-tv .noc-kpi strong{font-size:22px;margin:2px 0}body.noc-tv .noc-kpi small{font-size:8px}body.noc-tv .noc-section{margin-top:6px}body.noc-tv .noc-section-heading{margin-bottom:4px}body.noc-tv .noc-section-heading h2{font-size:13px}body.noc-tv .noc-section-heading .eyebrow{font-size:8px}body.noc-tv .noc-problems{gap:3px}body.noc-tv .noc-problem{padding:5px 8px;gap:7px}body.noc-tv .noc-problem:nth-of-type(n+5){display:none}body.noc-tv .noc-problem-main strong{font-size:11px}body.noc-tv .noc-problem-main ul{font-size:9px}body.noc-tv .noc-problem-main small{font-size:8px}body.noc-tv .noc-incident-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}body.noc-tv .client-incident{grid-template-columns:95px minmax(0,1fr);padding:6px 8px;gap:3px 7px}body.noc-tv .client-incident .ghost{display:none}body.noc-tv .client-incident strong{font-size:10px}body.noc-tv .client-incident p,body.noc-tv .client-incident small{font-size:8px}body.noc-tv .noc-client-workspace{flex:1;min-height:0;overflow:hidden}body.noc-tv .noc-client-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}body.noc-tv .client-company-card{padding:7px}.noc-client-search input{font:inherit;font-size:12px}}
@media(min-width:901px){#noc-board:not(.is-tv) .noc-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.noc-client-nav{flex-wrap:nowrap}.noc-client-search{width:270px;flex:0 0 270px}}
#noc-companies{display:none!important}
@media(min-width:1200px){body.noc-tv .noc-companies-section{display:block!important}body.noc-tv #noc-companies{display:none!important}body.noc-tv .noc-client-workspace{align-content:start}body.noc-tv .noc-client-cards{align-content:start}}
.noc-client-search{flex-direction:row!important;align-self:center;height:36px;min-height:36px}

/* Evidence-first product summary. */
.network-summary{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin:24px 0}.network-verdict,.network-comparison{min-width:0;border:1px solid var(--border,var(--theme-border,#3b3939));border-radius:12px;padding:22px;background:var(--theme-panel,rgba(30,17,14,.65))}.network-verdict h2,.network-comparison h3{font-size:21px;line-height:1.35;margin:12px 0}.network-summary p{font-size:14px;line-height:1.65;color:var(--theme-muted,#c0bcbc)}.network-summary small,.network-scope{display:block;color:var(--theme-muted,#a8a4a4);font-size:12px;line-height:1.6;overflow-wrap:anywhere}.network-verdict.down{border-left:3px solid #e48686}.network-verdict.attention{border-left:3px solid #d6b574}.network-verdict.unknown{border-left:3px solid #a8a4a4}.network-verdict.connected{border-left:3px solid #65bca6}.network-evidence-counts,.network-comparison-values{display:flex;flex-wrap:wrap;gap:12px 22px;margin:18px 0;font-size:13px;color:var(--theme-muted,#c0bcbc)}.network-evidence-counts b,.network-comparison-values b{display:block;font-size:23px;color:var(--theme-ink,#e8e6e6);font-variant-numeric:tabular-nums}.network-comparison-scope{overflow-wrap:anywhere}.network-comparison .ghost{display:inline-block;margin:6px 0 12px}.network-comparison-values b{font-size:19px}.client-company-card .network-scope{margin:12px 0}.network-summary .eyebrow{font-size:10px;letter-spacing:.14em}@media(max-width:800px){.network-summary{grid-template-columns:1fr;gap:12px}.network-verdict,.network-comparison{padding:17px}.network-verdict h2,.network-comparison h3{font-size:19px}}

/* Navigation by task; the mobile bar always has four destinations and More. */
aside nav#main-navigation{display:flex;flex-direction:column;gap:0;margin-top:28px;flex:1}
.sidebar-nav-group{display:flex;flex-direction:column;gap:3px;margin-bottom:20px;min-width:0}
.sidebar-group-heading{display:block;margin:0 10px 8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary)}
#main-navigation button[data-nav-key]{align-items:flex-start;gap:10px;min-height:48px;padding:11px 10px;white-space:normal;line-height:1.3}
#main-navigation button[data-nav-key] .nav-icon{margin-top:2px;width:18px;height:18px}
.nav-item-copy{display:block;font-size:12.5px;font-weight:500;min-width:0}.nav-item-copy small{display:block;margin-top:4px;font-size:10.5px;line-height:1.35;color:var(--text-tertiary);font-weight:400}
#main-navigation button[data-nav-key].selected{background:rgba(var(--neutral-rgb),.075);box-shadow:inset 2px 0 0 var(--coral)}
#main-navigation button.selected::before{display:none}#main-navigation button:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
#main-navigation [data-nav-group=monitoring]{order:0}#main-navigation [data-nav-group=analysis]{order:10}#main-navigation [data-nav-group=admin]{order:20}#main-navigation [data-nav-group=account]{order:30;margin-top:auto}
#main-navigation #mobile-more{order:99}#navigation-secondary[hidden]{display:none!important}
#view-incidents .d7-operations-nav{min-height:38px;display:flex;align-items:center;gap:8px;border:1px solid var(--border-default);background:transparent;padding:9px 14px;border-radius:var(--r-card);color:var(--text-secondary);font-size:12px}#view-incidents .d7-operations-nav.hidden{display:none}
#view-monitor .page-title,#view-history .page-title,#view-incidents .page-title{gap:12px;flex-wrap:wrap}
@media(max-width:700px){
 aside nav#main-navigation{flex-direction:row;margin:0;gap:0;align-items:stretch}
 #main-navigation>.nav-primary{display:contents}#main-navigation>.nav-primary>.sidebar-group-heading{display:none}
 #main-navigation .nav-primary>button[data-nav-key],#main-navigation #mobile-more{flex:1 1 20%;width:20%;min-width:0;padding:7px 2px;min-height:60px;align-items:center;justify-content:center;gap:4px}
 #main-navigation .nav-primary>button .nav-item-copy{font-size:0;line-height:1}#main-navigation .nav-primary>button .nav-item-copy::after{content:attr(data-short);display:block;font-size:10px;font-weight:500;line-height:1.2}
 #main-navigation .nav-primary>button .nav-item-copy small{display:none}#main-navigation .nav-primary>button[data-nav-key] .nav-icon{width:20px;height:20px;margin:0}
 #main-navigation .nav-primary>button[data-nav-key].selected{background:transparent;box-shadow:inset 0 2px 0 var(--coral)}
 #main-navigation .mobile-more-menu.is-open{display:flex;flex-direction:column;gap:10px;max-height:70dvh;border-radius:16px;padding:16px}
 #main-navigation .mobile-more-menu .sidebar-nav-group{margin-bottom:6px;flex:0 0 auto}
 #main-navigation .mobile-more-menu .sidebar-group-heading{display:block;font-size:10px;margin:0 10px 4px}
 #main-navigation .mobile-more-menu button[data-nav-key]{display:flex;flex-direction:row;align-items:flex-start;width:100%;min-height:50px;padding:10px}
 #main-navigation .mobile-more-menu .nav-item-copy{font-size:13px}#main-navigation .mobile-more-menu .nav-item-copy small{display:block;font-size:11px}
 #main-navigation #mobile-more.selected{box-shadow:inset 0 2px 0 var(--coral)}
}

/* Flow observatory: content, categories, CDN, and a shared timeline. */
.flow-observatory{background:var(--theme-sunken,#101010);padding:20px;gap:18px;min-width:0}.flow-observatory>.flow-analysis-head{position:static;height:auto;background:transparent;border:0;padding:0;min-height:0}.flow-observatory .flow-analysis-head h1{font-size:25px;letter-spacing:-.035em}.flow-observatory .flow-toolbar-scope{margin-left:auto;color:var(--theme-muted,#969191);font-size:11px}.flow-observatory .flow-kpis{gap:10px}.flow-observatory .flow-kpis article{background:linear-gradient(150deg,var(--theme-panel,#1c1a1a),var(--theme-panel,#141414));border-color:var(--theme-border,#2b2828)}.flow-observatory .flow-no-attention{margin:0;color:var(--theme-muted,#948f8f);font-size:11px}.flow-content-grid{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(340px,1fr);gap:16px}.flow-observatory .flow-content,.flow-observatory .flow-categories,.flow-observatory .flow-cdn-panel,.flow-observatory .flow-chart-panel,.flow-observatory .flow-ranking{min-width:0;margin:0;padding:17px;border:1px solid var(--theme-border,#2b2828);border-radius:17px;background:linear-gradient(160deg,var(--theme-panel,#181616) 0%,var(--theme-panel,#131313) 46%,var(--theme-panel,#201e1e) 100%);box-shadow:0 8px 25px rgba(0,0,0,.12)}.flow-observatory .panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 10px}.flow-observatory .panel-heading h2{margin:0 0 4px;font-size:14px;font-weight:600;line-height:1.4;color:var(--theme-critical,#f2e6e3)}.flow-observatory .panel-heading p,.flow-panel-explanation{margin:0;color:var(--theme-muted,#9d9797);font-size:10.5px;line-height:1.6}.flow-panel-explanation{margin-bottom:13px}.flow-rich-rows{display:grid;gap:15px;max-height:420px;overflow:auto;padding:5px 7px 9px 0;scrollbar-width:thin;scrollbar-color:var(--theme-border,#383535) transparent}.flow-rich-rows article{display:grid;grid-template-columns:minmax(155px,1fr) minmax(80px,1.8fr) 90px;align-items:center;gap:13px;min-height:43px}.flow-rich-identity{display:flex;align-items:center;gap:12px;min-width:0;width:100%;border:0;padding:0;background:transparent;color:var(--theme-critical,#f3e5e2);text-align:left}.flow-rich-identity>span:last-child{min-width:0;display:block}.flow-rich-identity strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:500}.flow-rich-identity small{display:block;margin-top:4px;font-size:9px;color:var(--theme-muted,#938d8d)}.flow-rich-identity .flow-service-icon,.flow-rich-identity .flow-monogram{width:36px;height:36px;flex:0 0 36px;border-radius:9px}.flow-rich-identity .flow-service-icon svg{width:100%;height:100%}.flow-rich-identity .flow-service-icon[data-brand-color="#000000"],.flow-rich-identity .flow-service-icon[data-brand-color="#181717"],.flow-rich-identity .flow-service-icon[data-brand-color="#313131"]{background:#f1f1f1;padding:5px}.flow-rich-identity .flow-monogram{border-color:var(--theme-border,#413d3d);background:var(--theme-panel,#272626);color:var(--theme-critical,#fd7a58);font-size:18px}.flow-rich-bar{height:12px;margin:0;background:var(--theme-panel,#201e1e);border:0;border-radius:20px;overflow:hidden}.flow-rich-bar i{width:var(--flow-width,0%);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--flow-color,#fc5c34) 65%,var(--theme-panel,#191717)),var(--flow-color,#fc5c34));border-radius:inherit}.flow-rich-rate{text-align:right;white-space:nowrap;color:var(--theme-muted,#a8a4a4);font:10.5px var(--mono)}.flow-cdn-panel .flow-rich-rows.is-cdn{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;max-height:360px}.flow-cdn-panel .flow-rich-rows article{grid-template-columns:minmax(140px,1fr) minmax(70px,1.5fr) 85px}.flow-content-filter{display:flex;justify-content:space-between;gap:8px;margin:8px 0 14px;font-size:11px;color:var(--theme-critical,#edc2b7)}.flow-content-filter button,.flow-chart-selection button{border:0;background:transparent;color:var(--theme-critical,#fd7a58);font-size:11px}.flow-observatory [hidden]{display:none!important}.flow-donut-visual{width:100%;min-width:0}.flow-donut-svg{display:block;width:100%;height:315px;overflow:visible}.flow-donut-segment{cursor:pointer;transition:opacity .15s}.flow-donut-segment:hover,.flow-donut-segment.selected{opacity:.76;stroke-width:55}.flow-donut-callout{cursor:pointer}.flow-donut-label{fill:var(--theme-critical,#f2e0dc);font-family:var(--sans,system-ui);font-size:11px;font-weight:600}.flow-donut-share{fill:var(--theme-muted,#a49f9f);font:10px var(--mono)}.flow-donut-center-label{fill:var(--theme-muted,#a9a4a4);font-family:var(--sans,system-ui);font-size:10px;font-weight:500;letter-spacing:1px}.flow-donut-center-value{fill:var(--theme-critical,#ffece7);font:600 19px var(--mono)}.flow-donut-visual.is-compact .flow-donut-callout{display:none}.flow-donut-visual.is-compact .flow-donut-svg{height:260px}.flow-observatory .flow-category-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px}.flow-observatory .flow-category-legend button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px;border:1px solid transparent;font-size:10px;min-width:0;line-height:1.4}.flow-observatory .flow-category-legend button.selected{border-color:var(--flow-color,#fc5c34);background:var(--theme-panel,#252323)}.flow-category-symbol{display:grid;place-items:center;width:23px;height:23px;color:var(--flow-color,var(--theme-muted,#b4b1b1));background:color-mix(in srgb,var(--flow-color,#fc5c34) 17%,transparent);border:1px solid color-mix(in srgb,var(--flow-color,#fc5c34) 45%,transparent);border-radius:7px}.flow-category-symbol svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.flow-category-legend strong{font:10px var(--mono);color:var(--theme-muted,#bdbaba)}.flow-observatory .flow-chart-note{font-size:10px;line-height:1.65;color:var(--theme-muted,#969191);margin-top:12px}.flow-observatory nav.flow-dimensions{position:static;inset:auto;z-index:auto;height:auto;display:flex;flex-wrap:wrap;padding:0;border:0;background:transparent;gap:6px}.flow-observatory nav.flow-dimensions::after{display:none}.flow-observatory .flow-dimensions button{min-height:32px;border-radius:7px}.flow-observatory .flow-analysis-grid{display:grid;grid-template-columns:minmax(0,3.2fr) minmax(270px,1fr);gap:16px}.flow-observatory .flow-chart-panel{grid-row:auto;min-width:0}.flow-chart-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.flow-chart-actions button{min-height:29px;border-radius:8px;padding:4px 9px;font-size:10px;white-space:nowrap}.flow-chart-actions .flow-periods{display:flex;margin:0;gap:2px;overflow:visible}.flow-chart-actions .flow-periods button{padding:4px 8px;min-height:28px}.flow-observatory .flow-analysis-chart-live{width:100%;height:420px;border:1px solid var(--theme-border,#272626);border-radius:12px;background:var(--theme-sunken,rgba(22,9,6,.5));overflow:hidden}.flow-chart-selection{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;color:var(--theme-critical,#e3beb5);font-size:11px}.flow-observatory #flow-chart-panel:fullscreen{padding:28px;background:var(--theme-panel,#171515);overflow:auto}.flow-observatory #flow-chart-panel:fullscreen .flow-analysis-chart-live{height:calc(100vh - 160px)}.flow-rank-search{display:flex;align-items:center;gap:7px;min-width:0;padding:0 10px;border:1px solid var(--theme-border,#353232);border-radius:9px;background:var(--theme-panel,#111111);color:var(--theme-muted,#918c8c)}.flow-rank-search input{width:100%;min-width:0;border:0;background:transparent;outline:0;padding:8px 0;color:var(--theme-ink,#d9d8d8);font-size:11px}.flow-rank-filters{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.flow-rank-filters button{min-height:22px;padding:2px 8px;border:1px solid var(--theme-border,#353333);border-radius:20px;background:var(--theme-panel,#191717);color:var(--theme-muted,#a39f9f);font-size:9px}.flow-rank-filters button[aria-pressed=true]{border-color:#fc5c34;color:var(--theme-critical,#ffddd4);background:var(--theme-panel,#2f2c2c)}.flow-observatory .flow-ranking .flow-entity-list{display:grid;gap:8px;max-height:425px;overflow:auto;padding:0 4px 0 0;scrollbar-width:thin;scrollbar-color:var(--theme-border,#383535) transparent}.flow-observatory .flow-ranking .flow-entity-list>li{position:relative;display:block;min-width:0;padding:0;border:1px solid var(--theme-border,#2c2929);border-radius:10px;background:var(--theme-panel,rgba(36,17,12,.7));overflow:hidden}.flow-rank-select{display:block;width:100%;border:0;padding:10px 11px 8px;background:transparent;text-align:left;color:var(--theme-critical,#f0dfdb)}.flow-rank-select[aria-pressed=true]{background:color-mix(in srgb,var(--flow-color,#fc5c34) 13%,transparent);box-shadow:inset 2px 0 var(--flow-color,#fc5c34)}.flow-rank-heading{display:flex;align-items:center;gap:7px;min-width:0;padding-right:18px;font-size:10px}.flow-rank-heading>i{width:7px;height:7px;border-radius:50%;background:var(--flow-color);flex:0 0 7px}.flow-rank-heading>strong{font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.flow-rank-heading>b{margin-left:auto;flex:0 0 auto;font:10px var(--mono);color:var(--theme-muted,#b4b0b0);white-space:nowrap}.flow-rank-meta{display:flex;align-items:center;justify-content:space-between;gap:5px;margin:6px 0;font-size:9px;color:var(--theme-muted,#a49f9f)}.flow-rank-meta>span{padding:2px 4px;border-radius:3px;background:color-mix(in srgb,var(--flow-color) 16%,transparent);color:color-mix(in srgb,var(--flow-color) 75%,var(--theme-ink,#fff))}.flow-observatory .flow-ranking .flow-rank-select svg{width:100%;height:29px;display:block}.flow-rank-select svg path{stroke:var(--flow-color);stroke-width:1.6;fill:none}.flow-rank-meter{display:block;height:3px;border-radius:3px;background:var(--theme-panel,#272525);overflow:hidden}.flow-rank-meter i{display:block;width:var(--flow-width,0%);height:100%;border-radius:inherit;background:var(--flow-color)}.flow-rank-detail{position:absolute;right:5px;top:5px;border:0;border-radius:5px;background:var(--theme-panel,#242222);color:var(--theme-muted,#aeaaaa);width:22px;height:22px;font-size:12px}.flow-rank-detail:hover{background:var(--theme-panel,#3b3939);color:var(--theme-ink,#fff)}.flow-detail-dialog{position:fixed;inset:0;margin:auto;width:min(620px,calc(100vw - 28px));max-height:80dvh;overflow:auto;border:1px solid var(--theme-border,#423e3e);border-radius:17px;padding:23px;background:var(--theme-panel,#1b1919);color:var(--theme-critical,#f4e1dc);box-shadow:0 20px 80px #0009}.flow-detail-dialog::backdrop{background:var(--theme-sunken,#0a0a0abb);backdrop-filter:blur(5px)}.flow-detail-dialog>header{position:static;height:auto;padding:0 0 16px;margin-bottom:14px;border:0;border-bottom:1px solid var(--theme-border,#383636);background:transparent;display:flex;align-items:center;justify-content:space-between;gap:16px}.flow-detail-dialog h2{font-size:18px;margin:0}.flow-detail-dialog>header button{border:1px solid var(--theme-border,#403d3d);border-radius:7px;width:31px;height:31px;flex:0 0 31px;background:var(--theme-panel,#272626);color:var(--theme-critical,#f4e1dc);font-size:21px}.flow-detail-dialog dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.flow-detail-dialog dt{font-size:11px;color:var(--theme-muted,#a6a1a1);margin-bottom:5px}.flow-detail-dialog dd{font-size:14px;margin:0;overflow-wrap:anywhere}.flow-detail-scope,.flow-detail-limit{font-size:12px;line-height:1.65;color:var(--theme-muted,#aba7a7)}.flow-detail-limit{padding:12px;border:1px solid var(--theme-border,#393636);border-radius:8px;background:var(--theme-panel,#252323)}.flow-category-details{list-style:none;margin:0;padding:0}.flow-category-details li{display:grid;grid-template-columns:1fr auto;gap:5px;padding:12px 0;border-bottom:1px solid var(--theme-border,#393636);font-size:12px}.flow-category-details li small{grid-column:1 / -1;color:var(--theme-muted,#9d9898);font-size:10px}.flow-category-details li span{font:11px var(--mono)}.flow-observatory button:focus-visible,.flow-observatory [role=button]:focus-visible{outline:2px solid #fd7a58;outline-offset:3px}.flow-observatory .flow-data-note{line-height:1.6}
@media(max-width:1150px){.flow-content-grid{grid-template-columns:1fr}.flow-observatory .flow-analysis-grid{grid-template-columns:1fr}.flow-observatory .flow-ranking .flow-entity-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:450px}.flow-cdn-panel .flow-rich-rows.is-cdn{grid-template-columns:1fr}.flow-donut-visual{max-width:640px;margin:auto}.flow-observatory .flow-categories .flow-category-legend{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.flow-observatory{padding:12px;gap:12px}.flow-observatory .flow-analysis-head{display:block}.flow-observatory .flow-analysis-head h1{font-size:22px}.flow-observatory .flow-analysis-actions{display:flex;margin-top:13px}.flow-observatory .flow-analysis-actions button{flex:1;padding:6px;font-size:10px}.flow-observatory .flow-toolbar-scope{display:none}.flow-observatory .flow-toolbar label{min-width:calc(50% - 5px)}.flow-observatory .flow-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-observatory .flow-kpis strong{font-size:15px}.flow-observatory .flow-content,.flow-observatory .flow-categories,.flow-observatory .flow-cdn-panel,.flow-observatory .flow-chart-panel,.flow-observatory .flow-ranking{padding:13px;border-radius:13px}.flow-rich-rows{gap:13px;max-height:390px}.flow-rich-rows article,.flow-cdn-panel .flow-rich-rows article{grid-template-columns:minmax(0,1fr) 78px;gap:6px}.flow-rich-identity{grid-column:1;grid-row:1;gap:9px}.flow-rich-bar{grid-column:1 / -1;grid-row:2;margin-left:45px;height:9px}.flow-rich-rate{grid-column:2;grid-row:1;text-align:right;font-size:10px}.flow-rich-identity strong{font-size:11px}.flow-observatory .flow-categories .flow-category-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-observatory .flow-chart-panel .panel-heading{display:block}.flow-chart-actions{justify-content:flex-start;margin-top:12px;gap:5px}.flow-chart-actions .flow-periods{flex-wrap:wrap}.flow-observatory .flow-analysis-chart-live{height:300px}.flow-observatory .flow-ranking .flow-entity-list{grid-template-columns:1fr}.flow-observatory .flow-dimensions button{padding:5px 9px;width:auto;font-size:10px;min-height:31px}.flow-detail-dialog{padding:17px}.flow-detail-dialog dl{gap:13px}.flow-detail-dialog dd{font-size:12px}.flow-category-details li{grid-template-columns:1fr}.flow-category-details li small{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.flow-observatory *{scroll-behavior:auto;transition:none!important}}
.flow-observatory .flow-rank-search{display:flex;flex-direction:row;margin:0;min-height:34px}.flow-observatory .flow-rank-search>span{flex:0 0 auto}.flow-observatory .flow-rank-search input{display:block;padding:8px 0}.flow-observatory .flow-donut-segment:focus-visible{outline:2px solid #ff987e;outline-offset:4px}@media(max-width:700px){.flow-observatory .flow-rank-detail{width:32px;height:32px;top:5px;right:5px}.flow-observatory .flow-rank-heading{padding-right:28px}}

/* Flow pilot is rendered from the isolated collector, with company-scoped access. */
.flow-pilot .flow-toolbar{align-items:end;gap:12px}
.flow-pilot-company{display:grid;gap:5px;min-width:190px;padding:8px 11px;border:1px solid var(--theme-border,#353232);border-radius:9px;background:var(--theme-panel,#191717)}
.flow-pilot-company small{color:var(--theme-muted,#8a8585);font-size:9px;letter-spacing:.12em}
.flow-pilot-company strong{color:var(--theme-critical,#eddad5);font-size:12px;font-weight:500}
.flow-pilot .flow-pilot-periods{position:static;display:flex;gap:5px;justify-content:flex-end;margin:0}
.flow-pilot .flow-pilot-periods button{min-height:31px;padding:5px 10px;border:1px solid var(--theme-border,#363434);border-radius:8px;background:var(--theme-panel,#1d1c1c);color:var(--theme-muted,#a6a1a1);font-size:10px}
.flow-pilot .flow-pilot-periods button[aria-pressed=true]{border-color:#fc5c34;background:var(--theme-panel,#232222);color:var(--theme-critical,#efa28f)}
.flow-pilot .flow-pilot-chart,.flow-pilot .flow-pilot-ranking{min-width:0;margin:0;padding:17px;border:1px solid var(--theme-border,#2b2828);border-radius:16px;background:linear-gradient(160deg,var(--theme-panel,#181616),var(--theme-panel,#131313) 55%,var(--theme-panel,#201e1e))}
.flow-pilot-chart [data-flow-pilot-chart]{width:100%;height:340px}
.flow-pilot-ranking .table-wrap{max-height:520px;overflow:auto}
.flow-pilot-ranking table{min-width:540px}
.flow-pilot-ranking td:first-child{font-family:var(--mono);font-size:11px;overflow-wrap:anywhere}
.flow-pilot-error{padding:12px;border:1px solid rgba(255,168,87,.28);border-left:3px solid #ffad65;border-radius:8px;background:var(--theme-panel,#171813);color:var(--theme-warning,#e7bc8b);font-size:12px}
.flow-pilot .flow-chart-empty{min-height:180px}
@media(max-width:700px){.flow-pilot .flow-toolbar{align-items:stretch}.flow-pilot-company{min-width:0}.flow-pilot .flow-pilot-periods{justify-content:flex-start;flex-wrap:wrap}.flow-pilot-chart [data-flow-pilot-chart]{height:270px}.flow-pilot .flow-kpis article:last-child{grid-column:1/-1}}
.flow-pilot-services{min-width:0;margin:0;padding:17px;border:1px solid var(--theme-border,#2b2828);border-radius:16px;background:linear-gradient(155deg,var(--theme-panel,#1c1b1b),var(--theme-panel,#161515) 60%,var(--theme-panel,#1c1b1b))}.flow-pilot-services .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.flow-pilot-services .panel-heading h2{margin:0;color:var(--theme-critical,#f5e5e1);font-size:15px}.flow-pilot-services .panel-heading p{margin:4px 0 0;color:var(--theme-muted,#999494);font-size:10px}.flow-service-coverage{flex:0 0 auto;padding:5px 8px;border:1px solid var(--theme-border,#363434);border-radius:999px;color:var(--theme-muted,#aeaaaa);font-size:9px}.flow-pilot-service-list{max-height:390px;overflow:auto;padding-right:5px;scrollbar-width:thin;scrollbar-color:var(--theme-border,#3c3939) transparent}.flow-pilot-category-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.flow-pilot-category-list>span{display:grid;grid-template-columns:auto auto;gap:4px 12px;min-width:130px;padding:7px 9px;border:1px solid var(--theme-border,#302d2d);border-radius:8px;background:var(--theme-panel,#181717);color:var(--theme-muted,#b0abab);font-size:9px}.flow-pilot-category-list b{color:var(--theme-ink,#d1cece);font:10px var(--mono)}.flow-pilot-category-list i{grid-column:1/-1;display:block;width:var(--flow-width,0%);max-width:100%;height:3px;border-radius:4px;background:#fc5c34}.flow-pilot-services .flow-chart-note{margin-bottom:0}.flow-pilot-services .noc-flow-row{grid-template-columns:minmax(180px,1fr) minmax(100px,.55fr) minmax(100px,.3fr);padding:5px 0;border-bottom:1px solid rgba(150,107,96,.12)}
.noc-flow-panel .noc-flow-rows{max-height:390px;overflow:auto;padding-right:5px;scrollbar-width:thin;scrollbar-color:var(--theme-border,#3c3939) transparent}
@media(max-width:700px){.flow-pilot-services{padding:13px}.flow-pilot-services .panel-heading{align-items:flex-start}.flow-pilot-services .panel-heading h2{font-size:13px}.flow-pilot-services .noc-flow-row{grid-template-columns:minmax(0,1fr) 88px}.flow-pilot-services .noc-flow-meter{grid-column:1 / 2;grid-row:2;margin-left:29px}.flow-pilot-services .noc-flow-rate{grid-column:2;grid-row:1 / 3}.flow-pilot-category-list>span{min-width:calc(50% - 5px);flex:1}}
.flow-pilot-service-charts{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(310px,.9fr);gap:12px;margin-top:14px}.flow-pilot-service-charts>.panel{min-width:0;margin:0;padding:14px;border:1px solid rgba(169,112,98,.16);border-radius:12px;background:linear-gradient(155deg,var(--theme-panel,rgba(37,17,12,.88)),var(--theme-panel,rgba(27,12,8,.9)))}.flow-pilot-service-charts .panel-heading{margin-bottom:5px}.flow-pilot-service-charts .panel-heading h3,.flow-pilot-all-services>h3{margin:0;color:var(--theme-critical,#f2e0dc);font-size:12px;font-weight:550}.flow-pilot-service-charts .panel-heading p{margin:4px 0 0;color:var(--theme-muted,#999494);font-size:10px}.flow-pilot-service-rank [data-flow-pilot-services-chart]{width:100%;height:380px}.flow-pilot-service-mix .flow-donut-visual{min-height:270px}.flow-pilot-service-mix .flow-donut-svg{max-width:100%}.flow-pilot-service-mix .flow-category-legend{max-height:140px;overflow:auto;padding-right:4px;scrollbar-width:thin}.flow-pilot-service-mix .flow-category-legend button{min-height:32px}.flow-pilot-service-mix .flow-chart-note{margin-top:8px}.flow-pilot-service-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:8px 10px;border-left:2px solid #fc5c34;border-radius:6px;background:rgba(149,54,30,.1);color:var(--theme-critical,#e2b4a8);font-size:11px}.flow-pilot-service-filter[hidden]{display:none}.flow-pilot-service-filter button{min-height:28px;padding:3px 9px;font-size:10px}.flow-pilot-all-services{margin-top:18px}.flow-pilot-all-services>h3{display:flex;align-items:center;gap:8px;margin-bottom:8px}.flow-pilot-all-services>h3 small{display:grid;place-items:center;min-width:22px;height:20px;padding:0 5px;border:1px solid var(--theme-border,#3c3939);border-radius:20px;color:var(--theme-critical,#d19e91);font:10px var(--mono)}.flow-pilot-service-entry[hidden]{display:none}.flow-pilot-services .flow-donut-callout,.flow-pilot-services .flow-category-legend button{cursor:pointer}.flow-pilot-services [data-category].selected{opacity:.72;filter:drop-shadow(0 0 4px rgba(252,92,52,.4))}.flow-pilot-services .flow-category-legend button.selected{border-color:#fc5c34;background:rgba(252,92,52,.13)}
@media(max-width:900px){.flow-pilot-service-charts{grid-template-columns:minmax(0,1fr)}.flow-pilot-service-mix .flow-donut-visual{min-height:230px}}
@media(max-width:700px){.flow-pilot-service-charts{gap:9px;margin-top:10px}.flow-pilot-service-charts>.panel{padding:10px}.flow-pilot-service-rank [data-flow-pilot-services-chart]{height:330px}.flow-pilot-service-mix .flow-donut-svg{height:275px}.flow-pilot-all-services{margin-top:13px}}

/* Evidence report: offline/print-safe charts, same content as exported HTML. */
.report-evidence{margin:24px 0}.evidence-chart{margin:14px 0;padding:12px;border:1px solid #e5e4e4;border-radius:8px;break-inside:avoid;background:white;color:var(--theme-muted,#262424)}.evidence-chart figcaption{font-weight:650}.evidence-chart svg{display:block;width:100%;height:auto}.evidence-legend{font-size:12px;display:flex;flex-wrap:wrap;gap:12px}.evidence-legend span{display:inline-flex;align-items:center;gap:6px}.evidence-legend i{display:inline-block;width:14px;height:3px}.report-evidence td{vertical-align:top}.report-evidence h2{margin-top:26px}

/* Per-client link performance workspace. */
#noc-board[data-workspace-tab="links"] #noc-network-summary,#noc-board[data-workspace-tab="links"] .noc-kpis{display:none}
#noc-board[data-workspace-tab="links"] .noc-company-tabs{display:flex}
#noc-board[data-workspace-tab="links"] .noc-client-workspace{margin-top:22px}
#noc-client-cards[data-tab="links"]{display:block}
.links-workbench{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:22px 24px;border:1px solid var(--theme-border,#3e3b3b);border-radius:15px;background:radial-gradient(ellipse at top left,rgba(252,92,52,.12),transparent 70%),var(--theme-panel,#1a1919);margin-bottom:20px}
.links-workbench>div:first-child{flex:1;min-width:180px}.links-workbench .eyebrow{font-size:9px;letter-spacing:.13em;color:var(--theme-critical,#fc5c34)}.links-workbench h3{font-size:21px;letter-spacing:-.6px;margin:7px 0;color:var(--theme-critical,#f4e6e2)}.links-workbench p{font-size:11px;color:var(--theme-muted,#a09c9c);margin:0}.links-workbench>label{display:grid;gap:5px;font-size:10px;color:var(--theme-muted,#b6b2b2)}.links-workbench select{min-width:150px;background:var(--theme-panel,#252424);border-color:var(--theme-border,#4c4848);color:var(--theme-critical,#f2dcd7);font-size:12px;border-radius:8px;min-height:38px}
.links-color-legend{display:flex;flex-wrap:wrap;gap:20px;flex-basis:100%;border-top:1px solid var(--theme-border,#353333);padding-top:15px;font-size:10px}.links-color-legend span:nth-child(1){color:var(--theme-critical,#fc5c34)}.links-color-legend span:nth-child(2){color:var(--theme-critical,#ffaf9b)}.links-color-legend span:nth-child(3){color:var(--theme-warning,#f2bc68)}.links-color-legend span:nth-child(4){color:var(--theme-critical,#fb8297)}
.links-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.link-performance-card{min-width:0;border:1px solid var(--theme-border,#3b3838);border-radius:15px;background:linear-gradient(155deg,var(--theme-panel,#222020),var(--theme-panel,#181616) 70%);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.13),inset 0 1px rgba(244,195,183,.035)}
.link-performance-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:21px 20px 16px;border-bottom:1px solid rgba(154,99,85,.12)}.link-performance-company{font:10px var(--mono);letter-spacing:.12em;color:var(--theme-critical,#c68271);text-transform:uppercase}.link-performance-card h3{font-size:20px;font-weight:600;letter-spacing:-.6px;color:var(--theme-critical,#f4e6e2);margin:7px 0 3px}.link-performance-card header small{font-size:9px;color:var(--theme-muted,#959090);overflow-wrap:anywhere}.link-performance-state{flex-shrink:0;max-width:42%;font:9px var(--mono);line-height:1.7;letter-spacing:.015em;border:1px solid var(--theme-border,#2d5a52);background:rgba(40,169,136,.08);color:var(--theme-accent,#6bd6b7);border-radius:6px;padding:5px 8px}.link-performance-state.critical{color:var(--theme-critical,#fb8297);background:rgba(251,130,151,.06);border-color:#68404b}.link-performance-state.warning{color:var(--theme-warning,#f2bc68);background:rgba(242,188,104,.06);border-color:#4f4c4c}.link-performance-state.stale,.link-performance-state.unknown{color:var(--theme-muted,#b3afaf);border-color:var(--theme-border,#4c4949);background:var(--theme-panel,#242323)}
.link-performance-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:18px 20px}.link-metric{min-width:0}.link-metric>span{display:block;color:var(--theme-muted,#a6a2a2);font-size:10px;margin-bottom:8px}.link-metric>strong{display:block;white-space:nowrap;font-size:clamp(12px,1.3vw,20px);letter-spacing:-.5px;font-weight:500;font-variant-numeric:tabular-nums}.link-metric>small{display:block;color:var(--theme-muted,#7d7676);font-size:8px;margin-top:6px}.metric-0 strong{color:var(--theme-critical,#fc5c34)}.metric-1 strong{color:var(--theme-critical,#ffaf9b)}.metric-2 strong{color:var(--theme-warning,#f2bc68)}.metric-3 strong{color:var(--theme-critical,#fb8297)}
.link-performance-chart{height:370px;margin:0 12px 8px;min-width:0;touch-action:pan-y}.link-performance-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--theme-border,#333030);padding:11px 19px;background:rgba(20,6,3,.15)}.link-performance-card footer>span{font-size:9px;color:var(--theme-muted,#888282)}.link-performance-card footer button.ghost{font-size:10px;min-height:28px;padding:4px 8px;color:var(--theme-critical,#fd7a58);border-color:transparent}.links-measurement-note{margin:18px 0 4px;color:var(--theme-muted,#918b8b);font-size:10px;line-height:1.8}
@media(min-width:1900px){.links-chart-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.links-chart-grid{grid-template-columns:1fr}.link-metric>strong{font-size:20px}}
@media(max-width:600px){.links-workbench{padding:17px;gap:16px}.links-workbench h3{font-size:18px}.links-workbench>label{width:100%}.links-workbench select{width:100%}.links-color-legend{gap:14px;font-size:9px}.link-performance-card>header{padding:16px 14px;gap:8px}.link-performance-card h3{font-size:18px}.link-performance-state{font-size:8px;padding:4px 6px}.link-performance-values{padding:16px 14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.link-metric>strong{font-size:20px}.link-performance-chart{margin-right:7px;margin-left:4px}.links-chart-grid{gap:15px}.link-performance-card>footer{padding:10px 13px}}
.link-performance-card>header{position:static;top:auto;height:auto;z-index:auto;background:transparent;backdrop-filter:none}.link-performance-card>footer{position:static;height:auto;margin:0;letter-spacing:normal;text-transform:none}
@media(max-width:600px){#noc-board[data-workspace-tab="links"] .noc-client-nav{flex-wrap:wrap;overflow:visible;background:transparent;height:auto;gap:6px;padding:12px 0}#noc-board[data-workspace-tab="links"] .noc-client-search{flex:1 0 100%;width:100%;margin:5px 0 0;min-width:0}#noc-board[data-workspace-tab="links"] .noc-client-search input{min-width:0;width:100%}}
.link-performance-card>header>div:first-child{display:block;min-width:0;white-space:normal;overflow:visible;text-overflow:clip}

/* Client portal: the company's own network, links and evidence. */
.customer-portal .noc-kpis,.customer-portal .noc-attention-section,.customer-portal .noc-incident-section,.customer-portal .noc-flow-section,.customer-portal .noc-company-tabs{display:none!important}
.customer-portal .noc-heading{align-items:center}.customer-portal .noc-heading h1{font-size:clamp(25px,2.5vw,35px);letter-spacing:-1.1px}.customer-portal .noc-heading>.noc-clock-wrap .noc-tv-button,.customer-portal .noc-heading .noc-open-flow{display:none}.customer-portal .noc-heading .muted{max-width:600px;line-height:1.8}.customer-portal .noc-client-workspace{margin-top:26px}.customer-portal .noc-client-workspace>.noc-section-heading{margin-bottom:17px}
.customer-section-label{color:var(--theme-critical,#ca8776);font:10px var(--mono);letter-spacing:.13em;line-height:1.8}.customer-network-overview{display:grid;grid-template-columns:1.3fr 1fr;border:1px solid var(--theme-border,#464242);border-radius:16px;background:radial-gradient(ellipse at 0 0,rgba(252,92,52,.13),transparent 70%),var(--theme-panel,#1d1b1b);overflow:hidden}.customer-network-verdict{padding:25px 27px}.customer-network-verdict h2{display:flex;align-items:center;gap:11px;color:var(--theme-critical,#f4e4e0);font-size:23px;letter-spacing:-.6px;margin:14px 0 11px;border:0;line-height:1.4}.customer-network-verdict h2 i{display:block;flex:none;width:9px;height:9px;border-radius:50%;background:#9f9b9b;box-shadow:0 0 0 5px #9f9b9b12}.customer-network-overview.connected h2 i{background:#51d6ac;box-shadow:0 0 0 5px #51d6ac12}.customer-network-overview.attention h2 i{background:#f2bc68}.customer-network-overview.down h2 i{background:#fb8297}.customer-network-verdict>p{color:var(--theme-muted,#a7a2a2);line-height:1.9;font-size:11px;margin:0;max-width:500px}.customer-network-counts{display:flex;flex-wrap:wrap;gap:20px;margin:22px 0 17px;color:var(--theme-muted,#afaaaa);font-size:10px}.customer-network-counts b{font:500 20px var(--mono);color:var(--theme-critical,#ecd7d2);margin-right:5px}.customer-network-verdict>small{color:var(--theme-muted,#827b7b);font-size:9px}
.customer-network-throughput{padding:25px 27px;border-left:1px solid var(--theme-border,#3c3a3a);display:flex;flex-direction:column;justify-content:center;background:rgba(20,6,2,.12)}.customer-network-throughput>div{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0 14px}.customer-network-throughput>div>span{font-size:10px;color:var(--theme-muted,#a39f9f)}.customer-network-throughput strong{display:block;margin-top:8px;color:var(--theme-critical,#fc5c34);font-size:clamp(18px,1.8vw,27px);font-weight:500;letter-spacing:-.8px;font-variant-numeric:tabular-nums;white-space:nowrap}.customer-network-throughput>div>span+span strong{color:var(--theme-critical,#ffaf9b)}.customer-network-throughput>small{color:var(--theme-muted,#8a8484);font-size:9px;line-height:1.9}.customer-network-throughput>.primary{margin-top:18px;min-height:38px;text-align:center;align-self:flex-start;background:var(--theme-panel,#2c2a2a);border:1px solid #514d4d;color:var(--theme-critical,#f0b5a6);font-size:11px;padding:9px 15px;border-radius:8px}.customer-network-throughput>.primary:hover{background:var(--theme-panel,#393737)}
.customer-portal #noc-client-cards[data-tab="overview"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.customer-connection{min-width:0;border:1px solid var(--theme-border,#3e3b3b);border-radius:14px;background:linear-gradient(150deg,var(--theme-panel,#252424),var(--theme-panel,#1a1919));padding:20px;box-shadow:0 8px 20px #00000012}.customer-connection-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px}.customer-connection-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--theme-border,#484545);border-radius:10px;color:var(--theme-critical,#fc5c34);background:var(--theme-panel,#2c2a2a);font-size:21px}.customer-connection-status{font-size:9px;color:var(--theme-muted,#a49f9f);display:flex;gap:6px;align-items:center}.customer-connection-status i{width:6px;height:6px;border-radius:50%;background:currentColor}.customer-connection.connected .customer-connection-status{color:var(--theme-accent,#60d3af)}.customer-connection.attention .customer-connection-status{color:var(--theme-warning,#efbf75)}.customer-connection.down .customer-connection-status{color:var(--theme-critical,#fb8297)}.customer-connection h3{margin:0 0 5px;color:var(--theme-critical,#f2e0dc);font-size:19px;letter-spacing:-.6px;overflow-wrap:anywhere}.customer-connection>p{font-size:10px;color:var(--theme-muted,#908a8a);margin:0 0 23px}.customer-connection-rates,.customer-connection-quality{display:grid;grid-template-columns:1fr 1fr;gap:10px}.customer-connection-rates>span,.customer-connection-quality>span{color:var(--theme-muted,#a5a0a0);font-size:9px;min-width:0}.customer-connection-rates strong{display:block;margin-top:8px;font-size:clamp(14px,1.4vw,21px);color:var(--theme-critical,#fc5c34);white-space:nowrap;font-weight:500;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.customer-connection-rates>span+span strong{color:var(--theme-critical,#ffaf9b)}.customer-connection-quality{border-top:1px solid var(--theme-border,#3b3838);margin-top:22px;padding-top:17px}.customer-connection-quality b{display:block;margin-top:7px;font:500 17px var(--mono);color:var(--theme-critical,#e7cfc9)}.customer-connection>small{font-size:8px;line-height:1.8;color:var(--theme-muted,#827b7b);display:block;margin-top:18px}.customer-connection>.ghost{border:0;border-top:1px solid var(--theme-border,#3b3838);border-radius:0;background:transparent;color:var(--theme-critical,#fd7a58);font-size:11px;width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:17px;padding:14px 0 0;min-height:30px}.customer-connection>.ghost:hover{color:var(--theme-critical,#f4cec4)}
.customer-report-guide{display:none}.client-view .customer-report-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 24px}.customer-report-guide>button{display:flex;flex-direction:column;align-items:flex-start;white-space:normal;text-align:left;min-height:150px;border:1px solid var(--theme-border,#3e3b3b);background:linear-gradient(145deg,var(--theme-panel,#242323),var(--theme-panel,#1a1919));border-radius:13px;padding:19px;color:var(--theme-critical,#efdad5);gap:10px}.customer-report-guide>button[aria-pressed="true"]{border-color:#fc5c34;background:var(--theme-panel,#2a2727);box-shadow:inset 0 0 0 1px #fc5c3430}.customer-report-guide i{display:grid;place-items:center;width:31px;height:31px;background:var(--theme-panel,#353232);border-radius:9px;color:var(--theme-critical,#fd7a58);font:normal 22px var(--mono)}.customer-report-guide strong{font-size:12px;font-weight:500}.customer-report-guide span{font-size:10px;color:var(--theme-muted,#a09b9b);line-height:1.8}.client-view .reports-form{border-radius:13px;border-color:var(--theme-border,#3e3b3b)}.customer-report-empty{text-align:center;padding:28px 20px;max-width:620px;margin:auto}.customer-report-empty strong{font-size:15px;color:var(--theme-critical,#e6ccc5)}.customer-report-empty p{font-size:11px;color:var(--theme-muted,#989393);line-height:1.9;margin-top:10px}.client-view .admin-only{display:none!important}.client-view #view-monitor .stats{display:none}.client-view #view-account .form-panel{border-radius:15px}
.customer-flow-unavailable{max-width:850px;padding:40px!important;background:linear-gradient(135deg,var(--theme-panel,#272525),var(--theme-panel,#1b1919));border-color:var(--theme-border,#444141)!important;border-radius:17px!important}.customer-flow-unavailable h1{font-size:28px;line-height:1.5;letter-spacing:-.8px;color:var(--theme-critical,#f2ded9);margin:18px 0 15px}.customer-flow-unavailable p{font-size:13px;line-height:1.9;max-width:660px;color:var(--theme-muted,#a6a1a1)}.customer-flow-unavailable>div{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0}.customer-flow-unavailable small{font-size:10px;color:var(--theme-muted,#807979)}.customer-flow-note{padding:18px;color:var(--theme-muted,#a6a1a1)}.customer-flow-note strong{color:var(--theme-critical,#e8c9c1)}.customer-flow-note p{font-size:11px;line-height:1.8}
@media(max-width:1100px){.customer-portal #noc-client-cards[data-tab="overview"]{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-network-overview{grid-template-columns:1fr}.customer-network-throughput{border-left:0;border-top:1px solid var(--theme-border,#3c3a3a)}.customer-network-throughput strong{font-size:25px}.client-view .customer-report-guide{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.customer-portal .noc-heading{display:block}.customer-portal .noc-heading h1{font-size:26px;line-height:1.35}.customer-portal .noc-clock-wrap{align-items:flex-start;justify-content:flex-start;padding-top:12px}.customer-portal #noc-clock{display:none}.customer-portal .noc-client-nav{flex-wrap:wrap;overflow:visible;background:transparent;padding:10px 0;height:auto;gap:5px}.customer-portal .noc-client-search{flex:1 0 100%;min-width:0;width:100%;margin:5px 0}.customer-portal .noc-client-search input{min-width:0;width:100%}.customer-network-verdict,.customer-network-throughput{padding:21px 18px}.customer-network-verdict h2{font-size:20px}.customer-network-verdict>p{font-size:11px}.customer-network-counts{gap:13px}.customer-network-counts b{font-size:17px}.customer-network-throughput strong{font-size:22px}.customer-portal #noc-client-cards[data-tab="overview"]{grid-template-columns:1fr}.customer-connection{padding:20px}.customer-connection-rates strong{font-size:24px}.customer-portal .noc-client-workspace>.noc-section-heading>.hint{display:none}.customer-flow-unavailable{padding:24px!important}.customer-flow-unavailable h1{font-size:23px}.customer-report-guide>button{padding:14px;min-height:145px}.customer-report-guide strong{font-size:11px}.customer-report-guide span{font-size:9px}.client-view #view-reports .page-title h1{font-size:27px}}
.customer-portal #noc-network-summary{display:block}.client-view .reports-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.customer-portal .noc-client-nav [data-overview-tab]{white-space:nowrap}
@media(max-width:900px){.client-view .reports-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.client-view .reports-form{grid-template-columns:1fr}}
.customer-portal .client-device-card>header{position:static;top:auto;height:auto;background:transparent;backdrop-filter:none;z-index:auto;white-space:normal;gap:14px;flex-wrap:wrap;align-items:flex-start;margin-bottom:16px}.customer-portal .client-device-card>header>div:first-child{display:block;min-width:0;white-space:normal;overflow:visible;text-overflow:clip}.customer-portal .client-device-card>header h3{overflow-wrap:anywhere}.customer-portal .client-device-card{padding:22px;border-radius:14px}.customer-portal .client-device-status{font-size:9px;line-height:1.8}.customer-portal .client-device-metrics{gap:17px;margin:20px 0}.customer-portal .client-device-metrics b{font-size:17px}.customer-portal #noc-client-cards[data-tab="devices"]{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.customer-portal #noc-client-cards[data-tab="devices"]{grid-template-columns:1fr}.customer-portal .client-device-card{padding:18px}.customer-portal .client-device-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.customer-portal[data-workspace-tab="devices"] #noc-network-summary{display:none}

/* Interface traffic opened directly from a physical socket. */
.port-traffic-prompt{margin:12px 0;color:var(--text-secondary);font-size:12px}
.port-traffic-panel{position:fixed;inset:auto;margin:0;padding:16px;width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;border:1px solid rgba(253,122,88,.35);border-radius:12px;background:var(--theme-panel,#1e1d1d);color:var(--text-primary);box-shadow:0 16px 55px #0008;min-width:0}
.port-traffic-panel::backdrop{background:transparent}
.port-traffic-tools{display:flex;align-items:center;gap:8px}.port-traffic-tools button{min-height:28px;padding:0 8px;font-size:20px}
.port-traffic-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.port-traffic-heading h4{margin:5px 0;font-size:15px;overflow-wrap:anywhere}
.port-traffic-heading small,.port-traffic-period{color:var(--text-secondary);font-size:11px}
.port-traffic-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.port-traffic-values span{display:block;color:var(--theme-critical,#f6957d);font-size:12px}.port-traffic-values>div+div span{color:var(--theme-critical,#fd9b82)}
.port-traffic-values strong{display:block;margin-top:6px;font:500 18px var(--mono)}
.port-traffic-chart{height:190px;width:100%;min-width:0}.port-traffic-panel>.hint{margin-bottom:0;font-size:11px}
.client-device-visual .svg-port[role="button"]{cursor:pointer}
@media(max-width:600px){.port-traffic-panel{padding:12px}.port-traffic-values strong{font-size:17px}.port-traffic-chart{height:190px}}

.flow-scope-note{flex:1 1 280px;margin:0;padding:12px 14px;border:1px solid var(--theme-border,#3d3a3a);border-radius:10px;color:var(--theme-muted,#bfbcbc);background:var(--theme-panel,#1e1c1c);font-size:12px;line-height:1.7}.flow-scope-note.is-incomplete{border-color:#595454;color:var(--theme-warning,#e6cc9d)}

/* Transparent brand PNGs keep their original colors; no CSS masks or tiles. */
.flow-service-icon.flow-service-logo{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;padding:3px;border:0;border-radius:0;background:transparent;mask:none;-webkit-mask:none;overflow:visible}
.flow-service-logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15))}
.noc-flow-identity{gap:13px}.noc-flow-row{min-height:52px;padding:5px 0}.flow-rich-identity .flow-service-logo{width:40px;height:40px;flex-basis:40px;border-radius:0;background:transparent;padding:3px}.flow-rich-rows article{min-height:50px}
@media(max-width:600px){.flow-service-icon.flow-service-logo,.flow-rich-identity .flow-service-logo{width:34px;height:34px;flex-basis:34px;padding:2px}.noc-flow-identity{gap:10px}}

/* Local vector geography: no third-party tiles or customer-IP requests. */
.flow-pilot .flow-map{padding:0;overflow:hidden;border:1px solid var(--theme-border,#343131);border-radius:20px;background:radial-gradient(ellipse at 35% 48%,var(--theme-panel,#211f1f) 0%,var(--theme-panel,#191818) 48%,var(--theme-panel,#181616) 100%);box-shadow:0 16px 42px #0003}
.flow-map-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px 18px;border-bottom:1px solid var(--theme-border,#3735355e)}
.flow-map-eyebrow{display:block;color:var(--theme-critical,#fc5c34);font:9px var(--mono);letter-spacing:2px;margin-bottom:7px}.flow-map-heading h2{font-size:17px!important;margin:0 0 5px!important;color:var(--theme-critical,#fff1ed)}.flow-map-heading p{margin:0;color:var(--theme-muted,#a4a0a0);font-size:11px}.flow-map-status{display:flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid var(--theme-border,#32645666);padding:7px 10px;border-radius:20px;background:#37d7ab0a;color:var(--theme-accent,#79dfc2);font-size:10px}.flow-map-status i{width:6px;height:6px;border-radius:50%;background:#55dbaf;box-shadow:0 0 10px #55dbaf77}.flow-map-status.is-stale{border-color:#5c585866;background:#ad98550a;color:var(--theme-warning,#cbb88d)}.flow-map-status.is-stale i{background:#cbb88d;box-shadow:none}
.flow-map-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--theme-border,#3735355e);padding:16px 24px;gap:16px}.flow-map-stats>div{border-right:1px solid var(--theme-border,#393737);min-width:0}.flow-map-stats>div:last-child{border-right:0}.flow-map-stats small{display:block;color:var(--theme-muted,#9b9595);font-size:10px;margin-bottom:5px}.flow-map-stats strong{font:500 18px var(--mono);color:var(--theme-critical,#f8ddd6);white-space:nowrap}
.flow-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;min-height:380px}.flow-map-stage{display:flex;flex-direction:column;justify-content:center;position:relative;min-width:0;padding:10px 6px 0;overflow:hidden}.flow-map-world{display:block;width:100%;height:auto;min-height:280px;max-height:480px;overflow:visible}.flow-map-grid path{stroke:#fc5c340d;stroke-width:1;fill:none}.flow-map-land{fill:#1c1a1a;stroke:#474444;stroke-width:.7;stroke-linejoin:round;transition:fill .25s,opacity .25s}.flow-map-land.is-active{fill:#494545;stroke:#fc5c34;stroke-opacity:.7}.flow-map-land.is-selected{fill:var(--theme-critical,#fc5c34);stroke:#ffb9a8;stroke-width:1.3}.flow-map-connection{fill:none;pointer-events:stroke;transition:opacity .2s}.flow-map-connection.download{stroke:#fc5c34}.flow-map-connection.upload{stroke:#51e0b7}.flow-map-trail{opacity:.18}.flow-map-motion{stroke-dasharray:2 12;stroke-linecap:round;opacity:.85;animation:flow-map-stream 2.2s linear infinite}.flow-map-connection.upload .flow-map-motion{animation-duration:2.9s}.flow-map-pin{cursor:pointer;fill:var(--theme-critical,#ffc7b9);outline:none}.flow-map-pin text{font-size:18px;stroke:none}.flow-map-halo{fill:var(--theme-critical,#fc5c3425);stroke:#fc5c3455;stroke-width:1}.flow-map-pin:hover .flow-map-halo,.flow-map-pin:focus .flow-map-halo,.flow-map-pin.is-selected .flow-map-halo{fill:var(--theme-critical,#fc5c3454);stroke:#ffc0b0;stroke-width:2}.flow-map-origin circle:first-child{fill:var(--theme-accent,#4de5b826);stroke:#4de5b855;stroke-width:1}.flow-map-origin circle:nth-child(2){fill:var(--theme-accent,#67f2c7);stroke:#d1fff0;stroke-width:1.3}.flow-map-origin text{fill:var(--theme-accent,#8fdfc9);letter-spacing:1px;font:7px var(--mono)}.has-selection .flow-map-connection:not(.is-selected){opacity:.14}.has-selection .flow-map-land.is-active:not(.is-selected){fill:#302d2d}.has-selection .flow-map-pin:not(.is-selected){opacity:.45}
.flow-map-key{display:flex;flex-wrap:wrap;align-items:center;gap:15px;padding:8px 18px 18px;font-size:10px;color:var(--theme-critical,#fc5c34)}.flow-map-key span:nth-child(2){color:var(--theme-accent,#51e0b7)}.flow-map-key small{color:var(--theme-muted,#8b8686);font-size:9px}.flow-map-inspector{border-left:1px solid var(--theme-border,#3b393980);background:var(--theme-panel,#13131377);min-width:0;display:flex;flex-direction:column}.flow-map-detail{padding:22px 19px 15px;min-height:150px;border-bottom:1px solid var(--theme-border,#35323280)}.flow-map-detail>span{font:8px var(--mono);letter-spacing:1.5px;color:var(--theme-critical,#fc5c34)}.flow-map-detail h3{font-size:17px;color:var(--theme-critical,#fce7e2);margin:10px 0}.flow-map-detail p{font-size:10px;line-height:1.8;color:var(--theme-muted,#9a9494);margin:0}.flow-map-detail dl{margin:12px 0;display:grid;gap:8px}.flow-map-detail dl>div{display:flex;justify-content:space-between;gap:10px;font-size:10px}.flow-map-detail dt{color:var(--theme-muted,#a6a2a2)}.flow-map-detail dd{margin:0;color:var(--theme-critical,#fce7e2);font-family:var(--mono)}
.flow-map-country-list{max-height:250px;overflow:auto;padding:9px;scrollbar-width:thin;scrollbar-color:var(--theme-border,#454141) transparent}.flow-map-country-list button{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;padding:10px 7px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--theme-critical,#eed2cb);text-align:left;font-size:10px;cursor:pointer}.flow-map-country-list button:hover,.flow-map-country-list button.is-selected{background:var(--theme-panel,#38353555);border-color:#fc5c3477}.flow-map-flag{font-size:18px}.flow-map-country-list button small{display:block;color:var(--theme-muted,#918c8c);font-size:8px;margin-top:3px}.flow-map-country-list strong{font:9px var(--mono);white-space:nowrap;font-weight:400}.flow-map-country-list button>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.flow-map-empty{position:absolute;left:10%;right:10%;top:42%;background:var(--theme-panel,#171616e8);border:1px solid var(--theme-border,#3e3b3b);border-radius:14px;padding:20px;text-align:center;font-size:12px;color:var(--theme-muted,#bcb8b8)}.flow-map-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 24px;background:var(--theme-sunken,#10101055);border-top:1px solid var(--theme-border,#3735355e)}.flow-map-footer p{flex:1 1 450px;margin:0;font-size:9px;color:var(--theme-muted,#928d8d);line-height:1.7}.flow-map-footer a,.flow-map-footer small{font-size:8px;color:var(--theme-muted,#8f8989)}.flow-map-footer a{text-decoration:underline;text-underline-offset:3px}
@keyframes flow-map-stream{to{stroke-dashoffset:-28}}
.flow-map-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.flow-map-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--theme-border,#4d4a4a);border-radius:24px;background:var(--theme-panel,#121212c9)}.flow-map-switch button{border:1px solid transparent;border-radius:20px;background:transparent;color:var(--theme-muted,#a6a2a2);padding:7px 14px;font-size:10px;min-height:32px}.flow-map-switch button:hover{background:#fc5c3412;color:var(--theme-critical,#f4d0c5)}.flow-map-switch button[aria-pressed=true]{background:var(--coral-a20);border-color:var(--coral-a35);color:var(--coral-400)}.flow-map-switch button:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.is-brazil .flow-map-world{height:390px;min-height:300px}.is-brazil .flow-map-land{stroke-width:.5}.is-brazil .flow-map-land.is-active{fill:#302d2d;stroke:#fc5c34}.is-brazil .flow-map-land.is-selected{fill:#403d3d;stroke:#ffb9a8}.flow-map-national{fill:var(--coral-400)}.flow-map-national text{font:3px var(--mono);letter-spacing:.7px;fill:var(--theme-critical,#f4dbd5)}.flow-map-national-pulse{fill:var(--coral-a12);stroke:var(--coral);stroke-width:.3;transform-box:fill-box;transform-origin:center;animation:flow-map-national-pulse 3s ease-out infinite}.flow-map-national.is-stale .flow-map-national-pulse{animation:none;opacity:.45}
@keyframes flow-map-national-pulse{0%{transform:scale(.35);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@media(min-width:1500px){.flow-map-layout{grid-template-columns:minmax(0,1fr) 290px}.flow-map-country-list{max-height:285px}}
@media(max-width:1000px){.flow-map-layout{grid-template-columns:minmax(0,1fr) 220px}.flow-map-stats strong{font-size:15px}.flow-map-detail{padding:16px 12px}.flow-map-country-list button{grid-template-columns:23px minmax(0,1fr)}.flow-map-country-list strong{grid-column:2}}
@media(max-width:700px){.flow-map-heading{align-items:flex-start;padding:18px 15px;gap:10px;flex-wrap:wrap}.flow-map-heading h2{font-size:15px!important}.flow-map-status{font-size:8px}.flow-map-stats{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px 15px;gap:16px}.flow-map-stats>div:nth-child(2){border:0}.flow-map-stats small{font-size:9px}.flow-map-stats strong{font-size:15px}.flow-map-layout{grid-template-columns:1fr;min-height:0}.flow-map-stage{padding:10px 0 0}.flow-map-world{min-height:185px}.flow-map-inspector{border-left:0;border-top:1px solid var(--theme-border,#3b393980)}.flow-map-detail{min-height:0;padding:15px}.flow-map-detail h3{font-size:15px}.flow-map-detail dl{max-width:320px}.flow-map-country-list{max-height:205px;padding:7px 10px}.flow-map-country-list button{grid-template-columns:26px minmax(0,1fr) auto;padding:9px 5px}.flow-map-country-list strong{grid-column:auto}.flow-map-key{padding:0 14px 13px;gap:10px;font-size:9px}.flow-map-key small{font-size:8px}.flow-map-footer{padding:12px 15px;gap:8px 14px}}
@media(prefers-reduced-motion:reduce){.flow-map-motion{animation:none}.flow-map-land,.flow-map-connection{transition:none}}
@media(max-width:700px){.flow-map-actions{justify-content:flex-start;width:100%}.flow-map-switch button{padding:7px 16px;min-height:36px}.is-brazil .flow-map-world{height:320px;min-height:0}}
@media(prefers-reduced-motion:reduce){.flow-map-national-pulse{animation:none;opacity:.6}}

/* Passive security evidence from tenant-scoped Flow records. */
.flow-security{display:grid;gap:14px;min-width:0;--signal:#6bd3b5}.flow-security.is-warning{--signal:#f2b75c}.flow-security.is-unavailable,.flow-security.is-loading,.flow-security.is-partial{--signal:#a29d9d}.flow-security-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 2px 0}.flow-security-heading h2{font-size:17px;margin:0 0 6px;color:var(--theme-critical,#f7e6e2)}.flow-security-heading p{font-size:10px;line-height:1.7;margin:0;color:var(--theme-muted,#9a9595)}.flow-security-badge{border:1px solid color-mix(in srgb,var(--signal) 35%,transparent);background:color-mix(in srgb,var(--signal) 7%,transparent);border-radius:20px;padding:7px 10px;white-space:nowrap;color:var(--signal);font:8px var(--mono);letter-spacing:.8px}.flow-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.flow-pilot .flow-security-card,.flow-pilot .flow-security-evidence{padding:18px 19px;background:linear-gradient(135deg,var(--theme-panel,#1e1d1d),var(--theme-panel,#181616) 58%,var(--theme-panel,#1f1d1d));border:1px solid var(--theme-border,#383636);border-radius:17px;min-width:0;margin:0}.flow-security-card h3{display:flex;align-items:center;gap:10px;margin:0;color:var(--theme-critical,#eed8d3);font-size:11px;font-weight:600;letter-spacing:.6px;line-height:1.6}.flow-security-card h3>span{width:28px;height:28px;display:grid;place-items:center;border:1px solid #58535366;background:#fc5c3410;border-radius:50%;color:var(--theme-critical,#fd7a58);font-size:17px;flex:0 0 28px}.flow-security-scan{display:flex;align-items:center;gap:20px;margin:17px 0;min-height:100px}.flow-security-scan>div:last-child{min-width:0}.flow-security-scan strong{font-size:12px;color:var(--signal);font-weight:500}.flow-security-scan p{margin:7px 0;font-size:10px;color:var(--theme-muted,#a39e9e);line-height:1.8}.flow-security-scan small{font-size:9px;line-height:1.7;color:var(--theme-muted,#898383)}.flow-security-radar{--signal:var(--coral);position:relative;width:96px;height:96px;flex:0 0 96px;border-radius:50%;overflow:hidden;border:1px solid color-mix(in srgb,var(--signal) 44%,transparent);background:radial-gradient(circle,transparent 22%,color-mix(in srgb,var(--signal) 30%,transparent) 23%,transparent 24%,transparent 46%,color-mix(in srgb,var(--signal) 30%,transparent) 47%,transparent 48%,transparent 70%,color-mix(in srgb,var(--signal) 30%,transparent) 71%,transparent 72%)}.flow-security-radar::before,.flow-security-radar::after{content:'';position:absolute;background:color-mix(in srgb,var(--signal) 18%,transparent)}.flow-security-radar::before{width:1px;height:100%;left:50%;top:0}.flow-security-radar::after{height:1px;width:100%;top:50%;left:0}.flow-security-radar span{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 65%,color-mix(in srgb,var(--signal) 35%,transparent) 99%,transparent);animation:flow-security-sweep 4.5s linear infinite}.flow-security-radar span::after{content:"";position:absolute;top:0;left:50%;width:1px;height:50%;background:var(--signal);box-shadow:0 0 8px var(--signal)}.flow-security-radar i{position:absolute;top:47%;left:47%;width:6px;height:6px;background:var(--signal);border-radius:50%;box-shadow:0 0 12px var(--signal)}.is-unavailable .flow-security-radar span,.is-loading .flow-security-radar span{animation:none;opacity:.35}.flow-security-state{padding:10px 12px;border-radius:9px;border:1px solid color-mix(in srgb,var(--signal) 35%,transparent);background:color-mix(in srgb,var(--signal) 7%,transparent);color:var(--signal);font-size:10px;line-height:1.7}.flow-security-subtitle{font-size:9px;color:var(--theme-muted,#979292);margin:9px 0 13px;line-height:1.7}.flow-security-items{max-height:185px;min-height:130px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--theme-border,#444040) transparent}.flow-security-items button{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:11px 9px;text-align:left;border:1px solid transparent;border-bottom-color:var(--theme-border,#3c393970);background:transparent;border-radius:9px;color:var(--theme-critical,#ecd1ca);cursor:pointer}.flow-security-items button:hover,.flow-security-items button.is-selected{background:#3d3a3a44;border-color:#8e4c3c88}.flow-security-items strong{font:11px var(--mono);color:var(--theme-critical,#f5d4cc);overflow-wrap:anywhere}.flow-security-items small{display:block;font-size:9px;font-weight:400;line-height:1.7;color:var(--theme-muted,#979292);margin-top:3px}.flow-security-items b{font:10px var(--mono);text-align:right;white-space:nowrap;color:var(--theme-warning,#e3bf7f)}.flow-security-empty{font-size:10px;color:var(--theme-muted,#999393);line-height:1.8;padding:13px 0;margin:0}.is-clear .flow-security-items .flow-security-empty{color:var(--theme-accent,#6ac9af)}.flow-security-timeline{display:flex;align-items:stretch;gap:2px;height:120px;min-height:120px;margin:14px 0 6px;border-bottom:1px solid #5a5656}.flow-security-timeline button{flex:1;min-width:0;height:100%;padding:0;display:flex;align-items:flex-end;border:0;background:transparent;border-radius:0;cursor:pointer}.flow-security-timeline button span{width:100%;height:var(--signal-height,0%);min-height:1px;background:#be944b;opacity:.85;transition:opacity .2s}.flow-security-timeline button.missing{background:repeating-linear-gradient(135deg,transparent,transparent 4px,#726d6d15 4px,#726d6d15 6px)}.flow-security-timeline button.missing span{background:#797373}.flow-security-timeline button:hover span,.flow-security-timeline button.is-selected span{background:#ffd99d;opacity:1}.flow-security-timeline button:focus-visible{outline:1px solid #f9d3c9;outline-offset:1px}.flow-security-axis{display:flex;justify-content:space-between;gap:10px;color:var(--theme-muted,#888282);font:8px var(--mono)}.flow-security-timeline-note{display:flex;justify-content:space-between;gap:15px;font-size:9px;line-height:1.8;color:var(--theme-muted,#958f8f);margin:12px 0 0}.flow-security-timeline-note span{color:var(--theme-muted,#7e7878)}.flow-security-evidence-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.flow-security-evidence h3{font-size:12px;color:var(--theme-critical,#edd3cc);margin:0}.flow-security-evidence .ghost{padding:5px 9px;font-size:9px}.flow-security-evidence .table-wrap{max-height:310px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--theme-border,#444040) transparent}.flow-security-evidence table{font-size:10px;width:100%;min-width:630px}.flow-security-evidence td{vertical-align:top;padding:12px 10px;overflow-wrap:anywhere}.flow-security-evidence td:first-child{white-space:nowrap}.flow-security-evidence td small{display:block;color:var(--theme-muted,#8b8686);font-size:9px;line-height:1.7;margin-top:4px}.flow-security-evidence td strong{font-size:10px;font-weight:500;color:var(--theme-warning,#dbcfb1)}.flow-security-filter{font-size:10px;color:var(--theme-critical,#dfa99b);line-height:1.7;margin:8px 0}.flow-security-filter:empty{display:none}.flow-security-limit{margin:0 2px;color:var(--theme-muted,#8a8484);font-size:9px;line-height:1.9}.flow-security [hidden]{display:none!important}
@keyframes flow-security-sweep{to{transform:rotate(360deg)}}
.flow-security-ports .table-wrap{max-height:360px}.flow-security-ports td:nth-child(4){max-width:240px;min-width:160px}.flow-security-ports .has-recurrence{background:color-mix(in srgb,var(--status-medium,#f2b75c) 7%,transparent)}.flow-security-ports [data-security-port].is-selected{border-color:var(--coral-400,#fc5c34);color:var(--coral-400,var(--theme-critical,#fc5c34))}
@media(max-width:900px){.flow-security-grid{grid-template-columns:1fr}.flow-security-card h3{font-size:11px}.flow-security-scan{gap:16px}.flow-security-heading{align-items:flex-start;flex-wrap:wrap}.flow-security-heading h2{font-size:16px}.flow-security-timeline-note{flex-wrap:wrap;gap:5px}.flow-security-items{min-height:80px}.flow-pilot .flow-security-card,.flow-pilot .flow-security-evidence{padding:16px 14px}}
@media(max-width:390px){.flow-security-radar{width:76px;height:76px;flex-basis:76px}.flow-security-scan{gap:12px}}
@media(prefers-reduced-motion:reduce){.flow-security-radar span{animation:none}.flow-security-timeline button span{transition:none}}

/* Regional Brazil: local IBGE outlines and actual IP-derived city positions. */
.is-regional .flow-map-layout{grid-template-columns:minmax(0,1fr) 240px}.is-regional .flow-map-world{height:560px;min-height:420px;max-height:560px}.flow-brazil-state{cursor:pointer;stroke-width:.2!important}.flow-brazil-state:focus-visible{stroke:var(--coral-400)!important;stroke-width:.65!important;outline:none}.flow-brazil-label{fill:var(--theme-muted,#908a8a);font:2.3px var(--mono);pointer-events:none}.flow-brazil-label.is-active{fill:var(--theme-critical,#f4cac0)}.flow-brazil-pin{cursor:pointer;fill:var(--theme-critical,#fd7a58);stroke:#ffb7a5;stroke-width:.25}.flow-brazil-pin:hover,.flow-brazil-pin:focus{fill:var(--coral-400);stroke:#fff;outline:none}.flow-brazil-origin{pointer-events:none}.flow-brazil-origin circle:first-child{fill:var(--theme-critical,#fc5c342b);stroke:var(--coral);stroke-width:.4}.flow-brazil-origin circle:nth-child(2){fill:var(--coral-400)}.is-regional .flow-map-motion{stroke-dasharray:.6 3;animation-name:flow-brazil-stream}.has-region-selection [data-map-region-route]:not(.is-selected),.has-region-selection [data-map-city-state]:not(.is-selected){opacity:.15}.has-region-selection .flow-brazil-state.is-active:not(.is-selected){fill:#2a2828}.flow-brazil-code{display:grid;place-items:center;width:25px;height:25px;border:1px solid #fc5c3455;border-radius:7px;background:#38353544;color:var(--theme-critical,#e6a190);font:9px var(--mono)}.flow-brazil-cities{padding:12px 0 0;margin-top:12px;border-top:1px solid var(--theme-border,#35323280)}.flow-brazil-cities h4{margin:0 0 8px;font-size:10px;color:var(--theme-muted,#a7a3a3);font-weight:500}.flow-brazil-cities>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:var(--theme-muted,#c2bebe);padding:6px 0}.flow-brazil-cities strong{font:9px var(--mono);color:var(--theme-critical,#f8ddd6);white-space:nowrap}.flow-brazil-city-focus{color:var(--theme-critical,#f3b298)!important;margin:0 0 14px!important}.flow-brazil-coverage{display:flex;flex-wrap:wrap;gap:8px 20px;padding:13px 24px;border-top:1px solid var(--theme-border,#3735355e);color:var(--theme-muted,#a4a0a0);font-size:9px;line-height:1.7}.is-regional .flow-map-country-list{max-height:310px}.is-regional .flow-map-detail{max-height:340px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--theme-border,#454141) transparent}
@keyframes flow-brazil-stream{to{stroke-dashoffset:-7.2}}
@media(max-width:700px){.is-regional .flow-map-layout{grid-template-columns:1fr}.is-regional .flow-map-world{height:440px;min-height:0;max-height:440px}.is-regional .flow-map-detail{max-height:none}.flow-brazil-coverage{padding:12px 15px}.flow-brazil-state{stroke-width:.3!important}}
@media(prefers-reduced-motion:reduce){.is-regional .flow-map-motion{animation:none}}
.is-regional.is-stale-map .flow-map-motion{animation:none}

/* Map sources stay available on demand without a permanent footer. */
.flow-map-info{position:relative;flex:0 0 auto;color:var(--text-secondary)}
.flow-map-info summary{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--vega-line);border-radius:50%;color:var(--coral-400);font-size:17px;cursor:pointer;list-style:none}
.flow-map-info summary::-webkit-details-marker{display:none}
.flow-map-info summary:hover,.flow-map-info[open] summary{background:var(--coral-a12);color:var(--vega-star)}
.flow-map-info summary:focus-visible{outline:2px solid var(--coral);outline-offset:3px}
.flow-map-info>div{position:absolute;right:0;top:40px;z-index:5;display:grid;gap:9px;width:min(280px,calc(100vw - 60px));padding:16px;border:1px solid var(--vega-line);border-radius:12px;background:var(--theme-panel,#171213);box-shadow:0 12px 32px #0008}
.flow-map-info p{margin:0;font-size:12px;line-height:1.6;color:var(--text-secondary)}
.flow-map-info a{color:var(--coral-400);font-size:11px;text-decoration:underline}
.flow-map-info small{font-size:10px;color:var(--text-tertiary)}
@media(max-width:700px){.flow-map-info>div{left:0;right:auto}}

/* VEGA monitoring: neutral surfaces, one accent, readable information. */
:root{
 --surface-page:#0a0f18;--surface-shell:#0d1420;--surface-card:#121c2b;--surface-sunken:#0c1421;
 --surface-raised:#1b2940;--surface-input:#111b2a;--surface-card-hover:#19283c;--surface-glass:rgba(11,17,28,.9);
 --text-primary:#f3f7ff;--text-secondary:#bdc9dc;--text-tertiary:#91a0b8;--muted:var(--text-tertiary);
 --border-subtle:#25334a;--border-default:#354762;--border-strong:#506784;
 --coral:#ff704d;--coral-400:#ff9675;--blue:#438dff;--blue-400:#70adff;--mint:#49dfb1;--amber:#ffc45c;--link-download:#ff704d;--link-upload:#ffd166;--vega-star:#ffe4bf;--vega-line:rgba(255,112,77,.3);
 --vega-panel:linear-gradient(145deg,#172438,#111b2a);--vega-glow:rgba(67,141,255,.12);
 --status-critical:#ff748a;--status-critical-bg:rgba(255,116,138,.14);--status-medium:#ffc45c;--status-success:#49dfb1;
 --glow-info:radial-gradient(100% 100% at 50% 120%,rgba(67,141,255,.14),transparent 72%);
 --rim-top:inset 0 1px rgba(var(--neutral-rgb),.055);
}
body{background:var(--surface-page);line-height:1.55;color:var(--text-primary)}
body::before{background:radial-gradient(ellipse at 90% 0,rgba(252,92,52,.035),transparent 72%);height:300px}
main{padding:26px 28px 40px;max-width:1740px;margin:0 auto}
button,input,select,textarea{font-size:13px}
input,select,textarea{border-color:var(--border-default);background:var(--surface-input)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--coral-400);outline-offset:3px}
.primary{color:var(--theme-critical,#110b08);background:linear-gradient(135deg,#ff8d65,#fc6b43);border-color:#ffad8e;box-shadow:0 3px 12px #0003;font-weight:600}
.primary:hover{background:#ffa17d;box-shadow:0 4px 16px #0004}
.ghost{color:var(--text-secondary);background:var(--theme-panel,#191a1e);border-color:var(--border-default)}
.ghost:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--theme-panel,#222329)}
.panel{background:var(--surface-card);border-color:var(--border-subtle);box-shadow:var(--rim-top)}
.page-title{margin-bottom:22px}.page-title h1{font-size:28px;letter-spacing:-.8px}.page-title p{color:var(--text-secondary);font-size:14px}
.eyebrow,.sidebar-group-heading{color:var(--text-tertiary)}
#main-navigation .nav-item-copy{font-size:13px}#main-navigation .nav-item-copy small{color:var(--text-tertiary);font-size:11px;line-height:1.5}
#main-navigation button[data-nav-key].selected{background:rgba(252,92,52,.08);color:var(--theme-critical,#fff3ec);box-shadow:inset 2px 0 var(--coral)}
#main-navigation button.selected .nav-icon{color:var(--coral-400)}
.nav-icon{color:var(--theme-muted,#acacb7)}.sidebar-group-heading{font-size:11px}
.workspace>header{background:var(--surface-glass)}
#noc-board,#noc-link-page,#noc-flow-analysis{--noc-line:var(--border-subtle);--noc-panel:var(--vega-panel);--noc-glow:var(--vega-glow);border-color:var(--border-subtle);background:var(--surface-page);box-shadow:none}
#noc-board::before,#noc-board::after{display:none}
#noc-board.customer-portal{border:0;border-radius:0;padding:0;overflow:visible;background:transparent}
.noc-heading{padding:0 0 18px;border-color:var(--border-subtle);gap:16px}
.noc-heading h1,.customer-portal .noc-heading h1{color:var(--text-primary);font-size:28px;letter-spacing:-.8px;text-shadow:none;line-height:1.3;margin:6px 0}
.noc-heading p{color:var(--text-tertiary);font-size:13px;margin:4px 0 0}
.noc-heading .eyebrow{color:var(--coral-400);font:11px var(--mono);letter-spacing:.08em}
.noc-heading .eyebrow::before{width:9px;height:9px;background:var(--coral-400);box-shadow:none}
.noc-heading #noc-updated{font-size:12px;color:var(--text-tertiary)}
.noc-heading .ghost{background:var(--theme-panel,#191a1e);border-color:var(--border-default);color:var(--text-secondary)}
.noc-live-sync{font-size:10px;letter-spacing:.08em;vertical-align:middle}
.noc-client-nav{min-height:52px;padding:8px 0;gap:4px;border:0;border-bottom:1px solid var(--border-subtle);background:transparent}
.noc-client-nav>button{font-size:13px;min-height:38px;padding:8px 14px;color:var(--text-secondary)}
.noc-client-nav>button.selected{color:var(--theme-critical,#fff0e7);background:rgba(252,92,52,.1);border-color:rgba(252,92,52,.3)}
.noc-client-search{height:36px;min-height:36px;border-color:var(--border-default);background:var(--surface-input);color:var(--text-tertiary)}
.noc-client-search input{font-size:12px}.noc-client-search kbd{color:var(--text-tertiary);border-color:var(--border-default)}
.customer-portal .noc-client-workspace{margin-top:22px}
.customer-portal .noc-client-workspace>.noc-section-heading{display:none}
.customer-section-label,.client-card-kicker{font-size:11px;color:var(--text-tertiary);letter-spacing:.06em}
.customer-network-overview{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);border-color:var(--border-default);background:var(--vega-panel);border-radius:16px;position:relative;margin:18px 0 22px}
.customer-network-overview::before{content:'';position:absolute;left:0;top:24px;bottom:24px;width:3px;border-radius:3px;background:var(--status-success)}
.customer-network-overview.attention::before{background:var(--status-medium)}.customer-network-overview.down::before{background:var(--status-critical)}.customer-network-overview.unknown::before{background:var(--text-tertiary)}
.customer-network-verdict,.customer-network-throughput{padding:22px 24px}
.customer-network-verdict h2{font-size:23px;color:var(--text-primary);margin:9px 0;letter-spacing:-.6px}
.customer-network-verdict>p{font-size:13px;color:var(--text-secondary);line-height:1.65;max-width:520px}
.customer-network-verdict>small,.customer-network-throughput>small{color:var(--text-tertiary);font-size:12px;line-height:1.6}
.customer-network-counts{font-size:12px;gap:16px;margin:16px 0 10px;color:var(--text-secondary)}
.customer-network-counts b{font-size:19px;color:var(--text-primary);margin-right:4px}
.customer-network-throughput{border-color:var(--border-subtle);background:transparent}
.customer-network-throughput>div{gap:20px;margin:14px 0 10px}
.customer-network-throughput>div>span{font-size:12px;color:var(--text-secondary)}
.customer-network-throughput strong{color:var(--coral-400);font-size:28px;letter-spacing:-.8px;margin-top:5px}
.customer-network-throughput>div>span+span strong{color:var(--theme-warning,#edc98c)}
.customer-network-throughput>.primary{background:var(--theme-panel,#25201e);border-color:var(--theme-border,#5d3b30);color:var(--theme-critical,#ffc2a9);font-size:12px;min-height:40px;margin-top:14px;box-shadow:none}
.customer-portal #noc-client-cards[data-tab=overview]{gap:16px}
.customer-connection,.client-device-card,.client-link-card,.client-company-card,.link-performance-card{background:var(--vega-panel);border-color:var(--border-subtle);border-radius:14px;box-shadow:var(--rim-top),0 6px 20px #0002;transition:border-color .16s,box-shadow .16s}
.customer-connection:hover,.client-device-card:hover,.link-performance-card:hover{border-color:var(--border-strong);box-shadow:var(--rim-top),0 8px 24px #0003;transform:none}
.customer-connection{padding:20px}.customer-connection-heading{margin-bottom:14px}
.customer-connection-icon{background:rgba(252,92,52,.08);border-color:rgba(252,92,52,.18);color:var(--coral-400);width:36px;height:36px}
.customer-connection-status{font-size:12px}.customer-connection h3{font-size:19px;color:var(--text-primary);margin-bottom:5px;letter-spacing:-.3px}
.customer-connection>p{font-size:12px;color:var(--text-tertiary);margin-bottom:18px}
.customer-connection-rates>span,.customer-connection-quality>span{font-size:12px;color:var(--text-secondary)}
.customer-connection-rates strong{font-size:24px;color:var(--coral-400);margin-top:5px}.customer-connection-rates>span+span strong{color:var(--theme-warning,#edc98c)}
.customer-connection-quality{border-color:var(--border-subtle);margin-top:18px;padding-top:15px}.customer-connection-quality b{font-size:18px;color:var(--text-primary);margin-top:5px}
.customer-connection>small{font-size:12px;color:var(--text-tertiary);line-height:1.6;margin-top:15px}
.customer-connection>.ghost{font-size:12px;min-height:42px;border-color:var(--border-subtle);color:var(--coral-400);margin-top:12px;padding-top:12px}
.client-device-visual{background:radial-gradient(ellipse at 50% 85%,rgba(var(--neutral-rgb),.025),transparent 70%);padding:16px}
.client-device-visual .equipment-svg{max-width:760px;max-height:240px;filter:none}
.customer-portal .client-device-metrics{margin:18px 0;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}
.client-device-metrics>span{background:var(--theme-panel,#111215);border:1px solid var(--border-subtle);border-radius:9px;padding:12px;font-size:12px;color:var(--text-secondary)}
.customer-portal .client-device-metrics b{font-size:20px;color:var(--text-primary);margin-top:5px}
.customer-portal .client-device-card>header small,.customer-portal .client-device-status,.client-device-log,.client-recommendation{font-size:12px;line-height:1.6;color:var(--text-tertiary)}
.client-recommendation{background:var(--theme-panel,#191b1e);border-color:var(--border-default)}
.links-workbench{padding:14px 18px;background:var(--surface-card);border-color:var(--border-subtle);border-radius:12px;gap:10px;margin-bottom:18px}
.links-workbench h3{font-size:18px;margin:2px 0}.links-workbench p{font-size:12px;color:var(--text-tertiary);margin:3px 0}
.links-workbench .eyebrow{display:none}.links-workbench>label{font-size:12px;color:var(--text-secondary);min-width:180px}
.links-workbench select{min-height:38px;background:var(--surface-input);border-color:var(--border-default)}
.links-color-legend{border-color:var(--border-subtle);font-size:12px;padding-top:10px;gap:20px}
.links-color-legend span:nth-child(1),.link-metric.metric-0 strong{color:var(--coral-400)}
.links-color-legend span:nth-child(2),.link-metric.metric-1 strong{color:var(--theme-warning,#edc98c)}
.links-color-legend span:nth-child(3){color:var(--theme-accent,#81d6b0)}.links-color-legend span:nth-child(4){color:var(--theme-critical,#f47a8c)}
.link-performance-card>header{padding:18px 20px 14px;border-color:var(--border-subtle)}
.link-performance-card h3{font-size:19px;color:var(--text-primary)}
.link-performance-card>header small,.link-performance-card .client-card-kicker,.link-performance-card>footer,.link-metric>small{font-size:12px;color:var(--text-tertiary)}
.link-performance-values{padding:16px 20px}.link-metric>span{font-size:12px;color:var(--text-secondary)}.link-metric strong{font-size:21px}
.link-performance-card>footer{border-color:var(--border-subtle);gap:12px}.link-performance-card>footer .ghost{font-size:12px;min-height:38px}
.links-measurement-note{font-size:12px;color:var(--text-tertiary);line-height:1.6}
.flow-analysis,.flow-observatory,.flow-pilot{background:var(--surface-page);background-image:none;padding:22px;border-color:var(--border-subtle)}
.flow-analysis-head h1{color:var(--text-primary);font-size:28px}.flow-analysis-head .eyebrow{font-size:11px;color:var(--coral-400)}.flow-analysis-head p{color:var(--text-tertiary);font-size:13px}
.flow-toolbar{gap:14px;margin:0}.flow-toolbar label{font-size:12px;color:var(--text-secondary)}
.flow-toolbar select{font-size:13px;min-height:42px;background:var(--surface-input);border-color:var(--border-default)}
.flow-pilot-company{background:var(--surface-card);border-color:var(--border-subtle);padding:9px 12px}.flow-pilot-company small{font-size:11px;color:var(--text-tertiary)}.flow-pilot-company strong{font-size:13px;color:var(--text-primary)}
.flow-advanced-controls,.flow-security-disclosure{border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-card)}
.flow-advanced-controls>summary,.flow-security-disclosure>summary{padding:14px 16px;font-size:13px;color:var(--text-secondary);cursor:pointer}
.flow-advanced-controls[open]>summary,.flow-security-disclosure[open]>summary{border-bottom:1px solid var(--border-subtle);margin-bottom:14px}
.flow-advanced-controls>.flow-toolbar,.flow-advanced-controls>.flow-dimensions{margin:14px 16px}.flow-advanced-controls .flow-scope-note{font-size:12px;line-height:1.6;background:var(--theme-panel,#1b1b1e);border-color:var(--border-default);color:var(--text-secondary)}
.flow-security-disclosure>summary{display:flex;justify-content:space-between;gap:12px;list-style:none}.flow-security-disclosure>summary::after{content:'+';font-size:18px;color:var(--coral-400)}.flow-security-disclosure[open]>summary::after{content:'−'}
.flow-security-disclosure>summary small{font-size:12px;color:var(--text-tertiary);margin-left:auto}.flow-security-disclosure>[data-flow-security-slot]{padding:0 16px 16px}
.flow-dimensions button,.flow-pilot .flow-pilot-periods button{min-height:36px;font-size:12px;border-color:var(--border-default);background:var(--surface-input);color:var(--text-secondary)}
.flow-pilot .flow-pilot-periods{margin:0;justify-content:flex-start;gap:6px}.flow-pilot .flow-pilot-periods button[aria-pressed=true],.flow-dimensions button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border);box-shadow:none}
.flow-kpis article,.flow-observatory .flow-kpis article{background:var(--vega-panel);border-color:var(--border-subtle);padding:16px;border-radius:12px}
.flow-kpis article>span{font-size:11px;color:var(--text-secondary)}.flow-kpis article>strong{color:var(--text-primary);font-size:24px;letter-spacing:-.5px;overflow:hidden;text-overflow:ellipsis}.flow-kpis article>small{font-size:12px;color:var(--text-tertiary)}
.flow-observatory .flow-content,.flow-observatory .flow-categories,.flow-observatory .flow-cdn-panel,.flow-observatory .flow-chart-panel,.flow-observatory .flow-ranking,.flow-pilot .flow-pilot-chart,.flow-pilot .flow-pilot-ranking,.flow-pilot-services,.flow-pilot-service-charts>.panel,.flow-pilot .flow-security-card,.flow-pilot .flow-security-evidence{background:var(--vega-panel);border-color:var(--border-subtle);box-shadow:var(--rim-top)}
.flow-pilot .panel-heading h2{color:var(--text-primary);font-size:16px}.flow-pilot .panel-heading p,.flow-pilot .flow-data-note,.flow-pilot .flow-empty{font-size:12px;line-height:1.6;color:var(--text-tertiary)}
.flow-pilot .flow-map{background:radial-gradient(ellipse at 45% 58%,rgba(252,92,52,.055),transparent 65%),var(--theme-panel,#111215);border-color:var(--border-default);box-shadow:var(--rim-top);border-radius:16px}
.flow-map-heading{padding:20px 22px;gap:16px}.flow-map-heading,.flow-map-stats,.flow-map-detail,.flow-map-inspector{border-color:var(--border-subtle)}
.flow-map-eyebrow{color:var(--coral-400);font-size:11px;letter-spacing:.1em}.flow-map-heading h2{color:var(--text-primary)}.flow-map-heading p{font-size:12px;color:var(--text-tertiary)}
.flow-map-status{font-size:11px}.flow-map-switch{background:var(--surface-input);border-color:var(--border-default)}.flow-map-switch button{font-size:12px;min-height:36px;color:var(--text-secondary)}
.flow-map-stats{padding:16px 22px}.flow-map-stats>div{border-color:var(--border-subtle)}.flow-map-stats small{font-size:12px;color:var(--text-secondary)}.flow-map-stats strong{color:var(--text-primary);font-size:20px}
.flow-map-land{fill:#242226;stroke:#5c4d47}.flow-map-land.is-active,.is-brazil .flow-map-land.is-active{fill:#6f3829;stroke:#e68a61}.flow-map-land.is-selected,.is-brazil .flow-map-land.is-selected{fill:#a65834;stroke:#ffe1b7}
.flow-map-connection.download{stroke:#ff997d}.flow-map-connection.upload{stroke:#edc98c}.flow-map-key{font-size:12px;color:var(--coral-400)}.flow-map-key span:nth-child(2){color:var(--theme-warning,#edc98c)}.flow-map-key small{font-size:11px;color:var(--text-tertiary)}
.flow-map-inspector{background:var(--theme-sunken,rgba(14,15,17,.5))}.flow-map-detail>span{font-size:10px;color:var(--coral-400)}.flow-map-detail h3{font-size:19px;color:var(--text-primary)}.flow-map-detail p,.flow-map-detail dl>div{font-size:12px;color:var(--text-secondary)}.flow-map-detail dt{color:var(--text-tertiary)}.flow-map-detail dd{color:var(--text-primary)}
.flow-map-country-list button{font-size:12px;min-height:44px;color:var(--text-secondary)}.flow-map-country-list button small{font-size:11px;color:var(--text-tertiary)}.flow-map-country-list strong{font-size:11px;color:var(--text-primary)}
.flow-brazil-label{fill:var(--theme-muted,#b4a19a)}.flow-brazil-label.is-active{fill:var(--theme-warning,#ffe2c9)}.flow-brazil-pin{fill:var(--theme-warning,#ffc49a);stroke:#fff0d9}.flow-brazil-hit{fill:transparent;stroke:none}
.flow-brazil-coverage{font-size:11px;color:var(--text-tertiary);border-color:var(--border-subtle)}.flow-brazil-cities div,.flow-brazil-cities h4,.flow-brazil-city-focus{font-size:12px}
.flow-brazil-origin circle:first-child{fill:var(--theme-critical,#fc5c3418);stroke:#fc5c3488}.flow-brazil-origin circle:nth-child(2){fill:var(--theme-warning,#ffe4bf)}.flow-vega-star{fill:var(--theme-warning,#ffe4bf);stroke:#ff997d;stroke-width:.15;filter:drop-shadow(0 0 1px #fc5c34)}
.flow-map-info summary{width:36px;height:36px;border-color:var(--border-default)}.flow-map-info>div{background:var(--surface-raised);border-color:var(--border-default)}
.customer-report-guide>button{min-height:130px;padding:18px;background:var(--vega-panel);border-color:var(--border-subtle);gap:9px}.customer-report-guide>button[aria-pressed=true]{background:var(--theme-panel,#211b18);border-color:#b96e4b;box-shadow:none}.customer-report-guide i{background:rgba(252,92,52,.08);color:var(--coral-400)}.customer-report-guide strong{font-size:14px;color:var(--text-primary)}.customer-report-guide span{font-size:12px;color:var(--text-secondary);line-height:1.6}
td,th{font-size:13px}.table-wrap small{font-size:12px}.client-view .reports-form{border-color:var(--border-subtle)}
#view-incidents .stats>article,#view-incidents .panel{background:var(--surface-card);border-color:var(--border-subtle)}
.customer-flow-unavailable{background:var(--vega-panel)!important;border-color:var(--border-subtle)!important}.customer-flow-unavailable p{color:var(--text-secondary)}
@media(min-width:701px) and (max-width:1100px){.customer-network-overview{grid-template-columns:1fr 1fr}.customer-network-throughput{border-left:1px solid var(--border-subtle);border-top:0}.customer-network-verdict,.customer-network-throughput{padding:20px}.customer-network-verdict h2{font-size:21px}}
@media(max-width:900px){.links-chart-grid{grid-template-columns:1fr}.flow-map-stats strong{font-size:18px}}
@media(max-width:700px){
 main{padding:16px 14px calc(90px + env(safe-area-inset-bottom))}aside{padding:12px 16px}.vega-logo{width:78px}.product-name{font-size:10px}
 .header-right{gap:8px}#identity{font-size:12px}.avatar{display:none}.client-view #logout{min-height:36px;font-size:12px}
 #main-navigation .nav-primary>button .nav-item-copy::after{font-size:11px}#main-navigation .nav-primary>button[data-nav-key].selected{background:transparent}
 #noc-board.customer-portal{padding:0}.customer-portal .noc-heading{display:flex;align-items:flex-start;flex-wrap:wrap;padding:0 0 12px;gap:6px}
 .customer-portal .noc-heading h1{font-size:24px;letter-spacing:-.6px;margin:5px 0}.customer-portal .noc-heading .eyebrow{font-size:10px}.customer-portal .noc-heading .muted{display:none}
 .customer-portal .noc-clock-wrap{padding:0;min-height:0;flex-basis:100%;align-items:flex-start}.customer-portal #noc-updated{font-size:11px}.noc-live-sync{font-size:9px;padding:4px 6px}
 .customer-portal .noc-client-nav{padding:6px 0;gap:4px;min-height:48px;flex-wrap:wrap;align-items:center}
 .noc-client-nav>button{font-size:12px;min-height:40px;padding:7px 9px}.customer-portal .noc-client-search{display:flex;flex:1 0 100%;width:100%;height:38px;min-height:38px;margin:3px 0 0}
 .customer-portal .noc-client-workspace{margin-top:16px}.customer-network-overview{grid-template-columns:1fr;margin:14px 0 18px;border-radius:13px}
 .customer-network-verdict{padding:17px 18px 14px}.customer-network-verdict h2{font-size:20px;margin:6px 0}.customer-network-verdict>p{font-size:12px;line-height:1.6}
 .customer-network-counts{gap:12px;margin:12px 0 6px;font-size:11px}.customer-network-counts b{font-size:17px}.customer-network-verdict>small{font-size:11px}
 .customer-network-throughput{padding:14px 18px 16px;border-left:0;border-top:1px solid var(--border-subtle);display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}
 .customer-network-throughput>.customer-section-label{font-size:10px;grid-column:1/-1}.customer-network-throughput>div{margin:0;gap:12px;grid-column:1/-1}.customer-network-throughput>div>span{font-size:12px}.customer-network-throughput strong{font-size:25px;margin-top:3px}
 .customer-network-throughput>small{font-size:11px;line-height:1.5}.customer-network-throughput>.primary{margin:0;min-height:40px;font-size:11px;padding:8px 10px;white-space:normal;max-width:140px}
 .customer-portal #noc-client-cards[data-tab=overview]{gap:12px}.customer-connection{padding:18px}.customer-connection-rates strong{font-size:25px}
 .customer-portal .client-device-card{padding:18px}.client-device-visual{padding:12px 0;gap:8px}.client-device-visual .equipment-svg{max-height:150px;min-width:0}.customer-portal .client-device-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .links-workbench{padding:14px;display:flex;flex-wrap:wrap;gap:10px}.links-workbench>div:first-child{flex:1;min-width:120px}.links-workbench h3{font-size:16px}.links-workbench p{display:none}.links-workbench>label{min-width:125px;width:125px;font-size:11px}
 .links-color-legend{gap:12px;padding-top:10px;font-size:11px}.link-performance-card>header{padding:16px}.link-performance-values{padding:14px 16px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.link-metric strong{font-size:22px}.link-metric>small{font-size:11px}.link-performance-chart{height:310px}.link-performance-card>footer{font-size:11px;padding:12px 16px;flex-wrap:wrap}
 .flow-analysis,.flow-pilot{padding:16px;gap:14px;border-radius:14px}.flow-analysis-head{gap:10px}.flow-analysis-head h1{font-size:24px}.flow-analysis-head p{font-size:12px}.flow-analysis-actions{display:flex;gap:8px}.flow-analysis-actions .ghost{font-size:12px;min-height:38px;padding:8px 10px}
 .flow-pilot-company{display:none}.flow-pilot .flow-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.flow-pilot .flow-toolbar label{min-width:0;font-size:12px}.flow-pilot .flow-toolbar select{width:100%;font-size:12px;min-height:40px}
 .flow-advanced-controls>.flow-toolbar{grid-template-columns:1fr}.flow-advanced-controls>summary,.flow-security-disclosure>summary{font-size:12px;padding:12px}.flow-security-disclosure>summary small{display:none}
 .flow-pilot .flow-pilot-periods{display:flex;flex-wrap:wrap;gap:5px}.flow-pilot .flow-pilot-periods button{flex:1;min-width:36px;font-size:12px;padding:7px 5px;min-height:38px}
 .flow-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.flow-observatory .flow-kpis article{padding:13px}.flow-kpis article>strong{font-size:20px}.flow-kpis article>span{font-size:11px}.flow-kpis article>small{font-size:11px;line-height:1.5}
 .flow-map-heading{padding:16px;gap:12px}.flow-map-heading h2{font-size:16px!important}.flow-map-heading p{font-size:12px}.flow-map-eyebrow{font-size:10px}.flow-map-actions{gap:8px}
 .flow-map-stats{padding:14px 16px;gap:14px}.flow-map-stats small{font-size:11px}.flow-map-stats strong{font-size:18px}.flow-map-switch button{font-size:12px;min-height:38px}.flow-map-status{font-size:10px}
 .flow-map-country-list button{min-height:48px;font-size:12px}.flow-map-country-list strong{font-size:11px}.flow-map-key{font-size:11px}.flow-map-key small{font-size:10px}.flow-brazil-coverage{font-size:11px;gap:8px}
 .page-title h1,.client-view #view-reports .page-title h1{font-size:25px}.page-title p{font-size:13px}.customer-report-guide>button{padding:14px;min-height:130px}.customer-report-guide strong{font-size:13px}.customer-report-guide span{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.customer-connection,.client-device-card,.link-performance-card{transition:none}.flow-vega-star{filter:none}}

/* Link traffic cards inspired by the dual ISP monitoring view. */
.links-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.link-performance-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:14px;box-shadow:0 7px 24px #17203312}
.link-performance-card>header{min-height:88px;align-items:center;padding:16px 18px;background:linear-gradient(115deg,#0d1421,#111c2b);border:0;color:#f4f7fb}
.link-performance-card>header>div:first-child:before{content:'◎  TRÂNSITO IP';display:inline-flex;align-items:center;margin-bottom:8px;padding:5px 9px;border:1px solid #3479ff60;border-radius:20px;background:#3479ff18;color:#58a0ff;font:700 9px var(--mono);letter-spacing:.04em}
.link-performance-company{display:none}
.link-performance-card h3{margin:0;color:#f4f7fb;font-size:16px;letter-spacing:-.2px}
.link-performance-card>header small{display:block;margin-top:4px;color:#aab5c5;font-size:10px}
.link-performance-state{max-width:38%;font-size:9px}
.link-performance-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 16px 8px}
.link-metric{position:relative;padding:11px 13px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-page)}
.link-metric>span{margin:0 0 4px;font:700 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}
.link-metric>strong{font-size:17px;letter-spacing:0}
.link-metric>small{margin-top:2px;font-size:9px}
.link-metric.metric-0>span,.link-metric.metric-0>strong{color:#20b85a}
.link-metric.metric-1>span,.link-metric.metric-1>strong{color:#347dff}
.link-metric.metric-2>span,.link-metric.metric-3>span{color:var(--text-secondary)}
.link-performance-chart{height:345px;margin:0 12px 8px;border:1px solid var(--border-subtle);border-radius:12px;background:linear-gradient(180deg,var(--surface-page),var(--surface-card));}
.link-performance-card>footer{background:var(--surface-page);padding:10px 16px}
@media(max-width:1100px){.links-chart-grid{grid-template-columns:1fr}}
@media(max-width:600px){.link-performance-card>header{padding:14px}.link-performance-values{padding:10px;gap:6px}.link-metric{padding:10px}.link-performance-chart{height:315px;margin:0 8px 8px}}

/* Resolve the legacy NOC skin at its original selector specificity. */
#noc-flow-analysis .flow-analysis{background:var(--surface-page);border-color:var(--border-subtle);box-shadow:none}
#noc-flow-analysis .flow-kpis article,#noc-flow-analysis .flow-chart-panel,#noc-flow-analysis .flow-ranking,#noc-flow-analysis .flow-content,#noc-flow-analysis .flow-categories{background:var(--vega-panel);border-color:var(--border-subtle);box-shadow:var(--rim-top)}
#noc-flow-analysis .flow-kpis article strong{display:block;color:var(--text-primary)}
#noc-flow-analysis .flow-pilot .flow-kpis article:last-child{grid-column:auto}
.flow-security-history-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:13px 0;color:var(--theme-muted,#aaa2a2);font-size:10px}.flow-security-history-controls label{display:flex;align-items:center;gap:8px}.flow-security-history-controls select{width:auto;min-width:100px;padding:5px 8px;font-size:10px}.flow-security-history-selection{font-size:10px;color:var(--theme-warning,#d4b67f);line-height:1.7;min-height:17px;margin:10px 0}
.flow-security-disclosure[data-state=warning]{border-color:var(--status-medium)}.flow-security-disclosure[data-state=warning]>summary small{color:var(--status-medium)}
.flow-security-disclosure[data-state=unavailable]>summary small,.flow-security-disclosure[data-state=partial]>summary small{color:var(--text-secondary)}
@media(max-width:700px){.customer-portal .noc-clock-wrap{max-width:none;width:100%;display:block}.customer-portal .noc-clock-wrap #noc-updated{max-width:none;white-space:nowrap;text-align:left}.link-performance-chart{height:360px}}

@media(min-width:701px) and (max-width:1100px){.customer-portal .noc-client-nav{flex-wrap:wrap}.customer-portal .noc-client-search{flex:1 0 100%;width:100%;margin:4px 0 0}.customer-portal .customer-network-overview{grid-template-columns:1fr}.customer-network-throughput{border-left:0;border-top:1px solid var(--border-subtle)}.customer-portal #noc-client-cards[data-tab=overview]{grid-template-columns:1fr}.noc-heading{flex-wrap:wrap}.noc-clock-wrap{max-width:none}.customer-network-throughput>div{min-width:0}.customer-network-throughput strong{font-size:25px}}

.noc-live-sync.is-stale{color:var(--text-tertiary);border-color:var(--border-default);background:var(--surface-sunken)}.noc-live-sync.is-stale i{background:var(--text-tertiary);box-shadow:none;animation:none}.noc-live-sync.is-partial{color:var(--status-medium);border-color:rgba(237,196,118,.3);background:rgba(237,196,118,.06)}.noc-live-sync.is-partial i{background:var(--status-medium);box-shadow:none;animation:none}

.flow-security-zone-controls{display:flex;gap:8px;flex-wrap:wrap}.flow-security-zone-controls .is-selected{border-color:#d5ad66;color:var(--theme-warning,#f2d39a);background:#d5ad6615}

.flow-security-history-details{max-height:480px;overflow:auto;scrollbar-width:thin;border-top:1px solid var(--theme-border,#3b3029);margin-top:16px;padding-top:12px;color:var(--theme-muted,#c9c1ba);font-size:11px;line-height:1.7;overflow-wrap:anywhere}.flow-security-history-details[hidden]{display:none}.flow-security-history-details h4{font-size:12px;margin:0 0 12px;color:var(--theme-warning,#eddbc2)}.flow-security-history-event{background:rgba(218,172,98,.04);border:1px solid var(--theme-border,#493b2d);border-radius:12px;padding:14px;margin-bottom:12px}.flow-security-history-event>strong{color:var(--theme-warning,#eed5a4);font-size:12px}.flow-security-history-event p{margin:7px 0}.flow-security-history-event dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px;margin:12px 0}.flow-security-history-event dl>div{min-width:0}.flow-security-history-event dt{font-size:10px;color:var(--theme-muted,#a99d92)}.flow-security-history-event dd{margin:0;color:var(--theme-ink,#e3d9cd)}.flow-security-history-event small{font-size:10px;color:var(--theme-muted,#a99d92)}

/* ---------- Tema claro ---------- */
:root[data-theme="light"]{
  color-scheme:light;--neutral-rgb:25,35,52;
  --coral:#c84d2a;--coral-400:#d65732;--coral-a12:rgba(200,77,42,.12);--coral-a20:rgba(200,77,42,.2);--coral-a35:rgba(200,77,42,.35);--blue:#2868df;--blue-400:#2868df;--mint:#087d62;--amber:#9b5b00;--link-download:#cf4a22;--link-upload:#c18800;
  --surface-page:#f4f6f9;--surface-shell:#fff;--surface-sunken:#edf1f6;
  --surface-card:#fff;--surface-card-hover:#f0f3f8;--surface-raised:#fff;
  --surface-input:#f8fafc;--surface-input-focus:#fff;--surface-track:#e2e7ef;
  --surface-inverse:#202938;--surface-glass:rgba(255,255,255,.92);
  --text-primary:#202938;--text-secondary:#465268;--text-tertiary:#596579;
  --text-disabled:#8793a5;--text-inverse:#fff;
  --border-subtle:#e0e5ed;--border-default:#cdd5e0;--border-strong:#a8b4c5;
  --status-critical:#bf3150;--status-critical-bg:#fff0f3;
  --status-medium:#925600;--status-medium-bg:#fff3d8;
  --status-success:#087d62;--status-success-bg:#e4f7ef;
  --rim-top:inset 0 1px 0 #fff;--elev-card:0 2px 8px rgba(25,35,52,.05);
  --elev-popover:0 12px 36px rgba(25,35,52,.16);--elev-modal:0 24px 64px rgba(25,35,52,.2);
  --ring-focus:0 0 0 2px #fff,0 0 0 4px #c74424;
  --glow-neutral:radial-gradient(120% 90% at 50% 130%,rgba(40,97,235,.035),transparent 70%);
  --glow-info:radial-gradient(120% 90% at 50% 130%,rgba(40,97,235,.09),transparent 70%);
  --primary-hover:#35435a;--scroll-thumb:#b5bfcc;--scroll-hover:#8795a8;
  /* Legacy component colors: dark fallbacks live beside their original rules. */
  --theme-panel:var(--surface-card);--theme-sunken:var(--surface-sunken);
  --theme-ink:var(--text-primary);--theme-muted:var(--text-secondary);
  --theme-border:var(--border-default);--theme-accent:#08798a;--theme-link:var(--blue-400);
  --theme-critical:var(--status-critical);--theme-warning:var(--status-medium);--theme-success:var(--status-success);
  --vega-panel:linear-gradient(145deg,#fff,#f7faff);--vega-line:#d7e1ee;--vega-glow:rgba(40,104,223,.09);--vega-star:#c84d2a;
}
:root[data-theme="light"] .vega-logo{filter:brightness(0) saturate(100%)}
:root[data-theme="light"] :is(#noc-board,.noc-flow-panel,.noc-company-tile,.noc-problem-main,#noc-flow-analysis .flow-analysis){box-shadow:var(--elev-card)}
:root[data-theme="light"] .flow-rank-meta>span{color:var(--text-secondary)}
:root[data-theme="light"] :is(.flow-rich-identity .flow-service-icon,.noc-flow-logo){background:#fff}

/* Theme controls stay available before and after login. */
.theme-toggle{gap:7px;padding:0 12px;min-height:40px;font-weight:500}
.theme-toggle svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.theme-moon{display:none}
[data-theme="light"] .theme-sun{display:none}
[data-theme="light"] .theme-moon{display:block}

/* FLOW: complete light palette for analysis, pilot, security and both maps. */
:root[data-theme="light"] #noc-flow-analysis,
:root[data-theme="light"] .flow-pilot{color:var(--text-primary)}
:root[data-theme="light"] .flow-analysis-head h1,
:root[data-theme="light"] .flow-pilot .panel-heading h2,
:root[data-theme="light"] .flow-security-heading h2{color:var(--text-primary)}
:root[data-theme="light"] .flow-analysis-head p,
:root[data-theme="light"] .flow-pilot .panel-heading p,
:root[data-theme="light"] .flow-security-heading p{color:var(--text-secondary)}
:root[data-theme="light"] .flow-toolbar label,
:root[data-theme="light"] .flow-pilot-company small{color:var(--text-secondary)}
:root[data-theme="light"] .flow-pilot-company,
:root[data-theme="light"] .flow-pilot .flow-pilot-periods button,
:root[data-theme="light"] .flow-advanced-controls,
:root[data-theme="light"] .flow-security-disclosure,
:root[data-theme="light"] .flow-pilot-services,
:root[data-theme="light"] .flow-pilot .flow-pilot-chart,
:root[data-theme="light"] .flow-pilot .flow-pilot-ranking,
:root[data-theme="light"] .flow-pilot-service-charts>.panel,
:root[data-theme="light"] .flow-pilot .flow-security-card,
:root[data-theme="light"] .flow-pilot .flow-security-evidence,
:root[data-theme="light"] .flow-security-history-event,
:root[data-theme="light"] .flow-pilot-category-list>span,
:root[data-theme="light"] .flow-pilot-service-filter{background:var(--surface-card);border-color:var(--border-subtle);box-shadow:var(--elev-card)}
:root[data-theme="light"] .flow-pilot-company strong,
:root[data-theme="light"] .flow-pilot-services .panel-heading h2,
:root[data-theme="light"] .flow-pilot-service-charts .panel-heading h3,
:root[data-theme="light"] .flow-pilot-all-services>h3,
:root[data-theme="light"] .flow-security-card h3,
:root[data-theme="light"] .flow-security-history-details h4,
:root[data-theme="light"] .flow-pilot-category-list b{color:var(--text-primary)}
:root[data-theme="light"] .flow-pilot-services .panel-heading p,
:root[data-theme="light"] .flow-service-coverage,
:root[data-theme="light"] .flow-pilot-category-list>span,
:root[data-theme="light"] .flow-pilot-category-list b,
:root[data-theme="light"] .flow-security-card p,
:root[data-theme="light"] .flow-security-scan p,
:root[data-theme="light"] .flow-security-scan small,
:root[data-theme="light"] .flow-security-history-details,
:root[data-theme="light"] .flow-security-history-details small,
:root[data-theme="light"] .flow-security-history-event,
:root[data-theme="light"] .flow-pilot .flow-data-note,
:root[data-theme="light"] .flow-pilot .flow-empty{color:var(--text-secondary)}
:root[data-theme="light"] .flow-pilot .flow-pilot-periods button[aria-pressed=true],
:root[data-theme="light"] .flow-dimensions button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border);box-shadow:none}
:root[data-theme="light"] .flow-advanced-controls>summary,
:root[data-theme="light"] .flow-security-disclosure>summary{color:var(--text-primary)}
:root[data-theme="light"] .flow-advanced-controls .flow-scope-note{background:var(--surface-sunken);border-color:var(--border-subtle);color:var(--text-secondary)}
:root[data-theme="light"] .flow-pilot-services .noc-flow-row{border-color:var(--border-subtle)}
:root[data-theme="light"] .flow-pilot .flow-map{background:linear-gradient(145deg,#fff,#f6f8fb);border-color:var(--border-default);box-shadow:var(--elev-card)}
:root[data-theme="light"] .flow-map-heading,
:root[data-theme="light"] .flow-map-stats,
:root[data-theme="light"] .flow-map-detail,
:root[data-theme="light"] .flow-map-inspector{border-color:var(--border-subtle)}
:root[data-theme="light"] .flow-map-heading h2,
:root[data-theme="light"] .flow-map-stats strong,
:root[data-theme="light"] .flow-map-detail h3,
:root[data-theme="light"] .flow-map-detail dd,
:root[data-theme="light"] .flow-map-country-list button,
:root[data-theme="light"] .flow-map-country-list strong{color:var(--text-primary)}
:root[data-theme="light"] .flow-map-heading p,
:root[data-theme="light"] .flow-map-stats small,
:root[data-theme="light"] .flow-map-detail p,
:root[data-theme="light"] .flow-map-detail dt,
:root[data-theme="light"] .flow-map-country-list button small,
:root[data-theme="light"] .flow-map-key small{color:var(--text-secondary)}
:root[data-theme="light"] .flow-map-status{background:var(--status-success-bg);border-color:#b7dfc7;color:var(--status-success)}
:root[data-theme="light"] .flow-map-status.is-stale{background:var(--status-medium-bg);border-color:#e9d39e;color:var(--status-medium)}
:root[data-theme="light"] .flow-map-stage{background:radial-gradient(ellipse at 50% 50%,#f5f8fc 0,#edf2f8 75%)}
:root[data-theme="light"] .flow-map-grid path{stroke:#9aabc21f}
:root[data-theme="light"] .flow-map-land{fill:#e3e9f1;stroke:#c2ccd9}
:root[data-theme="light"] .flow-map-land.is-active{fill:#cbd8e8;stroke:#7088a8}
:root[data-theme="light"] .flow-map-land.is-selected{fill:#f3ad92;stroke:#c14b2a}
:root[data-theme="light"] .has-selection .flow-map-land.is-active:not(.is-selected){fill:#e3e9f1}
:root[data-theme="light"] .flow-map-connection.download{stroke:#d94e2b}
:root[data-theme="light"] .flow-map-connection.upload{stroke:#138a70}
:root[data-theme="light"] .flow-map-pin{fill:#bd492a}
:root[data-theme="light"] .flow-map-halo{fill:#bd492a16;stroke:#bd492a55}
:root[data-theme="light"] .flow-map-origin circle:first-child{fill:#138a7018;stroke:#138a7066}
:root[data-theme="light"] .flow-map-origin circle:nth-child(2){fill:#138a70;stroke:#fff}
:root[data-theme="light"] .flow-map-origin text{fill:#08715b}
:root[data-theme="light"] .flow-map-inspector{background:#f8fafc}
:root[data-theme="light"] .flow-map-country-list button:hover,
:root[data-theme="light"] .flow-map-country-list button.is-selected{background:#fff0eb;border-color:#eab4a5}
:root[data-theme="light"] .flow-map-empty{background:#ffffffed;border-color:var(--border-default);color:var(--text-secondary);box-shadow:var(--elev-popover)}
:root[data-theme="light"] .flow-map-switch{background:#edf1f6;border-color:var(--border-default)}
:root[data-theme="light"] .flow-map-switch button[aria-pressed=true]{background:#fff;color:var(--coral-400);box-shadow:0 1px 3px #17203322}
:root[data-theme="light"] .flow-map-info>div{background:#fff;border-color:var(--border-default);box-shadow:var(--elev-popover)}
:root[data-theme="light"] .flow-map-footer{background:#f4f6f9;border-color:var(--border-subtle)}
:root[data-theme="light"] .flow-map-footer p,
:root[data-theme="light"] .flow-map-footer a,
:root[data-theme="light"] .flow-map-footer small{color:var(--text-secondary)}
:root[data-theme="light"] .flow-brazil-label{fill:#64748b}
:root[data-theme="light"] .flow-brazil-label.is-active{fill:#9c3b1f}
:root[data-theme="light"] .flow-brazil-pin{fill:#c14b2a;stroke:#fff}
:root[data-theme="light"] .flow-brazil-pin .flow-brazil-hit{fill:transparent}
:root[data-theme="light"] .flow-brazil-origin circle:first-child{fill:#bd492a1a;stroke:#bd492a88}
:root[data-theme="light"] .flow-brazil-origin circle:nth-child(2){fill:#08798a}
:root[data-theme="light"] .flow-vega-star{fill:#bd492a;stroke:#fff}
:root[data-theme="light"] .flow-brazil-coverage{color:var(--text-secondary);background:#f8fafc}
:root[data-theme="light"] .flow-brazil-cities div{border-color:var(--border-subtle)}
:root[data-theme="light"] .flow-brazil-city-focus{background:#fff0eb;color:var(--text-primary)}
:root[data-theme="light"] .flow-brazil-code{background:#edf1f6;color:var(--text-primary)}
:root[data-theme="light"] .flow-brazil-state.is-active{fill:#cbd8e8}
:root[data-theme="light"] .flow-brazil-state.is-selected{fill:#f3ad92}
:root[data-theme="light"] .flow-map-connection.download .flow-map-motion,
:root[data-theme="light"] .flow-map-connection.upload .flow-map-motion{opacity:.9}
:root[data-theme="light"] .flow-pilot .flow-pilot-ranking table tr:hover,
:root[data-theme="light"] .flow-pilot-services .noc-flow-row:hover{background:var(--surface-card-hover)}
:root[data-theme="light"] .flow-pilot .flow-pilot-ranking th{color:var(--text-secondary)}
:root[data-theme="light"] .flow-pilot .flow-pilot-ranking td{color:var(--text-primary)}

/* Shared finishing pass: richer surfaces and clearer interactive states. */
body::before{width:min(76vw,1180px);height:540px;background:radial-gradient(58% 76% at 82% 0%,rgba(70,113,180,.095),transparent 72%),radial-gradient(38% 52% at 98% 0%,rgba(252,104,69,.075),transparent 72%)}
aside{background:linear-gradient(180deg,var(--surface-shell),var(--surface-page));}
nav button{min-height:44px;border-radius:10px}
nav button.selected{background:color-mix(in srgb,var(--coral-400) 11%,var(--surface-card));color:var(--text-primary)}
nav button.selected::before{left:-14px;background:var(--coral-400);box-shadow:0 0 16px color-mix(in srgb,var(--coral-400) 40%,transparent)}
.workspace>header{border-color:var(--border-subtle);box-shadow:0 1px 0 rgba(var(--neutral-rgb),.025)}
main{max-width:1600px;padding-top:32px}
.page-title{margin-bottom:26px}
.page-title h1{letter-spacing:-.035em}
.page-title p{color:var(--text-secondary);line-height:1.65}
.panel{border-color:var(--border-subtle);box-shadow:var(--elev-card);transition:border-color 160ms var(--ease),box-shadow 160ms var(--ease),background-color 160ms var(--ease)}
.panel-heading{padding:17px 20px}
.panel-heading h2{letter-spacing:-.02em}
.panel:hover{border-color:var(--border-default)}
input,select,textarea{border-radius:10px}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--coral-a12)}
.primary{background:linear-gradient(135deg,var(--coral-400),var(--coral));color:#fff;box-shadow:0 5px 14px color-mix(in srgb,var(--coral) 22%,transparent)}
.primary:hover{background:linear-gradient(135deg,var(--coral),var(--coral-400));box-shadow:0 7px 18px color-mix(in srgb,var(--coral) 30%,transparent)}
.ghost{background:var(--surface-card);border-color:var(--border-default);color:var(--text-secondary)}
.ghost:hover{background:var(--surface-card-hover);border-color:var(--border-strong);color:var(--text-primary)}
.page-title .primary,.page-title .ghost{min-height:42px}
.stats article,.edge-stats article{border-color:var(--border-subtle);box-shadow:var(--elev-card);background:var(--surface-card) var(--glow-neutral)}
.stats strong,.edge-stats strong{font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.link-performance-card{border-radius:16px;box-shadow:var(--elev-card);}
.link-performance-card:hover{border-color:var(--border-strong);box-shadow:var(--rim-top),0 14px 32px rgba(0,0,0,.24);}
.link-performance-card>header{position:relative;isolation:isolate;background:linear-gradient(115deg,#111c2c,#142338 62%,#102130);}
.link-performance-card>header:after{content:'';position:absolute;z-index:-1;right:-24px;top:-66px;width:190px;height:150px;border-radius:50%;background:radial-gradient(circle,#3987ff22,transparent 70%);pointer-events:none}
.link-performance-state{max-width:44%;padding:6px 10px;border-radius:999px;font:600 10px var(--font);letter-spacing:0}
.link-performance-state.critical{border-color:#ed988b66;background:#ff795f17;color:#ffad9d}
.link-performance-state.warning{border-color:#f3bd6555;background:#f3bd6515;color:#ffd790}
.link-performance-state.stale,.link-performance-state.unknown{border-color:#aab5c533;background:#aab5c311;color:#c4cede}
.link-performance-values{padding:14px 16px 10px}
.link-metric{background:linear-gradient(145deg,var(--surface-card),var(--surface-sunken));box-shadow:inset 0 1px rgba(var(--neutral-rgb),.025)}
.link-metric>strong{font-size:clamp(14px,1.25vw,19px);letter-spacing:-.025em}
.link-metric.metric-0>span,.link-metric.metric-0>strong{color:var(--status-success)}
.link-metric.metric-1>span,.link-metric.metric-1>strong{color:#5c9cff}
.link-metric.metric-2>span,.link-metric.metric-3>span{color:var(--text-tertiary)}
.link-performance-chart{margin:0 12px 10px;border-radius:13px;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--blue-400) 7%,var(--surface-card)),var(--surface-sunken));}
.link-performance-card>footer{border-top:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-sunken) 62%,var(--surface-card));}
.link-performance-card>footer .ghost{background:transparent;border-color:transparent;color:var(--coral-400)}
.link-performance-card>footer .ghost:hover{background:var(--coral-a12);border-color:var(--coral-a12)}
.links-workbench{border:1px solid var(--border-subtle);box-shadow:var(--elev-card)}
.links-color-legend span{display:inline-flex;align-items:center;gap:7px}
.links-color-legend span:before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px color-mix(in srgb,currentColor 28%,transparent)}
.links-color-legend span:nth-child(1):before{background:var(--link-download)}.links-color-legend span:nth-child(2):before{background:var(--link-upload)}
.customer-network-overview,.customer-connection,.client-device-card,.client-link-card,.client-company-card{box-shadow:var(--elev-card)}
.customer-connection,.client-device-card,.client-link-card,.client-company-card{border-radius:16px}
.customer-connection:hover,.client-device-card:hover,.client-link-card:hover,.client-company-card:hover{border-color:var(--border-strong);box-shadow:var(--elev-popover);transform:translateY(-1px)}
.customer-connection-rates strong{font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.client-view .customer-connection>.ghost{border-radius:0}
table thead th{color:var(--text-tertiary);letter-spacing:.045em}
table tbody tr:hover{background:var(--surface-card-hover)}
.badge{backdrop-filter:blur(8px)}
::selection{background:color-mix(in srgb,var(--coral-400) 34%,transparent);color:var(--text-primary)}
@media(max-width:700px){main{padding-top:22px}.page-title{align-items:flex-start;flex-wrap:wrap}.page-title h1{font-size:26px}.page-title .primary,.page-title .ghost{min-height:40px}.link-performance-card>header{min-height:86px}.link-performance-state{max-width:45%}.link-performance-chart{margin:0 8px 8px}}

/* High-energy but semantic accents across both themes. */
body::before{background:radial-gradient(52% 64% at 88% 0%,rgba(67,141,255,.17),transparent 72%),radial-gradient(38% 54% at 100% 4%,rgba(255,112,77,.13),transparent 72%),radial-gradient(34% 48% at 55% 0%,rgba(137,91,255,.075),transparent 75%)}
nav button.selected{background:linear-gradient(100deg,color-mix(in srgb,var(--coral-400) 16%,var(--surface-card)),color-mix(in srgb,var(--blue-400) 7%,var(--surface-card)));}
.panel{background-image:linear-gradient(145deg,color-mix(in srgb,var(--surface-card) 96%,var(--blue-400) 4%),var(--surface-card));}
.stats article,.edge-stats article,.noc-kpi,.flow-kpis article{position:relative;isolation:isolate;overflow:hidden}
.stats article:before,.edge-stats article:before,.noc-kpi:before,.flow-kpis article:before{content:'';position:absolute;z-index:-1;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--card-accent,var(--blue-400)),transparent 84%);opacity:.95}
.stats article:after,.edge-stats article:after,.noc-kpi:after,.flow-kpis article:after{content:'';position:absolute;z-index:-1;right:-50px;top:-70px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--card-accent,var(--blue-400)) 16%,transparent),transparent 70%);pointer-events:none}
.stats article:nth-child(4n+1),.edge-stats article:nth-child(4n+1),.noc-kpi:nth-child(4n+1),.flow-kpis article:nth-child(4n+1){--card-accent:#438dff}
.stats article:nth-child(4n+2),.edge-stats article:nth-child(4n+2),.noc-kpi:nth-child(4n+2),.flow-kpis article:nth-child(4n+2){--card-accent:#49dfb1}
.stats article:nth-child(4n+3),.edge-stats article:nth-child(4n+3),.noc-kpi:nth-child(4n+3),.flow-kpis article:nth-child(4n+3){--card-accent:#ffbd55}
.stats article:nth-child(4n),.edge-stats article:nth-child(4n),.noc-kpi:nth-child(4n),.flow-kpis article:nth-child(4n){--card-accent:#a98aff}
.noc-kpi{background:linear-gradient(145deg,color-mix(in srgb,var(--surface-card) 91%,var(--card-accent) 9%),var(--surface-card));box-shadow:var(--elev-card)}
.noc-kpi strong,.flow-kpis article>strong,.stats strong,.edge-stats strong{text-shadow:0 0 22px color-mix(in srgb,var(--card-accent,var(--blue-400)) 16%,transparent)}
.flow-kpis article>strong{color:var(--card-accent,var(--text-primary))}
.link-metric.metric-0{--metric:var(--link-download);background:linear-gradient(145deg,color-mix(in srgb,var(--surface-card) 91%,var(--link-download) 9%),var(--surface-card))}
.link-metric.metric-1{--metric:var(--link-upload);background:linear-gradient(145deg,color-mix(in srgb,var(--surface-card) 91%,var(--link-upload) 9%),var(--surface-card))}
.link-metric.metric-0>span,.link-metric.metric-0>strong{color:var(--link-download)}
.link-metric.metric-1>span,.link-metric.metric-1>strong{color:var(--link-upload)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.link-card-toolbar{display:flex;align-items:center;gap:8px;min-height:39px;padding:5px 14px;border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-card) 86%,var(--blue-400) 4%)}
.link-card-period-icon{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:1px solid color-mix(in srgb,var(--coral-400) 28%,var(--border-subtle));border-radius:8px;background:color-mix(in srgb,var(--coral-400) 8%,var(--surface-card));color:var(--coral-400)}
.link-card-period-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.link-card-toolbar>[role="group"]{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--surface-sunken)}
.link-card-toolbar button[data-link-period]{min-width:34px;height:25px;padding:0 7px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-secondary);font:600 10px var(--mono);cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}
.link-card-toolbar button[data-link-period]:hover{border-color:color-mix(in srgb,var(--coral-400) 28%,transparent);color:var(--text-primary)}
.link-card-toolbar button[data-link-period][aria-pressed="true"]{border-color:color-mix(in srgb,var(--coral-400) 40%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--coral-400) 20%,var(--surface-card)),color-mix(in srgb,var(--blue-400) 12%,var(--surface-card)));color:var(--coral-400);box-shadow:0 2px 8px color-mix(in srgb,var(--coral-400) 12%,transparent)}
.link-card-toolbar button[data-link-period]:disabled{opacity:.38;cursor:not-allowed}
.link-metric>span{display:flex;align-items:center;gap:5px}
.link-metric>span>span{font:700 9px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.link-metric>span>svg{width:14px;height:14px;flex:0 0 14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.link-metric>small:empty{display:none}
.link-performance-values{padding-top:10px}
.link-performance-card>footer>span{display:flex;align-items:center;gap:6px}
.link-performance-card>footer>span:before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--link-download);box-shadow:0 0 8px color-mix(in srgb,var(--link-download) 42%,transparent)}
:root[data-theme="light"] .link-card-period-icon{background:linear-gradient(145deg,#fff4ed,#fff)}
:root[data-theme="light"] .link-card-toolbar button[data-link-period][aria-pressed="true"]{background:linear-gradient(135deg,#fff0e7,#edf4ff);color:#bd4b26}
.flow-map-key span:first-child{color:var(--coral-400)}.links-color-legend span:first-child{color:var(--link-download)}
.flow-map-key span:nth-child(2){color:var(--mint)}
.links-color-legend span:nth-child(2){color:var(--link-upload)}
:root[data-theme="light"] body::before{background:radial-gradient(52% 64% at 88% 0%,rgba(40,104,223,.1),transparent 72%),radial-gradient(38% 54% at 100% 4%,rgba(200,77,42,.08),transparent 72%),radial-gradient(34% 48% at 55% 0%,rgba(112,86,205,.045),transparent 75%)}
:root[data-theme="light"] .panel{background-image:linear-gradient(145deg,#fff,#fbfcff)}
:root[data-theme="light"] .stats article,:root[data-theme="light"] .edge-stats article,:root[data-theme="light"] .noc-kpi,:root[data-theme="light"] .flow-kpis article{background-color:#fff}
:root[data-theme="light"] .noc-kpi{background-image:linear-gradient(145deg,color-mix(in srgb,#fff 95%,var(--card-accent) 5%),#fff)}
:root[data-theme="light"] .flow-kpis article>strong{color:color-mix(in srgb,var(--card-accent) 70%,#202938)}
:root[data-theme="light"] .link-metric.metric-1>span,:root[data-theme="light"] .link-metric.metric-1>strong{color:var(--link-upload)}
:root[data-theme="light"] .link-metric.metric-0>span,:root[data-theme="light"] .link-metric.metric-0>strong{color:var(--link-download)}
:root[data-theme="light"] .link-performance-card>header{background:linear-gradient(112deg,#8f351d 0%,#c54e27 55%,#963a20 100%)}
.link-performance-card>header{min-height:78px;padding:10px 18px;gap:12px}
.link-performance-card>header>div:first-child:before{margin-bottom:3px;padding:3px 7px;font-size:8px;line-height:1.2}
.link-performance-card h3{font-size:15px;line-height:1.3}
.link-performance-card>header small{margin-top:2px;font-size:10px}
.link-performance-state{padding:5px 9px;font-size:9px}
.link-performance-values{gap:7px;padding:10px 14px 8px}
.link-metric{padding:9px 11px;border-radius:11px}
.link-metric>span{margin-bottom:2px;font-size:8px;letter-spacing:.14em}
.link-metric>strong{font-size:16px;letter-spacing:-.02em}
.link-metric>small{margin-top:1px;font-size:8px}
.link-performance-chart{height:315px;margin:0 12px 9px;border-radius:12px}
.link-performance-card>footer{min-height:40px;padding:8px 14px}
.link-performance-card>footer>span{font-size:9px}
@media(max-width:700px){.link-performance-card>header{min-height:76px;padding:9px 13px}.link-performance-values{padding:9px 11px 7px;gap:6px}.link-metric{padding:9px}.link-performance-chart{height:315px;margin:0 8px 8px}.link-performance-card>footer{padding:8px 11px}}
.login-theme{position:absolute;right:24px;top:24px}
@media(max-width:700px){
  .header-right .theme-toggle{width:40px;min-width:40px;padding:0}
  .header-right .theme-toggle [data-theme-label]{display:none}
  .login-theme{top:16px;right:16px}
  .login{padding-top:80px;padding-bottom:32px}
}

/* Keep the company drill-down for its tabs, but avoid repeating it on Overview. */
#noc-board:not(.customer-portal)[data-workspace-tab="overview"] .noc-client-workspace{display:none}
.client-device-metrics>button{display:grid;align-content:center;width:100%;min-width:0;min-height:58px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:9px;background:linear-gradient(145deg,var(--surface-card),var(--surface-sunken));color:var(--text-secondary);text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.client-device-metrics>button:hover{border-color:color-mix(in srgb,var(--coral-400) 48%,var(--border-subtle));background:linear-gradient(145deg,color-mix(in srgb,var(--surface-card) 88%,var(--coral-400) 12%),var(--surface-sunken));transform:translateY(-1px)}
.client-device-metrics>button:focus-visible{outline:2px solid var(--coral-400);outline-offset:2px}
.client-device-metrics>button>span{color:var(--text-secondary);font-size:10px}
.client-device-metrics>button>b{margin-top:4px;color:var(--text-primary);font:500 13px var(--mono);font-variant-numeric:tabular-nums}
.client-device-metrics>button>small{margin-top:3px;color:var(--text-tertiary);font-size:8px}

/* VEGA Portal: estado do módulo na sidebar, módulo não contratado e telas do portal. */
.sidebar-group-heading .module-state{display:block;margin-top:3px;font-style:normal;font-size:10px;letter-spacing:.04em;text-transform:none;color:var(--status-medium,#f5a524)}
.sidebar-nav-group.is-locked .sidebar-group-heading{opacity:.55}
#main-navigation button.nav-locked{opacity:.55}
#main-navigation button.nav-locked:hover,#main-navigation button.nav-locked.selected{opacity:.85}
.portal-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:12px}
.portal-module-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--border-subtle);border-radius:var(--r-card-lg,14px);background:var(--surface-card);padding:18px}
.portal-module-card>header{display:flex;justify-content:space-between;align-items:center;gap:10px}
.portal-module-card>p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}
.portal-module-card dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:0}
.portal-module-card dt{font-size:11px;color:var(--text-secondary)}.portal-module-card dd{margin:2px 0 0;font-weight:600;font-size:18px}
.portal-module-card>button{align-self:flex-start;margin-top:auto}
.portal-module-card.is-locked{opacity:.6;border-style:dashed}
.portal-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;color:var(--text-secondary);font-size:13px}
.portal-guard-sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px}
.portal-guard-section{padding:16px 18px;scroll-margin-top:16px}.portal-guard-section h2{margin:0 0 6px;font-size:16px}
.portal-empty{margin:10px 0 0;font-size:12px;color:var(--text-tertiary,var(--text-secondary));font-style:italic}
.portal-links{display:flex;flex-wrap:wrap;gap:10px;padding:0 20px 18px}
.portal-locked{padding:18px 20px;max-width:720px}
.portal-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}
#lyra-traffic,#lyra-firewall,#lyra-sdwan{scroll-margin-top:16px}

/* Expandable Portal navigation. Keep source order rather than legacy view ordering. */
#main-navigation .sidebar-nav-group{margin-bottom:12px}
#main-navigation .sidebar-group-items{display:flex;flex-direction:column;gap:3px;min-width:0}
#main-navigation .sidebar-group-items[hidden]{display:none}
#main-navigation .sidebar-group-items>button[data-nav-key]{order:0;width:100%}
#main-navigation button.sidebar-group-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px;width:100%;min-height:42px;margin:0;padding:10px;text-align:left;white-space:normal;font-size:10px;letter-spacing:.1em;line-height:1.5;color:var(--text-secondary);border-radius:8px;cursor:pointer}
#main-navigation button.sidebar-group-heading::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;flex:0 0 6px}
#main-navigation button.sidebar-group-heading[aria-expanded=true]::after{transform:rotate(225deg)}
#main-navigation button.sidebar-group-heading:hover{background:rgba(var(--neutral-rgb),.06)}
#main-navigation .sidebar-group-heading .module-state{font-size:9px;letter-spacing:0;text-transform:none}
@media(max-width:700px){
 #main-navigation>.nav-primary>.sidebar-group-heading{display:none}
 #main-navigation>.nav-primary>.sidebar-group-items,#main-navigation>.nav-primary>.sidebar-group-items[hidden]{display:contents}
 #main-navigation .nav-primary .sidebar-group-items>button[data-nav-key]{flex:1 1 25%;width:25%;min-width:0;padding:7px 2px;min-height:60px;align-items:center;justify-content:center;gap:4px}
 #main-navigation .nav-primary .sidebar-group-items .nav-item-copy{font-size:0;line-height:1}
 #main-navigation .nav-primary .sidebar-group-items .nav-item-copy::after{content:attr(data-short);display:block;font-size:11px;font-weight:500;line-height:1.2}
 #main-navigation .nav-primary .sidebar-group-items .nav-item-copy small{display:none}
 #main-navigation .nav-primary .sidebar-group-items button[data-nav-key] .nav-icon{width:20px;height:20px;margin:0}
 #main-navigation .nav-primary .sidebar-group-items button[data-nav-key].selected{background:transparent;box-shadow:inset 0 2px 0 var(--coral)}
}

.guard-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:16px;margin:20px 0}.guard-toolbar label{display:grid;gap:6px;font-size:12px;min-width:180px}.guard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.guard-kpis article{padding:16px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:12px}.guard-kpis span{display:block;color:var(--text-secondary);font-size:12px}.guard-kpis strong{display:block;margin-top:8px;font-size:26px}.portal-guard-section td{overflow-wrap:anywhere;max-width:420px}.portal-guard-section h3{margin:20px 0 12px}.guard-mapping{padding:20px;margin-top:20px}@media(max-width:700px){.guard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.guard-toolbar label{min-width:0;flex:1 1 140px}.guard-toolbar button{min-height:40px}}

/* Portal NOC — canonical visual system. Legacy aliases share the same system accent.
   Semantic alarm colors must use --status-*; coral belongs to the brand artwork. */
:root,:root[data-theme="dark"]{
 --accent:#55d9ed;--accent-strong:#22bfd5;--accent-ink:#062c35;--accent-soft:rgba(85,217,237,.10);
 --accent-border:rgba(85,217,237,.32);--chart-secondary:#95aaff;
 --neutral-rgb:226,236,247;--coral:var(--accent);--coral-400:var(--accent);
 --coral-a12:var(--accent-soft);--coral-a20:rgba(85,217,237,.18);--coral-a35:var(--accent-border);
 --blue:var(--accent-strong);--blue-400:var(--accent);--mint:#68d9b0;--amber:#f3bf65;
 --surface-page:#0a1019;--surface-shell:#0d1520;--surface-sunken:#0a121d;
 --surface-card:#111d2b;--surface-card-hover:#172638;--surface-raised:#1b2b3e;
 --surface-input:#0d1825;--surface-input-focus:#132235;--surface-track:#26384c;
 --surface-inverse:#eaf3fb;--surface-glass:rgba(10,16,25,.96);
 --text-primary:#eaf3fb;--text-secondary:#bdccdc;--text-tertiary:#91a5bb;--text-disabled:#778da5;--text-inverse:#0a1725;
 --border-subtle:#233247;--border-default:#35485e;--border-strong:#60778f;
 --status-critical:#ff8994;--status-critical-bg:rgba(255,137,148,.10);
 --status-medium:#f3bf65;--status-medium-bg:rgba(243,191,101,.10);
 --status-success:#68d9b0;--status-success-bg:rgba(104,217,176,.10);
 --rim-top:inset 0 1px 0 rgba(255,255,255,.025);--elev-card:0 3px 12px #00000012;
 --elev-popover:0 12px 36px #0005;--elev-modal:0 24px 80px #0008;
 --ring-focus:0 0 0 2px var(--surface-page),0 0 0 4px var(--accent);
 --glow-neutral:none;--glow-info:none;--link-download:var(--accent);--link-upload:var(--chart-secondary);
 --theme-panel:var(--surface-card);--theme-sunken:var(--surface-sunken);--theme-ink:var(--text-primary);
 --theme-muted:var(--text-secondary);--theme-border:var(--border-subtle);--theme-accent:var(--accent);
 --theme-link:var(--accent);--theme-critical:var(--text-primary);--theme-warning:var(--status-medium);--theme-success:var(--status-success);
 --vega-panel:var(--surface-card);--vega-glow:var(--accent-soft);--vega-star:var(--accent);--vega-line:var(--accent-border);
 --text-muted:var(--text-tertiary);--brand-primary:var(--accent);--sidebar-w:266px;
}
:root[data-theme="light"]{
 --accent:#00758a;--accent-strong:#006b7e;--accent-ink:#fff;--accent-soft:#e6f4f7;--accent-border:#8bc3cd;--chart-secondary:#5265bf;
 --neutral-rgb:29,48,70;--coral:var(--accent);--coral-400:var(--accent);--coral-a12:var(--accent-soft);--coral-a20:#d2edf2;--coral-a35:var(--accent-border);
 --blue:var(--accent);--blue-400:var(--accent);--mint:#137550;--amber:#8a5b0b;
 --surface-page:#f2f5f9;--surface-shell:#fff;--surface-sunken:#edf2f7;--surface-card:#fff;--surface-card-hover:#f3f7fb;
 --surface-raised:#fff;--surface-input:#f8fafc;--surface-input-focus:#fff;--surface-track:#dce5ef;--surface-inverse:#203148;--surface-glass:rgba(255,255,255,.96);
 --text-primary:#1c3048;--text-secondary:#425970;--text-tertiary:#556c82;--text-disabled:#60758a;--text-inverse:#fff;
 --border-subtle:#d6e0ea;--border-default:#aebfd0;--border-strong:#6d859d;
 --status-critical:#b52e43;--status-critical-bg:#fff0f2;--status-medium:#87580a;--status-medium-bg:#fff5e2;
 --status-success:#137550;--status-success-bg:#e7f5ed;--elev-card:0 2px 8px #19344d06;
 --elev-popover:0 12px 36px #19344d22;--elev-modal:0 24px 80px #19344d33;
 --link-download:var(--accent);--link-upload:var(--chart-secondary);
 --theme-panel:var(--surface-card);--theme-sunken:var(--surface-sunken);--theme-ink:var(--text-primary);--theme-muted:var(--text-secondary);
 --theme-border:var(--border-subtle);--theme-accent:var(--accent);--theme-link:var(--accent);--theme-critical:var(--text-primary);
 --theme-warning:var(--status-medium);--theme-success:var(--status-success);--glow-neutral:none;--glow-info:none;
}
/* Restrict the application chrome to its own header. Card headers are never sticky. */
body{line-height:1.55}
body::before{display:none}
.workspace>header{position:sticky;top:0;height:64px;background:var(--surface-glass);padding:0 32px;box-shadow:none}
main header{position:static;inset:auto;height:auto;z-index:auto;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
main{max-width:1680px;padding:32px 32px 24px}
main>section{min-width:0}
h1{font-size:clamp(25px,2.2vw,32px);letter-spacing:-.035em;font-weight:600}
h2{font-size:16px;line-height:1.45}
h3{line-height:1.5}
.page-title{gap:16px;margin-bottom:26px;align-items:flex-start}
.page-title .eyebrow{display:block;margin-bottom:7px;color:var(--accent);font-size:10px;letter-spacing:.14em}
.page-title p{max-width:78ch;font-size:13px;line-height:1.7}
.vega-logo{filter:none}
:root[data-theme="light"] .vega-logo{filter:invert(1) hue-rotate(180deg)}
aside{background:var(--surface-shell);padding:26px 14px 16px}
aside>.brand{height:32px;margin-bottom:26px;padding-left:12px}
.product-name{font-size:11px;letter-spacing:.15em}
.aside-foot{font-size:11px;line-height:1.8;padding:16px 12px 0;margin-top:24px}
.aside-foot small{font-size:10px;letter-spacing:.06em}
#main-navigation{gap:6px}
#main-navigation .sidebar-nav-group{margin-bottom:8px}
#main-navigation .sidebar-group-heading{display:block;padding:10px;font-size:10px;color:var(--text-tertiary);letter-spacing:.12em}
#main-navigation button.sidebar-group-heading{color:var(--text-secondary);font-weight:600;font-size:10px;min-height:40px;padding:10px 12px}
#main-navigation .nav-primary>.sidebar-group-heading{display:none}
#main-navigation .nav-primary .sidebar-group-items{display:flex}
#main-navigation .sidebar-group-heading .module-state{font-size:10px;color:var(--text-tertiary);font-weight:400;letter-spacing:0}
#main-navigation button[data-nav-key]{min-height:42px;padding:10px 12px;gap:11px;border-radius:8px;font-size:12px;white-space:normal}
#main-navigation button[data-nav-key] .nav-item-copy{font-size:12px}
#main-navigation .nav-item-copy small{display:none}
#main-navigation button.selected{background:var(--accent-soft);color:var(--accent);box-shadow:inset 2px 0 var(--accent)}
#main-navigation button.selected::before{display:none}
#main-navigation button.selected .nav-icon{color:var(--accent)}
#main-navigation .sidebar-nav-group.is-locked .sidebar-group-heading,#main-navigation button.nav-locked{opacity:1;color:var(--text-tertiary)}
#main-navigation button.nav-locked{font-size:11px;border:1px dashed var(--border-default);background:var(--surface-sunken)}
.avatar{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);border-radius:10px;width:34px;height:34px}
.primary,.ghost,.danger{border-radius:8px;min-height:40px;font-size:12px;box-shadow:none}
.primary{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);box-shadow:none}
.primary:hover{background:var(--accent-strong);color:var(--accent-ink);box-shadow:none}
.ghost{background:var(--surface-card);border-color:var(--border-default)}
.ghost:hover{background:var(--surface-card-hover);border-color:var(--border-strong)}
.danger,.badge.failed{border-color:color-mix(in srgb,var(--status-critical) 40%,transparent)}
.danger:hover{background:var(--status-critical-bg);border-color:var(--status-critical)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.panel,:root[data-theme] .panel{background:var(--surface-card);border-color:var(--border-subtle);box-shadow:var(--elev-card)}
.panel-heading{padding:18px 20px;align-items:center}
.panel-heading .hint{margin-top:4px}
.panel-foot{color:var(--text-secondary);line-height:1.75}
.stats article,.edge-stats article,.noc-kpi,.flow-kpis article,:root[data-theme] .noc-kpi,:root[data-theme] .flow-kpis article{background:var(--surface-card);border-color:var(--border-subtle);box-shadow:var(--elev-card);--card-accent:var(--accent)}
.stats article::before,.stats article::after,.edge-stats article::before,.edge-stats article::after,.noc-kpi::before,.noc-kpi::after,.flow-kpis article::before,.flow-kpis article::after{display:none}
.stats strong,.edge-stats strong,.noc-kpi strong,.flow-kpis article>strong,:root[data-theme] .flow-kpis article>strong{color:var(--text-primary);text-shadow:none;letter-spacing:-.04em}
.stats article,.edge-stats article{padding:20px}
table{font-variant-numeric:tabular-nums}
thead{background:var(--surface-sunken)}
table th{font-weight:500;letter-spacing:.04em;color:var(--text-secondary);font-size:10px}
table td{font-size:12px;line-height:1.65}
table td small{font-size:11px}
.table-wrap,.table-scroll{overscroll-behavior-inline:contain;scrollbar-width:thin}
/* State surfaces: neutral for missing data, alarm colors only for confirmed problems. */
.error:empty,[role=status]:empty{display:none}
.error:not(:empty){padding:12px 16px;border:1px solid color-mix(in srgb,var(--status-critical) 40%,transparent);border-radius:8px;background:var(--status-critical-bg);color:var(--status-critical);line-height:1.7}
.overview-empty,.noc-clear,.portal-state{padding:24px;border:1px dashed var(--border-default);border-radius:12px;background:var(--surface-sunken);color:var(--text-secondary);font-size:13px;line-height:1.8}
.noc-clear{flex-wrap:wrap;box-shadow:none}
.noc-clear strong{color:var(--text-primary)}
.portal-state{display:grid;gap:5px;margin-bottom:20px}
.portal-state strong{color:var(--text-primary);font-size:14px}
.portal-state p{margin:0}
.portal-state[data-state=error]{border-style:solid;border-color:var(--status-critical);background:var(--status-critical-bg)}
.portal-state[data-state=loading]::before{content:'';height:3px;width:48px;background:var(--accent);border-radius:2px;animation:portal-loading 1.4s ease-in-out infinite}
@keyframes portal-loading{50%{opacity:.3;transform:scaleX(.5);transform-origin:left}}
.portal-overline{display:flex;align-items:center;gap:8px;color:var(--text-tertiary);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.portal-overline svg{width:16px;height:16px;stroke:var(--accent);fill:none;stroke-width:1.6}
.portal-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:26px 28px;margin-bottom:28px;border:1px solid var(--border-subtle);border-radius:14px;background:linear-gradient(110deg,var(--surface-card),color-mix(in srgb,var(--surface-card) 94%,var(--accent)))}
.portal-intro h2{font-size:22px;letter-spacing:-.025em;margin:0 0 8px}
.portal-intro p{max-width:68ch;margin:0;font-size:13px;color:var(--text-secondary);line-height:1.8}
.portal-intro-mark{width:84px;height:84px;display:grid;place-items:center;border:1px solid var(--accent-border);border-radius:24px;color:var(--accent);background:var(--accent-soft)}
.portal-intro-mark svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1.2}
.portal-modules{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}
.portal-module-card{position:relative;min-width:0;padding:24px;gap:18px;border-radius:14px;box-shadow:var(--elev-card)}
.portal-module-card>header{padding:0;border:0;background:transparent;display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px}
.portal-module-identity{display:flex;gap:12px;align-items:center}
.portal-module-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--accent-border);border-radius:11px;background:var(--accent-soft);color:var(--accent);flex:none}
.portal-module-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.portal-module-identity .eyebrow{font-size:10px;letter-spacing:.1em;color:var(--text-tertiary)}
.portal-module-identity h2{font-size:18px;margin-top:2px;letter-spacing:-.02em}
.portal-module-card>p{font-size:12px;line-height:1.8;min-height:44px}
.portal-module-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.portal-module-card dt{font-size:11px;color:var(--text-tertiary);margin-bottom:5px}
.portal-module-card dd{font-size:22px;line-height:1.4;overflow-wrap:anywhere}
.portal-module-card dd.portal-fact-text{font-size:13px;font-weight:500}
.portal-module-card>button{width:100%;justify-content:space-between;min-height:42px}
.portal-module-card.is-locked{opacity:1;background:var(--surface-sunken);border-style:dashed}
.portal-module-card.is-locked .portal-module-icon{color:var(--text-tertiary);background:var(--surface-card);border-color:var(--border-default)}
.portal-module-card.is-locked h2{color:var(--text-secondary)}
.portal-offer-note{font-size:11px;color:var(--text-tertiary);line-height:1.8;margin:0 0 12px}
.portal-locked{padding:32px;max-width:760px}
.portal-locked .portal-module-icon{margin-bottom:20px;width:52px;height:52px}
.portal-locked h2{font-size:22px;margin-bottom:12px}
.portal-locked p{font-size:14px;line-height:1.9}
.portal-notice{padding:12px 16px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-sunken);font-size:12px}
#view-modules>.panel{margin-bottom:24px}
/* Network, link cards and client summaries. */
.link-performance-card>header,:root[data-theme] .link-performance-card>header{background:var(--surface-card);border-bottom:1px solid var(--border-subtle);padding:16px 18px;min-height:84px}
.link-performance-card>header::after{display:none}
.link-performance-card>header>div:first-child::before,:root[data-theme] .link-performance-card>header>div:first-child::before{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent);font-size:9px}
.link-performance-card>header small{color:var(--text-tertiary);font-size:11px}
.link-performance-card h3{color:var(--text-primary);font-size:15px}
.link-performance-card .link-performance-state{color:var(--status-success);background:var(--status-success-bg);border-color:color-mix(in srgb,var(--status-success) 35%,transparent);font-size:10px;white-space:normal;line-height:1.5}
.link-performance-card .link-performance-state.critical{color:var(--status-critical);background:var(--status-critical-bg);border-color:color-mix(in srgb,var(--status-critical) 40%,transparent)}
.link-performance-card .link-performance-state.warning{color:var(--status-medium);background:var(--status-medium-bg);border-color:color-mix(in srgb,var(--status-medium) 40%,transparent)}
.link-performance-card .link-performance-state.stale,.link-performance-card .link-performance-state.unknown{color:var(--text-secondary);background:var(--surface-sunken);border-color:var(--border-default);border-style:dashed}
.link-metric,:root[data-theme] .link-metric.metric-0,:root[data-theme] .link-metric.metric-1{background:var(--surface-sunken);border-color:var(--border-subtle)}
.link-metric>span{font-size:10px;letter-spacing:0}.link-metric>small{font-size:10px;line-height:1.6}
.link-performance-chart{background:var(--surface-sunken);border:1px solid var(--border-subtle)}
.link-performance-card>footer>span{font-size:11px;color:var(--text-secondary)}
.link-performance-card>footer>span::before{display:none}
.link-card-period-icon,:root[data-theme] .link-card-period-icon{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}
.link-card-toolbar button[data-link-period][aria-pressed=true],:root[data-theme] .link-card-toolbar button[data-link-period][aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent);box-shadow:none}
.link-card-toolbar button[data-link-period]{min-height:30px;min-width:38px;font-size:11px}
.client-link-chart .traffic-in,.flow-map-connection.download{stroke:var(--link-download)}
.client-link-chart .traffic-out,.flow-map-connection.upload{stroke:var(--link-upload)}
.traffic-legend i{background:var(--link-download)}.traffic-legend i.out{background:var(--link-upload)}
.client-link-values strong{color:var(--text-primary)}
.customer-connection,.client-device-card,.client-company-card,.client-link-card{background:var(--surface-card);border-color:var(--border-subtle);box-shadow:var(--elev-card)}
.customer-connection:hover,.client-device-card:hover,.client-company-card:hover,.client-link-card:hover{transform:none;box-shadow:var(--elev-card)}
.client-device-visual,.client-recommendation{background:var(--surface-sunken);border-color:var(--border-default);color:var(--text-secondary)}
/* Occurrences, reports, administration and account use the shared workbench rhythm. */
.monitor-toolbar,.incident-toolbar,.registry-toolbar,.reports-form,.flow-filters{border-color:var(--border-subtle);border-radius:12px;gap:14px}
.technical-details{border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-card)}
.technical-details>summary{padding:16px 18px;font-size:12px}
.customer-report-guide>button{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-default);border-radius:12px;transition:var(--t-hover)}
.customer-report-guide>button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.customer-report-guide i{background:var(--accent-soft);color:var(--accent)}
.customer-report-guide span,.customer-report-empty p{color:var(--text-secondary);font-size:12px}
.customer-report-empty strong{color:var(--text-primary)}
/* Login is a calm product entrance with locally served brand assets. */
.login{gap:clamp(40px,7vw,130px);max-width:1440px;margin:auto;padding:80px 48px}
.login-intro{max-width:490px;display:grid;gap:24px}
.login-intro h1{font-size:clamp(32px,3.5vw,48px);line-height:1.2;letter-spacing:-.045em;margin:0}
.login-intro p{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.85;max-width:44ch}
.login-intro .eyebrow{color:var(--accent)}
.login-products{display:flex;gap:8px;flex-wrap:wrap}
.login-products span{padding:7px 12px;border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);font-size:11px}
.login-form{max-width:420px;flex-shrink:0;padding:36px;box-shadow:0 20px 60px #00000015;border-color:var(--border-default);border-radius:16px}
.login-form .eyebrow{display:block;font-size:10px;color:var(--accent);margin-top:10px}
.login-form h2{font-size:24px}
.login-form .primary{border-radius:8px}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:12px 18px;background:var(--surface-inverse);color:var(--text-inverse);border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:none}
@media(max-width:1200px){
 :root{--sidebar-w:244px}
 main{padding:26px 22px}
 .workspace>header{padding:0 22px}
 .portal-modules{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-module-card:last-child{grid-column:1/-1}
}
@media(max-width:900px){.login-intro{display:none}.portal-intro{padding:22px}.portal-intro-mark{width:64px;height:64px;border-radius:16px}}
@media(max-width:700px){
 :root{--sidebar-w:0px}
 main{padding:22px 14px 100px}
 .workspace>header{height:58px;padding:0 14px}
 .workspace>header>div:first-child{font-size:11px}
 .header-right{gap:7px}.header-right #identity{display:none}
 aside{padding:0}.aside-foot{display:none}
 .page-title{gap:12px;margin-bottom:20px}
 .page-title .eyebrow{font-size:9px;letter-spacing:.1em}
 .page-title p{font-size:12px}
 .page-title h1{font-size:25px}
 #main-navigation{padding-bottom:env(safe-area-inset-bottom);gap:0}
 #main-navigation .nav-primary .sidebar-group-items{display:contents}
 #main-navigation .nav-primary .sidebar-group-items>button[data-nav-key]{padding:8px 2px;gap:4px;min-height:60px;border-radius:0}
 #main-navigation .nav-primary .sidebar-group-items .nav-item-copy{font-size:0}
 #main-navigation .nav-primary .sidebar-group-items button[data-nav-key].selected{background:var(--accent-soft);box-shadow:inset 0 2px var(--accent)}
 #main-navigation #mobile-more-menu .sidebar-nav-group{margin:0 0 12px}
 #main-navigation #mobile-more-menu button[data-nav-key]{min-height:44px}
 .portal-intro{grid-template-columns:1fr;padding:22px;gap:0;margin-bottom:20px}
 .portal-intro h2{font-size:20px}.portal-intro p{font-size:12px}.portal-intro-mark{display:none}
 .portal-modules{grid-template-columns:minmax(0,1fr);gap:14px}
 .portal-module-card:last-child{grid-column:auto}
 .portal-module-card{padding:22px;gap:16px}.portal-module-card>p{min-height:0}
 .portal-locked{padding:22px}
 .panel-heading{padding:15px 16px;flex-wrap:wrap}.panel-foot{padding:12px 16px}
 .stats article,.edge-stats article{padding:16px}
 .login{padding:84px 16px 32px;min-height:100dvh}.login-form{padding:26px;max-width:420px}
 .portal-module-card>header{padding:0}
 .link-performance-card>header,:root[data-theme] .link-performance-card>header{padding:14px;gap:8px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Explicit interaction states also override the older, more specific NOC selectors. */
#main-navigation button[data-nav-key].selected{background:var(--accent-soft);color:var(--accent);box-shadow:inset 2px 0 var(--accent)}
.noc-client-nav>button.selected,.noc-incident-filters button.selected,.noc-company-tabs button.selected{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}
.noc-client-nav>button:hover,.noc-incident-filters button:hover,.noc-company-tabs button:hover{background:var(--surface-card-hover);color:var(--text-primary)}
.noc-client-nav{border-color:var(--border-subtle)}
.noc-kpi span i{border-color:var(--border-default);background:var(--surface-sunken);color:var(--text-secondary)}
.flow-pilot .flow-dimensions button[aria-pressed=true],.flow-dimensions button[aria-pressed=true],.flow-periods button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border);box-shadow:none}
.flow-analysis .flow-toolbar{padding:18px 20px;gap:14px;background:var(--surface-sunken);border-block:1px solid var(--border-subtle)}
.flow-analysis .flow-toolbar label{font-size:12px;gap:7px}
.flow-analysis .flow-toolbar select{font-size:12px}
.flow-analysis-head{background:var(--surface-card);border-color:var(--border-subtle)}
.flow-kpis article>span{font-size:11px;color:var(--text-secondary)}
.flow-kpis article>small{font-size:11px;line-height:1.8;color:var(--text-tertiary)}
.flow-pilot .flow-scope-note,.flow-scope-note{background:var(--surface-card);color:var(--text-secondary);border-color:var(--border-default);font-size:11px;line-height:1.8}
.flow-pilot .flow-pilot-error{padding:16px;border:1px solid var(--status-critical);background:var(--status-critical-bg);color:var(--status-critical);border-radius:10px;font-size:12px;line-height:1.8}
.flow-chart-empty{background:var(--surface-sunken);color:var(--text-secondary);border:1px dashed var(--border-default);border-radius:10px;line-height:1.8}
.flow-chart-empty strong{color:var(--text-primary)}
.flow-analysis .flow-data-note,.flow-chart-note,.flow-pilot .flow-empty{font-size:11px;line-height:1.8;color:var(--text-secondary)}
.flow-security-heading p,.flow-security-scan p,.flow-security-empty{font-size:12px;line-height:1.8}
.flow-security-items small,.flow-security-scan small,.flow-security-timeline-note{font-size:11px;line-height:1.8}
.flow-security-badge{font-size:10px;white-space:normal;line-height:1.7}
.flow-security-card h3>span{background:var(--surface-sunken);border-color:var(--border-default);color:var(--accent)}
.flow-security{--signal:var(--status-success)}
.flow-security.is-unavailable,.flow-security.is-loading,.flow-security.is-partial{--signal:var(--text-tertiary)}
.flow-security.is-warning{--signal:var(--status-medium)}
:root[data-theme] .flow-map-land.is-selected,:root[data-theme] .flow-brazil-state.is-selected{fill:color-mix(in srgb,var(--accent) 30%,var(--surface-track));stroke:var(--accent)}
:root[data-theme] .flow-map-connection.download{stroke:var(--link-download)}
:root[data-theme] .flow-map-connection.upload{stroke:var(--link-upload)}
:root[data-theme] .flow-map-pin,:root[data-theme] .flow-brazil-pin,:root[data-theme] .flow-vega-star{fill:var(--accent)}
:root[data-theme] .flow-map-halo{fill:var(--accent-soft);stroke:var(--accent-border)}
:root[data-theme] .flow-map-country-list button.is-selected,:root[data-theme] .flow-map-country-list button:hover,:root[data-theme] .flow-brazil-city-focus{background:var(--accent-soft);border-color:var(--accent-border);color:var(--text-primary)}
:root[data-theme] .flow-brazil-label.is-active{fill:var(--accent)}
@media(max-width:700px){
 #main-navigation .nav-primary .sidebar-group-items button[data-nav-key].selected{box-shadow:inset 0 2px var(--accent)}
 .flow-analysis .flow-toolbar{padding:14px;gap:12px}
}
@media(max-width:700px){
 aside{height:0}
 aside>.brand{position:fixed;top:18px;left:14px;z-index:35;height:22px;width:auto;margin:0;padding:0;gap:10px}
 aside>.brand .vega-logo{width:74px}
 aside>.brand .product-name{font-size:8px;padding-left:10px}
 .workspace>header .header-right{width:auto;margin-left:auto;justify-content:flex-end}
 main header>div:first-child{display:block;white-space:normal;overflow:visible}
 .portal-module-card>header>div:first-child{display:flex}
 .link-performance-card>header>div:first-child{display:block}
 .skip-link{z-index:1000}
}
/* Series and map direction colors are data keys, never alarm indicators. */
.flow-donut-callout text,.flow-category-legend button,.flow-legend{color:var(--text-secondary)}
.link-performance-card>footer{background:var(--surface-sunken)}
.link-performance-card>footer .ghost{font-size:11px;min-height:34px;color:var(--accent)}
.flow-map-land{fill:var(--surface-raised);stroke:var(--border-strong)}
.flow-map-land.is-active,.is-brazil .flow-map-land.is-active{fill:color-mix(in srgb,var(--surface-raised) 76%,var(--accent));stroke:var(--accent)}
.flow-vega-star{filter:none;stroke:var(--surface-card)}
.flow-brazil-origin circle:first-child{fill:var(--accent-soft);stroke:var(--accent-border)}
.flow-brazil-origin circle:nth-child(2){fill:var(--accent)}

/* Round 2 · operational hierarchy, quiet depth and compact work surfaces. */
:root,:root[data-theme=dark]{
 --surface-page:#0b111b;--surface-shell:#0e1622;--surface-card:#131f2e;--surface-card-hover:#19283a;
 --surface-sunken:#0e1826;--surface-raised:#1c2b3f;--border-subtle:#26364a;--border-default:#3a4d63;
 --elev-card:inset 0 1px 0 #ffffff03,0 4px 20px #0000000a;
 --accent-wash:rgba(85,217,237,.055);--status-low:var(--text-tertiary);
}
:root[data-theme=light]{--accent-wash:rgba(0,117,138,.035);--status-low:var(--text-tertiary)}
body{transition:background-color .18s ease,color .18s ease}
.workspace>header,aside,.panel,input,select,textarea{transition:background-color .18s ease,border-color .18s ease,color .18s ease}
main{padding-top:28px}
#main-navigation button[data-nav-key]{transition:background-color .14s ease,color .14s ease,box-shadow .14s ease}
#main-navigation button[data-nav-key]:hover{background:var(--surface-card-hover)}
#main-navigation .nav-icon{stroke-width:1.6}
#main-navigation button.nav-locked{background:transparent;border:0;color:var(--text-secondary);gap:10px}
#main-navigation button.nav-locked .nav-icon{width:15px;height:15px;opacity:.8}
#main-navigation button.nav-locked .nav-item-copy{flex:1}
#main-navigation .nav-offer-badge{display:inline-flex;align-items:center;padding:3px 6px;border:1px solid var(--accent-border);border-radius:5px;color:var(--accent);background:var(--accent-soft);font-size:9px;line-height:1.4;letter-spacing:.02em}
.sidebar-nav-group.is-locked>.sidebar-group-heading{font-size:9px!important;padding:8px 12px 3px!important;letter-spacing:.13em!important}
#main-navigation [data-nav-group=module-guard] button[data-nav-key]{min-height:35px;padding-block:7px}
#main-navigation [data-nav-group=module-guard] .nav-item-copy{font-size:11px}
.home-page-title{align-items:center;margin-bottom:24px}
.home-page-title h1{font-size:30px;line-height:1.15;margin-bottom:6px}
.home-page-title .eyebrow{font-size:9px;letter-spacing:.17em;margin-bottom:8px}
.home-page-title p{font-size:12px}
.home-update{display:flex;align-items:center;gap:16px}
.home-update .hint{font-size:11px;white-space:nowrap}
.home-update .ghost{min-height:36px}
.home-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}
.home-source{position:relative;min-width:0;padding:20px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-card);box-shadow:var(--elev-card)}
.home-source:first-child::before{content:'';position:absolute;left:20px;right:20px;top:-1px;height:1px;background:var(--accent);opacity:.65;box-shadow:0 0 16px 1px var(--accent-wash);pointer-events:none}
.home-source-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.home-source-title{display:flex;gap:10px;align-items:center}
.home-source-title .portal-module-icon{width:34px;height:34px;border-radius:9px;background:var(--surface-sunken);border-color:var(--border-subtle)}
.home-source-title .portal-module-icon svg{width:19px;height:19px}
.home-source-title .eyebrow{font-size:9px;letter-spacing:.14em}
.home-source-title h2{font-size:14px;font-weight:600;line-height:1.5;margin:0}
.home-source .lyra-chip{font-size:10px;padding:3px 8px;min-height:23px;margin:0}
.home-source-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.home-source-facts>span{display:flex;flex-direction:column;gap:4px;min-width:0}
.home-source-facts small{font-size:10px;color:var(--text-tertiary)}
.home-source-facts strong{font:500 20px/1.3 var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.home-source-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px;border-top:1px solid var(--border-subtle)}
.home-reading{font-size:10px;color:var(--text-secondary);line-height:1.6}
.home-reading::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--status-success);margin-right:6px;vertical-align:middle}
.home-reading.is-missing{color:var(--text-tertiary)}
.home-reading.is-missing::before{background:transparent;border:1px solid var(--text-tertiary);border-radius:1px}
.home-inline-action{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;padding:0;background:transparent;border:0;color:var(--accent);font:500 11px/1.5 var(--font);cursor:pointer}
.home-inline-action:hover{color:var(--text-primary)}
.home-priority-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:16px;margin-bottom:24px}
.home-attention,.home-guard-summary{padding:20px}
.home-section-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;font-size:9px;font-weight:500;color:var(--text-secondary);letter-spacing:.1em}
.home-section-kicker>span:last-child{font-size:8px;color:var(--text-tertiary);white-space:nowrap}
.home-attention-total{display:flex;align-items:center;gap:16px;margin-bottom:20px;min-height:64px}
.home-attention-total>strong{font-size:44px;line-height:1;font-weight:500;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.home-attention-total h2{font-size:14px;line-height:1.5}
.home-attention-total p{font-size:11px;color:var(--text-tertiary);margin:5px 0 0}
.home-attention-total .ghost{margin-left:auto;font-size:10px;min-height:32px;padding:0 10px}
.home-severities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.home-severity{display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--border-subtle);padding-right:8px}
.home-severity:last-child{border:0}
.home-severity>span{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-secondary)}
.home-severity>span::before{content:'';width:5px;height:5px;border-radius:1px;background:var(--severity-color,var(--text-tertiary))}
.home-severity>strong{font:500 23px/1.3 var(--font);letter-spacing:-.04em;color:var(--severity-color,var(--text-primary))}
[data-severity=critical]{--severity-color:#ff8994}
[data-severity=high]{--severity-color:#ffad69}
[data-severity=medium]{--severity-color:#f5d889}
[data-severity=low],[data-severity=unknown]{--severity-color:#aebaca}
:root[data-theme=light] [data-severity=critical]{--severity-color:#b52e43}
:root[data-theme=light] [data-severity=high]{--severity-color:#a44208}
:root[data-theme=light] [data-severity=medium]{--severity-color:#795700}
:root[data-theme=light] [data-severity=low],:root[data-theme=light] [data-severity=unknown]{--severity-color:#596579}
.home-scope{font-size:10px;line-height:1.8;color:var(--text-tertiary);margin:12px 0 0}
.home-guard-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 20px}
.home-guard-numbers>div{display:flex;flex-direction:column;gap:6px}
.home-guard-numbers strong{font-size:32px;line-height:1.35;font-weight:500;letter-spacing:-.04em}
.home-guard-numbers span{font-size:11px;color:var(--severity-color,var(--text-secondary))}
.home-guard-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--border-subtle);font-size:11px;color:var(--text-secondary)}
.home-detail-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:16px;margin-bottom:24px;align-items:start}
.home-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;border-bottom:1px solid var(--border-subtle)}
.home-panel-head .eyebrow{font-size:8px;letter-spacing:.15em;display:block;margin-bottom:6px}
.home-panel-head h2{font-size:14px;margin:0;font-weight:600}
.home-muted{font-size:9px;color:var(--text-tertiary)}
.home-event{display:flex;align-items:center;gap:12px;padding:16px 20px;width:100%;text-align:left;background:transparent;color:var(--text-primary);border:0;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background-color .14s ease}
.home-event:hover{background:var(--surface-card-hover)}
.home-event:last-child{border-bottom:0}
.home-event-mark{display:grid;place-items:center;align-self:flex-start;flex:none;width:28px;height:28px;border-radius:7px;background:color-mix(in srgb,var(--severity-color) 10%,transparent);border:1px solid color-mix(in srgb,var(--severity-color) 25%,transparent);color:var(--severity-color);font:500 13px var(--mono)}
.home-event-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.home-event-copy>strong{font-size:12px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}
.home-event-copy>small{font-size:10px;line-height:1.7;color:var(--text-tertiary)}
.home-event-state{font-size:9px;color:var(--text-secondary);line-height:1.7}
.home-event-state b{font-weight:500;color:var(--severity-color)}
.home-event-time{display:flex;align-items:center;gap:16px;margin-left:auto;flex:none;font-size:10px;color:var(--text-tertiary)}
.home-event-time>span{font-size:14px}
.home-panel-foot{padding:12px 20px;font-size:9px;line-height:1.8;color:var(--text-tertiary);border-top:1px solid var(--border-subtle);background:var(--surface-sunken)}
.home-response-list{margin:0;padding:4px 20px}
.home-response-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}
.home-response-list>div:last-child{border-bottom:0}
.home-response-list dt{font-size:11px;color:var(--text-secondary);line-height:1.6}
.home-response-list dd{font-size:16px;font-weight:500;margin:0;color:var(--severity-color,var(--text-primary))}
.home-response-note{font-size:10px;line-height:1.8;color:var(--text-tertiary);padding:0 20px;margin:8px 0 12px}
.home-response>.home-inline-action{margin:0 20px 16px}
.home-empty{padding:40px 24px;text-align:center;max-width:540px;margin:auto}
.home-empty>span{display:grid;place-items:center;width:40px;height:40px;margin:0 auto 16px;border:1px dashed var(--border-default);border-radius:10px;color:var(--text-tertiary)}
.home-empty h3{font-size:14px;font-weight:500;margin:0 0 8px}
.home-empty p{font-size:12px;line-height:1.8;color:var(--text-secondary);margin:0}
.home-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}
.home-offer{border:1px dashed var(--border-default);border-radius:12px;padding:20px;background:var(--surface-sunken)}
.home-offer-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.home-offer-heading .portal-module-icon{width:30px;height:30px;color:var(--text-secondary);background:transparent;border-color:var(--border-default)}
.home-offer-heading h2{font-size:14px;flex:1}
.home-offer-badge{font-size:9px;padding:3px 7px;border:1px solid var(--border-default);border-radius:5px;color:var(--text-secondary);line-height:1.5}
.home-offer p{font-size:12px;line-height:1.85;color:var(--text-secondary);margin:14px 0}
.home-offer .home-inline-action{min-height:32px}
/* Skeletons convey layout without generating metric-like placeholders. */
.skeleton-card{display:flex;flex-direction:column;gap:16px;padding:24px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-card);min-height:172px}
.skeleton-card i{display:block;border-radius:5px;height:12px;width:62%;background:var(--surface-track);animation:portal-skeleton 1.8s ease-in-out infinite}
.skeleton-card i:nth-child(2){width:42%;height:28px}.skeleton-card i:last-child{width:82%}
.skeleton-wide{min-height:260px}
@keyframes portal-skeleton{50%{opacity:.4}}
#view-home [aria-busy=true] .home-source{opacity:.6}
/* Operational tables: compact rows with stable headers inside their own viewport. */
.table-wrap,.table-scroll{max-height:640px}
.table-wrap thead th,.table-scroll thead th{position:sticky;top:0;z-index:2;background:var(--surface-sunken);box-shadow:0 1px 0 var(--border-subtle)}
.table-wrap td,.table-scroll td{padding-block:10px}
@media(min-width:701px){.home-source-grid:has(>.home-source:only-child){grid-template-columns:minmax(0,1fr)}.home-priority-grid:not(:has(.home-guard-summary)){grid-template-columns:1fr}}
@media(max-width:1150px){.home-priority-grid{grid-template-columns:minmax(0,1fr)}.home-source-head{align-items:flex-start;gap:8px}.home-source-title h2{font-size:13px}.home-source{padding:16px}.home-attention-total .ghost{white-space:normal}.home-detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}}
@media(max-width:900px){.home-source-grid{grid-template-columns:minmax(0,1fr)}.home-source{padding:18px}.home-source-head{margin-bottom:16px;align-items:center}.home-source-facts{margin-bottom:12px}.home-detail-grid{grid-template-columns:minmax(0,1fr)}.home-update{flex-direction:column;align-items:flex-end;gap:8px}.home-source-title h2{font-size:14px}}
@media(max-width:700px){
 .home-page-title{align-items:flex-start;margin-bottom:20px}.home-page-title h1{font-size:26px}.home-page-title .eyebrow{font-size:8px}.home-page-title p{font-size:11px;max-width:32ch}.home-update{width:100%;flex-direction:row-reverse;justify-content:space-between;align-items:center}.home-update .ghost{font-size:11px;min-height:36px}
 .home-source-grid{gap:12px;margin-bottom:16px}.home-source-facts strong{font-size:20px}.home-source-title .portal-module-icon{width:32px;height:32px}
 .home-priority-grid,.home-detail-grid{gap:16px;margin-bottom:16px}.home-attention,.home-guard-summary{padding:18px}.home-section-kicker{flex-wrap:wrap;gap:8px;font-size:9px}.home-section-kicker>span:last-child{font-size:8px}
 .home-attention-total{gap:12px;flex-wrap:wrap}.home-attention-total>strong{font-size:40px}.home-attention-total>div{flex:1;min-width:150px}.home-attention-total h2{font-size:13px}.home-attention-total .ghost{width:100%;margin:0;min-height:36px}.home-severity>strong{font-size:22px}.home-severity>span{font-size:10px}.home-scope{font-size:10px}
 .home-panel-head{padding:18px;flex-wrap:wrap}.home-panel-head h2{font-size:14px}.home-muted{font-size:9px}.home-event{padding:16px;gap:10px;align-items:flex-start}.home-event-copy>strong{font-size:12px}.home-event-time{font-size:9px;gap:8px;flex-direction:column;align-items:flex-end}.home-event-mark{width:24px;height:24px}.home-event-state{font-size:9px}
 .home-offers{grid-template-columns:1fr;gap:12px}.home-offer-heading h2{flex:none}.home-offer-badge{margin-left:auto}.home-offer{padding:18px}.home-guard-bottom{font-size:10px}.home-guard-numbers strong{font-size:30px}.home-inline-action{min-height:32px}
 #main-navigation .nav-offer-badge{display:inline-flex;font-size:9px;min-width:0;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.skeleton-card i{animation:none}}
.home-source{padding:16px 20px}
.home-source-head{margin-bottom:12px}
.home-source-facts{margin-bottom:12px}
.home-source-facts strong{font-size:19px}
.home-source-foot{padding-top:10px}
.home-attention-total{min-height:52px;margin-bottom:16px}
.home-severities{padding-block:10px}
@media(min-width:701px) and (max-width:900px){.home-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-source:last-child{grid-column:1/-1}}
@media(max-width:700px){
 .home-source-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;gap:12px;padding-bottom:8px;overscroll-behavior-inline:contain}
 .home-source{flex:0 0 calc(100% - 24px);padding:16px;scroll-snap-align:start}
 .home-source:only-child{flex-basis:100%}
 .home-source-head{margin-bottom:12px;gap:8px}
 .home-source-facts{margin-bottom:10px}
 .home-source .lyra-chip{font-size:9px;padding:3px 6px}
 .home-source-title h2{font-size:13px}
 .home-source-title .eyebrow{font-size:8px}
 .home-source-title .portal-module-icon{width:28px;height:28px}
 .home-source-foot .home-reading{font-size:9px}
}
.module-skeleton{min-height:140px;margin:0}
#noc-flow-analysis>.module-skeleton{min-height:320px}
#lyra-appliances>.module-skeleton{grid-column:1/-1}
@media(max-width:700px){
 .home-offer-heading{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px 10px}
 .home-offer-badge{grid-column:1/-1;justify-self:start;margin-left:0}
 .home-skeleton .home-source-grid>.skeleton-card{flex:0 0 calc(100% - 24px)}
}
.home-case-list{margin:4px 20px 12px;padding-top:8px;border-top:1px solid var(--border-subtle)}
.home-case{display:flex;flex-direction:column;gap:5px;padding:8px 0}
.home-case strong{font-size:11px;font-weight:500;line-height:1.7;overflow-wrap:anywhere}
.home-case span{font-size:10px;color:var(--text-secondary)}
.home-case small{font-size:9px;color:var(--severity-color,var(--text-tertiary))}
@media(max-width:700px){
 .home-source-grid::-webkit-scrollbar{height:3px}
 .home-source-grid::-webkit-scrollbar-thumb{border:0;background:var(--border-strong);border-radius:4px}
}

/* REL-V: period report workbench, aligned to the portal report and wiki print system. */
.network-period-workbench{margin:0 0 30px}.network-period-workbench>.section-heading{margin-bottom:10px}.network-period-form{grid-template-columns:1.25fr .9fr 1fr 1fr auto;gap:12px;align-items:end}.network-period-workbench .section-heading h3{margin:0}.network-period-workbench #network-report-error{min-height:0}.network-period-workbench #network-report-error:empty{display:none}.network-period-workbench td small{display:block;color:var(--muted);margin-top:3px}.network-period-workbench .table-scroll{margin-top:9px}.network-period-workbench #network-report-rows[aria-busy="true"]{opacity:.75}
@media(max-width:900px){.network-period-form{grid-template-columns:repeat(2,minmax(0,1fr))}.network-period-form button{width:max-content}}
@media(max-width:600px){.network-period-form{grid-template-columns:1fr}.network-period-form button{width:100%}}

/* UI-1 · cabeçalho, ações e estados compartilhados nas telas do Portal. */
.page-title.page-header{align-items:flex-start;gap:24px;margin-bottom:28px}
.page-title.page-header>.page-header-copy{min-width:0;max-width:76ch}
.page-title.page-header>.page-header-copy>.eyebrow{display:block;margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.12em}
.page-title.page-header h1{font-size:clamp(25px,2.3vw,34px);letter-spacing:-.035em}
.page-title.page-header p{max-width:72ch;color:var(--text-secondary);line-height:1.6}
.page-header-tools{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;flex-wrap:wrap;min-width:0}
.page-header-stamp{display:inline-flex;align-items:center;gap:7px;min-height:36px;color:var(--text-tertiary);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.page-header-stamp i{width:7px;height:7px;border-radius:50%;background:var(--status-success);box-shadow:0 0 0 3px var(--status-success-bg)}
.page-header-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.page-header-actions>.registry-actions{align-items:center}
.breadcrumb-separator{margin:0 10px;color:var(--text-disabled)}
.page-title.page-header button:not([class]){display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid var(--border-default);border-radius:var(--r-full);background:var(--surface-raised);color:var(--text-primary);font:inherit;font-size:12px;font-weight:600;line-height:1.3;cursor:pointer}
.page-header-actions .badge{align-self:center}
.page-state{display:flex;align-items:flex-start;gap:12px;max-width:100%;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--r-card);background:var(--surface-sunken);color:var(--text-primary)}
.page-state-icon{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border:1px solid var(--border-default);border-radius:50%;color:var(--text-secondary);font-weight:700}
.page-state-error{border-color:color-mix(in srgb,var(--status-critical) 35%,var(--border-subtle));background:var(--status-critical-bg)}
.page-state-error .page-state-icon{color:var(--status-critical);border-color:color-mix(in srgb,var(--status-critical) 40%,transparent)}
.page-state>div{min-width:0;flex:1}
.page-state strong{font-size:13px}
.page-state p{margin:4px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.5}
.report-generator-workspace{padding:0;overflow:hidden}
.report-generator-tabs{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding:8px 12px;border-bottom:1px solid var(--border-subtle);background:var(--surface-sunken);scrollbar-width:thin}
.report-generator-tabs [role=tab]{position:relative;flex:0 0 auto;min-height:42px;padding:0 14px;color:var(--text-secondary);text-decoration:none}
.report-generator-tabs [role=tab][aria-selected=true]{color:var(--text-primary);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-full)}
.report-generator-tabs [role=tab]:focus-visible,.registry-action-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.report-generator-content{padding:20px}
.report-generator-pane[hidden]{display:none}
.report-generator-pane>.reports-form,.report-generator-pane>#network-period-form{margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.report-generator-pane>.report-help{margin:12px 0 0}
.report-generator-pane>.error:empty{display:none}
.report-issued-list{margin-top:20px}
.report-issued-list .table-scroll{margin-top:10px}
.report-issued-list tbody tr:nth-child(even),#view-manage tbody tr:nth-child(even),#view-users tbody tr:nth-child(even),#view-incidents tbody tr:nth-child(even){background:var(--surface-sunken)}
.report-issued-list .table-scroll thead th,#view-manage .table-scroll thead th,#view-users .table-wrap thead th,#view-incidents .table-scroll thead th{position:sticky;top:0;z-index:2;background:var(--surface-raised)}
.registry-row-actions,.registry-device-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.registry-action-menu{position:relative;display:inline-flex}
.registry-action-menu>summary{display:inline-flex;align-items:center;justify-content:center;width:38px;min-height:38px;padding:0;list-style:none;font-size:20px;line-height:1;cursor:pointer}
.registry-action-menu>summary::-webkit-details-marker{display:none}
.registry-action-menu-items{position:absolute;z-index:20;right:0;top:calc(100% + 6px);display:grid;gap:4px;min-width:205px;padding:8px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-raised);box-shadow:var(--elev-popover,0 12px 30px rgba(0,0,0,.22))}
.registry-action-menu-items button{text-align:left;justify-content:flex-start;min-height:34px;padding:0 10px;border:0;border-radius:8px;background:transparent;font-size:12px}
.registry-action-menu-items button:hover{background:var(--surface-sunken)}
.registry-device-actions{padding:14px 20px}
.registry-device-actions .registry-action-menu{margin-left:auto}
@media(max-width:800px){.page-title.page-header{flex-direction:column;gap:12px}.page-header-tools{width:100%;justify-content:space-between;align-items:center}.page-header-actions{justify-content:flex-start}.report-generator-content{padding:16px}.registry-row-actions{flex-wrap:nowrap}.registry-device-actions .registry-action-menu{margin-left:0}}
@media(prefers-reduced-motion:no-preference){.page-header-actions button,.report-generator-tabs [role=tab],.registry-action-menu-items button{transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.registry-action-menu[open]>summary{border-color:var(--accent-border);background:var(--accent-soft)}}
.ghost.danger{background:transparent;border-color:color-mix(in srgb,var(--status-critical) 42%,var(--border-default));color:var(--status-critical)}
.ghost.danger:hover{background:var(--status-critical-bg);border-color:var(--status-critical)}
