:root{
 --bg:#0b0f0c;--panel:#121814;--panel2:#171f19;--line:#253129;--text:#f2f7f3;--muted:#8fa296;
 --green:#2da8ff;--green2:#168bd1;--danger:#ff6b6b;--warning:#ffd166;--input:#0e1410;--sidebar:#0d120f;
 --shadow:0 16px 40px rgba(0,0,0,.15)
}
html[data-theme="light"]{
 --bg:#f4f7f4;--panel:#ffffff;--panel2:#f7faf7;--line:#dbe5dc;--text:#152019;--muted:#6e7e73;
 --green:#168bd1;--green2:#0f6ea8;--danger:#d94c4c;--warning:#b78600;--input:#ffffff;--sidebar:#ffffff;
 --shadow:0 12px 35px rgba(22,50,30,.08)
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);transition:background .18s,color .18s}a{text-decoration:none;color:inherit}.layout{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);padding:26px 18px;background:var(--sidebar);display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 26px}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--green);color:#071009;display:grid;place-items:center;font-weight:900;font-size:22px;box-shadow:0 0 28px rgba(55,227,107,.16)}.brand strong{display:block;letter-spacing:.08em}.brand span{display:block;font-size:12px;color:var(--muted);margin-top:3px}nav{display:flex;flex-direction:column;gap:7px}nav a{padding:12px 14px;border-radius:12px;color:var(--muted);transition:.15s;display:flex;gap:10px;align-items:center}nav a:hover,nav a.active{background:color-mix(in srgb,var(--green) 10%,var(--panel));color:var(--text)}nav a.active{box-shadow:inset 3px 0 0 var(--green)}.nav-icon{width:18px;text-align:center}.sidebar-footer{margin-top:auto;padding:16px 8px;color:var(--muted);font-size:12px}.sidebar-footer span{display:block;margin-top:4px}main{padding:30px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.topbar h1{margin:0;font-size:30px}.topbar p{margin:5px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.user-chip,.theme-button{padding:9px 13px;border:1px solid var(--line)!important;border-radius:999px;color:var(--text)!important;background:var(--panel)!important}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.cards.six{grid-template-columns:repeat(3,1fr)}.card{background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 96%,var(--bg)));border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.metric span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;font-size:27px;margin:10px 0 5px}.metric small{color:var(--muted)}.metric.success strong{color:var(--green)}.metric.danger strong{color:var(--danger)}.metric.warning strong{color:var(--warning)}.small-metric{font-size:16px!important;line-height:1.25}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-title h2,.form-section h2,.info-card h2,.help-box h2,.command-box h2{margin:0;font-size:17px}.section-title p{margin:5px 0 0;color:var(--muted);font-size:13px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}tr:last-child td{border-bottom:0}.muted{font-size:12px;color:var(--muted);margin-top:3px}code{color:var(--green);background:color-mix(in srgb,var(--green) 8%,transparent);padding:2px 5px;border-radius:6px}.badge{display:inline-block;padding:5px 8px;border-radius:999px;border:1px solid var(--line);color:var(--text);font-size:10px;font-weight:800;letter-spacing:.04em}.badge.ativo,.badge.pago,.badge.online,.badge.conectou{background:rgba(55,227,107,.09);border-color:rgba(55,227,107,.3);color:var(--green)}.badge.suspenso,.badge.vencido,.badge.erro,.badge.desconectou{background:rgba(255,107,107,.09);border-color:rgba(255,107,107,.3);color:var(--danger)}.badge.aberto,.badge.nunca_sincronizado{background:rgba(255,209,102,.08);border-color:rgba(255,209,102,.28);color:var(--warning)}.button{border:0;cursor:pointer;border-radius:11px;padding:10px 14px;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center}.button.primary{background:var(--green);color:#071009}.button.primary:hover{filter:brightness(1.08)}.button.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.link{color:var(--green2);font-weight:700;font-size:13px}.toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px;align-items:center}.search{display:flex;gap:8px;max-width:600px;flex:1}input,select,textarea{width:100%;background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:11px;padding:11px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(55,227,107,.08)}textarea{resize:vertical}label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:13px}.form-card{max-width:980px}.form-section{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.form-section:last-of-type{border-bottom:0}.form-section h2{margin-bottom:15px;color:var(--text)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:10px}.check-label{flex-direction:row;align-items:center;gap:9px;padding-top:25px}.check-label input{width:auto}.security-note,.alert{margin-top:14px;padding:12px 14px;border-radius:12px;font-size:13px;line-height:1.5;background:color-mix(in srgb,var(--warning) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--warning) 35%,var(--line));color:var(--text)}.alert.error{background:color-mix(in srgb,var(--danger) 10%,var(--panel));border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.plan-card{position:relative;overflow:hidden}.plan-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--green)}.plan-speed{font-size:34px;font-weight:900;margin-top:7px}.plan-speed small{font-size:14px;color:var(--muted)}.plan-card h2{font-size:15px;color:var(--muted)}.plan-price{font-size:22px;font-weight:900;margin:18px 0}.plan-price small{font-size:11px;color:var(--muted);margin-left:5px}.plan-meta{color:var(--muted);font-size:13px;margin-top:7px}.plan-footer{margin-top:22px;border-top:1px solid var(--line);padding-top:13px;color:var(--muted);font-size:12px}.billing-grid{margin-bottom:18px}.form-stack{display:grid;gap:13px}.info-card{display:flex;flex-direction:column;justify-content:center}.info-card p,.help-box p,.command-box p{color:var(--muted);line-height:1.7}.empty{text-align:center;color:var(--muted);padding:35px}.network-status{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:900;letter-spacing:.05em;margin-right:8px}.network-status i{width:8px;height:8px;border-radius:50%;display:block}.network-status.online{color:var(--green)}.network-status.online i{background:var(--green);box-shadow:0 0 0 4px rgba(55,227,107,.12)}.network-status.offline{color:var(--danger)}.network-status.offline i{background:var(--danger);box-shadow:0 0 0 4px rgba(255,107,107,.10)}.client-name-line{display:flex;align-items:center;gap:4px;white-space:nowrap}.monitor-strip{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:18px;color:var(--muted);font-size:13px;box-shadow:var(--shadow)}.monitor-strip>div{display:flex;align-items:center;gap:8px;color:var(--text)}.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(55,227,107,.10)}.server-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.server-card{display:block;transition:transform .15s,border-color .15s}.server-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.server-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.server-top>div{display:flex;align-items:center;gap:8px}.server-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--muted)}.server-dot.online{background:var(--green);box-shadow:0 0 0 5px rgba(55,227,107,.10)}.server-dot.error{background:var(--danger);box-shadow:0 0 0 5px rgba(255,107,107,.08)}.server-dot.unknown{background:var(--warning)}.server-host{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);font-size:12px;margin:13px 0}.server-numbers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.server-numbers div{padding:12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}.server-numbers strong{display:block;font-size:24px}.server-numbers span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.server-meta{color:var(--muted);font-size:12px;margin-top:6px}.empty-state{grid-column:1/-1;text-align:center;padding:44px}.server-detail-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.server-title-line{display:flex;align-items:center;gap:10px}.server-title-line h2{margin:0}.server-detail-head p{margin:6px 0 0;color:var(--muted)}.actions{display:flex;gap:8px}.server-metrics{grid-template-columns:repeat(3,1fr)}.top-gap{margin-top:18px}.page-note{color:var(--muted);margin:0}
@media(max-width:1100px){.cards.six{grid-template-columns:repeat(2,1fr)}.server-grid{grid-template-columns:repeat(2,1fr)}.plan-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.layout{grid-template-columns:84px 1fr}.sidebar{padding:22px 10px}.brand>div:last-child,.sidebar-footer,nav a span:last-child{display:none}.brand{justify-content:center}.brand-mark{width:40px;height:40px}.nav-icon{width:auto}.sidebar nav a{justify-content:center;font-size:20px}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.layout{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px}.brand{display:none}.sidebar nav{flex-direction:row;overflow:auto}.sidebar nav a{font-size:13px;padding:9px 12px}.sidebar nav a span:last-child{display:block}.nav-icon{display:none}main{padding:16px}.topbar{align-items:flex-start}.topbar h1{font-size:25px}.user-chip{display:none}.cards,.cards.six,.server-metrics,.grid-2,.server-grid,.plan-grid,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.toolbar,.server-detail-head,.monitor-strip{align-items:stretch;flex-direction:column}.search{max-width:none}.actions{flex-wrap:wrap}.theme-button{white-space:nowrap}}

