/* public_html/css/app.css — Celsor
   Lote 8A: identidade "Trama". Cores, tipografia e foco vêm dos tokens abaixo (claro e escuro).
   Os nomes antigos (--iris, --iris-ink, --iris-wash) continuam existindo e apontam para os tokens novos,
   para nada quebrar. Estrutura por linhas finas, sem sombras decorativas. */
@font-face{font-family:Inter;src:url(/fonts/InterVariable-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --bg:#F4F7F9; --surface:#FFFFFF; --surface-2:#EBF0F4; --ink:#0C1822; --on-ink:#FFFFFF; --ink-2:#3D4E5C; --muted:#566775;
  --line:#D8E0E6; --line-soft:#E6ECF0; --line-field:#7A8B98;
  --accent:#2DD4BF; --on-accent:#0C1822; --accent-ink:#0F766E; --accent-ring:#0D9488;
  --orange:#E8801A; --ok:#17704A; --ok-wash:#E3F4EB; --warn:#8F5200; --warn-wash:#FBEFD9; --err:#B3261E; --on-err:#FFFFFF; --err-wash:#FBE7E5; --info:#1D5F8A; --info-wash:#E4EEF6;
  --shadow-pop:0 1px 2px rgba(12,24,34,.06),0 8px 24px rgba(12,24,34,.10); --shadow-dialog:0 24px 64px rgba(12,24,34,.22);
  /* nomes antigos → tokens novos */
  --iris:var(--ink); --iris-ink:var(--ink-2); --iris-wash:var(--surface-2);
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:var(--sans);
  --r:12px; --r-s:8px; --r-xs:6px; --r-l:16px; --rail:212px;
  --focus:0 0 0 2px var(--surface),0 0 0 4px var(--accent-ring);
  /* Lote 26 — Aurora */
  --brand:#0F766E; --brand-hover:#115E59; --on-brand:#FFFFFF; --brand-wash:#E3F5F1; --brand-line:#9ED9CE;
  --violet:#5B5BD6; --violet-wash:#EEEEFC; --sky:#0E7490; --sky-wash:#E2F3F8; --amber-wash:#FDF3E1;
  --bg:#F4F6FA; --line:#DCE3EA; --line-soft:#E8EDF2;
  --shadow-card:0 1px 2px rgba(16,24,40,.04),0 2px 10px rgba(16,24,40,.04);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#07131F; --surface:#0E1B27; --surface-2:#15273A; --ink:#E8EEF3; --on-ink:#0C1822; --ink-2:#B4C2CD; --muted:#8CA0AF;
  --line:#223647; --line-soft:#1A2B39; --line-field:#6A8092;
  --accent:#2DD4BF; --on-accent:#0C1822; --accent-ink:#5EEAD4; --accent-ring:#2DD4BF;
  --ok:#4CC38A; --ok-wash:#10291E; --warn:#E3A24A; --warn-wash:#2E230F; --err:#F28B82; --on-err:#2A0D0B; --err-wash:#381A1A; --info:#7DB8E8; --info-wash:#11283A;
  --shadow-pop:0 1px 2px rgba(0,0,0,.40),0 8px 24px rgba(0,0,0,.50); --shadow-dialog:0 24px 64px rgba(0,0,0,.60);
  /* Lote 26 — Aurora */
  --brand:#2DD4BF; --brand-hover:#5EEAD4; --on-brand:#04201C; --brand-wash:#0F2E2B; --brand-line:#1F5E57;
  --violet:#A5A6F6; --violet-wash:#1E1F3D; --sky:#67C6DD; --sky-wash:#0F2A33; --amber-wash:#2E230F;
  --bg:#08131D; --line:#22364A; --line-soft:#182A3A;
  --shadow-card:0 1px 2px rgba(0,0,0,.35),0 2px 12px rgba(0,0,0,.25);
}}
:root[data-theme="dark"]{
  --bg:#07131F; --surface:#0E1B27; --surface-2:#15273A; --ink:#E8EEF3; --on-ink:#0C1822; --ink-2:#B4C2CD; --muted:#8CA0AF;
  --line:#223647; --line-soft:#1A2B39; --line-field:#6A8092;
  --accent:#2DD4BF; --on-accent:#0C1822; --accent-ink:#5EEAD4; --accent-ring:#2DD4BF;
  --ok:#4CC38A; --ok-wash:#10291E; --warn:#E3A24A; --warn-wash:#2E230F; --err:#F28B82; --on-err:#2A0D0B; --err-wash:#381A1A; --info:#7DB8E8; --info-wash:#11283A;
  --shadow-pop:0 1px 2px rgba(0,0,0,.40),0 8px 24px rgba(0,0,0,.50); --shadow-dialog:0 24px 64px rgba(0,0,0,.60);
  /* Lote 26 — Aurora */
  --brand:#2DD4BF; --brand-hover:#5EEAD4; --on-brand:#04201C; --brand-wash:#0F2E2B; --brand-line:#1F5E57;
  --violet:#A5A6F6; --violet-wash:#1E1F3D; --sky:#67C6DD; --sky-wash:#0F2A33; --amber-wash:#2E230F;
  --bg:#08131D; --line:#22364A; --line-soft:#182A3A;
  --shadow-card:0 1px 2px rgba(0,0,0,.35),0 2px 12px rgba(0,0,0,.25);
  color-scheme:dark;
}
:root[data-theme="light"]{color-scheme:light}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);min-height:100dvh;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--sans);font-weight:600;letter-spacing:-.011em;line-height:1.25;margin:0}
h1{font-size:1.75rem}
h2{font-size:1.125rem;line-height:1.45}
p{margin:0 0 .6em}
a{color:var(--accent-ink);text-underline-offset:3px}
a:hover{color:var(--accent-ink);text-decoration-thickness:2px}
.muted{color:var(--muted)}
small{font-size:.8rem;font-weight:400}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px;box-shadow:none;border-radius:6px}
[hidden]{display:none!important}

/* ---------- aviso de conexão ---------- */
#net-banner{position:sticky;top:0;z-index:60;padding:9px 16px;text-align:center;font-size:.875rem;font-weight:600;background:var(--warn);color:var(--on-ink)}
#net-banner[data-kind=online]{background:var(--ok)}

/* ---------- controles ---------- */
form{display:grid;gap:16px}
label{display:grid;gap:6px;font-weight:600;font-size:.875rem}
input,select{font:inherit;font-weight:400;color:var(--ink);background:var(--surface);border:1px solid var(--line-field);border-radius:var(--r-s);padding:11px 12px;width:100%;min-height:44px}
input:hover,select:hover{border-color:var(--ink-2)}
input:focus,select:focus{outline:none;border-color:var(--accent-ring);box-shadow:var(--focus)}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:400;cursor:pointer}
.check input{width:18px;min-height:18px;height:18px;margin-top:3px;accent-color:var(--iris)}
.check span{display:grid;gap:2px}.check b{font-weight:600;font-size:.9rem}
.btn{font:inherit;font-weight:600;font-size:.95rem;min-height:44px;padding:0 20px;border:1px solid var(--iris);border-radius:var(--r-s);background:var(--iris);color:var(--on-ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,border-color .15s}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .btn{color:#06222a}}
.btn:hover{background:var(--iris-ink);border-color:var(--iris-ink);color:var(--on-ink)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .btn:hover{color:#06222a}}
.btn:disabled{opacity:.55;cursor:wait}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--iris-wash);border-color:var(--iris);color:var(--ink)}
.btn.danger{background:var(--err);border-color:var(--err);color:var(--on-err)}
.link{background:none;border:0;color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer;padding:4px 6px;text-decoration:underline;text-underline-offset:3px}
.msg{min-height:1.3em;margin:0;color:var(--err);font-size:.875rem}.msg.ok{color:var(--ok)}
.row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:20px 0 10px;font-size:.9rem}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.lang{display:block;max-width:120px;margin-top:20px}
.lang-wide{max-width:220px}
.stack{display:grid;gap:14px}
.stack-lg{display:grid;gap:16px;max-width:720px}

/* ---------- marca ---------- */
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:-.01em}
.logo{color:var(--iris);flex:none}

/* ---------- entrada (Lote 8.1): cartão do formulário + painel de marca, no estilo dos produtos profissionais ---------- */
.auth-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:16px;padding:16px;min-height:100dvh;background:var(--bg)}
.auth-pane{order:1;display:grid;place-items:center;padding:32px 20px;background:var(--surface);border:1px solid var(--line);border-radius:24px}
.auth-art{order:2;position:relative;overflow:hidden;isolation:isolate;border-radius:24px;color:#E8EEF3;padding:clamp(32px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:28px;
  background:radial-gradient(120% 80% at 100% 0%,rgba(45,212,191,.28),transparent 55%),radial-gradient(90% 70% at 0% 100%,rgba(13,148,136,.22),transparent 60%),linear-gradient(160deg,#0B2233 0%,#07131F 70%)}
.auth-art::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(232,238,243,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(232,238,243,.06) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(80% 70% at 70% 30%,#000,transparent 75%);mask-image:radial-gradient(80% 70% at 70% 30%,#000,transparent 75%)}
/* Fundo do painel (foto/vídeo). ESCURECIMENTO: troque o número de --hero-dim (0 = sem véu ... 1 = bem escuro; padrão .94 = 94% à esquerda, ~60% no meio, ~19% à direita).
   A foto fica ancorada à DIREITA; o véu é mais forte à esquerda, onde ficam a frase e os textos. */
.auth-art{--hero-dim:.94}
.auth-art.has-photo::after,.auth-art.has-video::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,19,31,var(--hero-dim)) 0%,rgba(7,19,31,calc(var(--hero-dim)*.65)) 55%,rgba(7,19,31,calc(var(--hero-dim)*.2)) 100%)}
.auth-art.has-photo::after{background:linear-gradient(90deg,rgba(7,19,31,var(--hero-dim)) 0%,rgba(7,19,31,calc(var(--hero-dim)*.65)) 55%,rgba(7,19,31,calc(var(--hero-dim)*.2)) 100%),url(/brand/login-hero.jpg) right center/cover no-repeat}
.auth-art.has-video::after{z-index:0}
.auth-art.has-photo .auth-pulse,.auth-art.has-video .auth-pulse{opacity:.55}
.auth-video{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:right center;pointer-events:none;opacity:0;transition:opacity .8s}
.auth-art.has-video .auth-video{opacity:1}
.auth-art.has-video>*:not(.auth-video){position:relative;z-index:1}
.auth-art.has-video .auth-mark{position:absolute}
.auth-quote{position:relative;margin:0;font-family:var(--sans);font-weight:600;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.08;letter-spacing:-.03em;max-width:11em;text-wrap:balance}
.auth-mark{position:absolute;z-index:-1;right:-9%;top:-4%;width:min(62%,420px);aspect-ratio:1;background:url(/brand/celsor-simbolo-leve.svg) center/contain no-repeat;opacity:.09;pointer-events:none}
.auth-quote::before{content:"";display:block;width:40px;height:3px;border-radius:2px;background:var(--accent);margin-bottom:20px}
.auth-pulse{width:100%;height:auto;max-height:120px;display:block;overflow:visible;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.auth-pulse path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.auth-pulse .track{stroke:rgba(232,238,243,.14);stroke-width:1.5}
.auth-pulse .beat{stroke:#2DD4BF}
.auth-pulse .b-glow{stroke-width:7;opacity:.5;filter:url(#ap-glow);stroke-dasharray:200 400;animation:authbeat-g 4.2s linear infinite}
.auth-pulse .b-tail{stroke-width:2.5;opacity:.55;stroke-dasharray:120 480;animation:authbeat-t 4.2s linear infinite}
.auth-pulse .b-head{stroke:#99F6E4;stroke-width:3.5;stroke-dasharray:34 566;animation:authbeat-h 4.2s linear infinite}
/* as 3 camadas terminam no mesmo ponto (a "cabeça"), a de trás é mais comprida e mais fraca: dá o rastro */
@keyframes authbeat-g{from{stroke-dashoffset:200}to{stroke-dashoffset:-400}}
@keyframes authbeat-t{from{stroke-dashoffset:120}to{stroke-dashoffset:-480}}
@keyframes authbeat-h{from{stroke-dashoffset:34}to{stroke-dashoffset:-566}}
/* decorativo e pequeno: segue animando mesmo com "reduzir movimento" (que no Windows costuma vir ligado sem a pessoa saber); só fica mais lento */
@media (prefers-reduced-motion:reduce){.auth-pulse .b-glow{animation:authbeat-g 9s linear infinite!important}.auth-pulse .b-tail{animation:authbeat-t 9s linear infinite!important}.auth-pulse .b-head{animation:authbeat-h 9s linear infinite!important}}
.auth-points{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.auth-points li{display:flex;align-items:center;gap:12px;font-size:1rem;line-height:1.35;color:#B4C2CD}
.ap-ico{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(45,212,191,.12);border:1px solid rgba(94,234,212,.28);color:#5EEAD4}
.ap-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.auth-box{width:100%;max-width:380px;display:grid;gap:4px}
.auth-box .brand{margin-bottom:28px}
.auth-box h1{margin-bottom:20px}
.auth-box .row{margin-top:22px}
.center-stage{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.center-stage .panel{width:100%;max-width:440px}
.loading{text-align:center;margin:34vh 0 0;color:var(--muted)}

/* ---------- estrutura do app ---------- */
.shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100dvh}
.rail{position:sticky;top:0;align-self:start;height:100dvh;padding:22px 14px;border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:28px}
.rail .brand{padding:0 10px}
.nav{display:grid;gap:2px}
.nav a,.tabs a{display:flex;align-items:center;gap:12px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.92rem;border-radius:var(--r-s)}
.nav a{padding:10px 12px}
.nav a:hover{background:var(--surface-2);color:var(--ink)}
.nav a[aria-current=page],.tabs a[aria-current=page]{color:var(--ink);background:var(--surface-2)}
.ico{display:grid;place-items:center;flex:none}
.main{min-width:0;display:flex;flex-direction:column}
.bar{display:flex;align-items:center;gap:14px;padding:12px 28px;min-height:60px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}
.brand-m{display:none}
.grow{flex:1}
#view{padding:32px 28px 64px;max-width:1280px;width:100%;margin:0 auto;outline:none}
.page-head{margin-bottom:24px;display:grid;gap:4px}
.page-head p{margin:0}
.tabs{display:none}

/* indicador de sincronização */
.sync{display:flex;align-items:center;gap:4px;font-size:.85rem}
.pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid var(--line);border-radius:99px;font-weight:600;color:var(--muted);background:var(--bg)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.sync[data-kind=offline] .dot{background:var(--warn)}
.sync[data-kind=error] .dot{background:var(--err)}
.sync[data-kind=error] .pill{color:var(--err);border-color:currentColor}
.sync[data-kind=syncing] .dot{background:var(--accent);animation:breathe 1.2s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.7);opacity:.45}}

/* menu da conta */
.who{position:relative}
.avatar{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--iris-wash);color:var(--iris-ink);font:600 .95rem var(--sans);cursor:pointer}
.avatar:hover{border-color:var(--iris)}
.menu{position:absolute;right:0;top:46px;min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:6px;box-shadow:var(--shadow-pop);z-index:40}
.menu-id{display:grid;padding:10px 12px 12px;border-bottom:1px solid var(--line-soft);margin-bottom:6px;font-size:.85rem;word-break:break-all}
.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;background:none;color:var(--ink);font:600 .9rem var(--sans);border-radius:var(--r-s);cursor:pointer;text-decoration:none;text-align:left}
.menu-item:hover{background:var(--line-soft)}
.menu-item svg{width:18px;height:18px;color:var(--muted)}

/* ---------- conteúdo ---------- */
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.span{grid-column:1/-1}
.panel h2{margin-bottom:12px}
.big{font-family:var(--serif);font-size:1.5rem;letter-spacing:-.01em;margin-bottom:6px}
.steps{list-style:none;margin:0;padding:0;display:grid}
.steps li{display:grid;gap:2px;padding:14px 0;border-top:1px solid var(--line-soft)}
.steps li:first-child{border-top:0;padding-top:0}
.devnote{margin:16px 0 0;padding-top:14px;border-top:1px dashed var(--line);font-size:.85rem}
.meter{height:6px;border-radius:99px;background:var(--line-soft);overflow:hidden;margin:4px 0 12px}
.meter i{display:block;height:100%;background:var(--accent-ink);border-radius:inherit;min-width:2px}
.empty{display:grid;justify-items:start;gap:10px;max-width:460px;padding-top:7vh}
.empty-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--iris-wash);color:var(--iris-ink)}
.empty-ico svg{width:26px;height:26px}
.empty p{margin:0}
.empty .btn{margin-top:10px}

/* ---------- diálogo e aviso ---------- */
.dlg{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);padding:26px;max-width:min(440px,calc(100vw - 32px));width:100%;box-shadow:0 24px 64px #0000004d}
.dlg::backdrop{background:#071218a6}
.dlg h2{margin-bottom:8px}
.dlg-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}
#toasts{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;gap:8px;z-index:100;width:max-content;max-width:calc(100vw - 32px)}
.toast{background:var(--ink);color:var(--bg);padding:11px 16px;border-radius:var(--r-s);font-size:.9rem;font-weight:600;transition:opacity .25s}
.toast.err{background:var(--err);color:var(--on-err)}.toast.ok{background:var(--ok);color:var(--on-ink)}
.toast.out{opacity:0}

/* ---------- pacientes ---------- */
.head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.head-row h1{margin:0}
.toolbar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.search{flex:1;min-width:240px}
.search input{padding-left:14px}
.check.inline{white-space:nowrap;align-items:center}.check.inline input{margin-top:0}
.plist{list-style:none;margin:0;padding:0;display:grid;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.plist li+li{border-top:1px solid var(--line-soft)}
.prow{display:flex;align-items:center;gap:14px;padding:12px 16px;min-height:64px;text-decoration:none;color:var(--ink)}
.prow:hover,.prow:focus-visible{background:var(--iris-wash)}
.prow.arch{opacity:.65}
.av{width:40px;height:40px;border-radius:50%;background:var(--iris-wash);color:var(--iris-ink);display:grid;place-items:center;font-weight:600;font-size:.9rem;flex:none}
.av.lg{width:64px;height:64px;font-size:1.35rem;font-family:var(--serif)}
.pmain{display:grid;gap:1px;min-width:0;flex:1}
.pmain strong,.pmain span,.pmain small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pmain h1{margin:0}
.tag{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid var(--line);border-radius:99px;font-size:.78rem;font-weight:600;color:var(--muted);background:var(--bg);white-space:nowrap}
.tag.warn{color:var(--warn);border-color:currentColor}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}
.more{display:flex;justify-content:center;margin-top:16px}
.back{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.9rem}
.back:hover{color:var(--ink)}.back svg{width:18px;height:18px}
.phead{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.phead .pmain{flex:1 1 200px}
.phead .pmain h1,.phead .pmain p{white-space:normal}
.phead .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.alert-allergy,.note-ok,.note-muted{padding:12px 16px;border-radius:var(--r-s);margin-bottom:16px;border:1px solid var(--line)}
.alert-allergy{background:color-mix(in srgb,var(--err) 9%,var(--surface));border-color:color-mix(in srgb,var(--err) 45%,var(--line))}
.note-ok{background:color-mix(in srgb,var(--ok) 9%,var(--surface));border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}
.note-muted{color:var(--muted);background:var(--surface)}
dl{margin:0}
.kv{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line-soft)}
.kv:first-child{border-top:0;padding-top:0}
.kv dt{color:var(--muted);font-size:.85rem}.kv dd{margin:0;word-break:break-word;display:flex;flex-wrap:wrap;gap:6px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.panel-head h2{margin:0}
.btn.sm{min-height:34px;padding:0 14px;font-size:.85rem}
.pre{white-space:pre-wrap}
.soon-box{border-style:dashed;background:transparent}
.stack{display:grid;gap:16px}
.head-row+.toolbar{margin-top:-4px}

/* chips (alergias, medicações) */
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;background:var(--iris-wash);color:var(--iris-ink);font-size:.85rem;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);min-height:46px}
.chips:focus-within{border-color:var(--accent-ring);box-shadow:var(--focus)}
.chips-list{display:contents;list-style:none;margin:0;padding:0}
.chips input{border:0;box-shadow:none;flex:1;min-width:150px;min-height:34px;padding:4px 8px;background:transparent}
.chips input:focus{box-shadow:none}
.chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:1.05rem;line-height:1;padding:0 2px;border-radius:50%}
.chip button:hover{color:var(--err)}

/* formulário */
.pform{gap:16px}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.f{display:grid;gap:6px;align-content:start}
.idrow{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:8px}
.hint{margin:0;color:var(--muted);font-size:.8rem;font-weight:400}
.err{margin:0;color:var(--err);font-size:.82rem;font-weight:600}.err:empty{display:none}
.has-err input,.has-err select,input[aria-invalid=true]{border-color:var(--err)}
textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);padding:11px 12px;width:100%;resize:vertical}
textarea:focus{outline:none;border-color:var(--accent-ring);box-shadow:var(--focus)}
.form-actions{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;padding:14px 0;background:linear-gradient(transparent,var(--bg) 40%)}

/* ---------- agenda ---------- */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;background:var(--surface)}
.seg button{font:inherit;font-weight:600;font-size:.88rem;min-height:40px;padding:0 16px;border:0;background:none;color:var(--muted);cursor:pointer}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed=true]{background:var(--iris-wash);color:var(--iris-ink)}
.navgrp{display:flex;gap:6px}.navgrp .btn{min-height:40px;padding:0 14px}.navgrp svg{width:18px;height:18px}
.prosel select{min-width:200px}
.ag-tools{margin-bottom:14px}
.cal{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow-x:auto}
.cal-head,.cal-body{display:grid;grid-template-columns:54px repeat(var(--n,7),minmax(112px,1fr));min-width:max-content}
.cal-head{border-bottom:1px solid var(--line)}
.dh{display:grid;justify-items:center;padding:8px 4px;border-left:1px solid var(--line-soft);color:var(--muted);font-size:.8rem;text-transform:capitalize}
.dh b{font-size:1.15rem;color:var(--ink);font-family:var(--serif);font-weight:500}
.dh.is-today b{background:var(--iris);color:var(--on-ink);border-radius:99px;min-width:30px;text-align:center}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .dh.is-today b{color:#06222a}}
.gutter{position:relative}
.gutter span{position:absolute;right:8px;transform:translateY(-50%);font-size:.72rem;color:var(--muted)}
.gutter span:first-child{transform:none}
.dcol{position:relative;border-left:1px solid var(--line-soft);cursor:cell;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour) - 1px),var(--line-soft) calc(var(--hour) - 1px),var(--line-soft) var(--hour))}
.dcol.is-today{background-color:color-mix(in srgb,var(--iris) 4%,transparent)}
.nowline{position:absolute;left:0;right:0;height:2px;background:var(--err);pointer-events:none;z-index:3}
.nowline::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--err)}
.ev{--c:var(--iris);position:absolute;z-index:2;display:block;text-align:left;font:inherit;font-size:.78rem;line-height:1.25;color:var(--ink);cursor:pointer;overflow:hidden;
  padding:3px 6px;border:0;border-left:3px solid var(--c);border-radius:6px;background:color-mix(in srgb,var(--c) 16%,var(--surface))}
