:root{
  --bg:#EDF0EC;--surface:#FFFFFF;--surface-2:#F5F7F4;--ink:#17211C;--muted:#56645E;--line:#D3DAD4;
  --brand:#1F4A3A;--brand-ink:#FFFFFF;--brand-soft:#DCE8E1;--brass:#8E6C25;--brass-soft:#F3EAD6;
  --ok:#2A7549;--ok-soft:#DDEFE3;--warn:#9A620A;--warn-soft:#F7ECD4;--bad:#A3352F;--bad-soft:#F6DEDB;
  --info:#2C5C8F;--info-soft:#DEE8F3;
  --a-prof:#7B2D8E;--a-pess:#D9661F;--a-fin:#1F6B3A;--a-int:#2C63B5;--a-soc:#C98A0E;--a-sau:#C9372C;--a-esp:#3A9FCF;
  --radius-s:6px;--radius-m:10px;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#111714;--surface:#19211D;--surface-2:#1F2924;--ink:#E4EBE7;--muted:#9BAAA3;--line:#2F3B35;
  --brand:#7DBFA0;--brand-ink:#0E1A14;--brand-soft:#223A2F;--brass:#D5B26A;--brass-soft:#3A3120;
  --ok:#79C69A;--ok-soft:#1E3A2A;--warn:#E3B45C;--warn-soft:#3B2F17;--bad:#EC8F87;--bad-soft:#452321;--info:#8DB8E6;--info-soft:#1D2D40;}}
:root[data-theme="dark"]{
  --bg:#111714;--surface:#19211D;--surface-2:#1F2924;--ink:#E4EBE7;--muted:#9BAAA3;--line:#2F3B35;
  --brand:#7DBFA0;--brand-ink:#0E1A14;--brand-soft:#223A2F;--brass:#D5B26A;--brass-soft:#3A3120;
  --ok:#79C69A;--ok-soft:#1E3A2A;--warn:#E3B45C;--warn-soft:#3B2F17;--bad:#EC8F87;--bad-soft:#452321;--info:#8DB8E6;--info-soft:#1D2D40;}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
h1{font-size:1.6rem;line-height:1.2;margin:0 0 .25rem;font-weight:700;letter-spacing:-.015em}
h2{font-size:1.15rem;margin:0 0 .75rem;font-weight:650;letter-spacing:-.01em}
h3{font-size:1rem;margin:0 0 .5rem;font-weight:600}
p{margin:0 0 .75rem}
.muted{color:var(--muted)}
.small{font-size:.85rem}
a{color:var(--brand)}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- casca ---------- */
.demo-bar{background:var(--brass-soft);color:var(--ink);font-size:.82rem;padding:.35rem 1rem;border-bottom:1px solid var(--line)}
.shell{display:grid;grid-template-columns:232px 1fr;min-height:calc(100vh - 30px)}
.side{background:var(--brand);color:var(--brand-ink);padding:1.1rem .75rem;display:flex;flex-direction:column;gap:.2rem;position:sticky;top:0;height:100vh;overflow:auto}
:root[data-theme="dark"] .side{background:#15261E}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .side{background:#15261E}}
.brand{display:flex;gap:.6rem;align-items:center;padding:.2rem .5rem 1.1rem}
.brand svg{flex:none}
.brand b{display:block;font-size:.98rem;line-height:1.15}
.brand span{font-size:.75rem;opacity:.8}
.nav a{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;border-radius:var(--radius-s);color:inherit;text-decoration:none;font-weight:500;opacity:.88}
.nav a:hover{background:rgba(255,255,255,.08);opacity:1}
.nav a[aria-current="page"]{background:rgba(255,255,255,.14);opacity:1;box-shadow:inset 3px 0 0 var(--brass)}
:root[data-theme="dark"] .nav a,:root[data-theme="dark"] .brand{color:#E4EBE7}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav a,:root:not([data-theme="light"]) .brand{color:#E4EBE7}}
.nav svg{width:18px;height:18px;flex:none}
.side .who{margin-top:auto;padding:.75rem .5rem 0;border-top:1px solid rgba(255,255,255,.18);font-size:.82rem}
.side .who b{display:block;font-size:.9rem}
.main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;padding:.75rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top .grow{flex:1}
.content{padding:1.5rem;max-width:1320px;width:100%}
.page-head{display:flex;gap:1rem;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:1.25rem}
.page-head p{margin:0;max-width:70ch}

/* ---------- componentes ---------- */
.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);background:var(--surface);padding:.5rem .9rem;border-radius:var(--radius-s);cursor:pointer;font-weight:550;min-height:38px}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--ink)}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.ghost{border-color:transparent;background:transparent}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.sm{padding:.25rem .6rem;min-height:30px;font-size:.85rem}
.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem}
.field label,.lbl{font-size:.82rem;font-weight:600;color:var(--muted)}
input[type=text],input[type=password],input[type=number],input[type=date],input[type=month],select,textarea{
  border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-s);padding:.5rem .6rem;min-height:38px;width:100%}
