  /* Client font (Admin > Identidade visual > Fonte); downloaded only when a theme selects it.
     Montserrat: SIL OFL 1.1, fonts/OFL-Montserrat.txt. Variable font, latin subset (pt accents). */
  @font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('/static/fonts/montserrat-latin.woff2') format('woff2');
  }
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(data:font/woff2;base64,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) format('woff2');
    unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2212;
  }
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(data:font/woff2;base64,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) format('woff2');
    unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2212;
  }
  .viz-root {
    color-scheme: light;
    --surface-1: #fcfcfb; --surface-2: #f4f7fb; --surface-3: #ffffff;
    --navy: #071d3d; --navy-2: #0d2c58;
    --brand-blue: #0057b8; --brand-blue-2: #0066ff; --brand-red: #e80036; --brand-blue-on-dark: #66a6ff;
    /* Where the brand colors are applied (Admin > Dashboard > Identidade visual, core/theme.py). */
    --header-bg: var(--navy); --header-bg-2: var(--navy-2); --panel-head: var(--navy); --assistant-name: #ff5c7a; --assistant-text: var(--brand-red-text);
    --gender-female: var(--brand-red-text); --gender-male: var(--brand-blue-text);
    --logo-mark: var(--brand-red); --button-primary: var(--brand-blue);
    --sidebar-bg: var(--navy); --sidebar-bg-2: var(--navy-2); --sidebar-text: #dbe6f7; --sidebar-muted: #9fb2d4; --sidebar-group: #9fb2d4; --relevo-mass: #2d6a84; --relevo-lit: #9bc7da; --relevo-accent: #c65337; --relevo-mass-on-dark: #66a6ff; --relevo-accent-on-dark: #ff5c7a; --sidebar-step: #ff5c7a; --sidebar-icon: var(--brand-blue-on-dark); --sidebar-mark: var(--brand-blue-on-dark); --sidebar-accent: var(--brand-red);
    --mascot-accent: var(--brand-red); --mascot-primary: var(--brand-blue); --mascot-ink: var(--navy);
    --mascot-skin: #f0be93; --mascot-skin-shadow: #e6ab7a; --mascot-skin-line: #a9633f; --mascot-hair: #c9ccd2; --mascot-hair-light: #e3e6ea; --mascot-hair-mid: #d7dae0; --mascot-streak: var(--mascot-hair-mid); --mascot-hair-line: #8a8f9c; --mascot-cheeks: #ff8fa3; --mascot-face-lines: #5a4632; --mascot-sparkle: #fab219;
    --text-primary: #0a0e17; --text-secondary: #4a5468; --muted: #626d86;
    /* Brand blue as text: --brand-blue is too dark on dark surfaces (WCAG AA 4.5:1). */
    --brand-blue-text: #0057b8; --brand-red-text: #c8002e;
    --gridline: #e4e8f0; --baseline: #c7cedb; --border: rgba(10,14,23,0.08);
    --font-mono: 'IBM Plex Mono', ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    --good: #0ca30c; --good-text: #007a00; --good-bg: rgba(11,163,11,0.10);
    --warning: #fab219; --warning-bg: rgba(250,178,25,0.16); --warning-text: #8a6200;
    --serious: #ec835a; --serious-bg: rgba(236,131,90,0.14); --serious-text: #a3421c;
    --critical: #d03b3b; --critical-bg: rgba(208,59,59,0.10); --critical-text: #a3002a;
    --series-fiber: #0057b8; --series-combo: #1baf7a;
    --seq-100:#cde2fb;--seq-150:#b7d3f6;--seq-200:#9ec5f4;--seq-250:#86b6ef;--seq-300:#6da7ec;--seq-350:#5598e7;--seq-400:#3987e5;--seq-450:#2a78d6;--seq-500:#256abf;--seq-550:#1c5cab;--seq-600:#184f95;--seq-650:#104281;--seq-700:#0d366b;
    --cat-1:#2a78d6;--cat-2:#008300;--cat-3:#e87ba4;--cat-4:#eda100;--cat-5:#1baf7a;--cat-6:#eb6834;--cat-7:#4a3aa7;--cat-8:#e34948;
  }
  @media (prefers-color-scheme: dark) {
    :root:where(:not([data-theme="light"])) .viz-root {
      color-scheme: dark;
      --surface-1:#14161a; --surface-2:#0b0e14; --surface-3:#181c24;
      --navy:#071d3d; --navy-2:#0d2c58;
      --text-primary:#f5f7fb; --text-secondary:#b7c0d6; --muted:#7e8aa6; --brand-blue-text:#4d9fff; --brand-red-text:#ff5c7a;
      --gridline:#232838; --baseline:#3a4258; --border:rgba(245,247,251,0.10);
      --good:#0ca30c; --good-text:#3fd23f; --good-bg:rgba(11,163,11,0.16);
      --warning:#fab219; --warning-bg:rgba(250,178,25,0.14); --warning-text:#ffce5c;
      --serious:#ec835a; --serious-bg:rgba(236,131,90,0.16); --serious-text:#f3a480;
      --critical:#e66767; --critical-bg:rgba(230,103,103,0.16); --critical-text:#ff9d9d;
      --series-fiber:#3987e5; --series-combo:#199e70; --relevo-mass:#9bc7da; --relevo-lit:#eee7dc; --relevo-accent:#ff6534;
    }
  }
  :root[data-theme="dark"] .viz-root {
    color-scheme: dark;
    --surface-1:#14161a; --surface-2:#0b0e14; --surface-3:#181c24;
    --navy:#071d3d; --navy-2:#0d2c58;
    --text-primary:#f5f7fb; --text-secondary:#b7c0d6; --muted:#7e8aa6; --brand-blue-text:#4d9fff; --brand-red-text:#ff5c7a;
    --gridline:#232838; --baseline:#3a4258; --border:rgba(245,247,251,0.10);
    --good:#0ca30c; --good-text:#3fd23f; --good-bg:rgba(11,163,11,0.16);
    --warning:#fab219; --warning-bg:rgba(250,178,25,0.14); --warning-text:#ffce5c;
    --serious:#ec835a; --serious-bg:rgba(236,131,90,0.16); --serious-text:#f3a480;
    --critical:#e66767; --critical-bg:rgba(230,103,103,0.16); --critical-text:#ff9d9d;
    --series-fiber:#3987e5; --series-combo:#199e70; --relevo-mass:#9bc7da; --relevo-lit:#eee7dc; --relevo-accent:#ff6534;
  }

  * { box-sizing: border-box; }
  body { margin: 0; }
  .viz-root { font-family: system-ui,-apple-system,"Segoe UI",sans-serif; background: var(--surface-2); color: var(--text-primary); min-height: 100vh; }
  /* The content column is 1360px, the same column the header and the filters use; --page-max
     is that column plus the .page gutters, so the dashboards start and end on the filters' edges. */
  html { --page-max: 1400px; --page-gutter: 20px; }
  .page { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--page-gutter) 70px; }
  table { font-variant-numeric: tabular-nums; }

  /* ---------- header ---------- */
  /* z-index:230, not 200 -- the real bug behind the "Métrica" filter
     rendering under the TIA dock (reported live with a screenshot) wasn't
     the filter panel's own z-index at all: .group-panel/.instancia-menu/
     .period-popover are nested INSIDE header.top, which -- being
     position:sticky with its own z-index -- creates a stacking context of
     its own. A descendant's z-index (even a very high one) can never
     escape its ancestor's stacking context rank; from outside, the whole
     header.top subtree paints as a single unit at header.top's OWN
     z-index, so as long as header.top < .tia-dock-inner's 210, nothing
     inside header.top -- no matter what it's set to -- could ever paint
     above the docked TIA card. Confirmed live via Playwright (bumped
     header.top's z-index in the running page, panel immediately painted
     correctly). 230 clears .tia-dock-inner (210) and .instancia-menu/
     .group-panel/.period-popover (220, kept for their own internal
     stacking among header.top's other children) with room to spare, and
     is nowhere near the thought bubble (650) or the maximize/info-panel
     modal levels (490-701) so none of those relationships change. Doesn't
     reintroduce the older header-vs-chat-head collision this z-index
     ordering originally guarded against either -- that bug was about
     vertical *geometric* overlap, and positionDockInner()'s live
     `header.getBoundingClientRect().bottom`-based top offset (plus the
     position:fixed escape hatch added for the header-overlap fix) already
     guarantees the chat head never occupies the same screen space as
     header.top regardless of which one wins the paint order. */
  header.top { background: linear-gradient(180deg, var(--header-bg) 0%, var(--header-bg-2) 100%); color: #fff; padding: 14px 20px 2px; position: sticky; top: 0; z-index: 230; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
  header.top .inner { max-width: calc(var(--page-max) - 2 * var(--page-gutter)); margin: 0 auto; }
  .top-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; }
  .brand { display: flex; align-items: center; gap: 12px; }
  .logo-mark { display: flex; flex-direction: column; gap: 2px; justify-content: center; height: 26px; }
  .logo-mark i { display: block; height: 4px; border-radius: 2px; background: var(--logo-mark); }
  .logo-mark i:nth-child(1){ width: 10px; } .logo-mark i:nth-child(2){ width: 16px; }
  .logo-mark i:nth-child(3){ width: 22px; } .logo-mark i:nth-child(4){ width: 28px; }
  /* Uploaded client logo (Admin > Dashboard > Cliente) in place of the mark. */
  .client-logo { display: block; height: 26px; width: auto; max-width: 160px; object-fit: contain; }
  .client-logo.client-logo-large { height: 40px; max-width: 220px; }
  .brand .word { font-size: 20px; font-weight: 800; letter-spacing: .5px; }
  /* Relevo lockup on the public pages (Bem-vindo, Solicitar acesso): the "Serra de cordel"
     in the product colors (light/dark variants on .viz-root), the client name below it. */
  .relevo-lockup { display: inline-flex; align-items: center; gap: 12px; }
  .relevo-lockup .relevo-mark { display: block; height: 46px; width: auto; }
  .relevo-lockup .relevo-word { display: block; height: 24px; width: auto; }
  .relevo-lockup .mk-mark { fill: var(--relevo-mass); }
  .relevo-lockup .mk-lit { stroke: var(--relevo-lit); }
  .relevo-lockup .mk-ground { stroke: var(--text-primary); }
  .relevo-lockup .mk-cut { stroke: var(--surface-3); }
  .relevo-lockup .mk-coord { stroke: var(--relevo-accent); }
  .relevo-lockup .mk-dot { fill: var(--relevo-accent); }
  .relevo-lockup .mk-text { fill: var(--text-primary); }
  .entry-image { display: block; max-width: 280px; max-height: 46px; width: auto; height: auto; object-fit: contain; }
  /* Client identity block: logo + brand, and the client's slogan (tenant product_name). */
  .client-id { display: flex; flex-direction: column; align-items: center; gap: 4px; }
  .client-id-row { display: flex; align-items: center; gap: 12px; }
  .client-slogan { font-size: 8px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1; color: #9fb2d4; white-space: nowrap; text-align: center; }
  .brand .divider { width: 1px; height: 30px; background: rgba(255,255,255,0.2); margin: 0 2px; }
  .brand h1 { font-size: 14px; margin: 0; font-weight: 700; }
  .brand .sub { font-size: 11px; color: #9fb2d4; margin-top: 1px; }
  /* Page title next to the client logo: page icon (same color as the side menu icons),
     name and description. The description is cut with an ellipsis on narrow screens. */
  .page-title { min-width: 0; }
  .page-title h1 { display: flex; align-items: center; gap: 7px; }
  .page-title-icon { flex: none; color: var(--sidebar-icon); }
  /* The description starts under the title text, not under the icon. */
  .page-title.with-icon .sub { padding-left: 23px; }
  .page-title .sub { max-width: 520px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .top-badges { display: flex; align-items: center; gap: 10px; }
  .update-badge { font-size: 10.5px; font-weight: 700; letter-spacing: .2px; background: var(--good-bg); color: #6bdc6b; border: 1px solid rgba(11,163,11,0.4); padding: 6px 12px; border-radius: 999px; white-space: nowrap; display: flex; align-items: center; gap: 6px; }
  .update-badge .led { width: 7px; height: 7px; border-radius: 50%; background: #3fd23f; box-shadow: 0 0 6px #3fd23f; }
  .update-badge.danger { background: var(--critical-bg); color: var(--critical-text); border-color: color-mix(in srgb, var(--critical) 40%, transparent); }
  .update-badge.danger .led { background: var(--critical); box-shadow: 0 0 6px var(--critical); }
  /* Logged-in user's display name (see main.py's _current_user_name) --
     same pill shape as .update-badge, neutral color since it's identity,
     not a status indicator. Only rendered when user_name is truthy (empty
     locally/pre-auth), so it never shows a blank pill. */
  .user-badge { font-size: 10.5px; font-weight: 700; letter-spacing: .2px; background: rgba(255,255,255,0.1); color: #fff; border: 1px solid rgba(255,255,255,0.18); padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
  /* GET /logout (see main.py) -- clears the ALB session cookie(s) and
     redirects through Cognito's own /logout so a fresh request doesn't
     just silently re-authenticate via Cognito's still-live session. */
  .logout-link { font-size: 10.5px; font-weight: 700; color: #9fb2d4; text-decoration: none; padding: 6px 4px; white-space: nowrap; }
  .logout-link:hover { color: #fff; text-decoration: underline; }

  .filters-bar { margin: 5px 0 10px; padding: 12px 20px 0; border-top: 1px solid rgba(255,255,255,0.10); }
  header.top.with-page-context .filters-bar { margin: 2px 0 6px; padding: 6px 20px 0; border-top: 0; }

  nav.tabs { display: flex; min-width: 0; gap: 4px; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  nav.tabs::-webkit-scrollbar { display: none; }
  nav.tabs > a { flex: 0 0 auto; }
  nav.tabs button { appearance: none; background: none; border: none; color: #a9b8d4; font: inherit; font-size: 12.5px; font-weight: 700; letter-spacing: .3px; padding: 10px 16px; cursor: pointer; border-bottom: 2px solid transparent; transition: color .15s ease, border-color .15s ease; display: inline-flex; align-items: center; gap: 6px; }
  nav.tabs button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; border-radius: 3px; }
  nav.tabs button.active { color: #fff; border-bottom-color: var(--brand-red); }
  nav.tabs button:hover:not(.active) { color: #dbe6f7; }
  nav.tabs .nav-icon { flex: none; opacity: .85; }

  /* ---------- gender / UF icon chips (reused across tables) ---------- */
  .gender-icon { flex: none; vertical-align: -2px; margin-right: 6px; }
  .gender-icon-f { color: var(--gender-female); }
  .gender-icon-m { color: var(--gender-male); }
  .uf-flag { flex: none; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); object-fit: cover; background: #fff; }
  /* Wrap flag+UF text in this so they center on each other by flex box
     geometry, not a guessed vertical-align offset -- images and text don't
     share a baseline reliably, especially across flags with different
     aspect ratios (heights range 80-88px at the same 120px source width). */
  .uf-cell { display: inline-flex; align-items: center; gap: 5px; }

  .filter-strip { display: grid; grid-template-columns: minmax(0, 1fr); position: relative; align-items: center; min-width: 0; }
  .filter-strip.has-overflow { grid-template-columns: 26px minmax(0, 1fr) 26px; column-gap: 5px; }
  .filter-strip-viewport { min-width: 0; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-behavior: smooth; scrollbar-width: none; }
  .filter-strip-viewport::-webkit-scrollbar { display: none; }
  .filter-strip-viewport:focus-visible { outline: 1px solid rgba(255,255,255,.34); outline-offset: 2px; border-radius: 8px; }
  .filter-strip-nav { display: none; width: 26px; height: 30px; align-items: center; justify-content: center; padding: 0; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 28%, transparent); border-radius: 7px; background: color-mix(in srgb, var(--brand-blue-2) 12%, transparent); color: #9fc1f5; cursor: pointer; }
  .filter-strip.has-overflow .filter-strip-nav { display: inline-flex; }
  .filter-strip-nav svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .filter-strip-nav:hover:not(:disabled), .filter-strip-nav:focus-visible { color: #fff; background: color-mix(in srgb, var(--brand-blue-2) 25%, transparent); border-color: color-mix(in srgb, var(--brand-blue-on-dark) 50%, transparent); outline: none; }
  .filter-strip-nav:disabled { opacity: .24; cursor: default; }
  .filter-strip.has-overflow::before, .filter-strip.has-overflow::after { content: ''; position: absolute; top: 0; bottom: 0; width: 18px; z-index: 2; pointer-events: none; }
  .filter-strip.has-overflow::before { left: 31px; background: linear-gradient(90deg, var(--header-bg-2), transparent); }
  .filter-strip.has-overflow::after { right: 31px; background: linear-gradient(270deg, var(--header-bg-2), transparent); }
  .filter-strip.has-overflow.at-start::before, .filter-strip.has-overflow.at-end::after { opacity: 0; }
  .filter-row { display: flex; align-items: flex-start; justify-content: flex-start; gap: 24px; flex-wrap: nowrap; width: max-content; min-width: 100%; padding: 0; }
  .filter-row.collapsed { display: none; }
  .market-service-form { align-items: flex-end; gap: 10px; }
  .market-service-form label { display: flex; flex-direction: column; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; }
  .market-service-form select { min-width: 220px; height: 34px; box-sizing: border-box; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); color: var(--ink); padding: 0 10px; font: inherit; font-size: 12px; }
  .market-service-form button { height: 34px; border: none; border-radius: 8px; background: var(--brand-blue); color: #fff; padding: 0 16px; font: inherit; font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; }
  .market-service-form button:hover { background: var(--brand-blue-2); }
  .market-service-form select:focus-visible, .market-service-form button:focus-visible { outline: 2px solid var(--brand-blue-2); outline-offset: 2px; }
  /* 5 grouped controls (PERÍODO, GEOGRAFIA, PRODUTO, PF/PJ, MÉTRICA), each
     a .group-details chip (see below) -- wraps onto a 2nd row on narrow
     screens. */
  .filter-columns { display: flex; align-items: flex-start; gap: 10px; flex-wrap: nowrap; flex: 0 0 auto; width: max-content; min-width: 0; }
  .filter-columns > .group-details { flex: 0 0 auto; }

  /* z-index:220, not 40 -- .tia-dock-inner sits at 210 (see its own comment)
     and this filter panel needs to float above the docked TIA sidebar, not
     behind it (reported live with a screenshot: the "Métrica" dropdown was
     rendering under the chat card and its thought bubble). Still well below
     the modal-level z-indices (490+) so it never fights a maximized
     TIA/info panel, which realistically can't be open at the same time
     anyway (their own backdrops already block interaction with filters). */
  .instancia-menu { position: absolute; top: calc(100% + 4px); left: 0; z-index: 220; background: #1b2740; border: 1px solid rgba(255,255,255,0.16); border-radius: 8px; padding: 6px; min-width: 140px; max-height: 260px; overflow-y: auto; box-shadow: 0 12px 28px rgba(0,0,0,0.4); }
  /* .instancia-menu-inline: same option list, but nested inside .group-panel
     (already the floating/positioned element) instead of floating on its
     own -- static position, no shadow/z-index of its own. */
  .instancia-menu.instancia-menu-inline { position: static; background: rgba(0,0,0,0.18); box-shadow: none; max-height: 200px; }

  .instancia-opt { display: flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 400; color: #dbe6f7; padding: 5px 6px; border-radius: 5px; cursor: pointer; white-space: nowrap; }
  .instancia-opt:hover { background: rgba(255,255,255,0.08); }
  .instancia-opt input { accent-color: var(--brand-blue-2); }

  .multi-checklist { width: 100%; min-width: 170px; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 26%, transparent); border-radius: 7px; background: rgba(0,0,0,.16); overflow: hidden; }
  .multi-checklist.is-disabled { opacity: .42; }
  .multi-filter-search { width: 100%; height: var(--filter-control-height, 30px); box-sizing: border-box; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 22%, transparent); border-radius: 0 !important; background: color-mix(in srgb, var(--brand-blue-2) 8%, transparent) !important; color: #fff; padding: 0 8px; font: inherit; font-size: 11px !important; outline: none; }
  .multi-filter-search::placeholder { color: #8fa5cc; }
  .multi-filter-search:focus { box-shadow: inset 0 -1px 0 var(--brand-blue-2); }
  .multi-filter-options { max-height: 94px; overflow-y: auto; padding: 3px; scrollbar-width: thin; scrollbar-color: rgba(159,193,245,.38) transparent; }
  .multi-filter-option { display: flex; align-items: center; gap: 6px; min-height: var(--filter-option-height, 22px); box-sizing: border-box; padding: 1px 5px; border-radius: 4px; color: #dbe6f7; font-size: 11px; font-weight: 400; cursor: pointer; white-space: nowrap; }
  /* Region groups (NUTS I) and the region titles of the unit list (core/country.py region_groups). */
  .multi-filter-option.multi-filter-group span { font-weight: 700; }
  .multi-filter-option.is-grouped { padding-left: 22px; }
  .multi-filter-group-title { padding: 7px 5px 2px; color: #9fb2d4; font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .multi-filter-group-title[hidden] { display: none; }
  .multi-filter-option:hover { background: rgba(255,255,255,.08); }
  .multi-filter-option .uf-flag { margin-right: 6px; vertical-align: -1px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.18); }
  .multi-filter-option:has(input:checked) { background: color-mix(in srgb, var(--brand-blue-2) 20%, transparent); color: #fff; }
  .multi-filter-option input[type="checkbox"] { width: 13px; height: 13px; margin: 0; accent-color: var(--brand-blue-2); flex: none; }
  .multi-filter-option input:disabled { cursor: not-allowed; }
  .multi-filter-option[hidden] { display: none; }
  .group-panel-actions { display: flex; min-height: var(--filter-control-height, 26px); align-items: center; justify-content: flex-end; gap: 6px; padding-top: 2px; border-top: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 14%, transparent); }
  .multi-filter-action { display: inline-flex; width: var(--filter-control-height, 26px); height: var(--filter-control-height, 26px); align-items: center; justify-content: center; box-sizing: border-box; border: 1px solid rgba(159,193,245,.3); border-radius: 5px; color: #c7daf8; padding: 0; cursor: pointer; }
  .multi-filter-action svg { fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
  .multi-filter-clear { background: rgba(255,255,255,.035); color: #9fb2d0; }
  .multi-filter-apply { background: color-mix(in srgb, var(--brand-blue-2) 12%, transparent); color: color-mix(in srgb, var(--brand-blue-on-dark) 85%, #fff); }
  .multi-filter-action:hover, .multi-filter-action:focus-visible { border-color: color-mix(in srgb, var(--brand-blue-on-dark) 62%, transparent); background: color-mix(in srgb, var(--brand-blue-2) 22%, transparent); color: #fff; outline: none; }
  .period-selection-count { display: inline-flex; min-width: 0; height: var(--filter-control-height, 26px); align-items: center; justify-content: center; padding: 0 6px; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 26%, transparent); border-radius: 5px; color: #dbe6f7; background: color-mix(in srgb, var(--brand-blue-2) 10%, transparent); font-size: 10px; white-space: nowrap; }

  /* ---------- grouped filter controls ----------
     5 top-level chips (PERÍODO/GEOGRAFIA/PRODUTO/PF-PJ/MÉTRICA), each a
     <details> whose <summary> is styled exactly like the old .filter-chip
     pill (same tokens: border/background/color) plus a chevron, and whose
     panel is a floating box reusing .instancia-menu's positioning/shadow
     recipe -- same visual language as the INSTÂNCIA picker that already
     shipped, just generalized to hold arbitrary fields instead of only
     checkboxes. */
  .group-details { position: relative; min-width: 190px; }
  /* V2 keeps every top-level filter chip geometrically stable. Applied
     values may change their text, never the strip width: long selections
     remain available through the summary tooltip instead of manufacturing
     horizontal overflow and making the navigation arrows flash into view. */
  header.top.with-page-context .group-details { width: 190px; max-width: 190px; }
  header.top.with-page-context #group-periodo { width: 260px; max-width: 260px; }
  header.top.with-page-context #group-geografia { width: 228px; max-width: 228px; }
  header.top.with-page-context .group-details > summary { width: 100%; min-width: 0; overflow: hidden; }
  header.top.with-page-context .group-details > summary b,
  header.top.with-page-context .group-details > summary .group-sub { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  /* Period is the primary selection; comparison is supporting context and
     yields horizontal space first instead of truncating both values equally. */
  header.top.with-page-context #group-periodo > summary b { flex: 0 0 auto; max-width: 118px; }
  header.top.with-page-context #group-periodo > summary .group-sub { flex: 1 10 0; color: #7894bd; font-weight: 400; }
  header.top.with-page-context .group-details > summary .group-icon,
  header.top.with-page-context .group-details > summary::after { flex: none; }
  /* Acquisition is a transactional five-field group. Its applied UTM value
     may be very long, but must never resize the filter strip and manufacture
     horizontal overflow; the summary tooltip keeps the full selection. */
  #group-aquisicao { width: 190px; max-width: 190px; }
  #group-aquisicao > summary { width: 100%; min-width: 0; overflow: hidden; }
  #group-aquisicao > summary b { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  #group-aquisicao > summary .group-icon,
  #group-aquisicao > summary::after { flex: none; }
  .group-details summary { list-style: none; cursor: pointer; font-size: 11px; height: 30px; box-sizing: border-box; padding: 0 10px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); color: #9fc1f5; background: color-mix(in srgb, var(--brand-blue-2) 14%, transparent); white-space: nowrap; display: flex; align-items: center; gap: 6px; }
  .group-details summary::-webkit-details-marker { display: none; }
  .group-details summary b { color: #fff; font-weight: 400; }
  .group-details summary .group-sub { color: #9fc1f5; font-weight: 600; }
  .group-details summary .group-sub::before { content: "· "; }
  .group-details summary::after { content: "▾"; opacity: .6; font-size: 9px; margin-left: 2px; }
  .group-details[open] summary::after { content: "▴"; }
  .group-details.chip-off summary { opacity: .38; cursor: not-allowed; }
  /* Open state reads as ONE continuous pill, not two stacked boxes: the
     panel sits flush against the summary (no gap), matches its exact width,
     and the touching edges drop their border so only the outer perimeter
     (summary's top/sides + panel's sides/bottom) draws a line -- a border
     on both sides of the seam would double up into a visibly thicker rule
     right at the join. */
  .group-details[open] summary { border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom-color: transparent; }

  /* ---------- header band + filters toolbar (2026-09-26) ----------
     The dark header band is 72 px, the height of the side menu's Relevo brand area,
     so both end on one line. The filters sit below it on the page surface as a light
     toolbar (still inside the sticky header). An open filter reads as one dark piece:
     its button takes the color of its panel, which keeps the dark style it always had.
     Rows pad themselves so the band is full-bleed while their content starts and ends on the
     same edges as the .page content (its box minus --page-gutter). */
  header.top { padding: 0; background: none; box-shadow: 0 6px 14px -8px rgba(10,14,23,.30); }
  header.top .inner { max-width: none; }
  /* Same bottom rule as the product mark in the side menu (.sidebar-brand), at the same 72px:
     one line across the whole top. */
  header.top .top-row { min-height: 72px; box-sizing: border-box; padding: 6px max(var(--page-gutter), calc((100% - var(--page-max)) / 2 + var(--page-gutter))); background: linear-gradient(180deg, var(--header-bg) 0%, var(--header-bg-2) 100%); border-bottom: 1px solid color-mix(in srgb, var(--sidebar-text) 9%, transparent); }
  header.top .filters-bar, header.top.with-page-context .filters-bar { margin: 0; padding: 8px max(var(--page-gutter), calc((100% - var(--page-max)) / 2 + var(--page-gutter))); border-top: 0; border-bottom: 1px solid var(--border); background: var(--surface-2); color: var(--text-primary); }
  header.top .filters-bar .group-details > summary { background: var(--surface-3); border-color: color-mix(in srgb, var(--text-primary) 16%, transparent); color: var(--text-primary); }
  header.top .filters-bar .group-details > summary b { color: var(--brand-blue-text); }
  header.top .filters-bar .group-details > summary .group-sub,
  header.top.with-page-context .filters-bar #group-periodo > summary .group-sub { color: var(--text-secondary); }
  header.top .filters-bar .group-details > summary .group-icon { color: var(--brand-blue-text); }
  header.top .filters-bar .group-details:not([open]):not(.chip-off) > summary:hover { border-color: var(--brand-blue-text); }
  header.top .filters-bar .group-details[open] > summary { background: #1b2740; border-color: color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-bottom-color: transparent; color: #9fc1f5; }
  header.top .filters-bar .group-details[open] > summary b { color: #fff; }
  header.top .filters-bar .group-details[open] > summary .group-sub,
  header.top.with-page-context .filters-bar #group-periodo[open] > summary .group-sub,
  header.top .filters-bar .group-details[open] > summary .group-icon { color: #9fc1f5; }
  header.top .filters-bar .filter-strip-nav { background: var(--surface-3); border-color: color-mix(in srgb, var(--text-primary) 16%, transparent); color: var(--brand-blue-text); }
  header.top .filters-bar .filter-strip-nav:hover:not(:disabled), header.top .filters-bar .filter-strip-nav:focus-visible { background: color-mix(in srgb, var(--brand-blue-2) 10%, var(--surface-3)); border-color: var(--brand-blue-text); color: var(--brand-blue-text); }
  header.top .filters-bar .filter-strip.has-overflow::before { background: linear-gradient(90deg, var(--surface-2), transparent); }
  header.top .filters-bar .filter-strip.has-overflow::after { background: linear-gradient(270deg, var(--surface-2), transparent); }
  header.top .filters-bar .filter-strip-viewport:focus-visible { outline-color: var(--brand-blue-text); }

  /* font-size set explicitly here, not left to inherit -- .group-panel sits
     as a sibling of <summary> inside <details>, not a descendant of it, so
     it doesn't pick up summary's 11px and was falling back to the page's
     much larger base font-size instead (every field inside it looked
     oversized). */
  /* z-index:220, same reason as .instancia-menu above -- this is the panel
     behind "Período"/"Geografia"/"Produto"/"PF/PJ"/"Métrica" (the one the
     screenshot showed stuck behind the TIA dock). */
  .group-panel { --filter-control-height: 26px; --filter-option-height: 22px; position: absolute; top: 100%; left: 0; width: 100%; z-index: 220; background: #1b2740; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-top: none; border-radius: 8px; border-top-left-radius: 0; border-top-right-radius: 0; padding: 7px; box-sizing: border-box; box-shadow: 0 12px 28px rgba(0,0,0,0.4); display: flex; flex-direction: column; gap: 6px; font-size: 11px; }
  .filter-strip-viewport .group-details[open] > .group-panel { position: fixed; }
  .group-field { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
  .group-field-label { font-size: 9px; font-weight: 400; letter-spacing: .2px; color: #7d93bd; }
  .group-field select, .group-field input[type="text"] { width: 100%; height: var(--filter-control-height); background: color-mix(in srgb, var(--brand-blue-2) 14%, transparent); color: #fff; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-radius: 5px; padding: 0 7px; font-family: inherit; font-size: 11.5px; font-weight: 400; line-height: 1; min-width: 170px; box-sizing: border-box; }
  .group-field select:disabled, .group-field input:disabled { opacity: .4; cursor: not-allowed; -webkit-text-fill-color: #dbe6f7; }
  .period-navigator { display: grid; grid-template-columns: var(--filter-control-height) minmax(126px, 1fr) var(--filter-control-height); gap: 4px; align-items: center; }
  .period-navigator select { min-width: 0; width: 100%; }
  .period-step { width: var(--filter-control-height); height: var(--filter-control-height); padding: 0; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-radius: 5px; background: color-mix(in srgb, var(--brand-blue-2) 18%, transparent); color: #fff; font: 700 16px/1 inherit; cursor: pointer; }
  .period-step:hover:not(:disabled), .period-step:focus-visible { background: color-mix(in srgb, var(--brand-blue-2) 36%, transparent); outline: none; }
  .period-step:disabled { opacity: .28; cursor: not-allowed; }

  .visual-drill-controls { min-height: 22px; display: flex; align-items: center; justify-content: flex-end; gap: 2px; margin: -5px -5px 6px; padding: 0; }
  .visual-drill-button { display: inline-grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--brand-red-text); cursor: pointer; }
  .visual-drill-button svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
  .visual-drill-button:hover:not(:disabled) { background: color-mix(in srgb, var(--brand-red) 8%, transparent); }
  .visual-drill-button:focus-visible { background: color-mix(in srgb, var(--brand-red) 8%, transparent); outline: 2px solid color-mix(in srgb, var(--brand-red) 38%, transparent); outline-offset: -2px; }
  .visual-drill-button:disabled { color: var(--muted); background: transparent; cursor: not-allowed; opacity: .55; }
  .drillable { cursor: zoom-in; transition: background-color .12s ease, color .12s ease, box-shadow .12s ease; }
  .drillable:hover, .drillable:focus-visible { background-color: color-mix(in srgb, var(--brand-blue-2) 9%, transparent) !important; color: var(--brand-blue-text); outline: none; box-shadow: inset 3px 0 0 var(--brand-blue); }
  .bar-row.drillable:hover, .bar-row.drillable:focus-visible { border-radius: 6px; }

  /* Métrica: option buttons (radio + icon + label) stacked vertically,
     not a pill toggle -- .active mirrors :checked visually (native radio
     accent-color already signals selection, this just highlights the row). */
  .group-metric-options { display: flex; flex-direction: column; gap: 2px; }
  .group-metric-opt { display: flex; align-items: center; gap: 6px; height: var(--filter-control-height); box-sizing: border-box; padding: 0 7px; border-radius: 5px; font-size: 11px; font-weight: 400; color: #dbe6f7; white-space: nowrap; cursor: pointer; }
  .group-metric-opt input[type="radio"] { accent-color: var(--brand-blue-2); }
  .group-metric-opt.active { background: color-mix(in srgb, var(--brand-blue-2) 18%, transparent); color: #fff; }
  .group-metric-opt.chip-off { opacity: .4; cursor: not-allowed; }

  /* ---------- layout ---------- */
  .layout { display: grid; grid-template-columns: 1fr 300px; gap: 18px; align-items: start; margin-top: 18px; }
  /* TIA disabled (global toggle off, or user in a blocked group): _tia_dock.html
     isn't included at all (_shell.html), so without this the grid still
     reserves the empty 300px track (CSS Grid keeps a track even with zero
     items placed in it) -- main-col stayed capped at 1fr with a blank gutter
     on the right instead of actually expanding. */
  .layout.no-tia { grid-template-columns: 1fr; }
  .main-col, .chat-dock { min-width: 0; }
  @media (max-width: 1000px) { .layout { grid-template-columns: 1fr; } .tia-dock-inner { position: static !important; } }
  .tab-page { display: none; }
  .tab-page.active { display: block; animation: fadeIn .25s ease; }
  @media (prefers-reduced-motion: reduce) { .tab-page.active { animation: none; } }
  @keyframes fadeIn { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }

  section.card { min-width: 0; background: var(--surface-3); border: 1px solid var(--border); border-radius: 14px; padding: 18px 20px 22px; margin-bottom: 16px; box-shadow: 0 1px 2px rgba(10,14,23,0.03), 0 8px 20px -12px rgba(10,14,23,0.08); transition: box-shadow .18s ease, transform .18s ease; }
  section.card:hover { box-shadow: 0 2px 4px rgba(10,14,23,0.04), 0 12px 28px -14px rgba(10,14,23,0.14); }
  section.card h2 { font-size: 14.5px; margin: 0 0 2px; display: flex; align-items: center; gap: 8px; }
  section.card .desc { font-size: 11.5px; color: var(--text-secondary); margin: 3px 0 16px; }

  /* ---------- KPI tiles ---------- */
  .stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(158px, 1fr)); gap: 12px; margin-bottom: 18px; }
  .tile { background: var(--surface-2); border: 1px solid var(--border); border-left: 3px solid var(--brand-blue); border-radius: 8px; padding: 12px 14px; transition: transform .15s ease, border-color .15s ease; }
  .tile:hover { transform: translateY(-1px); }
  .tile.acc-red { border-left-color: var(--brand-red); }
  .tile.acc-good { border-left-color: var(--good); }
  .tile.acc-combo { border-left-color: var(--series-combo); }
  .tile .label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; margin-bottom: 6px; font-weight: 600; }
  .tile .value { font-family: var(--font-mono); font-size: 24px; font-weight: 700; line-height: 1.1; letter-spacing: -.2px; font-variant-numeric: tabular-nums; }
  .tile .delta { display: inline-block; font-size: 10.5px; margin-top: 7px; font-weight: 700; padding: 2px 7px; border-radius: 999px; }
  .tile .delta.up { color: var(--good-text); background: var(--good-bg); }
  .tile .delta.down { color: var(--critical-text); background: var(--critical-bg); }
  .tile .meta { font-size: 10.5px; color: var(--muted); margin-top: 5px; }
  .orders-bridge-stats { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(230px, 1.34fr); }
  .orders-bridge-stats > .tile { min-width: 0; }
  .orders-bridge-stats .orders-estimated-value { max-width: 100%; font-size: 20px; letter-spacing: -.6px; }
  @media (max-width: 1320px) {
    .orders-bridge-stats { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
    .orders-bridge-stats .orders-estimated-tile { grid-column: span 2; }
    .orders-bridge-stats .orders-estimated-value { font-size: 18px; }
  }
  @media (max-width: 520px) {
    .orders-bridge-stats { grid-template-columns: 1fr; }
    .orders-bridge-stats .orders-estimated-tile { grid-column: auto; }
  }

  /* ---------- funnel ---------- */
  .funnel { display: flex; flex-direction: column; gap: 5px; }
  .funnel-row { display: grid; grid-template-columns: 172px 1fr 100px; align-items: center; gap: 10px; }
  .funnel-row .stage-name { font-size: 12px; color: var(--text-secondary); text-align: right; }
  .funnel-track { position: relative; height: 24px; background: var(--surface-2); border-radius: 6px; overflow: hidden; }
  .funnel-fill { height: 100%; border-radius: 6px; display: flex; align-items: center; padding-left: 10px; min-width: 2px; }
  .funnel-fill span { font-family: var(--font-mono); font-size: 11px; color: #fff; font-weight: 500; white-space: nowrap; text-shadow: 0 0 1px rgba(0,0,0,0.85), 0 0 3px rgba(0,0,0,0.85), 0 1px 2px rgba(0,0,0,0.85); font-variant-numeric: tabular-nums; }
  .funnel-row .pct { font-size: 12px; font-weight: 700; text-align: right; }
  .funnel-row .pct .cum { display: block; font-size: 10px; font-weight: 500; color: var(--muted); }

  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  .three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  @media (max-width: 820px) { .two-col, .three-col { grid-template-columns: 1fr; } }
  .col-title { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; color: var(--text-secondary); }
  .col-title .swatch { width: 10px; height: 10px; border-radius: 3px; }
  .section-divider { font-size: 13px; font-weight: 800; margin: 22px 0 4px; padding-top: 18px; border-top: 1px solid var(--gridline); }
  .exec-group { margin-bottom: 4px; }
  .exec-group-head { display: flex; align-items: center; gap: 8px; margin: 10px 0 4px; }
  .exec-group-head .n { width: 18px; height: 18px; border-radius: 5px; background: var(--panel-head); color: #fff; font-size: 10px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .exec-group-head .lab { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; color: var(--text-secondary); }
  .exec-group .funnel { margin-left: 26px; padding-left: 10px; border-left: 2px solid var(--gridline); }

  /* ---------- geography grid map ---------- */
  .geo-map { display: flex; flex-wrap: wrap; justify-content: center; padding: 10px 0; overflow-x: auto; }
  .brazil-grid { display: grid; grid-template-columns: repeat(8, 54px); grid-auto-rows: 54px; gap: 4px; }
  .geo-tile { border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: default; transition: transform .1s; }
  .geo-tile:hover { transform: scale(1.08); z-index: 2; box-shadow: 0 2px 8px rgba(11,11,11,0.25); }

  /* ---------- real Brazil GIS-style map ---------- */
  .brazil-map-wrap { display: flex; flex: 1 1 auto; gap: 20px; align-items: flex-start; justify-content: center; flex-wrap: wrap; }
  /* Width cap of the country map (PT: 760, its Continente is tall and narrow; default 560). */
  .brazil-svg-container { flex: 1 1 var(--map-basis, 380px); min-width: 300px; max-width: var(--map-max-width, 560px); }
  .brazil-svg-container svg { width: 100%; height: auto; display: block; }
  .uf-path { cursor: pointer; transition: filter .15s; }
  .uf-path:hover { filter: brightness(1.2); }
  .uf-path.selected { stroke: var(--navy) !important; stroke-width: 2.5 !important; }
  .uf-detail-panel { width: 230px; flex-shrink: 0; background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; }
  .uf-detail-panel .ud-name { font-size: 16px; font-weight: 800; }
  .uf-detail-panel .ud-code { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; margin-bottom: 12px; }
  .uf-detail-panel .ud-row { display: flex; justify-content: space-between; align-items: baseline; padding: 7px 0; border-top: 1px solid var(--gridline); }
  .uf-detail-panel .ud-row:first-of-type { border-top: none; }
  .uf-detail-panel .ud-label { font-size: 11px; color: var(--muted); }
  .uf-detail-panel .ud-value { font-family: var(--font-mono); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .uf-detail-panel .ud-hint { font-size: 10.5px; color: var(--muted); margin-top: 10px; line-height: 1.5; }
  .uf-label { font-size: 11px; font-weight: 800; fill: #fff; paint-order: stroke; stroke: rgba(0,0,0,0.55); stroke-width: 2px; stroke-linejoin: round; pointer-events: none; }
  .uf-label-sub { font-size: 9px; font-weight: 700; fill: #fff; paint-order: stroke; stroke: rgba(0,0,0,0.55); stroke-width: 1.6px; stroke-linejoin: round; pointer-events: none; }
  .map-inset { fill: none; stroke: var(--border); stroke-dasharray: 3 3; }
  /* Rank ramp of the country map (map_scale "rank"): lightest to darkest tone of the chart scale. */
  .viz-root { --map-ramp-light: color-mix(in oklch, var(--brand-blue) 9%, #ffffff);
              --map-ramp-dark: color-mix(in oklch, var(--brand-blue) 55%, var(--navy)); }
  .uf-label.on-light, .uf-label-tiny.on-light, .uf-label-sub.on-light { fill: var(--navy); stroke: rgba(255,255,255,.75); }
  .uf-label-sub.uf-label-sub-tiny { font-size: 7px; stroke-width: 1.4px; }
  .map-inset-label { font-size: 9px; font-weight: 700; fill: var(--muted); }
  .uf-label-tiny { font-size: 7px; font-weight: 800; fill: #fff; paint-order: stroke; stroke: rgba(0,0,0,0.55); stroke-width: 1.4px; stroke-linejoin: round; pointer-events: none; }
  .geo-tile .gt-code { font-size: 12.5px; font-weight: 800; }
  .geo-tile .gt-rate { font-size: 10px; font-weight: 600; opacity: .9; }
  .geo-legend { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 10.5px; color: var(--muted); }
  .geo-legend .lg { width: 14px; height: 14px; border-radius: 3px; }
  .scroll-table { width: 100%; max-width: 100%; max-height: 480px; box-sizing: border-box; overflow-y: auto; overflow-x: auto; border: 1px solid var(--gridline); border-radius: 8px; }
  .scroll-table table.opp { font-size: 11.5px; }
  .scroll-table thead th { position: sticky; top: 0; background: var(--surface-3); z-index: 1; }

  /* ---------- SLA ---------- */
  .sla-row { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid var(--gridline); }
  .sla-row:first-child { border-top: none; }
  .sla-icon { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; }
  .sla-icon.good { background: var(--good-bg); color: var(--good-text); }
  .sla-body { flex: 1; } .sla-body .title { font-size: 12.5px; font-weight: 700; }
  .sla-body .bar-bg { height: 7px; border-radius: 4px; background: var(--surface-2); margin-top: 6px; overflow: hidden; }
  .sla-body .bar-fill { height: 100%; border-radius: 4px; }
  .sla-value { text-align: right; font-size: 11px; color: var(--text-secondary); min-width: 165px; }
  .sla-value b { font-family: var(--font-mono); color: var(--text-primary); font-size: 13.5px; font-variant-numeric: tabular-nums; }

  /* ---------- bars (horizontal, generic) ---------- */
  .bars { display: flex; flex-direction: column; gap: 7px; }
  .bar-row { display: grid; grid-template-columns: 130px 1fr 150px; align-items: center; gap: 10px; }
  .bar-row.narrow-label { grid-template-columns: 52px 1fr 140px; }
  /* Unit names instead of codes (PT sub-regiões): room for "Beiras e S. Estrela", ellipsis beyond. */
  .bar-row.wide-label { grid-template-columns: 170px 1fr 150px; }
  .bar-row.wide-label .name { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .bar-row .name { font-size: 12px; font-weight: 600; }
  .bar-track { height: 17px; background: var(--surface-2); border-radius: 5px; overflow: hidden; }
  .bar-fill { height: 100%; border-radius: 5px; background: var(--brand-blue); }
  .bar-row .figs { font-size: 11px; color: var(--text-secondary); text-align: right; }
  .bar-row .figs b { font-family: var(--font-mono); color: var(--text-primary); font-variant-numeric: tabular-nums; }
  .bar-row .n-sub { display:block; font-size: 10px; color: var(--muted); margin-top: 2px; }

  /* ---------- tables ---------- */
  table.opp { width: 100%; border-collapse: collapse; font-size: 12px; }
  table.opp th { text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); font-weight: 700; padding: 6px 8px; border-bottom: 1px solid var(--gridline); }
  table.opp td { padding: 8px 8px; border-bottom: 1px solid var(--gridline); }
  table.opp tr:last-child td { border-bottom: none; }
  table.opp .num { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
  .pill { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 999px; }
  .pill.op { background: var(--critical-bg); color: var(--critical-text); }
  .pill.bottleneck { background: var(--serious-bg); color: var(--serious-text); }
  .pill.clean { background: var(--good-bg); color: var(--good-text); }
  .mom { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 999px; white-space: nowrap; }
  .mom.up { background: var(--good-bg); color: var(--good-text); }
  .mom.down { background: var(--critical-bg); color: var(--critical-text); }
  .mom.flat { background: var(--warning-bg); color: var(--warning-text); }

  /* ---------- stars ---------- */
  .stars-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
  .star-card { background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 10px 10px 12px; text-align: center; }
  .star-card .stars-lab { font-size: 12px; color: var(--warning); letter-spacing: 1px; margin-bottom: 6px; }
  .star-card .stars-lab .off { color: var(--gridline); }
  .star-card .n { font-size: 17px; font-weight: 800; }
  .star-card .outcome-bar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; margin: 8px 0 6px; background: var(--gridline); }
  .star-card .ol { font-size: 9.5px; color: var(--muted); text-align: left; line-height: 1.6; }
  .star-card .ol b { color: var(--text-primary); }

  /* ---------- gender/age with confidence ---------- */
  .conf-bar-row { margin-bottom: 14px; }
  .conf-bar-row .top-line { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 5px; }
  .conf-bar-row .top-line .nm { font-weight: 700; }
  .conf-bar-row .top-line .rt { font-weight: 700; }
  .conf-track { height: 14px; background: var(--surface-2); border-radius: 5px; overflow: hidden; }
  .conf-fill { height: 100%; border-radius: 5px; }
  .conf-bar-row .sub { font-size: 10.5px; color: var(--muted); margin-top: 4px; }
  .inference-note { display: flex; align-items: center; gap: 10px; background: var(--warning-bg); border-radius: 8px; padding: 8px 12px; margin-top: 4px; }
  .inference-note .flag { font-size: 9.5px; font-weight: 800; text-transform: uppercase; background: var(--warning); color: #3a2c00; padding: 3px 8px; border-radius: 999px; letter-spacing: .3px; white-space: nowrap; }
  .inference-note span.txt { font-size: 11px; color: var(--warning-text); }

  .foot-note { font-size: 11px; color: var(--muted); line-height: 1.6; margin-top: 8px; }

  /* ---------- status dots (reused in action cards, tables, foot-notes) ---------- */
  .dot { display: inline-block; width: 9px; height: 9px; border-radius: 3px; vertical-align: middle; }

  /* ---------- action cards (faça+/faça-/atenção) ---------- */
  .action-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  @media (max-width: 820px) { .action-strip { grid-template-columns: 1fr; } }
  .action-col h3 { font-size: 11.5px; text-transform: uppercase; letter-spacing: .3px; margin: 0 0 10px; display: flex; align-items: center; gap: 7px; }
  .action-card { background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 11px 12px; margin-bottom: 8px; }
  .action-card .t { font-size: 12.5px; font-weight: 700; margin-bottom: 3px; }
  .action-card .d { font-size: 11px; color: var(--text-secondary); line-height: 1.45; }

  /* ---------- SWOT ---------- */
  .swot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  @media (max-width: 820px) { .swot-grid { grid-template-columns: 1fr; } }
  .swot-card { border-radius: 12px; padding: 16px 18px; border: 1px solid var(--border); }
  .swot-card.strength { background: var(--good-bg); }
  .swot-card.weakness { background: var(--serious-bg); }
  .swot-card.opportunity { background: color-mix(in srgb, var(--brand-blue) 8%, transparent); }
  .swot-card.threat { background: var(--critical-bg); }
  .swot-card h3 { font-size: 13px; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .3px; }
  .swot-card.strength h3 { color: var(--good-text); }
  .swot-card.weakness h3 { color: var(--serious-text); }
  .swot-card.opportunity h3 { color: var(--brand-blue-text); }
  .swot-card.threat h3 { color: var(--critical-text); }
  .swot-item { background: var(--surface-3); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; border: 1px solid var(--border); }
  .swot-item:last-child { margin-bottom: 0; }
  .swot-item .t { font-size: 12.5px; font-weight: 700; margin-bottom: 3px; }
  .swot-item .d { font-size: 11.5px; color: var(--text-secondary); line-height: 1.5; }

  /* ---------- chat dock ---------- */
  /* align-self:stretch overrides .layout's align-items:start specifically for
     this grid item -- without it, CSS Grid shrinks .chat-dock's own cell down
     to its (short) content height, leaving .tia-dock-inner's position:sticky
     no taller box to stick within, so it just sits at its natural spot and
     scrolls out of view with the rest of the page instead of following
     scroll. Stretching the cell to match .main-col's (much taller) height
     gives sticky the room it needs to actually track scroll down the page. */
  .chat-dock { align-self: stretch; }
  /* position:sticky specifically does NOT go on .chat-dock itself, even
     though that's the element being stretched -- confirmed live that a
     single element carrying BOTH align-self:stretch and position:sticky
     silently fails to stick (behaves exactly like static/relative, top
     tracks scrollY 1:1 with zero pinning): once stretched, the box has no
     shorter "natural" size left to slide within its own bounds. Splitting
     into an outer stretched, non-sticky grid item (.chat-dock, tall,
     defines the travel range) and this inner sticky child (naturally
     short, actually pins here) is what makes it stick at all.
     top/z-index: 18px alone put the chat head right underneath header.top
     -- which is ALSO position:sticky, pinned at its own top:0, and taller
     (~170px with the filters bar) with z-index:200. Once both are stuck
     near the top of the viewport their boxes overlap for real, and the
     header (higher z-index) painted straight over the chat card's own
     head/mascot -- confirmed live: scrolling down made TIA's header
     disappear behind the page header, only the lower part of the card
     (input box, footer) still poking out below it. top is now set inline
     by positionDockInner() in _tia_dock.html's script (same live
     header-bottom measurement positionMaximized()/positionInfoPanel() use)
     so the chat card sticks just below the real header instead of behind
     it; z-index bumped defensively too in case a future header height
     tweak ever leaves a one-frame gap before the script runs. */
  .tia-dock-inner { position: sticky; top: 18px; z-index: 210; }
  .chat-card { background: var(--surface-3); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; height: 640px; }
  /* Standard row height, same 13px every other .chat-head-style row uses --
     no reserved padding-top needed anymore. The thought bubble used to live
     inside this box specifically to get that extra padding as clipping-free
     room (see .tia-thought-bubble below for where it lives now instead). */
  /* flex-shrink:0 -- without it, a tall .chat-body (many messages, no
     min-height:0 fallback covers every browser) can still squeeze this
     header instead of just scrolling internally; confirmed live the
     header/mascot got compressed and message bubbles poked up above it. */
  .chat-head .tia-head-name { cursor: help; font-weight: 700; color: var(--assistant-name); border-bottom: 1px dotted var(--assistant-name); }
  .chat-head { background: var(--panel-head); color: #fff; padding: 13px 15px 13px 15px; display: flex; align-items: center; gap: 8px; position: relative; flex-shrink: 0; }
  .chat-head .ico { width: 22px; height: 22px; border-radius: 6px; background: var(--brand-blue-2); display: flex; align-items: center; justify-content: center; font-size: 12px; }
  .tia-mascot { width: 58px; height: 58px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
  /* The mascot SVG has only a viewBox. Without an explicit rendered size,
     browsers use the replaced-element default (300x150) and the collapsed
     launcher overflows its 58px slot across the dashboard. */
  .tia-mascot > svg { display: block; width: 100%; height: 100%; }
  .tia-mascot.tia-mascot-pop { animation: tia-mascot-pop .45s ease-out; }
  @keyframes tia-mascot-pop { 0% { transform: scale(.86); } 55% { transform: scale(1.09); } 100% { transform: scale(1); } }
  @media (prefers-reduced-motion: reduce) { .tia-mascot.tia-mascot-pop { animation: none; } }
  /* #tia-head-mascot only: stack of mood/activity states (see _tia_dock.html's
     setHeadState) -- all pre-rendered and layered via position:absolute so
     switching states is just a class toggle, no fetch/re-render, and each
     state's CSS animation restarts cleanly (display:none pauses it) the
     moment it becomes .active. */
  #tia-head-mascot { position: relative; }
  #tia-head-mascot .tia-state { display: none; position: absolute; inset: 0; }
  #tia-head-mascot .tia-state.active { display: block; }
  #tia-head-mascot .tia-state svg { width: 100%; height: 100%; }
  /* Thought-bubble caption (see setHeadState's STATE_LABELS) -- separate from
     the title="" tooltip, shows short text matching whichever mascot state
     is active ("pensando...", "comendo macarronada", etc). Two trailing
     circles (::before/::after) give it the classic comic thought-cloud
     shape pointing down at the mascot. White background regardless of theme
     -- it needs to read clearly against the dark navy chat-head either way.

     Lives in the HTML as a direct child of .chat-dock now (sibling of
     .chat-card), not nested inside #tia-head-mascot/.chat-head anymore --
     .chat-card has overflow:hidden (for its rounded corners), which clipped
     any attempt to float the bubble above the header without a large
     reserved padding-top hack.

     position:fixed with left/top set by positionThoughtBubble() in
     _tia_dock.html, re-measured off #tia-head-mascot's live
     getBoundingClientRect() -- NOT a static CSS offset. A static offset
     (relative to .chat-dock's position:sticky box) worked only while the
     mascot always rendered at the same spot in the docked sidebar card; it
     broke as soon as the card portal-relocates for maximize (chatCard moves
     into .viz-root, centered in the viewport, while a .chat-dock-relative
     bubble stayed pointing at the old sidebar position). JS re-measurement
     is called on every state change, on maximize/restore, on window resize,
     and on scroll (while visible) -- see positionThoughtBubble().
     translate(-50%, calc(-100% + Ypx)) is what makes the gap-above-the-head
     placement independent of the bubble's own (dynamic, text-length-
     dependent) height: translateY(-100%) always lands the box's BOTTOM edge
     exactly at the measured anchor point regardless of how tall the box
     rendered, and the extra -12px opens a fixed 12px gap above the mascot's
     head from there. */
  .tia-thought-bubble {
    position: fixed; z-index: 650; top: 0; left: 0; transform: translate(-50%, calc(-100% - 12px)) scale(0.85);
    background: #fff; color: #1a1a1a; font-size: 10.5px; font-weight: 700; line-height: 1.3;
    padding: 6px 16px; border-radius: 16px; max-width: 190px; min-width: 130px; text-align: center;
    box-shadow: 0 10px 22px rgba(0,0,0,.32), 0 0 0 1.5px color-mix(in srgb, var(--navy) 7%, transparent) inset;
    opacity: 0; pointer-events: none; transition: opacity .3s ease, transform .3s ease;
  }
  .tia-thought-bubble.visible { opacity: 1; transform: translate(-50%, calc(-100% - 12px)) scale(1); }
  /* Two trailing "puff" dots, each with its own shadow so they read as
     little bubbles in their own right rather than flat circles, centered
     under the bubble now that the bubble itself is centered on the mascot
     (not shifted right over the title anymore) -- a straight vertical trail
     down to the mascot's head, the classic comic-thought-bubble "connector"
     look. */
  .tia-thought-bubble::before, .tia-thought-bubble::after { content: ''; position: absolute; left: calc(50% + var(--tia-bubble-shift, 0px)); top: 100%; background: #fff; border-radius: 50%; box-shadow: 0 3px 7px rgba(0,0,0,.2); }
  .tia-thought-bubble::before { width: 9px; height: 9px; margin-left: -4.5px; margin-top: 4px; }
  .tia-thought-bubble::after { width: 5px; height: 5px; margin-left: -2.5px; margin-top: 16px; }
  .chat-head .t { font-size: 12.5px; font-weight: 700; }
  .chat-head .s { font-size: 10px; color: #9fb2d4; }
  .concept-flag { margin-left: auto; font-size: 9px; font-weight: 700; text-transform: uppercase; background: rgba(250,178,25,0.22); color: #ffce5c; padding: 3px 7px; border-radius: 999px; }
  /* min-height:0 -- a flex item's default min-height is auto (= its content
     size), so without this a long message list ignores flex:1 and grows
     past its allotted space instead of scrolling internally, pushing into
     .chat-head above it (see .chat-head's flex-shrink:0 comment). */
  .chat-body { flex: 1; min-height: 0; overflow-y: auto; padding: 13px; display: flex; flex-direction: column; gap: 11px; background: var(--surface-2); }
  .msg { max-width: 90%; font-size: 12px; line-height: 1.5; padding: 8px 11px; border-radius: 10px; }
  /* TIA reply markdown (see _tia_dock.html's renderMarkdown -- fixed tag
     whitelist only, never raw HTML from the model). */
  .msg.bot p { margin: 0 0 6px; }
  .msg.bot p:last-child { margin-bottom: 0; }
  .msg.bot ul, .msg.bot ol { margin: 2px 0 8px; padding-left: 18px; }
  .msg.bot ul:last-child, .msg.bot ol:last-child { margin-bottom: 0; }
  .msg.bot li { margin-bottom: 2px; }
  .msg.bot li:last-child { margin-bottom: 0; }
  .msg.bot strong { font-weight: 700; color: var(--brand-blue-text); }
  .msg.bot code { background: rgba(127,127,127,0.16); border-radius: 4px; padding: 1px 4px; font-size: 11px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
  .msg.bot a { color: var(--brand-blue-2); text-decoration: underline; text-underline-offset: 2px; }
  .msg.bot .tia-h { font-weight: 700; margin: 2px 0 4px; }
  .msg.bot .tia-h:first-child { margin-top: 0; }
  .msg.bot .tia-h1 { font-size: 13px; }
  .msg.bot .tia-h2 { font-size: 12.5px; }
  .msg.bot .tia-h3, .msg.bot .tia-h4 { font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--text-secondary); }
  .tia-page-tag { display: inline-flex; align-items: center; gap: 4px; background: var(--brand-red); color: #fff; font-weight: 700; font-size: 10.5px; letter-spacing: .2px; text-decoration: none; padding: 2px 9px 2px 7px; border-radius: 999px; white-space: nowrap; vertical-align: middle; }
  .tia-page-tag:hover { filter: brightness(0.88); }
  .tia-tag-icon { flex-shrink: 0; } /* currentColor inherits #fff from .tia-page-tag, same as nav.tabs .nav-icon */
  /* .msg.bot a (above) has higher specificity (2 classes + element) than
     .tia-page-tag alone (1 class) and was winning, rendering the pill's own
     text/icon in --brand-blue-2 -- the SAME color as its background, making
     it unreadable. This matches .msg.bot a's specificity and comes later in
     the cascade, so it wins instead. */
  .msg.bot a.tia-page-tag { color: #fff; text-decoration: none; }
  /* color-mix (not a flat rgba overlay) mixes blue directly INTO the local
     surface color instead of alpha-blending over whatever happens to sit
     behind it -- a plain rgba(...) read muddy/"opaque" here because it was
     compounding with .chat-body's own tinted background, and in dark theme
     translucency-over-dark can only ever get darker, never read as "light".
     Mixing toward --surface-3 gives a clean pale blue in light mode and a
     legible, on-brand tint in dark mode. A soft diagonal gradient (instead
     of a flat fill) plus --brand-blue-2 (the more saturated/vivid blue used
     for interactive accents elsewhere, vs. --brand-blue's flatter
     "institutional" tone) is what gives it life without going back to a
     heavy solid block. */
  .msg.user {
    align-self: flex-end;
    background: linear-gradient(135deg,
      color-mix(in srgb, var(--brand-blue-2) 28%, var(--surface-3)),
      color-mix(in srgb, var(--brand-blue-2) 14%, var(--surface-3)));
    border: 1px solid color-mix(in srgb, var(--brand-blue-2) 45%, var(--surface-3));
    color: var(--text-primary);
    border-bottom-right-radius: 3px;
    padding-left: 31px;
    padding-right: 31px;
    position: relative;
  }
  .tia-question-origin { position: absolute; top: 10px; left: 10px; width: 14px; height: 14px; display: inline-flex; align-items: center; justify-content: center; color: var(--text-secondary); }
  .tia-question-origin.microphone { color: var(--brand-red-text); }
  .tia-question-origin svg { display: block; }
  .msg.user.tia-has-captured-audio { padding-right: 11px; }
  .msg.user.tia-has-captured-audio .tia-user-question-content { padding-right: 20px; }
  .msg.user.tia-has-captured-audio .tia-question-favorite { top: 5px; bottom: auto; }
  .msg.user.tia-has-captured-audio .tia-message-actions { width: 100%; }
  .tia-question-favorite { position: absolute; right: 5px; bottom: 5px; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--muted); cursor: pointer; }
  .tia-question-favorite:hover:not(:disabled) { color: #f2a900; background: color-mix(in srgb, #f2a900 12%, transparent); }
  .tia-question-favorite.saved { color: #f2a900; }
  .tia-question-favorite:disabled { cursor: wait; opacity: .55; }
  .msg.bot { align-self: flex-start; background: var(--surface-3); border: 1px solid var(--border); border-bottom-left-radius: 3px; }
  .chat-input { box-sizing: border-box; width: 100%; padding: 10px; border-top: 1px solid var(--gridline); }
  .tia-compose-row { width: 100%; min-width: 0; }
  .tia-textbox-shell { position: relative; width: 100%; min-width: 0; min-height: 36px; box-sizing: border-box; border: 1px solid var(--border); border-radius: 18px; background: var(--surface-1); transition: border-color .15s ease, box-shadow .15s ease; }
  .tia-textbox-shell:focus-within { border-color: var(--brand-blue-2); box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand-blue-2) 12%, transparent); }
  .chat-input textarea { display: block; width: 100%; min-height: 34px; max-height: 114px; box-sizing: border-box; border: 0; outline: 0; border-radius: 18px; padding: 8px 103px 8px 12px; resize: none; overflow-y: hidden; font-family: inherit; font-size: 12px; line-height: 16px; background: transparent; color: var(--text-primary); }
  .chat-input button { background: var(--brand-blue); color: #fff; border: none; border-radius: 8px; padding: 8px 14px; font-size: 12px; font-weight: 700; cursor: pointer; }
  .chat-input button:disabled, .chat-input textarea:disabled { opacity: .55; cursor: not-allowed; }
  .chat-input .tia-audio-control { position: absolute; bottom: 3px; right: 65px; width: 28px; height: 28px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--brand-red-text); border-radius: 50%; }
  .chat-input .tia-audio-control:hover:not(:disabled) { background: color-mix(in srgb, var(--brand-red) 10%, transparent); }
  .chat-input .tia-audio-control:disabled { background: transparent; color: var(--muted); opacity: .55; }
  .chat-input .tia-audio-control.recording { color: #fff; background: var(--brand-red); animation: tia-recording-pulse 1.1s ease-in-out infinite; }
  .chat-input .tia-audio-control.working { color: var(--brand-red-text); animation: tia-recording-pulse .8s ease-in-out infinite; }
  .chat-input #tia-reset { position: absolute; bottom: 3px; right: 34px; width: 28px; height: 28px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--muted); }
  .chat-input #tia-reset:hover { color: var(--brand-blue-text); background: color-mix(in srgb, var(--brand-blue) 9%, transparent); }
  .chat-input #tia-send { position: absolute; bottom: 3px; right: 3px; width: 28px; height: 28px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--brand-blue); color: #fff; }
  .chat-input #tia-send:hover:not(:disabled) { background: var(--brand-blue-2); }
  .chat-input #tia-send:disabled { background: var(--surface-2); color: var(--muted); opacity: 1; }
  .tia-recording-ui { display: none; align-items: center; box-sizing: border-box; gap: 4px; min-height: 42px; padding: 4px 5px 4px 12px; width: 100%; }
  .tia-textbox-shell.recording { min-height: 42px; border-radius: 22px; background: var(--surface-2); }
  .tia-textbox-shell.recording > textarea,
  .tia-textbox-shell.recording > #tia-mic,
  .tia-textbox-shell.recording > #tia-reset,
  .tia-textbox-shell.recording > #tia-send { display: none; }
  .tia-textbox-shell.recording .tia-recording-ui { display: flex; }
  .tia-recording-wave-wrap { align-items: center; display: flex; flex: 1 1 auto; height: 30px; min-width: 0; overflow: hidden; }
  .tia-recording-wave { color: var(--text-secondary); display: block; height: 30px; width: 100%; }
  .chat-input .tia-recording-action { align-items: center; background: transparent; border: 0; border-radius: 50%; color: var(--text-primary); display: inline-flex; flex: 0 0 auto; height: 32px; justify-content: center; padding: 0; width: 32px; }
  .chat-input .tia-recording-action:hover:not(:disabled) { background: var(--surface-3); }
  .chat-input #tia-record-cancel { background: var(--surface-3); color: var(--text-secondary); }
  .chat-input #tia-record-cancel:hover:not(:disabled) { color: var(--brand-red-text); }
  .chat-input #tia-record-confirm:hover:not(:disabled) { color: var(--brand-blue-2); }
  .chat-input .tia-recording-action:focus-visible { outline: 2px solid var(--brand-blue-2); outline-offset: 1px; }
  .tia-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .tia-message-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1px; margin-top: 5px; min-width: 0; }
  .tia-message-actions.tia-audio-player-active { box-sizing: border-box; gap: 3px; min-height: 30px; padding: 3px 5px; border: 1px solid color-mix(in srgb, var(--brand-red) 28%, var(--gridline)); border-radius: 999px; background: color-mix(in srgb, var(--brand-red) 7%, var(--surface)); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
  .tia-message-actions.tia-audio-player-active .tia-message-timeline { flex-basis: 104px; min-width: 76px; max-width: none; }
  .tia-message-actions.tia-audio-player-active .tia-message-speaker,
  .tia-message-actions.tia-audio-player-active .tia-message-stop { width: 24px; height: 24px; flex: 0 0 24px; }
  .tia-message-actions.tia-audio-player-active .tia-message-stop { color: var(--brand-red-text); }
  .tia-message-timeline { align-items: center; display: flex; flex: 1 1 88px; min-width: 58px; max-width: 128px; margin-right: 3px; }
  .tia-message-timeline[hidden] { display: none; }
  .tia-message-seek { appearance: none; -webkit-appearance: none; width: 100%; height: 14px; margin: 0; padding: 0; background: transparent; cursor: pointer; }
  .tia-message-seek:disabled { cursor: default; opacity: .55; }
  .tia-message-seek::-webkit-slider-runnable-track { height: 4px; border-radius: 999px; background: linear-gradient(to right, var(--brand-red) 0 var(--tia-seek-progress, 0%), color-mix(in srgb, var(--text-secondary) 38%, var(--gridline)) var(--tia-seek-progress, 0%) 100%); }
  .tia-message-seek::-webkit-slider-thumb { -webkit-appearance: none; width: 9px; height: 9px; margin-top: -3px; border: 0; border-radius: 50%; background: var(--brand-red); }
  .tia-message-seek::-moz-range-track { height: 4px; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--text-secondary) 38%, var(--gridline)); }
  .tia-message-seek::-moz-range-progress { height: 4px; border-radius: 999px; background: var(--brand-red); }
  .tia-message-seek::-moz-range-thumb { width: 9px; height: 9px; border: 0; border-radius: 50%; background: var(--brand-red); }
  .tia-message-seek:focus-visible { outline: 2px solid var(--brand-blue-2); outline-offset: 2px; }
  .tia-message-speaker { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--brand-red-text); cursor: pointer; }
  .tia-message-copy { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; background: transparent; color: var(--muted); cursor: pointer; }
  .tia-message-copy:hover { color: var(--brand-blue-2); background: color-mix(in srgb, var(--brand-blue-2) 10%, transparent); }
  .tia-message-copy:focus-visible { outline: 2px solid var(--brand-blue-2); outline-offset: 1px; }
  .tia-message-copy.copied { color: var(--good-text); }
  .tia-message-copy.failed { color: var(--brand-red-text); }
  .msg.user .tia-message-copy { position: absolute; right: 29px; bottom: 5px; }
  .msg.user.tia-has-question-copy { padding-right: 55px; }
  .msg.user.tia-has-captured-audio.tia-has-question-copy { padding-right: 11px; }
  .msg.user.tia-has-captured-audio.tia-has-question-copy .tia-user-question-content { padding-right: 44px; }
  .msg.user.tia-has-captured-audio .tia-message-copy { top: 5px; bottom: auto; }
  .tia-message-speaker:hover:not(:disabled) { background: color-mix(in srgb, var(--brand-red) 10%, transparent); }
  .tia-message-speaker:disabled { color: var(--muted); cursor: not-allowed; opacity: .55; }
  .tia-message-speaker.working { color: var(--brand-red-text); animation: tia-recording-pulse .8s ease-in-out infinite; }
  .tia-message-speaker.playing, .tia-message-speaker.paused { color: var(--brand-red-text); }
  .tia-message-stop { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--muted); cursor: pointer; }
  .tia-message-stop:hover:not(:disabled) { color: var(--brand-red-text); background: color-mix(in srgb, var(--brand-red) 10%, transparent); }
  .tia-message-stop:disabled { cursor: default; opacity: .45; }
  .tia-message-stop[hidden] { display: none; }
  @keyframes tia-recording-pulse { 50% { opacity: .45; } }
  .chat-head-actions { position: relative; z-index: 40; margin-left: auto; display: flex; gap: 4px; }
  .chat-head-actions button { background: rgba(255,255,255,0.12); border: none; color: #fff; width: 24px; height: 24px; border-radius: 6px; cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center; }
  .chat-head-actions button:hover { background: rgba(255,255,255,0.22); }
  .tia-head-menu-wrap { position: relative; }
  #tia-head-menu-trigger { position: relative; }
  .tia-menu-alert-badge { position: absolute; top: -5px; right: -5px; min-width: 14px; height: 14px; box-sizing: border-box; padding: 0 3px; border-radius: 999px; background: var(--brand-red); color: #fff; font-size: 8px; font-weight: 800; line-height: 14px; text-align: center; box-shadow: 0 0 0 1px var(--navy); }
  .tia-head-menu { position: absolute; z-index: 30; top: 32px; right: 0; width: 246px; box-sizing: border-box; padding: 7px; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-radius: 11px; background: #1b2740; box-shadow: 0 18px 42px rgba(0,0,0,.46), 0 2px 8px rgba(0,0,0,.24); color: #dbe6f7; }
  .tia-head-menu::before { content: ""; position: absolute; top: -5px; right: 8px; width: 9px; height: 9px; border-top: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-left: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); background: #1b2740; transform: rotate(45deg); }
  .tia-head-menu.tia-head-menu-up { top: auto; bottom: 32px; }
  .tia-head-menu.tia-head-menu-up::before { top: auto; bottom: -5px; border-top: 0; border-left: 0; border-right: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); }
  .tia-head-menu[hidden] { display: none; }
  .chat-head-actions .tia-head-menu > button { width: 100%; height: 36px; justify-content: flex-start; gap: 9px; padding: 0 9px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: #dbe6f7; font-size: 11px; font-weight: 650; text-align: left; white-space: nowrap; transition: background .14s ease, border-color .14s ease, color .14s ease, transform .14s ease; }
  .chat-head-actions .tia-head-menu > button svg { flex: none; color: #9fc1f5; }
  .chat-head-actions .tia-head-menu > button:hover { border-color: color-mix(in srgb, var(--brand-blue-on-dark) 24%, transparent); background: color-mix(in srgb, var(--brand-blue-2) 14%, transparent); color: #fff; transform: translateX(1px); }
  .chat-head-actions .tia-head-menu > button:focus-visible { outline: 2px solid var(--brand-blue-on-dark); outline-offset: -2px; color: #fff; }
  .tia-menu-selector { padding: 0; color: #dbe6f7; }
  .tia-assistance-control { margin-top: 4px; padding-top: 4px; border-top: 1px solid rgba(255,255,255,.09); }
  .chat-head-actions .tia-head-menu .tia-menu-selector-trigger { width: 100%; height: 36px; justify-content: flex-start; gap: 9px; padding: 0 9px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: #dbe6f7; font-size: 11px; font-weight: 650; text-align: left; transition: background .14s ease, border-color .14s ease, color .14s ease; }
  .chat-head-actions .tia-head-menu .tia-menu-selector-trigger:hover, .tia-menu-selector.open .tia-menu-selector-trigger { border-color: color-mix(in srgb, var(--brand-blue-on-dark) 24%, transparent); background: color-mix(in srgb, var(--brand-blue-2) 14%, transparent); color: #fff; }
  .chat-head-actions .tia-head-menu .tia-menu-selector-trigger:focus-visible { outline: 2px solid var(--brand-blue-on-dark); outline-offset: -2px; }
  .tia-menu-selector-icon { flex: none; color: #9fc1f5; }
  .tia-menu-selector-label { white-space: nowrap; }
  .tia-menu-selector-value { overflow: hidden; margin-left: auto; color: #9fc1f5; font-size: 9.5px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
  .tia-menu-selector-chevron { flex: none; color: #7188aa; transition: transform .16s ease, color .16s ease; }
  .tia-menu-selector.open .tia-menu-selector-chevron { color: #b9d2f7; transform: rotate(180deg); }
  .tia-assistance-options, .tia-theme-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; margin: 2px 5px 7px; padding: 3px; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 35%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--brand-blue-2) 10%, transparent); box-shadow: inset 0 1px 2px rgba(0,0,0,.22); }
  .tia-assistance-options[hidden], .tia-theme-options[hidden] { display: none; }
  .chat-head-actions .tia-head-menu .tia-assistance-choice, .chat-head-actions .tia-head-menu .tia-theme-choice { width: 100%; height: 34px; justify-content: center; gap: 4px; padding: 0 3px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #9fc1f5; font-size: 8.5px; font-weight: 700; text-align: center; transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease; }
  .chat-head-actions .tia-head-menu .tia-assistance-choice svg, .chat-head-actions .tia-head-menu .tia-theme-choice svg { width: 13px; height: 13px; flex: none; pointer-events: none; }
  .chat-head-actions .tia-head-menu .tia-assistance-choice:hover:not(:disabled), .chat-head-actions .tia-head-menu .tia-theme-choice:hover { border-color: color-mix(in srgb, var(--brand-blue-on-dark) 32%, transparent); background: color-mix(in srgb, var(--brand-blue-2) 22%, transparent); color: #fff; transform: translateY(-1px); }
  .chat-head-actions .tia-head-menu .tia-assistance-choice.active, .chat-head-actions .tia-head-menu .tia-theme-choice.active { border-color: color-mix(in srgb, var(--brand-blue-on-dark) 68%, transparent); background: color-mix(in srgb, var(--brand-blue-2) 42%, transparent); color: #fff; box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand-blue-2) 18%, transparent), 0 3px 9px rgba(0,0,0,.22); }
  .chat-head-actions .tia-head-menu .tia-assistance-choice:disabled { color: #607495; cursor: not-allowed; opacity: .55; }
  .chat-head-actions .tia-head-menu .tia-assistance-choice:focus-visible, .chat-head-actions .tia-head-menu .tia-theme-choice:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
  .tia-head-menu-count { margin-left: auto; min-width: 18px; padding: 1px 5px; border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 22%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--brand-blue-2) 13%, transparent); color: #b9d2f7; font-size: 9px; text-align: center; }
  #incident-center-trigger.has-unread .incident-menu-count { border-color: var(--brand-red); background: var(--brand-red); color: #fff; }
  .chat-dock.tia-menu-open { position: relative; z-index: 240; }
  .tia-dock-inner.tia-menu-open { z-index: 240; }
  .chat-card.tia-menu-open { overflow: visible; }
  .tia-page-tag.tia-message-navigation-toggle { position: relative; cursor: pointer; transition: filter .14s ease, box-shadow .14s ease, transform .14s ease; }
  .tia-page-tag.tia-message-navigation-toggle:hover { filter: brightness(.9); transform: translateY(-1px); }
  .tia-page-tag.tia-message-navigation-toggle:focus-visible { outline: 2px solid var(--brand-blue-2); outline-offset: 2px; }
  .tia-page-tag.tia-message-navigation-toggle.active { background: var(--brand-red); box-shadow: 0 0 0 1px var(--surface-3), 0 0 0 2px color-mix(in srgb, var(--brand-blue-2) 80%, transparent); }
  .tia-page-tag.tia-message-navigation-toggle.active::after { position: absolute; top: -3px; right: -3px; width: 7px; height: 7px; border: 1.5px solid var(--surface-3); border-radius: 50%; background: #2fcf72; content: ""; }
  .tia-page-tag.tia-message-navigation-toggle.pending { cursor: wait; opacity: .72; }
  .tia-navigation-page-link { margin-top: 6px; }
  .tia-goal-card { margin-top: 10px; padding: 12px 14px; border: 1px solid var(--gridline); border-radius: 10px; background: var(--surface-2); font-size: 12.5px; }
  .tia-goal-card-row { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px solid var(--gridline); }
  .tia-goal-card-row:last-of-type { border-bottom: 0; }
  .tia-goal-card-row span { color: var(--muted); }
  .tia-goal-card-row strong { color: var(--text-primary); text-align: right; overflow-wrap: anywhere; }
  .tia-goal-card-notice { margin: 8px 0 0; padding: 8px 10px; border-left: 3px solid var(--brand-blue); background: color-mix(in srgb, var(--brand-blue) 6%, transparent); border-radius: 0 6px 6px 0; color: var(--text-secondary); font-size: 11.5px; line-height: 1.45; }
  .tia-goal-card-actions { display: flex; gap: 8px; margin-top: 10px; }
  .tia-goal-card-confirm, .tia-goal-card-dismiss { flex: 1; min-height: 32px; border-radius: 7px; font-weight: 650; font-size: 12px; cursor: pointer; }
  .tia-goal-card-confirm { border: 1px solid var(--brand-blue); background: var(--brand-blue); color: #fff; }
  .tia-goal-card-confirm:disabled, .tia-goal-card-dismiss:disabled { opacity: .6; cursor: wait; }
  .tia-goal-card-dismiss { border: 1px solid var(--gridline); background: var(--surface-3); color: var(--text-secondary); }
  .tia-goal-card-status { margin: 8px 0 0; font-size: 11.5px; font-weight: 650; color: var(--good-text); }
  .tia-goal-card-status.error { color: var(--critical-text); }
  .tia-message-assistance-indicator { width: 22px; height: 22px; padding: 0; border-radius: 50%; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; background: color-mix(in srgb, var(--brand-blue-2) 8%, transparent); color: var(--brand-blue-2); cursor: default; }
  .tia-message-assistance-indicator:focus-visible { outline: 2px solid var(--brand-blue-2); outline-offset: 1px; }
  .filters-bar.tia-assisted-focus { animation: tia-assisted-filter-focus 2.2s ease-out; }
  @keyframes tia-assisted-filter-focus { 0%,35% { box-shadow: inset 0 0 0 2px var(--brand-blue-2), 0 0 0 4px color-mix(in srgb, var(--brand-blue-2) 18%, transparent); } 100% { box-shadow: none; } }
  .tia-favorites-dialog { width: min(620px, calc(100vw - 28px)); max-height: min(720px, calc(100vh - 28px)); box-sizing: border-box; padding: 0; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-3); color: var(--text-primary); box-shadow: 0 24px 60px rgba(0,0,0,.45); overflow: hidden; opacity: 1; isolation: isolate; }
  .tia-favorites-dialog::backdrop { background: rgba(0,0,0,.5); }
  .tia-favorites-dialog[open] { display: flex; flex-direction: column; }
  .tia-panel-heading { display: flex; min-width: 0; align-items: center; gap: 9px; }
  .tia-panel-heading-icon { width: 24px; height: 24px; display: inline-flex; flex: 0 0 24px; align-items: center; justify-content: center; border: 1px solid color-mix(in srgb, var(--brand-blue-2) 35%, transparent); border-radius: 7px; background: color-mix(in srgb, var(--brand-blue-2) 12%, transparent); color: var(--brand-blue-2); }
  .tia-panel-heading-copy { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
  .tia-favorites-body { display: flex; min-height: 360px; overflow: hidden; flex-direction: column; padding: 16px 18px 18px; background: var(--surface-3); }
  .tia-favorites-search-shell { display: flex; min-height: 38px; box-sizing: border-box; align-items: center; gap: 8px; padding: 0 9px 0 11px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); color: var(--muted); transition: border-color .14s ease, box-shadow .14s ease; }
  .tia-favorites-search-shell:focus-within { border-color: var(--brand-blue); box-shadow: 0 0 0 2px color-mix(in srgb,var(--brand-blue) 20%,transparent); }
  .tia-favorites-search-shell > svg { flex: 0 0 auto; }
  .tia-favorites-search-shell input { width: 100%; min-width: 0; height: 36px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--text-primary); font: inherit; font-size: 12px; }
  .tia-favorites-search-shell input::placeholder { color: var(--muted); }
  .tia-favorites-search-shell input::-webkit-search-cancel-button { display: none; }
  .tia-favorites-search-clear { appearance: none; width: 26px; height: 26px; flex: 0 0 26px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--muted); cursor: pointer; }
  .tia-favorites-search-clear[hidden] { display: none; }
  .tia-favorites-search-clear:hover { background: color-mix(in srgb,var(--brand-blue) 9%,transparent); color: var(--text-primary); }
  .tia-favorites-search-clear:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 1px; }
  .tia-favorites-summary { min-height: 15px; padding: 9px 2px 3px; color: var(--text-secondary); font-size: 10px; }
  .tia-favorites-status { min-height: 0; color: var(--text-secondary); font-size: 10.5px; }
  .tia-favorites-status:not(:empty) { margin: 2px 0 7px; padding: 7px 9px; border: 1px solid color-mix(in srgb,var(--brand-blue) 25%,var(--border)); border-radius: 7px; background: color-mix(in srgb,var(--brand-blue) 6%,transparent); }
  .tia-favorites-status.error { color: var(--brand-red-text); border-color: color-mix(in srgb,var(--brand-red) 35%,var(--border)); background: color-mix(in srgb,var(--brand-red) 7%,transparent); }
  .tia-favorites-list { display: flex; flex: 1; min-height: 0; max-height: min(510px, calc(100vh - 190px)); overflow-y: auto; flex-direction: column; gap: 8px; padding: 2px 2px 1px; scrollbar-gutter: stable; }
  .tia-favorite-empty { margin: auto; max-width: 260px; display: flex; flex-direction: column; align-items: center; gap: 9px; color: var(--text-secondary); font-size: 11.5px; line-height: 1.5; text-align: center; }
  .tia-favorite-empty > svg { width: 22px; height: 22px; color: #f2a900; }
  .tia-favorite-item { display: flex; flex: 0 0 auto; align-items: stretch; gap: 4px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); overflow: hidden; transition: border-color .14s ease, box-shadow .14s ease; }
  .tia-favorite-item:hover { border-color: color-mix(in srgb,var(--brand-blue) 48%,var(--border)); box-shadow: 0 2px 8px rgba(0,0,0,.08); }
  .tia-favorite-item-origin { width: 28px; flex: 0 0 28px; display: inline-flex; align-items: flex-start; justify-content: center; padding-top: 12px; color: var(--text-secondary); }
  .tia-favorite-item-origin.microphone { color: var(--brand-red-text); }
  .tia-favorite-item-origin svg { width: 15px; height: 15px; }
  .tia-favorite-content { display: flex; flex: 1; min-width: 0; flex-direction: column; }
  .tia-favorite-reask { flex: 1; min-width: 0; padding: 10px 8px 9px 0; border: 0; background: transparent; color: var(--text-primary); cursor: pointer; text-align: left; }
  .tia-favorite-reask:hover { background: color-mix(in srgb, var(--brand-blue-2) 7%, transparent); }
  .tia-favorite-reask:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: -2px; }
  .tia-favorite-question { display: block; font-size: 12px; font-weight: 680; line-height: 1.4; }
  .tia-favorite-meta { display: block; margin-top: 5px; color: var(--text-secondary); font-size: 9.5px; text-transform: uppercase; letter-spacing: .2px; }
  .tia-favorite-delete { align-self: center; flex: 0 0 auto; width: 28px; height: 28px; margin-right: 4px; padding: 0; border: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--muted); cursor: pointer; }
  .tia-favorite-delete:hover { color: var(--brand-red-text); background: color-mix(in srgb, var(--brand-red) 10%, transparent); }
  .tia-favorite-delete:focus-visible { outline: 2px solid var(--brand-red); outline-offset: 1px; }
  .tia-favorite-audio-actions { width: auto; margin: -3px 8px 8px 0; padding-top: 6px; border-top: 1px solid var(--gridline); }
  #tia-maximize .tia-icon-compress { display: none; }
  /* Scoped to .chat-card.tia-maximized, not .chat-dock.maximized -- #tia-maximize
     is nested inside .chat-card, which physically relocates out of .chat-dock
     while maximized (see the portal comment near chatCardHome), so a
     ".chat-dock.maximized ..." selector stops matching the moment that
     happens. .chat-card stays the true ancestor of #tia-maximize regardless
     of where the whole subtree lives, since it moves as one unit. */
  .chat-card.tia-maximized #tia-maximize .tia-icon-expand { display: none; }
  .chat-card.tia-maximized #tia-maximize .tia-icon-compress { display: block; }

  /* ---------- collapsed launcher (compact viewport default -- see
     _tia_dock.html's three-state script: collapsed/expanded/maximized) ---------- */
  .chat-card { display: none; }
  .chat-dock.expanded .chat-card { display: flex; }
  .chat-dock.expanded .chat-collapsed { display: none; }
  .chat-collapsed { display: flex; align-items: flex-start; gap: 10px; width: 100%; background: none; border: none; padding: 0; text-align: left; cursor: pointer; font-family: inherit; }
  .chat-collapsed-balloon { flex: 1; background: var(--surface-3); border: 1px solid var(--border); border-radius: 14px; border-top-left-radius: 4px; padding: 10px 12px; font-size: 12px; line-height: 1.5; color: var(--text-primary); box-shadow: 0 4px 14px rgba(0,0,0,.12); min-height: 20px; }
  .chat-collapsed:hover .chat-collapsed-balloon { border-color: var(--brand-blue-2); }

  /* ---------- one-time entrance intro (see playIntro() in _tia_dock.html) ---------- */
  /* top set inline by playIntro() to the header's own bottom edge, so the
     dark scrim covers the dashboard without ever dimming the header itself.
     Mascot and balloon are both positioned against the scrim (not the
     viewport), so they share one axis whatever the header height or the
     sidebar width; the balloon is anchored by its top edge so typing grows
     it downward instead of pushing it into the mascot. */
  .tia-intro { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 600; background: rgba(0,0,0,0); pointer-events: none; transition: background .75s ease; }
  .tia-intro.visible { display: block; }
  .tia-intro.enter { background: rgba(0,0,0,0.6); pointer-events: auto; }
  .tia-intro.docking { background: rgba(0,0,0,0); pointer-events: none; }
  .tia-intro-mascot { position: absolute; top: calc(50% - 56px); left: 50%; width: 96px; height: 96px; opacity: 0; transform: translate(-50%,-50%) scale(0.5); transition: opacity .8s ease, transform 1.2s cubic-bezier(.34,1.56,.64,1); }
  .tia-intro-mascot svg { width: 100%; height: 100%; display: block; }
  .tia-intro.enter .tia-intro-mascot { opacity: 1; transform: translate(-50%,-50%) scale(1); }
  .tia-intro.docking .tia-intro-mascot { transition: opacity .8s ease .3s, transform 1.3s cubic-bezier(.65,0,.35,1); }
  .tia-intro-balloon { position: absolute; top: calc(50% + 10px); left: 16px; right: 16px; width: fit-content; max-width: 480px; margin: 0 auto; background: var(--surface-3); border: 1px solid var(--border); border-radius: 16px; padding: 14px 20px; font-size: 14px; line-height: 1.6; color: var(--text-primary); text-align: center; box-shadow: 0 16px 40px rgba(0,0,0,.22); opacity: 0; transform: translateY(10px); transition: opacity .8s ease .4s, transform .8s ease .4s; }
  .tia-intro.enter .tia-intro-balloon { opacity: 1; transform: translateY(0); }
  .tia-intro.docking .tia-intro-balloon { opacity: 0; transform: translateY(6px); transition: opacity .5s ease; }
  @media (prefers-reduced-motion: reduce) { .tia-intro { display: none !important; } }

  /* ---------- maximize / translucent backdrop ---------- */
  .chat-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 490; }
  .chat-backdrop.visible { display: block; }
  /* Self-contained class applied directly to .chat-card by JS (relocateForMaximize),
     NOT a ".chat-dock.maximized .chat-card" descendant selector -- the card
     physically moves out of .chat-dock into .viz-root while maximized (see
     the portal comment above chatCardHome), so a descendant selector would
     stop matching entirely the moment it's relocated, and the card would
     silently lose every rule here including its own display -- confirmed
     live (that was this exact bug: card vanished, only the backdrop showed).
     display:flex must be explicit here for the same reason: the sibling
     ".chat-dock.expanded .chat-card" rule also stops matching once relocated. */
  .chat-card.tia-maximized {
    display: flex;
    /* top/height set inline by positionMaximized() in _tia_dock.html's
       script, measured off the real (variable-height, filters-panel-aware)
       header -- these are just a pre-JS/no-JS fallback so it doesn't render
       under the header for a frame before the script runs. */
    position: fixed; top: 160px; left: 50%; transform: translateX(-50%);
    width: min(720px, 92vw); height: calc(100vh - 176px); z-index: 500;
    box-shadow: 0 24px 60px rgba(0,0,0,.45);
    background-color: var(--surface-3);
    opacity: 1;
    isolation: isolate;
  }
  /* ---------- "how TIA reacts" info panel ---------- */
  /* z-index above .tia-maximized (500) and .tia-thought-bubble (650) -- this
     is meant to sit on top of the whole widget, maximized or not, since the
     button that opens it lives inside the chat head either way. */
  .tia-info-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 700; }
  .tia-info-backdrop.visible { display: block; }
  .tia-info-panel {
    display: none; position: fixed; left: 50%; transform: translateX(-50%);
    /* top/max-height set inline by positionInfoPanel() in _tia_dock.html's
       script (same live header-bottom measurement positionMaximized() uses)
       -- these are just a pre-JS/no-JS fallback, keeps it below the page
       header instead of covering it. */
    top: 160px; max-height: calc(100vh - 176px);
    width: min(1060px, 95vw); z-index: 701;
    background: var(--surface-3); border-radius: 14px; box-shadow: 0 24px 60px rgba(0,0,0,.45);
    flex-direction: column; overflow: hidden;
  }
  .tia-info-panel.visible { display: flex; }
  .tia-info-panel:focus, .incident-center-body:focus { outline: none; }
  .tia-info-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--panel-head); color: #fff; font-size: 13px; font-weight: 700; }
  .tia-info-panel-title { display: inline-flex; min-width: 0; align-items: center; gap: 9px; }
  .tia-info-panel-head .tia-panel-heading-icon { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.09); color: #dce9ff; }
  .tia-info-panel-head button { background: rgba(255,255,255,0.12); border: none; color: #fff; width: 24px; height: 24px; border-radius: 6px; cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center; }
  .tia-info-panel-head button:hover { background: rgba(255,255,255,0.22); }
  .tia-info-panel-sub { padding: 10px 16px; font-size: 11.5px; color: var(--text-secondary); border-bottom: 1px solid var(--border); }
  .tia-info-panel-body { overflow: auto; padding: 4px 16px 16px; }
  .tia-info-panel-body table { width: 100%; border-collapse: collapse; font-size: 12px; white-space: nowrap; }
  .tia-info-panel-body th { text-align: left; font-size: 10.5px; text-transform: uppercase; color: var(--text-secondary); padding: 8px 8px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface-3); }
  .tia-info-panel-body td { padding: 8px; border-bottom: 1px solid var(--border); vertical-align: top; color: var(--text-primary); }
  .tia-info-panel-body tr:last-child td { border-bottom: none; }
  .tia-info-panel-body td:first-child { font-weight: 700; }
  .tia-info-panel-body td:nth-child(2) { color: var(--text-secondary); }
  .msg.bot.error { border-color: var(--critical); color: var(--critical-text); }
  .msg.bot.typing { display: flex; gap: 4px; align-items: center; padding: 10px 12px; }
  .msg.bot.typing span { width: 5px; height: 5px; border-radius: 50%; background: var(--muted); animation: tia-typing 1s infinite ease-in-out; }
  .msg.bot.typing span:nth-child(2) { animation-delay: .15s; }
  .msg.bot.typing span:nth-child(3) { animation-delay: .3s; }
  @keyframes tia-typing { 0%, 60%, 100% { opacity: .3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-2px); } }
  @media (prefers-reduced-motion: reduce) { .msg.bot.typing span { animation: none; } }
  .typing-cursor::after { content: '▍'; display: inline-block; margin-left: 1px; color: var(--brand-blue-2); animation: tia-cursor-blink .8s step-end infinite; }
  @keyframes tia-cursor-blink { 50% { opacity: 0; } }
  /* ---------- period picker (Apple-style popover) ---------- */
  details.period-picker { position: relative; }
  details.period-picker summary { list-style: none; cursor: pointer; }
  details.period-picker summary::-webkit-details-marker { display: none; }
  details.period-picker[open] summary { background: rgba(255,255,255,0.12); }
  /* z-index:220, same reason as .instancia-menu -- the "Período" popover is
     the same floating-filter-panel pattern. */
  .period-popover {
    position: absolute; top: calc(100% + 8px); left: 0; z-index: 220;
    background: var(--surface-3, #181c24); color: var(--text-primary, #fff);
    border: 1px solid rgba(255,255,255,0.12); border-radius: 14px;
    box-shadow: 0 12px 36px rgba(0,0,0,0.45), 0 2px 8px rgba(0,0,0,0.3);
    padding: 10px; width: 300px;
    animation: ppvIn .14s ease;
  }
  @keyframes ppvIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
  .ppv-types { display: flex; gap: 3px; background: rgba(127,127,127,0.14); border-radius: 9px; padding: 3px; margin-bottom: 10px; }
  .ppv-types a { flex: 1; text-align: center; text-decoration: none; font-size: 11px; font-weight: 700; letter-spacing: .2px;
    padding: 6px 4px; border-radius: 7px; color: var(--text-secondary, #b7c0d6); transition: background .12s ease, color .12s ease; }
  .ppv-types a.active { background: var(--brand-blue-2, var(--brand-blue-2)); color: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.3); }
  .ppv-types a:hover:not(.active) { color: var(--text-primary, #fff); }
  .ppv-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; max-height: 240px; overflow-y: auto; }
  .ppv-cell { text-decoration: none; text-align: center; font-size: 12px; font-weight: 600; font-family: var(--font-mono);
    padding: 9px 4px; border-radius: 8px; color: var(--text-primary, #fff); background: rgba(127,127,127,0.10);
    transition: background .12s ease, transform .1s ease; }
  .ppv-cell:hover { background: rgba(127,127,127,0.22); }
  .ppv-cell.active { background: var(--brand-blue-2, var(--brand-blue-2)); color: #fff; }
  .ppv-empty { font-size: 12px; color: var(--muted, #7e8aa6); padding: 16px 4px; text-align: center; }

  /* ---------- geography compare cards (inside the map area) ---------- */
  .uf-compare-stack { flex: 1 1 100%; margin-top: 16px; display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; justify-content: center; gap: 10px; }
  .uf-compare-mini { flex: 1 1 140px; min-width: 130px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
  .uf-compare-mini .ud-name { font-size: 13.5px; font-weight: 800; }
  .uf-compare-mini .ud-code { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; margin-bottom: 8px; }
  .uf-compare-mini .ud-row { display: flex; justify-content: space-between; align-items: baseline; padding: 4px 0; border-top: 1px solid var(--gridline); }
  .uf-compare-mini .ud-row:first-of-type { border-top: none; }
  .uf-compare-mini .ud-label { font-size: 10px; color: var(--muted); }
  .uf-compare-mini .ud-value { font-family: var(--font-mono); font-size: 12.5px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .uf-compare-mini.uf-compare-delta { background: var(--surface-3); border-color: var(--brand-blue-2); }
  .uf-compare-mini.uf-compare-delta .ud-name { color: var(--brand-blue-2); }
  .uf-compare-close { align-self: center; background: none; border: 1px solid var(--border); color: var(--text-secondary); font-size: 11px; font-weight: 700; padding: 5px 10px; border-radius: 7px; cursor: pointer; }
  .uf-compare-close:hover { color: var(--text-primary); border-color: var(--text-secondary); }

  /* ---------- instância strip (always visible, no popover) ---------- */
  .instancia-strip { display: flex; gap: 6px; overflow-x: auto; padding: 0 0 14px; margin-top: -4px; }
  .instancia-pill { flex: 0 0 auto; text-decoration: none; font-family: var(--font-mono); font-size: 11px; font-weight: 600;
    padding: 6px 11px; border-radius: 999px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10);
    color: #dbe6f7; white-space: nowrap; }
  .instancia-pill:hover { background: rgba(255,255,255,0.14); }
  .instancia-pill.active { background: var(--brand-blue-2); border-color: var(--brand-blue-2); color: #fff; font-weight: 700; }

  /* ---------- side menu (Relevo) · "Jornada" ----------
     The product's own area. Page groups (Admin > Dashboard > Grupos de páginas) are the
     numbered steps of the analytical journey, linked by a vertical line; the current
     step's node carries the client accent. Every step collapses/expands (remembered per
     browser); Administrar is a separate step, collapsed by default. The brand collapses
     the menu to a 72 px rail of icons; below 900 px it is a drawer. Colors are the
     --sidebar-* targets (client palette, Admin > Identidade visual); also used by Admin. */
  html { --sidebar-w: 208px; }
  html.tim-sidebar-collapsed { --sidebar-w: 72px; }
  html.tim-has-sidebar .viz-root { padding-left: var(--sidebar-w); }
  .app-sidebar { --sidebar-surface: color-mix(in srgb, var(--sidebar-bg) 60%, var(--sidebar-bg-2)); position: fixed; inset: 0 auto 0 0; z-index: 240; display: flex; flex-direction: column; box-sizing: border-box; width: var(--sidebar-w); background: var(--sidebar-surface); color: var(--sidebar-text); border-right: 1px solid color-mix(in srgb, var(--sidebar-text) 8%, transparent); font-family: system-ui,-apple-system,"Segoe UI",sans-serif; -webkit-font-smoothing: antialiased; }
  .sidebar-brand { appearance: none; display: flex; align-items: center; gap: 9px; flex: none; width: 100%; height: 72px; box-sizing: border-box; margin: 0; padding: 0 16px 0 14px; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--sidebar-text) 9%, transparent); background: none; color: var(--sidebar-text); font: inherit; text-align: left; cursor: pointer; }
  .sidebar-brand:hover { background: color-mix(in srgb, var(--sidebar-mark) 6%, transparent); }
  /* The full "Serra de cordel" mark (30 px) next to the wordmark (17 px), centered. */
  .sidebar-brand .relevo-mark { display: block; flex: none; height: 30px; width: auto; }
  /* Word and V2 tag are vertically centered on the mark (the brand row is align-items: center). */
  .sidebar-brand .relevo-word { display: block; flex: none; height: 17px; width: auto; }
  .sidebar-version { flex: none; align-self: center; padding: 1px 4px; border: 1px solid color-mix(in srgb, var(--sidebar-text) 28%, transparent); border-radius: 4px; color: var(--sidebar-muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; line-height: 1.3; }
  /* One vertical axis: the summit of the Relevo mark (brand padding 14 + 71/97 of the 30 px
     mark = 36 px) sits over the centers of the step nodes (nav padding 24 + 12 = 36 px), so
     the journey signal falls straight from the summit down the line. */
  .sidebar-nav { position: relative; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 14px 8px 24px; scrollbar-width: thin; }
  /* A step: node + verb on the first line, its pages below; the line joins the nodes. */
  .sidebar-group { position: relative; padding: 0 0 10px 36px; }
  .sidebar-group::before { content: ""; position: absolute; left: 11.5px; top: 26px; bottom: 0; width: 1px; background: linear-gradient(color-mix(in srgb, var(--sidebar-muted) 40%, transparent), color-mix(in srgb, var(--sidebar-muted) 14%, transparent)); }
  .sidebar-group.is-last-step::before, .sidebar-admin::before, .sidebar-group:not(:has(.sidebar-node))::before { display: none; }
  .sidebar-group-title { appearance: none; display: flex; align-items: center; gap: 6px; width: 100%; height: 24px; box-sizing: border-box; margin: 0; padding: 0 4px 0 0; border: 0; border-radius: 6px; background: none; color: var(--sidebar-group); font: inherit; font-size: 12px; font-weight: 500; text-align: left; white-space: nowrap; cursor: pointer; }
  .sidebar-group-verb { overflow: hidden; text-overflow: ellipsis; }
  .sidebar-node { position: absolute; left: 0; top: 0; width: 24px; height: 24px; box-sizing: border-box; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--sidebar-muted) 40%, transparent); border-radius: 50%; background: var(--sidebar-surface); color: var(--sidebar-group); font: 600 9px/1 var(--font-mono); }
  .sidebar-group[data-has-active] > .sidebar-group-title { color: var(--sidebar-text); font-weight: 600; }
  .sidebar-group[data-has-active] .sidebar-node { border-color: var(--sidebar-step); background: var(--sidebar-step); color: var(--sidebar-surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sidebar-step) 18%, transparent); }
  .sidebar-chevron { flex: none; width: 10px; height: 10px; margin-left: 2px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: transform .15s ease, opacity .15s ease; }
  .sidebar-group-title:hover .sidebar-chevron, .sidebar-group-title:focus-visible .sidebar-chevron, .sidebar-group.is-collapsed .sidebar-chevron { opacity: .7; }
  .sidebar-group.is-collapsed .sidebar-chevron { transform: rotate(-90deg); }
  .sidebar-group.is-collapsed .sidebar-group-items { display: none; }
  .sidebar-group-items { padding-top: 2px; }
  /* Journey signal (_sidebar.html): after a page is chosen, its step blinks and a pulse
     runs down the line to the last step, lighting each node it passes. */
  .sidebar-node.is-launching { animation: sidebar-node-ping .8s ease-out infinite; }
  .sidebar-node.is-pinging { animation: sidebar-node-ping .6s ease-out 2; }
  .sidebar-node.is-lit { border-color: var(--sidebar-step); background: color-mix(in srgb, var(--sidebar-step) 24%, var(--sidebar-surface)); color: var(--sidebar-text); transition: background .25s ease, border-color .25s ease, color .25s ease; }
  @keyframes sidebar-node-ping {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--sidebar-step) 60%, transparent); }
    70% { box-shadow: 0 0 0 10px color-mix(in srgb, var(--sidebar-step) 0%, transparent); }
    100% { box-shadow: 0 0 0 0 transparent; }
  }
  .sidebar-signal { position: absolute; top: 0; left: 0; z-index: 3; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--sidebar-step); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sidebar-step) 25%, transparent), 0 0 12px 2px color-mix(in srgb, var(--sidebar-step) 55%, transparent); pointer-events: none; }
  .sidebar-signal::before { content: ""; position: absolute; left: 2px; bottom: 4px; width: 2px; height: 28px; border-radius: 2px; background: linear-gradient(transparent, color-mix(in srgb, var(--sidebar-step) 85%, transparent)); }
  /* A collapsed step still shows what needs attention inside it (Administrar). */
  .sidebar-group-title .sidebar-count { margin-left: auto; }
  .sidebar-group:not(.is-collapsed) .sidebar-group-title .sidebar-count { display: none; }
  .sidebar-admin { margin-top: 6px; padding-top: 12px; border-top: 1px solid color-mix(in srgb, var(--sidebar-text) 8%, transparent); }
  .sidebar-admin .sidebar-node { top: 12px; }
  .sidebar-count { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; box-sizing: border-box; padding: 0 5px; border-radius: 999px; background: var(--sidebar-accent); color: #fff; font-size: 10px; font-weight: 700; }
  .sidebar-count[hidden] { display: none; }
  .sidebar-link { position: relative; display: flex; align-items: center; gap: 10px; height: 30px; box-sizing: border-box; margin-left: -10px; padding: 0 10px; border-radius: 8px; color: color-mix(in srgb, var(--sidebar-text) 84%, transparent); font-size: 13px; font-weight: 400; text-decoration: none; white-space: nowrap; }
  .sidebar-link .nav-icon { flex: none; width: 16px; height: 16px; color: color-mix(in srgb, var(--sidebar-icon) 45%, var(--sidebar-muted)); }
  .sidebar-link:hover { color: var(--sidebar-text); background: color-mix(in srgb, var(--sidebar-text) 5%, transparent); }
  .sidebar-link.active { color: var(--sidebar-text); background: color-mix(in srgb, var(--sidebar-text) 8%, transparent); font-weight: 600; }
  .sidebar-link.active .nav-icon { color: var(--sidebar-icon); }
  .sidebar-link:focus-visible, .sidebar-toggle:focus-visible, .sidebar-brand:focus-visible, .sidebar-group-title:focus-visible { outline: 2px solid var(--sidebar-mark); outline-offset: 2px; }
  .sidebar-foot { flex: none; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 12px 12px; border-top: 1px solid color-mix(in srgb, var(--sidebar-text) 8%, transparent); }
  /* Collapse/expand: a small, discreet chevron right next to the XYLYA logo (tooltip + aria-label). */
  .sidebar-toggle { appearance: none; display: inline-flex; flex: none; align-items: center; justify-content: center; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 5px; background: none; color: var(--sidebar-muted); opacity: .7; cursor: pointer; }
  .sidebar-toggle:hover { opacity: 1; background: color-mix(in srgb, var(--sidebar-text) 5%, transparent); }
  .sidebar-toggle svg { flex: none; width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .sidebar-powered { display: flex; align-items: center; gap: 7px; padding: 0; color: var(--sidebar-muted); font-size: 9.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
  .sidebar-powered .xylya-logo { display: block; height: 11px; width: auto; }
  /* The Relevo mark is the product's, not the client's: fixed colors, never the client palette. */
  .app-sidebar .mk-mark { fill: var(--relevo-mass-on-dark); }
  .app-sidebar .mk-text { fill: var(--sidebar-text); }
  .app-sidebar .mk-lit, .app-sidebar .mk-ground { stroke: var(--sidebar-text); }
  .app-sidebar .mk-cut { stroke: var(--sidebar-surface); }
  .app-sidebar .mk-coord { stroke: var(--relevo-accent-on-dark); }
  .app-sidebar .mk-dot { fill: var(--relevo-accent-on-dark); }
  /* Rail (collapsed menu): icons only, every step's pages shown, steps as separators. */
  .tim-sidebar-collapsed .app-sidebar .relevo-word, .tim-sidebar-collapsed .app-sidebar .sidebar-label,
  .tim-sidebar-collapsed .app-sidebar .sidebar-powered-text, .tim-sidebar-collapsed .app-sidebar .sidebar-group-title,
  .tim-sidebar-collapsed .app-sidebar .sidebar-version { display: none; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-nav { padding: 10px 12px; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-group { padding: 0; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-group::before { display: none; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-group.is-collapsed .sidebar-group-items { display: block; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-group + .sidebar-group { margin-top: 6px; padding-top: 6px; border-top: 1px solid color-mix(in srgb, var(--sidebar-text) 10%, transparent); }
  .tim-sidebar-collapsed .app-sidebar .sidebar-brand { justify-content: center; padding: 0; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-link, .tim-sidebar-collapsed .app-sidebar .sidebar-toggle { justify-content: center; margin-left: 0; padding: 0; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-group[data-has-active] .sidebar-link.active .nav-icon { color: var(--sidebar-step); }
  .tim-sidebar-collapsed .app-sidebar .sidebar-foot { justify-content: center; gap: 3px; padding: 10px 0 12px; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-powered { justify-content: center; padding: 0; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-powered .xylya-logo { height: 8px; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-brand .relevo-mark { height: 30px; }
  .tim-sidebar-collapsed .app-sidebar .sidebar-link .sidebar-count { position: absolute; top: 5px; right: 12px; min-width: 8px; height: 8px; padding: 0; font-size: 0; }
  .sidebar-open-btn { display: none; appearance: none; flex: none; width: 34px; height: 34px; align-items: center; justify-content: center; padding: 0; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; background: rgba(255,255,255,.06); color: #fff; cursor: pointer; }
  .sidebar-open-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; }
  .sidebar-open-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
  .sidebar-backdrop { display: none; }
  /* The TIA intro dims the content only, like the header it already starts below. */
  html.tim-has-sidebar .tia-intro { left: var(--sidebar-w); }
  @media (max-width: 900px) {
    html.tim-has-sidebar .viz-root { padding-left: 0; }
    html.tim-has-sidebar .tia-intro { left: 0; }
    .app-sidebar { width: 272px; transform: translateX(-100%); transition: transform .2s ease; box-shadow: none; }
    .tim-sidebar-open .app-sidebar { transform: none; box-shadow: 8px 0 30px rgba(0,0,0,.35); }
    .tim-sidebar-open .sidebar-backdrop { display: block; position: fixed; inset: 0; z-index: 235; background: rgba(0,0,0,.45); }
    .sidebar-open-btn { display: inline-flex; }
    .sidebar-foot .sidebar-toggle { display: none; }
    /* The rail does not exist on phones: the drawer always shows the full journey. */
    .tim-sidebar-collapsed .app-sidebar .relevo-word, .tim-sidebar-collapsed .app-sidebar .sidebar-label,
    .tim-sidebar-collapsed .app-sidebar .sidebar-powered-text, .tim-sidebar-collapsed .app-sidebar .sidebar-version { display: revert; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-group-title { display: flex; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-nav { padding: 16px 14px 8px 24px; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-group { padding: 0 0 10px 36px; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-group::before { display: block; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-group.is-last-step::before, .tim-sidebar-collapsed .app-sidebar .sidebar-admin::before { display: none; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-group.is-collapsed .sidebar-group-items { display: none; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-group:not(.sidebar-admin) + .sidebar-group { margin-top: 0; padding-top: 0; border-top: 0; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-link { justify-content: flex-start; margin-left: -10px; padding: 0 10px; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-brand { justify-content: flex-start; padding: 0 16px 0 14px; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-brand .relevo-mark { height: 30px; }
    .tim-sidebar-collapsed .app-sidebar .sidebar-link .sidebar-count { position: static; min-width: 18px; height: 18px; padding: 0 5px; font-size: 10px; }
  }
  @media (prefers-reduced-motion: reduce) { .app-sidebar, .sidebar-chevron, .sidebar-node.is-lit { transition: none; } .sidebar-node.is-launching, .sidebar-node.is-pinging { animation: none; } .sidebar-signal { display: none; } }
  @media print { .app-sidebar, .sidebar-open-btn { display: none !important; } html.tim-has-sidebar .viz-root { padding-left: 0; } }
  .risk-subnav { display: flex; gap: 5px; overflow-x: auto; padding: 0 0 10px; }
  .risk-subnav a { flex: 0 0 auto; padding: 6px 10px; border: 1px solid var(--border); border-radius: 999px; color: var(--text-secondary); text-decoration: none; font-size: 10px; font-weight: 700; }
  .risk-subnav a.active { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
  .section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
  .section-head h2 { margin: 0; }
  .section-head .desc { margin: 3px 0 0 !important; }
  .source-badges { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
  .source-badge { display: inline-flex; align-items: center; width: max-content; max-width: 100%; padding: 3px 7px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-2); color: var(--text-secondary); font-size: 9px; font-weight: 700; white-space: nowrap; }
  .source-badge.internal { border-color: color-mix(in srgb, var(--brand-blue) 18%, transparent); background: color-mix(in srgb, var(--brand-blue) 9%, transparent); color: var(--brand-blue-text); }
  .source-badge.warn { border-color: rgba(237,161,0,.2); background: var(--warning-bg); color: var(--warning-text); }
  .source-badge.public { background: var(--good-bg); color: var(--good-text); }
  .decision-call { border-left: 4px solid var(--brand-red); background: linear-gradient(135deg,var(--surface-2),var(--surface-3)); border-radius: 10px; padding: 15px; }
  .decision-call .eyebrow { font-size: 9.5px; text-transform: uppercase; color: var(--muted); font-weight: 800; letter-spacing: .4px; }
  .decision-call h3 { font-size: 17px; margin: 6px 0; }
  .decision-call p { font-size: 11.5px; line-height: 1.55; color: var(--text-secondary); margin: 0; }
  .impact-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: 12px; }
  .impact-mini { border: 1px solid var(--border); border-radius: 8px; padding: 8px; background: var(--surface-3); }
  .impact-mini span { display: block; font-size: 8.5px; text-transform: uppercase; color: var(--muted); font-weight: 700; }
  .impact-mini b { display: block; margin-top: 4px; font: 700 14px var(--font-mono); }
  .decision-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
  .decision-actions a { text-decoration: none; }
  .layer-tabs { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 11px; }
  .layer-tab { border: 1px solid var(--border); background: var(--surface-2); color: var(--text-secondary); font-size: 9.5px; font-weight: 700; padding: 5px 8px; border-radius: 999px; cursor: pointer; }
  .layer-tab.active { background: var(--brand-blue); border-color: var(--brand-blue); color: #fff; }
  .metric-unavailable { padding: 8px; border-radius: 7px; background: var(--warning-bg); font-size: 10px; color: var(--warning-text); line-height: 1.45; }
  .persona-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
  .persona-card { border: 1px solid var(--border); border-radius: 10px; padding: 12px; background: var(--surface-2); }
  .persona-icon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--brand-blue); color: #fff; font-weight: 800; }
  .persona-card h3 { font-size: 12.5px; margin: 8px 0 4px; }
  .persona-card p { font-size: 10px; line-height: 1.45; color: var(--text-secondary); margin: 0; }
  .persona-card .lift { display: inline-block; margin-top: 8px; font: 700 11px var(--font-mono); color: var(--good-text); }
  .group-field-reason { display: block; max-width: none; margin-top: 1px; color: var(--warning-text); font-size: 8.5px; line-height: 1.2; text-transform: none; letter-spacing: 0; }
  .tile .value.value-fit { font-size: 21px; white-space: nowrap; letter-spacing: -.4px; }
  #risk-summary { margin-top: 12px; }
  .risk-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; }
  .risk-summary-tile { min-width: 0; border-top: 3px solid var(--brand-blue); }
  .risk-summary-tile.continue { border-top-color: var(--good); border-left-color: var(--good); }
  .risk-summary-tile.pause { border-top-color: var(--warning); border-left-color: var(--warning); }
  .risk-summary-tile.stop { border-top-color: var(--critical); border-left-color: var(--critical); }
  .risk-summary-tile.other { border-top-color: var(--brand-blue-2); border-left-color: var(--brand-blue-2); }
  /* Zero tiles are marked by a dashed top rule and a muted value, not opacity: dimming the
     whole tile dropped its labels below WCAG AA contrast. */
  .risk-summary-tile.is-zero { border-top-style: dashed; }
  .risk-summary-tile.is-zero .value { color: var(--muted); }
  .risk-summary-tile .meta b { color: var(--text-secondary); font-family: var(--font-mono); }
  .risk-flow { display: grid; grid-template-columns: 1fr 30px 1fr 30px 1fr; gap: 8px; align-items: stretch; margin-top: 14px; }
  .risk-step { border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); padding: 12px; }
  .risk-step .step-no { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--brand-blue); color: #fff; font: 700 9px var(--font-mono); }
  .risk-step h3 { display: inline; margin: 0 0 0 5px; font-size: 12px; }
  .flow-arrow { display: grid; place-items: center; color: var(--brand-blue-2); font-size: 22px; font-weight: 700; }
  .risk-band { display: grid; grid-template-columns: minmax(72px, auto) 1fr auto; gap: 7px; align-items: center; margin-top: 8px; padding: 7px; border-radius: 7px; background: var(--surface-3); font-size: 10px; }
  .risk-band i { height: 6px; border-radius: 4px; background: var(--good); }
  .risk-band.pause i { background: var(--warning); }
  .risk-band.stop i { background: var(--critical); }
  .risk-band.other i { background: var(--brand-blue-2); }
  .risk-band b { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
  .risk-contract { display: flex; gap: 8px; margin-top: 12px; padding: 10px 12px; border-left: 3px solid var(--brand-blue-2); border-radius: 7px; background: var(--surface-2); color: var(--text-secondary); font-size: 10px; line-height: 1.45; }
  .risk-contract b { flex: 0 0 auto; color: var(--text-primary); }
  .risk-api-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 14px; }
  .risk-api-panel { min-width: 0; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); }
  .risk-api-panel.wide { grid-column: 1 / -1; }
  .risk-api-panel .step-no { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 5px; border-radius: 50%; background: var(--brand-blue); color: #fff; font: 700 9px var(--font-mono); }
  .risk-api-table { min-width: 100%; }
  .risk-api-table tr.continue td:first-child { border-left: 3px solid var(--good); }
  .risk-api-table tr.pause td:first-child { border-left: 3px solid var(--warning); }
  .risk-api-table tr.stop td:first-child { border-left: 3px solid var(--critical); }
  .risk-api-table tr.other td:first-child { border-left: 3px solid var(--brand-blue-2); }
  .risk-api-table tr.bottleneck td:first-child { border-left: 3px solid var(--critical); }
  .risk-api-table tr.op td:first-child { border-left: 3px solid var(--warning); }
  .risk-api-table .risk-api-subtotal td { background: var(--surface-3); }
  .risk-api-table .risk-api-total td { border-top: 2px solid var(--border-strong); background: var(--surface); }
  .risk-api-primary { border-top: 3px solid var(--brand-blue); }
  .risk-support-card { border-top: 3px solid var(--brand-blue); }
  .risk-table-frame { border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); overflow-x: auto; }
  .risk-table-frame .risk-api-table { margin: 0; }
  .risk-table-frame .risk-api-table th:first-child, .risk-table-frame .risk-api-table td:first-child { padding-left: 12px; }
  .risk-table-frame .risk-api-table th:last-child, .risk-table-frame .risk-api-table td:last-child { padding-right: 12px; }
  .risk-api-legend { margin: 9px 0 0; color: var(--text-secondary); font-size: 8.5px; line-height: 1.45; }
  .risk-api-legend span { margin: 0 3px; color: var(--muted); }
  .risk-complementary { padding: 0; overflow: hidden; }
  .risk-complementary > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; cursor: pointer; list-style: none; }
  .risk-complementary > summary::-webkit-details-marker { display: none; }
  .risk-complementary > summary span { display: flex; align-items: baseline; gap: 8px; }
  .risk-complementary > summary b { font-size: 11px; }
  .risk-complementary > summary small { color: var(--muted); font-size: 8.5px; }
  .risk-complementary > summary i { color: var(--brand-blue-2); font-size: 16px; font-style: normal; transition: transform .2s ease; }
  .risk-complementary[open] > summary i { transform: rotate(180deg); }
  .risk-complementary-body { padding: 2px 15px 15px; border-top: 1px solid var(--border); }
  .risk-complementary-divider { height: 1px; margin: 15px 0; background: var(--border); }
  .risk-legacy-paths { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .risk-legacy-path { min-width: 0; padding: 10px; border: 1px solid var(--border); border-top: 3px solid var(--brand-blue); border-radius: 9px; background: var(--surface-2); }
  .risk-legacy-path.continue { border-top-color: var(--good); }
  .risk-legacy-path.pause { border-top-color: var(--warning); }
  .risk-legacy-path.stop { border-top-color: var(--critical); }
  .risk-legacy-path.other { border-top-color: var(--brand-blue-2); }
  .risk-legacy-path h3 { margin: 0; font-size: 10.5px; }
  .risk-legacy-path .big { margin: 7px 0 3px; font: 700 18px var(--font-mono); font-variant-numeric: tabular-nums; }
  .risk-legacy-path p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.4; }
  .risk-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
  .risk-card-title { margin-bottom: 8px; }
  .risk-card-title h3 { margin: 0; font-size: 12px; }
  .risk-card-title p { margin: 3px 0 0; color: var(--muted); font-size: 9.5px; }
  .risk-action { flex: 0 0 auto; padding: 7px 10px; border: 1px solid var(--brand-blue); border-radius: 7px; background: var(--brand-blue); color: #fff; font-family: inherit; font-size: 10.5px; font-weight: 700; cursor: pointer; }
  .risk-action:hover { background: var(--brand-blue-2); }
  .risk-audit-details { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); }
  .risk-audit-details summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text-primary); font-size: 11px; font-weight: 700; cursor: pointer; }
  .risk-audit-details summary span { color: var(--warning-text); font: 700 9px var(--font-mono); }
  .risk-audit-details[open] summary { margin-bottom: 8px; }
  .risk-audit-details .desc { margin-bottom: 8px; }
  .risk-rating-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
  .risk-rating-card { min-width: 0; padding: 9px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); }
  .risk-rating-card .stars, .risk-star-table .stars { white-space: nowrap; font-size: 12px; letter-spacing: 1px; }
  .risk-rating-card .stars span, .risk-star-table .stars b { color: var(--warning); font-style: normal; }
  .risk-rating-card .stars i, .risk-star-table .stars i { color: var(--gridline); font-style: normal; }
  .risk-rating-card > b { display: block; margin-top: 4px; font-size: 10px; }
  .risk-rating-card small { display: block; margin-top: 3px; color: var(--muted); font-size: 8.5px; line-height: 1.35; }

  @media (max-width: 1100px) {
    .risk-flow { grid-template-columns: 1fr; }
    .flow-arrow { transform: rotate(90deg); min-height: 18px; }
    .risk-api-grid { grid-template-columns: 1fr; }
    .risk-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .risk-api-panel.wide { grid-column: auto; }
    .risk-legacy-paths { grid-template-columns: 1fr 1fr; }
    .risk-two-col { grid-template-columns: 1fr; }
    .risk-rating-scale { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (max-width: 720px) {
    .section-head { display: block; }
    .section-head .source-badges, .section-head > .source-badge, .section-head .risk-action { margin-top: 9px; }
    .source-badges { justify-content: flex-start; }
    .risk-api-table { min-width: 560px; }
    .risk-legacy-paths { grid-template-columns: 1fr; }
    .risk-rating-scale { grid-template-columns: 1fr 1fr; }
  }

  /* Shared V1/V2 incident center, opened from the TIA options menu. Its
     modal surface deliberately mirrors "Como a TIA reage": opaque surface,
     navy header and a single neutral backdrop. */
  .incident-center-dialog { width: min(620px, calc(100vw - 28px)); max-height: min(760px, calc(100vh - 28px)); box-sizing: border-box; padding: 0; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-3); color: var(--text-primary); box-shadow: 0 24px 60px rgba(0,0,0,.45); overflow: hidden; opacity: 1; isolation: isolate; }
  .incident-center-dialog::backdrop { background: rgba(0,0,0,.5); }
  .incident-center-dialog[open] { display: flex; flex-direction: column; }
  .incident-center-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 17px 18px; background: var(--panel-head); color: #fff; }
  .incident-center-heading { display: flex; min-width: 0; align-items: center; gap: 10px; }
  .incident-center-heading-icon { width: 30px; height: 30px; display: inline-flex; flex: 0 0 30px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background: rgba(255,255,255,.09); color: #dce9ff; }
  .incident-center-heading-icon .nav-icon { margin: 0; }
  .incident-center-heading > div { min-width: 0; }
  .incident-center-header h2 { font-size: 14px; margin: 0; }
  .incident-center-header p { color: #9fb2d4; font-size: 10.5px; margin: 3px 0 0; }
  .incident-icon-button { appearance: none; width: 30px; height: 30px; flex: 0 0 30px; display: inline-grid; place-items: center; border: 1px solid var(--border); border-radius: 50%; background: var(--surface-2); color: var(--text-secondary); cursor: pointer; padding: 0; }
  .incident-center-header .incident-icon-button { color: #dce6f7; border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.08); }
  .incident-icon-button:hover { color: var(--text-primary); border-color: var(--brand-blue); }
  .incident-icon-button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  /* One header contract for every surface opened from the TIA menu. */
  .tia-favorites-head.tia-section-header,
  .tia-info-panel-head.tia-section-header,
  .incident-center-header.tia-section-header { display: flex; min-height: 58px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid rgba(255,255,255,.1); background: var(--navy); color: #fff; }
  .tia-section-header .tia-section-heading { display: flex; min-width: 0; align-items: center; gap: 10px; }
  .tia-section-header .tia-section-heading-icon { width: 30px; height: 30px; display: inline-flex; flex: 0 0 30px; align-items: center; justify-content: center; box-sizing: border-box; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background: rgba(255,255,255,.09); color: #dce9ff; }
  .tia-section-header .tia-section-heading-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
  .tia-section-header .tia-section-title { margin: 0; color: #fff; font-family: inherit; font-size: 14px; font-weight: 750; line-height: 1.15; letter-spacing: 0; }
  .tia-section-header .tia-section-heading-copy .tia-section-subtitle { margin: 0; color: #9fb2d4; font-family: inherit; font-size: 10.5px; font-weight: 500; line-height: 1.3; letter-spacing: 0; }
  .tia-section-header .tia-section-close { appearance: none; width: 28px; height: 28px; min-width: 28px; flex: 0 0 28px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: rgba(255,255,255,.08); color: #dce6f7; cursor: pointer; transition: background .14s ease, border-color .14s ease, color .14s ease; }
  .tia-section-header .tia-section-close:hover { border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.16); color: #fff; }
  .tia-section-header .tia-section-close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
  .tia-section-header .tia-section-close svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .incident-center-body { min-height: 330px; overflow-y: auto; padding: 16px 18px 18px; background: var(--surface-3); }
  .incident-center-toolbar { display: flex; gap: 8px; margin-bottom: 14px; }
  .incident-text-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); color: var(--text-primary); font: inherit; font-size: 11.5px; font-weight: 700; padding: 7px 12px; cursor: pointer; }
  .incident-text-button:hover { border-color: var(--brand-blue); }
  .incident-text-button.primary { border-color: var(--brand-blue); background: var(--brand-blue); color: #fff; }
  .incident-text-button:disabled { opacity: .55; cursor: wait; }
  .incident-center-feedback { border-radius: 8px; padding: 9px 11px; margin-bottom: 12px; font-size: 11.5px; }
  .incident-center-feedback.notice { color: var(--good-text); background: rgba(26,156,94,.09); border: 1px solid rgba(26,156,94,.28); }
  .incident-center-feedback.error { color: var(--brand-red-text); background: color-mix(in srgb, var(--brand-red) 8%, transparent); border: 1px solid color-mix(in srgb, var(--brand-red) 26%, transparent); }
  .incident-center-loading, .incident-center-empty { min-height: 190px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; text-align: center; color: var(--muted); font-size: 11.5px; }
  .incident-center-empty b { color: var(--text-primary); font-size: 12px; }
  .incident-center-empty.error { color: var(--brand-red-text); }
  .incident-user-list { display: flex; flex-direction: column; gap: 7px; }
  .incident-user-row { appearance: none; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); color: var(--text-primary); padding: 11px 12px; cursor: pointer; }
  .incident-user-row:hover, .incident-user-row.unread { border-color: color-mix(in srgb,var(--brand-blue) 55%,var(--border)); }
  .incident-user-row-main { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
  .incident-user-row-main b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; }
  .incident-user-row-main small { color: var(--muted); font-size: 9.5px; }
  .incident-user-row-side { flex: 0 0 auto; display: flex; align-items: center; gap: 5px; }
  .incident-user-row-side svg { width: 13px; height: 13px; fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .incident-user-status, .incident-user-unread { display: inline-flex; padding: 3px 6px; border-radius: 999px; border: 1px solid var(--border); font-size: 8px; font-weight: 800; letter-spacing: .25px; white-space: nowrap; }
  .incident-user-status.OPEN, .incident-user-status.IN_ANALYSIS { color: var(--brand-blue-text); }
  .incident-user-status.WAITING_USER { color: var(--warning-text); }
  .incident-user-status.RESOLVED, .incident-user-status.CLOSED { color: var(--good-text); }
  .incident-user-status.CANCELLED { color: var(--muted); }
  .incident-user-unread { color: #fff; background: var(--brand-red); border-color: var(--brand-red); }
  .incident-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .incident-form-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 11px; }
  .incident-form-field[hidden] { display: none; }
  .incident-form-field > span { font-size: 9.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; }
  .incident-form-field > span small { text-transform: none; letter-spacing: 0; }
  .incident-form-field input, .incident-form-field select, .incident-form-field textarea { box-sizing: border-box; width: 100%; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); color: var(--text-primary); font: inherit; font-size: 12px; padding: 9px 10px; }
  .incident-form-field input:not([type="file"]), .incident-form-field select { height: 38px; min-height: 38px; }
  .incident-form-field textarea { min-height: 130px; resize: vertical; line-height: 1.45; }
  .incident-form-field input:focus, .incident-form-field select:focus, .incident-form-field textarea:focus { outline: 2px solid color-mix(in srgb,var(--brand-blue) 35%,transparent); border-color: var(--brand-blue); }
  .incident-file-picker { display: flex; align-items: center; gap: 10px; min-height: 40px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); padding: 4px 6px; }
  .incident-file-button { appearance: none; flex: 0 0 auto; min-height: 30px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface-3); color: var(--text-primary); font: inherit; font-size: 11px; font-weight: 700; padding: 5px 10px; cursor: pointer; }
  .incident-file-button:hover, .incident-file-button:focus-visible { border-color: var(--brand-blue); outline: none; }
  .incident-selected-files { min-width: 0; color: var(--muted); font-size: 10.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .incident-center-form-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 10px; }
  .incident-user-detail-head { display: flex; align-items: center; gap: 10px; }
  .incident-user-detail-head > div { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
  .incident-user-detail-head > div b { color: var(--brand-blue-text); font: 800 11px var(--font-mono); }
  .incident-user-detail-head > div span { font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .incident-user-detail-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 7px; color: var(--muted); font-size: 9.5px; margin: 12px 0; }
  .incident-user-description { border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); font-size: 11.5px; line-height: 1.5; padding: 11px 12px; }
  .incident-user-attachments { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
  .incident-user-attachment { color: var(--brand-blue-text); text-decoration: none; font-size: 10px; border: 1px solid var(--border); border-radius: 7px; padding: 6px 8px; }
  .incident-user-conversation { margin-top: 17px; }
  .incident-user-conversation h3 { margin: 0 0 8px; font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; }
  .incident-user-message { width: 88%; box-sizing: border-box; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); padding: 9px 10px; margin-bottom: 7px; }
  .incident-user-message.ADMIN { width: 100%; }
  .incident-user-message.USER { margin-left: auto; border-color: color-mix(in srgb,var(--brand-blue) 40%,var(--border)); }
  .incident-user-message > div { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 8.5px; }
  .incident-user-message p { margin: 6px 0 0; font-size: 11px; line-height: 1.45; }
  .incident-user-reply { border-top: 1px solid var(--border); margin-top: 14px; padding-top: 13px; }
  .incident-user-reply textarea { min-height: 74px; }
  .incident-user-detail-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
  @media (max-width: 760px) {
    .top-badges { gap: 7px; }
    .incident-center-dialog, .tia-favorites-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
    .incident-center-body { padding: 14px 12px 16px; }
    .tia-favorites-body { min-height: min(420px, calc(100vh - 82px)); padding: 14px 12px 16px; }
    .tia-favorites-list { max-height: calc(100vh - 184px); }
    .incident-form-grid { grid-template-columns: 1fr; gap: 0; }
    .incident-user-row { align-items: flex-start; }
    .incident-user-row-side { flex-direction: column; align-items: flex-end; }
    .incident-user-unread { display: none; }
  }

  /* ---------- Market V8 comparison and governed scenarios ---------- */
  .scenario-flash { padding: 11px 14px !important; font-size: 11.5px; font-weight: 700; }
  .scenario-flash.success { border-color: color-mix(in srgb,var(--good) 35%,var(--border)); background: var(--good-bg); color: var(--good-text); }
  .scenario-flash.failure { border-color: color-mix(in srgb,var(--critical) 35%,var(--border)); background: var(--critical-bg); color: var(--critical-text); }
  .market-signature-select { display: grid; gap: 5px; max-width: 760px; margin: 0 0 14px; }
  .market-signature-select > span, .scenario-identity label > span { color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .35px; text-transform: uppercase; }
  .market-signature-select select, .scenario-identity input, .scenario-identity select, .elasticity-grid input { width: 100%; height: 34px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); color: var(--text-primary); font: 500 11px system-ui,-apple-system,"Segoe UI",sans-serif; padding: 0 9px; }
  .market-signature-select select:focus, .scenario-identity input:focus, .scenario-identity select:focus, .elasticity-grid input:focus { outline: 2px solid color-mix(in srgb,var(--brand-blue) 28%,transparent); border-color: var(--brand-blue); }
  .market-compare-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(280px,.9fr); gap: 16px; margin-top: 16px; }
  .scenario-subtitle { margin: 0 0 8px; font-size: 11.5px; }
  .market-scatter { height: 230px; position: relative; margin: 20px 8px 24px 22px; border-left: 1px solid var(--baseline); border-bottom: 1px solid var(--baseline); background: repeating-linear-gradient(to bottom,transparent 0 44px,var(--gridline) 45px); }
  .market-scatter .axis-y, .market-scatter .axis-x { position: absolute; color: var(--muted); font-size: 8px; font-weight: 700; }
  .market-scatter .axis-y { left: -19px; top: -19px; }
  .market-scatter .axis-x { right: 0; bottom: -20px; }
  .market-bubble { position: absolute; left: var(--x); bottom: var(--y); width: var(--s); height: var(--s); transform: translate(-50%,50%); display: grid; place-items: center; border: 2px solid var(--surface-3); border-radius: 50%; background: color-mix(in srgb,var(--brand-blue) 78%,transparent); color: #fff; box-shadow: 0 2px 7px rgba(0,0,0,.16); font-size: 8px; font-weight: 800; cursor: help; }
  .market-bubble.selected { z-index: 2; background: color-mix(in srgb,var(--brand-red) 82%,transparent); outline: 2px solid color-mix(in srgb,var(--brand-red) 30%,transparent); outline-offset: 2px; }
  .scenario-details { margin-top: 14px; border-top: 1px solid var(--gridline); padding-top: 10px; }
  .scenario-details summary { color: var(--brand-blue-text); font-size: 10.5px; font-weight: 700; cursor: pointer; }
  .scenario-empty { border: 1px dashed var(--baseline); border-radius: 10px; background: var(--surface-2); padding: 16px; color: var(--text-secondary); font-size: 11px; }
  .scenario-empty b { color: var(--text-primary); font-size: 12px; }
  .scenario-empty p { margin: 5px 0 0; line-height: 1.45; }
  .scenario-identity { display: grid; grid-template-columns: minmax(190px,1.2fr) minmax(150px,.7fr) minmax(220px,1.4fr); gap: 10px; margin: 12px 0; }
  .scenario-identity label { display: grid; gap: 5px; }
  .scenario-workspace { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 14px; }
  .scenario-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-content: start; align-items: start; }
  .range-control { min-width: 0; padding: 11px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); }
  .range-control[hidden] { display: none; }
  .range-control > label { display: flex; justify-content: space-between; gap: 8px; color: var(--text-primary); font-size: 10px; font-weight: 700; }
  .range-control output { color: var(--brand-blue-text); font-family: var(--font-mono); white-space: nowrap; }
  .range-control > input[type="range"] { width: 100%; margin: 10px 0 3px; accent-color: var(--brand-blue-2); }
  .range-control .ticks { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 8px; }
  .elasticity-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 9px; }
  .elasticity-grid label { display: grid; gap: 4px; color: var(--muted); font-size: 8px; }
  .elasticity-grid input { height: 30px; padding: 0 6px; font-family: var(--font-mono); }
  .scenario-result { border-radius: 11px; padding: 14px; background: linear-gradient(150deg,var(--panel-head),var(--header-bg-2)); color: #fff; }
  .scenario-result h3 { margin: 0 0 3px; color: #fff; font-size: 13px; }
  .scenario-result .small { color: #9fb2d4; font-size: 9.5px; }
  .scenario-result .bands { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 12px; }
  .scenario-result .band { padding: 8px; border-radius: 7px; background: rgba(255,255,255,.08); }
  .scenario-result .band.base { outline: 1px solid var(--brand-blue-on-dark); background: color-mix(in srgb, var(--brand-blue-2) 20%, transparent); }
  .scenario-result .band span { display: block; color: #9fb2d4; font-size: 8px; text-transform: uppercase; }
  .scenario-result .band b { display: block; margin-top: 4px; color: #fff; font: 700 12px var(--font-mono); }
  .scenario-result .impact-mini { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.08); }
  .scenario-result .impact-mini span { color: #9fb2d4; }
  .scenario-result .impact-mini b { color: #fff; }
  .scenario-result .confidence { margin-top: 10px; color: #b8c8df; font-size: 9px; line-height: 1.45; }
  .decision-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
  .decision-workflow-list { display: grid; gap: 8px; }
  .decision-workflow-item { min-width: 0; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); overflow: hidden; }
  .decision-workflow-item > summary { display: flex; min-height: 42px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; color: var(--text-primary); cursor: pointer; list-style: none; }
  .decision-workflow-item > summary::-webkit-details-marker { display: none; }
  .decision-workflow-item > summary::after { content: "▾"; flex: none; color: var(--muted); font-size: 9px; }
  .decision-workflow-item[open] > summary::after { content: "▴"; }
  .decision-workflow-item > summary > span:first-child { display: grid; min-width: 0; gap: 2px; }
  .decision-workflow-item > summary b { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
  .decision-workflow-item > summary small { color: var(--muted); font-size: 8.5px; }
  .decision-workflow-panel { padding: 11px; border-top: 1px solid var(--gridline); }
  .decision-workflow-panel > p { margin: 0; color: var(--text-secondary); font-size: 10.5px; line-height: 1.5; }
  .decision-edit-form, .decision-review-form { display: grid; gap: 8px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--gridline); }
  .decision-call .scenario-form-grid, .decision-edit-form .scenario-form-grid, .decision-review-form .scenario-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
  .decision-edit-form .scenario-form-grid { grid-template-columns: minmax(180px,1.3fr) minmax(150px,.8fr) minmax(135px,.6fr); margin-top: 0; }
  .decision-call .scenario-form-grid label, .decision-edit-form label, .decision-review-form label { display: grid; min-width: 0; gap: 4px; color: var(--muted); font-size: 8.5px; font-weight: 750; letter-spacing: .25px; text-transform: uppercase; }
  .decision-call .scenario-form-grid input, .decision-call .scenario-form-grid select, .decision-edit-form input, .decision-edit-form select, .decision-edit-form textarea, .decision-review-form input { box-sizing: border-box; width: 100%; height: 32px; min-height: 32px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface-3); color: var(--text-primary); padding: 6px 8px; font: 500 10.5px system-ui,-apple-system,"Segoe UI",sans-serif; line-height: 1.3; text-transform: none; }
  .decision-call .scenario-form-grid select, .decision-edit-form select { appearance: none; -webkit-appearance: none; padding-right: 24px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238a93ab' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 8px center; }
  .decision-edit-form textarea { height: auto; min-height: 62px; resize: vertical; line-height: 1.4; }
  .date-field-with-icon { position: relative; display: block; }
  .date-field-with-icon .due-date-text { padding-right: 28px; }
  .date-field-with-icon input.due-date-source { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; min-height: 0; padding: 0; border: 0; }
  .date-field-with-icon .calendar-btn { appearance: none; position: absolute; top: 50%; right: 4px; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); cursor: pointer; padding: 0; }
  .date-field-with-icon .calendar-btn:hover, .date-field-with-icon .calendar-btn:focus-visible { color: var(--text-primary); background: var(--surface-2); outline: none; }
  .decision-call .scenario-form-grid input:focus, .decision-call .scenario-form-grid select:focus, .decision-edit-form input:focus, .decision-edit-form select:focus, .decision-edit-form textarea:focus, .decision-review-form input:focus { border-color: var(--brand-blue); outline: 2px solid color-mix(in srgb,var(--brand-blue) 25%,transparent); }
  .decision-actions .btn-primary, .decision-actions .btn-secondary { appearance: none; display: inline-flex; min-height: 30px; align-items: center; justify-content: center; border-radius: 7px; padding: 6px 10px; font: 700 9.5px system-ui,-apple-system,"Segoe UI",sans-serif; cursor: pointer; }
  .decision-actions .btn-primary { border: 1px solid var(--button-primary); background: var(--button-primary); color: #fff; }
  .decision-actions .btn-secondary { border: 1px solid var(--border); background: var(--surface-3); color: var(--text-primary); }
  .decision-actions .btn-primary:hover, .decision-actions .btn-primary:focus-visible { background: var(--brand-blue-2); outline: none; }
  .decision-actions .btn-secondary:hover, .decision-actions .btn-secondary:focus-visible { border-color: var(--brand-blue); outline: none; }
  .scenario-primary, .scenario-secondary { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 30px; border-radius: 7px; font: 700 9.5px system-ui,-apple-system,"Segoe UI",sans-serif; text-decoration: none; cursor: pointer; }
  .scenario-primary { width: 100%; border: 1px solid #fff; background: #fff; color: var(--navy); padding: 6px 10px; }
  .scenario-primary:disabled { opacity: .55; cursor: not-allowed; }
  .scenario-secondary { border: 1px solid var(--border); background: var(--surface-2); color: var(--text-primary); padding: 5px 8px; }
  .scenario-secondary:hover, .scenario-secondary:focus-visible { border-color: var(--brand-blue); outline: none; }
  .scenario-open-card { border: 1px solid color-mix(in srgb,var(--brand-blue) 24%,var(--border)); border-radius: 10px; background: color-mix(in srgb,var(--brand-blue) 4%,var(--surface-3)); padding: 12px; margin-bottom: 13px; }
  .scenario-open-card h3 { margin: 5px 0 3px; font-size: 13px; }
  .scenario-open-card p { margin: 0; color: var(--text-secondary); font-size: 10px; }
  .scenario-open-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin-top: 10px; }
  .scenario-open-metrics span { padding: 7px; border-radius: 7px; background: var(--surface-2); color: var(--muted); font-size: 8px; text-transform: uppercase; }
  .scenario-open-metrics b { display: block; margin-top: 3px; color: var(--text-primary); font: 700 10.5px var(--font-mono); text-transform: none; }
  .scenario-status { display: inline-flex; width: max-content; padding: 3px 7px; border-radius: 999px; background: var(--surface-2); color: var(--text-secondary); font-size: 8.5px; font-style: normal; font-weight: 750; white-space: nowrap; }
  .scenario-status.approved { background: var(--good-bg); color: var(--good-text); }
  .scenario-status.submitted { background: var(--warning-bg); color: var(--warning-text); }
  .scenario-status.rejected { background: var(--critical-bg); color: var(--critical-text); }
  .scenario-status.retired { opacity: .65; }
  .saved-row { display: grid; grid-template-columns: minmax(180px,1.35fr) minmax(90px,.65fr) minmax(130px,.85fr) minmax(100px,.7fr) minmax(105px,.75fr) minmax(150px,auto); gap: 8px; align-items: center; padding: 9px 4px; border-top: 1px solid var(--gridline); font-size: 10px; }
  .saved-row.head { border-top: 0; color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; }
  .saved-row b { font-family: var(--font-mono); }
  .saved-row small { color: var(--muted); font-size: 8.5px; }
  .scenario-responsible { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .scenario-row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
  .scenario-row-actions form { margin: 0; }
  @media (max-width: 1050px) {
    .market-compare-grid, .scenario-workspace { grid-template-columns: 1fr; }
    .saved-row { grid-template-columns: 1.2fr .7fr .8fr .8fr; }
    .saved-row > :nth-child(5), .saved-row > :nth-child(6) { grid-column: span 2; }
  }
  @media (max-width: 700px) {
    .scenario-identity, .scenario-controls, .scenario-open-metrics, .decision-call .scenario-form-grid, .decision-edit-form .scenario-form-grid, .decision-review-form .scenario-form-grid { grid-template-columns: 1fr; }
    .saved-row { grid-template-columns: 1fr 1fr; }
    .saved-row.head { display: none; }
    .saved-row > :nth-child(5), .saved-row > :nth-child(6) { grid-column: auto; }
    .scenario-row-actions { justify-content: flex-start; }
  }


  /* TIA mascot: the inline SVGs keep the original colors as attributes (fallback); these
     rules repaint them with the identity colors (Admin > Dashboard > Identidade visual). */
  svg[class^="tia-mascot"] [fill="#e80036" i] { fill: var(--mascot-accent); }
  /* Three hair streaks (theme "Mascote: mechas"); by default the hair color itself, so unseen. */
  svg[class^="tia-mascot"] .tia-mascot-streaks { stroke: var(--mascot-streak); }
  svg[class^="tia-mascot"] [stroke="#e80036" i] { stroke: var(--mascot-accent); }
  svg[class^="tia-mascot"] [fill="#0057b8" i] { fill: var(--mascot-primary); }
  svg[class^="tia-mascot"] [stroke="#0057b8" i] { stroke: var(--mascot-primary); }
  svg[class^="tia-mascot"] [fill="#071d3d" i] { fill: var(--mascot-ink); }
  svg[class^="tia-mascot"] [stroke="#071d3d" i] { stroke: var(--mascot-ink); }
  svg[class^="tia-mascot"] [fill="#f0be93" i] { fill: var(--mascot-skin); }
  svg[class^="tia-mascot"] [stroke="#f0be93" i] { stroke: var(--mascot-skin); }
  svg[class^="tia-mascot"] [fill="#e6ab7a" i] { fill: var(--mascot-skin-shadow); }
  svg[class^="tia-mascot"] [stroke="#e6ab7a" i] { stroke: var(--mascot-skin-shadow); }
  svg[class^="tia-mascot"] [fill="#a9633f" i] { fill: var(--mascot-skin-line); }
  svg[class^="tia-mascot"] [stroke="#a9633f" i] { stroke: var(--mascot-skin-line); }
  svg[class^="tia-mascot"] [fill="#c9ccd2" i] { fill: var(--mascot-hair); }
  svg[class^="tia-mascot"] [stroke="#c9ccd2" i] { stroke: var(--mascot-hair); }
  svg[class^="tia-mascot"] [fill="#e3e6ea" i] { fill: var(--mascot-hair-light); }
  svg[class^="tia-mascot"] [stroke="#e3e6ea" i] { stroke: var(--mascot-hair-light); }
  svg[class^="tia-mascot"] [fill="#d7dae0" i] { fill: var(--mascot-hair-mid); }
  svg[class^="tia-mascot"] [stroke="#d7dae0" i] { stroke: var(--mascot-hair-mid); }
  svg[class^="tia-mascot"] [fill="#8a8f9c" i] { fill: var(--mascot-hair-line); }
  svg[class^="tia-mascot"] [stroke="#8a8f9c" i] { stroke: var(--mascot-hair-line); }
  svg[class^="tia-mascot"] [fill="#ff8fa3" i] { fill: var(--mascot-cheeks); }
  svg[class^="tia-mascot"] [stroke="#ff8fa3" i] { stroke: var(--mascot-cheeks); }
  svg[class^="tia-mascot"] [fill="#5a4632" i] { fill: var(--mascot-face-lines); }
  svg[class^="tia-mascot"] [stroke="#5a4632" i] { stroke: var(--mascot-face-lines); }
  svg[class^="tia-mascot"] [fill="#fab219" i] { fill: var(--mascot-sparkle); }
  svg[class^="tia-mascot"] [stroke="#fab219" i] { stroke: var(--mascot-sparkle); }

  /* Header: data cutoff in two lines (date, then time and zone), the user menu's height. */
  .update-badge-stacked { height: 44px; box-sizing: border-box; padding: 0 16px 0 14px; gap: 9px; }
  .update-badge-text { display: flex; flex-direction: column; gap: 2px; line-height: 1.1; }
  .update-badge-date { font-size: 11px; font-weight: 700; }
  .update-badge-time { font-size: 10px; font-weight: 600; opacity: .82; }
  /* Header user menu (design "A", 02/10/2026): the client's header colors (theme targets), so
     each installation follows its own brand. Behaviour: static/js/user_menu.js. */
  .user-menu { position: relative; }
  header.top.user-menu-open { z-index: 700; }
  .user-menu-trigger { display: flex; align-items: center; gap: 8px; height: 44px; box-sizing: border-box; padding: 0 12px 0 6px; border-radius: 999px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.18); color: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
  .user-menu-trigger:hover { background: rgba(255,255,255,0.12); }
  .user-menu-trigger[aria-expanded="true"] { background: rgba(255,255,255,0.16); border-color: color-mix(in srgb, var(--brand-blue-on-dark) 60%, transparent); }
  .user-menu-trigger:focus-visible, .user-menu-item:focus-visible, .user-profile-btn:focus-visible, .user-profile-close:focus-visible { outline: 2px solid var(--brand-blue-on-dark); outline-offset: 2px; }
  .user-menu-chevron { color: var(--sidebar-muted); transition: transform .15s ease; }
  .user-menu-trigger[aria-expanded="true"] .user-menu-chevron { transform: rotate(180deg); color: #fff; }
  .user-avatar { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; background: color-mix(in srgb, var(--brand-blue-on-dark) 24%, var(--header-bg)); border: 1px solid color-mix(in srgb, var(--brand-blue-on-dark) 55%, transparent); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; }
  .user-avatar-lg { width: 46px; height: 46px; font-size: 15px; }
  .user-phone-dot { position: absolute; right: -2px; bottom: -1px; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--header-bg); box-sizing: content-box; }
  .user-phone-dot.unverified, .user-phone-state.unverified .user-phone-state-dot { background: #f5a524; }
  .user-phone-dot.verified, .user-phone-state.verified .user-phone-state-dot { background: #3fd23f; }
  .user-menu-panel { position: absolute; top: calc(100% + 10px); right: 0; width: 340px; background: var(--header-bg-2); color: #fff; border: 1px solid rgba(255,255,255,0.12); border-radius: 14px; box-shadow: 0 22px 54px rgba(4,8,22,0.5), 0 2px 8px rgba(4,8,22,0.3); z-index: 260; text-align: left; }
  .user-menu-panel::before { content: ""; position: absolute; top: -7px; right: 54px; width: 12px; height: 12px; background: var(--header-bg-2); border-left: 1px solid rgba(255,255,255,0.12); border-top: 1px solid rgba(255,255,255,0.12); transform: rotate(45deg); }
  .user-menu-panel[hidden] { display: none; }
  .user-menu-identity { display: flex; align-items: center; gap: 12px; padding: 18px 18px 14px; }
  .user-menu-who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
  .user-menu-fullname { font-size: 14px; font-weight: 700; }
  .user-menu-email { font-size: 12px; color: var(--sidebar-text); opacity: .85; overflow: hidden; text-overflow: ellipsis; }
  .user-menu-tags { display: flex; gap: 6px; margin-top: 4px; flex-wrap: wrap; }
  .user-tag { font-size: 10.5px; font-weight: 700; padding: 3px 8px; border-radius: 999px; }
  .user-tag.role { color: color-mix(in srgb, var(--brand-blue-on-dark) 70%, #fff); background: color-mix(in srgb, var(--brand-blue-on-dark) 16%, transparent); }
  .user-tag.mfa { color: #6bdc6b; background: rgba(11,163,11,0.16); }
  .user-menu-phone { display: flex; align-items: center; gap: 10px; margin: 0 12px 12px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,0.06); color: var(--sidebar-muted); }
  .user-menu-phone-text { display: flex; flex-direction: column; gap: 2px; }
  .user-menu-phone-label { font-size: 10.5px; }
  .user-menu-phone-number { font-family: var(--font-mono); font-size: 12.5px; font-weight: 600; color: #fff; }
  .user-phone-state { margin-left: auto; display: flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 700; padding: 4px 8px; border-radius: 999px; white-space: nowrap; }
  .user-phone-state-dot { width: 7px; height: 7px; border-radius: 50%; }
  .user-phone-state.unverified { color: #ffd28a; background: rgba(245,165,36,0.16); }
  .user-phone-state.verified { color: #6bdc6b; background: rgba(11,163,11,0.16); }
  .user-menu-sep { height: 1px; background: rgba(255,255,255,0.10); }
  .user-menu-items { display: flex; flex-direction: column; padding: 6px; }
  .user-menu-item { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; box-sizing: border-box; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: #fff; font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
  .user-menu-item svg { flex: none; color: var(--sidebar-muted); }
  .user-menu-item svg.lead { color: color-mix(in srgb, var(--brand-blue-on-dark) 70%, #fff); }
  .user-menu-item:hover:not([disabled]), .user-menu-item:focus-visible { background: rgba(255,255,255,0.07); color: #fff; text-decoration: none; }
  .user-menu-item[disabled] { opacity: .5; cursor: default; }
  .user-menu-item-text { display: flex; flex-direction: column; gap: 2px; }
  .user-menu-item-text .t { font-size: 13px; font-weight: 600; }
  .user-menu-item-text .s { font-size: 11.5px; color: var(--sidebar-muted); }
  .user-menu-item.logout { min-height: 46px; color: #ff8a9f; }
  .user-menu-item.logout svg { color: #ff8a9f; }
  .user-menu-foot { display: flex; align-items: center; gap: 8px; padding: 11px 18px; background: rgba(0,0,0,0.18); border-radius: 0 0 14px 14px; font-size: 11px; color: var(--sidebar-muted); }
  /* Meu cadastro: a light dialog over the page (follows the light/dark theme). */
  .user-profile-dialog { border: 0; padding: 0; border-radius: 16px; width: min(560px, calc(100vw - 32px)); background: var(--surface-3); color: var(--text-primary); box-shadow: 0 30px 80px rgba(4,8,22,0.45); }
  .user-profile-dialog::backdrop { background: rgba(9,14,34,0.5); }
  .user-profile-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 24px 20px 4px 28px; }
  .user-profile-head h2 { margin: 0 0 6px; font-size: 20px; }
  .user-profile-head p { margin: 0; font-size: 13px; color: var(--text-secondary); }
  .user-profile-close { width: 44px; height: 44px; flex: none; border: 0; border-radius: 10px; background: transparent; color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center; }
  .user-profile-body { display: flex; flex-direction: column; gap: 16px; padding: 18px 28px 8px; }
  .user-profile-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .user-profile-field { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 600; color: var(--text-secondary); }
  .user-profile-field small { font-size: 11.5px; font-weight: 400; color: var(--muted); }
  .user-profile-field input, .user-profile-field select { height: 44px; box-sizing: border-box; padding: 0 12px; border: 1px solid color-mix(in srgb, var(--text-primary) 20%, transparent); border-radius: 9px; background: var(--surface-3); color: var(--text-primary); font: inherit; font-size: 14px; font-weight: 400; }
  .user-profile-field input:focus, .user-profile-field select:focus { outline: 2px solid var(--button-primary); outline-offset: 0; border-color: transparent; }
  .user-profile-field input:disabled { border-style: dashed; color: var(--muted); background: color-mix(in srgb, var(--text-primary) 4%, var(--surface-3)); }
  .user-profile-label-row { display: flex; align-items: center; justify-content: space-between; }
  .user-profile-locked { display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 700; color: var(--muted); background: color-mix(in srgb, var(--text-primary) 6%, transparent); padding: 3px 8px; border-radius: 999px; }
  .user-profile-phone-row { display: flex; gap: 8px; }
  .user-profile-phone-row select { width: 190px; flex: none; }
  .user-profile-phone-row input { flex: 1; min-width: 0; font-family: var(--font-mono); }
  .user-profile-phone-state { font-weight: 600 !important; }
  .user-profile-phone-state.unverified { color: #9a6300 !important; }
  .user-profile-phone-state.verified { color: var(--good-text) !important; }
  .user-profile-status { margin: 0; min-height: 18px; font-size: 12.5px; }
  .user-profile-status.error { color: var(--brand-red-text); }
  .user-profile-status.ok { color: var(--good-text); }
  .user-profile-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 28px 20px; border-top: 1px solid color-mix(in srgb, var(--text-primary) 8%, transparent); }
  .user-profile-btn { height: 44px; padding: 0 18px; border-radius: 9px; font: inherit; font-size: 13.5px; font-weight: 700; cursor: pointer; }
  .user-profile-btn.ghost { background: transparent; color: var(--text-primary); border: 1px solid color-mix(in srgb, var(--text-primary) 20%, transparent); }
  .user-profile-btn.primary { background: var(--button-primary); color: #fff; border: 0; }
  .user-profile-btn[disabled] { opacity: .6; cursor: default; }
  @media (max-width: 640px) { .user-profile-row { grid-template-columns: minmax(0, 1fr); } .user-profile-phone-row select { width: 130px; } .user-menu-name { display: none; } }
