/* ==========================================================================================
   EasyDiário — folha única de estilo (DESIGN.md é a fonte; este arquivo é a implementação).
   Porte do fc.css do Fala Cidadão (D1) com a paleta petróleo + dourado do DESIGN.md §2.
   Ordem: tokens --ed-* → ponte --bs-* → variantes redeclaradas → componentes. Nenhuma cor fora daqui.
   ========================================================================================== */

/* ------------------------------------------------------------------ fontes (DESIGN §4) */
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/plus-jakarta-sans-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/plus-jakarta-sans-500.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/plus-jakarta-sans-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/plus-jakarta-sans-800.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/plus-jakarta-sans-ext-400.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/plus-jakarta-sans-ext-500.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/plus-jakarta-sans-ext-700.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/plus-jakarta-sans-ext-800.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ------------------------------------------------------------------ tokens (DESIGN §2, §5, §6) */
:root {
  /* tinta (cromo) */
  --ed-ink-900: #07201C;
  --ed-ink-850: #0A2823;
  --ed-ink-800: #0D3129;
  --ed-ink-700: #143F36;
  --ed-ink-600: #1B4D42;
  --ed-ink-fio: rgba(255,255,255,.07);
  --ed-sobre-ink: #EEF4F2;
  --ed-sobre-ink-suave: #B3C4BF;
  --ed-sobre-ink-fraco: #7F938E;

  /* azul institucional */
  --ed-primary-50: #E6F3F6;
  --ed-primary-100: #C3E2E9;
  --ed-primary-300: #8FD0DC;
  --ed-primary-400: #1E8C9F;
  --ed-primary-500: #0D6578;
  --ed-primary-600: #0B5B6A;
  --ed-primary-700: #0A4F5C;

  /* âmbar em três degraus */
  --ed-accent-50: #FBF4E3;
  --ed-accent-500: #C5A059;
  --ed-accent-600: #947028;
  --ed-accent-700: #6F5213;

  /* semânticas: 500 preenche, 700 é texto, 50 é fundo */
  --ed-success-50: #E4F6EF;
  --ed-success-500: #12805C;
  --ed-success-700: #0B5E43;
  --ed-danger-50: #FDECEA;
  --ed-danger-500: #C8352A;
  --ed-danger-700: #9A281F;
  --ed-warning-50: #FBEEE3;
  --ed-warning-500: #A2571A;
  --ed-warning-700: #7B420F;
  --ed-neutral-50: #EEF1F5;
  --ed-neutral-500: #55677E;
  --ed-neutral-700: #3E4D60;

  /* superfície e texto */
  --ed-canvas: #F3F6F5;
  --ed-surface: #FFFFFF;
  --ed-surface-sunken: #F6F8F7;
  --ed-border-suave: #EDF1EF;
  --ed-border: #E1E7E4;
  --ed-border-strong: #C4CDC9;
  --ed-border-controle: #7F8C88;   /* contorno de controle sem preenchimento (caixa desmarcada): 3,46:1 no branco, 3,14:1 no canvas */
  --ed-text: #0E1F1B;
  --ed-text-muted: #53655F;
  --ed-ring: 0 0 0 3px rgba(13, 101, 120, .22);

  /* forma */
  --ed-radius-sm: 8px;
  --ed-radius-md: 12px;
  --ed-radius-lg: 16px;
    --ed-radius-pill: 999px;
  --ed-radius-papel: 2px;
  --ed-shadow-papel: 0 1px 0 rgba(7,32,28,.08), 0 10px 24px -8px rgba(7,32,28,.28);
  --ed-radius-xl: 24px;
  --ed-shadow-xs: 0 1px 2px rgba(7,32,28,.05);
  --ed-shadow-sm: 0 1px 2px rgba(7,32,28,.05), 0 2px 8px -2px rgba(7,32,28,.06);
  --ed-shadow-md: 0 2px 4px rgba(7,32,28,.04), 0 12px 28px -8px rgba(7,32,28,.12);
  --ed-shadow-lg: 0 4px 8px rgba(7,32,28,.05), 0 28px 56px -16px rgba(7,32,28,.22);
  --ed-largura: 1180px;
  --ed-sidebar-w: 264px;
  --ed-abas-altura: 58px;

  /* movimento */
  --ed-dur: 170ms;
  --ed-ease: cubic-bezier(.2, .7, .3, 1);
  --ed-dur-entrada: 420ms;
  --ed-ease-entrada: cubic-bezier(.16, .84, .28, 1);

  --ed-fonte: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ed-mono: ui-monospace, "Cascadia Mono", Consolas, monospace;

  /* ------------------------------------------------------------ ponte Bootstrap (DESIGN §15) */
  --bs-primary: var(--ed-primary-500);
  --bs-primary-rgb: 13, 101, 120;
  --bs-secondary-rgb: 85, 103, 126;
  --bs-success: var(--ed-success-500);
  --bs-success-rgb: 18, 128, 92;
  --bs-danger: var(--ed-danger-500);
  --bs-danger-rgb: 200, 53, 42;
  --bs-warning: var(--ed-warning-500);
  --bs-warning-rgb: 162, 87, 26;
  --bs-info: var(--ed-primary-500);
  --bs-info-rgb: 13, 101, 120;
  --bs-light: var(--ed-surface-sunken);
  --bs-dark: var(--ed-ink-900);
  --bs-body-bg: var(--ed-canvas);
  --bs-body-color: var(--ed-text);
  --bs-body-font-family: var(--ed-fonte);
  --bs-body-font-size: .9375rem;
  --bs-body-line-height: 1.6;
  --bs-border-color: var(--ed-border);
  --bs-border-radius: var(--ed-radius-md);
  --bs-border-radius-sm: var(--ed-radius-sm);
  --bs-border-radius-lg: var(--ed-radius-lg);
  --bs-border-radius-pill: var(--ed-radius-pill);
  --bs-link-color: var(--ed-primary-500);
  --bs-link-color-rgb: 18, 99, 155;
  --bs-link-hover-color: var(--ed-primary-600);
  --bs-link-hover-color-rgb: 15, 84, 132;
  --bs-emphasis-color: var(--ed-text);
  --bs-secondary-color: var(--ed-text-muted);
  --bs-tertiary-bg: var(--ed-surface-sunken);
  --bs-focus-ring-color: rgba(13, 101, 120, .22);
  --bs-form-invalid-color: var(--ed-danger-500);
  --bs-form-invalid-border-color: var(--ed-danger-500);
  --bs-form-valid-color: var(--ed-success-500);
  --bs-form-valid-border-color: var(--ed-success-500);
}

/* ------------------------------------------------------------------ base */
body { background: var(--ed-canvas); color: var(--ed-text); font-family: var(--ed-fonte); -webkit-font-smoothing: antialiased; }
h1, h2, h3, .ed-h1 { font-weight: 800; letter-spacing: -0.02em; text-wrap: balance; color: var(--ed-text); }
h1, .ed-h1 { font-size: 1.625rem; }
h2 { font-size: 1.375rem; }
h3 { font-size: 1.125rem; }
p { text-wrap: pretty; }
a { text-underline-offset: .15em; }
:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 2px; }
.text-warning { color: var(--ed-accent-700) !important; }
.text-info { color: var(--ed-primary-700) !important; }
.text-muted, .text-secondary { color: var(--ed-text-muted) !important; }
.ed-eyebrow { font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-text-muted); margin: 0 0 .25rem; }
.ed-num { font-variant-numeric: tabular-nums; }
.ed-pular { position: absolute; left: 12px; top: 0; z-index: 2000; background: var(--ed-surface); color: var(--ed-primary-700); padding: 8px 14px; border-radius: var(--ed-radius-sm); transform: translateY(-150%); transition: transform var(--ed-dur) var(--ed-ease); }
.ed-pular:focus { transform: translateY(12px); box-shadow: var(--ed-shadow-md); }

/* ------------------------------------------------------------------ botões (DESIGN §8, todas as variantes) */
.btn { --bs-btn-font-weight: 700; --bs-btn-border-radius: var(--ed-radius-md); --bs-btn-padding-y: .55rem; --bs-btn-padding-x: 1.1rem; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; transition: background-color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease), transform var(--ed-dur) var(--ed-ease); }
.btn:active { transform: translateY(1px); }
.btn-sm { min-height: 36px; --bs-btn-padding-y: .35rem; --bs-btn-padding-x: .8rem; --bs-btn-border-radius: var(--ed-radius-sm); }
.btn-primary, .btn-info { --bs-btn-color: #fff; --bs-btn-bg: var(--ed-primary-500); --bs-btn-border-color: var(--ed-primary-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-primary-600); --bs-btn-hover-border-color: var(--ed-primary-600); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-primary-700); --bs-btn-active-border-color: var(--ed-primary-700); --bs-btn-disabled-bg: var(--ed-primary-500); --bs-btn-disabled-border-color: var(--ed-primary-500); --bs-btn-focus-shadow-rgb: 18, 99, 155; box-shadow: 0 6px 16px -6px rgba(13, 101, 120, .55); }
.btn-outline-primary, .btn-outline-info { --bs-btn-color: var(--ed-primary-500); --bs-btn-border-color: var(--ed-primary-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-primary-500); --bs-btn-hover-border-color: var(--ed-primary-500); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-primary-600); --bs-btn-active-border-color: var(--ed-primary-600); --bs-btn-disabled-color: var(--ed-primary-500); --bs-btn-disabled-border-color: var(--ed-primary-500); --bs-btn-focus-shadow-rgb: 18, 99, 155; }
.btn-outline-secondary { --bs-btn-color: var(--ed-text); --bs-btn-border-color: var(--ed-border-strong); --bs-btn-bg: var(--ed-surface); --bs-btn-hover-color: var(--ed-text); --bs-btn-hover-bg: var(--ed-surface-sunken); --bs-btn-hover-border-color: var(--ed-neutral-500); --bs-btn-active-color: var(--ed-text); --bs-btn-active-bg: var(--ed-neutral-50); --bs-btn-active-border-color: var(--ed-neutral-500); --bs-btn-focus-shadow-rgb: 86, 99, 122; }
.btn-success { --bs-btn-color: #fff; --bs-btn-bg: var(--ed-success-500); --bs-btn-border-color: var(--ed-success-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-success-700); --bs-btn-hover-border-color: var(--ed-success-700); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-success-700); --bs-btn-active-border-color: var(--ed-success-700); --bs-btn-focus-shadow-rgb: 18, 128, 92; box-shadow: 0 6px 16px -6px rgba(18, 128, 92, .5); }
.btn-outline-success { --bs-btn-color: var(--ed-success-500); --bs-btn-border-color: var(--ed-success-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-success-500); --bs-btn-hover-border-color: var(--ed-success-500); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-success-700); --bs-btn-active-border-color: var(--ed-success-700); --bs-btn-focus-shadow-rgb: 18, 128, 92; }
.btn-danger { --bs-btn-color: #fff; --bs-btn-bg: var(--ed-danger-500); --bs-btn-border-color: var(--ed-danger-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-danger-700); --bs-btn-hover-border-color: var(--ed-danger-700); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-danger-700); --bs-btn-active-border-color: var(--ed-danger-700); --bs-btn-focus-shadow-rgb: 200, 53, 42; box-shadow: 0 6px 16px -6px rgba(200, 53, 42, .5); }
.btn-outline-danger { --bs-btn-color: var(--ed-danger-500); --bs-btn-border-color: var(--ed-danger-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-danger-500); --bs-btn-hover-border-color: var(--ed-danger-500); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-danger-700); --bs-btn-active-border-color: var(--ed-danger-700); --bs-btn-focus-shadow-rgb: 200, 53, 42; }
.btn-warning { --bs-btn-color: #fff; --bs-btn-bg: var(--ed-warning-500); --bs-btn-border-color: var(--ed-warning-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-warning-700); --bs-btn-hover-border-color: var(--ed-warning-700); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-warning-700); --bs-btn-active-border-color: var(--ed-warning-700); --bs-btn-focus-shadow-rgb: 162, 87, 26; }
.btn-outline-warning { --bs-btn-color: var(--ed-warning-500); --bs-btn-border-color: var(--ed-warning-500); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ed-warning-500); --bs-btn-hover-border-color: var(--ed-warning-500); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ed-warning-700); --bs-btn-active-border-color: var(--ed-warning-700); --bs-btn-focus-shadow-rgb: 162, 87, 26; }
.btn-light { --bs-btn-color: var(--ed-text); --bs-btn-bg: var(--ed-surface-sunken); --bs-btn-border-color: var(--ed-border); --bs-btn-hover-color: var(--ed-text); --bs-btn-hover-bg: var(--ed-neutral-50); --bs-btn-hover-border-color: var(--ed-border-strong); --bs-btn-active-bg: var(--ed-neutral-50); }
.btn-outline-light { --bs-btn-color: var(--ed-sobre-ink); --bs-btn-border-color: var(--ed-ink-600); --bs-btn-hover-color: var(--ed-ink-900); --bs-btn-hover-bg: var(--ed-sobre-ink); --bs-btn-hover-border-color: var(--ed-sobre-ink); --bs-btn-active-color: var(--ed-ink-900); --bs-btn-active-bg: var(--ed-sobre-ink-suave); --bs-btn-active-border-color: var(--ed-sobre-ink-suave); }
.btn-link { --bs-btn-color: var(--ed-primary-600); --bs-btn-hover-color: var(--ed-primary-700); --bs-btn-active-color: var(--ed-primary-700); --bs-btn-disabled-color: var(--ed-text-muted); --bs-btn-font-weight: 700; text-underline-offset: .15em; }
.ed-btn-icone { width: 2.375rem; min-width: 2.375rem; padding-inline: 0; }
.btn-sm.ed-btn-icone { width: 2rem; min-width: 2rem; }

/* ------------------------------------------------------------------ formulários */
.form-label { font-weight: 700; font-size: .8125rem; margin-bottom: .35rem; color: var(--ed-text); }
.form-control, .form-select { border-color: var(--ed-border-strong); border-radius: var(--ed-radius-md); min-height: 44px; box-shadow: var(--ed-shadow-xs); background-color: var(--ed-surface); color: var(--ed-text); transition: border-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.form-control:focus, .form-select:focus { border-color: var(--ed-primary-500); box-shadow: var(--ed-ring); }
.form-check-input { border-color: var(--ed-border-controle); }
.form-check-input:checked { background-color: var(--ed-primary-500); border-color: var(--ed-primary-500); }
.form-text { color: var(--ed-text-muted); font-size: .8125rem; }

/* ------------------------------------------------------------------ alertas e badges (DESIGN §3, §7) */
.ed-alerta { display: flex; gap: .65rem; align-items: flex-start; padding: .8rem 1rem; border-radius: var(--ed-radius-md); border: 1px solid; font-size: .875rem; margin-bottom: 1rem; }
.ed-alerta .bi { font-size: 1.05rem; line-height: 1.3; }
.ed-alerta.tom-primary { background: var(--ed-primary-50); color: var(--ed-primary-700); border-color: rgba(13, 101, 120, .3); }
.ed-alerta.tom-success { background: var(--ed-success-50); color: var(--ed-success-700); border-color: rgba(18, 128, 92, .3); }
.ed-alerta.tom-warning { background: var(--ed-warning-50); color: var(--ed-warning-700); border-color: rgba(162, 87, 26, .3); }
.ed-alerta.tom-danger { background: var(--ed-danger-50); color: var(--ed-danger-700); border-color: rgba(200, 53, 42, .3); }
.ed-alerta.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); border-color: rgba(200, 127, 6, .35); }
.ed-alerta.tom-neutral { background: var(--ed-neutral-50); color: var(--ed-neutral-700); border-color: rgba(85, 103, 126, .3); }
.ed-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: .2rem .55rem; border-radius: var(--ed-radius-sm); border: 1px solid; white-space: nowrap; }
.ed-badge.tom-primary { background: var(--ed-primary-50); color: var(--ed-primary-700); border-color: rgba(13, 101, 120, .25); }
.ed-badge.tom-success { background: var(--ed-success-50); color: var(--ed-success-700); border-color: rgba(18, 128, 92, .25); }
.ed-badge.tom-warning { background: var(--ed-warning-50); color: var(--ed-warning-700); border-color: rgba(162, 87, 26, .25); }
.ed-badge.tom-danger { background: var(--ed-danger-50); color: var(--ed-danger-700); border-color: rgba(200, 53, 42, .25); }
.ed-badge.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); border-color: rgba(200, 127, 6, .35); }
.ed-badge.tom-neutral { background: var(--ed-neutral-50); color: var(--ed-neutral-700); border-color: rgba(85, 103, 126, .25); }

/* ------------------------------------------------------------------ cards */
.ed-card { background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-sm); }
.ed-card-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ed-border-suave); }
.ed-card-topo h2 { font-size: .9375rem; font-weight: 700; letter-spacing: 0; margin: 0; }
.ed-card-corpo { padding: 1.25rem; }
/* Corpo do cartão que também é .row do Bootstrap: sem a margem negativa da linha (passava 8 px da borda do cartão);
   o recuo das colunas entra no lugar, e o conteúdo fica alinhado com o dos outros cartões. */
.ed-card-corpo.row { margin-left: 0; margin-right: 0; padding-left: calc(1.25rem - var(--bs-gutter-x) * .5); padding-right: calc(1.25rem - var(--bs-gutter-x) * .5); }
@media (min-width: 768px) { .ed-card-corpo { padding: 1.5rem; } }

/* KPI (DESIGN §7): filete de 3 px no tom, lavagem a 7 %, eyebrow, número 800 tabular, ícone a 12 % */
.ed-stats { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.ed-stat { position: relative; overflow: hidden; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-sm); padding: 1.1rem 1.25rem; display: flex; justify-content: space-between; gap: 1rem; color: inherit; text-decoration: none; transition: transform var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-stat::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--ed-tom, var(--ed-primary-500)); }
.ed-stat::after { content: ""; position: absolute; inset: 0 0 42% 0; background: linear-gradient(to bottom, var(--ed-tom-lavagem, rgba(13, 101, 120, .07)), transparent); pointer-events: none; }
a.ed-stat:hover { transform: translateY(-2px); box-shadow: var(--ed-shadow-md); }
.ed-stat-num { font-size: 2rem; font-weight: 800; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; line-height: 1.1; margin: .2rem 0 0; }
.ed-stat-icone { width: 44px; height: 44px; flex: none; border-radius: var(--ed-radius-md); display: grid; place-items: center; font-size: 1.25rem; color: var(--ed-tom, var(--ed-primary-500)); background: var(--ed-tom-fundo, rgba(13, 101, 120, .12)); position: relative; z-index: 1; }
.ed-stat > div { position: relative; z-index: 1; }
.ed-stat.tom-success { --ed-tom: var(--ed-success-500); --ed-tom-fundo: rgba(18, 128, 92, .12); --ed-tom-lavagem: rgba(18, 128, 92, .07); }
.ed-stat.tom-accent { --ed-tom: var(--ed-accent-600); --ed-tom-fundo: rgba(197, 160, 89, .14); --ed-tom-lavagem: rgba(197, 160, 89, .08); }
.ed-stat.tom-warning { --ed-tom: var(--ed-warning-500); --ed-tom-fundo: rgba(162, 87, 26, .12); --ed-tom-lavagem: rgba(162, 87, 26, .07); }
.ed-stat.tom-danger { --ed-tom: var(--ed-danger-500); --ed-tom-fundo: rgba(200, 53, 42, .12); --ed-tom-lavagem: rgba(200, 53, 42, .07); }
.ed-stat.tom-neutral { --ed-tom: var(--ed-neutral-500); --ed-tom-fundo: rgba(85, 103, 126, .12); --ed-tom-lavagem: rgba(85, 103, 126, .07); }

/* ------------------------------------------------------------------ marca */
.ed-marca { display: inline-flex; align-items: center; gap: .65rem; color: inherit; text-decoration: none; }
.ed-marca img { width: 36px; height: 36px; }
.ed-marca-nome { font-weight: 800; letter-spacing: -0.02em; font-size: 1.0625rem; line-height: 1.1; }
.ed-marca-apoio { display: block; font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-sobre-ink-fraco); }

/* ------------------------------------------------------------------ cromo (tinta com duas luzes, DESIGN §2) */
.ed-cromo { background:
    radial-gradient(120% 60% at 15% 0%, rgba(13, 101, 120, .18), transparent 60%),
    radial-gradient(90% 40% at 85% 100%, rgba(13, 101, 120, .08), transparent 70%),
    linear-gradient(180deg, var(--ed-ink-850), var(--ed-ink-900));
  color: var(--ed-sobre-ink-suave); }

/* ------------------------------------------------------------------ login (layout auth) */
.ed-auth { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
@media (min-width: 900px) { .ed-auth { grid-template-columns: minmax(360px, 44%) minmax(0, 1fr); grid-template-rows: none; } }
.ed-auth-marca { padding: 18px 16px; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; border-right: 1px solid var(--ed-ink-fio); }
@media (min-width: 900px) { .ed-auth-marca { padding: 48px; } }
.ed-auth-marca .ed-marca-nome { color: var(--ed-sobre-ink); }
.ed-auth-promessa { max-width: 26rem; }
.ed-auth-promessa h2 { color: var(--ed-sobre-ink); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.2rem); line-height: 1.12; letter-spacing: -0.03em; margin: .5rem 0 1rem; }
.ed-auth-promessa h2 em { font-style: normal; color: var(--ed-accent-500); }
.ed-auth-promessa p { color: var(--ed-sobre-ink-suave); margin: 0; }
.ed-auth-promessa .ed-eyebrow { color: var(--ed-sobre-ink-fraco); }
.ed-auth-rodape { font-size: .8125rem; color: var(--ed-sobre-ink-fraco); }
@media (max-width: 899.98px) { .ed-auth-promessa, .ed-auth-rodape { display: none; } }
.ed-auth-form { display: grid; place-items: start center; padding: 28px 16px 48px; }
@media (min-width: 900px) { .ed-auth-form { place-items: center; } }
.ed-auth-caixa { width: 100%; max-width: 400px; }
.ed-auth-caixa h1 { margin: 0 0 .35rem; }
.ed-auth-caixa > p { color: var(--ed-text-muted); margin-bottom: 1.5rem; }
.ed-auth-caixa .btn-primary { width: 100%; }

/* ------------------------------------------------------------------ admin / superadmin (sidebar) */
.ed-admin { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) { .ed-admin { grid-template-columns: var(--ed-sidebar-w) minmax(0, 1fr); } }
.ed-sidebar { padding: 20px 14px; display: flex; flex-direction: column; gap: 1.25rem; border-right: 1px solid var(--ed-ink-fio); }
@media (min-width: 992px) { .ed-sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--ed-ink-600) transparent; } }
.ed-sidebar .ed-marca { padding: 4px 8px; color: var(--ed-sobre-ink); }
.ed-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.ed-nav-grupo { font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-sobre-ink-fraco); padding: 12px 12px 4px; }
.ed-nav a { position: relative; display: flex; align-items: center; gap: .65rem; min-height: 40px; padding: 8px 12px; border-radius: var(--ed-radius-sm); color: var(--ed-sobre-ink-suave); text-decoration: none; font-weight: 500; transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-nav a:hover { background: var(--ed-ink-600); color: var(--ed-sobre-ink); }
.ed-nav a.ativo { background: var(--ed-ink-700); color: var(--ed-sobre-ink); }
.ed-nav a.ativo::before { content: ""; position: absolute; left: -14px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ed-accent-500); box-shadow: 0 0 12px rgba(197, 160, 89, .55); }
.ed-nav a[aria-disabled="true"] { opacity: .55; pointer-events: none; }
.ed-sidebar-pe { margin-top: auto; border-top: 1px solid var(--ed-ink-fio); padding-top: 14px; display: flex; align-items: center; gap: .65rem; color: var(--ed-sobre-ink); }
.ed-avatar { width: 36px; height: 36px; flex: none; border-radius: var(--ed-radius-pill); display: grid; place-items: center; font-weight: 800; background: var(--ed-primary-500); color: #fff; }
.ed-sidebar-pe small { display: block; color: var(--ed-sobre-ink-fraco); font-size: .75rem; }
/* Celular e tablet: a sidebar vira uma barra compacta (marca + sair numa linha, menu em fita rolável).
   Sem JS: tudo continua visível e alcançável. */
@media (max-width: 991.98px) {
  .ed-admin { grid-template-rows: auto 1fr; }
  .ed-sidebar { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .5rem; padding: 10px 16px 0; border-right: 0; border-bottom: 1px solid var(--ed-ink-fio); }
  .ed-sidebar .ed-marca { padding: 2px 0; }
  .ed-sidebar nav { order: 3; flex: 1 0 100%; display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px 6px; }
  .ed-sidebar nav::-webkit-scrollbar { display: none; }
  .ed-sidebar .ed-nav-grupo { display: none; }
  .ed-sidebar .ed-nav { display: flex; flex-wrap: nowrap; gap: .25rem; }
  .ed-sidebar .ed-nav a { white-space: nowrap; min-height: 44px; }
  .ed-sidebar .ed-nav a.ativo::before { left: 10px; right: 10px; top: auto; bottom: 2px; width: auto; height: 3px; border-radius: 3px; }
  .ed-sidebar-pe { order: 2; margin: 0 0 0 auto; border-top: 0; padding-top: 0; }
  .ed-sidebar-pe > .flex-grow-1 { display: none; }
}
/* Telas internas usam a largura toda: o teto de 1180 px é do site público (leitura); no painel deixava uma faixa vazia à direita e cortava tabela. */
.ed-conteudo { --ed-largura: none; padding: 20px 16px 48px; min-width: 0; }
@media (min-width: 768px) { .ed-conteudo { padding: 28px 32px 56px; } }
.ed-cabecalho { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; max-width: var(--ed-largura); }
.ed-cabecalho h1 { margin: 0; }
.ed-largura { max-width: var(--ed-largura); }
.ed-tabela { width: 100%; font-size: .875rem; border-collapse: collapse; }
.ed-tabela th { font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-text-muted); background: var(--ed-surface-sunken); padding: .6rem 1rem; text-align: left; white-space: nowrap; }
.ed-tabela td { padding: .6rem 1rem; border-top: 1px solid var(--ed-border-suave); vertical-align: top; font-variant-numeric: tabular-nums; overflow-wrap: break-word; }
.ed-tabela td code { overflow-wrap: anywhere; }
.ed-tabela td.ed-nowrap { white-space: nowrap; overflow-wrap: normal; }
.ed-lista-def { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1.25rem; margin: 0; }
.ed-lista-def dt { color: var(--ed-text-muted); font-weight: 500; }
.ed-lista-def dd { margin: 0; font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
/* Códigos e endereços dentro das fichas: neutros e quebrando no lugar (o vermelho do <code> do Bootstrap gritava). */
.ed-lista-def code { color: var(--ed-text); background: var(--ed-surface-sunken); border-radius: 4px; padding: .05rem .35rem; font-size: .8125rem; font-weight: 600; overflow-wrap: anywhere; }
/* Valor para copiar (link curto, endereço do portal): compacto, quebra linha, o botão ao lado. */
.ed-copiavel { display: flex; align-items: flex-start; gap: .5rem; min-width: 0; max-width: 100%; }
.ed-copiavel code { flex: 1; min-width: 0; color: var(--ed-text); background: var(--ed-surface-sunken); border-radius: var(--ed-radius-sm); padding: .3rem .55rem; font-size: .8125rem; font-weight: 600; overflow-wrap: anywhere; }
.ed-copiavel .btn { flex: none; }

/* ------------------------------------------------------------------ erro */
.ed-pagina-erro { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; background: var(--ed-canvas); }
.ed-erro-caixa { max-width: 30rem; background: var(--ed-surface); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-md); padding: 32px 28px; text-align: center; }
.ed-erro-caixa h1 { margin: .25rem 0 .75rem; }
.ed-erro-caixa p { color: var(--ed-text-muted); }
.ed-erro-codigo { font-family: var(--ed-mono); font-weight: 700; letter-spacing: .08em; color: var(--ed-text) !important; background: var(--ed-surface-sunken); border-radius: var(--ed-radius-sm); padding: .4rem .75rem; display: inline-block; }
.ed-erro-caixa .ed-marca { margin-bottom: 1.25rem; }
.ed-orgao-negado { color: var(--ed-text) !important; background: var(--ed-surface-sunken); border-radius: var(--ed-radius-md); padding: .65rem 1rem; }
.ed-marca-clara .ed-marca-nome { color: var(--ed-text); }
.ed-erro-caixa form { margin-top: .5rem; }
.ed-lista-links { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: .5rem; text-align: left; }
.ed-lista-links a { display: flex; align-items: center; gap: .75rem; padding: .7rem .9rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); color: var(--ed-text); text-decoration: none; transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-lista-links a:hover { border-color: var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-lista-links .bi { color: var(--ed-primary-500); font-size: 1.15rem; }
.ed-lista-links small { display: block; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-busca-curta { display: flex; flex-wrap: wrap; gap: .5rem; }
.ed-busca-curta .form-control { flex: 1 1 14rem; }
.ed-busca-curta .form-select { flex: 0 1 12rem; }

/* ------------------------------------------------------------------ superadmin: barras, listas, fichas (04 §2) */
.ed-barra-filtro { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ed-border-suave); }
.ed-barra-filtro > div { min-width: 11rem; }
.ed-contagem { margin: 0; padding: .65rem 1.25rem; font-size: .875rem; color: var(--ed-text-muted); }
.ed-contagem strong { color: var(--ed-text); }
.ed-contagem-pe { border-top: 1px solid var(--ed-border-suave); }
.ed-vazio { text-align: center; color: var(--ed-text-muted); padding: 2rem 1rem !important; }
.ed-vazio .bi { margin-right: .35rem; }
.ed-orgao-linha { display: flex; align-items: center; gap: .65rem; color: var(--ed-text); text-decoration: none; font-weight: 700; }
.ed-orgao-linha:hover { color: var(--ed-primary-600); }
.ed-orgao-linha small { display: block; font-weight: 500; color: var(--ed-text-muted); font-size: .75rem; }
.ed-orgao-linha > span:last-child { min-width: 10rem; }
.ed-tipo-icone { width: 36px; height: 36px; flex: none; border-radius: var(--ed-radius-md); display: grid; place-items: center; background: var(--ed-primary-50); color: var(--ed-primary-500); font-size: 1.05rem; font-weight: 800; }
.ed-tipo-icone-lg { width: 52px; height: 52px; font-size: 1.5rem; }
.ed-tipo-icone.com-logo { background: #FFFFFF; border: 1px solid var(--ed-border-suave); }
.ed-tipo-icone.com-logo img { width: 80%; height: 80%; object-fit: contain; }
.ed-cabecalho-ficha { align-items: flex-start; }
.ed-ficha-titulo { display: flex; gap: 1rem; align-items: flex-start; min-width: 0; }
.ed-ficha-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .5rem 0 0; color: var(--ed-text-muted); font-size: .875rem; }
.ed-url-canonica { display: inline-flex; align-items: center; gap: .35rem; min-width: 0; max-width: 100%; }
.ed-url-canonica code { overflow-wrap: anywhere; color: var(--ed-text); background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-sm); padding: .2rem .45rem; font-size: .8125rem; }
/* O endereço longo do órgão corta com reticências (o completo fica no title e no "copiar"). */
.ed-url-canonica code { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: normal; }
.ed-acoes { display: flex; flex-wrap: wrap; gap: .5rem; }
.ed-acoes form { margin: 0; }
.ed-abas-ficha { display: flex; gap: .25rem; overflow-x: auto; overflow-y: hidden; border-bottom: 1px solid var(--ed-border); margin-bottom: 1.5rem; scrollbar-width: thin; }
.ed-abas-ficha a { position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .7rem .9rem; min-height: 44px; color: var(--ed-text-muted); text-decoration: none; font-weight: 700; font-size: .875rem; white-space: nowrap; transition: color var(--ed-dur) var(--ed-ease); }
.ed-abas-ficha a:hover { color: var(--ed-text); }
.ed-abas-ficha a.ativo { color: var(--ed-primary-600); }
.ed-abas-ficha a.ativo::after { content: ""; position: absolute; left: .6rem; right: .6rem; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--ed-accent-500); }
.ed-contador { display: inline-block; min-width: 1.5rem; padding: 0 .4rem; border-radius: var(--ed-radius-pill); background: var(--ed-neutral-50); color: var(--ed-neutral-700); font-size: .75rem; text-align: center; font-variant-numeric: tabular-nums; }
.ed-ponto-alerta { width: 8px; height: 8px; border-radius: 50%; background: var(--ed-accent-600); }
.ed-amostra { display: inline-block; width: 22px; height: 22px; border-radius: var(--ed-radius-sm); border: 1px solid var(--ed-border-strong); margin-right: .35rem; vertical-align: middle; }
.ed-observacao { background: var(--ed-surface-sunken); border-radius: var(--ed-radius-md); padding: .75rem 1rem; font-size: .875rem; color: var(--ed-text); }
.ed-card-destaque { border-color: rgba(200, 127, 6, .45); box-shadow: 0 0 0 3px rgba(197, 160, 89, .14), var(--ed-shadow-sm); }
.ed-checklist { list-style: none; margin: 0; padding: .5rem 1.25rem 1rem; display: grid; gap: .1rem; }
.ed-checklist li { display: flex; align-items: center; gap: .65rem; padding: .55rem 0; border-bottom: 1px solid var(--ed-border-suave); color: var(--ed-text-muted); }
.ed-checklist li:last-child { border-bottom: 0; }
.ed-checklist li .bi { font-size: 1.1rem; color: var(--ed-border-strong); }
.ed-checklist li.feito { color: var(--ed-text); }
.ed-checklist li.feito .bi { color: var(--ed-success-500); }
.ed-checklist small { color: var(--ed-accent-700); font-weight: 700; }
.ed-stat-apoio { margin: .25rem 0 0; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-stat-num small { font-size: .875rem; font-weight: 700; letter-spacing: 0; color: var(--ed-text-muted); }
.ed-alertas-lista { list-style: none; margin: 0; padding: .5rem 1.25rem 1rem; display: grid; gap: .4rem; }
.ed-alertas-lista li { display: flex; gap: .6rem; align-items: flex-start; padding: .55rem .75rem; border-radius: var(--ed-radius-md); border: 1px solid; font-size: .875rem; }
.ed-alertas-lista li a { color: inherit; font-weight: 700; }
.ed-alertas-lista li.tom-danger { background: var(--ed-danger-50); color: var(--ed-danger-700); border-color: rgba(200, 53, 42, .3); }
.ed-alertas-lista li.tom-warning { background: var(--ed-warning-50); color: var(--ed-warning-700); border-color: rgba(162, 87, 26, .3); }
.ed-alertas-lista li.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); border-color: rgba(200, 127, 6, .35); }
.ed-alertas-lista li.tom-neutral { background: var(--ed-neutral-50); color: var(--ed-neutral-700); border-color: rgba(85, 103, 126, .3); }
.ed-eventos { list-style: none; margin: 0; padding: .25rem 1.25rem 1rem; }
.ed-eventos li { display: grid; gap: .1rem; padding: .6rem 0; border-bottom: 1px solid var(--ed-border-suave); font-size: .875rem; }
.ed-eventos li:last-child { border-bottom: 0; }
.ed-eventos small { color: var(--ed-text-muted); font-size: .75rem; }
.ed-eventos-quando { font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ed-text-muted); }
.ed-senha-mostrada { display: flex; align-items: center; gap: .5rem; }
.ed-senha-mostrada code { font-size: 1.35rem; font-weight: 800; letter-spacing: .08em; color: var(--ed-text); background: var(--ed-surface-sunken); border-radius: var(--ed-radius-sm); padding: .35rem .75rem; }
.ed-form-linha { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0; }
.ed-form-linha .form-select, .ed-form-linha .form-control { flex: 1 1 10rem; width: auto; }
.ed-form-linha .form-select-sm { min-height: 36px; flex: 1 1 8rem; }
.ed-borda-topo { border-top: 1px solid var(--ed-border-suave); }
.ed-borda-baixo { border-bottom: 1px solid var(--ed-border-suave); }
.ed-pilha { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
.ed-pilha form { margin: 0; }
.ed-texto-pequeno { font-size: .75rem; font-weight: 500 !important; overflow-wrap: anywhere; }
.ed-quadro-email { display: block; width: 100%; min-height: 560px; border: 0; border-top: 1px solid var(--ed-border-suave); background: var(--ed-canvas); border-radius: 0 0 var(--ed-radius-lg) var(--ed-radius-lg); }

/* formulários longos (criar órgão) */
.ed-opcoes { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; min-height: 44px; align-items: center; }
.ed-opcoes small, .form-check-label small { color: var(--ed-text-muted); font-size: .8125rem; }
.ed-check-linha .form-check-label small { display: block; }
.ed-prefixo-url { font-size: .8125rem; color: var(--ed-text-muted); background: var(--ed-surface-sunken); border-color: var(--ed-border-strong); max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; line-height: 2.1; }
.ed-valor-fixo { min-height: 44px; display: flex; align-items: center; gap: .5rem; margin: 0; }
.ed-valor-fixo code { font-size: .9375rem; color: var(--ed-text); }
.form-control-color { width: 100%; max-width: 6rem; padding: .3rem; }
.ed-campo-curto { max-width: 8rem; }
.ed-acoes-form { display: flex; flex-wrap: wrap; gap: .75rem; padding-bottom: 1rem; }
.invalid-feedback { font-size: .8125rem; }

/* ------------------------------------------------------------------ faixas fixas (DESIGN §7) */
.ed-faixa-super { position: sticky; top: 0; z-index: 1030; min-height: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; padding: .35rem 16px; background: var(--ed-accent-500); color: var(--ed-ink-900); font-size: .875rem; }
.ed-faixa-super .bi { font-size: 1rem; }
.ed-faixa-super a, .ed-faixa-super button { color: var(--ed-ink-900); font-weight: 800; text-decoration: underline; text-underline-offset: .2em; background: none; border: 0; padding: .35rem .25rem; min-height: 32px; font-size: .875rem; }
.ed-faixa-super form { margin: 0; }
.ed-faixa-texto { flex: 1 1 auto; min-width: 0; }
.ed-faixa-curto { display: none; }
@media (max-width: 575.98px) { .ed-faixa-nome { display: none; } .ed-faixa-curto { display: inline; } }
.ed-faixa-previa { padding: .5rem 16px; background: var(--ed-accent-50); color: var(--ed-accent-700); font-size: .875rem; font-weight: 700; text-align: center; border-bottom: 1px solid rgba(200, 127, 6, .35); }

/* marca do órgão (logo em placa branca, DESIGN §9) */
.ed-marca-orgao .ed-marca-nome { font-size: .9375rem; }
.ed-placa-logo { display: inline-flex; align-items: center; background: var(--ed-surface); border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-xs); padding: 6px 10px; max-width: 180px; }
.ed-placa-logo img { max-height: 40px; max-width: 100%; height: auto; width: auto; }

