/* ==========================================================================
   Atendimento ao Cidadão: estilos do módulo (telas públicas e internas)
   Todas as classes começam com sx- para não brigar com o tema do Mad Builder.
   ========================================================================== */
:root{
  --sx-ink:#17324d;       /* títulos, cabeçalho */
  --sx-ink-2:#33506c;
  --sx-leaf:#1e7b5c;      /* ação principal */
  --sx-leaf-d:#155c45;
  --sx-leaf-bg:#e3f3ec;
  --sx-sol:#f2b84b;       /* destaque do protocolo */
  --sx-sol-bg:#fff5dc;
  --sx-paper:#f4f6f3;     /* fundo */
  --sx-card:#ffffff;
  --sx-line:#d9e0da;
  --sx-mute:#566677;
  --sx-danger:#b42318;
  --sx-danger-bg:#fde8e6;
  --sx-info-bg:#e8f0f7;
  --sx-radius:14px;
  --sx-font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
.sx-pub,.sx{ font-family:var(--sx-font); color:var(--sx-ink); }
.sx-pub{ margin:0; min-height:100vh; display:flex; flex-direction:column; background:var(--sx-paper); font-size:17px; line-height:1.55; -webkit-text-size-adjust:100%; }
.sx-pub *,.sx-pub *::before,.sx-pub *::after,.sx *,.sx *::before,.sx *::after{ box-sizing:border-box; }
.sx-pub h1,.sx-pub h2,.sx-pub h3,.sx h1,.sx h2,.sx h3{ font-family:var(--sx-font); color:var(--sx-ink); line-height:1.2; margin:0 0 .5em; letter-spacing:-.01em; }
.sx-pub h1,.sx h1.sx-h1{ font-size:clamp(1.65rem,1.2rem + 2vw,2.35rem); font-weight:700; }
.sx-pub h2,.sx h2.sx-h2{ font-size:1.3rem; font-weight:700; }
.sx-pub h3,.sx h3.sx-h3{ font-size:1.08rem; font-weight:700; }
.sx-pub p{ margin:0 0 1em; }
.sx-pub a:not([class]),.sx a.sx-link{ color:var(--sx-leaf-d); }
.sx-pub :focus-visible,.sx :focus-visible{ outline:3px solid #f2b84b; outline-offset:2px; border-radius:6px; }
.sx-hide{ display:none !important; }
.sx-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.sx-mute{ color:var(--sx-mute); }
.sx-small{ font-size:.88rem; }
.sx-nowrap{ white-space:nowrap; }

/* ---------- estrutura ---------- */
.sx-wrap{ width:100%; max-width:1040px; margin:0 auto; padding:0 16px; }
.sx-top{ background:var(--sx-ink); color:#fff; }
.sx-top .sx-wrap{ display:flex; align-items:center; gap:12px; min-height:64px; }
.sx-brand{ display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; min-width:0; }
.sx-brand-mark{ flex:none; width:40px; height:40px; border-radius:10px; background:var(--sx-sol); color:var(--sx-ink); display:grid; place-items:center; font-weight:700; font-size:1.2rem; }
.sx-brand-mark img{ width:100%; height:100%; object-fit:contain; border-radius:10px; background:#fff; }
.sx-brand-text{ min-width:0; }
.sx-brand-text strong{ display:block; font-size:1rem; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sx-brand-text span{ display:block; font-size:.8rem; opacity:.8; }
.sx-top-links{ margin-left:auto; display:flex; gap:6px; }
.sx-pub .sx-top-links a{ color:#fff; white-space:nowrap; text-decoration:none; font-size:.9rem; padding:8px 10px; border-radius:8px; opacity:.9; }
.sx-top-links a:hover{ background:rgba(255,255,255,.12); opacity:1; }
.sx-main{ flex:1 0 auto; padding:22px 0 56px; }
.sx-pub > svg{ position:absolute; width:0; height:0; }
.sx-foot{ border-top:1px solid var(--sx-line); background:#fff; padding:22px 0; color:var(--sx-mute); font-size:.9rem; }
.sx-foot .sx-wrap{ display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; }
.sx-section{ margin-top:34px; }
.sx-section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:12px; }
.sx-section-head h2{ margin:0; }

/* ---------- botões ---------- */
.sx-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 22px; border-radius:11px; border:1.5px solid transparent; font:700 1rem/1 var(--sx-font); text-decoration:none; cursor:pointer; transition:background .15s,border-color .15s,transform .05s; }
.sx-btn:active{ transform:translateY(1px); }
.sx-btn svg{ width:20px; height:20px; flex:none; }
.sx-arq a svg{ width:1.1em; height:1.1em; vertical-align:-.15em; flex:none; }
.sx-btn-primary{ background:var(--sx-leaf); color:#fff; }
.sx-btn-primary:hover{ background:var(--sx-leaf-d); }
.sx-btn-ghost{ background:#fff; color:var(--sx-ink); border-color:var(--sx-line); }
.sx-btn-ghost:hover{ border-color:var(--sx-ink-2); }
.sx-btn-danger{ background:#fff; color:var(--sx-danger); border-color:#e7b4af; }
.sx-btn-sm{ min-height:38px; padding:0 14px; font-size:.92rem; border-radius:9px; }
.sx-btn-block{ width:100%; }
.sx-btn[disabled]{ opacity:.55; cursor:not-allowed; }
.sx-actions{ display:flex; flex-wrap:wrap; gap:10px; }

/* ---------- cartões e grades ---------- */
.sx-card{ background:var(--sx-card); border:1px solid var(--sx-line); border-radius:var(--sx-radius); padding:20px; }
.sx-card-flat{ background:transparent; border:0; padding:0; }
.sx-grid{ display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.sx-tile{ display:flex; gap:14px; align-items:flex-start; padding:16px; background:#fff; border:1px solid var(--sx-line); border-radius:var(--sx-radius); text-decoration:none !important; color:var(--sx-ink) !important; transition:border-color .15s; }
.sx-tile:hover{ border-color:var(--sx-leaf); }
.sx-tile-ico{ flex:none; width:44px; height:44px; border-radius:11px; background:var(--sx-leaf-bg); color:var(--sx-leaf-d); display:grid; place-items:center; }
.sx-tile-ico svg{ width:24px; height:24px; }
.sx-tile strong{ display:block; font-size:1.02rem; line-height:1.25; }
.sx-tile span.sx-tile-d{ display:block; color:var(--sx-mute); font-size:.9rem; margin-top:2px; }

/* ---------- início ---------- */
.sx-hero{ display:grid; gap:20px; padding:10px 0 8px; grid-template-columns:1fr; align-items:start; }
@media(min-width:860px){ .sx-hero{ grid-template-columns:1.25fr 1fr; gap:36px; padding-top:22px; } }
.sx-hero p.sx-lead{ font-size:1.12rem; color:var(--sx-ink-2); max-width:34em; }
.sx-hero-actions{ display:grid; gap:12px; grid-template-columns:1fr; margin:20px 0 6px; max-width:420px; }
.sx-hero-actions .sx-btn{ min-height:60px; font-size:1.1rem; }
.sx-quickcard{ background:#fff; border:1px solid var(--sx-line); border-radius:var(--sx-radius); padding:20px; border-top:5px solid var(--sx-sol); }
.sx-quickcard h2{ font-size:1.15rem; margin-bottom:4px; }
.sx-quickcard p{ color:var(--sx-mute); font-size:.95rem; margin-bottom:12px; }
.sx-quickcard form{ display:grid; gap:10px; }
.sx-quick{ display:grid; gap:10px; grid-template-columns:1fr; align-items:end; }
@media(min-width:720px){ .sx-quick{ grid-template-columns:1.3fr 1fr auto; } }

/* ---------- formulários ---------- */
.sx-field{ margin-bottom:18px; }
.sx-field > label,.sx-label{ display:block; font-weight:700; font-size:.98rem; margin-bottom:6px; }
.sx-field .sx-help{ display:block; color:var(--sx-mute); font-size:.88rem; margin-top:4px; }
.sx-req{ color:var(--sx-danger); margin-left:2px; }
.sx-input,.sx-select,.sx-textarea{ width:100%; min-height:50px; padding:12px 14px; font:400 1rem/1.4 var(--sx-font); color:var(--sx-ink); background:#fff; border:1.5px solid #b9c5bd; border-radius:10px; }
.sx-textarea{ min-height:140px; resize:vertical; }
.sx-input:focus,.sx-select:focus,.sx-textarea:focus{ outline:none; border-color:var(--sx-leaf); box-shadow:0 0 0 4px rgba(30,123,92,.2); }
.sx-input[aria-invalid="true"],.sx-select[aria-invalid="true"],.sx-textarea[aria-invalid="true"]{ border-color:var(--sx-danger); }
.sx-row{ display:grid; gap:0 16px; grid-template-columns:1fr; }
@media(min-width:680px){ .sx-row-2{ grid-template-columns:1fr 1fr; } .sx-row-3{ grid-template-columns:1fr 1fr 1fr; } }
.sx-check{ display:flex; gap:12px; align-items:flex-start; padding:14px; background:var(--sx-info-bg); border-radius:10px; }
.sx-check input[type=checkbox],.sx-fc-chk input[type=checkbox]{ -webkit-appearance:none; appearance:none; flex:none; width:24px; height:24px; margin:1px 0 0; border:2px solid #8da097; border-radius:7px; background:#fff; display:inline-grid; place-content:center; cursor:pointer; transition:background .15s,border-color .15s,box-shadow .15s; }
.sx-check input[type=checkbox]::after,.sx-fc-chk input[type=checkbox]::after{ content:""; width:11px; height:6px; margin-top:-2px; border:solid #fff; border-width:0 0 3px 3px; transform:rotate(-45deg) scale(0); transition:transform .12s; }
.sx-check input[type=checkbox]:checked,.sx-fc-chk input[type=checkbox]:checked{ background:var(--sx-leaf); border-color:var(--sx-leaf); }
.sx-check input[type=checkbox]:checked::after,.sx-fc-chk input[type=checkbox]:checked::after{ transform:rotate(-45deg) scale(1); }
.sx-check input[type=checkbox]:hover,.sx-fc-chk input[type=checkbox]:hover{ border-color:var(--sx-leaf); }
.sx-check input[type=checkbox]:focus-visible,.sx-fc-chk input[type=checkbox]:focus-visible{ outline:3px solid var(--sx-sol); outline-offset:2px; }
.sx-check label{ font-weight:400; font-size:.95rem; }
.sx-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.sx-choices{ display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.sx-choice{ position:relative; }
.sx-choice input{ position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; }
.sx-choice span{ display:flex; align-items:center; justify-content:center; text-align:center; min-height:56px; padding:8px 10px; border:1.5px solid #b9c5bd; border-radius:11px; background:#fff; font-weight:700; }
.sx-choice input:checked + span{ border-color:var(--sx-leaf); background:var(--sx-leaf-bg); color:var(--sx-leaf-d); box-shadow:0 0 0 3px rgba(30,123,92,.18); }
.sx-choice input:focus-visible + span{ outline:3px solid #f2b84b; outline-offset:2px; }
.sx-file{ border:2px dashed #b9c5bd; border-radius:12px; padding:16px; background:#fbfcfb; }
.sx-file input{ width:100%; }
.sx-file-ret{ margin:0 0 10px; padding:9px 12px; border-radius:10px; background:#edf7f0; color:#1d5a37; font-weight:600; display:flex; gap:8px; align-items:flex-start; }
.sx-file-ret svg{ flex:none; width:20px; height:20px; margin-top:1px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.sx-file-ret span{ min-width:0; }
.sx-file-list{ list-style:none; margin:10px 0 0; padding:0; font-size:.92rem; }
.sx-file-list li{ padding:4px 0; color:var(--sx-ink-2); word-break:break-all; }

/* ---------- passo a passo ---------- */
.sx-progress{ margin:6px 0 18px; }
.sx-progress-bar{ height:8px; border-radius:99px; background:#dfe7e1; overflow:hidden; }
.sx-progress-bar i{ display:block; height:100%; background:var(--sx-leaf); border-radius:99px; transition:width .25s; }
.sx-progress-txt{ margin-top:8px; font-weight:700; color:var(--sx-ink-2); }
.sx-step-title{ margin-bottom:4px; }
.sx-step-sub{ color:var(--sx-mute); margin-bottom:18px; }
.sx-nav{ display:flex; gap:10px; justify-content:space-between; margin-top:24px; }
.sx-nav .sx-btn-primary{ margin-left:auto; }

/* ---------- avisos ---------- */
.sx-alert{ display:flex; gap:12px; padding:14px 16px; border-radius:11px; margin-bottom:16px; border:1px solid transparent; }
.sx-alert svg{ width:22px; height:22px; flex:none; margin-top:1px; }
.sx-alert-erro{ background:var(--sx-danger-bg); border-color:#f0b9b3; color:#7a1a12; }
.sx-alert-ok{ background:var(--sx-leaf-bg); border-color:#a9d6c3; color:#0f4a37; }
.sx-alert-info{ background:var(--sx-info-bg); border-color:#bdd2e3; color:var(--sx-ink); }
.sx-alert ul{ margin:.3em 0 0; padding-left:1.1em; }
.sx-empty{ text-align:center; padding:34px 16px; color:var(--sx-mute); border:1.5px dashed var(--sx-line); border-radius:var(--sx-radius); background:#fff; }
.sx-empty strong{ display:block; color:var(--sx-ink); margin-bottom:4px; }

/* ---------- situação (chip) ---------- */
.sx-chip{ display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:99px; font-weight:700; font-size:.86rem; line-height:1.3; white-space:nowrap; background:#e6edf4; color:#2f4d6b; }
.sx-chip::before{ content:""; width:8px; height:8px; border-radius:50%; background:currentColor; }
.sx-st-aberta,.sx-st-recebida{ background:#e6edf4; color:#2f4d6b; }
.sx-st-encaminhada{ background:#ececfb; color:#4338ca; }
.sx-st-em_andamento{ background:#fff1cf; color:#8a5a00; }
.sx-st-aguardando_informacao{ background:#ffe6d6; color:#a24410; }
.sx-st-respondida{ background:#d9f1ee; color:#0b5f58; }
.sx-st-concluida{ background:#dcf2e5; color:#146244; }
.sx-st-indeferida{ background:#fde1de; color:#a3261b; }
.sx-st-cancelada{ background:#f3e5f1; color:#7a2e6e; }
.sx-st-arquivada{ background:#eceef1; color:#59636f; }
.sx-tag{ display:inline-block; padding:2px 9px; border-radius:7px; background:#eef2ef; color:var(--sx-ink-2); font-size:.82rem; font-weight:700; }
.sx-tag-sol{ background:var(--sx-sol-bg); color:#6b4b00; }
.sx-tag-red{ background:var(--sx-danger-bg); color:var(--sx-danger); }

/* ---------- comprovante (protocolo) ---------- */
.sx-ticket{ position:relative; max-width:460px; margin:8px auto 22px; filter:drop-shadow(0 6px 14px rgba(23,50,77,.12)); }
.sx-ticket-top{ background:var(--sx-ink); color:#fff; padding:18px 22px 22px; border-radius:16px 16px 0 0; }
.sx-ticket-top .sx-ticket-ok{ display:flex; align-items:center; gap:8px; font-weight:700; margin-bottom:12px; }
.sx-ticket-ok svg{ width:22px; height:22px; color:var(--sx-sol); }
.sx-ticket-lbl{ font-size:.82rem; opacity:.8; }
.sx-ticket-num{ font-size:clamp(2rem,9vw,2.7rem); font-weight:700; letter-spacing:.02em; line-height:1.1; font-variant-numeric:tabular-nums; word-break:break-all; }
.sx-ticket-bottom{ position:relative; background:var(--sx-sol-bg); padding:20px 22px 22px; border-radius:0 0 16px 16px; border-top:2px dashed #d9a21b; }
.sx-ticket-bottom::before,.sx-ticket-bottom::after{ content:""; position:absolute; top:-13px; width:24px; height:24px; border-radius:50%; background:var(--sx-paper); }
.sx-ticket-bottom::before{ left:-12px; }
.sx-ticket-bottom::after{ right:-12px; }
.sx-ticket-key{ font-size:1.9rem; font-weight:700; letter-spacing:.28em; font-variant-numeric:tabular-nums; color:#4a3500; }
.sx-ticket-note{ margin:12px 0 0; font-size:.9rem; color:#5d4a14; }
.sx-ticket-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }

/* ---------- andamento / linha do tempo ---------- */
.sx-track{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:6px 0 22px; padding:0; list-style:none; counter-reset:t; }
.sx-track li{ position:relative; text-align:center; font-size:.82rem; font-weight:700; color:#8a97a3; padding-top:34px; }
.sx-track li::before{ content:""; position:absolute; top:8px; left:50%; transform:translateX(-50%); width:18px; height:18px; border-radius:50%; background:#fff; border:3px solid #c7d0c9; z-index:1; }
.sx-track li::after{ content:""; position:absolute; top:16px; left:-50%; width:100%; height:3px; background:#c7d0c9; }
.sx-track li:first-child::after{ display:none; }
.sx-track li.is-done{ color:var(--sx-ink); }
.sx-track li.is-done::before{ background:var(--sx-leaf); border-color:var(--sx-leaf); }
.sx-track li.is-done::after{ background:var(--sx-leaf); }
.sx-track li.is-now{ color:var(--sx-ink); }
.sx-track li.is-now::before{ background:var(--sx-sol); border-color:var(--sx-ink); box-shadow:0 0 0 5px rgba(242,184,75,.35); }
.sx-track li.is-now::after{ background:var(--sx-leaf); }
.sx-track.is-stop li.is-now::before{ background:var(--sx-danger); border-color:var(--sx-danger); box-shadow:0 0 0 5px rgba(180,35,24,.2); }
/* celular: so os pontos da trilha, em uma linha; o nome da etapa atual vai numa linha logo abaixo (sem apertar os textos nem empilhar) */
.sx-track-now{ display:none; margin:0 0 16px; text-align:center; font-weight:700; color:var(--sx-ink); }
@media(max-width:560px){
  .sx-track{ margin-bottom:8px; }
  .sx-track li{ font-size:0; padding-top:30px; }
  .sx-track-now{ display:block; }
}

.sx-timeline{ list-style:none; margin:0; padding:0 0 0 6px; }
.sx-tl{ position:relative; padding:0 0 20px 34px; }
.sx-tl::before{ content:""; position:absolute; left:11px; top:26px; bottom:0; width:2px; background:var(--sx-line); }
.sx-tl:last-child::before{ display:none; }
.sx-tl-dot{ position:absolute; left:0; top:0; width:24px; height:24px; border-radius:50%; background:var(--sx-ink-2); color:#fff; display:grid; place-items:center; }
.sx-tl-dot svg{ width:13px; height:13px; }
.sx-tl-abertura .sx-tl-dot{ background:var(--sx-ink); }
.sx-tl-encaminhamento .sx-tl-dot{ background:#4338ca; }
.sx-tl-situacao .sx-tl-dot{ background:#8a5a00; }
.sx-tl-providencia .sx-tl-dot,.sx-tl-resposta .sx-tl-dot{ background:#0b5f58; }
.sx-tl-evidencia .sx-tl-dot,.sx-tl-anexo .sx-tl-dot{ background:#6b4b00; }
.sx-tl-analise .sx-tl-dot{ background:#146244; }
.sx-tl-comentario .sx-tl-dot{ background:#8a97a3; }
.sx-tl-head{ display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; }
.sx-tl-title{ font-weight:700; }
.sx-tl-meta{ color:var(--sx-mute); font-size:.85rem; }
.sx-tl-text{ margin:4px 0 0; white-space:pre-wrap; word-break:break-word; }
.sx-tl-internal{ border-left:3px solid #c7ced6; background:#f2f4f6; padding:8px 12px; border-radius:0 9px 9px 0; margin-top:6px; }

/* ---------- enquete ---------- */
.sx-poll-opt{ display:block; width:100%; text-align:left; margin-bottom:8px; }
.sx-bar{ position:relative; background:#e9eee9; border-radius:9px; overflow:hidden; min-height:42px; margin-bottom:8px; }
.sx-bar i{ position:absolute; inset:0 auto 0 0; background:var(--sx-leaf-bg); border-right:3px solid var(--sx-leaf); }
.sx-bar span{ position:relative; display:flex; justify-content:space-between; gap:10px; padding:10px 12px; font-weight:700; }

/* ---------- avisos/notícias ---------- */
.sx-news{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.sx-news a{ display:block; padding:14px 16px; background:#fff; border:1px solid var(--sx-line); border-radius:var(--sx-radius); text-decoration:none; color:var(--sx-ink); }
.sx-news a:hover{ border-color:var(--sx-leaf); }
.sx-news strong{ display:block; font-size:1.02rem; }
.sx-news small{ color:var(--sx-mute); }
.sx-article img{ max-width:100%; height:auto; border-radius:12px; }
.sx-article .sx-body{ white-space:pre-wrap; word-break:break-word; max-width:44em; }

/* ---------- telas internas ---------- */
.sx{ padding:4px 0 30px; }
.sx .sx-pagehead{ display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; justify-content:space-between; margin:0 0 16px; }
.sx .sx-pagehead h1{ margin:0; }
.sx .sx-toolbar{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin-bottom:14px; }
.sx .sx-toolbar .sx-field{ margin:0; min-width:150px; flex:1 1 150px; }
.sx .sx-toolbar .sx-input,.sx .sx-toolbar .sx-select{ min-height:44px; }
.sx-split{ display:grid; gap:16px; grid-template-columns:1fr; align-items:start; }
@media(min-width:960px){ .sx-split{ grid-template-columns:minmax(0,1fr) 340px; } }
.sx-side > * + *{ margin-top:14px; }
.sx-kv{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:6px 14px; }
.sx-kv dt{ color:var(--sx-mute); font-size:.9rem; }
.sx-kv dd{ margin:0; font-weight:700; word-break:break-word; }
.sx-do{ display:grid; gap:8px; }
.sx-do .sx-btn{ justify-content:flex-start; }
.sx-box-title{ font-size:.95rem; font-weight:700; margin:0 0 10px; color:var(--sx-ink-2); }

/* tabela que vira lista no celular */
.sx-table{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--sx-line); border-radius:var(--sx-radius); overflow:hidden; }
.sx-table th{ text-align:left; font-size:.82rem; color:var(--sx-mute); background:#f4f7f5; padding:10px 12px; border-bottom:1px solid var(--sx-line); font-weight:700; }
.sx-table td{ padding:12px; border-bottom:1px solid #edf1ee; vertical-align:top; }
.sx-table tr:last-child td{ border-bottom:0; }
.sx-table tr.sx-row-link{ cursor:pointer; }
.sx-table tr.sx-row-link:hover td{ background:#f7faf8; }
.sx-table td a{ font-weight:700; color:var(--sx-ink); text-decoration:none; }
@media(max-width:700px){
  .sx-table thead{ display:none; }
  .sx-table,.sx-table tbody,.sx-table tr,.sx-table td{ display:block; width:100%; }
  .sx-table tr{ padding:10px 12px; border-bottom:1px solid var(--sx-line); }
  .sx-table td{ border:0; padding:3px 0; }
  .sx-table td[data-l]::before{ content:attr(data-l) ": "; color:var(--sx-mute); font-size:.82rem; }
}
.sx-pager{ display:flex; gap:8px; align-items:center; justify-content:center; margin-top:14px; flex-wrap:wrap; }

/* painel */
.sx-kpis{ display:grid; gap:12px; grid-template-columns:repeat(2,1fr); margin-bottom:16px; }
@media(min-width:860px){ .sx-kpis{ grid-template-columns:repeat(4,1fr); } }
.sx-kpi{ background:#fff; border:1px solid var(--sx-line); border-radius:var(--sx-radius); padding:16px; }
.sx-kpi-n{ font-size:2rem; font-weight:700; line-height:1.1; font-variant-numeric:tabular-nums; }
.sx-kpi-l{ color:var(--sx-mute); font-size:.9rem; }
.sx-kpi.is-alert .sx-kpi-n{ color:var(--sx-danger); }
.sx-bars{ display:grid; gap:9px; }
.sx-bars-row{ display:grid; grid-template-columns:minmax(90px,38%) 1fr 44px; gap:10px; align-items:center; font-size:.92rem; }
.sx-bars-row > span:first-child{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sx-bars-track{ height:14px; background:#e9eee9; border-radius:99px; overflow:hidden; }
.sx-bars-track i{ display:block; height:100%; background:var(--sx-leaf); border-radius:99px; }
.sx-bars-row b{ text-align:right; font-variant-numeric:tabular-nums; }
.sx-cols{ display:flex; align-items:flex-end; gap:6px; height:150px; padding-top:10px; }
.sx-cols div{ flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; font-size:.72rem; color:var(--sx-mute); }
.sx-cols i{ display:block; width:100%; max-width:34px; background:var(--sx-leaf); border-radius:6px 6px 0 0; min-height:2px; }
.sx-cols b{ font-size:.8rem; color:var(--sx-ink); margin-bottom:3px; }

/* ---------- impressão ---------- */
.sx-print-only{ display:none; }
@media print{
  @page{ size:A4 portrait; margin:16mm; }
  html,body{ height:auto !important; overflow:visible !important; background:#fff !important; }
  /* a pagina publica fica numa camada fixa com rolagem: no papel ela precisa fluir, senao so sai o que cabia na tela */
  /* a pagina publica fica dentro do painel do login, que tem altura de uma tela inteira: no papel isso gera uma folha em branco */
  .container-login:has(.sx-pub),.container-login:has(.sx-pub) .panel-login,.panel-login:has(.sx-pub){ display:block !important; height:auto !important; min-height:0 !important; max-height:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; overflow:visible !important; }
  .sx-pub.sx-cover{ position:static !important; inset:auto !important; overflow:visible !important; height:auto !important; min-height:0 !important; }
  .sx-foot,.sx-actions,.sx-ticket-actions,.sx-nav,.sx-toolbar,.sx-no-print,.sx-submitbar,.sx-menu,.sx-backbar,.sx-skip,.sx-top-links{ display:none !important; }
  .sx-top{ position:static !important; background:#fff !important; box-shadow:none !important; border:0 !important; padding:0 0 8pt !important; }
  .sx-top .sx-wrap{ padding:0 !important; max-width:none !important; }
  .sx-brand{ color:#000 !important; }
  .sx-brand-mark{ background:#fff !important; color:#000 !important; border:1.5pt solid #000; }
  .sx-brand-text strong{ color:#000 !important; }
  .sx-pub{ background:#fff !important; font-size:12pt; color:#000; min-height:0 !important; display:block !important; }
  .sx-pub main,.sx-pub .sx-formpage,.sx-pub .sx-center-page{ max-width:none !important; width:auto !important; padding:0 !important; margin:0 !important; }
  .sx-print-only{ display:block !important; }
  .sx-print-head{ display:flex !important; justify-content:space-between; align-items:baseline; gap:12px; border-bottom:1.5pt solid #000; padding-bottom:6pt; margin-bottom:18pt; font-size:14pt; }
  .sx-print-head span{ font-size:10pt; }
  .sx-print-foot{ margin-top:16pt; font-size:11pt; color:#000; }
  .sx-print-url{ font-weight:700; word-break:break-all; }
  /* o comprovante sai em preto no branco: fundo escuro com texto claro some quando o navegador nao imprime fundos */
  .sx-ticket{ filter:none !important; max-width:none !important; margin:0 !important; border:2pt solid #000; border-radius:10pt; break-inside:avoid; page-break-inside:avoid; }
  .sx-ticket-top{ background:#fff !important; color:#000 !important; border-radius:10pt 10pt 0 0; padding:16pt 18pt; }
  .sx-ticket-top .sx-ticket-ok svg,.sx-ticket-ok svg{ color:#000 !important; }
  .sx-ticket-lbl{ opacity:1 !important; color:#000 !important; font-size:11pt; }
  .sx-ticket-num{ font-size:34pt !important; letter-spacing:.1em !important; white-space:nowrap; word-break:normal !important; color:#000 !important; }
  .sx-ticket-bottom{ background:#fff !important; border-top:1.5pt dashed #000; border-radius:0 0 10pt 10pt; padding:14pt 18pt; }
  .sx-ticket-bottom::before,.sx-ticket-bottom::after{ display:none !important; }
  .sx-ticket-key{ color:#000 !important; font-size:20pt !important; }
  .sx-ticket-note,.sx-ticket-bottom .sx-ticket-lbl{ color:#000 !important; }
  .sx-card,.sx-kpi{ break-inside:avoid; }
  a{ color:#000; text-decoration:none; }
  .sx-pub *:last-child{ margin-bottom:0; }
  .sx-pub,.sx-pub main{ break-after:avoid; page-break-after:avoid; }
}
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; } }
.sx-center{ text-align:center; }

/* ---------- avisos rápidos e detalhes das telas internas ---------- */
.sx-toast{ position:fixed; z-index:99999; left:50%; bottom:22px; transform:translateX(-50%); max-width:calc(100vw - 32px); padding:13px 20px; border-radius:12px; background:#17324d; color:#fff; font:700 .98rem/1.3 var(--sx-font); box-shadow:0 10px 30px rgba(0,0,0,.25); transition:opacity .4s; }
.sx-toast.is-erro{ background:#b42318; }
.sx-toast.is-out{ opacity:0; }
.sx .sx-acao{ border:1px solid var(--sx-line); border-radius:12px; background:#fff; }
.sx .sx-acao > summary{ cursor:pointer; list-style:none; padding:13px 16px; font-weight:700; display:flex; align-items:center; gap:10px; min-height:48px; border-radius:12px; }
.sx .sx-acao > summary::-webkit-details-marker{ display:none; }
.sx .sx-acao > summary svg{ width:20px; height:20px; flex:none; color:var(--sx-leaf-d); }
.sx .sx-acao[open] > summary{ border-bottom:1px solid var(--sx-line); border-radius:12px 12px 0 0; background:#f4f7f5; }
.sx .sx-acao > div{ padding:16px; }
.sx .sx-linha-campo{ display:grid; gap:8px; grid-template-columns:1fr; padding:12px; border:1px solid var(--sx-line); border-radius:12px; background:#fff; margin-bottom:10px; }
@media(min-width:760px){ .sx .sx-linha-campo{ grid-template-columns:2fr 1.2fr 1fr 2fr auto; align-items:end; } .sx .sx-linha-dica{ grid-column:1 / -1; } }
.sx .sx-linha-campo .sx-field{ margin:0; }
.sx .sx-files{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.sx .sx-files li{ display:flex; flex-wrap:wrap; gap:6px 12px; align-items:center; justify-content:space-between; padding:10px 12px; border:1px solid var(--sx-line); border-radius:10px; background:#fff; }
.sx .sx-files .sx-fn{ font-weight:700; word-break:break-all; }
.sx .sx-files small{ color:var(--sx-mute); }
.sx .sx-desc{ white-space:pre-wrap; word-break:break-word; }
.sx .sx-photo{ display:block; max-width:100%; max-height:280px; border-radius:10px; border:1px solid var(--sx-line); margin-top:8px; }
.sx .sx-late{ color:var(--sx-danger); font-weight:700; }
.sx label,.sx button,.sx summary{ font-family:var(--sx-font); }
.sx-int .sx-card{ background:#fff; border:1px solid var(--sx-line); border-radius:var(--sx-radius); padding:18px; }
.sx-int .sx-card + .sx-card{ margin-top:14px; }

/* ---------- painel gerencial ---------- */
.sx-kpi-d{ color:var(--sx-mute); font-size:.78rem; margin-top:2px; }
.sx-kpis{ margin-top:4px; }
@media(min-width:1100px){ .sx-kpis{ grid-template-columns:repeat(6,1fr); } }
.sx-grid2,.sx-grid3{ display:grid; gap:14px; grid-template-columns:1fr; margin-top:14px; }
@media(min-width:860px){ .sx-grid2{ grid-template-columns:1fr 1fr; } }
@media(min-width:1100px){ .sx-grid3{ grid-template-columns:repeat(3,1fr); } }
.sx-int .sx-grid2 > .sx-card,.sx-int .sx-grid3 > .sx-card{ margin-top:0; }
.sx-int .sx-grid2 + .sx-card,.sx-int .sx-grid3 + .sx-card,.sx-int .sx-card + .sx-grid3,.sx-int .sx-card + .sx-grid2{ margin-top:14px; }
.sx .sx-num{ text-align:right; font-variant-numeric:tabular-nums; }
.sx-table-compact td,.sx-table-compact th{ padding:9px 12px; }
.sx-svg{ display:block; width:100%; height:auto; max-height:240px; }
.sx-svgbar{ fill:var(--sx-leaf); }
.sx-svgtxt{ font:600 12px var(--sx-font); fill:var(--sx-ink); }
.sx-svgtxt-mute{ font-weight:400; font-size:11px; fill:var(--sx-mute); }
.sx-svgline{ stroke:var(--sx-line); stroke-width:1; }
.sx-datas[hidden]{ display:none !important; }
@media(max-width:760px){ .sx .sx-num{ text-align:left; } .sx-table-compact td{ padding:3px 0; } }

/* ---------- historico de alteracoes ---------- */
.sx-log{ display:grid; gap:12px; }
.sx-int .sx-log .sx-card + .sx-card{ margin-top:0; }
.sx-log-top{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px; margin-bottom:8px; }
.sx-log-tab{ box-shadow:none; }

/* ---------- acessibilidade: pular para o conteudo ---------- */
.sx-skip{ position:absolute; left:-9999px; top:0; z-index:200; }
.sx-skip:focus{ left:10px; top:10px; background:#fff; color:var(--sx-ink); padding:12px 18px; border-radius:10px; font-weight:700; text-decoration:none; box-shadow:0 4px 18px rgba(0,0,0,.25); }
.sx-main:focus{ outline:none; }

/* ---------- Paginas publicas abertas por index.php?class=... (dentro do layout de login do Mad) ---------- */
body:has(.sx-pub){ margin:0; background:var(--sx-paper); }
.container-login:has(.sx-pub){ display:block; height:auto; min-height:100vh; background:var(--sx-paper) !important; }
.container-login:has(.sx-pub) .panel-login{ display:block; width:100% !important; max-width:none !important; height:auto !important; max-height:none !important; min-height:100vh; margin:0; border-radius:0 !important; box-shadow:none !important; overflow:visible; background:transparent; }
.container-login:has(.sx-pub) .panel-login .info-login{ display:none !important; }
.container-login:has(.sx-pub) .panel-login > div,
.container-login:has(.sx-pub) .panel-login .login-content{ display:block; width:100%; padding:0 !important; background:transparent !important; overflow:visible; border-radius:0 !important; }
.container-login:has(.sx-pub) #adianti_div_content{ width:100%; }
.sx-pub button,.sx-pub input,.sx-pub select,.sx-pub textarea{ font-family:inherit; }
.container-login .panel-login .login-content .sx-pub h1{ color:var(--sx-ink); text-align:left !important; font-size:clamp(1.65rem,1.2rem + 2vw,2.35rem); font-weight:700 !important; margin:0 0 .5em; }
.container-login .panel-login .login-content .sx-pub h2,
.container-login .panel-login .login-content .sx-pub h3{ color:var(--sx-ink); text-align:left; }
.sx-pub label,.sx-pub legend{ font-family:var(--sx-font); }

/* ---------- Paginas publicas v3: tela cheia, menu, voltar, formularios ---------- */
.sx-pub.sx-cover{ position:fixed; inset:0; z-index:2147483000; overflow:auto; -webkit-overflow-scrolling:touch; }
.sx-menu{ background:#fff; border-bottom:1px solid var(--sx-line); }
.sx-menu .sx-wrap{ display:flex; gap:2px; overflow-x:auto; white-space:nowrap; }
.sx-pub .sx-menu a{ display:inline-flex; align-items:center; min-height:48px; padding:0 14px; color:var(--sx-ink); text-decoration:none; font-weight:600; font-size:.96rem; border-bottom:3px solid transparent; }
.sx-pub .sx-menu a:hover{ background:var(--sx-leaf-bg); }
.sx-pub .sx-menu a.is-on{ border-bottom-color:var(--sx-leaf); color:var(--sx-leaf-d); }
.sx-backbar{ background:#eef2ee; border-bottom:1px solid var(--sx-line); }
.sx-pub a.sx-back{ display:inline-flex; gap:8px; align-items:center; min-height:46px; font-weight:700; color:var(--sx-ink); text-decoration:none; }
.sx-pub a.sx-back:hover{ text-decoration:underline; }
.sx-back svg{ width:20px; height:20px; }
.sx-lead{ font-size:1.08rem; color:var(--sx-ink-2); max-width:44em; }
.sx-home{ padding:6px 0 0; }
.sx-actions-grid{ display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); margin-top:18px; }
.sx-action{ display:flex; gap:14px; align-items:center; padding:18px; min-height:96px; background:#fff; border:1.5px solid var(--sx-line); border-radius:var(--sx-radius); }
.sx-pub a.sx-action{ color:var(--sx-ink); text-decoration:none; transition:border-color .15s, box-shadow .15s; }
.sx-pub a.sx-action:hover{ border-color:var(--sx-leaf); box-shadow:0 2px 10px rgba(23,50,77,.08); }
.sx-action strong{ display:block; font-size:1.08rem; line-height:1.25; }
.sx-action span span{ display:block; color:var(--sx-mute); font-size:.92rem; margin-top:2px; }
.sx-action-ico{ flex:none; width:50px; height:50px; border-radius:12px; background:var(--sx-leaf-bg); color:var(--sx-leaf-d); display:grid; place-items:center; }
.sx-action-ico svg{ width:26px; height:26px; }
.sx-pub a.sx-action-main{ background:var(--sx-leaf); border-color:var(--sx-leaf); color:#fff; }
.sx-pub a.sx-action-main:hover{ background:var(--sx-leaf-d); border-color:var(--sx-leaf-d); }
.sx-action-main .sx-action-ico{ background:rgba(255,255,255,.2); color:#fff; }
.sx-action-main span span{ color:#e6f6ee; }
.sx-action-search{ align-items:flex-start; }
.sx-action-search > div{ flex:1; min-width:0; }
.sx-inline{ display:flex; gap:8px; margin-top:8px; }
.sx-inline .sx-input{ min-height:46px; }
.sx-inline .sx-btn{ min-height:46px; padding:0 16px; }
.sx-formpage{ max-width:780px; margin:0 auto; }
.sx-formpage.sx-narrow{ max-width:560px; }
.sx-formpage.sx-wide{ max-width:none; }
.sx-sec{ margin-bottom:16px; }
.sx-sec h2{ display:flex; align-items:center; gap:10px; font-size:1.2rem; margin-bottom:14px; }
.sx-n{ flex:none; width:30px; height:30px; border-radius:50%; background:var(--sx-ink); color:#fff; display:grid; place-items:center; font-size:.95rem; }
.sx-opt{ color:var(--sx-mute); font-weight:400; font-size:.85rem; }
.sx-err{ display:block; color:var(--sx-danger); font-weight:600; font-size:.92rem; margin-top:6px; }
.has-erro .sx-input,.has-erro .sx-select,.has-erro .sx-textarea{ border-color:var(--sx-danger); background:#fff8f7; }
.has-erro > label,.has-erro > .sx-label{ color:var(--sx-danger); }
.sx-submitbar{ display:flex; gap:12px; justify-content:space-between; align-items:center; margin-top:8px; padding:14px 0; position:sticky; bottom:0; background:linear-gradient(to top, var(--sx-paper) 70%, rgba(244,246,243,0)); }
.sx-submitbar .sx-btn-primary{ margin-left:auto; }
.sx-btn-lg{ min-height:56px; font-size:1.08rem; padding:0 28px; }
.sx-alert-erro ul{ margin:6px 0 0; padding-left:20px; }
.sx-alert-erro a{ color:inherit; text-decoration:underline; }
.sx-check-line{ margin-bottom:8px; }
.sx-choices-2{ grid-template-columns:repeat(2,1fr); max-width:320px; }
.sx-center-page{ padding-top:6px; }
.sx-narrow form.sx-card .sx-submitbar{ position:static; background:none; }
@media(max-width:760px){ .sx-submitbar{ position:static; background:none; } }
@media(max-width:560px){ .sx-submitbar{ flex-direction:column-reverse; align-items:stretch; } .sx-submitbar .sx-btn{ width:100%; margin-left:0; } .sx-inline{ flex-direction:column; } }
.sx-pub .sx-alert-erro a{ color:var(--sx-danger); font-weight:600; }
.sx-pub .sx-alert-erro strong{ display:block; }

/* Tela inicial: acompanhar protocolo com protocolo + chave no mesmo cartao */
.sx-quickform{ display:grid; gap:10px; margin-top:10px; }
.sx-quickform .sx-field{ margin:0; }
.sx-quickform .sx-btn{ justify-self:start; min-height:46px; }
.sx-quickform label{ font-size:.92rem; }
@media(max-width:560px){ .sx-quickform .sx-btn{ width:100%; justify-self:stretch; } }

/* ===== Pagina inicial v5: dois botoes grandes e leitura melhor no computador ===== */
.sx-big-grid{ display:grid; gap:18px; grid-template-columns:1fr; margin-top:22px; }
@media(min-width:760px){ .sx-big-grid{ grid-template-columns:1fr 1fr; } }
.sx-big{ display:flex; flex-direction:column; gap:10px; padding:26px 28px; min-height:200px; border-radius:18px; border:2px solid var(--sx-line); background:#fff; }
.sx-pub a.sx-big{ color:var(--sx-ink); text-decoration:none; transition:box-shadow .15s, border-color .15s; }
.sx-pub a.sx-big:hover{ box-shadow:0 4px 16px rgba(23,50,77,.14); }
.sx-big .sx-action-ico{ width:60px; height:60px; border-radius:16px; }
.sx-big .sx-action-ico svg{ width:32px; height:32px; }
.sx-big strong{ display:block; font-size:1.5rem; line-height:1.2; }
.sx-big .sx-big-d{ display:block; color:var(--sx-mute); font-size:1.08rem; }
.sx-big-cta{ margin-top:auto; align-self:flex-start; display:inline-flex; align-items:center; min-height:50px; padding:0 26px; border-radius:12px; font-weight:700; font-size:1.08rem; background:var(--sx-leaf); color:#fff; }
.sx-pub a.sx-big-main{ background:var(--sx-leaf); border-color:var(--sx-leaf); color:#fff; }
.sx-pub a.sx-big-main:hover{ background:var(--sx-leaf-d); border-color:var(--sx-leaf-d); }
.sx-big-main .sx-action-ico{ background:rgba(255,255,255,.2); color:#fff; }
.sx-big-main .sx-big-d{ color:#eafaf2; }
.sx-big-main .sx-big-cta{ background:#fff; color:var(--sx-leaf-d); }
.sx-big-sec{ border-color:var(--sx-leaf); }
@media(min-width:1000px){
  .sx-wrap{ max-width:1180px; padding:0 24px; }
  .sx-pub{ font-size:18px; }
  .sx-pub .sx-menu a{ font-size:1.05rem; padding:0 22px; }
  .sx-lead{ font-size:1.2rem; }
  .sx-actions-grid{ grid-template-columns:repeat(2,1fr); }
  .sx-action{ min-height:110px; padding:22px; }
  .sx-action strong{ font-size:1.2rem; }
}

/* Consulta: codigo e lista de protocolos */
#f_codigo{ font-size:1.5rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; min-height:60px; }
#f_codigo::placeholder{ letter-spacing:.05em; font-weight:400; text-transform:none; font-size:1.1rem; }
.sx-resultados{ display:grid; gap:10px; margin-top:14px; }
.sx-pub a.sx-resultado{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:16px 18px; background:#fff; border:1.5px solid var(--sx-line); border-radius:var(--sx-radius); color:var(--sx-ink); text-decoration:none; min-height:64px; }
.sx-pub a.sx-resultado:hover{ border-color:var(--sx-leaf); box-shadow:0 2px 10px rgba(23,50,77,.08); }
.sx-resultado > span:first-child{ display:block; }
.sx-resultado strong{ display:block; font-size:1.2rem; }

/* Comprovante: o codigo de acompanhamento e o destaque; o protocolo fica embaixo */
.sx-ticket-num{ letter-spacing:.14em; }
.sx-ticket-bottom .sx-ticket-key{ font-size:1.35rem; letter-spacing:.06em; }
.sx-ticket-bottom .sx-ticket-lbl{ margin-top:14px; color:#5d4a14; opacity:1; }
/* Barra de envio sem "grudar" no rodape: formularios curtos dentro de cartoes (consulta) */
.sx-sec .sx-submitbar{ position:static; background:none; padding:6px 0 0; justify-content:flex-start; }
.sx-sec .sx-submitbar .sx-btn-primary{ margin-left:0; }
.sx-formpage.sx-narrow .sx-input{ width:100%; }

/* ---- foto em janela (lightbox) ---- */
.sx-lb{ position:fixed; inset:0; z-index:2147483600; display:flex; flex-direction:column; background:rgba(8,16,24,.96); font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:#fff; }
.sx-lb[hidden]{ display:none; }
.sx-lb-aberto{ overflow:hidden; }
.sx-lb-bar{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; background:rgba(0,0,0,.35); }
.sx-lb-cap{ font-size:15px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.sx-lb-acoes{ display:flex; gap:8px; flex-shrink:0; }
.sx-lb-btn{ appearance:none; border:1px solid rgba(255,255,255,.45); background:rgba(255,255,255,.12); color:#fff; font:inherit; font-size:14px; font-weight:600; padding:8px 14px; border-radius:8px; cursor:pointer; text-decoration:none; min-height:40px; display:inline-flex; align-items:center; }
.sx-lb-btn:hover,.sx-lb-btn:focus-visible{ background:rgba(255,255,255,.25); outline:2px solid #fff; outline-offset:2px; }
.sx-lb-palco{ flex:1; min-height:0; display:flex; align-items:center; justify-content:center; padding:12px; gap:8px; }
.sx-lb-img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:6px; background:#000; box-shadow:0 8px 40px rgba(0,0,0,.5); }
.sx-lb-nav{ appearance:none; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:34px; line-height:1; width:46px; height:64px; border-radius:10px; cursor:pointer; flex-shrink:0; }
.sx-lb-nav:hover,.sx-lb-nav:focus-visible{ background:rgba(255,255,255,.3); outline:2px solid #fff; }
.sx-lb-uma .sx-lb-nav{ display:none; }
@media (max-width:600px){ .sx-lb-nav{ width:36px; height:52px; font-size:28px; } .sx-lb-btn{ padding:8px 10px; } }
.sx a[data-sx-foto],.sx-pub a[data-sx-foto]{ cursor:zoom-in; }

/* ---- Efeito de carregamento: barra no topo, troca de tela suave e botao ocupado ---- */
#sx-carga{ position:fixed; left:0; right:0; top:0; height:3px; z-index:2147483500; pointer-events:none; opacity:0; transition:opacity .25s ease; }
#sx-carga.sx-on{ opacity:1; }
#sx-carga i{ display:block; height:100%; width:100%; transform-origin:0 50%; transform:scaleX(0); background:linear-gradient(90deg,var(--sx-leaf,#1e7b5c),var(--sx-sol,#f2b84b)); box-shadow:0 0 8px rgba(30,123,92,.55); transition:transform .3s ease-out; border-radius:0 2px 2px 0; }
#adianti_div_content{ transition:opacity .16s ease; }
#adianti_div_content.sx-carregando{ opacity:.55; cursor:progress; }
#adianti_div_content.sx-entra{ animation:sx-entra .28s ease-out; }
@keyframes sx-entra{ from{ opacity:0; } to{ opacity:1; } }
@keyframes sx-gira{ to{ transform:rotate(360deg); } }
.sx-ocupado{ pointer-events:none; cursor:progress; opacity:.78; }
button.sx-ocupado::after,input.sx-ocupado::after,.btn.sx-ocupado::after,.sx-btn.sx-ocupado::after{ content:""; display:inline-block; box-sizing:border-box; width:1em; height:1em; margin-left:.55em; vertical-align:-.15em; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:sx-gira .7s linear infinite; }
@media (prefers-reduced-motion:reduce){ #sx-carga i{ transition:none !important; } #adianti_div_content.sx-entra{ animation:none !important; } button.sx-ocupado::after,.btn.sx-ocupado::after,.sx-btn.sx-ocupado::after{ animation:sx-gira 1.6s linear infinite !important; } }

/* ---------- listagem em destaque e formularios internos em largura total ---------- */
.sx-int .sx-pagehead{ padding-bottom:14px; border-bottom:1px solid var(--sx-line); margin-bottom:18px; }
.sx-int .sx-toolbar{ background:#fff; border:1px solid var(--sx-line); border-radius:14px; padding:14px 16px; box-shadow:0 1px 2px rgba(23,50,77,.05); }
.sx-lista{ background:#fff; border:1px solid var(--sx-line); border-radius:16px; box-shadow:0 2px 10px rgba(23,50,77,.07); overflow:hidden; }
.sx-lista-topo{ padding:12px 18px; background:linear-gradient(#fbfcfb,#f3f6f4); border-bottom:1px solid var(--sx-line); color:var(--sx-mute); font-size:.92rem; }
.sx-lista-topo strong{ color:var(--sx-ink); font-size:1.1rem; }
.sx-int .sx-lista .sx-table{ border:0; border-radius:0; }
.sx-int .sx-table-lista th{ text-transform:uppercase; letter-spacing:.05em; font-size:.74rem; padding:12px 18px; background:#f4f7f5; }
.sx-int .sx-table-lista td{ padding:16px 18px; vertical-align:middle; border-bottom:1px solid #e3eae6; }
.sx-int .sx-table-lista tbody tr:nth-child(even) td{ background:#fafcfb; }
.sx-int .sx-table-lista tr.sx-row-link{ transition:background .15s ease; }
.sx-int .sx-table-lista tr.sx-row-link:hover td{ background:#eaf5ef; }
.sx-int .sx-table-lista tr.sx-row-link:hover td:first-child{ box-shadow:inset 4px 0 0 var(--sx-leaf); }
.sx-int .sx-table-lista .sx-item-titulo{ font-size:1.07rem; font-weight:800; color:var(--sx-ink); text-decoration:none; }
.sx-int .sx-table-lista .sx-item-titulo:hover{ color:var(--sx-leaf-d); text-decoration:underline; }
.sx-int .sx-table-lista td.sx-nowrap{ text-align:right; }
.sx-pill{ display:inline-flex; align-items:center; gap:7px; padding:3px 12px; border-radius:99px; font-weight:700; font-size:.84rem; line-height:1.4; }
.sx-pill::before{ content:""; width:8px; height:8px; border-radius:50%; background:currentColor; }
.sx-pill-sim{ background:var(--sx-leaf-bg); color:var(--sx-leaf-d); }
.sx-pill-nao{ background:#eceff1; color:#59636e; }
@media(max-width:700px){ .sx-int .sx-table-lista tr{ padding:12px 0; } .sx-int .sx-table-lista td{ padding:3px 16px; } .sx-int .sx-table-lista td.sx-nowrap{ text-align:left; padding-top:8px; } }
.sx-int .sx-card-form{ width:100%; max-width:none; padding:24px 26px; border-radius:16px; box-shadow:0 2px 10px rgba(23,50,77,.06); }
.sx-int .sx-formgrid{ display:grid; grid-template-columns:minmax(0,1fr); gap:0 22px; }
@media(min-width:900px){ .sx-int .sx-formgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); } .sx-int .sx-gc-cheia{ grid-column:1 / -1; } }

/* ---------- cadastro de formulario de servico: cartoes de campo ---------- */
.sx-fcs-topo{ margin-top:26px; padding-top:20px; border-top:2px dashed var(--sx-line); }
.sx-fcs{ display:grid; gap:14px; }
#sx-campos{ display:grid; gap:14px; }
.sx-fc{ border:1.5px solid var(--sx-line); border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(23,50,77,.06); overflow:hidden; }
.sx-fc.has-erro{ border-color:var(--sx-danger); box-shadow:0 0 0 3px rgba(180,35,24,.14); }
.sx-fc [hidden]{ display:none !important; }
.sx-fc-head{ display:flex; align-items:center; gap:12px; padding:10px 14px; background:linear-gradient(#f9fbfa,#f0f4f1); border-bottom:1px solid var(--sx-line); }
.sx-fc-num{ flex:none; width:30px; height:30px; border-radius:50%; background:var(--sx-leaf); color:#fff; display:grid; place-items:center; font-weight:800; font-size:.9rem; }
.sx-fc-resumo{ flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; }
.sx-fc-resumo strong{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.sx-fc-acoes{ display:flex; gap:4px; flex:none; }
.sx-fc-acoes .sx-btn[disabled]{ opacity:.35; cursor:default; }
.sx-fc-corpo{ padding:16px; display:grid; gap:14px; }
.sx-fc-topo{ display:grid; gap:0 14px; grid-template-columns:minmax(0,1fr); }
.sx-fc .sx-field{ margin:0; }
.sx-fc-topo .sx-field{ margin-bottom:10px; }
.sx-fc-desc{ margin:0; padding:9px 12px; border-radius:10px; background:var(--sx-info-bg); color:#27465f; font-size:.93rem; }
.sx-fc-cfg{ border:1px solid var(--sx-line); border-left:4px solid var(--sx-leaf); border-radius:10px; padding:12px 14px; background:#fbfdfc; display:grid; gap:10px; }
.sx-fc-cfg-t{ font-weight:800; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--sx-ink-2); }
.sx-fc-grade{ display:grid; gap:10px 14px; grid-template-columns:minmax(0,1fr); }
@media(min-width:760px){ .sx-fc-grade{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.sx-sufixo{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sx-sufixo .sx-input{ max-width:170px; }
.sx-sufixo span{ color:var(--sx-mute); font-size:.9rem; }
.sx-fc-chk{ display:flex; gap:10px; align-items:flex-start; font-weight:600; cursor:pointer; line-height:1.4; }
.sx-fc-chk input{ margin-top:3px; width:18px; height:18px; flex:none; accent-color:var(--sx-leaf); }
.sx-fc-chks{ display:grid; gap:8px; }
.sx-op{ display:flex; gap:8px; margin-bottom:8px; }
.sx-op .sx-input{ min-height:44px; }
.sx-fc-ops-rodape{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.sx-fc-ops-rodape .sx-help{ margin:0; }
.sx-fc-ops-rodape .sx-help.is-erro{ color:var(--sx-danger); font-weight:700; }
.sx-fc-novo{ justify-self:start; }
.sx-fc select.sx-travado{ pointer-events:none; background:#f1f4f2; }

/* painel e explicacao de cada tipo aparecem por CSS (sem depender de script) */
.sx-fc-painel{ display:none; gap:12px; }
.sx-fc-descs .sx-fc-desc{ display:none; }
.sx-fc[data-tipo="texto"] .sx-fc-painel[data-painel~="texto"]{ display:grid; }
.sx-fc[data-tipo="texto"] .sx-fc-desc[data-d="texto"]{ display:block; }
.sx-fc[data-tipo="area"] .sx-fc-painel[data-painel~="area"]{ display:grid; }
.sx-fc[data-tipo="area"] .sx-fc-desc[data-d="area"]{ display:block; }
.sx-fc[data-tipo="numero"] .sx-fc-painel[data-painel~="numero"]{ display:grid; }
.sx-fc[data-tipo="numero"] .sx-fc-desc[data-d="numero"]{ display:block; }
.sx-fc[data-tipo="data"] .sx-fc-painel[data-painel~="data"]{ display:grid; }
.sx-fc[data-tipo="data"] .sx-fc-desc[data-d="data"]{ display:block; }
.sx-fc[data-tipo="lista"] .sx-fc-painel[data-painel~="lista"]{ display:grid; }
.sx-fc[data-tipo="lista"] .sx-fc-desc[data-d="lista"]{ display:block; }
.sx-fc[data-tipo="multipla"] .sx-fc-painel[data-painel~="multipla"]{ display:grid; }
.sx-fc[data-tipo="multipla"] .sx-fc-desc[data-d="multipla"]{ display:block; }
.sx-fc[data-tipo="simnao"] .sx-fc-painel[data-painel~="simnao"]{ display:grid; }
.sx-fc[data-tipo="simnao"] .sx-fc-desc[data-d="simnao"]{ display:block; }
.sx-fc[data-tipo="email"] .sx-fc-painel[data-painel~="email"]{ display:grid; }
.sx-fc[data-tipo="email"] .sx-fc-desc[data-d="email"]{ display:block; }
.sx-fc[data-tipo="telefone"] .sx-fc-painel[data-painel~="telefone"]{ display:grid; }
.sx-fc[data-tipo="telefone"] .sx-fc-desc[data-d="telefone"]{ display:block; }
.sx-fc[data-tipo="cpf"] .sx-fc-painel[data-painel~="cpf"]{ display:grid; }
.sx-fc[data-tipo="cpf"] .sx-fc-desc[data-d="cpf"]{ display:block; }
.sx-fc[data-tipo="anexo"] .sx-fc-painel[data-painel~="anexo"]{ display:grid; }
.sx-fc[data-tipo="anexo"] .sx-fc-desc[data-d="anexo"]{ display:block; }
.sx-fc-cfg{ gap:14px; }
.sx-fc-painel[data-painel="multipla"]{ border-top:1px dashed var(--sx-line); padding-top:12px; }
.sx-fc-opcoes{ min-height:150px; font-size:1rem; line-height:1.5; }
.sx-fc-base{ grid-template-columns:minmax(0,1fr); }
@media(min-width:900px){ .sx-fc-topo{ grid-template-columns:minmax(0,2fr) minmax(0,1fr); } .sx-fc-base{ grid-template-columns:minmax(0,1fr) minmax(0,2fr); } }

/* ---------- borda preta nas listagens ---------- */
.sx-int .sx-lista{ border:2px solid #000; }
.sx-int .sx-lista-topo,.sx-int .sx-table-lista th{ border-bottom:2px solid #000; }
.sx-int .sx-table:not(.sx-table-lista){ border:2px solid #000; }

/* ---------- usuarios e cadastro em sequencia ---------- */
.sx-passos{ display:grid; gap:10px; grid-template-columns:1fr; list-style:none; margin:0 0 16px; padding:0; }
@media(min-width:760px){ .sx-passos{ grid-template-columns:repeat(var(--sx-n,3),1fr); } }
.sx .sx-passo{ display:flex; gap:12px; align-items:center; padding:12px 14px; background:#fff; border:1.5px solid var(--sx-line); border-radius:12px; text-decoration:none; color:var(--sx-ink); }
.sx .sx-passo:hover{ border-color:var(--sx-ink-2); }
.sx .sx-passo strong{ display:block; font-size:1rem; }
.sx .sx-passo small{ display:block; color:var(--sx-mute); font-size:.84rem; }
.sx-passo-n{ flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:700; background:#eef2ef; color:var(--sx-ink-2); }
.sx-passo-n svg{ width:18px; height:18px; stroke:currentColor; fill:none; }
.sx .sx-passo.is-now{ border-color:var(--sx-leaf); box-shadow:0 0 0 3px rgba(30,123,92,.15); }
.sx .sx-passo.is-now .sx-passo-n{ background:var(--sx-leaf); color:#fff; }
.sx .sx-passo.is-done .sx-passo-n{ background:var(--sx-leaf-bg); color:var(--sx-leaf-d); }
.sx-help-list{ margin:-6px 0 14px; padding-left:1.1em; color:var(--sx-mute); font-size:.88rem; }
.sx-help-list li{ margin:2px 0; }
.sx-acessos{ border-left:5px solid var(--sx-sol) !important; background:var(--sx-sol-bg) !important; margin-bottom:14px; }
.sx-acessos code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.sx-acessos .sx-senha{ font-size:1.1rem; font-weight:700; letter-spacing:.04em; }
.sx-table td code{ white-space:nowrap; }

[data-sx-mostrar-se][hidden]{ display:none !important; }

/* campo de data no estilo do TDate do Mad Builder nos formularios do cidadao: nunca passa da largura da tela */
.sx-date{ position:relative; display:flex; width:100%; max-width:100%; }
.sx-date > input.sx-input{ flex:1 1 auto; min-width:0; width:auto; border-radius:12px 0 0 12px; }
.sx-date .sx-date-btn{ flex:none; display:flex; align-items:center; justify-content:center; min-width:52px; border:1.5px solid #b9c5bd; border-left:0; border-radius:0 12px 12px 0; background:#f3f6f4; color:var(--sx-ink); cursor:pointer; padding:0 12px; }
.sx-date .sx-date-btn:focus-visible{ outline:3px solid var(--sx-leaf); outline-offset:2px; }
.sx-date .sx-date-btn svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sx-date .sx-date-nativo{ position:absolute; right:0; bottom:0; width:1px; height:1px; opacity:0; pointer-events:none; border:0; padding:0; }
/* lista com busca (Select2 do Mad Builder) acima do portal, que cobre a tela inteira */
.select2-container--open{ z-index:2147483600; }
.select2-container{ max-width:100%; }
select[data-sx-sem-limpar] + .select2-container .select2-selection__clear{ display:none !important; }
.sx .select2-container,.sx-pub .select2-container{ width:100% !important; }
.sx .select2-container .select2-selection--single,.sx-pub .select2-container .select2-selection--single{ min-height:46px; border:1.5px solid var(--sx-line); border-radius:12px; display:flex; align-items:center; }
.sx .select2-container--default .select2-selection--single .select2-selection__rendered,.sx-pub .select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:1.3; padding-left:12px; }
.sx .select2-container--default .select2-selection--single .select2-selection__arrow,.sx-pub .select2-container--default .select2-selection--single .select2-selection__arrow{ height:100%; }


/* ---------- interruptor (sim/nao) e botao de duas escolhas: telas internas ---------- */
.sx .sx-sw{ position:relative; margin:2px 0 10px; }
.sx .sx-sw input[type=checkbox]{ position:absolute; opacity:0; width:1px; height:1px; margin:0; pointer-events:none; }
.sx .sx-sw label{ display:inline-flex; align-items:center; gap:14px; margin:0; padding:8px 0; cursor:pointer; font-weight:600; font-size:.98rem; color:var(--sx-ink); }
.sx .sx-sw label::before,.sx .sx-sw label::after{ content:none !important; display:none !important; }
.sx-sw-trk{ flex:none; position:relative; width:48px; height:28px; border-radius:999px; background:#c3ccd5; transition:background .2s; }
.sx-sw-trk::after{ content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(23,50,77,.35); transition:transform .2s; }
.sx .sx-sw input:checked + label .sx-sw-trk{ background:var(--sx-leaf); }
.sx .sx-sw input:checked + label .sx-sw-trk::after{ transform:translateX(20px); }
.sx .sx-sw input:focus-visible + label .sx-sw-trk{ outline:3px solid var(--sx-sol); outline-offset:2px; }
.sx .sx-sw label:hover .sx-sw-trk{ filter:brightness(.96); }

.sx-seg{ display:inline-flex; flex:none; padding:4px; gap:4px; border-radius:12px; background:#e9eef0; }
.sx-seg-op{ position:relative; margin:0 !important; cursor:pointer; }
.sx .sx-seg-op input[type=radio]{ position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; }
.sx-seg-op span{ display:flex; align-items:center; justify-content:center; min-height:40px; padding:0 18px; border-radius:9px; font-weight:700; font-size:.93rem; color:#566677; white-space:nowrap; transition:background .15s,color .15s,box-shadow .15s; }
.sx-seg-op:hover span{ color:var(--sx-ink); }
.sx .sx-seg-op input:checked + span{ background:#fff; color:var(--sx-ink); box-shadow:0 1px 3px rgba(23,50,77,.22); }
.sx .sx-seg-op:last-child input:checked + span{ background:var(--sx-leaf); color:#fff; box-shadow:0 1px 4px rgba(30,123,92,.45); }
.sx .sx-seg-op input:focus-visible + span{ outline:3px solid var(--sx-sol); outline-offset:1px; }

.sx-sec{ margin-top:10px; padding-top:18px; border-top:1px solid var(--sx-line); }
.sx-int .sx-sec-t{ margin:0 0 4px; font-size:1.1rem; font-weight:800; color:var(--sx-ink); }
.sx-sec-p{ margin:0 0 10px; color:var(--sx-mute); font-size:.93rem; }
.sx-linhas-opt{ display:grid; gap:10px; margin-top:12px; }
.sx-linha-opt{ display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap; padding:12px 16px; border:1.5px solid var(--sx-line); border-radius:12px; background:#fbfdfc; margin-bottom:10px; }
.sx-linhas-opt .sx-linha-opt{ margin-bottom:0; }
.sx-linha-txt{ flex:1 1 260px; min-width:0; }
.sx-linha-txt strong{ display:block; font-size:.98rem; }
.sx-linha-txt .sx-help{ display:block; margin-top:2px; color:var(--sx-mute); font-size:.87rem; line-height:1.4; }
@media(max-width:560px){ .sx-seg{ width:100%; } .sx-seg-op{ flex:1; } }

/* ---------- cabecalho: caixa "Buscar" do Mad Builder oculta (o sistema ja tem busca propria nas listas) ---------- */
.header-action.navbar-custom-menu,
#search-box,
[page-name="SearchBox"]{ display:none !important; }