@charset "UTF-8";
/* ==========================================================================
   Vistoria de Entrega Aman — v3 visual (design/DESIGN-SYSTEM.md + tokens.css)
   Paleta grafite / dourado / marfim. Proibido: verde-petróleo, azul, teal.
   ========================================================================== */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300;font-display:swap;src:url("assets/fonts/montserrat-300.woff2") format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/montserrat-500.woff2") format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/montserrat-600.woff2") format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/montserrat-700.woff2") format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("assets/fonts/inter-var.woff2") format("woff2")}

:root{
  --grafite:#1E1C1A;--grafite-2:#2B2825;--grafite-3:#3A3632;
  --tinta:#24211E;--tinta-2:#6E675E;--tinta-3:#9C958B;
  --ouro:#BBA27B;--ouro-escuro:#8C7346;--ouro-texto:#7A6440;--ouro-claro:#E9DFCC;--ouro-veu:#F4EEE3;--ouro-hover:#C8B48F;
  --marfim:#F6F3EE;--branco:#FFFFFF;--papel-quente:#FBF9F5;--previa:#E9E5DE;
  --linha:#E6E0D6;--linha-suave:#EFECE7;--linha-forte:#958A78;
  --ok:#2F7D5B;--ok-texto:#256A4C;--ok-tinta:#EAF2EC;--ok-escuro-bg:#7FB89B;
  --nc:#B4473A;--nc-texto:#9E3B30;--nc-tinta:#F8ECE9;--nc-escuro-bg:#E39A8F;--nc-borda:#E3C0B9;--nc-painel:#FBF7F5;--nc-fio:#F0DDD8;
  --na:#8A847B;--na-texto:#66615A;--na-tinta:#EFECE7;--na-cheio:#66615A;
  --aviso-texto:#7A6440;--aviso-tinta:#F4EEE3;
  --sev-leve:#8C7346;--sev-moderada:#B86E2E;--sev-grave:#B4473A;--sev-vazio:#D9D3C9;
  --f-titulo:Montserrat,"Segoe UI",-apple-system,system-ui,sans-serif;
  --f-texto:Inter,"Segoe UI",-apple-system,system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --t-display:300 44px/48px var(--f-titulo);--t-h1:600 32px/38px var(--f-titulo);--t-h2:600 24px/30px var(--f-titulo);--t-h3:600 18px/24px var(--f-titulo);
  --t-kpi:500 40px/44px var(--f-titulo);--t-corpo-g:400 17px/26px var(--f-texto);--t-corpo:400 15px/23px var(--f-texto);--t-corpo-p:400 13px/19px var(--f-texto);
  --t-legenda:500 12px/16px var(--f-texto);--t-rotulo:600 11px/14px var(--f-titulo);--t-rotulo-p:600 10px/12px var(--f-titulo);--t-botao:600 15px/20px var(--f-texto);--t-mono:500 13px/18px var(--f-mono);
  --e-1:4px;--e-2:8px;--e-3:12px;--e-4:16px;--e-5:20px;--e-6:24px;--e-8:32px;--e-10:40px;--e-12:48px;--e-16:64px;
  --cabecalho-h:72px;--etapas-h:64px;--conteudo-max:1280px;--margem:32px;
  --botao-h:52px;--status-h:64px;--campo-h:52px;--lateral-ambientes:280px;--coluna-itens-max:760px;
  --r-1:4px;--r-2:8px;--r-3:12px;--r-4:16px;
  --s-1:0 1px 2px rgba(30,28,26,.06),0 1px 1px rgba(30,28,26,.04);
  --s-2:0 4px 12px -2px rgba(30,28,26,.10),0 2px 4px rgba(30,28,26,.05);
  --s-3:0 16px 40px -8px rgba(30,28,26,.22),0 4px 10px rgba(30,28,26,.08);
  --s-ouro:0 0 0 1px #BBA27B,0 8px 24px -6px rgba(187,162,123,.45);
  --foco:0 0 0 3px #F6F3EE,0 0 0 5px #8C7346;--foco-escuro:0 0 0 3px #1E1C1A,0 0 0 5px #BBA27B;
  --backdrop:rgba(30,28,26,.55);
  --d-instante:80ms;--d-rapido:160ms;--d-padrao:220ms;--d-lento:320ms;--d-marca:600ms;
  --ease-saida:cubic-bezier(.2,.8,.2,1);--ease-entrada:cubic-bezier(.4,0,1,1);--ease-mola:cubic-bezier(.34,1.4,.64,1);
  /* Ícones para pseudo-elementos (mesmos traços do sprite). */
  --m-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --m-busca:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E");
  --m-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 11v5.5M12 7.8h.01'/%3E%3C/svg%3E");
  --m-alerta:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.7 4.3a1.5 1.5 0 0 1 2.6 0l7.6 13.5A1.5 1.5 0 0 1 19.6 20H4.4a1.5 1.5 0 0 1-1.3-2.2z'/%3E%3Cpath d='M12 9.5v4.5M12 17h.01'/%3E%3C/svg%3E");
  --m-relogio:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E675E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.5 9.5 5.5 5.5 5.5-5.5'/%3E%3C/svg%3E");
  --x-assinatura:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C7346' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
  color-scheme:light;font:var(--t-corpo);color:var(--tinta);background:var(--marfim);
  font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
@media (max-width:900px){:root{--margem:24px;--cabecalho-h:64px;--t-h1:600 28px/34px var(--f-titulo);--t-kpi:500 34px/40px var(--f-titulo)}}
@media (max-width:480px){:root{--margem:16px}}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--cabecalho-h) + var(--etapas-h) + 16px)}
body{margin:0;min-height:100dvh;background:var(--marfim);color:var(--tinta);font:var(--t-corpo)}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,textarea,select,label,summary{-webkit-tap-highlight-color:transparent}
button,a,summary{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
a{color:inherit}
img{max-width:100%}
p{margin:0 0 12px}
h1,h2,h3,h4{margin:0;font-family:var(--f-titulo);color:var(--tinta);overflow-wrap:anywhere}
h1{font:var(--t-h1);letter-spacing:-.02em}
h2{font:var(--t-h2);letter-spacing:-.015em}
h3{font:var(--t-h3);letter-spacing:-.01em}
[hidden]{display:none!important}
::selection{background:var(--ouro-claro);color:var(--tinta)}
:where(button,a,input,select,textarea,canvas,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--foco)}
.no-escuro :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{box-shadow:var(--foco-escuro)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;vertical-align:middle}
.i--16{width:16px;height:16px}.i--24{width:24px;height:24px}.i--32{width:32px;height:32px}
.i use{vector-effect:non-scaling-stroke}
.num,.mono{font-variant-numeric:tabular-nums lining-nums}
.mono{font:var(--t-mono);letter-spacing:.02em}
.skip{position:fixed;top:-80px;left:12px;z-index:300;background:#fff;padding:14px 18px;border-radius:var(--r-2)}
.skip:focus{top:12px}
#main{max-width:calc(var(--conteudo-max) + 2*var(--margem));margin:0 auto;padding:var(--e-8) var(--margem) var(--e-16);min-height:calc(100dvh - var(--cabecalho-h))}
#main:focus{outline:none}
.loading{padding:96px 20px;text-align:center;color:var(--tinta-2)}

/* ---------- Tipos auxiliares ---------- */
.eyebrow{display:block;font:var(--t-rotulo);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-2);margin:0 0 8px}
.eyebrow--marca,.panel-head .eyebrow,.room-title .eyebrow,.report-preview-info .eyebrow,.page-heading .eyebrow{color:var(--ouro-texto)}
.no-escuro .eyebrow{color:var(--ouro)}
.hint{font:var(--t-corpo-p);color:var(--tinta-2)}
.inline-note{display:flex;align-items:center;gap:8px;font:var(--t-corpo-p);color:var(--aviso-texto);margin:0 0 24px}
.filete{display:block;width:24px;height:1px;background:var(--ouro)}