textarea{min-height:84px;resize:vertical}
input[readonly],textarea[readonly],select[disabled],input[disabled],textarea[disabled]{background:var(--surface-2);color:var(--muted)}
.row{display:flex;gap:1rem;flex-wrap:wrap}
.row>*{flex:1 1 180px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:1.1rem 1.2rem;margin-bottom:1rem}
.panel.flat{background:var(--surface-2)}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:650;padding:.12rem .5rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.b-ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.b-warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.b-bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.b-info{background:var(--info-soft);color:var(--info);border-color:transparent}
.b-brand{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.b-pend{background:var(--brass-soft);color:var(--brass);border-color:transparent}
.note{border-left:3px solid var(--info);background:var(--info-soft);padding:.6rem .8rem;border-radius:0 var(--radius-s) var(--radius-s) 0;margin:.6rem 0;font-size:.9rem}
.note.warn{border-color:var(--warn);background:var(--warn-soft)}
.note.bad{border-color:var(--bad);background:var(--bad-soft)}
.note.lock{border-color:var(--brand);background:var(--brand-soft)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.78rem;color:var(--muted);font-weight:650;background:var(--surface-2);position:sticky;top:0}
tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right}
tbody tr.click{cursor:pointer}
tbody tr.click:hover{background:var(--surface-2)}
.avatar{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;font-size:.78rem;font-weight:700;color:#fff;flex:none;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.person{display:flex;gap:.6rem;align-items:center}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}
.filters .field{margin:0;min-width:150px}
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem;overflow-x:auto}
.tabs button{border:0;background:none;padding:.6rem .9rem;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--brand)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1rem}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:.9rem 1rem}
.kpi .v{font-size:1.6rem;font-weight:700;letter-spacing:-.02em}
.kpi .l{font-size:.82rem;color:var(--muted)}
.bar{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden;border:1px solid var(--line)}
.bar i{display:block;height:100%;background:var(--brand)}
.hbar{display:grid;grid-template-columns:120px 1fr 60px;gap:.6rem;align-items:center;margin:.35rem 0;font-size:.88rem}
.empty{padding:2rem;text-align:center;color:var(--muted)}
.drawer-bg{position:fixed;inset:0;background:rgba(10,20,15,.45);z-index:20;display:flex;justify-content:flex-end}
.drawer{background:var(--bg);width:min(760px,100%);height:100%;overflow:auto;padding:1.25rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom,0px));padding-top:calc(1.25rem + env(safe-area-inset-top,0px))}
.modal-bg{position:fixed;inset:0;background:rgba(10,20,15,.45);z-index:30;display:grid;place-items:center;padding:1rem}
.modal{background:var(--surface);border-radius:var(--radius-m);padding:1.25rem 1.4rem;width:min(520px,100%);max-height:90vh;overflow:auto}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(1rem + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:.6rem 1rem;border-radius:var(--radius-s);z-index:40;font-weight:550;max-width:92vw}

/* ---------- avaliação: formulário + memória de cálculo ---------- */
.eval{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem;align-items:start}
.req{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);margin-bottom:.75rem}
.req summary{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.75rem 1rem;cursor:pointer;font-weight:600;list-style:none}
.req summary::-webkit-details-marker{display:none}
.req .body{padding:0 1rem .8rem}
.chk{display:flex;gap:.6rem;align-items:flex-start;padding:.4rem 0;border-top:1px dashed var(--line)}
.chk input{margin-top:.25rem;width:18px;height:18px;accent-color:var(--brand);flex:none}
.score{font-size:1.25rem;font-weight:700;min-width:2.2ch;text-align:right}
.pick{display:flex;gap:.4rem;flex-wrap:wrap}
.pick button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);font-weight:700;cursor:pointer}
.pick button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.pick button[disabled]{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.pick button[disabled][aria-pressed="true"]{opacity:1;text-decoration:none}
/* o recibo: elemento de assinatura visual do sistema */
.ledger{position:sticky;top:76px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:1.1rem 1.1rem 1rem;
  background-image:linear-gradient(var(--surface),var(--surface)),repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 12px);
  background-size:100% calc(100% - 3px),100% 3px;background-repeat:no-repeat;background-position:top,bottom}