.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.detail-grid>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.detail-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.detail-grid strong{font-size:13px}.form-stack{display:grid;gap:13px}pre{white-space:pre-wrap;word-break:break-word;background:var(--input);border:1px solid var(--line);padding:12px;border-radius:10px;font-size:12px;max-width:760px}@media(max-width:700px){.detail-grid{grid-template-columns:1fr}}

/* CORE ISP v0.3 - autenticação e usuários */
.user-menu{display:flex;align-items:center;gap:8px}.user-chip{display:flex;flex-direction:column;gap:1px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);min-width:120px}.user-chip strong{font-size:12px}.user-chip span{font-size:9px;color:var(--muted);letter-spacing:.08em}.logout-btn{padding:9px 11px}.row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.button:disabled{opacity:.4;cursor:not-allowed}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-shell{width:min(420px,100%)}.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:22px}.login-brand strong{display:block;font-size:20px;letter-spacing:.08em}.login-brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.login-card{display:grid;gap:15px;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 20px 70px rgba(0,0,0,.22)}.login-card h1{margin:0;font-size:27px}.login-card p{margin:-5px 0 4px;color:var(--muted);font-size:13px}.login-card small{color:var(--muted);line-height:1.5}.login-submit{width:100%;padding:12px}.login-error{padding:11px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--red),transparent 55%);background:color-mix(in srgb,var(--red),transparent 90%);color:var(--red);font-size:12px;font-weight:700}
@media(max-width:760px){.user-menu .user-chip{display:none}.logout-btn{padding:8px 10px}}

