/* gerado por design/gerar.mjs a partir de design/zorion-constelacao.tokens.json; não edite este arquivo, edite os tokens e gere de novo */
:root{--z-fonte-display:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--z-fonte-texto:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--z-fonte-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--z-t-xs:0.75rem;--z-t-sm:0.84375rem;--z-t-base:0.96875rem;--z-t-md:1.0625rem;--z-t-lg:1.25rem;--z-t-xl:1.625rem;--z-t-2xl:2.125rem;--z-t-3xl:2.875rem;--z-t-4xl:3.875rem;--z-lh-tight:1.08;--z-lh-snug:1.25;--z-lh-normal:1.55;--z-lh-relaxed:1.7;--z-peso-texto:400;--z-peso-medio:550;--z-peso-forte:650;--z-peso-display:680;--z-e0:0rem;--z-e1:0.25rem;--z-e2:0.5rem;--z-e3:0.75rem;--z-e4:1rem;--z-e5:1.25rem;--z-e6:1.5rem;--z-e7:2rem;--z-e8:2.5rem;--z-e9:3.5rem;--z-e10:4.5rem;--z-e11:6rem;--z-r-xs:6px;--z-r-sm:10px;--z-r-md:14px;--z-r-lg:20px;--z-r-pilula:999px;--z-dur-rapida:120ms;--z-dur-normal:220ms;--z-dur-lenta:420ms;--z-curva-saida:cubic-bezier(.2,.8,.2,1);--z-curva-entrada:cubic-bezier(.4,0,1,1);--z-curva-padrao:cubic-bezier(.4,0,.2,1);--z-alvo:44px}
:root,[data-tema="noite"]{color-scheme:dark;--z-fundo:#070b17;--z-superficie:#0d1328;--z-elevada:#141c3a;--z-sobreposta:#1a2450;--z-linha-suave:#1b2447;--z-linha:#2a3566;--z-linha-forte:#5a68ad;--z-texto:#eef2ff;--z-texto-2:#b7c1e4;--z-texto-3:#8e9ac4;--z-texto-off:#68749f;--z-marca:#7794ff;--z-marca-acao:#3f5cf0;--z-marca-acao-hover:#4a66f6;--z-sobre-marca:#ffffff;--z-decisao:#ffb454;--z-sobre-decisao:#1c1304;--z-ok:#3bd89f;--z-ok-fundo:#0f2a26;--z-aviso:#ffc65a;--z-aviso-fundo:#2e2410;--z-erro:#ff7b8a;--z-erro-fundo:#331822;--z-info:#63c9ff;--z-info-fundo:#102a3c;--z-neutro:#97a3cc;--z-neutro-fundo:#1a2243;--z-foco:#a9bbff;--z-sombra-1:0 1px 0 rgba(255,255,255,.045) inset,0 10px 28px rgba(0,0,0,.38);--z-sombra-2:0 1px 0 rgba(255,255,255,.06) inset,0 24px 64px rgba(0,0,0,.55);--z-brilho:0 0 0 1px rgba(119,148,255,.38),0 0 36px rgba(119,148,255,.22);--z-halo:radial-gradient(900px 520px at 82% -8%,rgba(91,124,255,.30),transparent 62%),radial-gradient(700px 420px at 4% 8%,rgba(255,180,84,.07),transparent 60%);--z-vidro:rgba(7,11,23,.72)}
[data-tema="dia"]{color-scheme:light;--z-fundo:#f4f6fc;--z-superficie:#ffffff;--z-elevada:#ffffff;--z-sobreposta:#ffffff;--z-linha-suave:#e6e9f5;--z-linha:#d3d8ec;--z-linha-forte:#7480ad;--z-texto:#0f1530;--z-texto-2:#434d75;--z-texto-3:#5b6590;--z-texto-off:#8791b5;--z-marca:#3350ea;--z-marca-acao:#3350ea;--z-marca-acao-hover:#2740cf;--z-sobre-marca:#ffffff;--z-decisao:#c47500;--z-sobre-decisao:#1c1304;--z-ok:#0b7a55;--z-ok-fundo:#e3f6ee;--z-aviso:#8a5400;--z-aviso-fundo:#fff3dc;--z-erro:#b42337;--z-erro-fundo:#fdebee;--z-info:#0a6791;--z-info-fundo:#e3f3fb;--z-neutro:#586285;--z-neutro-fundo:#eceff8;--z-foco:#3350ea;--z-sombra-1:0 1px 2px rgba(15,21,48,.06),0 8px 22px rgba(15,21,48,.07);--z-sombra-2:0 2px 6px rgba(15,21,48,.08),0 28px 60px rgba(15,21,48,.13);--z-brilho:0 0 0 1px rgba(51,80,234,.30),0 0 30px rgba(51,80,234,.14);--z-halo:radial-gradient(900px 520px at 82% -8%,rgba(51,80,234,.10),transparent 62%),radial-gradient(700px 420px at 4% 8%,rgba(245,160,43,.08),transparent 60%);--z-vidro:rgba(244,246,252,.82)}
@media (prefers-color-scheme:light){:root:not([data-tema]){color-scheme:light;--z-fundo:#f4f6fc;--z-superficie:#ffffff;--z-elevada:#ffffff;--z-sobreposta:#ffffff;--z-linha-suave:#e6e9f5;--z-linha:#d3d8ec;--z-linha-forte:#7480ad;--z-texto:#0f1530;--z-texto-2:#434d75;--z-texto-3:#5b6590;--z-texto-off:#8791b5;--z-marca:#3350ea;--z-marca-acao:#3350ea;--z-marca-acao-hover:#2740cf;--z-sobre-marca:#ffffff;--z-decisao:#c47500;--z-sobre-decisao:#1c1304;--z-ok:#0b7a55;--z-ok-fundo:#e3f6ee;--z-aviso:#8a5400;--z-aviso-fundo:#fff3dc;--z-erro:#b42337;--z-erro-fundo:#fdebee;--z-info:#0a6791;--z-info-fundo:#e3f3fb;--z-neutro:#586285;--z-neutro-fundo:#eceff8;--z-foco:#3350ea;--z-sombra-1:0 1px 2px rgba(15,21,48,.06),0 8px 22px rgba(15,21,48,.07);--z-sombra-2:0 2px 6px rgba(15,21,48,.08),0 28px 60px rgba(15,21,48,.13);--z-brilho:0 0 0 1px rgba(51,80,234,.30),0 0 30px rgba(51,80,234,.14);--z-halo:radial-gradient(900px 520px at 82% -8%,rgba(51,80,234,.10),transparent 62%),radial-gradient(700px 420px at 4% 8%,rgba(245,160,43,.08),transparent 60%);--z-vidro:rgba(244,246,252,.82)}}

/* Zorion Constelação · base compartilhada (site, portal do cliente, administração). Só tokens (--z-*); nenhuma cor fixa aqui.
   Sem style="" e sem script inline no HTML: a CSP do produto é estrita (style-src 'self'). */
@font-face{font-family:"Inter";src:url(/assets/l-3100e775e8616cd2-inter-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url(/assets/l-0640890476fc1198-space-grotesk-latin-wght-normal.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html[data-tema="noite"]{color-scheme:dark;background-color:var(--z-fundo)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
body{margin:0;background:var(--z-fundo);color:var(--z-texto);font-family:var(--z-fonte-texto);font-size:var(--z-t-base);line-height:var(--z-lh-normal);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--z-fonte-display);font-weight:var(--z-peso-display);letter-spacing:-.02em;line-height:var(--z-lh-snug);margin:0;color:var(--z-texto);text-wrap:balance}
h1{font-size:clamp(1.75rem,1.2rem + 1.8vw,var(--z-t-2xl))}
h2{font-size:var(--z-t-xl)}
h3{font-size:var(--z-t-lg)}
h4{font-size:var(--z-t-md)}
p{margin:0 0 var(--z-e3)}
small,.z-pequeno{font-size:var(--z-t-sm)}
button,input,select,textarea{font-family:inherit}
a{color:var(--z-marca);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
code,kbd,samp,.z-mono{font-family:var(--z-fonte-mono);font-size:.92em}
:focus{outline:none}
:focus-visible{outline:3px solid var(--z-foco);outline-offset:2px;border-radius:var(--z-r-xs)}
::selection{background:var(--z-marca-acao);color:var(--z-sobre-marca)}
img,svg{max-width:100%}
hr{border:0;border-top:1px solid var(--z-linha);margin:var(--z-e6) 0}
.vh,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.pular,.skip{position:absolute;left:-9999px;top:8px;z-index:1000;display:inline-flex;align-items:center;min-height:var(--z-alvo);background:var(--z-texto);color:var(--z-fundo);padding:0 var(--z-e4);border-radius:var(--z-r-sm);font-weight:var(--z-peso-forte);text-decoration:none}
.pular:focus,.skip:focus{left:var(--z-e3)}
/* ---- botões ---- */
.z-btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--z-e2);min-height:var(--z-alvo);padding:0 var(--z-e5);border-radius:var(--z-r-sm);border:1px solid var(--z-linha-forte);background:transparent;color:var(--z-texto);font:inherit;font-weight:var(--z-peso-forte);font-size:var(--z-t-base);line-height:1.2;text-decoration:none;cursor:pointer;transition:background var(--z-dur-rapida) var(--z-curva-padrao),border-color var(--z-dur-rapida) var(--z-curva-padrao),transform var(--z-dur-rapida) var(--z-curva-saida)}
.z-btn:hover,.btn:hover{background:var(--z-elevada);border-color:var(--z-marca);text-decoration:none}
.z-btn:active,.btn:active{transform:translateY(1px)}
.z-btn[disabled],.btn[disabled],.btn.disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn-primary,.z-btn-acao,.z-btn[data-variant="acao"]{background:var(--z-marca-acao);border-color:var(--z-marca-acao);color:var(--z-sobre-marca)}
.btn-primary:hover,.z-btn-acao:hover,.z-btn[data-variant="acao"]:hover{background:var(--z-marca-acao-hover);border-color:var(--z-marca-acao-hover);color:var(--z-sobre-marca)}
.btn-outline-secondary,.z-btn-contorno,.z-btn[data-variant="ghost"]{background:transparent;border-color:var(--z-linha-forte);color:var(--z-texto)}
.btn-danger,.z-btn-perigo,.z-btn[data-variant="danger"]{background:var(--z-erro-fundo);border-color:var(--z-erro);color:var(--z-erro)}
.btn-danger:hover,.z-btn-perigo:hover,.z-btn[data-variant="danger"]:hover{background:var(--z-erro);border-color:var(--z-erro);color:var(--z-fundo)}
.btn-sm,.z-btn-sm{min-height:36px;padding:0 var(--z-e4);font-size:var(--z-t-sm)}
/* botão pequeno só no desktop com mouse; em aparelho de toque ou tela estreita vale o alvo de 44 px */
@media (max-width:60rem),(pointer:coarse){.btn-sm,.z-btn-sm{min-height:var(--z-alvo)}}
.btn .icon,.z-btn .icon{width:18px;height:18px;flex:none}
/* ---- formulários ---- */
label,.form-label{display:block;font-weight:var(--z-peso-medio);font-size:var(--z-t-sm);color:var(--z-texto-2);margin:var(--z-e4) 0 var(--z-e1)}
/* O primeiro rótulo do formulário não leva margem em cima; um rótulo que vem DEPOIS de texto (ajuda, aviso, select) mantém a margem. O campo oculto do csrf não conta. */
form>label:first-child,form>input[type=hidden]:first-child+label,form>input[type=hidden]:first-child+input[type=hidden]+label{margin-top:0}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea,.form-control,.form-select{display:block;width:100%;min-height:var(--z-alvo);padding:var(--z-e2) var(--z-e3);border-radius:var(--z-r-sm);border:1px solid var(--z-linha-forte);background:var(--z-superficie);color:var(--z-texto);font:inherit;font-size:var(--z-t-base);line-height:1.4;transition:border-color var(--z-dur-rapida),box-shadow var(--z-dur-rapida)}
textarea{min-height:7rem;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--z-texto-off)}
/* Campo em foco: borda na cor da marca E o anel de 3 px dos links e botões. A regra do campo tem especificidade (0,3,1); a de foco precisa vencê-la, senão a borda e o anel do <input> eram ignorados (só sobrava um halo de 1,6:1). */
input:not([type=hidden]):not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus,.form-control:focus,.form-select:focus{border-color:var(--z-marca);box-shadow:none;outline:3px solid var(--z-foco);outline-offset:2px}
input[type=checkbox],input[type=radio],.form-check-input{width:20px;height:20px;accent-color:var(--z-marca-acao);margin:0;flex:none}
/* a linha inteira (caixa + rótulo) é o alvo: pelo menos 44 px de altura, com a caixa alinhada à primeira linha do rótulo */
.form-check{display:flex;align-items:flex-start;gap:var(--z-e3);min-height:var(--z-alvo);margin:var(--z-e1) 0}
.form-check .form-check-input{margin-top:12px}
.form-check-label{flex:1;margin:0;padding:10px 0;font-weight:var(--z-peso-texto);color:var(--z-texto)}
.z-help,.z-ajuda{font-size:var(--z-t-sm);color:var(--z-texto-3);margin:var(--z-e1) 0 0}
.z-form-narrow{max-width:34rem}
.z-actions,.z-acoes,.zp-acoes{display:flex;flex-wrap:wrap;gap:var(--z-e3);align-items:center;margin-top:var(--z-e4)}
/* ---- estados e avisos (cor nunca é o único portador do significado: ícone/texto acompanham) ---- */
.z-pill,.badge{display:inline-flex;align-items:center;gap:var(--z-e1);padding:2px var(--z-e3);border-radius:var(--z-r-pilula);font-size:var(--z-t-xs);font-weight:var(--z-peso-forte);letter-spacing:.01em;line-height:1.5;background:var(--z-neutro-fundo);color:var(--z-neutro);white-space:nowrap}
.badge::before,.z-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.badge.bg-green-lt,.z-pill[data-tom="ok"]{background:var(--z-ok-fundo);color:var(--z-ok)}
.badge.bg-blue-lt,.z-pill[data-tom="info"]{background:var(--z-info-fundo);color:var(--z-info)}
.badge.bg-yellow-lt,.z-pill[data-tom="aviso"]{background:var(--z-aviso-fundo);color:var(--z-aviso)}
.badge.bg-orange-lt{background:var(--z-aviso-fundo);color:var(--z-aviso)}
.badge.bg-red-lt,.z-pill[data-tom="erro"]{background:var(--z-erro-fundo);color:var(--z-erro)}
.badge.bg-secondary-lt,.z-pill[data-tom="neutro"]{background:var(--z-neutro-fundo);color:var(--z-neutro)}
.z-pill[data-tom="decisao"]{background:color-mix(in srgb,var(--z-decisao) 18%,transparent);color:var(--z-decisao)}
.alert,.z-aviso,.z-notice,.z-note,.z-warn,.z-err,.z-ok{display:block;padding:var(--z-e3) var(--z-e4);border-radius:var(--z-r-sm);border:1px solid var(--z-linha);border-left:4px solid var(--z-info);background:var(--z-info-fundo);color:var(--z-texto);font-size:var(--z-t-sm);line-height:1.5;margin:0 0 var(--z-e4)}
.alert-success,.z-notice,.z-ok,.z-aviso[data-tom="ok"]{border-left-color:var(--z-ok);background:var(--z-ok-fundo)}
.alert-warning,.z-warn,.z-aviso[data-tom="aviso"]{border-left-color:var(--z-aviso);background:var(--z-aviso-fundo)}
.alert-danger,.z-err,.z-aviso[data-tom="erro"]{border-left-color:var(--z-erro);background:var(--z-erro-fundo)}
.alert .d-flex,.z-aviso .d-flex{display:flex;gap:var(--z-e3);align-items:flex-start}
.alert,.z-aviso,.z-notice,.z-note,.z-warn,.z-err,.z-ok{overflow-wrap:anywhere}
.alert .d-flex>div,.z-aviso .d-flex>div{min-width:0;overflow-wrap:anywhere}
.alert-icon,.alert .icon{width:20px;height:20px;flex:none;margin-top:1px;color:currentColor}
.alert-success .alert-icon{color:var(--z-ok)}.alert-warning .alert-icon{color:var(--z-aviso)}.alert-danger .alert-icon{color:var(--z-erro)}.alert-info .alert-icon{color:var(--z-info)}
/* ---- utilitários usados pelos gabaritos ---- */
.text-secondary,.z-muted,.zp-nota{color:var(--z-texto-3)}
.z-muted{font-size:var(--z-t-sm)}
.text-center{text-align:center}.text-nowrap{white-space:nowrap}.text-uppercase{text-transform:uppercase;letter-spacing:.06em}
.small{font-size:var(--z-t-sm)}.fw-semibold{font-weight:var(--z-peso-forte)}
.d-flex{display:flex}.gap-2{gap:var(--z-e2)}.h-100{height:100%}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--z-e1)}.mb-2{margin-bottom:var(--z-e2)}.mb-3{margin-bottom:var(--z-e4)}.mt-0{margin-top:0}.mt-2{margin-top:var(--z-e2)}.mt-3{margin-top:var(--z-e4)}
.h2{font-family:var(--z-fonte-display);font-size:var(--z-t-xl);font-weight:var(--z-peso-display);letter-spacing:-.02em}
.h4{font-family:var(--z-fonte-display);font-size:var(--z-t-md);font-weight:var(--z-peso-forte)}
.h5{font-size:var(--z-t-base);font-weight:var(--z-peso-forte)}
.z-stack>*+*{margin-top:var(--z-e4)}
.z-inline{display:inline}
.z-quebra,.z-quebra-palavras{white-space:normal;overflow-wrap:anywhere}

/* Zorion Constelação · estado do serviço (/status e o resumo do portal). Portado do statusCss de theme.mjs para os tokens; cor nunca é o único portador (ícone e texto acompanham). */
.zs{--zs-ok:var(--z-ok);--zs-lento:var(--z-aviso);--zs-falha:var(--z-erro);--zs-nd:var(--z-linha-forte);--zs-ind:var(--z-neutro)}
.zs-topo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;margin-bottom:14px}
.zs-topo h1{margin:0}
.zs-conn{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:14px;color:var(--z-texto-2);background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:999px;padding:6px 12px}
.zs-dot{width:10px;height:10px;border-radius:50%;background:var(--zs-nd);flex:none}
.zs-conn-vivo .zs-dot{background:var(--zs-ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--z-ok) 25%,transparent)}
.zs-conn-vivo{color:var(--z-ok)}
.zs-conn-reconectando .zs-dot,.zs-conn-conectando .zs-dot{background:var(--zs-lento)}
.zs-conn-velho .zs-dot{background:var(--zs-lento)}
.zs-conn-velho{color:var(--z-aviso);border-color:color-mix(in srgb,var(--z-aviso) 35%,transparent);background:var(--z-aviso-fundo)}
.zs-conn-pausado .zs-dot{background:var(--zs-ind)}
.zs-geral{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:12px}
.zs-geral-p{display:flex;gap:14px;align-items:center;border-radius:var(--z-r-md);padding:16px 18px;border:1px solid var(--z-linha);background:var(--z-superficie);box-shadow:var(--z-sombra-1)}
.zs-geral-p h2{margin:0 0 2px;font-size:clamp(18px,2.2vw,22px);line-height:1.25}
.zs-geral-p p{margin:0;color:var(--z-texto-2);font-size:14.5px}
.zs-geral-ic .zs-ic{width:38px;height:38px}
.zs-geral-p.zs-ok{background:var(--z-ok-fundo);border-color:color-mix(in srgb,var(--z-ok) 35%,transparent)}.zs-geral-p.zs-ok .zs-geral-ic{color:var(--zs-ok)}
.zs-geral-p.zs-lento{background:var(--z-aviso-fundo);border-color:color-mix(in srgb,var(--z-aviso) 35%,transparent)}.zs-geral-p.zs-lento .zs-geral-ic{color:var(--zs-lento)}
.zs-geral-p.zs-falha{background:var(--z-erro-fundo);border-color:color-mix(in srgb,var(--z-erro) 35%,transparent)}.zs-geral-p.zs-falha .zs-geral-ic{color:var(--zs-falha)}
.zs-geral-p.zs-sem-dados,.zs-geral-p.zs-indisponivel{background:var(--z-neutro-fundo);border-color:var(--z-linha)}.zs-geral-p.zs-sem-dados .zs-geral-ic,.zs-geral-p.zs-indisponivel .zs-geral-ic{color:var(--zs-ind)}
.zs-medida{margin:10px 2px 16px;font-size:14px;color:var(--z-texto-2)}
.zs-medida strong{color:var(--z-texto);font-variant-numeric:tabular-nums}
.zs-grade-svc{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}
.zs-grade-diag{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:12px}
.zs-svc{background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:var(--z-r-md);padding:14px 14px 12px;box-shadow:var(--z-sombra-1);display:flex;flex-direction:column;gap:10px;min-width:0}
.zs-svc-h{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;justify-content:space-between}
.zs-svc-h h3{margin:0;font-size:15.5px}
.zs-st{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600}
.zs-ic{flex:none}
.zs-ok .zs-st,.zs-ver-publicada .zs-st{color:var(--zs-ok)}
.zs-lento .zs-st,.zs-ver-validacao .zs-st{color:var(--z-aviso)}
.zs-falha .zs-st{color:var(--zs-falha)}
.zs-sem-dados .zs-st,.zs-indisponivel .zs-st{color:var(--zs-ind)}
.zs-svc.zs-falha{border-color:color-mix(in srgb,var(--z-erro) 35%,transparent)}
.zs-svc.zs-lento{border-color:color-mix(in srgb,var(--z-aviso) 35%,transparent)}
.zs-faixa{display:block;width:100%;height:30px}
.zs-inc-mark{fill:var(--zs-falha)}
.zs-b.zs-parcial{fill:color-mix(in srgb,var(--z-ok) 30%,transparent);stroke:var(--z-ok);stroke-width:1.2}
.zs-sw.zs-parcial{background:color-mix(in srgb,var(--z-ok) 30%,transparent);box-shadow:inset 0 0 0 1.5px var(--z-ok)}
.zs-sw-inc{background:var(--zs-falha);height:4px;border-radius:1px}
.zs-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.zs-tag{font-size:12px;font-weight:600;background:color-mix(in srgb,var(--z-marca) 16%,transparent);color:var(--z-marca);border-radius:999px;padding:2px 9px}
.zs-tag-m{background:var(--z-neutro-fundo);color:var(--z-texto-2)}
.zs-det{margin:10px 2px 0;font-size:14px}
.zs-det summary{cursor:pointer;color:var(--z-marca);font-weight:600;padding-block:var(--z-e3)}
.zs-tab-box{overflow-x:auto;margin-top:8px}
.zs-tab{width:100%;border-collapse:collapse;background:var(--z-superficie);font-size:13px;border:1px solid var(--z-linha)}
.zs-tab caption{text-align:left;color:var(--z-texto-2);padding:0 0 6px}
.zs-tab th,.zs-tab td{border-bottom:1px solid var(--z-linha);padding:6px 8px;text-align:left;white-space:nowrap}
.zs-b.zs-ok{fill:var(--zs-ok)}.zs-b.zs-lento{fill:var(--zs-lento)}.zs-b.zs-falha{fill:var(--zs-falha)}.zs-b.zs-sem-dados{fill:var(--zs-nd)}
.zs-svc-f{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;margin:0;font-size:13px;color:var(--z-texto-2)}
.zs-num{font-variant-numeric:tabular-nums;color:var(--z-texto)}
.zs-ia{background:var(--z-elevada)}
.zs-ia-t{margin:0;font-size:13.5px;color:var(--z-texto-2)}
.zs-eixo-x{display:flex;justify-content:space-between;font-size:12px;color:var(--z-texto-3);margin:-4px 0 0}
.zs-dias-box+.zs-eixo-x{margin:6px 2px 0}
.zs-leg-l{white-space:nowrap}
.zs-leg{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;padding:0;margin:8px 2px 0;font-size:13px;color:var(--z-texto-2)}
.zs-leg li{display:inline-flex;align-items:center;gap:6px}
.zs-sw{display:inline-block;width:12px;height:12px;border-radius:3px}
.zs-sw.zs-ok{background:var(--zs-ok)}.zs-sw.zs-lento{background:var(--zs-lento)}.zs-sw.zs-falha{background:var(--zs-falha)}.zs-sw.zs-sem-dados{background:var(--zs-nd)}
.zs-nota{font-size:13.5px;color:var(--z-texto-2);margin:8px 2px 0;max-width:80ch}
.zs-lat-box,.zs-dias-box{background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:var(--z-r-md);padding:12px;box-shadow:var(--z-sombra-1);margin-top:10px}
.zs-lat{display:block;width:100%;height:auto}
.zs-grade{stroke:var(--z-linha-suave);stroke-width:1}
.zs-grade-v{stroke-dasharray:3 4}
.zs-eixo{fill:var(--z-texto-3);font-size:12px;font-family:var(--z-fonte-texto)}
.zs-p50{fill:none;stroke:var(--z-marca);stroke-width:2.5;stroke-linejoin:round}
.zs-p95{fill:none;stroke:var(--z-marca);stroke-width:1.8;stroke-dasharray:5 4;stroke-linejoin:round}
.zs-p50-pt{fill:var(--z-marca)}.zs-p95-pt{fill:var(--z-marca)}
.zs-k{display:inline-block;width:18px;height:0;border-top:3px solid var(--z-marca);vertical-align:middle;margin:0 6px 0 10px}
.zs-k-p95{border-top:2px dashed var(--z-marca)}
.zs-dias{display:block;width:100%;height:auto}
.zs-incs{display:grid;gap:12px}
.zs-inc{background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:var(--z-r-md);padding:14px 16px;box-shadow:var(--z-sombra-1)}
.zs-inc header{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:space-between}
.zs-inc h3{margin:0;font-size:15.5px}
.zs-inc p{margin:6px 0 0;font-size:14px;color:var(--z-texto-2)}
.zs-inc-m{font-variant-numeric:tabular-nums}
.zs-inc-resolvido .zs-st{color:var(--zs-ok)}.zs-inc-em-andamento .zs-st{color:var(--zs-falha)}
.zs-tl{margin:8px 0 0;padding:0 0 0 18px;font-size:13.5px;color:var(--z-texto-2)}
.zs-tl li{margin:2px 0}
.zs-tl time{font-variant-numeric:tabular-nums;color:var(--z-texto);margin-right:4px}
.zs-vazio{color:var(--z-texto-2);font-size:14px}
.zs-vers{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.zs-ver{background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:var(--z-r-md);padding:12px 14px;display:grid;gap:4px;box-shadow:var(--z-sombra-1)}
.zs-ver-n{font-weight:600}
.zs-ver-v{font-family:var(--z-fonte-mono);font-size:14px}
.zs-ver-d{font-size:13px;color:var(--z-texto-2)}
.zs-ev{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--z-texto-2)}
.zs-como{margin-top:28px}
.zs-portal{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--z-texto-2);margin:6px 0 18px}
.zs-portal.zs-ok .zs-st{color:var(--zs-ok)}.zs-portal.zs-falha .zs-st{color:var(--zs-falha)}.zs-portal.zs-lento .zs-st{color:var(--z-aviso)}.zs-portal.zs-sem-dados .zs-st{color:var(--zs-ind)}
@media (max-width:1040px){.zs-geral{grid-template-columns:1fr}}
@media (max-width:640px){.zs-grade-svc{grid-template-columns:1fr;gap:10px}.zs-geral{gap:8px}.zs-geral-p{padding:12px 14px;gap:12px}.zs-geral-ic .zs-ic{width:30px;height:30px}.zs-svc{padding:12px}.zs-lat-box{overflow-x:auto}.zs-lat{min-width:620px}.zs-eixo{font-size:17px}.zs-topo{margin-bottom:10px}.zs-conn{font-size:13px}}
/* R2: visão executiva; o histórico permanece inteiro e acessível por expansão. */
.z-main:has(.zs-dashboard){padding-block:20px;max-width:none}
.zs-dashboard .zs-topo{margin-bottom:12px}.zs-dashboard h1{font-size:clamp(24px,3vw,32px);line-height:1.15}
.zs-dashboard .zs-geral-p{padding:12px 14px;gap:10px}.zs-dashboard .zs-geral-p h2{font-size:18px}.zs-dashboard .zs-geral-p p{font-size:13px;line-height:1.4}.zs-dashboard .zs-geral-ic .zs-ic{width:28px;height:28px}
.zs-dashboard .zs-medida{font-size:13px;margin:10px 0 12px}.zs-dashboard .zs-svc{padding:12px;gap:8px}.zs-dashboard .zs-svc-h h3{font-size:14px}.zs-dashboard .zs-st{font-size:13px}.zs-dashboard .zs-eixo-x{font-size:11px}.zs-dashboard .zs-svc-f{font-size:12px}
.zs-insights{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-top:16px}.zs-dashboard .zs-insights h2{font-size:16px;margin:0 0 6px}.zs-dashboard .zs-lat-box{margin-top:8px;padding:8px}.zs-dashboard .zs-lat{height:145px;min-width:0}.zs-dashboard .zs-nota{font-size:12px;line-height:1.45}.zs-dashboard .zs-vers{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 0}.zs-dashboard .zs-ver{padding:10px;font-size:13px;gap:3px}.zs-dashboard .zs-ver-d{font-size:12px}
.zs-history{margin-top:14px;border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie);padding:0 14px}.zs-history>summary,.zs-dashboard .zs-det>summary{cursor:pointer;color:var(--z-texto-2);font-weight:600;padding:12px 0;min-height:44px;display:list-item}.zs-history>summary:hover,.zs-dashboard .zs-det>summary:hover{color:var(--z-texto)}.zs-history>summary:focus-visible,.zs-dashboard .zs-det>summary:focus-visible{outline:3px solid var(--z-marca);outline-offset:3px;border-radius:4px}.zs-history[open]{padding-bottom:14px}.zs-history section{margin-top:14px}.zs-history section h2{font-size:18px}.zs-dashboard .zs-como{margin-top:12px}.zs-conn-reconectando{color:var(--z-aviso)}
@media(max-width:1040px) and (min-width:761px){.zs-dashboard .zs-geral{grid-template-columns:1.45fr 1fr}}
@media(max-width:760px){.zs-insights{grid-template-columns:1fr;gap:16px}.zs-dashboard .zs-geral{grid-template-columns:1fr}.zs-dashboard .zs-grade-svc{grid-template-columns:1fr}.zs-dashboard .zs-lat-box{overflow:visible}.zs-dashboard .zs-lat{height:auto;min-width:0}.zs-dashboard .zs-vers{grid-template-columns:repeat(2,minmax(0,1fr))}.zs-dashboard .zs-topo{align-items:flex-start}.zs-dashboard .zs-topo h1{font-size:26px}.zs-dashboard .zs-medida{line-height:1.5}}
@media(forced-colors:active){.zs-history{border-color:CanvasText}.zs-conn .zs-dot{background:CanvasText;box-shadow:none}}

