/* ===== Integração ACS (⚙ → modal #mAcs) ===== */
.modal .box.acs{width:760px}
.acs-tent{margin:6px 0 8px 18px;padding:0;font-size:12.5px;color:var(--texto)}
.acs-tent li{margin:2px 0}
.acs-raw{margin-top:10px;border:1px solid var(--linha);border-radius:10px;background:var(--papel)}
.acs-raw summary{cursor:pointer;padding:8px 12px;font-size:12px;font-weight:700;color:var(--suave)}
.acs-srv{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--linha);border-radius:10px;padding:9px 12px;margin-bottom:8px;background:var(--branco)}
.acs-srv.off{opacity:.62}
.acs-srv-info{flex:1;min-width:200px}
.acs-srv-nome{font-weight:800;color:var(--tinta);font-size:13.5px}
.acs-srv-sub{font-size:12px;color:var(--suave);margin-top:2px;word-break:break-all}
.acs-srv-tipo{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:6px;background:var(--roxo-bg);color:var(--roxo);margin-left:6px;vertical-align:middle}
.acs-srv-st{font-size:11px;font-weight:800;padding:3px 9px;border-radius:99px;white-space:nowrap}
.acs-srv-st.on{background:var(--verde-bg);color:var(--verde)} .acs-srv-st.off{background:var(--papel);color:var(--suave)}
.acs-srv .btn{padding:5px 10px;font-size:12px}
.acs-srv-vazio{font-size:12.5px;color:var(--suave);margin:2px 0 8px}
/* Wi-Fi: chave "Redes unificadas" */
.cp-ov-uni{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--azul-esc);margin:4px 0 2px;cursor:pointer}
.cp-ov-uni input{width:16px;height:16px} .cp-ov-uni input:disabled{cursor:not-allowed}
/* acesso remoto temporário */
.cp-remoto{display:flex;flex-direction:column;gap:7px;font-size:12px;background:var(--papel);border:1px solid var(--linha);border-left:3px solid var(--azul);color:var(--texto);border-radius:10px;padding:8px 10px;margin-top:8px}
.cp-remoto a{color:var(--azul-esc);font-weight:700;text-decoration:none} .cp-remoto a:hover{text-decoration:underline}
.cp-remoto b{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--azul-esc);background:var(--branco);border:1px solid var(--linha);border-radius:999px;padding:1px 8px}
/* diagnóstico (ping / traceroute / velocidade) */
.cp-ov-caixa.cp-dg{width:min(560px,100%)}
.cp-dg-abas{display:flex;gap:4px;border-bottom:1px solid var(--linha);margin-bottom:10px}
.cp-dg-aba{border:0;background:none;padding:7px 12px;font-weight:700;font-size:13px;color:var(--suave);cursor:pointer;border-bottom:2px solid transparent}
.cp-dg-aba.on{color:var(--azul-esc);border-bottom-color:var(--azul-esc)} .cp-dg-aba:disabled{opacity:.4;cursor:not-allowed}
.cp-dg-linha{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cp-dg-linha input{flex:1;min-width:140px;border:1.5px solid var(--linha);border-radius:8px;padding:8px 9px;font:13px ui-monospace,Consolas,monospace}
.cp-dg-linha select{border:1.5px solid var(--linha);border-radius:8px;padding:7px}
.cp-dg-linha .btn{padding:8px 14px;border-radius:9px;font-weight:700}
.cp-dg-linha>.cp-suave{flex:1}
.cp-dg-res{margin-top:12px;min-height:20px}
/* ping / traceroute no estilo dos cards */
.cp-ov-caixa.cp-dg{width:min(760px,100%)}
.cp-pg{border:1px solid var(--linha);border-radius:12px;padding:14px;background:var(--branco)}
.cp-pg-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cp-pg-head b{font-size:17px;color:var(--tinta)}
.cp-pg-hico{width:36px;height:36px;border-radius:9px;background:#EEF2FF;display:grid;place-items:center}
.cp-pg-hico svg,.cp-dg-linha .btn svg{width:18px;height:18px;fill:none;stroke:#4F46E5;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.cp-dg-linha .btn svg{stroke:currentColor;width:15px;height:15px}
.cp-pg-st{margin-left:auto;font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px}
.cp-pg-st.ok{background:var(--verde-bg);color:var(--verde);border:1px solid #BFE6D3} .cp-pg-st.err{background:var(--vermelho-bg);color:var(--vermelho)} .cp-pg-st.run{background:#EEF2FF;color:#4F46E5}
.cp-pg-lbl{display:block;font-size:12.5px;font-weight:600;color:var(--texto);margin-bottom:4px}
.cp-pg-chips,.cp-pg-lan{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.cp-pg-lan{padding-top:8px;border-top:1px dashed var(--linha)}
.cp-pg-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--linha);background:var(--branco);color:var(--texto);border-radius:99px;padding:4px 11px 4px 5px;font-size:12px;cursor:pointer}
.cp-pg-chip:hover{border-color:#A5B4FC} .cp-pg-chip.on{background:#EEF2FF;border-color:#818CF8;color:#3730A3}
.cp-pg-chip.mais{padding-left:11px;color:var(--suave)}
.cp-pg-chip small{color:var(--suave)}
.cp-pg-ico{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10.5px;font-weight:800;line-height:1;flex:none}
.cp-pg-ico svg{width:14px;height:14px}
.cp-pg-sub{display:flex;gap:6px;margin-top:12px;background:var(--papel);border-radius:9px;padding:3px}
.cp-pg-sub button{flex:1;border:0;background:none;padding:7px;border-radius:7px;font-size:12.5px;color:var(--suave);cursor:pointer}
.cp-pg-sub button.on{background:var(--branco);color:var(--tinta);font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cp-pr-cab{display:flex;align-items:center;gap:9px;font-size:15px;color:var(--tinta);margin:4px 0 12px}
.cp-pr-cab .cp-pg-ico{width:30px;height:30px;font-size:15px;border-radius:7px} .cp-pr-cab .cp-pg-ico svg{width:26px;height:26px}
.cp-pr-cab>.cp-suave{margin-left:auto}
.cp-pr-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cp-pr-card{border:1px solid var(--linha);border-radius:12px;padding:12px 14px;background:var(--branco)}
.cp-pr-rot{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--suave)}
.cp-pr-rot i{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-style:normal;font-size:14px}
.cp-pr-card b{display:block;font-size:28px;line-height:1.1;margin-top:8px;color:var(--tinta);font-variant-numeric:tabular-nums}
.cp-pr-card small{font-size:11.5px;color:var(--suave)}
.cp-pr-card.ok i{background:var(--verde-bg);color:var(--verde)} .cp-pr-card.err i{background:var(--vermelho-bg);color:var(--vermelho)}
.cp-pr-card.neu i{background:var(--papel);color:var(--suave)} .cp-pr-card.info i{background:#EEF2FF;color:#4F46E5}
.cp-pr-card.roxo i{background:var(--roxo-bg);color:var(--roxo)} .cp-pr-card.amb i{background:var(--amber-bg);color:var(--amber)}
.cp-pr-card.err b{color:var(--vermelho)}
.cp-pr-sec{font-size:13.5px;font-weight:700;color:var(--tinta);margin:16px 0 8px}
.cp-pr-ts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cp-pr-t{border-radius:12px;padding:12px;text-align:center;border:1px solid var(--linha)}
.cp-pr-t .cp-pr-rot{justify-content:center}
.cp-pr-t b{display:block;font-size:30px;line-height:1.1;margin-top:6px;color:var(--tinta);font-variant-numeric:tabular-nums} .cp-pr-t small{color:var(--suave);font-size:12px}
.cp-pr-t.min{background:var(--verde-bg);border-color:#BFE6D3} .cp-pr-t.min .cp-pr-rot{color:var(--verde)}
.cp-pr-t.med{background:#EEF2FF;border-color:#C7D2FE} .cp-pr-t.med .cp-pr-rot{color:#4F46E5}
.cp-pr-t.max{background:var(--amber-bg);border-color:#F0DBAE} .cp-pr-t.max .cp-pr-rot{color:var(--amber)}
.cp-pr-regua{margin-top:16px;padding-top:12px;border-top:1px solid var(--linha)}
.cp-pr-rot4,.cp-pr-esc{display:flex;justify-content:space-between;font-size:12px;color:var(--texto)}
.cp-pr-esc{color:var(--suave);font-size:11.5px}
.cp-pr-barra{position:relative;height:8px;border-radius:99px;margin:8px 0;background:linear-gradient(90deg,#1FA971 0%,#7CC75F 33%,#D98A00 66%,#D33A4B 100%);opacity:.85}
.cp-pr-barra i{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #4F46E5;transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(0,0,0,.25)}
@media (max-width:620px){ .cp-pr-cards{grid-template-columns:repeat(2,1fr)} }
html[data-theme="dark"] .cp-pg-hico,html[data-theme="dark"] .cp-pr-t.med,html[data-theme="dark"] .cp-pr-card.info i,html[data-theme="dark"] .cp-pg-chip.on,html[data-theme="dark"] .cp-pg-st.run{background:rgba(99,102,241,.15)}
html[data-theme="dark"] .cp-pr-t.min,html[data-theme="dark"] .cp-pr-t.max{border-color:var(--linha)}
.cp-dg-big{display:inline-flex;flex-direction:column;align-items:flex-start;padding:8px 14px;border-radius:10px;background:var(--papel);margin-right:8px}
.cp-dg-big b{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums} .cp-dg-big small{font-size:11px;color:var(--suave)}
.cp-dg-big.ver b{color:var(--verde)} .cp-dg-big.amb b{color:var(--amber)} .cp-dg-big.verm b{color:var(--vermelho)} .cp-dg-big.cin b{color:var(--suave)}
.cp-dg-vel{display:flex;gap:8px;justify-content:center}
/* velocímetro estilo Ookla (painel escuro em qualquer tema) */
.cp-st{background:none;color:var(--tinta);border-radius:14px;padding:16px 14px 12px;text-align:center;font-family:var(--ff)}
.cp-st-top{display:flex;justify-content:space-around;gap:10px}
.cp-st-col{display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.55;transition:opacity .3s}
.cp-st-col.on,.cp-st.pronto .cp-st-col{opacity:1}
.cp-st-col span{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--tinta)}
.cp-st-col span small{font-weight:400;color:var(--suave);font-size:13px}
.cp-st-col svg,.cp-st-ping svg,.cp-st-unid svg{width:18px;height:18px;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cp-st-col.dl svg,.cp-st-unid svg{stroke:#4DF0E0} .cp-st-col.ul svg,.cp-st.upload .cp-st-unid svg{stroke:#C04CF0}
.cp-st-col b{font-family:"Barlow Condensed",var(--ff);font-weight:600;font-size:30px;line-height:1;min-width:110px;border-bottom:2px solid var(--linha);padding-bottom:4px;font-variant-numeric:tabular-nums}
.cp-st-col b.err{color:#FF6B7D;font-size:20px}
.cp-st-ping{display:flex;align-items:center;justify-content:center;gap:7px;margin:12px 0 2px;font-size:13px;color:var(--texto)}
.cp-st-ping small{color:var(--suave)} .cp-st-ping svg{stroke:#F5C542} .cp-st-ping b{font-weight:700}
.cp-st-gauge{position:relative;color:var(--tinta);width:300px;max-width:100%;margin:0 auto}
.cp-st-gauge>svg{width:100%;display:block}
.cp-st-trilho{fill:none;stroke:var(--linha);stroke-width:22;stroke-linecap:butt}
.cp-st-cor{fill:none;stroke:url(#cpStDl);stroke-width:22;stroke-linecap:butt;filter:drop-shadow(0 0 6px rgba(77,240,224,.35))}
.cp-st.upload .cp-st-cor{stroke:url(#cpStUl);filter:drop-shadow(0 0 6px rgba(192,76,240,.35))}
.cp-st-gauge text{font-size:15px;font-weight:800;fill:var(--tinta)}
.cp-st-ag{transform-origin:150px 150px}
.cp-st-num{position:absolute;left:0;right:0;top:70%;font-family:"Barlow Condensed",var(--ff);font-weight:300;font-size:40px;line-height:1;color:var(--tinta);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.cp-st-unid{display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px;color:var(--suave);margin-top:-6px}
.cp-st-etapa{font-size:11.5px;color:var(--suave);margin-top:8px}
.cp-st.medindo .cp-st-cor{transition:stroke-dasharray .55s cubic-bezier(.3,.7,.4,1)}
.cp-st.medindo .cp-st-num{animation:cp-st-pisca 1.2s ease-in-out infinite}
@keyframes cp-st-pisca{50%{opacity:.35}}
.cp-st-rod{justify-content:center}
.cp-dg-kv{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;margin-top:8px;color:var(--texto)}
.cp-dg-tab{margin-top:8px} .cp-dg-tab td{padding:3px 8px}
.cp-dg-hist-t{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave);margin-top:14px}
.cp-dg-hist{max-height:140px;overflow:auto;font-size:12px}
.cp-dg-h{display:flex;gap:10px;padding:3px 0;border-bottom:1px solid var(--linha)} .cp-dg-h span:first-child{color:var(--suave);white-space:nowrap}
.cp-dg-h.err span:last-child{color:#B4232F}
.cp-acs-tag{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:1px 6px;border-radius:6px;background:#E6F4FC;color:var(--azul-esc);vertical-align:middle}
.cp-acs-tag.gen{background:var(--roxo-bg);color:var(--roxo)}
.acs-srv-form{border-top:1px dashed var(--linha);margin-top:10px;padding-top:10px}
.acs-srv-form h5{margin:0 0 8px;font-size:13px;color:var(--azul-esc)}
.acs-raw pre{margin:0;padding:10px 12px;max-height:340px;overflow:auto;font-size:11.5px;line-height:1.4;background:#fff;border-top:1px solid var(--linha);border-radius:0 0 10px 10px;white-space:pre-wrap;word-break:break-all}

/* ===== Painel do cliente (#mCliPainel) ===== */
.modal .box.cpainel{width:1180px;max-height:94vh;background:#F4F6FA;padding:16px;border-radius:18px}
.cp-head{background:#fff;border-radius:16px;padding:16px 18px 14px;border-left:4px solid #8A97A8;box-shadow:var(--sombra)}
.cp-head.ver{border-left-color:var(--verde)} .cp-head.verm{border-left-color:var(--vermelho)} .cp-head.amb{border-left-color:var(--amber)}
.cp-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.cp-id{display:flex;gap:12px;align-items:center}
.cp-av{position:relative;width:46px;height:46px;border-radius:50%;background:var(--papel);border:1px solid var(--linha);display:grid;place-items:center;font-weight:800;color:var(--tinta-2);font-size:14px;flex:none}
.cp-av i{position:absolute;right:1px;bottom:1px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:#8A97A8}
.cp-av i.ver{background:var(--verde)} .cp-av i.verm{background:var(--vermelho)} .cp-av i.amb{background:var(--amber)}
.cp-id small{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--roxo)}
.cp-id h2{font-family:"Barlow Condensed",sans-serif;font-size:26px;line-height:1.05;color:var(--tinta);letter-spacing:.01em;text-transform:uppercase}
.cp-pills{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cp-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--linha);background:#fff;border-radius:8px;padding:4px 9px;font-size:11.5px;color:var(--texto);white-space:nowrap}
.cp-chip small{font-size:9.5px;font-weight:800;letter-spacing:.1em;color:var(--suave)}
.cp-chip i{width:7px;height:7px;border-radius:50%;background:#8A97A8}
.cp-chip.ver{background:var(--verde-bg);border-color:#BFE6D3;color:#137A52} .cp-chip.ver i{background:var(--verde)}
.cp-chip.verm{background:var(--vermelho-bg);border-color:#F2C2C8;color:#A82636} .cp-chip.verm i{background:var(--vermelho)}
.cp-chip.amb{background:var(--amber-bg);border-color:#F0DBAE;color:#8A5A00} .cp-chip.amb i{background:var(--amber)}
.cp-chip.cin{background:var(--papel);color:var(--suave)}
.cp-chip.sm{padding:2px 7px;font-size:11px}
.cp-fechar{cursor:pointer;background:var(--papel)} .cp-fechar:hover{background:var(--linha)}
.cp-boxes{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}
.cp-box{border:1px solid var(--linha);border-radius:10px;padding:8px 11px;min-width:0}
.cp-box small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-box b{display:block;font-size:14px;color:var(--tinta);margin:2px 0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-box span{display:block;font-size:11.5px;color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-box.ver{background:var(--verde-bg);border-color:#BFE6D3} .cp-box.ver b{color:#137A52}
.cp-box.verm{background:var(--vermelho-bg);border-color:#F2C2C8} .cp-box.verm b{color:#A82636}
.cp-box.cin b{color:var(--suave)}
.cp-linha{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12.5px;color:var(--tinta);flex-wrap:wrap}
.cp-linha>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cp-linha>i{flex:1;min-width:16px;height:1px;background:var(--linha)}
.cp-linha small{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--suave)}
.cp-linha svg,.cp-end svg,.cp-card h4 svg{width:15px;height:15px;fill:none;stroke:var(--tinta-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cp-linha svg{width:22px;height:22px;padding:4px;border-radius:50%;background:var(--papel);stroke:var(--roxo)}
.cp-end{display:flex;gap:6px;align-items:center;margin-top:10px;font-size:12px;color:var(--suave)}
.cp-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.cp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.cp-card{background:#fff;border-radius:16px;padding:14px 16px;box-shadow:var(--sombra);min-width:0;display:flex;flex-direction:column}
.cp-card h4{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--linha)}
.cp-card h4 svg{width:22px;height:22px;padding:4px;border-radius:7px;background:var(--papel)}
.cp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cp-sub{border:1px solid var(--linha);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.cp-sub-t{font-size:12px;color:var(--texto);margin-bottom:6px}
.cp-sub-flex{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap} .cp-sub-flex span:last-child{font-size:11px;color:var(--suave)}
.cp-sig{display:flex;align-items:center;gap:8px}
.cp-sig>b{font-size:17px}
.cp-sig-v{margin-left:auto;font-size:20px;font-weight:800;color:var(--tinta)} .cp-sig-v small{font-size:10px;color:var(--suave);font-weight:600}
.cp-barras rect{fill:currentColor} .cp-barras rect.off{fill:#DCE4EE}
.ver{color:#137A52} .verm{color:#B3283A} .amb{color:#B86E00} .cin{color:var(--suave)}
.cp-regua{margin:10px 0 2px}
.cp-regua-bar{position:relative;height:6px;border-radius:4px;background:linear-gradient(90deg,#F2B8BF 0%,#F2B8BF 20.8%,#F6D9A2 20.8%,#F6D9A2 29.2%,#BFE6D3 29.2%,#BFE6D3 95%,#F6D9A2 95%)}
.cp-regua-bar i{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#137A52;border:3px solid #fff;box-shadow:0 0 0 1px #137A52;transform:translate(-50%,-50%)}
.cp-regua-esc{position:relative;height:16px;font-size:10px;color:var(--suave);margin-top:3px}
.cp-regua-esc span{position:absolute;transform:translateX(-50%)} .cp-regua-esc span:first-child{transform:none} .cp-regua-esc b{position:absolute;right:0;top:-34px;font-weight:600;font-size:10px}
.cp-nota{font-size:11px;color:var(--suave);margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cp-nota a{color:var(--azul-esc)}
.cp-hist-svg{width:100%;height:auto;display:block} .cp-hist-svg text{font-size:8px;fill:#8A99AB}
.cp-vazio{font-size:12.5px;color:var(--suave);padding:8px 0;line-height:1.5}
.cp-acoes{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.cp-acoes .btn{font-size:12px;padding:6px 11px}
.cp-sessao{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:13px;color:var(--tinta);margin-bottom:10px}
.cp-suave{font-size:11.5px;color:var(--suave);font-weight:400}
.cp-kvs{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.cp-kv small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--suave)}
.cp-kv span{font-size:12.5px;color:var(--tinta);word-break:break-all}
.cp-ip{color:var(--roxo)!important;font-family:ui-monospace,monospace}
.cp-tag{display:inline-block;background:var(--verde-bg);color:#137A52;border-radius:5px;padding:0 6px;font-size:11px;font-weight:700}
.cp-desenho{display:flex;flex-direction:column;align-items:center;border-top:1px dashed var(--linha);margin-top:12px;padding-top:8px;text-align:center}
.cp-equip{width:150px;height:auto}
.cp-desenho b{font-size:13px;color:var(--tinta)} .cp-desenho small{font-size:10.5px;color:var(--suave);letter-spacing:.06em}
.cp-div{color:#B86E00}
.cp-tempo{max-height:330px;overflow:auto}
.cp-ev{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--linha);font-size:12px}
.cp-ev:last-child{border-bottom:none}
.cp-ev-d{color:var(--texto);min-width:132px;font-variant-numeric:tabular-nums}
.cp-tab-wrap{max-height:300px;overflow:auto}
.cp-tab{width:100%;border-collapse:collapse;font-size:12.5px}
.cp-tab th{text-align:left;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave);padding:6px 8px;border-bottom:1px solid var(--linha);position:sticky;top:0;background:#fff}
.cp-tab td{padding:7px 8px;border-bottom:1px solid var(--linha);vertical-align:top;color:var(--tinta)}
.cp-tab small{color:var(--suave)}
.cp-tab .mono,.cp-kv .mono,.cp-linha .mono{font-family:ui-monospace,monospace;font-size:11.5px}
.cp-mini{font-size:11px;border:1px solid var(--linha);border-radius:6px;padding:1px 7px;background:#fff;color:var(--azul-esc);cursor:pointer}
.cp-senha{font-family:ui-monospace,monospace}
.cpainel .acs-raw{margin-top:12px;background:#fff}
@media (max-width:1100px){ .cp-boxes{grid-template-columns:repeat(3,1fr)} .cp-grid3{grid-template-columns:1fr 1fr} }
@media (max-width:760px){
  .modal .box.cpainel{padding:10px}
  .cp-boxes{grid-template-columns:1fr 1fr} .cp-grid3,.cp-grid2{grid-template-columns:1fr}
  .cp-linha>i{display:none}
}
/* painel como "janela" (js/modules/painel-janela.js): alça de redimensionar, mover pelo cabeçalho, maximizar.
   As colunas internas seguem a LARGURA DO PAINEL (container query), não só a da tela. */
@media (min-width:761px){
  .modal .box.cpainel{resize:both;min-width:560px;min-height:320px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);container:cpainel/inline-size}
  .modal .box.cpainel.solta{position:fixed;margin:0}
  .modal .box.cpainel.max{position:fixed;inset:10px!important;width:auto!important;height:auto!important;max-width:none;max-height:none;resize:none}
  #mCliPainel .cp-head-top{cursor:grab;user-select:none}
  .modal .box.cpainel.max .cp-head-top{cursor:default}
  body.cp-arrastando,body.cp-arrastando #mCliPainel .cp-head-top{cursor:grabbing}
  body.cp-arrastando #mCliPainel .box{transition:none}
}
.cp-janela{min-width:30px;justify-content:center;font-size:14px;line-height:1} .cp-janela[hidden]{display:none}
@media (max-width:760px){ .cp-janela{display:none!important} }
#acsOnuTeste{border:1.5px solid var(--linha);border-radius:9px;padding:8px 11px;font-size:13px;font-family:ui-monospace,monospace;color:var(--tinta);background:#fff;outline:none} #acsOnuTeste:focus{border-color:var(--azul)}

/* ===== Dashboard ACS (menu lateral → ACS, #viewAcs) ===== */
.ad-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:2px 0 14px}
.ad-head h2{font-family:"Barlow Condensed",sans-serif;font-size:28px;line-height:1;color:var(--tinta)}
.ad-head .dv-sub{margin-top:5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}
.ad-dot{width:7px;height:7px;border-radius:50%;background:var(--verde)}
.ad-acoes{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ad-acoes .btn{font-size:12.5px;padding:7px 12px}
.ad-err{color:#B3283A;font-weight:600}
.ad-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:12px}
.ad-kpi{display:flex;gap:12px;align-items:center;background:#fff;border-radius:14px;padding:14px 16px;box-shadow:var(--sombra);min-width:0}
.ad-kpi small{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-2);line-height:1.2}
.ad-kpi b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:30px;line-height:1;color:var(--tinta);margin-top:3px}
.ad-kpi em{font-style:normal;font-size:11px;color:var(--suave)}
.ad-ico{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff}
.ad-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ad-ico.az{background:linear-gradient(135deg,#3B5BDB,#5F3DC4)} .ad-ico.ver{background:linear-gradient(135deg,#12B886,#2FBF71)}
.ad-ico.verm{background:linear-gradient(135deg,#F03E3E,#E64980)} .ad-ico.rox{background:linear-gradient(135deg,#5F3DC4,#7048E8)}
.ad-card{background:#fff;border:1px solid var(--linha);border-radius:14px;padding:14px 16px;margin-bottom:12px;min-width:0}
.ad-card h4{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-2);margin-bottom:12px}
.ad-busca{display:flex;gap:10px;align-items:center}
.ad-busca input{flex:1;border:1.5px solid var(--linha);border-radius:10px;padding:10px 13px;font-size:13.5px;outline:none;color:var(--tinta);background:#fff}
.ad-busca input:focus{border-color:var(--azul)}
.ad-busca span{font-size:12px;color:var(--suave);font-family:ui-monospace,monospace;white-space:nowrap}
.ad-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.ad-chip{border:1px solid var(--linha);background:var(--papel);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--texto);cursor:pointer}
.ad-chip small{color:var(--suave);margin-left:3px}
.ad-chip.on{background:#4C2DD6;border-color:#4C2DD6;color:#fff} .ad-chip.on small{color:#D9D0FF}
/* caixa de busca + filtros (ACS e Rede): mais destacada — no tema escuro sumia no fundo */
.ad-filtros{border:1.5px solid rgba(76,45,214,.28);box-shadow:var(--sombra)}
.ad-busca input{border-width:2px;font-size:14.5px;padding:12px 14px 12px 42px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%237B6FD6' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 14px 50%}
.ad-busca input:focus{border-color:#4C2DD6;box-shadow:0 0 0 4px rgba(76,45,214,.14)}
.ad-chip:hover{border-color:#4C2DD6;color:var(--tinta)}
html[data-theme="dark"] .ad-card.ad-filtros{background:#1E1C2B;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:rgba(169,156,255,.38)}
html[data-theme="dark"] .ad-filtros .ad-busca input{background:rgba(255,255,255,.07) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23A99CFF' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 14px 50%;border-color:rgba(255,255,255,.22);color:#fff}
html[data-theme="dark"] .ad-filtros .ad-busca input::placeholder{color:#A9ACBC}
html[data-theme="dark"] .ad-filtros .ad-busca input:focus{border-color:#A99CFF;box-shadow:0 0 0 4px rgba(169,156,255,.18)}
html[data-theme="dark"] .ad-busca span{color:#C9CBD6}
html[data-theme="dark"] .ad-chip{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#E6E7EE}
html[data-theme="dark"] .ad-chip small{color:#A9ACBC}
html[data-theme="dark"] .ad-chip:hover{border-color:#A99CFF}
html[data-theme="dark"] .ad-chip.on{background:#6C5CE7;border-color:#8B7CF6;color:#fff}
.ad-linha{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--texto);padding:10px 16px}
.ad-linha b{color:var(--tinta);font-family:ui-monospace,monospace}
.ad-graficos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ad-graficos .ad-card{margin-bottom:12px}
.ad-donut{display:flex;gap:14px;align-items:center}
.ad-donut svg{width:130px;height:130px;flex:none}
.ad-donut svg text{font-size:20px;font-weight:800;fill:var(--tinta);font-family:"Barlow Condensed",sans-serif}
.ad-legs{flex:1;min-width:0}
.ad-leg{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--texto);padding:2px 0}
.ad-leg i{width:9px;height:9px;border-radius:2px;flex:none}
.ad-leg span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-leg b{color:var(--tinta)} .ad-leg small{color:var(--suave);min-width:30px;text-align:right}
.ad-barras{display:flex;flex-direction:column;gap:7px}
.ad-barra{display:grid;grid-template-columns:140px 1fr 44px;gap:8px;align-items:center;font-size:12px;color:var(--texto)}
.ad-barra div{height:10px;background:var(--papel);border-radius:5px;overflow:hidden}
.ad-barra i{display:block;height:100%;border-radius:5px}
.ad-barra b{text-align:right;color:var(--tinta)}
.ad-nota{font-size:11.5px;color:var(--suave);margin-top:10px;line-height:1.45}
.ad-tab-wrap{overflow-x:auto}
.ad-tab{width:100%;border-collapse:collapse;font-size:12.5px}
.ad-tab th{text-align:left;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--suave);padding:8px 10px;background:var(--papel);border-bottom:1px solid var(--linha);white-space:nowrap;cursor:pointer;user-select:none}
.ad-tab th.on{color:var(--tinta)}
.ad-tab td{padding:8px 10px;border-bottom:1px solid var(--linha);vertical-align:top;color:var(--tinta)}
.ad-tab td small{color:var(--suave)}
.ad-tab .mono{font-family:ui-monospace,monospace;font-size:12px}
.ad-tab tr.ad-click{cursor:pointer} .ad-tab tr.ad-click:hover td{background:#F7F5FF}
.ad-ip{color:var(--roxo)}
.ad-st{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}
.ad-st.on{background:var(--verde-bg);color:#137A52} .ad-st.off{background:var(--vermelho-bg);color:#A82636}
.ad-dm{font-size:10.5px} .ad-dm.leg{color:#B86E00}
.ad-div{color:#B86E00}
.ad-mais{margin-top:10px;font-size:12px}
@media (max-width:1200px){ .ad-kpis{grid-template-columns:repeat(3,1fr)} .ad-graficos{grid-template-columns:1fr 1fr} }
@media (max-width:760px){ .ad-kpis{grid-template-columns:1fr 1fr} .ad-graficos{grid-template-columns:1fr} .ad-barra{grid-template-columns:110px 1fr 36px} .ad-donut svg{width:100px;height:100px} }
body.fundo-rede .ad-head h2, body.fundo-rede .ad-head .dv-sub{color:#fff}
.cp-wsig{display:inline-flex;align-items:center;gap:5px;white-space:nowrap} .cp-wsig .cp-barras{width:18px;height:13px}
.cp-box.cp-link{cursor:pointer;transition:border-color .15s,box-shadow .15s} .cp-box.cp-link:hover{border-color:var(--azul);box-shadow:0 0 0 3px rgba(0,175,233,.15)} .cp-box.cp-link small{color:var(--azul-esc)}
.port .c-ed button.bacs:hover{color:var(--roxo)}
.ad-pag{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;flex-wrap:wrap} .ad-pag span{font-size:12.5px;color:var(--suave)} .ad-pag .btn{font-size:12.5px;padding:7px 14px} .ad-pag .btn:disabled{opacity:.4;cursor:default}
.cp-foto{width:170px;max-width:100%;height:120px;object-fit:contain;border-radius:10px;margin-bottom:4px}
.cp-equips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;background:#fff;border-radius:14px;padding:10px 14px;box-shadow:var(--sombra)} .cp-equip-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--linha);background:var(--papel);border-radius:10px;padding:6px 11px;font-size:12px;color:var(--tinta);cursor:pointer} .cp-equip-chip i{width:8px;height:8px;border-radius:50%;background:var(--vermelho)} .cp-equip-chip i.ver{background:var(--verde)} .cp-equip-chip small{font-size:9.5px;font-weight:800;letter-spacing:.1em;color:var(--suave)} .cp-equip-chip .mono{font-family:ui-monospace,monospace;font-size:11px;color:var(--roxo)} .cp-equip-chip.on{border-color:#4C2DD6;background:#F1EDFF;box-shadow:0 0 0 3px rgba(76,45,214,.12)}
.cp-cadeia{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--linha)} .cp-elo{display:flex;flex-direction:column;gap:2px;border:1px solid var(--linha);border-radius:10px;padding:6px 10px;min-width:0;background:#fff} .cp-elo small{font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--suave)} .cp-elo b{font-size:12.5px;color:var(--tinta);font-weight:600} .cp-elo .mono{font-family:ui-monospace,monospace;font-size:11.5px} .cp-elo.ok{background:var(--verde-bg);border-color:#BFE6D3} .cp-elo.falta{background:var(--vermelho-bg);border-color:#F2C2C8} .cp-elo.falta b{color:#A82636} .cp-elo.cp-link{cursor:pointer} .cp-elo.cp-link:hover{box-shadow:0 0 0 3px rgba(0,175,233,.15);border-color:var(--azul)} .cp-seta{align-self:center;color:var(--suave);font-style:normal;font-weight:700}
.cp-vinc{align-self:center;margin-left:auto;border:1.5px solid #4C2DD6;background:#F1EDFF;color:#3B22B0;border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px} .cp-vinc:hover{background:#E4DCFF} .cp-vinc:disabled{opacity:.6;cursor:default}
.ad-tag-desat,.ad-tag-bloq{display:inline-block;border-radius:6px;padding:1px 7px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;vertical-align:1px} .ad-tag-desat{background:var(--vermelho-bg);color:#A82636} .ad-tag-bloq{background:var(--amber-bg);color:#8A5A00}
.cp-onu-desenho{display:flex;justify-content:center;margin:2px 0 8px} .cp-onu-svg{width:100%;max-width:300px;height:auto} .cp-onu-svg .o-txt{font:600 8px "Segoe UI",sans-serif;fill:#6B7E92} .cp-onu-svg .o-sub{font-weight:400;font-size:7px} .cp-onu-svg .o-mod{font:700 10px "Segoe UI",sans-serif;fill:#1B3A57} .cp-onu-svg .o-on{filter:drop-shadow(0 0 3px rgba(31,169,113,.8))} .cp-leitura .cp-kvs{margin-top:4px}
.cp-onu-svg{max-width:250px!important} .cp-onu-svg .o-led{font:700 6.5px "Segoe UI",sans-serif;fill:#6B7E92} .cp-onu-svg .o-mod{font-size:11px!important}
.cp-onu-svg{max-width:100%!important;height:auto} .cp-onu-svg .o-on-azul{filter:drop-shadow(0 0 3px rgba(63,167,245,.9))}
.cp-ext{border-top:1px dashed var(--linha);margin-top:10px;padding-top:8px} .cp-ext-t{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--suave);margin-bottom:5px} .cp-ext-linha{font-size:12px;color:var(--tinta);padding:3px 0;line-height:1.45;word-break:break-word} .cp-ext-linha .cp-mini{margin-left:4px}
.cp-modo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;font-weight:800;border-radius:9px;padding:7px 11px;margin-bottom:8px} .cp-modo small{font-weight:500;color:var(--suave)} .cp-modo.router{background:#EEF4FF;color:#1D4ED8;border:1px solid #C9DAFB} .cp-modo.bridge{background:#F4EEFF;color:#6D28D9;border:1px solid #DDD0FA} .cp-onu-svg .o-modo{font:800 7.5px "Segoe UI",sans-serif;fill:#6D28D9;letter-spacing:.06em}
/* ===== Painel do cliente — layout A (faixa da instalação) ===== */
.cp-faixa{display:grid;grid-template-columns:minmax(0,1.25fr) auto minmax(0,1.2fr) auto minmax(0,1fr);gap:10px;margin-top:12px;align-items:stretch}
.cp-faixa>div{display:flex;min-width:0} .cp-faixa>div>.cp-card{flex:1}
.cp-faixa-seta{align-self:center;font-style:normal;font-weight:800;font-size:18px;color:var(--suave)}
.cp-card h4{flex-wrap:wrap}
.cp-onu-topo{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.cp-onu-topo .cp-onu-desenho{margin:0;flex:none} .cp-onu-topo .cp-onu-svg{width:190px!important}
.cp-onu-sinal{flex:1;min-width:160px}
.cp-kvs3{grid-template-columns:repeat(3,minmax(0,1fr))} .cp-kvs2{grid-template-columns:repeat(2,minmax(0,1fr))} .cp-kvs4{grid-template-columns:repeat(3,minmax(0,1fr))}
.cp-rot{display:flex;gap:12px;align-items:center}
.cp-rot-foto{flex:none;width:118px;display:flex;justify-content:center} .cp-rot-foto .cp-foto{width:118px;height:88px;margin:0} .cp-rot-foto .cp-equip{width:110px}
.cp-rot .cp-kvs{flex:1;min-width:0}
.cp-apar{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;padding:3px 0;border-bottom:1px solid var(--linha)} .cp-apar:last-of-type{border-bottom:none}
.cp-chip-router{background:#EEF4FF;color:#1D4ED8;border-color:#C9DAFB} .cp-chip-bridge{background:#F4EEFF;color:#6D28D9;border-color:#DDD0FA}
.cp-linha2{margin-top:12px}
.cp-detalhes{margin-top:12px;background:#fff;border-radius:14px;box-shadow:var(--sombra);padding:10px 16px}
.cp-detalhes>summary{cursor:pointer;font-size:12.5px;font-weight:800;color:var(--tinta-2);padding:4px 0}
.cp-det-corpo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.cp-det-corpo>.cp-ext:first-child{border-top:none}
.cp-det-corpo .acs-raw{grid-column:1/-1}
@media (max-width:1100px){ .cp-faixa{grid-template-columns:1fr} .cp-faixa-seta{display:none} .cp-det-corpo{grid-template-columns:1fr} }
.cp-rot-foto{width:92px!important} .cp-rot-foto .cp-foto{width:92px!important;height:72px!important} .cp-rot .cp-kv span{word-break:break-all}
.cp-trafego{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px;margin-top:6px;padding:6px 10px;border-radius:9px;background:var(--papel)}
.cp-apar-nome{display:flex;flex-direction:column;min-width:0} .cp-apar-nome small{font-size:10.5px;color:var(--suave);line-height:1.2} .cp-cabo{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--azul-esc);font-weight:600;white-space:nowrap} .cp-ico-cabo{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cp-apar{justify-content:flex-start!important;gap:10px!important;padding:6px 0!important}
.cp-apar>.cp-apar-nome{flex:1}
.cp-apar-cel{display:flex;gap:8px;align-items:flex-start}
.cp-ico-tipo{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--papel);color:var(--tinta-2)}
.cp-ico-tipo svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cp-ico-tipo.t-celular{background:#EEF4FF;color:#1D4ED8} .cp-ico-tipo.t-tablet{background:#EEF4FF;color:#1D4ED8}
.cp-ico-tipo.t-tv{background:#F4EEFF;color:#6D28D9} .cp-ico-tipo.t-pc{background:#E8F7F5;color:#0F766E}
.cp-ico-tipo.t-camera{background:#FFF1E6;color:#C2410C} .cp-ico-tipo.t-game{background:#FDECF3;color:#BE185D}
.cp-ico-tipo.t-som{background:#FDF4E3;color:#A16207} .cp-ico-tipo.t-iot{background:#ECFDF3;color:#15803D}
.cp-ico-tipo.t-router{background:#E6F4FB;color:#0369A1} .cp-ico-tipo.t-printer{background:#F1F5F9;color:#475569}
.cp-apar-nome small{font-size:10.5px;color:var(--suave);line-height:1.3}
.cp-aviso-lan{background:var(--amber-bg);color:#8A5A00;border-radius:8px;padding:6px 9px;line-height:1.4}

/* ===== ações no equipamento + link do técnico (cp-acoes.js) ===== */
.cp-bt-acao{color:#B4232F!important}
.cp-mini.cp-bt-acao{border-color:#F3C4C9}
.cp-link-tec{cursor:pointer;background:#EAF6EF;border-color:#BFE3CD;color:#0F6B3A;font-weight:600} .cp-link-tec:hover{background:#D9F0E2}
.cp-nota-acao{background:var(--amber-bg);color:#8A5A00;border-radius:8px;padding:6px 9px}
.cp-lans{display:flex;flex-wrap:wrap;gap:6px 14px}
.cp-ov{position:fixed;inset:0;z-index:4000;background:rgba(8,20,36,.45);display:grid;place-items:center;padding:16px}
.cp-ov-caixa{background:#fff;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.25);width:min(460px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:18px 18px 14px}
.cp-ov-caixa h3{margin:0 0 8px;font-size:17px;color:var(--azul-esc)}
.cp-ov-txt{font-size:13px;line-height:1.5;color:var(--texto);margin-bottom:10px}
.cp-ov-bts{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.cp-ov-bts .btn{padding:9px 14px;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.cp-ov-rede{border:1px solid var(--linha);border-radius:10px;padding:9px 11px;margin-top:8px}
.cp-ov-rede-t{font-size:12px;margin-bottom:6px}
.cp-ov-rede label{display:block;font-size:11px;color:var(--suave);margin-top:6px}
.cp-ov-rede input,.cp-ov-rede select{display:block;width:100%;box-sizing:border-box;margin-top:3px;border:1.5px solid var(--linha);border-radius:8px;padding:8px 9px;font:13px/1.2 ui-monospace,Consolas,monospace;color:var(--texto);background:#fff}
.cp-ov-senha{display:flex;gap:6px;align-items:center} .cp-ov-senha input{flex:1}
.cp-ov-canais{display:flex;gap:10px} .cp-ov-canais label{flex:1;margin-top:0}
.cp-ov-erro{color:#B4232F;font-size:12px;min-height:16px;margin-top:8px}
.cp-ov-lista{margin:0 0 8px;padding-left:18px;font-size:13px;line-height:1.6}
.cp-ov-link{display:flex;gap:8px} .cp-ov-link input{flex:1;min-width:0;border:1.5px solid var(--linha);border-radius:8px;padding:8px 9px;font:12px ui-monospace,Consolas,monospace}
.cp-ov-link .btn{padding:8px 14px;border-radius:9px;font-weight:700;cursor:pointer}
.btn-whats{background:#1FA855;color:#fff;border:none} .btn-whats:hover{background:#178C46}
.cp-bt-cancelar{color:#B4232F}

/* fileira de botões do cartão ONU: data da leitura em cima, 3 botões do mesmo tamanho numa linha */
.cp-acoes-onu{flex-wrap:wrap} .cp-acoes-onu>.cp-suave{flex-basis:100%;font-size:11.5px}
.cp-acoes-onu .btn{flex:1 1 0;min-width:0;white-space:nowrap;justify-content:center;display:inline-flex;align-items:center;gap:4px}
/* histórico do RX: rodapé com total de leituras e janela 7/30/90 dias */
.cp-hist-rod{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:11px}
.cp-hist-jan{display:inline-flex;gap:4px} .cp-hist-jan .cp-mini.on{background:var(--azul-esc);border-color:var(--azul-esc);color:#fff}
/* colunas do painel do cliente pela largura do PAINEL (redimensionável) — fica no fim para vencer as regras base */
@container cpainel (max-width:1040px){ .cp-boxes{grid-template-columns:repeat(3,1fr)} .cp-grid3{grid-template-columns:1fr 1fr} .cp-faixa{grid-template-columns:1fr} .cp-faixa-seta{display:none} .cp-det-corpo{grid-template-columns:1fr} }
@container cpainel (max-width:700px){ .cp-boxes{grid-template-columns:1fr 1fr} .cp-grid3,.cp-grid2{grid-template-columns:1fr} .cp-linha>i{display:none} }

/* 3ª coluna da faixa: duas caixas, cada uma com a sua fonte (roteador · ACS / LAN da ONU · OLT) */
.cp-faixa>div.cp-col-apar{flex-direction:column;gap:10px}
.cp-col-apar>.cp-card{flex:0 0 auto} .cp-col-apar>.cp-card:first-child{flex:1 1 auto}
.cp-card h4 .cp-ico-cabo{width:15px;height:15px}
.cp-fonte{font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:2px 7px;margin-left:4px;white-space:nowrap}
.cp-fonte.acs{background:#EDE7FF;color:#5B3CC4} .cp-fonte.olt{background:#E3F1FB;color:#0B5CAD}
html[data-theme="dark"] .cp-fonte.acs{background:#2E2552;color:#C9B8FF} html[data-theme="dark"] .cp-fonte.olt{background:#14324D;color:#8CC8F5}
/* ===== painel do cliente enxuto (2026-10-08) ===== */
.cp2-head{padding:12px 16px 0}
.cp2-head h2{font-size:17px;line-height:1.2}
.cp2-sub{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--suave);margin-top:3px}
.cp2-sub b{color:var(--tinta-2)}
.cp2-sub .cp-link{cursor:pointer;color:var(--tinta-2)} .cp2-sub .cp-link:hover{text-decoration:underline}
.cp2-aviso{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#A82636;background:var(--vermelho-bg);border:1px solid #F2C2C8;border-radius:8px;padding:5px 10px}
.cp2-abas{display:flex;gap:2px;margin-top:10px}
.cp2-abas button{border:0;background:none;padding:8px 14px;font-size:12.5px;font-weight:700;color:var(--suave);border-bottom:2px solid transparent;cursor:pointer}
.cp2-abas button.on{color:var(--tinta);border-bottom-color:var(--tinta)}
.cp2-abas button:hover{color:var(--tinta)}
.cp2-equips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.cp2-notas{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.cp2-nota{font-size:11.5px;color:var(--suave);margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cp2-nota.verm{color:var(--vermelho)}
.cp2-grid{display:grid;gap:12px;margin-top:12px;align-items:stretch}
.cp2-grid.g3{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr)}
.cp2-grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cp2-grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;margin-top:12px}
.cp2-grid2>:only-child{grid-column:1/-1}
.cp2-card{background:var(--branco);border-radius:14px;padding:12px 14px;box-shadow:var(--sombra);min-width:0;display:flex;flex-direction:column}
.cp2-ct{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:800;color:var(--tinta);margin-bottom:10px;min-height:26px}
.cp2-dir{margin-left:auto;display:flex;gap:4px;align-items:center}
.cp2-ib{width:28px;height:28px;border-radius:8px;border:1px solid var(--linha);background:var(--papel);cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center;color:var(--tinta-2)}
.cp2-ib:hover{background:var(--linha)} .cp2-ib:disabled{opacity:.5;cursor:wait}
.cp2-ib.perigo{color:var(--vermelho)} .cp2-ib.perigo:hover{background:var(--vermelho-bg);border-color:#F2C2C8}
.cp2-dot{width:8px;height:8px;border-radius:50%;background:#8A97A8} .cp2-dot.on{background:var(--verde)} .cp2-dot.off{background:var(--vermelho)}
.cp2-eq{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cp2-foto{flex:none} .cp2-foto svg{max-width:190px;height:auto}
.cp2-sinal{flex:1;min-width:170px}
.cp2-sinal-v{display:flex;align-items:baseline;gap:6px}
.cp2-sinal-v svg{align-self:center}
.cp2-sinal-v>b{font-size:30px;font-family:"Barlow Condensed",sans-serif;font-weight:600;color:var(--tinta);line-height:1}
.cp2-sinal-v small{font-size:12px;color:var(--suave)}
.cp2-sinal-v span{font-size:12px;font-weight:700;margin-left:4px}
.cp2-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin-top:10px}
.cp2-grid.g4 .cp2-mini{grid-template-columns:1fr 1fr}
.cp2-mini>div{background:var(--papel);border-radius:8px;padding:6px 8px;min-width:0}
.cp2-mini small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.cp2-mini b{font-size:13px;color:var(--tinta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.cp2-wan{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--suave);margin-top:10px;padding-top:8px;border-top:1px solid var(--linha)}
.cp2-wan b{color:var(--tinta-2);font-weight:600} .cp2-wan a{margin-left:auto;text-decoration:none}
.cp2-ip{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:600;color:var(--roxo);line-height:1.1}
.cp2-lans{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.cp2-lans span{font-size:11px;font-weight:700;border-radius:6px;padding:3px 7px;background:var(--papel);color:var(--suave);border:1px solid var(--linha)}
.cp2-lans span.on{background:var(--verde-bg);color:#137A52;border-color:#BFE6D3}
.cp2-lans span.off{background:var(--vermelho-bg);color:#A82636;border-color:#F2C2C8}
.cp2-lans small{font-weight:400}
.cp2-rede{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--linha)}
.cp2-rede:first-of-type{border-top:0}
.cp2-rede>div{flex:1;min-width:0} .cp2-rede b{display:block;font-size:13px;color:var(--tinta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp2-rede small{font-size:11px;color:var(--suave)}
.cp2-banda{flex:none;min-width:34px;text-align:center;font-size:10.5px;font-weight:800;border-radius:6px;padding:3px 5px;background:#EEF4FF;color:#1D4ED8}
.cp2-senha{flex:none;font-size:12px}
.cp2-apar{display:flex;align-items:center;gap:8px;padding:5px 0}
.cp2-apar>div{flex:1;min-width:0} .cp2-apar b{display:block;font-size:12.5px;color:var(--tinta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp2-apar small{font-size:11px;color:var(--suave)}
/* diagrama da rede */
.cp2-diag{background:var(--branco);border-radius:14px;box-shadow:var(--sombra);padding:22px 18px;margin-top:12px;overflow-x:auto}
.cp2-fluxo{display:flex;align-items:flex-start;min-width:max-content;gap:0}
.cp2-no{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;width:104px;flex:none}
.cp2-no.cp-link{cursor:pointer}
.cp2-no-ic{position:relative;width:52px;height:52px;border-radius:14px;background:var(--papel);border:1.5px solid var(--linha);display:grid;place-items:center;font-size:24px}
.cp2-no-ic.ok{border-color:#BFE6D3} .cp2-no-ic.gen{border-color:#C9DAFB;background:#EEF4FF} .cp2-no-ic.off{border-color:#F2C2C8;background:var(--vermelho-bg)}
.cp2-no-ic i{position:absolute;right:-3px;top:-3px;width:11px;height:11px;border-radius:50%;background:var(--verde);border:2px solid var(--branco)}
.cp2-no b{font-size:12px;color:var(--tinta);max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp2-no small{font-size:10.5px;color:var(--suave);max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp2-lig{position:relative;flex:1;min-width:70px;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:flex-start}
.cp2-lig::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:3px solid #F2B84B}
.cp2-lig.cabo::before{border-top:3px solid #8A97A8} .cp2-lig.wifi::before{border-top:3px dashed #3FA7F5}
.cp2-lig span,.cp2-lig em{position:relative;font-size:10.5px;background:var(--branco);padding:0 4px;color:var(--suave);font-style:normal}
.cp2-lig span{top:-12px} .cp2-lig em{top:6px;font-weight:700}
.cp2-fim{display:flex;flex-direction:column;gap:2px;min-width:180px;padding-left:6px}
@media (max-width:1100px){ .cp2-grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))} .cp2-grid.g3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} .cp2-grid.g3>.cp2-card:first-child{grid-column:1/-1} }
@media (max-width:700px){ .cp2-grid.g3,.cp2-grid.g4,.cp2-grid2{grid-template-columns:minmax(0,1fr)} }html[data-theme="dark"] .cp2-banda{background:#1d2129;color:#93b4ff}
html[data-theme="dark"] .cp2-no-ic.gen{background:#1d2129;border-color:#2f3644}
html[data-theme="dark"] .cp2-lans span.on{border-color:#41544b;color:#9befcf}
html[data-theme="dark"] .cp2-aviso,html[data-theme="dark"] .cp2-lans span.off{border-color:#4e3639;color:#e3818d}
html[data-theme="dark"] .cp2-lig span,html[data-theme="dark"] .cp2-lig em{background:#1b1c23}
html[data-theme="dark"] .cp-ov .cp-ov-caixa{background:#1b1c23}
html[data-theme="dark"] .cp-ov{background:rgba(0,0,0,.6)}

/* ===== detalhes técnicos em cards + portas + tráfego ao vivo (2026-10-08) ===== */
.cp3-det{padding:10px 14px 14px}
.cp3-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.cp3-full{grid-column:1/-1}
.cp3-card{border:1px solid var(--linha);border-radius:12px;padding:12px 14px;min-width:0}
.cp3-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:800;color:var(--tinta);margin-bottom:10px;min-height:24px}
.cp3-dir{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-weight:400}
.cp3-kvs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}
.cp3-kv small,.cp3-bar small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.cp3-kv b{font-size:13px;color:var(--tinta);font-weight:600;word-break:break-word}
.cp3-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--linha)}
.cp3-bar b{font-size:13px;color:var(--tinta);font-weight:700}
.cp3-bar i{display:block;height:5px;border-radius:3px;background:var(--papel);margin-top:4px;overflow:hidden}
.cp3-bar u{display:block;height:100%;border-radius:3px;background:var(--verde)} .cp3-bar u.amb{background:var(--amber)} .cp3-bar u.verm{background:var(--vermelho)}
.cp3-linha{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--linha)}
.cp3-linha:first-of-type{border-top:0}
.cp3-linha>div{flex:1;min-width:0} .cp3-linha b{display:block;font-size:13px;color:var(--tinta)} .cp3-linha small{display:block;font-size:11px;color:var(--suave);overflow:hidden;text-overflow:ellipsis}
.cp3-tag{flex:none;font-size:10px;font-weight:800;border-radius:6px;padding:3px 6px;background:var(--papel);color:var(--tinta-2);text-transform:uppercase;letter-spacing:.05em}
/* portas */
.cp3-portas{display:flex;gap:10px;flex-wrap:wrap;background:var(--papel);border-radius:12px;padding:12px}
.cp3-pt{position:relative;flex:1 1 110px;max-width:170px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;background:var(--branco);border:1.5px solid var(--linha);border-radius:10px;padding:10px 8px 8px}
.cp3-pt.on{border-color:#7FD3AE} .cp3-pt.desl{border-color:#F2C2C8;opacity:.9}
.cp3-pt b{font-size:12.5px;color:var(--tinta)} .cp3-pt small{font-size:11px;color:var(--suave)}
.cp3-pt .cp3-quem{color:var(--tinta-2);font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp3-pt em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--tinta-2)}
.cp3-rj{width:34px;height:26px;border-radius:4px;background:#2A3340;display:grid;place-items:center;margin-bottom:4px}
.cp3-rj i{width:22px;height:13px;background:#A9B4C2;clip-path:polygon(0 0,100% 0,100% 70%,72% 70%,72% 100%,28% 100%,28% 70%,0 70%)}
.cp3-pt.on .cp3-rj i{background:#1FA971;box-shadow:0 0 8px rgba(31,169,113,.6)} .cp3-pt.desl .cp3-rj i{background:var(--vermelho)}
.cp3-rj.pon i{width:14px;height:14px;border-radius:50%;clip-path:none;background:#5B6675} .cp3-pt.pon.on .cp3-rj i{background:#3FA7F5;box-shadow:0 0 8px rgba(63,167,245,.6)}
.cp3-sw{margin-top:6px;width:38px;height:20px;border-radius:12px;border:0;background:#C9D3DE;position:relative;cursor:pointer;padding:0;transition:background .2s}
.cp3-sw i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.cp3-sw.on{background:var(--verde)} .cp3-sw.on i{left:20px} .cp3-sw:disabled{opacity:.5;cursor:wait}
/* tráfego */
.cp3-agora{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.cp3-agora>div{display:flex;flex-direction:column}
.cp3-agora small{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--suave)}
.cp3-agora b{font-family:"Barlow Condensed",sans-serif;font-size:30px;font-weight:600;line-height:1}
.cp3-dn{color:#0FA3A3} .cp3-up{color:#8B5CF6}
.cp3-acum{margin-left:auto;text-align:right;font-size:11.5px;color:var(--suave)} .cp3-acum span{display:block}
.cp3-graf{position:relative;height:96px;margin-top:10px;border-radius:8px;background:var(--papel);overflow:hidden}
.cp3-graf svg{position:absolute;inset:4px 0 0 0;width:100%;height:calc(100% - 4px)}
.cp3-graf.vazio{display:grid;place-items:center;font-size:12px;color:var(--suave)}
.cp3-gl{stroke:var(--linha);stroke-width:1;vector-effect:non-scaling-stroke}
.cp3-ad{fill:rgba(15,163,163,.18)} .cp3-ld{fill:none;stroke:#0FA3A3;stroke-width:2;vector-effect:non-scaling-stroke}
.cp3-au{fill:rgba(139,92,246,.14)} .cp3-lu{fill:none;stroke:#8B5CF6;stroke-width:1.6;vector-effect:non-scaling-stroke}
.cp3-gmax,.cp3-gt{position:absolute;font-size:10px;color:var(--suave)} .cp3-gmax{top:4px;left:6px} .cp3-gt{bottom:3px;right:6px}
.cp3-por{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cp3-pl{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12px}
.cp3-pl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tinta);font-weight:600} .cp3-pl small{color:var(--suave);font-weight:400}
.cp3-pl i{display:flex;flex-direction:column;gap:2px} .cp3-pl u{display:block;height:4px;border-radius:2px;min-width:2px} .cp3-pl u.dn{background:#0FA3A3} .cp3-pl u.up{background:#8B5CF6}
.cp3-pl em{font-style:normal;font-size:11px;color:var(--suave);white-space:nowrap}
/* aparelhos: coluna de consumo só quando algum aparelho informa */
.cp3-tab .cp3-col-cons{display:none} .cp3-tab.com-consumo .cp3-col-cons{display:table-cell}
.cp3-tab small.amb{color:var(--amber)}
@media (max-width:900px){ .cp3-grid{grid-template-columns:minmax(0,1fr)} .cp3-kvs,.cp3-bars{grid-template-columns:repeat(2,minmax(0,1fr))} }
html[data-theme="dark"] .cp3-rj{background:#0f1116}
html[data-theme="dark"] .cp3-pt.on{border-color:#2f5a47} html[data-theme="dark"] .cp3-pt.desl{border-color:#4e3639}
html[data-theme="dark"] .cp3-sw{background:#3a3f4b}.cp3-tab td{vertical-align:middle}
.cp3-tab td.cp3-acao{text-align:right;width:44px}
.cp2-foto-onu{margin-bottom:10px} .cp2-foto-onu svg{max-width:100%!important;height:auto}
.cp2-foto-rot .cp-foto{width:110px;height:78px;margin:0} .cp2-foto-rot .cp-equip{width:100px}
html[data-theme="dark"] .cp-foto{background:radial-gradient(ellipse 60% 55% at 50% 58%,rgba(255,255,255,.13),rgba(255,255,255,.04) 60%,transparent 75%)}

/* ===== firmware (2026-10-08) ===== */
.cp-ov-caixa.cp-fw{width:min(560px,100%)}
.cp-ov-caixa.cp-fw-cat{width:min(680px,100%)}
.fw-atual{display:flex;gap:18px;align-items:center;background:var(--papel);border-radius:10px;padding:10px 12px;margin-bottom:12px}
.fw-atual small,.fw-form label{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.fw-atual b{font-size:14px;color:var(--tinta)} .fw-atual .cp-chip{margin-left:auto}
.fw-lista{display:flex;flex-direction:column;gap:6px}
.fw-op{display:flex;align-items:center;gap:10px;border:1.5px solid var(--linha);border-radius:10px;padding:9px 12px;cursor:pointer}
.fw-op:hover{border-color:var(--azul-esc)} .fw-op.on{border-color:var(--azul-esc);background:rgba(99,102,241,.06)}
.fw-op.dis{opacity:.6;cursor:default} .fw-op.dis:hover{border-color:var(--linha)}
.fw-op>div{flex:1;min-width:0} .fw-op b{display:block;font-size:14px;color:var(--tinta)} .fw-op small{display:block;font-size:11px;color:var(--suave);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fw-hist{margin-top:12px;font-size:12px} .fw-hist summary{cursor:pointer;color:var(--suave);font-weight:700}
.fw-h{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;padding:4px 0;border-bottom:1px solid var(--linha)} .fw-h.err span:nth-child(3){color:var(--vermelho)}
.fw-de{display:flex;align-items:center;justify-content:center;gap:14px;font-size:18px;font-weight:700;color:var(--tinta);margin:6px 0 12px}
.fw-de i{font-style:normal;color:var(--suave)}
.fw-alerta{background:var(--amber-bg);color:#8A5A00;border-radius:8px;padding:8px 10px;font-size:12.5px;margin-bottom:10px}
.fw-ciente{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--tinta);cursor:pointer}
.fw-passos{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.fw-passo{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--suave)}
.fw-passo i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:800;background:var(--papel);border:1.5px solid var(--linha)}
.fw-passo.ok{color:var(--tinta)} .fw-passo.ok i{background:var(--verde);border-color:var(--verde);color:#fff}
.fw-passo.run{color:var(--tinta);font-weight:700} .fw-passo.run i{border-color:var(--azul-esc)}
.fw-passo.err{color:var(--vermelho);font-weight:700} .fw-passo.err i{background:var(--vermelho);border-color:var(--vermelho);color:#fff}
.fw-msg{font-size:13px;font-weight:600;margin-top:10px} .fw-msg.ver{color:var(--verde)} .fw-msg.verm{color:var(--vermelho)}
.fw-tempo{font-size:11.5px;margin-top:4px}
.fw-grupo{border:1px solid var(--linha);border-radius:10px;padding:8px 12px;margin-bottom:8px}
.fw-gt{display:flex;gap:10px;align-items:baseline;margin-bottom:4px} .fw-gt b{font-size:13.5px;color:var(--tinta)} .fw-gt span{font-size:11.5px}
.fw-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--linha)}
.fw-item>div{flex:1;min-width:0} .fw-item b{display:block;font-size:13px;color:var(--tinta)} .fw-item small{display:block;font-size:11px;color:var(--suave);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fw-rec{cursor:pointer} .fw-conf-rem{width:auto!important;padding:0 8px;font-size:11px}
.fw-novo{margin-top:10px;border:1px dashed var(--linha);border-radius:10px;padding:8px 12px} .fw-novo summary{cursor:pointer;font-weight:700;font-size:13px;color:var(--azul-esc)}
.fw-form{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.fw-form input{display:block;width:100%;box-sizing:border-box;margin-top:3px;border:1.5px solid var(--linha);border-radius:8px;padding:7px 9px;font:13px/1.2 ui-monospace,Consolas,monospace;color:var(--texto);background:var(--branco)}
.fw-form2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fw-barra{position:relative;height:20px;border-radius:6px;background:var(--papel);overflow:hidden} .fw-barra i{position:absolute;inset:0 auto 0 0;width:0;background:var(--azul-esc);opacity:.35;transition:width .2s}
.fw-barra span{position:relative;font-size:11.5px;padding-left:8px;line-height:20px;color:var(--tinta)}
html[data-theme="dark"] .fw-alerta{background:rgba(241,190,90,.12);color:#f1d39c}.fw-cl{margin:-2px 0 4px 34px;padding:8px 12px;border-left:3px solid var(--azul-esc);background:var(--papel);border-radius:0 8px 8px 0;font-size:12px}
.fw-item .fw-cl,.fw-det .fw-cl{margin:6px 0 2px 0}
.fw-cl.vazio{border-left-color:var(--linha);color:var(--suave)}
.fw-cl-t{font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-2);margin-bottom:4px} .fw-cl-t a{text-decoration:none}
.fw-cl ul{margin:0;padding-left:16px;color:var(--texto);line-height:1.5}
.fw-det summary{cursor:pointer;font-size:11px;color:var(--azul-esc);margin-top:2px}
.fw-of>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.fw-of>summary::-webkit-details-marker{display:none}
.fw-of[open]>summary{margin-bottom:8px}
.fw-mais{margin-left:auto;font-size:12px;color:var(--texto)}
.fw-pq{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.fw-ofv{align-items:flex-start}
.fw-obs{font-size:11.5px;color:var(--suave);margin-top:6px;line-height:1.45}
.fw-ref-at{font-size:11px;margin-bottom:8px}
.cp-chip:disabled{opacity:.45;cursor:not-allowed}
/* ===== aba Laudo (2026-10-09) ===== */
.lau{margin-top:12px}
.lau-cab{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:14px;background:var(--branco);box-shadow:var(--sombra)}
.lau-cab.ok{background:radial-gradient(ellipse at 10% 50%,rgba(139,124,255,.16),transparent 55%),var(--branco);padding:16px 20px}
.lau-cab h3{margin:0;font-size:17px;color:var(--tinta)} .lau-cab.ok h3{font-size:20px}
.lau-cab p{margin:2px 0 6px;color:var(--suave);font-size:12.5px}
.lau-de-novo{margin-left:auto;align-self:flex-start}
.lau-selo{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:26px;font-weight:800;flex:none}
.lau-selo.ok,.lau-ic.ok,.lau-r.ok{background:var(--verde-bg);color:var(--verde)}
.lau-selo.at,.lau-ic.at,.lau-r.at{background:var(--amber-bg);color:#B07A10}
.lau-selo.pb,.lau-ic.pb,.lau-r.pb{background:var(--vermelho-bg);color:var(--vermelho)}
.lau-ic.nd,.lau-r.nd{background:var(--papel);color:var(--suave)}
.lau-res{display:flex;gap:6px;flex-wrap:wrap}
.lau-r{font-size:11.5px;padding:3px 9px;border-radius:99px;font-weight:700}
.selo-net{flex:none;filter:drop-shadow(0 6px 14px rgba(31,111,214,.35));animation:seloEntra .7s cubic-bezier(.2,1.4,.4,1)}
@keyframes seloEntra{from{transform:scale(.4) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}
.lau-sec{background:var(--branco);border-radius:14px;box-shadow:var(--sombra);margin-top:10px;overflow:hidden}
.lau-sec>summary{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;list-style:none}
.lau-sec>summary::-webkit-details-marker{display:none}
.lau-sec>summary:after{content:"▾";margin-left:auto;color:var(--suave);font-size:12px} .lau-sec[open]>summary:after{content:"▴"}
.lau-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:13px;font-weight:800;flex:none}
.lau-sec b{color:var(--tinta);font-size:13.5px}
.lau-lin{color:var(--suave);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lau-corpo{padding:0 16px 14px 54px}
.lau-it{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--linha);font-size:13px;color:var(--tinta)}
.lau-it:first-child{border-top:0}
.lau-it small{display:block;color:var(--suave);font-size:11.5px;line-height:1.45}
.lau-st{width:18px;flex:none;text-align:center;font-weight:800} .lau-st.ok{color:var(--verde)} .lau-st.at{color:#B07A10} .lau-st.pb{color:var(--vermelho)} .lau-st.nd{color:var(--suave)}
.lau-tl{display:grid;grid-template-columns:max-content max-content 1fr;gap:6px 12px;font-size:12.5px;align-items:center;color:var(--texto)}
.lau-tl .d{color:var(--suave);white-space:nowrap}
.lau-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}
.lau-tag.fi{background:var(--vermelho-bg);color:var(--vermelho)} .lau-tag.en{background:var(--amber-bg);color:#B07A10}
.lau-tag.eq{background:#F4EEFF;color:#6D28D9} .lau-tag.of{background:var(--papel);color:var(--tinta-2)} .lau-tag.neu{background:var(--papel);color:var(--suave)}
.lau-acao{margin-top:10px;padding:7px 14px;border-radius:9px;font-weight:700;font-size:12.5px}
html[data-theme="dark"] .lau-selo.at,html[data-theme="dark"] .lau-ic.at,html[data-theme="dark"] .lau-r.at,html[data-theme="dark"] .lau-st.at,html[data-theme="dark"] .lau-tag.en{color:#f1d39c}
html[data-theme="dark"] .lau-tag.eq{background:rgba(139,92,246,.16);color:#c4b5fd}
@media (max-width:700px){ .lau-corpo{padding-left:16px} .lau-tl{grid-template-columns:max-content 1fr} .lau-tl span:nth-child(3n){grid-column:1/-1;margin-bottom:6px} }.lau-grupo{margin:16px 2px 0;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.lau-op{margin-top:6px;align-items:center}.lau-op small{font-size:10.5px;font-weight:700;color:var(--suave);margin-right:2px}
.cp-ts-btn{cursor:pointer;font-weight:700;gap:4px}.cp-ts-btn:hover{border-color:var(--azul-esc)}

/* ===== aba Rede (2026-10-09) ===== */
.rd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.rd-full{grid-column:1/-1}
.rd-kvs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 14px}
.rd-kvs5{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.rd-kv small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.rd-kv b{font-size:13px;color:var(--tinta);font-weight:600;overflow-wrap:anywhere}
.rd-nd{font-size:12px;color:var(--suave)}
.rd-aviso{font-size:12px;color:#8A5A00;background:var(--amber-bg);border-radius:8px;padding:7px 10px;margin-bottom:8px;line-height:1.45}
.rd-tab td{vertical-align:middle} .rd-tab tr.rd-off td{opacity:.55}
.rd-h{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--linha)} .rd-h:first-of-type{border-top:0}
.rd-h>div{flex:1;min-width:0} .rd-h b{display:block;font-size:12.5px;color:var(--tinta);font-weight:600} .rd-h small{font-size:11px;color:var(--suave)}
.rd-h.rd-desf b{text-decoration:line-through;color:var(--suave)}
.cp-ov-caixa.rd-ov{width:min(480px,100%)}
.rd-form{display:flex;flex-direction:column;gap:8px}
.rd-form label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--suave);font-weight:700}
.rd-form label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:8px;color:var(--tinta)}
.rd-form input:not([type=checkbox]),.rd-form select{border:1.5px solid var(--linha);border-radius:8px;padding:7px 9px;font:13px ui-monospace,Consolas,monospace;color:var(--texto);background:var(--branco)}
html[data-theme="dark"] .rd-aviso{background:rgba(241,190,90,.12);color:#f1d39c}
@media (max-width:700px){ .rd-grid{grid-template-columns:minmax(0,1fr)} }.rd-aviso.rd-ruim{background:var(--vermelho-bg);color:#A82636}
html[data-theme="dark"] .rd-aviso.rd-ruim{color:#e3818d}

/* histórico do sinal em sobreposição (2026-10-09) */
.cp-ov-caixa.cp-ov-hist{width:min(720px,100%)}
.cp-ov-hist h3{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cp-hist-est{margin-left:auto;font-size:12px;font-weight:400} .cp-ov-hist .cp-ov-x{font-size:16px;line-height:1}
.cp-hist-ov{min-height:120px}

/* acesso remoto: link + login/senha com copiar (2026-10-09) */
.cp-remoto-l{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cp-remoto-cred{gap:14px;border-top:1px solid var(--linha);padding-top:7px;color:var(--suave)}
.cp-remoto-cred span{display:inline-flex;align-items:center;gap:6px}
.cp-remoto code{background:var(--branco);border:1px solid var(--linha);border-radius:6px;padding:2px 7px;font-size:12px;color:var(--tinta);user-select:all}

/* históricos de aparelhos e do Wi-Fi (2026-10-09) */
.cp-ov-caixa.hs-ov{width:min(640px,100%)}
.hs-ov h3{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap} .hs-x{margin-left:auto;font-size:16px;line-height:1}
.hs-filtros{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.hs-busca{margin-left:auto;border:1.5px solid var(--linha);border-radius:8px;padding:5px 9px;font-size:12px;min-width:160px;background:var(--branco);color:var(--texto)}
.hs-lista{max-height:min(60vh,520px);overflow:auto;padding-right:4px}
.hs-dia{font-size:11px;font-weight:700;color:var(--suave);text-transform:capitalize;margin:10px 0 4px;position:sticky;top:0;background:var(--branco);padding:2px 0}
.hs-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-top:1px solid var(--linha);font-size:12.5px}
.hs-hora{font-variant-numeric:tabular-nums;color:var(--suave);font-size:11.5px;min-width:38px;padding-top:1px}
.hs-ev{font-size:10px;padding-top:3px} .hs-ev.on{color:#1FA971} .hs-ev.off{color:#D33A4B}
.hs-txt{flex:1;min-width:0} .hs-txt b{display:block;font-weight:600;color:var(--tinta)} .hs-txt small{color:var(--suave);font-size:11px}
.hs-txt b[data-hsmac]{cursor:pointer} .hs-txt b[data-hsmac]:hover{text-decoration:underline}
.hs-senhas{margin-left:4px;font-weight:400}
.hs-rod{font-size:11px;margin-top:10px;text-align:right}