/* ------------------------------------------------------------------ páginas públicas e portal (DESIGN §10) */
.ed-publico, .ed-portal { background: var(--ed-canvas); font-size: 1rem; min-height: 100vh; display: flex; flex-direction: column; }
.ed-publico > main, .ed-portal > main { flex: 1 0 auto; }
.ed-publico-topo, .ed-portal-topo { position: relative; border-bottom: 1px solid var(--ed-ink-fio); }
.ed-publico-topo::after, .ed-portal-topo::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--ed-accent-500) 30%, var(--ed-accent-500) 70%, transparent); opacity: .85; }
.ed-publico-topo-in, .ed-portal-topo-in { max-width: var(--ed-largura); margin: 0 auto; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ed-publico-topo .ed-marca-nome, .ed-portal-topo .ed-marca-nome { color: var(--ed-sobre-ink); }
.ed-portal-nav { display: flex; gap: .25rem; }
.ed-portal-nav a { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: .5rem .8rem; border-radius: var(--ed-radius-pill); color: var(--ed-sobre-ink-suave); text-decoration: none; font-weight: 700; font-size: .875rem; transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-portal-nav a:hover { background: var(--ed-ink-700); color: var(--ed-sobre-ink); }
@media (max-width: 575.98px) { .ed-portal-nav a { padding: .5rem; } .ed-publico-topo .ed-marca-apoio, .ed-portal-topo .ed-marca-apoio { display: none; } }
.ed-hero { position: relative; overflow: hidden; }
.ed-hero::before { content: ""; position: absolute; right: 4%; top: 50%; transform: translateY(-50%); width: 300px; height: 300px; background: url("../img/ed-mark.svg") no-repeat center / contain; opacity: .05; pointer-events: none; }
.ed-hero-in { position: relative; max-width: var(--ed-largura); margin: 0 auto; padding: 48px 16px 56px; }
@media (min-width: 900px) { .ed-hero-in { padding: 76px 16px 84px; } .ed-hero-duas { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 3rem; align-items: center; } }
@media (max-width: 899.98px) { .ed-hero::before { display: none; } .ed-hero-duas > * + * { margin-top: 1.75rem; } }
.ed-hero h1 { color: var(--ed-sobre-ink); font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.85rem); line-height: 1.08; letter-spacing: -0.03em; margin: .4rem 0 1rem; }
.ed-hero .ed-eyebrow { color: var(--ed-accent-500); }
.ed-hero-apoio { color: var(--ed-sobre-ink-suave); font-size: 1.0625rem; max-width: 34rem; margin: 0; }
.ed-vidro { position: relative; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--ed-radius-xl); padding: 1.25rem; backdrop-filter: blur(6px); }
.ed-vidro .ed-eyebrow { color: var(--ed-sobre-ink-suave); }
.ed-vidro .form-label, .ed-vidro h2 { color: var(--ed-sobre-ink); }
.ed-vidro-linha { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.ed-vidro-linha .form-select { flex: 1 1 10rem; }
.ed-vidro-linha .btn { flex: 0 0 auto; }
.ed-sugestoes { list-style: none; margin: .4rem 0 0; padding: .3rem; background: var(--ed-surface); border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-lg); max-height: 18rem; overflow-y: auto; }
.ed-sugestoes a { display: flex; justify-content: space-between; gap: .75rem; padding: .6rem .75rem; border-radius: var(--ed-radius-sm); color: var(--ed-text); text-decoration: none; }
.ed-sugestoes a small { color: var(--ed-text-muted); white-space: nowrap; }
.ed-sugestoes a:hover, .ed-sugestoes a[aria-selected="true"] { background: var(--ed-primary-50); }
.ed-sugestoes .ed-sugestao-vazia { padding: .6rem .75rem; color: var(--ed-text-muted); font-size: .875rem; }
.ed-secao-in { max-width: var(--ed-largura); margin: 0 auto; padding: 0 16px; }
.ed-secao { padding: 64px 0; }
@media (min-width: 900px) { .ed-secao { padding: 80px 0; } }
.ed-secao-alt { background: var(--ed-surface); border-top: 1px solid var(--ed-border-suave); border-bottom: 1px solid var(--ed-border-suave); }
.ed-secao h2 { margin: .25rem 0 1.5rem; }
.ed-cabeca-publica { padding: 36px 0 8px; }
.ed-cabeca-publica + .ed-secao { padding-top: 24px; }
.ed-cabeca-publica h1 { font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.2rem); margin: .3rem 0 .5rem; }
.ed-cabeca-apoio { color: var(--ed-text-muted); margin: 0; max-width: 42rem; }
.ed-migalhas { font-size: .8125rem; color: var(--ed-text-muted); margin-bottom: .9rem; }
.ed-migalhas a { color: var(--ed-text-muted); }
.ed-grade-cartoes { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.ed-orgao { display: flex; align-items: center; gap: .9rem; min-height: 64px; padding: .9rem 1rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-sm); color: var(--ed-text); text-decoration: none; transition: transform var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease); }
.ed-orgao:hover { transform: translateY(-2px); box-shadow: var(--ed-shadow-md); border-color: var(--ed-primary-100); }
.ed-orgao:active { background: var(--ed-primary-50); }
.ed-orgao > span:nth-child(2) { flex: 1; min-width: 0; }
.ed-orgao strong { display: block; font-weight: 700; }
.ed-orgao small { display: block; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-orgao > .bi-chevron-right { color: var(--ed-text-muted); }
.ed-todos-estados { margin-top: 1.5rem; }
.ed-todos-estados summary { cursor: pointer; font-weight: 700; color: var(--ed-primary-600); min-height: 44px; display: flex; align-items: center; gap: .4rem; list-style: none; }
.ed-todos-estados summary::-webkit-details-marker { display: none; }
.ed-todos-estados[open] summary .bi { transform: rotate(180deg); }
.ed-lista-estados { list-style: none; padding: 0; margin: .5rem 0 0; columns: 2 10rem; column-gap: 1.5rem; }
.ed-lista-estados li { padding: .25rem 0; break-inside: avoid; }
.ed-passos { list-style: none; counter-reset: passo; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.ed-passos li { counter-increment: passo; display: grid; gap: .35rem; }
.ed-passos li::before { content: counter(passo); font-size: 2.75rem; font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: var(--ed-primary-400); }
.ed-passos strong { font-size: 1.0625rem; }
.ed-passos span { color: var(--ed-text-muted); }
.ed-fecho { border-radius: var(--ed-radius-xl); padding: 2rem 1.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
@media (min-width: 900px) { .ed-fecho { padding: 2.75rem 3rem; } }
.ed-fecho > div { max-width: 40rem; }
.ed-fecho h2 { color: var(--ed-sobre-ink); margin: .25rem 0 .5rem; }
.ed-fecho p { color: var(--ed-sobre-ink-suave); margin: 0; }
.ed-fecho .ed-eyebrow { color: var(--ed-accent-500); }

/* ---------------------------------------------------------------- página do produto (estrutura de landing de gestão pública, linguagem do DESIGN.md) */
.ed-portal-nav.ed-publico-nav { align-items: center; }
.ed-publico-nav a.btn { margin-left: .5rem; padding: .5rem 1rem; border-radius: var(--ed-radius-sm); color: #fff; }
.ed-publico-nav a.btn:hover { background: var(--bs-btn-hover-bg); color: var(--bs-btn-hover-color); }
@media (max-width: 991.98px) { .ed-publico-nav .ed-nav-ancora { display: none; } }
@media (max-width: 575.98px) { .ed-publico-nav a.btn { margin-left: .15rem; padding: .45rem .7rem; font-size: .8125rem; } .ed-publico-nav .ed-nav-rotulo-longo { display: none; } }
.ed-hero-acoes { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: 1.5rem 0 0; }
.ed-hero-acoes a { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; color: var(--ed-sobre-ink); font-weight: 700; text-decoration: underline; text-underline-offset: .25em; text-decoration-color: var(--ed-ink-600); transition: color var(--ed-dur) var(--ed-ease), text-decoration-color var(--ed-dur) var(--ed-ease); }
.ed-hero-acoes a:hover { color: var(--ed-accent-500); text-decoration-color: var(--ed-accent-500); }
.ed-hero-in.ed-hero-com-segmentos { padding-bottom: 32px; }
@media (min-width: 900px) { .ed-hero-in.ed-hero-com-segmentos { padding-bottom: 44px; } }
.ed-hero-segmentos { position: relative; max-width: var(--ed-largura); margin: 0 auto; padding: 0 16px 40px; }
.ed-hero-segmentos .ed-eyebrow { color: var(--ed-sobre-ink-fraco); margin-bottom: .6rem; }
.ed-hero-segmentos ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ed-hero-segmentos a { display: inline-flex; align-items: center; gap: .45rem; min-height: 40px; padding: .4rem .9rem; border: 1px solid rgba(255, 255, 255, .18); border-radius: var(--ed-radius-pill); color: var(--ed-sobre-ink-suave); font-weight: 700; font-size: .875rem; text-decoration: none; transition: border-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-hero-segmentos a:hover, .ed-hero-segmentos a:focus-visible { border-color: var(--ed-accent-500); color: var(--ed-sobre-ink); background: rgba(255, 255, 255, .05); }
.ed-faixa-onde { background: var(--ed-surface); border-bottom: 1px solid var(--ed-border-suave); padding: 22px 0; }
.ed-faixa-onde .ed-secao-in { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.ed-faixa-onde h2.ed-eyebrow { margin: 0; }
.ed-faixa-onde p { color: var(--ed-text-muted); }
.ed-faixa-onde .ed-todos-estados { margin-top: 0; flex-basis: 100%; }
.ed-faixa-estados { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ed-faixa-estados a { display: inline-flex; align-items: baseline; gap: .35rem; min-height: 40px; padding: .45rem .9rem; border: 1px solid var(--ed-border-strong); border-radius: var(--ed-radius-pill); color: var(--ed-text); text-decoration: none; }
.ed-faixa-estados a:hover { border-color: var(--ed-primary-500); }
.ed-faixa-estados strong { color: var(--ed-primary-600); }
.ed-faixa-estados small { color: var(--ed-text-muted); }
.ed-recursos { display: grid; gap: 3rem; margin-top: 1rem; }
.ed-recurso { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 900px) { .ed-recurso { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4rem; } .ed-recurso:nth-child(even) .ed-recurso-texto { order: 2; } }
.ed-recurso-texto h3 { font-size: 1.375rem; font-weight: 800; letter-spacing: -0.02em; margin: .9rem 0 .5rem; }
.ed-recurso-texto p { color: var(--ed-text-muted); margin: 0; max-width: 34rem; }
.ed-recurso-icone { width: 48px; height: 48px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: rgba(13, 101, 120, .12); color: var(--ed-primary-600); font-size: 1.35rem; }
.ed-recurso-mock { background: linear-gradient(160deg, var(--ed-primary-50), var(--ed-surface-sunken) 70%); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); padding: 1.75rem 1.25rem; display: grid; place-items: center; }
@media (max-width: 575.98px) { .ed-recurso-mock { padding: .75rem; border-radius: var(--ed-radius-lg); } }
/* Tela real do sistema numa moldura de janela: barra com os três pontos e sombra de elevação. */
.ed-print { margin: 0; width: 100%; max-width: 560px; background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-lg); overflow: hidden; }
.ed-print-barra { display: flex; gap: 6px; padding: 9px 12px; background: var(--ed-surface-sunken); border-bottom: 1px solid var(--ed-border-suave); }
.ed-print-barra span { width: 9px; height: 9px; border-radius: 50%; background: var(--ed-border-strong); }
.ed-print img { display: block; width: 100%; height: auto; }
.ed-print-retrato { max-width: 440px; }
.ed-recursos-nota { margin: 1.5rem 0 0; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-cidadao-in { max-width: 860px; margin: 0 auto; text-align: center; }
.ed-cidadao-apoio { color: var(--ed-text-muted); max-width: 40rem; margin: 0 auto 2rem; }
.ed-cidadao-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); text-align: left; }
.ed-cidadao-lista li { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.1rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); }
.ed-cidadao-lista .bi { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: rgba(13, 101, 120, .12); color: var(--ed-primary-600); font-size: 1.15rem; }
.ed-cidadao-lista strong { display: block; }
.ed-cidadao-lista span { color: var(--ed-text-muted); font-size: .9375rem; }
.ed-cidadao-lista strong { color: var(--ed-text); }
.ed-implantacao { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .ed-implantacao { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 4rem; } }
.ed-implantacao p { color: var(--ed-text-muted); }
.ed-implantacao-passos { list-style: none; margin: 1.25rem 0 1.5rem; padding: 0; display: grid; gap: .6rem; }
.ed-implantacao-passos li { display: flex; gap: .6rem; align-items: flex-start; }
.ed-implantacao-passos .bi { color: var(--ed-accent-600); font-size: 1.15rem; line-height: 1.4; }
.ed-implantacao-acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.ed-implantacao-mock { display: grid; place-items: center; }
.ed-mock-celular { width: 260px; border: 10px solid var(--ed-ink-900); border-radius: 34px; background: var(--ed-ink-900); overflow: hidden; box-shadow: var(--ed-shadow-lg); }
.ed-mock-celular img { display: block; width: 100%; height: auto; border-radius: 24px; }
.ed-tipos { margin-top: .5rem; }
.ed-garantias { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.ed-garantias li { display: grid; gap: .35rem; padding: 1.25rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); }
.ed-garantias span:not(.ed-garantia-icone) { color: var(--ed-text-muted); font-size: .9375rem; }
.ed-garantia-icone { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: rgba(13, 101, 120, .12); color: var(--ed-primary-600); font-size: 1.25rem; margin-bottom: .35rem; }
.ed-cta-final-sec { padding-top: 0; }
.ed-cta-final { border-radius: var(--ed-radius-xl); padding: 3rem 1.5rem; text-align: center; }
@media (min-width: 900px) { .ed-cta-final { padding: 4rem 3rem; } }
.ed-cta-final .ed-eyebrow { color: var(--ed-accent-500); }
.ed-cta-final h2 { color: var(--ed-sobre-ink); font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem); margin: .3rem auto .75rem; max-width: 36rem; }
.ed-cta-final p { color: var(--ed-sobre-ink-suave); max-width: 34rem; margin: 0 auto; }
.ed-cta-final-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 1.75rem !important; }
.ed-rodape-colunas { max-width: var(--ed-largura); margin: 0 auto; padding: 44px 16px 12px; display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); font-size: .875rem; }
.ed-rodape-colunas h2 { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-sobre-ink-fraco); margin: 0 0 .75rem; font-weight: 800; }
.ed-rodape-colunas ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.ed-rodape .ed-rodape-colunas a { color: var(--ed-sobre-ink-suave); text-decoration: none; }
.ed-rodape .ed-rodape-colunas a:hover { color: var(--ed-sobre-ink); text-decoration: underline; }
.ed-rodape .ed-rodape-colunas .ed-rodape-nome { color: var(--ed-sobre-ink); }
.ed-rodape-colunas p { color: var(--ed-sobre-ink-suave); margin: 0 0 .35rem; }
.ed-rodape-base { max-width: var(--ed-largura); margin: 0 auto; padding: 16px; border-top: 1px solid var(--ed-ink-fio); font-size: .8125rem; color: var(--ed-sobre-ink-fraco); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; }
.ed-rodape .ed-rodape-base a { color: var(--ed-sobre-ink-suave); }
@media (prefers-reduced-motion: reduce) { .ed-hero-segmentos a, .ed-hero-acoes a { transition: none; } }
.ed-vazio-grande { text-align: center; color: var(--ed-text-muted); padding: 2.5rem 1rem; }
.ed-vazio-grande .bi { display: block; font-size: 2rem; margin-bottom: .5rem; color: var(--ed-border-strong); }
.ed-filtro-local { max-width: 26rem; }
.ed-estreito { max-width: 760px; }
.ed-centro { text-align: center; }
.ed-pote { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ed-selo-ok { width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-size: 2rem; background: var(--ed-success-50); color: var(--ed-success-500); }
.ed-rodape { margin-top: 0; }
.ed-rodape-in { max-width: var(--ed-largura); margin: 0 auto; padding: 36px 16px 20px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.5rem; font-size: .875rem; }
.ed-rodape-in p { margin: 0 0 .25rem; }
.ed-rodape a { color: var(--ed-sobre-ink); }
.ed-rodape-nome { color: var(--ed-sobre-ink); font-weight: 800; font-size: 1rem; }
.ed-rodape-links { display: grid; gap: .4rem; align-content: start; }
.ed-rodape-produto { max-width: var(--ed-largura); margin: 0 auto; padding: 14px 16px 22px; border-top: 1px solid var(--ed-ink-fio); font-size: .75rem; color: var(--ed-sobre-ink-fraco); display: flex; align-items: center; gap: .4rem; }
.ed-link-discreto { color: var(--ed-sobre-ink-fraco) !important; font-size: .8125rem; }

/* ------------------------------------------------------------------ admin do órgão: catálogos e fichas (04 §4.2) */
.ed-colunas { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1100px) { .ed-colunas { grid-template-columns: minmax(0, 1fr) 360px; } }
@media (min-width: 1100px) { .ed-fixo { position: sticky; top: 20px; } }
.ed-card-apagado { opacity: .78; }
.ed-card-apagado .ed-card-topo { background: var(--ed-surface-sunken); }
.ed-titulo-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.ed-etiqueta { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; font-weight: 700; color: var(--ed-text-muted); background: var(--ed-surface-sunken); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-pill); padding: .1rem .55rem; }
.ed-card-rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem 1.25rem; border-top: 1px solid var(--ed-border-suave); }
.ed-card-rodape form { margin: 0; }
.ed-acoes-linha { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.ed-acoes-linha .form-text { margin-right: auto; }
/* Materiais de divulgação (superadmin): vídeo, capa e roteiro para baixar */
.ed-materiais { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ed-materiais li { display: flex; align-items: center; gap: .75rem; padding: .625rem .75rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); }
.ed-materiais li > .bi { flex: none; width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: var(--ed-radius-sm); background: var(--ed-primary-50); color: var(--ed-primary-500); font-size: 1.125rem; }
.ed-materiais li > span { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.ed-materiais small { color: var(--ed-text-muted); }
.ed-flags { display: grid; gap: .4rem; }
.ed-flags .form-check { margin: 0; }
.ed-checks-coluna { display: grid; gap: .25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.ed-detalhes > summary, details.ed-card-corpo > summary { cursor: pointer; font-weight: 700; color: var(--ed-primary-600); min-height: 32px; }
.ed-sigla { text-transform: uppercase; max-width: 7rem; font-family: var(--ed-mono); }
.ed-sigla-pilula { display: inline-block; font-family: var(--ed-mono); font-size: .7rem; font-weight: 700; letter-spacing: .04em; color: var(--ed-primary-700); background: var(--ed-primary-50); border-radius: var(--ed-radius-pill); padding: .05rem .5rem; }
.ed-texto-pre { white-space: pre-wrap; }
.ed-tons { display: flex; flex-wrap: wrap; gap: .4rem; }
.ed-tom { position: relative; display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .7rem .4rem .55rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); cursor: pointer; font-weight: 700; font-size: .8125rem; background: var(--ed-surface); transition: border-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-tom small { display: block; font-weight: 500; font-size: .6875rem; color: var(--ed-text-muted); }
.ed-tom input { position: absolute; opacity: 0; pointer-events: none; }
.ed-tom-ponto { width: 12px; height: 12px; border-radius: 50%; background: var(--ed-tom-cor, var(--ed-neutral-500)); flex: none; }
.ed-tom:has(input:checked) { border-color: var(--ed-tom-cor); box-shadow: 0 0 0 2px var(--ed-tom-cor); }
.ed-tom:has(input:focus-visible) { outline: 2px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-tom.tom-primary { --ed-tom-cor: var(--ed-primary-500); }
.ed-tom.tom-success { --ed-tom-cor: var(--ed-success-500); }
.ed-tom.tom-warning { --ed-tom-cor: var(--ed-warning-500); }
.ed-tom.tom-danger { --ed-tom-cor: var(--ed-danger-500); }
.ed-tom.tom-accent { --ed-tom-cor: var(--ed-accent-600); }
.ed-tom.tom-neutral { --ed-tom-cor: var(--ed-neutral-500); }
.ed-matriz td, .ed-matriz th { padding: .4rem .6rem; }
.ed-matriz td.ed-ajustado { background: var(--ed-accent-50); }
.ed-selo-ruim { background: var(--ed-danger-50); color: var(--ed-danger-500); }
.ed-trocar-orgao { color: var(--ed-sobre-ink-suave); font-size: .875rem; }
.ed-trocar-orgao summary { cursor: pointer; padding: 6px 8px; border-radius: var(--ed-radius-sm); font-weight: 700; list-style: none; }
.ed-trocar-orgao summary::-webkit-details-marker { display: none; }
.ed-trocar-orgao summary:hover { background: var(--ed-ink-600); color: var(--ed-sobre-ink); }
.ed-trocar-orgao ul { list-style: none; margin: .35rem 0 0; padding: 0; display: grid; gap: 2px; }
.ed-trocar-orgao a { display: block; padding: 6px 10px; border-radius: var(--ed-radius-sm); color: var(--ed-sobre-ink-suave); text-decoration: none; }
.ed-trocar-orgao a:hover, .ed-trocar-orgao a[aria-current] { background: var(--ed-ink-700); color: var(--ed-sobre-ink); }
.ed-trocar-orgao small { display: block; color: var(--ed-sobre-ink-fraco); font-size: .75rem; }

/* ------------------------------------------------------------------ modal de confirmação e copiar (DESIGN §7) */
.ed-dialogo { border: 0; border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-lg); padding: 1.5rem; max-width: min(28rem, calc(100vw - 32px)); color: var(--ed-text); }
.ed-dialogo::backdrop { background: rgba(7, 32, 28, .55); }
.ed-dialogo-texto { font-size: 1rem; margin: .25rem 0 1.25rem; }
.ed-dialogo-acoes { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
.ed-copiado { border-color: var(--ed-success-500) !important; color: var(--ed-success-500) !important; }

/* ------------------------------------------------------------------ movimento reduzido */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; scroll-behavior: auto !important; }
  .btn:active, a.ed-stat:hover, .ed-cartao-link:hover { transform: none; }
}

/* ------------------------------------------------------------------ protocolo: lista, ficha, caixa (F3b) */
.ed-nav-conta { margin-left: auto; min-width: 1.4rem; padding: 0 .4rem; border-radius: var(--ed-radius-pill); background: var(--ed-accent-500); color: var(--ed-ink-900); font-size: .6875rem; font-weight: 800; line-height: 1.35rem; text-align: center; font-variant-numeric: tabular-nums; }
.ed-paginacao { display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }
.ed-pag-reticencias { padding: 0 .25rem; color: var(--ed-text-muted); }
.ed-linha-apagada td { color: var(--ed-text-muted); }
.ed-badge-mini { font-size: .6875rem; padding: .05rem .45rem; margin-left: .25rem; }
.ed-filtros-mais > summary { cursor: pointer; font-weight: 700; color: var(--ed-primary-600); font-size: .875rem; min-height: 32px; }
.ed-busca-pessoa { position: relative; }
.ed-busca-pessoa .ed-sugestoes { position: absolute; left: 0; right: 0; z-index: 20; }
.ed-proximo-numero { font-size: .875rem; color: var(--ed-text-muted); margin: 0 0 .75rem; }
.ed-proximo-numero strong { color: var(--ed-text); font-size: 1rem; }
.ed-prazo { display: flex; gap: .75rem; align-items: center; padding: .85rem 1.25rem; border-bottom: 1px solid var(--ed-border-suave); background: var(--ed-neutral-50); color: var(--ed-neutral-700); border-radius: var(--ed-radius-lg) var(--ed-radius-lg) 0 0; }
.ed-prazo > .bi { font-size: 1.35rem; }
.ed-prazo.tom-success { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-prazo.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); }
.ed-prazo.tom-danger { background: var(--ed-danger-50); color: var(--ed-danger-700); }
.ed-prazo .ed-eyebrow { color: inherit; opacity: .85; }
.ed-prazo-texto { margin: 0; font-weight: 800; }
.ed-conversa { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.ed-msg { padding: .75rem 1rem; border-radius: var(--ed-radius-md); border: 1px solid var(--ed-border); background: var(--ed-surface); max-width: 92%; }
.ed-msg-cidadao { background: var(--ed-primary-50); border-color: var(--ed-primary-100); }
.ed-msg-servidor { margin-left: auto; }
.ed-msg-sistema { background: var(--ed-surface-sunken); font-size: .875rem; max-width: 100%; }
.ed-msg-interna { border-style: dashed; background: var(--ed-surface-sunken); }
.ed-msg-quem { margin: 0 0 .35rem; font-size: .75rem; color: var(--ed-text-muted); display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.ed-msg-quem strong { color: var(--ed-text); }
.ed-opcao { display: flex; gap: .5rem; align-items: flex-start; padding: .55rem .75rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); cursor: pointer; flex: 1 1 14rem; }
.ed-opcao:has(input:checked) { border-color: var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-opcao input { margin-top: .3rem; }
.ed-anexos { list-style: none; margin: 0; padding: .25rem 1.25rem; }
.ed-anexos li { display: flex; gap: .65rem; align-items: center; padding: .65rem 0; border-bottom: 1px solid var(--ed-border-suave); }
.ed-anexos li:last-child { border-bottom: 0; }
.ed-anexos li > .bi { font-size: 1.35rem; color: var(--ed-primary-500); }
.ed-anexos form { margin: 0; }
.min-w-0 { min-width: 0; overflow-wrap: anywhere; }
.ed-linha-tempo { list-style: none; margin: 0; padding: .5rem 1.25rem 1rem 2.25rem; position: relative; }
.ed-linha-tempo::before { content: ""; position: absolute; left: 1.4rem; top: 1rem; bottom: 1rem; width: 2px; background: var(--ed-border); }
.ed-linha-tempo li { position: relative; padding: .6rem 0; }
.ed-linha-tempo li::before { content: ""; position: absolute; left: -1.1rem; top: 1rem; width: 10px; height: 10px; border-radius: 50%; background: var(--ed-surface); border: 2px solid var(--ed-primary-500); }
.ed-linha-tempo li:first-child::before { background: var(--ed-accent-500); border-color: var(--ed-accent-600); }
.ed-acao { padding: 0; }
.ed-acao > summary { cursor: pointer; list-style: none; border-bottom: 0; }
.ed-acao > summary::-webkit-details-marker { display: none; }
.ed-acao > summary h2 { display: flex; gap: .5rem; align-items: center; }
.ed-acao > summary::after { content: "\F282"; font-family: "bootstrap-icons"; color: var(--ed-text-muted); transition: transform var(--ed-dur) var(--ed-ease); }
.ed-acao[open] > summary { border-bottom: 1px solid var(--ed-border-suave); }
.ed-acao[open] > summary::after { transform: rotate(180deg); }
.ed-acao-risco > summary h2 { color: var(--ed-danger-700); }
.ed-marcadores { display: flex; flex-wrap: wrap; gap: .4rem; }
.ed-marcadores form { margin: 0; }
.ed-chip { display: inline-flex; align-items: center; gap: .3rem; min-height: 32px; padding: .2rem .7rem; border-radius: var(--ed-radius-pill); border: 1px dashed var(--ed-border-strong); background: var(--ed-surface); color: var(--ed-text-muted); font-size: .8125rem; font-weight: 700; transition: background var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-chip:hover { color: var(--ed-text); border-color: var(--ed-primary-500); }
.ed-chip.ligado { border-style: solid; }
.ed-chip.ligado.tom-primary { background: var(--ed-primary-50); color: var(--ed-primary-700); border-color: var(--ed-primary-100); }
.ed-chip.ligado.tom-success { background: var(--ed-success-50); color: var(--ed-success-700); border-color: var(--ed-success-500); }
.ed-chip.ligado.tom-warning { background: var(--ed-warning-50); color: var(--ed-warning-700); border-color: var(--ed-warning-500); }
.ed-chip.ligado.tom-danger { background: var(--ed-danger-50); color: var(--ed-danger-700); border-color: var(--ed-danger-500); }
.ed-chip.ligado.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); border-color: var(--ed-accent-500); }
.ed-chip.ligado.tom-neutral { background: var(--ed-neutral-50); color: var(--ed-neutral-700); border-color: var(--ed-neutral-500); }
.ed-secao-titulo { font-size: 1rem; font-weight: 800; display: flex; align-items: center; gap: .5rem; margin: 0 0 .75rem; }
.ed-cartao-processo { padding: 0; }
.ed-cartao-link { display: grid; gap: .35rem; padding: 1rem 1.1rem; color: var(--ed-text); text-decoration: none; border-radius: var(--ed-radius-lg); height: 100%; transition: box-shadow var(--ed-dur) var(--ed-ease), transform var(--ed-dur) var(--ed-ease); }
.ed-cartao-link:hover { box-shadow: var(--ed-shadow-md); transform: translateY(-1px); }
.ed-cartao-assunto { font-weight: 600; }
.ed-trocar-setor { position: relative; }
.ed-trocar-setor > summary { list-style: none; }
.ed-trocar-setor > summary::-webkit-details-marker { display: none; }
.ed-trocar-setor .ed-lista-links { position: absolute; right: 0; z-index: 20; min-width: 18rem; background: var(--ed-surface); padding: .5rem; border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-lg); }
.ed-nao-lido { font-weight: 700; }
.ed-barras { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .4rem; align-items: end; height: 180px; }
.ed-barras li { display: grid; grid-template-rows: 1fr auto; height: 100%; text-align: center; gap: .25rem; }
.ed-barra { position: relative; align-self: end; height: max(var(--h), 2px); background: var(--ed-primary-500); border-radius: 6px 6px 2px 2px; }
.ed-barra b { position: absolute; left: 0; right: 0; top: -1.2rem; font-size: .6875rem; color: var(--ed-text-muted); }
.ed-barras small { font-size: .6875rem; color: var(--ed-text-muted); }
.ed-barras-h { list-style: none; margin: 0; padding: .5rem 1.25rem 1rem; display: grid; gap: .6rem; }
.ed-barras-h a { display: flex; justify-content: space-between; gap: .5rem; color: var(--ed-text); text-decoration: none; font-size: .875rem; }
.ed-barras-h a:hover { color: var(--ed-primary-600); }
.ed-barras-h .ed-tom { padding: 0; border: 0; border-radius: 0; cursor: inherit; font-weight: 600; font-size: .875rem; }
.ed-barras-h .ed-tom-ponto { width: 10px; height: 10px; }
.ed-barra-h { display: block; height: 6px; width: var(--w); min-width: 2px; margin-top: .25rem; border-radius: 3px; background: var(--ed-neutral-500); }
.ed-barra-h.tom-primary { background: var(--ed-primary-500); }
.ed-barra-h.tom-success { background: var(--ed-success-500); }
.ed-barra-h.tom-warning { background: var(--ed-warning-500); }
.ed-barra-h.tom-danger { background: var(--ed-danger-500); }
.ed-barra-h.tom-accent { background: var(--ed-accent-600); }
.text-danger { color: var(--ed-danger-700) !important; }
.text-success { color: var(--ed-success-700) !important; }
.ed-portal-nav form { margin: 0; display: inline-flex; }
.ed-portal-nav a[aria-current="page"] { background: var(--ed-ink-700); color: var(--ed-sobre-ink); }
.ed-portal-instalar { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: .5rem .8rem; border: 1px solid var(--ed-ink-fio); border-radius: var(--ed-radius-pill); background: transparent; color: var(--ed-sobre-ink); font-weight: 700; font-size: .875rem; }
.ed-portal-instalar[hidden] { display: none; }
.ed-portal-instalar:hover { background: var(--ed-ink-700); }
.ed-marca-previa { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.25rem; margin-bottom: 1rem; }
.ed-marca-previa figure { margin: 0; text-align: center; }
.ed-marca-previa figcaption { font-size: .75rem; color: var(--ed-text-muted); margin-top: .35rem; }
.ed-marca-logo { max-width: 160px; max-height: 96px; object-fit: contain; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); padding: .5rem; background: var(--ed-surface); }
.ed-marca-icone { width: 64px; height: 64px; border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-sm); }
.ed-marca-mascara { border-radius: 50%; }
.ed-offline { max-width: 32rem; margin: 12vh auto 0; padding: 2rem 1.25rem; text-align: center; }
.ed-offline img { border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-md); margin-bottom: 1.25rem; }
.ed-offline h1 { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; }
.ed-portal-sair { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; border: 0; border-radius: var(--ed-radius-pill); background: transparent; color: var(--ed-sobre-ink-suave); }
.ed-portal-sair:hover { background: var(--ed-ink-700); color: var(--ed-sobre-ink); }
@media (max-width: 767.98px) { .ed-portal-nav .ed-nav-rotulo { display: none; } }
.ed-colunas-iguais { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .ed-colunas-iguais { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.ed-texto-legal h2 { font-size: 1.5rem; margin: 0 0 1rem; }
.ed-texto-legal h3 { font-size: 1.05rem; margin: 1.5rem 0 .5rem; }
.ed-texto-legal p, .ed-texto-legal li { line-height: 1.65; }
.ed-comprovante-pagina { background: var(--ed-canvas); }
.ed-comprovante { max-width: 820px; margin: 24px auto; padding: 0 16px 48px; }
.ed-comprovante-cabeca { display: flex; gap: 1rem; align-items: center; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 3px solid var(--ed-accent-500); }
.ed-comprovante-cabeca h1 { font-size: 1.25rem; margin: 0; }
.ed-comprovante-topo { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; margin-bottom: 1.5rem; }
.ed-comprovante-topo > div { flex: 1 1 12rem; }
.ed-comprovante-numero { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; margin: 0; }
.ed-comprovante-chave { font-family: var(--ed-mono); font-size: 1.35rem; font-weight: 800; letter-spacing: .06em; margin: 0 0 .25rem; }
.ed-comprovante-qr { flex: 0 0 auto !important; text-align: center; max-width: 130px; }
.ed-comprovante-qr [data-qr] { width: 104px; height: 104px; margin: 0 auto .35rem; }
.ed-comprovante-qr svg { width: 104px; height: 104px; }

/* ------------------------------------------------------------------ impressão (DESIGN §14) */
/* ===================================================================== grades (04 §5; porte do SAGP) */
.ed-filtros { padding: 1rem 1.25rem; }
.ed-filtros-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .75rem; align-items: end; }
.ed-filtros-campo { min-width: 0; }
.ed-filtros-marcar { display: flex; align-items: center; min-height: 2.375rem; }
.ed-filtros-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; padding-top: .75rem; border-top: 1px solid var(--ed-border-suave); }
.ed-filtros-resumo { margin: 0; font-size: .875rem; color: var(--ed-text); min-width: 0; overflow-wrap: anywhere; }
.ed-filtros-resumo .ed-eyebrow { margin-right: .4rem; }
.ed-filtros-salvos { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--ed-border-suave); }
.ed-etiquetas { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.ed-etiqueta { display: inline-flex; align-items: center; gap: .15rem; min-height: 32px; padding: .15rem .25rem .15rem .7rem; border-radius: var(--ed-radius-pill); border: 1px solid var(--ed-border); background: var(--ed-surface); font-size: .8125rem; color: var(--ed-text); max-width: 100%; }
.ed-etiqueta > span, .ed-etiqueta > a { overflow-wrap: anywhere; }
.ed-etiqueta a { color: inherit; text-decoration: none; font-weight: 600; }
.ed-etiqueta a:hover { color: var(--ed-primary-600); }
.ed-etiqueta form { display: inline; margin: 0; }
.ed-etiqueta-x { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 0; border-radius: var(--ed-radius-pill); background: transparent; color: var(--ed-text-muted); }
.ed-etiqueta-x:hover, .ed-etiqueta-x:focus-visible { background: var(--ed-danger-50); color: var(--ed-danger-700); }
.ed-etiqueta-salva.ativa, .ed-etiqueta-equipe.ativa { border-color: var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-etiqueta-equipe { padding-right: .7rem; border-style: dashed; }
.ed-estrela { color: var(--ed-accent-600); margin-right: .2rem; }
.ed-av-ativos { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .75rem; }
.ed-av { margin-top: 1rem; }
.ed-av-painel { border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface-sunken); padding: 1rem; }
.ed-av-ajuda { margin: .15rem 0 .75rem; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-av-linhas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.ed-av-linha { display: grid; grid-template-columns: 2.25rem minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr) 2rem; gap: .5rem; align-items: start; }
.ed-av-liga { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ed-text-muted); padding-top: .45rem; }
.ed-av-valor-campos { display: flex; gap: .4rem; align-items: center; }
.ed-av-valor-campos > * { min-width: 0; }
.ed-av-e { font-size: .8125rem; color: var(--ed-text-muted); }
.ed-av-varios { min-height: 6rem; }
.ed-av-vazio { margin: .5rem 0 0; font-size: .875rem; color: var(--ed-text-muted); }
.ed-av-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .85rem; }
.ed-av-modo { display: flex; align-items: center; gap: .5rem; margin: 0; }
.ed-av-modo-titulo { float: none; width: auto; margin: 0 .25rem 0 0; font-size: .8125rem; font-weight: 700; color: var(--ed-text-muted); }
.ed-av-botoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.ed-relatorio { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .85rem 1rem; margin-bottom: 1rem; border-radius: var(--ed-radius-md); border: 1px solid var(--ed-primary-100); border-left: 3px solid var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-relatorio-icone { font-size: 1.25rem; color: var(--ed-primary-600); }
.ed-relatorio-texto { flex: 1 1 16rem; min-width: 0; }
.ed-relatorio-nome { margin: 0; font-weight: 800; letter-spacing: -.01em; overflow-wrap: anywhere; }
.ed-relatorio-dica { margin: 0; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-relatorio-acoes { display: flex; flex-wrap: wrap; gap: .4rem; }
.ed-dialogo-largo { max-width: min(34rem, calc(100vw - 32px)); width: 100%; }

.ed-grade-card { padding: 0; overflow: visible; }
.ed-grade-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1.25rem; border-bottom: 1px solid var(--ed-border-suave); }
.ed-grade-busca { position: relative; flex: 1 1 16rem; max-width: 26rem; min-width: 0; }
.ed-grade-busca .bi-search { position: absolute; left: .7rem; top: 50%; transform: translateY(-50%); color: var(--ed-text-muted); pointer-events: none; }
.ed-grade-busca input { padding-left: 2rem; min-height: 2.25rem; }
.ed-grade-ferramentas { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.ed-grade-exportar { position: relative; display: inline-flex; }
.ed-grade-exportar > .btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.ed-grade-exportar-menu { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; padding-inline: .45rem; }
.ed-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 16rem; list-style: none; margin: 0; padding: .35rem; background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-md); }
.ed-menu-item { display: block; width: 100%; text-align: left; border: 0; background: none; padding: .5rem .65rem; border-radius: var(--ed-radius-sm); color: var(--ed-text); }
.ed-menu-item:hover, .ed-menu-item:focus-visible { background: var(--ed-primary-50); }
.ed-menu-rotulo { display: block; font-weight: 700; font-size: .875rem; }
.ed-menu-dica { display: block; font-size: .75rem; color: var(--ed-text-muted); }
.ed-grade-corpo { position: relative; }
.ed-grade-rolagem { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ed-grade-tabela { min-width: 100%; }
.ed-grade-tabela th, .ed-grade-tabela td { padding: .55rem .6rem; }
.ed-grade-tabela tbody tr { transition: background var(--ed-dur) var(--ed-ease); }
.ed-grade-tabela tbody tr:hover { background: var(--ed-primary-50); }
.ed-grade-tabela th:first-child, .ed-grade-tabela td:first-child { position: sticky; left: 0; z-index: 1; background: var(--ed-surface); }
.ed-grade-tabela thead th:first-child { background: var(--ed-surface-sunken); }
.ed-grade-tabela tbody tr:hover td:first-child { background: var(--ed-primary-50); }
.ed-grade-rolada .ed-grade-tabela th:first-child, .ed-grade-rolada .ed-grade-tabela td:first-child { box-shadow: 6px 0 8px -6px rgba(7, 32, 28, .18); }
.ed-grade-tabela td.ed-num, .ed-grade-tabela th.ed-num { text-align: right; }
/* Títulos de coluna quebram em duas linhas ("Protocolos / no ano"): a tabela cabe sem rolar de lado. */
.ed-grade-ordena { display: inline-flex; align-items: center; gap: .3rem; border: 0; background: none; padding: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; white-space: normal; text-align: inherit; line-height: 1.25; }
.ed-grade-tabela thead th { white-space: normal; vertical-align: bottom; }
.ed-grade-tabela thead th.ed-num { max-width: 9.5rem; }
.ed-grade-tabela thead th.ed-num .ed-grade-ordena { justify-content: flex-end; }
.ed-grade-ordena:hover { color: var(--ed-primary-600); }
.ed-grade-ordena:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 2px; border-radius: 2px; }
.ed-grade-ordem-n { display: inline-block; min-width: 1rem; font-size: .625rem; border-radius: var(--ed-radius-pill); background: var(--ed-primary-100); color: var(--ed-primary-700); text-align: center; }
.ed-grade-acoes { white-space: nowrap; text-align: right; }
.ed-grade-tabela th.ed-grade-acoes, .ed-grade-tabela td.ed-grade-acoes { position: sticky; right: 0; z-index: 1; background: var(--ed-surface); }
.ed-grade-tabela thead th.ed-grade-acoes { background: var(--ed-surface-sunken); }
.ed-grade-tabela tbody tr:hover td.ed-grade-acoes { background: var(--ed-primary-50); }
.ed-grade-tabela td.ed-grade-acoes, .ed-grade-tabela th.ed-grade-acoes { box-shadow: -6px 0 8px -6px rgba(7, 32, 28, .14); }
.ed-grade-texto { min-width: 6rem; max-width: 28rem; }
/* A primeira coluna (o nome) quebra em duas linhas em vez de empurrar a tabela para o lado. */
.ed-grade-tabela tbody td:first-child { max-width: 15rem; white-space: normal; overflow-wrap: anywhere; }
.ed-grade-nome { min-width: 9rem; }
.ed-grade-acoes .btn + .btn { margin-left: .25rem; }
.ed-vazio-celula { color: var(--ed-border-strong); }
.ed-grade-total td { font-weight: 800; border-top: 2px solid var(--ed-border-strong); background: var(--ed-surface-sunken); }
.ed-grade-tabela .ed-grade-total td { background: var(--ed-surface-sunken); }
.ed-sem-totais .ed-grade-total { display: none; }
.ed-grade-carregando { display: none; position: absolute; top: .75rem; left: 50%; transform: translateX(-50%); z-index: 3; padding: .35rem .85rem; border-radius: var(--ed-radius-pill); background: var(--ed-surface); box-shadow: var(--ed-shadow-md); font-size: .8125rem; color: var(--ed-text-muted); }
.ed-grade-ocupada .ed-grade-carregando { display: inline-flex; align-items: center; gap: .35rem; }
.ed-grade-ocupada tbody { opacity: .55; }
.ed-grade-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; padding: .75rem 1.25rem; border-top: 1px solid var(--ed-border-suave); }
.ed-grade-info { margin: 0; font-size: .875rem; color: var(--ed-text-muted); }
.ed-grade-info strong { color: var(--ed-text); }
.ed-grade-linhas { display: inline-flex; align-items: center; gap: .4rem; font-size: .8125rem; color: var(--ed-text-muted); margin: 0; }
.ed-grade-linhas select { width: auto; }
.ed-grade-paginas { display: flex; flex-wrap: wrap; gap: .25rem; }
.ed-grade-pagina { min-width: 32px; height: 32px; padding: 0 .5rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); color: var(--ed-text); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.ed-grade-pagina:hover:not(:disabled) { border-color: var(--ed-primary-500); color: var(--ed-primary-600); }
.ed-grade-pagina.ativa { background: var(--ed-primary-600); border-color: var(--ed-primary-600); color: #fff; }
.ed-grade-pagina:disabled:not(.ativa) { opacity: .45; }
.ed-grade-totais { margin: 0; font-size: .8125rem; }
.ed-grade-colunas { position: relative; }
.ed-colpainel { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; width: min(24rem, calc(100vw - 32px)); max-height: min(70vh, 34rem); overflow: auto; padding: 1rem; background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-lg); }
.ed-colpainel-cabeca { display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start; }
.ed-colpainel-dica { font-size: .8125rem; color: var(--ed-text-muted); margin: 0 0 .35rem; }
.ed-colpainel-conta { font-size: .8125rem; font-weight: 700; margin: 0; }
.ed-limite { color: var(--ed-warning-700); }
.ed-colpainel-lista { list-style: none; margin: .75rem 0; padding: 0; }
.ed-colpainel-item { display: flex; align-items: center; gap: .4rem; padding: .25rem .35rem; border-radius: var(--ed-radius-sm); border: 1px solid transparent; }
.ed-colpainel-item:hover { background: var(--ed-surface-sunken); }
.ed-colpainel-item .form-check { flex: 1; min-width: 0; margin: 0; }
.ed-colpainel-item.fixa { color: var(--ed-text-muted); }
.ed-colpainel-item.arrastando { opacity: .5; }
.ed-colpainel-item.antes { border-top-color: var(--ed-primary-500); }
.ed-colpainel-item.depois { border-bottom-color: var(--ed-primary-500); }
.ed-colpainel-alca { color: var(--ed-text-muted); cursor: grab; width: 1.25rem; text-align: center; }
.ed-colpainel-mover { display: flex; gap: .2rem; }
.ed-colpainel-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--ed-border-suave); padding-top: .5rem; margin-bottom: .5rem; }
.ed-colpainel-situacao { font-size: .8125rem; color: var(--ed-text-muted); }
.ed-avisos { position: fixed; right: 16px; bottom: 16px; z-index: 1080; display: flex; flex-direction: column; gap: .5rem; max-width: min(24rem, calc(100vw - 32px)); }
.ed-aviso-flutuante { padding: .7rem 1rem; border-radius: var(--ed-radius-md); background: var(--ed-ink-900); color: var(--ed-sobre-ink); box-shadow: var(--ed-shadow-lg); font-size: .875rem; border-left: 3px solid var(--ed-primary-400); transition: opacity var(--ed-dur) var(--ed-ease), transform var(--ed-dur) var(--ed-ease); }
.ed-aviso-flutuante.tom-warning { border-left-color: var(--ed-accent-500); }
.ed-aviso-flutuante.saindo { opacity: 0; transform: translateY(6px); }
@media (max-width: 767.98px) {
  .ed-filtros { padding: .85rem 1rem; }
  .ed-filtros-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .6rem; }
  .ed-filtros-campos .form-label { font-size: .75rem; margin-bottom: .2rem; }
  .ed-filtros-marcar { grid-column: 1 / -1; min-height: 0; }
  .ed-av-linha { grid-template-columns: 2rem minmax(0, 1fr) 2rem; }
  .ed-av-cond, .ed-av-valor { grid-column: 2 / 3; }
  .ed-grade-busca { flex-basis: 100%; max-width: none; }
  .ed-grade-ferramentas { width: 100%; }
  .ed-grade-colunas { position: static; }
  .ed-colpainel { position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 75vh; border-radius: var(--ed-radius-lg) var(--ed-radius-lg) 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-grade-tabela tbody tr, .ed-aviso-flutuante { transition: none; }
}