.zs-dashboard .zs-topo h1{font-size:clamp(24px,3vw,32px);margin:0;line-height:1.15}.zs-dashboard .zs-geral-p h2{margin:0 0 3px}.zs-dashboard .zs-svc-h h3{margin:0}.zs-dashboard .zs-vers{padding:0}.zs-dashboard .zs-vers-resumo{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}.zs-dashboard .zs-vers-resumo li{margin:0;background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:var(--z-r-md);padding:10px 12px}.zs-vers-resumo li>div{display:flex;gap:10px;align-items:baseline;justify-content:space-between;font-size:13px;line-height:1.4}.zs-vers-resumo .zs-st{margin-top:4px;font-size:12px}.zs-vers-resumo .zs-st .zs-ic{width:16px;height:16px}.zs-dashboard .zs-ia-fonte{margin-top:4px;font-size:12px}
.zs-dashboard .zs-geral-p p{margin:0}.zs-dashboard .zs-geral-p .zs-ia-fonte{margin-top:4px}.zs-dashboard .zs-svc-f{margin:0}.zs-dashboard .zs-nota{margin:6px 0 0}.zs-dashboard .zs-vers-resumo .zs-st.zs-ok{color:var(--zs-ok)}.zs-dashboard .zs-vers-resumo .zs-st.zs-lento{color:var(--zs-lento)}.zs-dashboard .zs-eixo{font-size:16px}