.ev:hover{background:color-mix(in srgb,var(--c) 28%,var(--surface))}
.ev{white-space:nowrap;text-overflow:ellipsis}
.ev b{font-weight:700}.ev span{font-weight:600}.ev small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev.st-confirmed{border-left-width:5px}
.ev.st-arrived{box-shadow:inset 0 0 0 1.5px var(--warn)}
.ev.st-in_service{background:color-mix(in srgb,var(--c) 38%,var(--surface))}
.ev.st-done{opacity:.55}
.ev.st-missed{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--err) 14%,var(--surface)) 0 6px,var(--surface) 6px 12px);border-left-color:var(--err)}
.ev-block{--c:var(--muted);background:repeating-linear-gradient(135deg,var(--line-soft) 0 6px,var(--surface) 6px 12px)}
.ev-pending{outline:1.5px dashed var(--warn);outline-offset:-1.5px}
.center-note{text-align:center;margin-top:14px}
.warn-line{margin:0;padding:10px 12px;border-radius:var(--r-s);background:color-mix(in srgb,var(--warn) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line));font-size:.88rem}
.dlg-wide{max-width:min(620px,calc(100vw - 24px));width:100%}
.aform{display:grid;gap:16px}
.psel{display:flex;align-items:center;gap:10px}
.presults{list-style:none;margin:4px 0 0;padding:4px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);max-height:240px;overflow:auto}
.presults li{display:grid;padding:9px 10px;border-radius:6px;cursor:pointer}
.presults li:hover,.presults li:focus{background:var(--iris-wash)}
.presults li.new{color:var(--iris-ink);font-weight:600}
.quick{padding:12px;border:1px dashed var(--line);border-radius:var(--r-s);margin-top:8px}
.adetail header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.adetail header h2{margin:0}
.actions-col{display:grid;gap:8px;margin:16px 0 0}
.st{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:600;border:1px solid var(--line);background:var(--bg);color:var(--muted);white-space:nowrap}
.st i{font-style:normal}
.st-confirmed.st,.st-done.st{color:var(--ok);border-color:currentColor}
.st-arrived.st{color:var(--warn);border-color:currentColor}
.st-in_service.st{color:var(--iris-ink);border-color:var(--iris);background:var(--iris-wash)}
.st-missed.st{color:var(--err);border-color:currentColor}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.stats>div{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.stats b{font-family:var(--serif);font-size:1.7rem;font-weight:500;line-height:1.1}.stats span{color:var(--muted);font-size:.82rem}
.panel .stats>div{background:var(--bg)}
.queue{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.qcard{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.qcard.st-done{opacity:.6}.qcard.st-in_service{border-color:var(--accent-ring);box-shadow:var(--focus)}.qcard.st-missed{border-style:dashed}
.qmain{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:8px;border:0;background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer;border-radius:var(--r-s)}
.qmain:hover{background:var(--iris-wash)}
.qtime{font-family:var(--serif);font-size:1.25rem;min-width:56px}
.wait{font-size:.82rem;font-weight:600;color:var(--warn)}.wait.long{color:var(--err)}
.linklist{list-style:none;margin:0;padding:0;display:grid}
.linklist li+li{border-top:1px solid var(--line-soft)}
.linklist a{display:grid;gap:2px;padding:12px 0;color:var(--ink);text-decoration:none}.linklist a:hover b{color:var(--iris-ink)}
.swatch{width:14px;height:40px;border-radius:5px;flex:none}
button.prow{width:100%;border:0;background:none;font:inherit;text-align:left;cursor:pointer}
.steps li.done{opacity:.6}

/* ---------- celular ---------- */
@media (max-width:860px){
  .auth-wrap{grid-template-columns:1fr;gap:12px;padding:12px}
  .auth-art{order:0;padding:24px;gap:0}
  .auth-pane{padding:28px 16px}
  .auth-quote{font-size:1.6rem}
  .auth-quote::before{margin-bottom:14px}
  .auth-pulse,.auth-points,.auth-mark{display:none}
  .shell{grid-template-columns:1fr}
  .rail{display:none}
  .brand-m{display:flex;font-size:1.15rem}
  .bar{padding:10px 16px}
  #view{padding:22px 16px 96px}
  .grid{grid-template-columns:1fr}
  .tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .tabs a{flex-direction:column;gap:2px;padding:6px 2px;font-size:.68rem;text-align:center;min-width:0}
  .tabs .lbl{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  h1{font-size:1.5rem}
  .cols{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qcard{flex-wrap:wrap}.qcard>.btn{flex:1 1 100%}
  .prosel,.prosel select{width:100%}
  .ag-tools .grow{display:none}
  .kv{grid-template-columns:1fr;gap:2px}
  .phead .actions{margin-left:0;flex:1 1 100%}
  .form-actions{bottom:76px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* convênios: editor de carteirinhas, tabela de valores, passos do importador */
.cov{padding:12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);margin-bottom:10px}
.cov .link{margin-top:6px}
.covdl+.covdl{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.ptable{display:grid;gap:6px;max-height:260px;overflow:auto;padding:2px}
.prr{display:grid;grid-template-columns:1fr 140px;gap:10px;align-items:center}
.prr label{margin:0;font-weight:500}
.chips-add{display:flex;gap:8px;margin-top:8px}.chips-add input{flex:1}
.chip-x{border:0;background:none;color:inherit;cursor:pointer;font-size:1.05rem;line-height:1;padding:0 2px}
.steps-mini{margin:8px 0 14px;padding-left:20px;color:var(--muted)}
@media (max-width:560px){.prr{grid-template-columns:1fr 110px}}
.pick{max-height:320px;overflow:auto;margin-top:10px}
.pick .prow{cursor:pointer}.pick .prow input{width:20px;height:20px;flex:none}
.pad{padding:14px 16px}
.more{margin-top:12px}.more summary{cursor:pointer;color:var(--muted)}

/* ======================= Lote 1.4 — prontuário, receituário, impressos ======================= */
/* cabeçalho clínico do paciente (alergias sempre visíveis) */
.chead{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-wrap:wrap}
.cmain{flex:1;min-width:200px}.cmain h1{font-size:1.2rem}.cmain h1 a{color:inherit;text-decoration:none}
.cmain p{margin:2px 0 0;font-size:.88rem}
.cbadges{display:flex;gap:6px;flex-wrap:wrap}
.badge-allergy,.badge-ok,.badge-muted,.badge-meds{display:inline-flex;gap:4px;padding:2px 10px;border-radius:99px;font-size:.8rem;border:1px solid var(--line)}
.badge-allergy{background:color-mix(in srgb,var(--err) 12%,var(--surface));color:var(--err);border-color:var(--err)}
.badge-ok{color:var(--ok);border-color:var(--ok)}.badge-muted{color:var(--muted)}.badge-meds{color:var(--ink);background:var(--bg)}
.cextra{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.timer{font:600 1.15rem/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--iris-ink);background:var(--iris-wash);padding:8px 12px;border-radius:var(--r-s)}
/* abas do paciente */
.ptabs{display:flex;gap:2px;margin:14px 0;border-bottom:1px solid var(--line);overflow-x:auto}
.ptab{padding:10px 16px;font-weight:600;font-size:.92rem;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px}
.ptab:hover{color:var(--ink)}.ptab.on{color:var(--ink);border-bottom-color:var(--accent)}.ptab.soon{opacity:.5;cursor:default}
/* ferramentas e estado de gravação */
.ctools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.grow{flex:1}
.savestate{font-size:.82rem;color:var(--muted)}
.hintline{margin:0 0 10px;font-size:.85rem;color:var(--muted)}
.note-soon{padding:10px 14px;border:1px dashed var(--line);border-radius:var(--r-s);color:var(--muted);font-size:.88rem;margin:0 0 12px}
/* cartões de bloco */
.blk-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px}
.blk-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 6px 4px;flex-wrap:wrap}
.blk-t{display:flex;align-items:center;gap:8px;background:none;border:0;font:inherit;cursor:pointer;color:var(--ink);padding:10px 12px;text-align:left;border-radius:var(--r-s)}
.blk-t h2{margin:0}
.chev{display:inline-block;transition:transform .15s;color:var(--muted)}.blk-t[aria-expanded=true] .chev{transform:rotate(90deg)}
.btools{display:flex;gap:6px;flex-wrap:wrap}
.blk-body{display:grid;gap:14px;padding:4px 18px 18px}
.blk-card.noprint{border-style:dashed}
.fld{display:grid;gap:6px;min-width:0}.fl{font-weight:600;font-size:.875rem}
.eyes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.eye{display:grid;gap:4px}.el{font-size:.78rem;font-weight:700;color:var(--iris-ink);letter-spacing:.04em}
.rxrow{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:end;margin-bottom:8px}
.rxrow .el{padding-bottom:12px}
.cells{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px}
.cell{display:grid;gap:3px;font-size:.72rem;font-weight:600;color:var(--muted)}
.cell input{padding:9px 8px;text-align:center;font-size:.95rem}
.numwrap{position:relative;display:block}.numwrap input{padding-right:42px}
.numwrap i{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-style:normal;font-size:.78rem;color:var(--muted);pointer-events:none}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 16px;max-height:260px;overflow:auto;padding:4px}
.chk-q{margin-bottom:6px}
.calc{padding:10px 14px;background:var(--iris-wash);border-radius:var(--r-s)}
.calcout{font-weight:600;color:var(--iris-ink);line-height:1.7}.calcout small{font-weight:400;color:var(--muted)}
.link.sm{font-size:.82rem;justify-self:start}
.danger-text{color:var(--err)}
.pre{white-space:pre-wrap}
.addendum{padding:10px 0;border-top:1px solid var(--line-soft)}
/* linha do tempo do prontuário */
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tl{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none}
.tl:hover{border-color:var(--iris)}
.tl.draft{border-left:3px solid var(--warn)}
.tl-date{display:grid;text-align:center;line-height:1.2}.tl-date b{font-size:1.05rem}
.tl-main{display:grid;gap:3px;min-width:0}.tl-main strong{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.chips-inline{display:flex;gap:6px;flex-wrap:wrap}
/* modelos, listas, documentos */
.mopt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer;font-weight:400}
.mopt:has(input:checked){border-color:var(--iris);background:var(--iris-wash)}
.mopt input{width:18px;min-height:18px;margin-top:3px;accent-color:var(--iris)}
.mopt span{display:grid;gap:2px}.mopt b{font-weight:600}
.clist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.clist li{display:flex;gap:10px;align-items:center}
.mrow{justify-content:space-between;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.mact{display:flex;gap:10px;align-items:center}
.check.sm{font-size:.82rem}
.pick{width:100%;display:grid;gap:2px;text-align:left;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);font:inherit;color:var(--ink);cursor:pointer}
.pick:hover{border-color:var(--iris);background:var(--iris-wash)}.pick b{font-weight:600}
.docs{gap:8px}
.doc-row{display:grid!important;grid-template-columns:1fr auto;gap:6px 14px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.doc-row.void{opacity:.6}.doc-row.void .doc-main b{text-decoration:line-through}
.doc-main{display:grid;gap:2px;min-width:0}.doc-text{font-size:.88rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.doc-tags{display:flex;gap:6px;align-items:start;justify-content:flex-end}
.doc-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.rx-item{border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;display:grid;gap:10px;margin:0;min-width:0}
.rx-item legend{font-weight:600;font-size:.82rem;color:var(--muted);padding:0 6px}
.chk-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.preview{padding:12px 14px;border:1px dashed var(--line);border-radius:var(--r-s);background:var(--bg);min-height:60px}
.warnline{color:var(--warn);font-size:.85rem;font-weight:600}.warnline:empty{display:none}
.dlg-wide textarea{min-height:80px}
.wide{grid-column:1/-1}
@media (max-width:640px){
  .eyes{grid-template-columns:1fr}.tl{grid-template-columns:52px 1fr}.tl .tag{grid-column:2}
  .doc-row{grid-template-columns:1fr}.doc-tags{justify-content:start}
  .chead{padding:10px 12px}.cells{grid-template-columns:repeat(3,1fr)}
}
@media print{.chead-wrap,.ptabs,.ctools,#net-banner,.btools{display:none!important}}
.rx-item .cols{grid-template-columns:2fr 1.5fr 1fr}
@media (max-width:640px){.rx-item .cols{grid-template-columns:1fr}}

/* ======================= Lote 1.5 — prontuário compacto ======================= */
.cinfo{display:flex;flex-wrap:wrap;gap:4px 18px;margin:4px 0 6px!important;font-size:.9rem;color:var(--ink)}
.ci{display:inline-flex;gap:6px;align-items:baseline}.ci i{font-style:normal;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.ci a{color:inherit;text-decoration:none}.ci a:hover{text-decoration:underline}
/* barra compacta: fica à vista enquanto se rola; leva o índice das seções */
.cbar{position:sticky;top:0;z-index:25;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(6px);margin:0 -4px 10px;padding:8px 4px 6px;border-bottom:1px solid var(--line)}
.cbar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:38px}
.cbar-pt{font-family:var(--serif);font-size:1.05rem;max-width:36ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cbar .badge-allergy{max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
.cnav[hidden]{display:none}
.cnav{display:flex;gap:6px;overflow-x:auto;padding:6px 0 2px;scrollbar-width:thin}
.cn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font:inherit;font-size:.82rem;font-weight:600;padding:5px 11px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--muted);cursor:pointer}
.cn i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.cn.on{color:var(--ink)}.cn.on i{background:var(--ok)}
.cn:hover{border-color:var(--iris);color:var(--ink)}
/* cartões: fechados mostram o resumo; grade de duas colunas em telas largas */
.cgrid{display:grid;gap:10px;align-items:start}
.cgrid.view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cgrid.view-grid .blk-card.wide{grid-column:1/-1}
@media (max-width:900px){.cgrid.view-grid{grid-template-columns:1fr}}
.blk-card{margin-bottom:0;scroll-margin-top:118px}
.blk-card>header{padding:2px 8px 2px 2px}
.blk-t{flex:1;min-width:0;padding:10px 12px}
.blk-name{display:grid;gap:1px;min-width:0}
.blk-name h2{font-size:1.02rem}
.blk-sum{font-family:var(--sans);font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.blk-t[aria-expanded=true] .blk-sum{display:none}
.blk-card.filled>header .blk-name h2::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-left:8px;vertical-align:middle}
.blk-body{gap:12px;padding:2px 16px 14px}
textarea{field-sizing:content;min-height:44px}
.dlg-wide textarea{field-sizing:content}
/* botão de histórico por campo */
.fld.has-hist{position:relative}
.hist{position:absolute;right:0;top:-3px;display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;opacity:.75}
.hist svg{width:17px;height:17px}.hist:hover,.hist:focus-visible{background:var(--iris-wash);color:var(--iris-ink);opacity:1}
.fld.has-hist>.fl,.fld.has-hist>label>.fl{padding-right:30px}
.hlist{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:56vh;overflow:auto}
.hlist li{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s)}
.htext{white-space:pre-wrap;font-size:.95rem}.hact{display:flex;gap:6px;justify-content:flex-end}
@media (max-width:640px){
  .cbar{background:var(--bg);margin:0 -16px 10px;padding:8px 16px 6px}
  .cbar-row{flex-wrap:wrap;gap:8px}
  .cbar-pt{flex:1 1 0;min-width:0;max-width:none}
  .cbar .grow,.cbar .savestate{display:none}
  .cbar .badge-allergy{order:9;flex:1 1 100%;max-width:none}
  .ctools .btn{white-space:nowrap}
  .ctools .grow,.ctools #t-view{display:none}
  .blk-card>header .btools{flex:1 1 100%;padding:0 10px 8px}
  .blk-card>header .btools .btn{flex:1 1 auto}
}
.blk-sum:empty{display:none}
.btn svg{width:18px;height:18px;flex:none}
.btn.sm svg{width:16px;height:16px}
/* seletor de grau (ui/picker.js) */
.picker{position:fixed;z-index:120;width:min(372px,calc(100vw - 16px));max-height:min(520px,calc(100dvh - 16px));overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgba(10,30,40,.22);padding:12px;display:grid;gap:8px}
.picker.sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-height:62dvh;border-radius:18px 18px 0 0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 34px rgba(10,30,40,.25)}
.pk-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pk-val{font-family:var(--serif);font-size:1.7rem;line-height:1;display:grid;gap:2px}
.pk-val small{font-family:var(--sans);font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pk-steps{display:flex;gap:6px}
.pk{font:inherit;font-weight:600;font-size:.95rem;min-height:40px;min-width:40px;padding:0 6px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);cursor:pointer}
.pk:hover{border-color:var(--iris)}
.pk.on{background:var(--iris);border-color:var(--iris);color:var(--on-ink)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .pk.on{color:#06222a}}
.pk-step{background:var(--iris-wash);color:var(--iris-ink);border-color:transparent;min-width:46px}
.pk-row{display:flex;gap:6px}.pk-row .pk{flex:1}.pk-row .pk-wide{flex:2}
.pk-lab{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.pk-grid{display:grid;gap:5px}
.pk-grid.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.pk-grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.pk-grid.g7{grid-template-columns:repeat(7,minmax(0,1fr))}.pk-grid.g8{grid-template-columns:repeat(8,minmax(0,1fr))}
.pk-grid .pk{padding:0;font-size:.9rem;min-width:0}.pk-grid>*{min-width:0}.pk-steps .pk{min-width:0;padding:0 9px}.pk-head{flex-wrap:wrap}
.pk-foot{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
.rxrow .cell input[data-p]{cursor:pointer}
.pk-open #view{padding-bottom:62dvh}
.blk-card>header .btools:empty{display:none}

/* ---------- Lote 1.6: sugestões de medicamentos ---------- */
.ms-wrap{position:relative}
.ms-box{position:absolute;left:0;right:0;top:calc(100% - 2px);z-index:30;max-height:min(46vh,380px);overflow:auto;background:var(--surface);border:1px solid var(--iris);border-radius:var(--r-s);box-shadow:0 12px 32px #00000033}
.ms-row{padding:10px 12px;min-height:48px;cursor:pointer;border-bottom:1px solid var(--line-soft);line-height:1.35}
.ms-row.on,.ms-row:hover{background:var(--iris-wash)}
.ms-form{color:var(--ink);font-weight:500}
.ms-sub{display:block;color:var(--muted);font-size:.8rem}
.ms-foot{padding:8px 12px;font-size:.75rem;color:var(--muted);background:var(--bg);position:sticky;bottom:0}
.packs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 0 0}
.packs .lbl{font-size:.8rem;color:var(--muted)}
.packs button{font:inherit;font-size:.82rem;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:5px 11px;border-radius:99px;cursor:pointer;min-height:32px}
.packs button:hover{border-color:var(--iris);background:var(--iris-wash)}
.hint-line{font-size:.82rem;color:var(--muted);margin:4px 0 0}
.hint-line.warn{color:var(--warn)}
.ctl-flag{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--warn);border-radius:var(--r-s);color:var(--warn);font-size:.85rem;margin-top:6px}
.dlg p.muted{white-space:pre-line}
.ctl-sel{display:inline-flex;flex-direction:column;gap:2px;font-size:.78rem;color:var(--muted);font-weight:600;min-width:210px}
.ctl-sel select{min-height:38px;font-weight:500}
.cp-list{max-height:min(52vh,420px);overflow:auto;margin:8px 0}
.cp-row{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;text-align:left;width:100%}
.cp-row .muted{grid-column:2;font-size:.8rem}
.cp-code{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--iris-ink);font-weight:600;grid-row:1/3;align-self:center}
.cp-row.on,.cp-row:hover{background:var(--iris-wash)}
.cp-empty{padding:14px;list-style:none}
.cp-foot{font-size:.78rem}
.code-chip{display:inline-flex;gap:6px;align-items:center;font-variant-numeric:tabular-nums;font-size:.8rem;padding:2px 9px;border:1px solid var(--line);border-radius:99px;background:var(--bg);color:var(--ink)}
.code-chip b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600;color:var(--iris-ink)}
.tuss-items{display:grid;gap:6px;margin:6px 0}
.tuss-row{display:flex;gap:8px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:var(--r-s);padding:6px 10px}
.tuss-row .t{min-width:0;flex:1;font-size:.9rem}
.tuss-row input{width:64px;min-height:36px;padding:4px 8px}

/* códigos oficiais (procedimentos, agenda) */
.code-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.code-row input{flex:1 1 9rem;min-width:8rem;font-variant-numeric:tabular-nums}
.off-items{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.off-items li{display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:10px}
.off-items .oi-main{flex:1;min-width:0;display:grid}
.off-items .oi-main b{font-weight:600;overflow-wrap:anywhere}
.off-items input[type=number]{width:4rem}
.proc-code-line{margin:4px 0 0;font-size:.85rem}

/* painel país e listas */
.deplist{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}
.deplist .dep{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.tag.ok{color:var(--ok);border-color:currentColor}
.file-btn{cursor:pointer}

/* blocos: dica do modelo pronto, biblioteca e construtor */
.tipbox{border:1px solid var(--line);border-left:4px solid var(--iris);border-radius:10px;padding:10px 12px;margin:8px 0 12px;background:var(--iris-wash)}
.tipbox p{margin:4px 0 0}
.tipbox .tip-actions{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}
.blib-list{max-height:52vh;overflow:auto;margin:8px 0}
.blib-g h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 4px}
.blib-g ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.blib-row{width:100%;text-align:left;display:grid;gap:2px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;font:inherit;color:inherit}
.blib-row:hover,.blib-row:focus-visible{border-color:var(--iris)}
.blib-new{border-top:1px solid var(--line);padding-top:10px;margin-top:6px}
.bfields{list-style:none;margin:8px 0;padding:0;display:grid;gap:10px}
.bfield{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:8px}
.bfield .mv{display:flex;gap:6px;justify-content:flex-end}
.mopt .tag{margin-left:6px}

/* resultados de escores e curvas */
.scorecard{border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:10px;padding:10px 12px;display:grid;gap:4px}
.scorecard.lvl-ok{border-left-color:var(--ok)}.scorecard.lvl-warn{border-left-color:#c27803}.scorecard.lvl-high{border-left-color:#c53030}
.scorecard .sc-h{font-size:1.05rem}
.scorecard ul{margin:0;padding-left:1.1em}
.scorecard .sc-note{margin:4px 0 0;font-size:.8rem;color:var(--muted)}
.gtabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.gtab{border:1px solid var(--line);background:transparent;color:inherit;border-radius:99px;padding:3px 12px;font:inherit;font-size:.85rem;cursor:pointer}
.gtab.on{background:var(--iris);border-color:var(--iris);color:var(--on-ink)}
.gsvg{width:100%;max-width:640px;height:auto;margin-top:6px}
.gsvg .gg{stroke:var(--line);stroke-width:1}
.gsvg .gt{fill:var(--muted);font-size:11px}
.gsvg .gz{fill:none;stroke-width:1.5}
.gsvg .gz0{stroke:var(--ok);stroke-width:2.2}.gsvg .gz2{stroke:#c27803}.gsvg .gz3{stroke:#c53030;stroke-dasharray:5 4}
.gsvg .gp{fill:none;stroke:var(--ink);stroke-width:1.5;opacity:.7}
.gsvg .gdot{fill:var(--muted)}.gsvg .gdot.now{fill:var(--iris);stroke:#fff;stroke-width:2}
.calcout .scorecard{font-weight:400;color:var(--ink)}
.calcout .scorecard .sc-h{font-weight:700}
.gsvg .gt{font-size:12px}
.clist .mv{display:flex;gap:6px;flex-wrap:nowrap;white-space:nowrap;align-items:center}

/* Lote 1.7 */
.dlg-actions.wrap{flex-wrap:wrap;gap:8px;position:sticky;bottom:-1px;z-index:2;background:var(--surface);padding:12px 0 4px;margin-top:8px;border-top:1px solid #0000001a}
.defbox{margin-top:12px;padding:10px 12px;border:1px solid var(--iris);border-radius:var(--r-s);background:var(--iris-wash)}
.modelline{margin:6px 0 12px}
.ms-box{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* Lote 1.8 — botões de importação da receita de óculos mais compactos */
.blk-card.tools-xs .btools{gap:4px}
.blk-card.tools-xs .btools .btn.sm{min-height:28px;padding:0 9px;font-size:.78rem;gap:4px}
.blk-card.tools-xs .btools .btn.sm svg{width:14px;height:14px}
/* aviso com "Desfazer" (anular com contagem) */
.toast.undo{display:flex;align-items:center;gap:14px;padding:8px 8px 8px 16px}
.toast.undo .undo-btn{background:rgba(255,255,255,.16);color:inherit;border:1px solid rgba(255,255,255,.55);border-radius:8px;padding:6px 12px;font-weight:700;cursor:pointer;min-height:34px}
.toast.undo .undo-btn small{opacity:.85;font-weight:600;margin-left:4px}
.toast.undo .undo-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.void-more{margin:10px 0 0;font-size:.85rem}
.void-more button{background:none;border:0;color:var(--muted,#667);text-decoration:underline;cursor:pointer;padding:4px 0;font:inherit}
/* sino: atendimentos em andamento */
.bell-host{position:relative;display:flex;align-items:center}
.bell{position:relative;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:inherit;cursor:pointer;display:grid;place-items:center}
.bell:hover{background:rgba(127,127,127,.14)}.bell:focus-visible{outline:2px solid var(--iris);outline-offset:2px}
.bell svg{width:22px;height:22px}
.bell-n{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--err,#c0392b);color:#fff;font-size:.7rem;font-weight:800;display:grid;place-items:center;line-height:1}
.bell-menu{position:absolute;right:0;top:46px;z-index:60;width:min(360px,calc(100vw - 24px));background:var(--surface,#fff);color:var(--ink,#111);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:10px}
.bell-menu[hidden]{display:none}
.bell-head{padding:2px 4px 8px}.bell-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:min(60vh,420px);overflow:auto}
.bell-row{display:flex;gap:8px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:6px 6px 6px 10px}
.bell-link{display:grid;gap:2px;text-decoration:none;color:inherit;min-width:0;flex:1}
.bell-link b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bell-link span{font-size:.8rem}
.bell-empty{margin:6px 4px}.bell-foot{margin:8px 4px 2px}
/* Lote 1.8 — solicitação de exames */
.exm-search{position:relative}
.exm-results{list-style:none;margin:6px 0 0;padding:4px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);max-height:min(46vh,340px);overflow:auto;overscroll-behavior:contain}
.exm-results[hidden]{display:none}
.exm-results .pad{padding:8px 10px}.exm-results .small,.small{font-size:.82rem}
.exm-hit{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:9px 10px;min-height:42px;color:inherit;font:inherit;cursor:pointer}
.exm-hit:hover,.exm-hit.on{background:var(--iris-wash)}
.exm-hit.free{color:var(--iris-ink);font-weight:600;justify-content:flex-start}
.exm-hit.free svg{width:16px;height:16px}
.code{font-variant-numeric:tabular-nums;font-size:.8rem;white-space:nowrap}
.exm-pkgs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 10px}
.exm-pkgs .lbl,.exm-list .lbl{font-weight:700;font-size:.82rem;color:var(--muted);margin-right:4px}
.pkg-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:6px 12px;min-height:34px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.pkg-chip:hover{border-color:var(--iris);background:var(--iris-wash)}
.pkg-chip.mine{border-style:dashed}
.pkg-wrap{display:inline-flex;align-items:center;gap:2px}
.pkg-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:4px 6px;border-radius:50%}
.pkg-x:hover{color:var(--err,#c0392b);background:var(--line-soft)}
.exm-list{margin:6px 0 12px}
.exm-empty{margin:6px 0 12px;padding:14px;border:1px dashed var(--line);border-radius:var(--r-s);text-align:center}
.exm-items{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.exm-items li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:var(--r-s);padding:8px 10px;background:var(--surface)}
.exm-main{display:grid;gap:1px;min-width:0;flex:1 1 260px}
.exm-ctrl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.exm-note{width:190px;min-height:34px;padding:5px 9px;font-size:.85rem}
.eye-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.eye-toggle button{border:0;background:var(--surface);color:var(--ink);padding:0 12px;min-height:34px;min-width:44px;font:inherit;font-weight:700;font-size:.85rem;cursor:pointer}
.eye-toggle button+button{border-left:1px solid var(--line)}
.eye-toggle button[aria-pressed=true]{background:var(--iris);color:var(--on-ink)}
.exm-items .btn.sm{min-height:34px;padding:0 10px}
/* Memed */
.memed-box{display:grid;gap:8px}
.memed-state{display:inline-flex;align-items:center;gap:8px;font-weight:700}
.memed-state i{width:10px;height:10px;border-radius:50%;background:var(--muted);display:inline-block}
.memed-state.on i{background:#1f9d55}
.rx-memed-note{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--iris-wash)}
.tag.memed{background:var(--iris-wash);color:var(--iris-ink);border:1px solid var(--iris)}

/* ---- Lote 1.9: salvar automático no perfil e escolha de como prescrever ---- */
.save-state{font-size:.85rem;color:var(--muted);margin:6px 0 0;min-height:1.2em}
.save-state.ok{color:#1f7a45;font-weight:600}
.save-state.warn{color:var(--warn,#b45309);font-weight:600}
.rx-choose{display:grid;gap:12px;margin:16px 0 8px}
.rx-choose.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.rx-opt{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);color:var(--ink)}
.rx-opt.memed-box{border-color:var(--iris,#0b6a7d);background:var(--iris-wash,#eef7f8);color:var(--ink)}
.rx-opt-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rx-opt-h h2{font-size:1.05rem;margin:0;flex:1 1 auto}
.rx-opt p{margin:0;font-size:.9rem;line-height:1.45}
.rx-opt-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.rx-mine{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 18px;padding:8px 0;border-bottom:1px solid var(--line)}
.rx-mine>span{font-size:.85rem}
.rx-issued{font-size:1rem;margin:4px 0 10px}
@media (max-width:640px){.rx-mine{flex-wrap:nowrap;overflow-x:auto}.rx-mine .btn{flex:0 0 auto;white-space:nowrap}.rx-opt-a .btn{flex:1 1 auto}}

.btn.ok{background:#1c7a4d;border-color:#1c7a4d;color:#fff}.btn.ok:hover:not(:disabled){background:#17663f;border-color:#17663f}
.team-box{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--ok) 6%,var(--surface))}.team-box h3{margin:0 0 4px;font-size:1rem}.team-box .actions{margin-top:8px}
.logo-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.logo-prev{display:inline-flex;align-items:center;justify-content:center;min-width:90px;height:44px;border:1px dashed var(--line);border-radius:8px;background:#fff}.logo-prev:empty{display:none}.logo-prev img{max-height:40px;max-width:180px}
.exm-qty{display:inline-flex;align-items:center;gap:5px}.exm-qty small{color:var(--muted);font-weight:700}.exm-qty input{width:58px;min-height:34px;text-align:center}
.dlg-guide{max-width:min(980px,96vw)}.g-ctl{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 16px;align-items:start;margin:8px 0}
.g-sum{margin:6px 0;padding:8px 12px;border-radius:8px;font-weight:600;font-size:.9rem}.g-sum.warn{background:color-mix(in srgb,var(--warn) 14%,var(--surface));color:var(--warn)}.g-sum.ok{background:color-mix(in srgb,var(--ok) 10%,var(--surface));color:var(--ok)}
.g-body{max-height:52vh;overflow:auto;padding-right:4px}.g-grp{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;padding:8px 12px 12px}.g-grp legend{font-weight:700;padding:0 6px}
.g-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 14px}.g-f label{font-size:.82rem}.gn{display:inline-block;min-width:1.6em;text-align:center;border-radius:4px;background:var(--bg);font-weight:700;font-size:.75rem;padding:0 3px}
.g-f.warn input,.g-irow input.warn{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--surface))}.g-warn{margin:2px 0 0;font-size:.78rem;color:var(--warn);min-height:0}.g-warn:empty{display:none}
.g-items{margin-top:10px}.g-irow{display:grid;grid-template-columns:64px 120px 1fr 64px 36px;gap:6px;margin-bottom:6px;align-items:center}.g-ihead{font-size:.75rem;font-weight:700;color:var(--muted)}
@media (max-width:640px){.g-irow{grid-template-columns:50px 96px 1fr 50px 32px}}
.dlg-guide{max-height:94vh;overflow:hidden}.dlg-guide form{display:flex;flex-direction:column;max-height:calc(94vh - 48px);min-height:0}.dlg-guide .g-body{flex:1 1 auto;min-height:0;max-height:none}
.g-f label .gn{display:inline-block;width:auto;min-width:1.7em;margin-right:4px;vertical-align:baseline}
.g-ctl .check{align-self:start}.dlg-guide .g-ctl .hint{margin:2px 0 0}
.f label b.gn{display:inline-block;width:auto;background:var(--bg);margin-right:4px}
/* Lote 1.10 — selos de obrigatoriedade e listas oficiais na janela da guia */
.g-obl{font-style:normal;font-size:.68rem;font-weight:700;border-radius:999px;padding:1px 7px;margin-left:4px;vertical-align:baseline;white-space:nowrap;border:1px solid var(--line);color:var(--muted)}
.g-obl-O{background:color-mix(in srgb,var(--iris) 12%,var(--surface));color:var(--iris);border-color:transparent}
.g-obl-C{background:color-mix(in srgb,var(--warn) 10%,var(--surface));color:var(--warn);border-color:transparent}
.g-who,.g-name{margin:2px 0 0;font-size:.76rem;color:var(--muted)}.g-who:empty,.g-name:empty{display:none}.g-name{font-weight:600;color:var(--ink)}
.g-save{margin-top:4px}.g-save:empty{display:none}.g-grp-hint{margin:0 0 8px}
.g-f select{width:100%}.g-irow select{width:100%;min-width:0}.g-irow select.warn{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--surface))}
.g-f > label{display:block;line-height:1.5}.g-f > label .gn,.g-f > label .g-obl{display:inline-block;width:auto}
.g-f > label{min-height:2.9em}

/* ======================= Lote 1.11 — repasse, relatórios, equipe, exportação ======================= */
.numwrap .suf{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.78rem;color:var(--muted);pointer-events:none}
.bullets{margin:0 0 4px;padding-left:20px;display:grid;gap:4px}
h2.sub{margin:22px 0 10px}
.stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.warn-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}.warn-list .warn-line{margin:0}
.print-only{display:none}

/* grade de repasse: procedimentos × profissionais */
.rgrid-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r-s);margin:10px 0 6px;max-height:70vh}
.rgrid{border-collapse:separate;border-spacing:0;width:100%;min-width:max-content}
.rgrid th,.rgrid td{padding:6px 8px;border-bottom:1px solid var(--line-soft);background:var(--surface);text-align:left;vertical-align:middle}
.rgrid thead th{position:sticky;top:0;z-index:2;font-size:.8rem;color:var(--muted);font-weight:700;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--line)}
.rgrid tbody th{position:sticky;left:0;z-index:1;min-width:190px;max-width:260px;font-weight:600;border-right:1px solid var(--line-soft)}
.rgrid tbody th small{display:block;color:var(--muted);font-weight:400}
.rgrid thead th:first-child{left:0;z-index:3}
.rgrid .rg-all th,.rgrid .rg-all td{background:var(--iris-wash)}
.rgrid td{min-width:104px}
.rgrid input{width:100%;min-width:72px;text-align:right}
.rgrid input.has{font-weight:700;border-color:var(--iris)}
.rgrid input::placeholder{color:var(--muted);opacity:.75}
.rgrid input[aria-invalid=true]{border-color:var(--err)}
.rp-exf{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end;margin-top:12px}
.rp-sim{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
#rp-st{min-height:1.4em}#rp-st[data-kind=ok]{color:var(--ok)}#rp-st[data-kind=err]{color:var(--err)}
.panel+.panel{margin-top:16px}
.rp-sec{border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;margin:0}
.rp-sec legend{font-weight:700;padding:0 6px}
.rp-each{margin-top:8px}.rp-each summary{cursor:pointer;font-weight:600;color:var(--iris-ink)}
.rp-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:10px}

/* equipe */
.trow{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:64px;flex-wrap:wrap}
.avatar-s{width:38px;height:38px;border-radius:50%;background:var(--iris-wash);color:var(--iris-ink);display:grid;place-items:center;font-weight:600;flex:none}
.avatar-s svg{width:18px;height:18px}
.trow select{max-width:170px}
.team-list .pmain .muted{white-space:normal}
.ia-sec{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line)}.ia-sec h3{margin:0 0 4px;font-size:1rem}
.ia-mine{margin:6px 0 0}.ia-prof-list{list-style:none;margin:8px 0 16px;padding:0;display:grid;gap:8px}
.ia-prof{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.ia-prof-main{display:flex;flex-direction:column;gap:2px;min-width:0}.ia-prof-main .muted{white-space:normal}   /* C1.7: bloco da IA em Configurações */
.team-ai{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:4px}   /* C1.6: uso de IA do mês e botão do limite, abaixo do nome */
.roles{border:0;margin:0;padding:0;display:grid;gap:8px}.roles legend{font-weight:700;margin-bottom:6px}
.role-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer}
.role-opt:has(input:checked){border-color:var(--iris);background:var(--iris-wash)}
.role-opt .muted{display:block;font-size:.85rem}
.role-opt input{width:18px;min-height:18px;height:18px;padding:0;flex:none;margin-top:3px;accent-color:var(--iris)}
.role-opt>span{display:grid;gap:2px}.role-opt b{font-size:.95rem}
.invbox{display:grid;gap:12px;margin:12px 0;padding:14px;border:1px dashed var(--line);border-radius:var(--r-s);background:var(--bg)}
.invbox small{display:block;color:var(--muted);font-weight:600;margin-bottom:2px}
.invcode{font:700 1.6rem/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em;user-select:all}
.invite-join{margin:0 0 18px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s)}
.invite-join summary{cursor:pointer;font-weight:600;color:var(--iris-ink)}

/* relatórios */
.rep-head{align-items:flex-start;gap:12px;flex-wrap:wrap}.rep-actions{display:flex;gap:8px;flex-wrap:wrap}
.rtabs{display:flex;gap:4px;margin:0 0 12px;border-bottom:1px solid var(--line);overflow-x:auto}
.rtab{appearance:none;background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;font:600 .95rem var(--sans);color:var(--muted);cursor:pointer;white-space:nowrap}
.rtab[aria-selected=true]{color:var(--iris-ink);border-bottom-color:var(--iris)}
.rtab:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px 6px 0 0}
.rep-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:16px;margin:0 0 16px}
.rep-filters .err{grid-column:1/-1;margin:0}.rep-filters .err:empty{display:none}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start}
.tbl-wrap{overflow-x:auto}
.rtbl{width:100%;border-collapse:collapse;font-size:.92rem}
.rtbl th,.rtbl td{padding:8px 10px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
.rtbl thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.rtbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rtbl tbody th{font-weight:600}.rtbl small{display:block;color:var(--muted);font-weight:400}
.rbar tbody th{position:relative}
.bar-i{display:block;height:5px;margin-top:4px;border-radius:3px;background:var(--iris);width:var(--w,0%);opacity:.55}
.rdet{border:1px solid var(--line);border-radius:var(--r-s);margin:0 0 10px;background:var(--surface)}
.rdet>summary{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.rdet>summary::-webkit-details-marker{display:none}
.rdet>summary span:nth-child(2){color:var(--muted);font-size:.85rem}
.rdet[open]>summary{border-bottom:1px solid var(--line-soft)}
.rdet .tbl-wrap{padding:6px 10px 10px}
.rdet-all{margin-top:16px}.rdet-all>summary{cursor:pointer;font-weight:600}
@media (max-width:640px){
  .rdet>summary{grid-template-columns:1fr auto}.rdet>summary span:nth-child(2){display:none}
  .rep-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.rep-filters .f:first-child{grid-column:1/-1}
  .rtab{padding:10px 8px;font-size:.85rem;flex:1 1 auto}
  .stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-3 b{font-size:1.3rem}
  .trow select{max-width:none;flex:1 1 140px}
}
@media print{
  body.print-report .rail,body.print-report .bar,body.print-report .tabs,body.print-report .rep-actions,body.print-report .rtabs,body.print-report .rep-filters,body.print-report #net-banner{display:none!important}
  body.print-report .shell,body.print-report .main{display:block!important;padding:0!important;margin:0!important}
  body.print-report .print-only{display:block;font-weight:700;font-size:1.1rem;margin:0 0 10px}
  body.print-report .rdet:not([open]) .tbl-wrap,body.print-report .rdet-all:not([open]) .tbl-wrap{display:block}
  body.print-report details{break-inside:avoid}
  body.print-report .panel,body.print-report .rdet{border-color:#bbb;box-shadow:none}
}
#sm-out{font:600 1.05rem/1.4 var(--sans);margin:12px 0 0}
@media (max-width:640px){.rgrid tbody th{min-width:128px;max-width:150px;font-size:.85rem}.rgrid td{min-width:88px}.rgrid thead th{font-size:.72rem}}
/* Lote 1.12 — busca na lista oficial: filtros por tipo */
.cp-kinds{display:flex;flex-wrap:wrap;margin:4px 0 10px;max-width:100%}
.cp-kinds button{min-height:38px;padding:0 12px;white-space:nowrap}
.cp-n{font-size:.75rem;font-weight:700;opacity:.7;margin-left:2px}
.cp-more{margin:0 0 6px;font-size:.85rem}
/* Lote 1.12 — impressos por categoria e anexos (só variáveis de cor: funciona no modo escuro) */
.tag.err{color:var(--err);border-color:currentColor}
.tag.cat-exam{background:var(--iris-wash);color:var(--iris-ink);border-color:var(--iris)}
.tag.cat-media{color:var(--ok);border-color:currentColor}
.tag.cat-other{color:var(--muted)}
.doc-filter{margin:0 0 12px;max-width:100%;overflow-x:auto}
.cat-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (max-width:520px){.cat-pick{grid-template-columns:1fr}}
.cat-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);cursor:pointer}
.cat-opt input{margin-top:4px;flex:none;width:18px;height:18px;min-height:0;accent-color:var(--iris)}
.cat-opt span{display:flex;flex-direction:column;gap:2px;min-width:0}
.cat-opt .muted{font-size:.8rem;line-height:1.3}
.cat-opt:has(input:checked){border-color:var(--iris);background:var(--iris-wash)}
.cat-opt:has(input:focus-visible){box-shadow:var(--focus)}
.d-split{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.d-filecol{margin-top:0}
.att-box{border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--surface)}
.att-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.att-drop{border:1.5px dashed var(--line);border-radius:var(--r-s);padding:10px;text-align:center}
.att-drop.over{border-color:var(--iris);background:var(--iris-wash)}
.att-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:6px}
.att-btns .btn{min-height:44px}
.att-off{color:var(--warn)}
.att-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.att-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--line-soft);border-radius:var(--r-s);background:var(--bg)}
.att-thumb{flex:none;width:44px;height:44px;border-radius:6px;overflow:hidden;display:grid;place-items:center;background:var(--surface);color:var(--muted);border:1px solid var(--line-soft)}
.att-thumb img{width:100%;height:100%;object-fit:cover}
.att-name{flex:1;min-width:0;display:flex;flex-direction:column}
.att-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:.9rem}
.att-name .muted{font-size:.78rem}
.att-chips{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.att-chips li{display:inline-flex;gap:6px;align-items:center}
.att-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:2px 10px 2px 8px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer}
.att-chip:hover{border-color:var(--iris);background:var(--iris-wash)}
.att-chip .att-cname{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-ico svg{width:16px;height:16px;display:block}
.doc-note{display:block;font-size:.85rem;color:var(--muted)}
.att-view .att-stage{max-height:62vh;overflow:auto;text-align:center;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-s);padding:6px}
.att-view .att-stage img{max-width:100%;height:auto}
.att-frame{width:100%;height:62vh;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface)}
.ok-line{margin:0;padding:10px 12px;border-radius:var(--r-s);background:color-mix(in srgb,var(--ok) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--ok) 40%,var(--line));font-size:.88rem}
.att-local{font-size:.75rem;color:var(--muted);white-space:nowrap}