/* ---------- Botões ---------- */
.btn{--h:var(--botao-h);min-height:var(--h);padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-2);border:1px solid var(--linha-forte);background:var(--branco);color:var(--tinta);font:var(--t-botao);letter-spacing:.005em;text-decoration:none;white-space:nowrap;cursor:pointer;position:relative;transition:background-color var(--d-rapido) var(--ease-saida),border-color var(--d-rapido) var(--ease-saida),box-shadow var(--d-rapido) var(--ease-saida),transform var(--d-instante) ease}
.btn:active:not(:disabled){transform:scale(.98)}
.btn.primary{background:var(--grafite);border-color:var(--grafite);color:var(--marfim)}
.btn.gold{background:var(--ouro);border-color:var(--ouro);color:var(--grafite)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.dark{background:transparent;border-color:var(--grafite-3);color:var(--ouro-claro)}
.btn.danger{color:var(--nc-texto);border-color:var(--nc-borda)}
.btn.small{--h:44px;padding:0 16px;font-size:14px}
.btn.xl{--h:64px;padding:0 28px;font-size:16px}
.btn .i{margin:0 -2px}
@media (hover:hover){
  .btn:hover{background:var(--ouro-veu)}
  .btn.primary:hover{background:var(--grafite-2);box-shadow:var(--s-2)}
  .btn.gold:hover{background:var(--ouro-hover);border-color:var(--ouro-hover)}
  .btn.ghost:hover{background:rgba(30,28,26,.05)}
  .btn.dark:hover{background:rgba(233,223,204,.06);border-color:var(--ouro)}
  .btn.danger:hover{background:var(--nc-tinta)}
}
.btn:disabled{opacity:.45}
.icon-btn{width:48px;height:48px;flex:none;display:inline-grid;place-items:center;border:1px solid var(--linha-forte);border-radius:var(--r-2);background:#fff;color:var(--tinta);padding:0}
.icon-btn.ghost{border-color:transparent;background:transparent}
@media (hover:hover){.icon-btn:hover{background:var(--ouro-veu)}.icon-btn.ghost:hover{background:rgba(30,28,26,.05)}}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---------- Chips ---------- */
.chip,.badge{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;font:600 12px/16px var(--f-texto);background:var(--na-tinta);color:var(--na-texto);white-space:nowrap;font-variant-numeric:tabular-nums}
.chip .i{width:14px;height:14px}
.chip--ok,.chip--verificada{background:var(--ok-tinta);color:var(--ok-texto)}
.chip--nc{background:var(--nc-tinta);color:var(--nc-texto)}
.chip--andamento,.chip--corrigida{background:var(--aviso-tinta);color:var(--aviso-texto)}
.chip--aberta{background:#fff;color:var(--nc-texto);box-shadow:inset 0 0 0 1px var(--nc)}
.chip--assinada{background:var(--grafite);color:var(--ouro-claro)}
.chip--assinada .i{color:var(--ouro)}
.chip--contorno{background:#fff;box-shadow:inset 0 0 0 1px var(--linha);color:var(--tinta-2)}
.sev-dots{display:inline-flex;gap:3px}
.sev-dots i{width:6px;height:6px;border-radius:50%;background:var(--sev-vazio)}
.sev-leve .sev-dots i:nth-child(-n+1),.sev-moderada .sev-dots i:nth-child(-n+2),.sev-grave .sev-dots i{background:var(--c)}
.sev-leve{--c:var(--sev-leve)}.sev-moderada{--c:var(--sev-moderada)}.sev-grave{--c:var(--sev-grave)}
.chip--sev{background:#fff;box-shadow:inset 0 0 0 1px var(--linha);color:var(--tinta)}

/* ---------- Cabeçalho ---------- */
.app-header{position:sticky;top:0;z-index:30;height:var(--cabecalho-h);display:flex;align-items:center;gap:24px;padding:0 max(var(--margem),calc((100vw - var(--conteudo-max))/2));background:var(--grafite);color:var(--ouro-claro);box-shadow:inset 0 -1px 0 rgba(187,162,123,.6)}
.brand{display:flex;align-items:center;gap:16px;min-height:48px;text-decoration:none;flex:none}
.brand img{height:24px;width:auto;display:block}
.brand span{font:var(--t-rotulo-p);letter-spacing:.22em;color:var(--ouro-claro);border-left:1px solid var(--grafite-3);padding:6px 0 6px 16px}
.header-context{flex:1;min-width:0;margin:0;text-align:center;font:500 13px/18px var(--f-texto);color:var(--ouro-claro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-tools{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto}
.connection{display:flex;align-items:center;gap:8px;font:400 12px/16px var(--f-texto);color:var(--tinta-3);margin-right:8px;white-space:nowrap}
.connection::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok-escuro-bg)}
.connection.offline::before{background:var(--ouro)}
.header-btn{color:var(--ouro-claro)}
.header-btn .i{color:var(--ouro)}
.error-banner{position:sticky;top:var(--cabecalho-h);z-index:29;background:var(--nc-texto);color:#fff;padding:16px var(--margem);line-height:1.6;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.error-banner div{display:flex;gap:8px;flex-wrap:wrap}
.error-banner .btn{--h:40px;background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.app-footer{max-width:calc(var(--conteudo-max) + 2*var(--margem));margin:0 auto;padding:24px var(--margem) 32px;display:flex;gap:24px;justify-content:space-between;color:var(--tinta-2);font:400 12px/16px var(--f-texto);border-top:1px solid var(--linha)}
.app-footer span:first-child{font:var(--t-rotulo-p);letter-spacing:.22em;color:var(--tinta)}
body:not([data-screen=home]) .app-footer{display:none}

/* ---------- Splash ---------- */
.splash{position:fixed;inset:0;z-index:200;background:var(--grafite);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;pointer-events:none;transition:opacity 250ms var(--ease-entrada),transform 250ms var(--ease-entrada)}
.splash img{width:180px;animation:splash-logo 500ms var(--ease-saida) both}
.splash-line{display:block;width:120px;height:1px;background:var(--ouro);transform-origin:center;animation:splash-line 400ms 420ms var(--ease-saida) both}
.splash p{margin:0;text-align:center;font:600 10px/18px var(--f-titulo);letter-spacing:.22em;color:var(--tinta-3);animation:fade-in 300ms 780ms ease both}
.splash-ready{opacity:0;transform:translateY(-24px)}
@keyframes splash-logo{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes splash-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}

/* ---------- Início ---------- */
.home-top{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:16px;margin-bottom:40px}
.hero{position:relative;overflow:hidden;background:var(--grafite);color:var(--marfim);border-radius:var(--r-4);padding:32px 36px;min-height:236px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;box-shadow:var(--s-2)}
.hero h1{font:300 32px/40px var(--f-titulo);letter-spacing:-.02em;color:var(--marfim);max-width:15em}
.hero p{margin:12px 0 0;color:var(--tinta-3);font:var(--t-corpo-p);max-width:44ch}
.hero-text{position:relative;z-index:1}
.hero-actions{position:relative;z-index:1;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.hero-note{display:inline-flex;align-items:center;gap:8px;font:var(--t-legenda);color:var(--tinta-3)}
.hero-note .i{color:var(--ouro)}
.hero-art{position:absolute;right:28px;bottom:0;width:260px;height:auto;color:var(--grafite-3);pointer-events:none}
.hero-art .acento{color:var(--ouro);opacity:.55}
.metrics.home-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.metrics.home-metrics .metric{padding:20px}
.home-metrics .metric strong{font:500 32px/38px var(--f-titulo)}
.list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px;flex-wrap:wrap}
.list-head h2{font:var(--t-h2)}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.search{position:relative;width:300px;max-width:100%}
.search::before{content:"";position:absolute;left:16px;top:50%;width:20px;height:20px;margin-top:-10px;background:var(--tinta-2);-webkit-mask:var(--m-busca) center/contain no-repeat;mask:var(--m-busca) center/contain no-repeat;pointer-events:none}
.search input{padding-left:46px!important;min-height:48px!important}
.tabs{display:flex;padding:4px;gap:4px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--linha)}
.tabs button{border:0;background:transparent;min-height:40px;border-radius:999px;padding:0 16px;font:600 13px/18px var(--f-texto);color:var(--tinta-2);white-space:nowrap}
.tabs button[aria-pressed=true]{background:var(--grafite);color:var(--marfim)}
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.case-card{background:#fff;border:1px solid var(--linha);border-radius:var(--r-3);padding:24px;box-shadow:var(--s-1);display:flex;flex-direction:column;gap:16px;min-width:0;transition:box-shadow var(--d-rapido) var(--ease-saida),border-color var(--d-rapido)}
@media (hover:hover){.case-card:hover{box-shadow:var(--s-2);border-color:#DCD4C7}}
.case-card.is-locked{box-shadow:inset 0 2px 0 var(--ouro),var(--s-1)}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}
.project-label{font:var(--t-rotulo);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.case-card h3{font:600 22px/28px var(--f-titulo);letter-spacing:-.015em;margin:0 0 4px}
.case-card .card-title p{margin:0;font:var(--t-corpo-p);color:var(--tinta-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-chips{display:flex;gap:6px;flex-wrap:wrap}
.card-bottom{margin-top:auto;border-top:1px solid var(--linha);padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.card-bottom time{font:var(--t-legenda);color:var(--tinta-2);font-variant-numeric:tabular-nums}
.card-bottom a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:600 14px/20px var(--f-texto);text-decoration:none;color:var(--tinta)}
.card-bottom a .i{color:var(--ouro-escuro);transition:transform var(--d-rapido) var(--ease-saida)}
@media (hover:hover){.card-bottom a:hover .i{transform:translateX(3px)}}
.progress-label{display:flex;justify-content:space-between;gap:8px;font:var(--t-legenda);color:var(--tinta-2);margin-bottom:8px;font-variant-numeric:tabular-nums}
.progress-label b{color:var(--tinta);font-weight:600}
.progress-track{display:block;height:4px;border-radius:2px;background:var(--linha-suave);overflow:hidden}
.progress-track i{display:block;height:100%;background:var(--grafite);border-radius:2px;transition:width 400ms var(--ease-saida)}
.home-list>.hint{margin-top:24px;display:flex;align-items:center;gap:8px}
.empty{grid-column:1/-1;max-width:420px;margin:24px auto;padding:24px 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.empty-art{width:96px;height:96px;color:var(--ouro);margin-bottom:20px}
.empty h3{margin-bottom:8px}
.empty p{font:var(--t-corpo-p);color:var(--tinta-2);margin:0 0 24px}

/* ---------- Métricas ---------- */
.metric{background:#fff;border:1px solid var(--linha);border-radius:var(--r-3);padding:20px 24px;box-shadow:var(--s-1);display:flex;flex-direction:column;gap:6px;min-width:0}
.metric .eyebrow{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric strong{display:block;font:var(--t-kpi);letter-spacing:-.02em;color:var(--tinta);font-variant-numeric:tabular-nums}
.metric .metric-caption{font:var(--t-legenda);color:var(--tinta-2)}
.metric.ok .eyebrow::before,.metric.nc .eyebrow::before,.metric.na .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:var(--ok)}
.metric.nc .eyebrow::before{background:var(--nc)}.metric.na .eyebrow::before{background:var(--na)}
.metric.ok strong{color:var(--ok-texto)}.metric.nc strong{color:var(--nc-texto)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}

/* ---------- Diálogos ---------- */
dialog{border:0;border-radius:var(--r-4);padding:32px;width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;color:var(--tinta);background:#fff;box-shadow:var(--s-3)}
dialog[open]{animation:dialog-in var(--d-lento) var(--ease-saida)}
dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(6px)}
@keyframes dialog-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
#modal[data-variant=marca]{width:min(680px,calc(100% - 32px));border-top:2px solid var(--ouro)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-8px -8px 4px 0}
.modal-head .eyebrow{margin:0;color:var(--ouro-texto)}
dialog h2{margin:0 0 24px}
#modal-body>p{font:var(--t-corpo-p);color:var(--tinta-2)}
#modal-body .form-grid{gap:16px 20px}
#modal-body .modal-note{display:flex;gap:10px;align-items:flex-start;margin:20px 0 0;padding:14px 16px;border-radius:var(--r-2);background:var(--papel-quente);font:var(--t-corpo-p);color:var(--tinta-2)}
#modal-body .modal-note .i{color:var(--ouro-escuro);margin-top:-1px}
.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px}
.photo-view{display:block;max-width:100%;max-height:64dvh;margin:0 auto 16px;border-radius:var(--r-2);object-fit:contain}
.validation-list{margin:0;padding-left:20px;line-height:1.9;font:var(--t-corpo-p)}
.validation-list a{color:var(--nc-texto);text-underline-offset:3px}

/* ---------- Formulários ---------- */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}
.form-grid .wide{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field>label,.field-label{font:500 13px/18px var(--f-texto);color:var(--tinta)}
.req{color:var(--ouro-texto);margin-left:3px}
.field small{font:400 12px/16px var(--f-texto);color:var(--tinta-2)}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;min-height:var(--campo-h);border:1px solid var(--linha-forte);border-radius:var(--r-2);background-color:#fff;padding:0 16px;font:var(--t-corpo);color:var(--tinta);transition:border-color var(--d-rapido),box-shadow var(--d-rapido)}
textarea{padding:14px 16px;min-height:104px;resize:vertical}
select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:var(--chevron);background-repeat:no-repeat;background-position:right 14px center;background-size:20px;cursor:pointer}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--grafite)}
input[readonly],textarea[readonly],select:disabled{background-color:var(--papel-quente);color:var(--tinta-2);border-color:var(--linha);opacity:1}
input::placeholder,textarea::placeholder{color:var(--tinta-2);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--grafite);width:22px;height:22px;margin:0;flex:none;cursor:pointer}
input[type=number]{-moz-appearance:textfield;font-variant-numeric:tabular-nums}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[aria-invalid=true]{border-color:var(--nc)}
.field-error{font:500 12px/16px var(--f-texto);color:var(--nc-texto);display:flex;align-items:center;gap:6px}
.field-error:empty{display:none}
.field-error.is-valid{color:var(--ok-texto)}
.field-error.is-valid::before{content:"";width:16px;height:16px;background:var(--ok);-webkit-mask:var(--m-check) center/contain no-repeat;mask:var(--m-check) center/contain no-repeat}
.field-cpf{position:relative}
.field-cpf.is-valid input{border-color:var(--ok);padding-right:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D5B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px}
#new-cpf-status:not(:empty){display:flex;align-items:center;gap:6px;font:500 12px/16px var(--f-texto);color:var(--nc-texto)}
#new-cpf-status.is-valid{color:var(--ok-texto)}
#new-cpf-status.is-valid::before{content:"";width:16px;height:16px;background:var(--ok);-webkit-mask:var(--m-check) center/contain no-repeat;mask:var(--m-check) center/contain no-repeat}
.section-label{display:flex;align-items:center;gap:12px;font:var(--t-rotulo);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-2);margin:0 0 20px}
.section-label::before{content:"";width:24px;height:1px;background:var(--ouro);flex:none}
.form-section{margin-top:32px;padding-top:28px;border-top:1px solid var(--linha)}
.consent{display:flex;gap:14px;align-items:flex-start;min-height:48px;font:var(--t-corpo-p);line-height:21px;cursor:pointer}
.consent input{margin-top:0}
.filter-check{display:inline-flex;gap:10px;align-items:center;min-height:44px;cursor:pointer;font:500 14px/20px var(--f-texto);white-space:nowrap}
.toggle{padding:0 14px 0 12px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--linha-forte)}
.toggle:has(input:checked){background:var(--grafite);color:var(--marfim);box-shadow:none}
.toggle input{width:18px;height:18px;accent-color:var(--ouro)}

/* ---------- Painéis ---------- */
.panel{background:#fff;border:1px solid var(--linha);border-radius:var(--r-3);box-shadow:var(--s-1);margin-bottom:24px;min-width:0}
.panel-head{padding:24px 24px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.panel-head h2{font:600 22px/28px var(--f-titulo)}
.panel-head p{margin:6px 0 0;font:var(--t-corpo-p);color:var(--tinta-2)}
.panel-body{padding:24px}
.notice{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;margin-bottom:24px;border-radius:var(--r-2);background:var(--papel-quente);border:1px solid var(--linha);font:var(--t-corpo-p)}
.notice p{margin:0}
.notice.warning{background:var(--aviso-tinta);border-color:#E6DAC4;color:var(--aviso-texto)}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.page-heading p{margin:8px 0 0;color:var(--tinta-2);font:var(--t-corpo-p)}

/* ---------- Vistoria: cabeçalho e etapas ---------- */
.breadcrumbs{display:flex;align-items:center;gap:10px;font:var(--t-legenda);color:var(--tinta-2);margin:-12px 0 12px}
.breadcrumbs a{display:inline-flex;align-items:center;gap:6px;min-height:44px;text-decoration:none;color:var(--tinta)}
.breadcrumbs a .i{color:var(--ouro-escuro)}
.breadcrumbs span:last-child{font-family:var(--f-mono);letter-spacing:.02em}
.case-heading{align-items:flex-end;margin-bottom:24px}
.case-heading h1{font:var(--t-h1);letter-spacing:-.02em}
.case-heading .eyebrow{margin-bottom:6px}
.case-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:10px;font:var(--t-corpo-p);color:var(--tinta-2)}
.case-meta>span{display:inline-flex;align-items:center;gap:6px}
.case-meta .i{color:var(--tinta-3)}
.save-state{color:var(--ok-texto)!important;font:var(--t-legenda)!important}
.save-state::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:var(--m-check) center/contain no-repeat;mask:var(--m-check) center/contain no-repeat}
.save-state[data-state=salvando]{color:var(--tinta-2)!important}
.save-state[data-state=salvando]::before{-webkit-mask-image:var(--m-relogio);mask-image:var(--m-relogio)}
.save-state[data-state=erro]{color:var(--nc-texto)!important}
.save-state[data-state=erro]::before{-webkit-mask-image:var(--m-alerta);mask-image:var(--m-alerta)}
.case-heading .actions{gap:8px}
.workflow{position:sticky;top:var(--cabecalho-h);z-index:20;display:flex;align-items:center;height:var(--etapas-h);margin:0 0 32px;background:var(--marfim);box-shadow:0 0 0 100vmax var(--marfim),0 1px 0 100vmax var(--linha);clip-path:inset(0 -100vmax -1px)}
.workflow a{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:10px;height:100%;text-decoration:none;color:var(--tinta-2);font:500 13px/18px var(--f-texto)}
.workflow a::after{content:"";flex:1 1 auto;min-width:8px;height:1px;background:var(--linha-forte);margin:0 12px 0 2px}
.workflow a:last-of-type{flex:0 0 auto}
.workflow a:last-of-type::after{display:none}
.workflow a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workflow a b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:none;border:1px solid var(--linha-forte);background:#fff;font:600 12px/1 var(--f-titulo);color:var(--tinta-2);transition:background-color var(--d-padrao),box-shadow var(--d-padrao)}
.workflow a.is-done{color:var(--tinta)}
.workflow a.is-done b{background:var(--ouro-claro);border-color:var(--ouro-claro);color:var(--ouro-texto)}
.workflow a.is-done::after{background:var(--grafite)}
.workflow a[aria-current=step]{color:var(--tinta);font-weight:600}
.workflow a[aria-current=step] b{background:var(--grafite);border-color:var(--grafite);color:var(--ouro);box-shadow:0 0 0 4px rgba(187,162,123,.25)}
.workflow-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px}
.workflow-progress i{display:block;height:100%;background:var(--ouro);transition:width 400ms var(--ease-saida)}
.step-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--linha)}
#case-content{animation:step-in var(--d-padrao) var(--ease-saida)}
@keyframes step-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}

/* ---------- Selo "Vistoria assinada" ---------- */
.lock-banner{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.15fr) auto;gap:28px;align-items:center;margin:0 0 24px;padding:28px 32px;border:0;border-radius:var(--r-4);background:var(--grafite);color:var(--marfim);box-shadow:var(--s-ouro)}
.lock-banner::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:35%;background:linear-gradient(100deg,transparent,rgba(233,223,204,.10),transparent);animation:seal-shine 900ms 250ms var(--ease-saida) both;pointer-events:none}
@keyframes seal-shine{from{left:-40%}to{left:120%}}
.seal-mark{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:var(--ouro);box-shadow:inset 0 0 0 1px var(--ouro);background:var(--grafite-2)}
.seal-main h2{color:var(--marfim);font:var(--t-h2);margin:0 0 6px}
.seal-main .eyebrow{color:var(--ouro);margin-bottom:6px}
.seal-code{margin:0 0 6px;color:var(--ouro);font:var(--t-mono);letter-spacing:.04em}
.seal-main p:last-child{margin:0;font:var(--t-corpo-p);color:var(--tinta-3)}
.seal{display:flex;flex-direction:column;gap:6px;min-width:0}
.seal .eyebrow{margin:0;color:var(--tinta-3)}
.seal code{display:block;font:500 12px/19px var(--f-mono);letter-spacing:.06em;color:var(--ouro-claro);word-break:break-all;max-width:34ch}
.seal-signs{margin-top:10px;display:flex;flex-direction:column;gap:2px}
.signature-time{margin:0;display:flex;align-items:center;gap:6px;font:var(--t-legenda);color:var(--tinta-3)}
.signature-time .i{color:var(--ok-escuro-bg)}
.seal-actions{display:flex;flex-direction:column;gap:8px}
.lock-banner .btn{--h:44px}

/* ---------- Dados ---------- */
.data-layout{display:grid;grid-template-columns:minmax(0,880px) minmax(260px,1fr);gap:24px;align-items:start}
.unit-card{position:sticky;top:calc(var(--cabecalho-h) + var(--etapas-h) + 24px);background:#fff;border:1px solid var(--linha);border-radius:var(--r-3);box-shadow:var(--s-1);overflow:hidden}
.unit-art{background:var(--ouro-veu);color:var(--ouro-escuro);padding:24px 24px 0;display:flex;justify-content:center;border-bottom:1px solid var(--linha)}
.unit-art svg{width:100%;max-width:220px;height:auto;display:block}
.unit-info{padding:20px 24px 24px}
.unit-info h3{font:var(--t-h2);margin:0 0 4px}
.unit-info>p{font:var(--t-corpo-p);color:var(--tinta-2);margin:0 0 16px}
.unit-info dl{margin:0;display:grid;gap:12px}
.unit-info dl div{display:flex;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--linha);font:var(--t-corpo-p)}
.unit-info dt{color:var(--tinta-2)}
.unit-info dd{margin:0;text-align:right;font-weight:500;overflow-wrap:anywhere}

/* ---------- Checklist ---------- */
.check-layout{display:grid;grid-template-columns:var(--lateral-ambientes) minmax(0,1fr);gap:32px;align-items:start}
.room-sidebar{position:sticky;top:calc(var(--cabecalho-h) + var(--etapas-h) + 8px);max-height:calc(100dvh - var(--cabecalho-h) - var(--etapas-h) - 24px);display:flex;flex-direction:column;min-width:0}
.sidebar-head{padding:0 12px 16px}
.sidebar-head h2{display:flex;align-items:center;gap:10px;font:var(--t-rotulo);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-2);margin:0 0 10px}
.sidebar-head h2 .chip{height:22px;padding:0 8px;letter-spacing:0}
#overall-count{margin:0 0 8px;font:500 13px/18px var(--f-texto);color:var(--tinta)}
.room-list{flex:1;min-height:0;overflow-y:auto;overflow-anchor:none;display:flex;flex-direction:column;gap:2px;padding:2px;margin:0 -2px;scrollbar-width:thin}
.room-link{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:7px;min-height:56px;padding:9px 12px 10px;border-radius:var(--r-2);text-decoration:none;color:var(--tinta);flex:none}
.room-link>.i{color:var(--ouro-escuro);grid-row:1/3}
.room-name{font:500 14px/18px var(--f-texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-room-progress]{display:contents}
.room-meta{display:inline-flex;align-items:center;gap:8px;font:500 12px/16px var(--f-texto);color:var(--tinta-2);font-variant-numeric:tabular-nums}
.room-meta.is-complete{color:var(--ok-texto)}
.room-meta .i{color:var(--ok)}
.room-nc{display:inline-flex;align-items:center;gap:4px;color:var(--nc-texto)}
.room-nc::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--nc)}
.room-link .progress-track{grid-column:2/4;height:2px}
.room-link.active{background:#fff;box-shadow:var(--s-1)}
.room-link.active::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--ouro)}
@media (hover:hover){.room-link:not(.active):hover{background:rgba(30,28,26,.04)}}
.room-add{margin:12px 12px 0}
@media (min-width:1101px){
  .room-sidebar.short-rail{position:static}
  .room-sidebar .sidebar-head,.room-sidebar .room-add{flex-shrink:0}
  .room-sidebar .room-list{min-height:178px}
}
.room-main{min-width:0;max-width:var(--coluna-itens-max)}
.room-title{position:sticky;top:calc(var(--cabecalho-h) + var(--etapas-h));z-index:6;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:4px 0 16px;margin-bottom:4px;background:var(--marfim);box-shadow:0 1px 0 var(--marfim)}
.room-title-text{display:flex;gap:16px;align-items:center;min-width:0}
.room-title .icon-tile{width:48px;height:48px}
.room-title h2{font:var(--t-h2)}
.room-title .eyebrow{margin-bottom:2px}
.room-title p{margin:4px 0 0;font:var(--t-corpo-p);color:var(--tinta-2);font-variant-numeric:tabular-nums}
.room-tools{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.room-tools .toggle{margin-right:8px}
.icon-tile{width:40px;height:40px;flex:none;border-radius:var(--r-2);background:var(--ouro-veu);color:var(--ouro-escuro);display:grid;place-items:center}
.add-item{margin-top:8px}

.check-item{position:relative;background:#fff;border:1px solid var(--linha);border-radius:var(--r-3);padding:20px 24px 24px;margin-bottom:12px;box-shadow:var(--s-1);transition:box-shadow var(--d-rapido)}
.check-item.is-nc{border-left:3px solid var(--nc);padding-left:22px}
.item-title{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:start}
.item-number{font:500 13px/24px var(--f-titulo);letter-spacing:.06em;color:var(--tinta-2);font-variant-numeric:tabular-nums}
.item-text{min-width:0}
.item-text h3{font:var(--t-h3);letter-spacing:-.01em}
.item-text p{margin:4px 0 0;font:var(--t-corpo-p);color:var(--tinta-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item-actions{display:flex;align-items:center;gap:2px;margin:-8px -10px 0 0}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}
.howto{position:relative}
.howto summary{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:999px;font:500 13px/18px var(--f-texto);color:var(--ouro-texto);cursor:pointer;white-space:nowrap}
.howto[open] summary{background:var(--ouro-veu)}
@media (hover:hover){.howto summary:hover{background:var(--ouro-veu)}}
.howto-tip{position:absolute;right:0;top:calc(100% + 10px);z-index:12;width:320px;max-width:calc(100vw - 48px);margin:0;display:flex;gap:10px;padding:14px 16px;background:var(--grafite);color:var(--marfim);font:400 14px/21px var(--f-texto);border-radius:var(--r-3);box-shadow:var(--s-3);animation:tip-in 180ms var(--ease-saida)}
.howto-tip::before{content:"";position:absolute;top:-5px;right:28px;width:10px;height:10px;background:var(--grafite);transform:rotate(45deg);border-radius:2px}
.howto-tip .i{color:var(--ouro);margin-top:2px}
@keyframes tip-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.item-menu{position:relative}
.item-menu summary{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--tinta-2);cursor:pointer}
.item-menu[open] summary,.item-menu summary:hover{background:rgba(30,28,26,.05)}
.menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:12;min-width:200px;padding:6px;background:#fff;border:1px solid var(--linha);border-radius:var(--r-2);box-shadow:var(--s-3)}
.menu-item{width:100%;min-height:44px;display:flex;align-items:center;gap:10px;padding:0 12px;border:0;border-radius:6px;background:transparent;font:500 14px/20px var(--f-texto);text-align:left;color:var(--tinta)}
.menu-item.danger{color:var(--nc-texto)}
.menu-item:hover{background:var(--nc-tinta)}
.status-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 0}
.status-buttons button{min-height:var(--status-h);display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px;border:1px solid var(--linha-forte);border-radius:var(--r-2);background:#fff;color:var(--tinta);font:600 15px/20px var(--f-texto);transition:background-color var(--d-rapido) var(--ease-saida),color var(--d-rapido),border-color var(--d-rapido),opacity var(--d-rapido)}
.status-buttons button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-buttons [data-status=ok] .i{color:var(--ok)}
.status-buttons [data-status=nc] .i{color:var(--nc)}
.status-buttons [data-status=na] .i{color:var(--na)}
@media (hover:hover){.status-buttons button:not([aria-pressed=true]):not(:disabled):hover{background:var(--ouro-veu)}}
.status-buttons button[aria-pressed=true]{color:#fff;border-color:transparent;box-shadow:var(--s-1)}
.status-buttons button[aria-pressed=true] .i{color:#fff;animation:status-pop 200ms var(--ease-mola)}
.status-buttons [data-status=ok][aria-pressed=true]{background:var(--ok)}
.status-buttons [data-status=nc][aria-pressed=true]{background:var(--nc)}
.status-buttons [data-status=na][aria-pressed=true]{background:var(--na-cheio)}
.status-buttons:has([aria-pressed=true]) button[aria-pressed=false]{opacity:.72}
.status-buttons button:disabled{opacity:.55}
.status-buttons button[aria-pressed=true]:disabled{opacity:1}
@keyframes status-pop{from{transform:scale(.8)}to{transform:none}}
/* Item concluído (Conforme / N/A): linha compacta, sem perder os três botões. */
.check-item.is-done{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:center;padding:14px 16px 14px 24px}
.check-item.is-done>.item-title,.check-item.is-done>.status-buttons{grid-row:1}
.check-item.is-done>:not(.item-title):not(.status-buttons){grid-column:1/-1}
.check-item.is-done .item-title{align-items:center}
.check-item.is-done .item-text p{display:none}
.check-item.is-done .item-actions{margin:0}
.check-item.is-done .howto summary span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.check-item.is-done .howto summary{width:40px;padding:0;justify-content:center}
.check-item.is-done .status-buttons{display:flex;margin:0}
.check-item.is-done .status-buttons button{min-height:52px;padding:0 16px}
.check-item.is-done .status-buttons button[aria-pressed=false]{width:52px;padding:0}
.check-item.is-done .status-buttons button[aria-pressed=false] span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.item-more{margin-top:10px}
.item-more>summary{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;margin-left:-12px;border-radius:999px;font:500 13px/18px var(--f-texto);color:var(--tinta-2);cursor:pointer}
.item-more>summary .count{color:var(--ouro-texto)}
@media (hover:hover){.item-more>summary:hover{background:rgba(30,28,26,.05)}}
.item-more[open]>summary{color:var(--tinta)}
.item-more-body{display:grid;gap:16px;padding-top:8px}
.defect-panel{margin-top:20px;padding:20px;display:grid;gap:20px;background:var(--nc-painel);border:1px solid var(--nc-fio);border-radius:var(--r-2);animation:fade-in var(--d-padrao) ease}
.defect-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.defect-panel .form-grid{gap:16px;padding-top:20px;border-top:1px solid var(--nc-fio)}
.sev-select{position:relative}
.sev-select .sev-dots{position:absolute;left:16px;top:50%;transform:translateY(-50%);pointer-events:none}
.sev-select select{padding-left:52px}
.note-wrap{position:relative}
.note-wrap textarea{padding-right:68px}
.voice-button{position:absolute;right:8px;bottom:8px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--linha);background:#fff;color:var(--tinta);padding:0;transition:background-color var(--d-rapido),color var(--d-rapido)}
@media (hover:hover){.voice-button:hover{background:var(--ouro-veu)}}
.dictating .voice-button{background:var(--grafite);color:var(--ouro);border-color:var(--grafite)}
.dictating .voice-button::after{content:"";position:absolute;inset:-1px;border-radius:50%;box-shadow:0 0 0 2px var(--ouro);animation:mic-halo 1.2s var(--ease-saida) infinite}
.dictating textarea{border-color:var(--ouro-escuro);box-shadow:0 0 0 3px rgba(187,162,123,.28)}
@keyframes mic-halo{from{transform:scale(1);opacity:.6}to{transform:scale(1.35);opacity:0}}
.check-item .field-error{color:var(--tinta-2);font-weight:400}
.check-item .field-error::before{content:"";width:14px;height:14px;flex:none;background:var(--ouro-escuro);-webkit-mask:var(--m-info) center/contain no-repeat;mask:var(--m-info) center/contain no-repeat}

/* ---------- Fotos ---------- */
.photo-area{min-width:0}
.photo-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.photo-controls{display:contents}
.photo-add{position:relative;overflow:hidden;width:102px;height:102px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1.5px dashed var(--linha-forte);border-radius:var(--r-2);background:#fff;color:var(--tinta);font:500 12px/16px var(--f-texto);cursor:pointer;padding:0;transition:background-color var(--d-rapido),border-color var(--d-rapido)}
.photo-add input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.photo-add:focus-within{box-shadow:var(--foco)}
.photo-add--sec{border:1px solid var(--linha);background:var(--papel-quente);color:var(--tinta-2)}
@media (hover:hover){.photo-add:hover{background:var(--ouro-veu);border-color:var(--ouro-escuro)}}
.photo{position:relative;margin:0;width:136px;flex:none;display:flex;flex-direction:column}
.photo-open{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;border-radius:var(--r-2);overflow:hidden;background:var(--linha-suave);cursor:zoom-in;box-shadow:inset 0 0 0 1px rgba(30,28,26,.06)}
.photo-open img{display:block;width:100%;height:100%;object-fit:cover}
.photo-badge{position:absolute;left:6px;top:6px;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--grafite);color:var(--ouro)}
.photo figcaption{order:2;margin-top:6px;font:500 11px/15px var(--f-texto);color:var(--tinta-2);font-variant-numeric:tabular-nums}
.photo-flag{display:block;color:var(--ouro-texto)}
.remove-photo{position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;border:0;padding:0;display:grid;place-items:center;background:rgba(30,28,26,.72);color:#fff}
.remove-photo::before{content:"";position:absolute;inset:-8px}
.annotate-photo{order:3;margin-top:8px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--linha);border-radius:var(--r-2);background:#fff;font:500 13px/18px var(--f-texto);color:var(--tinta)}
@media (hover:hover){.annotate-photo:hover{background:var(--ouro-veu)}}
.annotate-photo .i{color:var(--ouro-escuro)}

/* ---------- Medições e entregas ---------- */
.meter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.meter-card{display:flex;flex-direction:column;gap:16px;padding:20px;border:1px solid var(--linha);border-radius:var(--r-3);background:#fff;min-width:0}
.meter-head{display:flex;align-items:center;gap:12px}
.meter-head h3{font:var(--t-h3)}
.meter-head span.unit{font:var(--t-legenda);color:var(--tinta-2)}
.input-suffix{position:relative}
.input-suffix span{position:absolute;right:16px;top:50%;transform:translateY(-50%);font:500 13px/1 var(--f-texto);color:var(--tinta-2);pointer-events:none}
.field-reading input{min-height:60px!important;padding-right:56px!important;font:500 24px/1 var(--f-titulo)!important;letter-spacing:.03em;font-variant-numeric:tabular-nums}
.sub-details>summary{display:inline-flex;align-items:center;gap:8px;min-height:40px;font:500 13px/18px var(--f-texto);color:var(--tinta-2);cursor:pointer}
.sub-details[open]>summary{margin-bottom:8px;color:var(--tinta)}
.delivery-list{padding-top:8px}
.delivery-row{display:grid;grid-template-columns:40px minmax(150px,1.3fr) 164px minmax(140px,1fr) 48px;gap:16px;align-items:end;padding:16px 0;border-bottom:1px solid var(--linha)}
.delivery-row>.icon-tile{margin-bottom:6px}
.delivery-row:has(> .icon-btn) {}
.delivery-row .field>label{font:var(--t-legenda);color:var(--tinta-2)}
.quantity-controls{display:flex;align-items:stretch;height:52px;border:1px solid var(--linha-forte);border-radius:var(--r-2);overflow:hidden;background:#fff}
.quantity-controls .btn{--h:50px;width:52px;padding:0;border:0;border-radius:0;flex:none;background:#fff}
.quantity-controls input{border:0!important;border-radius:0!important;min-height:50px!important;padding:0!important;text-align:center;font:500 20px/1 var(--f-titulo)!important;box-shadow:none!important}
.quantity-controls input:focus-visible{background:var(--ouro-veu)}
.quantity-controls input[readonly]{background:var(--papel-quente)}
.document-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.doc-check{align-items:center;min-height:64px;padding:12px 16px;margin:0;border:1px solid var(--linha);border-radius:var(--r-2);background:#fff;transition:background-color var(--d-rapido),border-color var(--d-rapido)}
.doc-check>.i{color:var(--ouro-escuro)}
.doc-check>span{flex:1;font:500 14px/20px var(--f-texto);min-width:0}
.doc-check small{display:block;font:var(--t-legenda);color:var(--ok-texto);margin-top:2px}
.doc-check:has(input:checked){border-color:#B9D3C4;background:var(--ok-tinta)}

/* ---------- Resumo ---------- */
.summary-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px;margin-bottom:24px}
.summary-progress{display:flex;align-items:center;gap:28px;margin:0;padding:28px;background:var(--grafite);border-color:var(--grafite);color:var(--marfim);box-shadow:var(--s-2)}
.summary-progress h2{color:var(--marfim);font:600 22px/28px var(--f-titulo);margin:0 0 8px}
.summary-progress p{margin:0;font:var(--t-corpo-p);color:var(--tinta-3);font-variant-numeric:tabular-nums}
.metrics.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.summary-metrics .metric{padding:18px 20px}
.ring{position:relative;flex:none;width:136px;height:136px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.ring circle{fill:none;stroke-width:6}
.ring .ring-track{stroke:var(--grafite-3)}
.ring .ring-fill{stroke:var(--ouro);stroke-linecap:round;animation:ring-draw var(--d-marca) var(--ease-saida) both}
.ring strong{position:relative;font:300 40px/44px var(--f-titulo);letter-spacing:-.02em;color:var(--ouro);font-variant-numeric:tabular-nums}
.ring small{position:relative;display:block;margin-top:2px;font:var(--t-rotulo-p);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-3)}
@keyframes ring-draw{from{stroke-dashoffset:var(--full)}}
.pending-list{padding:8px 24px 8px}
.pending-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:16px;padding:20px 0;border-top:1px solid var(--linha)}
.pending-list .pending-row:first-child{border-top:0}
.pending-index{font:300 22px/28px var(--f-titulo);color:var(--ouro-texto);font-variant-numeric:tabular-nums}
.pending-row .eyebrow{margin-bottom:4px}
.pending-row h3{margin:0 0 10px}
.pending-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.pending-row p{margin:0 0 12px;font:var(--t-corpo-p);color:var(--tinta-2);white-space:pre-wrap;overflow-wrap:anywhere}
.pending-row .photo{width:120px}
.pending-row>.btn{align-self:start}
.summary-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}
.deadline-grid{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:24px;align-items:end}
.deadline-grid .hint{margin:0 0 16px}

/* ---------- Assinaturas ---------- */
.validation-summary{margin-bottom:24px;border-radius:var(--r-2);background:var(--aviso-tinta);border:1px solid #E6DAC4;color:var(--aviso-texto)}
.validation-summary>summary{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;cursor:pointer;font:var(--t-corpo-p)}
.validation-summary>summary b{font-weight:600}
.validation-summary>summary .ver{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-weight:600}
.validation-summary[open]>summary .ver .i{transform:rotate(180deg)}
.validation-summary .validation-list{padding:0 16px 16px 40px}
.acceptance-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}
.radio-option{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border:1px solid var(--linha-forte);border-radius:var(--r-3);cursor:pointer;font:var(--t-corpo-p);line-height:21px;background:#fff;transition:border-color var(--d-rapido),box-shadow var(--d-rapido),background-color var(--d-rapido)}
.radio-option b{font-weight:600;color:var(--tinta)}
.radio-option:has(input:checked){border-color:var(--grafite);box-shadow:inset 0 0 0 1px var(--grafite);background:var(--papel-quente)}
.radio-option:has(input:disabled){opacity:.6;cursor:not-allowed}
.radio-option small{display:block;margin-top:4px;color:var(--tinta-2)}
.legal-term{margin:0;white-space:pre-wrap;font:var(--t-corpo);line-height:25px;color:var(--tinta);max-width:72ch}
.term-box{max-height:280px;overflow:auto;padding:20px 24px;border-radius:var(--r-2);background:var(--papel-quente);border-left:2px solid var(--ouro)}
.gps-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.gps-row .hint{margin:0}
.signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}
.signature-box{background:#fff;border:1px solid var(--linha);border-radius:var(--r-3);padding:24px;box-shadow:var(--s-1);min-width:0}
.signature-box.is-witness{background:var(--papel-quente);box-shadow:none}
.signature-box h3{margin:0}
.sig-fields{margin:16px 0;gap:12px 16px}
.signature-pad{position:relative;border:1px solid var(--linha);border-radius:var(--r-3);background:#fff;overflow:hidden}
.signature-pad canvas{display:block;width:100%;height:180px;touch-action:none;cursor:crosshair;background:linear-gradient(var(--ouro),var(--ouro)) 24px 72%/calc(100% - 48px) 1px no-repeat,var(--x-assinatura) 22px calc(72% - 16px)/14px 14px no-repeat}
.signature-pad::after{content:"Assine sobre a linha";position:absolute;left:46px;top:calc(72% - 21px);font:400 12px/16px var(--f-texto);color:var(--tinta-2);pointer-events:none;transition:opacity 150ms ease}
.signature-pad.signed::after{opacity:0}
.signature-pad.signed{background:var(--papel-quente)}
.signature-pad .signature-image{display:block;width:100%;height:180px;object-fit:contain;background:linear-gradient(var(--ouro),var(--ouro)) 24px 72%/calc(100% - 48px) 1px no-repeat}
.signature-pad>.hint{display:flex;align-items:center;justify-content:center;height:120px;margin:0}
.sig-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
.sig-status{display:inline-flex;align-items:center;gap:6px;margin:0}
.signature-pad.signed+.sig-foot .sig-status{color:var(--ok-texto);font-weight:500}
.signature-pad.signed+.sig-foot .sig-status::before{content:"";width:16px;height:16px;background:var(--ok);-webkit-mask:var(--m-check) center/contain no-repeat;mask:var(--m-check) center/contain no-repeat}
.consent-final{padding:16px 20px;margin:0 0 24px;border-radius:var(--r-3);background:#fff;border:1px solid var(--linha)}
.finalize-band{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;border-radius:var(--r-4);background:var(--grafite);color:var(--marfim);box-shadow:inset 0 1px 0 rgba(187,162,123,.7),var(--s-2)}
.finalize-band h3{color:var(--marfim);margin:0 0 6px}
.finalize-band p{margin:0;font:var(--t-corpo-p);color:var(--tinta-3);max-width:52ch}
.finalize-band .actions{flex:none}

/* ---------- Relatório (prévia) ---------- */
.report-preview-info{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.report-preview-info p{margin:6px 0 0;font:var(--t-corpo-p);color:var(--tinta-2);font-variant-numeric:tabular-nums}
.report-preview-info .actions{gap:8px}
.pdf-help{position:relative}
.pdf-help>summary{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ouro-escuro);cursor:pointer}
.pdf-help>summary:hover,.pdf-help[open]>summary{background:var(--ouro-veu)}
.pdf-help p{position:absolute;right:0;top:calc(100% + 8px);z-index:12;width:320px;max-width:calc(100vw - 48px);margin:0;padding:14px 16px;background:var(--grafite);color:var(--marfim);font:400 13px/20px var(--f-texto);border-radius:var(--r-3);box-shadow:var(--s-3)}
.report-preview{background:var(--previa);border-radius:var(--r-3);padding:32px;overflow:auto}

/* ---------- Painel gerencial ---------- */
.dash-heading{align-items:flex-end}
.select-pill{position:relative;display:flex;align-items:center}
.select-pill .i{position:absolute;left:16px;color:var(--tinta-2)}
.select-pill select{min-height:44px!important;border-radius:999px!important;padding-left:44px!important;padding-right:44px;font:500 14px/20px var(--f-texto)!important;min-width:260px}
.dash-kpis{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin-bottom:24px}
.dash-kpis>.metric{grid-column:span 2;padding:20px}
.dash-kpis>.metric .eyebrow{white-space:normal;line-height:14px;min-height:28px;align-items:flex-start}
.dash-kpis>.metric .eyebrow .i{color:var(--ouro-escuro);margin-top:-2px}
.dash-kpis>.metric strong{margin-top:auto}
.dash-kpis .is-nc strong{color:var(--nc-texto)}.dash-kpis .is-ok strong{color:var(--ok-texto)}
.share-steps{margin:0 0 8px;padding:0;list-style:none;counter-reset:passo;display:grid;gap:12px}
.share-steps li{counter-increment:passo;display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px 12px;align-items:center;padding:16px;border:1px solid var(--linha);border-radius:var(--r-2)}
.share-steps li::before{content:counter(passo);grid-row:1/3;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--grafite);color:var(--ouro);font:600 13px/1 var(--f-titulo)}
.share-steps li>span{font:var(--t-corpo-p);color:var(--tinta-2)}
.share-steps li>.btn,.share-steps li>label{grid-column:2;justify-self:start;margin:8px 0 0!important}
.kpi-hero{grid-column:span 4;display:flex;align-items:center;gap:20px;padding:24px;border-radius:var(--r-3);background:var(--grafite);color:var(--marfim);box-shadow:var(--s-2);min-width:0}
.kpi-hero .ring{width:120px;height:120px}
.kpi-hero .ring strong{font:300 36px/40px var(--f-titulo)}
.kpi-hero h2{color:var(--marfim);font:600 18px/24px var(--f-titulo);margin:0 0 6px}
.kpi-hero p{margin:0 0 10px;font:var(--t-corpo-p);color:var(--tinta-3)}
.kpi-goal{display:inline-flex;align-items:center;gap:8px;font:var(--t-legenda);color:var(--ouro-claro)}
.kpi-goal::before{content:"";width:2px;height:12px;background:var(--ouro)}
.dashboard-charts{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px}
.dashboard-charts .panel{margin:0}
.chart-stat{display:flex;align-items:baseline;gap:12px;margin:0 0 16px}
.chart-stat strong{font:300 40px/44px var(--f-titulo);letter-spacing:-.02em;color:var(--ok-texto);font-variant-numeric:tabular-nums}
.chart-stat span{font:var(--t-corpo-p);color:var(--tinta-2)}
.legend{display:flex;gap:16px;font:var(--t-legenda);color:var(--tinta-2);align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:2px;background:var(--nc)}
.legend i.sw-ok{background:var(--ok)}
.chart{display:block;width:100%;height:auto;overflow:visible}
.chart text{font:500 11px var(--f-texto);fill:var(--tinta-2);font-variant-numeric:tabular-nums}
.chart .lbl{font:500 13px var(--f-texto);fill:var(--tinta)}
.chart .val{font:600 15px var(--f-titulo);fill:var(--tinta)}
.chart .grid{stroke:var(--linha-suave);stroke-width:1}
.chart .bar{transform-box:fill-box;transform-origin:left;animation:bar-grow var(--d-marca) var(--ease-saida) both}
.chart .bar:nth-of-type(2){animation-delay:60ms}
@keyframes bar-grow{from{transform:scaleX(0)}}
.top5{display:flex;flex-direction:column;gap:18px}
.top-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;column-gap:12px;row-gap:8px;align-items:baseline}
.top-rank{font:300 20px/24px var(--f-titulo);color:var(--ouro-escuro);font-variant-numeric:tabular-nums}
.top-name{font:500 15px/20px var(--f-texto);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-item b{font:600 15px/20px var(--f-titulo);font-variant-numeric:tabular-nums}
.top-item svg{grid-column:2/4;width:100%;height:6px;display:block}
.top-item svg .bar{transform-box:fill-box;transform-origin:left;animation:bar-grow var(--d-marca) var(--ease-saida) both}
.project-index{display:flex;flex-direction:column;gap:20px}
.project-line{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr) 64px;gap:16px;align-items:center}
.project-line b{font:500 15px/20px var(--f-texto)}
.project-line small{display:block;font:var(--t-legenda);color:var(--tinta-2);margin-top:2px}
.project-line .num{font:600 18px/1 var(--f-titulo);text-align:right}
.index-bar{position:relative;height:8px;border-radius:4px;background:var(--linha-suave)}
.index-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--grafite)}
.index-bar u{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--ouro);text-decoration:none}
.dash-foot{margin-top:16px;display:flex;align-items:center;gap:8px}

/* ---------- Modo cliente ---------- */
.client-view #main{max-width:none;padding:0}
.client-view>.app-header,.client-view>.app-footer{display:none}
.client-summary{min-height:100dvh;background:var(--marfim);font:var(--t-corpo-g)}
.client-hero{background:var(--grafite);color:var(--marfim);padding:24px max(var(--margem),calc((100% - 1040px)/2)) 48px;box-shadow:inset 0 -1px 0 rgba(187,162,123,.6)}
.client-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:48px}
.client-bar img{height:28px;width:auto}
.client-hero h1{color:var(--marfim);font:300 44px/52px var(--f-titulo);letter-spacing:-.02em;margin:0 0 16px}
.client-hero>p{font:var(--t-corpo-g);color:var(--ouro-claro);margin:0 0 36px;max-width:56ch}
.client-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--grafite-3)}
.client-stats div{padding:20px 20px 0;border-left:1px solid var(--grafite-3)}
.client-stats div:first-child{border-left:0;padding-left:0}
.client-stats strong{display:block;font:300 44px/48px var(--f-titulo);color:var(--ouro);font-variant-numeric:tabular-nums}
.client-stats span{display:block;margin-top:4px;font:var(--t-rotulo);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-3)}
.client-body{max-width:1040px;margin:0 auto;padding:48px var(--margem) 140px}
.client-section{font:600 28px/34px var(--f-titulo);letter-spacing:-.02em;margin:0 0 8px}
.client-lead{color:var(--tinta-2);margin:0 0 32px}
.client-pending{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:center;padding:32px 0;border-top:1px solid var(--linha)}
.client-photo{display:block;width:100%;aspect-ratio:16/10;padding:0;border:0;border-radius:var(--r-3);overflow:hidden;background:var(--linha-suave);box-shadow:var(--s-2);cursor:zoom-in}
.client-photo img{display:block;width:100%;height:100%;object-fit:cover}
.client-photo.is-empty{display:grid;place-items:center;color:var(--tinta-2);font:var(--t-corpo-p);cursor:default}
.client-thumbs{display:flex;gap:8px;margin-top:8px}
.client-thumbs .client-photo{width:96px;aspect-ratio:4/3;box-shadow:none;border-radius:var(--r-2)}
.client-pending h3{font:600 24px/30px var(--f-titulo);margin:4px 0 12px}
.client-pending .chip{margin-bottom:16px}
.client-pending p{font:400 18px/28px var(--f-texto);margin:0 0 16px;white-space:pre-wrap;overflow-wrap:anywhere}
.client-meta{display:flex;align-items:center;gap:8px;font:var(--t-corpo-p)!important;color:var(--tinta-2)}
.client-meta .i{color:var(--ouro-escuro)}
.client-term{margin-top:48px}
.client-term .legal-term{font:var(--t-corpo-g);line-height:28px;padding:24px 28px;border-radius:var(--r-3);background:#fff;border-left:2px solid var(--ouro);max-width:none}
.client-sign-action{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;padding:16px var(--margem) calc(16px + env(safe-area-inset-bottom));background:rgba(246,243,238,.92);backdrop-filter:blur(12px);border-top:1px solid var(--linha)}

/* ---------- Revistoria ---------- */
.review-progress{display:flex;align-items:center;gap:12px;min-width:220px}
.review-progress .progress-track{flex:1;height:6px}
.review-progress .progress-track i{background:var(--ok)}
.review-progress b{font:600 15px/1 var(--f-titulo);font-variant-numeric:tabular-nums}
.repair-card h2{font:600 20px/26px var(--f-titulo)}
.repair-card .panel-body>p:first-child{font:var(--t-corpo-p);color:var(--tinta-2)}
.state-track{display:flex;align-items:center;gap:8px;margin:0 0 20px;font:var(--t-legenda);color:var(--tinta-2)}
.state-track span{display:inline-flex;align-items:center;gap:6px}
.state-track span::before{content:"";width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--linha-forte)}
.state-track span.on{color:var(--tinta)}
.state-track span.on::before{background:var(--ok);box-shadow:none}
.state-track i{flex:0 0 32px;height:1px;background:var(--linha-forte)}
.before-after{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:16px;align-items:start;margin:0 0 20px}
.ba-arrow{align-self:center;color:var(--ouro);display:grid;place-items:center}
.ba-label{display:inline-block;margin-bottom:10px;padding:4px 10px;border-radius:var(--r-1);background:var(--grafite);color:var(--ouro-claro);font:var(--t-rotulo-p);letter-spacing:.22em}
.before-after .photo{width:100%}
.before-after .photo-grid{flex-direction:column;align-items:stretch}
.before-after .photo-controls{display:flex;gap:12px}
.repair-upload{position:relative;overflow:hidden;margin-bottom:20px}
.repair-upload input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.repair-card .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}