@media(min-width:761px){.zs-dashboard .zs-geral-p h2{font-size:17px}.zs-dashboard .zs-vers-resumo li{padding:8px 10px}.zs-dashboard .zs-vers-resumo{gap:6px}.zs-dashboard .zs-insights{margin-top:12px}.zs-dashboard .zs-medida{margin-block:8px}.zs-dashboard .zs-svc{gap:6px}.zs-dashboard .zs-history{margin-top:10px}.zs-dashboard .zs-insights h2{font-size:15px}}
@media(max-width:760px){.zs-dashboard .zs-svc{padding:10px;gap:5px}.zs-dashboard .zs-grade-svc{gap:8px}.zs-dashboard .zs-medida{margin-block:8px}.zs-dashboard .zs-geral{gap:8px}}

@media(max-width:760px){.zs-dashboard .zs-eixo{font-size:28px}}

.zs-dashboard .zs-eixo{font-size:12px}
@media(min-width:761px){.z-main:has(.zs-dashboard){padding-block:16px}.zs-dashboard .zs-vers-resumo li{padding:6px 10px}.zs-dashboard .zs-vers-resumo{gap:4px}.zs-dashboard .zs-vers-resumo li>div{line-height:1.35}.zs-dashboard .zs-vers-resumo .zs-st{line-height:1.35}.zs-dashboard .zs-history{margin-top:8px}}