/* Lote 1.13 — assinatura */
.plan-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));margin-top:14px}
.plan-card.is-current{border-color:var(--ok)}
.plan-feats{margin:10px 0 14px;padding-left:1.1em;display:grid;gap:6px;font-size:.92rem}
#bill-banner{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Lote 1.13.1 — procedimentos do agendamento e resumo do atendimento finalizado */
.proc-chips{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.proc-chips[hidden]{display:none}
.pchip{display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.pchip .oi-main{flex:1;min-width:0;display:grid}
.pchip .oi-main b{font-weight:600;overflow-wrap:anywhere}
.pchip input[type=number]{width:4rem}
.pchip.off{border-style:dashed}
.pcres li.grp{cursor:default;font-size:.8rem;padding:6px 10px;background:none}
.pcres li.grp:hover{background:none}
.sv-card header{display:flex;align-items:center;gap:10px;justify-content:space-between}
.sv-card h2{font-size:1rem;margin:0}
.sv-list{margin:8px 0 0;display:grid;gap:8px}
.sv-row{display:grid;grid-template-columns:minmax(110px,32%) 1fr;gap:4px 14px}
.sv-row dt{color:var(--muted);font-size:.86rem}
.sv-row dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
@media (max-width:560px){.sv-row{grid-template-columns:1fr}}
.tl-plan{display:block;color:var(--muted);font-size:.88rem;overflow-wrap:anywhere}

/* Lote 1.14 — lista de atendimentos expansível, painel de curvas e tendências cardiometabólicas */
.tl-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0}
.timeline li{display:grid;gap:0}
.timeline li.open{border-radius:12px}
.tl-x{justify-self:start;border:0;background:transparent;color:var(--iris);font:inherit;font-size:.86rem;padding:4px 12px;cursor:pointer;text-decoration:underline}
.tl-edit{justify-self:start;margin:4px 12px 2px;text-decoration:none}
.tl-full{padding:6px 4px 12px}
.tl-full .sv-grid{gap:10px}
.curves{border:1px solid var(--line);border-radius:12px;padding:8px 14px;margin:10px 0;background:var(--card,transparent)}
.curves>summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.curves-in{margin-top:8px}
.tsvg .tref{stroke:#c53030;stroke-width:1;stroke-dasharray:4 4;opacity:.7}
.tsvg .tl-sys{fill:none;stroke:var(--iris);stroke-width:2}
.tsvg .tl-dia{fill:none;stroke:var(--ok);stroke-width:2}
.tsvg .td-sys{fill:var(--iris)}.tsvg .td-dia{fill:var(--ok)}
.tsvg .td-sys.now,.tsvg .td-dia.now{stroke:#fff;stroke-width:2}
.tsvg .tfit{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:6 4}
.tsvg .tdate{font-size:10px}
.tleg{font-size:.84rem;color:var(--muted);margin:4px 0}
.tleg .lg{display:inline-block;width:14px;height:3px;vertical-align:middle;margin:0 4px 0 10px;background:var(--iris)}
.tleg .lg.dia{background:var(--ok)}.tleg .lg.ref{background:#c53030}
.tdet{margin-top:8px}.tdet>summary{cursor:pointer;font-size:.9rem}
.ttable{overflow-x:auto}
.ttable table{border-collapse:collapse;width:100%;font-size:.88rem}
.ttable th,.ttable td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.ttable tr.now td{background:color-mix(in srgb,var(--iris) 8%,transparent)}
.ttable small{color:var(--muted)}
.ttable .bp-g1,.ttable .bp-g2,.ttable .bp-g3{color:#c53030}.ttable .bp-borderline{color:#c27803}
.sv-calc{margin-top:10px}
.tl-full .sv-card{padding:10px 14px}.tl-full .sv-card h2{font:inherit;font-weight:700;font-size:1rem;margin:0}

.tl-rxs{display:block;margin-top:.25rem}.tl-rx{display:block;font-size:.88rem;overflow-wrap:anywhere;border-left:3px solid var(--accent-ring);padding-left:.5rem;margin-top:.2rem}
.tl-loose{margin:0 0 .75rem;padding:.5rem .75rem;border:1px dashed var(--line);border-radius:.6rem}.tl-loose h3{font-size:.9rem;margin:0 0 .25rem}
/* Lote 1.15a — recebimento (diálogo), contas e dados de teste */
.paylines .payline{border:1px solid var(--line);border-radius:.6rem;margin:0 0 .6rem;padding:.6rem .75rem;min-width:0}
.paylines .payline .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.6rem}
.pay-sum{font-weight:600;margin:.4rem 0}.pay-sum.warn{color:var(--warn,#b45309)}
.demo-creds{margin:.75rem 0;padding:.75rem 1rem}.demo-creds code{font-size:1.05rem;padding:.1rem .4rem;background:var(--bg-soft,rgba(127,127,127,.12));border-radius:.3rem;user-select:all;overflow-wrap:anywhere}
#demo .steps li{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:center}

/* 1.15b — bloqueio por cobrança */
#lock-banner{position:sticky;top:0;z-index:59;padding:9px 16px;text-align:center;font-size:.875rem;background:var(--warn);color:var(--on-ink)}
#lock-banner a{color:#fff;text-decoration:underline;font-weight:600}
.lockbox{max-width:720px}
.lockbox #lk-bill{text-align:left;margin:16px 0}
@media print{#lock-banner{display:none!important}}
/* 1.15b.4 — carregando por cima da tela */
.veil{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45)}
.veil-box{background:var(--surface,#fff);color:var(--text,#111);padding:22px 28px;border-radius:14px;display:flex;gap:14px;align-items:center;max-width:90vw;box-shadow:0 10px 40px rgba(0,0,0,.3)}
.veil-box p{margin:0;font-weight:600}
.spin{width:22px;height:22px;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}}
.rep-incl{margin:0 0 12px}
/* 1.16a — histórico do paciente */
.hx-sec{margin:14px 0}.hx-kind{margin:14px 0;padding-top:10px;border-top:1px solid var(--line)}.hx-kind h3{margin:0;font-size:1rem}
.hx-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.hx-row{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;text-align:left;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;color:inherit;font:inherit}
.hx-row:hover{border-color:var(--iris)}.hx-main{display:grid;gap:2px}.hx-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.hx-list .resolved .hx-main strong{text-decoration:line-through;text-decoration-thickness:1px;opacity:.7}
.hx-empty{margin:8px 0 0}
.kvs{display:flex;gap:18px 32px;flex-wrap:wrap;margin:8px 0}.kvs .kv{display:flex;flex-direction:column;gap:2px;border:0;padding:0;margin:0}.kvs dt{font-size:.8rem;color:var(--muted);margin:0}.kvs dd{margin:0;font-size:1rem}
.lsvg .ls-l{fill:none;stroke-width:2}.lsvg .ls-l.s0{stroke:var(--iris)}.lsvg .ls-l.s1{stroke:var(--warn);stroke-dasharray:6 4}
.lsvg .ls-m.s0{fill:var(--iris)}.lsvg .ls-m.s1{fill:var(--warn)}
.tleg .lg.ls0{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--iris);margin-right:4px}
.tleg .lg.ls1{display:inline-block;width:10px;height:10px;background:var(--warn);margin:0 4px 0 12px}
/* 1.16b — atalhos, comparação, caderneta vacinal, PA fora do consultório, problemas no cabeçalho */
.badge-prob{display:inline-flex;gap:4px;padding:2px 10px;border-radius:99px;font-size:.8rem;border:1px solid var(--iris);color:var(--iris-ink);background:var(--iris-wash);text-decoration:none}
.badge-prob:hover{border-color:var(--iris-ink)}
.snip{min-width:min(560px,86vw)}.snip-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.snip-k{display:flex;align-items:center;gap:6px}.snip-k span{font-weight:700;color:var(--muted)}.snip-k input{flex:1}
.cmp{min-width:min(920px,92vw)}.cmp h3{margin:14px 0 4px;font-size:1rem}
.cmp-grid{display:grid;grid-template-columns:minmax(110px,.7fr) 1fr 1fr;gap:6px 14px;padding:6px 8px;border-bottom:1px solid var(--line-soft);align-items:start}
.cmp-grid>span{overflow-wrap:anywhere;white-space:pre-wrap}.cmp-h{font-size:.85rem;border-bottom:2px solid var(--line);position:sticky;top:0;background:var(--surface)}.cmp-h span{display:grid}
.cmp-l{color:var(--muted);font-size:.85rem}.cmp-tag{font-style:normal;font-size:.7rem;border:1px solid var(--warn);color:var(--warn);border-radius:99px;padding:0 6px;margin-left:4px;white-space:nowrap}
.cmp-changed .cmp-b,.cmp-added .cmp-b{background:var(--iris-wash);border-radius:6px;padding:2px 6px}.cmp-removed .cmp-a{background:color-mix(in srgb,var(--warn) 14%,transparent);border-radius:6px;padding:2px 6px}
.cmp-only{margin-right:auto}
@media (max-width:640px){.cmp-grid{grid-template-columns:1fr}.cmp-h{display:none}.cmp-a::before,.cmp-b::before{content:attr(data-h) ": ";font-weight:600;color:var(--muted)}}
.tl-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.timeline li.picking{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:0 8px}.timeline li.picking>:not(.tl-pick):not(.tl){grid-column:1/-1}
.tl-pick{display:flex;align-items:center;padding:14px 0 0 4px}.tl-pick input{width:20px;height:20px}
.vax-pend{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px}.vax-pend li{padding:6px 10px;border-radius:8px;border:1px solid var(--line)}
.vax-pend .overdue{border-color:var(--err);color:var(--err)}.vax-pend .soon{border-color:var(--warn);color:var(--warn)}
.vax-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:10px}
.vax-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.vax-card h3{margin:0 0 6px;font-size:1rem}.vax-card ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.bp-avg{margin:10px 0;padding:8px 12px;border-radius:10px;border:1px solid var(--line)}.bp-avg.high{border-color:var(--warn)}
.bp-pair{display:flex;align-items:center;gap:8px}.bp-pair input{width:5.5em;text-align:center}
.bp-hi{color:var(--err);font-weight:700}
@media print{.badge-prob{border-color:#000;color:#000;background:none}}
.dlg:has(.cmp){max-width:min(980px,calc(100vw - 24px))}.dlg:has(.snip){max-width:min(620px,calc(100vw - 24px))}

/* ===== LOTE 1.17 — fluxo da clínica (recepção, TV, lembretes, lista de espera, bloqueios, série, teleconsulta) ===== */
.head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.flowtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-8px 0 16px;overflow-x:auto}
.flowtabs a{padding:10px 16px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.92rem;border-bottom:2px solid transparent;white-space:nowrap}
.flowtabs a:hover{color:var(--ink)}
.flowtabs a[aria-current=page]{color:var(--iris-ink);border-bottom-color:var(--iris)}
.tabcount{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--iris);color:var(--on-ink);font-size:.72rem;font-weight:700}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .tabcount{color:#06222a}}
.sec-h{font-size:1.05rem;margin:22px 0 10px}
.stats small{font-size:.8rem;color:var(--muted)}
.empty-soft{padding:18px 20px;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface)}
.empty-soft p{margin:0 0 4px}
.checkin{margin-bottom:18px}
.checkin .f{margin-bottom:10px}
.rqueue{counter-reset:none}
.rcard,.remcard{flex-wrap:wrap}
.rcard .pos{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--iris-wash);color:var(--iris-ink);font-weight:700;font-family:var(--serif)}
.rcard.has-prio{border-left:4px solid var(--warn)}
.rc-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
.rc-called{font-size:.8rem}
.rc-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.rc-badges:empty{display:none}
.selsm{min-height:34px;padding:4px 8px;font-size:.82rem;width:auto;min-width:190px;max-width:240px}
.qmain.static{cursor:default}.qmain.static:hover{background:none}
.tag.video{color:var(--iris-ink);border-color:var(--iris);background:var(--iris-wash)}
.tag.prio{color:var(--warn);border-color:currentColor}
.tag.prio-urgent{color:var(--err)}
.evtag{font-style:normal;font-size:.62rem;font-weight:700;padding:0 4px;border-radius:4px;background:var(--iris-wash);color:var(--iris-ink);vertical-align:1px}
.evtag.prio{background:color-mix(in srgb,var(--warn) 18%,var(--surface));color:var(--warn)}
.ev-allday{z-index:1;opacity:.92;display:grid;place-items:start center;padding-top:6px;background:repeating-linear-gradient(135deg,var(--line-soft) 0 8px,var(--surface) 8px 16px)}
.ev-allday span{font-weight:700;transform:none}
.vid-box{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg)}
.inline-row{display:flex;gap:8px;align-items:center}.inline-row input{flex:1}
.chipset{border:1px solid var(--line);border-radius:var(--r-s);padding:8px 12px 10px;display:flex;flex-wrap:wrap;gap:4px 16px;margin:0}
.chipset legend{font-weight:600;font-size:.875rem;padding:0 6px}
.chipset .check{align-items:center}.chipset .hint,.chipset .err{flex-basis:100%}
.serlist{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-s);padding:6px 10px}
.serlist .check{align-items:center}.serlist small{display:block}
.warn-text{color:var(--warn);font-size:.78rem}
.ser-box{display:grid;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg)}
.wrapseg{flex-wrap:wrap}.wrapseg button{flex:1 1 auto}
.holist{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 16px}
.holist .check{align-items:center}.holist small{display:block}
.roomlist{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px}
.roomlist li{display:flex;gap:8px;align-items:center}.roomlist input{flex:1}
.roompick{display:grid;gap:8px;margin-top:10px}
.steps-mini{margin:8px 0 14px;padding-left:20px;color:var(--muted);font-size:.9rem}
.msgset{margin-bottom:16px}.msg-prev{white-space:pre-wrap}
code{font-family:ui-monospace,Consolas,monospace;font-size:.82em;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 4px}
.inl{display:inline-grid;width:auto}.inl input,.inl select{min-height:40px}
.rem-sum{margin:0 0 12px}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-actions{margin-left:0;width:100%}.rcard .pos{display:none}}

