/* Visual do prontuário e da administração (compartilhado).
   Ideia: tudo calmo e neutro; o que chama atenção é a cor de risco do paciente (barra na lateral de cada linha).
   Todas as cores vêm de variáveis, então a identidade de cada cliente (cores editadas na administração) continua valendo. */
:root{
  color-scheme:light;
  --bg:#f3f6f1; --surface:#ffffff; --surface2:#f5f9f1; --line:#d8e3cf; --ink:#1f2d1a; --mute:#5f6f58;
  --top:#4a9626; --th:#e4f1d6; --th-ink:#2f5d17;
  --accent:#3f8a1f; --accent-ink:#ffffff; --accent-soft:#e4f1d6;
  --ok:#1b7a43; --ok-bg:#dff3e6; --warn:#8a5a00; --warn-bg:#fdf0cf; --high:#a64400; --high-bg:#fde3d1; --crit:#b3261e; --crit-bg:#fbdcd9;
  --mv:#d62f2f; --ml:#ef7d1a; --ma:#f2c200; --mg:#2f9e4f; --mb:#2f78c9;
  --f-body:ui-sans-serif,"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-display:var(--f-body);
  --f-mono:ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
  --r:10px; --r-lg:14px;
  --hover:color-mix(in srgb,var(--ink) 5%,transparent);
  --ring:color-mix(in srgb,var(--accent) 28%,transparent);
  --sombra:0 1px 2px rgba(16,24,12,.06),0 6px 18px -8px rgba(16,24,12,.18);
  --topo-h:56px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--f-body);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}
h1,h2,h3{font-family:var(--f-display);margin:0;letter-spacing:-.015em;text-wrap:balance;font-weight:650}
h3{font-size:15px;margin-bottom:12px}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--top)}

/* ── Barra superior ── */
.top{background:var(--top);color:#fff;position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.top .wrap{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;min-height:var(--topo-h);padding-block:8px}
.brand{font-family:var(--f-display);font-weight:700;font-size:16px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;margin-right:auto;cursor:pointer;background:none;border:0;color:inherit;padding:4px 6px 4px 0;border-radius:var(--r)}
.brand i{width:30px;height:30px;border-radius:9px;background:#fff;color:var(--top);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:20px;line-height:1}
.unit{font-size:12px;opacity:.8;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.14)}
.unit:empty{display:none}
.who{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.who label{display:flex;align-items:center;gap:6px}
.who input{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);border-radius:var(--r);padding:5px 9px;color:inherit;width:190px}
.who select{color:var(--ink);max-width:230px}
main{padding-block:22px 56px}

@media (min-width:900px){.top .wrap{flex-wrap:nowrap}.who{flex-wrap:nowrap;white-space:nowrap}.brand{min-width:0}.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media (max-width:1180px){.top .unit{display:none}}

/* ── Botões ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:var(--accent-ink);border:1px solid transparent;border-radius:var(--r);padding:8px 16px;min-height:38px;font-weight:600;cursor:pointer;line-height:1.2;transition:filter .12s,background .12s,border-color .12s,box-shadow .12s}
.btn:hover{filter:brightness(1.07)}
.btn:active{filter:brightness(.94)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--surface2);filter:none;border-color:color-mix(in srgb,var(--ink) 22%,var(--line))}
.btn.sm{padding:4px 11px;min-height:30px;font-size:12.5px;border-radius:8px}
.btn.danger{background:transparent;color:var(--crit);border-color:color-mix(in srgb,var(--crit) 45%,transparent)}
.btn.danger:hover{background:var(--crit-bg);filter:none}
.btn.white{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.22)}
.btn.white:hover{background:rgba(255,255,255,.28);filter:none}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.nopermit{opacity:.45}
button.nopermit{cursor:not-allowed}

/* ── Campos ── */
input,select,textarea{background:var(--surface);border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:var(--r);padding:8px 11px;min-height:38px;min-width:0;transition:border-color .12s,box-shadow .12s}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--ink) 32%,var(--line))}
textarea{width:100%;resize:vertical;min-height:88px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}
button:focus-visible,.row:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.top button:focus-visible{outline-color:#fff}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);min-height:0;width:16px;height:16px;padding:0}
input[type=search]{padding-left:12px}
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.bar input[type=search]{flex:1 1 260px;min-width:0}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;align-items:end}
.form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--mute);font-weight:550}
.form .full{grid-column:1/-1}
label.full{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--mute);font-weight:550}
label.full input,label.full select,label.full textarea{color:var(--ink);font-weight:400;font-size:14px}
input[type=color]{min-height:0;padding:2px;border-radius:8px;cursor:pointer}
input[type=file]{padding:6px;background:var(--surface2)}
.cfg{display:flex;gap:8px 20px;flex-wrap:wrap;align-items:center}
.cfg label{display:flex;gap:7px;align-items:center}

