/* Painel RodaPref — visual do protótipo: marinho + azul royal, menu lateral, cartões claros. Tela sempre se adapta ao aparelho. */
:root{--navy:#0A1E4A;--navy-2:#112C6B;--royal:#1F4FD6;--royal-hi:#3C6DF2;--sky:#E7EEFC;--ink:#0E1A33;--muted:#566789;--line:#D7E0F0;--bg:#EBF0F9;--card:#fff;
  --ok:#0E7F55;--ok-bg:#DDF3E9;--warn:#8F5B00;--warn-bg:#FFEFC9;--bad:#B0302B;--bad-bg:#FCE2E0;--info:#1B45B8;--info-bg:#E2EAFD;
  --metal:linear-gradient(135deg,#8DA2C8 0%,#EAF1FC 26%,#B3C3DF 47%,#F8FBFF 62%,#8CA2C7 100%);
  --bg2:#F7F9FD;--tx:var(--ink);--mut:var(--muted);--bd:var(--line);--pri:var(--royal);--pri-tx:#fff;--pri-bg:var(--sky);--perigo:var(--bad);--av:var(--warn);--av-bg:var(--warn-bg);
  --f-display:'Sora','Public Sans',system-ui,sans-serif;--f-body:'Public Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:400 .93rem/1.5 var(--f-body);-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0 0 .6rem;line-height:1.2;font-family:var(--f-display);text-wrap:balance}h1{font-size:1.4rem}h2{font-size:1.05rem}h3{font-size:1rem}
a{color:var(--royal);font-weight:600}
:focus-visible{outline:2.5px solid var(--royal-hi);outline-offset:2px}

/* barra superior e janela */
.topbar{position:sticky;top:0;z-index:20;background:var(--navy);border-bottom:1px solid #20396f}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--metal);opacity:.9}
.topbar-in{max-width:1320px;margin:0 auto;padding:.55rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.topbar img{height:2.1rem;width:auto;display:block}
.topbar .quem{margin-left:auto;color:#C9D7F5;font-size:.88rem;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.topbar .quem button.b{background:transparent;color:#fff;border-color:#4a64a1}
.wrap{max-width:1320px;margin:0 auto;padding:1.1rem 1rem 2.5rem}
.web{display:grid;grid-template-columns:14.5rem minmax(0,1fr);background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 18px 40px -22px rgba(10,30,74,.45);min-height:70vh}
.side{background:linear-gradient(180deg,var(--navy) 0%,#0C2557 100%);color:#D5E0F8;padding:1.1rem .75rem;display:flex;flex-direction:column;gap:.25rem;position:relative}
.side::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--metal)}
.side .mun{padding:.1rem .6rem .9rem;border-bottom:1px solid #20396f;margin-bottom:.5rem}
.side .mun b{display:block;color:#fff;font-family:var(--f-display);font-size:.9rem;overflow-wrap:anywhere}.side .mun span{font-size:.78rem;color:#9FB4E2}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav button{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;border:0;background:transparent;color:#C7D6F5;padding:.62rem .75rem;border-radius:9px;font:inherit;font-weight:500;position:relative;cursor:pointer}
.side nav button:hover{background:#13307A}
.side nav button[aria-current="page"]{background:#17398F;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.side nav button[aria-current="page"]::before{content:"";position:absolute;left:-.75rem;top:.5rem;bottom:.5rem;width:4px;border-radius:0 4px 4px 0;background:var(--metal)}
.side nav .grp{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#7F97CB;padding:.8rem .75rem .25rem}
.content{padding:1.4rem 1.5rem 1.8rem;min-width:0;background:var(--bg2)}
@media(max-width:900px){
  .web{grid-template-columns:minmax(0,1fr)}
  .side{flex-direction:row;overflow-x:auto;padding:.5rem;gap:.3rem}.side .mun,.side nav .grp{display:none}.side nav{flex-direction:row;gap:.25rem}
  .side nav button{white-space:nowrap;padding:.5rem .8rem}.side nav button[aria-current="page"]::before{display:none}
  .content{padding:1rem .85rem 1.4rem}}

/* cartões, botões, formulário */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem}
.card.sem-pad{padding:0;overflow:hidden}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.85rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.card-h h2{margin:0;font-size:.95rem}
.linha{display:flex;gap:.7rem;flex-wrap:wrap;align-items:flex-end}
.grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.7rem}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:var(--ink);font-weight:600}
input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #BFCCE6;border-radius:9px;padding:.5rem .65rem;min-width:0;min-height:2.4rem}
input:focus,select:focus{border-color:var(--royal-hi)}
label.chk{flex-direction:row;align-items:center;gap:.45rem;font-weight:500}label.chk input{width:auto;min-height:0}
button.b,a.b{font:inherit;font-weight:600;font-size:.85rem;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:.5rem .9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;min-height:2.3rem}
button.b:hover,a.b:hover{border-color:#B7C6E4;background:#F5F8FE}
.b.pri{background:linear-gradient(180deg,#2B5FE6,#1B45B8);border-color:#173C9E;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.b.pri:hover{background:linear-gradient(180deg,#3A6DF2,#1F4FD6)}
button.b.perigo{color:var(--bad)}button.b.peq,a.b.peq{padding:.25rem .65rem;font-size:.8rem;min-height:2rem}
button:disabled{opacity:.5;cursor:not-allowed}
.tab-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:600;padding:.55rem .8rem;background:#F2F5FB;border-bottom:1px solid var(--line)}
td{padding:.65rem .8rem;border-bottom:1px solid #E7ECF6;vertical-align:top}
td.acoes{white-space:nowrap;text-align:right}td.acoes>*{margin-left:.3rem}
tbody tr:hover{background:#F8FAFE}
.vazio{color:var(--muted);padding:1.2rem .4rem;text-align:center}
.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.08rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--info-bg);color:var(--info)}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.av{background:var(--warn-bg);color:var(--warn)}.tag.off{background:#E9EDF5;color:#46556F}.tag.erro{background:var(--bad-bg);color:var(--bad)}
.mut,.muted{color:var(--muted)}.peq{font-size:.85rem}
.dica{font-size:.8rem;color:var(--muted);margin-top:.2rem;font-weight:400}
.aviso{background:var(--warn-bg);color:#6B4400;padding:.55rem .75rem;border-radius:10px;font-size:.86rem;margin:.5rem 0;border:1px solid #EBCB86}
.cab{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}.cab h2{margin:0;font-size:1.25rem}.cab .esp{flex:1}.cab h2{margin-right:auto}
.pass{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px dashed var(--line)}.pass .esp{flex:1}
.res{border:1px solid var(--line);border-radius:9px;margin-top:.3rem;max-height:13rem;overflow:auto;background:#fff}
.res button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #E7ECF6;padding:.45rem .65rem;font:inherit;color:var(--ink);cursor:pointer}.res button:hover{background:var(--sky)}
dialog.modal{border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:1.2rem;width:min(40rem,94vw);max-height:92vh}
dialog.modal.largo{width:min(62rem,96vw)}
dialog.modal::backdrop{background:rgba(7,18,45,.5)}
#toasts{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:.4rem;z-index:50;width:min(32rem,92vw)}
.toast{background:var(--navy);color:#fff;padding:.6rem .9rem;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.25)}.toast.erro{background:var(--bad)}
input[type=search]{min-width:min(100%,18rem)}
ul.pend{list-style:none;padding:0;margin:.4rem 0 1rem}ul.pend li{padding:.35rem 0;border-bottom:1px dashed var(--line)}
fieldset.sem-borda{border:0;margin:0;padding:0;min-width:0}

/* login */
.login-pg{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,var(--navy) 0%,#123585 100%)}
.login{width:min(24rem,100%)}.login img{display:block;height:3rem;width:auto;margin:0 auto 1.2rem}
.login .card{padding:1.4rem;margin:0}.login p.mut{text-align:center;color:#C9D7F5;margin:0 0 .8rem}

/* início */
.hero{position:relative;overflow:hidden;border-radius:14px;padding:1.3rem 1.5rem;color:#fff;background:linear-gradient(120deg,var(--navy) 0%,#123585 60%,#1F4FD6 120%);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
.hero::after{content:"";position:absolute;top:-40%;bottom:-40%;right:18%;width:90px;transform:rotate(24deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.17),transparent);pointer-events:none}
.hero .eyebrow{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#B9CBF3}
.hero h1{font-size:1.5rem;margin:.25rem 0 0}.hero .lead{color:#CFDBF7;margin:.25rem 0 0;max-width:46ch}
.hero button.b{background:var(--metal);border-color:#8CA2C7;color:var(--navy)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem;margin-bottom:1rem}
.stat{padding:.75rem .9rem;border-radius:12px;background:#fff;border:1px solid var(--line)}
.stat b{display:block;font-family:var(--f-display);font-size:1.5rem;line-height:1.1;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:.8rem}
.grid2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:1rem;align-items:start}
@media(max-width:1000px){.grid2{grid-template-columns:minmax(0,1fr)}}
.trow{display:grid;grid-template-columns:3.8rem minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #E7ECF6;width:100%;background:transparent;border-left:0;border-right:0;border-top:0;text-align:left;font:inherit;color:inherit}
.trow:last-child{border-bottom:0}button.trow{cursor:pointer}button.trow:hover{background:#F4F8FF}
.trow .hr{font-family:var(--f-display);font-weight:600}.trow .d b{font-weight:600}.trow .d small{display:block;color:var(--muted)}.trow .tags{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:560px){.trow{grid-template-columns:3.2rem minmax(0,1fr)}.trow .tags{grid-column:2;justify-content:flex-start}}
.alerta{display:flex;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #E7ECF6;position:relative;align-items:flex-start;flex-wrap:wrap}.alerta:last-child{border-bottom:0}
.alerta::before{content:"";position:absolute;left:0;top:.6rem;bottom:.6rem;width:3px;border-radius:0 3px 3px 0;background:var(--c,#999)}
.alerta.s-bad{--c:var(--bad)}.alerta.s-warn{--c:#D9971A}.alerta.s-info{--c:var(--royal)}.alerta.s-ok{--c:var(--ok)}
.alerta b{font-weight:600}.alerta small{display:block;color:var(--muted)}.alerta>div{flex:1;min-width:12rem}

/* rastreamento ao vivo */
.trk{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(15rem,1fr);gap:.9rem;align-items:start}
@media(max-width:900px){.trk{grid-template-columns:minmax(0,1fr)}}
.mapa{height:22rem;border:1px solid var(--line);border-radius:12px;background:#EAF0FB;z-index:0}.mapa.alto{height:min(34rem,65vh)}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.kpi{border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;background:#fff}.kpi small{display:block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.kpi b{font-size:1rem}.kpi.larga{grid-column:1/-1}
.carro-pin{width:1.6rem;height:1.6rem;border-radius:50%;background:var(--royal);border:3px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.4)}
.carro-pin.parado{background:#D9971A}
.leaflet-container{font:inherit}
tr.clicavel{cursor:pointer}tr.clicavel:hover td{background:#f3f7fb}
.carro-pin.sem-sinal{background:#C0392B}.frota{display:flex;flex-direction:column;gap:.3rem;max-height:min(34rem,65vh);overflow:auto}
.dh{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.dh input{width:7.5rem}.dh .dh-hora{width:5.5rem}.dh-dica{flex-basis:100%;text-transform:capitalize}.dh-dica.erro{color:var(--bad,#B0302B);text-transform:none}
.dh .dh-nat{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.dh{position:relative}.dh .dh-bt{min-width:2.2rem;padding:.2rem .4rem}
.achados{display:flex;flex-direction:column;gap:.3rem}.grupo{border:1px solid var(--line);border-radius:12px;padding:.8rem;margin:.7rem 0;display:flex;flex-direction:column;gap:.6rem}.sug{background:#F3F7FD;border-radius:10px;padding:.6rem .8rem}.juntar{position:sticky;bottom:.6rem;z-index:5;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;background:#fff;border:1px solid var(--line);box-shadow:0 6px 24px #0A1E4A33;border-radius:12px;padding:.6rem .9rem;margin:.6rem 0}
label.check{display:flex;flex-direction:row;align-items:center;gap:.5rem;font-weight:500}
label.check input[type=checkbox]{width:1.15rem;height:1.15rem;flex:none;margin:0;accent-color:var(--royal)}
.dh input[type=text]{width:6.4rem}.dh .dh-hora{width:4.8rem}.dh{flex-wrap:wrap;row-gap:.2rem}
.dh{gap:.3rem}.dh input[type=text]{width:5.6rem;padding-left:.5rem;padding-right:.5rem}.dh .dh-hora{width:4.3rem}.dh .dh-bt{min-width:1.9rem;padding:.2rem .25rem}
dialog h3{margin:.6rem 0 .2rem}
/* resultados de busca (paciente, CID, procedimento): uma linha por resultado */
.achados{border:1px solid var(--line);border-radius:10px;overflow:hidden;gap:0}.achados:empty{display:none}
.achados .trow{display:block;padding:.55rem .9rem;grid-template-columns:none}
.achados .trow .d{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .9rem}
.achados .trow .d b{font-weight:600}.achados .trow .d small{display:inline;white-space:nowrap}
/* data/hora: calendário e relógio sempre na mesma linha dos campos */
.dh{gap:.25rem}.dh input[type=text]{box-sizing:border-box;width:5.4rem!important;min-width:0;padding-left:.45rem;padding-right:.3rem}
.dh input.dh-hora{width:3.9rem!important}.dh .dh-bt{box-sizing:border-box;min-width:0;width:1.9rem;padding:.2rem 0;flex:none}
.caixa-acomp{background:#F6F9FE;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;gap:.8rem}
.caixa-acomp .grade{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.8rem}
.caixa-acomp input{width:100%;box-sizing:border-box}

.selcampo{position:relative;display:block}.selcampo input{width:100%;box-sizing:border-box;padding-right:2.6rem}
.selcampo .limpa{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);min-width:0;padding:.1rem .55rem;font-size:1.1rem;line-height:1.2}
input.escolhido{background:#EAF3FF;border-color:#2F6FDB;font-weight:600;color:#0A1E4A}

label.obrig input:not([type=checkbox]),label.obrig select{border:1px solid #2F6FDB!important;box-shadow:0 0 0 1px #2F6FDB22}
.legenda-obrig{display:inline-block;border:1px solid #2F6FDB;border-radius:6px;padding:0 .4rem;font-size:.8rem;color:#2F6FDB;background:#fff}

.g-ident{display:grid;grid-template-columns:2fr 1.2fr 1.4fr;gap:.7rem;align-items:start}.g-end{display:grid;grid-template-columns:10rem 2fr 6rem 1.2fr;gap:.7rem;margin-top:.6rem;align-items:start}.g-cid{display:grid;grid-template-columns:1.2fr 2fr 6rem;gap:.7rem;margin-top:.6rem;align-items:start}
.tel{display:flex;gap:.4rem}.tel input:first-child{width:4.2rem;flex:none;text-align:center}.tel input:last-child{flex:1;min-width:0}
@media(max-width:760px){.g-ident,.g-end,.g-cid{grid-template-columns:1fr}}

.chips-mes{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.2rem 0 .8rem}.chips-mes input[type=month]{width:9.5rem}

table.fixa{table-layout:fixed}table.fixa td,table.fixa th{overflow-wrap:break-word;word-break:normal;hyphens:auto}
table.fixa th:nth-child(1){width:7.6rem}table.fixa th:nth-child(2){width:22%}table.fixa th:nth-child(3){width:17%}table.fixa th:nth-child(5){width:8.5rem}table.fixa td,table.fixa th{padding-left:.6rem;padding-right:.6rem}
table.fixa .dica{margin-top:.15rem}.acoes-linha{display:flex;gap:.3rem;margin-top:.4rem;flex-wrap:wrap}

.modal-topo{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:-1.2rem;z-index:5;background:#fff;margin:-1.2rem -1.2rem .6rem;padding:.9rem 1.2rem .6rem;border-bottom:1px solid var(--line);border-radius:14px 14px 0 0}
.modal-topo h2{margin:0}
.modal-x{flex:none;width:2.2rem;height:2.2rem;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.15rem;line-height:1;cursor:pointer}
.modal-x:hover{background:#E81123;color:#fff}
.modal-xbar{position:sticky;top:-1.2rem;z-index:5;display:flex;justify-content:flex-end;height:0;overflow:visible;margin:0}.modal-xbar .modal-x{position:relative;top:-.4rem;right:-.4rem;background:#fff;box-shadow:0 0 0 1px var(--line)}

.g-nome{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:.8rem}
.g-endl{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2.4fr) minmax(0,.6fr) minmax(0,1.3fr);gap:.8rem;margin-top:.7rem}
.g-cidl{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) minmax(0,.5fr) minmax(0,1.2fr);gap:.8rem;margin-top:.7rem}
@media(max-width:800px){.g-nome,.g-endl,.g-cidl{grid-template-columns:1fr}}

.grupos-mod{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}
.grupo-mod{border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;background:#FBFCFE}
.grupo-mod h4{margin:0 0 .5rem;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
label.check.mod{display:flex;align-items:flex-start;gap:.5rem;margin:.35rem 0}label.check.mod .dica{display:block}
label.check.mod.nao-contratado{opacity:.5;cursor:not-allowed}
.conta-saida{margin:.4rem 0;font-size:.85rem;color:var(--muted)}.conta-saida b{color:var(--ink)}
/* Município de residência: campo largo, texto não corta */
.g-cid{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) 6rem}.g-cid input,.g-cid select,.g-cid>label>div{width:100%;box-sizing:border-box;min-width:0}
.vei-ico svg{display:block}.vei-foto{object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}.vei-prev{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.4rem}

/* ===== Identidade visual v2 (etapa 57): mais largura, botões prateados, cabeçalhos em azul forte, cartões coloridos, tabelas legíveis ===== */
:root{--bg:#DCE5F6;--bg2:#E8EEFA;--metal-soft:linear-gradient(180deg,#FFFFFF 0%,#E6EDF9 52%,#CBD8EE 100%);--azul-cab:linear-gradient(120deg,#0A1E4A 0%,#123585 62%,#1F4FD6 135%);--verde-cab:linear-gradient(120deg,#064E36 0%,#0B7A55 70%,#12A06E 135%)}
/* largura: usa a tela quase toda (monitores grandes) e margens menores */
.wrap,.topbar-in{max-width:1780px}.wrap{padding:1rem .75rem 2rem}.topbar-in{padding:.55rem .75rem}
.web{grid-template-columns:13rem minmax(0,1fr)}.content{padding:1.2rem 1rem 1.6rem}
@media(max-width:900px){.web{grid-template-columns:minmax(0,1fr)}.content{padding:1rem .75rem 1.4rem}}
/* cartões */
.card{border-color:#C3D1EA;box-shadow:0 8px 18px -14px rgba(10,30,74,.55)}
/* botões: padrão prateado "marmorizado"; principal em azul royal; perigo em vermelho suave */
button.b,a.b{background:var(--metal-soft);border:1px solid #8FA5CC;color:var(--navy);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 1px 2px rgba(10,30,74,.14)}
button.b:hover,a.b:hover{background:linear-gradient(180deg,#FFFFFF,#D3E0F6);border-color:var(--royal-hi)}
.b.pri{background:linear-gradient(180deg,#2F63EA,#1A43B5);border-color:#143594;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 6px -2px rgba(20,53,148,.6)}
.b.pri:hover{background:linear-gradient(180deg,#4573F5,#1F4FD6)}
button.b.perigo{background:linear-gradient(180deg,#FFFFFF,#FBE4E2);border-color:#D98C88;color:var(--bad)}
button.b.perigo:hover{background:linear-gradient(180deg,#FFFFFF,#F8D2CF);border-color:var(--bad)}
.hero button.b,.b.metal{background:var(--metal);border-color:#8CA2C7;color:var(--navy)}
/* cabeçalhos de página e de cartão: azul forte com filete prateado */
.cab{position:relative;overflow:hidden;background:var(--azul-cab);color:#fff;border-radius:12px;padding:.75rem 1.1rem;box-shadow:0 10px 22px -16px rgba(10,30,74,.9)}
.cab::after,.card-h::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--metal)}
.cab h2,.card-h h2{color:#fff}
.cab .mut,.cab .dica,.card-h .mut,.card-h .dica{color:#C9D7F5}
.cab label{color:#E3ECFF}
.card-h{position:relative;background:var(--azul-cab);color:#fff;border-bottom:0;padding:.8rem 1.1rem}
.card>.card-h:first-child{margin:-1rem -1.1rem 1rem;border-radius:11px 11px 0 0}.card.sem-pad>.card-h:first-child{margin:0;border-radius:0}
.card.vivo .card-h{background:var(--verde-cab)}
.card.vivo .card-h h2::before{content:"";display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:#7CFFB8;margin-right:.55rem;box-shadow:0 0 0 0 rgba(124,255,184,.7);animation:pulsa 1.8s infinite}
@keyframes pulsa{70%{box-shadow:0 0 0 .55rem rgba(124,255,184,0)}100%{box-shadow:0 0 0 0 rgba(124,255,184,0)}}
@media(prefers-reduced-motion:reduce){.card.vivo .card-h h2::before{animation:none}}
/* resumo do dia: cartões coloridos */
.stat{position:relative;border:1px solid #C3D1EA;border-left:6px solid var(--c);background:linear-gradient(135deg,var(--t) 0%,#fff 115%);padding:.85rem 1rem;box-shadow:0 8px 18px -14px rgba(10,30,74,.55)}
.stat b{color:var(--ci);font-size:1.9rem}.stat span{color:#3B4C6B;font-weight:500}
.stat.c-azul{--c:#1F4FD6;--t:#D9E5FF;--ci:#143A9C}.stat.c-ciano{--c:#0E8A94;--t:#D3F0F2;--ci:#0A5F67}
.stat.c-verde{--c:#0E7F55;--t:#D5F2E3;--ci:#0A5C3E}.stat.c-ambar{--c:#D9971A;--t:#FFEBBE;--ci:#7A4B00}.stat.c-vermelho{--c:#B0302B;--t:#FADAD7;--ci:#8A1F1B}
.kpi{border:1px solid #C3D1EA;border-left:4px solid var(--royal);background:linear-gradient(135deg,#E7EFFF,#fff 120%)}
.mapa{border:2px solid #8FA5CC}
/* tabelas: cabeçalho azul, linhas alternadas, sem cortar texto */
th{background:#143A9C;color:#fff;border-bottom:2px solid #8DA2C8;padding:.65rem .65rem}
td{padding:.6rem .65rem}
tbody tr:nth-child(even){background:#F2F6FE}tbody tr:hover,tr.clicavel:hover{background:#E1EBFF}tr.clicavel:hover td{background:transparent}
.tag{white-space:nowrap}
td.acoes{white-space:normal;min-width:9.5rem}td.acoes>*{margin:.15rem 0 .15rem .3rem}
.trow:hover,button.trow:hover{background:#E4EDFF}
.alerta{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,0))}
/* cabeçalho dentro de um cartão: título simples (só o cabeçalho da página é banner) */
.card .cab{background:none;color:var(--ink);padding:0;box-shadow:none;border-radius:0;overflow:visible}.card .cab::after{display:none}
.card .cab h2{color:var(--ink)}.card .cab .mut,.card .cab .dica{color:var(--muted)}.card .cab label{color:var(--ink)}

/* ===== Etapa 58: caráter (eletivo/urgência) e cabeçalho de tabela fixo ===== */
.tag.elet{background:#E2EAFD;color:#1B45B8}
.tag.urg{background:#B0302B;color:#fff;font-weight:700;letter-spacing:.02em}.tag.urg::before{background:#fff}
tbody tr.urg td{background:#FDECEA}tbody tr.urg td:first-child{box-shadow:inset 5px 0 0 #B0302B}
tbody tr.urg:hover td{background:#FAD7D3}
select.urg{border-color:#B0302B;background:#FDECEA;color:#8A1F1B;font-weight:700}
/* cabeçalho das colunas fica fixo logo abaixo da barra superior enquanto a página rola (telas largas);
   overflow:clip nos contêineres arredondados não impede o "fixo" (overflow:hidden impediria) */
.web,.card.sem-pad{overflow:clip}
@media(min-width:1000px){.tab-wrap{overflow:visible}.tab-wrap th{position:sticky;top:3.2rem;z-index:2}}
/* Atendimentos: 6 colunas (data, paciente, tipo, caráter, local, situação) */
table.fixa th:nth-child(4){width:6.5rem}table.fixa th:nth-child(5){width:auto}table.fixa th:nth-child(6){width:9rem}

/* Viagens: botões de ação em grade, 2 por linha, todos do mesmo tamanho */
.acoes-grid{display:grid;grid-template-columns:repeat(2,minmax(7.2rem,1fr));gap:.35rem;margin-left:auto;max-width:16rem}
td.acoes .acoes-grid>*{margin:0;width:100%;text-align:center;white-space:nowrap;padding-left:.4rem;padding-right:.4rem}
.acoes-grid.esq{margin-left:0;margin-top:.4rem}
.acoes-grid{max-width:15.5rem}

.vei-cel{display:flex;align-items:center;gap:.6rem}.vei-cel .dica{font-size:.78rem;letter-spacing:.03em}
td.acoes>.b,td.acoes>a.b{display:inline-block;width:7.4rem;text-align:center;white-space:nowrap;padding-left:.3rem;padding-right:.3rem;box-sizing:border-box}
td.acoes .acoes-grid>.b,td.acoes .acoes-grid>a.b{display:inline-block;width:100%;text-align:center;box-sizing:border-box}

/* Atendimentos: coluna Situação larga o bastante para a grade de botões; nome clicável; detalhes */
table.fixa th:nth-child(6){width:16.5rem}
.acoes-grid{grid-template-columns:repeat(2,minmax(6.4rem,1fr))}
a.link-pac{color:var(--pri,#1F4FD6);font-weight:600;text-decoration:none;border-bottom:1px dotted currentColor}a.link-pac:hover{text-decoration:underline}
.det-linha{display:grid;grid-template-columns:9rem 1fr;gap:.6rem;border-bottom:1px solid var(--bd);padding:.3rem 0}

/* Início > Atenção da frota: aviso de defeito com figura do veículo, clicável */
button.def-topo{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;font:inherit;cursor:pointer;border:0;border-radius:0}
button.def-topo:hover{filter:brightness(.97)}
.def-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.def-txt small{color:var(--mut)}
.def-placa{font-weight:500;font-size:.82rem;color:var(--mut)}
.def-det{padding:.5rem 1rem .8rem 4.9rem;background:#F7F9FE;border-top:1px solid var(--bd)}.def-det p{margin:.2rem 0}

.tel-grande{display:flex;align-items:center;gap:.8rem;font-size:1.3rem;padding:.3rem 0}.tel-grande a.b{font-size:1rem;padding:.55rem 1rem;text-decoration:none}

/* Alertas de socorro: faixa vermelha em todas as telas */
#alertas-global{position:sticky;top:0;z-index:40}#alertas-global:empty{display:none}
.sos-card{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;background:#B1261A;color:#fff;padding:.7rem clamp(16px,3vw,32px);border-bottom:2px solid #7E170E;animation:sospulsa 1.6s ease-in-out infinite}
.sos-card.defeito{background:#C2570C;border-bottom-color:#8A3E08;animation:none}
.sos-txt{flex:1;min-width:16rem;display:flex;flex-direction:column;gap:.1rem}.sos-txt b{font-size:1.05rem}.sos-txt small{opacity:.9}
.sos-acoes{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.sos-acoes .dica{color:#FFE3DF}
@keyframes sospulsa{50%{background:#8F1D13}}
tbody tr.sos td{background:#FDE0DC!important}
.subabas{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:0 0 1.1rem;padding:.75rem;border-radius:16px;background:var(--azul-cab);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.subabas button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;text-align:center;padding:.7rem 1rem;min-height:62px;border-radius:10px;cursor:pointer;font:inherit;background:var(--metal);border:1px solid #8CA2C7;color:var(--navy);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 1px 2px rgba(10,30,74,.25)}
.subabas button b{font-size:1.1rem}.subabas button small{color:#3b4f7d;font-size:.82rem;font-weight:500}
.subabas button:hover{filter:brightness(1.04)}
.subabas button:active{transform:translateY(1px)}
.subabas button[aria-selected="true"]{background:linear-gradient(180deg,#2F63EA,#1A43B5);border-color:#143594;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 0 3px rgba(255,255,255,.35)}
.subabas button[aria-selected="true"] small{color:#DCE7FF}
@media (max-width:640px){.subabas{grid-template-columns:1fr}}
.topbar .quem button.b{background:var(--metal-soft);color:var(--navy);border-color:#8FA5CC}
/* ---- Panorama ---- */
.pan-barra-mes{align-items:center;gap:.5rem;flex-wrap:wrap;margin:.4rem 0 1rem}.pan-mes{font-size:1.15rem;min-width:11rem;text-align:center}
.pan-cartoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1.2rem}
.pan-cartao{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:.9rem 1rem;border-radius:14px;border:1px solid #C5D3EE;background:#fff;color:var(--ink);cursor:pointer;font:inherit;box-shadow:0 4px 12px -8px rgba(10,30,74,.5)}
.pan-cartao:hover{border-color:#1F4FD6}.pan-cartao.sel{border:2px solid #1F4FD6;background:#E9EFFD;box-shadow:0 0 0 3px #1F4FD633}
.pan-ic{font-size:1.4rem}.pan-tit{font-size:.9rem;color:#4a5a7d;font-weight:600}.pan-num{font-size:2rem;line-height:1.1;color:var(--navy)}.pan-num small{font-size:1rem;font-weight:600;color:#4a5a7d}
.pan-delta{font-size:.8rem;color:#4a5a7d}.pan-sub{color:#5b6785;font-size:.8rem;margin-top:.2rem}
.pan-h{margin:.2rem 0 .4rem}.pan-minis{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.8rem}
.pan-mini{display:flex;flex-direction:column;gap:.3rem;text-align:left;padding:.7rem .8rem;border-radius:14px;border:1px solid #C5D3EE;background:#fff;cursor:pointer;font:inherit;color:var(--ink)}.pan-mini:hover{border-color:#1F4FD6}
.pan-card{padding:1rem;margin-bottom:.8rem}.pan-detalhe{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:.8rem}
.pan-svg{width:100%;height:auto;display:block}.pan-eixo{font-size:10px;fill:#5b6785}.pan-gl{stroke:#DCE5F6;stroke-width:1}.pan-base{stroke:#8FA5CC;stroke-width:1.2}
.pan-barra{fill:#2F63EA}.pan-hit{fill:transparent}.pan-col:hover .pan-barra{fill:#1A43B5}.pan-col:hover .pan-hit{fill:rgba(31,79,214,.08)}
.pan-tip{position:fixed;z-index:9999;background:#0A1E4A;color:#fff;padding:.3rem .6rem;border-radius:8px;font-size:.85rem;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.3)}.pan-tip[hidden]{display:none}
.pan-lista{display:flex;flex-direction:column;gap:.45rem;margin-top:.6rem}.pan-linha{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;align-items:center;gap:.5rem;font-size:.88rem}
.pan-nome{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pan-trilho{height:10px;background:#E4EBF8;border-radius:6px;overflow:hidden}.pan-preench{display:block;height:100%;background:#2F63EA;border-radius:6px}.pan-valor{min-width:2.2rem;text-align:right}
.pan-tab{max-height:320px;overflow:auto}
.pan-foco{scroll-margin-top:.6rem}.pan-cartoes{scroll-margin-top:.6rem}.pan-foco .pan-card{padding:.7rem .9rem;margin-bottom:.6rem}.pan-foco .pan-lista{gap:.3rem;margin-top:.4rem}.pan-foco .pan-svg{max-height:200px}
.pan-cartoes.compacto{margin-bottom:.6rem}.pan-cartoes.compacto .pan-cartao{padding:.5rem .8rem;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.1rem .5rem}.pan-cartoes.compacto .pan-ic{font-size:1.1rem}.pan-cartoes.compacto .pan-num{font-size:1.4rem}.pan-cartoes.compacto .pan-delta,.pan-cartoes.compacto .pan-sub{display:none}
.hero-atalhos{display:flex;flex-direction:column;gap:.5rem;align-items:stretch;min-width:12rem}.hero-atalhos button.b{width:100%}
@media (max-width:640px){.hero-atalhos{flex-direction:row;flex-wrap:wrap}}

.fi { background: #fff; border: 1px solid #E1E8F5; border-radius: 12px; padding: .6rem .8rem; display: flex; flex-direction: column; gap: .45rem; }
.fi-corpo { all: unset; box-sizing: border-box; cursor: pointer; display: flex; flex-direction: column; gap: .3rem; align-items: flex-start; width: 100%; }
.fi-corpo:hover .fi-dest { text-decoration: underline; } .fi-corpo:focus-visible { outline: 2px solid #1F4FD6; outline-offset: 3px; border-radius: 6px; }
.fi-topo { display: flex; gap: .6rem; align-items: baseline; } .fi-hora { font-family: var(--f-display); font-weight: 600; color: var(--muted); } .fi-dest { font-weight: 600; overflow-wrap: break-word; min-width: 0; }
.fi-sub { color: var(--muted); } .fi-fone { align-self: flex-start; display: inline-flex; align-items: center; gap: .3rem; }

/* viagem que passou da data e não viajou: vermelho, para o município ver de longe */
tbody tr.atrasada td { background: #FDECEA; } tbody tr.atrasada td:first-child { box-shadow: inset 5px 0 0 #B0302B; } tbody tr.atrasada:hover td { background: #FAD7D3; }
.alerta-atraso { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; background: #FDECEA; border: 1.5px solid #B0302B; border-left-width: 6px; color: #7A1A16; border-radius: 12px; padding: .7rem 1rem; margin-bottom: .8rem; }

/* Botões de ação do cabeçalho de cada tela (Novo atendimento, Importar lista, Importar do catálogo...): mesmo botão metálico prateado dos atalhos do Início */
.cab>button.b:not(.perigo),.cab>a.b:not(.perigo){background:var(--metal);border:1px solid #8CA2C7;color:var(--navy);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 1px 3px rgba(10,30,74,.22);font-weight:700}
.cab>button.b:not(.perigo):hover,.cab>a.b:not(.perigo):hover{background:var(--metal);border-color:var(--royal-hi);filter:brightness(1.04)}
.cab>button.b:not(.perigo):active{transform:translateY(1px);box-shadow:inset 0 1px 2px rgba(10,30,74,.25)}
[hidden]{display:none!important}

/* ---- Tela Nova viagem / Editar viagem: seções com cabeçalho colorido, fundo azul-claro e campos em destaque ---- */
form.vf{display:flex;flex-direction:column;gap:1rem}
form.vf>.cab{margin-bottom:0}
.vf-sec{background:#fff;border:1px solid #B3C6E8;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(10,30,74,.06),0 8px 20px -14px rgba(10,30,74,.3)}
.vf-h{display:flex;align-items:center;gap:.8rem;padding:.8rem 1.1rem;background:linear-gradient(180deg,#E8EFFC,#DBE6F9);border-bottom:1px solid #C3D3F0}
.vf-n{flex:none;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#2F63EA,#1A43B5);color:#fff;font-weight:800;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.vf-h h3{margin:0;font-size:1.08rem;color:var(--navy);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.vf-h .dica{margin:.1rem 0 0;font-size:.85rem;color:#4A5E86}
.vf-c{padding:1.1rem;background:#D6E2F6;display:flex;flex-direction:column;gap:.9rem}
.vf-c label{font-size:.88rem;color:var(--navy);font-weight:700}
.vf-c input,.vf-c select{border:1.5px solid #9DB2DC;background:#fff;min-height:2.6rem;border-radius:10px}
.vf-c input:focus,.vf-c select:focus{outline:none;border-color:var(--royal);box-shadow:0 0 0 3px rgba(31,79,214,.18)}
.vf-c .dica{font-weight:400;color:#566789}
.vf-g2{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.vf-g3{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.vf-opc{background:#fff;border:1.5px dashed #8FA8D6;border-radius:10px;padding:.7rem .9rem}
.vf-opc label.chk{font-weight:600;color:var(--navy)}
.vf-rodape{position:sticky;bottom:0;z-index:5;display:flex;gap:.6rem;align-items:center;padding:.8rem 1rem;background:rgba(238,243,252,.94);backdrop-filter:blur(6px);border:1px solid #C3D3F0;border-radius:14px;box-shadow:0 -6px 18px -12px rgba(10,30,74,.5)}

/* ---- Telas de cadastro (todas): fundo azul-claro atrás dos campos e campos brancos com borda marcada, para ver na hora o que é campo e o que é fundo ---- */
input,select,textarea{border:1.5px solid #9DB2DC}
input::placeholder,textarea::placeholder{color:#8393B3}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--royal);box-shadow:0 0 0 3px rgba(31,79,214,.18)}
input[type=checkbox],input[type=radio]{accent-color:var(--royal)}
.card>form,.card>.form-cad{background:#DAE5F8;border:1px solid #B3C6E8;border-radius:12px;padding:1rem 1.1rem;margin-top:.6rem}
.card>form label,dialog form label{color:var(--navy)}
.card>form label.chk,dialog form label.chk{font-weight:600}
.card>form h3{color:var(--navy)}
dialog{background:#F3F7FE}
dialog input,dialog select,dialog textarea{background:#fff}
dialog h2{color:var(--navy)}
/* a nova viagem usa suas próprias seções; não duplicar o fundo */
form.vf{background:transparent;border:0;padding:0;margin:0}
dialog.modal{background:#DAE5F8}
.modal-topo{background:linear-gradient(180deg,#F4F8FF,#E1EAFA)}
dialog.modal .modal-xbar .modal-x{background:#DAE5F8}
tr.linha-clicavel{cursor:pointer}tr.linha-clicavel:hover td{background:#E3ECFC}
.alerta.clicavel{cursor:pointer}.alerta.clicavel:hover{filter:brightness(.97);box-shadow:0 0 0 2px rgba(31,79,214,.25)}
@keyframes realce{0%,60%{box-shadow:0 0 0 4px rgba(31,79,214,.55)}100%{box-shadow:0 0 0 0 rgba(31,79,214,0)}}
.destacar{animation:realce 3.5s ease-out;border-color:var(--royal)!important}