/* ---- Tela da TV (#/tv): esconde o menu e ocupa a tela toda */
.tv-mode .rail,.tv-mode .bar,.tv-mode .tabs{display:none!important}
.tv-mode .shell{display:block}
.tv-mode #view{max-width:none;padding:0}
.tv{--tv-bg:#07131F;--tv-surface:#0E1B27;--tv-line:#2E4A60;--tv-ink:#E8EEF3;--tv-ink-2:#B4C2CD;--tv-muted:#8CA0AF;--tv-accent:#5EEAD4;--tv-call:#0F766E;--tv-err:#F28B82;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;background:var(--tv-bg);color:var(--tv-ink);padding:2.2vw 3vw;gap:2vw;position:relative;font-family:var(--sans)}
.tv-top{display:flex;justify-content:space-between;align-items:baseline;gap:2vw}
.tv-clinic{font-family:var(--sans);font-size:clamp(1.4rem,2.6vw,2.6rem);letter-spacing:.01em}
.tv-clock{font-size:clamp(1.6rem,3vw,3rem);font-variant-numeric:tabular-nums;color:var(--tv-accent)}
.tv-main{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:3vw;align-items:stretch}
.tv-now{display:grid;align-content:center;justify-items:center;text-align:center;gap:1.4vw;border-radius:2vw;background:var(--tv-surface);border:2px solid var(--tv-line);padding:3vw}
.tv-now.is-calling{background:var(--tv-call);border-color:var(--tv-accent);animation:tvpulse 1.4s ease-in-out infinite}
.tv-lbl{margin:0;text-transform:uppercase;letter-spacing:.2em;font-size:clamp(1rem,1.8vw,1.9rem);color:var(--tv-ink-2)}
.tv-name{font-family:var(--sans);font-size:clamp(3rem,10vw,11rem);line-height:1.05;font-weight:600;letter-spacing:-.02em;word-break:break-word}
.tv-name.small{font-size:clamp(2rem,5vw,5rem)}
.tv-room{font-size:clamp(2rem,5.6vw,6.2rem);font-weight:700;color:var(--tv-accent)}
.tv-hist{border-radius:2vw;background:var(--tv-surface);border:1px solid var(--tv-line);padding:2vw}
.tv-hist h2{font-family:var(--sans);font-size:clamp(.9rem,1.5vw,1.5rem);text-transform:uppercase;letter-spacing:.16em;color:var(--tv-ink-2);margin:0 0 1.2vw;font-weight:600}
.tv-hist ul{list-style:none;margin:0;padding:0;display:grid;gap:1vw}
.tv-hist li{display:grid;grid-template-columns:1fr auto;gap:.2vw 1vw;padding-bottom:1vw;border-bottom:1px solid var(--tv-line)}
.tv-hist b{font-size:clamp(1.3rem,2.8vw,3rem);font-weight:600}.tv-hist span{color:var(--tv-accent);font-size:clamp(1.1rem,2.2vw,2.4rem);text-align:right}
.tv-hist time{grid-column:1/3;color:var(--tv-muted);font-size:clamp(.8rem,1.3vw,1.4rem)}
.tv-foot{font-size:clamp(1.1rem,2vw,2rem);color:var(--tv-ink-2)}
.tv-start{position:absolute;inset:0;z-index:5;display:grid;place-content:center;gap:1vw;border:0;background:#07131Fee;color:var(--tv-ink);font:600 clamp(2rem,5vw,5rem)/1.1 var(--sans);cursor:pointer}
.tv-start small{font:400 clamp(1rem,1.8vw,1.8rem)/1.3 var(--sans);color:var(--tv-ink-2)}
.tv-fs{position:absolute;right:1.2vw;bottom:1.2vw;border:1px solid var(--tv-line);background:transparent;color:var(--tv-muted);border-radius:8px;padding:6px 10px;cursor:pointer;opacity:.35}
.tv-fs:hover{opacity:1}
@keyframes tvpulse{50%{box-shadow:0 0 0 1.2vw rgba(94,234,212,.22)}}
@media (prefers-reduced-motion:reduce){.tv-now.is-calling{animation:none}}
.tv-now.is-calling .tv-lbl{color:#E8FFFB}.tv-now.is-calling .tv-room,.tv-now.is-calling .tv-name{color:#fff}
@media (max-width:760px){.tv-main{grid-template-columns:1fr}}

/* Lote 1.17b — resumo do atendimento finalizado com respiro interno; edição por 24 h */
.sv-card{padding:12px 16px 14px}
.sv-card>header{padding:0 0 2px}
.sv-card .sv-calc{margin-top:10px}
.cbar .tag.warn{white-space:normal}
/* chamador do LoungePlus */
.lp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.lp-chip{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer;min-height:40px}
.lp-chip[aria-pressed="true"]{background:var(--iris-wash);border-color:var(--iris);color:var(--iris-ink)}
.lp-chip:focus-visible{outline:3px solid var(--iris);outline-offset:2px}
.lp-tvs{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}
.lp-tvs li{display:flex;align-items:center;gap:8px}
.lp-tvs .dot{width:10px;height:10px;border-radius:50%;background:var(--line);flex:none}
.lp-tvs .dot.on{background:var(--ok)}.lp-tvs .dot.off{background:var(--err)}
.okline{margin:8px 0 2px}
/* confirmação de e-mail / link do e-mail */
.auth-box p{margin:0 0 10px}
.auth-box .btn{margin-top:6px}
.auth-box .row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.auth-box a[aria-disabled=true]{opacity:.55;pointer-events:none}
/* LoungePlus: vínculo sem senha, sala no seletor, definir sala */
.lp-mine{margin:6px 0 2px}.lp-mine .hint{margin:6px 0 0}
.lp-or{margin:14px 0 8px;color:var(--muted,#667);font-size:.9em}
.lp-room{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:2px 0 10px}
.linkbtn{background:none;border:0;padding:0;color:var(--accent-ink);text-decoration:underline;cursor:pointer;font:inherit}
.roomform{margin-top:12px;display:grid;gap:6px}
.roomrow{display:flex;gap:8px}.roomrow input{flex:1;min-width:0}
.verify-bar{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:8px 16px;background:#fff4d6;color:#4a3500;border-bottom:1px solid #e8c766;font-size:.92rem}
.verify-bar .btn{margin:0}.verify-bar .muted{color:#6b5200}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .verify-bar{background:#3b2f08;color:#ffe9a8;border-color:#7a5f10}:root:not([data-theme="light"]) .verify-bar .muted{color:#e9cf85}}
:root[data-theme="dark"] .verify-bar{background:#3b2f08;color:#ffe9a8;border-color:#7a5f10}
/* Chamador: dois cartões (nativo e LoungePlus) */
.callers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;margin-top:12px}
.caller{border:1px solid var(--line);border-radius:12px;padding:16px;display:block;background:var(--surface,transparent)}
.caller>header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.caller h3{margin:0;font-size:1.05rem}
.caller h4{margin:14px 0 6px;font-size:.95rem}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:#e8eef0;color:#34505a;white-space:nowrap}.badge.ok{background:#dff3e6;color:#17613a}
.lp-perks{margin:6px 0 8px;padding-left:18px}.lp-perks li{margin:3px 0}
.hint.max,.hint.soon{background:rgba(0,0,0,.04);padding:8px 10px;border-radius:8px}
.lp-opt{border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0}.lp-opt h4{margin:0 0 6px}
.lp-rec{border-color:#2f8f9d;background:rgba(47,143,157,.06)}
.lp-diff{margin-top:12px}.lp-diff summary{cursor:pointer;font-weight:600}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .badge{background:#27363b;color:#cfe3e8}:root:not([data-theme="light"]) .badge.ok{background:#16382a;color:#9fe0b8}:root:not([data-theme="light"]) .hint.max,:root:not([data-theme="light"]) .hint.soon{background:rgba(255,255,255,.06)}}
:root[data-theme="dark"] .badge{background:#27363b;color:#cfe3e8}:root[data-theme="dark"] .badge.ok{background:#16382a;color:#9fe0b8}:root[data-theme="dark"] .hint.max,:root[data-theme="dark"] .hint.soon{background:rgba(255,255,255,.06)}
/* 1.17b.5 — cartões do chamador (visual), guia "Como adicionar uma TV", brinde e código da TV */
.caller{box-shadow:0 1px 0 rgba(0,0,0,.03);position:relative}
#lounge.caller{border-color:#2f8f9d;box-shadow:0 0 0 1px #2f8f9d33,0 6px 18px -10px #2f8f9d88;overflow:hidden}
.lp-ribbon{margin:-16px -16px 12px;padding:7px 16px;background:linear-gradient(90deg,#0a6b7c,#2f8f9d);color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.02em}
.badge.free{background:#ffe9a8;color:#6b4a00}.badge.soon{background:#eceff1;color:#546e7a;font-weight:500;margin-left:2px;padding:0 6px;font-size:.68rem}
.lp-gift{border:1px dashed #2f8f9d;background:rgba(47,143,157,.07);border-radius:10px;padding:10px 12px;margin:10px 0}
.lp-gift p{margin:6px 0 0}.lp-gift-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lp-giftline{margin:8px 0 0;font-size:.9rem;color:var(--muted,#546e7a)}.lp-giftline.ok{color:#17613a;font-weight:600}
.lp-help{border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0;background:var(--surface,transparent)}.lp-help h4{margin:0 0 6px}
.lp-plats{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.lp-help-d{margin:10px 0}.lp-help-d summary{cursor:pointer;font-weight:600}
.tvn-url{font-family:ui-monospace,monospace;background:rgba(0,0,0,.06);padding:1px 6px;border-radius:6px;word-break:break-all}
.tvn-code{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0;padding:12px 14px;border-radius:12px;background:rgba(10,107,124,.08);border:1px solid #2f8f9d}
.tvn-big{font:800 clamp(1.8rem,5vw,2.6rem)/1 ui-monospace,monospace;letter-spacing:.14em}
#native .actions{margin:8px 0}
.linkbtn{background:none;border:0;padding:0;color:var(--iris-ink,#0a6b7c);text-decoration:underline;cursor:pointer;font:inherit}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .badge.free{background:#4a3a0a;color:#ffe9a8}:root:not([data-theme="light"]) .badge.soon{background:#27363b;color:#b6c7cd}:root:not([data-theme="light"]) .tvn-url{background:rgba(255,255,255,.1)}:root:not([data-theme="light"]) .lp-giftline.ok{color:#9fe0b8}}
:root[data-theme="dark"] .badge.free{background:#4a3a0a;color:#ffe9a8}:root[data-theme="dark"] .badge.soon{background:#27363b;color:#b6c7cd}:root[data-theme="dark"] .tvn-url{background:rgba(255,255,255,.1)}:root[data-theme="dark"] .lp-giftline.ok{color:#9fe0b8}
/* 1.17b.6 — conta LoungePlus criada pelo Celsor */
.lp-acct{border:1px solid #2f8f9d;background:rgba(47,143,157,.07);border-radius:12px;padding:12px 14px;margin:12px 0}.lp-acct h4{margin:0 0 6px}
.lp-cred{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:10px 0;align-items:center}.lp-cred dt{font-weight:600}.lp-cred dd{margin:0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.lp-cred code{font:600 1.05rem/1.2 ui-monospace,monospace;letter-spacing:.06em;background:rgba(0,0,0,.06);padding:3px 8px;border-radius:6px;word-break:break-all}
:root[data-theme="dark"] .lp-cred code{background:rgba(255,255,255,.1)}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lp-cred code{background:rgba(255,255,255,.1)}}

/* 1.17c.3 — créditos de mensagens */
.cr-bal{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:12px 0}.cr-bal b{font-size:1.9rem;line-height:1.1}.cr-bal.low b{color:var(--warn,#b45309)}
.cr-packs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.cr-ledger{margin:10px 0}.cr-ledger ul{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px}.cr-ledger li{display:flex;gap:8px;align-items:baseline}.cr-ledger li b{margin-left:auto}.cr-ledger .pos{color:var(--ok,#0f766e)}.cr-ledger .neg{color:inherit}

/* ---- editor de texto dos impressos (lote 1.17d) ---- */
.rte{border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface)}
.rte:focus-within{border-color:var(--accent-ring);box-shadow:var(--focus)}
.rte-bar{display:flex;flex-wrap:wrap;gap:4px 5px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--bg-soft,var(--surface))}
.rte-b{min-width:38px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px;cursor:pointer}
.rte-b:hover{border-color:var(--iris)}
.rte-b.on{background:var(--iris);color:var(--on-ink);border-color:var(--iris)}
.rte-s{width:auto;flex:0 0 auto;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem;padding:0 6px;max-width:8.2em;text-overflow:ellipsis}
.rte-ed{min-height:min(52vh,420px);max-height:70vh;overflow:auto;resize:vertical;padding:14px 16px;font-size:16px;line-height:1.55;outline:none;white-space:normal}
.rte-ed h1,.rte-ed h2,.rte-ed h3,.rte-prev h1,.rte-prev h2,.rte-prev h3{font-family:inherit;font-weight:700;color:var(--ink)}
.rte-ed h1,.rte-prev h1{font-size:1.6em;margin:.2em 0}.rte-ed h2,.rte-prev h2{font-size:1.35em;margin:.2em 0}.rte-ed h3,.rte-prev h3{font-size:1.15em;margin:.2em 0}
.rte-ed ul,.rte-prev ul{margin:.2em 0 .2em 1.3em;padding:0}
.rte-ed [data-sz="1"],.rte-prev [data-sz="1"]{font-size:.85em}.rte-ed [data-sz="3"],.rte-prev [data-sz="3"]{font-size:1.3em}.rte-ed [data-sz="4"],.rte-prev [data-sz="4"]{font-size:1.7em}
.rte-prev{white-space:normal}
.rte-lead{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.rte-lead-b{min-height:38px;padding:0 10px;font-size:.9rem;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rte-lead-b svg{width:18px;height:18px}
.rte-sep{align-self:stretch;width:1px;background:var(--line);margin:0 2px}
@media (max-width:520px){.rte-sep{display:none}.rte-lead{width:100%}}
.dp-right{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap}
.mdl{display:grid;gap:8px;min-width:0}.mdl-h{display:flex;justify-content:space-between;align-items:center;gap:10px}.mdl-h h2{margin:0}
.mdl-list{grid-template-columns:1fr;max-height:50vh;overflow:auto}

/* franquia mensal de WhatsApp (Configurações) */
.us-meter{margin:.75rem 0}
.us-count{margin:0 0 .35rem;font-size:1.25rem}
.us-bar{height:10px;border-radius:999px;background:var(--line);overflow:hidden}
.us-bar>span{display:block;height:100%;background:var(--ok,#0f766e);border-radius:999px}
.us-meter.near .us-bar>span{background:var(--warn,#b45309)}
.us-meter.over .us-bar>span,.us-meter.blocked .us-bar>span{background:var(--warn,#b45309)}

/* LOTE 1.18b — guias TISS guardadas */
.tg-help{margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.tg-help summary{cursor:pointer;font-weight:700}.tg-help ol{margin:8px 0 4px 18px;padding:0;display:grid;gap:4px}
.tg-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}.tg-sel{display:grid;gap:2px;font-size:.82rem}.tg-q{flex:1;min-width:200px}
.tg-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.tg-stat{display:grid;gap:2px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;font:inherit;color:inherit}
.tg-stat b{font-family:var(--serif);font-size:1.6rem;font-weight:500;line-height:1.1}.tg-stat span{color:var(--muted);font-size:.82rem}.tg-stat small{color:var(--muted)}.tg-stat.on{border-color:var(--accent-ring);box-shadow:var(--focus)}
.tg-miss{margin:0 0 16px}.tg-miss h2{margin:0 0 4px;font-size:1.05rem}
.tg-table{display:grid;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.tg-tr{display:grid;grid-template-columns:90px minmax(0,1.6fr) minmax(0,1fr) 130px 110px 170px;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.tg-tr:first-child{border-top:0}a.tg-tr:hover{background:var(--bg)}.tg-th{font-size:.75rem;font-weight:700;color:var(--muted);background:var(--bg)}.tg-tr .r{text-align:right}
.tg-pend{font-style:normal;font-size:.76rem;color:var(--warn);font-weight:600;margin-left:6px}
.tg-state{display:flex;gap:10px;align-items:center}.tg-body{display:grid;gap:4px;margin-bottom:12px}
.tg-irow{display:grid;grid-template-columns:70px 130px minmax(0,1fr) 64px 110px 36px;gap:6px;margin-bottom:6px;align-items:center}.tg-ihead{font-size:.75rem;font-weight:700;color:var(--muted)}
.tg-irow select,.tg-irow input{width:100%;min-width:0}.tg-irow .warn{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--surface))}
.tg-total{display:flex;gap:10px;justify-content:flex-end;align-items:baseline;margin:8px 0 0}.tg-total b{font-size:1.15rem}
.tg-actions{position:sticky;bottom:0;background:var(--bg);padding:10px 0;display:flex;gap:8px;flex-wrap:wrap}.tg-actions .grow{flex:1}
@media (max-width:760px){.tg-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tg-tr{grid-template-columns:1fr auto;grid-auto-flow:row}.tg-th{display:none}.tg-irow{grid-template-columns:60px 1fr 60px}.tg-irow input[data-k=desc]{grid-column:1/-1}}

/* LOTE 1.18c — arquivos XML (lotes TISS) */
.tx-tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--line)}.tx-tabs a{padding:8px 14px;color:var(--muted);text-decoration:none;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.tx-tabs a.on{color:var(--ink);border-bottom-color:var(--iris)}
.tx-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.tx-bar p{margin:0}
.tx-disc{margin:14px 0;padding:12px 14px;border-radius:var(--r);background:color-mix(in srgb,var(--warn) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 30%,var(--line));font-size:.88rem}.tx-disc p{margin:4px 0 0}
.tx-card{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 12px;background:var(--surface)}.tx-card header{margin-bottom:6px}.tx-card.done{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.tx-row{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}.tx-ver{display:flex;gap:6px;align-items:center;font-size:.85rem}
.tx-probs{margin:6px 0;padding-left:18px;font-size:.85rem;display:grid;gap:3px}.tx-probs.err li::marker{color:var(--err)}.tx-probs.warn li::marker{color:var(--warn)}.tx-where{font-weight:600}
.tx-pending{color:var(--warn);font-weight:600;margin:6px 0}.tx-valid,.tx-ok{color:var(--ok);font-weight:600;margin:4px 0}
.tx-fix{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.tx-fix .f{margin:0}.tx-accept{margin:8px 0}
.tx-tr{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 130px 70px 110px 200px;gap:10px;align-items:center;padding:10px 14px;border:0;border-top:1px solid var(--line);background:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.tx-tr:first-child{border-top:0}button.tx-tr:hover{background:var(--bg)}.tx-tr .r{text-align:right}.tx-tr small{display:block}
.tx-kv .kv dd.mono,.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;word-break:break-all}.tx-glist{margin:6px 0;padding-left:18px}.tx-acts{flex-wrap:wrap}.tx-acts .grow{flex:1}
@media (max-width:760px){.tx-tr{grid-template-columns:1fr auto}.tx-tr.tg-th{display:none}}

/* ---- Lote 1.18d: retorno, glosa, recurso, conciliação; código por convênio ---- */
.tx-bar.warn{border-color:#d9a441;background:color-mix(in srgb,#d9a441 12%,var(--surface))}
.rt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 10px}
.rt-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.rt-card span{font-size:.82rem;color:var(--muted)}.rt-card b{font-size:1.15rem}.rt-card.ok b{color:var(--ok,#1b7f4c)}.rt-card.warn b{color:#a86a00}.rt-card.bad b{color:var(--danger,#b3261e)}
.rt-ins{display:flex;flex-direction:column}.rt-irow{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:8px;align-items:center;padding:9px 6px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.rt-irow.th{cursor:default;font-size:.8rem;color:var(--muted)}.rt-irow .r{text-align:right}.rt-irow .bad{color:var(--danger,#b3261e)}
.rt-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}.rt-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.rt-row .pmain{display:flex;flex-direction:column;gap:2px;min-width:0}.rt-val{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.rt-acts{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.rt-late{color:#a86a00;font-size:.9rem}.rt-row.late{background:color-mix(in srgb,#d9a441 8%,transparent)}
.rt-panel .rt-late{margin:.2rem 0}.seg-col{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px}
.lp-list{max-height:260px;overflow:auto;margin:8px 0;padding:0;list-style:none}
.pc-own,.pc-bad .oi-main .pc-own{color:#a86a00;font-weight:600}.pchip.pc-bad{border-color:#d9a441}
.ptable .prr label small{display:block;font-weight:400}
@media(max-width:620px){.rt-row{grid-template-columns:1fr}.rt-val,.rt-acts{align-items:flex-start;flex-direction:row;gap:10px}.rt-ins{overflow-x:auto;-webkit-overflow-scrolling:touch}.rt-irow{min-width:540px}}
.rt-row .pmain span,.rt-row .pmain strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
/* lote 1.18f — importar retorno XML e XML do recurso */
.ri-row .check,.rx-item .check{align-items:flex-start}.ri-row>label>span{display:flex;flex-direction:column;gap:2px;min-width:0}.ri-st{font-size:.85rem;color:var(--muted)}
.ri-nomatch,.ri-notsent,.ri-ambiguous,.ri-pending{opacity:.85}.ri-same{opacity:.7}
.rx-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:10px}.rx-item{border:1px solid var(--line);border-radius:10px;padding:10px}.rx-item textarea{width:100%}

/* 1.18g — janela do XML do recurso: respiro entre os campos */
.rxm .f{margin-top:12px}
.rxm .f .hint{margin:4px 0 0}

/* Regras por operadora (lote 1.18h) */
.rl-sec{margin-top:14px;border-top:1px solid var(--border,#e5e7eb);padding-top:10px}.rl-sec>summary{cursor:pointer;font-weight:600}
.rl-grp{border:1px solid var(--border,#e5e7eb);border-radius:10px;padding:10px 12px;margin:12px 0;min-width:0}.rl-grp legend{padding:0 6px;font-weight:600}
.rl-grp .check{margin:6px 0}.rl-grp .hint{margin:4px 0 8px}

/* ---------- IA: balão da conduta e faixa de rascunho (IA-2) ---------- */
.ai-hint-host:empty{display:none}
.ai-hint-host{margin-top:8px}
.ai-hint{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--iris);border-radius:var(--r-s);background:var(--iris-wash)}
.ai-hint-q{margin:0;flex:1 1 260px;font-size:.92rem}
.ai-hint-a{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ai-hint .btn.sm,.ai-hint .link.sm{min-height:40px}
.tag.ai{color:var(--iris-ink);border-color:currentColor;background:transparent}
.ai-banner{margin:6px 0 10px;padding:8px 10px;border:1px solid var(--line);border-left:4px solid var(--iris);border-radius:var(--r-s);background:var(--iris-wash);font-size:.88rem}
@media (prefers-reduced-motion:no-preference){.ai-hint{animation:aih .18s ease-out}@keyframes aih{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}}

/* IA-3.2: painel da IA do Celsor — lateral, sóbrio, profissional */
.ai-fab{position:fixed;right:20px;bottom:20px;z-index:45;display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px 0 14px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--iris) 0%,var(--iris-ink) 100%);color:var(--on-ink);font:600 .95rem var(--sans);cursor:pointer;box-shadow:0 8px 24px color-mix(in srgb,var(--iris-ink) 35%,transparent),0 1px 0 rgba(255,255,255,.15) inset;transition:transform .15s ease,box-shadow .15s ease}
.ai-fab:hover{transform:translateY(-1px);box-shadow:0 12px 28px color-mix(in srgb,var(--iris-ink) 40%,transparent)}
.ai-fab:focus-visible{outline:3px solid color-mix(in srgb,var(--iris) 50%,transparent);outline-offset:3px}
.ai-fab[aria-expanded=true]{opacity:0;pointer-events:none}
.ai-spark{font-size:1.1rem;line-height:1}
.ai-panel{position:fixed;top:12px;right:12px;bottom:12px;z-index:46;width:min(440px,calc(100vw - 24px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 64px rgba(8,30,40,.22),0 2px 8px rgba(8,30,40,.08);overflow:hidden;animation:ai-in .18s ease-out}
.ai-panel.wide{width:min(760px,calc(100vw - 24px))}
@keyframes ai-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.ai-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 16px;border-bottom:1px solid var(--line-soft)}
.ai-head .grow{flex:1}
.ai-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--iris),var(--iris-ink));color:var(--on-ink);font-size:.95rem}
.ai-mode{display:inline-flex;margin-left:6px;padding:2px;border-radius:999px;background:var(--bg);border:1px solid var(--line-soft)}
.ai-mode button{border:0;background:transparent;color:var(--muted);font:600 .78rem var(--sans);padding:4px 10px;border-radius:999px;cursor:pointer}
.ai-mode button[aria-checked=true]{background:var(--surface);color:var(--iris-ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ai-ib{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1rem;cursor:pointer}
.ai-ib:hover:not(:disabled){background:var(--bg);color:var(--ink)}.ai-ib:disabled{opacity:.35;cursor:default}
.ai-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;font-size:.8rem;border-bottom:1px solid var(--line-soft);background:color-mix(in srgb,var(--bg) 55%,var(--surface))}
.ai-ctx{display:inline-flex;align-items:center;gap:6px;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.ai-ctx.on::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.ai-ctx.warn{color:var(--warn)}
.ai-model{white-space:nowrap}
.ai-note{margin:10px 14px 0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--warn) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 30%,var(--line));font-size:.85rem}
.ai-note p{margin:0 0 8px}.ai-note div{display:flex;gap:8px;flex-wrap:wrap}
.ai-why{margin:8px 16px 0;font-size:.85rem;color:var(--warn)}.ai-why.sm{margin:6px 0 0;font-size:.8rem}
.ai-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth}
.ai-empty{margin:auto 0;padding:8px 4px}
.ai-hello{font:600 1.25rem var(--sans);margin:0 0 6px;letter-spacing:-.01em}
.ai-sugs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.ai-sug{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;font:500 .86rem var(--sans);cursor:pointer;transition:border-color .12s,background .12s}
.ai-sug:hover{border-color:var(--iris);background:var(--iris-wash)}
.ai-tip{font-size:.78rem;margin-top:14px}
.ai-msg{display:flex;flex-direction:column;gap:6px;max-width:100%}
.ai-msg.me{align-self:flex-end;max-width:85%;background:var(--iris-wash);color:var(--ink);padding:9px 13px;border-radius:14px 14px 4px 14px}
.ai-msg.me p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.ai-msg.err{padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--err) 8%,var(--surface));color:var(--err);border:1px solid color-mix(in srgb,var(--err) 25%,var(--line))}
.ai-msg.err p{margin:0 0 6px}
.ai-tag{align-self:flex-start;font:600 .68rem var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--iris-ink);background:var(--iris-wash);padding:2px 8px;border-radius:999px}
.ai-tag.local{color:var(--muted);background:var(--bg)}
.ai-md{font-size:.93rem;line-height:1.55;overflow-wrap:anywhere}.ai-md p{margin:0 0 8px}.ai-md p:last-child{margin-bottom:0}
.ai-md ul,.ai-md ol{margin:0 0 8px;padding-left:20px}.ai-md li{margin:2px 0}.ai-md code{font-size:.85em;background:var(--bg);padding:1px 4px;border-radius:4px}
.ai-md.live>:last-child::after{content:"";display:inline-block;width:7px;height:1em;margin-left:2px;vertical-align:-2px;background:var(--iris);animation:ai-caret 1s steps(2) infinite}
@keyframes ai-caret{50%{opacity:0}}
.ai-thinking{display:flex;align-items:center;gap:4px;margin:0;color:var(--muted);font-size:.88rem}
.ai-thinking span{width:6px;height:6px;border-radius:50%;background:var(--iris);animation:ai-dot 1.1s infinite ease-in-out}
.ai-thinking span:nth-child(2){animation-delay:.15s}.ai-thinking span:nth-child(3){animation-delay:.3s;margin-right:6px}
@keyframes ai-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.ai-acts{display:flex;flex-direction:column;gap:8px}
.ai-card{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.ai-card.nav{background:color-mix(in srgb,var(--bg) 50%,var(--surface))}
.ai-ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--iris-wash);color:var(--iris-ink);font-size:.95rem}
.ai-cb{flex:1;min-width:0}.ai-cb>b{display:block;font-size:.9rem}.ai-cb p{margin:4px 0 0;font-size:.84rem}
.ai-cbtn{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.ai-done{font-size:.8rem;color:var(--ok);font-weight:600}
.ai-items{margin:6px 0 0;padding-left:18px;font-size:.86rem}
.ai-docbody{margin:6px 0 0;max-height:240px;overflow:auto;white-space:pre-wrap;font:400 .86rem/1.5 var(--sans);background:var(--bg);border:1px solid var(--line-soft);border-radius:8px;padding:10px 12px}
.ai-docbody.sm{max-height:140px}
/* IA-11 — consultas aos dados */
.ai-card.dq{flex-direction:column;gap:0}.ai-card.dq>.ai-ic{display:none}
.dq-title{display:block;font-size:.92rem}.dq-per{margin:2px 0 0;font-size:.78rem}
.dq-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:6px;margin-top:8px}
.dq-kpis>div{border:1px solid var(--line-soft);background:var(--bg);border-radius:10px;padding:6px 8px;min-width:0}
.dq-kpis b{display:block;font:650 1rem var(--sans);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.dq-kpis span{display:block;font-size:.72rem;color:var(--muted)}
.dq-wrap{margin-top:8px;max-height:320px;overflow:auto;border:1px solid var(--line-soft);border-radius:10px}
.dq-tbl{font-size:.8rem}.dq-tbl th,.dq-tbl td{padding:6px 8px}.dq-tbl thead th{position:sticky;top:0;background:var(--surface)}
.dq-tbl td a{color:var(--iris);text-decoration:underline}
.dq-notes{margin:8px 0 0;padding-left:16px;font-size:.74rem}.dq-btns{margin-top:10px}
.ai-saved{margin-top:14px}.ai-saved>p{margin:0;font-size:.8rem}.ai-saved .ai-sugs{margin-top:6px}
.ai-chip2{display:flex;min-width:0}.ai-chip2 .ai-sug:first-child{flex:1;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-chip2 .ai-sug.x{flex:none;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;padding:10px 10px;color:var(--muted)}

.ai-doc.live{border:1px dashed var(--iris);border-radius:10px;padding:10px 12px}.ai-doc.live pre{margin:6px 0 0;white-space:pre-wrap;font:400 .86rem/1.5 var(--sans)}
.ai-picks{display:flex;flex-direction:column;gap:6px}
.ai-pick{display:flex;justify-content:space-between;gap:8px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;cursor:pointer;font:inherit;color:var(--ink)}
.ai-pick:hover{border-color:var(--iris);background:var(--iris-wash)}
.ai-tools{display:flex;gap:10px}.ai-link{border:0;background:none;padding:0;color:var(--muted);font:500 .78rem var(--sans);cursor:pointer}.ai-link:hover{color:var(--iris)}
.ai-form{padding:10px 12px 12px;border-top:1px solid var(--line-soft);background:var(--surface)}
.ai-input{display:flex;align-items:flex-end;gap:8px;padding:6px 6px 6px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .12s,box-shadow .12s}
.ai-input:focus-within{border-color:var(--accent-ring);box-shadow:var(--focus)}
.ai-input textarea{flex:1;border:0;outline:0;resize:none;background:transparent;font:400 .95rem/1.45 var(--sans);color:var(--ink);padding:6px 0;max-height:160px;box-shadow:none}
.ai-send{flex:none;width:34px;height:34px;border:0;border-radius:10px;background:var(--iris);color:var(--on-ink);font:700 1rem var(--sans);cursor:pointer}
.ai-send.stop{background:var(--ink)}
.ai-foot{margin:6px 2px 0;font-size:.7rem;color:var(--muted)}
.ai-ao{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--iris-wash);color:var(--iris-ink);font:600 .68rem var(--sans);letter-spacing:.02em;white-space:nowrap}        /* C1: lado completado por "AO" */
/* C1 — barra fixa "Finalizar atendimento" nas telas do paciente enquanto há atendimento em andamento */
.fin-bar{position:fixed;left:calc(var(--rail) + 20px);bottom:16px;z-index:44;display:flex;align-items:center;gap:12px;max-width:calc(100vw - var(--rail) - 40px);padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:0 10px 30px rgba(8,30,40,.16),0 1px 3px rgba(8,30,40,.08)}
.fin-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}
.fin-txt{display:grid;min-width:0;line-height:1.25}.fin-txt b{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fin-txt .muted{font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-bar .btn{flex:none;white-space:nowrap}
body.has-fin-bar #view{padding-bottom:96px}
@media (max-width:860px){.fin-bar{left:12px;right:80px;bottom:calc(68px + env(safe-area-inset-bottom));max-width:none;border-radius:16px}.fin-txt .muted{display:none}body.has-fin-bar #view{padding-bottom:150px}}
@media print{.fin-host{display:none}}
/* C1 — painel ao lado da página (tela larga): o app encolhe para a esquerda em vez de ficar coberto; botão ◧ no cabeçalho liga/desliga */
.ai-send-slot{display:contents}
.ai-dock-b{display:none}
@media (min-width:1100px){
  .ai-dock-b{display:inline-block}
  .ai-head{gap:6px}.ai-head b{white-space:nowrap}.ai-head .ai-ib{width:30px}.ai-head .ai-mode{margin-left:2px}       /* com o botão a mais o título não pode quebrar de linha */
  body.ai-docked .shell{padding-right:calc(440px + 24px)}
  body.ai-docked-wide .shell{padding-right:calc(min(760px,46vw) + 24px)}
  .ai-panel.docked{width:440px}
  .ai-panel.docked.wide{width:min(760px,46vw)}
  body.ai-docked .cgrid.view-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}       /* menos largura útil: as colunas do prontuário se ajustam em vez de espremer */
  .ai-dock-b[aria-pressed=true]{color:var(--iris-ink);background:var(--iris-wash)}
}
@media print{body.ai-docked .shell,body.ai-docked-wide .shell{padding-right:0}}
.ai-flash{animation:ai-flash 1.8s ease-out}
@keyframes ai-flash{0%{box-shadow:0 0 0 3px color-mix(in srgb,var(--iris) 55%,transparent);background:var(--iris-wash)}100%{box-shadow:none}}
@media (max-width:760px){
  .ai-fab{bottom:calc(76px + env(safe-area-inset-bottom));right:14px;height:44px;padding:0 14px}.ai-fab-l{display:none}
  .ai-panel,.ai-panel.wide{top:0;right:0;bottom:0;left:0;width:auto;border-radius:0;border:0}
  .ai-wide-b{display:none}.ai-sugs{grid-template-columns:1fr}.ai-foot{display:none}
}
@media (prefers-reduced-motion:reduce){.ai-panel,.ai-thinking span,.ai-md.live>:last-child::after,.ai-flash{animation:none}}
@media print{.ai-chat{display:none}}
/* IA-3.2: barra da IA na página inicial */
.ai-home{position:relative;padding:22px 22px 18px;border-radius:16px;border:1px solid color-mix(in srgb,var(--iris) 25%,var(--line));background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--iris) 12%,var(--surface)) 0%,var(--surface) 60%)}
.ai-home h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:1.15rem}
.ai-home form{display:flex;gap:8px;align-items:center;padding:6px 6px 6px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 2px 10px rgba(8,30,40,.06)}
.ai-home form:focus-within{border-color:var(--accent-ring);box-shadow:var(--focus)}
.ai-home input{flex:1;border:0;outline:0;background:transparent;font:400 1rem var(--sans);color:var(--ink);padding:8px 0;min-width:0;box-shadow:none}
.ai-home .chips-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ai-home .chips-row button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font:500 .84rem var(--sans);color:var(--ink);cursor:pointer}
.ai-home .chips-row button:hover{border-color:var(--iris);background:var(--iris-wash)}
.ai-home .hint{margin:10px 0 0;font-size:.78rem}


/* IA-3.1: linha do tempo — o resumo aberto é um SUBNÍVEL do atendimento (gaveta colada ao cartão, mais clara e sem cartões dentro de cartões) */
.timeline li.open>.tl{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:color-mix(in srgb,var(--iris) 45%,var(--line));box-shadow:0 1px 0 var(--line-soft)}
.timeline li.open>.tl-full{order:1;position:relative;margin:0;padding:10px 16px 8px 30px;background:color-mix(in srgb,var(--bg) 70%,var(--surface));border:1px solid color-mix(in srgb,var(--iris) 45%,var(--line));border-top:0;border-radius:0 0 var(--r) var(--r)}
.timeline li.open>.tl-full::before{content:"";position:absolute;left:14px;top:12px;bottom:12px;width:2px;border-radius:2px;background:color-mix(in srgb,var(--iris) 35%,transparent)}
.timeline li.open>.tl-x{order:2;margin-top:2px}
.timeline li.open>.tl-full .sv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 22px}
.timeline li.open>.tl-full .sv-card{background:transparent;border:0;box-shadow:none;border-radius:0;padding:8px 0;border-bottom:1px dashed var(--line)}
.timeline li.open>.tl-full .sv-card header h2{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--iris-ink)}
.timeline li.open>.tl-full .sv-list{margin-top:4px;gap:4px}
.timeline li.open>.tl-full .sv-row{grid-template-columns:minmax(90px,38%) 1fr;font-size:.9rem}
.timeline li.open>.tl-full .sv-row dt{font-size:.8rem}
@media (max-width:560px){.timeline li.open>.tl-full{padding-left:22px}.timeline li.open>.tl-full::before{left:9px}.timeline li.open>.tl-full .sv-row{grid-template-columns:1fr}}
.sv-row.solo{grid-template-columns:1fr!important}
/* IA-4: voz — ditado sob os campos e painel "Gravar consulta" */
.stt-host[hidden]{display:none}
.stt-host{margin:6px 0 12px}
.stt-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:34px}
.stt-btn{display:inline-flex;align-items:center;gap:6px}
.stt-btn svg{width:16px;height:16px}
.btn.stt-btn.live{border-color:var(--err);color:var(--err);background:color-mix(in srgb,var(--err) 9%,transparent)}
.stt-meter{display:inline-block;width:70px;height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.stt-meter.lg{width:140px;height:8px}
.stt-meter i{display:block;height:100%;width:0;background:var(--ok);border-radius:99px;transition:width .12s linear}
.stt-time{font:600 .82rem var(--mono,monospace);color:var(--muted)}
.stt-msg{font-size:.84rem;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.stt-msg.err{color:var(--err)}
.stt-visit{padding:14px 16px;margin:10px 0}
.stt-vh{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.stt-vh b{display:inline-flex;align-items:center;gap:8px;font-size:1rem}
.stt-vh .grow{flex:1}
.stt-body p{margin:0 0 10px}
.stt-body textarea{width:100%;box-sizing:border-box}
.stt-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.stt-act .btn{display:inline-flex;align-items:center;gap:6px}
.stt-act .btn svg{width:16px;height:16px}
.stt-big{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.stt-clock{font:700 1.9rem var(--mono,monospace);letter-spacing:.02em}
.stt-dot{width:12px;height:12px;border-radius:50%;background:var(--err);animation:stt-pulse 1.2s ease-in-out infinite}
.stt-dot.off{animation:none;background:var(--muted)}
@keyframes stt-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
.stt-live{color:var(--muted);font-size:.9rem;min-height:2.6em;overflow-wrap:anywhere}
.stt-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stt-prop{margin:8px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.stt-prop textarea{margin-top:6px}
.stt-check{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--iris-wash)}
.stt-check ul{margin:6px 0 0;padding-left:18px}
@media (prefers-reduced-motion:reduce){.stt-dot{animation:none}.stt-meter i{transition:none}}

/* IA-5: Laudo com IA — escolher exame, clicar o resultado por lado, anexar imagem, editar o laudo pronto */
.ai-badge{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;font:600 .72rem var(--sans);background:var(--iris-wash);color:var(--iris);vertical-align:middle}
.rpt h2{margin:0 0 4px}
.rpt .f{margin-top:14px}
.rpt #rp-q{margin-bottom:6px}
.rpt-row{margin-top:10px}
.rpt-rl{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.linklike{border:0;background:none;padding:0;color:var(--iris);font:500 .82rem var(--sans);cursor:pointer;text-decoration:underline}
.rpt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.rpt-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font:500 .84rem var(--sans);color:var(--ink);cursor:pointer;min-height:36px}
.rpt-chip:hover{border-color:var(--iris);background:var(--iris-wash)}
.rpt-chip[aria-pressed=true]{background:var(--iris-ink);border-color:var(--iris-ink);color:var(--surface)}
.rpt-drop{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;text-align:center;padding:16px;border:2px dashed var(--line);border-radius:14px;cursor:pointer;background:var(--surface)}
.rpt-drop:hover,.rpt-drop.on{border-color:var(--iris);background:var(--iris-wash)}
.rpt-drop-t{font-weight:600}
.rpt-imglist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.rpt-img{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.rpt-th{width:96px;height:auto;max-height:96px;object-fit:contain;border-radius:8px;background:#000}
.rpt-ia{display:flex;flex-direction:column;gap:4px;min-width:0}
.rpt-ia>span:last-child{display:flex;gap:6px;flex-wrap:wrap}
.rpt-ed{grid-column:1/-1}
.rpt-edc{display:block;max-width:100%;border-radius:8px;cursor:crosshair;touch-action:none;background:#000}
.rpt-edb{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.rpt-priv{margin-top:8px}
.iop-t{width:100%;border-collapse:collapse;margin-top:8px}
.iop-t th,.iop-t td{padding:4px 6px;text-align:left;vertical-align:middle}
.iop-t thead th{font:600 .8rem var(--sans);color:var(--muted)}
.iop-t tbody th{font-weight:600;white-space:nowrap}
.iop-t input{width:100%;min-width:0;min-height:40px;text-align:center;font-variant-numeric:tabular-nums}
.iop-t .iop-h{min-width:110px}
.iop-t input[aria-invalid=true]{border-color:var(--danger,#c0392b)}
.iop-x{width:44px;text-align:right}
.iop-live{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--iris-wash);font-size:.88rem}
.iop-live .err{font-size:.85rem}
.rpt-ind label.fl{display:block;margin-top:8px}
.rpt-ind{margin-top:14px}
.rpt-ind summary{cursor:pointer;color:var(--muted);font-size:.9rem}
.rpt-ind input{margin-top:6px;width:100%}
.rpt-wait{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 12px;text-align:center}
.spinner{width:34px;height:34px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--accent-ring);animation:rpt-spin 0.9s linear infinite}
@keyframes rpt-spin{to{transform:rotate(360deg)}}
.rpt-review{margin:10px 0;padding:10px 12px;border-radius:12px;background:var(--iris-wash);border:1px solid var(--line)}
.rpt-review ul{margin:6px 0 0;padding-left:18px}
.rpt-res textarea{width:100%;font:500 .95rem/1.5 var(--sans);resize:vertical}
.rpt-act{flex-wrap:wrap}
@media (max-width:560px){.rpt-img{grid-template-columns:72px 1fr}.rpt-th{width:72px}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
.rpt .seg{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0;background:none}
.rpt-privok{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-weight:500}
.rpt-privok input{flex:none;width:20px;height:20px;min-height:20px;padding:0;margin:1px 0 0;accent-color:var(--accent-ink);cursor:pointer}   /* o input global tem largura 100% e 44px: no checkbox espremia o texto em coluna */
.rpt-privok span{min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:.9rem}
/* IA-7: transparência da IA, aviso ao paciente e registro de uso no atendimento */
.ia-transp{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.ia-transp>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.ia-fam h4{margin:14px 0 4px;font-size:.95rem}
.ia-fam ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ia-fam li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line-soft);min-width:0}
.ia-fam li small{flex-basis:100%;min-width:0;overflow-wrap:anywhere}
.ia-risk-low{color:var(--ok);border-color:currentColor}
.ia-risk-medium{color:var(--warn);border-color:currentColor}
.ia-risk-high{color:var(--err);border-color:currentColor}
.ia-notice{margin-top:14px}
.ia-notice-text{margin:8px 0;padding:10px 12px;border-left:4px solid var(--line);background:var(--bg);border-radius:8px;font-size:.92rem;overflow-wrap:anywhere}
.ai-rec{margin:12px 0 0;color:var(--muted);font-size:.88rem}
/* IA-9: conferência local da receita */
.rx-safe-box{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-left-width:4px;border-radius:10px;background:var(--surface)}
.rx-safe-box h3{margin:0 0 4px;font-size:.95rem}
.rx-safe-box ul{margin:4px 0 6px;padding-left:18px;display:grid;gap:4px}
.rx-safe-box li{overflow-wrap:anywhere}
.rx-safe-box li.stop{color:var(--err);font-weight:600}
.rx-safe-box li.warn{color:var(--warn)}
.rx-safe-box.stop{border-left-color:var(--err)}
.rx-safe-box.warn{border-left-color:var(--warn)}
.rx-safe-box.ok{border-left-color:var(--ok)}
.rx-safe-box .hint{margin:4px 0 0}

/* IA-7.1 — uso extra */
.ia-ovg{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.ia-ovg h3{margin:0 0 6px;font-size:1rem}
.ia-ovg-cap{margin:10px 0 0;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.ia-ovg-cap legend{font-weight:600;padding:0 6px}
.ia-ovg-cap .f{display:block;margin-top:8px;max-width:220px}
.ia-ovg-cap .f input{width:100%;min-height:44px}

/* IA-12 — glosa */
.gr-warn{border-left:4px solid var(--bad,#b3261e)}
.gs-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.gs-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.gs-row .pmain{display:grid;gap:2px;min-width:0;flex:1 1 100%}
.pmain .tag{justify-self:start;margin-top:4px}
.gs-row .gs-rate{font-weight:700;white-space:nowrap}
.gs-row .gs-rate.bad{color:var(--bad,#b3261e)}
.pr-focus{outline:3px solid var(--accent-ring);outline-offset:2px}
.ai-appeal{margin:6px 0 10px;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.ai-appeal ul{margin:6px 0 0 18px;padding:0}
.gs-row .pmain .muted{white-space:normal;overflow:visible;text-overflow:clip}

/* relatório de ASOs */
.asr-filters{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0 12px}.asr-filters label{display:grid;gap:4px;font-size:.85rem;color:var(--muted)}
.asr-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:8px 0}.asr-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px}.asr-kpi b{display:block;font-size:1.6rem}.asr-kpi span{color:var(--muted);font-size:.85rem}
.asr-act{margin:10px 0}.asr-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:12px 0}.asr-card h2{font-size:1rem;margin:0 0 8px}
.asr-svg{width:100%;height:auto;max-height:240px;color:var(--ink)}.asr-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin:6px 0 0}.asr-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.asr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.asr-bars{list-style:none;margin:0;padding:0;display:grid;gap:6px}.asr-bars li{display:grid;grid-template-columns:minmax(80px,38%) 1fr 32px;gap:8px;align-items:center;font-size:.85rem}.asr-b{background:var(--line-soft);border-radius:4px;height:10px;overflow:hidden}.asr-b i{display:block;height:100%;background:var(--iris)}.asr-bars b{text-align:right}
.asr-tbl{width:100%;border-collapse:collapse;font-size:.9rem}.asr-tbl th,.asr-tbl td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line-soft)}.asr-due{list-style:none;padding:0;margin:0;display:grid;gap:6px}.asr-due .err{color:var(--err)}
.stt-rx{margin:6px 0}

.ai-wait{font-style:normal}.ai-wait.in{animation:ai-wait-in .5s ease both}
@keyframes ai-wait-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ai-wait.in{animation:none}}

/* IA-11.9: Preencher com IA (conferência no chat) */
.ai-card.fill{display:block}.ai-card.fill>.ai-cb{width:100%}
.ai-frow{display:grid;gap:3px;margin:8px 0}.ai-frow.done{opacity:.65}
.ai-fl{display:flex;align-items:center;gap:6px;font-size:.82rem}.ai-fl input{flex:none}
.ai-frow textarea{width:100%;box-sizing:border-box;resize:vertical;font:inherit;font-size:.9rem;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:inherit;min-height:34px}
.ai-next{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}.ai-next p{margin:0 0 6px}

/* IA-11.10: atalhos da receita de óculos */
.cell[hidden],[data-near][hidden]{display:none!important}
.gsc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px}.gsc-t{font-size:.8rem;color:var(--muted);margin-right:2px}
.gsc .btn.on{border-color:var(--iris);background:var(--iris-wash)}.gsc-cfg{margin-left:auto}
.gsc-warn{margin:0 0 8px;min-height:0}.gsc-warn:empty{display:none}
.gsc-slot{border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:6px 10px}.gsc-slot legend{font-size:.8rem;color:var(--muted);padding:0 4px}
.gsc-slot .f{display:grid;gap:2px;margin:6px 0}.gsc-slot input,.gsc-slot select,.gsc-slot textarea{width:100%;box-sizing:border-box;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:inherit}
.gsc-list ul{max-height:180px;overflow:auto;font-size:.85rem}

/* IA-10: cartão de evidência */
.ai-card.ai-ev{display:block;min-width:0;max-width:100%;overflow-wrap:anywhere}.ai-card.ai-ev>.ai-cb{width:100%}
.ev-ans{margin:6px 0 0;line-height:1.5}.ev-h{margin:10px 0 2px;font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ev-pts,.ev-refs{margin:4px 0 0;padding-left:18px;font-size:.84rem}.ev-refs{list-style:none;padding-left:0}.ev-refs li{margin:4px 0;padding:2px 4px;border-radius:6px}.ev-n{font-weight:600;color:var(--iris)}
.ev-cite{border:0;background:color-mix(in srgb,var(--iris) 14%,transparent);color:var(--iris);border-radius:5px;padding:0 4px;font:600 .78rem var(--sans);cursor:pointer}
.ev-flash{background:color-mix(in srgb,var(--iris) 16%,transparent)}.ev-more{margin-top:6px;font-size:.82rem}.ev-q,.ev-foot{font-size:.76rem;margin:8px 0 0}.ev-q code{word-break:break-all}

/* IA-6: PGR/PCMSO da empresa */
.cm-li{display:flex;gap:8px;align-items:stretch}.cm-li .prow{flex:1;min-width:0}.cm-prog{white-space:nowrap;align-self:center}
.sst .seg{display:flex;gap:6px;margin:8px 0}.sst textarea{width:100%}.sst-item{border:1px solid var(--line);border-radius:8px;padding:8px;margin:8px 0}
.sst-row{display:flex;gap:8px;flex-wrap:wrap}.sst-row .sst-f{flex:1;min-width:120px}.sst-f{display:block;margin:4px 0}.sst-f span{display:block;font-size:.8em;opacity:.75}.sst-f input,.sst-f select{width:100%}
.sst .tag.ai{background:rgba(120,80,200,.15)}

/* ---------- Dados e portabilidade: abas e importação (IMP-1) ---------- */
.dtabs{display:flex;gap:4px;margin:0 0 20px;border-bottom:1px solid var(--line);overflow-x:auto}
.dtabs a{padding:10px 14px;font-weight:600;font-size:.92rem;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.dtabs a[aria-current=page]{color:var(--iris-ink);border-color:var(--iris)}
.imp-drop{display:grid;justify-items:center;gap:10px;text-align:center;padding:32px 16px;border:2px dashed var(--line);border-radius:var(--r);background:var(--bg);transition:border-color .15s,background .15s}
.imp-drop.over{border-color:var(--iris);background:var(--iris-wash)}
.imp-drop p{margin:0}.imp-small{font-size:.85rem}
.imp-priv{margin:0;padding:10px 12px;border-radius:var(--r-s);background:var(--iris-wash);color:var(--iris-ink);font-size:.88rem}
.imp-help summary,.imp-cols summary{cursor:pointer;font-weight:600;font-size:.9rem;color:var(--iris-ink);padding:6px 0}
.imp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.imp-stat{display:grid;gap:2px;padding:14px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg)}
.imp-stat b{font-family:var(--serif);font-size:1.4rem;font-weight:500}.imp-stat span{color:var(--muted);font-size:.85rem}
.imp-errors{margin:0;padding:12px 16px 12px 32px;border-radius:var(--r-s);background:color-mix(in srgb,var(--err) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--err) 40%,var(--line))}
.imp-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;display:grid;gap:8px}
.imp-table header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.imp-table h3{font-size:1rem;overflow-wrap:anywhere}.imp-table p{margin:0}
.imp-issues{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.imp-issue{padding:7px 10px;border-radius:var(--r-s);font-size:.88rem;border:1px solid var(--line)}
.imp-issue.imp-bad{border-color:color-mix(in srgb,var(--err) 45%,var(--line));background:color-mix(in srgb,var(--err) 8%,var(--surface))}
.imp-issue.imp-check{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:color-mix(in srgb,var(--warn) 9%,var(--surface))}
.imp-scroll{overflow-x:auto}
.imp-tbl{width:100%;border-collapse:collapse;font-size:.86rem}
.imp-tbl th,.imp-tbl td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.imp-tbl th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.imp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:var(--ok)}
.imp-dot.imp-check{background:var(--warn)}.imp-dot.imp-bad{background:var(--err)}.imp-dot.imp-empty{background:var(--line)}
.imp-sections{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px;font-size:.88rem}
.imp-h3{margin:16px 0 6px;font-size:1rem}
/* ---------- Importação: conferência e verificação (IMP-2) ---------- */
.imp-chip{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;padding:2px 8px;border-radius:6px;background:var(--line-soft);font-size:.82rem}
.imp-ask-box{display:grid;gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--line));border-radius:var(--r);background:color-mix(in srgb,var(--warn) 7%,var(--surface))}
.imp-ask{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface)}
.imp-samples{margin:4px 0 0;font-size:.85rem;color:var(--muted)}
.imp-sel{min-width:200px;max-width:100%}
.imp-date{border:0;margin:0;padding:0;display:grid;gap:4px}.imp-date legend{font-weight:600;font-size:.88rem;padding:0;margin-bottom:4px}
.imp-pv{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:12px;border:1px solid var(--line);border-radius:var(--r-s)}
.imp-pv h4{margin:0 0 4px;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.imp-pv p{margin:0}
.imp-rv{white-space:nowrap}.imp-rv .check{margin-bottom:4px}
@media (max-width:640px){.imp-pv{grid-template-columns:1fr}}
@media (max-width:640px){.imp-scroll .imp-tbl,.imp-scroll .imp-tbl tbody{display:block}.imp-scroll .imp-tbl tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.imp-scroll .imp-tbl td{padding:0;border:0}.imp-scroll .imp-tbl td.imp-rv{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 16px;white-space:normal}}
/* LOTE 1.21 · IMP-3 — envio e acompanhamento da importação */
.imp-hist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.imp-hist-head h2{margin:0}
.imp-run{border:1px solid var(--line);border-radius:var(--r-s);padding:14px;display:grid;gap:10px;background:var(--surface)}
.imp-run>header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.imp-run-error{border-color:color-mix(in srgb,var(--err) 45%,var(--line))}.imp-run-complete{border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}
.imp-trk{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.imp-trk li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-s);background:var(--line-soft);color:var(--muted);font-size:.88rem}
.imp-trk-dot{width:10px;height:10px;border-radius:50%;background:var(--line);flex:none}
.imp-trk .imp-trk-done{color:var(--ink)}.imp-trk .imp-trk-done .imp-trk-dot{background:var(--ok)}
.imp-trk .imp-trk-current{color:var(--ink);font-weight:600;background:var(--iris-wash)}.imp-trk .imp-trk-current .imp-trk-dot{background:var(--iris);box-shadow:0 0 0 4px color-mix(in srgb,var(--iris) 25%,transparent)}
.imp-trk .imp-trk-failed{color:var(--err);font-weight:600;background:color-mix(in srgb,var(--err) 10%,var(--surface))}.imp-trk .imp-trk-failed .imp-trk-dot{background:var(--err)}
.imp-errorbox{border:1px solid color-mix(in srgb,var(--err) 45%,var(--line));background:color-mix(in srgb,var(--err) 8%,var(--surface));border-radius:var(--r-s);padding:12px}.imp-errorbox b{color:var(--err);letter-spacing:.04em}.imp-errorbox p{margin:6px 0 0}
@media (max-width:640px){.imp-trk{grid-template-columns:1fr}}

/* IMP-4: painel do superadmin e faixa de suporte */
.imp-sel{background:var(--surface-2)}.imp-rep{columns:2;column-gap:24px;margin:6px 0;padding-left:18px}.imp-pre{white-space:pre-wrap;word-break:break-word;font-size:12px;max-height:260px;overflow:auto}
.imp-bar{height:8px;border-radius:6px;background:var(--line);overflow:hidden}.imp-bar>i{display:block;height:100%;background:var(--accent-ring);transition:width .3s}
.support-bar{position:fixed;left:0;right:0;top:0;z-index:60;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:6px 12px;background:#b42318;color:#fff;font-size:14px}.support-bar .btn{background:#fff;color:#b42318;border-color:#fff;padding:4px 12px}
body.has-support-bar{padding-top:44px}@media (max-width:640px){.imp-rep{columns:1}.support-bar{font-size:13px}body.has-support-bar{padding-top:72px}}

/* IMP-5: Prontuários importados */
.impr{margin-top:18px}.impr-toggle{all:unset;box-sizing:border-box;display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;cursor:pointer}.impr-toggle h2{margin:0}.impr-toggle:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}
.impr-tools{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.impr-tools input{flex:1 1 220px;min-width:0}.impr-small{font-size:12px}
.impr-list{list-style:none;margin:0;padding:0}.impr-list>li{border-top:1px solid var(--line)}.impr-head{all:unset;box-sizing:border-box;display:grid;grid-template-columns:130px 1fr auto;gap:10px;width:100%;padding:10px 4px;cursor:pointer;align-items:start}.impr-head:focus-visible{outline:2px solid var(--accent-ring)}
.impr-lead{display:flex;flex-direction:column;gap:2px;min-width:0}.impr-lead strong{overflow-wrap:anywhere}.impr-tog{color:var(--muted,#667);font-size:13px}
.impr-full{padding:0 4px 12px 140px}.impr-sec h4{margin:10px 0 2px;font-size:14px}.impr-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.impr-doc{border-left:3px solid var(--line);padding-left:10px}
@media (max-width:640px){.impr-head{grid-template-columns:1fr auto}.impr-date{grid-column:1/-1}.impr-full{padding-left:4px}}

.imp-pick{list-style:none;margin:0;padding:0}.imp-pick li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}

/* IMP-8 — agendamentos importados sem médico */
.imp-warn{margin:0;padding:10px 12px;border-radius:var(--r-s);background:#fff4e5;color:#7a4300;font-size:.9rem}
.ag-impbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border:1px solid #f0c27a;border-radius:var(--r);background:#fff4e5;color:#5a3300}
.ag-impbar .muted{color:#7a4300}
.implink .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.implink select{max-width:100%}

/* IMP-12 — importação guiada: passos, guia, ajudante e desfazer */
.imp-steps{margin:0 0 14px}.imp-steps-n{margin:0 0 8px;color:var(--muted);font-size:.92rem}.imp-steps-n b{color:var(--ink)}
.imp-steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.imp-steps li{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--r-s);background:var(--line-soft);color:var(--muted);font-size:.8rem;min-width:0}
.imp-steps li>span:first-child{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--ink);font-size:.75rem;font-weight:600}
.imp-steps li.done{color:var(--ink)}.imp-steps li.done>span:first-child{background:var(--ok);color:var(--on-ink)}
.imp-steps li.cur{background:var(--iris-wash);color:var(--ink);font-weight:600}.imp-steps li.cur>span:first-child{background:var(--iris);color:var(--on-ink)}
.imp-steps-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){.imp-steps ol{grid-template-columns:repeat(5,auto);justify-content:start}.imp-steps-t{display:none}.imp-steps li.cur .imp-steps-t{display:inline;max-width:40vw}}
.imp-how ol{margin:6px 0 0;padding-left:1.2em;display:grid;gap:4px}
.imp-g-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.imp-g-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-s);border:1px solid var(--line);background:var(--surface)}
.imp-g-list p{margin:0}.imp-g-do{margin-top:4px!important}
.imp-g-stop{border-color:color-mix(in srgb,var(--err) 50%,var(--line))!important;background:color-mix(in srgb,var(--err) 7%,var(--surface))!important}
.imp-g-warn,.imp-g-todo{border-color:color-mix(in srgb,var(--warn) 50%,var(--line))!important;background:color-mix(in srgb,var(--warn) 7%,var(--surface))!important}
.imp-g-ok{border-color:color-mix(in srgb,var(--ok) 50%,var(--line))!important}
.imp-g-ai{padding:12px;border-radius:var(--r-s);background:var(--iris-wash)}.imp-g-ai p{margin:0 0 6px}.imp-g-ai-t{font-weight:600}
.imp-ai-note{margin:8px 0 0}
.imp-fab{position:fixed;right:16px;bottom:16px;z-index:40;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:0;border-radius:999px;background:var(--iris);color:var(--on-ink);font:inherit;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.25);cursor:pointer}
.imp-fab>span:first-child{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.25)}
.imp-fab:focus-visible{outline:3px solid var(--iris-wash);outline-offset:2px}
body:has(.imp-page) .ai-fab{display:none}
.imp-chat{display:grid;gap:10px;min-width:min(520px,86vw)}
.imp-chat-log{display:grid;gap:8px;max-height:46vh;overflow:auto;padding:4px}
.imp-msg{padding:10px 12px;border-radius:var(--r-s);max-width:92%}.imp-msg p{margin:0 0 6px}.imp-msg p:last-child{margin:0}
.imp-msg-user{justify-self:end;background:var(--iris-wash)}.imp-msg-assistant{justify-self:start;background:var(--line-soft)}
.imp-chat-sugs{display:flex;flex-wrap:wrap;gap:6px}
.imp-chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.imp-chat-form textarea{width:100%;resize:vertical}
.imp-undo{margin-top:8px}.imp-undo-done{margin:8px 0 0}
.imp-others{margin:10px 0}
/* IMP-13 — limite da IA na importação */
.imp-g-limit{margin:.5rem 0;padding:.5rem .75rem;border-left:3px solid var(--c-warn,#d99a00);background:rgba(217,154,0,.08);border-radius:6px}
.imp-faq-t{margin:.6rem 0 .25rem;font-weight:600}
/* IMP-14 — telas mais enxutas (textos da IA e do guia menores) */
.imp-guide h2{font-size:1.05rem;margin:0}.imp-g-list li{padding:8px 10px;font-size:.92rem}.imp-g-list p{line-height:1.35}
.imp-g-do{font-size:.85rem}.imp-g-more{margin-top:6px}.imp-g-more summary{cursor:pointer;font-size:.88rem;color:var(--iris-ink);padding:4px 0}
.imp-g-ai{font-size:.88rem;padding:8px 10px}.imp-g-ai .bullets{margin:4px 0 0;padding-left:18px}
.imp-msg{font-size:.9rem;line-height:1.4}.imp-chat h2{font-size:1.05rem;margin:0}

/* C2 — histórico de óculos com importados, impressos do dia na lista de atendimentos */
.himp-h{font-size:.95rem;margin:.9rem 0 .2rem}.hlist .himp{border-left:3px solid var(--accent-ring);padding-left:.6rem}.hlist .himp-chk{border-left-color:#d97706}
.chip-imp,.chip-warn{display:inline-block;font-size:.72rem;padding:.05rem .45rem;border-radius:999px;margin-left:.35rem;background:var(--chip-bg,#e8eefc);color:var(--chip-fg,#1e3a8a)}.chip-warn{background:#fef3c7;color:#92400e}
.himp-why{margin:.15rem 0}.himp-raw{margin:.25rem 0}.himp-raw summary{cursor:pointer;font-size:.85rem}.himp-pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:.85rem;background:var(--bg-soft,#f3f4f6);padding:.4rem .5rem;border-radius:6px;margin:.25rem 0}
.tl-kind{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;opacity:.7;margin-right:.25rem}.tl-void{text-decoration:line-through;opacity:.65}
@media (prefers-color-scheme:dark){.chip-warn{background:#4a3410;color:#fcd34d}.chip-imp{background:#1e2a4a;color:#bfd0ff}.himp-pre{background:#1f2430}}

/* C3 — limite de IA por profissional: perguntas separadas + quadro "Como vai funcionar" */
.ul-sum{background:var(--bg-soft,#f3f4f6);border-radius:8px;padding:.6rem .8rem;margin:.8rem 0}.ul-sum ul{margin:.3rem 0 0 1.1rem;padding:0}.ul-sum li{margin:.2rem 0}.ul-qf{margin:.4rem 0 .8rem}
@media (prefers-color-scheme:dark){.ul-sum{background:#1f2430}}

/* C3 — painel do superadmin: usuários e clínicas */
.adm-users{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:1rem;align-items:start}@media (max-width:820px){.adm-users{grid-template-columns:1fr}}
.au-clinics,.au-members,.au-changes{list-style:none;margin:.5rem 0;padding:0}.au-clinic{width:100%;text-align:left;display:flex;flex-direction:column;gap:.1rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;margin-bottom:.35rem;cursor:pointer}.au-clinic.on{border-color:var(--accent-ring);background:var(--bg-soft,#eef2ff)}
.au-m{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line)}.au-who{display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center}.au-acts{display:flex;flex-wrap:wrap;gap:.35rem}.au-changes li{display:flex;justify-content:space-between;gap:.5rem;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--line)}
@media (prefers-color-scheme:dark){.au-clinic.on{background:#1f2430}}

/* C4.1 — botão da unidade atual e menu de unidades */
.unit-host{position:relative;min-width:0;margin-left:.5rem}
.unit{position:relative}
.unit-btn{display:flex;align-items:center;gap:.45rem;max-width:min(46vw,280px);padding:.35rem .65rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:inherit;font:inherit;font-weight:600;cursor:pointer;position:relative}
.unit-btn:hover{border-color:var(--accent-ink)}
.unit-ico{display:inline-flex;width:1.1rem;height:1.1rem}.unit-ico svg{width:100%;height:100%}
.unit-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.unit-caret{font-size:.7rem;opacity:.7}
.unit-dot{position:absolute;top:-2px;right:-2px;width:.6rem;height:.6rem;border-radius:50%;background:#e11d48;border:2px solid var(--surface)}
.unit-menu{left:0;right:auto;min-width:min(92vw,330px);max-height:70vh;overflow:auto}
.unit-row{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left}
.unit-row[aria-current="true"]{background:var(--surface-2)}
.unit-av{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;background:var(--surface-2);font-weight:700;font-size:.8rem}
.unit-tx{display:flex;flex-direction:column;min-width:0;flex:1}.unit-tx strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-tx .muted{font-size:.8rem}
.unit-now{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--accent-ink)}
.unit-sec{padding:.5rem .8rem .2rem;font-size:.72rem;font-weight:700;text-transform:uppercase;opacity:.7}
.unit-org{margin:.3rem .8rem .5rem;font-size:.8rem;line-height:1.35}
.unit-inv{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .8rem;border-top:1px solid var(--line)}.unit-inv .muted{display:block;font-size:.8rem}
.unit-inv-a{display:flex;gap:.4rem}
.unit-plus{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;font-weight:700}
.unit-menu .pad{padding:.6rem .8rem}
body.unit-switching{cursor:progress;opacity:.7;pointer-events:none}
@media (max-width:640px){.unit-btn{max-width:42vw}}

/* C4.2 — impressos em página: escolher modelo (compacto, com busca) e editor */
.mp{margin-top:12px}.mp h2{margin:0 0 8px;font-size:1.05rem}
.mp-top{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.mp-q{flex:1 1 280px;min-width:0;padding:.55rem .8rem;border:1px solid var(--line);border-radius:var(--r-s);font:inherit;background:var(--surface);color:var(--ink)}
.mp-blank{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.mp-filters{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}
.mp-fg{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:.2rem .65rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer}
.chip[aria-pressed="true"]{border-color:var(--iris);background:var(--iris-wash);font-weight:600}
.mp-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 10px}
.mp-row{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line-soft);padding:2px 0}
.mp-pick{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;padding:.35rem .5rem;background:transparent;border:0;border-radius:var(--r-s);font:inherit;color:var(--ink);cursor:pointer}
.mp-pick:hover,.mp-pick:focus-visible{background:var(--iris-wash)}
.mp-t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-meta{display:flex;gap:4px;flex:none}.mp-meta .tag{font-size:.7rem}
.mp-row .mact{display:flex;gap:8px;align-items:center;font-size:.8rem}
.mp-none{grid-column:1/-1;padding:.8rem 0}
.mp-drafts{margin-top:12px}.mp-drafts h2,.mp-drafts>b{display:block;margin:0 0 6px;font-size:1rem}
.mp-dt{display:flex;flex-direction:column;min-width:0}.mp-dt .doc-note{font-size:.8rem}
.docpage{margin-top:12px}
.dp-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.dp-head h2{margin:0}
.dp-note{margin:4px 0 10px;font-size:.85rem}
.note-line{margin:6px 0;padding:.45rem .7rem;border-left:3px solid var(--iris);background:var(--iris-wash);border-radius:var(--r-s);font-size:.9rem}
.d-versions{margin-top:12px}.d-versions summary{cursor:pointer;font-weight:600}
.dp-actions{position:sticky;bottom:0;display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:16px;padding:10px 0;background:var(--surface);border-top:1px solid var(--line);z-index:5}
.dp-actions .grow{flex:1}
.docpage .rte-ed{min-height:46vh}
/* Lote 11.5: título + data + "dados automáticos" numa linha só; texto à esquerda, prévia (a folha do PDF) à direita */
.dp-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 4px}
.dp-top .f{margin:0}.dp-title{flex:1 1 220px;min-width:0}.dp-title input{width:100%}.dp-date{flex:1 1 140px;max-width:190px}.dp-var{flex:1 1 150px;max-width:260px}
.dp-var select{width:100%}.dp-date input{width:100%}
.docpage #d-inputs:empty{display:none}
.d-prevcol .fl{display:block;margin-bottom:6px}
.pv-box{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface-2,var(--bg))}
.pv-frame{display:block;border:0;background:#fff;transform-origin:top left;pointer-events:none}
@media (min-width:1000px){.docpage .d-split{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.d-prevcol{position:sticky;top:8px}}

/* ======================================================================
   Lote 8A — identidade "Trama" (marca, entrada, carregamento).
   Só aparência: nenhuma regra de função aqui.
   ====================================================================== */
.logo-sw,.logo-mark{display:inline-flex;line-height:0;flex:none}
.logo-sw img{display:block;height:32px;width:auto}
.logo-mark img{display:block;width:32px;height:32px}
.logo-sw .lg-d{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-sw .lg-l{display:none}:root:not([data-theme="light"]) .logo-sw .lg-d{display:block}}
:root[data-theme="dark"] .logo-sw .lg-l{display:none}
:root[data-theme="dark"] .logo-sw .lg-d{display:block}
.auth-box .brand .logo-sw img{height:40px}


/* carregamento de tela: barra fina no topo + esqueleto + aviso de demora */
.route-bar{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;pointer-events:none;overflow:hidden}
.route-bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left center;transform:scaleX(.06)}
.route-bar[data-s=run] i{transform:scaleX(.72);transition:transform 8s cubic-bezier(.1,.6,.2,1)}
.route-bar[data-s=done] i{transform:scaleX(1);transition:transform .15s linear}
.route-slow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:12px 28px 0;padding:10px 14px;border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--r-s);background:var(--surface);font-size:.9rem}
#view[aria-busy=true]{cursor:progress}
.skel{display:grid;gap:14px}
.skel>i,.skel .s-tabs i{display:block;border-radius:var(--r-s);background:var(--surface-2);position:relative;overflow:hidden}
.skel>i::after,.skel .s-tabs i::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 65%,transparent),transparent);animation:skel 1.4s ease-in-out infinite}
@keyframes skel{to{transform:translateX(100%)}}
.skel .s-title{height:28px;width:min(320px,60%)}
.skel .s-line{height:14px}.skel .s-w60{width:60%}
.skel .s-block{height:104px;border-radius:var(--r)}
.skel .s-tabs{display:flex;gap:8px}.skel .s-tabs i{height:34px;width:84px}
.ptab[aria-busy=true]{border-bottom-color:var(--accent);animation:ptabp 1s ease-in-out infinite}
@keyframes ptabp{50%{opacity:.55}}
@media (max-width:860px){.route-slow{margin:10px 16px 0}}
/* números do painel e horários em Inter com algarismos de largura fixa */
.stats b,.qtime,.pk-val,.big,.tg-stat b,.imp-stat b,.dh b,.cbar-pt{font-variant-numeric:tabular-nums}

/* ======================================================================
   Lote 8B — menu enxuto, "Mais", Configurações no rodapé, barra e gaveta do celular.
   ====================================================================== */
.nav a,.nav-more,.rail-foot a{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 12px;border:0;background:none;font:600 .92rem/1.25 var(--sans);color:var(--ink-2);border-radius:var(--r-s);text-decoration:none;cursor:pointer;text-align:left}
.nav a:hover,.nav-more:hover,.rail-foot a:hover{background:var(--surface-2);color:var(--ink)}
.nav a[aria-current=page],.rail-foot a[aria-current=page],.nav-more[data-on=true]{background:var(--surface-2);color:var(--ink)}
.nav a[aria-current=page]::before,.rail-foot a[aria-current=page]::before,.nav-more[data-on=true]::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.nav-more .caret{margin-left:auto}.nav-more .caret svg{width:16px;height:16px;transition:transform .15s}
.nav-more[aria-expanded=true] .caret svg{transform:rotate(180deg)}
.nav-more-wrap{position:relative}
.more-pop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:35;display:grid;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-pop)}
.more-pop a::before{display:none}
.rail-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--line-soft)}
.bar-more,.bar-title{display:none}
.layer-back{position:fixed;inset:0;z-index:90;background:rgba(7,19,31,.5)}
body.layer-open{overflow:hidden}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:95;max-height:80dvh;overflow:auto;padding:8px 12px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);border-radius:var(--r-l) var(--r-l) 0 0;box-shadow:var(--shadow-dialog)}
.sheet-grab{width:36px;height:4px;margin:4px auto 10px;border-radius:2px;background:var(--line-field)}
.sheet-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.sheet-list a{display:flex;align-items:center;gap:14px;min-height:52px;padding:0 12px;border-radius:var(--r-s);color:var(--ink);font-weight:600;text-decoration:none}
.sheet-list a:hover,.sheet-list a[aria-current=page]{background:var(--surface-2)}
.sheet-list .chev{margin-left:auto;color:var(--muted)}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(88vw,360px);display:flex;flex-direction:column;overflow:auto;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-dialog)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line-soft);min-height:56px}
.drawer-x{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer}
.drawer-sec{padding:10px 12px;border-bottom:1px solid var(--line-soft)}
.drawer-sec:empty,.drawer-sec:has(>.drawer-slot:empty){display:none}
.drawer-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 12px;border:0;border-radius:var(--r-s);background:none;color:var(--ink);font:600 .95rem var(--sans);text-decoration:none;text-align:left;cursor:pointer}
.drawer-item:hover{background:var(--surface-2)}
.drawer-item[hidden]{display:none}
.drawer-acc .menu-id{border-bottom:0;margin-bottom:2px}
.drawer .unit-host{margin:0}
.drawer .unit,.drawer .unit-btn{width:100%;max-width:none}
.drawer .unit-btn{min-height:48px;border-radius:var(--r-s);justify-content:flex-start}
.drawer .unit-caret{margin-left:auto}
.drawer .unit-menu{position:static;min-width:0;max-height:none;margin-top:8px;padding:0;border:0;box-shadow:none;background:none}
.drawer .sync{justify-content:flex-start}
@media (max-width:860px){
  .bar{gap:8px;padding:6px 12px;min-height:56px}
  .brand-m{display:flex;padding:0}
  .bar-title[data-on="true"]{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:1rem;color:var(--ink)}
  .bar>.unit-host,.bar>.sync,.bar>.who{display:none}
  .bar-more{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer}
  .bar-more:hover{background:var(--surface-2)}
  .bar-more svg{width:22px;height:22px}
  .bell{width:44px;height:44px}
  .tabs{padding:4px 2px calc(4px + env(safe-area-inset-bottom))}
  .tabs a,.tab-more{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:48px;padding:6px 0;border:0;border-radius:var(--r-s);background:none;color:var(--muted);font:600 10.5px/1.1 var(--sans);letter-spacing:-.01em;text-decoration:none;cursor:pointer}
  .tabs .lbl{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabs a[aria-current=page],.tab-more[data-on=true]{background:none;color:var(--ink)}
  .tabs a[aria-current=page]::before,.tab-more[data-on=true]::before{content:"";position:absolute;top:-4px;left:50%;width:24px;height:3px;margin-left:-12px;border-radius:0 0 3px 3px;background:var(--accent)}
}

/* ======================================================================
   Lote 8C — Configurações em blocos, "começar em branco" em cartões, abas do paciente mais leves.
   ====================================================================== */
.set-blocks{gap:28px}
.set-block{display:grid;gap:12px}
.set-bh{display:flex;gap:14px;align-items:flex-start}
.set-bh h2{font-size:1.125rem;line-height:1.3}
.set-bh p{margin:2px 0 0;font-size:.9rem}
.set-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--r);background:var(--surface-2);color:var(--ink)}
.set-links{padding:4px 20px}
.set-links .linklist a{min-height:44px;align-content:center}
.linklist a:hover b{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){.set-links{padding:2px 14px}}

.mp-blank{margin:12px 0 4px}
.mp-blank-h{margin:0 0 8px;font-size:.85rem;font-weight:600}
.blank-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.blank-card{display:grid;align-content:start;gap:4px;min-height:44px;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}
.blank-card:hover{border-color:var(--ink-2);background:var(--surface-2)}
.blank-ico{display:grid;place-items:center;width:40px;height:40px;margin-bottom:6px;border-radius:var(--r-s);background:var(--surface-2);color:var(--ink)}
.blank-card:hover .blank-ico{background:var(--surface)}
.blank-t{font-weight:600}
.blank-d{font-size:.82rem;line-height:1.35}
@media (max-width:480px){.blank-cards{grid-template-columns:1fr}.blank-card{grid-template-columns:40px 1fr;column-gap:12px;align-items:center}.blank-ico{grid-row:1/3;margin:0}}

.ptabs{gap:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ptabs::-webkit-scrollbar{display:none}
.ptab{min-height:44px;display:inline-flex;align-items:center;padding:0 14px;font-weight:500;color:var(--ink-2)}
.ptab.on{font-weight:600}
@media (max-width:640px){.ptabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}}

/* ======================================================================
   Lote 9A — Mensageiro da equipe (botão no canto direito, em cima do botão da IA; no celular é um OU outro).
   ====================================================================== */
.chat-fab{position:fixed;right:20px;bottom:20px;z-index:45;display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 16px 0 12px;border:1px solid var(--line-field);border-radius:999px;background:var(--surface);color:var(--ink);font:600 .95rem var(--sans);cursor:pointer;box-shadow:var(--shadow-pop);transition:transform .15s ease}
.chat-fab:hover{transform:translateY(-1px)}
.chat-fab:focus-visible{outline:none;box-shadow:var(--focus),var(--shadow-pop)}
.chat-fab[aria-expanded=true]{opacity:0;pointer-events:none}
.chat-ico{display:grid;place-items:center}.chat-ico svg{width:20px;height:20px}
.chat-fab-n,.cm-badge,#drawer-chat-n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--err);color:var(--on-err);font:700 .75rem/1 var(--sans)}
.chat-fab-n[hidden],#drawer-chat-n[hidden]{display:none}
.chat-fab-n{position:absolute;top:-6px;right:-4px;box-shadow:0 0 0 2px var(--bg)}
body:has(.ai-fab) .chat-fab,body:has(.imp-fab) .chat-fab{bottom:76px}
.chat-panel{position:fixed;top:12px;right:12px;bottom:12px;z-index:47;display:flex;flex-direction:column;width:min(400px,calc(100vw - 24px));height:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-dialog);overflow:hidden;animation:ai-in .18s ease-out}
.chat-panel[hidden]{display:none}
.chat-panel:focus{outline:none}
.cm-head{display:flex;align-items:center;gap:4px;padding:10px 8px 10px 14px;border-bottom:1px solid var(--line-soft)}
.cm-title{flex:1;margin:0;font:700 1rem var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-ib{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:var(--r-s);background:none;color:var(--muted);cursor:pointer}
.cm-ib:hover{background:var(--surface-2);color:var(--ink)}.cm-ib svg{width:20px;height:20px}
.cm-ib:focus-visible,.cm-conv:focus-visible,.cm-chip:focus-visible,.cm-btn:focus-visible,.cm-send:focus-visible,.cm-del:focus-visible{outline:none;box-shadow:var(--focus)}
.cm-note{margin:0;padding:8px 14px;font-size:.8rem;line-height:1.4;color:var(--ink-2);background:var(--surface-2)}
.cm-note-s{padding:5px 14px;font-size:.75rem}
.cm-body{flex:1;overflow:auto;padding:6px 8px 12px}
.cm-h3{margin:14px 6px 4px;font:700 .75rem var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cm-conv{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px;border:0;border-radius:var(--r-s);background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.cm-conv:hover{background:var(--surface-2)}
.cm-av{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);font-weight:700;color:var(--accent-ink)}
.cm-ct{flex:1;min-width:0;display:grid;gap:2px}.cm-ct b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-sub{color:var(--muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-meta{display:grid;justify-items:end;gap:4px;flex:none}.cm-meta time{font-size:.75rem;color:var(--muted)}
.cm-empty,.cm-hint{margin:8px 8px;font-size:.85rem;line-height:1.45;color:var(--muted)}
.cm-thread{flex:1;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:12px 12px 6px;overscroll-behavior:contain}
.cm-bub{align-self:flex-start;max-width:82%;padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--surface-2);color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;display:grid;gap:2px}
.cm-bub.me{align-self:flex-end;border-radius:14px 14px 4px 14px;background:var(--accent-ink);color:var(--on-ink)}
.cm-bub.gone{opacity:.7;font-size:.85rem}
.cm-who{font:700 .75rem var(--sans);color:var(--accent-ink)}
.cm-bub small{font-size:.7rem;opacity:.85;display:flex;gap:8px;align-items:center;justify-content:flex-end}
.cm-del{border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:6px 2px;min-height:28px}
.cm-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;border-top:1px solid var(--line-soft);scrollbar-width:thin}
.cm-chip{flex:none;min-height:36px;padding:0 14px;border:1px solid var(--line-field);border-radius:999px;background:var(--surface);color:var(--ink);font:600 .85rem var(--sans);cursor:pointer;white-space:nowrap}
.cm-chip:hover{background:var(--surface-2)}
.cm-chip.greet{border-color:var(--accent-ring);color:var(--accent-ink)}
.cm-chip.edit{border-style:dashed;color:var(--muted)}
.cm-comp{display:flex;gap:8px;align-items:flex-end;padding:8px 10px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft)}
.cm-comp textarea{flex:1;min-height:44px;max-height:120px;resize:none;padding:11px 12px;border:1px solid var(--line-field);border-radius:var(--r-s);background:var(--surface);color:var(--ink);font:inherit}
.cm-comp textarea:focus{outline:none;border-color:var(--accent-ring);box-shadow:var(--focus)}
.cm-send{min-height:44px;padding:0 16px;border:0;border-radius:var(--r-s);background:var(--accent-ink);color:var(--on-ink);font:700 .9rem var(--sans);cursor:pointer}
.cm-form{display:grid;gap:10px;align-content:start;padding:10px 12px 14px}
.cm-er{display:flex;gap:8px;align-items:center}.cm-er input{flex:1;min-width:0}
.cm-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cm-row input[type=range]{flex:1;min-width:120px;min-height:0;padding:0}
.cm-check{display:flex;gap:10px;align-items:center;min-height:44px}.cm-check input{width:20px;min-height:20px;height:20px;accent-color:var(--accent-ink)}
.cm-btn{min-height:44px;padding:0 14px;border:1px solid var(--line-field);border-radius:var(--r-s);background:var(--surface);color:var(--ink);font:600 .9rem var(--sans);cursor:pointer}
.cm-btn.p{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--on-ink)}
.cm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#drawer-chat-n{margin-left:auto}
.bar-more{position:relative}
.bar-more[data-n]::after{content:"";position:absolute;top:8px;right:8px;width:10px;height:10px;border-radius:50%;background:var(--err);box-shadow:0 0 0 2px var(--surface)}
#drawer-chat[hidden]{display:none}
@media (max-width:860px){
  .chat-fab,body:has(.ai-fab) .chat-fab,body:has(.imp-fab) .chat-fab{bottom:calc(76px + env(safe-area-inset-bottom));right:14px;height:44px;padding:0 12px}.chat-fab-l{display:none}
  body.chat-m-ai .chat-fab{display:none}
  body.chat-m-chat .ai-fab{display:none}
  .chat-panel{top:0;left:0;right:0;bottom:auto;width:auto;height:var(--cm-h,100dvh);border:0;border-radius:0;animation:none}
  .cm-ib{width:44px;height:44px}
}
@media (prefers-reduced-motion:reduce){.chat-panel{animation:none}.chat-fab{transition:none}}
@media print{.chat-dock{display:none}}
.rpt-lock svg{width:16px;height:16px;vertical-align:-3px}

/* ===== Lote 9.1 — cancelar assinatura (assistente) e modo "só baixar dados" ===== */
.cx-dlg{max-width:560px;width:calc(100vw - 24px)}
.cx-steps{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:.82rem}
.cx-steps span:not(.muted){width:22px;height:5px;border-radius:3px;background:var(--line)}
.cx-steps span.on{background:var(--accent-ink)}.cx-steps span.past{background:color-mix(in srgb,var(--accent-ink) 45%,var(--line))}
.cx-steps .muted{margin-left:6px}
.cx-list{margin:8px 0 12px;padding-left:20px;display:grid;gap:8px}
.cx-ok{margin:8px 0;padding:8px 10px;border-radius:var(--r-s);background:var(--ok-wash);color:var(--ink)}
.cx-ack{margin-top:12px;align-items:flex-start}
.cx-ack input{flex:none;width:20px;height:20px;min-height:20px;padding:0;margin:2px 0 0;accent-color:var(--accent-ink)}
.cx-link{color:var(--err)}
body.lock-xo .top-tools,body.lock-xo .nav,body.lock-xo .tabs,body.lock-xo .nav-more-wrap,body.lock-xo .ai-fab,body.lock-xo .chat-dock,body.lock-xo .bell-host,body.lock-xo .fin-host{display:none!important}
.cx-dlg h2:focus{outline:none}
.dlg-choices{display:grid;grid-template-columns:1fr;justify-content:stretch}.dlg-choices .btn{width:100%}

/* ===== Lote 9.2 — mensageiro e IA na barra superior; anexos no chat da equipe ===== */
.top-tools{display:none;align-items:center;gap:2px}
.top-tool{position:relative;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.top-tool[hidden]{display:none}
.top-tool svg{width:22px;height:22px}
.top-tool:hover{background:rgba(127,127,127,.14)}
.top-tool:focus-visible{outline:none;box-shadow:var(--focus)}
.top-tool[aria-expanded=true]{background:var(--surface-2);color:var(--accent-ink)}
.tool-n{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--err);color:var(--on-err);font:800 .7rem/1 var(--sans);display:grid;place-items:center;box-shadow:0 0 0 2px var(--surface)}
.tool-n[hidden]{display:none}
@media (min-width:861px){
  .top-tools{display:flex}
  .ai-fab,.chat-fab{display:none}
  .ai-panel,.chat-panel{top:72px}       /* as gavetas começam ABAIXO da barra: os ícones continuam clicáveis para fechar/trocar */
  .ai-panel.docked{top:12px}            /* fixada ao lado da página: a barra já para antes dela, então sem folga extra em cima */
}
body:has(.imp-page) #tool-ai{display:none}
@media print{.top-tools{display:none}}

.cm-attach{flex:none;align-self:flex-end;width:44px;height:44px}
.cm-drop{margin:0;padding:10px 14px;text-align:center;font:600 .85rem var(--sans);color:var(--accent-ink);background:var(--surface-2);border-top:1px dashed var(--accent-ring)}
.cm-drop[hidden]{display:none}
.chat-panel.dropping{box-shadow:0 0 0 3px var(--accent-ring),var(--shadow-dialog)}
.cm-bub.has-file{width:min(300px,82%);grid-template-columns:minmax(0,1fr)}
.cm-file{display:flex;gap:10px;align-items:center;width:100%;min-height:48px;padding:6px 8px;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:var(--r-s);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;font:inherit;text-align:left;cursor:pointer}
.cm-file:hover{background:color-mix(in srgb,currentColor 14%,transparent)}
.cm-file:focus-visible{outline:none;box-shadow:var(--focus)}
.cm-file.gone,.cm-file:disabled{opacity:.65;cursor:default}
.cm-fico{flex:none;display:grid;place-items:center;width:32px;height:32px}
.cm-fico svg{width:22px;height:22px}
.cm-fname{flex:1;min-width:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);gap:1px}
.cm-fname b{display:block;font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-fsub{display:block;font-size:.75rem;opacity:.85;white-space:normal}
/* 9.2 — IA fixada ao lado da página: encosta no topo, na direita e embaixo (sem as margens da gaveta flutuante) */
@media (min-width:1100px){
  .ai-panel.docked{top:0;right:0;bottom:0;border-radius:0;border-width:0 0 0 1px;box-shadow:-1px 0 0 var(--line),-8px 0 24px rgba(8,30,40,.06)}
}

/* ===== Lote 9.2.1 — "Tela do prontuário" dentro de Configurações > Aparência ===== */
.cp-box{display:grid;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-soft)}
.cp-box[hidden]{display:none}
.set-pane .panel>.cp-box:first-child{margin-top:0;padding-top:0;border-top:0}
.cp-h{margin:0;font:700 1rem var(--sans)}
.cp-box p{margin:0}

/* ===== Lote 9.3 — IA em Configurações: uma barra (0–200%) por profissional ===== */
.ia-m-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:14px}
.ia-m-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:5px}
.ia-m-top b{font-weight:600}
.ia-m-warn{color:var(--warn);font-weight:600}
.ia-m-track{position:relative;height:12px;border-radius:999px;background:var(--line);overflow:hidden}
.ia-m-in,.ia-m-out{position:absolute;top:0;bottom:0}
.ia-m-in{left:0;background:var(--ok);border-radius:999px 0 0 999px}
.ia-m li.over .ia-m-in,.ia-m.over .ia-m-in{background:var(--ok)}
.ia-m-out{background:var(--orange)}
.ia-m-tick{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--surface)}
.ia-m-note{margin:5px 0 0;font-size:.85rem;line-height:1.4;color:var(--warn);font-weight:600;padding:6px 10px;border-radius:var(--r-s);background:var(--warn-wash)}
.ia-m-scale{display:flex;justify-content:space-between;margin-top:6px;font-size:.75rem;color:var(--muted)}
.ia-m-scale span:nth-child(2){position:absolute;left:50%;transform:translateX(-50%)}
.ia-m-scale{position:relative}
.ia-adv{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}
.ia-adv>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}

/* Lote 9.4 — barra do atendimento em menus + variáveis dos impressos */
.tmenu{position:relative}
.tm-caret{margin-left:6px;font-size:.7em;color:var(--muted)}
.tm-pop{top:calc(100% + 6px);left:0;right:auto;min-width:220px}
.tm-end .tm-pop{left:auto;right:0}
.tm-pop .menu-item[aria-pressed="true"]::after{content:"✓";margin-left:auto;color:var(--accent)}
.vchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px}
.vchips .vc-l{font-size:.82rem;color:var(--muted);margin-right:2px}
.vchips .vc{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font:600 .8rem var(--sans);cursor:pointer}
.vchips .vc:hover{background:var(--line-soft)}
#ch-imp:not(:empty){margin-top:28px}

/* Lote 9.5 — Atendimentos anteriores: faixa cinza de histórico (não parece um bloco editável) */
.prevs{background:var(--line-soft);border-radius:var(--r);padding:16px 18px 14px;border-left:4px solid var(--line)}
.prevs-head h2{display:flex;align-items:center;gap:10px;margin:0 0 2px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.prevs-head h2::after{content:"";flex:1;height:1px;background:var(--line)}
.prevs-note{margin:4px 0 10px;font-size:.82rem;color:var(--muted)}
.prevs-q{width:100%;margin:0 0 8px}
.prevs-list{list-style:none;margin:0;padding:0}.prevs-list>li{border-top:1px solid var(--line)}
.prev-head{all:unset;box-sizing:border-box;display:grid;grid-template-columns:120px 1fr auto;gap:10px;width:100%;padding:10px 2px;cursor:pointer;align-items:start}
.prev-head:focus-visible{outline:2px solid var(--accent-ring)}
.prev-lead{display:flex;flex-direction:column;gap:2px;min-width:0}.prev-lead strong{font-weight:600;overflow-wrap:anywhere}
.prev-src{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface)}
.prev-full{padding:0 2px 12px 130px}.prev-full.impr-full{padding-left:130px}
@media (max-width:640px){.prev-head{grid-template-columns:1fr auto}.prev-date{grid-column:1/-1}.prev-full,.prev-full.impr-full{padding-left:2px}}

/* Lote 9.6 — IA do Celsor: uma barra deslizante por profissional */
.ia-sl-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.ia-sl-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ia-sl-pct{font-weight:700;font-variant-numeric:tabular-nums}
.ia-sl.paid .ia-sl-pct{color:var(--warn)}.ia-sl.off .ia-sl-pct{color:var(--muted)}
.ia-sl-wrap{position:relative;padding:6px 0}
.ia-sl-in{-webkit-appearance:none;appearance:none;width:100%;height:12px;min-height:0;padding:0;border:0;border-radius:999px;margin:0;cursor:pointer;background:linear-gradient(to right,var(--accent) 0 var(--g1,0%),var(--orange) var(--g1,0%) var(--g2,0%),var(--line) var(--g2,0%) 100%)}
.ia-sl-in::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--surface);border:3px solid var(--ink);box-shadow:var(--shadow-pop)}
.ia-sl-in::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--surface);border:3px solid var(--ink)}
.ia-sl-in:focus-visible{outline:2px solid var(--accent-ring);outline-offset:4px}
.ia-sl-in:disabled{opacity:.6;cursor:progress}
.ia-sl-tick{position:absolute;top:2px;bottom:2px;width:2px;background:var(--surface);pointer-events:none;transform:translateX(-1px);opacity:.9}
.ia-sl-msg{margin:2px 0 0;font-size:.9rem}.ia-sl.paid .ia-sl-msg{color:var(--warn)}
.ia-sl-used{margin:0}
.ia-sl-scale{display:flex;justify-content:space-between}

/* Lote 9.7 — Configurações em seções: menu à esquerda (computador) / faixa rolável (celular) */
.set-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:start}
.set-nav{display:grid;gap:4px;position:sticky;top:16px}
.set-tab{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r);cursor:pointer;font-weight:600;color:var(--ink);min-height:44px}
.set-tab:hover{background:var(--line-soft)}
.set-tab[aria-current="true"]{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}
.set-tab:focus-visible{outline:2px solid var(--accent-ring)}
.set-tab-ico{display:grid;place-items:center;width:28px;height:28px;color:var(--muted)}.set-tab-ico svg{width:20px;height:20px}
.set-pane[hidden]{display:none}
.set-adv{margin-top:12px}.set-adv summary{cursor:pointer;font-weight:600;color:var(--muted)}
@media (max-width:860px){
  .set-layout{grid-template-columns:1fr;gap:12px}
  .set-nav{display:flex;overflow-x:auto;gap:6px;position:static;padding-bottom:4px;scrollbar-width:none}
  .set-tab{flex:0 0 auto;border:1px solid var(--line);padding:8px 12px;white-space:nowrap}
  .set-tab-ico{display:none}
  .set-tab[aria-current="true"]{box-shadow:none;border-color:var(--accent);background:var(--surface-2)}
}

/* Lote 9.7 — faixa "Nova versão" */
.upd-bar{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:var(--r);background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 6px 24px rgba(0,0,0,.25)}
.upd-bar .btn{min-height:36px;padding:0 14px}
.upd-bar .upd-msg{font-weight:600}
@media print{.upd-bar{display:none}}

/* Lote 9.8 — aba Anexos */
.an-count{margin:12px 0 6px}
.an-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.an-row{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.an-main{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;min-width:0;flex:1 1 320px}.an-main .tag{margin:0}
.an-open{margin-left:auto}
.att-link{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:var(--ink);text-decoration:underline;text-underline-offset:2px;min-width:0}
.att-link svg{width:16px;height:16px;flex:none}.att-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Lote 10.1 — assinatura do profissional */
.sig{display:grid;gap:12px}
.sig-prev{display:inline-block;padding:10px 18px;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface)}
.sig-prev img{display:block;max-height:90px;max-width:100%}
.sig-edit{display:grid;gap:10px}
.sig-board{position:relative;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden;max-width:560px}
.sig-board canvas{display:block;width:100%;height:auto;aspect-ratio:3/1;touch-action:none;cursor:crosshair}
.sig-line{position:absolute;left:6%;right:6%;bottom:22%;border-top:1px dashed var(--line);pointer-events:none}
.sig-actions{display:flex;flex-wrap:wrap;gap:8px}

/* ---- Lote 10.3: portal de laudos (janela de acesso, cartão da ficha, página de Configurações) ---- */
.pt-cred{display:grid;gap:8px;margin:12px 0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.pt-cred>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.pt-cred span{min-width:64px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.pt-cred b{font-size:1.5rem;letter-spacing:.08em}.pt-cred .pt-url{font-size:1rem;letter-spacing:0;word-break:break-all}
.pt-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}
.pt-dlg .dlg-actions{margin-top:14px}
#pt-portal .actions{margin-top:8px}#pt-portal p{margin:0 0 6px}
.pt-set{display:grid;gap:14px;max-width:760px}.pt-set h3{margin:16px 0 6px;font-size:.95rem}
.pt-steps{margin:0;padding-left:1.3em;display:grid;gap:8px}.pt-where{margin:0;padding-left:1.2em;display:grid;gap:6px}
.pt-addr{margin:6px 0 10px;font-size:1.1rem}
.pt-code{width:100%;font:.8rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
/* ---- Audiograma (Lote 12): OD vermelho (O / <), OE azul (X / >); arrastar no gráfico ou digitar na tabela ---- */
.aud{display:grid;gap:10px;min-width:0}
.aud-tools{display:flex;flex-wrap:wrap;gap:6px}
.aud-tool{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.aud-tool.on{border-color:var(--accent-ring);background:var(--info-wash);box-shadow:inset 0 0 0 1px var(--accent-ring)}
.aud-key{display:inline-flex;gap:4px;font-weight:700;font-size:1.05rem;line-height:1}.aud-key .od,.aud-tbl th.aud-od{color:var(--err)}.aud-key .oe,.aud-tbl th.aud-oe{color:var(--info)}
.aud-hint{margin:0}
.aud-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;min-width:0}
.aud-fig{margin:0;min-width:0;display:grid;gap:4px}
.aud-fig figcaption{font-size:.9rem;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.aud-fig.aud-od figcaption b,.aud-fig[data-ear="od"] figcaption b{color:var(--err)}.aud-fig[data-ear="oe"] figcaption b{color:var(--info)}
.aud-static .aud-fig:nth-child(1) figcaption b{color:var(--err)}.aud-static .aud-fig:nth-child(2) figcaption b{color:var(--info)}
.aud-pta{font-size:.82rem;font-weight:600;color:var(--ink)}.aud-pta.muted{font-weight:400;color:var(--muted)}
.aud-svg{width:100%;height:auto;max-width:420px;display:block;background:var(--surface);border:1px solid var(--line);border-radius:10px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}
.aud-static .aud-svg{touch-action:auto;cursor:default}
.aud-svg:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}
.aud-g{stroke:var(--line);stroke-width:.8}.aud-zero{stroke:var(--muted)}
.aud-band{fill:var(--ok-wash);opacity:.75}
.aud-t{fill:var(--muted);font:9px system-ui,-apple-system,"Segoe UI",sans-serif}.aud-ax{font-weight:600}
.aud-line{fill:none;stroke-width:1.6}.aud-sym{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.aud-od .aud-sym,.aud-od .aud-line{stroke:var(--err)}.aud-oe .aud-sym,.aud-oe .aud-line{stroke:var(--info)}
.aud-guide{stroke:var(--accent-ring);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}
.aud-tip{fill:var(--ink);font:600 11px system-ui,-apple-system,"Segoe UI",sans-serif;paint-order:stroke;stroke:var(--surface);stroke-width:3px;pointer-events:none}
.aud-read{min-height:1.2em;font-size:.82rem;color:var(--muted)}
.aud-legend{margin:0;font-size:.82rem}
.aud-tblw{overflow-x:auto;max-width:100%}
.aud-tbl{border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:280px}
.aud-tbl caption{text-align:left;font-weight:600;font-size:.875rem;padding-bottom:4px}
.aud-tbl th,.aud-tbl td{border:1px solid var(--line);padding:2px 3px;text-align:center;font-size:.86rem}
.aud-tbl thead th{background:var(--surface-2);font-weight:700}
.aud-tbl tbody th{font-weight:600;text-align:right;padding-right:8px;background:var(--surface-2)}
.aud-in{width:3.7em;min-height:36px;padding:2px 2px;text-align:center;border:0;background:transparent;font:inherit}
.aud-in:focus{background:var(--surface);box-shadow:var(--focus);border-radius:4px}
.aud-na{color:var(--muted)}
.aud-act{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.aud-det{margin-top:6px;font-size:.86rem}.aud-det summary{cursor:pointer;color:var(--muted)}.aud-det span{display:block;white-space:pre-line;margin-top:4px}
@media (max-width:560px){.aud-tool{flex:1 1 auto;justify-content:center}.aud-svg{max-width:none}}

/* ---------- Lote 14: Ajuda (suporte) ---------- */
#tool-help .tool-n{min-width:10px;height:10px;padding:0;top:7px;right:7px}
.help-fab{position:fixed;right:16px;bottom:16px;z-index:40;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:10px 16px;font:600 .88rem var(--sans);box-shadow:0 6px 24px rgba(8,30,40,.16);cursor:pointer}
.help-fab:hover{border-color:var(--iris)}
.help-panel{position:fixed;top:12px;right:12px;bottom:12px;z-index:47;width:min(420px,calc(100vw - 24px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 64px rgba(8,30,40,.22),0 2px 8px rgba(8,30,40,.08);overflow:hidden;animation:ai-in .18s ease-out}
.help-head{display:flex;align-items:center;gap:10px;padding:12px 10px 10px 16px;border-bottom:1px solid var(--line-soft)}
.help-head .grow{flex:1}
.help-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--iris-wash);color:var(--iris-ink);font:800 .95rem var(--sans)}
.help-ib{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1rem;cursor:pointer}
.help-ib:hover{background:var(--bg);color:var(--ink)}
.help-sub{padding:7px 16px;font-size:.78rem;color:var(--muted);border-bottom:1px solid var(--line-soft);background:color-mix(in srgb,var(--bg) 55%,var(--surface))}
.help-sub.human{color:var(--ink);background:color-mix(in srgb,var(--warn) 12%,var(--surface))}
.help-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:14px}
.help-empty{margin:auto 0;padding:4px}
.help-hello{font:600 1.2rem var(--sans);margin:0 0 6px;letter-spacing:-.01em}
.help-chips{display:grid;gap:8px;margin-top:14px}
.help-sug{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;font:500 .88rem var(--sans);cursor:pointer}
.help-sug:hover{border-color:var(--iris);background:var(--iris-wash)}
.help-msg{display:flex;flex-direction:column;gap:6px;max-width:100%}
.help-msg.me{align-self:flex-end;max-width:85%;background:var(--iris-wash);padding:9px 13px;border-radius:14px 14px 4px 14px}
.help-msg.me p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.help-msg.sys{align-self:center;text-align:center;font-size:.82rem;color:var(--muted);background:var(--bg);padding:8px 12px;border-radius:10px}
.help-tag{align-self:flex-start;font:600 .66rem var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--iris-ink);background:var(--iris-wash);padding:2px 8px;border-radius:999px}
.help-tag.team{color:var(--on-ink);background:var(--iris-ink)}
.help-md{font-size:.93rem;line-height:1.55;overflow-wrap:anywhere}.help-md p{margin:0 0 8px}.help-md p:last-child{margin:0}.help-md ul,.help-md ol{margin:0 0 8px;padding-left:20px}
.help-acts{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.help-quick{display:flex;flex-wrap:wrap;gap:6px}
.help-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:500 .84rem var(--sans);cursor:pointer}
.help-chip:hover{border-color:var(--iris);background:var(--iris-wash)}
.help-fb{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--muted)}
.help-fb button{border:1px solid var(--line-soft);background:transparent;border-radius:8px;padding:2px 8px;cursor:pointer}
.help-thinking{display:flex;align-items:center;gap:4px;margin:0;color:var(--muted);font-size:.88rem}
.help-thinking span{width:6px;height:6px;border-radius:50%;background:var(--iris);animation:ai-dot 1.1s infinite ease-in-out}
.help-thinking span:nth-child(2){animation-delay:.15s}.help-thinking span:nth-child(3){animation-delay:.3s;margin-right:6px}
.help-email{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px}
.help-email input{width:100%}
.help-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line-soft)}
.help-form input{flex:1;min-width:0}
@media (max-width:760px){.help-panel{top:0;right:0;bottom:0;left:0;width:auto;border-radius:0;border:0}.help-fab{bottom:12px;right:12px}}
@media (prefers-reduced-motion:reduce){.help-panel,.help-thinking span{animation:none}}

/* ---------- Lote 14.2: "Emitidos neste dia" na lista de atendimentos ---------- */
.tl-docs{margin:6px 0 2px 10px;padding:8px 12px 10px;border-left:3px solid var(--accent-ring,var(--iris));background:color-mix(in srgb,var(--bg) 60%,var(--surface));border-radius:0 10px 10px 0;display:grid;gap:10px}
.tl-docs.loose{margin:0;padding:0;border:0;background:transparent}
.tl-dd{margin:0;font:700 .7rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tl-dg header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tl-dg header b{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--iris-ink)}
.tl-dall{font-size:.84rem;color:var(--iris);text-decoration:none;white-space:nowrap}.tl-dall:hover{text-decoration:underline}
.tl-dg ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:3px}
.tl-dg li{display:block;font-size:.9rem;overflow-wrap:anywhere}
.tl-dt{font-weight:600}
.tl-dg li.tl-void .tl-dt{text-decoration:line-through;color:var(--muted)}
.timeline li>.tl-edit{margin-top:6px}
.ai-fl input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:0;padding:0;margin:0;flex:none;accent-color:var(--iris)}
.ai-fl{min-width:0}.ai-fl b{overflow-wrap:anywhere}
.ai-fex{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface)}
.ai-fex ul{margin:6px 0 8px;padding-left:18px;font-size:.82rem}

/* Lote 14.3 — desktop: menu lateral recolhido (só ícones); ao passar o mouse (ou focar) expande POR CIMA da tela, sem empurrar o conteúdo */
.brand-mini{display:none}
@media (min-width:761px){
  :root{--rail:68px}
  .rail{z-index:60;width:var(--rail);padding:22px 10px;overflow:visible;transition:width .16s ease,box-shadow .16s ease}
  .rail .brand{padding:0;justify-content:center;min-height:36px}
  .rail .brand-full{display:none}.rail .brand-mini{display:inline-flex}
  .rail>nav{width:100%}
  .nav a,.nav-more,.rail-foot a{padding:0;gap:0;width:100%;min-height:48px;justify-content:center;overflow:hidden}
  .nav a .ico,.nav-more .ico:first-child,.rail-foot a .ico{width:48px;height:48px}
  .rail .ico svg{width:24px;height:24px}
  .rail .lbl,.rail .nav-more .caret{display:none;white-space:nowrap}
  .nav a[aria-current=page]::before,.rail-foot a[aria-current=page]::before,.nav-more[data-on=true]::before{left:-10px}
  .rail:hover,.rail:has(:focus-visible){width:232px;box-shadow:0 0 0 1px var(--line),var(--shadow-pop)}
  .rail:hover .nav a,.rail:hover .nav-more,.rail:hover .rail-foot a,.rail:has(:focus-visible) .nav a,.rail:has(:focus-visible) .nav-more,.rail:has(:focus-visible) .rail-foot a{justify-content:flex-start;gap:2px}
  .rail:hover .lbl,.rail:has(:focus-visible) .lbl{display:inline}
  .rail:hover .nav-more .caret,.rail:has(:focus-visible) .nav-more .caret{display:grid;margin-left:auto;width:auto}
  .rail:hover .brand-full,.rail:has(:focus-visible) .brand-full{display:inline-flex}
  .rail:hover .brand-mini,.rail:has(:focus-visible) .brand-mini{display:none}
  .rail:hover .brand,.rail:has(:focus-visible) .brand{justify-content:flex-start;padding:0 8px}
  .rail:not(:hover):not(:has(:focus-visible)) .more-pop{display:none}
  #view{max-width:1480px}
}

/* Lote 14.4 — lista do prontuário: cada atendimento é UM cartão (cabeçalho → "Ver tudo" → registro completo → Emitidos neste dia) */
.timeline{gap:14px}
.timeline li.tl-day{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 1px 2px rgba(8,30,40,.04)}
.timeline li.tl-day.open{border-color:color-mix(in srgb,var(--iris) 45%,var(--line))}
.timeline li.tl-day>.tl{border:0;border-radius:0;background:transparent;box-shadow:none}
.timeline li.tl-day>.tl:hover{background:var(--surface-2)}
.timeline li.tl-day>.tl.draft{box-shadow:inset 3px 0 0 var(--warn)}
.tl-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:0 16px 12px}
.tl-tools .tl-x,.tl-x-end{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--iris-ink);font:600 .84rem var(--sans);padding:6px 14px;text-decoration:none;cursor:pointer}
.tl-tools .tl-x:hover,.tl-x-end:hover{border-color:var(--iris);background:var(--iris-wash)}
.tl-tools .tl-edit{margin:0}
.timeline li.tl-day.open>.tl-tools{border-bottom:1px solid var(--line-soft)}
.timeline li.tl-day>.tl-full,.timeline li.tl-day.open>.tl-full{order:0;margin:0;padding:14px 18px 14px 18px;border:0;border-radius:0;background:color-mix(in srgb,var(--bg) 60%,var(--surface))}
.timeline li.tl-day>.tl-full::before{display:none}
.tl-x-end{margin-top:10px}
.timeline li.tl-day>.tl-docs{margin:0;padding:12px 18px 14px;border:0;border-top:1px solid var(--line);border-radius:0;background:var(--surface);gap:8px}
.timeline li.tl-day>.tl-docs .tl-dd{color:var(--ink-2)}
.tl-dg{display:grid;grid-template-columns:minmax(120px,170px) minmax(0,1fr) auto;gap:2px 14px;align-items:baseline;padding:8px 0;border-top:1px dashed var(--line-soft)}
.tl-dg:first-of-type{border-top:0}
.tl-dg header{display:contents}
.tl-dg header b{grid-column:1;grid-row:1}
.tl-dg header .tl-dall{grid-column:3;grid-row:1}
.tl-dg ul{grid-column:2;grid-row:1;margin:0}
.tl-dg li{padding:2px 0}
@media (max-width:640px){.tl-dg{grid-template-columns:1fr auto}.tl-dg header b{grid-column:1}.tl-dg header .tl-dall{grid-column:2}.tl-dg ul{grid-column:1/-1;grid-row:2}}

/* Lote 15 — etiquetas */
.tg-ed{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;margin:8px 0}
.tg-lab{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.82rem}.tg-lab svg{width:18px;height:18px}
.tg-chips{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
.tg-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;border-radius:99px;background:var(--iris-wash);color:var(--iris-ink);font-size:.84rem;font-weight:600}
.tg-chip button{border:0;background:transparent;color:inherit;font-size:1.05rem;line-height:1;padding:2px 6px;border-radius:99px;cursor:pointer}.tg-chip button:hover{background:rgba(0,0,0,.08)}
input.tg-in{width:auto;min-width:150px;min-height:34px;padding:5px 10px;font-size:.88rem;border-radius:99px}
.tg-mini{display:inline-flex;gap:4px;flex-wrap:wrap}.tg-mini .tg-chip{padding:1px 9px;font-size:.76rem}
.tl-tl{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.tl-tools .tl-tag svg{width:16px;height:16px}
.tl-tagrow{padding:0 16px 10px;border-bottom:1px solid var(--line-soft)}.tl-tagrow .tg-ed{margin:0}
.sr-idx{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}.sr-idx progress{width:min(320px,60vw);height:10px}
.sr-tags h2,.sr-form h2,.sr-ai-box h2{display:flex;align-items:center;gap:8px}.sr-tags h2 svg,.sr-form h2 svg,.sr-ai-box h2 svg{width:20px;height:20px;color:var(--iris)}
.sr-cloud{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sr-tag{border:1px solid transparent;cursor:pointer;padding:4px 10px;gap:8px;font:600 .86rem var(--sans)}.sr-tag b{font-weight:700;opacity:.7}
.sr-tag.on{background:var(--iris);color:var(--surface)}.sr-tag:hover{border-color:var(--iris)}
.sr-row{display:flex;gap:8px;flex-wrap:wrap}.sr-row input{flex:1 1 260px}
.sr-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:10px}.sr-filters label{display:grid;gap:4px;font-size:.82rem;color:var(--muted);font-weight:600}
.sr-ai-box{background:var(--iris-wash)}
.sr-ai{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-s);background:var(--iris-wash);color:var(--iris-ink);margin:12px 0}.sr-ai svg{width:18px;height:18px;flex:none;margin-top:2px}
.sr-sum{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 8px}
.sr-grp{margin:8px 0 14px}.sr-grp h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 6px}.sr-grp ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.sr-grp li{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface)}
.sr-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sr-hit a{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none}.sr-hit a:hover{border-color:var(--iris)}
.sr-d{color:var(--muted);font-size:.86rem}.sr-m{display:grid;gap:4px;min-width:0}.sr-sn{font-size:.88rem;color:var(--ink-2);overflow-wrap:anywhere}.sr-sn mark,.sr-m mark{background:color-mix(in srgb,var(--warn) 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}
@media (max-width:560px){.sr-hit a{grid-template-columns:1fr}}
.sr-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ---------- Lote 16: anexo de imagem no chat de ajuda ---------- */
.help-attach{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--line-soft);background:color-mix(in srgb,var(--bg) 55%,var(--surface))}
.help-attach[hidden]{display:none}
.help-attach img{width:48px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:none}
.help-attach-t{display:grid;gap:2px;font-size:.78rem;min-width:0;flex:1}
.help-attach-t span{overflow-wrap:anywhere}
.help-img{display:block;max-width:220px;max-height:200px;border-radius:10px;object-fit:cover;cursor:zoom-in;border:1px solid var(--line)}
.help-img.zoom{max-width:100%;max-height:none;cursor:zoom-out}
.help-img-wait{font-size:.84rem}
.help-form .help-ib{flex:none;align-self:center}

/* Lote 17 — erro real de sincronização na página inicial */
.sync-errs { margin: .5rem 0; padding-left: 1.1rem; display: grid; gap: .5rem; }
.sync-errs li { line-height: 1.35; }
#sync-err { margin-top: .5rem; border-left: 3px solid var(--bad, currentColor); padding-left: .75rem; }
#sync-err .actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }

/* Lote 17 — modelos de impressos */
.dmm-types { display: grid; gap: .5rem; }
.dmm-type { display: flex; gap: .6rem; align-items: flex-start; border: 1px solid var(--line); border-radius: 10px; padding: .6rem .75rem; cursor: pointer; }
.dmm-type:has(input:checked) { border-color: var(--ink); background: var(--surface-2, transparent); }
.dmm-type > input { width: auto; min-width: 0; flex: none; margin: .2rem 0 0; }
.dmm-type > span { display: grid; gap: .15rem; font-weight: 400; }
.dmm-type > span > b { font-weight: 600; }
.dmm-fs { border: 0; padding: 0; margin: 0 0 1rem; }
.dmm-fs > legend { font-weight: 600; padding: 0; margin-bottom: .4rem; }
.dmm .dp-var { margin: .25rem 0 .5rem; }

/* Lote 17.1 — opção "computador compartilhado" recolhida no login */
.auth-shared { margin: .25rem 0; }
.auth-shared > summary { cursor: pointer; color: var(--muted); font-size: .9rem; padding: .25rem 0; }
.auth-shared[open] > summary { margin-bottom: .35rem; }

/* Lote 19 — Gerenciar clínicas */
.cm-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cm-row { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; align-items: center; padding: .6rem .75rem; border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface); }
.cm-row.is-archived { background: var(--surface-2); }
.cm-tx { display: grid; min-width: 0; }
.cm-tx strong { overflow-wrap: anywhere; }
.cm-act { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; }
.cm-hint { grid-column: 1 / -1; margin: 0; }
@media (max-width: 560px) { .cm-row { grid-template-columns: auto 1fr; } .cm-act { grid-column: 1 / -1; justify-content: flex-start; } }
.cm-act .danger-text { color: var(--err); }

/* IMP-15: período a importar e "Outros registros do mesmo dia" */
.imp-period{display:flex;flex-direction:column;gap:8px}.imp-period-dates{display:flex;flex-wrap:wrap;gap:12px}.imp-period-dates label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}
.impr-dups{padding:4px 0 10px 12px}.impr-duplist{border-left:3px solid var(--line);margin:8px 0 0 4px;padding-left:10px}

/* Home: aviso "você tem atendimentos hoje" + botão Começar a atender (só tokens de cor) */
.care-cta{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:18px 22px;border-radius:16px;border:1px solid color-mix(in srgb,var(--ok) 40%,var(--line));background:linear-gradient(120deg,var(--ok-wash) 0%,var(--surface) 70%)}
.care-cta[hidden]{display:none}
.care-cta h2{margin:0 0 4px;font-size:1.2rem}
.care-cta p{margin:0}
.care-cta .care-go{background:var(--ok);border-color:var(--ok);color:var(--on-ink);font-size:1.1rem;font-weight:700;padding:14px 28px;border-radius:14px;box-shadow:0 4px 14px color-mix(in srgb,currentColor 25%,transparent);white-space:nowrap}
@media (max-width:560px){.care-cta .care-go{width:100%;text-align:center}}

/* Lote 20: botão discreto "Modelos" acima das caixas de texto longas + menu */
.tpl-bar{position:relative;display:flex;justify-content:flex-end;margin:0 0 2px}
.tpl-btn{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 6px;border:0;border-radius:var(--r-s);background:none;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer}
.tpl-btn svg{width:14px;height:14px}.tpl-btn:hover,.tpl-btn:focus-visible{color:var(--ink);background:var(--surface-2)}
.tpl-menu{position:absolute;z-index:30;top:100%;right:0;min-width:220px;max-width:min(92vw,320px);padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);box-shadow:0 6px 24px rgba(0,0,0,.18)}
.tpl-menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.tpl-it{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:var(--r-s);background:none;color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer}
.tpl-it:hover,.tpl-it:focus-visible{background:var(--surface-2)}.tpl-it.new{color:var(--iris)}

/* Lote 20: botão discreto "Modelos" sob as caixas de texto longas */
.tpl-bar{position:relative;display:flex;justify-content:flex-end;margin:-2px 0 6px}
.tpl-btn{font:inherit;font-size:.78rem;min-height:28px;padding:0 8px;border:0;border-radius:var(--r-s);background:none;color:var(--muted);cursor:pointer}
.tpl-btn:hover,.tpl-btn[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}
.tpl-menu{position:absolute;right:0;top:100%;z-index:30;min-width:220px;max-width:min(320px,90vw);max-height:260px;overflow:auto;margin:2px 0 0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);box-shadow:0 6px 20px rgba(0,0,0,.18)}
.tpl-menu[hidden]{display:none}
.tpl-it{display:block;width:100%;text-align:left;font:inherit;font-size:.88rem;padding:8px 10px;border:0;border-radius:var(--r-s);background:none;color:var(--ink);cursor:pointer}
.tpl-it:hover,.tpl-it:focus-visible{background:var(--surface-2)}
.tpl-it.new{color:var(--iris);border-top:1px solid var(--line);margin-top:2px}

/* Lote 20.1: botão discreto "Modelos" nas caixas de texto longas */
.tpl-bar{position:relative;display:flex;justify-content:flex-end;margin:0 0 2px}
.tpl-btn{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:2px 8px;border:1px solid transparent;border-radius:var(--r-s);background:none;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer}
.tpl-btn:hover,.tpl-btn[aria-expanded=true]{color:var(--ink);background:var(--surface-2);border-color:var(--line)}
.tpl-menu{position:absolute;top:100%;right:0;z-index:30;min-width:220px;max-width:min(320px,90vw);max-height:260px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);box-shadow:0 6px 24px rgba(0,0,0,.18)}
.tpl-menu button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:var(--r-s);background:none;color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer}
.tpl-menu button:hover,.tpl-menu button:focus-visible{background:var(--surface-2)}
.tpl-menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}.tpl-none{margin:6px 10px;color:var(--muted);font-size:.85rem}.tpl-new{color:var(--iris)!important}