/* ── Cartões e tabelas ── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}
.scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
table{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}
th{font-size:12px;color:var(--mute);text-align:left;font-weight:600;padding:11px 14px;background:var(--surface);border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr.row{cursor:pointer;transition:background .1s}
tbody tr.row:hover{background:var(--hover)}
tbody tr[data-r] td:first-child{box-shadow:inset 5px 0 0 var(--rc,transparent)}
tr[data-r=vermelho]{--rc:var(--mv)}tr[data-r=laranja]{--rc:var(--ml)}tr[data-r=amarelo]{--rc:var(--ma)}tr[data-r=verde]{--rc:var(--mg)}tr[data-r=azul]{--rc:var(--mb)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:.94em}
.mute{color:var(--mute)}
.small{font-size:12px}
.name{font-weight:600}
.empty{color:var(--mute);padding:28px 18px;text-align:center}
.late td{background:var(--crit-bg)}
.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}

/* ── Etiquetas, risco e situação ── */
.mt{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650;white-space:nowrap}
.mt i{width:12px;height:12px;border-radius:50%;display:inline-block;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 0%,transparent)}
.c-vermelho{background:var(--mv)}.c-laranja{background:var(--ml)}.c-amarelo{background:var(--ma)}.c-verde{background:var(--mg)}.c-azul{background:var(--mb)}
.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap;margin:0 4px 4px 0}
.n0{background:var(--ok-bg);color:var(--ok)}.n1{background:var(--warn-bg);color:var(--warn)}.n2{background:var(--high-bg);color:var(--high)}.n3{background:var(--crit-bg);color:var(--crit)}.nn{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--mute)}
.pill{border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:11px}
.pill.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.steps{display:flex;gap:4px;font-size:11px;color:var(--mute)}
.demo{background:var(--warn-bg);color:var(--warn);border-radius:var(--r);padding:9px 14px;font-size:13px;margin-bottom:16px;border:1px solid color-mix(in srgb,currentColor 18%,transparent)}

/* ── Indicadores da lista ── */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(128px,100%),1fr));gap:10px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:11px 14px;display:flex;flex-direction:column;gap:3px;cursor:pointer;text-align:left;transition:border-color .12s,background .12s,box-shadow .12s}
.kpi:hover{border-color:color-mix(in srgb,var(--ink) 25%,var(--line))}
.kpi b{font:650 26px/1 var(--f-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.kpi span{font-size:12.5px;color:var(--mute);display:flex;align-items:center}
.kpi.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}
.kpi .dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:7px;flex:none}
div.kpi{cursor:default}div.kpi:hover{border-color:var(--line)}

/* ── Abas ── */
.tabs{display:flex;gap:2px;overflow-x:auto;padding:4px;margin-bottom:18px;border-radius:12px;background:color-mix(in srgb,var(--ink) 6%,transparent);width:max-content;max-width:100%;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{background:none;border:0;border-radius:9px;padding:7px 14px;cursor:pointer;white-space:nowrap;color:var(--mute);font-weight:550;transition:background .12s,color .12s}
.tab:hover{color:var(--ink)}
.tab[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:0 1px 2px rgba(16,24,12,.12)}
.tab em{font-style:normal;background:var(--crit-bg);color:var(--crit);border-radius:999px;padding:0 7px;font-size:11px;margin-left:6px;font-weight:650}

/* ── Faixa do paciente ── */
.banner{background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 6px 14px -12px rgba(16,24,12,.35);position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--topo-h));z-index:10}
.banner .wrap{display:flex;gap:8px 24px;flex-wrap:wrap;align-items:center;padding-block:12px}
.banner h2{font-size:21px}
.kv{display:flex;flex-direction:column;font-size:12px;color:var(--mute);line-height:1.3}
.kv b{font-size:13.5px;color:var(--ink);font-weight:550}

