      :root {
        color-scheme: light;
        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        --bg: #f4f8fd;
        --surface: #ffffff;
        --surface-2: #eaf3ff;
        --border: rgba(31, 88, 153, 0.16);
        --text: #10233f;
        --muted: #60738f;
        --green: #00a9ca;
        --blue: #176bd1;
        --orange: #dd7624;
        --primary: var(--blue);
        --navy: var(--brand-navy, #0b3d91);
      }
      * { box-sizing: border-box; }
      body {
        margin: 0;
        min-height: 100vh;
        background:
          radial-gradient(circle at 88% -10%, rgba(23, 107, 209, .15), transparent 36rem),
          radial-gradient(circle at 5% 8%, rgba(0, 184, 220, .11), transparent 29rem),
          var(--bg);
        color: var(--text);
      }
      button, input, select { font: inherit; }
      .shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
      header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 82px;
        border-bottom: 1px solid var(--border);
      }
      .brand { display: flex; align-items: center; gap: 13px; font-weight: 800; letter-spacing: .04em; }
      .brand-logo { display: flex; width: 216px; height: 64px; overflow: hidden; border-radius: 11px; background: #fff; }
      .brand-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
      .status { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .9rem; }
      .status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(245,173,97,.12); }
      .status.online .status-dot { background: var(--green); box-shadow: 0 0 0 4px rgba(91,209,165,.12); }
      main { padding: 34px 0 80px; }
      .intro { max-width: 900px; }
      .eyebrow { color: var(--green); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
      h1 { max-width: 820px; margin: 10px 0 14px; font-size: clamp(2.1rem, 4.5vw, 3.8rem); line-height: 1.02; letter-spacing: -.05em; }
      .lead { max-width: 680px; margin: 0; color: var(--muted); font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.65; }
      .scope {
        display: inline-flex; align-items: center; gap: 9px; margin-top: 26px; padding: 10px 14px;
        border: 1px solid rgba(91,209,165,.25); border-radius: 999px; background: rgba(91,209,165,.07); color: var(--text);
      }
      .scope strong { color: var(--green); }
      .mode-switch {
        display: inline-flex; flex-wrap: wrap; gap: 6px; margin-top: 24px; padding: 5px;
        border: 1px solid var(--border); border-radius: 14px; background: var(--surface);
      }
      .mode-button {
        min-height: 40px; padding: 0 16px; border: 0; border-radius: 10px;
        background: transparent; color: var(--muted); cursor: pointer; font-weight: 720;
      }
      .mode-button[aria-pressed="true"] { background: var(--surface-2); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); }
      .mode-button.intelligence-entry { color: #0891b2; }
      .mode-button.intelligence-entry[aria-pressed="true"] { background: linear-gradient(135deg, #176bd1, #00a9ca); color: #fff; box-shadow: 0 8px 22px rgba(23,107,209,.20); }
      .metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 38px; }
      .card, .panel { border: 1px solid var(--border); background: var(--surface); box-shadow: 0 18px 45px rgba(0,0,0,.14); }
      .card { min-height: 130px; padding: 22px; border-radius: 18px; }
      .card-label { color: var(--muted); font-size: .84rem; }
      .card-value { margin-top: 15px; font-size: 2rem; font-weight: 780; letter-spacing: -.04em; }
      .workspace { display: grid; grid-template-columns: 1.45fr .85fr; gap: 18px; margin-top: 18px; }
      .workspace, .workspace > *, .panel, .map-shell { min-width: 0; max-width: 100%; }
      .panel { border-radius: 22px; padding: 26px; }
      .panel h2 { margin: 0; font-size: 1.15rem; }
      .panel-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 22px; }
      .source { color: var(--muted); font-size: .8rem; }
      .filters { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
      .filter-span { grid-column: 1 / -1; }
      .filter-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 12px; }
      .filters .filter-actions, .participation-filters .filter-actions { grid-column: 1 / -1; margin-top: 0; }
      .clear-filters-button {
        min-height: 38px; padding: 0 13px; border: 1px solid rgba(23,107,209,.24); border-radius: 10px;
        background: #fff; color: #155fb9; cursor: pointer; font-size: .76rem; font-weight: 760;
      }
      .clear-filters-button:hover, .clear-filters-button:focus-visible { border-color: rgba(23,107,209,.52); background: #eef6ff; outline: none; }
      .clear-filters-button:disabled { border-color: var(--border); background: #f7f9fc; color: #91a0b3; cursor: not-allowed; }
      .action-group { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
      label { display: grid; gap: 7px; color: var(--muted); font-size: .82rem; }
      select, input {
        width: 100%; min-height: 44px; border: 1px solid var(--border); border-radius: 12px;
        background: var(--surface); color: var(--text); padding: 0 13px; outline: none;
      }
      select:focus, input:focus { border-color: rgba(120,186,247,.65); box-shadow: 0 0 0 3px rgba(120,186,247,.10); }
      .results { margin-top: 20px; border-top: 1px solid var(--border); }
      .candidate { display: grid; grid-template-columns: 1fr auto; gap: 18px; padding: 16px 2px; border-bottom: 1px solid var(--border); }
      button.candidate, button.municipality {
        width: 100%; border-width: 0 0 1px; border-radius: 0; background: transparent;
        color: inherit; text-align: left; cursor: pointer;
      }
      button.candidate:hover, button.candidate:focus-visible,
      button.municipality:hover, button.municipality:focus-visible {
        background: rgba(120,186,247,.06); outline: none;
      }
      .candidate-name { font-weight: 700; }
      .candidate-meta { margin-top: 5px; color: var(--muted); font-size: .82rem; }
      .candidate-votes { color: var(--green); font-weight: 760; text-align: right; }
      .candidate-votes span { display: block; margin-top: 4px; color: var(--muted); font-size: .7rem; font-weight: 560; }
      .candidate-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; border-bottom: 1px solid var(--border); }
      .candidate-line .candidate { width: 100%; border-bottom: 0; }
      .compare-toggle { align-self: center; min-width: 88px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--blue); font: inherit; font-size: .75rem; font-weight: 760; cursor: pointer; }
      .compare-toggle.selected { border-color: var(--blue); background: rgba(23,107,209,.10); }
      .comparator-bar { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
      .comparator-bar span { color: var(--muted); font-size: .8rem; }
      .comparator-button { padding: 10px 14px; border: 0; border-radius: 10px; background: var(--blue); color: #fff; font: inherit; font-size: .78rem; font-weight: 780; cursor: pointer; }
      .comparator-button:disabled { opacity: .45; cursor: not-allowed; }
      .comparison-panel { margin-top: 18px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
      .comparison-summary { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: 14px 0; }
      .comparison-card { padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
      .comparison-card strong, .comparison-card span { display: block; }
      .comparison-card span { margin-top: 5px; color: var(--muted); font-size: .76rem; }
      .cycle-comparison { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border); }
      .cycle-comparison h3 { margin: 0; color: var(--navy); font-size: 1rem; }
      .cycle-comparison > p { margin: 6px 0 14px; color: var(--muted); font-size: .82rem; line-height: 1.55; }
      .candidate-votes.preparation { color: var(--blue); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
      .office-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 2px 0 14px; }
      .office-tab {
        display: block; min-width: 0; min-height: 64px; padding: 10px 12px;
        border: 1px solid var(--border); border-radius: 12px; background: var(--surface);
        color: var(--muted); cursor: pointer; text-align: left; text-decoration: none;
      }
      .office-tab strong { display: block; color: var(--text); font-size: .84rem; }
      .office-tab span { display: block; margin-top: 3px; font-size: .72rem; }
      .office-tab.active { border-color: rgba(120,186,247,.62); background: rgba(120,186,247,.11); box-shadow: inset 0 0 0 1px rgba(120,186,247,.10); }
      .candidate-summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 18px 0 8px; }
      .candidate-summary strong { font-size: 1rem; }
      .candidate-summary span { color: var(--muted); font-size: .78rem; }
      .candidate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 4px 0; }
      .candidate-card {
        min-width: 0; width: 100%; padding: 15px; border: 1px solid var(--border);
        border-radius: 14px; background: var(--surface); color: inherit;
        text-align: left; cursor: pointer; transition: border-color .16s ease, transform .16s ease, background .16s ease;
      }
      .candidate-card:hover, .candidate-card:focus-visible {
        border-color: rgba(120,186,247,.55); background: rgba(120,186,247,.08);
        transform: translateY(-1px); outline: none;
      }
      .candidate-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
      .candidate-card-identity { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 10px; align-items: center; min-width: 0; }
      .candidate-thumb { display: grid; place-items: center; width: 42px; height: 42px; overflow: hidden; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); color: var(--blue); font-size: .72rem; font-weight: 820; }
      .candidate-thumb img { width: 100%; height: 100%; object-fit: cover; }
      .candidate-number { flex: 0 0 auto; padding: 5px 8px; border-radius: 8px; background: rgba(91,209,165,.10); color: var(--green); font-size: .76rem; font-weight: 800; }
      .candidate-card .candidate-name { overflow: hidden; text-overflow: ellipsis; }
      .candidate-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 11px; color: var(--muted); font-size: .74rem; }
      .candidate-card-action { margin-top: 11px; color: var(--blue); font-size: .74rem; font-weight: 760; }
      .status-chip { padding: 4px 7px; border-radius: 999px; background: rgba(120,186,247,.09); color: #bde0ff; white-space: nowrap; }
      dialog.profile-dialog {
        width: min(820px, calc(100% - 28px)); max-height: min(88vh, 920px); padding: 0;
        border: 1px solid var(--border); border-radius: 22px; color: var(--text);
        background: var(--surface); box-shadow: 0 32px 100px rgba(0,0,0,.55); overflow: hidden;
      }
      dialog.profile-dialog::backdrop { background: rgba(2,9,14,.76); backdrop-filter: blur(5px); }
      .profile-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; border-bottom: 1px solid var(--border); }
      .profile-dialog-head strong { font-size: .96rem; }
      .modal-close { width: 38px; height: 38px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); cursor: pointer; font-size: 1.2rem; }
      .profile-content { max-height: calc(88vh - 76px); padding: 24px; overflow: auto; }
      .profile-hero { display: grid; grid-template-columns: 76px 1fr; gap: 18px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--border); }
      .profile-avatar { display: grid; place-items: center; width: 76px; height: 76px; overflow: hidden; border: 1px solid rgba(91,209,165,.28); border-radius: 20px; background: linear-gradient(145deg, rgba(91,209,165,.18), rgba(120,186,247,.12)); color: var(--green); font-size: 1.35rem; font-weight: 850; }
      .profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
      .profile-name { margin: 0; font-size: clamp(1.35rem, 4vw, 2rem); line-height: 1.05; letter-spacing: -.03em; }
      .profile-meta { margin-top: 8px; color: var(--muted); line-height: 1.5; }
      .profile-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 18px; }
      .profile-field { min-height: 78px; padding: 13px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface); }
      .profile-field span { display: block; color: var(--muted); font-size: .72rem; }
      .profile-field strong { display: block; margin-top: 7px; font-size: .88rem; line-height: 1.35; }
      .profile-section { margin-top: 24px; }
      .profile-section h3 { margin: 0 0 11px; font-size: .92rem; }
      .profile-political { padding: 15px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface); color: var(--muted); line-height: 1.55; }
      .profile-political strong { color: var(--text); }
      .module-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 9px; }
      .module-status { padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
      .module-status strong { display: block; font-size: .8rem; }
      .module-status span { display: block; margin-top: 6px; color: var(--muted); font-size: .7rem; line-height: 1.35; }
      .module-status.available { border-color: rgba(91,209,165,.35); background: rgba(91,209,165,.07); }
      .profile-source { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--border); color: var(--muted); font-size: .74rem; line-height: 1.5; }
      .profile-source a, .profile-link { color: #bde7ff; }
      .profile-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
      .profile-action { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 13px; border: 1px solid rgba(120,186,247,.34); border-radius: 10px; color: #d9edff; background: rgba(120,186,247,.09); text-decoration: none; font-size: .78rem; font-weight: 760; }
      .profile-action.primary { border-color: rgba(91,209,165,.42); color: #d8faed; background: rgba(91,209,165,.11); }
      .asset-list { display: grid; gap: 8px; margin-top: 10px; }
      .asset-row { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 11px 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface); }
      .asset-row strong { font-size: .78rem; line-height: 1.35; }
      .asset-row span { color: var(--green); font-size: .78rem; font-weight: 760; white-space: nowrap; }
      .situation-line { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
      .situation-line span { padding: 5px 8px; border-radius: 999px; background: rgba(120,186,247,.09); color: #cbe5fb; font-size: .7rem; }
      .monitor-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
      .monitor-card { padding: 15px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-2); }
      .monitor-card span, .monitor-card small { display: block; color: var(--muted); font-size: .74rem; }
      .monitor-card strong { display: block; margin: 7px 0 4px; color: var(--blue); font-size: 1.25rem; }
      .status-distribution { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
      .status-distribution span { padding: 6px 9px; border-radius: 999px; background: #eef6ff; color: #315a83; font-size: .72rem; }
      .status-timeline { display: grid; gap: 8px; margin-top: 10px; }
      .status-event { padding: 11px 12px; border-left: 3px solid var(--blue); border-radius: 0 10px 10px 0; background: var(--surface-2); }
      .status-event strong, .status-event span { display: block; }
      .status-event span { margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.45; }
      .empty { padding: 38px 12px; color: var(--muted); text-align: center; line-height: 1.6; }
      .hidden { display: none !important; }
      .notice {
        margin-top: 16px; padding: 13px 15px; border: 1px solid rgba(120,186,247,.22);
        border-radius: 12px; background: rgba(120,186,247,.06); color: #cfe7fc;
        font-size: .84rem; line-height: 1.5;
      }
      .municipalities { margin-top: 16px; max-height: 510px; overflow: auto; border-top: 1px solid var(--border); }
      .municipality { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 14px 2px; border-bottom: 1px solid var(--border); }
      .municipality-name { font-weight: 700; }
      .municipality-meta { margin-top: 5px; color: var(--muted); font-size: .8rem; }
      .municipality-total { color: #a84b0b; font-weight: 760; text-align: right; }
      .historical-municipalities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; max-height: 310px; overflow: auto; margin-bottom: 24px; padding-right: 6px; }
      .full-span { grid-column: 1 / -1; }
      .map-primary { order: -1; }
      .detail-head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
      .back-button {
        min-height: 38px; padding: 0 13px; border: 1px solid var(--border); border-radius: 10px;
        background: var(--surface); color: var(--text); cursor: pointer;
      }
      .detail-title { font-weight: 800; }
      .detail-subtitle { margin-top: 4px; color: var(--muted); font-size: .82rem; }
      .local-list { max-height: 560px; overflow: auto; padding-right: 6px; border-top: 1px solid var(--border); scrollbar-width: thin; }
      .local-row { display: grid; grid-template-columns: 1fr auto; gap: 18px; padding: 16px 2px; border-bottom: 1px solid var(--border); }
      .local-name { font-weight: 720; }
      .local-meta { margin-top: 5px; color: var(--muted); font-size: .82rem; line-height: 1.45; }
      .local-total { color: var(--green); font-weight: 780; text-align: right; white-space: nowrap; }
      .local-total span { display: block; margin-top: 4px; color: var(--muted); font-size: .72rem; font-weight: 500; }
      .local-profile-button { margin-top: 9px; padding: 6px 9px; border: 1px solid rgba(23,107,209,.24); border-radius: 8px; background: #eef6ff; color: #155fb9; cursor: pointer; font-size: .7rem; font-weight: 760; }
      .percent-summary { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-bottom: 20px; }
      .percent-card { padding: 15px; border: 1px solid var(--border); border-radius: 14px; background: #f8fbff; }
      .percent-card span { display: block; color: var(--muted); font-size: .74rem; }
      .percent-card strong { display: block; margin-top: 7px; color: var(--blue); font-size: 1.35rem; }
      .percent-card small { display: block; margin-top: 5px; color: var(--muted); line-height: 1.4; }
      .hierarchy-panel { margin: 4px 0 26px; padding: 18px; border: 1px solid rgba(23,107,209,.18); border-radius: 17px; background: #f8fbff; }
      .hierarchy-tabs { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 8px; }
      .hierarchy-tabs.without-region { grid-template-columns: repeat(4, minmax(0,1fr)); }
      .hierarchy-tab { min-height: 42px; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: var(--muted); cursor: pointer; font-size: .76rem; font-weight: 780; }
      .hierarchy-tab.active { border-color: rgba(23,107,209,.50); background: #176bd1; color: #fff; }
      .hierarchy-tab:disabled { cursor: not-allowed; opacity: .42; }
      .hierarchy-breadcrumb { margin: 13px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
      .hierarchy-context { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
      .hierarchy-metric { min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 13px; background: #fff; }
      .hierarchy-metric span { display: block; color: var(--muted); font-size: .68rem; }
      .hierarchy-metric strong { display: block; margin-top: 6px; color: var(--blue); font-size: 1.08rem; }
      .hierarchy-metric small { display: block; margin-top: 4px; color: var(--muted); font-size: .66rem; line-height: 1.35; }
      .hierarchy-tools { display: grid; grid-template-columns: minmax(0,1fr) minmax(190px,.32fr); gap: 10px; margin-top: 16px; }
      .hierarchy-tools.with-action { grid-template-columns: minmax(0,1fr) minmax(190px,.32fr) auto; align-items: end; }
      .hierarchy-tools label { margin: 0; }
      .hierarchy-tools .action-group { align-self: end; }
      .hierarchy-list { max-height: 520px; overflow: auto; margin-top: 12px; border-top: 1px solid var(--border); scrollbar-width: thin; }
      .hierarchy-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; width: 100%; padding: 14px 5px; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: inherit; cursor: pointer; text-align: left; }
      .hierarchy-row:hover, .hierarchy-row:focus-visible, .hierarchy-row.selected { background: #eef6ff; }
      .hierarchy-row strong { display: block; font-size: .84rem; }
      .hierarchy-row span { display: block; margin-top: 4px; color: var(--muted); font-size: .69rem; line-height: 1.4; }
      .hierarchy-performance { color: #087d97; font-size: .95rem; font-weight: 820; text-align: right; white-space: nowrap; }
      .hierarchy-performance small { display: block; margin-top: 4px; color: var(--muted); font-size: .66rem; font-weight: 600; }
      .metric-switch { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--border); border-radius: 11px; background: #fff; }
      .metric-button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; font-size: .78rem; font-weight: 720; }
      .metric-button.active { color: #fff; background: var(--blue); }
      .map-shell { position: relative; overflow: hidden; margin-top: 14px; border: 1px solid var(--border); border-radius: 18px; background: var(--surface-2); box-shadow: inset 0 0 0 1px rgba(255,255,255,.015); }
      .map { width: 100%; height: 420px; }
      .map-note { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 15px; color: var(--muted); font-size: .76rem; border-top: 1px solid var(--border); background: rgba(6,18,27,.92); }
      .map-note strong { color: var(--text); }
      .leaflet-container { background: var(--surface-2); font-family: inherit; }
      .leaflet-tile-pane { filter: grayscale(1) invert(1) brightness(.63) contrast(1.18); }
      .leaflet-control-zoom a { background: #102938; color: var(--text); border-color: var(--border); }
      .leaflet-control-attribution { background: rgba(6,18,27,.78) !important; color: var(--muted); }
      .leaflet-control-attribution a { color: #bde7ff; }
      .leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #102938; color: var(--text); }
      .leaflet-popup-content { line-height: 1.45; }
      .map-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
      .view-switch { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface); }
      .view-button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; font-size: .78rem; font-weight: 720; }
      .view-button.active { color: #06121b; background: var(--green); }
      .heat-legend { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
      .heat-legend i { display: block; width: 130px; height: 8px; border-radius: 999px; background: linear-gradient(90deg, #22d3ee, #a3e635, #fde047, #fb923c, #ef4444); box-shadow: 0 0 18px rgba(253,224,71,.22); }
      .coverage-badge { padding: 6px 9px; border: 1px solid rgba(91,209,165,.28); border-radius: 999px; color: var(--text); background: rgba(91,209,165,.08); white-space: nowrap; }
      .segments { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 12px; scrollbar-width: thin; }
      .territory-select { width: 100%; min-height: 44px; padding: 0 38px 0 12px; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: var(--text); cursor: pointer; }
      .territory-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
      .territory-filter-grid > div { min-width: 0; }
      .territory-filter-grid .section-label { margin-top: 0; }
      .segmentacao-votos { margin-top: 28px; }
      .segmentacao-votos + .section-label { margin-top: 30px; }
      .intelligence-workspace { grid-template-columns: 1fr; }
      .intelligence-module-switch { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 12px 34px rgba(30,76,128,.08); }
      .intelligence-module-button { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 11px; align-items: center; min-width: 0; padding: 13px; border: 1px solid transparent; border-radius: 13px; background: transparent; color: var(--text); cursor: pointer; text-align: left; }
      .intelligence-module-button svg { width: 24px; height: 24px; padding: 5px; border-radius: 9px; background: #eaf3ff; fill: none; stroke: #176bd1; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
      .intelligence-module-button strong, .intelligence-module-button small { display: block; min-width: 0; }
      .intelligence-module-button strong { font-size: .79rem; }
      .intelligence-module-button small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: .68rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
      .intelligence-module-button.active { border-color: rgba(23,107,209,.30); background: #eef6ff; box-shadow: inset 0 0 0 1px rgba(23,107,209,.06); }
      .intelligence-module-button.active svg { color: #fff; background: linear-gradient(135deg,#176bd1,#00a9ca); stroke: #fff; }
      .chat-panel { overflow: hidden; }
      .chat-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
      .chat-head p { max-width: 760px; margin: 7px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.55; }
      .chat-status { flex: 0 0 auto; padding: 6px 10px; border-radius: 999px; background: #eef6ff; color: #315a83; font-size: .72rem; font-weight: 760; }
      .chat-status.online { background: #e4f8f4; color: #087b70; }
      .chat-head-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; }
      .chat-new-conversation { min-height: 32px; padding: 0 10px; border: 1px solid var(--border); border-radius: 999px; background: #fff; color: var(--blue); cursor: pointer; font-size: .7rem; font-weight: 740; }
      .assistant-tabs { display: inline-flex; gap: 5px; margin-top: 18px; padding: 5px; border: 1px solid var(--border); border-radius: 13px; background: #f4f9ff; }
      .assistant-tab { min-height: 38px; padding: 0 14px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); cursor: pointer; font-size: .76rem; font-weight: 760; }
      .assistant-tab.active { background: #fff; color: var(--blue); box-shadow: 0 3px 12px rgba(23,107,209,.10); }
      .assistant-view { margin-top: 12px; }
      .chat-messages { display: grid; gap: 10px; min-height: 118px; max-height: 430px; margin-top: 18px; padding: 16px; overflow: auto; border: 1px solid var(--border); border-radius: 16px; background: #f7fbff; }
      .chat-message { max-width: min(820px, 92%); padding: 12px 14px; border: 1px solid var(--border); border-radius: 14px; background: #fff; color: var(--text); font-size: .84rem; line-height: 1.55; white-space: pre-wrap; }
      .chat-message.user { justify-self: end; border-color: rgba(23,107,209,.28); background: #eaf3ff; }
      .chat-message.error { border-color: rgba(196,63,63,.25); background: #fff2f2; color: #9b2929; }
      .chat-grounding { margin: -3px 0 2px 4px; color: var(--muted); font-size: .67rem; line-height: 1.4; }
      .chat-suggestions { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }
      .chat-suggestion { padding: 8px 10px; border: 1px solid var(--border); border-radius: 999px; background: #fff; color: var(--blue); cursor: pointer; font-size: .72rem; }
      .chat-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; }
      .chat-form label { min-width: 0; }
      .chat-form textarea { width: 100%; min-height: 78px; max-height: 180px; resize: vertical; border: 1px solid var(--border); border-radius: 13px; background: #fff; color: var(--text); padding: 12px 13px; outline: none; font: inherit; line-height: 1.45; }
      .chat-form textarea:focus { border-color: rgba(23,107,209,.55); box-shadow: 0 0 0 3px rgba(23,107,209,.09); }
      .chat-form button { min-height: 46px; }
      .chat-footnote { margin-top: 10px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
      .report-intro { max-width: 850px; margin: 4px 0 16px; color: var(--muted); font-size: .82rem; line-height: 1.55; }
      .report-form { display: grid; grid-template-columns: minmax(240px,1.6fr) minmax(130px,.55fr) minmax(170px,.75fr) auto; gap: 10px; align-items: end; }
      .report-form input, .report-form select { width: 100%; min-height: 44px; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: var(--text); padding: 0 12px; outline: none; }
      .report-form input:focus, .report-form select:focus { border-color: rgba(23,107,209,.55); box-shadow: 0 0 0 3px rgba(23,107,209,.09); }
      .candidate-hints { display: flex; flex-wrap: wrap; gap: 7px; min-height: 8px; margin-top: 10px; }
      .candidate-hint { padding: 7px 10px; border: 1px solid rgba(23,107,209,.2); border-radius: 999px; background: #f4f9ff; color: #176bd1; cursor: pointer; font-size: .7rem; }
      .report-output { margin-top: 18px; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: #fbfdff; }
      .report-output-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
      .report-output-head h3 { margin: 0; font-size: 1.12rem; }
      .report-output-head p { max-width: 780px; margin: 7px 0 0; color: var(--muted); font-size: .8rem; line-height: 1.55; }
      .report-head-actions { display: grid; justify-items: end; gap: 8px; flex: 0 0 auto; }
      .report-download { min-height: 38px; padding: 8px 12px; border: 0; border-radius: 10px; background: linear-gradient(135deg, var(--blue), #118ec9); color: #fff; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 780; box-shadow: 0 7px 18px rgba(23,107,209,.16); }
      .report-download:disabled { opacity: .65; cursor: wait; }
      .report-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
      .report-metric { padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
      .report-metric span { display: block; color: var(--muted); font-size: .68rem; }
      .report-metric strong { display: block; margin-top: 5px; color: var(--blue); font-size: 1.06rem; }
      .report-section-title { margin: 20px 0 8px; color: var(--text); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
      .report-highlights { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
      .report-highlights li { padding: 9px 11px; border-left: 3px solid var(--green); border-radius: 0 9px 9px 0; background: #eef9fc; color: #315a83; font-size: .76rem; line-height: 1.45; }
      .report-timeline { display: grid; gap: 9px; }
      .report-event { display: grid; grid-template-columns: 74px minmax(0,1fr) auto; gap: 13px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
      .report-event-year { color: var(--blue); font-size: 1.05rem; font-weight: 850; }
      .report-event strong { display: block; font-size: .8rem; }
      .report-event small { display: block; margin-top: 3px; color: var(--muted); font-size: .68rem; line-height: 1.4; }
      .report-event-result { color: #087d97; font-size: .74rem; font-weight: 800; text-align: right; }
      .report-finance-list { display: grid; gap: 10px; }
      .report-finance-card { padding: 14px; border: 1px solid var(--border); border-radius: 13px; background: #fff; }
      .report-finance-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
      .report-finance-head strong { font-size: .82rem; }
      .report-finance-head small { color: var(--muted); font-size: .67rem; }
      .report-finance-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 11px; }
      .report-finance-metric { padding: 10px; border-radius: 10px; background: #f4f9ff; }
      .report-finance-metric span { display: block; color: var(--muted); font-size: .65rem; }
      .report-finance-metric b { display: block; margin-top: 4px; color: var(--blue); font-size: .86rem; }
      .report-finance-note { margin: 9px 0 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }
      .report-notes { margin: 14px 0 0; padding-left: 18px; color: var(--muted); font-size: .69rem; line-height: 1.5; }
      .intelligence-hero { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
      .intelligence-hero h2 { font-size: 1.42rem; letter-spacing: -.025em; }
      .intelligence-hero p { max-width: 760px; margin: 8px 0 0; color: var(--muted); line-height: 1.55; }
      .intelligence-badge { flex: 0 0 auto; padding: 7px 10px; border: 1px solid rgba(0,169,202,.28); border-radius: 999px; color: #087d97; background: rgba(0,169,202,.08); font-size: .72rem; font-weight: 780; }
      .intelligence-filters { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-top: 24px; }
      .intelligence-trace { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-top: 16px; padding: 12px 14px; border: 1px solid rgba(23,107,209,.15); border-radius: 12px; background: #f4f9ff; color: var(--muted); font-size: .76rem; line-height: 1.45; }
      .intelligence-trace strong { color: var(--text); }
      .intelligence-kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-top: 22px; }
      .intelligence-kpi { min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 15px; background: #f8fbff; }
      .intelligence-kpi span { display: block; color: var(--muted); font-size: .72rem; }
      .intelligence-kpi strong { display: block; margin-top: 7px; color: var(--blue); font-size: 1.32rem; }
      .intelligence-kpi small { display: block; margin-top: 5px; color: var(--muted); line-height: 1.35; }
      .ifr-map-shell { margin-top: 22px; }
      .ifr-legend { display: flex; flex-wrap: wrap; gap: 12px; }
      .ifr-legend span { display: inline-flex; align-items: center; gap: 6px; }
      .ifr-legend i { width: 9px; height: 9px; border-radius: 50%; }
      .intelligence-columns { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 24px; }
      .intelligence-column { min-width: 0; padding: 17px; border: 1px solid var(--border); border-radius: 16px; background: #fbfdff; }
      .intelligence-column h3 { margin: 0; font-size: .94rem; }
      .intelligence-column > p { margin: 6px 0 12px; color: var(--muted); font-size: .75rem; line-height: 1.45; }
      .intelligence-list { max-height: 480px; overflow: auto; border-top: 1px solid var(--border); scrollbar-width: thin; }
      .intelligence-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; padding: 13px 1px; border-bottom: 1px solid var(--border); }
      .intelligence-row strong { display: block; font-size: .82rem; }
      .intelligence-row span { display: block; margin-top: 4px; color: var(--muted); font-size: .7rem; line-height: 1.4; }
      .intelligence-row > div > small { display: block; margin-top: 4px; color: var(--muted); font-size: .68rem; line-height: 1.4; }
      .intelligence-list button.intelligence-row { width: 100%; border: 0; background: transparent; color: inherit; cursor: pointer; text-align: left; }
      .intelligence-list button.intelligence-row:hover, .intelligence-list button.intelligence-row:focus-visible { background: #eef6ff; }
      .intelligence-score { color: #087d97; font-size: .9rem; font-weight: 820; text-align: right; white-space: nowrap; }
      .intelligence-score small { display: block; margin-top: 4px; color: var(--muted); font-size: .66rem; font-weight: 580; }
      .participation-intro { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
      .participation-intro p { max-width: 760px; margin: 7px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
      .participation-filters { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 20px; }
      .participation-kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-top: 20px; }
      .participation-kpi { padding: 15px; border: 1px solid var(--border); border-radius: 15px; background: #f8fbff; }
      .participation-kpi span { display: block; color: var(--muted); font-size: .72rem; }
      .participation-kpi strong { display: block; margin-top: 7px; color: var(--blue); font-size: 1.3rem; }
      .participation-kpi small { display: block; margin-top: 4px; color: var(--muted); font-size: .68rem; }
      .participation-tools { margin-top: 20px; }
      .participation-legend { display: flex; flex-wrap: wrap; gap: 12px; }
      .participation-legend span { display: inline-flex; align-items: center; gap: 6px; }
      .participation-legend i { width: 10px; height: 10px; border-radius: 50%; }
      .participation-note { margin-top: 16px; padding: 12px 14px; border-left: 3px solid var(--green); border-radius: 0 11px 11px 0; background: #eef9fc; color: #315a83; font-size: .75rem; line-height: 1.5; }
      .aggregate-filters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; gap: 12px; align-items: end; margin-top: 20px; }
      .aggregate-breadcrumb { margin-top: 16px; padding: 10px 13px; border: 1px solid var(--border); border-radius: 12px; background: #f8fbff; color: #315a83; font-size: .76rem; font-weight: 750; }
      .aggregate-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 14px; }
      .aggregate-list { max-height: 620px; overflow: auto; margin-top: 18px; border-top: 1px solid var(--border); scrollbar-width: thin; }
      .aggregate-row { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) repeat(4,minmax(92px,.32fr)); gap: 14px; align-items: center; padding: 14px 2px; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: inherit; text-align: left; }
      button.aggregate-row { cursor: pointer; }
      button.aggregate-row:hover, button.aggregate-row:focus-visible { background: #eef6ff; outline: none; }
      .aggregate-row strong, .aggregate-row span, .aggregate-row small { display: block; }
      .aggregate-row .aggregate-name small { margin-top: 4px; color: var(--muted); font-size: .69rem; line-height: 1.4; }
      .aggregate-value { color: #315a83; font-size: .72rem; text-align: right; }
      .aggregate-value strong { margin-bottom: 3px; color: var(--blue); font-size: .92rem; }
      .aggregate-value.aggregate-legend strong { color: #079bbd; }
      .participation-kpi.metric-not-applicable { background: #f5f7fa; }
      .participation-kpi.metric-not-applicable strong, .participation-kpi.metric-not-applicable small { color: var(--gps-muted, #526477); }
      .proportional-filter { grid-template-columns: minmax(240px,420px) auto; }
      .proportional-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
      .seat-details { grid-column: 1 / -1; padding: 12px 14px; border-radius: 12px; background: #f8fbff; }
      .seat-details summary { cursor: pointer; color: #315a83; font-size: .74rem; font-weight: 780; }
      .seat-candidates { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
      .seat-candidates span { padding: 6px 8px; border-radius: 8px; background: #eaf4ff; color: #315a83; font-size: .69rem; }
      .segment {
        flex: 0 0 auto; min-height: 40px; padding: 8px 12px; border: 1px solid var(--border);
        border-radius: 11px; background: var(--surface); color: var(--muted); cursor: pointer; text-align: left;
      }
      .segment strong { display: block; color: var(--text); font-size: .82rem; }
      .segment span { font-size: .72rem; }
      .segment.active { border-color: rgba(91,209,165,.55); background: rgba(91,209,165,.10); }
      .region-block { margin-top: 20px; padding: 14px; border: 1px solid rgba(82,167,255,.18); border-radius: 16px; background: rgba(26,78,145,.08); }
      .profile-bars { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
      .profile-bar-list { display: grid; gap: 9px; }
      .profile-bar-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; align-items: center; }
      .profile-bar-label { overflow: hidden; color: var(--muted); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
      .profile-bar-track { grid-column: 1 / -1; height: 7px; overflow: hidden; border-radius: 999px; background: rgba(153,180,220,.10); }
      .profile-bar-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #19c4dc); }
      .research-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 18px; }
      .research-status-tabs { display: flex; gap: 8px; margin-top: 16px; overflow-x: auto; padding: 2px 0 5px; scrollbar-width: thin; }
      .research-status-button { flex: 0 0 auto; min-height: 40px; padding: 0 13px; border: 1px solid var(--border); border-radius: 999px; background: #fff; color: var(--muted); cursor: pointer; font-size: .73rem; font-weight: 760; }
      .research-status-button.active { border-color: rgba(23,107,209,.38); background: #176bd1; color: #fff; box-shadow: 0 5px 16px rgba(23,107,209,.16); }
      .research-filter-grid { display: grid; grid-template-columns: minmax(0,1.5fr) repeat(2,minmax(170px,.55fr)) auto; gap: 10px; align-items: end; margin-top: 13px; }
      .research-filter-grid label { min-width: 0; margin: 0; }
      .research-filter-grid input, .research-filter-grid select { width: 100%; }
      .research-list-summary { margin-top: 13px; color: var(--muted); font-size: .74rem; line-height: 1.45; }
      .research-card { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; padding: 20px; border: 1px solid var(--border); border-radius: 18px; background: rgba(13,25,43,.82); }
      .research-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(180deg, var(--blue), var(--green)); content: ''; }
      .research-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
      .research-card .status-chip { flex: 0 1 220px; white-space: normal; text-align: right; line-height: 1.35; }
      .research-register { color: var(--blue); font-size: .74rem; font-weight: 800; letter-spacing: .08em; }
      .research-card h3 { margin: 8px 0 5px; font-size: 1.05rem; }
      .research-meta { color: var(--muted); font-size: .78rem; line-height: 1.5; }
      .research-compact-facts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--border); }
      .research-compact-facts span { padding: 6px 8px; border-radius: 8px; background: #f4f8fd; color: #37536f; font-size: .7rem; line-height: 1.35; }
      .research-card .status-chip.status-com_resultado { background: #e3f8ef; color: #08785f; }
      .research-card .status-chip.status-pendente_validacao { background: #fff4d9; color: #8a5a00; }
      .research-card .status-chip.status-disponivel_sem_resultado { background: #eef3f9; color: #50667f; }
      .research-card .status-chip.status-aguardando_confirmacao { background: #fff1d6; color: #765000; }
      .research-card .status-chip.status-aguardando_data { background: #e8f2ff; color: #215a9b; }
      .research-scope-line { margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--border); color: #29435f; font-size: .78rem; line-height: 1.5; }
      .research-compliance-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
      .research-compliance-field { min-width: 0; padding: 10px 11px; border-radius: 11px; background: #f4f8fd; }
      .research-compliance-field span, .research-compliance-field strong { display: block; }
      .research-compliance-field span { color: var(--muted); font-size: .66rem; font-weight: 740; letter-spacing: .045em; text-transform: uppercase; }
      .research-compliance-field strong { margin-top: 4px; overflow: hidden; color: var(--text); font-size: .78rem; line-height: 1.4; text-overflow: ellipsis; }
      .research-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 15px; }
      .research-official-mark { color: var(--muted); font-size: .7rem; }
      .research-compliance-notice { margin: 14px 0 4px; padding: 14px 16px; border: 1px solid rgba(23,107,209,.18); border-radius: 13px; background: #f5faff; color: #37536f; font-size: .78rem; line-height: 1.55; }
      .research-compliance-notice strong { color: var(--text); }
      .research-compliance-notice a { color: #155fb9; font-weight: 720; }
      .research-summary { margin: 16px 0 0; padding: 13px 14px; border-left: 3px solid rgba(23,107,209,.32); border-radius: 0 10px 10px 0; background: rgba(23,107,209,.05); color: #dce7f7; font-size: .84rem; line-height: 1.58; }
      .research-facts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
      .research-facts span { padding: 6px 8px; border-radius: 8px; background: rgba(82,167,255,.08); color: #cfe5ff; font-size: .72rem; }
      .research-results { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 18px; }
      .research-result-section { min-width: 0; padding: 15px; border: 1px solid var(--border); border-radius: 14px; background: #f8fbff; }
      .research-result-section.primary { grid-column: 1 / -1; }
      .research-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
      .research-section-head h4 { margin: 0; font-size: .84rem; }
      .research-section-head span { color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
      .research-bars { display: grid; gap: 10px; }
      .research-bar-row { display: grid; grid-template-columns: minmax(112px,.8fr) minmax(120px,1.35fr) auto; gap: 10px; align-items: center; }
      .research-bar-label { min-width: 0; overflow: hidden; color: #29435f; font-size: .76rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
      .research-bar-track { height: 9px; overflow: hidden; border-radius: 999px; background: #e4edf7; }
      .research-bar-fill { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--bar-color, var(--blue)); }
      .research-bar-value { min-width: 48px; color: var(--text); font-size: .79rem; font-weight: 820; text-align: right; }
      .research-duel { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: stretch; }
      .research-duel-side { display: grid; align-content: center; min-height: 82px; padding: 12px; border-radius: 12px; background: #edf5ff; text-align: center; }
      .research-duel-side:last-child { background: #e9fbff; }
      .research-duel-side span { color: var(--muted); font-size: .71rem; line-height: 1.3; }
      .research-duel-side strong { display: block; margin-top: 6px; color: var(--blue); font-size: 1.35rem; }
      .research-duel-versus { align-self: center; color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .08em; }
      .research-detail { margin: 11px 0 0; padding-top: 10px; border-top: 1px solid var(--border); color: var(--muted); font-size: .72rem; line-height: 1.5; }
      .research-approval { display: flex; height: 12px; overflow: hidden; border-radius: 999px; background: #e4edf7; }
      .research-approval span { display: block; height: 100%; }
      .research-approval .approve { background: linear-gradient(90deg, #0ea5c6, #176bd1); }
      .research-approval .disapprove { background: #f59e0b; }
      .research-approval-labels { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
      .research-approval-labels div { color: var(--muted); font-size: .72rem; }
      .research-approval-labels div:last-child { text-align: right; }
      .research-approval-labels strong { display: block; margin-top: 3px; color: var(--text); font-size: 1rem; }
      .research-source { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-top: 18px; color: var(--muted); font-size: .78rem; }
      .research-source a { color: #bde7ff; }
      .research-card[role="button"] { cursor: pointer; }
      .research-card[role="button"]:hover, .research-card[role="button"]:focus-visible { border-color: rgba(23,107,209,.42); box-shadow: 0 12px 30px rgba(30,76,128,.10); outline: none; }
      .research-open { min-height: 40px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--blue); color: #fff; font-weight: 780; cursor: pointer; }
      .research-more { display: flex; justify-content: center; margin-top: 16px; }
      .research-more button { min-height: 42px; padding: 0 18px; border: 1px solid rgba(23,107,209,.28); border-radius: 11px; background: #fff; color: #155fb9; cursor: pointer; font-weight: 760; }
      dialog.research-dialog { width: min(1040px, calc(100% - 28px)); }
      .research-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
      .research-detail-block { min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: #f8fbff; }
      .research-detail-block.full { grid-column: 1 / -1; }
      .research-detail-block h3 { margin: 0 0 9px; font-size: .92rem; }
      .research-detail-block p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.6; white-space: pre-line; }
      .sample-list { display: grid; gap: 8px; max-height: 480px; margin-top: 12px; overflow: auto; }
      .sample-place { border: 1px solid var(--border); border-radius: 11px; background: #fff; }
      .sample-place summary { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 11px 12px; cursor: pointer; font-size: .8rem; font-weight: 760; }
      .sample-place summary span { color: var(--blue); white-space: nowrap; }
      .sample-localities { display: grid; gap: 6px; padding: 0 12px 12px; }
      .sample-locality { display: grid; grid-template-columns: 1fr auto; gap: 10px; color: var(--muted); font-size: .73rem; line-height: 1.45; }
      .sample-locality strong { color: var(--text); white-space: nowrap; }
      .document-links { display: flex; flex-wrap: wrap; gap: 8px; }
      .document-links a { display: inline-flex; min-height: 38px; align-items: center; padding: 0 12px; border: 1px solid rgba(23,107,209,.24); border-radius: 9px; background: #eef6ff; color: #155fb9; font-size: .76rem; font-weight: 760; text-decoration: none; }
      .section-label { margin: 22px 0 10px; color: var(--muted); font-size: .78rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
      .steps { display: grid; gap: 18px; margin-top: 24px; }
      .step { display: grid; grid-template-columns: 34px 1fr; gap: 12px; }
      .step-number { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--surface-2); color: var(--blue); font-weight: 800; }
      .step strong { display: block; margin: 1px 0 5px; }
      .step p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.5; }
      .transparency-hero { max-width: 780px; }
      .transparency-hero p { margin: 10px 0 0; color: var(--muted); line-height: 1.65; }
      .transparency-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
      .transparency-card { padding: 19px; border: 1px solid var(--border); border-radius: 15px; background: #f8fbff; }
      .transparency-card h3 { margin: 0 0 9px; font-size: .95rem; }
      .transparency-card p, .transparency-card li { color: var(--muted); font-size: .84rem; line-height: 1.6; }
      .transparency-card p { margin: 0; }
      .transparency-card ul { margin: 8px 0 0; padding-left: 19px; }
      .transparency-card a { color: #155fb9; }
      .coverage-history-list { display: grid; gap: 9px; margin-top: 10px; }
      .coverage-history-item { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px 14px; align-items: start; padding: 11px 0; border-top: 1px solid var(--border); }
      .coverage-history-item:first-child { border-top: 0; }
      .coverage-history-year { color: var(--primary); font-weight: 800; white-space: nowrap; }
      .coverage-history-detail { color: var(--muted); font-size: .8rem; line-height: 1.55; }
      .coverage-history-detail strong { color: var(--text); }
      .coverage-warning { display: block; margin-top: 4px; color: #9a5b0b; }
      .method-formula { display: block; margin: 10px 0 0; padding: 11px 12px; border-radius: 10px; background: #eaf3ff; color: #15558e; font-size: .8rem; font-weight: 720; }
      footer { padding: 26px 0 42px; color: var(--muted); border-top: 1px solid var(--border); font-size: .82rem; }

      /* Tema claro GPS27: superfícies limpas, azul institucional e ciano da marca. */
      .brand-logo { border: 1px solid rgba(31,88,153,.10); background: #fff; box-shadow: 0 7px 20px rgba(16,35,63,.09); }
      .scope { border-color: rgba(0,169,202,.25); background: rgba(0,169,202,.08); color: #24506f; }
      .mode-switch, .card, .panel { background: rgba(255,255,255,.94); }
      .mode-switch { box-shadow: 0 8px 25px rgba(22,67,119,.07); }
      .card, .panel { border-color: rgba(31,88,153,.14); box-shadow: 0 16px 44px rgba(30,76,128,.09); }
      select, input, .office-tab, .candidate-card, .back-button, .modal-close,
      .view-switch, .segment { background: #fff; }
      select, input { color: var(--text); }
      button.candidate:hover, button.candidate:focus-visible,
      button.municipality:hover, button.municipality:focus-visible { background: rgba(23,107,209,.06); }
      .office-tab.active { border-color: rgba(23,107,209,.48); background: #eaf3ff; box-shadow: inset 0 0 0 1px rgba(23,107,209,.07); }
      .candidate-card:hover, .candidate-card:focus-visible { border-color: rgba(23,107,209,.42); background: #f4f9ff; }
      .candidate-thumb { background: #eaf3ff; }
      .candidate-number { background: rgba(0,169,202,.10); color: #007f9b; }
      .status-chip { background: #e8f2ff; color: #215a9b; }
      dialog.profile-dialog { color: var(--text); background: #fff; border-color: rgba(31,88,153,.20); box-shadow: 0 32px 90px rgba(16,35,63,.24); }
      dialog.profile-dialog::backdrop { background: rgba(16,35,63,.42); }
      .profile-field, .profile-political, .module-status, .asset-row { background: #f8fbff; }
      .module-status.available { border-color: rgba(0,169,202,.30); background: rgba(0,169,202,.07); }
      .profile-source a, .profile-link, .research-source a { color: #155fb9; }
      .profile-action { color: #15558e; background: #eef6ff; }
      .profile-action.primary { color: #006e87; background: #e7fbff; }
      .situation-line span, .research-facts span { color: #285d95; background: #edf5ff; }
      .notice { border-color: rgba(23,107,209,.20); background: #eef6ff; color: #315a83; }
      .map-shell { border-color: rgba(31,88,153,.20); background: #e9f2f8; box-shadow: 0 10px 30px rgba(30,76,128,.08); }
      .map-note { background: #f8fbff; }
      .leaflet-container { background: #e9f2f8; }
      .leaflet-tile-pane { filter: none; }
      .leaflet-tile.map-base-light { filter: grayscale(.82) saturate(.45) brightness(1.12) contrast(.88); }
      .leaflet-control-zoom a { background: #fff; color: var(--text); border-color: #d7e2ef; }
      .leaflet-control-attribution { background: rgba(255,255,255,.88) !important; color: var(--muted); }
      .leaflet-control-attribution a { color: #155fb9; }
      .leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #fff; color: var(--text); }
      .view-button.active { color: #fff; background: var(--blue); }
      .heat-legend i { background: linear-gradient(90deg, #33c8ed, #176bd1, #7636d6, #f59e0b, #dc2626); box-shadow: none; }
      .coverage-badge { border-color: rgba(0,169,202,.28); color: #176079; background: rgba(0,169,202,.08); }
      .segment.active { border-color: rgba(23,107,209,.42); background: #eaf3ff; }
      .region-block { border-color: rgba(23,107,209,.16); background: #f3f8ff; }
      .research-card { background: #fff; }
      .research-summary { color: #263c59; }
      .step-number { background: #eaf3ff; }
      body { padding-top: env(safe-area-inset-top); -webkit-tap-highlight-color: transparent; overflow-x: hidden; }
      header { position: sticky; top: env(safe-area-inset-top); z-index: 1000; min-height: 64px; background: rgba(255,255,255,.86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
      .brand-logo { width: 174px; height: 52px; border: 0; box-shadow: none; }
      .appbar-actions { display: flex; align-items: center; gap: 12px; }
      .scope-chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid rgba(31,88,153,.18); border-radius: 999px; background: rgba(248,251,255,.88); color: #315a83; font-size: .72rem; font-weight: 780; white-space: nowrap; }
      .scope-live { width: 7px; height: 7px; border-radius: 50%; background: #16b88a; box-shadow: 0 0 0 4px rgba(22,184,138,.12); animation: statusPulse 2.2s ease-in-out infinite; }
      @keyframes statusPulse { 50% { box-shadow: 0 0 0 7px rgba(22,184,138,0); } }
      button, a, summary { touch-action: manipulation; }
      button:not(:disabled), .mode-button, .office-tab, .hierarchy-tab, .view-button, .metric-button { transition: transform .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
      button:not(:disabled):active, .mode-button:active, .office-tab:active, .hierarchy-tab:active, .view-button:active, .metric-button:active { transform: scale(.96); }
      .card-value, .participation-kpi strong, .intelligence-kpi strong, .hierarchy-metric strong, .aggregate-value strong { font-variant-numeric: tabular-nums; }
      .card-label, .participation-kpi span, .intelligence-kpi span, .hierarchy-metric span { font-size: .66rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
      .metrics { gap: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 15px; background: rgba(255,255,255,.92); box-shadow: 0 12px 34px rgba(30,76,128,.08); }
      .metrics .card { min-height: 104px; border: 0; border-right: 1px solid var(--border); border-radius: 0; box-shadow: none; }
      .metrics .card:last-child { border-right: 0; }
      .view-switch, .metric-switch { border-radius: 999px; padding: 3px; box-shadow: inset 0 1px 3px rgba(31,88,153,.10); }
      .view-button, .metric-button { border-radius: 999px; }
      .leaflet-control-fullscreen { margin-top: 10px !important; }
      .leaflet-control-fullscreen button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #d7e2ef; border-radius: 8px; background: rgba(255,255,255,.94); color: #155fb9; cursor: pointer; font-size: 1rem; box-shadow: 0 3px 12px rgba(30,76,128,.16); }
      .leaflet-control-touch-toggle button { min-height: 34px; padding: 0 10px; border: 1px solid #d7e2ef; border-radius: 999px; background: rgba(255,255,255,.94); color: #155fb9; cursor: pointer; font-family: inherit; font-size: .68rem; font-weight: 700; line-height: 1; box-shadow: 0 3px 12px rgba(30,76,128,.16); }
      .map-shell:fullscreen { display: grid; grid-template-rows: minmax(0,1fr) auto; width: 100vw; height: 100vh; border: 0; border-radius: 0; background: #e9f2f8; }
      .map-shell:fullscreen .map { width: 100%; height: 100%; }
      .map-shell.map-expanded { position: fixed; inset: 0; z-index: 10000; display: grid; grid-template-rows: minmax(0,1fr) auto; width: 100vw; height: 100dvh; border: 0; border-radius: 0; background: #e9f2f8; }
      .map-shell.map-expanded .map { width: 100%; height: 100%; }
      body.map-expanded-open { overflow: hidden; }
      .bottom-nav { display: none; }
      .bottom-nav-item svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
      .ifr-strong { margin: 3px 0; padding: 12px 10px !important; border: 1px solid rgba(0,169,202,.22) !important; border-radius: 12px; background: linear-gradient(135deg, rgba(23,107,209,.08), rgba(0,169,202,.10)) !important; }
      @media (max-width: 880px) {
        .metrics { grid-template-columns: repeat(2, 1fr); }
        .workspace { grid-template-columns: 1fr; }
        .profile-bars, .research-grid, .research-results, .monitor-grid { grid-template-columns: 1fr; }
        .transparency-grid { grid-template-columns: 1fr; }
        .research-result-section.primary { grid-column: auto; }
        .office-tabs { grid-template-columns: repeat(3, minmax(0,1fr)); }
        .territory-filter-grid { grid-template-columns: 1fr; }
        .research-filter-grid { grid-template-columns: 1fr 1fr; }
        .research-filter-grid label:first-child { grid-column: 1 / -1; }
        .intelligence-filters, .intelligence-kpis, .participation-kpis, .aggregate-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
        .aggregate-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
        .aggregate-row { grid-template-columns: minmax(0,1fr) repeat(3,minmax(84px,.32fr)); }
        .aggregate-row .aggregate-secondary { display: none; }
        .hierarchy-context { grid-template-columns: repeat(2,minmax(0,1fr)); }
        .participation-filters { grid-template-columns: 1fr; }
      }
      @media (max-width: 560px) {
        body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
        main { padding: 12px 0 36px; }
        .shell { width: 100%; }
        header { min-height: 56px; padding: 0 12px; border-bottom-color: rgba(31,88,153,.12); }
        .brand-logo { width: 128px; height: 43px; }
        .appbar-actions { gap: 8px; }
        .scope-chip { padding: 6px 9px; font-size: .66rem; }
        .status { display: none; }
        .intro { display: block; }
        .intro > :not(h1) { display: none; }
        .intro h1 { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
        .metrics { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 10px 10px 0; border-radius: 12px; }
        .metrics .card { min-height: 82px; padding: 13px 14px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
        .metrics .card:nth-child(2n) { border-right: 0; }
        .metrics .card:nth-last-child(-n+2) { border-bottom: 0; }
        .card-value { margin-top: 8px; font-size: 1.35rem; }
        .workspace { gap: 10px; margin-top: 10px; }
        .panel { padding: 17px 13px; border-width: 1px 0; border-radius: 0; box-shadow: 0 8px 24px rgba(30,76,128,.06); }
        .panel-head, .candidate-summary { align-items: flex-start; flex-direction: column; }
        .chat-head { flex-direction: column; }
        .chat-form { grid-template-columns: 1fr; }
        .chat-form button { width: 100%; }
        .chat-message { max-width: 96%; }
        .filter-actions, .action-group { justify-content: flex-start; }
        .filter-actions .clear-filters-button, .action-group .clear-filters-button { width: 100%; }
        .map-shell { max-width: none; width: calc(100% + 2 * var(--gps-panel-gutter-mobile, 13px)); margin-left: calc(-1 * var(--gps-panel-gutter-mobile, 13px)); border-right: 0; border-left: 0; border-radius: 0; }
        .map { height: min(58vh, 390px); }
        .map-note { flex-direction: column; }
        .map-tools { align-items: flex-start; }
        .intelligence-hero, .intelligence-trace, .participation-intro { align-items: flex-start; flex-direction: column; }
        .intelligence-kpis, .intelligence-columns, .participation-kpis, .aggregate-kpis, .aggregate-filters, .proportional-kpis, .proportional-filter { grid-template-columns: 1fr; }
        .intelligence-filters { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; overflow: visible; margin-right: 0; padding: 0; scroll-snap-type: none; }
        .intelligence-filters > label { width: 100%; min-width: 0; }
        .intelligence-filters > label select { width: 100%; }
        .intelligence-filters > .filter-actions { width: 100%; align-self: stretch; }
        .participation-kpis, .aggregate-kpis, .hierarchy-context { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 12px; }
        .participation-kpi, .hierarchy-metric { border-width: 0 1px 1px 0; border-radius: 0; }
        .participation-kpi:nth-child(2n), .hierarchy-metric:nth-child(2n) { border-right: 0; }
        .aggregate-row { grid-template-columns: 1fr 1fr; }
        .aggregate-name { grid-column: 1 / -1; }
        .heat-legend i { width: 90px; }
        .candidate-grid { display: block; padding: 0; border-top: 1px solid var(--border); }
        .candidate-grid .candidate-card { min-height: 64px; padding: 8px 7px 8px 0; border-width: 0 0 1px; border-radius: 0; background: transparent; }
        .candidate-card-head { align-items: center; }
        .candidate-card-identity { grid-template-columns: 36px minmax(0,1fr); gap: 9px; }
        .candidate-thumb { width: 36px; height: 36px; border-radius: 50%; }
        .candidate-number { padding: 4px 6px; }
        .candidate-card-foot { margin: 3px 0 0 45px; justify-content: flex-start; font-size: .66rem; }
        .candidate-card-action { display: none; }
        .bottom-nav { position: fixed; z-index: 1200; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); height: calc(62px + env(safe-area-inset-bottom)); padding: 4px 4px env(safe-area-inset-bottom); border-top: 1px solid rgba(31,88,153,.14); background: rgba(255,255,255,.92); box-shadow: 0 -8px 30px rgba(30,76,128,.10); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
        .bottom-nav-item { position: relative; display: grid; place-items: center; align-content: center; gap: 3px; min-width: 0; padding: 3px 1px; border: 0; background: transparent; color: #526477; cursor: pointer; list-style: none; }
        .bottom-nav-item::-webkit-details-marker { display: none; }
        .bottom-nav-item span { max-width: 100%; overflow: hidden; font-size: .6875rem; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
        .bottom-nav-item i { width: 4px; height: 4px; border-radius: 50%; background: transparent; }
        .bottom-nav-item.active { color: #087dba; }
        .bottom-nav-item.active i { background: #00a9ca; box-shadow: 0 0 0 3px rgba(0,169,202,.10); }
        .bottom-nav-menu { position: relative; min-width: 0; }
        .bottom-nav-menu[open] > summary { color: #087dba; }
        .bottom-nav-popover { position: absolute; right: 5px; bottom: 66px; display: grid; width: min(260px,calc(100vw - 20px)); padding: 7px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.98); box-shadow: 0 18px 50px rgba(16,35,63,.20); }
        .bottom-nav-popover button { padding: 11px 12px; border: 0; border-radius: 9px; background: transparent; color: var(--text); text-align: left; font-size: .76rem; }
        .bottom-nav-popover button:hover, .bottom-nav-popover button:focus-visible { background: #eef6ff; }
        footer { padding-right: 14px; padding-left: 14px; }
        .comparison-summary { grid-template-columns: 1fr; }
        .candidate-line { grid-template-columns: 1fr; }
        .compare-toggle { margin: 0 0 12px 2px; justify-self: start; }
        .comparator-bar { align-items: flex-start; flex-direction: column; }
        .office-tabs { grid-template-columns: 1fr 1fr; }
        .office-tab { min-height: 58px; }
        .profile-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
        .module-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
        .profile-content { padding: 18px; }
        .percent-summary { grid-template-columns: 1fr; }
        .local-row { grid-template-columns: 1fr; }
        .local-total { text-align: left; }
        .research-card { padding: 18px 15px 18px 18px; }
        .research-status-tabs { flex-wrap: wrap; overflow-x: visible; }
        .research-status-button { min-height: 44px; }
        input, select, textarea { font-size: 16px; }
        .research-filter-grid { grid-template-columns: 1fr; }
        .research-filter-grid label:first-child { grid-column: auto; }
        .research-filter-grid .filter-actions { width: 100%; }
        .research-filter-grid .clear-filters-button { width: 100%; }
        .research-card-head, .research-source { align-items: flex-start; flex-direction: column; }
        .research-card .status-chip { flex-basis: auto; text-align: left; }
        .research-bar-row { grid-template-columns: minmax(0,1fr) auto; gap: 6px 10px; }
        .research-bar-track { grid-column: 1 / -1; grid-row: 2; }
        .research-duel { grid-template-columns: 1fr; }
        .research-duel-versus { justify-self: center; }
        .research-detail-grid { grid-template-columns: 1fr; }
        .research-detail-block.full { grid-column: auto; }
        .historical-municipalities { grid-template-columns: 1fr; max-height: 330px; }
        .hierarchy-tabs { grid-template-columns: repeat(5,minmax(92px,1fr)); overflow-x: auto; padding-bottom: 4px; }
        .hierarchy-context, .hierarchy-tools, .hierarchy-tools.with-action { grid-template-columns: 1fr; }
        .hierarchy-row { grid-template-columns: 1fr; }
        .hierarchy-performance { text-align: left; }
        .report-form { grid-template-columns: 1fr 1fr; }
        .report-form label:first-child { grid-column: 1 / -1; }
        .report-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
        .report-output-head, .report-finance-head { flex-direction: column; }
        .report-head-actions { width: 100%; justify-items: stretch; }
        .report-download { width: 100%; }
        .report-finance-grid { grid-template-columns: 1fr; }
        .intelligence-module-switch { grid-template-columns: 1fr; }
        .intelligence-module-button small { white-space: normal; }
      }
      @media (max-width: 380px) {
        .office-tabs { grid-template-columns: 1fr; }
        .profile-grid, .module-grid { grid-template-columns: 1fr; }
        .assistant-tabs { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
        .report-form, .report-summary { grid-template-columns: 1fr; }
        .report-form label:first-child { grid-column: auto; }
        .report-event { grid-template-columns: 58px minmax(0,1fr); }
        .report-event-result { grid-column: 2; text-align: left; }
      }
      .cv-table-wrap { overflow-x: auto; max-width: 100%; margin-top: 16px; border: 1px solid var(--border); border-radius: 12px; }
      .cv-table { width: 100%; border-collapse: collapse; font-size: 14px; }
      .cv-table caption { text-align: left; padding: 12px; font-weight: 700; }
      .cv-table th, .cv-table td { padding: 12px; border-bottom: 1px solid var(--border); text-align: right; min-width: 120px; }
      .cv-table th:first-child, .cv-table td:first-child { text-align: left; min-width: 230px; }
      .cv-table th { background: #eef4fa; }
      .cv-table td small { display: block; color: var(--muted); }
      #modulo-comparativo-votacao { min-width: 0; }
      #modulo-comparativo-votacao .report-form { grid-template-columns: minmax(0,1fr) auto; align-items: end; }
      @media (min-width: 741px) { .intelligence-module-switch { grid-template-columns: repeat(4,minmax(0,1fr)); } }
      @media (max-width: 600px) { #modulo-comparativo-votacao .report-form { grid-template-columns: 1fr; } }