/* Lote 22 — título do arquivo anexado e ações da linha em Anexos */
.att-name .att-title{width:100%;min-width:0;padding:5px 8px;font:inherit;font-size:.9rem;font-weight:600;border:1px solid var(--line);border-radius:var(--r-sm,6px);background:var(--surface);color:var(--ink)}
.att-name .att-title.bad{border-color:var(--err);outline:1px solid var(--err)}
.an-acts{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}

/* Lote 23 — Modelos do Celsor na janela de modelos */
.mp-spec{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.mp-spec select{min-height:38px;max-width:100%}
.mp-libcta{list-style:none;padding:10px 0 2px;text-align:center}
.mp-libcta .btn{width:100%}

/* ================= Lote 26 — "Aurora": visual mais amigável (cor com moderação, cartões suaves, menos linhas duras) ================= */
body{background:radial-gradient(1200px 420px at 100% -120px,color-mix(in srgb,var(--brand) 7%,transparent),transparent 70%),radial-gradient(900px 380px at -10% -160px,color-mix(in srgb,var(--violet) 6%,transparent),transparent 70%),var(--bg);background-attachment:fixed}
/* botão principal: cor da marca (antes: preto) */
.btn{background:var(--brand);border-color:var(--brand);color:var(--on-brand);border-radius:10px;transition:background .15s,border-color .15s,box-shadow .15s}
.btn:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--on-brand);box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 25%,transparent)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="light"])) .btn,:where(:root:not([data-theme="light"])) .btn:hover{color:var(--on-brand)}}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--brand-wash);border-color:var(--brand-line);color:var(--ink);box-shadow:none}
.btn.danger{background:var(--err);border-color:var(--err);color:var(--on-err)}
/* cartões e painéis: sem linha dura, sombra leve, cantos maiores */
.panel,.blk-card,.stats>div{border-color:var(--line-soft);box-shadow:var(--shadow-card)}
.panel{border-radius:16px}
.blk-card{border-radius:14px;position:relative;overflow:visible}
.blk-card:has(>.blk-body:not([hidden]))::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}
.blk-card .chev{color:var(--brand)}
.blk-card.filled>header .blk-name h2::after{background:var(--brand)}
.stats>div:nth-child(4n+1) b{color:var(--brand)}.stats>div:nth-child(4n+2) b{color:var(--violet)}.stats>div:nth-child(4n+3) b{color:var(--sky)}
/* campos: rótulo mais leve, borda suave, foco na cor da marca */
.fl,label{color:var(--ink-2)}
.fld .fl{font-weight:600;font-size:.82rem;letter-spacing:.01em}
input,select,textarea{border-color:var(--line-field);border-radius:10px}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
/* menu lateral: item ativo com cor */
.nav a[aria-current=page],.rail-foot a[aria-current=page],.nav-more[data-on=true],.tabs a[aria-current=page]{background:var(--brand-wash);color:var(--brand)}
.nav a[aria-current=page]::before,.rail-foot a[aria-current=page]::before,.nav-more[data-on=true]::before{background:var(--brand)}
.nav a[aria-current=page] svg{color:var(--brand)}
/* etiquetas e chips com um pouco de cor */
.tag{background:var(--surface-2);border-color:transparent}
.tag.ok{background:var(--ok-wash);color:var(--ok)}.tag.warn{background:var(--warn-wash);color:var(--warn)}.tag.err{background:var(--err-wash);color:var(--err)}
.tag.ai,.tag.video,.tag.cat-exam,.tag.memed{background:var(--violet-wash);color:var(--violet);border-color:transparent}
.chips-row button{transition:background .15s,border-color .15s}
.chips-row button:hover{background:var(--brand-wash);border-color:var(--brand-line)}
/* "Modelos" das caixas de texto: pílula discreta na cor da marca */
.tpl-btn{color:var(--brand);background:var(--brand-wash);border-radius:99px;padding:2px 10px;font-weight:600}
.tpl-btn:hover,.tpl-btn[aria-expanded=true]{color:var(--brand);background:color-mix(in srgb,var(--brand) 16%,var(--surface));border-color:transparent}
.tpl-new{color:var(--brand)!important;font-weight:600}
.tpl-menu{border-radius:12px;box-shadow:var(--shadow-pop)}
/* Aparência (home) */
.theme-seg{display:inline-flex;gap:2px;padding:3px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line-soft);margin-top:10px}
.theme-seg button{font:inherit;font-size:.85rem;font-weight:600;min-height:34px;padding:0 14px;border:0;border-radius:99px;background:none;color:var(--muted);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.theme-seg button[aria-pressed=true]{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-card)}
.home-more>summary{cursor:pointer;font-weight:600;color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:8px}
.home-more>summary::-webkit-details-marker{display:none}
.home-more>summary::before{content:"▸";color:var(--brand);transition:transform .15s}.home-more[open]>summary::before{transform:rotate(90deg)}
.home-more[open]>summary{margin-bottom:12px}
@media (prefers-reduced-motion:reduce){.btn,.chips-row button,.home-more>summary::before{transition:none}}