.ed-cartoes-extras { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; align-items: start; }
.ed-fila-saude { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .875rem; color: var(--ed-text-muted); margin: 0 0 1rem; }

/* Integrações do órgão (04 §2.4.5): subbloco separado por borda, não por sombra */
.ed-subbloco { border: 0; border-top: 1px solid var(--ed-border); margin: 1.25rem 0 0; padding: 1rem 0 0; min-width: 0; }
.ed-subbloco > legend { float: none; width: auto; margin: 0 0 .75rem; font-size: 1rem; font-weight: 800; letter-spacing: -0.01em; }
.ed-teste-linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--ed-border-suave); }
.ed-teste-linha .ed-teste-destino { flex: 1 1 16rem; min-width: 0; }
/* Entrada única do admin: escolha do órgão (separação por borda, não por sombra; foco visível) */
.ed-escolha-orgao { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: .5rem; }
.ed-escolha-orgao a { display: flex; align-items: center; gap: .75rem; min-height: 44px; padding: .75rem 1rem; border: 1px solid var(--ed-border-strong); border-radius: var(--ed-radius-md);
  background: var(--ed-surface); color: var(--ed-text); text-decoration: none; transition: border-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-escolha-orgao a:hover, .ed-escolha-orgao a:focus-visible { border-color: var(--ed-primary-500); box-shadow: var(--ed-shadow-sm); }
.ed-escolha-orgao .bi-chevron-right { color: var(--ed-text-muted); }
.ed-escolha-texto { flex: 1; min-width: 0; }
.ed-escolha-texto strong, .ed-escolha-texto small { display: block; overflow-wrap: anywhere; }
.ed-escolha-texto small { color: var(--ed-text-muted); font-size: .8125rem; }
@media (prefers-reduced-motion: reduce) { .ed-escolha-orgao a { transition: none; } }

/* Zona de envio (DESIGN.md §7): borda tracejada; no arraste, primária sólida e fundo 50 */
.ed-drop { display: grid; gap: .5rem; padding: 1rem; border: 2px dashed var(--ed-border-strong); border-radius: var(--ed-radius-lg); background: var(--ed-surface);
  transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-drop.arrastando { border-style: solid; border-color: var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-drop-icone { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--ed-radius-md); background: var(--ed-surface); box-shadow: var(--ed-shadow-sm); color: var(--ed-primary-600); }
.ed-drop-aviso { margin: 0; color: var(--ed-danger-700); font-size: .875rem; font-weight: 700; }
.ed-arquivos { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ed-arquivos:empty { display: none; }
.ed-arquivo { display: flex; align-items: center; gap: .75rem; padding: .5rem .75rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); }
.ed-arquivo-ext { flex: none; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--ed-radius-sm); background: var(--ed-primary-50); color: var(--ed-primary-700); font-size: .6875rem; font-weight: 800; letter-spacing: .04em; }
.ed-arquivo-texto { flex: 1; min-width: 0; }
.ed-arquivo-nome { display: block; font-weight: 700; overflow-wrap: anywhere; }
.ed-arquivo-meta { display: block; font-size: .8125rem; color: var(--ed-text-muted); font-variant-numeric: tabular-nums; }
.ed-progresso { display: block; height: 4px; margin-top: .35rem; border-radius: 4px; background: var(--ed-neutral-50); overflow: hidden; }
.ed-progresso > span { display: block; height: 100%; width: 0; background: var(--ed-primary-500); transition: width var(--ed-dur) var(--ed-ease); }
.ed-arquivo.pronto .ed-progresso > span { background: var(--ed-success-500); }
.ed-arquivo.falhou { border-color: rgba(200, 53, 42, .3); background: var(--ed-danger-50); }
.ed-arquivo.falhou .ed-arquivo-meta { color: var(--ed-danger-700); }
.ed-arquivo.falhou .ed-progresso > span { background: var(--ed-danger-500); }
@media (prefers-reduced-motion: reduce) { .ed-drop, .ed-progresso > span { transition: none; } }

/* Preenchimento pelo CNPJ/CEP: o aviso fica embaixo do campo; o campo preenchido por nós ganha um
   fundo primary-50 até a pessoa mexer nele (é sinal de "confira", não de erro). */
.ed-consulta { margin-top: .35rem; font-size: .8125rem; }
.ed-consulta p { margin: 0; display: flex; gap: .35rem; align-items: baseline; }
.ed-consulta p + p { margin-top: .25rem; }
.ed-consulta .tom-neutral { color: var(--ed-text-muted); }
.ed-consulta .tom-success { color: var(--ed-success-700); }
.ed-consulta .tom-warning { color: var(--ed-warning-700); }
.ed-consulta a { color: inherit; font-weight: 700; }
.form-control.ed-preenchido { background-color: var(--ed-primary-50); transition: background-color var(--ed-dur) var(--ed-ease); }
.ed-girando { display: inline-block; animation: ed-girar .9s linear infinite; }
@keyframes ed-girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ed-girando { animation: none; } .form-control.ed-preenchido { transition: none; } }