/* ---------- Configurações ---------- */
.settings-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.settings-term textarea{min-height:140px;margin:8px 0 16px}
.settings-grid .panel-body>p{font:var(--t-corpo-p);color:var(--tinta-2)}
.project-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-top:1px solid var(--linha)}
.project-row:first-of-type{border-top:0}
.project-row h3{margin:0 0 4px}
.project-row p{margin:0;font:var(--t-corpo-p);color:var(--tinta-2)}
.backup-buttons{display:grid;gap:12px;margin:16px 0}
.backup-import{position:relative;overflow:hidden}
.backup-import input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.demo-panel .panel-body{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.demo-panel .panel-body p{margin:0;font:var(--t-corpo-p);color:var(--tinta-2)}
.history{font:var(--t-corpo-p);color:var(--tinta-2);padding:20px 0}

/* ---------- Diálogos de recurso (webcam, anotação, compartilhar) ---------- */
.feature-dialog{width:min(720px,calc(100% - 32px))}
.feature-dialog .modal-head{margin-bottom:12px}
.feature-dialog .modal-head h2{margin:0}
.feature-dialog video{display:block;width:100%;max-height:55dvh;margin:16px 0;border-radius:var(--r-2);background:var(--grafite)}
.feature-dialog label:not(.filter-check){display:flex;flex-direction:column;gap:8px;margin:12px 0;font:500 13px/18px var(--f-texto)}
.feature-dialog .field-error{margin:8px 0}
.feature-dialog>p{font:var(--t-corpo-p);color:var(--tinta-2)}
.feature-dialog>.btn{margin:8px 8px 0 0}
.feature-dialog.is-editor[open]{display:flex}
.feature-dialog.is-editor{flex-direction:column;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border-radius:0;background:var(--grafite);color:var(--marfim);overflow:hidden}
.feature-dialog.is-editor::backdrop{background:var(--grafite)}
.is-editor .modal-head{margin:0;padding:12px 24px;border-bottom:1px solid var(--grafite-3);flex:none}
.is-editor .modal-head h2{color:var(--marfim);font:600 16px/24px var(--f-titulo)}
.is-editor .modal-head .icon-btn{background:transparent;border-color:var(--grafite-3);color:var(--ouro-claro)}
.editor{flex:1;min-height:0;display:flex;flex-direction:column}
.editor-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px 24px 12px}
.editor-stage canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:var(--r-1);box-shadow:var(--s-3);touch-action:none;cursor:crosshair}
.editor-toolbar{align-self:center;display:flex;align-items:center;gap:4px;height:64px;padding:8px;margin:4px 0 12px;border-radius:999px;background:var(--grafite-2);box-shadow:var(--s-3),inset 0 0 0 1px var(--grafite-3)}
.tool{width:48px;height:48px;border:0;border-radius:50%;display:grid;place-items:center;background:transparent;color:var(--ouro-claro);padding:0;transition:background-color var(--d-rapido),color var(--d-rapido)}
.tool[aria-pressed=true]{background:var(--ouro);color:var(--grafite)}
@media (hover:hover){.tool:not([aria-pressed=true]):hover{background:rgba(233,223,204,.08)}}
.tool-sep{width:1px;height:28px;margin:0 8px;background:var(--grafite-3)}
.swatch{width:48px;height:48px;border:0;border-radius:50%;display:grid;place-items:center;background:transparent;padding:0}
.swatch::before{content:"";width:28px;height:28px;border-radius:50%;background:var(--sw)}
.swatch[aria-pressed=true]::before{box-shadow:0 0 0 2px var(--grafite-2),0 0 0 4px #fff}
.editor-foot{flex:none;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 24px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--grafite-3)}
.editor-hint{display:flex;align-items:center;gap:8px;margin:0 auto 0 0;font:var(--t-corpo-p);color:var(--tinta-3)}
.editor-hint .i{color:var(--ouro)}
.editor-foot .filter-check{color:var(--ouro-claro);font-size:13px}
.editor-foot .filter-check input{accent-color:var(--ouro)}
.editor-foot [data-gps-state]{font:var(--t-legenda);color:var(--tinta-3)}