/* ================= Lote 27 — campos curtos compactos, seletor de AV e resultado da AV ================= */
@media (min-width:860px){
  .blk-card.compact .blk-body{display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:28px;row-gap:12px}
  .blk-card.compact .blk-body>*{flex:0 0 auto;max-width:100%}
  .blk-card.compact .blk-body>.fld.calc,.blk-card.compact .blk-body>.hint,.blk-card.compact .blk-body>p{flex-basis:100%}
  .blk-card.compact .eyes{grid-template-columns:repeat(2,auto);gap:14px}
  .blk-card.compact .eye{grid-template-columns:auto auto;align-items:center;gap:6px}
  .blk-card.compact .numwrap input{width:7.6rem}
  .blk-card.compact .eye>input{width:9.5rem}
  .blk-card.compact input[type=time],.blk-card.compact input[type=date]{width:9.5rem}
  .blk-card.compact .fld>label>input:not([type]){width:12rem}
  .blk-card.compact select{width:auto;min-width:11rem;max-width:20rem}
}
.vapk{position:fixed;z-index:80;width:min(360px,calc(100vw - 16px));padding:12px;border-radius:14px;background:var(--surface);border:1px solid var(--line-soft);box-shadow:var(--shadow-pop);display:grid;gap:10px}
.vapk button{font:inherit}
.vapk-tabs{display:flex;gap:2px;padding:3px;border-radius:99px;background:var(--surface-2)}
.vapk-tabs button{flex:1;min-height:30px;border:0;border-radius:99px;background:none;color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer}
.vapk-tabs button[aria-selected=true]{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-card)}
.vapk-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.vapk-grid button,.vapk-near button{min-height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:.86rem;font-weight:600;cursor:pointer;padding:0 4px}
.vapk-grid button:hover,.vapk-near button:hover{border-color:var(--brand-line);background:var(--brand-wash)}
.vapk-grid button[aria-pressed=true],.vapk-near button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.vapk-near{display:grid;grid-template-columns:auto repeat(6,1fr);gap:6px;align-items:center;padding-top:8px;border-top:1px solid var(--line-soft)}
.vapk-near>span{font-size:.78rem;font-weight:700;color:var(--muted);padding-right:4px}
.vapk-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.vapk-foot>span{display:flex;gap:6px;align-items:center}
.fld.calc[data-calc="va_eff"] .calcout{display:grid;gap:4px;font-size:.9rem}
.va-eye{padding:6px 10px;border-radius:10px;background:var(--surface-2)}
.va-eye.va-normal{background:var(--ok-wash);color:var(--ok)}.va-eye.va-mild{background:var(--info-wash);color:var(--info)}
.va-eye.va-low,.va-eye.va-legal_blind{background:var(--warn-wash);color:var(--warn)}.va-eye.va-blind{background:var(--err-wash);color:var(--err)}
.va-concl{padding:2px 2px 0}
.tpl-menu .tpl-q{padding-left:18px}
/* ---- Lote 27: home "UAU" — saudação, jornada e IA ---- */
.home-head h1{font-size:clamp(1.6rem,2.6vw,2.15rem);letter-spacing:-.02em}
.home-date{margin:0;font-size:.82rem;font-weight:600;color:var(--brand)}.home-date::first-letter{text-transform:uppercase}
.ai-hero{position:relative;overflow:hidden;padding:30px 30px 22px;border-radius:22px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line-soft));
  background:radial-gradient(90% 120% at 0% 0%,color-mix(in srgb,var(--brand) 14%,transparent),transparent 60%),radial-gradient(80% 120% at 100% 0%,color-mix(in srgb,var(--violet) 14%,transparent),transparent 55%),var(--surface);box-shadow:var(--shadow-card)}