/* CORE ISP v0.4 - identidade visual e exportações */
.brand-with-logo{gap:10px}.brand-logo{width:54px;height:44px;object-fit:contain;flex:0 0 auto}.brand-copy{min-width:0}.brand-copy strong{white-space:nowrap}.brand-copy span{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.provider-name{display:inline-flex;margin-top:8px;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:11px;font-weight:700}.appearance-preview{min-height:300px;border:1px dashed var(--line);border-radius:16px;background:var(--panel2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px}.appearance-preview img{width:min(310px,85%);max-height:190px;object-fit:contain;margin-bottom:18px}.appearance-preview strong{font-size:24px;letter-spacing:.05em}.appearance-preview span{margin-top:7px;font-size:15px;color:var(--text)}.appearance-preview small{margin-top:5px;color:var(--muted)}.appearance-note{margin-top:14px;line-height:1.5}.check-row{flex-direction:row;align-items:center;gap:9px}.check-row input{width:auto}.flash{padding:11px 13px;border-radius:11px;margin-bottom:16px;border:1px solid var(--line)}.flash.success{background:color-mix(in srgb,var(--green) 10%,var(--panel));border-color:color-mix(in srgb,var(--green) 30%,var(--line));color:var(--text)}.login-brand-logo img{width:112px;height:78px;object-fit:contain}.login-brand-logo{flex-direction:column;text-align:center}.login-brand-logo div{margin-top:-8px}
@media(max-width:900px){.brand-with-logo .brand-logo{width:48px;height:40px}.brand-with-logo{padding-left:0;padding-right:0}.toolbar-actions{width:auto}}
@media(max-width:700px){.toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.toolbar-actions .button.primary{grid-column:1/-1}.appearance-grid{grid-template-columns:1fr}}

/* CORE ISP v0.5 - estoque first */
.stock-cards{grid-template-columns:repeat(4,1fr)}
.stock-search{max-width:850px;display:grid;grid-template-columns:minmax(260px,1fr) 180px auto}
.badge.desativada{color:var(--muted)}
.badge.planejada{color:var(--warning)}
@media(max-width:1000px){.stock-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.stock-cards{grid-template-columns:1fr}.stock-search{display:grid;grid-template-columns:1fr;max-width:none}}

/* CORE ISP v0.6 - multi-POP / CGNAT */
.server-numbers{grid-template-columns:repeat(3,1fr)}
.dashboard-server .server-numbers{grid-template-columns:repeat(3,1fr)}
.server-summary{grid-template-columns:repeat(4,1fr)!important}
.client-search{max-width:850px}
.client-search input{min-width:260px}
.client-search select{min-width:220px}
.badge.removido{background:rgba(255,107,107,.09);border-color:rgba(255,107,107,.3);color:var(--danger)}
.badge.atual{background:rgba(55,227,107,.09);border-color:rgba(55,227,107,.3);color:var(--green)}
@media(max-width:1100px){.server-summary{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:700px){.server-numbers,.dashboard-server .server-numbers,.server-summary{grid-template-columns:1fr!important}.client-search input,.client-search select{min-width:0}}


/* CORE ISP v0.7 */
.button.danger{
  background:transparent;
  border-color:var(--red,#ff6577);
  color:var(--red,#ff6577);
}
.button.danger:hover{
  background:color-mix(in srgb,var(--red,#ff6577),transparent 88%);
}
.danger-zone{
  border-color:color-mix(in srgb,var(--red,#ff6577),transparent 55%);
  max-width:970px;
}

/* CORE ISP v0.8 - piloto: clientes, diagnósticos e busca */
:root{--status-online:#20c96b;--status-offline:#ef4d5e}
@keyframes coreisp-led-pulse{0%,100%{opacity:1;transform:scale(1);filter:brightness(1)}50%{opacity:.45;transform:scale(.82);filter:brightness(.8)}}
.network-status.online{color:var(--status-online)}
.network-status.online i{background:var(--status-online);box-shadow:0 0 0 4px color-mix(in srgb,var(--status-online) 16%,transparent);animation:coreisp-led-pulse 2.4s ease-in-out infinite}
.network-status.offline{color:var(--status-offline)}
.network-status.offline i{background:var(--status-offline);box-shadow:0 0 0 4px color-mix(in srgb,var(--status-offline) 14%,transparent);animation:coreisp-led-pulse 2.4s ease-in-out infinite}
.server-dot.online{background:var(--status-online);box-shadow:0 0 0 5px color-mix(in srgb,var(--status-online) 14%,transparent);animation:coreisp-led-pulse 2.4s ease-in-out infinite}
.server-dot.error{background:var(--status-offline);box-shadow:0 0 0 5px color-mix(in srgb,var(--status-offline) 12%,transparent);animation:coreisp-led-pulse 2.4s ease-in-out infinite}
.dashboard-search{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(280px,1fr) auto;gap:14px;align-items:center;margin-bottom:18px}
.dashboard-search div{display:flex;flex-direction:column;gap:4px}.dashboard-search div span{color:var(--muted);font-size:12px}.metric-link{display:block;transition:transform .15s,border-color .15s}.metric-link:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.client-search{max-width:1100px;display:grid;grid-template-columns:minmax(220px,1fr) 220px 170px auto}.client-actions{display:flex;gap:9px;align-items:center;justify-content:flex-end;margin-bottom:16px;flex-wrap:wrap}.client-actions form{margin:0}
.diagnostic-cards{grid-template-columns:repeat(4,1fr)!important}.diagnostic-card{display:flex;flex-direction:column;gap:8px}.diagnostic-card>span{font-size:12px;color:var(--muted)}.diagnostic-card>strong{font-size:16px;line-height:1.35}.diagnostic-card>span+strong+span{font-size:11px;color:var(--muted)}.diagnostic-card .card-actions{margin-top:auto}
.notes-box{white-space:pre-wrap;line-height:1.65;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:15px;min-height:70px}
.search-result{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);transition:background .15s}.search-result:last-child{border-bottom:0}.search-result:hover{background:color-mix(in srgb,var(--green) 6%,transparent)}.search-result>div{display:flex;flex-direction:column;gap:4px;min-width:0}.search-result strong{font-size:14px}.search-result span{font-size:11px;color:var(--muted)}.asset-icon{width:28px;height:28px;display:grid!important;place-items:center;border-radius:8px;background:var(--panel2);border:1px solid var(--line);color:var(--green)!important;flex:0 0 auto}
@media(max-width:1100px){.diagnostic-cards{grid-template-columns:repeat(2,1fr)!important}.dashboard-search{grid-template-columns:1fr 1fr}.dashboard-search div{grid-column:1/-1}.client-search{grid-template-columns:1fr 1fr}.client-search input{grid-column:1/-1}}
@media(max-width:700px){.dashboard-search,.client-search,.diagnostic-cards{grid-template-columns:1fr!important}.dashboard-search div,.client-search input{grid-column:auto}.client-actions{justify-content:stretch}.client-actions .button,.client-actions form,.client-actions form button{width:100%}}

/* CORE ISP v0.9 - serviço, saúde e backups */
.system-health-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:15px 18px}
.system-health-banner>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.system-health-banner strong{font-size:14px}.system-health-banner small{color:var(--muted);font-size:11px;width:100%;margin-left:20px}
.system-health-banner.health-ok{border-color:color-mix(in srgb,var(--status-online) 28%,var(--line))}
.system-health-banner.health-error{border-color:color-mix(in srgb,var(--status-offline) 40%,var(--line))}
.badge.ok{background:color-mix(in srgb,var(--status-online) 10%,var(--panel));border-color:color-mix(in srgb,var(--status-online) 35%,var(--line));color:var(--status-online)}
.badge.parado,.badge.sem-resposta{background:color-mix(in srgb,var(--status-offline) 9%,var(--panel));border-color:color-mix(in srgb,var(--status-offline) 30%,var(--line));color:var(--status-offline)}
@media(max-width:700px){.system-health-banner{align-items:stretch;flex-direction:column}.system-health-banner .button{width:100%}.system-health-banner small{margin-left:0}}

/* CORE ISP v1.0 - monitor óptico Furukawa */
.signal{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:800;white-space:nowrap}
.signal.good{color:var(--status-online);border-color:color-mix(in srgb,var(--status-online) 35%,var(--line));background:color-mix(in srgb,var(--status-online) 8%,var(--panel))}
.signal.warning{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,var(--line));background:color-mix(in srgb,var(--warning) 8%,var(--panel))}
.signal.critical{color:var(--status-offline);border-color:color-mix(in srgb,var(--status-offline) 38%,var(--line));background:color-mix(in srgb,var(--status-offline) 8%,var(--panel))}
.signal.unknown{color:var(--muted)}
.metric-small{font-size:17px!important;line-height:1.25;word-break:break-word}
.olt-mini-card{display:block;transition:transform .15s,border-color .15s}.olt-mini-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.compact-error{margin-top:12px;font-size:12px;line-height:1.35;word-break:break-word}


/* CORE ISP v1.0.5 - gráficos e estoque mínimo */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.dashboard-charts{margin:18px 0}.chart-bars{display:grid;gap:14px}.chart-bar-row{display:grid;gap:7px}.chart-bar-label{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.chart-bar-label strong{color:var(--text)}.chart-bar-track{height:10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);overflow:hidden}.chart-bar-fill{display:block;height:100%;border-radius:999px;background:var(--green);min-width:0}.chart-bar-fill.good{background:var(--status-online)}.chart-bar-fill.bad{background:var(--status-offline)}.chart-bar-fill.warn{background:var(--warning)}.chart-bar-fill.info{background:var(--green)}.chart-bar-fill.muted{background:var(--muted)}.olt-progress-row{display:grid;gap:7px;margin-bottom:13px}.olt-progress-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px}.olt-progress-row span{color:var(--muted)}.signal-chart-wrap{width:100%;overflow-x:auto}.signal-chart{width:100%;min-width:620px;height:auto}.chart-grid{stroke:var(--line);stroke-width:1}.chart-axis{fill:var(--muted);font-size:10px}.chart-line{stroke:var(--green);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--panel);stroke:var(--green);stroke-width:2}.chart-threshold{stroke-width:1.2;stroke-dasharray:6 5}.chart-threshold.low{stroke:var(--status-offline)}.chart-threshold.high{stroke:var(--warning)}.chart-threshold-label{fill:var(--muted);font-size:9px}.chart-empty{padding:34px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.cards.three{grid-template-columns:repeat(3,1fr)}.compact-metrics{margin-top:18px}.compact-metrics .card{padding:15px}.compact-metrics .metric strong{font-size:20px}.stock-low-card{border-color:color-mix(in srgb,var(--warning) 50%,var(--line));margin-bottom:18px}.stock-low-item{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.stock-low-item:last-child{border-bottom:0}.stock-low-item span{color:var(--warning);font-size:12px}.stock-cards-inner{grid-template-columns:repeat(2,1fr);margin:0}.stock-chart-card{height:100%}.stock-alert-pill{display:inline-flex;align-items:center;padding:9px 12px;border-radius:999px;background:color-mix(in srgb,var(--warning) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--warning) 42%,var(--line));color:var(--warning);font-size:12px;font-weight:800;white-space:nowrap}.modal-overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.58);align-items:center;justify-content:center;padding:20px}.stock-modal{width:min(560px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.4)}.stock-modal-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--warning) 15%,var(--panel));font-size:24px}.stock-modal h2{margin:14px 0 6px}.stock-modal p{margin:0 0 16px;color:var(--muted);line-height:1.5}.stock-modal ul{list-style:none;padding:0;margin:0 0 20px;max-height:300px;overflow:auto}.stock-modal li{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.stock-modal li span{font-size:12px;color:var(--warning);text-align:right}.badge.estoque-baixo{background:color-mix(in srgb,var(--warning) 12%,var(--panel));border-color:color-mix(in srgb,var(--warning) 42%,var(--line));color:var(--warning)}
@media(max-width:1100px){.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.grid-3,.cards.three,.stock-cards-inner{grid-template-columns:1fr}.stock-low-item,.stock-modal li{flex-direction:column}.stock-modal li span{text-align:left}.stock-alert-pill{font-size:0}.stock-alert-pill:after{content:'⚠';font-size:14px}}

/* CORE ISP v1.0.6 — optical analytics */
.cards.four{grid-template-columns:repeat(4,1fr)}.cards.five{grid-template-columns:repeat(5,1fr)}.optical-summary{margin:18px 0}.warning-card{border-color:color-mix(in srgb,var(--warning) 42%,var(--line))}.warning-card strong{color:var(--warning)}.optical-dashboard{margin:18px 0}.optical-distribution{display:grid;gap:15px}.optical-dist-row{display:grid;gap:7px}.optical-dist-row>div:first-child{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:12px}.signal-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.signal-dot.critical,.chart-bar-fill.critical{background:var(--status-offline)}.signal-dot.attention,.chart-bar-fill.attention{background:var(--warning)}.signal-dot.good,.chart-bar-fill.good{background:var(--status-online)}.signal-dot.strong,.chart-bar-fill.strong{background:#8b5cf6}.signal-health{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid var(--line)}.signal-health.critical{color:var(--status-offline);background:color-mix(in srgb,var(--status-offline) 10%,var(--panel));border-color:color-mix(in srgb,var(--status-offline) 34%,var(--line))}.signal-health.attention{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--panel));border-color:color-mix(in srgb,var(--warning) 34%,var(--line))}.signal-health.good{color:var(--status-online);background:color-mix(in srgb,var(--status-online) 10%,var(--panel));border-color:color-mix(in srgb,var(--status-online) 34%,var(--line))}.signal-health.strong{color:#a78bfa;background:color-mix(in srgb,#8b5cf6 10%,var(--panel));border-color:color-mix(in srgb,#8b5cf6 34%,var(--line))}.signal-health.unknown{color:var(--muted)}.trend-worse{color:var(--status-offline)!important;font-weight:800}.trend-better{color:var(--status-online)!important;font-weight:800}.range-switch{display:flex;gap:7px;flex-wrap:wrap}.range-switch .button{padding:7px 10px;font-size:11px}.optical-metrics .metric strong{font-size:18px}.optical-metrics .metric small{display:block;margin-top:5px}@media(max-width:1100px){.cards.five{grid-template-columns:repeat(3,1fr)}.cards.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.cards.five,.cards.four{grid-template-columns:1fr}.range-switch{width:100%}}