/* ---------- Toast e processamento ---------- */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:150;display:flex;align-items:center;gap:10px;width:max-content;max-width:min(560px,calc(100% - 32px));padding:12px 20px;border-radius:24px;background:var(--grafite);color:var(--marfim);font:400 14px/20px var(--f-texto);box-shadow:var(--s-3);animation:toast-in 220ms var(--ease-saida)}
.toast .i{width:18px;height:18px;color:var(--ouro)}
.toast[data-kind=ok] .i{color:var(--ok-escuro-bg)}
.toast[data-kind=erro] .i{color:var(--nc-escuro-bg)}
.feedback-results{max-width:calc(var(--conteudo-max) + 2*var(--margem));margin:0 auto;padding:0 var(--margem)}
.feedback-results:has(>.batch-result[hidden]):not(:has(.toast:not([hidden]))){display:none}
.batch-result{margin:16px 0;border:1px solid var(--linha);border-left:3px solid var(--nc);border-radius:var(--r-2);background:#fff;font:var(--t-corpo-p);overflow-wrap:anywhere}
.batch-result>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;color:var(--nc-texto);font-weight:500;cursor:pointer}
.batch-result[open]>summary>.i,.batch-details details[open]>summary>.i{transform:rotate(180deg)}
.batch-details{max-height:min(240px,30dvh);overflow:auto;overscroll-behavior:contain;padding:0 16px 16px}
.batch-details p{margin:8px 0}.batch-details ul{margin:0;padding-left:20px}.batch-details li+li{margin-top:12px}
.batch-details details{color:var(--tinta-2);font:var(--t-legenda)}
.batch-details summary{display:flex;align-items:center;gap:8px;cursor:pointer}
.toast.toast-inline{position:static;transform:none;max-width:100%;width:fit-content;margin:16px auto;animation:none}
@media print{.feedback-results{display:none!important}}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes toast-fade{from{opacity:0}to{opacity:1}}
.processing{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:32px;background:rgba(30,28,26,.88);backdrop-filter:blur(6px);color:var(--marfim);font:500 18px/26px var(--f-titulo)}
.busy{opacity:.6;pointer-events:none}