.ai-hero::after{content:"";position:absolute;inset:auto -10% -60% auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--sky) 12%,transparent),transparent);pointer-events:none}
.ai-orb{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;color:var(--on-brand);font-size:1.25rem;
  background:linear-gradient(135deg,var(--brand),var(--violet));box-shadow:0 6px 20px color-mix(in srgb,var(--violet) 35%,transparent);animation:aiorb 6s ease-in-out infinite}
@keyframes aiorb{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.ai-hero h2{font-size:clamp(1.3rem,2.2vw,1.65rem);margin:0 0 4px;display:block}
.ai-sub{margin:0 0 16px;max-width:60ch}
.ai-hero form{position:relative;z-index:1;padding:8px 8px 8px 18px;border-radius:16px;min-height:58px;box-shadow:0 4px 18px color-mix(in srgb,var(--brand) 10%,transparent)}
.ai-hero form input{font-size:1.02rem;border:0;box-shadow:none;background:transparent;padding:8px 0}
.ai-hero form input:focus{box-shadow:none}
.ai-hero .ai-send{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--violet));color:var(--on-brand);border:0;font-size:1.1rem;cursor:pointer}
.ai-sugs{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.ai-sug{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:12px 14px;border-radius:14px;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}
.ai-sug:hover{transform:translateY(-1px);border-color:var(--brand-line);box-shadow:var(--shadow-card)}
.ai-sug b{display:block;font-size:.9rem;font-weight:600}.ai-sug small{display:block;color:var(--muted);font-size:.78rem;line-height:1.35;margin-top:2px}
.ai-sug-ic{font-size:1.15rem;line-height:1.2}
.ai-foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;font-size:.8rem}
.ai-theme{font:inherit;font-size:.82rem;font-weight:600;padding:6px 12px;border-radius:99px;border:1px solid var(--line-soft);background:var(--surface);color:var(--ink-2);cursor:pointer}
.ai-theme:hover{border-color:var(--brand-line);color:var(--brand)}
@media (max-width:860px){.ai-sugs{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-hero{padding:22px 18px 18px}}
@media (max-width:480px){.ai-sugs{grid-template-columns:1fr}.ai-foot>span{display:none}}
.journey{padding:26px;border-radius:22px;background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 9%,var(--surface)),var(--surface) 55%);border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line-soft));box-shadow:var(--shadow-card)}
.jr-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}
.jr-kicker{margin:0 0 4px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}
.journey h2{font-size:1.35rem;margin:0 0 4px}
.jr-ring{flex:0 0 auto;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand) calc(var(--p) * 1%),var(--surface-2) 0)}
.jr-ring b{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--surface);font-size:.95rem}
.jr-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.jr-step{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid transparent}
.jr-step.current{background:var(--surface);border-color:var(--brand-line);box-shadow:var(--shadow-card)}
.jr-step.done .jr-txt b{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 50%,transparent)}
.jr-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--surface-2);color:var(--ink-2)}
.jr-step.current .jr-dot{background:var(--brand);color:var(--on-brand)}.jr-step.done .jr-dot{background:var(--ok-wash);color:var(--ok)}
.jr-txt{display:grid;gap:2px}.jr-txt .muted{font-size:.85rem}
.jr-act{display:flex;gap:8px;align-items:center}
.jr-step:not(.current) .jr-act .btn{opacity:.85}
.jr-foot{margin:10px 0 0;text-align:right}
@media (max-width:640px){.jr-step{grid-template-columns:28px 1fr}.jr-act{grid-column:2}.jr-ring{width:58px;height:58px}.jr-ring b{width:46px;height:46px}}
@media (prefers-reduced-motion:reduce){.ai-orb{animation:none}.ai-sug{transition:none}}
.ai-hero .ai-sub{background:none;border:0;padding:0;margin:0 0 16px;font-size:.95rem}
.home-head~.grid #sync-line,.home-head~.grid #dev-line{font-size:1.05rem;font-weight:600;margin-bottom:4px}
@media (max-width:640px){.jr-step:not(.current) .jr-txt .muted{display:none}}