.ledger h3{display:flex;justify-content:space-between;align-items:baseline}
.ln{display:flex;align-items:baseline;gap:.4rem;font-size:.88rem;padding:.18rem 0}
.ln span:first-child{white-space:nowrap}
.ln .dots{flex:1;border-bottom:1px dotted var(--muted);transform:translateY(-4px);min-width:12px;opacity:.6}
.ln b{font-variant-numeric:tabular-nums;white-space:nowrap}
.ln.sub{padding-left:.8rem;color:var(--muted);font-size:.82rem}
.ledger hr{border:0;border-top:1px solid var(--line);margin:.6rem 0}
.total{display:flex;justify-content:space-between;align-items:baseline;margin-top:.4rem}
.total b{font-size:1.9rem;color:var(--brass);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.verdict{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;padding:.5rem .7rem;border-radius:var(--radius-s);font-weight:700}
.verdict.sim{background:var(--ok-soft);color:var(--ok)} .verdict.nao{background:var(--bad-soft);color:var(--bad)}
.hash{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;word-break:break-all;color:var(--muted)}
.flow{display:flex;gap:0;flex-wrap:wrap;margin:.25rem 0 1rem;font-size:.78rem}
.flow span{padding:.3rem .7rem .3rem 1rem;background:var(--surface-2);border:1px solid var(--line);margin-right:-1px;color:var(--muted);font-weight:600;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%,8px 50%)}
.flow span.done{background:var(--brand-soft);color:var(--brand)}
.flow span.now{background:var(--brand);color:var(--brand-ink)}

/* ---------- campanha ---------- */
.steps{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.steps button{display:flex;gap:.5rem;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.35rem .85rem .35rem .4rem;cursor:pointer;font-weight:600}
.steps button i{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-2);font-style:normal;font-size:.8rem}
.steps button[aria-current="step"]{border-color:var(--brand)}
.steps button[aria-current="step"] i,.steps button.ok i{background:var(--brand);color:var(--brand-ink)}
.area{border:1px solid var(--line);border-top:5px solid var(--ac);border-radius:var(--radius-m);background:var(--surface);padding:.9rem 1rem}
.area h3{color:var(--ac);display:flex;justify-content:space-between;align-items:center}
.area .it{display:flex;gap:.5rem;align-items:center;margin:.35rem 0}
.area .it b{font-size:.8rem;color:var(--muted);width:2.2em}
.sel{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem .5rem;border-radius:var(--radius-s);cursor:pointer}
.sel:hover{background:var(--surface-2)}
.sel input{margin-top:.3rem;accent-color:var(--ac)}
.photo-drop{border:2px dashed var(--line);border-radius:var(--radius-m);padding:1.25rem;text-align:center;background:var(--surface-2)}
.photo-drop img{max-width:100%;max-height:280px;border-radius:var(--radius-s)}

/* ---------- quadrante ---------- */
.quad svg text{font-family:var(--font)}
.qcell{fill:var(--surface-2);stroke:var(--line)}

