/* D&T Atendimento — mesma identidade do site institucional (Sora + Inter, azul-marinho). */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/inter-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/inter-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/inter-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/inter-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/inter-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/inter-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/inter-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/inter-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/sora-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/sora-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/sora-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/sora-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
:root{
  --navy:#0B2D54; --navy2:#0E3A66; --blue:#1B62A8; --blue2:#2E7DC4; --accent:#3E9BD8;
  --sky:#EAF3FA; --sky2:#F4F9FD; --ink:#1B2735; --muted:#5C6B7C; --line:#DCE6EF;
  --wa:#25D366; --white:#fff;
  --alerta:#B4531F; --alerta-bg:#FFF1E6; --perigo:#B3261E; --ok:#1F7A4D; --ok-bg:#E7F5EC;
  --nota:#FFF8DB; --nota-borda:#EBD98A; --saida:#DCEBF8;
  --disp:'Sora',system-ui,sans-serif; --body:'Inter',system-ui,sans-serif;
  --raio:10px;
}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{font-family:var(--body);color:var(--ink);background:var(--sky2);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden}
h1,h2{font-family:var(--disp);color:var(--navy);line-height:1.2;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}
button:disabled{cursor:not-allowed;opacity:.5}
a{color:var(--blue)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
small{font-size:12px;color:var(--muted)}

/* ---------- botoes e campos ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--disp);font-weight:600;font-size:13px;padding:9px 15px;border-radius:9px;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.btn.primario{background:var(--blue);color:#fff}
.btn.primario:hover:not(:disabled){background:var(--navy)}
.btn.fantasma{background:#fff;color:var(--navy);border:1.5px solid var(--line);padding:7.5px 13.5px}
.btn.fantasma:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.btn.perigo{background:var(--perigo);color:#fff}
.btn.perigo-txt{color:var(--perigo)}
.btn.perigo-txt:hover:not(:disabled){border-color:var(--perigo);color:var(--perigo)}
.btn.largo{width:100%;padding:13px}
.btn.redondo{width:42px;height:42px;padding:0;border-radius:50%;flex:none}
.btn svg{width:17px;height:17px}
.btn-ico{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:9px;color:var(--muted);flex:none}
.btn-ico:hover:not(:disabled){background:var(--sky);color:var(--navy)}
.btn-ico.mini{width:26px;height:26px;border-radius:7px}
.btn-ico.ligado{background:var(--nota);color:#7A5A00}
.link{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:2px}
label{display:block;font-weight:600;font-size:13px;color:var(--navy)}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;background:#fff;font-weight:400;font-size:14px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue2);box-shadow:0 0 0 3px rgba(62,155,216,.2)}
textarea{resize:none}
.erro{color:var(--perigo);font-weight:600;font-size:13px}
.eyebrow{font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue2)}
.eyebrow.claro{color:#9CCBEE}

/* ---------- login ---------- */
.login{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);height:100%;background:#fff}
.login-lado{background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 60%,#134a80 100%);color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.login-lado h1{color:#fff;font-size:clamp(26px,3.2vw,40px);font-weight:700;margin:14px 0 14px;max-width:16ch}
.login-lado img{height:auto}
.login-sub{color:#C9DDEE;font-size:16px;max-width:42ch}
.login-rodape{color:#8FB0CD;font-size:12.5px}
.login-form{align-self:center;justify-self:center;width:min(360px,100% - 48px);display:grid;gap:18px}
.login-form h2{font-size:26px}

/* ---------- estrutura ---------- */
.app{display:grid;grid-template-columns:72px 372px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100%}
.rail{grid-row:1/3;background:var(--navy);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:18px}
.rail-logo{border-radius:10px;background:#fff}
.rail-itens{display:flex;flex-direction:column;gap:4px;flex:1;width:100%;padding:0 8px}
.rail-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;padding:9px 0 7px;border-radius:10px;color:#A9C3DB;font-size:10px;font-weight:600}
.rail-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.rail-btn.ativo{background:rgba(255,255,255,.14);color:#fff}
.rail-btn.apagado{opacity:.55}
.rail-btn .selo{position:absolute;top:3px;right:8px}
.rail-base{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding:0 8px}
.rail-eu{width:38px;height:38px;border-radius:50%;background:var(--blue2);color:#fff;font-family:var(--disp);font-weight:700;font-size:13px}
.rail-eu:hover{background:var(--accent)}
.selo{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--alerta);color:#fff;font-size:11px;font-weight:700;line-height:1;flex:none}

.faixa{grid-column:2/4;background:var(--alerta-bg);color:#7A3410;border-bottom:1px solid #F3C9A8;padding:8px 18px;font-size:13px}
.app:not(.com-faixa) .lista,.app:not(.com-faixa) .conversa,.app:not(.com-faixa) .painel{grid-row:1/3}

/* ---------- lista ---------- */
.lista{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.lista-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 16px 10px}
.lista-topo h1{font-size:20px}
.lista-acoes{display:flex;align-items:center;gap:6px;min-width:0}
.sel-mini{width:auto!important;max-width:150px;margin:0!important;padding:6px 8px!important;font-size:12.5px!important}
.abas{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.aba{padding:9px 8px 10px;font-size:12.5px;font-weight:600;color:var(--muted);border-bottom:2.5px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:5px}
.aba:hover{color:var(--navy)}
.aba.ativa{color:var(--blue);border-bottom-color:var(--blue)}
.aba-n{min-width:18px;padding:1px 5px;border-radius:9px;background:var(--sky);color:var(--navy);font-size:11px;text-align:center}
.aba-n.alerta{background:var(--alerta);color:#fff}
.busca{position:relative;margin:10px 12px 6px}
.busca span{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);display:grid}
.busca span svg{width:16px;height:16px}
.busca input{margin:0!important;padding-left:34px!important;background:var(--sky2)!important;border-color:transparent!important}
.itens{list-style:none;overflow-y:auto;flex:1;padding:2px 6px 12px}
.item{display:flex;gap:11px;width:100%;text-align:left;padding:10px;border-radius:var(--raio)}
.item:hover{background:var(--sky2)}
.item.ativo{background:var(--sky)}
.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--cor,var(--blue));color:#fff;font-family:var(--disp);font-weight:700;font-size:14px;flex:none}
.avatar.grupo{border-radius:12px}
.avatar svg{width:20px;height:20px}
.item-meio{min-width:0;flex:1;display:grid;gap:2px}
.item-l1,.item-l2{display:flex;align-items:center;gap:8px}
.item-nome{font-weight:600;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.item-hora{font-size:11.5px;color:var(--muted);flex:none}
.item-previa{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.item-l3{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.item-l3:empty{display:none}
.tag,.chip,.estado{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;white-space:nowrap}
.tag{background:var(--sky);color:var(--navy)}
.tag.espera,.estado.espera{background:var(--alerta-bg);color:var(--alerta)}
.tag.vazio{background:transparent;color:var(--muted);border:1px dashed var(--line)}
.chip{background:color-mix(in srgb,var(--cor) 12%,#fff);color:var(--cor)}
.estado{background:var(--sky);color:var(--navy)}
.estado.ok{background:var(--ok-bg);color:var(--ok)}
.vazio-lista{padding:36px 22px;text-align:center;color:var(--muted)}

/* ---------- conversa ---------- */
.conversa{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--sky2)}
.vazio-conversa{margin:auto;text-align:center;max-width:400px;padding:24px;color:var(--muted)}
.vazio-conversa img{height:auto;margin:0 auto 22px;opacity:.9}
.vazio-conversa h2{font-size:20px;margin-bottom:8px}
.cab{display:flex;align-items:center;gap:12px;padding:11px 18px;background:#fff;border-bottom:1px solid var(--line)}
.cab-info{min-width:0;flex:1}
.cab-nome{display:flex;align-items:center;gap:4px;font-family:var(--disp);font-weight:600;font-size:15.5px;color:var(--navy)}
.cab-nome span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-sub{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;font-size:12.5px;color:var(--muted);margin-top:2px}
.cab-acoes{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.so-mobile{display:none}

.msgs{flex:1;overflow-y:auto;padding:16px max(18px,calc((100% - 860px)/2));display:flex;flex-direction:column;gap:3px}
.m{display:flex;align-items:flex-end;gap:4px;max-width:min(78%,620px)}
.m.eu{align-self:flex-end;flex-direction:row-reverse}
.m.ele{align-self:flex-start}
.m.nota{align-self:center;max-width:min(90%,620px);margin:5px 0}
.balao{background:#fff;border-radius:12px;padding:7px 10px 5px;box-shadow:0 1px 1px rgba(11,45,84,.08);min-width:86px;overflow-wrap:anywhere}
.m.eu .balao{background:var(--saida);border-bottom-right-radius:4px}
.m.ele .balao{border-bottom-left-radius:4px}
.m.nota .balao{background:var(--nota);border:1px solid var(--nota-borda)}
.m.apagada .balao{opacity:.7}
.m-autor{font-size:12px;font-weight:700;color:var(--blue);margin-bottom:2px}
.m-autor small{font-weight:400;margin-left:6px}
.m.nota .m-autor{color:#7A5A00}
.m-txt{white-space:pre-wrap}
.m-pe{display:flex;justify-content:flex-end;align-items:center;gap:5px;font-size:10.5px;color:var(--muted);margin-top:2px}
.marca{font-style:italic}
.tq{display:inline-grid;color:#8696A6}
.tq.lido{color:var(--blue2)}
.tq.falha{color:var(--perigo);font-weight:700}
.m-citada{border-left:3px solid var(--accent);background:rgba(11,45,84,.06);border-radius:6px;padding:4px 8px;margin-bottom:4px;font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.m-reacoes{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:10px;background:rgba(11,45,84,.07);font-size:13px}
.m-resp{opacity:0}
.m:hover .m-resp,.m-resp:focus-visible{opacity:1}
.m-dia,.m-sis{align-self:center;margin:9px 0 5px;font-size:11.5px;color:var(--muted);text-align:center}
.m-dia span{background:#fff;border:1px solid var(--line);border-radius:8px;padding:3px 10px;font-weight:600}
.m-sis span{background:rgba(11,45,84,.06);border-radius:8px;padding:3px 10px;display:inline-block}
.midia-img img{display:block;max-width:100%;max-height:340px;min-height:80px;min-width:120px;border-radius:8px;margin-bottom:4px;background:var(--sky)}
.midia-fig{display:block;width:130px;height:130px;object-fit:contain}
.balao audio{display:block;width:260px;max-width:100%;height:40px}
.balao video{display:block;max-width:100%;max-height:340px;border-radius:8px;background:#000}
.midia-doc,.midia-espera{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;background:rgba(11,45,84,.06);color:var(--navy);text-decoration:none;margin-bottom:4px;text-align:left;font-size:13px}
.midia-doc span,.midia-espera span{display:grid;min-width:0}
.midia-doc b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.midia-espera:hover{background:rgba(11,45,84,.11)}

.comp{background:#fff;border-top:1px solid var(--line);padding:10px max(18px,calc((100% - 860px)/2)) 8px}
.comp.modo-nota{background:var(--nota)}
.comp-linha{display:flex;align-items:flex-end;gap:6px}
.comp textarea{margin:0!important;flex:1;min-height:42px;max-height:160px;border-radius:21px!important;padding:10px 16px!important}
.comp.modo-nota textarea{border-color:var(--nota-borda)}
.comp-dica{font-size:11.5px;color:var(--muted);margin:5px 0 0 86px}
.comp-trava{font-size:12.5px;color:#7A3410;background:var(--alerta-bg);border-radius:8px;padding:7px 11px;margin-bottom:8px}
.comp-citar{display:flex;align-items:center;gap:8px;border-left:3px solid var(--accent);background:var(--sky2);border-radius:6px;padding:5px 9px;margin-bottom:8px;font-size:12.5px}
.comp-citar div{flex:1;min-width:0;display:grid}
.comp-citar span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- cadastros ---------- */
.painel{grid-column:2/4;overflow-y:auto;padding:28px clamp(18px,4vw,48px) 48px}
.painel-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:22px}
.painel-topo h1{font-size:24px}
.painel-topo p{color:var(--muted);margin-top:4px;max-width:62ch}
.painel-aviso{background:var(--alerta-bg);color:#7A3410;border-radius:9px;padding:10px 14px;margin-bottom:16px}
.painel-vazio{color:var(--muted);padding:26px 0;text-align:center}
.painel-nota{margin-top:26px;font-size:13px;color:var(--muted);max-width:76ch;border-left:3px solid var(--accent);padding-left:12px}
.cartoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.cartao{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.cartao-topo{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cartao-topo h2{font-size:17px}
.cartao-fone{color:var(--muted);margin:3px 0 10px}
.status{display:flex;align-items:center;gap:7px;font-weight:600;font-size:13px}
.status i{width:9px;height:9px;border-radius:50%;background:#A9B6C4}
.s-conectado{color:var(--ok)} .s-conectado i{background:var(--wa)}
.s-conectando i,.s-qr i,.s-reconectando i{background:#E0A019;animation:pulsa 1.2s infinite}
.s-reconectando,.s-deslogado,.s-bloqueado{color:var(--alerta)}
.s-deslogado i,.s-bloqueado i{background:var(--perigo)}
@keyframes pulsa{50%{opacity:.35}}
.cartao-acoes{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.tabela{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tabela th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:11px 16px;background:var(--sky2)}
.tabela td{padding:11px 16px;border-top:1px solid var(--line);vertical-align:middle}
.tabela tr.inativo td{color:var(--muted)}
.td-acoes{text-align:right;white-space:nowrap}
.td-acoes .btn{margin-left:6px}

/* ---------- modal e avisos ---------- */
.veu{position:fixed;inset:0;background:rgba(11,45,84,.45);display:grid;place-items:center;padding:18px;z-index:50;overflow-y:auto}
.modal{background:#fff;border-radius:16px;padding:24px;width:min(440px,100%);display:grid;gap:14px;box-shadow:0 20px 60px rgba(11,45,84,.3)}
.modal h2{font-size:19px}
.modal-txt{color:var(--muted)}
.modal-txt.pequeno{font-size:12.5px}
.modal-acoes{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;flex-wrap:wrap}
.modal-acoes.coluna{flex-direction:column}
.opcao{display:flex;align-items:flex-start;gap:8px;font-weight:500}
.opcao input{margin-top:3px}
.opcao+select{margin-top:-6px}
fieldset{border:none}
legend{font-weight:600;font-size:13px;color:var(--navy);margin-bottom:7px}
.marcas{display:grid;gap:6px}
.marcas label{font-weight:400;display:flex;gap:8px;align-items:center}
.cores{display:flex;flex-wrap:wrap;gap:9px}
.cores legend{width:100%}
.cores input{position:absolute;opacity:0}
.cores span{display:block;width:30px;height:30px;border-radius:50%;background:var(--cor);border:3px solid #fff;box-shadow:0 0 0 1.5px var(--line);cursor:pointer}
.cores input:checked+span{box-shadow:0 0 0 2.5px var(--navy)}
.cores input:focus-visible+span{box-shadow:0 0 0 3px var(--accent)}
.anexo-previa{max-width:100%;max-height:300px;border-radius:10px;justify-self:center}
.qr-area{display:grid;place-items:center;gap:8px;min-height:300px;text-align:center}
.qr-area img{border:1px solid var(--line);border-radius:12px;padding:8px}
.passos{padding-left:20px;color:var(--muted);font-size:13px;display:grid;gap:3px}
.girando{color:var(--muted);font-weight:600}
.avisos{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:grid;gap:8px;z-index:60;width:min(420px,calc(100% - 32px))}
.aviso{background:var(--navy);color:#fff;border-radius:10px;padding:11px 15px;font-weight:500;box-shadow:0 8px 24px rgba(11,45,84,.25)}
.aviso.erro{background:var(--perigo)}

/* ---------- painel (tela inicial de supervisor, gerente e admin) ---------- */
.faixa{display:flex;flex-wrap:wrap;gap:4px 20px;align-items:center}
.faixa svg{vertical-align:-3px}
.filtros{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.seg button{padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--muted)}
.seg button+button{border-left:1.5px solid var(--line)}
.seg button.ativo{background:var(--navy);color:#fff}
.sec{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}
.cartelas{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.cartela{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;display:grid;gap:2px;align-content:start}
.cartela-rot{font-size:12.5px;font-weight:600;color:var(--muted)}
.cartela strong{font-family:var(--disp);font-size:28px;font-weight:700;line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums}
.cartela.alerta{border-color:#F3C9A8;background:var(--alerta-bg)}
.bloco{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-top:16px;overflow-x:auto}
.bloco>header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.bloco h2{font-size:16px}
.bloco .tabela{border:none;border-radius:0}
.bloco .tabela th{background:none;padding-left:10px;padding-right:10px}
.bloco .tabela td{padding-left:10px;padding-right:10px}
.tabela .num{text-align:right;font-variant-numeric:tabular-nums}
/* grafico de barras: uma serie, cor da marca; grade e eixos discretos */
.grafico{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;height:230px;min-width:420px}
.grafico-y{display:flex;flex-direction:column;justify-content:space-between;padding:11px 0 15px;font-size:11px;color:var(--muted);text-align:right}
.grafico-area{position:relative;display:grid;grid-template-rows:minmax(0,1fr) 22px}
.grafico-grade{position:absolute;inset:18px 0 22px 0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.grafico-grade i{border-top:1px solid var(--line)}
.grafico-grade i:last-child{border-color:#B9C7D6}
.barras{display:flex;align-items:stretch;min-height:0;position:relative}
/* a coluna inteira e o alvo do mouse (maior que a barra); 18px de folga para o rotulo do pico */
.coluna{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:18px 1px 0;outline-offset:-2px}
.barra{display:block;flex:none;width:100%;max-width:44px;background:var(--blue);border-radius:4px 4px 0 0}
.coluna:hover .barra,.coluna:focus-visible .barra{background:var(--navy)}
.barra-v{flex:none;font-size:11px;font-weight:600;line-height:16px;color:var(--ink)}
.grafico-x{display:flex}
.grafico-x span{flex:1;min-width:0;padding-top:5px;font-size:11px;color:var(--muted);text-align:center;white-space:nowrap}
.dica{position:fixed;z-index:70;background:var(--ink);color:#fff;font-size:12px;padding:6px 9px;border-radius:7px;pointer-events:none;white-space:nowrap}
/* numeros de WhatsApp no painel: uma linha por numero. Relogio dos 14 dias sempre com cor + icone + texto */
.nums{display:grid;gap:8px}
.num-linha{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,230px);align-items:center;gap:6px 14px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.num-linha.atencao{border-color:#F3C9A8;background:var(--alerta-bg)}
.num-linha.critico{border-color:#EDB7B2;background:#FDEDEB}
.num-id{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.num-id b{font-family:var(--disp);font-weight:600;font-size:13.5px;color:var(--navy)}
.num-linha .status{font-size:12.5px;white-space:nowrap}
.num-dir{display:flex;justify-content:flex-end;min-width:0}
.num-relogio{display:grid;grid-template-columns:auto minmax(36px,1fr) auto;align-items:center;gap:8px;width:100%;font-size:12px;color:var(--muted);white-space:nowrap}
.relogio-rot{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--ok)}
.num-linha.atencao .relogio-rot{color:var(--alerta)}
.num-linha.critico .relogio-rot{color:var(--perigo)}
.medidor{height:8px;border-radius:4px;background:rgba(11,45,84,.12);overflow:hidden}
.medidor i{display:block;height:100%;border-radius:4px;background:var(--ok)}
.num-linha.atencao .medidor i{background:var(--alerta)}
.num-linha.critico .medidor i{background:var(--perigo)}
.num-aviso{grid-column:1/-1;display:flex;align-items:center;gap:12px;font-size:12.5px}
.num-aviso p{flex:1;min-width:0}
.num-linha .btn{padding:6px 12px;font-size:12.5px}
.selo-demo{display:inline-block;font-family:var(--body);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border-radius:5px;background:var(--navy);color:#fff;vertical-align:middle}
.s-numero_errado{color:var(--alerta)}
.s-numero_errado i{background:var(--perigo)}

/* painel "denso": tudo cabe numa tela — cartelas numa faixa so e blocos lado a lado */
.painel.denso{padding:14px clamp(14px,2vw,28px) 22px;display:flex;flex-direction:column}
/* O painel ocupa a altura da tela: a linha de cima (grafico + WhatsApp) cresce com o espaco
   que sobrar e as tabelas ficam embaixo. Com muita linha nas tabelas, a pagina rola. */
.painel.denso>*{flex:none;width:100%;max-width:1620px;align-self:center}
.painel.denso>.blocos{flex:1 0 auto}
.denso .painel-topo{margin-bottom:10px;align-items:center}
.denso .painel-topo h1{font-size:20px}
.denso .painel-topo p{margin-top:0;font-size:12.5px}
.denso .sec{margin:0 0 6px;font-size:11px}
.grupos-cartelas{display:grid;grid-template-columns:3fr 5fr;gap:10px 18px}
.denso .cartelas{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}
.denso .cartela{padding:9px 12px;border-radius:11px;gap:0}
.denso .cartela-rot{font-size:11.5px}
.denso .cartela strong{font-size:21px}
.denso .cartela small{font-size:11px;line-height:1.3}
.blocos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(max-content,1fr) auto;gap:12px;margin-top:12px;align-items:stretch}
/* piso da linha de cima: cabem 4 numeros de WhatsApp sem apertar */
.blocos>.bloco:nth-child(-n+2){min-height:280px}
.blocos>.bloco:last-child:nth-child(odd){grid-column:1/-1}
.denso .bloco>header small{text-align:right}
.denso .bloco{margin-top:0;padding:12px 14px;display:flex;flex-direction:column}
.denso .bloco>header{margin-bottom:8px}
.denso .bloco h2{font-size:14.5px}
.denso .grafico{flex:1;height:auto;min-height:190px;min-width:300px}
.denso .tabela th{padding:6px 7px;font-size:10.5px;white-space:nowrap}
.denso .tabela td{padding:6px 7px;font-size:13px}

/* ---------- telas menores ---------- */
@media (max-width:1180px){
  .blocos{grid-template-columns:1fr}
}
@media (max-width:1100px){
  .app{grid-template-columns:72px 320px minmax(0,1fr)}
  .cab{flex-wrap:wrap}
  .cab-acoes{width:100%;justify-content:flex-start}
  .grupos-cartelas{grid-template-columns:1fr}
}
@media (max-width:820px){
  .login{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .login-lado{padding:28px 24px;gap:18px}
  .login-sub,.login-rodape{display:none}
  .app{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto}
  .rail{grid-row:3;grid-column:1;flex-direction:row;padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:6px}
  .rail-logo{display:none}
  .rail-itens{flex-direction:row;padding:0}
  .rail-base{flex-direction:row;width:auto;padding:0}
  .rail-base .rail-btn{width:44px}
  .faixa{grid-column:1;grid-row:1}
  .lista,.conversa,.painel,.app:not(.com-faixa) .lista,.app:not(.com-faixa) .conversa,.app:not(.com-faixa) .painel{grid-column:1;grid-row:2}
  .lista{border-right:none}
  .conversa{display:none}
  .app.chat-aberto .conversa{display:flex}
  .app.chat-aberto .lista{display:none}
  .so-mobile{display:inline-grid}
  .m{max-width:90%}
  .comp-dica{display:none}
  .painel{padding:20px 14px 32px}
  .tabela{display:block;overflow-x:auto}
  .num-linha{grid-template-columns:minmax(0,1fr) auto}
  .num-dir{grid-column:1/-1;justify-content:flex-start}
  .num-aviso{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