/* Lote 28 — busca de CBO pelo nome da ocupação */
.cbo-combo { position: relative; }
.cbo-ul { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px; list-style: none; background: var(--surface, var(--bg)); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-pop); max-height: 280px; overflow: auto; }
.cbo-ul li { padding: 8px 10px; border-radius: 8px; cursor: pointer; display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.cbo-ul li small { color: var(--muted); font-variant-numeric: tabular-nums; }
.cbo-ul li[aria-selected="true"], .cbo-ul li:hover { background: var(--brand-wash, var(--line)); }
.cbo-ul li.none { cursor: default; color: var(--muted); }

/* Lote 28 — sugestões da IA enxutas (pílulas só com ícone + nome) e botão "+" da home */
.ai-sugs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ai-sug{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font:500 .88rem var(--sans);white-space:nowrap}
.ai-sug-ic{display:inline-flex;color:var(--brand);font-size:inherit;line-height:1}.ai-sug-ic svg{width:18px;height:18px}
.ai-sug:hover .ai-sug-ic{color:var(--ink)}
@media (max-width:860px){.ai-sugs{display:flex}.ai-sug{flex:1 1 calc(50% - 8px);justify-content:flex-start;white-space:normal}}
@media (max-width:480px){.ai-sugs{display:flex}}
.home-head{position:relative}
.quick-wrap{position:absolute;right:0;top:0}
.quick-plus{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:9px 16px 9px 12px;background:var(--brand);color:var(--on-ink);font:600 .92rem var(--sans);cursor:pointer;box-shadow:var(--shadow-card)}
.quick-plus:hover{filter:brightness(1.08)}.quick-plus svg{width:18px;height:18px}
.quick-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:230px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop)}
.quick-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:none;color:var(--ink);font:500 .92rem var(--sans);text-align:left;cursor:pointer}
.quick-menu button svg{width:19px;height:19px;color:var(--brand)}
.quick-menu button:hover,.quick-menu button:focus-visible{background:var(--brand-wash)}
.qp-ul{list-style:none;margin:8px 0 0;padding:0;max-height:300px;overflow:auto}
.qp-ul li{padding:10px 12px;border-radius:10px;cursor:pointer}
.qp-ul li[aria-selected="true"],.qp-ul li:hover{background:var(--brand-wash)}.qp-ul li.none{cursor:default;color:var(--muted)}
.ai-theme,.theme-seg button{display:inline-flex;align-items:center;gap:6px}.ai-theme svg,.theme-seg svg{width:16px;height:16px}
.qp-ul li{display:flex;justify-content:space-between;gap:10px;align-items:baseline}

/* Lote 28b — widget da IA na home mais limpo (estilo conversa: título, caixa grande, atalhos numa linha) e botão de ditar */
.ai-hero{padding:24px 24px 16px}
.ai-hero h2{margin:0 0 14px}
.ai-hero form{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 18px;min-height:56px;border-radius:999px}
.ai-hero form input{flex:1;min-width:0;font-size:1.05rem}
.ai-hero form input::placeholder{color:var(--muted);opacity:1}
.ai-hero .ai-send{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;padding:0}
.ai-hero .ai-send svg{width:20px;height:20px}
.ai-mic{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border:0;border-radius:50%;background:none;color:var(--ink-2);cursor:pointer}
.ai-mic svg{width:20px;height:20px}
.ai-mic:hover{background:var(--brand-wash);color:var(--brand)}
.ai-mic.listening{background:var(--brand);color:var(--on-ink);animation:aimic 1.2s ease-in-out infinite}
@keyframes aimic{50%{box-shadow:0 0 0 6px var(--brand-wash)}}
@media (prefers-reduced-motion:reduce){.ai-mic.listening{animation:none}}
.ai-input .ai-mic{width:34px;height:34px}
.ai-hero .ai-sugs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ai-hero .ai-foot{margin-top:10px}
@media (max-width:860px){
  .ai-hero{padding:18px 14px 12px}
  .ai-hero .ai-sugs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-14px;padding-inline:14px}
  .ai-hero .ai-sugs::-webkit-scrollbar{display:none}
  .ai-hero .ai-sug{flex:none;white-space:nowrap}
}

/* Lote 30 — histórico do prontuário: um cartão separado por atendimento, cabeçalho por mês, clique no cartão abre o registro ali mesmo */
ul.timeline.tl-clean{display:grid;gap:10px;background:transparent;border:0;border-radius:0;overflow:visible}
.tl-clean .tl-month{margin:14px 2px 0;color:var(--muted);font:700 .72rem var(--sans);letter-spacing:.08em;text-transform:uppercase}
.tl-clean .tl-month:first-child{margin-top:2px}
ul.timeline.tl-clean li.tl-day,ul.timeline.tl-clean li.tl-day.picking{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card);overflow:hidden}
ul.timeline.tl-clean li.tl-day.open{border-color:color-mix(in srgb,var(--brand) 40%,var(--line))}
ul.timeline.tl-clean li.tl-day.is-draft{box-shadow:inset 3px 0 0 var(--warn),var(--shadow-card)}
.tl-clean .tl-head{display:flex;align-items:flex-start;gap:8px;padding:0 14px 0 0}
.tl-clean .tl-head:has(button.tl:hover){background:var(--surface-2)}
.tl-clean .tl-head>.tl{flex:1;min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr) 22px;gap:14px;align-items:start;padding:14px 4px 14px 16px;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--ink);font:inherit;text-align:left}
.tl-clean .tl-head>button.tl{cursor:pointer}
.tl-clean .tl-head>button.tl:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.tl-clean .tl-pick{padding:16px 0 0 14px}
.tl-clean .tl-date{display:grid;justify-items:center;line-height:1.1;padding-top:1px;color:var(--ink)}
.tl-clean .tl-date b{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}
.tl-clean .tl-date .muted{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}
.tl-clean li.tl-day.open .tl-date b{color:var(--brand)}
.tl-clean .tl-main{display:grid;gap:3px;min-width:0}
.tl-clean .tl-main strong{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-clean .tl-main strong.tl-none{font-weight:400;font-style:italic;color:var(--muted)}
.tl-clean .tl-exl{display:flex;align-items:baseline;gap:6px;min-width:0}
.tl-clean .tl-ex,.tl-clean .tl-plan{min-width:0;color:var(--ink-2);font-size:.87rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-clean .tl-more{flex:none;padding:0 7px;border-radius:999px;background:var(--brand-wash);color:var(--brand);font-size:.76rem;font-weight:600;white-space:nowrap}
.tl-clean .tl-meta{font-size:.8rem;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tl-clean .chips-inline{gap:4px;margin:1px 0}
.tl-clean .chips-inline .chip{font-size:.76rem;padding:1px 9px}
.tl-clean .tl-chev{align-self:start;padding-top:2px;display:grid;place-items:center;color:var(--muted);transition:transform .15s}
.tl-clean .tl-chev svg{width:18px;height:18px}
.tl-clean li.tl-day.open .tl-chev{transform:rotate(180deg);color:var(--brand)}
.tl-clean .tl-head>.tl-tools{flex:none;display:flex;align-items:center;gap:4px;padding:12px 0 0;border:0;justify-content:flex-end}
.tl-clean .tl-tools .tag.warn{font-size:.72rem;padding:2px 9px;white-space:nowrap;margin-right:4px}
.tl-clean .tl-ic{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;margin:0;padding:0}
.tl-clean .tl-ic:hover,.tl-clean .tl-ic[aria-expanded="true"]{background:var(--surface-2);color:var(--brand)}
.tl-clean .tl-ic svg{width:17px;height:17px}
.tl-clean .tl-open{margin-left:4px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);font:500 .82rem var(--sans);text-decoration:none;white-space:nowrap}
.tl-clean .tl-open:hover{border-color:var(--brand);color:var(--brand)}
.tl-clean li.tl-day.is-draft .tl-open{border-color:var(--brand);background:var(--brand);color:var(--on-ink)}
.tl-clean .tl-tagrow{padding:0 16px 12px 74px}
ul.timeline.tl-clean li.tl-day>.tl-full,ul.timeline.tl-clean li.tl-day.open>.tl-full{margin:0;padding:6px 16px 10px 74px;border:0;border-top:1px solid var(--line-soft);border-radius:0;background:var(--surface)}
ul.timeline.tl-clean li.tl-day.open>.tl-full::before{display:none}
.tl-clean .tl-x-end{display:block;margin:6px 0 0 auto;border:0;background:transparent;color:var(--muted);font:500 .8rem var(--sans);padding:3px 8px;border-radius:8px;cursor:pointer}
.tl-clean .tl-x-end:hover{background:var(--surface-2);color:var(--brand)}
ul.timeline.tl-clean li.tl-day>.tl-docs{margin:0;padding:10px 16px 12px 74px;border:0;border-top:1px solid var(--line-soft);border-radius:0;background:var(--surface-2);display:grid;gap:4px}
.tl-clean .tl-dd{display:none}
.tl-clean .tl-dg{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:2px 10px;align-items:baseline;font-size:.86rem}
.tl-clean .tl-dg header{display:contents}
.tl-clean .tl-dg header b{grid-column:1;grid-row:1;font:600 .7rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tl-clean .tl-dg ul{grid-column:2;grid-row:1;margin:0}
.tl-clean .tl-dg header .tl-dall{grid-column:3;grid-row:1;color:var(--muted);font-size:.8rem;text-decoration:none;white-space:nowrap}
.tl-clean .tl-dg header .tl-dall:hover{color:var(--brand)}
.tl-bar .hint{font-size:.78rem}
#ch-add:not(:empty){margin-top:18px}   /* Lote 30: respiro entre o registro e o Adendo */
@media (max-width:620px){
  .tl-clean .tl-head{flex-wrap:wrap;padding:0}
  .tl-clean .tl-head>.tl{flex-basis:100%;grid-template-columns:38px minmax(0,1fr) 20px;gap:10px;padding:12px 12px 4px 12px}
  .tl-clean .tl-head>.tl-tools{flex-basis:100%;justify-content:flex-start;padding:0 12px 10px 60px}
  .tl-clean .tl-open{margin-left:auto}
  .tl-clean .tl-tagrow,ul.timeline.tl-clean li.tl-day>.tl-docs,ul.timeline.tl-clean li.tl-day>.tl-full,ul.timeline.tl-clean li.tl-day.open>.tl-full{padding-left:14px;padding-right:14px}
  .tl-clean .tl-dg{grid-template-columns:minmax(0,1fr) auto}
  .tl-clean .tl-dg header b{grid-column:1 / -1}
  .tl-clean .tl-dg ul{grid-column:1;grid-row:2}
  .tl-clean .tl-dg header .tl-dall{grid-column:2;grid-row:2}
  .tl-bar .hint{display:none}
}

/* Lote 32 — IA: aviso fixo de responsabilidade e ícones SVG (sem emoji) nos cartões de ação */
.ai-disc{margin:6px 2px 0;font-size:.72rem;line-height:1.35;color:var(--muted)}
.ai-hero .ai-disc{position:relative;z-index:1;margin-top:10px}
.ai-ic svg{width:17px;height:17px}
.ai-tag svg,.ai-tip svg,.ai-fex b svg{width:13px;height:13px;vertical-align:-2px}

/* Lote 33 — conferência da receita com a idade do paciente escolhido */
.ai-msg.warn{border-left:3px solid var(--warn);padding-left:10px}
.ai-alert{display:flex;gap:6px;align-items:flex-start;margin:6px 0;padding:7px 9px;border-radius:8px;background:color-mix(in srgb,var(--warn) 12%,var(--surface));color:var(--ink);font-size:.84rem;line-height:1.35}
.ai-alert svg{flex:none;width:16px;height:16px;margin-top:1px;color:var(--warn)}

/* Lote 36 — painel da IA com cara de app de IA: ícones SVG, rodapé enxuto, composer em pílula; no celular, cabeçalho numa linha só.
   Escopo .ai-panel: os estilos do widget da Home (.ai-foot/.ai-sugs/.ai-sug do Lote 27) não vazam mais para o painel. */
.ai-head .ai-title{white-space:nowrap;font-size:1rem;letter-spacing:-.01em}
.ai-mark svg{width:16px;height:16px}.ai-spark svg{width:18px;height:18px;display:block}
.ai-ib{display:inline-grid;place-items:center}.ai-ib svg{width:18px;height:18px}
.ai-send{display:inline-grid;place-items:center}.ai-send svg{width:18px;height:18px}
.ai-panel .ai-form{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
.ai-panel .ai-disc{margin:6px 4px 0;font-size:.68rem;line-height:1.3;color:var(--muted);text-align:center}
.ai-panel .ai-foot{display:none}                                   /* atalhos de teclado: viraram dica (title) da caixa de texto */
.ai-panel .ai-form p{margin-bottom:0}
.ai-panel .ai-sugs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.ai-panel .ai-sug{display:block;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font:500 .86rem var(--sans);transform:none}
.ai-panel .ai-sug:hover{transform:none;box-shadow:none}
@media (max-width:760px){
  .ai-panel,.ai-panel.wide{top:var(--ai-vt,0);bottom:auto;height:var(--ai-vh,100dvh)}       /* acompanha o teclado virtual (ver fitViewport em ai-chat.js) */
  .ai-head{gap:6px;padding:10px 6px 10px 12px;min-height:56px}
  .ai-head .ai-title{font-size:.98rem}
  .ai-mark{width:26px;height:26px;border-radius:8px}
  .ai-mode{margin-left:4px}.ai-mode button{padding:4px 9px;font-size:.74rem}
  .ai-head .ai-ib{width:36px;height:36px;border-radius:10px}
  .ai-head .ai-dock-b,.ai-head .ai-wide-b{display:none}
  .ai-sub{padding:6px 14px;font-size:.74rem;gap:10px}
  .ai-sub .ai-ctx{max-width:48%}.ai-sub .ai-model{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .ai-log{padding:14px 14px 10px;gap:16px}
  .ai-panel .ai-sugs{grid-template-columns:1fr}
  .ai-panel .ai-form{padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:0;background:linear-gradient(to top,var(--surface) 70%,color-mix(in srgb,var(--surface) 0%,transparent))}
  .ai-panel .ai-input{border-radius:26px;padding:5px 5px 5px 16px;background:var(--surface-2);border-color:var(--line-soft);align-items:center}
  .ai-panel .ai-input:focus-within{background:var(--surface)}
  .ai-panel .ai-input textarea{font-size:1rem;padding:8px 0}                  /* 16px: o iPhone não dá zoom ao tocar */
  .ai-panel .ai-mic{width:38px;height:38px;border-radius:50%}
  .ai-panel .ai-send{width:38px;height:38px;border-radius:50%}
  .ai-panel .ai-disc{margin-top:5px;font-size:.66rem}
}
@media (max-width:380px){.ai-mode button{padding:4px 7px;font-size:.7rem}.ai-head .ai-title{font-size:.92rem}}