/* ---------- login ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}
.login .art{background:var(--brand);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login .art h1{font-size:2.3rem;max-width:14ch;line-height:1.1}
.login .form{padding:3rem clamp(1.25rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center;max-width:620px}
.persona{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem;margin:.5rem 0 1rem}
.persona button{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-s);padding:.55rem .7rem;cursor:pointer}
.persona button[aria-pressed="true"]{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.persona b{display:block;font-size:.9rem}.persona span{font-size:.78rem;color:var(--muted)}
.otp{display:flex;gap:.4rem}
.otp input{width:46px;text-align:center;font-size:1.3rem;font-weight:700}

/* ---------- impressão ---------- */
.print-area{display:none}
.doc{font-size:12px;color:#111;background:#fff;padding:1.2rem;border:1px solid var(--line);border-radius:var(--radius-s)}
.doc table{font-size:11px}.doc th{background:#eee;color:#222;position:static}.doc td,.doc th{border:1px solid #bbb;padding:4px 6px}

@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .side{position:sticky;top:0;height:auto;flex-direction:row;overflow-x:auto;padding:.4rem;z-index:6;gap:.1rem}
  .brand,.side .who{display:none}
  .nav{display:flex}
  .nav a{white-space:nowrap;padding:.5rem .6rem;font-size:.85rem}
  .top{position:static}
  .eval{grid-template-columns:1fr}
  .ledger{position:static}
  .login{grid-template-columns:1fr}
  .login .art{padding:1.5rem;min-height:auto}
  .login .art h1{font-size:1.6rem}
  .content{padding:1rem}
}

.carregando{padding:3rem;text-align:center;color:var(--muted)}
.cor-0{background:#1F4A3A}.cor-1{background:#8E6C25}.cor-2{background:#2C5C8F}.cor-3{background:#7B2D8E}.cor-4{background:#A3352F}.cor-5{background:#2A7549}.cor-6{background:#9A620A}.cor-7{background:#3A6F8F}
.avatar.g{width:56px;height:56px;font-size:1rem}
.qr{display:block;margin:.5rem 0;border:1px solid var(--line);border-radius:var(--radius-s);background:#fff;padding:6px}
.chave{font-family:ui-monospace,Consolas,monospace;font-size:1.05rem;letter-spacing:.05em;background:var(--surface-2);padding:.4rem .6rem;border-radius:var(--radius-s);display:inline-block}
.acoes{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}
.acoes-dir{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}
.largo{max-width:none}
.senha-temp{font-family:ui-monospace,Consolas,monospace;font-size:1.3rem;font-weight:700;background:var(--brass-soft);padding:.5rem .8rem;border-radius:var(--radius-s);display:inline-block;user-select:all}
.escopo{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin:.15rem 0}
.login .form{margin:auto}
.login-simples{min-height:100vh;display:grid;place-items:center;padding:1rem}
.cartao{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:1.6rem;width:min(440px,100%)}
.marca{display:flex;gap:.6rem;align-items:center;margin-bottom:1.2rem;color:var(--brand)}
.marca b{display:block}
.oculto{display:none}

/* ---- avaliação mensal ---- */
.kpi span{display:block;font-size:.82rem;color:var(--muted)}.kpi b{font-size:1.5rem;letter-spacing:-.02em}
.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.2rem 0 1rem}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.3rem .75rem;font:inherit;font-size:.85rem;cursor:pointer;color:inherit}
.chip b{margin-left:.25rem}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.faixa-status{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:-.4rem 0 1rem}
.grid.aval{grid-template-columns:minmax(0,1fr) 360px;align-items:start}
.sticky{position:sticky;top:1rem}
.req{padding:.75rem 1rem}.req-h{display:flex;justify-content:space-between;gap:.75rem;align-items:center;margin-bottom:.4rem}
.req .chk{margin:.25rem 0}.req .chk.exc{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--line);font-size:.9rem}
.faixa{background:var(--surface-2);border-radius:var(--radius-s);padding:.6rem .8rem;margin:.8rem 0}
.faixa p{margin:0 0 .4rem}
.opcoes-nota{display:flex;gap:.4rem;flex-wrap:wrap}
.opcao{position:relative}.opcao input{position:absolute;opacity:0;inset:0}
.opcao span{display:inline-grid;place-items:center;min-width:2.6rem;height:2.4rem;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);font-weight:700;cursor:pointer}
.opcao input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.opcao input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.opcao input:disabled+span{cursor:default;opacity:.8}
.calc{width:100%;font-size:.9rem;border-collapse:collapse}.calc th{position:static;background:none;text-align:left;padding:.7rem 0 .2rem;color:var(--brand);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;border:0}.calc td:first-child{color:var(--muted);padding-right:.6rem}.calc td{padding:.2rem 0;vertical-align:top}.calc td:last-child{text-align:right}
.calc tr.total td{font-size:1.1rem;font-weight:700;color:inherit;border-top:1px solid var(--line);padding-top:.5rem;white-space:nowrap}
.linha-tempo{list-style:none;padding:0;margin:0}.linha-tempo li{padding:.4rem 0;border-bottom:1px solid var(--line)}
details summary{cursor:pointer;margin:.6rem 0;font-size:.9rem;color:var(--brand)}
.so-impressao{display:none}
@media (max-width:980px){.grid.aval{grid-template-columns:1fr}.sticky{position:static}}
}
.modal:has(#f-importar){width:min(960px,96vw);max-width:none}
.passos{list-style:none;margin:0;padding:0}
.passo{display:flex;gap:.8rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.passo:last-child{border:0}
.passo p{margin:.15rem 0 .45rem}
.marca-passo{flex:none;width:1.6rem;height:1.6rem;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-weight:700;color:#fff}
.passo.feito .marca-passo{background:var(--ok, #2A7549);border-color:var(--ok, #2A7549)}
.passo.feito b{color:var(--muted)}

/* ---- avaliação dinâmica ---- */
.cab-aval{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.cab-aval h1{margin:0}
.trava{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.grade3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.grade2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.com-sufixo{display:flex;align-items:center;gap:.4rem}.com-sufixo input{flex:1}.com-sufixo span{color:var(--muted);font-size:.85rem}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}
.seg button{border:0;background:var(--surface);padding:.35rem .8rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--muted);min-width:3rem}
.seg button+button{border-left:1px solid var(--line)}
.seg button.on.sim{background:#1F4A3A;color:#fff}.seg button.on.nao{background:#A3352F;color:#fff}
.seg button:disabled{cursor:default}.seg button:not(.on):disabled{opacity:.55}
.seg button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.crit{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 0;border-top:1px solid var(--line)}
.crit.exc span{color:#8E6C25;font-weight:600}
.req{padding:.7rem 1rem}
.res-linha{display:flex;align-items:baseline;gap:.5rem;margin-top:.8rem}.res-linha span:first-child{flex:1;font-weight:600}.res-linha b{font-size:1.35rem}
.barra{display:block;width:100%;height:16px}.escala{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}
.media{border-radius:var(--radius-m);padding:.8rem 1rem;margin:1rem 0;background:var(--surface-2)}.media b{display:block;font-size:2rem;line-height:1.1}
.media.apto{background:#DDEBE1}.media.inapto{background:#F4E1DE}.media span:last-child{font-weight:600;font-size:.9rem}
.pad{display:block;width:100%;height:170px;border:1px dashed #888;border-radius:var(--radius-s);background:#fff;touch-action:none;cursor:crosshair}
.pad-acoes{display:flex;justify-content:space-between;align-items:center;margin-top:.3rem}
.modal.larga{width:min(900px,96vw);max-width:none}
.ficha{background:#fff;color:#111;font-size:.9rem}
.ficha h2{margin:.1rem 0 .6rem}.ficha .f-topo{border-bottom:1px solid #ccc;margin-bottom:.6rem}
.f-cab{display:grid;grid-template-columns:auto 1fr 1fr;gap:1rem;align-items:center;margin-bottom:.6rem}
.ficha table{width:100%;border-collapse:collapse;margin:.4rem 0}.ficha td,.ficha th{padding:.25rem .4rem;border-bottom:1px solid #e5e5e5;text-align:left;position:static;background:none;color:#111}
.f-fat th{background:#eef1ee}.f-fat td:last-child,.f-fat th:last-child{text-align:right;width:4rem}
.f-barras{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.f-valores{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin:.6rem 0}.f-valores b{display:block;font-size:1.05rem}
.f-ass{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.2rem;text-align:center}
.f-ass img,.f-ass .sem-img{height:60px;max-width:100%;object-fit:contain;display:block;margin:0 auto}
.f-ass .linha{border-top:1px solid #333;margin:.2rem 0 .2rem}.f-ass span{display:block}
.ficha .cod{margin-top:.8rem;word-break:break-all}
@media (max-width:700px){.grade3,.grade2,.f-valores,.f-ass,.f-barras{grid-template-columns:1fr}}
@media print{
  @page{size:A4;margin:10mm}
  body{background:#fff}
  body:has(#impressao .ficha) .shell,body:has(#impressao .ficha) #janela,#camada,.toast{display:none!important}
  #impressao .ficha{display:block;font-size:10pt}
  #impressao .avatar{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .barra{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
@media screen{#impressao{display:none}}
.seg{justify-self:start;width:max-content}
/* ===== Melhorias out/2026 ===== */
.sem-estilo{border:0;background:none;padding:0;cursor:pointer;border-radius:50%}
.foto-grande{display:block;max-width:100%;max-height:70vh;margin:.5rem auto;border-radius:var(--radius-m)}
.abas{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem;overflow-x:auto}
.aba{border:0;background:none;padding:.6rem .9rem;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.aba.on{color:var(--ink);border-bottom-color:var(--brand)}
.aval-form,.aval-lado{min-width:0}
.f-ind{width:100%}
/* BI */
.bi-filtros{align-items:flex-end}
.bi-resumo{margin:.2rem 0 1rem}
.bi-graficos .panel{min-width:0}
.graf-cab{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.grafico{width:100%;height:auto;display:block;font-size:14px}
.grafico .barra-dado{fill:var(--brand)}
.grafico .alvo{fill:transparent}
.grafico .marca:hover .alvo{fill:var(--surface-2)}
.grafico .marca:hover .barra-dado{opacity:.85}
.grafico .rot{fill:var(--muted)}
.grafico .val{fill:var(--ink);font-weight:600}
.grafico .base{stroke:var(--line);stroke-width:1}
.bi-tabela tbody tr.click td:first-child{text-decoration:underline;text-decoration-color:var(--line)}
.sobe{color:var(--ok)}.desce{color:var(--bad)}
.matriz-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.matriz-mini div{border:1px solid var(--line);border-radius:var(--radius-s);padding:.5rem .6rem;background:var(--surface-2)}
.matriz-mini span{display:block;font-size:.8rem;color:var(--muted)}.matriz-mini b{font-size:1.2rem}
/* Assinaturas */
.assinaturas-estado ul{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.4rem}
.assinaturas-estado li{display:flex;gap:.6rem;align-items:flex-start;padding:.5rem .6rem;border-radius:var(--radius-s);border:1px solid var(--line)}
.assinaturas-estado li.ok{background:var(--ok-soft);border-color:transparent}
.assinaturas-estado li.pend{background:var(--warn-soft);border-color:transparent}
.assinaturas-estado li.opc{background:var(--surface-2)}
.marca-ass{flex:none;width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--surface);color:var(--ink)}
.assinaturas-estado li.ok .marca-ass{color:var(--ok)}.assinaturas-estado li.pend .marca-ass{color:var(--warn)}
/* Metas */
.tabelas-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.opcao-tabela{display:flex;gap:.5rem;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius-s);padding:.5rem .6rem;cursor:pointer;background:var(--surface)}
.opcao-tabela:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
/* Matriz de Jack Welch */
.matriz{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.4rem;margin:.6rem 0}
.eixo-v{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font-weight:600;color:var(--muted);font-size:.85rem}
.eixo-h{grid-column:2;text-align:center;font-weight:600;color:var(--muted);font-size:.85rem}
.grade-q{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.grade-q .q{text-align:left;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface-2);padding:.7rem;cursor:pointer;min-height:5.5rem;display:flex;flex-direction:column;gap:.25rem;color:var(--ink)}
.grade-q .q:hover:not([disabled]){border-color:var(--brand)}
.grade-q .q.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.grade-q .q[disabled]{cursor:default}
.grade-q .q[disabled]:not(.on){opacity:.75}
body.esconde-restrito .restrito{display:none!important}
/* Áreas da Vida — equipe */
.qr-link{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.5rem 0}
.qr-link span{word-break:break-all}
.av-ficha .av-ident{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.foto-av{width:150px;height:190px;object-fit:cover;border-radius:var(--radius-m);border:1px solid var(--line);flex:none}
.foto-av.vazia{display:grid;place-items:center;text-align:center;padding:.6rem;color:var(--muted);background:var(--surface-2);font-size:.85rem}
.av-sel tr.principal td{background:var(--brass-soft);font-weight:600}
.av-areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}
.av-area{border:1px solid var(--line);border-top:5px solid var(--ac,var(--brand));border-radius:var(--radius-m);padding:.7rem .9rem;background:var(--surface)}
.av-area h3{color:var(--ac,var(--brand))}
.av-profissional{--ac:var(--a-prof)}.av-pessoal_familiar{--ac:var(--a-pess)}.av-financeira{--ac:var(--a-fin)}.av-intelectual{--ac:var(--a-int)}
.av-social{--ac:var(--a-soc)}.av-saude{--ac:var(--a-sau)}.av-espiritual{--ac:var(--a-esp)}
.checklist{list-style:none;padding:0;margin:.3rem 0}.checklist li{padding:.2rem 0}
.convites.tela{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem;max-height:50vh;overflow:auto}
.convite{display:flex;gap:.6rem;align-items:center;border:1px dashed var(--line);border-radius:var(--radius-s);padding:.5rem;background:var(--surface)}
.convite img{width:110px;height:110px;flex:none;background:#fff}
.codigo{font-family:ui-monospace,Consolas,monospace;font-size:1.25rem;font-weight:700;letter-spacing:.08em}
.ficha-janela{max-height:65vh;overflow:auto}
/* Formulário público */
body.form-av{background:var(--bg);margin:0}
.form-av main{max-width:640px;margin:0 auto;padding:12px 16px 40px}
.av-topo{display:flex;gap:.6rem;align-items:center;color:var(--brand);padding:.4rem 0 .8rem}
.av-topo b{display:block;color:var(--ink)}.av-topo span{font-size:.8rem;color:var(--muted)}
.av-prog{margin-bottom:.7rem;font-size:.8rem;color:var(--muted)}
.av-prog svg{display:block;width:100%;height:6px;margin-top:.25rem}
.av-prog .trilho{fill:var(--line)}.av-prog .feito{fill:var(--brand)}
.av-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:1.1rem 1rem}
.av-card h1{font-size:1.35rem;margin:0 0 .5rem}
.av-card h1:focus{outline:none}
.av-card textarea,.av-card input:not([type=checkbox]):not([type=radio]),.av-card select{width:100%;font-size:16px}
.av-card .chk input{width:auto;flex:none;margin-top:.2rem}
.av-card .check-item input{font-size:16px}
.av-termo{background:var(--surface-2);border-radius:var(--radius-s);padding:.6rem .8rem;margin:.8rem 0;font-size:.9rem}
.av-termo summary{font-weight:600;cursor:pointer}
.btn.grande{padding:.8rem 1.2rem;font-size:1.05rem;width:100%;justify-content:center}
.av-nav{display:flex;justify-content:space-between;gap:.6rem;margin-top:1rem}
.av-nav .btn{min-height:44px}
.av-cam{display:grid;gap:.6rem;margin:.8rem 0}
.av-cam video{width:100%;max-height:60vh;border-radius:var(--radius-m);background:#000;transform:scaleX(-1)}
.av-cam label.btn{text-align:center;justify-content:center;min-height:44px}
.av-semfoto{margin-top:.8rem}.av-semfoto summary{cursor:pointer;color:var(--muted)}
.av-area-cab{display:flex;gap:.6rem;align-items:center;border-left:6px solid var(--ac,var(--brand));padding-left:.6rem;margin-bottom:.6rem}
.av-area-cab .n{font-size:1.6rem;font-weight:800;color:var(--ac,var(--brand))}
.av-area-cab h1{margin:0;color:var(--ac,var(--brand))}
.av-escolha{border:1px solid var(--line);border-radius:var(--radius-s);padding:.6rem .8rem;margin:0 0 .8rem}
.av-escolha legend{font-weight:700;padding:0 .3rem}
.opcao-obj{display:flex;gap:.6rem;align-items:flex-start;padding:.5rem;border-radius:var(--radius-s);cursor:pointer}
.opcao-obj input{width:auto;margin-top:.2rem;flex:none}
.opcao-obj:has(input:checked){background:var(--brand-soft)}
.varinha{background:var(--brass-soft);border-color:transparent}
.av-alvo{display:grid;gap:.2rem;background:var(--brand-soft);border-radius:var(--radius-s);padding:.6rem .8rem;margin-bottom:.8rem}
.av-ser{font-size:.9rem;margin-bottom:1rem}.av-ser ul{padding-left:1.1rem;margin:.3rem 0}
.citacao{font-style:italic;color:var(--muted)}
.check-item{display:grid;grid-template-columns:1fr 9.5rem auto;gap:.4rem;margin-bottom:.4rem}
.check-item .tira{min-width:44px}
.av-rev{border-bottom:1px solid var(--line);padding:.6rem 0}
.av-rev h2{font-size:1rem;margin:0 0 .2rem}.av-rev ol{margin:.2rem 0 .4rem;padding-left:1.2rem}
.av-card.fim{text-align:center}
@media (max-width:520px){.check-item{grid-template-columns:1fr auto}.check-item input[type=date]{grid-column:1}.tabelas-meta,.matriz-mini{grid-template-columns:1fr 1fr}}
/* Impressão: listas e painéis (página), cartaz e convites */
.cartaz,.convites:not(.tela){display:none}
@media print{
  body:not(:has(#impressao > *)) .side,body:not(:has(#impressao > *)) .top,.no-print,.filters,.demo-bar,.content .btn,#camada,.toast{display:none!important}
  body:not(:has(#impressao > *)) .shell{display:block}
  body:not(:has(#impressao > *)) .main,body:not(:has(#impressao > *)) .content{padding:0;margin:0}
  .panel{break-inside:avoid;box-shadow:none}
  .grafico .barra-dado,.matriz-mini div,.av-area{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  body:has(#impressao .cartaz) .shell,body:has(#impressao .convites) .shell,body:has(#impressao .cartaz) #janela,body:has(#impressao .convites) #janela{display:none!important}
  #impressao .cartaz{display:block;text-align:center;padding-top:20mm}
  #impressao .cartaz h1{font-size:34pt;margin:0 0 6mm}#impressao .cartaz p{font-size:16pt}
  #impressao .cartaz img{width:110mm;height:110mm;margin:8mm auto;display:block}
  #impressao .convites{display:grid;grid-template-columns:1fr 1fr;gap:5mm}
  #impressao .convite{break-inside:avoid;border:1px dashed #777;padding:4mm;display:flex;gap:4mm;align-items:center}
  #impressao .convite img{width:35mm;height:35mm}
}
.av-area ol{list-style:none;padding-left:0;margin:.3rem 0}.av-area li{margin:.25rem 0}
.convite>div{min-width:0;overflow-wrap:anywhere}
.av-cadastro .grid.g2{grid-template-columns:1fr}
.drawer .av-cadastro .foto-av{width:120px;height:150px}
.av-cadastro select{width:auto}
/* ===== Áreas da Vida — identificação com foto e resposta por áudio (26/10/2026) ===== */
.obrig{color:var(--bad);font-weight:700}
.ok-txt{color:var(--ok)}.bad-txt{color:var(--bad)}
.av-ident-grade{display:grid;gap:1rem}
.av-opcional{margin:.2rem 0 .6rem}.av-opcional summary{cursor:pointer;color:var(--muted);font-size:.9rem;padding:.3rem 0}
.av-foto{display:grid;gap:.6rem}
.av-foto-previa{width:180px;height:220px;border-radius:var(--radius-m);border:2px dashed var(--line);background:var(--surface-2);display:grid;place-items:center;text-align:center;
  color:var(--muted);overflow:hidden;font-size:.85rem;margin:0 auto}
.av-foto-previa svg{width:64px;height:64px;display:block;margin:0 auto .3rem;opacity:.6}
.av-foto-previa img{width:100%;height:100%;object-fit:cover;display:block}
.av-foto-previa:has(img){border-style:solid;border-color:var(--brand)}
.av-foto-acoes{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.av-foto-acoes .btn{min-height:44px;justify-content:center}
.av-cam-acoes{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.av-campo-acoes{display:flex;justify-content:flex-end;margin-top:.35rem}
.av-mic{display:inline-flex;align-items:center;gap:.4rem;min-height:40px}
.av-mic.gravando{background:var(--bad);border-color:var(--bad);color:#fff}
.av-audio-status:empty{display:none}
.av-audio-status{margin-top:.4rem;display:grid;gap:.4rem}
.av-audio-status audio{width:100%;height:36px}
.av-gravando{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;color:var(--bad);font-weight:600}
.av-gravando .ponto{width:12px;height:12px;border-radius:50%;background:var(--bad);animation:pulsar 1s infinite}
@keyframes pulsar{50%{opacity:.25}}
.av-transcrevendo{display:flex;align-items:center;gap:.5rem;color:var(--muted)}
.girando{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--brand);animation:girar .8s linear infinite}
@keyframes girar{to{transform:rotate(360deg)}}
textarea.transcrito{outline:2px solid var(--warn);background:var(--warn-soft)}
.av-salvo{display:block;min-height:1.2em;margin-top:.4rem;text-align:right}
.av-sem-audio{border-left:3px solid var(--line);padding-left:.6rem}
.note.ok{background:var(--ok-soft);border-color:transparent}
/* tablet e computador: mais largo; identificação em duas colunas (dados | foto) */
@media (min-width:760px){
  .form-av main{max-width:860px;padding:20px 24px 48px}
  .av-card{padding:1.6rem 1.8rem}
  .av-ident-grade{grid-template-columns:1fr 260px;align-items:start}
  .av-ident-foto{border-left:1px solid var(--line);padding-left:1rem}
  .btn.grande{width:auto;min-width:260px}
  .av-nav .btn.grande{width:auto}
}
@media (min-width:1200px){.form-av main{max-width:960px}}
/* staff: cadastros pendentes e áudios na ficha */
.av-audios{list-style:none;padding:0;margin:.3rem 0;display:grid;gap:.35rem}
.av-audios li{display:grid;gap:.2rem;border:1px solid var(--line);border-radius:var(--radius-s);padding:.4rem .6rem;background:var(--surface-2)}
.av-audios audio{width:100%;height:34px}
.av-audios .small{color:var(--muted)}
.av-cam.oculto,#camera-ao-vivo.oculto{display:none}