/* ---------- Responsivo: retrato e telas menores ---------- */
@media (max-width:1180px){
  .data-layout{grid-template-columns:minmax(0,1fr) 280px}
  .dash-kpis>.metric .eyebrow{font-size:10px;letter-spacing:.14em}
}
@media (max-width:1100px){
  .header-context{display:none}
  .home-top{grid-template-columns:1fr}
  .hero{min-height:0}
  .metrics.home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
  .case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .check-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .room-sidebar{position:sticky;top:calc(var(--cabecalho-h) + var(--etapas-h));z-index:7;max-height:none;margin:0 calc(-1*var(--margem)) 16px;padding:12px var(--margem);background:var(--marfim);border-bottom:1px solid var(--linha)}
  .sidebar-head{display:flex;align-items:center;gap:16px;padding:0 0 10px}
  .sidebar-head h2{margin:0}
  #overall-count{margin:0;flex:1;text-align:right}
  .sidebar-head .progress-track{display:none}
  .room-list{flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:8px;padding:2px;margin:0 -2px;scroll-snap-type:none;scrollbar-width:none}
  .room-list::-webkit-scrollbar{display:none}
  .room-link{grid-template-columns:20px auto auto;min-height:48px;padding:8px 14px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--linha);scroll-snap-align:start;row-gap:0}
  .room-link>.i{grid-row:auto;width:18px;height:18px}
  .room-link .progress-track{display:none}
  .room-link.active{background:var(--grafite);color:var(--marfim);box-shadow:none}
  .room-link.active::before{display:none}
  .room-link.active>.i{color:var(--ouro)}
  .room-link.active .room-meta{color:var(--ouro-claro)}
  .room-name{max-width:180px}
  .room-sidebar{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center}
  .sidebar-head{grid-column:1/-1}
  .room-add{margin:0;width:48px;padding:0}
  .room-add .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .room-main{max-width:none}
  .room-title{top:calc(var(--cabecalho-h) + var(--etapas-h) + 85px)}
  .meter-grid{grid-template-columns:minmax(0,1fr)}
  .meter-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
  .meter-card>.meter-head,.meter-card>.photo-area,.meter-card>.sub-details{grid-column:1/-1}
  .summary-hero{grid-template-columns:1fr}
  .metrics.summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lock-banner{grid-template-columns:auto minmax(0,1fr);gap:20px 24px}
  .lock-banner .seal-meta{grid-column:1/-1}
  .lock-banner .seal-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}
  .seal code{max-width:none}
  .dash-kpis>.metric{grid-column:span 3}
  .kpi-hero{grid-column:1/-1}
  .dashboard-charts{grid-template-columns:minmax(0,1fr)}
  .settings-grid{grid-template-columns:minmax(0,1fr)}
  .data-layout{grid-template-columns:minmax(0,1fr)}
  .unit-card{position:static;order:-1;display:grid;grid-template-columns:200px minmax(0,1fr)}
  .unit-art{border-bottom:0;border-right:1px solid var(--linha);align-items:flex-end;padding:20px 20px 0}
  .unit-info dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
}
@media (max-width:900px){
  .brand span{display:none}
  .connection{font-size:0;margin-right:4px;gap:0}
  .header-btn .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .header-btn{width:44px;padding:0}
  .workflow a::after{margin:0 8px 0 2px}
  .workflow a:not([aria-current=step]) span{display:none}
  .workflow a[aria-current=step]{flex:2 1 0}
  .case-heading{flex-direction:column;align-items:flex-start;gap:16px}
  .step-footer{position:sticky;bottom:0;z-index:25;margin:32px calc(-1*var(--margem)) calc(-1*var(--e-16));padding:12px var(--margem) calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-top:1px solid var(--linha)}
  .step-footer .hint{display:none}
  .acceptance-options{grid-template-columns:minmax(0,1fr)}
  .finalize-band{flex-direction:column;align-items:flex-start}
  .client-pending{grid-template-columns:minmax(0,1fr);gap:20px}
  .client-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .client-stats div:nth-child(3){border-left:0;padding-left:0}
  .client-hero h1{font:300 36px/44px var(--f-titulo)}
  .report-preview{padding:16px}
  .report-host{zoom:.86}
  .delivery-row{grid-template-columns:40px minmax(0,1fr) 164px 48px}
  .delivery-row>.delivery-note{grid-column:2/4;grid-row:2}
  .delivery-row>.icon-btn{grid-row:1;grid-column:4}
  .repair-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .repair-card .form-grid>:last-child{grid-column:1/-1}
}
@media (max-width:760px){
  .app-header{gap:12px}
  .brand img{height:20px}
  .btn{white-space:normal;text-align:center}
  .metrics.home-metrics,.metrics.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{padding:24px}
  .hero h1{font:300 26px/34px var(--f-titulo)}
  .hero-art{display:none}
  .case-grid{grid-template-columns:minmax(0,1fr)}
  .list-head,.toolbar{align-items:stretch}
  .toolbar,.search{width:100%}
  .tabs{width:100%}.tabs button{flex:1}
  .form-grid,.defect-row,.sig-fields{grid-template-columns:minmax(0,1fr)}
  .panel-head,.panel-body{padding-left:20px;padding-right:20px}
  .page-heading{flex-direction:column;align-items:flex-start}
  .room-title{flex-direction:column;align-items:flex-start}
  .room-tools{justify-content:flex-start}
  .check-item{padding:16px}
  .check-item.is-nc{padding-left:14px}
  .item-title{grid-template-columns:24px minmax(0,1fr)}
  .item-actions{grid-column:1/-1;margin:0}
  .status-buttons button{flex-direction:column;gap:4px;font-size:13px;padding:0 6px}
  .check-item.is-done{display:block}
  .check-item.is-done .status-buttons{margin-top:12px}
  .check-item.is-done .status-buttons button{flex:1}
  .check-item.is-done .status-buttons button[aria-pressed=false]{flex:0 0 52px}
  .meter-card{display:flex}
  .delivery-row{grid-template-columns:40px minmax(0,1fr) 48px}
  .delivery-row>.field-qty{grid-column:2/3;grid-row:2}
  .delivery-row>.delivery-note{grid-column:2/3;grid-row:3}
  .delivery-row>.icon-btn{grid-column:3;grid-row:1}
  .document-list{grid-template-columns:minmax(0,1fr)}
  .pending-row{grid-template-columns:minmax(0,1fr)}
  .pending-index{font-size:18px}
  .signature-grid{grid-template-columns:minmax(0,1fr)}
  .deadline-grid{grid-template-columns:minmax(0,1fr)}
  .lock-banner{grid-template-columns:minmax(0,1fr);padding:24px}
  .finalize-band{padding:24px}
  .dash-kpis>.metric{grid-column:span 6}
  .kpi-hero{flex-direction:column;align-items:flex-start}
  .select-pill select{min-width:0}
  .field-filter,.select-pill{width:100%}
  .project-line{grid-template-columns:minmax(0,1fr) 56px}
  .project-line .index-bar{grid-column:1/-1;grid-row:2}
  .client-hero h1{font:300 30px/38px var(--f-titulo)}
  .client-stats strong{font-size:34px;line-height:40px}
  .before-after{grid-template-columns:minmax(0,1fr)}
  .ba-arrow{transform:rotate(90deg)}
  .repair-card .form-grid{grid-template-columns:minmax(0,1fr)}
  .report-host{zoom:.45}
  .unit-card{grid-template-columns:minmax(0,1fr)}
  .unit-art{border-right:0;border-bottom:1px solid var(--linha)}
  .app-footer{flex-direction:column;gap:8px}
  dialog{padding:24px}
  .modal-actions{flex-direction:column-reverse}
  .modal-actions .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important;scroll-behavior:auto!important}
  .dictating .voice-button::after{animation:none!important;opacity:0}
}