/* QR do pareamento do WhatsApp: pixels nítidos (é lido por câmera, não por gente) */
.ed-zap-qr { width: 240px; max-width: 100%; height: auto; aspect-ratio: 1; image-rendering: pixelated; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); margin: .5rem auto 1rem; display: block; }
.ed-relatorios { list-style: none; margin: 0; padding: 0; }
.ed-relatorios-item { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: .75rem 1.25rem; padding: .9rem 1.25rem; border-top: 1px solid var(--ed-border-suave); }
.ed-relatorios-item:first-child { border-top: 0; }
.ed-relatorios-item > .ed-acoes { gap: .35rem; }
.ed-relatorios-item > .ed-acoes form { display: inline; margin: 0; }
.ed-relatorios-texto { flex: 1 1 22rem; min-width: 0; }
.ed-relatorios-nome { margin: 0 0 .2rem; font-weight: 800; overflow-wrap: anywhere; }
.ed-relatorios-nome .bi { color: var(--ed-primary-600); }
.ed-relatorios-dica { margin: 0; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-relatorios-def { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .1rem .6rem; margin: 0; font-size: .8125rem; }
.ed-relatorios-def dt { font-weight: 700; color: var(--ed-text-muted); }
.ed-relatorios-def dd { margin: 0; overflow-wrap: anywhere; }
.ed-relatorios-sub { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-text-muted); margin: 0; padding: .75rem 1.25rem .25rem; border-top: 1px solid var(--ed-border-suave); }
/* Imprimir / PDF das grades (04 §6.4) */
@page ed-lista { size: A4 portrait; margin: 1cm 1cm 1.2cm; @bottom-right { content: "Página " counter(page) " de " counter(pages); font: 7pt Arial, sans-serif; } }
@page ed-lista-paisagem { size: A4 landscape; margin: 1cm 1cm 1.2cm; @bottom-right { content: "Página " counter(page) " de " counter(pages); font: 7pt Arial, sans-serif; } }
.ed-impressao-lista { page: ed-lista; background: #fff; color: #000; font: 8pt/1.3 Arial, Helvetica, sans-serif; padding: 1rem; }
.ed-impressao-lista.paisagem { page: ed-lista-paisagem; }
.ed-impressao-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1rem; font: .875rem var(--ed-fonte); }
.ed-impressao-cabeca { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1.5px solid #000; padding-bottom: .3cm; margin-bottom: .25cm; }
.ed-impressao-orgao { font-weight: 700; font-size: 10pt; margin: 0; }
.ed-impressao-linha { margin: 0; }
.ed-impressao-titulo { text-align: right; }
.ed-impressao-titulo h1 { font-size: 11pt; font-weight: 800; margin: 0 0 .1cm; }
.ed-impressao-titulo p { margin: 0; }
.ed-impressao-contagem { margin: .15cm 0; }
.ed-impressao-tabela { width: 100%; border-collapse: collapse; }
.ed-impressao-tabela th, .ed-impressao-tabela td { border: .5pt solid #777; padding: 2pt 3pt; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.ed-impressao-tabela th { background: #eee; font-weight: 700; }
.ed-impressao-tabela .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ed-impressao-tabela .data { text-align: center; white-space: nowrap; }
.ed-impressao-tabela tfoot td { font-weight: 700; border-top: 1.2pt solid #000; }
.ed-impressao-tabela tr { break-inside: avoid; }
.ed-impressao-tabela thead { display: table-header-group; }
.ed-impressao-tabela .vazio { text-align: center; padding: 8pt; }
.ed-impressao-fim { font-weight: 700; }

@media print {
  .ed-comprovante-pagina { background: none; }
  .ed-comprovante { margin: 0; padding: 0; max-width: none; }
  .ed-comprovante .ed-card { box-shadow: none; border: 0; }
  .ed-sidebar, .btn, .ed-nao-imprime, .ed-faixa-super, .ed-abas-ficha { display: none !important; }
  .ed-admin { display: block; }
  .ed-badge { background: none !important; color: #000 !important; border-color: #000 !important; }
  .ed-impressao-lista { padding: 0; }
  @page { margin: 1.6cm; }
}

/* ------------------------------------------------------------------ documentos oficiais (migração 004)
   A folha segue o padrão ofício do Manual de Redação da Presidência: A4, margens 2 / 1,5 / 2 / 3 cm,
   corpo 12 pt, recuo de 2,5 cm na primeira linha, vocativo e fecho sem recuo. Cores neutras: o papel é
   do órgão, não do produto. Na tela a folha fica sobre o canvas, com sombra de elevação. */
.ed-doc-pagina { background: var(--ed-canvas); }
.ed-doc-pagina main { padding: 0 16px; }
.ed-doc-acoes { max-width: 21cm; margin: 24px auto 12px; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.ed-doc-folha { position: relative; overflow: hidden; max-width: 21cm; margin: 0 auto 48px; background: #fff; color: #111; padding: 2cm 1.5cm 2cm 3cm; border: 1px solid var(--ed-border);
  box-shadow: var(--ed-shadow-lg); font: 12pt/1.5 Calibri, Carlito, "Segoe UI", Arial, sans-serif; }
.ed-doc-tela .ed-doc-folha { margin: 0; padding: 1.5cm 1.2cm 1.5cm 2cm; }
.ed-doc-timbre { display: flex; gap: 1rem; align-items: center; padding-bottom: .5rem; border-bottom: 1.5pt solid #333; }
.ed-doc-timbre img { max-height: 64px; width: auto; }
.ed-doc-timbre p { margin: 0; font-size: 9.5pt; color: #444; }
.ed-doc-timbre .ed-doc-orgao { font-size: 13pt; font-weight: 700; color: #111; }
.ed-doc-cabeca { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 2rem; margin: 1.2rem 0 1rem; }
.ed-doc-rotulo { margin: 0; font-weight: 700; }
.ed-doc-local { margin: 0; flex: 1; text-align: right; }
.ed-doc-destinatario { margin-bottom: 1rem; }
.ed-doc-destinatario p, .ed-doc-assunto { margin: 0; }
.ed-doc-corpo { margin-top: 1.2rem; }
.ed-doc-corpo p { margin: 0 0 .8em; text-indent: 2.5cm; text-align: justify; hyphens: auto; }
.ed-doc-corpo p.ed-doc-sem-recuo { text-indent: 0; }
.ed-doc-corpo p.ed-doc-titulo { text-indent: 0; font-weight: 700; margin-top: 1em; }
.ed-doc-assinatura { max-width: 9cm; margin: 2.5rem auto 0; text-align: center; break-inside: avoid; }
.ed-doc-assinatura p { margin: 0; }
.ed-doc-linha { display: block; border-top: 1px solid #333; margin-bottom: .3rem; }
/* Mapas (Leaflet + OpenStreetMap): borda fina e raio do sistema; a altura diz o uso. */
.ed-mapa { height: 320px; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); overflow: hidden; background: var(--ed-neutral-50); z-index: 0; }
.ed-mapa-pequeno { height: 200px; margin-top: .5rem; }
.ed-mapa-grande { height: 68vh; min-height: 420px; }
.ed-filtros-linha { display: flex; flex-wrap: wrap; gap: .5rem .75rem; align-items: center; }
@media (max-width: 575.98px) { .ed-mapa { height: 260px; } }
/* Roteiro do serviço (etapas numeradas): na ficha, a etapa atual leva o acento (posição atual) e as
   feitas, o verde (confirmado). O número vem do contador, tabular. */
.ed-roteiro { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; counter-reset: etapa; }
.ed-roteiro > li { counter-increment: etapa; display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem; align-items: start; }
.ed-roteiro > li::before { content: counter(etapa); display: grid; place-items: center; width: 2rem; height: 2rem; margin-top: .45rem; border-radius: 50%;
  background: var(--ed-primary-50); color: var(--ed-primary-700); font-weight: 800; font-variant-numeric: tabular-nums; }
.ed-roteiro > li.ed-roteiro-atual::before { background: var(--ed-accent-500); color: #1A1204; }
.ed-roteiro > li.ed-roteiro-feita::before { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-roteiro-curto > li { gap: .5rem; }
.ed-roteiro-curto > li > div { padding-top: .5rem; font-size: .875rem; }
/* Assinatura eletrônica (Lei 14.063/2020): caixa de borda fina sob o nome, uma linha por quem assinou. */
.ed-doc-assinaturas { margin-top: 1.4rem; padding: .45rem .7rem; border: .5pt solid #999; border-radius: 4px; font-size: 8.5pt; color: #333; break-inside: avoid; }
.ed-doc-assinaturas p { margin: 0; display: flex; gap: .4rem; align-items: baseline; text-indent: 0; text-align: left; }
.ed-doc-assinaturas p + p { margin-top: .3rem; }
.ed-doc-rodape { display: flex; gap: .8rem; align-items: center; margin-top: 2rem; padding-top: .6rem; border-top: .5pt solid #999; font-size: 8.5pt; color: #444; break-inside: avoid; }
.ed-doc-rodape p { margin: 0; overflow-wrap: anywhere; }
.ed-doc-rodape [data-qr] { flex: none; width: 2.3cm; }
.ed-doc-rodape [data-qr] canvas, .ed-doc-rodape [data-qr] img, .ed-doc-rodape [data-qr] svg { width: 100% !important; height: auto !important; }
.ed-doc-carimbo { position: absolute; top: 38%; left: -10%; right: -10%; margin: 0; text-align: center; font: 800 64pt/1 var(--ed-fonte); letter-spacing: .12em;
  color: rgba(200, 53, 42, .13); transform: rotate(-24deg); pointer-events: none; }
.ed-doc-minuta .ed-doc-carimbo { color: rgba(85, 103, 126, .15); }
.ed-doc-cancelado .ed-doc-rodape { color: var(--ed-danger-700); }
@media (max-width: 767.98px) {
  .ed-doc-folha, .ed-doc-tela .ed-doc-folha { padding: 1.25rem 1rem; font-size: 11pt; }
  .ed-doc-corpo p { text-indent: 1.5rem; text-align: left; }
  .ed-doc-carimbo { font-size: 40pt; }
}
.ed-doc-editor { min-height: 22rem; font: 1rem/1.6 var(--ed-fonte); }
.ed-doc-ia .ed-card-topo h2 .bi { color: var(--ed-accent-600); }

/* Corpo com formatação (TextoRico, 07/10/2026) — vale na tela, na impressão, no PDF assinado e no editor. Manual de
   Redação: título centrado em maiúsculas, citação longa com recuo de 4 cm e letra menor, alíneas a), b), c). */
.ed-doc-corpo h2 { margin: 1.1em 0 .8em; font-size: 1em; font-weight: 700; text-align: center; text-transform: uppercase; letter-spacing: .02em; text-indent: 0; }
.ed-doc-corpo h3 { margin: 1em 0 .6em; font-size: 1em; font-weight: 700; text-indent: 0; }
.ed-doc-corpo blockquote { margin: 0 0 .8em 4cm; font-size: .92em; }
.ed-doc-corpo blockquote p { text-indent: 0; }
.ed-doc-corpo ul, .ed-doc-corpo ol { margin: 0 0 .8em; padding-left: 1.6cm; text-align: justify; }
.ed-doc-corpo li { margin: 0 0 .25em; padding-left: .15cm; }
.ed-doc-corpo li > ul, .ed-doc-corpo li > ol { margin: .25em 0 0; padding-left: 1cm; }
.ed-doc-corpo ol.letras > li::marker { content: counter(list-item, lower-alpha) ") "; }
.ed-doc-corpo table { width: 100%; margin: 0 0 .8em; border-collapse: collapse; font-size: .92em; }
.ed-doc-corpo td, .ed-doc-corpo th { padding: .25em .45em; border: .5pt solid #555; vertical-align: top; text-align: left; }
.ed-doc-corpo th { background: #EEF0F3; font-weight: 700; }
.ed-doc-corpo tr { break-inside: avoid; }
.ed-doc-corpo .sem-recuo { text-indent: 0; }
.ed-doc-corpo .a-esq { text-align: left; }
.ed-doc-corpo .a-centro { text-align: center; text-indent: 0; }
.ed-doc-corpo .a-dir { text-align: right; text-indent: 0; }
.ed-doc-corpo .a-just { text-align: justify; }

/* Editor na própria folha (views/partial/editor_documento.php, assets/js/editor.js). A folha tem o A4 de verdade
   (21 cm, margens da impressão) e encolhe por zoom quando a coluna é estreita: a linha quebra onde vai quebrar no
   papel. Barra fixa no alto do cartão; botão só de ícone é quadrado e tem title (DESIGN); pressionado = primary-50. */
.ed-ed-topo { position: sticky; top: 0; z-index: 5; }
.ed-ed-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .25rem; padding: .45rem .75rem; background: var(--ed-surface); border-bottom: 1px solid var(--ed-border-suave); }
.ed-ed-grupo { display: flex; align-items: center; gap: .15rem; padding-right: .35rem; margin-right: .1rem; border-right: 1px solid var(--ed-border-suave); }
.ed-ed-grupo:last-child, .ed-ed-grupo.ed-ed-fim { border-right: 0; }
.ed-ed-fim { margin-left: auto; }
.ed-ed-btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-width: 34px; height: 34px; padding: 0 .45rem; border: 1px solid transparent;
  border-radius: var(--ed-radius-md); background: none; color: var(--ed-text); font-size: .875rem; font-weight: 600; line-height: 1;
  transition: background var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease); }
.ed-ed-btn .bi { font-size: 1.05rem; }
.ed-ed-btn .bi-chevron-down { font-size: .7rem; color: var(--ed-text-muted); }
.ed-ed-btn:hover:not(:disabled) { background: var(--ed-surface-sunken); border-color: var(--ed-border-suave); }
.ed-ed-btn[aria-pressed="true"], .ed-ed-btn[aria-expanded="true"] { background: var(--ed-primary-50); border-color: var(--ed-primary-100); color: var(--ed-primary-700); }
.ed-ed-btn:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 1px; }
.ed-ed-btn:disabled { opacity: .38; }
.ed-ed-btn-texto { font-family: Calibri, Carlito, "Segoe UI", Arial, sans-serif; font-size: .9375rem; font-weight: 700; }
.ed-ed-perigo { color: var(--ed-danger-700); }
.ed-ed-estilo { width: 13.5rem; min-height: 34px; font-size: .875rem; }
.ed-ed-menu { position: relative; }
.ed-ed-pop { position: absolute; top: calc(100% + 6px); left: 0; z-index: 20; min-width: 19rem; padding: .35rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave);
  border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-lg); }
.ed-ed-pop-titulo { margin: .2rem .35rem .45rem; font-size: .8125rem; font-weight: 700; color: var(--ed-text-muted); font-variant-numeric: tabular-nums; }
.ed-ed-item { display: flex; align-items: flex-start; gap: .65rem; width: 100%; padding: .5rem .6rem; border: 0; border-radius: var(--ed-radius-md); background: none; color: var(--ed-text); text-align: left; font-size: .875rem; }
.ed-ed-item .bi { flex: none; margin-top: .1rem; color: var(--ed-primary-600); font-size: 1rem; }
.ed-ed-item small { display: block; color: var(--ed-text-muted); font-size: .75rem; line-height: 1.35; }
.ed-ed-item:hover, .ed-ed-item:focus-visible { background: var(--ed-primary-50); outline: none; }
.ed-ed-item-destaque { margin-bottom: .25rem; border-bottom: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-md) var(--ed-radius-md) 0 0; }
.ed-ed-item-destaque .bi { color: var(--ed-accent-600); }
.ed-ed-grade { min-width: 0; }
.ed-ed-grade-celulas { display: grid; grid-template-columns: repeat(6, 22px); gap: 3px; padding: 0 .35rem .35rem; }
.ed-ed-grade-celula { width: 22px; height: 22px; padding: 0; border: 1px solid var(--ed-border-strong); border-radius: 3px; background: var(--ed-surface); }
.ed-ed-grade-celula.is-acesa { background: var(--ed-primary-100); border-color: var(--ed-primary-500); }
.ed-ed-grade-celula:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 1px; }
.ed-ed-barra-tabela { background: var(--ed-surface-sunken); font-size: .8125rem; }
.ed-ed-barra[hidden] { display: none; }
.ed-ed-barra-rotulo { display: inline-flex; align-items: center; gap: .35rem; margin-right: .35rem; font-weight: 700; color: var(--ed-text-muted); }
.ed-ed-barra-tabela .ed-ed-btn { height: 30px; font-size: .8125rem; }
.ed-ed-comecar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 0; padding: .6rem 1rem; background: var(--ed-accent-50); border-bottom: 1px solid var(--ed-border-suave); font-size: .875rem; }
.ed-ed-comecar > .bi { color: var(--ed-accent-700); }
.ed-ed-comecar[hidden] { display: none; }
.ed-ed-mesa { padding: 24px 16px 32px; background: var(--ed-canvas); overflow: hidden; }
.ed-ed-escala { width: 21cm; margin: 0 auto; }
.ed-ed-folha.ed-doc-folha { width: 21cm; max-width: none; min-height: 29.7cm; margin: 0; border-color: var(--ed-border-suave); box-shadow: var(--ed-shadow-md); transition: box-shadow var(--ed-dur) var(--ed-ease); }
.ed-ed-folha:focus-within { box-shadow: 0 0 0 3px var(--ed-primary-100), var(--ed-shadow-md); }
.ed-ed-area { position: relative; min-height: 9cm; outline: none; caret-color: var(--ed-primary-600); }
.ed-editor.is-ligado .ed-ed-area { cursor: text; }
.ed-editor.is-vazio .ed-ed-area::before { content: attr(data-placeholder); position: absolute; top: 0; left: 0; right: 0; color: #7F8C88; text-indent: 0; pointer-events: none; }
.ed-ed-area ::selection { background: #CFE3F7; }
::highlight(ed-completar) { background-color: #FBD98A; color: #2B1B00; }
[data-ed-campo].is-vazio { color: #7F8C88; font-style: italic; font-weight: 400; }
.ed-ed-quebra { position: absolute; left: 0; right: 0; height: 0; border-top: 1px dashed #A9B4C2; pointer-events: none; }
.ed-ed-quebra::after { content: attr(data-pagina); position: absolute; right: .4cm; top: -.65rem; padding: .05rem .5rem; border: 1px solid #C9D1DB; border-radius: var(--ed-radius-pill);
  background: #fff; color: #5B6676; font: 600 .6875rem/1.4 var(--ed-fonte); letter-spacing: .04em; text-transform: uppercase; }
.ed-ed-pe { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; padding: .6rem 1rem; border-top: 1px solid var(--ed-border-suave); font-size: .8125rem; color: var(--ed-text-muted); font-variant-numeric: tabular-nums; }
.ed-ed-estado:empty { display: none; }
.ed-ed-estado.is-sujo { display: inline-flex; align-items: center; gap: .4rem; color: var(--ed-accent-700); font-weight: 600; }
.ed-ed-estado.is-sujo::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ed-accent-500); }
.ed-ed-atalhos { margin-left: auto; }
.ed-ed-atalhos summary { cursor: pointer; list-style: none; }
.ed-ed-atalhos summary::-webkit-details-marker { display: none; }
.ed-ed-atalhos[open] summary { color: var(--ed-text); }
.ed-ed-atalhos dl { display: grid; grid-template-columns: max-content 1fr; gap: .2rem .9rem; margin: .5rem 0 0; }
.ed-ed-atalhos dt { font-weight: 700; color: var(--ed-text); }
.ed-ed-atalhos dd { margin: 0; }
.ed-ed-depois .ed-alerta { margin-bottom: .75rem; }
.ed-ed-depois .ed-alerta[hidden] { display: none; }
/* Celular (coluna < 520 px): texto corrido, sem zoom nem marca de página. */
.ed-editor.is-fluido .ed-ed-escala, .ed-editor.is-fluido .ed-ed-folha.ed-doc-folha { width: auto; }
.ed-editor.is-fluido .ed-ed-folha.ed-doc-folha { min-height: 0; padding: 1.25rem 1rem; font-size: 11pt; }
.ed-editor.is-fluido .ed-ed-mesa { padding: 12px 8px 16px; }
.ed-editor.is-fluido .ed-doc-corpo blockquote { margin-left: 1.25rem; }
/* Tela cheia: só a folha e a barra. */
html.ed-ed-sem-rolagem { overflow: hidden; }
.ed-editor.is-foco { position: fixed; inset: 0; z-index: 1060; margin: 0; overflow: auto; border: 0; border-radius: 0; background: var(--ed-canvas); }
.ed-editor.is-foco > .ed-card-topo { display: none; }
.ed-editor.is-foco .ed-ed-topo { box-shadow: var(--ed-shadow-sm); }
.ed-editor.is-foco .ed-ed-mesa { min-height: calc(100vh - 110px); padding-top: 32px; }
@media (max-width: 767.98px) {
  .ed-ed-estilo { width: 11rem; }
  .ed-ed-barra { padding: .4rem .5rem; }
  .ed-ed-pop { position: fixed; top: auto; bottom: 12px; left: 12px; right: 12px; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .ed-ed-btn, .ed-ed-folha { transition: none; } }
@page ed-doc { size: A4 portrait; margin: 2cm 1.5cm 2cm 3cm; }
@media print {
  .ed-doc-pagina { background: none; }
  .ed-doc-pagina main { padding: 0; }
  .ed-doc-folha, .ed-doc-tela .ed-doc-folha { page: ed-doc; max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; font-size: 12pt; }
  .ed-doc-corpo p { text-indent: 2.5cm; text-align: justify; }
}

/* ------------------------------------------------------------------ assinatura digital (migração 012, 05/10/2026)
   Painel "Assinaturas" do documento: quem assinou (jade = concluído), quem falta (neutro) e quem recusou
   (tijolo); formas de assinar em <details>. Páginas de log (modelo Clicksign) na verificação pública e no
   PDF: marca do produto, documento com SHA-256, assinaturas com CPF e forma de confirmação, eventos em
   tabela de duas colunas e o pé com QR, fundamento legal e o selo digital (borda jade quando aplicado). */
.ed-assinar-faltam { list-style: none; margin: 0; padding: 0 1.25rem .5rem; }
.ed-assinar-faltam li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .6rem; align-items: start; padding: .55rem 0; border-bottom: 1px solid var(--ed-border-suave); font-size: .875rem; }
.ed-assinar-faltam li:last-child { border-bottom: 0; }
.ed-assinar-faltam .bi { color: var(--ed-neutral-500); margin-top: .15rem; }
.ed-assinar-faltam small { display: block; color: var(--ed-text-muted); font-size: .75rem; }
.ed-assinar-ok { display: flex; gap: .5rem; align-items: center; margin: 0 0 .75rem; color: var(--ed-success-700); font-weight: 700; font-size: .875rem; }
.ed-assinar-forma { border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-md); padding: .65rem .8rem; margin-top: .6rem; }
.ed-assinar-forma[open] { border-color: var(--ed-primary-100); }
.ed-assinar-forma summary { font-weight: 700; font-size: .9375rem; cursor: pointer; }
.ed-assinar-forma summary small { font-weight: 500; color: var(--ed-text-muted); }
.ed-assinar-forma > form, .ed-assinar-forma > p, .ed-assinar-forma > ol { margin-top: .65rem; }
.ed-assinar-linha { display: flex; flex-wrap: wrap; gap: .5rem; }
.ed-assinar-linha .form-select { flex: 1 1 12rem; width: auto; }
.ed-assinar-passos { padding-left: 1.2rem; font-size: .875rem; }
.ed-totp-qr { width: 184px; margin: .5rem 0 .75rem; padding: .5rem; background: #fff; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); }
.ed-totp-qr svg { width: 100% !important; height: auto !important; display: block; }

/* ---------------------------------------------------------------- início do portal do órgão no modelo do original (05/10/2026)
   O mesmo desenho da home do sistema original (o que serviu de modelo): cromo único (barra + hero, o fio do acento no pé), as duas
   luzes, a marca do órgão em marca-d'água, o cartão de vidro com campos translúcidos, a faixa das pessoas,
   "Como funciona" com 01–04, o fecho escuro em duas colunas e botões em pílula. */
.ed-portal .btn { border-radius: var(--ed-radius-pill); }
.ed-marca-eyebrow { color: var(--ed-accent-500); }
.ed-portal-nav a.ed-nav-destaque { margin-left: .25rem; background: var(--ed-primary-500); color: #FFFFFF; }
.ed-portal-nav a.ed-nav-destaque:hover, .ed-portal-nav a.ed-nav-destaque[aria-current="page"] { background: var(--ed-primary-600); color: #FFFFFF; }
/* Cromo único (barra + hero emendados): a home e as páginas que abrem com hero no cromo (carta de serviços). */
.ed-portal-cromo .ed-portal-topo { background: var(--ed-ink-850); border-bottom: 0; }
.ed-portal-cromo .ed-portal-topo::after { display: none; }
.ed-hero-portal { background:
    radial-gradient(90% 120% at 78% -10%, color-mix(in srgb, var(--ed-primary-500) 55%, transparent) 0%, transparent 60%),
    radial-gradient(70% 90% at 8% 110%, color-mix(in srgb, var(--ed-accent-500) 14%, transparent) 0%, transparent 62%),
    linear-gradient(180deg, var(--ed-ink-850), var(--ed-ink-900)); }
.ed-hero-portal::before { display: none; }
.ed-hero-portal::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; opacity: .55;
  background: linear-gradient(90deg, transparent, var(--ed-accent-500) 22%, var(--ed-accent-500) 78%, transparent); }
.ed-hero-marca-agua { position: absolute; right: -60px; top: 50%; transform: translateY(-50%); width: 420px; height: 420px; object-fit: contain; opacity: .05; pointer-events: none; }
.ed-hero-portal h1 { font-size: clamp(2.2rem, 1.4rem + 3vw, 3.5rem); letter-spacing: -0.035em; max-width: 15ch; margin: .5rem 0 .9rem; }
.ed-hero-portal .ed-hero-apoio { max-width: 52ch; line-height: 1.65; }
.ed-hero-portal .ed-hero-botoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.ed-hero-portal .ed-vidro { padding: 1.6rem; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .6); }
.ed-hero-portal .ed-vidro .ed-eyebrow { color: var(--ed-accent-500); }
.ed-hero-portal .ed-vidro h2 { font-size: 1.125rem; margin: 0 0 .25rem; }
.ed-hero-portal .ed-vidro > p:not(.ed-eyebrow) { color: var(--ed-sobre-ink-suave); font-size: .9375rem; margin: 0 0 1.1rem; }
.ed-hero-portal .ed-vidro .form-control { background: rgba(255, 255, 255, .09); border-color: rgba(255, 255, 255, .2); color: #FFFFFF; box-shadow: none; }
.ed-hero-portal .ed-vidro .form-control::placeholder { color: rgba(255, 255, 255, .42); }
.ed-hero-portal .ed-vidro .form-control:hover { border-color: rgba(255, 255, 255, .36); }
.ed-hero-portal .ed-vidro .form-control:focus { border-color: var(--ed-accent-500); background: rgba(255, 255, 255, .13);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ed-accent-500) 22%, transparent); }
.ed-hero-portal .ed-vidro .form-text { color: var(--ed-sobre-ink-fraco); margin-top: .35rem; }
@media (min-width: 900px) { .ed-hero-portal .ed-hero-in { padding: 76px 16px 88px; gap: 3.5rem; } }
@media (max-width: 899.98px) { .ed-hero-marca-agua { display: none; } }

.ed-portal-corpo { max-width: var(--ed-largura); margin: 0 auto; padding: 0 16px 96px; }
/* O caminho de um pedido, ao vivo (06/10/2026, no lugar da faixa das pessoas): texto à esquerda e um cartão de
   protocolo cujos passos acendem um a um ([data-simulacao] no ed.js), como um rastreio de encomenda. */
.ed-jornada { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: 3.5rem; margin: 72px 0 8px;
  padding: 48px; background: var(--ed-surface); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-xs); }
.ed-jornada h2 { margin: .35rem 0 .8rem; font-size: clamp(1.6rem, 1.2rem + 1.3vw, 2.15rem); letter-spacing: -0.028em; line-height: 1.12; }
.ed-jornada-texto > p:not(.ed-eyebrow) { margin: 0; color: var(--ed-text-muted); font-size: 1.0625rem; line-height: 1.65; max-width: 44ch; }
.ed-jornada-fatos { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
/* "Feito para …" que troca (a mesma engrenagem [data-rotativo] do título do hero): duas linhas reservadas para não pular. */
.ed-jornada-para { margin: 0 0 .25rem; min-height: 3.1em; font-size: 1.0625rem; font-weight: 700; line-height: 1.45; color: var(--ed-text-muted); }
.ed-jornada-quem { display: inline; color: var(--ed-primary-600); font-weight: 800; background: linear-gradient(transparent 62%, color-mix(in srgb, var(--ed-accent-500) 35%, transparent) 62%);
  transition: opacity 260ms var(--ed-ease), transform 260ms var(--ed-ease); }
.ed-jornada-quem.ed-rotativo-sai, .ed-jornada-quem.ed-rotativo-entra { display: inline-block; }
.ed-jornada-fatos li { display: grid; align-content: start; gap: .1rem; padding: .85rem .9rem; border-radius: var(--ed-radius-md); background: var(--ed-canvas); }
.ed-jornada-fatos .bi { color: var(--ed-primary-500); font-size: 1.15rem; margin-bottom: .25rem; }
.ed-jornada-fatos strong { font-size: .9375rem; }
.ed-jornada-fatos span { color: var(--ed-text-muted); font-size: .8125rem; line-height: 1.4; }
.ed-jornada-sim { --sim-progresso: 1; position: relative; isolation: isolate; padding: 1.4rem 1.5rem 1.25rem; border-radius: var(--ed-radius-lg); background: var(--ed-surface);
  border: 1px solid var(--ed-border-suave); box-shadow: 0 30px 60px -30px rgba(8, 18, 31, .3), var(--ed-shadow-md); }
.ed-sim-topo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ed-sim-proto { font-size: .875rem; color: var(--ed-text-muted); }
.ed-sim-proto strong { color: var(--ed-text); font-size: 1.0625rem; font-variant-numeric: tabular-nums; }
.ed-sim-estado { padding: .25rem .7rem; border-radius: var(--ed-radius-pill); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  background: var(--ed-canvas); color: var(--ed-text-muted); transition: background-color 250ms var(--ed-ease), color 250ms var(--ed-ease); }
.ed-sim-estado[data-tom="primary"] { background: var(--ed-primary-50); color: var(--ed-primary-600); }
.ed-sim-estado[data-tom="accent"] { background: var(--ed-accent-50); color: var(--ed-accent-700); }
.ed-sim-estado[data-tom="success"] { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-sim-assunto { margin: .35rem 0 1.1rem; font-weight: 800; font-size: 1.0625rem; letter-spacing: -0.01em; }
.ed-sim-linha { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.ed-sim-linha::before, .ed-sim-linha::after { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 2px; border-radius: 2px; }
.ed-sim-linha::before { background: var(--ed-border); }
.ed-sim-linha::after { background: linear-gradient(180deg, var(--ed-primary-500), var(--ed-success-500)); transform-origin: top center;
  transform: scaleY(var(--sim-progresso)); transition: transform 700ms var(--ed-ease-entrada); }
.ed-sim-linha li { position: relative; z-index: 1; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: .85rem; align-items: center;
  transition: opacity 400ms var(--ed-ease), transform 400ms var(--ed-ease-entrada); }
.ed-sim-linha li > .bi { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--ed-primary-50); color: var(--ed-primary-600);
  box-shadow: 0 0 0 4px var(--ed-surface); transition: background-color 300ms var(--ed-ease), color 300ms var(--ed-ease); }
.ed-sim-linha li[data-sim="4"] > .bi { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-sim-linha strong { display: block; font-size: .9375rem; }
.ed-sim-linha small { display: block; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-sim-linha time { color: var(--ed-text-muted); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.ed-js .ed-jornada-sim .ed-sim-linha li:not(.feito) { opacity: .28; transform: translateX(6px); }
.ed-js .ed-jornada-sim .ed-sim-linha li:not(.feito) > .bi { background: var(--ed-canvas); color: var(--ed-text-muted); }
.ed-js .ed-jornada-sim .ed-sim-linha li.agora > .bi { animation: ed-sim-pulso 1.4s ease-out infinite; }
@keyframes ed-sim-pulso { 0% { box-shadow: 0 0 0 4px var(--ed-surface), 0 0 0 4px color-mix(in srgb, var(--ed-primary-400) 45%, transparent); }
  100% { box-shadow: 0 0 0 4px var(--ed-surface), 0 0 0 14px transparent; } }
.ed-sim-aviso { display: flex; align-items: center; gap: .7rem; margin-top: 1.25rem; padding: .75rem .9rem; border-radius: var(--ed-radius-md);
  background: var(--ed-ink-900); color: var(--ed-sobre-ink-suave); font-size: .8125rem; transition: opacity 400ms var(--ed-ease), transform 400ms var(--ed-ease-entrada); }
.ed-sim-aviso > .bi { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .08); color: var(--ed-accent-500); font-size: 1.05rem; }
.ed-sim-aviso strong { display: block; color: var(--ed-sobre-ink); font-size: .875rem; }
.ed-js .ed-jornada-sim .ed-sim-aviso:not(.feito) { opacity: 0; transform: translateY(8px); }
.ed-sim-aviso + .ed-sim-aviso { margin-top: .5rem; }
.ed-sim-aviso-zap { background: #075E54; color: rgba(255, 255, 255, .85); }
.ed-sim-aviso-zap > .bi { background: #25D366; color: #FFFFFF; }
.ed-sim-aviso-zap strong { color: #FFFFFF; }
.ed-bloco { margin: 96px 0 0; }
.ed-bloco-centro { text-align: center; }
.ed-bloco-centro > h2 { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem); letter-spacing: -0.028em; margin: .25rem 0 .5rem; }
.ed-bloco-legenda { color: var(--ed-text-muted); margin: 0 auto; max-width: 52ch; }
@media (max-width: 575.98px) { .ed-portal-topo .ed-placa-logo + span { display: none; } }

/* Movimento do início do portal (05/10/2026, "deixar como a landing principal: elementos modernos,
   movimentação de texto"). Tudo some com prefers-reduced-motion; sem JS, nada fica escondido. */
.ed-hero-portal { isolation: isolate; }
.ed-hero-luz { position: absolute; inset: -20% -10%; z-index: -1; pointer-events: none;
  background: radial-gradient(38% 46% at 70% 30%, color-mix(in srgb, var(--ed-primary-400) 30%, transparent), transparent 70%),
    radial-gradient(30% 40% at 20% 85%, color-mix(in srgb, var(--ed-accent-500) 12%, transparent), transparent 70%);
  animation: ed-luz-deriva 22s ease-in-out infinite alternate; }
@keyframes ed-luz-deriva { from { transform: translate3d(-3%, -2%, 0) scale(1); } to { transform: translate3d(4%, 3%, 0) scale(1.08); } }
.ed-hero-portal .ed-hero-in { z-index: 1; }
.ed-hero-portal h1 { font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem); max-width: none; }
.ed-rotativo { display: block; white-space: nowrap; color: var(--ed-accent-500); transition: opacity 260ms var(--ed-ease), transform 260ms var(--ed-ease); }
.ed-rotativo-sai { opacity: 0; transform: translateY(-.3em); }
.ed-rotativo-entra { opacity: 0; transform: translateY(.3em); transition: none; }
.ed-hero-selos { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; }
.ed-hero-selos li { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .8rem; border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--ed-radius-pill);
  background: rgba(255, 255, 255, .05); color: var(--ed-sobre-ink-suave); font-size: .8125rem; font-weight: 700; }
.ed-hero-selos .bi { color: var(--ed-accent-500); }
.ed-hero-palco { position: relative; }
.ed-hero-flutua { position: absolute; z-index: 2; display: flex; align-items: center; gap: .6rem; padding: .6rem .9rem .6rem .6rem; border-radius: var(--ed-radius-lg);
  background: var(--ed-surface); color: var(--ed-text); box-shadow: var(--ed-shadow-lg); font-size: .8125rem; line-height: 1.25; pointer-events: none; }
.ed-hero-flutua strong { display: block; font-size: .875rem; }
.ed-hero-flutua small { color: var(--ed-text-muted); }
.ed-hero-flutua > i { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; font-size: 1.05rem; }
.ed-hero-flutua-1 { top: -22px; left: -34px; }
.ed-hero-flutua-1 > i { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-hero-flutua-2 { bottom: -24px; right: -22px; }
.ed-hero-flutua-2 > i { background: #DCF8E6; color: #128C4B; }
.ed-js .ed-hero-flutua-1 { animation: ed-flutua-entra .5s var(--ed-ease-entrada) .9s both, ed-flutuar 7s ease-in-out 1.4s infinite; }
.ed-js .ed-hero-flutua-2 { animation: ed-flutua-entra .5s var(--ed-ease-entrada) 1.5s both, ed-flutuar 8s ease-in-out 2s infinite; }
@keyframes ed-flutua-entra { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
@media (max-width: 899.98px) { .ed-hero-flutua { display: none; } }



.ed-celular { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; text-align: left; }
.ed-celular h2 { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem); letter-spacing: -0.028em; margin: .25rem 0 .75rem; }
.ed-celular-texto > p { color: var(--ed-text-muted); font-size: 1.0625rem; line-height: 1.65; max-width: 46ch; }
.ed-celular-lista { list-style: none; margin: 1.25rem 0 1.5rem; padding: 0; display: grid; gap: .6rem; }
.ed-celular-lista li { display: flex; gap: .6rem; align-items: flex-start; }
.ed-celular-lista .bi { color: var(--ed-success-500); font-size: 1.15rem; line-height: 1.3; }
.ed-celular-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.ed-celular-acoes .form-text { margin: 0; }
.ed-celular-mock { display: flex; justify-content: center; position: relative; }
.ed-celular-mock::before { content: ""; position: absolute; inset: 8% 12%; border-radius: 50%; z-index: -1;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--ed-primary-400) 28%, transparent), transparent); filter: blur(10px); }
.ed-celular-mock .ed-zap { width: min(100%, 340px); border-radius: 30px; }
.ed-celular-mock .ed-zap-avatar img { width: 26px; height: 26px; object-fit: contain; }
.ed-celular-mock.ed-celular-email .ed-zap { --zap-topo: var(--ed-primary-600); --zap-fundo: #EEF4F2; }
.ed-js .ed-celular-mock .ed-zap-msg { opacity: 0; }
.ed-js .ed-celular-mock.revelado .ed-zap-msg { animation: ed-zap-entra .45s var(--ed-ease-entrada) both; }
.ed-js .ed-celular-mock.revelado .ed-zap-msg:nth-child(1) { animation-delay: .35s; }
.ed-js .ed-celular-mock.revelado .ed-zap-msg:nth-child(2) { animation-delay: 1.15s; }
.ed-js .ed-celular-mock.revelado .ed-zap-msg:nth-child(3) { animation-delay: 1.95s; }
@media (max-width: 899.98px) { .ed-celular { grid-template-columns: 1fr; gap: 2rem; } }

.ed-bloco .ed-orgao { transition: transform var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease); }
.ed-bloco .ed-orgao:hover { transform: translateY(-2px); box-shadow: var(--ed-shadow-md); }
.ed-fecho-duas::after { content: ""; position: absolute; width: 420px; height: 420px; right: -120px; top: -160px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--ed-primary-400) 22%, transparent), transparent); animation: ed-luz-deriva 18s ease-in-out infinite alternate; }
.ed-fecho-duas > div { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
  .ed-hero-luz, .ed-fecho-duas::after, .ed-js .ed-hero-flutua-1, .ed-js .ed-hero-flutua-2, .ed-js .ed-celular-mock.revelado .ed-zap-msg { animation: none; }
  .ed-js .ed-celular-mock .ed-zap-msg { opacity: 1; transform: none; transition: none; }
  .ed-js .ed-jornada-sim .ed-sim-linha li.agora > .bi { animation: none; }
  .ed-sim-linha li, .ed-sim-linha::after, .ed-sim-aviso, .ed-sim-estado { transition: none; }
  .ed-rotativo { transition: none; }
  .ed-bloco .ed-orgao:hover { transform: none; }
}
.ed-bloco .ed-grade-cartoes { margin-top: 2rem; text-align: left; }
.ed-fecho-duas { position: relative; overflow: hidden; margin-top: 96px; padding: 72px 64px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 48px;
  align-items: start; background:
    radial-gradient(520px 260px at 12% 0%, color-mix(in srgb, var(--ed-primary-500) 16%, transparent), transparent 62%),
    radial-gradient(420px 220px at 88% 100%, color-mix(in srgb, var(--ed-accent-500) 10%, transparent), transparent 60%),
    var(--ed-ink-900); }
.ed-fecho-duas::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--ed-accent-500); opacity: .85; }
.ed-fecho-duas > div { max-width: none; }
.ed-fecho-duas h3 { color: var(--ed-sobre-ink); font-size: 1.5rem; letter-spacing: -0.02em; margin: .25rem 0 .6rem; }
.ed-fecho-duas p { color: var(--ed-sobre-ink-suave); line-height: 1.65; max-width: 46ch; margin: 0 0 1.25rem; }
.ed-fecho-duas p:last-child { margin-bottom: 0; }
.ed-fecho-duas a:not(.btn) { color: var(--ed-sobre-ink); text-decoration: underline; text-underline-offset: 3px; }
/* Entrar no portal (views/portal/entrar.php, 05/10/2026): cartão dividido — cromo do órgão à esquerda,
   formulário à direita com as duas formas em abas (rádios + :has; sem :has, as duas aparecem). */
.ed-acesso-palco { padding: 48px 16px 72px; background:
  radial-gradient(60% 50% at 85% 0%, color-mix(in srgb, var(--ed-primary-500) 10%, transparent), transparent 70%), var(--ed-canvas); }
.ed-acesso { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-radius: var(--ed-radius-xl);
  overflow: hidden; background: var(--ed-surface); box-shadow: 0 30px 60px -30px rgba(8, 18, 31, .35), var(--ed-shadow-md); }
.ed-acesso-lado { position: relative; overflow: hidden; isolation: isolate; padding: 44px 44px 40px; display: flex; flex-direction: column; gap: 1.1rem; }
.ed-acesso-luz { position: absolute; inset: -30% -20%; z-index: -1; pointer-events: none;
  background: radial-gradient(40% 40% at 80% 10%, color-mix(in srgb, var(--ed-primary-400) 35%, transparent), transparent 70%),
    radial-gradient(35% 35% at 10% 95%, color-mix(in srgb, var(--ed-accent-500) 14%, transparent), transparent 70%);
  animation: ed-luz-deriva 20s ease-in-out infinite alternate; }
.ed-acesso-marca-agua { position: absolute; right: -70px; bottom: -40px; width: 300px; height: 300px; object-fit: contain; opacity: .045; z-index: -1; pointer-events: none; }
.ed-acesso-eyebrow { margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-accent-500); }
.ed-acesso-lado h1 { margin: 0; color: var(--ed-sobre-ink); font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); line-height: 1.1; letter-spacing: -0.03em; max-width: 14ch; }
.ed-acesso-apoio { margin: 0; color: var(--ed-sobre-ink-suave); font-size: 1rem; line-height: 1.6; max-width: 40ch; }
.ed-acesso-lista { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .9rem; }
.ed-acesso-lista li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: .8rem; align-items: center; color: var(--ed-sobre-ink-suave); font-size: .875rem; line-height: 1.4; }
.ed-acesso-lista strong { display: block; color: var(--ed-sobre-ink); font-size: .9375rem; }
.ed-acesso-lista .bi { width: 40px; height: 40px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .12); color: var(--ed-accent-500); font-size: 1.1rem; }
.ed-acesso-consulta { margin: auto 0 0; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1); color: var(--ed-sobre-ink-fraco); font-size: .875rem; }
.ed-acesso-consulta .bi { color: var(--ed-accent-500); margin-right: .25rem; }
.ed-acesso-consulta a { color: var(--ed-sobre-ink); font-weight: 700; }
.ed-acesso-form { padding: 44px 48px 36px; }
.ed-acesso-avisos .ed-alerta { margin: 0 0 1.25rem; }
.ed-acesso-form-solto { padding: 0; width: 100%; }
/* Login dos servidores (layout auth_orgao): as luzes e o brasão do portal no painel escuro, sem repetir o nome. */
.ed-auth-orgao { position: relative; overflow: hidden; isolation: isolate; }
.ed-auth-marca-agua { position: absolute; right: -90px; bottom: -70px; width: 380px; height: 380px; object-fit: contain; opacity: .05; z-index: -1; pointer-events: none; }
.ed-auth-orgao .ed-auth-promessa h2 { max-width: 16ch; }
.ed-auth-orgao .ed-acesso-lista { margin-top: 1.75rem; }
/* Nas telas de login dos servidores o formulário fica sobre o canvas: as abas ganham fundo afundado para contrastar. */
.ed-acesso-form-solto .ed-acesso-modos { background: var(--ed-surface-sunken); border-color: var(--ed-border); }
/* Barra lateral do painel: o nome do órgão mais compacto (inteiro, sem reticências), sem a etiqueta "Protocolo eletrônico". */
.ed-sidebar .ed-marca-orgao { align-items: center; }
.ed-sidebar .ed-marca-orgao .ed-marca-eyebrow { display: none; }
.ed-sidebar .ed-marca-orgao .ed-marca-nome { font-size: .875rem; line-height: 1.25; }
.ed-acesso-form-solto > h1 { margin: .25rem 0 .5rem; }
.ed-acesso-form-solto .ed-alerta.tom-accent { margin-bottom: 1rem; }
.ed-portal-avisos { max-width: var(--ed-largura); margin: 0 auto; padding: 0 16px; }
.ed-portal-avisos:has(.ed-alerta) { padding-top: 20px; }
.ed-portal-avisos .ed-alerta + .ed-alerta { margin-top: .5rem; }
.ed-acesso-form > h2 { margin: .25rem 0 1.25rem; font-size: 1.625rem; letter-spacing: -0.025em; }
.ed-acesso-modos { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin-bottom: 1.5rem; border-radius: var(--ed-radius-pill); background: var(--ed-canvas); border: 1px solid var(--ed-border-suave); }
.ed-acesso-modos label { display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 42px; border-radius: var(--ed-radius-pill); cursor: pointer;
  font-weight: 700; font-size: .875rem; color: var(--ed-text-muted); transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-acesso-modos input:checked + label { background: var(--ed-surface); color: var(--ed-primary-600); box-shadow: var(--ed-shadow-xs); }
.ed-acesso-modos input:focus-visible + label { outline: 2px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-acesso-form:has(#modo-senha:checked) .ed-acesso-link, .ed-acesso-form:has(#modo-link:checked) .ed-acesso-senha { display: none; }
.ed-acesso-form form { animation: ed-faq-abre 220ms var(--ed-ease) both; }
.ed-acesso-link { margin-top: 0; }
@supports not selector(:has(*)) { .ed-acesso-modos { display: none; } .ed-acesso-link { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--ed-border-suave); } }
.ed-acesso-rotulo-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-top: 1.1rem; }
.ed-acesso-rotulo-linha a { font-size: .875rem; font-weight: 600; }
.ed-campo-icone { position: relative; }
.ed-campo-icone > .bi { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); color: var(--ed-text-muted); pointer-events: none; }
.ed-campo-icone > .form-control { padding-left: 2.6rem; }
.ed-acesso-explica { margin: 0 0 1rem; color: var(--ed-text-muted); font-size: .9375rem; line-height: 1.55; }
.ed-acesso-criar { margin: 1.5rem 0 0; text-align: center; color: var(--ed-text-muted); }
.ed-acesso-criar a { font-weight: 800; }
.ed-acesso-servidor { margin: .5rem 0 0; text-align: center; color: var(--ed-text-muted); font-size: .875rem; }
.ed-acesso-servidor .bi { margin-right: .2rem; }
.ed-acesso-servidor a { font-weight: 700; }
.ed-acesso-seguro { margin: 1.5rem 0 0; padding: .75rem .9rem; border-radius: var(--ed-radius-md); background: var(--ed-canvas); color: var(--ed-text-muted); font-size: .8125rem; line-height: 1.5; }
.ed-acesso-seguro .bi { color: var(--ed-success-700); margin-right: .25rem; }
@media (max-width: 899.98px) {
  .ed-acesso { grid-template-columns: 1fr; }
  .ed-acesso-lado { padding: 28px 24px; gap: .8rem; }
  .ed-acesso-lado h1 { margin-top: .5rem; max-width: none; }
  .ed-acesso-lista, .ed-acesso-consulta, .ed-acesso-marca-agua { display: none; }
  .ed-acesso-form { padding: 28px 24px 28px; }
  .ed-acesso-palco { padding: 20px 12px 48px; }
}
@media (prefers-reduced-motion: reduce) { .ed-acesso-luz, .ed-acesso-form form { animation: none; } }

/* Rodapé do portal do órgão (refeito em 05/10/2026, "o rodapé está horrível"): a coluna do órgão larga, contatos
   com o ícone numa coluna fixa (o texto que quebra fica alinhado), links sem repetição, CNPJ e "outros órgãos" na
   faixa de baixo, fio do acento no alto como no cabeçalho. */
.ed-rodape-orgao { position: relative; margin-top: 0; }
.ed-rodape-orgao::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; opacity: .55;
  background: linear-gradient(90deg, transparent, var(--ed-accent-500) 22%, var(--ed-accent-500) 78%, transparent); }
.ed-rodape-orgao-in { max-width: var(--ed-largura); margin: 0 auto; padding: 56px 16px 40px; display: grid; gap: 2.5rem 2rem;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr); font-size: .9375rem; }
.ed-rodape-orgao-id { display: inline-flex; align-items: center; gap: .85rem; color: var(--ed-sobre-ink); text-decoration: none; }
.ed-rodape-orgao-logo { width: 52px; height: 52px; flex: none; display: grid; place-items: center; padding: 5px; border-radius: var(--ed-radius-md);
  background: var(--ed-surface); box-shadow: var(--ed-shadow-xs); }