/* Zorion Constelação · portal do cliente e administração. Casca lateral, cartões, tabelas, trilha de etapas. Substitui o Tabler vendorizado. */
body.zi{min-height:100vh;background:var(--z-fundo)}
body.zi::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--z-halo)}
.zi-app{display:grid;grid-template-columns:15.5rem minmax(0,1fr);min-height:100vh}
/* ---- barra lateral ---- */
.zi-lado{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;gap:var(--z-e3);padding:var(--z-e5) var(--z-e3) var(--z-e3);background:color-mix(in srgb,var(--z-superficie) 92%,transparent);border-right:1px solid var(--z-linha);backdrop-filter:blur(10px)}
.zi-marca{display:flex;align-items:center;gap:var(--z-e3);min-height:var(--z-alvo);padding:var(--z-e1) var(--z-e3);color:var(--z-texto);text-decoration:none;font-family:var(--z-fonte-display);font-weight:var(--z-peso-display);font-size:var(--z-t-md);letter-spacing:-.01em}
.zi-marca:hover{text-decoration:none}
.zi-marca svg{width:30px;height:30px;flex:none}
.zi-area{display:block;font-family:var(--z-fonte-texto);font-weight:var(--z-peso-medio);font-size:var(--z-t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--z-texto-3);margin-top:1px}
.zi-nav{display:flex;flex-direction:column;gap:var(--z-e4);flex:1}
/* barra lateral: marca e conta (com o Sair) ficam sempre à vista; só o menu rola quando a janela é baixa (administração tem 13 itens). As folgas deixam o anel de foco de 3 px dentro da caixa que rola. */
.zi-lado>.zi-marca,.zi-lado>.zi-conta{flex:none}
.zi-lado>.zi-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:calc(var(--z-e2) * -1) calc(var(--z-e3) * -1);padding:var(--z-e2) var(--z-e3);gap:var(--z-e3)}
.zi-nav-grupo{display:flex;flex-direction:column;gap:2px}
.zi-nav-titulo{font-size:var(--z-t-xs);font-weight:var(--z-peso-forte);letter-spacing:.09em;text-transform:uppercase;color:var(--z-texto-3);padding:0 var(--z-e3);margin:0 0 var(--z-e1)}
.zi-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.zi-nav a{position:relative;display:flex;align-items:center;gap:var(--z-e3);min-height:var(--z-alvo);padding:0 var(--z-e3);border-radius:var(--z-r-sm);color:var(--z-texto-2);text-decoration:none;font-weight:var(--z-peso-medio);font-size:var(--z-t-sm);transition:background var(--z-dur-rapida),color var(--z-dur-rapida)}
.zi-nav a:hover{background:var(--z-elevada);color:var(--z-texto);text-decoration:none}
.zi-nav a[aria-current="page"]{background:color-mix(in srgb,var(--z-marca) 15%,transparent);color:var(--z-texto)}
.zi-nav a[aria-current="page"]::before{content:"";position:absolute;left:-11px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--z-marca);transform:translateY(-50%);box-shadow:0 0 12px var(--z-marca)}
.zi-nav .icon{width:18px;height:18px;flex:none;opacity:.9}
.zi-conta{display:grid;gap:var(--z-e2);padding:var(--z-e3);border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie);font-size:var(--z-t-sm)}
.zi-conta-email{color:var(--z-texto);font-weight:var(--z-peso-medio);overflow-wrap:break-word}
.zi-conta-papel{color:var(--z-texto-3);font-size:var(--z-t-xs);letter-spacing:.04em}
.zi-conta form{margin:0}
.zi-sair{display:inline-flex;align-items:center;gap:var(--z-e2);width:100%;justify-content:center;min-height:var(--z-alvo);border-radius:var(--z-r-sm);border:1px solid var(--z-linha-forte);background:transparent;color:var(--z-texto);font:inherit;font-size:var(--z-t-sm);font-weight:var(--z-peso-medio);cursor:pointer}
.zi-sair:hover{background:var(--z-elevada);border-color:var(--z-marca)}
.zi-sair .icon{width:16px;height:16px}
/* ---- topo no celular ---- */
.zi-topo-m{display:none}
.zi-principal{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.zi-conteudo{flex:1 0 auto;width:100%;max-width:75rem;margin:0 auto;padding:var(--z-e7) var(--z-e7) var(--z-e8)}
.zi-cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--z-e4);margin:0 0 var(--z-e6)}
.zi-cab h1,.page-title{margin:0}
.zi-sub,.page-subtitle{color:var(--z-texto-2);max-width:62ch;margin:var(--z-e2) 0 0;font-size:var(--z-t-md);overflow-wrap:anywhere}
.zi-corpo>h2{font-size:var(--z-t-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--z-texto-3);font-family:var(--z-fonte-texto);font-weight:var(--z-peso-forte);margin:var(--z-e7) 0 var(--z-e3)}
h2.zp-secao{font-size:var(--z-t-lg);margin:var(--z-e7) 0 var(--z-e4);display:flex;align-items:center;gap:var(--z-e2);color:var(--z-texto);text-transform:none;letter-spacing:-.01em;font-family:var(--z-fonte-display)}
.zi-rodape{padding:var(--z-e5) var(--z-e7) var(--z-e6);border-top:1px solid var(--z-linha);color:var(--z-texto-3);font-size:var(--z-t-sm)}
.zi-rodape .zi-rodape-in{display:flex;flex-wrap:wrap;gap:var(--z-e2) var(--z-e5);justify-content:space-between;max-width:75rem;margin:0 auto}
.zi-rodape nav{display:flex;flex-wrap:wrap;gap:var(--z-e1) var(--z-e5)}
.zi-rodape a{color:var(--z-texto-2);display:inline-flex;align-items:center;min-height:24px}
/* ---- cartões ---- */
.card,.z-card{display:block;background:var(--z-superficie);border:1px solid var(--z-linha);border-radius:var(--z-r-md);box-shadow:var(--z-sombra-1);margin:0 0 var(--z-e5);overflow:hidden}
.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--z-e3);padding:var(--z-e4) var(--z-e5);border-bottom:1px solid var(--z-linha-suave)}
.card-title{display:flex;align-items:center;gap:var(--z-e2);margin:0;font-family:var(--z-fonte-display);font-size:var(--z-t-md);font-weight:var(--z-peso-forte);letter-spacing:-.01em;min-width:0;overflow-wrap:anywhere}
.card-title .icon{width:20px;height:20px;color:var(--z-marca);flex:none}
.card-subtitle{color:var(--z-texto-3);font-size:var(--z-t-sm);margin-top:2px}
.card-body{padding:var(--z-e5)}
.card-footer{padding:var(--z-e4) var(--z-e5);border-top:1px solid var(--z-linha-suave);background:color-mix(in srgb,var(--z-elevada) 55%,transparent)}
.card-body>:last-child{margin-bottom:0}
.z-card{padding:var(--z-e5)}.z-card h2{font-size:var(--z-t-md);margin:0 0 var(--z-e2)}
.zi-grade{display:grid;gap:var(--z-e4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:0 0 var(--z-e5)}
.zi-grade>.card{margin:0;height:100%}
.z-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--z-e5);align-items:start;margin:0 0 var(--z-e5)}
.z-cols>*{min-width:0}.z-cols .card{margin-bottom:0}
.z-stack{display:flex;flex-direction:column;gap:var(--z-e5);min-width:0}.z-stack>.card{margin:0}
.z-stack>*+*{margin-top:0}
/* ---- números de resumo ---- */
.zp-stat{position:relative}
.zp-stat .card-body{padding:var(--z-e4) var(--z-e5)}
/* o rótulo com palavra comprida (RECONHECIMENTO, COMPROMETIDAS) desce para baixo do ícone em vez de quebrar no meio da palavra, em qualquer largura */
.zp-stat-l{display:flex;flex-wrap:wrap;align-items:center;gap:var(--z-e1) var(--z-e2);overflow-wrap:anywhere;font-size:var(--z-t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--z-texto-3);font-weight:var(--z-peso-forte)}
.zp-stat-l .icon{width:16px;height:16px;color:var(--z-marca);flex:none}
.zp-stat-v{font-family:var(--z-fonte-display);font-size:var(--z-t-2xl);font-weight:var(--z-peso-display);line-height:1.1;margin:var(--z-e2) 0 var(--z-e1);font-variant-numeric:tabular-nums;overflow-wrap:normal;white-space:nowrap;letter-spacing:-.02em}
.zp-stat-texto .zp-stat-v{font-size:var(--z-t-xl);white-space:normal;overflow-wrap:normal}
/* valor nunca parte no meio (0,0025|1 · 40,99817|9): o tamanho acompanha a largura do cartão (largura útil ÷ largura de N caracteres). O servidor marca o cartão: -medio quando o número, ou a palavra mais longa do texto, tem 8 a 10 caracteres; -longo com 11 ou mais. Texto quebra entre palavras. */
@supports (width:1cqi){
  .zp-stat{container-type:inline-size}
  .zp-stat .zp-stat-v{--z-teto:var(--z-t-2xl);--z-div:4.2;font-size:min(var(--z-teto),calc((100cqi - 2.5rem) / var(--z-div)))}
  .zp-stat.zp-stat-texto .zp-stat-v{--z-teto:var(--z-t-xl);--z-div:1}
  .zp-stat.zp-stat-medio .zp-stat-v{--z-div:5.9}
  .zp-stat.zp-stat-longo .zp-stat-v{--z-div:8;font-size:max(.875rem,min(var(--z-teto),calc((100cqi - 2.5rem) / var(--z-div))))}
}
.zp-stat-h{font-size:var(--z-t-sm);color:var(--z-texto-3)}
.zi-numeros{display:grid;gap:var(--z-e4);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));margin:0 0 var(--z-e5)}
.zi-numeros>.card{margin:0}
/* ---- lista de pares ---- */
.zp-kv,.z-kv{display:grid;grid-template-columns:minmax(9rem,max-content) minmax(0,1fr);gap:var(--z-e3) var(--z-e6);margin:0}
.zp-kv dt,.z-kv dt{color:var(--z-texto-3);font-size:var(--z-t-sm);font-weight:var(--z-peso-medio)}
.zp-kv dd,.z-kv dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.zp-kv.zp-kv-pilha{grid-template-columns:1fr;gap:2px;margin-top:var(--z-e3)}.zp-kv-pilha dd{margin-bottom:var(--z-e3)}
/* ---- tabelas ---- */
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive:focus-visible{outline-offset:-3px}
.table{width:100%;border-collapse:collapse;font-size:var(--z-t-sm);font-variant-numeric:tabular-nums}
.table th{padding:var(--z-e3) var(--z-e5);text-align:left;font-size:var(--z-t-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--z-texto-3);font-weight:var(--z-peso-forte);background:color-mix(in srgb,var(--z-elevada) 40%,transparent);border-bottom:1px solid var(--z-linha);white-space:nowrap}
.table td{padding:var(--z-e3) var(--z-e5);border-bottom:1px solid var(--z-linha-suave);vertical-align:middle;white-space:nowrap}
.z-cols .table td,.z-cols .table th{white-space:normal}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover td{background:color-mix(in srgb,var(--z-elevada) 55%,transparent)}
.table caption{caption-side:top}
.zp-vazio{padding:var(--z-e7) var(--z-e5);text-align:center;color:var(--z-texto-3);white-space:normal!important}
.zp .zp-vazio,.zi .zp-vazio{background-image:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--z-marca) 8%,transparent),transparent 60%)}
.z-table-wrap{overflow-x:auto;border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie);box-shadow:var(--z-sombra-1)}
.z-quebra,.table td .z-quebra{white-space:normal;overflow-wrap:anywhere}
.z-email,.table td .z-email{white-space:normal;overflow-wrap:break-word;word-break:normal}
.table td .z-quebra-palavras{white-space:normal;overflow-wrap:anywhere;display:inline-block;min-width:18ch}
.z-acao-alvo{display:block;max-width:20rem;margin:0 0 var(--z-e1);font-size:var(--z-t-xs);line-height:1.35;color:var(--z-texto-3)}
.z-acoes-linha{display:flex;flex-wrap:wrap;gap:var(--z-e2)}.z-acoes-linha form{margin:0}
/* ---- trilha de etapas (a constelação: nós ligados; o último nó, a decisão, é âmbar) ---- */
.z-steps{counter-reset:zi-passo;list-style:none;padding:0;margin:0 0 var(--z-e5);display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:var(--z-e4)}
.z-steps li{counter-increment:zi-passo;position:relative;padding:var(--z-e5) var(--z-e4) var(--z-e4);border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie)}
.z-steps li::before{content:counter(zi-passo);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--z-marca) 18%,transparent);color:var(--z-marca);border:1px solid color-mix(in srgb,var(--z-marca) 45%,transparent);font-weight:var(--z-peso-forte);font-size:var(--z-t-sm);margin-bottom:var(--z-e3)}
.z-steps li:last-child::before{border-radius:6px;transform:rotate(45deg);background:color-mix(in srgb,var(--z-decisao) 22%,transparent);color:var(--z-decisao);border-color:color-mix(in srgb,var(--z-decisao) 55%,transparent);font-size:0}
.z-steps strong{display:block;font-family:var(--z-fonte-display);font-size:var(--z-t-md)}
.z-steps p{margin:var(--z-e1) 0 0;color:var(--z-texto-2);font-size:var(--z-t-sm)}
.zi-trilha{list-style:none;margin:0;padding:0;display:grid;gap:0}
.zi-trilha li{position:relative;padding:0 0 var(--z-e5) var(--z-e7);color:var(--z-texto-2)}
.zi-trilha li:last-child{padding-bottom:0}
.zi-trilha li::before{content:"";position:absolute;left:5px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--z-superficie);border:2px solid var(--z-linha-forte)}
.zi-trilha li::after{content:"";position:absolute;left:10px;top:20px;bottom:-6px;width:2px;background:var(--z-linha)}
.zi-trilha li:last-child::after{display:none}
.zi-trilha li[data-estado="feito"]::before{background:var(--z-marca);border-color:var(--z-marca)}
.zi-trilha li[data-estado="atual"]::before{border-color:var(--z-marca);box-shadow:0 0 0 4px color-mix(in srgb,var(--z-marca) 25%,transparent)}
.zi-trilha li[data-estado="decisao"]::before{border-radius:3px;transform:rotate(45deg);background:var(--z-decisao);border-color:var(--z-decisao)}
.zi-trilha strong{display:block;color:var(--z-texto);font-weight:var(--z-peso-forte)}
/* ---- avisos de resultado de ação ---- */
.zp-nota{margin:var(--z-e3) 0 0;font-size:var(--z-t-sm)}.zp-nota:first-child{margin-top:0}
.alert+*{margin-top:var(--z-e3)}
/* ---- token / bloco de código ---- */
.zp-token{font-family:var(--z-fonte-mono);font-size:var(--z-t-sm);background:var(--z-fundo);color:var(--z-texto);border:1px solid var(--z-linha);padding:var(--z-e4);border-radius:var(--z-r-sm);word-break:break-all;margin:0;letter-spacing:.02em}
.zp-progresso{display:block;width:100%;height:10px;margin:0 0 var(--z-e3);accent-color:var(--z-marca-acao)}
.zp-lista{margin:var(--z-e3) 0 0;padding-left:1.2rem}
.zp-extrato{list-style:none;margin:0;padding:0}.zp-extrato li{padding:var(--z-e2) 0;border-bottom:1px solid var(--z-linha-suave)}.zp-extrato li:last-child{border-bottom:0}.zp-extrato-q{color:var(--z-texto-3);margin-right:var(--z-e2)}.zp-extrato-t{font-weight:var(--z-peso-forte);margin-right:var(--z-e2)}.zp-extrato-s{color:var(--z-texto-3);white-space:nowrap}
.z-barrow{height:10px;background:var(--z-linha);border-radius:var(--z-r-pilula);overflow:hidden}
.z-barrow>span{display:block;height:100%;background:linear-gradient(90deg,var(--z-marca-acao),var(--z-marca));border-radius:inherit}
.z-bar-0>span{width:0%}.z-bar-5>span{width:5%}.z-bar-10>span{width:10%}.z-bar-15>span{width:15%}.z-bar-20>span{width:20%}.z-bar-25>span{width:25%}.z-bar-30>span{width:30%}.z-bar-35>span{width:35%}.z-bar-40>span{width:40%}.z-bar-45>span{width:45%}.z-bar-50>span{width:50%}.z-bar-55>span{width:55%}.z-bar-60>span{width:60%}.z-bar-65>span{width:65%}.z-bar-70>span{width:70%}.z-bar-75>span{width:75%}.z-bar-80>span{width:80%}.z-bar-85>span{width:85%}.z-bar-90>span{width:90%}.z-bar-95>span{width:95%}.z-bar-100>span{width:100%}
/* ---- telas de acesso (entrar, segundo fator, confirmar, recuperar) ---- */
body.zi-auth{display:grid;place-items:center;min-height:100vh;padding:var(--z-e5)}
.zi-auth-cartao{width:100%;max-width:27rem}
.zi-auth-marca{display:flex;align-items:center;justify-content:center;gap:var(--z-e3);min-height:var(--z-alvo);margin:0 0 var(--z-e5);color:var(--z-texto);text-decoration:none;font-family:var(--z-fonte-display);font-weight:var(--z-peso-display);font-size:var(--z-t-lg)}
.zi-auth-marca:hover{text-decoration:none}.zi-auth-marca svg{width:34px;height:34px}
.zi-auth-cartao .card{box-shadow:var(--z-sombra-2);margin:0}
.zi-auth-cartao .card-body{padding:var(--z-e7) var(--z-e6)}
.zi-auth-area{font-size:var(--z-t-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--z-texto-3);font-weight:var(--z-peso-forte);margin:0 0 var(--z-e1)}
.zi-auth-cartao h1{font-size:var(--z-t-xl);margin:0 0 var(--z-e2)}
.zi-auth-rodape{text-align:center;color:var(--z-texto-3);font-size:var(--z-t-sm);margin:var(--z-e5) 0 0}
/* ---- menu e topo no celular ---- */
@media (max-width:60rem){
  .zi-app{grid-template-columns:minmax(0,1fr)}
  .zi-lado{display:none}
  .zi-topo-m{display:flex;align-items:center;justify-content:space-between;gap:var(--z-e3);position:sticky;top:0;z-index:30;padding:var(--z-e2) var(--z-e4);background:var(--z-vidro);backdrop-filter:blur(12px);border-bottom:1px solid var(--z-linha)}
  .zi-menu-m{position:static}
  .zi-menu-m summary{list-style:none;display:inline-flex;align-items:center;gap:var(--z-e2);min-height:var(--z-alvo);padding:0 var(--z-e4);border:1px solid var(--z-linha-forte);border-radius:var(--z-r-sm);cursor:pointer;font-weight:var(--z-peso-medio);font-size:var(--z-t-sm)}
  .zi-menu-m summary::-webkit-details-marker{display:none}
  .zi-menu-m[open] summary{background:var(--z-elevada)}
  .zi-menu-painel{position:absolute;left:0;right:0;top:100%;width:auto;max-height:calc(100vh - 4.5rem);max-height:calc(100dvh - 4.5rem);overflow-y:auto;padding:var(--z-e3);background:var(--z-superficie);border:1px solid var(--z-linha-forte);border-top:0;border-radius:0 0 var(--z-r-md) var(--z-r-md);box-shadow:var(--z-sombra-2)}
  /* menu aberto: o conteúdo atrás do painel sai da ordem do teclado (o foco nunca para num campo coberto); o cabeçalho fixo não esconde o foco (WCAG 2.4.11) */
  body:has(.zi-menu-m[open]) main,body:has(.zi-menu-m[open]) footer{visibility:hidden}
  body:has(.zi-menu-m[open]) .pular{display:none}
  html{scroll-padding-top:5.5rem}
  .zi-menu-painel .zi-nav{gap:var(--z-e3)}
  .zi-menu-painel .zi-conta{margin-top:var(--z-e3)}
  .zi-conteudo{padding:var(--z-e5) var(--z-e4) var(--z-e7)}
  .zi-rodape{padding:var(--z-e5) var(--z-e4)}
  .z-cols{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:35.9375rem){
  .zp-kv,.z-kv{grid-template-columns:minmax(0,1fr);gap:2px}.zp-kv dd,.z-kv dd{margin-bottom:var(--z-e3)}
  .zp-empilha,.zp-empilha tbody,.zp-empilha tr,.zp-empilha td{display:block;width:100%}
  .zp-empilha thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .zp-empilha tr{border-bottom:1px solid var(--z-linha-suave);padding:var(--z-e2) 0}
  .zp-empilha tr:last-child{border-bottom:0}
  .zp-empilha td{border:0;padding:var(--z-e1) var(--z-e4);display:grid;grid-template-columns:minmax(7.5rem,40%) minmax(0,1fr);gap:var(--z-e2);overflow-wrap:anywhere;white-space:normal}
  .zp-empilha td>*{grid-column:2}
  .zp-empilha td>.z-pill{justify-self:start;white-space:normal}
  .zp-empilha td[data-rotulo]::before{content:attr(data-rotulo);color:var(--z-texto-3);font-weight:var(--z-peso-forte);font-size:var(--z-t-sm)}
  .zp-empilha td.zp-vazio{display:block;text-align:left}
  .zp-empilha tbody tr:hover td{background:transparent}
  .zi-numeros{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zi-numeros>.zp-stat-texto{grid-column:1/-1}
  .zi-cab{align-items:flex-start}
}
/* alvos de toque de 44 px nos links soltos do rodapé quando o aparelho é de toque ou a tela é estreita (no desktop com mouse bastam os 24 px de WCAG 2.5.8) */
@media (max-width:60rem),(pointer:coarse){.zi-rodape a{min-height:var(--z-alvo)}}
@media (max-width:35.9375rem){.zp-stat-l{letter-spacing:.04em}.zp-stat .card-body{padding:var(--z-e4)}}

/* Conversas do suporte (portal e administração): linha do tempo com uma caixa por mensagem; o texto da pessoa é sempre texto (pre-wrap), nunca HTML. */
.z-conversa{list-style:none;margin:0 0 var(--z-e5);padding:0;display:grid;gap:var(--z-e3)}
.z-msg{border:1px solid var(--z-linha-suave);border-radius:var(--z-r-md);padding:var(--z-e3) var(--z-e4);background:var(--z-superficie)}
.z-msg[data-autor=equipe]{border-color:color-mix(in srgb,var(--z-marca) 38%,var(--z-linha-suave));background:color-mix(in srgb,var(--z-marca) 7%,var(--z-superficie))}
.z-msg-cab{display:flex;flex-wrap:wrap;gap:var(--z-e1) var(--z-e3);align-items:baseline;justify-content:space-between;margin:0 0 var(--z-e2);font-size:var(--z-t-sm);color:var(--z-texto-3)}
.z-msg-cab strong{color:var(--z-texto);font-weight:var(--z-peso-forte)}
.z-msg-corpo{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.z-msg-envio{margin:var(--z-e2) 0 0;font-size:var(--z-t-sm);color:var(--z-texto-3)}
.z-filtros{display:flex;flex-wrap:wrap;gap:var(--z-e2);list-style:none;margin:0 0 var(--z-e4);padding:0}
.z-filtros a{display:inline-flex;align-items:center;min-height:var(--z-alvo);padding:0 var(--z-e4);border:1px solid var(--z-linha);border-radius:var(--z-r-pilula);text-decoration:none;color:var(--z-texto-2)}
.z-filtros a[aria-current=page]{border-color:var(--z-marca);color:var(--z-texto);background:color-mix(in srgb,var(--z-marca) 12%,transparent);font-weight:var(--z-peso-forte)}
.z-filtros span[aria-current=page]{display:inline-flex;align-items:center;min-height:var(--z-alvo);padding:0 var(--z-e4);color:var(--z-texto-3)}

/* Janela baixa (zoom de 400%, celular deitado): o cabeçalho do celular deixa de ser fixo. */
@media (max-width:60rem) and (max-height:32rem){.zi-topo-m{position:relative}html{scroll-padding-top:0}}
/* Assunto de conversa em célula de tabela: quebra em linhas curtas em vez de empurrar o estado e a data para fora do cartão. */
.z-assunto{display:block;max-width:42ch;white-space:normal;overflow-wrap:anywhere}
/* Alvo de toque de 44 px nos links das tabelas empilhadas (a referência da conversa é o único jeito de abrir uma). */
@media (max-width:48rem){.zp-empilha td a{display:inline-flex;align-items:center;min-height:var(--z-alvo)}}
/* Contraste forçado (Windows): o filtro atual se distingue pela borda grossa, não só pelo negrito. */
@media (forced-colors:active){.z-filtros a[aria-current=page]{border-width:3px}}
/* Tablet em pé (36rem a 48rem): as tabelas do portal também empilham, como as da administração; a faixa rolável escondia colunas de dados (o estado da conversa). */
@media (min-width:35.9375rem) and (max-width:48rem){
  .zp-empilha,.zp-empilha tbody,.zp-empilha tr,.zp-empilha td{display:block;width:100%}
  .zp-empilha thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .zp-empilha tr{border-bottom:1px solid var(--z-linha-suave);padding:var(--z-e2) 0}
  .zp-empilha tr:last-child{border-bottom:0}
  .zp-empilha td{border:0;padding:var(--z-e1) var(--z-e4);display:grid;grid-template-columns:minmax(7.5rem,32%) minmax(0,1fr);gap:var(--z-e2);overflow-wrap:anywhere;white-space:normal}
  .zp-empilha td>*{grid-column:2}
  .zp-empilha td>.z-pill{justify-self:start;white-space:normal}
  .zp-empilha td[data-rotulo]::before{content:attr(data-rotulo);color:var(--z-texto-3);font-weight:var(--z-peso-forte);font-size:var(--z-t-sm)}
  .zp-empilha td.zp-vazio{display:block;text-align:left}
  .zp-empilha tbody tr:hover td{background:transparent}
}
/* Telas muito estreitas (320 a 384): rótulo em cima, valor embaixo, na largura inteira (a pílula de estado não é cortada). */
@media (max-width:24rem){.zp-empilha td{grid-template-columns:minmax(0,1fr);gap:0}.zp-empilha td>*{grid-column:1}}
/* Selo de estado dentro de uma lista de pares (Situação agora, em /uso): quebra em vez de ser cortado quando o leitor impõe o espaçamento de texto (WCAG 1.4.12). */
.zp-kv dd .z-pill,.z-kv dd .z-pill{white-space:normal}

/* Links secundários do conteúdo e das telas de acesso; menu, marca, botões e estados não são reclassificados. */
.zi-corpo a:not(:where(.z-btn,.btn,.pular,.z-brand,.zi-marca,.zi-auth-marca,[aria-current],[data-tom],.z-pill,.alert a,.z-aviso a,.z-notice a,.z-warn a,.z-err a,.z-ok a)),
.zi-auth-cartao a:not(:where(.z-btn,.btn,.pular,.z-brand,.zi-marca,.zi-auth-marca,[aria-current],[data-tom],.z-pill,.alert a,.z-aviso a,.z-notice a,.z-warn a,.z-err a,.z-ok a)),
.zi-rodape a:not(:where(.z-btn,.btn,.pular,.z-brand,.zi-marca,.zi-auth-marca,[aria-current],[data-tom],.z-pill,.alert a,.z-aviso a,.z-notice a,.z-warn a,.z-err a,.z-ok a)){color:#94a3b8;text-decoration:none;transition:color var(--z-dur-rapida)}
.zi-corpo a:not(:where(.z-btn,.btn,.pular,.z-brand,.zi-marca,.zi-auth-marca,[aria-current],[data-tom],.z-pill,.alert a,.z-aviso a,.z-notice a,.z-warn a,.z-err a,.z-ok a)):is(:hover,:focus-visible),
.zi-auth-cartao a:not(:where(.z-btn,.btn,.pular,.z-brand,.zi-marca,.zi-auth-marca,[aria-current],[data-tom],.z-pill,.alert a,.z-aviso a,.z-notice a,.z-warn a,.z-err a,.z-ok a)):is(:hover,:focus-visible),
.zi-rodape a:not(:where(.z-btn,.btn,.pular,.z-brand,.zi-marca,.zi-auth-marca,[aria-current],[data-tom],.z-pill,.alert a,.z-aviso a,.z-notice a,.z-warn a,.z-err a,.z-ok a)):is(:hover,:focus-visible){color:#fff;text-decoration:none}

/* Zorion Constelação · portal do cliente (app.): regras que só valem em body.zi-portal. Dono: frente do portal. Só tokens --z-*; sem cor fixa.
   Contraste: o tom (info/ok/aviso/erro/decisão) pinta borda e ícone (gráfico, 3:1); o texto fica em --z-texto / --z-texto-2 / --z-texto-3. */
.zi-portal .zi-cab .zp-acoes{margin:0}
/* ---- próximo passo ---- */
.zi-portal .zp-proximo{--zp-tom:var(--z-info);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--z-e5);align-items:start;padding:var(--z-e6);margin:0 0 var(--z-e5);border:1px solid var(--z-linha);border-left:4px solid var(--zp-tom);border-radius:var(--z-r-md);background:linear-gradient(135deg,color-mix(in srgb,var(--zp-tom) 9%,var(--z-superficie)),var(--z-superficie) 70%);box-shadow:var(--z-sombra-1)}
.zi-portal .zp-proximo[data-tom="ok"]{--zp-tom:var(--z-ok)}
.zi-portal .zp-proximo[data-tom="aviso"]{--zp-tom:var(--z-aviso)}
.zi-portal .zp-proximo[data-tom="erro"]{--zp-tom:var(--z-erro)}
.zi-portal .zp-proximo[data-tom="decisao"]{--zp-tom:var(--z-decisao);--zp-tom-ic:color-mix(in srgb,var(--z-decisao) 62%,var(--z-texto))} /* o âmbar do tema claro sobre o quadradinho tonal dá 2,7:1; escurecido chega a ≥ 3:1 (medido) */
.zi-portal .zp-proximo-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--z-r-md);background:color-mix(in srgb,var(--zp-tom) 16%,transparent);color:var(--zp-tom-ic,var(--zp-tom))}
.zi-portal .zp-proximo-rot{margin:0 0 var(--z-e1);font-size:var(--z-t-xs);font-weight:var(--z-peso-forte);letter-spacing:.09em;text-transform:uppercase;color:var(--z-texto-3)}
.zi-portal .zp-proximo h2{margin:0 0 var(--z-e2);font-size:var(--z-t-xl)}
.zi-portal .zp-proximo-corpo>p:not(.zp-proximo-rot){max-width:62ch;margin:0;color:var(--z-texto-2)}
.zi-portal .zp-proximo .zp-acoes{margin-top:var(--z-e4)}
.zi-portal .zp-proximo form{margin:0}
/* ---- computadores (cartões que cabem em 320 px, sem rolagem lateral) ---- */
.zi-portal .zp-discos{list-style:none;margin:0;padding:0;display:grid;gap:var(--z-e3)}
.zi-portal .zp-disp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--z-e3) var(--z-e4);align-items:center;padding:var(--z-e4);border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie)}
.zi-portal .card .zp-disp{background:var(--z-fundo)}
.zi-portal .zp-disp[data-estado="revoked"]{border-style:dashed}
.zi-portal .zp-disp-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--z-r-sm);background:color-mix(in srgb,var(--z-marca) 14%,transparent);color:var(--z-marca)}
.zi-portal .zp-disp-nome{margin:0 0 var(--z-e1);display:flex;flex-wrap:wrap;align-items:center;gap:var(--z-e2);overflow-wrap:anywhere}
.zi-portal .zp-disp-meta{margin:0;display:flex;flex-wrap:wrap;gap:var(--z-e1) var(--z-e4);color:var(--z-texto-3);font-size:var(--z-t-sm)}
.zi-portal .zp-disp-acao{grid-column:2;justify-self:start;min-width:0;max-width:100%;width:100%}
.zi-portal .zp-disp-acao .zp-confirma{width:fit-content;max-width:100%}
.zi-portal .zp-disp-acao .zp-confirma[open]{width:100%}
.zi-portal .zp-vazio-bloco{padding:var(--z-e5);text-align:center;border:1px dashed var(--z-linha-forte);border-radius:var(--z-r-md);color:var(--z-texto-2)}
.zi-portal .zp-vazio-bloco p{margin:0 0 var(--z-e2)}
.zi-portal .zp-vazio-bloco p:last-child{margin-bottom:0}
/* ---- ação que pede segunda confirmação, sem JavaScript ---- */
.zi-portal .zp-confirma{border:0;border-radius:var(--z-r-sm)}
.zi-portal .zp-confirma>summary{list-style:none;display:flex;align-items:center;justify-content:center;min-height:var(--z-alvo);padding:0 var(--z-e5);border:1px solid var(--z-linha-forte);border-radius:var(--z-r-sm);cursor:pointer;font-weight:var(--z-peso-forte);font-size:var(--z-t-base);color:var(--z-texto);background:transparent;text-align:center}
.zi-portal .zp-confirma>summary::-webkit-details-marker{display:none}
.zi-portal .zp-confirma>summary:hover{background:var(--z-elevada);border-color:var(--z-marca)}
.zi-portal .zp-confirma[open]{border:1px solid var(--z-erro);background:color-mix(in srgb,var(--z-erro-fundo) 70%,var(--z-superficie))}
.zi-portal .zp-confirma[open]>summary{border-color:transparent;justify-content:flex-start;color:var(--z-erro)}
.zi-portal .zp-confirma-corpo{display:grid;gap:var(--z-e3);padding:0 var(--z-e4) var(--z-e4)}
.zi-portal .zp-confirma-corpo p{margin:0;color:var(--z-texto)}
.zi-portal .zp-confirma-corpo form{margin:0;display:grid;gap:var(--z-e3)}
.zi-portal .zp-confirma-corpo .z-actions{margin-top:0}
/* ---- detalhe recolhido ---- */
.zi-portal .zp-detalhe{margin:var(--z-e4) 0 0;border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie)}
.zi-portal .zp-detalhe>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--z-e3);min-height:var(--z-alvo);padding:var(--z-e2) var(--z-e4);font-weight:var(--z-peso-medio);color:var(--z-texto)}
.zi-portal .zp-detalhe>summary::-webkit-details-marker{display:none}
.zi-portal .zp-detalhe>summary::before{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--z-marca);border-bottom:2px solid var(--z-marca);transform:rotate(-45deg);transition:transform var(--z-dur-normal) var(--z-curva-saida)}
.zi-portal .zp-detalhe[open]>summary::before{transform:rotate(45deg)}
.zi-portal .zp-detalhe[open]>summary{border-bottom:1px solid var(--z-linha-suave)}
.zi-portal .zp-detalhe>:not(summary){margin:var(--z-e4)}
.zi-portal .zp-detalhe-tabela>:not(summary){margin:0}
.zi-portal .zp-detalhe-tabela .card{border:0;border-radius:0;box-shadow:none;margin:0}
.zi-portal .zp-detalhe>.alert{margin:var(--z-e4)}
/* ---- caminhos em etapas (instalar, ajuda) ---- */
.zi-portal .zp-etapas{counter-reset:zp-etapa;list-style:none;margin:0;padding:0;display:grid;gap:var(--z-e5)}
.zi-portal .zp-etapas>li{counter-increment:zp-etapa;position:relative;padding:var(--z-e5) var(--z-e5) var(--z-e5) calc(var(--z-e5) + 36px + var(--z-e4));border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie);box-shadow:var(--z-sombra-1)}
.zi-portal .zp-etapas>li::before{content:counter(zp-etapa);position:absolute;left:var(--z-e5);top:var(--z-e5);display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--z-marca) 18%,transparent);color:var(--z-marca);border:1px solid color-mix(in srgb,var(--z-marca) 45%,transparent);font-weight:var(--z-peso-forte)}
.zi-portal .zp-etapas[data-final="decisao"]>li:last-child::before{border-radius:9px;transform:rotate(45deg);background:color-mix(in srgb,var(--z-decisao) 22%,transparent);border-color:color-mix(in srgb,var(--z-decisao) 55%,transparent);font-size:0}
.zi-portal .zp-etapas h2{margin:0 0 var(--z-e2);font-size:var(--z-t-lg)}
.zi-portal .zp-etapas>li>p{margin:0;color:var(--z-texto-2)}
.zi-portal .zp-etapa-corpo{margin-top:var(--z-e3)}
.zi-portal .zp-etapa-corpo>:last-child{margin-bottom:0}
.zi-portal .zp-etapa-corpo .zp-kv{margin-bottom:var(--z-e3)}
.zi-portal .zp-etapa-corpo .zp-acoes{margin-top:var(--z-e3)}
.zi-portal .zp-ol{margin:var(--z-e3) 0;padding-left:1.4rem}
.zi-portal .zp-ol li{margin:0 0 var(--z-e2);padding-left:var(--z-e1)}
.zi-portal .zp-instalar{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
/* a tabela de movimentos de uso ocupa a largura toda e, no celular, empilha */
.zi-portal .z-cols .zs-portal{margin-top:var(--z-e3)}
@media (max-width:60rem){
  .zi-portal .zp-instalar{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:40rem){
  .zi-portal .zp-proximo{grid-template-columns:minmax(0,1fr);padding:var(--z-e5)}
  .zi-portal .zp-proximo-ic{width:44px;height:44px}
  .zi-portal .zp-disp-acao{grid-column:1/-1}
  .zi-portal .zp-disp-acao .zp-confirma{width:100%}
  .zi-portal .zp-etapas>li{padding:var(--z-e5)}
  .zi-portal .zp-etapas>li::before{position:static;margin-bottom:var(--z-e3)}
}
@media (prefers-reduced-motion:reduce){.zi-portal .zp-detalhe>summary::before{transition:none}}
/* ---- acabamento ---- */
.zi-portal .card-body>.zp-lista:first-child,.zi-portal .card-body>.zp-ol:first-child{margin-top:0}
.zi-portal .zp-lista+.alert,.zi-portal .zp-ol+.alert{margin-top:var(--z-e4)}
.zi-portal.zi-auth .zi-sub{margin:var(--z-e2) 0 var(--z-e5)}
.zi-portal.zi-auth .zi-auth-cartao .z-stack{gap:var(--z-e3)}
@media (max-width:35.9375rem){
  /* número ímpar de cartões de resumo: o último ocupa a linha inteira (nunca um cartão sozinho na metade) */
  .zi-portal .zi-numeros>.zp-stat:last-child:nth-child(odd){grid-column:1/-1}
}
@media (max-width:40rem){
  .zi-portal .zi-cab .zp-acoes .btn{flex:1 1 100%}
  /* próximo passo compacto: o ícone ao lado do rótulo e do título; o texto e as ações embaixo, em largura total */
  .zi-portal .zp-proximo{grid-template-columns:auto minmax(0,1fr);gap:var(--z-e2) var(--z-e4);align-items:center}
  .zi-portal .zp-proximo-corpo{display:contents}
  .zi-portal .zp-proximo-ic{grid-row:1/3;grid-column:1}
  .zi-portal .zp-proximo-rot{grid-column:2;grid-row:1;margin:0}
  .zi-portal .zp-proximo h2{grid-column:2;grid-row:2;margin:0}
  .zi-portal .zp-proximo-corpo>p:not(.zp-proximo-rot),.zi-portal .zp-proximo .zp-acoes{grid-column:1/-1}
  .zi-portal .zp-proximo-corpo>p:not(.zp-proximo-rot){margin-top:var(--z-e2)}
}
@media (max-width:22.5rem){
  /* 320–360 px: um cartão de resumo por linha (os rótulos em caixa alta não cabem em duas colunas) */
  .zi-portal .zi-numeros{grid-template-columns:minmax(0,1fr)}
}
.zi-portal .zp-nota-ia{margin:calc(var(--z-e3) * -1) 0 var(--z-e5);color:var(--z-texto-2)}
/* alvos de toque/clique de pelo menos 24 px (WCAG 2.2 · 2.5.8) nos links soltos do rodapé e da faixa de estado */
.zi-portal .zi-rodape a,.zi-portal .zs-portal a{display:inline-flex;align-items:center;min-height:32px}
@media (max-width:60rem),(pointer:coarse){.zi-portal .zi-rodape a,.zi-portal .zs-portal a{min-height:var(--z-alvo)}}
.zi-portal input[type=checkbox],.zi-portal input[type=radio]{width:24px;height:24px}
.zi-portal .form-check .form-check-input{margin-top:10px}

/* Confirmed capacity projection; percentages come from server counters. */
.zi-portal .zp-usage-window{min-width:0;display:grid;gap:.5rem;padding-block:1rem;overflow-wrap:anywhere}
.zi-portal .zp-usage-percent strong{font-size:1.25rem}
.zi-portal .zp-usage-bar{display:block;width:100%;height:16px;border-radius:4px;background:var(--z-bg)}
.zi-portal .zp-extras-form{display:grid;gap:.75rem;max-width:36rem}
.zi-portal .zp-extras-form label{display:block;overflow-wrap:anywhere}
.zi-portal .zp-extras-form input[type=number]{display:block;width:100%;box-sizing:border-box}

/*225: scoped ledger history; retain semantic table at narrow widths and zoom.*/
.zp-history-form{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin-block:1rem}.zp-history-form label{display:grid;gap:.35rem}.zp-history-form select{max-width:100%;min-height:2.75rem}.zp-uz-history-scroll{max-width:100%;overflow-x:auto}.zp-uz-history-scroll table{width:100%;border-collapse:collapse}.zp-uz-history-scroll th,.zp-uz-history-scroll td{text-align:left;padding:.65rem;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:top}.zp-uz-history-scroll:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/*345/347 · densidade compartilhada do portal, sem mudar tokens gerados,
  administração/landing, valores, controles, anéis de foco ou alvos de 44px. */
.zi-portal .zi-app{grid-template-columns:14.5rem minmax(0,1fr)}
.zi-portal .zi-lado{gap:var(--z-e2);padding:var(--z-e4) var(--z-e3) var(--z-e3)}
.zi-portal .zi-lado>.zi-nav{gap:var(--z-e2)}
.zi-portal .zi-conteudo{max-width:80rem;padding:var(--z-e6) var(--z-e6) var(--z-e7)}
.zi-portal .zi-cab{gap:var(--z-e3);margin-bottom:var(--z-e4)}
.zi-portal .zi-cab h1{font-size:clamp(1.375rem,1.1rem + .75vw,1.75rem);line-height:1.25}
.zi-portal .zi-sub,.zi-portal .page-subtitle{font-size:var(--z-t-base);line-height:1.45;margin-top:var(--z-e1)}
.zi-portal .zi-corpo>h2{margin:var(--z-e5) 0 var(--z-e2)}
.zi-portal h2.zp-secao{font-size:var(--z-t-md);margin:var(--z-e5) 0 var(--z-e3)}
.zi-portal .card,.zi-portal .z-card{margin-bottom:var(--z-e4)}
.zi-portal .card-header,.zi-portal .card-footer{padding:var(--z-e3) var(--z-e4)}
.zi-portal .card-body,.zi-portal .z-card{padding:var(--z-e4)}
.zi-portal .card-title{font-size:1rem}
.zi-portal .card-body>p{margin-bottom:var(--z-e3)}
.zi-portal .z-cols{gap:var(--z-e4);margin-bottom:var(--z-e4)}
.zi-portal .z-stack{gap:var(--z-e4)}
.zi-portal .z-stack>.card,.zi-portal .zi-numeros>.card{margin:0}
.zi-portal .zi-grade,.zi-portal .zi-numeros{gap:var(--z-e3);margin-bottom:var(--z-e4)}
.zi-portal .zp-stat .card-body{padding:var(--z-e3) var(--z-e4)}
.zi-portal .zp-stat .zp-stat-v{--z-teto:1.625rem;font-size:1.625rem}
.zi-portal .zp-stat.zp-stat-texto .zp-stat-v{--z-teto:var(--z-t-lg);font-size:var(--z-t-lg)}
@supports(width:1cqi){
 .zi-portal .zp-stat .zp-stat-v{font-size:min(var(--z-teto),calc((100cqi - 2rem) / var(--z-div,4.2)))}
 .zi-portal .zp-stat.zp-stat-longo .zp-stat-v{font-size:max(.875rem,min(var(--z-teto),calc((100cqi - 2rem) / var(--z-div,8))))}
}
.zi-portal .zp-kv,.zi-portal .z-kv{gap:var(--z-e2) var(--z-e4)}
.zi-portal .table th,.zi-portal .table td{padding:var(--z-e2) var(--z-e3)}
.zi-portal .zp-vazio{padding:var(--z-e5) var(--z-e4)}
.zi-portal .zp-proximo{padding:var(--z-e4);gap:var(--z-e3);margin-bottom:var(--z-e4)}
.zi-portal .zp-proximo-ic{width:40px;height:40px}
.zi-portal .zp-proximo h2{font-size:var(--z-t-lg)}
.zi-portal .zp-proximo .zp-acoes{margin-top:var(--z-e3)}
.zi-portal .zp-etapas{gap:var(--z-e3)}
.zi-portal .zp-etapas>li{padding:var(--z-e4) var(--z-e4) var(--z-e4) calc(var(--z-e4) + 32px + var(--z-e3))}
.zi-portal .zp-etapas>li::before{top:var(--z-e4);left:var(--z-e4);width:32px;height:32px}
.zi-portal .zp-etapas h2{font-size:var(--z-t-md)}
.zi-portal .zi-rodape{padding:var(--z-e4) var(--z-e6)}
/* Somente mensal/5h/7d lado a lado. Extras, preferências e origem ficam fora. */
.zi-portal .zp-usage-windows{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14.5rem),1fr));gap:var(--z-e3);margin:var(--z-e3) 0}
.zi-portal .zp-usage-window{min-width:0;gap:var(--z-e2);padding:var(--z-e3) 0;align-content:start}
.zi-portal .zp-usage-windows>.zp-usage-window{padding:var(--z-e3);border:1px solid var(--z-linha);border-radius:var(--z-r-sm)}
.zi-portal .zp-usage-window h3{font-size:var(--z-t-md);line-height:1.3}
.zi-portal .zp-usage-window p{margin:0;font-size:var(--z-t-sm);line-height:1.5}
.zi-portal .zp-usage-percent strong{font-size:var(--z-t-lg)}
.zi-portal .zp-usage-bar{height:12px;background:var(--z-fundo)}
.zi-portal .zp-usage-source{font-size:var(--z-t-sm);color:var(--z-texto-2);line-height:1.5}
@media(max-width:60rem){
 .zi-portal .zi-app{grid-template-columns:minmax(0,1fr)}
 .zi-portal .zi-conteudo{padding:var(--z-e4) var(--z-e4) var(--z-e6)}
 .zi-portal .zi-rodape{padding:var(--z-e4)}
}
@media(max-width:40rem){
 .zi-portal .zp-etapas>li{padding:var(--z-e4)}
 .zi-portal .zp-etapas>li::before{position:static;margin-bottom:var(--z-e2)}
 .zi-portal .zp-empilha td{padding:var(--z-e1) var(--z-e3)}
}