/* ── Prontuário: seções ── */
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));gap:16px}
.sec{margin-bottom:24px}
.vit{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(92px,100%),1fr));gap:8px}
.vit div{background:var(--surface2);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);border-radius:12px;padding:9px 12px}
.vit span{display:block;font-size:12px;color:var(--mute)}
.vit b{font:600 18px var(--f-mono)}
.dose{display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 12px;margin:0 6px 6px 0;cursor:pointer;min-width:68px;transition:background .12s,border-color .12s}
.dose:hover{border-color:color-mix(in srgb,var(--ink) 30%,var(--line))}
.dose b{font:600 14px var(--f-mono)}
.dose small{font-size:11px}
.dose.feito{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 55%,transparent);color:var(--ok)}
.dose.atrasado{background:var(--crit-bg);border-color:color-mix(in srgb,var(--crit) 60%,transparent);color:var(--crit)}
.dose.agora{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 60%,transparent);color:var(--warn)}
.dose.naoadm{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 60%,transparent);color:var(--warn)}
.dose.futuro{color:var(--mute)}
.dose.feito b::before{content:"✓ "}.dose.atrasado b::before{content:"! "}.dose.agora b::before{content:"● "}.dose.naoadm b::before{content:"× "}
.tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.tl li{border-left:2px solid color-mix(in srgb,var(--accent) 55%,var(--line));padding:2px 0 2px 14px}
.tl .meta{font-size:12px;color:var(--mute)}
.tl p{margin:3px 0 0;white-space:pre-wrap}
.opts{display:flex;flex-direction:column;gap:2px;margin:6px 0 14px}
.opts label{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:var(--r);cursor:pointer}
.opts label:hover{background:var(--hover)}
.opts input{margin-top:2px;flex:none}
.score{position:sticky;bottom:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sombra);padding:12px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px}
.score .tot{font:700 30px var(--f-display);letter-spacing:-.02em}
.sccards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:10px;margin-bottom:20px}
.sccard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px}
.sccard b.v{font:700 26px var(--f-display);letter-spacing:-.02em}

/* ── Passagem de plantão ── */
.pc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:14px;overflow:hidden}
.pc>header{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;background:var(--surface2);border-bottom:1px solid var(--line);padding:11px 16px}
.pc>header b{font-family:var(--f-display);font-size:15px}
.sbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:0}
.sbar>div{padding:12px 16px;border-top:1px solid var(--line);border-right:1px solid var(--line);min-width:0}
.sbar>div:first-child,.pc>header+.sbar>div{border-top:0}
.sbar h4{margin:0 0 5px;font-size:12.5px;color:var(--mute);font-weight:650}
.sbar p{margin:0 0 3px}
.pc2{display:flex;gap:6px;flex-wrap:wrap}
footer{color:var(--mute);font-size:12px;margin-top:28px;max-width:78ch}

/* ── Celular: tabelas viram lista de cartões ── */
@media (max-width:720px){
  main{padding-block:16px 48px}
  .banner{position:static}
  .banner h2{font-size:19px}
  .who input{width:130px}
  .top .wrap{padding-block:6px}
  .kpis{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(min(118px,100%),1fr);overflow-x:auto;padding-bottom:4px;scrollbar-width:none;margin-inline:-18px;padding-inline:18px}
  .kpis::-webkit-scrollbar{display:none}
  .scroll:has(> table.lista){overflow:visible;background:none;border:0}
  table.lista{min-width:0;display:block}
  table.lista thead{display:none}
  table.lista tbody{display:grid;gap:10px}
  table.lista tr.row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px 12px 20px;position:relative;overflow:hidden}
  table.lista tr.row::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--rc,transparent)}
  table.lista td{display:block;padding:0;border:0;box-shadow:none!important}
  table.lista td[data-k=pac]{grid-column:1;grid-row:1}
  table.lista td[data-k=leito]{grid-column:2;grid-row:1;text-align:right;font-size:15px}
  table.lista td[data-k=risco]{grid-column:1/-1;grid-row:2}
  table.lista td:not([data-k=pac]):not([data-k=leito]):not([data-k=risco]){grid-column:1/-1}
  table.lista td[data-k=pend],table.lista td[data-k=esc]{margin-top:4px}
  table.lista tr:not(.row) td{display:table-cell}
}
@media (max-width:720px){.who>.small{display:none}.top .wrap{gap:6px 8px}.top .unit{display:none}#nav{order:3}}
@media (max-width:420px){.btn.white.sm{padding:4px 9px}.brand{font-size:15px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