.ed-rodape-orgao-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ed-rodape-orgao-nome { display: block; font-weight: 800; font-size: 1.0625rem; line-height: 1.2; letter-spacing: -0.01em; }
.ed-rodape-orgao-eyebrow { display: block; margin-top: .2rem; font-size: .6875rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-accent-500); }
.ed-rodape-orgao-marca p { margin: 1.1rem 0 0; max-width: 40ch; color: var(--ed-sobre-ink-suave); font-size: .875rem; line-height: 1.65; }
.ed-rodape-orgao-col h2 { margin: .35rem 0 1rem; font-size: .6875rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-sobre-ink-fraco); }
.ed-rodape-orgao-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.ed-rodape-orgao-col a { color: var(--ed-sobre-ink-suave); text-decoration: none; transition: color var(--ed-dur) var(--ed-ease); }
.ed-rodape-orgao-col a:hover { color: var(--ed-sobre-ink); text-decoration: underline; text-underline-offset: .2em; }
.ed-rodape-orgao-contatos li { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr); align-items: start; color: var(--ed-sobre-ink-suave); }
.ed-rodape-orgao-contatos .bi { color: var(--ed-accent-500); line-height: 1.5; }
.ed-rodape-orgao-contatos a { overflow-wrap: anywhere; }
.ed-rodape-orgao-nota { margin: 1rem 0 0; color: var(--ed-sobre-ink-fraco); font-size: .8125rem; line-height: 1.55; }
.ed-rodape-orgao-base { max-width: var(--ed-largura); margin: 0 auto; padding: 18px 16px 24px; border-top: 1px solid var(--ed-ink-fio);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; font-size: .8125rem; color: var(--ed-sobre-ink-fraco); }
.ed-rodape-orgao-base p { margin: 0; }
.ed-rodape-orgao-sep { margin: 0 .5rem; }
.ed-rodape-orgao-cnpj { white-space: nowrap; }
.ed-rodape-orgao-links { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; }
.ed-rodape-orgao-links a:not(.ed-voltar-topo) { color: var(--ed-sobre-ink-suave); text-decoration: none; }
.ed-rodape-orgao-links a:not(.ed-voltar-topo):hover { color: var(--ed-sobre-ink); text-decoration: underline; }
.ed-rodape-orgao-produto { display: inline-flex; align-items: center; gap: .35rem; }
@media (max-width: 991.98px) { .ed-rodape-orgao-in { grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); } .ed-rodape-orgao-marca { grid-column: 1 / -1; } }
@media (max-width: 575.98px) { .ed-rodape-orgao-in { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .ed-rodape-orgao-in { padding-top: 44px; gap: 2rem 1.25rem; }
  .ed-rodape-orgao-in > .ed-rodape-orgao-col:nth-child(2) { grid-column: 1 / -1; }
  .ed-rodape-orgao-base { flex-direction: column; align-items: flex-start; }
  .ed-rodape-orgao-sep { display: none; }
  .ed-rodape-orgao-cnpj { display: block; margin-top: .2rem; }
}
.ed-voltar-topo { display: inline-flex; align-items: center; gap: .4rem; min-height: 36px; padding: .3rem .85rem; border: 1px solid var(--ed-ink-fio); border-radius: var(--ed-radius-pill);
  color: var(--ed-sobre-ink-suave) !important; text-decoration: none !important; font-size: .8125rem; font-weight: 700; }
.ed-voltar-topo:hover { color: var(--ed-sobre-ink) !important; border-color: var(--ed-sobre-ink-fraco); }
@media (max-width: 767.98px) {
  .ed-jornada { grid-template-columns: 1fr; gap: 2rem; padding: 28px 20px; margin-top: 48px; }
  .ed-jornada-fatos { grid-template-columns: 1fr; }
  .ed-jornada-fatos li { grid-template-columns: auto 1fr; column-gap: .6rem; align-items: center; }
  .ed-jornada-fatos .bi { grid-row: span 2; margin: 0; }
  .ed-jornada-sim { padding: 1.1rem 1rem; }
  .ed-bloco { margin-top: 64px; }
  .ed-fecho-duas { margin-top: 64px; padding: 44px 26px; gap: 34px; }
}

/* ---------------------------------------------------------------- senha nova (assets/js/senha.js, 05/10/2026) */
.ed-senha-campo { position: relative; }
.ed-senha-campo > .form-control { padding-right: 2.75rem; margin-bottom: 0 !important; }
.ed-senha-campo > .form-control.is-invalid, .ed-senha-campo > .form-control.ed-senha-ok { background-position: right 2.75rem center; }
.ed-senha-campo:has(> .is-invalid) ~ .invalid-feedback { display: block; }
.ed-senha-olho { position: absolute; top: 50%; right: .3rem; transform: translateY(-50%); width: 2.25rem; height: 2.25rem; display: grid; place-items: center;
  border: 0; border-radius: var(--ed-radius-sm); background: transparent; color: var(--ed-text-muted); transition: color 150ms cubic-bezier(.2, .7, .3, 1); }
.ed-senha-olho:hover, .ed-senha-olho[aria-pressed="true"] { color: var(--ed-primary-600, var(--bs-primary)); }
.ed-senha-olho:focus-visible { outline: 2px solid var(--ed-primary-500, var(--bs-primary)); outline-offset: 1px; }
.ed-senha-ok { border-color: var(--ed-success-500) !important; }
.ed-senha-medidor { --tom: var(--ed-neutral-500); --tom-texto: var(--ed-text-muted); margin: .5rem 0 .75rem; }
.ed-senha-medidor[data-tom="danger"] { --tom: var(--ed-danger-500); --tom-texto: var(--ed-danger-700); }
.ed-senha-medidor[data-tom="warning"] { --tom: var(--ed-warning-500); --tom-texto: var(--ed-warning-700); }
.ed-senha-medidor[data-tom="success"] { --tom: var(--ed-success-500); --tom-texto: var(--ed-success-700); }
.ed-senha-barra { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; height: 6px; border-radius: 999px; }
.ed-senha-barra span { position: relative; overflow: hidden; border-radius: 999px; background: var(--ed-border); }
.ed-senha-barra span::after { content: ""; position: absolute; inset: 0; background: var(--tom); transform: scaleX(0); transform-origin: left center;
  transition: transform 180ms cubic-bezier(.2, .7, .3, 1), background-color 180ms cubic-bezier(.2, .7, .3, 1); }
.ed-senha-barra span:nth-child(2)::after { transition-delay: 30ms; }
.ed-senha-barra span:nth-child(3)::after { transition-delay: 60ms; }
.ed-senha-barra span:nth-child(4)::after { transition-delay: 90ms; }
.ed-senha-barra[data-partes="1"] span:nth-child(-n+1)::after, .ed-senha-barra[data-partes="2"] span:nth-child(-n+2)::after,
.ed-senha-barra[data-partes="3"] span:nth-child(-n+3)::after, .ed-senha-barra[data-partes="4"] span::after { transform: scaleX(1); }
.ed-senha-forte .ed-senha-barra { animation: ed-senha-brilho 700ms cubic-bezier(.2, .7, .3, 1) 1; }
@keyframes ed-senha-brilho { from { box-shadow: 0 0 0 0 color-mix(in srgb, var(--ed-success-500) 45%, transparent); } to { box-shadow: 0 0 0 7px transparent; } }
.ed-senha-nivel { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .15rem .75rem; margin: .4rem 0 0; font-size: .8125rem; }
.ed-senha-rotulo { font-weight: 700; color: var(--tom-texto); transition: color 180ms cubic-bezier(.2, .7, .3, 1); }
.ed-senha-tempo { color: var(--ed-text-muted); font-variant-numeric: tabular-nums; }
.ed-senha-dica { margin: .2rem 0 0; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-senha-dica:empty { display: none; }
.ed-senha-caps { margin: .25rem 0 0; font-size: .8125rem; font-weight: 600; color: var(--ed-warning-700); }
.ed-senha-confere { min-height: 1.25rem; margin: .4rem 0 .75rem; font-size: .8125rem; font-weight: 600; color: var(--ed-text-muted); }
.ed-senha-confere[data-tom="success"] { color: var(--ed-success-700); }
.ed-senha-confere[data-tom="danger"] { color: var(--ed-danger-700); }
.ed-senha-confere .bi { display: inline-block; animation: ed-senha-pop 200ms cubic-bezier(.2, .7, .3, 1); }
@keyframes ed-senha-pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.ed-dialogo-titulo { margin: 0 0 .25rem; font-size: 1.0625rem; font-weight: 800; letter-spacing: -0.01em; }
.ed-senha-dialogo .ed-eyebrow { color: var(--ed-danger-700); }
@media (prefers-reduced-motion: reduce) {
  .ed-senha-barra span::after, .ed-senha-rotulo, .ed-senha-olho { transition: none; }
  .ed-senha-forte .ed-senha-barra, .ed-senha-confere .bi { animation: none; }
}

.ed-log { max-width: 21cm; margin: 0 auto 48px; padding: 1.5cm 1.5cm 1.2cm; background: #fff; color: #1d2433; border: 1px solid var(--ed-border); box-shadow: var(--ed-shadow-lg); font-size: 10pt; line-height: 1.45; }
.ed-log-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding-bottom: .9rem; border-bottom: .75pt solid #d5dbe3; }
.ed-log-marca { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: 16pt; font-weight: 800; letter-spacing: -0.02em; color: var(--ed-ink-900); }
.ed-log-carimbo { margin: 0; text-align: right; font-size: 8pt; color: #5b6472; }
.ed-log-documento { padding: .9rem 0; border-bottom: .75pt solid #d5dbe3; }
.ed-log-documento h2 { margin: 0 0 .15rem; font-size: 14pt; font-weight: 800; }
.ed-log-documento p { margin: 0; }
.ed-log-tecnico { font-size: 8.5pt; color: #5b6472; }
.ed-log-hash { font-family: var(--ed-mono); font-size: 7.5pt; overflow-wrap: anywhere; }
.ed-log-titulo { margin: 1rem 0 .5rem; font-size: 12pt; font-weight: 800; }
.ed-log-assinaturas { list-style: none; margin: 0; padding: 0; }
.ed-log-assinaturas li { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); gap: .5rem; padding: .45rem 0; break-inside: avoid; }
.ed-log-assinaturas p { margin: 0; }
.ed-log-icone { font-size: 13pt; line-height: 1.2; color: var(--ed-success-500); }
.ed-log-falta .ed-log-icone { color: var(--ed-neutral-500); }
.ed-log-recusa .ed-log-icone { color: var(--ed-danger-500); }
.ed-log-nome { font-weight: 800; }
.ed-log-forma { font-size: 8.5pt; color: #5b6472; }
.ed-log-vazio { color: #5b6472; }
.ed-log-eventos { width: 100%; border-collapse: collapse; font-size: 8.5pt; }
.ed-log-eventos td { padding: .4rem 0; border-top: .5pt solid #e3e7ed; vertical-align: top; }
.ed-log-quando { width: 9.5rem; padding-right: 1rem !important; color: #5b6472; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ed-log-pe { display: flex; gap: 1rem; align-items: flex-start; margin-top: 1.2rem; padding-top: .9rem; border-top: .75pt solid #d5dbe3; font-size: 8pt; color: #3f4756; break-inside: avoid; }
.ed-log-pe p { margin: 0 0 .35rem; overflow-wrap: anywhere; }
.ed-log-qr { flex: none; width: 2.4cm; }
.ed-log-qr svg { width: 100% !important; height: auto !important; }
.ed-log-selo { display: flex; gap: .55rem; align-items: flex-start; padding: .5rem .65rem; margin-bottom: .55rem !important; border: 1pt solid var(--ed-success-500); border-radius: 6px; background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-log-selo .bi { font-size: 14pt; line-height: 1; }
.ed-log-lei { color: #5b6472; }
@page ed-log { size: A4 portrait; margin: 1.4cm 1.5cm 1.6cm; @bottom-right { content: "Log das assinaturas · página " counter(page) " de " counter(pages); font: 7pt Arial, sans-serif; color: #5b6472; } }
@media print {
  .ed-log, .ed-log-pdf { page: ed-log; break-before: page; max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
}
.ed-pdf .ed-log { margin-top: 0; }
@media (max-width: 767.98px) { .ed-log { padding: 1rem; } .ed-log-topo { flex-direction: column; } .ed-log-carimbo { text-align: left; } }

/* ------------------------------------------------------------------ página do produto, versão 2 (04/10/2026)
   O produto à vista (telas reais), diferenciais, WhatsApp, aplicativo, economia e perguntas. Movimento:
   entrada suave por [data-revelar] (opacidade + 18 px, 420 ms, escalonada nos grupos), um flutuar
   lento na vitrine do topo e a contagem dos números. Tudo some com prefers-reduced-motion e sem JS
   (a classe ed-js só existe quando o script roda). */
.ed-hero-busca { margin-top: 1.5rem; max-width: 34rem; }
.ed-hero-com-vitrine::before { display: none; }
.ed-vitrine { position: relative; padding: 0 0 4.5rem; }
.ed-vitrine-tela { max-width: none; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55); border-color: rgba(255, 255, 255, .12); }
.ed-vitrine-celular { position: absolute; right: -4%; bottom: 0; width: 34%; max-width: 168px; border-width: 7px; border-radius: 26px; box-shadow: 0 24px 48px -12px rgba(0, 0, 0, .6); }
.ed-vitrine-celular img { border-radius: 19px; }
.ed-vitrine-selo { position: absolute; display: inline-flex; align-items: center; gap: .45rem; margin: 0; padding: .55rem .85rem; border-radius: var(--ed-radius-pill);
  background: var(--ed-surface); color: var(--ed-text); font-size: .8125rem; font-weight: 700; box-shadow: var(--ed-shadow-lg); white-space: nowrap; }
.ed-vitrine-selo strong { color: var(--ed-primary-600); }
.ed-vitrine-selo-zap { left: -6%; bottom: 3.2rem; }
.ed-vitrine-selo-zap .bi { color: #128c4a; font-size: 1rem; }
.ed-vitrine-selo-ia { left: 8%; top: -1.1rem; }
.ed-vitrine-selo-ia .bi { color: var(--ed-accent-600); }
@media (max-width: 899.98px) {
  .ed-vitrine { margin-top: 2.5rem; padding-bottom: 3.5rem; }
  .ed-vitrine-celular { right: 0; width: 30%; }
  .ed-vitrine-selo-zap { left: 0; bottom: .5rem; }
  .ed-vitrine-selo-ia { display: none; }
}
@keyframes ed-flutuar { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.ed-js .ed-vitrine-celular { animation: ed-flutuar 7s ease-in-out infinite; }
.ed-js .ed-vitrine-selo-zap { animation: ed-flutuar 7s ease-in-out 1.2s infinite; }
.ed-js .ed-vitrine-selo-ia { animation: ed-flutuar 8s ease-in-out 2.4s infinite; }

.ed-diferenciais-sec { padding-top: 40px; padding-bottom: 8px; }
.ed-diferenciais { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.ed-diferenciais li { display: grid; gap: .35rem; align-content: start; padding: 1.25rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg);
  box-shadow: var(--ed-shadow-sm); transition: transform var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-diferenciais li:hover { transform: translateY(-3px); box-shadow: var(--ed-shadow-md); }
.ed-diferenciais span:not(.ed-diferencial-icone) { color: var(--ed-text-muted); font-size: .9375rem; }
.ed-diferenciais a { font-weight: 700; font-size: .875rem; margin-top: .25rem; }
.ed-diferencial-icone { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: rgba(13, 101, 120, .12); color: var(--ed-primary-600); font-size: 1.25rem; margin-bottom: .35rem; }
.ed-diferencial-icone.ed-icone-zap, .ed-recurso-icone.ed-icone-zap { background: rgba(18, 140, 74, .12); color: #0f7a40; }
.ed-diferencial-icone.ed-icone-ia, .ed-recurso-icone.ed-icone-ia { background: rgba(197, 160, 89, .16); color: var(--ed-accent-700); }
.ed-recurso-lista { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .4rem; }
.ed-recurso-lista li { display: flex; gap: .5rem; align-items: baseline; }
.ed-recurso-lista .bi { color: var(--ed-success-500); }

/* Conversa de WhatsApp: as três mensagens que o Notificador manda, no visual do aplicativo. */
.ed-zap { --zap-fundo: #efe7dd; --zap-topo: #075e54; width: min(100%, 360px); border-radius: var(--ed-radius-xl); overflow: hidden; box-shadow: var(--ed-shadow-lg); border: 8px solid var(--ed-ink-900); background: var(--zap-fundo); }
.ed-zap-topo { display: flex; align-items: center; gap: .6rem; padding: .75rem .9rem; background: var(--zap-topo); color: #fff; }
.ed-zap-topo strong { display: block; font-size: .9375rem; }
.ed-zap-topo small { display: block; font-size: .75rem; color: rgba(255, 255, 255, .85); }
.ed-zap-avatar { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--zap-topo); }
.ed-zap-corpo { display: grid; gap: .55rem; padding: 1rem .8rem 1.2rem; }
.ed-zap-msg { position: relative; margin: 0; max-width: 92%; padding: .55rem .7rem 1.1rem; background: #fff; color: #111; border-radius: 0 10px 10px 10px; font-size: .8125rem; line-height: 1.45;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .12); overflow-wrap: anywhere; }
.ed-zap-msg u { color: #0b5cad; text-decoration-color: rgba(11, 92, 173, .4); }
.ed-zap-msg span { position: absolute; right: .55rem; bottom: .25rem; font-size: .6875rem; color: #555; }
.ed-js .ed-recurso.revelado .ed-zap-msg { animation: ed-zap-entra .42s var(--ed-ease-entrada) both; }
.ed-js .ed-recurso.revelado .ed-zap-msg:nth-child(2) { animation-delay: .5s; }
.ed-js .ed-recurso.revelado .ed-zap-msg:nth-child(3) { animation-delay: 1s; }
@keyframes ed-zap-entra { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }

/* Composição: tela de fundo + cartão sobreposto (documentos com IA). */
.ed-composicao { position: relative; width: 100%; max-width: 560px; padding-bottom: 3.5rem; }
.ed-composicao-cartao { position: absolute; right: -6%; bottom: 0; width: 52%; max-width: 280px; border-radius: var(--ed-radius-lg); }
@media (max-width: 575.98px) { .ed-composicao-cartao { right: 0; width: 58%; } }

.ed-aplicativo { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .ed-aplicativo { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 4rem; } }
.ed-aplicativo-texto > p { color: var(--ed-text-muted); }
.ed-instalar { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); margin-top: 1.5rem; }
.ed-instalar > div { padding: 1rem 1.1rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); }
.ed-instalar p { margin: 0; }
.ed-instalar .ed-eyebrow { margin-bottom: .35rem; }
.ed-aplicativo-mock { position: relative; display: grid; place-items: center; }
.ed-mock-celular img { display: block; width: 100%; height: auto; border-radius: 24px; }
.ed-icone-app { position: absolute; left: calc(50% - 250px); top: 18%; display: grid; justify-items: center; gap: .3rem; padding: .7rem .8rem .55rem; background: var(--ed-surface);
  border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-lg); font-size: .75rem; font-weight: 700; color: var(--ed-text); }
.ed-icone-app img { border-radius: 12px; }
@media (max-width: 639.98px) { .ed-icone-app { display: none; } }
.ed-js .ed-aplicativo-mock.revelado .ed-icone-app { animation: ed-zap-entra .42s var(--ed-ease-entrada) .4s both; }

/* Calculadora de economia (05/10/2026): painel no cromo — os controles à esquerda, sobre a tinta, com o
   trilho em âmbar (posição atual); o resultado à direita num cartão branco elevado, com o total grande em
   jade (economia é ganho), a composição numa barra empilhada na ordem fixa da paleta de gráficos (slot 1
   azul = equipe, 2 âmbar = papel, 3 jade = correio, DESIGN §12) e a conta escrita embaixo de cada parcela. */
.ed-economia { display: grid; gap: 2rem; padding: 2rem 1.25rem; border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-lg); }
@media (min-width: 768px) { .ed-economia { padding: 2.75rem 2.5rem; } }
/* No computador a nota fica no pé da coluna dos controles: o resultado, preso à tela, desce sem cobri-la. */
@media (min-width: 1000px) {
  .ed-economia { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); column-gap: 3rem; row-gap: 1.5rem; align-items: start; }
  .ed-economia-entrada { grid-column: 1; grid-row: 1; }
  .ed-economia-resultado { grid-column: 2; grid-row: 1 / span 2; }
  .ed-economia-nota { grid-column: 1; grid-row: 2; }
}
.ed-economia .ed-eyebrow { color: var(--ed-accent-500); }
.ed-economia h2 { color: var(--ed-sobre-ink); font-size: clamp(1.6rem, 1.15rem + 1.5vw, 2.35rem); margin: .3rem 0 .75rem; }
.ed-economia-apoio { color: var(--ed-sobre-ink-suave); margin: 0; }

.ed-economia-portes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 1.5rem 0 .5rem; }
.ed-economia-portes .ed-eyebrow { grid-column: 1 / -1; margin: 0; color: var(--ed-sobre-ink-fraco); }
.ed-economia-porte { display: grid; gap: 0; min-height: 44px; padding: .45rem .95rem; text-align: left; color: var(--ed-sobre-ink); background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--ed-radius-md); transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-economia-porte strong { font-size: .875rem; }
.ed-economia-porte small { font-size: .75rem; color: var(--ed-sobre-ink-suave); }
@media (max-width: 559.98px) { .ed-economia-porte { padding: .45rem .6rem; } }
.ed-economia-porte:hover { border-color: rgba(197, 160, 89, .6); }
.ed-economia-porte[aria-pressed="true"] { border-color: var(--ed-accent-500); background: rgba(197, 160, 89, .12); }
.ed-economia-porte:focus-visible, .ed-economia-periodo button:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(197, 160, 89, .45); }

.ed-economia-controle { margin-top: 1.25rem; }
.ed-economia-rotulo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ed-economia-rotulo label { color: var(--ed-sobre-ink); font-weight: 700; font-size: .9375rem; }
.ed-economia-rotulo label small { display: block; font-weight: 500; font-size: .75rem; color: var(--ed-sobre-ink-fraco); }
/* Celular: o resultado fica abaixo dos controles; esta faixa acompanha quem mexe neles (some no computador,
   onde o resultado está ao lado e preso à tela). */
.ed-economia-resumo { position: sticky; top: .5rem; z-index: 2; display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; margin: 1rem 0 0; padding: .6rem .9rem;
  color: var(--ed-sobre-ink-suave); font-size: .8125rem; font-weight: 700; background: rgba(7, 32, 28, .94); border: 1px solid rgba(255, 255, 255, .12);
  border-left: 3px solid var(--ed-accent-500); border-radius: var(--ed-radius-md); box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .6); }
.ed-economia-resumo strong { color: var(--ed-sobre-ink); font-size: 1.25rem; font-weight: 800; font-variant-numeric: tabular-nums; }
@media (min-width: 1000px) { .ed-economia-resumo { display: none; } }
.ed-economia-valor { display: inline-flex; align-items: center; gap: .3rem; flex: none; padding: 0 .6rem; min-height: 40px; color: var(--ed-sobre-ink-suave); font-weight: 700;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--ed-radius-sm); }
.ed-economia-valor:focus-within { border-color: var(--ed-accent-500); box-shadow: 0 0 0 3px rgba(197, 160, 89, .3); }
.ed-economia-valor input { width: 5.5rem; padding: .35rem 0; border: 0; outline: 0; background: transparent; color: var(--ed-sobre-ink); font: inherit; font-size: 1.0625rem; font-weight: 800;
  font-variant-numeric: tabular-nums; text-align: right; -moz-appearance: textfield; appearance: textfield; }
.ed-economia-valor input::-webkit-outer-spin-button, .ed-economia-valor input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ed-economia-faixa { --pct: 50%; display: block; width: 100%; height: 30px; margin: .45rem 0 0; background: transparent; cursor: pointer; -webkit-appearance: none; appearance: none; }
.ed-economia-faixa::-webkit-slider-runnable-track { height: 6px; border-radius: var(--ed-radius-pill);
  background: linear-gradient(to right, var(--ed-accent-500) var(--pct), rgba(255, 255, 255, .14) var(--pct)); }
.ed-economia-faixa::-moz-range-track { height: 6px; border-radius: var(--ed-radius-pill); background: rgba(255, 255, 255, .14); }
.ed-economia-faixa::-moz-range-progress { height: 6px; border-radius: var(--ed-radius-pill); background: var(--ed-accent-500); }
.ed-economia-faixa::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border: 0; border-radius: 50%; background: var(--ed-surface);
  box-shadow: 0 0 0 5px rgba(197, 160, 89, .35), 0 2px 6px rgba(0, 0, 0, .4); transition: box-shadow var(--ed-dur) var(--ed-ease); }
.ed-economia-faixa::-moz-range-thumb { width: 22px; height: 22px; border: 0; border-radius: 50%; background: var(--ed-surface); box-shadow: 0 0 0 5px rgba(197, 160, 89, .35), 0 2px 6px rgba(0, 0, 0, .4); }
.ed-economia-faixa:hover::-webkit-slider-thumb, .ed-economia-faixa:active::-webkit-slider-thumb { box-shadow: 0 0 0 8px rgba(197, 160, 89, .4), 0 2px 6px rgba(0, 0, 0, .4); }
.ed-economia-marcas { display: flex; justify-content: space-between; font-size: .75rem; color: var(--ed-sobre-ink-fraco); font-variant-numeric: tabular-nums; }

.ed-economia-premissas { margin-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.ed-economia-premissas summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 48px; padding-top: .75rem; color: var(--ed-sobre-ink);
  font-weight: 700; cursor: pointer; list-style: none; }
.ed-economia-premissas summary::-webkit-details-marker { display: none; }
.ed-economia-premissas summary small { font-weight: 500; color: var(--ed-sobre-ink-fraco); }
.ed-economia-premissas summary .bi { color: var(--ed-accent-500); margin-right: .35rem; }
.ed-economia-campos { display: grid; gap: .85rem 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin-top: .75rem; }
.ed-economia-campos label { display: flex; flex-direction: column; justify-content: space-between; gap: .35rem; color: var(--ed-sobre-ink); font-weight: 700; font-size: .8125rem; }
.ed-economia-campos small { display: block; font-weight: 500; color: var(--ed-sobre-ink-fraco); }
.ed-economia-campos input { width: 100%; min-height: 42px; padding: .4rem .7rem; color: var(--ed-sobre-ink); font: inherit; font-weight: 700; font-variant-numeric: tabular-nums;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--ed-radius-sm); }
.ed-economia-campos input:focus { outline: 0; border-color: var(--ed-accent-500); box-shadow: 0 0 0 3px rgba(197, 160, 89, .3); }

.ed-economia-resultado { position: relative; padding: 1.5rem 1.25rem; background: var(--ed-surface); color: var(--ed-text); border-radius: var(--ed-radius-lg);
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55); }
@media (min-width: 768px) { .ed-economia-resultado { padding: 1.75rem 1.75rem 1.5rem; } }
/* No computador o resultado fica preso à tela enquanto a pessoa ajusta as premissas. */
@media (min-width: 1000px) { .ed-economia-resultado { position: sticky; top: 1.25rem; } }
.ed-economia-resultado .ed-eyebrow { color: var(--ed-text-muted); }
.ed-economia-topo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ed-economia-topo .ed-eyebrow { margin: 0; }
.ed-economia-periodo { display: inline-flex; padding: 3px; background: var(--ed-surface-sunken); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-pill); }
.ed-economia-periodo button { min-height: 36px; padding: .3rem .95rem; border: 0; border-radius: var(--ed-radius-pill); background: transparent; color: var(--ed-text-muted); font-weight: 700; font-size: .8125rem;
  transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-economia-periodo button[aria-pressed="true"] { background: var(--ed-surface); color: var(--ed-primary-700); box-shadow: var(--ed-shadow-sm); }
.ed-economia-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; margin: .9rem 0 0; }
.ed-economia-total strong { font-size: clamp(2.4rem, 1.5rem + 3.2vw, 3.6rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1; color: var(--ed-success-700); font-variant-numeric: tabular-nums; }
.ed-economia-total span { font-size: 1rem; font-weight: 700; color: var(--ed-text-muted); }
.ed-economia-outro { margin: .35rem 0 0; color: var(--ed-text-muted); font-weight: 600; font-variant-numeric: tabular-nums; }

.ed-economia-barra { display: flex; gap: 2px; height: 14px; margin: 1.25rem 0 .25rem; overflow: hidden; border-radius: var(--ed-radius-pill); background: var(--ed-surface-sunken); }
.ed-economia-barra span { display: block; min-width: 0; transition: width 260ms var(--ed-ease); }
.ed-cat-1 { --ed-cat: var(--ed-primary-500); }
.ed-cat-2 { --ed-cat: var(--ed-accent-600); }
.ed-cat-3 { --ed-cat: var(--ed-success-500); }
.ed-economia-barra span, .ed-economia-ponto { background: var(--ed-cat); }
.ed-economia-partes { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; }
.ed-economia-partes li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; column-gap: .65rem; align-items: center; padding: .7rem 0; border-top: 1px solid var(--ed-border-suave); }
.ed-economia-partes li:first-child { border-top: 0; }
.ed-economia-ponto { width: 12px; height: 12px; border-radius: 4px; }
.ed-economia-partes li > span:not(.ed-economia-ponto) { font-weight: 700; }
.ed-economia-partes strong { font-size: 1.125rem; font-weight: 800; font-variant-numeric: tabular-nums; text-align: right; }
.ed-economia-partes small { grid-column: 2 / -1; margin-top: .15rem; font-size: .75rem; color: var(--ed-text-muted); font-variant-numeric: tabular-nums; }

.ed-economia-destaque { display: flex; gap: .75rem; align-items: flex-start; margin: 1rem 0 0; padding: .85rem 1rem; background: var(--ed-primary-50); color: var(--ed-primary-700);
  border-radius: var(--ed-radius-md); font-size: .9375rem; }
.ed-economia-destaque .bi { flex: none; font-size: 1.25rem; line-height: 1.3; }
.ed-economia-cidade-titulo { margin: 1.25rem 0 .5rem; }
.ed-economia-cidade { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 560px) { .ed-economia-cidade { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ed-economia-cidade li { display: grid; gap: .1rem; align-content: start; padding: .75rem .8rem; background: var(--ed-surface-sunken); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-md); }
.ed-economia-cidade .bi { font-size: 1.1rem; color: var(--ed-success-500); }
.ed-economia-cidade li:nth-child(n+3) .bi { color: var(--ed-primary-500); }
.ed-economia-cidade strong { font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1.2; }
.ed-economia-cidade span { font-size: .75rem; color: var(--ed-text-muted); line-height: 1.3; }
.ed-economia-cta { display: flex; justify-content: center; align-items: center; gap: .5rem; width: 100%; margin-top: 1.25rem; }
.ed-economia-cta-apoio { margin: .5rem 0 0; text-align: center; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-economia-nota { margin: 0; font-size: .8125rem; color: var(--ed-sobre-ink-fraco); }

.ed-implantacao-so-texto { align-items: start; }
@media (min-width: 900px) { .ed-implantacao-so-texto { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.ed-etapas { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.ed-etapas li { position: relative; display: grid; grid-template-columns: 44px 1fr; column-gap: 1rem; padding-bottom: 1.25rem; }
.ed-etapas li::before { content: ""; position: absolute; left: 21px; top: 44px; bottom: 0; width: 2px; background: var(--ed-border); }
.ed-etapas li:last-child::before { display: none; }
.ed-etapa-icone { grid-row: span 2; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--ed-surface); border: 2px solid var(--ed-primary-100); color: var(--ed-primary-600); font-size: 1.1rem; position: relative; z-index: 1; }
.ed-etapas li:last-child .ed-etapa-icone { border-color: var(--ed-accent-500); color: var(--ed-accent-700); }
.ed-etapas strong { padding-top: .55rem; }
.ed-etapas span:not(.ed-etapa-icone) { color: var(--ed-text-muted); font-size: .9375rem; }

/* Perguntas frequentes (05/10/2026): assuntos à esquerda (presos à tela no computador; o escolhido com o filete
   âmbar do item ativo, como a sidebar), grupos com título em eyebrow à direita; a pergunta aberta ganha borda
   azul suave, sombra md e filete azul à esquerda; o "+" vira "×" num disco que se preenche. */
.ed-perguntas { display: grid; gap: 2rem; }
@media (min-width: 900px) {
  .ed-perguntas { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 4rem; align-items: start; }
  .ed-perguntas-lado { position: sticky; top: 1.25rem; }
}
.ed-perguntas-apoio { color: var(--ed-text-muted); }
.ed-faq-filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
@media (min-width: 900px) { .ed-faq-filtros { flex-direction: column; } }
.ed-faq-filtros button { display: flex; align-items: center; gap: .55rem; min-height: 44px; padding: .5rem .85rem; text-align: left; color: var(--ed-text); font-weight: 700; font-size: .875rem;
  background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md);
  transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-faq-filtros button .bi { color: var(--ed-primary-500); }
.ed-faq-filtros button span { margin-left: auto; min-width: 1.75rem; padding: .05rem .45rem; text-align: center; font-size: .75rem; color: var(--ed-text-muted);
  background: var(--ed-surface-sunken); border-radius: var(--ed-radius-pill); font-variant-numeric: tabular-nums; }
.ed-faq-filtros button:hover { border-color: var(--ed-primary-100); }
.ed-faq-filtros button[aria-pressed="true"] { color: var(--ed-primary-700); background: var(--ed-primary-50); border-color: var(--ed-primary-100); box-shadow: inset 3px 0 0 var(--ed-accent-500); }
.ed-faq-filtros button[aria-pressed="true"] span { background: var(--ed-surface); color: var(--ed-primary-700); }
.ed-faq-filtros button:focus-visible { outline: 0; box-shadow: var(--ed-ring); }
.ed-faq-contato { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem .85rem; align-items: start; margin-top: 1.5rem; padding: 1.1rem 1.15rem;
  background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-sm); }
.ed-faq-contato-icone { grid-row: span 2; width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: rgba(13, 101, 120, .12);
  color: var(--ed-primary-600); font-size: 1.25rem; }
.ed-faq-contato p { margin: 0; color: var(--ed-text-muted); font-size: .9375rem; }
.ed-faq-contato p strong { display: block; color: var(--ed-text); }
.ed-faq-contato .btn { justify-self: start; margin-top: .4rem; }

.ed-faq-grupo { display: grid; gap: .6rem; }
.ed-faq-grupo + .ed-faq-grupo { margin-top: 2rem; }
.ed-faq-grupo[hidden] { display: none; }
.ed-faq-grupo-titulo { display: flex; align-items: center; gap: .5rem; margin: 0 0 .15rem; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-text-muted); }
.ed-faq-grupo-titulo .bi { color: var(--ed-primary-500); font-size: .9375rem; }
.ed-pergunta { position: relative; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-md);
  transition: border-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); scroll-margin-top: 1.5rem; }
.ed-pergunta:hover { border-color: var(--ed-border); }
.ed-pergunta[open] { border-color: var(--ed-primary-100); box-shadow: var(--ed-shadow-md); }
.ed-pergunta[open]::before { content: ""; position: absolute; left: -1px; top: 14px; bottom: 14px; width: 3px; border-radius: var(--ed-radius-pill); background: var(--ed-primary-500); }
.ed-pergunta summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 56px; padding: .85rem 1.1rem; font-weight: 700; cursor: pointer; list-style: none; }
.ed-pergunta summary::-webkit-details-marker { display: none; }
.ed-pergunta summary:focus-visible { outline: 0; border-radius: var(--ed-radius-md); box-shadow: var(--ed-ring); }
.ed-pergunta-icone { flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--ed-primary-50); color: var(--ed-primary-600);
  transition: transform var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-pergunta[open] .ed-pergunta-icone { transform: rotate(45deg); background: var(--ed-primary-500); color: var(--ed-surface); }
.ed-pergunta-resposta { padding: 0 1.1rem 1.1rem; }
.ed-pergunta-resposta p { margin: 0; max-width: 68ch; color: var(--ed-text-muted); }
@keyframes ed-faq-abre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ed-js .ed-pergunta[open] .ed-pergunta-resposta { animation: ed-faq-abre 220ms var(--ed-ease) both; }

/* Entrada suave. Sem JS (sem .ed-js) e com movimento reduzido, tudo aparece de uma vez. */
.ed-js [data-revelar] { opacity: 0; transform: translateY(18px); transition: opacity var(--ed-dur-entrada) var(--ed-ease-entrada), transform var(--ed-dur-entrada) var(--ed-ease-entrada);
  transition-delay: var(--atraso, 0ms); }
.ed-js [data-revelar].revelado { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .ed-js [data-revelar] { opacity: 1; transform: none; transition: none; }
  .ed-js .ed-vitrine-celular, .ed-js .ed-vitrine-selo-zap, .ed-js .ed-vitrine-selo-ia, .ed-js .ed-recurso.revelado .ed-zap-msg, .ed-js .ed-aplicativo-mock.revelado .ed-icone-app { animation: none; }
  .ed-diferenciais li, .ed-pergunta, .ed-pergunta-icone, .ed-faq-filtros button { transition: none; }
  .ed-js .ed-pergunta[open] .ed-pergunta-resposta { animation: none; }
  .ed-economia-barra span, .ed-economia-porte, .ed-economia-periodo button, .ed-economia-faixa::-webkit-slider-thumb { transition: none; }
}

/* "Como funciona" em demonstração (06/10/2026, "merecia melhorar como o Feito para"): os quatro passos à esquerda,
   o da vez com a barra de tempo no acento (o filete do item ativo) e, ao lado, uma janela de navegador com a cena
   do passo — campos sendo preenchidos, o anexo entrando, o comprovante, os avisos chegando ([data-tour] no ed.js).
   Cada cena só anima quando fica .ativo; com movimento reduzido nada anda sozinho e as cenas aparecem prontas. */
.ed-tour { --tour-tempo: 5.6s; }
.ed-tour-corpo { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 48px; align-items: center; margin-top: 48px; text-align: left; }
.ed-tour-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ed-tour-passo { position: relative; display: flex; gap: 16px; align-items: flex-start; width: 100%; padding: 18px 20px 18px 24px; text-align: left; cursor: pointer;
  background: transparent; border: 1px solid transparent; border-radius: var(--ed-radius-lg); color: var(--ed-text); font: inherit;
  transition: background-color 180ms var(--ed-ease), box-shadow 180ms var(--ed-ease), border-color 180ms var(--ed-ease); }
.ed-tour-passo:hover { background: color-mix(in srgb, var(--ed-surface) 60%, transparent); }
.ed-tour-passo:focus-visible { outline: 3px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-tour-passo.ativo { background: var(--ed-surface); border-color: var(--ed-border-suave); box-shadow: var(--ed-shadow-sm); }
.ed-tour-barra { position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; border-radius: 3px; background: var(--ed-border-suave); overflow: hidden; opacity: 0; transition: opacity 180ms var(--ed-ease); }
.ed-tour-barra i { position: absolute; inset: 0; background: var(--ed-accent-500); transform: scaleY(0); transform-origin: top; }
.ed-tour-passo.ativo .ed-tour-barra { opacity: 1; }
.ed-tour-passo.ativo .ed-tour-barra i { animation: ed-tour-barra var(--tour-tempo) linear forwards; }
.ed-tour-parado .ed-tour-passo.ativo .ed-tour-barra i, html:not(.ed-js) .ed-tour-barra i { animation: none; transform: scaleY(1); }
@keyframes ed-tour-barra { to { transform: scaleY(1); } }
.ed-tour-num { flex: none; min-width: 2.4ch; font-size: 1.75rem; font-weight: 800; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums;
  color: var(--ed-primary-300); transition: color 180ms var(--ed-ease); }
.ed-tour-passo.ativo .ed-tour-num { color: var(--ed-primary-600); }
.ed-tour-txt { display: grid; gap: .3rem; }
.ed-tour-txt strong { font-size: 1.125rem; font-weight: 800; letter-spacing: -0.01em; }
.ed-tour-txt > span { color: var(--ed-text-muted); font-size: .9375rem; line-height: 1.55; }

.ed-tour-lado { display: grid; gap: 12px; justify-items: center; }
.ed-tour-tela { width: 100%; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); overflow: hidden;
  box-shadow: 0 30px 60px -30px rgba(8, 18, 31, .32), var(--ed-shadow-md); }
.ed-tour-janela { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: var(--ed-canvas); border-bottom: 1px solid var(--ed-border-suave); }
.ed-tour-bolinhas { display: flex; gap: 6px; flex: none; }
.ed-tour-bolinhas i { width: 10px; height: 10px; border-radius: 50%; background: var(--ed-border-strong); opacity: .55; }
.ed-tour-url { flex: 1; min-width: 0; display: flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border-radius: var(--ed-radius-pill); background: var(--ed-surface);
  color: var(--ed-text-muted); font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-tour-url .bi { color: var(--ed-success-500); font-size: .7rem; }
.ed-tour-cenas { display: grid; padding: 28px 32px 32px; min-height: 380px; }
.ed-tour-cena { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 12px; opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity 260ms var(--ed-ease), transform 260ms var(--ed-ease), visibility 0s linear 260ms; }
.ed-tour-cena.ativo { opacity: 1; visibility: visible; transform: none; transition: opacity 260ms var(--ed-ease), transform 260ms var(--ed-ease); }
.ed-tour-etapa { display: none; margin: 0; color: var(--ed-primary-600); font-size: .6875rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ed-tour-titulo { margin: 0 0 4px; font-size: 1.125rem; font-weight: 800; letter-spacing: -0.01em; }
.ed-tour-centro { text-align: center; }
.ed-tour-campo { display: grid; gap: .15rem; padding: .55rem .8rem; border: 1px solid var(--ed-border-controle); border-radius: var(--ed-radius-md); font-size: .9375rem; min-height: 3.25rem; }
.ed-tour-campo small { color: var(--ed-text-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .02em; }
.ed-tour-campo-sel { grid-template-columns: 1fr auto; }
.ed-tour-campo-sel small { grid-column: 1 / -1; }
.ed-tour-campo-sel .bi { color: var(--ed-text-muted); align-self: center; }
.ed-tour-digita { justify-self: start; clip-path: inset(0 100% 0 0); }
.ed-tour-linhas { display: grid; gap: 7px; padding: 5px 0 3px; }
.ed-tour-linhas i { display: block; height: 7px; width: 0; border-radius: 4px; background: var(--ed-border-suave); }
.ed-tour-botao { align-self: flex-start; display: inline-flex; align-items: center; gap: .4rem; margin-top: 4px; padding: .55rem 1.3rem; border-radius: var(--ed-radius-pill);
  background: var(--ed-primary-500); color: #FFFFFF; font-size: .875rem; font-weight: 800; opacity: .45; }
.ed-tour-botao-claro { align-self: center; background: transparent; color: var(--ed-primary-600); border: 1px solid var(--ed-border-strong); }
.ed-tour-aviso { display: flex; align-items: center; gap: .5rem; padding: .6rem .8rem; border-radius: var(--ed-radius-md); background: var(--ed-success-50); color: var(--ed-success-700);
  font-size: .875rem; font-weight: 700; opacity: 0; transform: translateY(6px); }
.ed-tour-anexo { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: .6rem; padding: .6rem .8rem; border: 1px dashed var(--ed-border-strong);
  border-radius: var(--ed-radius-md); font-size: .875rem; opacity: 0; transform: scale(.96); }
.ed-tour-anexo > .bi:first-child { color: var(--ed-danger-500); font-size: 1.1rem; }
.ed-tour-anexo small { color: var(--ed-text-muted); }
.ed-tour-anexo > .bi:last-child { color: var(--ed-success-500); }
.ed-tour-ok { align-self: center; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--ed-success-50); color: var(--ed-success-700);
  font-size: 1.75rem; transform: scale(.4); opacity: 0; }
.ed-tour-recibo { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; border-radius: var(--ed-radius-md); background: var(--ed-border-suave);
  border: 1px solid var(--ed-border-suave); opacity: 0; transform: translateY(6px); }
.ed-tour-recibo > div { display: grid; gap: .2rem; padding: .8rem 1rem; background: var(--ed-surface); }
.ed-tour-recibo small { color: var(--ed-text-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ed-tour-recibo strong { font-size: 1.125rem; font-weight: 800; letter-spacing: .01em; }
.ed-tour-nota { display: flex; gap: .5rem; align-items: flex-start; margin: 0; padding: .6rem .8rem; border-radius: var(--ed-radius-md); background: var(--ed-accent-50);
  color: var(--ed-accent-700); font-size: .8125rem; font-weight: 600; line-height: 1.45; opacity: 0; }
.ed-tour-avisos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ed-tour-avisos li { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; align-items: center; padding: .65rem .8rem; border: 1px solid var(--ed-border-suave);
  border-radius: var(--ed-radius-md); opacity: 0; transform: translateX(14px); }
.ed-tour-avisos li > .bi { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--ed-radius-md);
  background: color-mix(in srgb, var(--ed-primary-500) 12%, transparent); color: var(--ed-primary-600); }
.ed-tour-avisos span { display: grid; gap: .1rem; min-width: 0; }
.ed-tour-avisos strong { font-size: .875rem; }
.ed-tour-avisos small { color: var(--ed-text-muted); font-size: .75rem; }
.ed-tour-avisos time { color: var(--ed-text-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
.ed-tour-avisos .ed-tour-novo { border-color: color-mix(in srgb, var(--ed-success-500) 45%, var(--ed-border-suave)); background: var(--ed-success-50); }
.ed-tour-avisos .ed-tour-novo > .bi { background: var(--ed-success-500); color: #FFFFFF; }
.ed-tour-pausa { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .8rem; border: 0; border-radius: var(--ed-radius-pill); background: transparent;
  color: var(--ed-text-muted); font: inherit; font-size: .8125rem; font-weight: 700; cursor: pointer; }
.ed-tour-pausa:hover { color: var(--ed-text); background: var(--ed-surface); }
.ed-tour-pausa:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-tour-pausa[hidden] { display: none; }

/* O que entra em cada cena: escalonado por --atraso, só com a cena ativa (ao sair, volta sem transição). */
.ed-tour-cena.ativo :is(.ed-tour-digita, .ed-tour-linhas i, .ed-tour-botao, .ed-tour-aviso, .ed-tour-anexo, .ed-tour-ok, .ed-tour-recibo, .ed-tour-nota, .ed-tour-avisos li) {
  transition: clip-path 700ms steps(14, end), width 600ms var(--ed-ease), opacity 260ms var(--ed-ease), transform 320ms var(--ed-ease-entrada);
  transition-delay: var(--atraso, 0s); }
.ed-tour-cena.ativo .ed-tour-digita { clip-path: inset(0 0 0 0); }
.ed-tour-cena.ativo .ed-tour-linhas i { width: var(--largura); }
.ed-tour-cena.ativo .ed-tour-botao { opacity: 1; }
.ed-tour-cena.ativo :is(.ed-tour-aviso, .ed-tour-anexo, .ed-tour-ok, .ed-tour-recibo, .ed-tour-nota, .ed-tour-avisos li) { opacity: 1; transform: none; }
/* Sem JS (ou com movimento reduzido) a primeira cena já aparece pronta. */
html:not(.ed-js) .ed-tour-cena.ativo *, html:not(.ed-js) .ed-tour-cena.ativo { transition: none !important; }

@media (max-width: 899.98px) {
  .ed-tour-corpo { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 32px; }
  .ed-tour-lado { order: -1; }
  .ed-tour-etapa { display: block; }
  .ed-tour-cenas { padding: 22px 20px 24px; min-height: 340px; }
  .ed-tour-passo { padding: 14px 16px 14px 20px; }
  .ed-tour-num { font-size: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-tour-cena, .ed-tour-cena.ativo, .ed-tour-cena.ativo *, .ed-tour-passo, .ed-tour-barra { transition: none !important; }
  .ed-tour-passo.ativo .ed-tour-barra i { animation: none; transform: scaleY(1); }
}

/* ================================================================ carta de serviços (06/10/2026, "merecia um capricho maior")
   Hero curto no cromo com a busca em vidro e o que vale para todos; cartões de altura igual com o prazo, o anexo
   exigido e a lei à vista (cor com significado: prazo neutro, "exige documento" no acento = atenção, lei na
   primária = informação); os serviços de prazo da lei num grupo próprio; "Outro assunto" como saída tracejada;
   ao lado, "Antes de pedir" fixo na rolagem (no celular vai para o fim). */
.ed-hero-servicos .ed-hero-in { padding: 44px 16px 52px; }
.ed-hero-servicos h1 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3rem); max-width: 22ch; margin: .45rem 0 .8rem; }
.ed-hero-servicos .ed-hero-apoio { max-width: 60ch; }
.ed-servicos-busca { position: relative; display: flex; align-items: center; max-width: 720px; margin-top: 1.75rem; padding: 6px !important; border-radius: var(--ed-radius-lg); }
.ed-servicos-busca > .bi-search { position: absolute; left: 24px; color: var(--ed-sobre-ink-suave); font-size: 1.05rem; pointer-events: none; }
.ed-hero-portal .ed-servicos-busca .form-control { height: 52px; padding-left: 48px; padding-right: 7.5rem; font-size: 1.0625rem; border-radius: var(--ed-radius-md); }
.ed-hero-portal .ed-servicos-busca .form-control::-webkit-search-cancel-button { filter: grayscale(1) invert(1); opacity: .7; }
.ed-servicos-contagem { position: absolute; right: 22px; color: var(--ed-sobre-ink-fraco); font-size: .8125rem; font-weight: 700; font-variant-numeric: tabular-nums; pointer-events: none; }
.ed-hero-servicos .ed-hero-selos { margin-top: 1.1rem; }

.ed-servicos { max-width: var(--ed-largura); margin: 0 auto; padding: 44px 16px 96px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.ed-servicos-grupo + .ed-servicos-grupo { margin-top: 44px; }
.ed-servicos-grupo-cabeca { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px; }
.ed-servicos-grupo-cabeca h2 { margin: 0; font-size: 1.375rem; letter-spacing: -0.02em; }
.ed-servicos-grupo-cabeca p { margin: .3rem 0 0; color: var(--ed-text-muted); max-width: 62ch; line-height: 1.55; }
.ed-servicos-grupo-icone { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: var(--ed-radius-md);
  background: color-mix(in srgb, var(--ed-primary-500) 12%, transparent); color: var(--ed-primary-600); font-size: 1.25rem; }
.ed-servicos-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ed-servicos-lista > li { display: flex; }
.ed-servicos-lista > li[hidden], .ed-servicos-grupo[hidden] { display: none; }

.ed-servico { position: relative; flex: 1; display: flex; flex-direction: column; gap: 16px; padding: 20px; background: var(--ed-surface); color: var(--ed-text); text-decoration: none;
  border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-xs);
  transition: transform 180ms var(--ed-ease), box-shadow 180ms var(--ed-ease), border-color 180ms var(--ed-ease); }
.ed-servico:hover { color: var(--ed-text); transform: translateY(-2px); box-shadow: var(--ed-shadow-md); border-color: color-mix(in srgb, var(--ed-primary-500) 40%, var(--ed-border-suave)); }
.ed-servico:focus-visible, .ed-servico-outro:focus-visible { outline: 3px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-servico-topo { display: flex; gap: 14px; align-items: flex-start; }
.ed-servico-icone { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: var(--ed-radius-md);
  background: color-mix(in srgb, var(--ed-primary-500) 12%, transparent); color: var(--ed-primary-600); font-size: 1.25rem;
  transition: background-color 180ms var(--ed-ease), color 180ms var(--ed-ease); }
.ed-servico:hover .ed-servico-icone { background: var(--ed-primary-500); color: #FFFFFF; }
.ed-servico-texto { display: grid; gap: .3rem; min-width: 0; }
.ed-servico-nome { font-size: 1.0625rem; font-weight: 800; letter-spacing: -0.01em; line-height: 1.3; }
.ed-servico-desc { color: var(--ed-text-muted); font-size: .9375rem; line-height: 1.5; }
.ed-servico-pe { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid var(--ed-border-suave); }
.ed-servico-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-servico-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .22rem .6rem; border-radius: var(--ed-radius-pill); background: var(--ed-canvas);
  color: var(--ed-text); font-size: .78125rem; font-weight: 600; line-height: 1.35; font-variant-numeric: tabular-nums; }
.ed-servico-chip b { font-weight: 800; }
.ed-servico-chip .bi { font-size: .8125rem; color: var(--ed-text-muted); }
.ed-servico-chip.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); }
.ed-servico-chip.tom-accent .bi { color: var(--ed-accent-700); }
.ed-servico-chip.tom-primary { background: var(--ed-primary-50); color: var(--ed-primary-700); }
.ed-servico-chip.tom-primary .bi { color: var(--ed-primary-700); }
.ed-servico-ir { flex: none; display: inline-flex; align-items: center; gap: .35rem; color: var(--ed-primary-600); font-size: .875rem; font-weight: 800; white-space: nowrap; }
.ed-servico-ir .bi { transition: transform 180ms var(--ed-ease); }
.ed-servico:hover .ed-servico-ir .bi { transform: translateX(3px); }

.ed-servico-outro { display: flex; align-items: center; gap: 16px; margin-top: 28px; padding: 20px 24px; color: var(--ed-text); text-decoration: none;
  border: 1.5px dashed var(--ed-border-strong); border-radius: var(--ed-radius-lg); transition: border-color 180ms var(--ed-ease), background-color 180ms var(--ed-ease); }
.ed-servico-outro:hover { color: var(--ed-text); border-color: var(--ed-primary-500); background: var(--ed-surface); }
.ed-servico-outro .ed-servico-texto { flex: 1; }
.ed-servico-outro .btn { flex: none; }
.ed-servicos-vazio { display: flex; gap: 12px; align-items: flex-start; margin: 0; padding: 18px 20px; border-radius: var(--ed-radius-lg); background: var(--ed-surface);
  border: 1px solid var(--ed-border-suave); color: var(--ed-text-muted); }
.ed-servicos-vazio[hidden] { display: none; }
.ed-servicos-vazio .bi { color: var(--ed-primary-500); font-size: 1.1rem; margin-top: .1rem; }
.ed-servicos-vazio span span { color: var(--ed-text); font-weight: 700; }

.ed-servicos-guia { position: sticky; top: 24px; padding: 24px; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-xs); }
.ed-servicos-guia .ed-eyebrow { margin: 0 0 14px; }
.ed-guia-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.ed-guia-passos li { display: flex; gap: 12px; align-items: flex-start; font-size: .875rem; line-height: 1.5; color: var(--ed-text-muted); }
.ed-guia-passos strong { display: block; color: var(--ed-text); font-size: .9375rem; }
.ed-guia-icone { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: var(--ed-radius-md);
  background: color-mix(in srgb, var(--ed-primary-500) 12%, transparent); color: var(--ed-primary-600); }
.ed-guia-acoes { display: grid; gap: 8px; margin-top: 22px; }
.ed-guia-ajuda { display: grid; gap: .2rem; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--ed-border-suave); font-size: .875rem; }
.ed-guia-ajuda p { margin: 0 0 .2rem; color: var(--ed-text-muted); }
.ed-guia-ajuda a { font-weight: 700; overflow-wrap: anywhere; }

@media (max-width: 1099.98px) {
  .ed-servicos { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ed-servicos-guia { position: static; }
}
@media (max-width: 699.98px) {
  .ed-hero-servicos .ed-hero-in { padding: 32px 16px 36px; }
  .ed-servicos { padding-top: 28px; }
  .ed-servicos-lista { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ed-servico { padding: 16px; gap: 12px; }
  .ed-servico-pe { padding-top: 12px; }
  .ed-hero-portal .ed-servicos-busca .form-control { font-size: 1rem; padding-right: 6.5rem; }
  .ed-servico-outro { flex-wrap: wrap; padding: 18px; }
  .ed-servico-outro .btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-servico, .ed-servico-icone, .ed-servico-ir .bi, .ed-servico-outro { transition: none; }
  .ed-servico:hover { transform: none; }
  .ed-servico:hover .ed-servico-ir .bi { transform: none; }
}

/* ================================================================ páginas do estado e da cidade (06/10/2026, "e aqui por que está assim?")
   O mesmo topo da carta de serviços (cromo, busca em vidro com a contagem) e, embaixo, cada cidade num cartão com os seus
   órgãos pelo nome, com o brasão (ou o ícone do tipo) e o tipo escrito — o ícone sozinho não dizia o tipo do órgão. */
.ed-hero-uf .ed-migalhas { color: var(--ed-sobre-ink-fraco); font-size: .8125rem; margin-bottom: .9rem; }
.ed-hero-uf .ed-migalhas a { color: var(--ed-sobre-ink-suave); }
.ed-hero-uf .ed-migalhas a:hover { color: var(--ed-sobre-ink); }
.ed-uf-numeros { list-style: none; display: flex; flex-wrap: wrap; gap: 12px 36px; margin: 1.4rem 0 0; padding: 0; }
.ed-uf-numeros li { display: flex; align-items: baseline; gap: .5rem; }
.ed-uf-numeros strong { font-size: 2rem; font-weight: 800; letter-spacing: -0.03em; line-height: 1; color: var(--ed-sobre-ink); font-variant-numeric: tabular-nums; }
.ed-uf-numeros span { color: var(--ed-sobre-ink-suave); font-weight: 600; }
.ed-uf-corpo { max-width: var(--ed-largura); margin: 0 auto; padding: 40px 16px 96px; }
.ed-uf-cidades { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 20px; }
.ed-uf-cidades > li[hidden] { display: none; }
.ed-uf-cidade { padding: 20px; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-xs); }
.ed-uf-cidade-topo { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.ed-uf-cidade-topo h2 { flex: 1; margin: 0; font-size: 1.3rem; letter-spacing: -0.02em; }
.ed-uf-pino { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: var(--ed-radius-md);
  background: color-mix(in srgb, var(--ed-primary-500) 12%, transparent); color: var(--ed-primary-600); }
.ed-uf-contagem { color: var(--ed-text-muted); font-size: .8125rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ed-uf-orgaos { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ed-uf-orgaos-grade { grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 16px; }
.ed-uf-orgao { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 12px 14px; color: var(--ed-text); text-decoration: none;
  background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg);
  transition: border-color 180ms var(--ed-ease), box-shadow 180ms var(--ed-ease), transform 180ms var(--ed-ease); }
.ed-uf-orgao:hover { color: var(--ed-text); border-color: color-mix(in srgb, var(--ed-primary-500) 40%, var(--ed-border-suave)); box-shadow: var(--ed-shadow-sm); transform: translateY(-1px); }
.ed-uf-orgao:focus-visible { outline: 3px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-uf-orgao-marca { width: 56px; height: 56px; flex: none; display: grid; place-items: center; border-radius: var(--ed-radius-md);
  background: color-mix(in srgb, var(--ed-primary-500) 12%, transparent); color: var(--ed-primary-600); font-size: 1.5rem; }
.ed-uf-orgao-marca.com-logo { background: #FFFFFF; border: 1px solid var(--ed-border-suave); }
.ed-uf-orgao-marca img { width: 44px; height: 44px; object-fit: contain; }
.ed-uf-orgao-txt { display: grid; gap: .2rem; min-width: 0; }
.ed-uf-orgao-txt strong { font-weight: 800; line-height: 1.3; }
.ed-uf-orgao-txt small { display: flex; align-items: center; gap: .35rem; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-uf-orgao-txt small .bi { color: var(--ed-primary-600); }
.ed-uf-ir { display: inline-flex; align-items: center; gap: .35rem; color: var(--ed-primary-600); font-size: .875rem; font-weight: 800; white-space: nowrap; }
.ed-uf-ir .bi { transition: transform 180ms var(--ed-ease); }
.ed-uf-orgao:hover .ed-uf-ir .bi { transform: translateX(3px); }
.ed-uf-corpo .ed-servicos-vazio { margin-top: 20px; }
.ed-uf-convite { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; margin-top: 40px; padding: 24px 28px;
  border: 1.5px dashed var(--ed-border-strong); border-radius: var(--ed-radius-xl); }
.ed-uf-convite h2 { margin: 0 0 .3rem; font-size: 1.2rem; letter-spacing: -0.01em; }
.ed-uf-convite p { margin: 0; color: var(--ed-text-muted); line-height: 1.55; max-width: 68ch; }
.ed-uf-convite-icone { width: 48px; height: 48px; display: grid; place-items: center; border-radius: var(--ed-radius-md); background: var(--ed-accent-50); color: var(--ed-accent-700); font-size: 1.35rem; }
@media (max-width: 699.98px) {
  .ed-uf-numeros strong { font-size: 1.6rem; }
  .ed-uf-cidade { padding: 16px; }
  .ed-uf-orgao { grid-template-columns: auto 1fr; }
  .ed-uf-ir { display: none; }
  .ed-uf-orgao-marca { width: 48px; height: 48px; }
  .ed-uf-orgao-marca img { width: 38px; height: 38px; }
  .ed-uf-convite { grid-template-columns: 1fr; padding: 20px; }
  .ed-uf-convite .btn { justify-self: start; }
}
.ed-onde-orgaos { list-style: none; flex-basis: 100%; margin: .25rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 12px; }
.ed-onde-proximo { display: flex; align-items: center; gap: 14px; height: 100%; padding: 12px 14px; color: var(--ed-text); text-decoration: none; border: 1.5px dashed var(--ed-border-strong);
  border-radius: var(--ed-radius-lg); transition: border-color 180ms var(--ed-ease), background-color 180ms var(--ed-ease); }
.ed-onde-proximo:hover { color: var(--ed-text); border-color: var(--ed-primary-500); background: var(--ed-canvas); }
.ed-onde-proximo:focus-visible { outline: 3px solid var(--ed-primary-500); outline-offset: 2px; }
.ed-onde-proximo span:last-child { display: grid; gap: .15rem; }
.ed-onde-proximo small { color: var(--ed-text-muted); }
.ed-onde-proximo .ed-uf-convite-icone { width: 56px; height: 56px; flex: none; }
@media (prefers-reduced-motion: reduce) { .ed-uf-orgao, .ed-uf-ir .bi { transition: none; } .ed-uf-orgao:hover { transform: none; } .ed-uf-orgao:hover .ed-uf-ir .bi { transform: none; } }

/* ================================================================ acessibilidade dos portais públicos (06/10/2026)
   O sistema do projeto gillyard (barra A−/A/A+/◐, painel flutuante com o símbolo universal, leitor em voz alta,
   atalhos do e-MAG e VLibras) na linguagem do EasyDiário. Os modos são classes no <html> (ed-fonte-*, ed-legivel,
   ed-cinza, ed-contraste, ed-negativo, ed-claro, ed-sublinhar), aplicadas antes da pintura (acessibilidade_cabeca). */
html.ed-fonte-m2 { font-size: 75%; }
html.ed-fonte-m1 { font-size: 87.5%; }
html.ed-fonte-1 { font-size: 112.5%; }
html.ed-fonte-2 { font-size: 125%; }
html.ed-fonte-3 { font-size: 137.5%; }

.ed-utilbar { background: var(--ed-ink-900); border-bottom: 1px solid var(--ed-ink-fio); font-size: .8125rem; }
.ed-utilbar-in { max-width: var(--ed-largura); margin: 0 auto; padding: 0 16px; min-height: 36px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ed-utilbar-atalhos { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 16px; }
.ed-utilbar-atalhos a { color: var(--ed-sobre-ink-suave); text-decoration: none; }
.ed-utilbar-atalhos a:hover { color: var(--ed-sobre-ink); text-decoration: underline; }
.ed-utilbar kbd { margin-left: .2rem; padding: 0 .3rem; border: 1px solid var(--ed-ink-600); border-radius: 4px; background: transparent; color: var(--ed-sobre-ink-fraco); font-size: .6875rem; font-family: inherit; }
.ed-utilbar-acess { display: flex; gap: 4px; }
.ed-utilbar-acess button { min-width: 32px; height: 28px; padding: 0 .45rem; border: 1px solid var(--ed-ink-600); border-radius: var(--ed-radius-sm); background: transparent;
  color: var(--ed-sobre-ink-suave); font-size: .8125rem; font-weight: 800; line-height: 1; cursor: pointer; transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-utilbar-acess button:hover { background: var(--ed-ink-700); color: var(--ed-sobre-ink); }
.ed-utilbar-acess button[aria-pressed="true"] { background: var(--ed-accent-500); border-color: var(--ed-accent-500); color: var(--ed-ink-900); }
.ed-utilbar-acess button:focus-visible, .ed-utilbar-atalhos a:focus-visible { outline: 2px solid var(--ed-accent-500); outline-offset: 2px; }
@media (max-width: 575.98px) { .ed-utilbar-atalhos a:not(:last-child) { display: none; } }

.ed-a11y { position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 1045; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.ed-a11y[hidden] { display: none; }
.ed-a11y-btn { width: 56px; height: 56px; padding: 0; display: grid; place-items: center; cursor: pointer; border: 3px solid #FFFFFF; border-radius: var(--ed-radius-lg);
  background: var(--ed-primary-600); box-shadow: 0 8px 24px rgba(15, 30, 51, .28), 0 2px 6px rgba(15, 30, 51, .18);
  transition: transform 180ms var(--ed-ease), background-color 180ms var(--ed-ease), box-shadow 180ms var(--ed-ease); }
.ed-a11y-btn img { width: 34px; height: 32px; display: block; filter: brightness(0) invert(1); }
.ed-a11y-btn:hover, .ed-a11y-btn[aria-expanded="true"] { background: var(--ed-primary-700); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(15, 30, 51, .3), 0 2px 6px rgba(15, 30, 51, .18); }
.ed-a11y-btn:focus-visible { outline: 3px solid var(--ed-accent-500); outline-offset: 3px; }
.ed-a11y-menu { width: 300px; max-height: min(72vh, 620px); overflow: auto; padding: 8px; background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: 16px;
  box-shadow: 0 16px 40px rgba(15, 30, 51, .2), 0 2px 6px rgba(15, 30, 51, .08); }
.ed-a11y-menu[hidden] { display: none; }
.ed-a11y-titulo { margin: 4px 8px 6px; font-size: .6875rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ed-text-muted); }
.ed-a11y-menu button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: 0; border-left: 3px solid transparent; border-radius: 10px;
  background: transparent; color: var(--ed-text); font: inherit; font-size: .875rem; font-weight: 600; text-align: left; cursor: pointer; }
.ed-a11y-menu button:hover { background: var(--ed-surface-sunken); }
.ed-a11y-menu button:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: -2px; }
.ed-a11y-menu button[aria-pressed="true"] { border-left-color: var(--ed-accent-500); background: var(--ed-primary-50); color: var(--ed-primary-700); }
.ed-a11y-menu button[aria-pressed="true"]::after { content: "✓"; margin-left: auto; font-weight: 800; }
.ed-a11y-menu button[disabled] { opacity: .5; cursor: not-allowed; }
.ed-a11y-ic { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--ed-primary-50); color: var(--ed-primary-600); }
.ed-a11y-sep { height: 1px; margin: 6px 8px; background: var(--ed-border); }
.ed-a11y-link { display: block; margin: 4px 8px 6px; font-size: .8125rem; font-weight: 700; }
@media (max-width: 575.98px) {
  .ed-a11y { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
  .ed-a11y-btn { width: 48px; height: 48px; }
  .ed-a11y-btn img { width: 28px; height: 26px; }
  .ed-a11y-menu { position: fixed; left: 0; right: 0; bottom: 0; width: auto; max-height: 72vh; border-radius: 16px 16px 0 0;
    padding-bottom: calc(68px + env(safe-area-inset-bottom)); } /* o botão redondo fica embaixo da lista, não por cima */
  body:has(.ed-a11y-menu:not([hidden])) :is([vw], [id^="vlibras"]) { visibility: hidden; } /* a mão do VLibras não flutua por cima do painel aberto */
}
mark.ed-lendo { background: var(--ed-accent-50); color: inherit; outline: 2px solid var(--ed-accent-500); border-radius: 3px; }

/* Fonte mais legível: família de sistema sem serifa, mais espaço entre letras, palavras e linhas. */
html.ed-legivel body, html.ed-legivel h1, html.ed-legivel h2, html.ed-legivel h3, html.ed-legivel .btn { font-family: Arial, Verdana, "Segoe UI", sans-serif; letter-spacing: .02em; }
html.ed-legivel body { word-spacing: .08em; line-height: 1.75; }
/* Links sublinhados (botões e cartões continuam sem sublinhado: já têm forma de botão). */
html.ed-sublinhar a { text-decoration: underline !important; text-underline-offset: 2px; }
html.ed-sublinhar a.btn, html.ed-sublinhar a.ed-orgao, html.ed-sublinhar a.ed-marca, html.ed-sublinhar .ed-portal-nav a, html.ed-sublinhar a.ed-voltar-topo,
html.ed-sublinhar a.ed-servico, html.ed-sublinhar a.ed-servico-outro { text-decoration: none !important; }
html.ed-sublinhar a.ed-servico .ed-servico-nome { text-decoration: underline; text-underline-offset: 3px; }
/* Escala de cinza e contraste negativo: o filtro vai em cada bloco da página, nunca no painel (que ficaria preso nele). */
html.ed-cinza body > *:not(.ed-a11y):not([vw]):not([id^="vlibras"]) { filter: grayscale(1); }
html.ed-negativo body { background: #000000; }
html.ed-negativo body > *:not(.ed-a11y):not([vw]):not([id^="vlibras"]) { filter: invert(1) hue-rotate(180deg); }
html.ed-negativo body > *:not(.ed-a11y):not([vw]):not([id^="vlibras"]) img { filter: invert(1) hue-rotate(180deg); }

/* Fundo claro: o cromo escuro (topo, hero, painéis, rodapé) vira claro, com o texto escuro. */
html.ed-claro { --ed-ink-900: #FFFFFF; --ed-ink-850: #F7F9FB; --ed-ink-800: #EEF2F6; --ed-ink-700: #E3E9EF; --ed-ink-600: #C4CDC9; --ed-ink-fio: #E1E7E4;
  --ed-sobre-ink: #0E1F1B; --ed-sobre-ink-suave: #3E4A5E; --ed-sobre-ink-fraco: #53655F;
  /* sobre branco o âmbar da marca não é legível como texto: o acento passa ao degrau de texto (6,1:1) */
  --ed-accent-500: #6F5213; }
html.ed-claro .ed-cromo, html.ed-claro .ed-portal-cromo .ed-portal-topo, html.ed-claro .ed-hero-portal, html.ed-claro .ed-fecho-duas { background: #FFFFFF !important; border-bottom: 1px solid var(--ed-border); }
html.ed-claro .ed-hero-luz, html.ed-claro .ed-acesso-luz, html.ed-claro .ed-hero-marca-agua, html.ed-claro .ed-acesso-marca-agua, html.ed-claro .ed-fecho-duas::after { display: none; }
html.ed-claro .ed-vidro { background: var(--ed-surface-sunken); border-color: var(--ed-border); box-shadow: none; }
html.ed-claro .ed-hero-portal .ed-vidro .form-control { background: #FFFFFF; border-color: var(--ed-border-controle); color: var(--ed-text); }
html.ed-claro .ed-hero-portal .ed-vidro .form-control::placeholder { color: var(--ed-text-muted); }
html.ed-claro .btn-outline-light { --bs-btn-color: var(--ed-text); --bs-btn-border-color: var(--ed-border-strong); --bs-btn-hover-bg: var(--ed-surface-sunken); --bs-btn-hover-color: var(--ed-text); }
html.ed-claro .ed-hero-selos li { background: var(--ed-surface-sunken); border-color: var(--ed-border); }
html.ed-claro .ed-sim-aviso { background: var(--ed-surface-sunken); color: var(--ed-text-muted); border: 1px solid var(--ed-border); }
html.ed-claro .ed-sim-aviso strong { color: var(--ed-text); }

/* Alto contraste: fundo preto, texto branco, links e destaques em amarelo (o mesmo do gillyard e dos portais gov.br). */
html.ed-contraste { --ed-canvas: #000000; --ed-surface: #000000; --ed-surface-sunken: #000000; --ed-text: #FFFFFF; --ed-text-muted: #E6E6E6;
  --ed-border: #FFFFFF; --ed-border-suave: #FFFFFF; --ed-border-strong: #FFFFFF; --ed-border-controle: #FFFFFF;
  --ed-ink-900: #000000; --ed-ink-850: #000000; --ed-ink-800: #000000; --ed-ink-700: #1A1A1A; --ed-ink-600: #FFFFFF; --ed-ink-fio: #FFFFFF;
  --ed-sobre-ink: #FFFFFF; --ed-sobre-ink-suave: #FFFFFF; --ed-sobre-ink-fraco: #E6E6E6;
  --ed-primary-50: #000000; --ed-primary-100: #000000; --ed-primary-300: #FFFFFF; --ed-primary-400: #FFD200; --ed-primary-500: #FFD200; --ed-primary-600: #FFD200; --ed-primary-700: #FFD200;
  --ed-accent-50: #000000; --ed-accent-500: #FFD200; --ed-accent-600: #FFD200; --ed-accent-700: #FFD200;
  --ed-success-50: #000000; --ed-success-500: #FFFFFF; --ed-success-700: #FFFFFF; --ed-danger-50: #000000; --ed-danger-500: #FFFFFF; --ed-danger-700: #FFFFFF;
  --ed-warning-50: #000000; --ed-warning-500: #FFFFFF; --ed-warning-700: #FFFFFF; --ed-neutral-500: #FFFFFF; }
html.ed-contraste body { background: #000000; color: #FFFFFF; }
html.ed-contraste a { color: #FFD200; text-decoration: underline; }
html.ed-contraste a:hover { color: #FFFFFF; }
html.ed-contraste a.btn, html.ed-contraste a.ed-orgao, html.ed-contraste a.ed-marca, html.ed-contraste .ed-portal-nav a,
html.ed-contraste a.ed-servico, html.ed-contraste a.ed-servico-outro { text-decoration: none; }
html.ed-contraste a.ed-servico .ed-servico-nome, html.ed-contraste .ed-servico-ir { color: #FFD200; }
html.ed-contraste :focus-visible { outline: 3px solid #FFD200 !important; outline-offset: 3px; }
html.ed-contraste ::selection { background: #FFD200; color: #000000; }
html.ed-contraste mark { background: #FFD200; color: #000000; }
html.ed-contraste .ed-cromo, html.ed-contraste .ed-hero-portal, html.ed-contraste .ed-fecho-duas, html.ed-contraste .ed-vidro, html.ed-contraste .ed-card,
html.ed-contraste .ed-jornada, html.ed-contraste .ed-jornada-sim, html.ed-contraste .ed-acesso, html.ed-contraste .ed-orgao, html.ed-contraste .ed-a11y-menu,
html.ed-contraste .ed-sim-aviso, html.ed-contraste .ed-zap, html.ed-contraste .ed-hero-flutua, html.ed-contraste .ed-servico, html.ed-contraste .ed-servicos-guia,
html.ed-contraste .ed-servico-outro, html.ed-contraste .ed-servicos-vazio, html.ed-contraste .ed-servico-chip, html.ed-contraste .ed-tour-tela,
html.ed-contraste .ed-tour-passo.ativo, html.ed-contraste .ed-tour-janela, html.ed-contraste .ed-tour-url, html.ed-contraste .ed-tour-recibo > div, html.ed-contraste .ed-tour-avisos li,
html.ed-contraste .ed-tour-aviso, html.ed-contraste .ed-tour-nota, html.ed-contraste .ed-tour-ok { background: #000000 !important; background-image: none !important; color: #FFFFFF; border: 1px solid #FFFFFF; box-shadow: none; }
html.ed-contraste .ed-hero-luz, html.ed-contraste .ed-acesso-luz, html.ed-contraste .ed-hero-marca-agua, html.ed-contraste .ed-acesso-marca-agua, html.ed-contraste .ed-fecho-duas::after { display: none; }
html.ed-contraste .form-control, html.ed-contraste .form-select { background-color: #000000 !important; color: #FFFFFF !important; border-color: #FFFFFF !important; }
html.ed-contraste .form-control::placeholder { color: #CCCCCC !important; }
html.ed-contraste .btn-primary, html.ed-contraste .ed-portal-nav a.ed-nav-destaque, html.ed-contraste .ed-a11y-btn { --bs-btn-bg: #FFD200; --bs-btn-border-color: #FFD200; --bs-btn-color: #000000;
  --bs-btn-hover-bg: #FFFFFF; --bs-btn-hover-border-color: #FFFFFF; --bs-btn-hover-color: #000000; background: #FFD200 !important; color: #000000 !important; border-color: #FFD200 !important; }
html.ed-contraste .ed-a11y-btn img { filter: brightness(0); }
html.ed-contraste .btn-outline-light, html.ed-contraste .btn-outline-primary, html.ed-contraste .btn-outline-secondary {
  --bs-btn-color: #FFD200; --bs-btn-border-color: #FFD200; --bs-btn-hover-bg: #FFD200; --bs-btn-hover-color: #000000; background: #000000; }
html.ed-contraste .ed-badge, html.ed-contraste .ed-sim-estado, html.ed-contraste .ed-alerta { background: #000000 !important; color: #FFFFFF !important; border: 1px solid #FFFFFF !important; }
html.ed-contraste .ed-a11y-menu button[aria-pressed="true"], html.ed-contraste .ed-utilbar-acess button[aria-pressed="true"] { background: #FFD200; color: #000000; border-color: #FFD200; }
html.ed-contraste .ed-portal-topo, html.ed-contraste .ed-utilbar { border-bottom: 2px solid #FFFFFF; }
html.ed-contraste .ed-rodape { border-top: 3px solid #FFD200; }
html.ed-contraste .ed-placa-logo, html.ed-contraste .ed-rodape-orgao-logo { background: #FFFFFF; }

/* Página /acessibilidade */
.ed-a11y-lista { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: 12px; }
.ed-a11y-lista li { display: flex; gap: 12px; align-items: flex-start; }
.ed-a11y-lista strong { display: block; }
.ed-a11y-atalhos { margin-bottom: 1rem; }
.ed-a11y-atalhos td:first-child { white-space: nowrap; width: 1%; }
.ed-texto-legal kbd { padding: .05rem .4rem; border: 1px solid var(--ed-border-strong); border-bottom-width: 2px; border-radius: 4px; background: var(--ed-surface-sunken); color: var(--ed-text); font-family: inherit; font-size: .8125rem; font-weight: 700; }
.ed-a11y-contato { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ed-a11y-contato li { display: flex; gap: 10px; align-items: baseline; }
.ed-a11y-contato i { color: var(--ed-primary-600); }

@media (prefers-reduced-motion: reduce) { .ed-a11y-btn, .ed-utilbar-acess button { transition: none; } .ed-a11y-btn:hover { transform: none; } }
@media print { .ed-utilbar, .ed-a11y, [vw] { display: none !important; } }

/* ------------------------------------------------------------------ Caixa (migração 017; versão 2 em 07/10/2026)
   Pedido: "mais design, mais cor, algo mais amigável". A cor continua com significado: o TOM DA SITUAÇÃO pinta abas,
   colunas e selos; âmbar = novo/vence logo; tijolo = atrasado; jade = tudo em dia; o avatar do interessado usa uma de
   seis cores de identidade (mesma pessoa, mesma cor), sem o âmbar e o tijolo, que aqui já querem dizer outra coisa. */

/* Tons de apoio (fundo 50, texto 700, preenchimento) por classe tom-*, usados pelas pílulas e pelas colunas. */
.ed-caixa-abas a, .ed-quadro-col, .ed-caixa-aba-ponto, .ed-caixa-prazo, .ed-caixa-vazio { --t: var(--ed-neutral-500); --t-50: var(--ed-neutral-50); --t-700: var(--ed-neutral-700); --t-forte: var(--ed-neutral-500); --t-borda: rgba(85, 103, 126, .28); --t-lavagem: rgba(85, 103, 126, .05); }
:is(.ed-caixa-abas a, .ed-quadro-col, .ed-caixa-aba-ponto, .ed-caixa-prazo, .ed-caixa-vazio).tom-primary { --t: var(--ed-primary-500); --t-50: var(--ed-primary-50); --t-700: var(--ed-primary-700); --t-forte: var(--ed-primary-500); --t-borda: rgba(13, 101, 120, .28); --t-lavagem: rgba(13, 101, 120, .05); }
:is(.ed-caixa-abas a, .ed-quadro-col, .ed-caixa-aba-ponto, .ed-caixa-prazo, .ed-caixa-vazio).tom-success { --t: var(--ed-success-500); --t-50: var(--ed-success-50); --t-700: var(--ed-success-700); --t-forte: var(--ed-success-500); --t-borda: rgba(18, 128, 92, .28); --t-lavagem: rgba(18, 128, 92, .05); }
:is(.ed-caixa-abas a, .ed-quadro-col, .ed-caixa-aba-ponto, .ed-caixa-prazo, .ed-caixa-vazio).tom-warning { --t: var(--ed-warning-500); --t-50: var(--ed-warning-50); --t-700: var(--ed-warning-700); --t-forte: var(--ed-warning-500); --t-borda: rgba(162, 87, 26, .28); --t-lavagem: rgba(162, 87, 26, .05); }
:is(.ed-caixa-abas a, .ed-quadro-col, .ed-caixa-aba-ponto, .ed-caixa-prazo, .ed-caixa-vazio).tom-danger { --t: var(--ed-danger-500); --t-50: var(--ed-danger-50); --t-700: var(--ed-danger-700); --t-forte: var(--ed-danger-500); --t-borda: rgba(200, 53, 42, .28); --t-lavagem: rgba(200, 53, 42, .05); }
:is(.ed-caixa-abas a, .ed-quadro-col, .ed-caixa-aba-ponto, .ed-caixa-prazo, .ed-caixa-vazio).tom-accent { --t: var(--ed-accent-600); --t-50: var(--ed-accent-50); --t-700: var(--ed-accent-700); --t-forte: var(--ed-accent-700); --t-borda: rgba(200, 127, 6, .35); --t-lavagem: rgba(197, 160, 89, .07); }

/* Saudação: cartão com as duas luzes da marca (primária embaixo à esquerda, acento no alto à direita). */
.ed-caixa-ola { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; max-width: var(--ed-largura); margin-bottom: 1rem; padding: 1.35rem 1.5rem; overflow: hidden; border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-sm);
  background: radial-gradient(circle at 100% 0, rgba(197, 160, 89, .16), transparent 42%), radial-gradient(circle at 0 120%, rgba(13, 101, 120, .13), transparent 48%), var(--ed-surface); }
.ed-caixa-ola-marca { display: grid; place-items: center; flex: none; width: 56px; height: 56px; border-radius: 18px; background: linear-gradient(140deg, var(--ed-primary-400), var(--ed-primary-600)); color: #FFFFFF; font-size: 1.5rem; font-weight: 800; box-shadow: 0 8px 20px -8px rgba(13, 101, 120, .6), inset 0 -3px 0 var(--ed-accent-500); }
.ed-caixa-ola-texto { flex: 1 1 18rem; min-width: 0; }
.ed-caixa-ola h1 { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem); font-weight: 800; letter-spacing: -0.02em; }
.ed-caixa-ola-resumo { margin: .3rem 0 0; color: var(--ed-text-muted); font-size: 1rem; }
.ed-caixa-ola-resumo a { color: var(--ed-primary-600); text-decoration: none; border-bottom: 2px solid var(--ed-primary-100); }
.ed-caixa-ola-resumo a.tom-danger { color: var(--ed-danger-700); border-bottom-color: rgba(200, 53, 42, .3); }
.ed-caixa-ola-resumo a.tom-accent { color: var(--ed-accent-700); border-bottom-color: rgba(197, 160, 89, .45); }
.ed-caixa-ola-resumo a:hover { border-bottom-color: currentColor; }
.ed-caixa-ferramentas { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }

/* Atalhos: os cards de indicador do sistema, clicáveis; o escolhido ganha o anel no tom. Zerado fica mais quieto. */
.ed-caixa-atalhos { max-width: var(--ed-largura); margin-bottom: 1.25rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (min-width: 768px) and (max-width: 1279.98px) { .ed-caixa-atalhos .ed-stat-icone { display: none; } }
.ed-stat.tom-primary { --ed-tom: var(--ed-primary-500); --ed-tom-fundo: rgba(13, 101, 120, .12); --ed-tom-lavagem: rgba(13, 101, 120, .07); }
.ed-caixa-atalhos .ed-stat.ativo { border-color: var(--ed-tom); box-shadow: 0 0 0 3px var(--ed-tom-fundo), var(--ed-shadow-md); }
.ed-caixa-atalhos .ed-stat.zerado .ed-stat-num { color: var(--ed-text-muted); }
.ed-caixa-atalhos .ed-stat-num { font-size: 1.75rem; }

/* Controle segmentado Lista | Quadro. */
.ed-segmentado { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface-sunken); }
.ed-segmentado button { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .3rem .85rem; border: 0; border-radius: 9px; background: transparent; color: var(--ed-text-muted); font-size: .875rem; font-weight: 700; transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-segmentado button:hover { color: var(--ed-text); }
.ed-segmentado button:focus-visible { outline: 0; box-shadow: var(--ed-ring); }
.ed-segmentado button[aria-pressed="true"] { background: var(--ed-surface); color: var(--ed-primary-700); box-shadow: var(--ed-shadow-xs), inset 0 -2px 0 var(--ed-accent-500); }
.ed-quadro-colunas .ed-lista-links { gap: .15rem; min-width: 15rem; border: 1px solid var(--ed-border); }
.ed-quadro-colunas .form-check { display: flex; align-items: center; gap: .5rem; min-height: 36px; margin: 0; padding-left: 0; }
.ed-quadro-colunas .form-check-input { float: none; margin: 0; }

/* Abas (07/10/2026, "ficar minimalista, numa linha só"): texto com a bolinha do tom, sem borda nem fundo; só a
   escolhida ganha o fundo 50 e o texto 700 do tom. Total discreto; não lidos na pílula âmbar. Nunca quebram linha: se
   não couber, as situações rolam de lado sem barra e esmaecem na borda (o caixa.js liga .rola/.no-fim); Encerrados,
   Todos e a estrela ficam presos à direita, sempre à vista. No celular a faixa inteira rola. */
.ed-caixa-abas { position: relative; display: flex; flex-wrap: nowrap; align-items: center; max-width: var(--ed-largura); margin-bottom: .85rem; }
.ed-caixa-abas-sit { position: relative; display: flex; flex: 1 1 auto; align-items: center; gap: .1rem; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.ed-caixa-abas-fixas { display: flex; flex: none; align-items: center; gap: .1rem; }
.ed-caixa-abas::-webkit-scrollbar, .ed-caixa-abas-sit::-webkit-scrollbar { display: none; }
:is(.ed-caixa-abas, .ed-caixa-abas-sit).rola:not(.no-fim) { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent); }
.ed-caixa-abas a { display: inline-flex; flex: none; align-items: center; gap: .35rem; min-height: 40px; padding: .3rem .55rem; border-radius: var(--ed-radius-pill); color: var(--ed-text-muted); font-size: .8125rem; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-caixa-abas a:hover { background: var(--t-50); color: var(--ed-text); }
.ed-caixa-abas a.ativo { background: var(--t-50); color: var(--t-700); box-shadow: inset 0 0 0 1px var(--t-borda); }
.ed-caixa-abas a:focus-visible { outline: 0; box-shadow: var(--ed-ring); }
.ed-caixa-abas a > .bi { color: var(--t); }
.ed-caixa-aba-ponto { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--t); }
.ed-caixa-n { color: var(--ed-text-muted); font-size: .75rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ed-caixa-abas a.ativo .ed-caixa-n { color: inherit; }
.ed-caixa-novos { min-width: 1.25rem; padding: 0 .35rem; border-radius: var(--ed-radius-pill); background: var(--ed-accent-500); color: var(--ed-ink-900); font-size: .6875rem; font-weight: 800; line-height: 1.25rem; text-align: center; font-variant-numeric: tabular-nums; }
.ed-caixa-abas-fio { flex: 0 0 1px; align-self: stretch; margin: .55rem .3rem; background: var(--ed-border); }
@media (hover: none) { .ed-caixa-abas a { min-height: 44px; } }

/* Lista estilo e-mail: avatar · quem, número e hora · assunto · prévia · selos. Lida = afundada; não lida = branca,
   800 e bolinha âmbar, como no e-mail. */
.ed-caixa-lista { position: relative; max-width: var(--ed-largura); padding: 0; overflow: hidden; border-radius: var(--ed-radius-lg); }
.ed-caixa-lista > .ed-contagem { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; border-bottom: 1px solid var(--ed-border-suave); }
.ed-caixa-filtro { display: inline-flex; align-items: center; gap: .35rem; padding: .1rem .3rem .1rem .65rem; border-radius: var(--ed-radius-pill); background: var(--ed-primary-50); color: var(--ed-primary-700); font-weight: 700; }
.ed-caixa-filtro a { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: inherit; }
.ed-caixa-filtro a:hover { background: var(--ed-primary-100); }
.ed-caixa-itens { list-style: none; margin: 0; padding: 0; }
.ed-caixa-item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; background: var(--ed-surface-sunken); border-bottom: 1px solid var(--ed-border-suave); transition: background-color var(--ed-dur) var(--ed-ease); }
.ed-caixa-item:last-child { border-bottom: 0; }
.ed-caixa-item.is-nao-lido { background: var(--ed-surface); box-shadow: inset 3px 0 0 var(--ed-accent-500); }
.ed-caixa-item:hover { background: var(--ed-primary-50); }
.ed-caixa-link { display: flex; align-items: flex-start; gap: .9rem; min-width: 0; padding: .9rem .5rem .9rem 1.1rem; color: var(--ed-text); text-decoration: none; }
.ed-caixa-link:focus-visible { outline: 0; box-shadow: inset var(--ed-ring); }
.ed-caixa-corpo { display: grid; gap: .15rem; min-width: 0; flex: 1; }
.ed-caixa-linha1 { display: flex; align-items: baseline; gap: .5rem; min-width: 0; }
.ed-caixa-ponto { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; align-self: center; }
.is-nao-lido .ed-caixa-ponto { background: var(--ed-accent-600); }
.ed-caixa-item:not(.is-nao-lido) .ed-caixa-linha1 .ed-caixa-ponto { display: none; }
.ed-caixa-quem { min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
.ed-caixa-num { color: var(--ed-text-muted); font-size: .8125rem; font-weight: 700; white-space: nowrap; }
.ed-caixa-linha1 time { margin-left: auto; padding-left: .5rem; color: var(--ed-text-muted); font-size: .8125rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ed-caixa-assunto { font-weight: 600; overflow-wrap: anywhere; }
.ed-caixa-previa { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; color: var(--ed-text-muted); font-size: .875rem; }
.ed-caixa-selos { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .35rem; }
.is-nao-lido .ed-caixa-quem, .is-nao-lido .ed-caixa-assunto { font-weight: 800; }
.is-nao-lido .ed-caixa-linha1 time { color: var(--ed-text); font-weight: 700; }
.ed-caixa-acoes { display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .7rem .75rem 0 0; }
.ed-caixa-acoes form[data-caixa-acao="nao-lido"] { opacity: 0; transition: opacity var(--ed-dur) var(--ed-ease); }
.ed-caixa-item:hover .ed-caixa-acoes form, .ed-caixa-item:focus-within .ed-caixa-acoes form { opacity: 1; }
@media (hover: none) { .ed-caixa-acoes form[data-caixa-acao="nao-lido"] { opacity: 1; } }

/* Avatar do interessado: iniciais em 700 sobre o fundo 50 de uma das seis cores de identidade (todas ≥ 6,2:1). */
.ed-avatar { display: inline-grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 50%; font-size: .9375rem; font-weight: 800; letter-spacing: .02em; }
.ed-avatar-p { width: 26px; height: 26px; font-size: .6875rem; }
.ed-av-1 { background: #E6F3F6; color: #0A4F5C; }
.ed-av-2 { background: #E4F6EF; color: #0B5E43; }
.ed-av-3 { background: #FBEEE3; color: #7B420F; }
.ed-av-4 { background: #F9E6EF; color: #8E2C5B; }
.ed-av-5 { background: #EBF4E2; color: #3B6316; }
.ed-av-6 { background: #E9EFFA; color: #2B4F96; }
.ed-av-sigilo { background: var(--ed-neutral-50); color: var(--ed-neutral-700); }

/* Prazo por extenso: pílula no tom (vencido = tijolo, vence logo = âmbar, folgado = cinza; "devolver até" = azul). */
.ed-caixa-prazo { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .55rem; border: 1px solid var(--t-borda); border-radius: var(--ed-radius-pill); background: var(--t-50); color: var(--t-700); font-size: .75rem; font-weight: 700; white-space: nowrap; }

/* Estrela e o botão "marcar como não lido": botões só de ícone, redondos, com title. */
.ed-caixa-estrela, .ed-caixa-acao { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ed-border-controle); font-size: 1.05rem; transition: color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-caixa-estrela::before, .ed-caixa-acao::before { content: ""; position: absolute; inset: -4px; }
.ed-caixa-estrela:hover { color: var(--ed-accent-600); background: var(--ed-accent-50); }
.ed-caixa-estrela.ligada { color: var(--ed-accent-600); }
.ed-caixa-acao:hover { color: var(--ed-primary-600); background: var(--ed-primary-50); }
.ed-caixa-estrela:focus-visible, .ed-caixa-acao:focus-visible { outline: 0; box-shadow: var(--ed-ring); }

/* Estado vazio: ícone num círculo tonal e uma frase de gente. */
.ed-caixa-vazio { display: grid; justify-items: center; gap: .35rem; padding: 2.75rem 1rem 3rem; text-align: center; }
.ed-caixa-vazio-icone { display: grid; place-items: center; width: 72px; height: 72px; margin-bottom: .5rem; border-radius: 50%; background: var(--t-50); color: var(--t); font-size: 2rem; box-shadow: 0 0 0 10px var(--t-lavagem); }
.ed-caixa-vazio-titulo { margin: 0; font-size: 1.125rem; font-weight: 800; letter-spacing: -0.01em; }
.ed-caixa-vazio-texto { margin: 0; max-width: 32rem; color: var(--ed-text-muted); }

/* Quadro: coluna lavada no tom da situação, filete superior de 3 px no tom, contador cheio no tom. */
.ed-quadro { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(17rem, 1fr); align-items: start; gap: .9rem; padding-bottom: .75rem; overflow-x: auto; scrollbar-width: thin; }
.ed-quadro-col { --ed-quadro-tom: var(--t); display: flex; flex-direction: column; min-height: 14rem; max-height: calc(100vh - 230px); border: 1px solid var(--t-borda); border-top: 4px solid var(--t); border-radius: var(--ed-radius-lg); background: linear-gradient(to bottom, var(--t-lavagem), var(--t-lavagem)), var(--ed-surface-sunken); transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease), opacity var(--ed-dur) var(--ed-ease); }
.ed-quadro-topo { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .8rem .9rem .5rem; }
.ed-quadro-topo h2 { display: flex; align-items: center; gap: .5rem; margin: 0; color: var(--t-700); font-size: .9375rem; font-weight: 800; letter-spacing: -0.01em; }
.ed-quadro-bolinha { flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--ed-quadro-tom); box-shadow: 0 0 0 3px var(--t-50, rgba(255, 255, 255, .6)); }
.ed-quadro-final { font-size: .75rem; color: var(--t); }
.ed-quadro-n { min-width: 1.75rem; padding: .05rem .5rem; border-radius: var(--ed-radius-pill); background: var(--t-forte); color: #FFFFFF; font-size: .8125rem; font-weight: 800; text-align: center; font-variant-numeric: tabular-nums; }
.ed-quadro-nota { margin: 0 .9rem .35rem; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-quadro-cartoes { flex: 1; display: grid; align-content: start; gap: .55rem; min-height: 4rem; margin: 0; padding: .35rem .6rem .75rem; overflow-y: auto; list-style: none; }
.ed-quadro-cartao { position: relative; padding: .7rem .75rem .65rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); box-shadow: var(--ed-shadow-xs); transition: box-shadow var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease), transform var(--ed-dur) var(--ed-ease), opacity var(--ed-dur) var(--ed-ease); }
.ed-quadro-cartao.is-nao-lido { box-shadow: inset 3px 0 0 var(--ed-accent-500), var(--ed-shadow-xs); }
.ed-quadro-cartao[draggable="true"] { cursor: grab; }
.ed-quadro-cartao:hover { border-color: var(--t-borda); box-shadow: var(--ed-shadow-md); transform: translateY(-1px); }
.ed-quadro-cartao.is-arrastando { opacity: .45; transform: rotate(-1.5deg); }
.ed-quadro-cartao.is-movendo { opacity: .6; pointer-events: none; }
.ed-quadro-cartao-topo { display: flex; align-items: center; gap: .4rem; }
.ed-quadro-cartao-topo .ed-num { color: var(--ed-text); font-weight: 700; text-decoration: none; }
.ed-quadro-cartao-topo .ed-num:hover { color: var(--ed-primary-600); text-decoration: underline; }
.ed-quadro-cartao:not(.is-nao-lido) .ed-caixa-ponto { display: none; }
.ed-quadro-estrela { margin-left: auto; }
.ed-quadro-estrela .ed-caixa-estrela, .ed-quadro-mover { width: 2rem; height: 2rem; font-size: .95rem; }
.ed-quadro-assunto { margin: .35rem 0 .5rem; font-size: .9rem; line-height: 1.35; overflow-wrap: anywhere; }
.ed-quadro-cartao.is-nao-lido .ed-num, .ed-quadro-cartao.is-nao-lido .ed-quadro-assunto { font-weight: 800; }
.ed-quadro-pe { display: flex; align-items: center; gap: .45rem; margin: 0; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-quadro-quem { min-width: 0; overflow-wrap: anywhere; }
.ed-quadro-pe time { margin-left: auto; white-space: nowrap; }
.ed-quadro-selos { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem; }
.ed-quadro-vazio { display: grid; justify-items: center; gap: .2rem; margin: .2rem .6rem .9rem; padding: 1.1rem .75rem; border: 2px dashed var(--t-borda); border-radius: var(--ed-radius-md); color: var(--t-700); font-size: .875rem; font-weight: 700; text-align: center; }
.ed-quadro-vazio .bi { font-size: 1.25rem; color: var(--t); }
.ed-quadro-vazio small { color: var(--ed-text-muted); font-weight: 600; }
/* Arrastando: a coluna que recebe acende no tom dela; a que não pode receber (final sem a posse, desativada) apaga. */
.ed-quadro-col.is-alvo { border-color: var(--t); background: var(--t-50); box-shadow: 0 0 0 3px var(--t-borda), var(--ed-shadow-md); }
.ed-quadro-col.is-proibida { opacity: .45; }
.ed-quadro-menu-opcoes { display: grid; gap: .4rem; margin-top: .75rem; }
.ed-quadro-menu-opcoes button { display: flex; align-items: center; gap: .6rem; width: 100%; min-height: 44px; padding: .5rem .8rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); color: var(--ed-text); font-weight: 700; text-align: left; transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-quadro-menu-opcoes button:hover:not([disabled]) { border-color: var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-quadro-menu-opcoes button[disabled] { opacity: .55; cursor: not-allowed; }
.ed-quadro-menu-opcoes small { margin-left: auto; color: var(--ed-text-muted); font-weight: 600; }
/* "Desfazer": o único aviso flutuante do sistema — nasce da ação da pessoa e some sozinho; tinta com o botão no acento. */
.ed-quadro-aviso { position: fixed; left: 50%; bottom: 24px; z-index: 1080; display: flex; align-items: center; gap: .9rem; max-width: min(36rem, calc(100vw - 32px)); padding: .65rem .7rem .65rem 1.1rem; border-radius: var(--ed-radius-md); background: var(--ed-ink-900); color: var(--ed-sobre-ink); box-shadow: var(--ed-shadow-lg); font-size: .9375rem; transform: translateX(-50%); }
.ed-quadro-aviso.tom-danger { box-shadow: inset 4px 0 0 var(--ed-danger-500), var(--ed-shadow-lg); }
.ed-quadro-aviso .btn { min-height: 36px; border: 0; background: transparent; color: var(--ed-accent-500); font-weight: 800; }
.ed-quadro-aviso .btn:hover { background: var(--ed-ink-700); color: var(--ed-accent-500); }

@media (max-width: 767.98px) {
  .ed-caixa-visao, .ed-caixa-so-largo { display: none !important; }
  .ed-caixa-ola { padding: 1.1rem 1rem; border-radius: var(--ed-radius-lg); }
  .ed-caixa-ola-marca { width: 46px; height: 46px; border-radius: 14px; font-size: 1.25rem; }
  .ed-caixa-ola-texto { flex-basis: 0; }
  .ed-caixa-abas { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .ed-caixa-abas-sit { flex: none; overflow: visible; }
  .ed-caixa-ferramentas { flex-basis: 100%; }
  .ed-caixa-linha1 { flex-wrap: wrap; row-gap: 0; }
  .ed-caixa-quem { flex: 1 1 0; }
  .ed-caixa-num { order: 3; flex-basis: 100%; }
  .ed-caixa-atalhos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .ed-caixa-atalhos .ed-stat { padding: .85rem .9rem; }
  .ed-caixa-atalhos .ed-stat-icone { display: none; }
  .ed-caixa-atalhos .ed-stat-apoio { display: none; }
  .ed-caixa-link { gap: .7rem; padding-left: .85rem; }
  .ed-avatar { width: 36px; height: 36px; font-size: .8125rem; }
}
@media (min-width: 768px) { .ed-caixa-so-celular { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .ed-segmentado button, .ed-caixa-abas a, .ed-caixa-item, .ed-caixa-acoes form, .ed-caixa-estrela, .ed-caixa-acao, .ed-quadro-col, .ed-quadro-cartao, .ed-quadro-menu-opcoes button { transition: none; }
  .ed-quadro-cartao:hover, .ed-quadro-cartao.is-arrastando { transform: none; }
}

/* Leitura interna na ficha: confirmação em cada tramitação (dois tiques em jade = lido) e quem leu até onde. */
.ed-lido { display: inline-flex; align-items: center; gap: .3rem; margin-top: .15rem; color: var(--ed-success-700); font-size: .8125rem; font-weight: 600; }
.ed-lido.pendente { color: var(--ed-text-muted); }
.ed-leitura { list-style: none; margin: 0; padding: .25rem 1.25rem 1rem; }
.ed-leitura li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .15rem .75rem; padding: .6rem 0; border-bottom: 1px solid var(--ed-border-suave); font-size: .875rem; }
.ed-leitura li:last-child { border-bottom: 0; }
.ed-leitura small { grid-column: 1 / -1; color: var(--ed-text-muted); font-size: .8125rem; }
.btn.ed-caixa-estrela-ficha.ligada { --bs-btn-color: var(--ed-accent-700); --bs-btn-border-color: var(--ed-accent-600); --bs-btn-bg: var(--ed-accent-50); --bs-btn-hover-color: var(--ed-accent-700); --bs-btn-hover-bg: var(--ed-accent-50); --bs-btn-hover-border-color: var(--ed-accent-600); }

/* ------------------------------------------------------------------ Construtor de formulário (07/10/2026)
   Pedido: "precisa ser melhor, tem muitas coisas online que facilitam". Três áreas como nos construtores da internet:
   paleta (tipos e perguntas prontas) · folha (o formulário como o cidadão vê, sobre a mesa pontilhada) · propriedades
   (a pergunta escolhida, salvando sozinha). Escolhida = borda da primária + fio âmbar (posição atual). */
.ed-cabecalho-apoio { max-width: 46rem; margin: .35rem 0 0; color: var(--ed-text-muted); }
.ed-cf { display: grid; grid-template-columns: 220px minmax(0, 1fr) 300px; gap: 1rem; align-items: start; }
.ed-cf.sem-paleta { grid-template-columns: minmax(0, 1fr) 300px; }
.ed-cf-status { display: inline-flex; align-items: center; gap: .4rem; min-height: 36px; padding: .25rem .8rem; border-radius: var(--ed-radius-pill); background: var(--ed-neutral-50); color: var(--ed-neutral-700); font-size: .8125rem; font-weight: 700; }
.ed-cf-status.is-salvo { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-cf-status.is-erro { background: var(--ed-danger-50); color: var(--ed-danger-700); }
.ed-cf-status.is-salvando { background: var(--ed-primary-50); color: var(--ed-primary-700); }

/* Paleta: cada tipo é um botão com ícone em bloco tonal, nome e para que serve. */
.ed-cf-paleta { position: sticky; top: 1rem; display: grid; gap: .75rem; max-height: calc(100vh - 2rem); overflow-y: auto; padding-right: .15rem; scrollbar-width: thin; }
.ed-cf-paleta-grupo { padding: .8rem .7rem .6rem; border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); background: var(--ed-surface); box-shadow: var(--ed-shadow-xs); }
.ed-cf-paleta-grupo > summary { display: flex; align-items: center; justify-content: space-between; padding: 0 .3rem .4rem; cursor: pointer; list-style: none; }
.ed-cf-paleta-grupo > summary::-webkit-details-marker { display: none; }
.ed-cf-paleta-grupo > summary::after { content: "\F282"; font-family: bootstrap-icons; font-size: .75rem; color: var(--ed-text-muted); transition: transform var(--ed-dur) var(--ed-ease); }
.ed-cf-paleta-grupo[open] > summary::after { transform: rotate(180deg); }
.ed-cf-paleta-lista { display: grid; gap: .2rem; }
.ed-cf-paleta-item { display: flex; align-items: center; gap: .6rem; width: 100%; min-height: 40px; padding: .25rem .45rem; border: 1px solid transparent; border-radius: var(--ed-radius-md); background: transparent; color: var(--ed-text); text-align: left; transition: background-color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease); }
.ed-cf-paleta-item:hover, .ed-cf-paleta-item:focus-visible { border-color: var(--ed-primary-100); background: var(--ed-primary-50); outline: 0; }
.ed-cf-paleta-item:focus-visible { box-shadow: var(--ed-ring); }
.ed-cf-paleta-icone { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 9px; background: rgba(13, 101, 120, .1); color: var(--ed-primary-600); font-size: 1rem; }
.ed-cf-paleta-item strong { display: block; font-size: .8125rem; font-weight: 700; line-height: 1.25; }
.ed-cf-paleta-item small { display: none; }
.ed-cf-paleta-mais { margin-left: auto; color: var(--ed-primary-600); opacity: 0; transition: opacity var(--ed-dur) var(--ed-ease); }
.ed-cf-paleta-item:hover .ed-cf-paleta-mais, .ed-cf-paleta-item:focus-visible .ed-cf-paleta-mais { opacity: 1; }

/* Folha sobre a mesa pontilhada: o portal em miniatura, com os blocos fixos travados. */
.ed-cf-folha-area { min-width: 0; padding: .75rem; border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); background: radial-gradient(circle, rgba(85, 103, 126, .16) 1px, transparent 1.3px) 0 0 / 18px 18px, var(--ed-surface-sunken); }
.ed-cf-folha { max-width: 820px; margin: 0 auto; padding: 1.25rem 1.25rem 1.1rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); background: var(--ed-surface); box-shadow: var(--ed-shadow-md); }
.ed-cf-folha-topo { position: relative; margin-bottom: 1.1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--ed-border-suave); }
.ed-cf-folha-topo h2 { margin: .2rem 0 0; font-size: 1.35rem; font-weight: 800; letter-spacing: -0.02em; }
.ed-cf-folha-selo { position: absolute; top: 0; right: 0; display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .6rem; border-radius: var(--ed-radius-pill); background: var(--ed-neutral-50); color: var(--ed-neutral-700); font-size: .72rem; font-weight: 700; }
.ed-cf-fixo { position: relative; margin: 0 0 1rem; padding: .8rem .9rem; border: 1px dashed var(--ed-border-strong); border-radius: var(--ed-radius-md); background: var(--ed-surface-sunken); }
.ed-cf-fixo .form-label { color: var(--ed-text-muted); }
.ed-cf-fixo-selo { position: absolute; top: -.6rem; right: .75rem; display: inline-flex; align-items: center; gap: .3rem; padding: 0 .5rem; border-radius: var(--ed-radius-pill); background: var(--ed-surface); color: var(--ed-text-muted); font-size: .6875rem; font-weight: 700; }
.ed-cf-falso { color: var(--ed-text-muted); background: var(--ed-surface); }
.ed-cf-falso-alto { min-height: 4.5rem; }
.ed-cf-falso-anexo { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 64px; border: 2px dashed var(--ed-border-strong); border-radius: var(--ed-radius-md); font-size: .875rem; }
.ed-cf-folha-pe { display: flex; justify-content: flex-end; padding-top: .25rem; }
.ed-cf-folha-pe .btn { pointer-events: none; }
.ed-cf-lista { list-style: none; margin: 0 0 1rem; padding: 0; }
.ed-cf-vazio { display: grid; justify-items: center; gap: .3rem; margin: 0 0 1rem; padding: 1.75rem 1rem; border: 2px dashed var(--ed-primary-100); border-radius: var(--ed-radius-md); text-align: center; }
.ed-cf-vazio .ed-caixa-vazio-icone { --t: var(--ed-primary-500); --t-50: var(--ed-primary-50); --t-lavagem: rgba(13, 101, 120, .05); }

/* Cada pergunta: cartão que se escolhe; barra com o tipo e as ações; a prévia é a peça do portal, inerte. */
.ed-cf-item { position: relative; }
.ed-cf-cartao { position: relative; height: 100%; padding: .55rem .75rem .7rem 1.1rem; border: 1px solid transparent; border-radius: var(--ed-radius-md); cursor: pointer; transition: background-color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-cf-cartao:hover { border-color: var(--ed-primary-100); background: rgba(232, 241, 248, .45); }
.ed-cf-item.is-selecionada > .ed-cf-cartao { border-color: var(--ed-primary-500); background: var(--ed-surface); box-shadow: inset 4px 0 0 var(--ed-accent-500), 0 0 0 3px rgba(13, 101, 120, .12), var(--ed-shadow-md); }
.ed-cf-item.is-inativa .ed-cf-previa { opacity: .5; }
.ed-cf-item.is-arrastando { opacity: .4; }
.ed-cf-item.is-nova > .ed-cf-cartao { animation: ed-cf-chegou 1.1s var(--ed-ease); }
@keyframes ed-cf-chegou { from { background: var(--ed-accent-50); } to { background: transparent; } }
.ed-cf-item.is-antes > .ed-cf-cartao { box-shadow: inset 0 3px 0 var(--ed-primary-500); }
.ed-cf-item.is-depois > .ed-cf-cartao { box-shadow: inset 0 -3px 0 var(--ed-primary-500); }
.ed-cf-item[data-largura="meia"].is-antes > .ed-cf-cartao { box-shadow: inset 3px 0 0 var(--ed-primary-500); }
.ed-cf-item[data-largura="meia"].is-depois > .ed-cf-cartao { box-shadow: inset -3px 0 0 var(--ed-primary-500); }
.ed-cf-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-bottom: .4rem; }
.ed-cf-alca { position: absolute; top: .45rem; left: .1rem; display: grid; place-items: center; width: 18px; height: 28px; border-radius: 6px; color: var(--ed-border-controle); cursor: grab; opacity: 0; transition: opacity var(--ed-dur) var(--ed-ease); }
.ed-cf-cartao:hover .ed-cf-alca, .ed-cf-item.is-selecionada .ed-cf-alca { opacity: 1; }
.ed-cf-alca:hover { background: var(--ed-neutral-50); color: var(--ed-text); }
.ed-cf-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .5rem; border-radius: var(--ed-radius-pill); background: var(--ed-primary-50); color: var(--ed-primary-700); font-size: .6875rem; font-weight: 700; }
.ed-cf-chip.tom-accent { background: var(--ed-accent-50); color: var(--ed-accent-700); }
.ed-cf-chip.tom-neutral { background: var(--ed-neutral-50); color: var(--ed-neutral-700); }
.ed-cf-acoes { position: absolute; top: -1.15rem; right: .5rem; z-index: 3; display: inline-flex; align-items: center; gap: .05rem; padding: .1rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-pill); background: var(--ed-surface); box-shadow: var(--ed-shadow-sm); opacity: 0; pointer-events: none; transition: opacity var(--ed-dur) var(--ed-ease); }
.ed-cf-acoes .ed-caixa-acao { width: 1.85rem; height: 1.85rem; font-size: .85rem; }
.ed-cf-excluir:hover { color: var(--ed-danger-700); background: var(--ed-danger-50); }
.ed-cf-cartao:hover .ed-cf-acoes, .ed-cf-item.is-selecionada .ed-cf-acoes, .ed-cf-acoes:focus-within { opacity: 1; pointer-events: auto; }
@media (hover: none) { .ed-cf-acoes, .ed-cf-alca { opacity: 1; pointer-events: auto; } }
.ed-cf-previa .form-label, .ed-cf-previa legend { margin-bottom: .35rem; }
.ed-cf-previa { pointer-events: none; }
.ed-cf-previa .row > [class*="col-"] { padding: 0; }
.ed-cf-mapa { display: flex; align-items: center; gap: .6rem; min-height: 96px; padding: .8rem 1rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: linear-gradient(135deg, rgba(18, 128, 92, .06), rgba(13, 101, 120, .08)); color: var(--ed-text-muted); font-size: .875rem; }
.ed-cf-mapa .bi { font-size: 1.6rem; color: var(--ed-danger-500); }

/* Editor: embaixo da pergunta sem JS (e no celular); com JS no computador, no painel ao lado. */
.ed-cf-editor { margin-top: .5rem; }
.ed-cf-editor > summary { display: inline-flex; align-items: center; gap: .35rem; color: var(--ed-primary-600); font-size: .8125rem; font-weight: 700; cursor: pointer; list-style: none; }
.ed-cf-editor > summary::-webkit-details-marker { display: none; }
.ed-cf-item.is-selecionada .ed-cf-editor > summary { display: none; }
.ed-cf-js .ed-cf-editor > summary:not(:focus-visible) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ed-cf-js .ed-cf-editor:not([open]) { margin: 0; }
/* Sem o painel ao lado (abaixo de 1440 px), a pergunta em edição ocupa a linha inteira para o editor caber. */
.ed-cf.inline .ed-cf-item.is-selecionada { flex: 0 0 100%; width: 100%; max-width: 100%; }
.ed-cf-editor[open] > .ed-cf-form { margin-top: .5rem; padding: 1rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); cursor: auto; }
.ed-cf-props-topo { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.ed-cf-salvo { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; font-weight: 700; color: var(--ed-text-muted); }
.ed-cf-salvo.is-salvo { color: var(--ed-success-700); }
.ed-cf-salvo.is-erro { color: var(--ed-danger-700); }
.ed-cf-salvo.is-salvando { color: var(--ed-primary-600); }
.ed-cf-rotulo { font-weight: 700; }
.ed-cf-bloco[hidden] { display: none; }
.ed-cf-opcoes { list-style: none; margin: 0; padding: 0; }
.ed-cf-opcoes li { display: flex; align-items: center; gap: .45rem; margin-bottom: .35rem; }
.ed-cf-opcao-marca { flex: none; width: 14px; height: 14px; border: 2px solid var(--ed-border-controle); border-radius: 50%; }
.ed-cf-form[data-tipo="multipla"] .ed-cf-opcao-marca { border-radius: 3px; }
.ed-cf-opcoes .ed-caixa-acao { width: 1.9rem; height: 1.9rem; font-size: .8rem; }
.ed-cf-linha { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.ed-cf-chave { display: inline-flex; align-items: center; gap: .5rem; min-height: 36px; margin: 0; font-weight: 600; }
.ed-cf-chave .form-check-input { width: 2.4em; height: 1.3em; margin-top: 0; cursor: pointer; }
.ed-cf-largura { display: flex; width: 100%; }
.ed-cf-largura label { flex: 1; margin: 0; }
.ed-cf-largura label span { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 38px; padding: .3rem .6rem; border-radius: 9px; color: var(--ed-text-muted); font-size: .8125rem; font-weight: 700; cursor: pointer; transition: background-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-cf-largura input:checked + span { background: var(--ed-surface); color: var(--ed-primary-700); box-shadow: var(--ed-shadow-xs), inset 0 -2px 0 var(--ed-accent-500); }
.ed-cf-largura input:focus-visible + span { box-shadow: var(--ed-ring); }
.ed-cf-salvar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 1rem; }
.ed-cf-js .ed-cf-salvar [data-cf-salvar] { display: none; }

/* Painel de propriedades (computador): preso ao rolar; vazio = convite para escolher. */
.ed-cf-painel { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-lg); background: var(--ed-surface); box-shadow: var(--ed-shadow-sm); scrollbar-width: thin; }
.ed-cf-painel .ed-cf-form { padding: 1.1rem 1.15rem 1.25rem; }
.ed-cf-painel-vazio { display: grid; justify-items: center; gap: .3rem; padding: 1.75rem 1.25rem; text-align: center; }
.ed-cf-painel-icone { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: .4rem; border-radius: 50%; background: var(--ed-accent-50); color: var(--ed-accent-700); font-size: 1.6rem; box-shadow: 0 0 0 9px rgba(197, 160, 89, .08); }
.ed-cf-dicas { display: grid; gap: .5rem; margin: .9rem 0 0; padding: .9rem 0 0; border-top: 1px solid var(--ed-border-suave); list-style: none; text-align: left; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-cf-dicas .bi { margin-right: .35rem; color: var(--ed-primary-500); }

@media (max-width: 1439.98px) {
  .ed-cf { grid-template-columns: 210px minmax(0, 1fr); }
  .ed-cf.sem-paleta { grid-template-columns: minmax(0, 1fr); }
  .ed-cf-painel { display: none; }
}
@media (max-width: 991.98px) {
  .ed-cf { grid-template-columns: minmax(0, 1fr); }
  .ed-cf-paleta { position: static; max-height: none; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .ed-cf-folha-area { padding: .6rem; }
  .ed-cf-folha { padding: 1rem; }
  .ed-cf-folha-selo { position: static; margin-top: .4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-cf-paleta-item, .ed-cf-paleta-mais, .ed-cf-cartao, .ed-cf-acoes, .ed-cf-largura label span, .ed-cf-paleta-grupo > summary::after { transition: none; }
  .ed-cf-item.is-nova > .ed-cf-cartao { animation: none; }
}

/* ------------------------------------------------------------------ Seletor de ícone e prévia do serviço (07/10/2026)
   Pedido: "no ícone você não colocou para escolher". O escolhido em bloco de degradê da primária com o fio âmbar (o
   mesmo bloco da marca da caixa); a grade em botões de 44 px; o marcado em primária cheia com anel âmbar (posição
   atual). A prévia ao lado é o cartão da carta de serviços do portal, mudando enquanto se digita. */
.ed-icones { min-width: 0; margin: 0; padding: 0; border: 0; }
.ed-icones-topo { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .8rem .9rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); background: var(--ed-surface-sunken); }
.ed-icones-escolhido { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 14px; background: linear-gradient(140deg, var(--ed-primary-400), var(--ed-primary-600)); color: #FFFFFF; font-size: 1.5rem; box-shadow: 0 8px 18px -8px rgba(13, 101, 120, .6), inset 0 -3px 0 var(--ed-accent-500); }
.ed-icones-topo-texto { flex: 1 1 11rem; min-width: 0; }
.ed-icones-topo-texto strong { display: block; font-size: 1rem; font-weight: 800; }
.ed-icones-topo-texto small { display: block; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-icones-busca { position: relative; flex: 1 1 14rem; margin: 0; }
.ed-icones-busca .bi { position: absolute; top: 50%; left: .7rem; transform: translateY(-50%); color: var(--ed-text-muted); font-size: .875rem; pointer-events: none; }
.ed-icones-busca input { padding-left: 2rem; }
.ed-icones-grupos { max-height: 290px; margin-top: .5rem; padding: 0 .25rem .25rem 0; overflow-y: auto; scrollbar-width: thin; }
.ed-icones-grupo[hidden], .ed-icone-opcao[hidden] { display: none; }
.ed-icones-grupo .ed-eyebrow { margin: .65rem 0 .35rem; }
.ed-icones-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); gap: .35rem; }
.ed-icone-opcao { margin: 0; cursor: pointer; }
.ed-icone-opcao > span { display: grid; place-items: center; height: 44px; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); color: var(--ed-neutral-700); font-size: 1.2rem; transition: background-color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-icone-opcao:hover > span { border-color: var(--ed-primary-300); background: var(--ed-primary-50); color: var(--ed-primary-600); }
.ed-icone-opcao input:checked + span { border-color: var(--ed-primary-500); background: var(--ed-primary-500); color: #FFFFFF; box-shadow: 0 0 0 3px rgba(197, 160, 89, .5); }
.ed-icone-opcao input:focus-visible + span { box-shadow: var(--ed-ring); }
.ed-previa-servico .ed-servico { border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-sm); }
.ed-previa-servico .ed-servico-ir { color: var(--ed-primary-600); font-weight: 700; }
@media (prefers-reduced-motion: reduce) { .ed-icone-opcao > span { transition: none; } }

/* Confirmação com resumo do impacto (do sistema original): ícone em bloco tonal no tom da ação, título, a pergunta e
   a lista do que acontece; botão de confirmar no tom (perigo = tijolo). */
.ed-confirma { max-width: min(32rem, calc(100vw - 32px)); width: 100%; }
.ed-confirma-topo { display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.ed-confirma-icone { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: var(--ed-radius-md); background: var(--ed-primary-50); color: var(--ed-primary-600); font-size: 1.25rem; }
.ed-confirma.tom-danger .ed-confirma-icone { background: var(--ed-danger-50); color: var(--ed-danger-700); }
.ed-confirma.tom-warning .ed-confirma-icone { background: var(--ed-warning-50); color: var(--ed-warning-700); }
.ed-confirma.tom-success .ed-confirma-icone { background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-confirma .ed-dialogo-titulo { margin: 0; font-size: 1.125rem; }
.ed-confirma .ed-dialogo-texto { margin: .35rem 0 .75rem; }
.ed-confirma-impacto { display: grid; gap: .45rem; margin: 0 0 1.25rem; padding: .85rem 1rem; border-radius: var(--ed-radius-md); background: var(--ed-surface-sunken); list-style: none; font-size: .875rem; }
.ed-confirma-impacto li { position: relative; padding-left: 1.25rem; }
.ed-confirma-impacto li::before { content: ""; position: absolute; top: .55em; left: .2rem; width: 6px; height: 6px; border-radius: 50%; background: var(--ed-primary-500); }
.ed-confirma.tom-danger .ed-confirma-impacto li::before { background: var(--ed-danger-500); }
.ed-confirma.tom-warning .ed-confirma-impacto li::before { background: var(--ed-warning-500); }
.btn.ed-enviando { cursor: progress; }

/* Conversa em balões (do sistema original): "nós" à direita em primary-50, o outro lado à esquerda em branco com o
   avatar; avatar da equipe em primária cheia, do interessado no jade claro; sistema no meio, discreto; interna
   tracejada. */
.ed-bolhas { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.ed-bolha { display: flex; align-items: flex-end; gap: .6rem; max-width: 88%; }
.ed-bolha.is-minha { flex-direction: row-reverse; margin-left: auto; }
.ed-bolha-avatar { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--ed-primary-500); color: #FFFFFF; font-size: .8125rem; font-weight: 800; }
.ed-bolha-avatar.e-cidadao { background: #E4F6EF; color: #0B5E43; }
.ed-bolha-balao { min-width: 0; padding: .65rem .9rem .7rem; border: 1px solid var(--ed-border); border-radius: 16px 16px 16px 4px; background: var(--ed-surface); box-shadow: var(--ed-shadow-xs); }
.ed-bolha.is-minha .ed-bolha-balao { border-color: var(--ed-primary-100); border-radius: 16px 16px 4px 16px; background: var(--ed-primary-50); }
.ed-bolha.is-interna .ed-bolha-balao { border-style: dashed; border-color: var(--ed-border-strong); background: var(--ed-surface-sunken); }
.ed-bolha-cabeca { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; margin-bottom: .2rem; font-size: .8125rem; }
.ed-bolha-papel { color: var(--ed-text-muted); }
.ed-bolha-cabeca time { margin-left: auto; color: var(--ed-text-muted); font-size: .75rem; }
.ed-bolha-texto { font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; }
.ed-bolha-sistema { display: flex; justify-content: center; }
.ed-bolha-sistema > span { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem .5rem; max-width: 92%; padding: .35rem .85rem; border-radius: var(--ed-radius-pill); background: var(--ed-surface-sunken); color: var(--ed-text-muted); font-size: .8125rem; text-align: center; }
.ed-bolha-sistema .bi { color: var(--ed-primary-500); }
.ed-bolha-sistema time { font-size: .75rem; opacity: .85; }
@media (max-width: 575.98px) { .ed-bolha { max-width: 100%; } .ed-bolha-avatar { width: 28px; height: 28px; font-size: .75rem; } }

/* Portal (07/10/2026, do sistema original): cabeçalho do pedido com o ícone do serviço e os selos; orientações num
   aviso "Antes de enviar"; "Depois de enviar" em três passos; contador de caracteres; avaliação em cartões com rosto
   e nota (cor pelo sentimento: tijolo ruim, cinza regular, jade bom); Sim/Não em cartões. */
.ed-cabeca-servico { display: flex; align-items: flex-start; gap: 1rem; }
.ed-cabeca-servico-icone.ed-servico-icone { width: 60px; height: 60px; margin-top: .2rem; border-radius: 16px; font-size: 1.6rem; }
.ed-cabeca-selos { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.ed-cabeca-selos .ed-servico-chip { background: var(--ed-surface); border: 1px solid var(--ed-border); }
.ed-cabeca-selos .ed-servico-chip.tom-accent { background: var(--ed-accent-50); border-color: rgba(200, 127, 6, .35); }
.ed-cabeca-selos .ed-servico-chip.tom-primary { background: var(--ed-primary-50); border-color: var(--ed-primary-100); }
.ed-antes-de-enviar { margin-bottom: 1.25rem; font-size: .9375rem; }
.ed-antes-de-enviar strong { display: block; margin-bottom: .15rem; }
.ed-antes-de-enviar .bi { font-size: 1.25rem; }
.ed-depois { display: grid; gap: .9rem; margin: 0; padding: 0; list-style: none; counter-reset: depois; }
.ed-depois li { display: flex; align-items: flex-start; gap: .75rem; }
.ed-depois-icone { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: var(--ed-radius-md); background: rgba(13, 101, 120, .1); color: var(--ed-primary-600); font-size: 1.05rem; }
.ed-depois strong { display: block; font-size: .9375rem; }
.ed-depois small { display: block; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-contar { margin-top: .25rem; color: var(--ed-text-muted); font-size: .75rem; text-align: right; font-variant-numeric: tabular-nums; }
.ed-contar.perto { color: var(--ed-accent-700); font-weight: 700; }
.ed-contar.cheio { color: var(--ed-danger-700); font-weight: 700; }
.ed-avaliar-titulo { font-size: 1.0625rem; font-weight: 800; }
.ed-notas { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .4rem; margin-bottom: .5rem; }
.ed-nota { margin: 0; cursor: pointer; }
.ed-nota > span { display: grid; justify-items: center; gap: .1rem; padding: .55rem .2rem .5rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); text-align: center; transition: background-color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease), transform var(--ed-dur) var(--ed-ease); }
.ed-nota .bi { font-size: 1.5rem; color: var(--ed-text-muted); }
.ed-nota b { font-size: .875rem; font-variant-numeric: tabular-nums; }
.ed-nota small { color: var(--ed-text-muted); font-size: .6875rem; line-height: 1.2; }
.ed-nota:hover > span { border-color: var(--ed-primary-300); transform: translateY(-1px); }
.ed-nota input:focus-visible + span { box-shadow: var(--ed-ring); }
.ed-nota.e-1 input:checked + span, .ed-nota.e-2 input:checked + span { border-color: var(--ed-danger-500); background: var(--ed-danger-50); }
.ed-nota.e-1 input:checked + span .bi, .ed-nota.e-2 input:checked + span .bi { color: var(--ed-danger-700); }
.ed-nota.e-3 input:checked + span { border-color: var(--ed-neutral-500); background: var(--ed-neutral-50); }
.ed-nota.e-3 input:checked + span .bi { color: var(--ed-neutral-700); }
.ed-nota.e-4 input:checked + span, .ed-nota.e-5 input:checked + span { border-color: var(--ed-success-500); background: var(--ed-success-50); }
.ed-nota.e-4 input:checked + span .bi, .ed-nota.e-5 input:checked + span .bi { color: var(--ed-success-700); }
.ed-simnao { display: flex; flex-wrap: wrap; gap: .5rem; }
.ed-simnao-opcao { margin: 0; cursor: pointer; }
.ed-simnao-opcao > span { display: inline-flex; align-items: center; gap: .45rem; min-width: 7rem; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--ed-border-strong); border-radius: var(--ed-radius-md); background: var(--ed-surface); font-weight: 700; transition: background-color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease); }
.ed-simnao-opcao .bi { color: var(--ed-text-muted); }
.ed-simnao-opcao:hover > span { border-color: var(--ed-primary-300); background: var(--ed-primary-50); }
.ed-simnao-opcao input:focus-visible + span { box-shadow: var(--ed-ring); }
.ed-simnao-opcao.e-sim input:checked + span { border-color: var(--ed-success-500); background: var(--ed-success-50); color: var(--ed-success-700); }
.ed-simnao-opcao.e-sim input:checked + span .bi { color: var(--ed-success-700); }
.ed-simnao-opcao.e-nao input:checked + span { border-color: var(--ed-neutral-500); background: var(--ed-neutral-50); color: var(--ed-neutral-700); }
.ed-simnao-opcao.e-nao input:checked + span .bi { color: var(--ed-neutral-700); }
@media (max-width: 575.98px) { .ed-cabeca-servico-icone.ed-servico-icone { width: 48px; height: 48px; font-size: 1.3rem; } .ed-nota small { display: none; } }
@media (prefers-reduced-motion: reduce) { .ed-nota > span, .ed-simnao-opcao > span { transition: none; } .ed-nota:hover > span { transform: none; } }

/* Grade: nome com ícone em bloco tonal e linha de apoio (carta de serviços). */
.ed-grade-com-icone { display: flex; align-items: center; gap: .65rem; min-width: 14rem; }
.ed-grade-icone { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: rgba(13, 101, 120, .1); color: var(--ed-primary-600); font-size: 1.05rem; }
.ed-grade-com-icone-texto { display: grid; min-width: 0; }
.ed-grade-com-icone-texto a { font-weight: 700; }
.ed-grade-com-icone-texto small { color: var(--ed-text-muted); font-size: .8125rem; line-height: 1.35; white-space: normal; }

/* Selo de situação com o ponto no tom (do sistema original): a cor fica visível mesmo de relance, numa lista longa. */
.ed-badge.ed-situacao::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
@media print { .ed-badge.ed-situacao::before { background: #000000; } }

/* Gráfico de barras por mês em SVG (views/partial/grafico_barras.php, do sistema original; DESIGN §12): uma cor só. */
.ed-gr { display: flex; align-items: flex-start; width: 100%; container-type: inline-size; }
.ed-gr svg { display: block; flex: none; overflow: visible; }
.ed-gr .ed-gr-area { flex: 1 1 auto; min-width: 0; }
.ed-gr-grade { stroke: var(--ed-border); stroke-width: 1; }
.ed-gr-base { stroke: var(--ed-border-strong); stroke-width: 1; }
.ed-gr-barra { fill: var(--ed-primary-500); transition: fill var(--ed-dur) var(--ed-ease); }
.ed-gr-barra.e-zero { fill: var(--ed-border); }
.ed-gr-col:hover .ed-gr-barra:not(.e-zero) { fill: var(--ed-primary-700); }
.ed-gr-valor { fill: var(--ed-text-muted); font-size: 12px; font-weight: 700; text-anchor: middle; font-variant-numeric: tabular-nums; }
.ed-gr-col:hover .ed-gr-valor { fill: var(--ed-text); }
.ed-gr-rotulo { fill: var(--ed-text-muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-anchor: middle; }
.ed-gr-eixo { fill: var(--ed-text-muted); font-size: 11px; text-anchor: end; font-variant-numeric: tabular-nums; }
@container (max-width: 520px) { .ed-gr-col.e-alterna .ed-gr-rotulo { display: none; } }
@media (min-width: 900px) { .ed-relatorio-graficos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.ed-barras-h .ed-badge { font-size: .6875rem; }
@media (prefers-reduced-motion: reduce) { .ed-gr-barra { transition: none; } }

/* Anexos (do sistema original): bloco com a extensão em primary-700 sobre primary-50 (o mesmo do envio em partes; sem
   cor por tipo — tijolo aqui leria como perda) e o "Preparando…" do download. */
.ed-anexo-ext { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 10px; background: var(--ed-primary-50); color: var(--ed-primary-700); font-size: .625rem; font-weight: 800; letter-spacing: .04em; }
a.ed-baixando { opacity: .7; cursor: progress; }
a.ed-baixando::after { content: " · preparando…"; color: var(--ed-text-muted); font-size: .8125rem; }

/* Setores (do sistema original): a carga como selo clicável que abre a caixa do setor (tijolo se há vencido) e as
   pessoas em chips com a inicial. */
.ed-setor-carga { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .7rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-pill); background: var(--ed-neutral-50); color: var(--ed-neutral-700); font-size: .8125rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ed-setor-carga.tom-primary { border-color: var(--ed-primary-100); background: var(--ed-primary-50); color: var(--ed-primary-700); }
.ed-setor-carga.tom-danger { border-color: rgba(200, 53, 42, .3); background: var(--ed-danger-50); color: var(--ed-danger-700); }
.ed-setor-carga:hover { text-decoration: underline; }
.ed-pessoas-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .75rem; padding: 0; list-style: none; }
.ed-pessoas-chips li { display: inline-flex; align-items: center; gap: .4rem; padding: .2rem .65rem .2rem .25rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-pill); background: var(--ed-surface); font-size: .8125rem; font-weight: 600; }
.ed-pessoas-chips small { color: var(--ed-accent-700); font-weight: 700; }
.ed-pessoa-chip-ini { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ed-primary-50); color: var(--ed-primary-700); font-size: .6875rem; font-weight: 800; }

/* Consulta pública (do sistema original): chave em bloco destacado com copiar; andamento em linha do tempo, o passo
   atual com o ponto no tom da situação e o texto em negrito. */
.ed-chave-bloco { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1rem; border: 1px dashed var(--ed-primary-300); border-radius: var(--ed-radius-md); background: var(--ed-primary-50); }
.ed-linha-publica li.e-atual::before { width: 14px; height: 14px; left: -1.2rem; top: .9rem; border-color: var(--ed-surface); box-shadow: 0 0 0 3px var(--ed-accent-500); }
.ed-linha-publica li.e-atual.tom-primary::before { background: var(--ed-primary-500); }
.ed-linha-publica li.e-atual.tom-success::before { background: var(--ed-success-500); }
.ed-linha-publica li.e-atual.tom-warning::before { background: var(--ed-warning-500); }
.ed-linha-publica li.e-atual.tom-danger::before { background: var(--ed-danger-500); }
.ed-linha-publica li.e-atual.tom-accent::before { background: var(--ed-accent-600); }
.ed-linha-publica li.e-atual.tom-neutral::before { background: var(--ed-neutral-500); }

/* Aviso de topo com o X de fechar (do original); área de toque ampliada a 44 px (DESIGN §7 "Alerta"). */
.ed-alerta-flash { position: relative; padding-right: 2.75rem; }
.ed-alerta-fechar { position: absolute; top: .45rem; right: .45rem; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; opacity: .75; }
.ed-alerta-fechar::before { content: ""; position: absolute; inset: -7px; }
.ed-alerta-fechar:hover { opacity: 1; background: rgba(7, 32, 28, .06); }
.ed-alerta-fechar:focus-visible { outline: 0; box-shadow: var(--ed-ring); opacity: 1; }

/* Papel do servidor em cartões (do sistema original): ícone em bloco tonal, nome e o que pode; o escolhido com a borda
   da primária e o fundo 50 (é seleção, não posição atual). */
.ed-papeis { display: grid; gap: .5rem; }
.ed-papel { margin: 0; cursor: pointer; }
.ed-papel-cartao { display: flex; align-items: flex-start; gap: .7rem; padding: .7rem .85rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); background: var(--ed-surface); transition: border-color var(--ed-dur) var(--ed-ease), background-color var(--ed-dur) var(--ed-ease); }
.ed-papel-cartao strong { display: block; font-size: .9375rem; }
.ed-papel-cartao small { display: block; color: var(--ed-text-muted); font-size: .8125rem; line-height: 1.4; }
.ed-papel-icone { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: rgba(13, 101, 120, .1); color: var(--ed-primary-600); font-size: 1.05rem; }
.ed-papel:hover .ed-papel-cartao { border-color: var(--ed-primary-300); }
.ed-papel input:checked + .ed-papel-cartao { border-color: var(--ed-primary-500); background: var(--ed-primary-50); box-shadow: inset 0 0 0 1px var(--ed-primary-500); }
.ed-papel input:focus-visible + .ed-papel-cartao { box-shadow: var(--ed-ring); }
@media (prefers-reduced-motion: reduce) { .ed-papel-cartao { transition: none; } }

/* Painel (do sistema original): alerta com ação ao lado e a triagem dos parados com "Concluir agora". */
.ed-alerta-acao { align-items: center; }
.ed-alerta-acao > div { flex: 1; }
.ed-alerta-acao .btn { flex: none; }
.ed-triagem-item { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
.ed-triagem-item > div { display: grid; gap: .1rem; min-width: 0; flex: 1 1 16rem; }

/* Exclusão bloqueada explicada (do sistema original): em vez de o botão sumir, um cadeado com o motivo. */
.ed-bloqueio { display: inline-grid; place-items: center; width: 2rem; height: 2rem; color: var(--ed-text-muted); cursor: help; }
.ed-bloqueio-texto { display: inline-flex; align-items: center; gap: .35rem; color: var(--ed-text-muted); font-size: .8125rem; }

/* Home do portal, logado (do sistema original): os três protocolos mais recentes em cartões, com a novidade não lida
   no âmbar (novo). */
.ed-meus-recentes { padding-top: 2rem; }
.ed-meus-recentes .ed-bloco-topo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.ed-meus-recentes h2 { margin: 0; }
.ed-recentes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .85rem; margin: 0; padding: 0; list-style: none; }
.ed-recente { display: grid; gap: .45rem; height: 100%; padding: 1rem 1.1rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); background: var(--ed-surface); color: var(--ed-text); text-decoration: none; box-shadow: var(--ed-shadow-xs); transition: box-shadow var(--ed-dur) var(--ed-ease), transform var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease); }
.ed-recente:hover { border-color: var(--ed-primary-100); box-shadow: var(--ed-shadow-md); transform: translateY(-2px); }
.ed-recente-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; }
.ed-recente-assunto { font-weight: 600; }
.ed-recente-pe { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-recente-novo { display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .55rem; border-radius: var(--ed-radius-pill); background: var(--ed-accent-50); color: var(--ed-accent-700); font-weight: 700; }
@media (prefers-reduced-motion: reduce) { .ed-recente { transition: none; } .ed-recente:hover { transform: none; } }

/* Trilha do registro na ficha (do sistema original): ponto no tom da ação (excluir = tijolo, situação = terracota,
   criar = jade, abrir/baixar = cinza, o resto = azul), o que mudou (antes → depois) e o link para os detalhes. */
.ed-trilha { display: grid; gap: 0; margin: .5rem 0 0; padding: 0; list-style: none; }
.ed-trilha li { position: relative; display: grid; gap: .15rem; padding: .6rem 0 .6rem 1.4rem; border-bottom: 1px solid var(--ed-border-suave); font-size: .875rem; }
.ed-trilha li:last-child { border-bottom: 0; }
.ed-trilha li::before { content: ""; position: absolute; top: 1rem; left: .2rem; width: 9px; height: 9px; border-radius: 50%; background: var(--ed-primary-500); }
.ed-trilha li.tom-danger::before { background: var(--ed-danger-500); }
.ed-trilha li.tom-warning::before { background: var(--ed-warning-500); }
.ed-trilha li.tom-success::before { background: var(--ed-success-500); }
.ed-trilha li.tom-neutral::before { background: var(--ed-neutral-500); }
.ed-trilha-mudou { display: flex; flex-wrap: wrap; gap: .3rem .9rem; color: var(--ed-text-muted); font-size: .8125rem; }
.ed-trilha-mudou code { padding: 0 .3rem; border-radius: 4px; background: var(--ed-surface-sunken); color: var(--ed-text); font-size: .75rem; }
.ed-trilha-ver { justify-self: start; font-size: .75rem; }

/* Escrita nos campos de texto (assets/js/escrita.js, 11/10/2026): o campo vira uma caixa de mensagem com a barra
   embaixo — "Ditar" (voz do navegador; ouvindo = âmbar, posição atual) e "Escrever com IA" (o brilho em âmbar,
   como no painel de IA dos documentos). A borda e o anel de foco passam do campo para a caixa. */
.ed-escrita { border: 1px solid var(--ed-border-strong); border-radius: var(--ed-radius-md); background: var(--ed-surface); transition: border-color var(--ed-dur) var(--ed-ease), box-shadow var(--ed-dur) var(--ed-ease); }
.ed-escrita:focus-within { border-color: var(--ed-primary-500); box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--ed-primary-500) 22%, transparent); }
.ed-escrita:has(.is-invalid) { border-color: var(--ed-danger-500); }
.ed-escrita > textarea.form-control { border: 0; border-radius: var(--ed-radius-md) var(--ed-radius-md) 0 0; box-shadow: none; background: transparent; }
.ed-escrita > textarea.form-control:focus { box-shadow: none; }
.ed-escrita-barra { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem; padding: .3rem .4rem; border-top: 1px solid var(--ed-border-suave); background: var(--ed-surface-sunken); border-radius: 0 0 var(--ed-radius-md) var(--ed-radius-md); }
.ed-escrita-btn { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; padding: 0 .6rem; border: 1px solid transparent; border-radius: var(--ed-radius-pill); background: none; color: var(--ed-text-muted); font-size: .8125rem; font-weight: 600;
  transition: background var(--ed-dur) var(--ed-ease), color var(--ed-dur) var(--ed-ease), border-color var(--ed-dur) var(--ed-ease); }
.ed-escrita-btn:hover { background: var(--ed-surface); border-color: var(--ed-border-suave); color: var(--ed-text); }
.ed-escrita-btn:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 1px; }
.ed-escrita-btn .bi { font-size: .95rem; }
.ed-escrita-ia { color: var(--ed-primary-700); }
.ed-escrita-ia .bi { color: var(--ed-accent-600); }
.ed-escrita-ditar.is-ouvindo { background: var(--ed-accent-50); border-color: var(--ed-accent-500); color: var(--ed-accent-700); }
.ed-escrita-ditar.is-ouvindo .bi { animation: ed-escrita-pulso 1.1s ease-in-out infinite; }
@keyframes ed-escrita-pulso { 50% { opacity: .35; } }
.ed-escrita-info { margin: .35rem 0 .5rem; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-escrita-info.tom-warning { color: var(--ed-warning-700); }
.ed-escrita-info[hidden] { display: none; }
textarea.ed-escrita-acende { background-color: var(--ed-accent-50); transition: background-color 1s var(--ed-ease); }
.ed-escrita-dialogo { width: 100%; max-width: min(40rem, calc(100vw - 32px)); }
.ed-escrita-dlg-topo { display: flex; align-items: flex-start; gap: .75rem; margin-bottom: 1rem; }
.ed-escrita-dlg-topo h2 { margin: 0; font-size: 1.125rem; font-weight: 800; letter-spacing: -0.02em; }
.ed-escrita-dlg-icone { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: var(--ed-radius-md); background: var(--ed-accent-50); color: var(--ed-accent-700); font-size: 1.15rem; }
.ed-escrita-dlg-campo { margin: .1rem 0 0; font-size: .8125rem; color: var(--ed-text-muted); }
.ed-escrita-sugestoes { display: flex; flex-wrap: wrap; gap: .35rem; margin: -.15rem 0 .75rem; }
.ed-escrita-sugestoes[hidden] { display: none; }
.ed-escrita-sugestao { padding: .3rem .7rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-pill); background: var(--ed-surface); color: var(--ed-text); font-size: .8125rem; text-align: left; }
.ed-escrita-sugestao:hover, .ed-escrita-sugestao:focus-visible { border-color: var(--ed-primary-500); background: var(--ed-primary-50); outline: none; }
.ed-escrita-partir { margin: 0 0 .75rem; }
.ed-escrita-partir[hidden] { display: none; }
.ed-escrita-dlg-acoes { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.ed-escrita-dlg-acoes .form-text { flex: 1 1 16rem; }
.ed-escrita-status { margin-top: .75rem; }
.ed-escrita-status p { margin: 0; font-size: .875rem; }
.ed-escrita-status .tom-warning { color: var(--ed-warning-700); }
.ed-escrita-status .tom-success { color: var(--ed-success-700); }
.ed-escrita-resultado { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--ed-border-suave); }
.ed-escrita-resultado[hidden] { display: none; }
.ed-escrita-dlg-fim { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; margin-top: .75rem; }
@media (prefers-reduced-motion: reduce) { .ed-escrita, .ed-escrita-btn, textarea.ed-escrita-acende { transition: none; } .ed-escrita-ditar.is-ouvindo .bi { animation: none; } }

/* Conferência dos campos com máscara (ed.js): a mensagem embaixo do campo, no tijolo de texto (erro de digitação = perda). */
.ed-erro-campo { margin-top: .25rem; font-size: .8125rem; color: var(--ed-danger-700); }
.ed-erro-campo[hidden] { display: none; }

/* Seu dia (painel do órgão, Servico\ResumoDoDia, 12/10/2026): o que está com a pessoa e pede atenção hoje — o mesmo
   do e-mail das 7h. Números em pílula no tom do significado (atraso tijolo, vence hoje âmbar, o resto neutro/azul),
   cada um abre a aba da caixa; embaixo os itens, um por linha. A chave liga/desliga o e-mail (botão role=switch). */
.ed-seu-dia .ed-card-topo { align-items: center; }
.ed-seu-dia-numeros { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.ed-seu-dia-n { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-pill);
  background: var(--ed-surface-sunken); color: var(--ed-text); text-decoration: none; font-size: .875rem; transition: border-color var(--ed-dur) var(--ed-ease), background var(--ed-dur) var(--ed-ease); }
.ed-seu-dia-n strong { font-size: 1.05rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.ed-seu-dia-n:hover { border-color: var(--ed-primary-500); background: var(--ed-primary-50); }
.ed-seu-dia-n.tom-danger { background: var(--ed-danger-50); border-color: color-mix(in srgb, var(--ed-danger-500) 35%, transparent); color: var(--ed-danger-700); }
.ed-seu-dia-n.tom-accent { background: var(--ed-accent-50); border-color: color-mix(in srgb, var(--ed-accent-500) 45%, transparent); color: var(--ed-accent-700); }
.ed-seu-dia-n.tom-primary .bi { color: var(--ed-primary-600); }
.ed-seu-dia-lista { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.ed-seu-dia-lista li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; font-size: .9375rem; }
.ed-seu-dia-lista .ed-badge { flex: none; min-width: 7.5rem; justify-content: center; }
.ed-seu-dia-vazio { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: var(--ed-text-muted); }
.ed-seu-dia-vazio .bi { color: var(--ed-success-700); font-size: 1.1rem; }
.ed-chave { display: inline-flex; align-items: center; gap: .55rem; padding: .25rem .1rem; border: 0; background: none; color: var(--ed-text-muted); font-size: .8125rem; font-weight: 600; }
.ed-chave-trilho { position: relative; flex: none; width: 34px; height: 20px; border-radius: var(--ed-radius-pill); background: var(--ed-border-strong); transition: background var(--ed-dur) var(--ed-ease); }
.ed-chave-trilho::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: var(--ed-shadow-xs); transition: transform var(--ed-dur) var(--ed-ease); }
.ed-chave[aria-checked="true"] { color: var(--ed-text); }
.ed-chave[aria-checked="true"] .ed-chave-trilho { background: var(--ed-primary-600); }
.ed-chave[aria-checked="true"] .ed-chave-trilho::after { transform: translateX(14px); }
.ed-chave:focus-visible { outline: 2px solid var(--ed-primary-500); outline-offset: 2px; border-radius: var(--ed-radius-md); }
@media (prefers-reduced-motion: reduce) { .ed-seu-dia-n, .ed-chave-trilho, .ed-chave-trilho::after { transition: none; } }

/* Triagem automática na ficha (Servico\Triagem, 12/10/2026): cartão com o brilho em âmbar (IA, como o "Escrever com IA");
   urgente ganha o fio de 3 px em tijolo no alto. Cada sugestão é uma linha com o ícone no tom do significado e o motivo. */
.ed-triagem .ed-card-topo h2 .bi { color: var(--ed-accent-600); }
.ed-triagem.is-urgente { border-top: 3px solid var(--ed-danger-500); }
.ed-triagem-resumo { margin: 0 0 .85rem; font-size: 1rem; line-height: 1.55; }
.ed-triagem-itens { display: grid; gap: .6rem; margin: 0 0 .75rem; padding: 0; list-style: none; }
.ed-triagem-itens li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9375rem; }
.ed-triagem-itens li > .bi { flex: none; margin-top: .15rem; font-size: 1.05rem; }
.ed-triagem-itens li.tom-danger > .bi { color: var(--ed-danger-700); }
.ed-triagem-itens li.tom-primary > .bi { color: var(--ed-primary-600); }
.ed-triagem-itens li.tom-accent > .bi { color: var(--ed-accent-700); }
.ed-triagem-itens li.tom-success > .bi { color: var(--ed-success-700); }
.ed-anexo-texto { margin-top: .35rem; font-size: .8125rem; }
.ed-anexo-texto summary { cursor: pointer; color: var(--ed-primary-700); }
.ed-anexo-texto-corpo { max-height: 18rem; overflow: auto; margin-top: .4rem; padding: .6rem .75rem; border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-md);
  background: var(--ed-surface-sunken); font-size: .8125rem; line-height: 1.55; white-space: normal; overflow-wrap: anywhere; }


/* ================================================================ componentes próprios do EasyDiário (F0) */
/* 5. Componentes ----------------------------------------------------------------------------- */

/* página "em implantação" (F0) e página de erro curta */
.ed-implantacao,
.ed-erro {
    min-height: 100vh;
    display: grid;
    grid-template-rows: 1fr auto;
    justify-items: center;
    align-items: center;
    background:
        radial-gradient(900px 480px at 50% -12%, var(--ed-primary-50), transparent 65%),
        var(--ed-canvas);
}
.ed-implantacao__cartao,
.ed-erro__cartao {
    position: relative;
    overflow: hidden;
    width: min(36rem, calc(100% - 2rem));
    margin: 3rem 1rem 1.5rem;
    padding: 2rem;
    background: var(--ed-surface);
    border: 1px solid var(--ed-border);
    border-radius: var(--ed-radius-lg);
    box-shadow: var(--ed-shadow-md);
    animation: ed-entrar var(--ed-dur-entrada) var(--ed-ease-entrada) both;
}
.ed-implantacao__cartao::before,
.ed-erro__cartao::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--ed-accent-500);
}
.ed-implantacao__marca { display: block; width: 56px; height: 56px; margin: 0 0 1.25rem; }
.ed-implantacao h1,
.ed-erro h1 { margin: 0 0 .75rem; font-size: clamp(1.5rem, 3.5vw, 2rem); }
.ed-implantacao__texto,
.ed-erro p:not(.ed-eyebrow) { margin: 0 0 1.5rem; color: var(--ed-text-muted); line-height: 1.55; }
.ed-implantacao__passos { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.ed-implantacao__passo {
    font-size: .75rem;
    font-weight: 600;
    padding: .3rem .7rem;
    border-radius: var(--ed-radius-pill);
    background: var(--ed-neutral-50);
    color: var(--ed-neutral-700);
    border: 1px solid var(--ed-border);
}
.ed-implantacao__passo--feito {
    background: var(--ed-success-50);
    color: var(--ed-success-700);
    border-color: transparent;
}
.ed-implantacao__rodape { font-size: .75rem; color: var(--ed-text-muted); padding: 0 1rem 1.5rem; }

@keyframes ed-entrar {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: none; }
}


/* 6. Movimento respeita a preferência da pessoa (DESIGN.md §6) --------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .ed-implantacao__cartao,
    .ed-erro__cartao { animation: none; }
    *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; }
}

/* ======================================================================================================
   F2 (28/10/2026) — landing do diário: ilustrações em HTML com a própria folha (jornal, layouts, selo de
   autenticidade, e-mail de alerta), cartões de planos, passos compactos e texto corrido dos termos.
   Só tokens; nada anima aqui (o movimento é o [data-revelar] do ed.js, que some com prefers-reduced-motion).
   ====================================================================================================== */
.ed-jornal-mock { background: var(--ed-surface); color: var(--ed-text); padding: 1.1rem 1.25rem 1rem; font-family: Georgia, 'Times New Roman', serif; min-height: 300px; }
.ed-jornal-masthead { text-align: center; border-bottom: 3px double var(--ed-ink-900); padding-bottom: .5rem; margin-bottom: .7rem; }
.ed-jornal-masthead strong { display: block; font-size: 1.15rem; letter-spacing: .02em; text-transform: uppercase; color: var(--ed-ink-900); }
.ed-jornal-masthead small { display: block; margin-top: .2rem; font-family: var(--ed-fonte); font-size: .7rem; color: var(--ed-text-muted); }
.ed-jornal-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ed-jornal-colunas h4 { margin: .4rem 0 .4rem; font-family: var(--ed-fonte); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ed-primary-600); }
.ed-jornal-colunas h4:first-child { margin-top: 0; }
.ed-jornal-linha { height: 5px; border-radius: 3px; background: var(--ed-border); margin: 0 0 6px; }
.ed-jornal-linha.curta { width: 62%; }
.ed-jornal-rodape { display: flex; justify-content: space-between; gap: .5rem; margin-top: .9rem; padding-top: .5rem; border-top: 1px solid var(--ed-border); font-family: var(--ed-mono); font-size: .62rem; color: var(--ed-text-muted); }
.ed-jornal-mini { min-height: 0; padding: .7rem .75rem .75rem; border: 1px solid var(--ed-border); border-radius: var(--ed-radius-md); box-shadow: var(--ed-shadow-sm); }
.ed-jornal-mini .ed-jornal-masthead { padding-bottom: .3rem; margin-bottom: .5rem; border-bottom-width: 2px; }
.ed-jornal-mini .ed-jornal-masthead strong { font-size: .75rem; }
.ed-jornal-mini .ed-jornal-linha { height: 4px; margin-bottom: 4px; }
.ed-layouts-mock { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; width: 100%; }
.ed-layouts-mock figure { margin: 0; }
.ed-layouts-mock figcaption { margin-top: .45rem; text-align: center; font-size: .75rem; font-weight: 700; color: var(--ed-text-muted); }
.ed-mock-lista { width: 100%; max-width: 520px; background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-lg); overflow: hidden; }
.ed-mock-lista-topo { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--ed-border-suave); font-size: .9375rem; }
.ed-mock-lista .ed-eventos { margin: 0; padding: .5rem 1rem .75rem; }
.ed-mock-lista .ed-eventos-quando { font-family: var(--ed-mono); font-size: .75rem; }
.ed-selo-mock { display: grid; justify-items: center; text-align: center; gap: .4rem; width: 100%; max-width: 440px; padding: 1.75rem 1.5rem; background: var(--ed-surface); border: 1px solid var(--ed-success-500); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-lg); }
.ed-selo-mock-icone { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--ed-success-50); color: var(--ed-success-700); font-size: 2rem; }
.ed-selo-mock strong { font-size: 1.25rem; letter-spacing: -.01em; color: var(--ed-success-700); }
.ed-selo-mock code { display: block; margin: .35rem 0; padding: .5rem .75rem; border-radius: var(--ed-radius-sm); background: var(--ed-surface-sunken); font-size: .75rem; letter-spacing: .04em; color: var(--ed-text); }
.ed-selo-mock small { font-size: .8125rem; color: var(--ed-text-muted); }
.ed-email-mock { width: 100%; max-width: 480px; padding: 1.1rem 1.25rem; background: var(--ed-surface); border: 1px solid var(--ed-border); border-radius: var(--ed-radius-lg); box-shadow: var(--ed-shadow-lg); font-size: .9375rem; }
.ed-email-mock p { margin: 0 0 .6rem; }
.ed-email-mock-topo { display: flex; align-items: center; gap: .75rem; margin-bottom: .9rem; padding-bottom: .75rem; border-bottom: 1px solid var(--ed-border-suave); }
.ed-email-mock-topo small { display: block; color: var(--ed-text-muted); font-size: .75rem; }
.ed-email-mock-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ed-primary-50); color: var(--ed-primary-600); font-size: 1.1rem; }
.ed-email-mock-botao { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.ed-email-mock-botao small { color: var(--ed-text-muted); }
.ed-secao-apoio { max-width: 46rem; color: var(--ed-text-muted); font-size: 1.0625rem; }
.ed-planos { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); align-items: stretch; }
.ed-plano { position: relative; display: flex; flex-direction: column; gap: .75rem; padding: 1.75rem 1.5rem 1.5rem; background: var(--ed-surface); border: 1px solid var(--ed-border-suave); border-radius: var(--ed-radius-xl); box-shadow: var(--ed-shadow-sm); }
.ed-plano.destaque { border-color: var(--ed-primary-400); box-shadow: var(--ed-shadow-md); }
.ed-plano-selo { position: absolute; top: -.75rem; left: 1.25rem; padding: .25rem .7rem; border-radius: var(--ed-radius-pill); background: var(--ed-accent-600); color: #fff; font-size: .6875rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.ed-plano h3 { margin: 0; font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; }
.ed-plano-descricao { margin: 0; color: var(--ed-text-muted); font-size: .9375rem; }
.ed-plano-valor { margin: .25rem 0 0; font-size: 1.75rem; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--ed-ink-900); }
.ed-plano-valor small { font-size: .875rem; font-weight: 600; color: var(--ed-text-muted); letter-spacing: 0; }
.ed-plano > ul { list-style: none; margin: .25rem 0 .5rem; padding: 0; display: grid; gap: .45rem; font-size: .9375rem; }
.ed-plano > ul .bi { margin-right: .45rem; color: var(--ed-success-700); }
.ed-plano > ul li.nao { color: var(--ed-text-muted); }
.ed-plano > ul li.nao .bi { color: var(--ed-neutral-500); }
.ed-passos-compactos { gap: .75rem; }
.ed-passos-compactos li { padding: .75rem .9rem; }
.ed-passos-compactos li span { font-size: .875rem; }
.ed-texto-corrido h2 { margin: 1.75rem 0 .5rem; font-size: 1.25rem; }
.ed-texto-corrido h2:first-child { margin-top: 0; }
.ed-texto-corrido p, .ed-texto-corrido li { line-height: 1.65; }
.ed-texto-corrido ul { padding-left: 1.25rem; }
@media (max-width: 575.98px) {
  .ed-jornal-mock { padding: .85rem .9rem .75rem; min-height: 0; }
  .ed-layouts-mock { gap: .5rem; }
  .ed-plano { padding: 1.5rem 1.1rem 1.25rem; }
}