/* ==========================================================================
   Relatório A4 editorial (prévia e impressão)
   ========================================================================== */
@page{size:A4;margin:0}
#print-root{display:none}
#print-root.measuring{display:block;position:absolute;left:-10000px;top:0;width:210mm;pointer-events:none}
.report-host{width:210mm;margin:0 auto}
.report-sheet{position:relative;width:210mm;height:297mm;margin:0 auto 24px;padding:14mm 18mm 0;overflow:hidden;background:#fff;color:#24211E;font:9pt/13.5pt var(--f-texto);box-shadow:0 2px 6px rgba(30,28,26,.08),0 16px 40px -12px rgba(30,28,26,.22);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.report-sheet *{box-sizing:border-box}
.paper-header{height:10mm;display:flex;align-items:center;justify-content:space-between;gap:8mm;border-bottom:.5pt solid #BBA27B;margin-bottom:6mm}
.paper-header img{width:22mm;height:auto;display:block}
.paper-header span{font:600 6.5pt/1.4 var(--f-titulo);letter-spacing:.2em;text-transform:uppercase;color:#6E675E;text-align:right}
.paper-body{height:241mm;overflow:hidden}
.paper-unit{min-width:0}
.paper-footer{position:absolute;left:18mm;right:18mm;bottom:8mm;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;gap:6mm;align-items:start;border-top:.25pt solid #E6E0D6;padding-top:2.5mm;font:6.5pt/1.5 var(--f-texto);color:#6E675E}
.paper-footer p{margin:0}
.foot-code{font-family:var(--f-mono);text-align:center;color:#24211E;overflow-wrap:anywhere}
.paper-footer .page-no{font:600 7pt/1.5 var(--f-titulo);color:#24211E;text-align:right;white-space:nowrap}
.paper-section{font:600 15pt/1.25 var(--f-titulo);letter-spacing:-.01em;color:#1E1C1A;margin:7mm 0 4mm;padding-bottom:2.5mm;border-bottom:.5pt solid #BBA27B}
.paper-body>.paper-unit:first-child .paper-section{margin-top:0}
.paper-section small{display:block;margin-top:1.2mm;font:400 8pt/1.4 var(--f-texto);letter-spacing:0;color:#6E675E}
.paper-room{position:relative;font:600 11pt/1.3 var(--f-titulo);color:#1E1C1A;margin:5mm 0 2mm;padding-left:15mm;overflow-wrap:anywhere}
.paper-room::before{content:"";position:absolute;left:0;top:.62em;width:12mm;border-top:.75pt solid #BBA27B}
.paper-room small{font:500 8pt var(--f-texto);color:#6E675E;letter-spacing:0;margin-left:2mm;font-variant-numeric:tabular-nums}
.paper-label{font:600 6.5pt/1.3 var(--f-titulo);letter-spacing:.2em;text-transform:uppercase;color:#8C7346;margin:0 0 1.2mm}
.paper-data{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4mm 6mm;margin:2mm 0 4mm}
.paper-data>div{min-width:0;overflow-wrap:anywhere}
.paper-data b{display:block;font-weight:500;font-size:9pt;line-height:12pt;color:#24211E}
.paper-data .is-empty b{color:#9C958B;font-weight:400}
.paper-text{margin:1.6mm 0;font-size:9pt;line-height:13.5pt;white-space:pre-wrap;overflow-wrap:anywhere}
.paper-compact{margin:1.2mm 0;font-size:8pt;line-height:12pt;color:#6E675E;overflow-wrap:anywhere}
.paper-compact b{font-weight:600;color:#24211E}
.paper-compact .dot{display:inline-block;width:2mm;height:2mm;border-radius:50%;margin-right:1.5mm;vertical-align:.1mm;background:#9C958B}
.paper-compact .dot.ok{background:#2F7D5B}.paper-compact .dot.na{background:#8A847B}.paper-compact .dot.vazio{background:#fff;box-shadow:inset 0 0 0 .5pt #958A78}
.paper-table-head,.paper-item{display:grid;grid-template-columns:8mm minmax(0,1fr) 32mm;gap:3mm}
.paper-table-head{font:600 6.5pt/1 var(--f-titulo);letter-spacing:.2em;text-transform:uppercase;color:#6E675E;padding:2mm 0;border-bottom:.5pt solid #1E1C1A;margin-top:2mm}
.paper-item{padding:2.2mm 0;border-bottom:.25pt solid #E6E0D6;font-size:8.5pt;line-height:12pt;break-inside:avoid}
.paper-item .n{color:#6E675E;font-variant-numeric:tabular-nums}
.paper-item strong{font-weight:600;overflow-wrap:anywhere}
.paper-item p{margin:1mm 0 0;color:#6E675E;white-space:pre-wrap;overflow-wrap:anywhere}
.paper-status{display:inline-flex;align-items:center;gap:1.6mm;font:600 7.5pt/1.2 var(--f-texto);color:#6E675E;white-space:nowrap}
.paper-status::before{content:"";width:2mm;height:2mm;border-radius:50%;background:currentColor;flex:none}
.paper-status.ok{color:#256A4C}.paper-status.nc{color:#9E3B30}.paper-status.na{color:#66615A}
.paper-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:2mm 0 8mm}
.paper-kpis>div{padding:1mm 5mm;border-left:.25pt solid #E6E0D6}
.paper-kpis>div:first-child{padding-left:0;border-left:0}
.paper-kpis strong{display:block;font:300 30pt/1 var(--f-titulo);letter-spacing:-.02em;color:#1E1C1A;font-variant-numeric:tabular-nums}
.paper-kpis .is-index strong{color:#8C7346}
.paper-kpis span{display:flex;align-items:center;gap:1.5mm;margin-top:2.5mm;font:600 6.5pt/1.2 var(--f-titulo);letter-spacing:.18em;text-transform:uppercase;color:#6E675E}
.paper-kpis span i{width:2mm;height:2mm;border-radius:50%;background:#2F7D5B}
.paper-kpis .is-nc span i{background:#B4473A}.paper-kpis .is-na span i{background:#8A847B}
.paper-room-summary{display:grid;grid-template-columns:minmax(0,1fr) 40mm 30mm;gap:4mm;align-items:center;padding:2mm 0;border-bottom:.25pt solid #E6E0D6;font-size:8.5pt}
.paper-room-summary b{font-weight:500;overflow-wrap:anywhere}
.paper-room-summary svg{width:40mm;height:2.2mm;display:block}
.paper-room-summary span{text-align:right;font-variant-numeric:tabular-nums;color:#6E675E;white-space:nowrap}
.paper-room-summary.is-head span:first-child{text-align:left}
.paper-room-summary.is-head{font:600 6.5pt/1 var(--f-titulo);letter-spacing:.2em;text-transform:uppercase;color:#6E675E;border-bottom:.5pt solid #1E1C1A}
.paper-legend{display:flex;gap:5mm;margin:2.5mm 0 0;font-size:7pt;color:#6E675E}
.paper-legend i{display:inline-block;width:2.4mm;height:2.4mm;border-radius:.5mm;margin-right:1.2mm;vertical-align:-.3mm;background:#2F7D5B}
.paper-legend i.nc{background:#B4473A}.paper-legend i.na{background:#B5AEA4}.paper-legend i.vazio{background:#EFECE7}
.paper-pend{display:grid;grid-template-columns:11mm minmax(0,1fr) 26mm 18mm;gap:3mm;align-items:baseline;padding:2.2mm 0;border-bottom:.25pt solid #E6E0D6;font-size:8.5pt}
.paper-pend .pid{font:500 8.5pt var(--f-titulo);color:#8C7346;font-variant-numeric:tabular-nums}
.paper-pend small{display:block;color:#6E675E;font-size:7.5pt}
.paper-pend .prazo{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.paper-sev{display:inline-flex;align-items:center;gap:.8mm;font-size:7.5pt;color:#6E675E;white-space:nowrap}
.paper-sev i{width:1.6mm;height:1.6mm;border-radius:50%;background:#D9D3C9}
.paper-sev.leve i:nth-child(-n+1){background:#8C7346}.paper-sev.moderada i:nth-child(-n+2){background:#B86E2E}.paper-sev.grave i{background:#B4473A}
.paper-sev b{font-weight:500;margin-left:1mm;color:#24211E}
.paper-meta{margin:1mm 0 2mm;font-size:7.5pt;color:#6E675E}
.paper-photo-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5mm;margin:2mm 0 4mm;break-inside:avoid}
.paper-photo-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:4mm}
.paper-photo-row figure{margin:0;min-width:0;position:relative}
.paper-photo-row img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:contain;border:.25pt solid #E6E0D6;background:#fff}
.paper-photo-row figcaption{padding-top:1.6mm;font-size:7pt;line-height:1.45;color:#6E675E;overflow-wrap:anywhere}
.paper-photo-row figcaption b{display:block;font-size:7.5pt;font-weight:600;color:#24211E}
.paper-photo-row .tag{position:absolute;left:2mm;top:2mm;padding:.8mm 2mm;background:#1E1C1A;color:#E9DFCC;font:600 6pt/1 var(--f-titulo);letter-spacing:.2em}
.paper-photo-row p{margin:0;padding:8mm 0;text-align:center;color:#9C958B;border:.25pt dashed #D9D3C9}
.paper-photo-row.is-ba{grid-template-columns:minmax(0,1fr) 6mm minmax(0,1fr);align-items:center}
.paper-photo-row.is-ba .arrow{width:5mm;height:5mm;color:#BBA27B}
.meter-paper{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40mm;gap:4mm;align-items:baseline;padding:2.4mm 0;border-bottom:.25pt solid #E6E0D6;font-size:8.5pt}
.meter-paper b{font-weight:600}
.meter-paper .reading{text-align:right;font:500 12pt/1 var(--f-titulo);font-variant-numeric:tabular-nums;color:#1E1C1A}
.meter-paper .reading small{font:500 7.5pt var(--f-texto);color:#6E675E;margin-left:1mm}
.paper-doc{display:flex;align-items:center;gap:2.5mm;padding:1.8mm 0;border-bottom:.25pt solid #E6E0D6;font-size:8.5pt}
.paper-doc .box{width:3mm;height:3mm;flex:none;border:.5pt solid #958A78;border-radius:.4mm;display:grid;place-items:center}
.paper-doc.is-on .box{background:#1E1C1A;border-color:#1E1C1A}
.paper-doc.is-on .box svg{width:2.4mm;height:2.4mm;color:#fff}
.paper-doc span{flex:1}
.paper-doc small{color:#6E675E;font-size:7.5pt;font-variant-numeric:tabular-nums}
.paper-term{margin:2mm 0;font-size:9.5pt;line-height:15pt;text-align:justify;hyphens:auto;-webkit-hyphens:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.paper-stamp{margin:3mm 0 4mm;padding:4mm 5mm;border:.5pt solid #BBA27B;background:#FBF9F5;font-size:9pt;line-height:14pt}
.paper-stamp b{font-weight:600}
.paper-draft{margin:4mm 0;padding:3mm 4mm;border:.5pt solid #E3C0B9;background:#FBF7F5;color:#9E3B30;font:600 7.5pt/1.5 var(--f-texto);letter-spacing:.02em}
.paper-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9mm 12mm;margin:8mm 0 4mm}
.paper-signature{min-width:0;font-size:8pt;line-height:1.5;color:#6E675E;overflow-wrap:anywhere}
.paper-signature img{display:block;width:100%;max-width:100%;height:22mm;object-fit:contain;object-position:left bottom}
.paper-signature .blank{height:22mm}
.paper-signature b{display:block;margin-top:1mm;padding-top:2mm;border-top:.5pt solid #1E1C1A;font-size:9pt;font-weight:600;color:#24211E}
.paper-auth{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6mm;align-items:start;margin:6mm 0 3mm;padding:4mm 5mm;border:.5pt solid #BBA27B}
.paper-auth .paper-label{margin-bottom:1.5mm}
.paper-auth p{margin:0 0 2mm;font-size:8pt;line-height:12pt;color:#6E675E}
.paper-auth .code{font:500 9pt/1.4 var(--f-mono);color:#1E1C1A;margin-bottom:2mm}
.paper-hash{margin:0 0 2mm;font:500 7pt/1.6 var(--f-mono);letter-spacing:.02em;color:#24211E;white-space:nowrap}
.paper-auth svg{width:14mm;height:14mm;color:#BBA27B}
/* Capa */
.report-sheet.is-cover{padding:0}
.cover-top{position:relative;height:150mm;background:#1E1C1A;color:#E9DFCC;display:flex;flex-direction:column;align-items:center;padding-top:50mm}
.cover-wordmark{display:block;width:70mm;height:auto}
.cover-rule{display:block;width:30mm;border-top:.75pt solid #BBA27B;margin:9mm 0 6mm}
.cover-kicker{margin:0;font:600 8pt/1 var(--f-titulo);letter-spacing:.3em;color:#E9DFCC}
.cover-motto{position:absolute;left:0;right:0;bottom:11mm;margin:0;text-align:center;font:600 6.5pt/1 var(--f-titulo);letter-spacing:.24em;color:#9C958B}
.is-cover .paper-body{height:122mm;padding:13mm 18mm 0}
.cover-heading{display:flex;justify-content:space-between;align-items:center;gap:8mm;margin-bottom:8mm}
.cover-title{margin:1mm 0 2mm;font:300 34pt/1.05 var(--f-titulo);letter-spacing:-.02em;color:#1E1C1A}
.cover-subtitle{margin:0;font:400 13pt/1.3 var(--f-texto);color:#6E675E}
.cover-ring{position:relative;width:32mm;height:32mm;flex:none}
.cover-ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}
.cover-ring div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.cover-ring strong{font:300 17pt/1 var(--f-titulo);color:#1E1C1A;font-variant-numeric:tabular-nums}
.cover-ring span{margin-top:1mm;font:600 5pt/1.2 var(--f-titulo);letter-spacing:.16em;text-transform:uppercase;color:#6E675E;text-align:center}
.is-cover .paper-data{gap:5mm 6mm;margin:0 0 6mm;padding-top:5mm;border-top:.25pt solid #E6E0D6}
.is-cover .paper-footer{left:18mm;right:18mm}
.cover-heading>div:first-child{min-width:0;overflow-wrap:anywhere}
.cover-top{flex-shrink:0}

@media print{
  html,body{margin:0!important;padding:0!important;background:#fff!important;width:210mm;color:#1E1C1A;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .splash,.feature-dialog,.app-header,#main,.app-footer,dialog,.toast,.error-banner,.skip,noscript,.processing{display:none!important}
  #print-root{display:block!important}
  .report-host{margin:0;width:210mm}
  .report-sheet{margin:0!important;box-shadow:none!important;break-after:page;page-break-after:always;break-inside:avoid}
  .report-sheet:last-child{break-after:auto;page-break-after:auto}
  .print-warning{display:block;padding:25mm;font-size:15pt}
}
.print-warning{display:none}

/* ---------- Ajustes de acabamento v3 (revisão das capturas) ---------- */
.room-link .progress-track i,.sidebar-head .progress-track i{background:var(--ouro-escuro)}
.room-meta.is-complete~.progress-track i{background:var(--ok)}
.sidebar-head .progress-track{height:3px}
.seal code{max-width:33ch;letter-spacing:0;font-size:12.5px}
@media (min-width:761px){.delivery-row:not(:first-child) .field>label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
.kpi-hero p{max-width:26ch}
.paper-room-summary{padding:1.5mm 0}
.paper-kpis{margin-bottom:6mm}
.paper-kpis strong{font-size:26pt}
.paper-pend{padding:1.6mm 0}
.paper-pend small{display:inline;margin-left:2mm}
.paper-photo-row figcaption .desc{display:block;margin-top:.8mm;color:#24211E;font-size:7.5pt}
.paper-photo-row figcaption .meta{display:block;margin-top:.8mm}
@media (max-width:1100px){
  .header-btn .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .header-btn{width:44px;padding:0}
}
.room-meta.is-complete~.progress-track{visibility:hidden}
.case-card .progress-track{height:3px}
.case-card .progress-track i{background:var(--ouro-escuro)}
@media (max-width:1100px){.room-title{position:static;padding-top:8px}}
.gps-row .btn.ghost{margin-left:-16px}
@media (max-width:1100px){.summary-metrics .eyebrow{letter-spacing:.1em}}
@media (min-width:761px) and (max-width:900px){.client-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.client-stats div:nth-child(3){border-left:1px solid var(--grafite-3);padding-left:20px}}
.editor-foot [data-save]{margin-left:auto}
/* Barras de largura total sem margens negativas (evita rolagem horizontal com barra de rolagem). */
@media (max-width:1100px){
  .room-sidebar{margin:0 0 16px;padding:12px 0;border-bottom:0;box-shadow:0 0 0 100vmax var(--marfim),0 1px 0 100vmax var(--linha);clip-path:inset(0 -100vmax -1px)}
}
@media (max-width:900px){
  .step-footer{margin:32px 0 calc(-1*var(--e-16));padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:none;border-top:0;box-shadow:0 0 0 100vmax rgba(255,255,255,.96),0 -1px 0 100vmax var(--linha);clip-path:inset(-1px -100vmax 0)}
}

/* Round 1: preserve the visual system while reserving real touch/focus space. */
/* Round 2: actionable labels, open menus and visible modal feedback. */
.card-bottom a,.case-home,.breadcrumbs a,.filter-check,.menu-item{min-width:48px;min-height:48px}
.backup-import:has(input:focus-visible),.repair-upload:has(input:focus-visible){outline:3px solid var(--ouro-escuro);outline-offset:4px;box-shadow:0 0 0 5px var(--marfim)}
.dialog-feedback{flex-basis:100%;margin:8px 0;padding:12px 16px;border:1px solid var(--nc);border-radius:8px;background:var(--marfim);color:var(--tinta);font:500 14px/1.5 var(--f-texto);overflow-wrap:anywhere}
.editor-foot{max-height:45dvh;overflow-y:auto}
html{scroll-padding-bottom:calc(var(--footer-clearance,0px) + 24px)}
input,select,textarea,button,a,summary{scroll-margin-bottom:calc(var(--footer-clearance,0px) + 16px)}
.btn.small,.icon-btn,.header-btn,.tabs button,.howto summary,.item-menu summary,.item-more summary,.pdf-help summary,.annotate-photo,.sub-details summary,.tool,.swatch,.voice-button{min-width:48px;min-height:48px}
.workflow a{min-width:48px;min-height:48px}
/* Round 4: every actionable link reserves its own touch area, including
   validation messages. Rows wrap without overlapping their neighbours. */
@media screen{
  :where(a[href],button:not(.remove-photo),summary){min-width:48px;min-height:48px}
  :where(a[href]){display:inline-flex;align-items:center}
  .validation-list:has(a){list-style:none;padding:8px 0}
  .validation-list li:has(a)+li{margin-top:4px}
  .validation-list a{display:flex;align-items:center;min-width:48px;min-height:48px;width:100%;padding:12px 16px;line-height:24px;overflow-wrap:anywhere;border-radius:var(--r-2)}
}
.check-item.is-done .status-buttons button:not([aria-pressed=true]):not(:disabled){opacity:1}
.check-item.is-done .status-buttons button[data-status=na]:not([aria-pressed=true]):not(:disabled){color:var(--na-texto);border-color:var(--linha-forte)}
.toast{bottom:calc(max(var(--toast-clearance,0px),var(--keyboard-inset,0px)) + 24px + env(safe-area-inset-bottom));pointer-events:none}
#modal{overflow:hidden}
#modal[open]{display:flex;flex-direction:column}
#modal-form{display:flex;flex-direction:column;min-height:0}
#modal-body{overflow:auto;min-height:0;padding:0 4px 4px;margin:0 -4px}
#modal-form>.modal-head,#modal-title,.modal-actions{flex-shrink:0}
#modal-form>.dialog-feedback{flex:0 0 auto;min-height:0;max-height:25dvh;overflow:auto;overscroll-behavior:contain}
.modal-actions{background:#fff;margin-top:24px;padding-top:8px}
#new-cpf-status{display:block;min-height:19px}
.paper-unit{overflow-wrap:anywhere}
@media (max-width:1100px){.header-btn{width:48px}.room-add{min-width:48px;min-height:48px}}
@media (max-width:900px){
  .workflow{grid-template-columns:repeat(6,minmax(48px,1fr))}
  .workflow a:last-of-type{padding-right:0}
  .step-footer{bottom:var(--keyboard-inset,0px)}
  #main{padding-bottom:calc(var(--footer-clearance,80px) + 64px)}
}