/* 444: a single activity stream and compact usage summary, with no global zoom. */
.zi-portal:has(#zp-capacity) .zi-conteudo{width:100%;max-width:1280px;margin-inline:auto;box-sizing:border-box}
.zi-portal #zp-capacity{font-size:16px;line-height:1.5}
.zi-portal .zp-usage-windows{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-block:16px}
.zi-portal .zp-usage-windows>.zp-usage-window{gap:8px;padding:16px}
.zi-portal .zp-usage-window h3{font-size:14px}
.zi-portal .zp-usage-window p,.zi-portal .zp-usage-source{font-size:14px}
.zi-portal .zp-usage-percent strong{font-size:18px}
.zi-portal .zp-usage-bar{height:10px}
.zi-portal .zp-usage-detail-surface{max-height:min(60dvh,560px);overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere;padding:12px;box-sizing:border-box;scrollbar-gutter:stable}
.zi-portal .zp-usage-detail-surface:focus-visible{outline:2px solid var(--z-marca);outline-offset:2px}
.zi-portal .zp-usage-detail-surface h3{font-size:16px}
.zi-portal .zp-usage-detail-surface dl{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.zi-portal .zp-usage-detail-surface dd{margin:0;overflow-wrap:anywhere}
.zi-portal .zp-extras-summary{margin-block:16px;display:grid;gap:8px}
.zi-portal .zp-extras-summary h3{font-size:16px;margin:0}
.zi-portal .zp-extras-summary p{margin:0}
.zi-portal .zp-extras-summary .zp-detalhe{margin-top:0}
.zi-portal .zp-extras-form{gap:12px;max-width:40rem}
.zi-portal .zp-extras-limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.zi-portal .zp-extras-limits input{max-width:18ch;min-height:36px;font-size:16px;padding:8px}
.zi-portal .zp-extras-form input[type=checkbox]{min-width:20px;min-height:20px}
.zi-portal .zp-extras-form button{justify-self:start;min-height:40px}
.zi-portal #uz-history{margin-block:24px}
.zi-portal #uz-history h2{font-size:20px;margin-bottom:12px}
.zi-portal .zp-history-form{margin-block:12px;gap:12px}
.zi-portal .zp-history-form label{font-size:14px}
.zi-portal .zp-history-form select,.zi-portal .zp-history-form button{min-height:40px;font-size:14px}
.zi-portal .zp-activity-list{display:grid;gap:0;list-style:none;padding:0;margin:0}
.zi-portal .zp-activity-list>li{border-bottom:1px solid var(--z-linha);padding-block:12px;min-width:0}
.zi-portal .zp-activity-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px}
.zi-portal .zp-activity-heading h3{font-size:16px;margin:0}
.zi-portal .zp-activity-heading span{font-size:14px}
.zi-portal .zp-activity-list p{margin-block:8px;font-size:14px}
.zi-portal .zp-activity-details>summary{min-height:36px;cursor:pointer;font-size:14px;display:flex;align-items:center}
.zi-portal .zp-activity-details a{display:inline-flex;min-height:36px;align-items:center;max-width:100%;overflow-wrap:anywhere}
.zi-portal .zp-legacy-history{margin-top:24px}
@media(max-width:48rem){.zi-portal .zp-usage-windows{grid-template-columns:minmax(0,1fr)}.zi-portal .zp-extras-limits{grid-template-columns:minmax(0,1fr)}.zi-portal .zp-usage-detail-surface dl{grid-template-columns:minmax(0,1fr)}}

/* Zorion Constelação · administração (admin.): regras que só valem em body.zi-admin. Dono: frente da administração. Só tokens --z-*; sem cor fixa.
   A cabine de operação: faixa de estado, lista "o que precisa de atenção", seções, detalhes recolhíveis, desejado × observado. Cor nunca é o único
   portador do significado: cada tom traz ícone e rótulo. */
body.zi-admin .za-secao{margin:0 0 var(--z-e7)}
body.zi-admin .za-secao-cab{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--z-e3);margin:0 0 var(--z-e3)}
body.zi-admin .za-secao-cab .zp-secao{margin:0}
body.zi-admin .za-ajuda{margin:0 0 var(--z-e4);color:var(--z-texto-2);font-size:var(--z-t-sm);max-width:70ch}
body.zi-admin .za-meta{margin:var(--z-e1) 0 0;color:var(--z-texto-3);font-size:var(--z-t-sm)}
body.zi-admin .za-rel{color:var(--z-texto-3)}
body.zi-admin .za-truncada{margin:0 0 var(--z-e3);padding:var(--z-e2) var(--z-e3);border-left:3px solid var(--z-info);background:var(--z-info-fundo);color:var(--z-texto);font-size:var(--z-t-sm);border-radius:0 var(--z-r-sm) var(--z-r-sm) 0}
body.zi-admin .za-cli{display:grid;gap:2px;min-width:0}
body.zi-admin .za-ref{color:var(--z-texto-3);font-size:var(--z-t-xs);white-space:normal;overflow-wrap:anywhere}
/* ---- faixa de estado geral (Saúde) ---- */
body.zi-admin .za-faixa{display:flex;gap:var(--z-e4);align-items:flex-start;margin:0 0 var(--z-e5);padding:var(--z-e5);border:1px solid var(--z-linha);border-left-width:6px;border-radius:var(--z-r-md);background:var(--z-neutro-fundo);color:var(--z-texto)}
body.zi-admin .za-faixa[data-tom="ok"]{border-color:color-mix(in srgb,var(--z-ok) 45%,var(--z-linha));background:var(--z-ok-fundo)}
body.zi-admin .za-faixa[data-tom="aviso"]{border-color:color-mix(in srgb,var(--z-aviso) 45%,var(--z-linha));background:var(--z-aviso-fundo)}
body.zi-admin .za-faixa[data-tom="erro"]{border-color:color-mix(in srgb,var(--z-erro) 50%,var(--z-linha));background:var(--z-erro-fundo)}
body.zi-admin .za-faixa[data-tom="info"]{border-color:color-mix(in srgb,var(--z-info) 45%,var(--z-linha));background:var(--z-info-fundo)}
body.zi-admin .za-faixa[data-tom="ok"]{border-left-color:var(--z-ok)}
body.zi-admin .za-faixa[data-tom="aviso"]{border-left-color:var(--z-aviso)}
body.zi-admin .za-faixa[data-tom="erro"]{border-left-color:var(--z-erro)}
body.zi-admin .za-faixa[data-tom="info"]{border-left-color:var(--z-info)}
body.zi-admin .za-faixa-ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--z-superficie);border:2px solid currentColor}
body.zi-admin .za-faixa[data-tom="ok"] .za-faixa-ic{color:var(--z-ok)}
body.zi-admin .za-faixa[data-tom="aviso"] .za-faixa-ic{color:var(--z-aviso)}
body.zi-admin .za-faixa[data-tom="erro"] .za-faixa-ic{color:var(--z-erro)}
body.zi-admin .za-faixa[data-tom="info"] .za-faixa-ic{color:var(--z-info)}
body.zi-admin .za-faixa-ic .icon{width:24px;height:24px}
body.zi-admin .za-faixa h2{margin:0;font-size:var(--z-t-xl);overflow-wrap:break-word}
/* o texto do aviso pode encolher ao lado do ícone (item de flex sem min-width:0 empurrava "acompanhamento" para fora da faixa em 320 px) */
body.zi-admin .za-faixa>div{min-width:0}
@media (max-width:24rem){body.zi-admin .za-faixa{padding:var(--z-e4);gap:var(--z-e3)}body.zi-admin .za-faixa h2{font-size:var(--z-t-lg)}}
body.zi-admin .za-faixa p{margin:var(--z-e1) 0 0;color:var(--z-texto)}
body.zi-admin .za-faixa .za-meta{color:var(--z-texto-2)}
/* ---- o que precisa de atenção ---- */
body.zi-admin .za-atencao{list-style:none;margin:0;padding:0;display:grid;gap:var(--z-e3)}
body.zi-admin .za-atencao li{display:grid;grid-template-columns:9.25rem minmax(0,1fr) auto;gap:var(--z-e4);align-items:center;padding:var(--z-e4) var(--z-e5);border:1px solid var(--z-linha);border-left-width:5px;border-radius:var(--z-r-md);background:var(--z-superficie);box-shadow:var(--z-sombra-1)}
body.zi-admin .za-atencao li[data-tom="erro"]{border-left-color:var(--z-erro)}
body.zi-admin .za-atencao li[data-tom="aviso"]{border-left-color:var(--z-aviso)}
body.zi-admin .za-atencao li[data-tom="info"]{border-left-color:var(--z-info)}
body.zi-admin .za-atencao-t strong{display:block;font-family:var(--z-fonte-display);font-size:var(--z-t-md)}
body.zi-admin .za-atencao-t p{margin:var(--z-e1) 0 0;color:var(--z-texto-2);font-size:var(--z-t-sm)}
body.zi-admin .za-atencao-t .za-meta{color:var(--z-texto-3)}
/* ---- atalhos entre telas ---- */
body.zi-admin .za-atalhos{display:flex;flex-wrap:wrap;gap:var(--z-e3);margin:0 0 var(--z-e5)}
body.zi-admin .za-atalhos .btn .icon{width:18px;height:18px}
/* ---- detalhe recolhível (sem JS) ---- */
body.zi-admin .za-det{margin:0 0 var(--z-e5);border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:var(--z-superficie);box-shadow:var(--z-sombra-1)}
body.zi-admin .za-det>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--z-e1) var(--z-e3);min-height:var(--z-alvo);padding:var(--z-e3) calc(var(--z-e5) + 22px) var(--z-e3) var(--z-e5);cursor:pointer;list-style:none;position:relative;border-radius:var(--z-r-md)}
body.zi-admin .za-det>summary::-webkit-details-marker{display:none}
body.zi-admin .za-det>summary::after{content:"";position:absolute;right:var(--z-e5);top:50%;width:9px;height:9px;border-right:2px solid var(--z-marca);border-bottom:2px solid var(--z-marca);transform:translateY(-70%) rotate(45deg);transition:transform var(--z-dur-normal) var(--z-curva-saida)}
body.zi-admin .za-det[open]>summary::after{transform:translateY(-30%) rotate(225deg)}
body.zi-admin .za-det>summary:hover{background:color-mix(in srgb,var(--z-elevada) 60%,transparent)}
body.zi-admin .za-det-t{font-family:var(--z-fonte-display);font-weight:var(--z-peso-forte);font-size:var(--z-t-md)}
body.zi-admin .za-det-r{color:var(--z-texto-3);font-size:var(--z-t-sm)}
body.zi-admin .za-det-corpo{padding:var(--z-e2) var(--z-e5) var(--z-e5);border-top:1px solid var(--z-linha-suave)}
body.zi-admin .za-det-corpo>.card,body.zi-admin .za-det-corpo>.alert{margin-bottom:var(--z-e3)}
body.zi-admin .za-det-corpo>:last-child{margin-bottom:0}
/* ---- cartões de número: quatro cabem em uma linha a partir de ~740px ---- */
body.zi-admin .zi-numeros{grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr))}
/* ---- operações de Clientes: cada cartão no seu tamanho natural ---- */
body.zi-admin .za-grade-ops{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:var(--z-e5);align-items:start;margin:0 0 var(--z-e5)}
body.zi-admin .za-grade-ops>.card{margin:0}
/* ---- grade de cartões da central e da arena ---- */
body.zi-admin .za-grade{display:grid;gap:var(--z-e5);margin:0 0 var(--z-e5);align-items:start}
body.zi-admin .za-grade-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr))}
body.zi-admin .za-grade-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
body.zi-admin .za-grade>div>.card{margin:0;height:100%}
body.zi-admin .za-alertas .card-body{padding:var(--z-e4) var(--z-e5)}
body.zi-admin .za-alertas{border-left:5px solid var(--z-aviso);background:var(--z-aviso-fundo)}
body.zi-admin .za-alertas ul{margin:0;padding-left:1.2rem;display:grid;gap:var(--z-e2)}
/* ---- desejada × no ar (servidor) ---- */
body.zi-admin .za-versus{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--z-e4);align-items:stretch;margin:0 0 var(--z-e5)}
body.zi-admin .za-versus-col{padding:var(--z-e4) var(--z-e5);border:1px solid var(--z-linha);border-radius:var(--z-r-md);background:color-mix(in srgb,var(--z-elevada) 55%,transparent);min-width:0}
body.zi-admin .za-versus-t{margin:0;font-size:var(--z-t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--z-texto-3);font-weight:var(--z-peso-forte)}
body.zi-admin .za-versus-v{margin:var(--z-e1) 0 0;font-family:var(--z-fonte-display);font-size:var(--z-t-2xl);font-weight:var(--z-peso-display);line-height:1.1;letter-spacing:-.02em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
body.zi-admin .za-versus-vazio{font-size:var(--z-t-lg);color:var(--z-texto-3);font-weight:var(--z-peso-medio);letter-spacing:0}
body.zi-admin .za-versus-sinal{align-self:center;font-family:var(--z-fonte-display);font-size:var(--z-t-2xl);color:var(--z-marca)}
/* ---- segundo fator: cadastro do segredo ---- */
body.zi-admin .za-passos{margin:0 0 var(--z-e4);padding-left:1.3rem;display:grid;gap:var(--z-e2)}
body.zi-admin .za-segredo-rotulo{margin:var(--z-e3) 0}
body.zi-admin .za-segredo{display:inline-block;max-width:100%;padding:var(--z-e1) var(--z-e3);border:1px solid var(--z-linha-forte);border-radius:var(--z-r-sm);background:var(--z-superficie);font-size:var(--z-t-base);letter-spacing:.04em;overflow-wrap:anywhere;text-wrap:balance}
body.zi-admin.zi-auth .za-det{margin-top:var(--z-e3)}
/* ---- nomes que não cabem: quebram dentro da célula/cartão em vez de empurrar a página ---- */
body.zi-admin .alert .d-flex>div{min-width:0;overflow-wrap:anywhere}
body.zi-admin .card-title,body.zi-admin .zp-kv dd{overflow-wrap:anywhere}
/* ---- células: uma tabela por tela, sem rolagem horizontal em 1440 ---- */
body.zi-admin .za-sem-quebra,body.zi-admin .za-quando time{white-space:nowrap}
body.zi-admin .za-celula{display:grid;gap:var(--z-e1);min-width:0}
/* rótulo de cartão de número que quebra em várias linhas não espreme o ícone (flex-shrink) */
body.zi-admin .zp-stat-l .icon{flex:none}
body.zi-admin .za-tabela-densa :is(th,td){padding-inline:var(--z-e3)}
body.zi-admin .zp-kv+.alert,body.zi-admin .zp-kv+.zp-nota{margin-top:var(--z-e4)}
body.zi-admin .zp-nota+.card,body.zi-admin .zp-nota+.table-responsive,body.zi-admin .zp-nota+.za-det,body.zi-admin .alert+.za-det{margin-top:var(--z-e3)}
/* ---- formulários: o primeiro rótulo só encosta no alto quando é mesmo o primeiro filho (a base zera o primeiro de cada tipo) ---- */
body.zi-admin form label{margin-top:var(--z-e4)}
body.zi-admin form>label:first-child{margin-top:0}
body.zi-admin.zi-auth .z-stack{margin-top:var(--z-e5)}
@media (min-width:36rem){
  body.zi-admin .za-tabela-num :is(th,td):not(:first-child){text-align:right}
}
@media (max-width:35.9375rem){
  /* tabela empilhada: a célula é uma grade rótulo | valor; vários filhos empilham na coluna do valor e o selo não estica */
  body.zi-admin .zp-empilha td>*{grid-column:2}
  body.zi-admin .zp-empilha td>.z-pill{justify-self:start;white-space:normal}
  body.zi-admin .za-quando,body.zi-admin .za-sem-quebra{white-space:normal}
}
/* tablet em pé (36rem a 48rem): as tabelas do admin também empilham; a faixa rolável escondia colunas de dados */
@media (min-width:35.9375rem) and (max-width:48rem){
  body.zi-admin .zp-empilha,body.zi-admin .zp-empilha tbody,body.zi-admin .zp-empilha tr,body.zi-admin .zp-empilha td{display:block;width:100%}
  body.zi-admin .zp-empilha thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  body.zi-admin .zp-empilha tr{border-bottom:1px solid var(--z-linha-suave);padding:var(--z-e2) 0}
  body.zi-admin .zp-empilha tr:last-child{border-bottom:0}
  body.zi-admin .zp-empilha td{border:0;padding:var(--z-e1) var(--z-e4);display:grid;grid-template-columns:minmax(7.5rem,32%) minmax(0,1fr);gap:var(--z-e2);overflow-wrap:anywhere;white-space:normal}
  body.zi-admin .zp-empilha td[data-rotulo]::before{content:attr(data-rotulo);color:var(--z-texto-3);font-weight:var(--z-peso-forte);font-size:var(--z-t-sm)}
  body.zi-admin .zp-empilha td.zp-vazio{display:block;text-align:left}
  body.zi-admin .zp-empilha tbody tr:hover td{background:transparent}
  body.zi-admin .zp-empilha td>*{grid-column:2}
  body.zi-admin .zp-empilha td>.z-pill{justify-self:start;white-space:normal}
  body.zi-admin .za-quando,body.zi-admin .za-sem-quebra{white-space:normal}
}
/* telas muito estreitas (320 a 384): rótulo em cima, valor embaixo, na largura inteira */
@media (max-width:24rem){
  body.zi-admin .zp-empilha td{grid-template-columns:minmax(0,1fr);gap:0}
  body.zi-admin .zp-empilha td>*{grid-column:1}
}
@media (max-width:48rem){
  body.zi-admin .za-faixa{gap:var(--z-e3);padding:var(--z-e4)}
  body.zi-admin .za-faixa-ic{width:36px;height:36px}
  body.zi-admin .za-faixa-ic .icon{width:20px;height:20px}
  body.zi-admin .za-atencao li{grid-template-columns:minmax(0,1fr);gap:var(--z-e3);padding:var(--z-e4)}
  body.zi-admin .za-atencao li .btn{justify-self:start}
  body.zi-admin .za-versus{grid-template-columns:minmax(0,1fr);gap:var(--z-e2)}
  body.zi-admin .za-versus-sinal{justify-self:center}
  body.zi-admin .za-det>summary{padding-left:var(--z-e4)}
  body.zi-admin .za-det-corpo{padding-left:var(--z-e4);padding-right:var(--z-e4)}
}
@media (prefers-reduced-motion:reduce){body.zi-admin .za-det>summary::after{transition:none}}
/* assunto de conversa de suporte em célula de tabela: quebra em linhas curtas em vez de empurrar as colunas seguintes para fora do cartão */
body.zi-admin .za-assunto{display:block;max-width:32ch;white-space:normal;overflow-wrap:anywhere}
/* recolhível logo depois de uma pilha de botões: respiro de um espaço (antes encostava no último botão) */
body.zi-admin .z-stack+.za-det{margin-top:var(--z-e4)}
@media (max-width:48rem){body.zi-admin .zp-empilha td a{display:inline-flex;align-items:center;min-height:var(--z-alvo)}}
/* Caixa de entrada do Suporte: cinco colunas não cabem entre 769 e 1200 px (o Assunto ficava com 66 px e a tabela rolava); empilha até 75rem como o tablet em pé. */
@media (min-width:48rem) and (max-width:75rem){
  body.zi-admin .za-suporte .zp-empilha,body.zi-admin .za-suporte .zp-empilha tbody,body.zi-admin .za-suporte .zp-empilha tr,body.zi-admin .za-suporte .zp-empilha td{display:block;width:100%}
  body.zi-admin .za-suporte .zp-empilha thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  body.zi-admin .za-suporte .zp-empilha tr{border-bottom:1px solid var(--z-linha-suave);padding:var(--z-e2) 0}
  body.zi-admin .za-suporte .zp-empilha tr:last-child{border-bottom:0}
  body.zi-admin .za-suporte .zp-empilha td{border:0;padding:var(--z-e1) var(--z-e4);display:grid;grid-template-columns:minmax(7.5rem,32%) minmax(0,1fr);gap:var(--z-e2);overflow-wrap:anywhere;white-space:normal}
  body.zi-admin .za-suporte .zp-empilha td[data-rotulo]::before{content:attr(data-rotulo);color:var(--z-texto-3);font-weight:var(--z-peso-forte);font-size:var(--z-t-sm)}
  body.zi-admin .za-suporte .zp-empilha td.zp-vazio{display:block;text-align:left}
  body.zi-admin .za-suporte .zp-empilha tbody tr:hover td{background:transparent}
  body.zi-admin .za-suporte .zp-empilha td>*{grid-column:2}
  body.zi-admin .za-suporte .zp-empilha td>.z-pill{justify-self:start;white-space:normal}
  body.zi-admin .za-suporte .za-quando,body.zi-admin .za-suporte .za-sem-quebra{white-space:normal}
}
@media (max-width:75rem){body.zi-admin .za-suporte .zp-empilha td a{display:inline-flex;align-items:center;min-height:var(--z-alvo)}}
