/* Production portal CSS from angelus-app/src/app/globals.css.
 * Source SHA-256: 46e152514081343538991e0c4995e05fe4f4dc8eade8ddc42383ef6e9d431802
 * Regenerate: node seed/sync-portal-styles.js
 * Portal selectors, cascade layers, media rules and keyframes retained.
 */
:root {
  --prod-color-0: #7a2525;
  --prod-color-1: #f4e8e8;
  --prod-color-2: #2a4a7f;
  --prod-color-3: #e8eef7;
  --prod-color-4: #2f6b3d;
  --prod-color-5: #e8f1ea;
  --prod-color-6: #5a3a7a;
  --prod-color-7: #eee7f4;
  --prod-color-8: #4a2d66;
  --prod-color-9: #b07a1a;
  --prod-color-10: #f7efdd;
  --prod-color-11: #edf0f4;
  --prod-color-12: #ffffff;
  --prod-color-13: #f5f6f8;
  --prod-color-14: #e3e6ea;
  --prod-color-15: #e7e9ee;
  --prod-color-16: #d3d7df;
  --prod-color-17: #1b1d22;
  --prod-color-18: #444953;
  --prod-color-19: #6b7280;
  --prod-color-20: #131519;
  --prod-color-21: #1b1e24;
  --prod-color-22: #23262e;
  --prod-color-23: #2c303a;
  --prod-color-24: #2a2e37;
  --prod-color-25: #3a3f4b;
  --prod-color-26: #e8eaef;
  --prod-color-27: #b4bac5;
  --prod-color-28: #868d9b;
  --prod-color-29: #8a6cba;
  --prod-color-30: #2a2342;
  --prod-color-31: #9a7eca;
  --prod-color-32: #e07a7a;
  --prod-color-33: #3a2323;
  --prod-color-34: #6f9be0;
  --prod-color-35: #1d2840;
  --prod-color-36: #5bb87a;
  --prod-color-37: #1b2a20;
  --prod-color-38: #d6a94a;
  --prod-color-39: #2c2615;
  --prod-color-40: #f0f2f2;
  --prod-color-41: #fbfcfc;
  --prod-color-42: #e5e9e8;
  --prod-color-43: #d4d9d8;
  --prod-color-44: #b7bfbd;
  --prod-color-45: #20272e;
  --prod-color-46: #515b64;
  --prod-color-47: #7a838b;
  --prod-color-48: #a45a43;
  --prod-color-49: #2d5277;
  --prod-color-50: #244665;
  --prod-color-51: #e4ebf0;
  --prod-color-52: #687147;
  --prod-color-53: #e8ebdf;
  --prod-color-54: #dfe7eb;
  --prod-color-55: #cfdce3;
  --prod-color-56: #151a1f;
  --prod-color-57: #293138;
  --prod-color-58: #323b42;
  --prod-color-59: #f2f3ef;
  --prod-color-60: #cbd1d3;
  --prod-color-61: #98a2a7;
  --prod-color-62: #aeb6ba;
  --prod-color-63: #9ba5aa;
  --prod-color-64: #909a9f;
  --prod-color-65: #7d878c;
  --prod-color-66: #cf8268;
  --prod-color-67: #83a8c8;
  --prod-color-68: #9bbbd5;
  --prod-color-69: #9ca878;
  --prod-color-70: #252c20;
  --prod-color-71: #0d1420;
  --prod-color-72: #11161a;
  --prod-color-73: #304455;
  --prod-color-74: #25343f;
  --prod-color-75: #0f171d;
  --prod-color-76: #11171c;
  --prod-color-77: #26241f;
  --prod-color-78: #3d3a33;
  --prod-color-79: #eae7dc;
  --prod-color-80: #dcd8ca;
  --prod-color-81: #cfc7b6;
  --prod-color-82: #ded8c9;
  --prod-color-83: #14100b;
  --prod-color-84: #33302a;
  --prod-color-85: #22201b;
  --prod-color-86: #252d34;
  --prod-color-87: #f4f5f1;
  --prod-color-88: #d7dbdc;
  --prod-color-89: #9fa8ac;
  --prod-color-90: #7f898e;
  --prod-color-91: #fff;
  --prod-color-92: #707951;
  --prod-color-93: #12283d;
  --prod-color-94: #183a58;
  --prod-color-95: #102538;
  --prod-color-96: #000;
  --prod-color-97: #e2aa90;
  --prod-color-98: #173a59;
  --prod-color-99: #e11d48;
  --prod-color-100: #be123c;
}
:root {
  /* Brand — the only strong color in default body content. Reserve for
     the wordmark, primary CTAs, and the underline accent under H1s. */
  --angelus-red: var(--prod-color-0);
  --angelus-red-soft: var(--prod-color-1);

  /* Accent colors — map to a domain (audience/service/tag), not decoration. */
  --deep-blue: var(--prod-color-2);
  --deep-blue-soft: var(--prod-color-3);
  --forest-green: var(--prod-color-4);
  --forest-green-soft: var(--prod-color-5);
  --royal-violet: var(--prod-color-6);
  --royal-violet-soft: var(--prod-color-7);
  --royal-violet-hover: var(--prod-color-8);
  --amber-gold: var(--prod-color-9);
  --amber-gold-soft: var(--prod-color-10);

  /* Foregrounds for solid semantic fills. These resolve through the active
     paper token except gold, whose light fill requires dark ink in both themes. */
  --on-ac: var(--paper);
  --on-danger: var(--paper);
  --on-forest: var(--paper);
  --on-gold: color-mix(in srgb, var(--ink) 70%, black);

  /* Neutrals — cool, clean, internal-app palette (departs from the website's
     warm cream on purpose: a crisp white workspace is easier to live in all day).
     `warm-stone` keeps its name for compatibility but is now a cool light gray
     used for secondary surfaces, table headers, and hover states. */
  --paper: var(--prod-color-11);        /* page canvas — softly tinted so white cards lift off it (figure/ground contrast, the way dark mode already does it) */
  --surface: var(--prod-color-12);      /* raised surfaces: cards, inputs, panels — pure white to pop on the tinted canvas */
  --warm-stone: var(--prod-color-13);
  --stone-gray: var(--prod-color-14);
  --border: var(--prod-color-15);
  --border-strong: var(--prod-color-16);

  --ink: var(--prod-color-17);
  --ink-2: var(--prod-color-18);
  /* Darkened from #767c88 to reach WCAG AA (~4.9:1 on white) for small/secondary text. */
  --ink-3: var(--prod-color-19);

  color-scheme: light;

  /* Radii */
  --radius-sm: 6px;
  --radius-base: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  /* Shadows — cool-toned, a touch more present so cards read on a white canvas. */
  --shadow-sm: 0 1px 2px rgba(20, 23, 33, 0.05);
  --shadow-base: 0 4px 16px rgba(20, 23, 33, 0.07);
  --shadow-lg: 0 12px 32px rgba(20, 23, 33, 0.10);

  /* Motion — the app's one easing curve and three speeds (the motion law in
     docs/design-language.md). The curve is the website's shared decelerate
     ease, so brand motion is continuous across surfaces. These never flip
     with theme or skin; defined once here so portals and every scope inherit. */
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --dur-1: 120ms; /* micro: press, hover tint, focus ring */
  --dur-2: 200ms; /* standard: hover lift, tab ink, chip/backdrop state */
  --dur-3: 320ms; /* structural: overlay enter, collapse, toast */

  /* Type scale — the seven steps (the typography law in docs/design-language.md).
     Like motion, these never flip with theme or skin; defined once here so portals
     and every scope inherit. Grounded in real usage: 12px is the operator workhorse.
     NOTHING renders below --type-micro, and --type-micro is for uppercase, letter-
     spaced labels ONLY — differentiation there comes from caps/tracking/color, not
     from shrinking text. Routine reading text is 12-14px.

     Deliberately prefixed `--type-*`, NOT `--text-*`: Tailwind already owns
     `text-xs`/`text-sm`/… (2,188 and 1,772 call sites) at its OWN values, and a
     same-named token would read as those utilities while meaning something else.
     These live at :root, outside `@theme`, so they generate no utilities and
     override nothing. Use them as `font-size: var(--type-sm)` in CSS, or
     `text-[length:var(--type-sm)]` from Tailwind. */
  --type-nano: 9px;   /* exceptional compact marks/chips only; never prose or controls */
  --type-micro: 10px; /* uppercase eyebrows + micro-labels ONLY (never routine text) */
  --type-sm: 12px;    /* the workhorse: dense operator text, table cells, values */
  --type-base: 13px;  /* comfortable body / default reading */
  --type-md: 14px;    /* emphasis, lead-in copy */
  --type-lg: 16px;    /* card + subsection headings */
  --type-xl: 20px;    /* section headings, KPI figures */
  --type-2xl: 24px;   /* page titles, hero figures */

  /* Leading — size and leading are one decision; a legible size at a reading
     leading is not compact. The operator shell runs tight so raising text to the
     12px floor COSTS no vertical space: 11px x 1.55 = 17.05px per line, whereas
     12px x 1.4 = 16.8px — bigger text, less height. Prose surfaces (portal, public,
     long-form) keep the reading leading. */
  --leading-ui: 1.4;    /* operator surfaces: tables, rows, panels, chrome */
  --leading-read: 1.55; /* prose: portal, marketing, long-form copy */

  /* Space scale — the same story as type: spacing was never tokenized either, so
     5,102 gap/padding/margin values were each chosen by eye across 55 distinct
     numbers (2,3,4,5,6,7,8,9,10,11,12,13,14…) — every integer in play, no rhythm.
     The steps below are PROGRESSIVE, which is what makes them a scale rather than
     "any even number": 2px apart while small (dense chrome needs fine control),
     4px through the mid range, 8px+ at layout scale. 60% of existing usage already
     lands on them. The two big migrations are 10px -> --space-sm|md and
     14px -> --space-md|lg. */
  --space-0: 0;
  --space-3xs: 2px;
  --space-2xs: 4px;
  --space-xs: 6px;
  --space-sm: 8px;   /* the most-used step: row gaps, chip padding, tight stacks */
  --space-md: 12px;  /* card padding, section gaps */
  --space-lg: 16px;  /* panel padding, group separation */
  --space-xl: 24px;  /* major section separation */
  --space-2xl: 32px; /* page-level blocks */
  --space-3xl: 48px; /* hero / page margins */
}
.dark {
  color-scheme: dark;

  --paper: var(--prod-color-20);        /* canvas */
  --surface: var(--prod-color-21);      /* cards, inputs, panels */
  --warm-stone: var(--prod-color-22);   /* secondary surfaces, table headers, hovers */
  --stone-gray: var(--prod-color-23);
  --border: var(--prod-color-24);
  --border-strong: var(--prod-color-25);

  --ink: var(--prod-color-26);
  --ink-2: var(--prod-color-27);
  --ink-3: var(--prod-color-28);

  /* Accents — lifted for contrast on dark; solids keep white text. */
  --royal-violet: var(--prod-color-29);
  --royal-violet-soft: var(--prod-color-30);
  --royal-violet-hover: var(--prod-color-31);
  --angelus-red: var(--prod-color-32);
  --angelus-red-soft: var(--prod-color-33);
  --deep-blue: var(--prod-color-34);
  --deep-blue-soft: var(--prod-color-35);
  --forest-green: var(--prod-color-36);
  --forest-green-soft: var(--prod-color-37);
  --amber-gold: var(--prod-color-38);
  --amber-gold-soft: var(--prod-color-39);
  --on-gold: var(--paper);

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-base: 0 4px 16px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.55);
}
.portal-skin {
  color-scheme: light;

  /* Approved Q portal contract: cool canvas, clean paper, and hard hairlines. */
  --paper: var(--prod-color-40);
  --surface: var(--prod-color-41);
  --warm-stone: var(--prod-color-42);
  --stone-gray: var(--prod-color-42);
  --border: var(--prod-color-43);
  --border-strong: var(--prod-color-44);

  --ink: var(--prod-color-45);
  --ink-2: var(--prod-color-46);
  --ink-3: var(--prod-color-47);
  --portal-dim: var(--prod-color-46);
  --portal-label: var(--prod-color-47);
  --portal-faint: var(--prod-color-47);
  --portal-faintest: var(--prod-color-47);
  --terra: var(--prod-color-48);
  --angelus-red: var(--terra);
  --angelus-red-soft: rgba(164, 90, 67, 0.10);

  /* Deep-blue accent. Every semantic token resolves to it, so the vocabulary is blue,
     not gold — one accent, used sparingly (wordmark, active nav, CTAs, key figures). */
  --accent: var(--prod-color-49);
  --accent-2: var(--prod-color-50);
  --accent-soft: var(--prod-color-51);
  --deep-blue: var(--accent);
  --deep-blue-soft: var(--accent-soft);
  --amber-gold: var(--terra);
  --amber-gold-soft: var(--angelus-red-soft);
  --royal-violet: var(--accent);
  --royal-violet-soft: var(--accent-soft);
  --royal-violet-hover: var(--accent-2);
  --forest-green: var(--prod-color-52);
  --forest-green-soft: var(--prod-color-53);

  /* Portal-scoped derived tokens the Private Ledger vocabulary reads (see below). */
  --on-accent: var(--prod-color-12);
  --raise-ink: 32, 39, 46;
  --card: var(--prod-color-41);
  --sidebar-bg: var(--prod-color-45);
  --panel-bg: var(--prod-color-41);
  --avatar-bg: linear-gradient(145deg, var(--prod-color-54), var(--prod-color-55));
  --overlay: rgba(32, 39, 46, 0.48);
  --portal-inverse-bg: var(--prod-color-45);
  --portal-inverse-ink: var(--prod-color-12);
  --portal-inverse-muted: rgba(255, 255, 255, 0.68);
  --portal-inverse-faint: rgba(255, 255, 255, 0.50);
  --portal-on-terra: var(--prod-color-12);
  /* Match the approved portal mockup: a native display face for headings,
     with Inter retained for body copy, controls, labels, and data. */
  --font-portal-display: "Aptos Display", "Avenir Next", "Segoe UI Variable Display", "Helvetica Neue", var(--font-ui-sans), sans-serif;
  --font-serif: var(--font-portal-display);

  --radius-sm: 2px;
  --radius-base: 2px;
  --radius-lg: 2px;
  --radius-xl: 2px;

  --shadow-sm: 0 3px 10px -8px rgba(32, 39, 46, 0.22);
  --shadow-base: 0 9px 24px -18px rgba(32, 39, 46, 0.28);
  --shadow-lg: 0 18px 44px -28px rgba(32, 39, 46, 0.34);

  background: var(--paper);
}
@media (prefers-color-scheme: dark) {
  html:not([data-portal-theme="light"]) .portal-skin[data-dark-enabled="true"] {
    color-scheme: dark;
    --paper: var(--prod-color-56);
    --surface: var(--prod-color-45);
    --warm-stone: var(--prod-color-57);
    --stone-gray: var(--prod-color-58);
    --border: rgba(var(--raise-ink), 0.10);
    --border-strong: rgba(var(--raise-ink), 0.18);
    --ink: var(--prod-color-59);
    --ink-2: var(--prod-color-60);
    --ink-3: var(--prod-color-61);
    --portal-dim: var(--prod-color-62);
    --portal-label: var(--prod-color-63);
    --portal-faint: var(--prod-color-64);
    --portal-faintest: var(--prod-color-65);
    --terra: var(--prod-color-66);
    --angelus-red-soft: rgba(207, 130, 104, 0.14);
    --accent: var(--prod-color-67);
    --accent-2: var(--prod-color-68);
    --accent-soft: rgba(131, 168, 200, 0.14);
    --forest-green: var(--prod-color-69);
    --forest-green-soft: var(--prod-color-70);
    --on-accent: var(--prod-color-71);
    --raise-ink: 242, 243, 239;
    --card: linear-gradient(180deg, rgba(var(--raise-ink), 0.045), rgba(var(--raise-ink), 0.012));
    --sidebar-bg: var(--prod-color-72);
    --panel-bg: var(--prod-color-45);
    --avatar-bg: linear-gradient(145deg, var(--prod-color-73), var(--prod-color-74));
    --overlay: rgba(12, 16, 19, 0.74);
    --portal-inverse-bg: var(--prod-color-75);
    --portal-inverse-ink: var(--prod-color-59);
    --portal-inverse-muted: rgba(242, 243, 239, 0.68);
    --portal-inverse-faint: rgba(242, 243, 239, 0.50);
    --portal-on-terra: var(--prod-color-76);
    --shadow-sm: 0 18px 38px -30px rgba(0, 0, 0, 0.82);
    --shadow-base: 0 26px 54px -36px rgba(0, 0, 0, 0.88);
    --shadow-lg: 0 40px 78px -44px rgba(0, 0, 0, 0.92);
  }
}
html[data-portal-theme="dark"] .portal-skin[data-dark-enabled="true"] {
  color-scheme: dark;
  --paper: var(--prod-color-56);
  --surface: var(--prod-color-45);
  --warm-stone: var(--prod-color-57);
  --stone-gray: var(--prod-color-58);
  --border: rgba(var(--raise-ink), 0.10);
  --border-strong: rgba(var(--raise-ink), 0.18);
  --ink: var(--prod-color-59);
  --ink-2: var(--prod-color-60);
  --ink-3: var(--prod-color-61);
  --portal-dim: var(--prod-color-62);
  --portal-label: var(--prod-color-63);
  --portal-faint: var(--prod-color-64);
  --portal-faintest: var(--prod-color-65);
  --terra: var(--prod-color-66);
  --angelus-red-soft: rgba(207, 130, 104, 0.14);
  --accent: var(--prod-color-67);
  --accent-2: var(--prod-color-68);
  --accent-soft: rgba(131, 168, 200, 0.14);
  --forest-green: var(--prod-color-69);
  --forest-green-soft: var(--prod-color-70);
  --on-accent: var(--prod-color-71);
  --raise-ink: 242, 243, 239;
  --card: linear-gradient(180deg, rgba(var(--raise-ink), 0.045), rgba(var(--raise-ink), 0.012));
  --sidebar-bg: var(--prod-color-72);
  --panel-bg: var(--prod-color-45);
  --avatar-bg: linear-gradient(145deg, var(--prod-color-73), var(--prod-color-74));
  --overlay: rgba(12, 16, 19, 0.74);
  --portal-inverse-bg: var(--prod-color-75);
  --portal-inverse-ink: var(--prod-color-59);
  --portal-inverse-muted: rgba(242, 243, 239, 0.68);
  --portal-inverse-faint: rgba(242, 243, 239, 0.50);
  --portal-on-terra: var(--prod-color-76);
  --shadow-sm: 0 18px 38px -30px rgba(0, 0, 0, 0.82);
  --shadow-base: 0 26px 54px -36px rgba(0, 0, 0, 0.88);
  --shadow-lg: 0 40px 78px -44px rgba(0, 0, 0, 0.92);
}
.portal-shell[data-brand="blanchard_cpa"],
[data-portal-brand="blanchard_cpa"] {
  --accent: var(--prod-color-77);
  --accent-2: var(--prod-color-78);
  --accent-soft: var(--prod-color-79);
  --on-accent: var(--prod-color-12);
  --avatar-bg: linear-gradient(145deg, var(--prod-color-79), var(--prod-color-80));

  --deep-blue: var(--accent);
  --deep-blue-soft: var(--accent-soft);
  --amber-gold: var(--accent);
  --amber-gold-soft: var(--accent-soft);
  --royal-violet: var(--accent);
  --royal-violet-soft: var(--accent-soft);
  --royal-violet-hover: var(--accent-2);
}
@media (prefers-color-scheme: dark) {
  html:not([data-portal-theme="light"]) .portal-skin[data-dark-enabled="true"] .portal-shell[data-brand="blanchard_cpa"],
html:not([data-portal-theme="light"]) .portal-skin[data-dark-enabled="true"] [data-portal-brand="blanchard_cpa"] {
    --accent: var(--prod-color-81);
    --accent-2: var(--prod-color-82);
    --accent-soft: rgba(207, 199, 182, 0.13);
    --on-accent: var(--prod-color-83);
    --avatar-bg: linear-gradient(145deg, var(--prod-color-84), var(--prod-color-85));
  }
}
html[data-portal-theme="dark"] .portal-skin[data-dark-enabled="true"] .portal-shell[data-brand="blanchard_cpa"],
html[data-portal-theme="dark"] .portal-skin[data-dark-enabled="true"] [data-portal-brand="blanchard_cpa"] {
  --accent: var(--prod-color-81);
  --accent-2: var(--prod-color-82);
  --accent-soft: rgba(207, 199, 182, 0.13);
  --on-accent: var(--prod-color-83);
  --avatar-bg: linear-gradient(145deg, var(--prod-color-84), var(--prod-color-85));
}
.portal-skin .font-display {
  font-family: var(--font-portal-display);
  letter-spacing: -0.01em;
}
.portal-skin .tabular-nums,
.portal-skin [data-figure] {
  /* Lining + tabular everywhere numbers line up — dashboards want even-height,
     baseline-aligned digits, never Fraunces' default old-style (bobbing) figures. */
  font-variant-numeric: lining-nums tabular-nums;
}
.portal-masthead {
  background: color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter: blur(18px);
}
.portal-sidebar {
  --surface: var(--prod-color-86);
  --warm-stone: var(--prod-color-57);
  --border: rgba(244, 245, 241, 0.11);
  --border-strong: rgba(244, 245, 241, 0.2);
  --ink: var(--prod-color-87);
  --ink-2: var(--prod-color-88);
  --ink-3: var(--prod-color-89);
  --portal-faint: var(--prod-color-64);
  --portal-faintest: var(--prod-color-90);
  --raise-ink: 244, 245, 241;
  border-color: var(--border);
  background: var(--sidebar-bg);
}
.portal-sidebar-brand {
  border-color: var(--border);
}
@layer components {
  .portal-page {
    width: 100%;
    max-width: 73.75rem;
    margin: var(--space-0) auto;
    animation: portal-view-in var(--dur-2) var(--ease);
  }

  .portal-page-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-lg);
    margin-bottom: var(--space-lg);
  }

  .portal-page-head h1 {
    margin-top: var(--space-2xs);
    color: var(--ink);
    font-family: var(--font-ui-sans), ui-sans-serif, system-ui, sans-serif;
    font-size: var(--type-2xl);
    font-weight: 720;
    letter-spacing: -.035em;
    line-height: 1.08;
  }

  .portal-page-head-meta {
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.45;
    text-align: right;
  }

  @keyframes portal-view-in {
    from { opacity: .5; transform: translateY(2px); }
    to { opacity: 1; transform: none; }
  }

  @media (max-width: 39.9375rem) {
    .portal-page-head { align-items: start; }
    .portal-page-head-meta { max-width: 7rem; }
  }

  @media (prefers-reduced-motion: reduce) {
    .portal-page { animation: none; }
  }

  .portal-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 212px minmax(0, 1fr);
    background: var(--paper);
  }

  .portal-shell-main {
    min-width: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
  }

  .portal-sidebar {
    width: 212px;
    height: 100vh;
    flex: 0 0 212px;
    flex-direction: column;
    position: sticky;
    top: 0;
    padding: 0;
    overflow: hidden;
  }

  .portal-sidebar-brand {
    min-height: 82px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-lg);
    color: var(--prod-color-91);
    text-decoration: none;
  }

  .portal-sidebar-brand-mark {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .74);
    color: var(--prod-color-91);
    font-size: var(--type-base);
    font-weight: 750;
  }

  .portal-sidebar-brand strong,
.portal-sidebar-brand small { display: block; }
  .portal-sidebar-brand strong { font-size: var(--type-lg); font-weight: 700; letter-spacing: -.02em; }
  .portal-sidebar-brand small { margin-top: var(--space-3xs); color: rgba(255, 255, 255, .48); font-size: var(--type-micro); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

  .portal-workspace {
    width: 100%;
    max-width: 1228px;
    display: flex;
    flex: 1;
    gap: var(--space-lg);
    margin: 0 auto;
    padding: var(--space-xl);
  }

  .portal-footer-wrap {
    width: 100%;
    max-width: 1228px;
    margin: 0 auto;
    padding: 0 var(--space-xl) var(--space-xl);
  }

  .portal-sidebar-nav {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    padding: var(--space-lg) var(--space-md);
  }

  .portal-sidebar-group {
    margin-top: var(--space-xl);
  }

  .portal-sidebar-link {
    width: 100%;
    min-height: 36px;
    display: flex;
    align-items: center;
    border-left: 3px solid transparent;
    background: transparent;
    color: rgba(255, 255, 255, .65);
    padding: var(--space-sm);
    font-size: var(--type-sm);
    font-weight: 500;
    text-decoration: none;
    transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
  }

  .portal-sidebar-link:hover {
    background: rgba(255, 255, 255, .06);
    color: var(--prod-color-91);
  }

  .portal-sidebar-link.is-active {
    border-left-color: var(--terra);
    color: var(--prod-color-91);
    font-weight: 700;
  }

  .portal-sidebar-footer {
    margin-top: auto;
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: var(--space-md) var(--space-lg);
  }

  .portal-sidebar-footer form {
    margin-top: var(--space-sm);
  }

  .portal-sidebar-footer form button {
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, .5);
    padding: 0;
    cursor: pointer;
    font-size: var(--type-sm);
  }

  .portal-signature-rule {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-column: 1 / -1;
    width: calc(100% + (2 * var(--space-lg)));
    height: 2px;
    margin: 0 calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg));
    overflow: hidden;
  }
  .portal-signature-rule i:nth-child(1) { background: var(--prod-color-49); }
  .portal-signature-rule i:nth-child(2) { background: var(--prod-color-48); }
  .portal-signature-rule i:nth-child(3) { background: var(--prod-color-92); }

  @media (max-width: 1023px) {
    .portal-shell { display: block; }
    .portal-workspace {
      display: block;
      max-width: none;
      padding: var(--space-lg) var(--space-md) calc(88px + env(safe-area-inset-bottom));
    }
    .portal-footer-wrap { max-width: none; padding: 0 var(--space-md) calc(84px + env(safe-area-inset-bottom)); }
  }
}
.portal-logo-dk { display: none; }
@media (prefers-color-scheme: dark) {
  html:not([data-portal-theme="light"]) .portal-skin[data-dark-enabled="true"] .portal-logo-lite { display: none; }
  html:not([data-portal-theme="light"]) .portal-skin[data-dark-enabled="true"] .portal-logo-dk { display: block; }
}
html[data-portal-theme="dark"] .portal-skin[data-dark-enabled="true"] .portal-logo-lite { display: none; }
html[data-portal-theme="dark"] .portal-skin[data-dark-enabled="true"] .portal-logo-dk { display: block; }
.portal-sidebar-link.is-active {
  background: rgba(255, 255, 255, .09);
}
.portal-shell[data-guided="false"] .portal-page > p:first-of-type {
  display: none;
}
.portal-shell[data-guided="false"] .portal-page > p:first-of-type + * {
  margin-top: 1rem;
}
.portal-security-signal {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--forest-green);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.portal-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(1.35rem, 3vw, 2.25rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--card);
  box-shadow: var(--shadow-base);
}
.portal-hero-operational {
  padding: 1.25rem 1.5rem;
  border-left: 2px solid var(--amber-gold);
}
.portal-context-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  padding: 0.3rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 0;
  background: rgba(var(--raise-ink), 0.025);
}
.portal-context-link {
  color: var(--forest-green);
  transition: border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
}
.portal-context-link:hover {
  border-color: var(--forest-green);
  transform: translateY(-1px);
}
.portal-attention-panel {
  padding: clamp(1rem, 2vw, 1.4rem);
  border: 1px solid color-mix(in srgb, var(--amber-gold) 30%, var(--border));
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, color-mix(in oklab, var(--accent) 11%, transparent), rgba(var(--raise-ink), 0.012));
}
.portal-attention-count {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0;
  background: var(--amber-gold);
  color: var(--on-accent);
  font-weight: 700;
}
.portal-action-card {
  height: 100%;
  padding: 0.9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--amber-gold) 24%, var(--border));
  border-radius: var(--radius-base);
  background: rgba(var(--raise-ink), 0.025);
  box-shadow: var(--shadow-sm);
  transition: border-color var(--dur-1) var(--ease), transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);
}
.portal-action-card:hover {
  border-color: color-mix(in srgb, var(--amber-gold) 52%, var(--border));
  transform: translateY(-2px);
  box-shadow: var(--shadow-base);
}
.portal-action-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.35rem;
  padding: 0.5rem 0.9rem;
  border-radius: var(--radius-sm);
  background: var(--amber-gold);
  color: var(--on-accent);
  font-size: 0.875rem;
  font-weight: 700;
  transition: filter var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
}
.portal-action-link:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}
@layer components {
.portal-overview {
  display: grid;
  gap: var(--space-xl);
}

.portal-overview-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: var(--space-sm) 0 var(--space-lg);
  border-bottom: 1px solid var(--border-strong);
}

.portal-overview-head h1 {
  margin-top: var(--space-xs);
  color: var(--ink);
  font-family: var(--font-ui-sans), ui-sans-serif, system-ui, sans-serif;
  font-size: clamp(2rem, 4vw, 2.625rem);
  font-weight: 720;
  letter-spacing: -0.035em;
  line-height: 1;
}

.portal-overview-context {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-xs);
  flex-wrap: wrap;
}

.portal-overview-context span {
  min-height: 28px;
  padding: var(--space-xs) 10px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 68%, transparent);
  color: var(--ink-2);
  font-size: var(--type-sm);
  font-weight: 650;
}

.portal-overview-context .has-attention {
  border-color: color-mix(in srgb, var(--terra) 40%, var(--border));
  background: var(--angelus-red-soft);
  color: var(--terra);
}

.portal-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(290px, 0.85fr);
  gap: var(--space-xl);
  align-items: start;
}

.portal-overview-main,
.portal-overview-side {
  display: grid;
  gap: var(--space-xl);
  min-width: 0;
}

.portal-overview-panel {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.portal-overview-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-bottom: 1px solid var(--border);
}

.portal-overview-section-title h2 {
  margin-top: var(--space-2xs);
  color: var(--ink);
  font-size: var(--type-lg);
  font-weight: 720;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

.portal-overview-count {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--terra);
  color: var(--prod-color-91);
  font-size: var(--type-sm);
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.portal-overview-banner {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  align-items: stretch;
  min-height: 86px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--terra) 34%, var(--border-strong));
  border-radius: var(--radius-base);
  background:
    linear-gradient(112deg, color-mix(in srgb, var(--angelus-red-soft) 72%, transparent), transparent 46%),
    var(--surface);
  box-shadow: inset 4px 0 var(--terra), var(--shadow-base);
}

.portal-overview-banner-signal {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-2xs);
  padding: var(--space-md) var(--space-lg);
  border-right: 1px solid color-mix(in srgb, var(--terra) 28%, var(--border));
  color: var(--terra);
}

.portal-overview-banner-signal span {
  font-size: var(--type-micro);
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.portal-overview-banner-signal strong {
  color: var(--ink);
  font-size: var(--type-xl);
  font-weight: 750;
  letter-spacing: -.02em;
}

.portal-overview-banner-copy {
  align-self: center;
  min-width: 0;
  padding: var(--space-md) var(--space-lg);
}

.portal-overview-banner-copy p {
  color: var(--terra);
  font-size: var(--type-micro);
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.portal-overview-banner-copy h2 {
  margin-top: var(--space-2xs);
  color: var(--ink);
  font-size: var(--type-lg);
  font-weight: 750;
  letter-spacing: -.015em;
  line-height: 1.3;
}

.portal-overview-banner-copy > span {
  display: block;
  margin-top: var(--space-2xs);
  overflow: hidden;
  color: var(--ink-3);
  font-size: var(--type-sm);
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-overview-banner > .portal-action-link {
  align-self: center;
  margin-right: var(--space-lg);
}

.portal-overview-attention-summary {
  display: grid;
  grid-template-columns: 106px minmax(0, 1fr);
  align-items: stretch;
  min-height: 78px;
  background: var(--sidebar-bg);
  color: var(--prod-color-87);
}

.portal-overview-attention-summary > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-md) var(--space-lg);
  border-right: 1px solid rgba(244, 245, 241, .14);
}

.portal-overview-attention-summary .portal-eyebrow { color: var(--prod-color-89); }
.portal-overview-attention-summary strong {
  margin-top: var(--space-2xs);
  color: var(--prod-color-91);
  font-size: var(--type-2xl);
  line-height: 1;
}

.portal-overview-attention-summary > p {
  align-self: center;
  padding: var(--space-md) var(--space-lg);
  color: var(--prod-color-87);
  font-size: var(--type-base);
  font-weight: 700;
}

.portal-overview-attention-summary small {
  display: block;
  margin-top: var(--space-2xs);
  color: var(--prod-color-89);
  font-size: var(--type-sm);
  font-weight: 500;
}

.portal-overview-action-register {
  border-top: 1px solid var(--border);
}

.portal-overview-action-register li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-md);
  align-items: center;
  min-height: 62px;
  padding: var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--border);
}

.portal-overview-action-register li:last-child { border-bottom: 0; }

.portal-overview-register-mark {
  width: 7px;
  height: 7px;
  transform: rotate(45deg);
  background: var(--terra);
}

.portal-overview-register-copy strong,
.portal-overview-register-copy small {
  display: block;
}

.portal-overview-register-copy strong {
  color: var(--ink);
  font-size: var(--type-base);
  font-weight: 700;
}

.portal-overview-register-copy small {
  margin-top: var(--space-2xs);
  overflow: hidden;
  color: var(--ink-3);
  font-size: var(--type-sm);
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-overview-action-register a,
.portal-overview-text-link {
  color: var(--deep-blue);
  font-size: var(--type-sm);
  font-weight: 750;
  text-decoration: none;
}

.portal-overview-action-register a:hover,
.portal-overview-text-link:hover { text-decoration: underline; text-underline-offset: 3px; }

.portal-overview-clear {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-sm);
  align-items: center;
  min-height: 68px;
  padding: var(--space-lg);
  color: var(--ink-2);
}

.portal-overview-clear > span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--forest-green);
  box-shadow: 0 0 0 4px var(--forest-green-soft);
}

.portal-overview-clear strong { font-size: var(--type-base); }
.portal-overview-clear small { color: var(--ink-3); font-size: var(--type-sm); }

.portal-overview-release-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-overview-release {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: var(--space-md);
  min-height: 104px;
  padding: var(--space-lg);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.portal-overview-release:nth-last-child(-n + 2) { border-bottom: 0; }
.portal-overview-release:nth-child(even) { border-right: 0; }
.portal-overview-release.is-lead {
  grid-column: 1 / -1;
  min-height: 112px;
  background: linear-gradient(120deg, var(--deep-blue-soft), color-mix(in srgb, var(--surface) 90%, transparent) 62%);
  border-right: 0;
}

.portal-overview-release-mark {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--deep-blue) 36%, var(--border));
  background: var(--deep-blue);
  color: var(--prod-color-91);
  font-size: var(--type-sm);
  font-weight: 750;
}

.portal-overview-release p {
  color: var(--deep-blue);
  font-size: var(--type-micro);
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.portal-overview-release h3 {
  margin-top: var(--space-xs);
  color: var(--ink);
  font-size: var(--type-base);
  font-weight: 700;
  line-height: 1.45;
}

.portal-overview-release small {
  display: block;
  margin-top: var(--space-2xs);
  color: var(--ink-3);
  font-size: var(--type-sm);
  line-height: 1.4;
}

.portal-overview-net-worth-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: var(--space-xl) var(--space-lg);
}

.portal-overview-net-worth-head > p {
  color: var(--ink);
  font-size: clamp(2.2rem, 5vw, 3.75rem);
  font-weight: 720;
  letter-spacing: -0.045em;
}

.portal-overview-net-worth-head > div { text-align: right; }
.portal-overview-net-worth-head strong,
.portal-overview-net-worth-head small { display: block; }
.portal-overview-net-worth-head strong {
  color: var(--forest-green);
  font-size: var(--type-base);
  font-variant-numeric: tabular-nums;
}
.portal-overview-net-worth-head strong.is-negative { color: var(--terra); }
.portal-overview-net-worth-head small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }

.portal-overview-net-worth-components {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--warm-stone) 46%, transparent);
}

.portal-overview-net-worth-components > div {
  min-width: 0;
  padding: var(--space-md) var(--space-lg);
  border-right: 1px solid var(--border);
}
.portal-overview-net-worth-components > div:last-child { border-right: 0; }
.portal-overview-net-worth-components dt { color: var(--ink-3); font-size: var(--type-micro); text-transform: uppercase; letter-spacing: 0.08em; }
.portal-overview-net-worth-components dd { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-base); font-weight: 700; font-variant-numeric: tabular-nums; }

.portal-overview-side-panel .portal-overview-section-title { padding: var(--space-md) var(--space-lg); }

.portal-overview-service-state {
  display: flex;
  gap: var(--space-md);
  align-items: center;
  padding: var(--space-lg);
  background: linear-gradient(112deg, var(--deep-blue-soft), transparent 72%);
  border-bottom: 1px solid var(--border);
}

.portal-overview-service-state > span {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--deep-blue);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--deep-blue) 14%, transparent);
}

.portal-overview-service-state strong,
.portal-overview-service-state small { display: block; }
.portal-overview-service-state strong { color: var(--ink); font-size: var(--type-base); }
.portal-overview-service-state small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }

.portal-overview-service-list li + li { border-top: 1px solid var(--border); }
.portal-overview-service-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  min-height: 58px;
  padding: var(--space-md) var(--space-lg);
  color: var(--deep-blue);
  text-decoration: none;
}
.portal-overview-service-list a:hover { background: color-mix(in srgb, var(--warm-stone) 48%, transparent); }
.portal-overview-service-list strong,
.portal-overview-service-list small { display: block; }
.portal-overview-service-list strong { color: var(--ink); font-size: var(--type-base); line-height: 1.3; }
.portal-overview-service-list small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); text-transform: capitalize; }

.portal-upload--compact { padding: var(--space-lg); }
.portal-upload--compact > div:first-of-type { grid-template-columns: minmax(0, 1fr); }
.portal-upload--compact > div:first-of-type button { justify-self: start; }
.portal-upload--compact .portal-mono { font-size: var(--type-micro); }

.portal-overview-activity li {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: var(--space-md);
  align-items: start;
  padding: var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--border);
}
.portal-overview-activity li:last-child { border-bottom: 0; }
.portal-overview-activity span {
  width: 7px;
  height: 7px;
  margin-top: var(--space-xs);
  transform: rotate(45deg);
  border: 1px solid var(--forest-green);
}
.portal-overview-activity p { color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
.portal-action-arrival-veil {
  position: fixed;
  inset: 0;
  z-index: 70;
  pointer-events: none;
  background: rgba(29, 38, 46, 0.055);
  animation: portalArrivalVeil 280ms var(--ease) both;
}

.portal-action-arrival-guide {
  position: fixed;
  z-index: 82;
  top: clamp(76px, 11vh, 112px);
  right: clamp(16px, 3vw, 42px);
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 30px;
  gap: var(--space-sm);
  align-items: start;
  width: min(390px, calc(100vw - 32px));
  padding: var(--space-md);
  border: 1px solid color-mix(in srgb, var(--deep-blue) 28%, var(--border));
  border-top-color: var(--deep-blue);
  background: color-mix(in srgb, var(--surface) 96%, transparent);
  box-shadow: 0 24px 60px -22px rgba(29, 38, 46, 0.48), 0 8px 24px -16px rgba(45, 67, 86, 0.42);
  backdrop-filter: blur(12px);
  animation: portalArrivalGuide 340ms var(--ease) 120ms both;
}

.portal-action-arrival-mark {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  background: var(--deep-blue);
  color: var(--prod-color-91);
  font-size: var(--type-base);
  font-weight: 750;
}

.portal-action-arrival-guide strong,
.portal-action-arrival-guide span { display: block; }
.portal-action-arrival-guide strong { color: var(--ink); font-size: var(--type-base); line-height: 1.3; }
.portal-action-arrival-guide div > span { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.45; }
.portal-action-arrival-guide button {
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  color: var(--ink-3);
  cursor: pointer;
  font-size: var(--type-lg);
}
.portal-action-arrival-guide button:hover,
.portal-action-arrival-guide button:focus-visible { color: var(--ink); }

.portal-action-arrival-target {
  position: relative;
  z-index: 78;
  outline: 1px solid color-mix(in srgb, var(--deep-blue) 50%, transparent);
  outline-offset: 3px;
  box-shadow: 0 26px 62px -20px rgba(29, 38, 46, 0.5), 0 12px 30px -18px rgba(45, 67, 86, 0.42) !important;
  animation: portalArrivalTarget 520ms var(--ease) both;
}
@layer components {
.portal-tour-target {
  position: relative;
  transform-origin: center;
  outline: 1px solid color-mix(in srgb, var(--deep-blue) 42%, transparent);
  outline-offset: 3px;
  box-shadow: 0 26px 62px -20px rgba(29, 38, 46, 0.5), 0 12px 30px -18px rgba(45, 67, 86, 0.42) !important;
  animation: portalArrivalTarget 520ms var(--ease) both;
}

.portal-tour-target .portal-overview-banner-action,
.portal-tour-target .portal-overview-row-action {
  box-shadow: 0 8px 20px -10px rgba(45, 67, 86, 0.7);
}
}

@keyframes portalArrivalVeil { from { opacity: 0; } to { opacity: 1; } }
@keyframes portalArrivalGuide {
  from { opacity: 0; transform: translateY(10px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes portalArrivalTarget {
  0% { transform: translateY(0) scale(1); }
  72% { transform: translateY(-10px) scale(1.008); }
  100% { transform: translateY(-7px) scale(1.005); }
}

@media (prefers-reduced-motion: reduce) {
  .portal-action-arrival-target,
.portal-tour-target { transform: none; animation: none; }
}

@media (max-width: 1100px) {
  .portal-overview-grid { grid-template-columns: minmax(0, 1fr); }
  .portal-overview-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-overview-side > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .portal-overview-head { align-items: start; flex-direction: column; }
  .portal-overview-context { justify-content: flex-start; }
  .portal-overview-side { grid-template-columns: minmax(0, 1fr); }
  .portal-overview-side > :last-child:nth-child(odd) { grid-column: auto; }
  .portal-overview-banner { grid-template-columns: 74px minmax(0, 1fr); }
  .portal-overview-banner > .portal-action-link {
    grid-column: 2;
    justify-self: start;
    margin: 0 var(--space-lg) var(--space-lg);
  }
  .portal-overview-attention-summary { grid-template-columns: 88px minmax(0, 1fr); }
  .portal-overview-action-register li { grid-template-columns: minmax(0, 1fr); }
  .portal-overview-action-register a { grid-column: 1; justify-self: start; }
  .portal-overview-release-grid { grid-template-columns: minmax(0, 1fr); }
  .portal-overview-release,
.portal-overview-release.is-lead { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--border); }
  .portal-overview-release:last-child { border-bottom: 0; }
  .portal-overview-net-worth-head { align-items: start; flex-direction: column; }
  .portal-overview-net-worth-head > div { text-align: left; }
  .portal-overview-net-worth-components { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-overview-net-worth-components > div:nth-child(2) { border-right: 0; }
  .portal-overview-net-worth-components > div:nth-child(n + 3) { border-top: 1px solid var(--border); }
  .portal-action-arrival-guide {
    top: auto;
    right: 12px;
    bottom: calc(74px + env(safe-area-inset-bottom));
    width: calc(100vw - 24px);
  }
}
}
.portal-skin button[class*="bg-deep"],
.portal-skin a[class*="bg-deep"],
.portal-skin button[class*="bg-gold"],
.portal-skin a[class*="bg-gold"] {
  color: var(--on-accent);
}
.portal-skin table tbody tr {
  transition: background-color var(--dur-1) var(--ease);
}
.portal-skin table tbody tr:hover {
  background: rgba(var(--raise-ink), 0.025);
}
@media (min-width: 1024px) {
  .portal-shell[data-guided="false"] .portal-content {
    padding-top: 1.75rem;
  }
}
@keyframes portalLeafIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes portalRiseIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes portalDrawIn { to { stroke-dashoffset: 0; } }
@keyframes portalOverlayIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes portalPaletteIn { from { opacity: 0; transform: translateY(-14px) scale(0.985); } to { opacity: 1; transform: none; } }
@keyframes portalToastIn { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translate(-50%, 0); } }
@media (prefers-reduced-motion: reduce) {
  .portal-skin *,
.portal-skin *::before,
.portal-skin *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }
}
.portal-eyebrow {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--portal-label);
}
.portal-eyebrow--gold { color: var(--amber-gold); }
.portal-eyebrow--blue { color: var(--deep-blue); }
.portal-figure {
  font-family: var(--font-serif);
  font-weight: 600;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1;
}
.portal-mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.portal-diamond {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  transform: rotate(45deg);
  background: var(--amber-gold);
}
.portal-diamond--hollow { background: transparent; border: 1px solid var(--portal-faintest); }
.portal-diamond--sage { background: var(--forest-green); }
.portal-card {
  position: relative;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--card);
  box-shadow: none;
}
.portal-organizer-followup {
  animation: portalLeafIn var(--dur-2) var(--ease) both;
}
@layer components {
  .portal-primary-button,
.portal-secondary-button {
    display: inline-flex;
    min-height: calc(var(--space-2xl) + var(--space-sm));
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    padding: var(--space-sm) var(--space-md);
    font-size: var(--type-sm);
    font-weight: 700;
    transition: border-color var(--dur-1) var(--ease), background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
  }

  .portal-primary-button {
    border: 1px solid var(--deep-blue);
    background: var(--deep-blue);
    color: var(--prod-color-91);
  }

  .portal-primary-button:hover { background: color-mix(in oklab, var(--deep-blue) 88%, black); }
  .portal-secondary-button { border: 1px solid var(--border-strong); background: var(--surface); color: var(--ink-2); }
  .portal-secondary-button:hover { border-color: var(--deep-blue); color: var(--deep-blue); }
}
@layer components {
.portal-accounting-review-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-xl);
  margin-bottom: var(--space-lg);
}
.portal-accounting-review-heading h1 {
  margin-top: var(--space-xs);
  color: var(--ink);
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 720;
  letter-spacing: -.025em;
}
.portal-accounting-review-heading > div:first-child > p:last-child {
  margin-top: var(--space-xs);
  color: var(--ink-3);
  font-size: var(--type-sm);
}
.portal-accounting-review-heading > div:last-child {
  display: grid;
  grid-template-columns: auto auto;
  gap: var(--space-3xs) var(--space-sm);
  align-items: baseline;
  min-width: 172px;
  padding-left: var(--space-lg);
  border-left: 1px solid var(--border);
}
.portal-accounting-review-heading > div:last-child strong {
  color: var(--ink);
  font-size: var(--type-lg);
  font-variant-numeric: tabular-nums;
}
.portal-accounting-review-heading > div:last-child span { color: var(--ink-3); font-size: var(--type-sm); }

.portal-accounting-review {
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
}
.portal-accounting-review-toolbar {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: 0 var(--space-md);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--paper) 72%, var(--surface));
}
.portal-accounting-review-tabs { display: flex; align-self: stretch; }
.portal-accounting-review-tabs button {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  min-height: 58px;
  padding: 0 var(--space-md);
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--ink-3);
  cursor: pointer;
  font-size: var(--type-sm);
  font-weight: 700;
}
.portal-accounting-review-tabs button[aria-selected="true"] { border-bottom-color: var(--deep-blue); color: var(--ink); }
.portal-accounting-review-tabs button span {
  min-width: 22px;
  padding: var(--space-3xs) var(--space-xs);
  border-radius: 999px;
  background: var(--deep-blue-soft);
  color: var(--deep-blue);
  font-size: var(--type-micro);
  text-align: center;
}
.portal-accounting-review-tools { display: flex; gap: var(--space-xs); }
.portal-accounting-review-tools input,
.portal-accounting-review-tools select,
.portal-accounting-review-response textarea {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  font-size: var(--type-sm);
  outline: none;
}
.portal-accounting-review-tools input,
.portal-accounting-review-tools select { min-height: 36px; padding: 0 var(--space-sm); }
.portal-accounting-review-tools input:focus,
.portal-accounting-review-tools select:focus,
.portal-accounting-review-response textarea:focus { border-color: var(--deep-blue); box-shadow: 0 0 0 3px var(--deep-blue-soft); }

.portal-accounting-review-canvas {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(430px, 1.22fr);
  min-height: 540px;
}
.portal-accounting-review-list {
  max-height: 680px;
  overflow-y: auto;
  border-right: 1px solid var(--border);
  background: color-mix(in srgb, var(--paper) 55%, var(--surface));
}
.portal-accounting-review-list > button {
  position: relative;
  display: grid;
  width: 100%;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: var(--space-sm);
  align-items: start;
  padding: var(--space-md);
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.portal-accounting-review-list > button:hover { background: color-mix(in srgb, var(--deep-blue-soft) 55%, transparent); }
.portal-accounting-review-list > button.is-selected {
  background: var(--surface);
  box-shadow: inset 3px 0 0 var(--deep-blue);
}
.portal-accounting-review-state { width: 7px; height: 7px; margin-top: var(--space-xs); border-radius: 50%; background: var(--ink-3); }
.portal-accounting-review-state.is-needs_you { background: var(--terra); box-shadow: 0 0 0 4px var(--terra-soft); }
.portal-accounting-review-state.is-with_team { background: var(--deep-blue); box-shadow: 0 0 0 4px var(--deep-blue-soft); }
.portal-accounting-review-state.is-resolved { background: var(--forest-green); }
.portal-accounting-review-list-copy strong,
.portal-accounting-review-list-copy small { display: block; }
.portal-accounting-review-list-copy strong { color: var(--ink); font-size: var(--type-sm); line-height: 1.4; }
.portal-accounting-review-list-copy small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.35; }
.portal-accounting-review-list > button > b { color: var(--ink); font-size: var(--type-sm); font-variant-numeric: tabular-nums; }
.portal-accounting-review-list > button > em {
  grid-column: 2 / -1;
  color: var(--ink-3);
  font-size: var(--type-micro);
  font-style: normal;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.portal-accounting-review-no-results { padding: var(--space-xl); color: var(--ink-3); font-size: var(--type-sm); text-align: center; }

.portal-accounting-review-detail { min-width: 0; padding: var(--space-xl); outline: none; }
.portal-accounting-review-detail > header { display: flex; align-items: start; justify-content: space-between; gap: var(--space-lg); }
.portal-accounting-review-detail h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-lg); font-weight: 730; line-height: 1.3; }
.portal-accounting-review-badge {
  flex: 0 0 auto;
  padding: var(--space-xs) var(--space-sm);
  border: 1px solid var(--border);
  color: var(--ink-3);
  font-size: var(--type-micro);
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.portal-accounting-review-badge.is-needs_you { border-color: color-mix(in srgb, var(--terra) 45%, var(--border)); color: var(--terra); }
.portal-accounting-review-badge.is-with_team { border-color: color-mix(in srgb, var(--deep-blue) 40%, var(--border)); color: var(--deep-blue); }
.portal-accounting-review-badge.is-resolved { color: var(--forest-green); }
.portal-accounting-review-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--space-lg);
  border: 1px solid var(--border);
}
.portal-accounting-review-facts div { min-width: 0; padding: var(--space-md); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.portal-accounting-review-facts div:nth-child(even) { border-right: 0; }
.portal-accounting-review-facts div:nth-last-child(-n + 2) { border-bottom: 0; }
.portal-accounting-review-facts span,
.portal-accounting-review-facts strong { display: block; }
.portal-accounting-review-facts span { color: var(--ink-3); font-size: var(--type-micro); letter-spacing: .08em; text-transform: uppercase; }
.portal-accounting-review-facts strong { margin-top: var(--space-xs); overflow: hidden; color: var(--ink); font-size: var(--type-sm); text-overflow: ellipsis; white-space: nowrap; }
.portal-accounting-review-question {
  margin-top: var(--space-lg);
  padding: var(--space-lg);
  border-left: 3px solid var(--deep-blue);
  background: linear-gradient(115deg, var(--deep-blue-soft), transparent 72%);
}
.portal-accounting-review-question span { color: var(--deep-blue); font-size: var(--type-micro); font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.portal-accounting-review-question p { margin-top: var(--space-xs); white-space: pre-line; color: var(--ink); font-size: var(--type-base); line-height: 1.55; }
.portal-accounting-review-response { margin-top: var(--space-lg); }
.portal-accounting-review-response > p { margin-bottom: var(--space-md); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.55; }
.portal-accounting-review-response label,
.portal-accounting-review-response legend { display: block; margin-bottom: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); font-weight: 700; }
.portal-accounting-review-response textarea { width: 100%; resize: vertical; padding: var(--space-sm); line-height: 1.5; }
.portal-accounting-review-choices { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-bottom: var(--space-md); }
.portal-accounting-review-choices button {
  min-height: 38px;
  padding: 0 var(--space-md);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink-2);
  cursor: pointer;
  font-size: var(--type-sm);
  font-weight: 700;
}
.portal-accounting-review-choices button[aria-pressed="true"] { border-color: var(--deep-blue); background: var(--deep-blue-soft); color: var(--deep-blue); }
.portal-accounting-review-submit { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); margin-top: var(--space-sm); }
.portal-accounting-review-submit small { max-width: 430px; color: var(--ink-3); font-size: var(--type-micro); line-height: 1.45; }
.portal-accounting-review-answer { margin-top: var(--space-lg); padding: var(--space-lg); border: 1px solid var(--border); background: var(--paper); }
.portal-accounting-review-answer span,
.portal-accounting-review-answer strong { display: block; }
.portal-accounting-review-answer span { color: var(--ink-3); font-size: var(--type-micro); letter-spacing: .06em; text-transform: uppercase; }
.portal-accounting-review-answer strong { margin-top: var(--space-xs); color: var(--deep-blue); font-size: var(--type-sm); text-transform: capitalize; }
.portal-accounting-review-answer p { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-base); line-height: 1.55; }
.portal-accounting-review-answer small { display: block; margin-top: var(--space-sm); color: var(--ink-3); font-size: var(--type-sm); }
.portal-accounting-review-note { margin-top: var(--space-sm); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
.portal-accounting-review-empty { display: grid; min-height: 360px; place-items: center; align-content: center; gap: var(--space-sm); padding: var(--space-xl); text-align: center; }
.portal-accounting-review-empty > span { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--border-strong); color: var(--deep-blue); font-size: var(--type-lg); }
.portal-accounting-review-empty strong { color: var(--ink); font-size: var(--type-base); }
.portal-accounting-review-empty p { max-width: 430px; color: var(--ink-3); font-size: var(--type-sm); line-height: 1.5; }
.portal-accounting-review-foot { display: flex; justify-content: space-between; gap: var(--space-md); padding: var(--space-sm) var(--space-md); border-top: 1px solid var(--border); background: var(--paper); color: var(--ink-3); font-size: var(--type-micro); }

@media (max-width: 900px) {
  .portal-accounting-review-heading { align-items: start; flex-direction: column; }
  .portal-accounting-review-heading > div:last-child { padding-left: 0; border-left: 0; }
  .portal-accounting-review-toolbar { align-items: stretch; flex-direction: column; padding: 0; }
  .portal-accounting-review-tabs { overflow-x: auto; padding: 0 var(--space-sm); }
  .portal-accounting-review-tools { padding: 0 var(--space-md) var(--space-md); }
  .portal-accounting-review-tools input { min-width: 0; flex: 1; }
  .portal-accounting-review-canvas { grid-template-columns: minmax(0, 1fr); }
  .portal-accounting-review-list { max-height: 340px; border-right: 0; border-bottom: 1px solid var(--border); }
  .portal-accounting-review-detail { padding: var(--space-lg); }
}

@media (max-width: 560px) {
  .portal-accounting-review-tabs button { padding: 0 var(--space-sm); }
  .portal-accounting-review-tools { flex-direction: column; }
  .portal-accounting-review-facts { grid-template-columns: minmax(0, 1fr); }
  .portal-accounting-review-facts div { border-right: 0; }
  .portal-accounting-review-facts div:nth-last-child(-n + 2) { border-bottom: 1px solid var(--border); }
  .portal-accounting-review-facts div:last-child { border-bottom: 0; }
  .portal-accounting-review-submit,
.portal-accounting-review-foot { align-items: stretch; flex-direction: column; }
}

.portal-accounting-reports {
  margin-top: var(--space-xl);
  border: 1px solid var(--border);
  background: var(--surface);
}
.portal-feature-card { position: relative; isolation: isolate; }
.portal-interactive-rail {
  --portal-rail-color: var(--deep-blue);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.portal-interactive-rail[data-rail-tone="rust"] { --portal-rail-color: var(--terra); }
.portal-interactive-rail[data-rail-tone="olive"] { --portal-rail-color: var(--forest-green); }
.portal-interactive-rail::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0 auto 0 0;
  width: var(--space-2xs);
  pointer-events: none;
  background: var(--portal-rail-color);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform var(--dur-2) var(--ease);
}
.portal-interactive-rail:focus-visible,
.portal-interactive-rail:focus-within {
  outline: var(--space-3xs) solid color-mix(in srgb, var(--portal-rail-color) 58%, transparent);
  outline-offset: calc(var(--space-3xs) * -1);
}
.portal-interactive-rail:focus-visible::before,
.portal-interactive-rail:focus-within::before { transform: scaleY(1); }
@media (hover: hover) and (pointer: fine) {
  .portal-interactive-rail:hover::before { transform: scaleY(1); }
}
@media (prefers-reduced-motion: reduce) {
  .portal-interactive-rail::before { transition: none !important; }
}
.portal-accounting-reports > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--border);
}
.portal-accounting-reports h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-lg); font-weight: 720; }
.portal-accounting-reports > header > span { color: var(--ink-3); font-size: var(--type-sm); }
.portal-accounting-report-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-accounting-report-list article {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: var(--space-md);
  align-items: center;
  min-height: 102px;
  padding: var(--space-lg);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  transition: transform .22s cubic-bezier(.22, 1, .36, 1), border-color .22s ease, box-shadow .22s ease;
}
.portal-accounting-report-list article:nth-child(even) { border-right: 0; }
.portal-accounting-report-list article:nth-last-child(-n + 2) { border-bottom: 0; }
.portal-accounting-report-list article.is-latest {
  grid-column: 1 / -1;
  min-height: 138px;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr;
  border-right: 0;
  border-top: 2px solid var(--deep-blue);
  background:
    linear-gradient(118deg, color-mix(in srgb, var(--deep-blue-soft) 82%, var(--surface)), transparent 68%),
    var(--surface);
  box-shadow: 0 18px 34px -32px color-mix(in srgb, var(--ink) 58%, transparent);
}
.portal-accounting-report-list article.is-latest > .portal-accounting-report-mark,
.portal-accounting-report-list article.is-latest > div { grid-row: 1 / span 2; }
.portal-accounting-report-list article.is-latest > em { grid-column: 3; grid-row: 1; }
.portal-accounting-report-mark { display: grid; width: 38px; height: 38px; align-content: center; gap: var(--space-2xs); border: 1px solid color-mix(in srgb, var(--deep-blue) 35%, var(--border)); padding: var(--space-sm); }
.portal-accounting-report-mark i { display: block; height: 2px; background: var(--deep-blue); transition: width .22s cubic-bezier(.22, 1, .36, 1), transform .22s cubic-bezier(.22, 1, .36, 1); }
.portal-accounting-report-mark i:nth-child(1) { width: 100%; }
.portal-accounting-report-mark i:nth-child(2) { width: 72%; }
.portal-accounting-report-mark i:nth-child(3) { width: 48%; }
.portal-accounting-report-list article.is-latest .portal-accounting-report-mark { width: 48px; height: 52px; border-color: var(--portal-inverse-bg); background: var(--portal-inverse-bg); }
.portal-accounting-report-list article.is-latest .portal-accounting-report-mark i { background: var(--terra); }
.portal-accounting-report-list strong,
.portal-accounting-report-list small { display: block; }
.portal-accounting-report-list .portal-eyebrow { margin-bottom: var(--space-xs); color: var(--deep-blue); }
.portal-accounting-report-list strong { color: var(--ink); font-size: var(--type-base); line-height: 1.35; }
.portal-accounting-report-list article.is-latest strong { font-size: var(--type-lg); letter-spacing: -.015em; }
.portal-accounting-report-list small { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
.portal-accounting-report-list em { align-self: start; color: var(--deep-blue); font-size: var(--type-micro); font-style: normal; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.portal-accounting-report-list button {
  grid-column: 3;
  min-height: 36px;
  padding: 0 var(--space-sm);
  border: 1px solid var(--deep-blue);
  border-radius: var(--radius-sm);
  background: var(--deep-blue);
  color: var(--on-accent);
  cursor: pointer;
  font-size: var(--type-sm);
  font-weight: 700;
}
.portal-accounting-report-list button:disabled { cursor: not-allowed; opacity: .5; }
.portal-accounting-report-list article.is-latest > button { grid-row: 2; align-self: end; }
.portal-report-preview-state {
  grid-column: 3;
  align-self: end;
  color: var(--ink-3);
  font-size: var(--type-sm);
  font-weight: 700;
}
.portal-accounting-report-list article.is-latest > .portal-report-preview-state { grid-row: 2; }
.portal-report-library-foot { align-items: center; flex-wrap: wrap; font-size: var(--type-sm); line-height: 1.45; }
@media (hover: hover) and (pointer: fine) {
  .portal-accounting-report-list article:hover { border-color: var(--border-strong); transform: translateY(-2px); box-shadow: 0 16px 30px -28px color-mix(in srgb, var(--ink) 56%, transparent); }
  .portal-accounting-report-list article:hover .portal-accounting-report-mark i:nth-child(2) { transform: translateX(3px); }
  .portal-accounting-report-list article:hover .portal-accounting-report-mark i:nth-child(3) { width: 68%; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-feature-card,
.portal-accounting-report-list article,
.portal-accounting-report-mark i { transition: none !important; }
  .portal-feature-card:hover,
.portal-accounting-report-list article:hover { transform: none !important; }
}
.portal-accounting-reports-empty { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-xl); }
.portal-accounting-reports-empty > span { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border: 1px solid var(--border-strong); color: var(--deep-blue); font-size: var(--type-lg); }
.portal-accounting-reports-empty strong { display: block; color: var(--ink); font-size: var(--type-base); }
.portal-accounting-reports-empty p { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
.portal-accounting-reports-empty a {
  display: inline-block;
  margin-top: var(--space-sm);
  color: var(--deep-blue);
  font-size: var(--type-sm);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--deep-blue) 34%, transparent);
  text-underline-offset: 3px;
}
.portal-accounting-reports-empty a:hover { text-decoration-color: currentColor; }

@media (max-width: 700px) {
  .portal-accounting-report-list { grid-template-columns: minmax(0, 1fr); }
  .portal-accounting-report-list article,
.portal-accounting-report-list article.is-latest { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--border); }
  .portal-accounting-report-list article:last-child { border-bottom: 0; }
}
@media (max-width: 520px) {
  .portal-accounting-review-heading > div { width: 100%; min-width: 0; }
  .portal-accounting-review-heading > div:last-child { min-width: 0; }
  .portal-accounting-reports > header { align-items: flex-start; flex-direction: column; gap: var(--space-xs); }
  .portal-accounting-report-list article,
.portal-accounting-report-list article.is-latest { min-width: 0; grid-template-columns: 38px minmax(0, 1fr); padding: var(--space-md); }
  .portal-accounting-report-list article > div { min-width: 0; }
  .portal-accounting-report-list strong,
.portal-accounting-report-list small { overflow-wrap: anywhere; }
  .portal-accounting-report-list article.is-latest .portal-accounting-report-mark { width: 38px; height: 42px; padding: var(--space-xs); }
  .portal-accounting-report-list article.is-latest > .portal-accounting-report-mark { grid-column: 1; grid-row: 1 / span 3; }
  .portal-accounting-report-list article.is-latest > div { grid-column: 2; grid-row: 2; }
  .portal-accounting-report-list em,
.portal-accounting-report-list article.is-latest > em { grid-column: 2; grid-row: 1; justify-self: start; }
  .portal-accounting-report-list button,
.portal-report-preview-state { grid-column: 2; grid-row: auto; justify-self: start; }
  .portal-accounting-report-list article.is-latest > button,
.portal-accounting-report-list article.is-latest > .portal-report-preview-state { grid-column: 2; grid-row: 3; }
  .portal-report-library-foot { align-items: flex-start; flex-direction: column; }
}
}
.portal-card--flat { box-shadow: none; background: rgba(var(--raise-ink), 0.025); }
.portal-card--rise { animation: portalRiseIn 0.5s var(--ease) both; }
.portal-bracket::before {
  content: "";
  position: absolute;
  inset: 3px;
  pointer-events: none;
  --pb: color-mix(in oklab, var(--amber-gold) 55%, transparent);
  --pl: 12px;
  background:
    linear-gradient(var(--pb), var(--pb)) left top / var(--pl) 1px no-repeat,
    linear-gradient(var(--pb), var(--pb)) left top / 1px var(--pl) no-repeat,
    linear-gradient(var(--pb), var(--pb)) right top / var(--pl) 1px no-repeat,
    linear-gradient(var(--pb), var(--pb)) right top / 1px var(--pl) no-repeat,
    linear-gradient(var(--pb), var(--pb)) left bottom / var(--pl) 1px no-repeat,
    linear-gradient(var(--pb), var(--pb)) left bottom / 1px var(--pl) no-repeat,
    linear-gradient(var(--pb), var(--pb)) right bottom / var(--pl) 1px no-repeat,
    linear-gradient(var(--pb), var(--pb)) right bottom / 1px var(--pl) no-repeat;
}
.portal-bracket--frame::after {
  content: "";
  position: absolute;
  inset: 6px;
  pointer-events: none;
  border: 1px solid rgba(var(--raise-ink), 0.06);
}
.portal-mark {
  position: relative;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid var(--amber-gold);
}
.portal-mark::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid color-mix(in oklab, var(--amber-gold) 45%, transparent);
}
.portal-mark::after {
  content: "";
  width: 9px;
  height: 9px;
  background: var(--amber-gold);
  transform: rotate(45deg);
}
.portal-navgroup {
  padding: 0 var(--space-sm) var(--space-xs);
  font-size: var(--type-micro);
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .38);
}
.portal-navbadge {
  font-family: var(--font-mono);
  font-size: var(--type-micro);
  letter-spacing: 0.04em;
  padding: var(--space-3xs) 6px;
  border: 1px solid var(--border-strong);
  color: var(--ink-3);
}
.portal-navbadge--attn {
  border: none;
  background: var(--amber-gold);
  color: var(--on-accent);
  font-weight: 700;
}
.portal-navbadge--lock { border: none; padding: 0; color: var(--portal-faintest); }
.portal-encrypted {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 0;
  border: 0;
  background: transparent;
}
.portal-encrypted-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--forest-green);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--forest-green) 18%, transparent);
}
.portal-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  align-items: center;
  gap: var(--space-lg);
  padding: var(--space-sm) var(--space-xl);
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}
@layer components {
  .portal-topbar { min-height: 58px; justify-content: space-between; }
  .portal-topbar-scope {
    display: flex;
    min-width: 16rem;
    min-height: 36px;
    align-items: center;
    padding: var(--space-xs) var(--space-md);
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-topbar-scope strong {
    max-width: 24rem;
    overflow: hidden;
    color: var(--ink);
    font-size: var(--type-sm);
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .portal-scope-button {
    min-width: 250px;
    min-height: 36px;
    padding: var(--space-xs) var(--space-md);
    border-radius: 0;
    font-size: var(--type-sm);
    font-weight: 650;
  }
  .portal-topbar-actions {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-left: auto;
  }
  .portal-topbar-quiet {
    min-height: 34px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--ink);
    padding: var(--space-xs) var(--space-md);
    cursor: pointer;
    font-size: var(--type-sm);
    font-weight: 650;
  }
  .portal-topbar-quiet:hover { border-color: var(--deep-blue); color: var(--deep-blue); }
  .portal-topbar-avatar {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    background: var(--portal-inverse-bg);
    color: var(--portal-inverse-ink);
    font-size: var(--type-sm);
    font-weight: 700;
    text-decoration: none;
  }
  .portal-encrypted strong,
.portal-encrypted small { display: block; }
  .portal-encrypted strong { color: var(--prod-color-91); font-size: var(--type-sm); font-weight: 650; }
  .portal-encrypted small { margin-top: var(--space-3xs); color: rgba(255, 255, 255, .46); font-size: var(--type-micro); }
}
.portal-crumb {
  font-size: var(--type-micro);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--portal-faintest);
}
.portal-topbar-title {
  font-family: var(--font-serif);
  font-size: 1.3125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  white-space: nowrap;
}
.portal-tierchip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.7rem;
  border: 1px solid color-mix(in oklab, var(--amber-gold) 45%, transparent);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--amber-gold);
  white-space: nowrap;
}
.portal-tierchip--muted {
  border-color: var(--border-strong);
  color: var(--portal-dim);
}
.portal-searchbtn {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-height: 2.375rem;
  padding: 0 0.875rem;
  background: rgba(var(--raise-ink), 0.035);
  border: 1px solid var(--border-strong);
  color: var(--ink-3);
  font-size: 0.78rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.portal-searchbtn:hover {
  border-color: color-mix(in oklab, var(--amber-gold) 40%, transparent);
  color: var(--ink-2);
}
.portal-kbd {
  font-family: var(--font-mono);
  font-size: 0.656rem;
  padding: var(--space-3xs) 6px;
  border: 1px solid var(--border-strong);
  color: var(--portal-faint);
}
.portal-iconbtn {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.375rem;
  height: 2.375rem;
  flex: 0 0 auto;
  border: 1px solid var(--border-strong);
  color: var(--ink-3);
  cursor: pointer;
  transition: border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.portal-iconbtn:hover { border-color: rgba(var(--raise-ink), 0.24); color: var(--ink-2); }
.portal-iconbtn-count {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  border: 2px solid var(--paper);
  background: var(--amber-gold);
  color: var(--on-accent);
  font-family: var(--font-mono);
  font-size: var(--type-micro);
  font-weight: 700;
  display: grid;
  place-items: center;
}
.portal-profile {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: var(--space-xs) var(--space-md) var(--space-xs) var(--space-xs);
  border: 1px solid var(--border-strong);
  cursor: pointer;
  transition: border-color var(--dur-1) var(--ease);
}
.portal-profile:hover { border-color: rgba(var(--raise-ink), 0.24); }
.portal-avatar {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--avatar-bg);
  color: var(--amber-gold);
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 0.72rem;
}
.portal-palette-overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 14vh;
  background: var(--overlay);
  backdrop-filter: blur(6px);
  animation: portalOverlayIn 0.18s ease both;
}
.portal-palette {
  width: min(600px, 92vw);
  background: var(--panel-bg);
  border: 1px solid var(--border-strong);
  box-shadow: 0 40px 90px -30px rgba(0, 0, 0, 0.9);
  animation: portalPaletteIn 0.24s var(--ease) both;
}
.portal-palette-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.875rem;
  cursor: pointer;
  transition: background var(--dur-1) var(--ease);
}
.portal-palette-row[data-active="true"],
.portal-palette-row:hover { background: rgba(var(--raise-ink), 0.06); }
.portal-toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  z-index: 95;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 1.25rem;
  background: var(--panel-bg);
  border: 1px solid color-mix(in oklab, var(--amber-gold) 34%, transparent);
  box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.85);
  color: var(--ink);
  font-size: 0.8125rem;
  animation: portalToastIn 0.3s var(--ease) both;
}
.portal-stat { padding: 1.35rem 1.5rem; }
.portal-stat-value {
  font-family: var(--font-serif);
  font-size: 1.875rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin-top: 0.55rem;
  font-variant-numeric: tabular-nums lining-nums;
}
.portal-stat-delta { margin-top: 0.375rem; font-family: var(--font-mono); font-size: 0.75rem; }
.portal-step-mark {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 50%;
  font-size: 0.75rem;
}
.portal-step-mark--done {
  background: color-mix(in oklab, var(--forest-green) 20%, transparent);
  border: 1px solid var(--forest-green);
  color: var(--forest-green);
}
.portal-step-mark--current {
  background: var(--amber-gold);
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--amber-gold) 22%, transparent);
}
.portal-step-mark--upcoming {
  border: 1px solid var(--border-strong);
  color: var(--portal-faintest);
}
.portal-step-line { width: 1px; flex: 1; min-height: 26px; margin-top: var(--space-2xs); background: var(--border); }
.portal-step-line--done { background: color-mix(in oklab, var(--forest-green) 60%, transparent); }
.portal-chip {
  padding: 0.5rem 0.9rem;
  font-size: 0.75rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  border: 1px solid var(--border-strong);
  background: transparent;
  color: var(--portal-dim);
  transition: border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.portal-chip:hover { color: var(--ink-2); border-color: color-mix(in oklab, var(--amber-gold) 40%, transparent); }
.portal-chip[data-on="true"] {
  background: var(--amber-gold);
  border-color: var(--amber-gold);
  color: var(--on-accent);
  font-weight: 600;
}
.portal-pill {
  display: inline-flex;
  align-items: center;
  font-size: 0.625rem;
  font-weight: 600;
  padding: var(--space-3xs) var(--space-sm);
  border: 1px solid var(--border-strong);
  color: var(--ink-3);
  white-space: nowrap;
}
.portal-pill--gold { color: var(--amber-gold); border-color: color-mix(in oklab, var(--amber-gold) 40%, transparent); }
.portal-pill--blue { color: var(--deep-blue); border-color: color-mix(in oklab, var(--deep-blue) 40%, transparent); }
.portal-pill--sage { color: var(--forest-green); border-color: color-mix(in oklab, var(--forest-green) 40%, transparent); }
.portal-pill--terra { color: var(--terra); border-color: color-mix(in oklab, var(--terra) 40%, transparent); }
.portal-row {
  position: relative;
  transition: transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease), background var(--dur-2) var(--ease);
}
.portal-row:hover {
  transform: scale(1.012);
  background: rgba(var(--raise-ink), 0.05);
  box-shadow: 0 18px 38px -16px rgba(0, 0, 0, 0.8);
  z-index: 6;
}
.portal-lift {
  transition: transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);
}
.portal-lift:hover {
  transform: translateY(-4px);
  border-color: color-mix(in oklab, var(--amber-gold) 45%, transparent);
  box-shadow: 0 30px 60px -24px rgba(0, 0, 0, 0.85);
}
@media (min-width: 1024px) {
  .app-scope .app-mnav-portal { display: none !important; }
}
@layer components {
  .portal-overview {
    display: grid;
    gap: var(--space-lg);
    max-width: 1180px;
    margin: 0 auto;
  }

  .portal-overview-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-lg);
    padding: 0;
    border: 0;
  }

  .portal-overview-head h1 {
    margin-top: var(--space-2xs);
    color: var(--ink);
    font-family: var(--font-ui-sans), ui-sans-serif, system-ui, sans-serif;
    font-size: var(--type-2xl);
    font-weight: 720;
    letter-spacing: -.035em;
    line-height: 1.08;
  }

  .portal-overview-context {
    display: block;
    color: var(--ink-3);
    font-size: var(--type-sm);
    text-align: right;
  }

  .portal-overview-context span,
.portal-overview-context small {
    display: block;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: inherit;
    font-weight: 500;
  }

  .portal-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .72fr);
    gap: var(--space-lg);
    align-items: start;
  }

  .portal-overview-main,
.portal-overview-side {
    min-width: 0;
    display: grid;
    gap: var(--space-lg);
    align-content: start;
  }

  .portal-overview-panel {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--surface);
  }

  .portal-overview-section-title {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    padding: var(--space-sm) var(--space-md);
    border-bottom: 1px solid var(--border);
  }

  .portal-overview-section-title h2 {
    margin-top: var(--space-2xs);
    color: var(--ink);
    font-size: var(--type-lg);
    font-weight: 720;
    letter-spacing: -.02em;
    line-height: 1.2;
  }

  .portal-overview-section-meta {
    color: var(--ink-3);
    font-size: var(--type-sm);
    text-align: right;
  }

  .portal-overview-banner {
    min-height: 74px;
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr) auto;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid var(--border-strong);
    border-radius: 0;
    background: linear-gradient(105deg, rgba(45, 82, 119, .07) 0%, rgba(45, 82, 119, .025) 30%, rgba(45, 82, 119, 0) 58%), var(--surface);
    box-shadow: inset 4px 0 var(--deep-blue);
  }

  .portal-overview-banner[data-tone="attention"] {
    background: linear-gradient(105deg, rgba(164, 90, 67, .07) 0%, rgba(164, 90, 67, .025) 30%, rgba(164, 90, 67, 0) 58%), var(--surface);
    box-shadow: inset 4px 0 var(--terra);
  }

  .portal-overview-banner-signal {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-2xs);
    padding: var(--space-md) var(--space-lg);
    border-right: 1px solid var(--border);
    color: var(--deep-blue);
  }

  .portal-overview-banner[data-tone="attention"] .portal-overview-banner-signal { color: var(--terra); }

  .portal-overview-banner-signal span {
    font-size: var(--type-micro);
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .portal-overview-banner-signal strong {
    color: currentColor;
    font-size: var(--type-lg);
    font-weight: 750;
    letter-spacing: -.01em;
  }

  .portal-overview-banner-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-md) var(--space-lg);
  }

  .portal-overview-banner-copy h2 {
    color: var(--ink);
    font-size: var(--type-lg);
    font-weight: 750;
    letter-spacing: -.01em;
    line-height: 1.25;
  }

  .portal-overview-banner-copy > span {
    display: block;
    margin-top: var(--space-2xs);
    overflow: hidden;
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-overview-banner-action {
    align-self: center;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    margin-right: var(--space-md);
    border: 1px solid var(--portal-inverse-bg);
    background: var(--portal-inverse-bg);
    color: var(--portal-inverse-ink);
    padding: var(--space-xs) var(--space-md);
    font-size: var(--type-sm);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
  }

  .portal-overview-banner-action:hover { border-color: var(--deep-blue); background: var(--deep-blue); color: var(--on-accent); }

  .portal-overview-attention-surface { border-top: 3px solid var(--terra); }

  .portal-overview-attention-summary {
    min-height: 76px;
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    background: var(--portal-inverse-bg);
    color: var(--portal-inverse-ink);
  }

  .portal-overview-attention-summary > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-md) var(--space-lg);
    border-right: 1px solid color-mix(in srgb, var(--portal-inverse-ink) 14%, transparent);
  }

  .portal-overview-attention-summary .portal-eyebrow { color: var(--portal-inverse-faint); }

  .portal-overview-attention-summary strong {
    margin-top: var(--space-2xs);
    color: var(--portal-inverse-ink);
    font-size: var(--type-2xl);
    line-height: 1;
  }

  .portal-overview-attention-summary > p {
    align-self: center;
    padding: var(--space-md) var(--space-lg);
    color: var(--portal-inverse-ink);
    font-size: var(--type-lg);
    font-weight: 700;
  }

  .portal-overview-attention-summary small {
    display: block;
    margin-top: var(--space-2xs);
    color: var(--portal-inverse-muted);
    font-size: var(--type-sm);
    font-weight: 500;
  }

  .portal-overview-action-register { border-top: 0; }

  .portal-overview-action-register li {
    min-height: 64px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-sm) var(--space-md) var(--space-sm) var(--space-lg);
    border-bottom: 1px solid var(--border);
    background: linear-gradient(105deg, rgba(45, 82, 119, .055) 0%, rgba(45, 82, 119, .018) 34%, rgba(45, 82, 119, 0) 62%), var(--surface);
    transition: transform var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), background var(--dur-1) var(--ease);
  }

  .portal-overview-action-register li:last-child { border-bottom: 0; }
  .portal-overview-action-register li:hover { z-index: 1; background: color-mix(in srgb, var(--surface) 88%, var(--deep-blue-soft)); transform: translateY(-1px); box-shadow: var(--shadow-sm); }

  .portal-overview-register-copy strong,
.portal-overview-register-copy small { display: block; }
  .portal-overview-register-copy strong { color: var(--ink); font-size: var(--type-base); font-weight: 700; }
  .portal-overview-register-copy small { margin-top: var(--space-3xs); overflow: hidden; color: var(--ink-3); font-size: var(--type-sm); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }

  .portal-overview-row-action {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--border-strong);
    background: var(--surface);
    color: var(--deep-blue);
    padding: var(--space-2xs) var(--space-sm);
    font-size: var(--type-sm);
    font-weight: 700;
    text-decoration: none;
  }
  .portal-overview-row-action:hover { border-color: var(--deep-blue); }
  .portal-overview-row-action.is-primary { border-color: var(--deep-blue); background: var(--deep-blue); color: var(--on-accent); }
  .portal-overview-row-action.is-primary:hover { border-color: var(--portal-inverse-bg); background: var(--portal-inverse-bg); color: var(--portal-inverse-ink); }

  .portal-overview-feature-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-lg);
    margin-bottom: var(--space-md);
  }
  .portal-overview-feature-heading h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-xl); line-height: 1.15; letter-spacing: -.025em; }

  .portal-overview-release-board {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(210px, .8fr);
    gap: var(--space-md);
  }

  .portal-overview-release-feature {
    min-height: 212px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--deep-blue) 46%, var(--portal-inverse-bg));
    border-top: 2px solid var(--terra);
    background: linear-gradient(150deg, color-mix(in srgb, var(--deep-blue) 58%, var(--portal-inverse-bg)), var(--portal-inverse-bg) 72%);
    color: var(--portal-inverse-ink);
    padding: var(--space-lg);
    transition: border-color .24s ease, transform .24s cubic-bezier(.22, 1, .36, 1), box-shadow .24s ease;
  }
  .portal-overview-release-feature:hover { border-color: color-mix(in srgb, var(--terra) 50%, var(--portal-inverse-bg)); transform: translateY(-3px); box-shadow: 0 20px 36px -28px color-mix(in srgb, var(--portal-inverse-bg) 74%, transparent); }
  .portal-overview-release-feature .portal-eyebrow { color: var(--portal-inverse-faint); }
  .portal-overview-release-feature h3 { margin: var(--space-md) 0 var(--space-xs); color: var(--portal-inverse-ink); font-size: var(--type-xl); line-height: 1.15; letter-spacing: -.025em; }
  .portal-overview-release-feature p:not(.portal-eyebrow) { margin: var(--space-0); color: var(--portal-inverse-muted); font-size: var(--type-sm); }

  .portal-overview-release-mark {
    width: 38px;
    height: 46px;
    display: grid;
    align-content: center;
    gap: var(--space-xs);
    margin-bottom: var(--space-lg);
    border: 1px solid color-mix(in srgb, var(--portal-inverse-ink) 26%, transparent);
    background: color-mix(in srgb, var(--portal-inverse-ink) 5.5%, transparent);
    padding: var(--space-sm);
  }
  .portal-overview-release-mark span { height: 2px; background: var(--terra); transition: width .24s cubic-bezier(.22, 1, .36, 1), transform .24s cubic-bezier(.22, 1, .36, 1); }
  .portal-overview-release-mark span:nth-child(1) { width: 100%; }
  .portal-overview-release-mark span:nth-child(2) { width: 74%; }
  .portal-overview-release-mark span:nth-child(3) { width: 52%; }
  .portal-overview-release-feature:hover .portal-overview-release-mark span:nth-child(2) { transform: translateX(3px); }
  .portal-overview-release-feature:hover .portal-overview-release-mark span:nth-child(3) { width: 70%; }

  .portal-overview-release-foot {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-md);
    margin-top: auto;
    padding-top: var(--space-lg);
    border-top: 1px solid color-mix(in srgb, var(--portal-inverse-ink) 14%, transparent);
    color: var(--portal-inverse-muted);
    font-size: var(--type-sm);
  }
  .portal-overview-release-feature .portal-overview-row-action.is-primary { border-color: color-mix(in srgb, var(--portal-inverse-ink) 86%, transparent); background: var(--portal-inverse-ink); color: var(--portal-inverse-bg); }
  .portal-overview-release-feature .portal-overview-row-action.is-primary:hover { border-color: var(--terra); background: var(--terra); color: var(--portal-on-terra); }

  .portal-overview-release-mini-stack { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: var(--space-md); }
  .portal-overview-release-mini { min-height: 98px; display: flex; flex-direction: column; border: 1px solid var(--border); background: var(--surface); padding: var(--space-md); transition: border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease); }
  .portal-overview-release-mini:hover { border-color: var(--border-strong); transform: translateY(-1px); }
  .portal-overview-release-mini h3 { margin: var(--space-sm) 0; color: var(--ink); font-size: var(--type-md); line-height: 1.2; }
  .portal-overview-release-mini-foot { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-top: auto; color: var(--ink-3); font-size: var(--type-sm); }

  .portal-overview-placeholder-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
  }

  .portal-overview-placeholder-card {
    --placeholder-signal: var(--deep-blue);
    position: relative;
    min-height: calc(var(--space-3xl) * 3 + var(--space-xl) + var(--space-lg) + var(--space-3xs));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--border);
    background:
      linear-gradient(145deg, color-mix(in srgb, var(--placeholder-signal) 7%, transparent), transparent 56%),
      var(--surface);
    color: var(--ink);
    padding: var(--space-lg);
    text-decoration: none;
    transition: border-color .24s ease, transform .24s cubic-bezier(.22, 1, .36, 1), box-shadow .24s ease;
  }
  .portal-overview-placeholder-card[data-tone="rust"] { --placeholder-signal: var(--terra); }
  .portal-overview-placeholder-card[data-tone="olive"] { --placeholder-signal: var(--forest-green); }
  .portal-overview-placeholder-card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: var(--space-3xs);
    height: calc(var(--space-xl) + var(--space-md) + var(--space-xs));
    background: var(--placeholder-signal);
    transition: height .28s cubic-bezier(.22, 1, .36, 1);
  }
  .portal-overview-placeholder-index {
    align-self: flex-end;
    color: color-mix(in srgb, var(--placeholder-signal) 74%, var(--ink-3));
    font-size: var(--type-sm);
    font-weight: 760;
    letter-spacing: .08em;
  }
  .portal-overview-placeholder-card > .portal-eyebrow { margin-top: var(--space-xs); }
  .portal-overview-placeholder-card > strong {
    max-width: 27ch;
    margin-top: var(--space-sm);
    color: var(--ink);
    font-size: var(--type-lg);
    line-height: 1.2;
    letter-spacing: -.015em;
  }
  .portal-overview-placeholder-detail {
    margin-top: var(--space-sm);
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.45;
  }
  .portal-overview-placeholder-foot {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-sm);
    margin-top: auto;
    padding-top: var(--space-lg);
    color: var(--ink-3);
    font-size: var(--type-sm);
    font-weight: 650;
  }
  .portal-overview-placeholder-foot > span:last-child { color: var(--deep-blue); }
  @media (hover: hover) and (pointer: fine) {
    .portal-overview-placeholder-card:hover {
      border-color: var(--border-strong);
      transform: translateY(calc(var(--space-3xs) * -1));
      box-shadow: var(--shadow-sm);
    }
    .portal-overview-placeholder-card:hover::before { height: 100%; }
  }
  .portal-financial-snapshot {
    --snapshot-signal: var(--deep-blue);
    padding-top: var(--space-xl);
    border-top: 1px solid var(--border);
  }
  .portal-financial-snapshot-disclaimer {
    border: 1px solid color-mix(in srgb, var(--terra) 42%, var(--border));
    border-left: var(--space-3xs) solid var(--terra);
    background: color-mix(in srgb, var(--terra) 7%, var(--surface));
    padding: var(--space-md) var(--space-lg);
    margin-bottom: var(--space-md);
  }
  .portal-financial-snapshot-disclaimer strong {
    display: block;
    color: var(--ink);
    font-size: var(--type-base);
    letter-spacing: -.01em;
  }
  .portal-financial-snapshot-disclaimer p {
    margin: var(--space-3xs) var(--space-0) var(--space-0);
    color: var(--ink-2);
    font-size: var(--type-sm);
    line-height: 1.5;
    max-width: 78ch;
  }
  .portal-financial-snapshot-total {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--space-xs) var(--space-sm);
    margin-bottom: var(--space-sm);
    color: var(--ink-2);
    font-size: var(--type-sm);
  }
  .portal-financial-snapshot-total strong {
    color: var(--ink);
    font-size: var(--type-lg);
    letter-spacing: -.015em;
  }
  .portal-financial-snapshot-total small,
.portal-financial-snapshot-balance small {
    color: var(--ink-3);
    font-size: var(--type-micro);
  }
  .portal-financial-snapshot-legend {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    margin-bottom: var(--space-md);
    color: var(--ink-3);
    font-size: var(--type-micro);
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .portal-financial-snapshot-legend em {
    font-style: normal;
    text-transform: none;
    letter-spacing: normal;
  }
  .portal-financial-snapshot-legend [data-legend] {
    width: var(--space-sm);
    height: var(--space-sm);
    background: var(--snapshot-signal);
  }
  .portal-financial-snapshot-legend [data-legend="out"] { opacity: .35; }
  .portal-financial-snapshot-group > h3 {
    margin: var(--space-lg) var(--space-0) var(--space-sm);
    color: var(--ink-2);
    font-size: var(--type-sm);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .portal-financial-snapshot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
    gap: var(--space-md);
  }
  .portal-financial-snapshot-account {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    border: 1px solid var(--border);
    background: var(--surface);
    padding: var(--space-lg);
  }
  .portal-financial-snapshot-account-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-sm);
  }
  .portal-financial-snapshot-account-head strong {
    color: var(--ink);
    font-size: var(--type-base);
    line-height: 1.3;
    letter-spacing: -.01em;
  }
  .portal-financial-snapshot-balance {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: end;
    text-align: right;
    gap: var(--space-3xs);
  }
  .portal-financial-snapshot-balance span {
    color: var(--ink);
    font-size: var(--type-lg);
    font-weight: 700;
    letter-spacing: -.015em;
  }
  .portal-financial-snapshot-flows {
    margin-top: auto;
    border-top: 1px solid var(--border);
    padding-top: var(--space-sm);
  }
  .portal-financial-snapshot-flows svg {
    display: block;
    width: 100%;
    height: auto;
  }
  .portal-financial-snapshot-flow-months {
    display: flex;
    margin-top: var(--space-3xs);
    color: var(--ink-3);
    font-size: var(--type-micro);
  }
  .portal-financial-snapshot-flow-months span {
    flex: 1 1 0;
    text-align: center;
  }
  .portal-roadmap {
    padding-top: var(--space-xl);
    border-top: 1px solid var(--border);
  }
  .portal-roadmap-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-md);
  }
  .portal-roadmap-card {
    --roadmap-signal: var(--deep-blue);
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    background:
      linear-gradient(145deg, color-mix(in srgb, var(--roadmap-signal) 6%, transparent), transparent 52%),
      var(--surface);
    color: var(--ink);
    padding: var(--space-lg);
  }
  .portal-roadmap-card[data-tone="rust"] { --roadmap-signal: var(--terra); }
  .portal-roadmap-card[data-tone="olive"] { --roadmap-signal: var(--forest-green); }
  .portal-roadmap-card-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-sm);
  }
  .portal-roadmap-card-head strong {
    color: var(--ink);
    font-size: var(--type-lg);
    line-height: 1.2;
    letter-spacing: -.015em;
  }
  .portal-roadmap-badge {
    flex-shrink: 0;
    border: 1px solid color-mix(in srgb, var(--roadmap-signal) 36%, var(--border));
    background: color-mix(in srgb, var(--roadmap-signal) 9%, var(--surface));
    color: color-mix(in srgb, var(--roadmap-signal) 78%, var(--ink));
    padding: var(--space-3xs) var(--space-sm);
    font-size: var(--type-micro);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .portal-roadmap-card > p {
    max-width: 38ch;
    margin: var(--space-sm) var(--space-0) var(--space-lg);
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.45;
  }
  .portal-roadmap-art {
    position: relative;
    margin: auto var(--space-0) var(--space-0);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--roadmap-signal) 4%, var(--paper));
    padding: var(--space-lg) var(--space-md) var(--space-sm);
  }
  .portal-roadmap-art svg {
    display: block;
    width: 100%;
    height: auto;
  }
  .portal-roadmap-art figcaption {
    position: absolute;
    inset: var(--space-xs) var(--space-sm) auto auto;
    color: var(--ink-3);
    font-size: var(--type-micro);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .portal-overview-text-link { color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; text-decoration: none; }
  .portal-overview-text-link:hover { text-decoration: underline; text-underline-offset: 3px; }

  .portal-overview-service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-sm);
    padding: var(--space-md);
  }
  .portal-overview-service-grid a { min-height: 70px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); padding: var(--space-sm); text-decoration: none; transition: border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease); }
  .portal-overview-service-grid a:hover { border-color: var(--border-strong); transform: translateY(-1px); }
  .portal-overview-service-grid strong,
.portal-overview-service-grid a > span:last-child { display: block; }
  .portal-overview-service-grid strong { margin-top: var(--space-sm); font-size: var(--type-sm); }
  .portal-overview-service-grid a > span:last-child { margin-top: var(--space-3xs); overflow: hidden; color: var(--ink-3); font-size: var(--type-sm); text-overflow: ellipsis; white-space: nowrap; }
  .portal-overview-service-dot { width: 18px; height: 3px; display: block; background: var(--deep-blue); }
  .portal-overview-service-dot.signal-1 { background: var(--terra); }
  .portal-overview-service-dot.signal-2 { background: var(--forest-green); }
  .portal-overview-service-empty { padding: var(--space-md); }
  .portal-overview-service-empty strong,
.portal-overview-service-empty span { display: block; }
  .portal-overview-service-empty strong { font-size: var(--type-base); }
  .portal-overview-service-empty span { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }

  .portal-overview-explore-list { display: grid; }

  .portal-overview-learning-card,
.portal-overview-discussion-card {
    min-width: 0;
    color: var(--ink);
    text-decoration: none;
    transition: background var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
  }

  .portal-overview-learning-card {
    min-height: 106px;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md);
    background: linear-gradient(120deg, color-mix(in srgb, var(--forest-green-soft) 72%, transparent), transparent 70%), var(--surface);
  }

  .portal-overview-learning-time {
    width: 52px;
    height: 58px;
    display: grid;
    place-content: center;
    border: 1px solid var(--border-strong);
    background: var(--paper);
    color: var(--deep-blue);
    text-align: center;
  }

  .portal-overview-learning-time strong,
.portal-overview-learning-time small { display: block; }
  .portal-overview-learning-time strong { font-size: var(--type-xl); line-height: 1; }
  .portal-overview-learning-time small { margin-top: var(--space-3xs); color: var(--ink-3); font-size: var(--type-micro); font-weight: 700; text-transform: uppercase; }
  .portal-overview-learning-copy { min-width: 0; }
  .portal-overview-learning-copy > strong,
.portal-overview-learning-copy > small { display: block; }
  .portal-overview-learning-copy > strong { margin-top: var(--space-2xs); font-size: var(--type-base); line-height: 1.25; }
  .portal-overview-learning-copy > small { margin-top: var(--space-xs); overflow: hidden; color: var(--ink-3); font-size: var(--type-sm); text-overflow: ellipsis; white-space: nowrap; }

  .portal-overview-learning-progress {
    display: flex;
    gap: var(--space-2xs);
    margin-top: var(--space-sm);
  }
  .portal-overview-learning-progress i { height: 3px; flex: 1 1 0; background: var(--border); }
  .portal-overview-learning-progress i[data-complete="true"] { background: var(--forest-green); }
  .portal-overview-explore-arrow { color: var(--deep-blue); font-size: var(--type-lg); font-weight: 750; transition: transform var(--dur-1) var(--ease); }

  .portal-overview-discussion-card {
    min-height: 112px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: var(--space-md);
    padding: var(--space-md);
    border-top: 1px solid var(--border);
    background: linear-gradient(120deg, rgba(45, 82, 119, .055), transparent 64%), var(--surface);
  }
  .portal-overview-discussion-card > span:nth-child(2) { min-width: 0; }
  .portal-overview-discussion-card > span:nth-child(2) > strong,
.portal-overview-discussion-card > span:nth-child(2) > small { display: block; }
  .portal-overview-discussion-card > span:nth-child(2) > strong { margin-top: var(--space-xs); font-size: var(--type-base); line-height: 1.28; }
  .portal-overview-discussion-card > span:nth-child(2) > small { margin-top: var(--space-xs); overflow: hidden; color: var(--ink-3); font-size: var(--type-sm); text-overflow: ellipsis; white-space: nowrap; }

  .portal-overview-conversation-mark {
    width: var(--space-lg);
    height: var(--space-lg);
    display: flex;
    align-items: end;
    justify-content: center;
    gap: var(--space-3xs);
    margin-top: var(--space-3xs);
  }
  .portal-overview-conversation-mark i { width: 3px; background: var(--terra); transition: height .24s cubic-bezier(.22, 1, .36, 1); }
  .portal-overview-conversation-mark i:nth-child(1) { height: var(--space-xs); }
  .portal-overview-conversation-mark i:nth-child(2) { height: var(--space-md); }
  .portal-overview-conversation-mark i:nth-child(3) { height: var(--space-sm); }

  .portal-overview-discussion-avatars {
    grid-column: 2;
    display: flex;
    margin-top: var(--space-sm);
  }
  .portal-overview-discussion-avatars i {
    width: var(--space-xl);
    height: var(--space-xl);
    display: grid;
    place-items: center;
    margin-left: calc(var(--space-xs) * -1);
    border: 1px solid var(--surface);
    border-radius: 50%;
    background: var(--deep-blue-soft);
    color: var(--deep-blue);
    font-size: var(--type-micro);
    font-style: normal;
    font-weight: 750;
  }
  .portal-overview-discussion-avatars i:first-child { margin-left: 0; }

  @media (hover: hover) and (pointer: fine) {
    .portal-overview-learning-card:hover,
.portal-overview-discussion-card:hover { z-index: 1; background-color: var(--paper); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
    .portal-overview-learning-card:hover .portal-overview-explore-arrow { transform: translateX(var(--space-2xs)); }
    .portal-overview-discussion-card:hover .portal-overview-conversation-mark i:nth-child(1) { height: var(--space-sm); }
    .portal-overview-discussion-card:hover .portal-overview-conversation-mark i:nth-child(2) { height: calc(var(--space-md) + var(--space-2xs)); }
    .portal-overview-discussion-card:hover .portal-overview-conversation-mark i:nth-child(3) { height: var(--space-xs); }
  }

  .portal-overview-side-panel .portal-overview-section-title { padding: var(--space-sm) var(--space-md); }
  .portal-upload--compact { padding: var(--space-md); }

  .portal-publication-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-top: 2px solid var(--deep-blue);
    background:
      linear-gradient(145deg, rgba(45, 82, 119, .07), rgba(45, 82, 119, 0) 48%),
      var(--surface);
    box-shadow: 0 16px 32px -32px color-mix(in srgb, var(--ink) 52%, transparent);
    transition: transform .24s cubic-bezier(.22, 1, .36, 1), border-color .24s ease, box-shadow .24s ease;
  }
  .portal-publication-card[data-content-type="announcement"],
.portal-publication-card[data-content-type="deadline"] {
    border-top-color: var(--terra);
    background:
      linear-gradient(145deg, rgba(164, 90, 67, .075), rgba(164, 90, 67, 0) 48%),
      var(--surface);
  }
  .portal-publication-card[data-content-type="education"],
.portal-publication-card[data-content-type="event"] {
    border-top-color: var(--forest-green);
    background:
      linear-gradient(145deg, rgba(119, 132, 83, .08), rgba(119, 132, 83, 0) 48%),
      var(--surface);
  }
  .portal-publication-kicker {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    padding: var(--space-md) var(--space-md) 0;
  }
  .portal-publication-kicker > span {
    color: var(--ink-3);
    font-size: var(--type-sm);
    font-weight: 650;
  }
  .portal-publication-copy { padding: var(--space-lg) var(--space-md); }
  .portal-publication-rule {
    width: 42px;
    display: grid;
    grid-template-columns: 1fr .7fr .4fr;
    gap: var(--space-3xs);
    margin-bottom: var(--space-md);
  }
  .portal-publication-rule span { height: 3px; background: var(--deep-blue); transition: width .24s cubic-bezier(.22, 1, .36, 1), transform .24s cubic-bezier(.22, 1, .36, 1); }
  .portal-publication-card[data-content-type="announcement"] .portal-publication-rule span,
.portal-publication-card[data-content-type="deadline"] .portal-publication-rule span { background: var(--terra); }
  .portal-publication-card[data-content-type="education"] .portal-publication-rule span,
.portal-publication-card[data-content-type="event"] .portal-publication-rule span { background: var(--forest-green); }
  .portal-publication-copy h2 {
    color: var(--ink);
    max-width: 18ch;
    font-size: var(--type-xl);
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.14;
  }
  .portal-publication-copy > p {
    margin-top: var(--space-sm);
    color: var(--ink-2);
    font-size: var(--type-sm);
    line-height: 1.5;
  }
  .portal-publication-footer {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    padding: var(--space-sm) var(--space-md);
    border-top: 1px solid var(--border);
    background: color-mix(in srgb, var(--surface) 84%, var(--warm-stone));
    color: var(--ink-3);
    font-size: var(--type-sm);
  }
  .portal-publication-action {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    border-bottom: 1px solid currentColor;
    color: var(--deep-blue);
    font-size: var(--type-sm);
    font-weight: 720;
    text-decoration: none;
    transition: color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
  }
  .portal-publication-action:hover { color: var(--ink); transform: translateX(2px); }
  @media (hover: hover) and (pointer: fine) {
    .portal-publication-card:hover { border-color: var(--border-strong); transform: translateY(-3px); box-shadow: 0 20px 36px -28px color-mix(in srgb, var(--ink) 58%, transparent); }
    .portal-publication-card:hover .portal-publication-rule span:nth-child(2) { transform: translateX(3px); }
    .portal-publication-card:hover .portal-publication-rule span:nth-child(3) { transform: translateX(6px); }
  }

  .portal-overview-activity li { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: var(--space-md); align-items: start; padding: var(--space-md); border-bottom: 1px solid var(--border); }
  .portal-overview-activity li:last-child { border-bottom: 0; }
  .portal-overview-activity li > span { width: 7px; height: 7px; margin-top: 5px; transform: rotate(45deg); border: 1px solid var(--forest-green); }
  .portal-overview-activity p { color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }

  .portal-overview-clear { min-height: 68px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-sm); align-items: center; padding: var(--space-lg); color: var(--ink-2); }

  .portal-planning-process {
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-planning-process > summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md);
    cursor: pointer;
    list-style: none;
    transition: background var(--dur-1) var(--ease);
  }
  .portal-planning-process > summary::-webkit-details-marker { display: none; }
  .portal-planning-process > summary:hover { background: var(--paper); }
  .portal-planning-process-index {
    display: grid;
    width: var(--space-3xl);
    height: var(--space-3xl);
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--deep-blue) 34%, var(--border));
    background: linear-gradient(135deg, var(--deep-blue-soft), var(--surface));
    color: var(--deep-blue);
    font-size: var(--type-sm);
    font-weight: 760;
    font-variant-numeric: tabular-nums;
  }
  .portal-planning-process-copy { min-width: 0; }
  .portal-planning-process-copy > strong,
.portal-planning-process-copy > small { display: block; }
  .portal-planning-process-copy > strong { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-lg); }
  .portal-planning-process-copy > small { margin-top: var(--space-3xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-planning-process-meta {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    color: var(--ink-3);
    font-size: var(--type-sm);
    text-align: right;
  }
  .portal-planning-process-meta > strong { color: var(--ink-2); font-weight: 700; }
  .portal-planning-process-chevron { color: var(--deep-blue); font-size: var(--type-lg); transition: transform var(--dur-1) var(--ease); }
  .portal-planning-process[open] .portal-planning-process-chevron { transform: rotate(180deg); }
  .portal-planning-phase-list {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    margin: var(--space-0);
    padding: var(--space-0);
    border-top: 1px solid var(--border);
    list-style: none;
  }
  .portal-planning-phase-list li {
    min-width: 0;
    display: flex;
    border-right: 1px solid var(--border);
    border-top: .1875rem solid var(--border);
    padding: 0;
  }
  .portal-planning-phase-list li:last-child { border-right: 0; }
  .portal-planning-phase-list li[data-state="complete"] { border-top-color: var(--deep-blue); }
  .portal-planning-phase-list li[data-state="current"] {
    border-top-color: var(--terra);
    background: linear-gradient(140deg, rgba(164, 90, 67, .08), transparent 68%), var(--surface);
  }
  .portal-planning-phase-content {
    flex: 1;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: var(--space-sm);
    color: inherit;
    text-decoration: none;
  }
  a.portal-planning-phase-content { transition: background var(--dur-1) var(--ease); }
  a.portal-planning-phase-content:hover { background: color-mix(in srgb, var(--deep-blue) 5%, transparent); }
  a.portal-planning-phase-content:focus-visible { outline: var(--space-3xs) solid var(--deep-blue); outline-offset: calc(var(--space-3xs) * -1); }
  .portal-planning-phase-content > span:first-child { color: var(--ink-3); font-size: var(--type-sm); font-weight: 750; }
  .portal-planning-phase-content > strong { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-sm); }
  .portal-planning-phase-content > small { margin-top: var(--space-3xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.3; }
  .portal-planning-phase-content > em { margin-top: auto; padding-top: var(--space-sm); color: var(--ink-3); font-size: var(--type-sm); font-style: normal; }
  a.portal-planning-phase-content > em::after { content: " →"; }
  .portal-planning-phase-list li[data-state="current"] .portal-planning-phase-content > em { color: var(--terra); font-weight: 750; }
  .portal-planning-phase-list li[data-state="complete"] .portal-planning-phase-content > em { color: var(--deep-blue); }
  .portal-summary-strip {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-summary-strip--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-summary-strip--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .portal-summary-strip > div {
    min-width: 0;
    padding: var(--space-lg);
    border-right: 1px solid var(--border);
  }
  .portal-summary-strip > div:last-child { border-right: 0; }
  .portal-summary-strip .portal-figure {
    display: block;
    margin-top: var(--space-sm);
    color: var(--ink);
    font-size: var(--type-2xl);
    font-weight: 750;
    line-height: 1;
  }
  .portal-summary-strip > div > p:last-child:not(.portal-figure) {
    margin-top: var(--space-xs);
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.35;
  }
  .portal-summary-strip .portal-summary-strip-lead {
    background: var(--portal-inverse-bg);
    color: var(--portal-inverse-ink);
  }
  .portal-summary-strip .portal-summary-strip-lead .portal-eyebrow { color: var(--portal-inverse-faint); }
  .portal-summary-strip .portal-summary-strip-lead .portal-figure { color: var(--portal-inverse-ink); }
  .portal-summary-strip .portal-summary-strip-lead > p:last-child:not(.portal-figure) { color: var(--portal-inverse-muted); }

  .portal-record-panel {
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-record-panel-head {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    padding: var(--space-sm) var(--space-md);
    border-bottom: 1px solid var(--border);
  }
  .portal-record-panel-head h2 {
    margin-top: var(--space-2xs);
    color: var(--ink);
    font-size: var(--type-lg);
    font-weight: 720;
    letter-spacing: -.02em;
    line-height: 1.2;
  }
  .portal-record-panel-head > span { color: var(--ink-3); font-size: var(--type-sm); text-align: right; }
  .portal-record-panel-head--filters { align-items: end; }
  .portal-record-panel-head--filters .portal-chip { min-height: 30px; padding: var(--space-2xs) var(--space-sm); }
  .portal-record-list { margin: var(--space-0); padding: var(--space-0); list-style: none; }
  .portal-record-row {
    position: relative;
    padding: var(--space-md);
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    transition: background var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
  }
  .portal-record-row:last-child { border-bottom: 0; }
  .portal-record-row:hover { z-index: 1; background: var(--paper); box-shadow: inset .1875rem 0 var(--border-strong); }
  .portal-record-row[data-kind="action"] { box-shadow: inset .1875rem 0 var(--terra); }
  .portal-record-row[data-kind="action"]:hover { box-shadow: inset .25rem 0 var(--terra); }
  .portal-record-empty { padding: var(--space-xl); }
  .portal-investment-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-md);
  }
  .portal-investment-mark {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--border);
    background: var(--paper);
    color: var(--ink-3);
    font-size: var(--type-micro);
    font-weight: 750;
  }
  .portal-investment-mark--managed {
    border-color: color-mix(in srgb, var(--deep-blue) 34%, var(--border));
    background: color-mix(in srgb, var(--deep-blue-soft) 68%, var(--surface));
    color: var(--deep-blue);
  }
  .portal-investment-mark--annual { border-style: dashed; }
  .portal-investment-value { min-width: max-content; text-align: right; }
  .portal-policy-feature {
    position: relative;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--deep-blue) 24%, var(--border));
    background:
      linear-gradient(118deg, color-mix(in srgb, var(--deep-blue-soft) 72%, var(--surface)), transparent 58%),
      var(--surface);
  }
  .portal-policy-feature::after {
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: linear-gradient(90deg, var(--deep-blue), var(--terra) 76%, transparent);
    content: "";
  }
  .portal-policy-feature-mark {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: var(--space-2xs);
    padding: var(--space-lg) var(--space-sm);
    border-right: 1px solid color-mix(in srgb, var(--deep-blue) 18%, var(--border));
  }
  .portal-policy-feature-mark span {
    width: 7px;
    border-radius: 999px 999px 0 0;
    background: var(--deep-blue);
  }
  .portal-policy-feature-mark span:nth-child(1) { height: 26px; opacity: .28; }
  .portal-policy-feature-mark span:nth-child(2) { height: 42px; opacity: .78; }
  .portal-policy-feature-mark span:nth-child(3) { height: 18px; background: var(--terra); opacity: .72; }
  .portal-policy-feature-copy { min-width: 0; padding: var(--space-lg); }
  .portal-policy-feature-copy h2 {
    margin-top: var(--space-xs);
    color: var(--ink);
    font-size: clamp(var(--type-xl), 2.4vw, var(--type-2xl));
    font-weight: 760;
    letter-spacing: -.035em;
    line-height: 1.05;
  }
  .portal-policy-feature-summary { margin-top: var(--space-sm); color: var(--ink-2); font-size: var(--type-sm); }
  .portal-policy-feature-side {
    display: flex;
    min-width: 176px;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: var(--space-xs);
    padding: var(--space-lg);
    border-left: 1px solid color-mix(in srgb, var(--deep-blue) 16%, var(--border));
    color: var(--ink-3);
    font-size: var(--type-sm);
    text-align: right;
  }
  .portal-policy-feature-side .portal-primary-button { margin-top: var(--space-sm); }
  .portal-policy-allocation { max-width: 620px; margin-top: var(--space-md); }
  .portal-policy-allocation-bar {
    display: flex;
    height: 7px;
    overflow: hidden;
    background: var(--paper);
  }
  .portal-policy-allocation-bar span { min-width: 2px; }
  .portal-policy-allocation-bar .is-equity { background: var(--deep-blue); }
  .portal-policy-allocation-bar .is-fixed { background: color-mix(in srgb, var(--deep-blue) 45%, var(--paper)); }
  .portal-policy-allocation-bar .is-cash { background: var(--terra); }
  .portal-policy-allocation-bar .is-alternatives { background: var(--forest-green); }
  .portal-policy-allocation-key {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs) var(--space-md);
    margin-top: var(--space-xs);
    color: var(--ink-3);
    font-size: var(--type-sm);
  }
  .portal-personal-profile-copy {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-md);
    padding: var(--space-md);
    border-bottom: 1px solid var(--border);
    background: linear-gradient(135deg, color-mix(in srgb, var(--paper) 76%, var(--deep-blue-soft)), var(--surface));
  }
  .portal-personal-profile-mark {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--deep-blue) 28%, var(--border));
    background: var(--surface);
    color: var(--deep-blue);
    font-size: var(--type-sm);
    font-weight: 800;
  }
  .portal-personal-profile-copy h3 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-base); font-weight: 720; }
  .portal-personal-profile-copy h3 + p { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-focused-record-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    margin: var(--space-xs) 0 var(--space-lg);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--border);
  }
  .portal-focused-record-head > a { color: var(--deep-blue); font-size: var(--type-sm); font-weight: 720; }
  .portal-focused-record-head > p { color: var(--ink-3); font-size: var(--type-sm); }
  .portal-embedded-policy,
.portal-embedded-signed-profile { font-family: var(--font-sans); }
  .portal-embedded-policy .font-display,
.portal-embedded-signed-profile .font-display { font-family: var(--font-sans); }
  .portal-embedded-policy > div,
.portal-embedded-signed-profile > div > div:first-child { border-radius: 0; box-shadow: none; }
  .portal-stat--emphasis {
    border-top: 2px solid var(--deep-blue);
    background: linear-gradient(110deg, var(--deep-blue-soft), transparent 68%), var(--surface);
  }

  .portal-community-page-head {
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--border);
  }
  .portal-community-page-head .portal-page-head-meta {
    padding-left: var(--space-md);
    border-left: 2px solid var(--forest-green);
  }
  .portal-community-stack { display: grid; gap: var(--space-lg); }
  .portal-community-section-body { min-width: 0; }
  .portal-community-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: stretch;
    gap: var(--space-0);
    margin-bottom: var(--space-lg);
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-community-toolbar nav {
    grid-column: 1 / -1;
    min-width: 0;
    display: flex;
    overflow-x: auto;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, var(--surface), color-mix(in srgb, var(--paper) 72%, var(--surface)));
    scrollbar-width: none;
  }
  .portal-community-toolbar nav::-webkit-scrollbar { display: none; }
  .portal-community-toolbar nav a,
.portal-community-toolbar form button,
.portal-community-primary {
    min-height: calc(var(--space-2xl) + var(--space-md));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-0) var(--space-md);
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--ink-3);
    font-size: var(--type-sm);
    font-weight: 700;
    white-space: nowrap;
  }
  .portal-community-toolbar nav a:hover { color: var(--ink); background: var(--paper); }
  .portal-community-toolbar nav a[data-tour="community-preferences-tab"] {
    margin-left: auto;
    border-left: 1px solid var(--border);
  }
  .portal-community-toolbar nav a[data-cluster="manage"] { color: var(--ink-2); }
  .portal-community-toolbar nav a[aria-current="page"] {
    border-bottom-color: var(--deep-blue);
    background: linear-gradient(180deg, var(--surface), var(--paper));
    color: var(--ink);
    box-shadow: inset 0 -1px var(--deep-blue-soft);
  }
  .portal-community-toolbar form {
    grid-column: 1;
    min-width: 0;
    display: flex;
    align-items: stretch;
    padding: var(--space-xs) var(--space-sm);
  }
  .portal-community-toolbar form input[type="search"] {
    width: min(260px, 32vw);
    min-height: var(--space-2xl);
    border: 0;
    border-bottom: 1px solid var(--border-strong);
    background: transparent;
    padding: var(--space-xs) var(--space-sm);
    color: var(--ink);
    font-size: var(--type-sm);
    outline: none;
  }
  .portal-community-toolbar form input[type="search"]:focus { border-color: var(--deep-blue); box-shadow: 0 0 0 .125rem var(--deep-blue-soft); }
  .portal-community-toolbar form button { min-height: var(--space-2xl); padding: var(--space-0) var(--space-sm); border-bottom: 1px solid var(--border-strong); background: transparent; color: var(--deep-blue); }
  .portal-community-toolbar-note { display: inline-flex; min-height: calc(var(--space-2xl) + var(--space-md)); align-items: center; padding: var(--space-0) var(--space-md); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-tour-trigger { align-self: center; min-height: var(--space-2xl); margin: var(--space-xs) var(--space-0) var(--space-xs) var(--space-sm); padding: var(--space-0) var(--space-sm); border: 1px solid var(--border-strong); background: var(--paper); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; white-space: nowrap; }
  .portal-community-tour-trigger:hover { border-color: var(--deep-blue); background: var(--deep-blue-soft); }
  .portal-community-primary { align-self: center; min-height: var(--space-2xl); margin: var(--space-xs) var(--space-sm); padding: var(--space-0) var(--space-sm); border: 1px solid var(--ink); background: var(--ink); color: var(--prod-color-91); }
  .portal-community-primary:disabled { cursor: not-allowed; opacity: .68; }

  .portal-community-event-hero {
    display: grid;
    grid-template-columns: minmax(132px, .42fr) minmax(0, 1.6fr) minmax(156px, .5fr);
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-community-event-date,
.portal-community-event-copy,
.portal-community-event-seat { min-width: 0; padding: var(--space-lg); }
  .portal-community-event-date { display: flex; flex-direction: column; justify-content: center; background: var(--ink); color: var(--prod-color-91); }
  .portal-community-event-date .portal-eyebrow { color: rgba(255,255,255,.5); }
  .portal-community-event-date strong { margin-top: var(--space-sm); font-size: var(--type-xl); line-height: 1; }
  .portal-community-event-date span { margin-top: var(--space-xs); color: rgba(255,255,255,.64); font-size: var(--type-sm); }
  .portal-community-event-copy { display: flex; flex-direction: column; justify-content: center; }
  .portal-community-event-copy h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); line-height: 1.16; letter-spacing: -.025em; }
  .portal-community-event-copy > p:last-child { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-event-access { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); margin-top: var(--space-md); padding: var(--space-sm); border-left: var(--space-3xs) solid var(--forest-green); background: var(--forest-soft); color: var(--ink-2); font-size: var(--type-sm); }
  .portal-community-event-access strong { color: var(--forest-green); }
  .portal-community-event-access a { color: var(--deep-blue); font-weight: 720; text-decoration: none; }
  .portal-community-event-seat { display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--border); }
  .portal-community-event-seat strong { margin-top: var(--space-xs); color: var(--terra); font-size: var(--type-2xl); font-variant-numeric: tabular-nums; }
  .portal-community-event-seat button { min-height: var(--space-xl); margin-top: var(--space-sm); border: 1px solid var(--terra); background: linear-gradient(135deg, var(--terra-soft), var(--surface)); color: var(--terra); font-size: var(--type-sm); font-weight: 720; opacity: .76; }
  .portal-community-event-seat button:not(:disabled) { cursor: pointer; opacity: 1; }
  .portal-community-event-seat small { margin-top: var(--space-xs); color: var(--terra); font-size: var(--type-xs); line-height: 1.35; }

  .portal-community-layout { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(260px, .8fr); gap: var(--space-lg); align-items: start; }
  .portal-community-live { min-width: 0; }
  .portal-community-live > header {
    min-height: var(--space-3xl);
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-lg);
    padding-bottom: var(--space-sm);
  }
  .portal-community-live > header h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-community-live > header > span { color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-live-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-sm);
  }
  .portal-community-live-tile {
    --live-accent: var(--deep-blue);
    position: relative;
    min-width: 0;
    min-height: calc(var(--space-3xl) * 3 + var(--space-md));
    display: flex;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--border);
    background: linear-gradient(145deg, color-mix(in srgb, var(--live-accent) 7%, var(--surface)), var(--surface) 58%);
    padding: var(--space-lg);
    color: inherit;
    text-decoration: none;
    transition: transform var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);
  }
  .portal-community-live-tile[data-tone="olive"] { --live-accent: var(--forest-green); }
  .portal-community-live-tile[data-tone="rust"] { --live-accent: var(--terra); }
  .portal-community-live-tile:focus-visible { outline: var(--space-3xs) solid var(--live-accent); outline-offset: var(--space-3xs); }
  .portal-community-live-tile::before {
    position: absolute;
    inset: 14% auto 14% var(--space-0);
    width: var(--space-3xs);
    background: var(--live-accent);
    content: "";
    transform: scaleY(.22);
    transform-origin: center;
    transition: transform var(--dur-3) var(--ease);
  }
  .portal-community-live-tile > header { display: flex; align-items: center; gap: var(--space-sm); }
  .portal-community-live-tile > header > span:not(.portal-community-live-bars) {
    width: var(--space-xl);
    height: var(--space-xl);
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--live-accent) 34%, var(--border));
    background: color-mix(in srgb, var(--live-accent) 8%, var(--surface));
    color: var(--live-accent);
    font-size: var(--type-sm);
    font-weight: 780;
  }
  .portal-community-live-tile h3 { margin-top: var(--space-md); color: var(--ink); font-size: var(--type-lg); line-height: 1.2; }
  .portal-community-live-tile > p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    margin-top: var(--space-xs);
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.45;
  }
  .portal-community-live-tile > footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-sm);
    margin-top: auto;
    padding-top: var(--space-lg);
    color: var(--ink-3);
    font-size: var(--type-sm);
  }
  .portal-community-live-tile > footer strong { flex: 0 0 auto; color: var(--live-accent); }
  .portal-community-live-bars { display: flex; height: var(--space-xl); align-items: end; gap: var(--space-2xs); padding: var(--space-xs) var(--space-2xs); }
  .portal-community-live-bars i { width: var(--space-2xs); background: var(--live-accent); transition: height var(--dur-2) var(--ease); }
  .portal-community-live-bars i:nth-child(1) { height: var(--space-xs); }
  .portal-community-live-bars i:nth-child(2) { height: var(--space-md); }
  .portal-community-live-bars i:nth-child(3) { height: var(--space-sm); }
  .portal-community-live-date { align-content: center; line-height: 1; }
  .portal-community-live-date small,
.portal-community-live-date strong { display: block; font-size: var(--type-micro); text-align: center; text-transform: uppercase; }
  .portal-community-live-date strong { margin-top: var(--space-3xs); font-size: var(--type-sm); }
  .portal-community-live-progress { display: flex; gap: var(--space-2xs); margin-top: var(--space-md); }
  .portal-community-live-progress i { height: var(--space-2xs); flex: 1 1 0; background: color-mix(in srgb, var(--live-accent) 16%, var(--border)); }
  .portal-community-live-progress i[data-complete="true"] { background: var(--live-accent); }

  .portal-community-conversations > header {
    min-height: var(--space-3xl);
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-lg);
    padding-bottom: var(--space-sm);
  }
  .portal-community-conversations > header h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-community-conversations > header a,
.portal-community-conversations > header > span { color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-conversations > div:not(.portal-community-discussion-list) { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(210px, .7fr); gap: var(--space-sm); }
  .portal-community-discussion-feature {
    min-width: 0;
    min-height: 260px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--space-xl);
    background: linear-gradient(150deg, color-mix(in srgb, var(--deep-blue) 58%, var(--ink)), var(--ink) 72%);
    color: var(--prod-color-91);
    transition: transform .24s cubic-bezier(.22, 1, .36, 1), box-shadow .24s ease;
  }
  .portal-community-discussion-feature .portal-eyebrow { margin-top: var(--space-lg); color: rgba(255,255,255,.5); }
  .portal-community-discussion-feature h3 { max-width: 18ch; margin-top: var(--space-xs); font-size: var(--type-2xl); line-height: 1.05; letter-spacing: -.035em; }
  .portal-community-discussion-feature > div > p:last-child { max-width: 58ch; margin-top: var(--space-md); color: rgba(255,255,255,.68); font-size: var(--type-sm); line-height: 1.5; }
  .portal-community-discussion-feature > footer { display: flex; align-items: end; justify-content: space-between; gap: var(--space-md); margin-top: var(--space-xl); }
  .portal-community-conversation-mark { display: flex; gap: var(--space-2xs); align-items: end; height: var(--space-md); }
  .portal-community-conversation-mark i { display: block; width: var(--space-2xs); background: var(--terra); transition: height .24s cubic-bezier(.22, 1, .36, 1); }
  .portal-community-conversation-mark i:nth-child(1) { height: var(--space-xs); }
  .portal-community-conversation-mark i:nth-child(2) { height: var(--space-md); }
  .portal-community-conversation-mark i:nth-child(3) { height: var(--space-sm); }
  .portal-community-people { min-width: 0; display: flex; align-items: center; gap: var(--space-sm); color: rgba(255,255,255,.6); font-size: var(--type-sm); }
  .portal-community-avatars { display: flex; }
  .portal-community-avatars i { width: var(--space-xl); height: var(--space-xl); display: grid; place-items: center; margin-left: calc(var(--space-xs) * -1); border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: var(--deep-blue); color: var(--prod-color-91); font-size: var(--type-micro); font-style: normal; font-weight: 750; }
  .portal-community-avatars i:first-child { margin-left: 0; }
  .portal-community-helpful { min-width: max-content; color: rgba(255,255,255,.7); font-size: var(--type-sm); }
  .portal-community-mini-stack { display: grid; gap: var(--space-sm); }
  .portal-community-discussion-mini { min-height: 126px; display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-lg); border: 1px solid var(--border); background: linear-gradient(140deg, var(--deep-blue-soft), transparent 68%), var(--surface); transition: transform .22s cubic-bezier(.22, 1, .36, 1), border-color .22s ease, box-shadow .22s ease; }
  .portal-community-discussion-mini h3 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-lg); line-height: 1.2; }
  .portal-community-discussion-mini footer { display: flex; justify-content: space-between; gap: var(--space-sm); margin-top: var(--space-md); color: var(--ink-3); font-size: var(--type-sm); }

  .portal-community-space-list > div { min-height: var(--space-3xl); display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding: var(--space-md); border-bottom: 1px solid var(--border); }
  .portal-community-space-list > div:last-child { border-bottom: 0; }
  .portal-community-space-list span strong,
.portal-community-space-list span small { display: block; }
  .portal-community-space-list strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-community-space-list small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-space-list em { min-width: max-content; color: var(--deep-blue); font-size: var(--type-sm); font-style: normal; font-weight: 700; }
  .portal-community-digest { padding: var(--space-lg); border: 1px solid color-mix(in srgb, var(--forest-green) 34%, var(--border)); background: linear-gradient(135deg, var(--sage-soft), transparent 70%), var(--surface); }
  .portal-community-digest h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-lg); }
  .portal-community-digest dl { margin-top: var(--space-md); }
  .portal-community-digest dl div { display: flex; justify-content: space-between; gap: var(--space-md); padding: var(--space-xs) 0; border-top: 1px solid color-mix(in srgb, var(--forest-green) 18%, var(--border)); font-size: var(--type-sm); }
  .portal-community-digest dt { color: var(--ink-3); }
  .portal-community-digest dd { color: var(--ink); font-weight: 700; text-transform: capitalize; }
  .portal-community-faith-card { display: grid; grid-template-columns: minmax(84px, .42fr) minmax(0, 1.5fr); overflow: hidden; border: 1px solid var(--border); background: var(--surface); }
  .portal-community-faith-card > div { min-width: 0; padding: var(--space-lg); }
  .portal-community-faith-card > div:first-child { display: flex; flex-direction: column; justify-content: center; background: linear-gradient(160deg, var(--terra-soft), var(--paper)); }
  .portal-community-faith-card > div:first-child strong { margin-top: var(--space-xs); color: var(--terra); font-size: var(--type-xl); }
  .portal-community-faith-card > div:first-child span { color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-faith-card h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-lg); line-height: 1.2; }
  .portal-community-faith-card > div:last-child > p:not(.portal-eyebrow) { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-faith-card a { display: inline-flex; margin-top: var(--space-md); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }

  .portal-community-summary-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--border); background: var(--surface); box-shadow: 0 18px 36px -34px color-mix(in srgb, var(--ink) 48%, transparent); }
  .portal-community-summary-strip > div { min-height: calc(var(--space-3xl) + var(--space-2xl)); padding: var(--space-md); border-top: 2px solid var(--deep-blue); border-right: 1px solid var(--border); background: linear-gradient(150deg, var(--deep-blue-soft), transparent 54%); }
  .portal-community-summary-strip > div:nth-child(2) { border-top-color: var(--forest-green); background: linear-gradient(150deg, var(--sage-soft), transparent 54%); }
  .portal-community-summary-strip > div:nth-child(3) { border-top-color: var(--terra); background: linear-gradient(150deg, var(--terra-soft), transparent 54%); }
  .portal-community-summary-strip > div:nth-child(4) { border-top-color: var(--deep-blue); background: linear-gradient(150deg, var(--deep-blue-soft), transparent 54%); }
  .portal-community-summary-strip > div:last-child { border-right: 0; }
  .portal-community-summary-strip strong,
.portal-community-summary-strip span { display: block; }
  .portal-community-summary-strip strong { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-lg); }
  .portal-community-summary-strip span { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-summary-strip--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .portal-community-space-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
  .portal-community-space-card { min-height: calc(var(--space-3xl) + var(--space-3xl) + var(--space-3xl) + var(--space-2xl)); display: flex; flex-direction: column; padding: var(--space-lg); border: 1px solid var(--border); border-top: 2px solid var(--deep-blue); background: var(--surface); transition: transform .24s cubic-bezier(.22, 1, .36, 1), border-color .24s ease, box-shadow .24s ease; }
  .portal-community-space-card:nth-child(2) { border-top-color: var(--forest-green); }
  .portal-community-space-card[data-membership="invited"] { border-top-color: var(--terra); }
  .portal-community-space-card header,
.portal-community-space-card footer { display: flex; justify-content: space-between; gap: var(--space-md); }
  .portal-community-space-card header > div { min-width: 0; display: flex; align-items: center; gap: var(--space-sm); }
  .portal-community-space-card header i {
    width: var(--space-xl);
    height: var(--space-xl);
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--deep-blue) 32%, var(--border));
    background: var(--deep-blue-soft);
    color: var(--deep-blue);
    font-size: var(--type-sm);
    font-style: normal;
    font-weight: 780;
  }
  .portal-community-space-card:nth-child(2) header i { border-color: color-mix(in srgb, var(--forest-green) 32%, var(--border)); background: var(--sage-soft); color: var(--forest-green); }
  .portal-community-space-card[data-membership="invited"] header i { border-color: color-mix(in srgb, var(--terra) 32%, var(--border)); background: var(--terra-soft); color: var(--terra); }
  .portal-community-space-card header span { color: var(--forest-green); font-size: var(--type-sm); font-weight: 720; }
  .portal-community-space-card[data-membership="invited"] header span { color: var(--terra); }
  .portal-community-space-card h2 { margin-top: var(--space-lg); color: var(--ink); font-size: var(--type-lg); }
  .portal-community-space-card > p { margin-top: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-space-card footer { align-items: end; margin-top: auto; padding-top: var(--space-lg); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-space-action-wrap { min-width: max-content; text-align: right; }
  .portal-community-space-action-wrap > p { max-width: calc(var(--space-3xl) * 4); margin-top: var(--space-xs); color: var(--terra); font-size: var(--type-xs); line-height: 1.35; }
  .portal-community-space-action,
.portal-community-space-access-status { min-height: var(--space-xl); display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); border: 1px solid var(--border-strong); padding: 0 var(--space-sm); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-space-action { background: var(--surface); cursor: pointer; }
  .portal-community-space-action[data-action="join"] { border-color: var(--deep-blue); background: var(--deep-blue); color: var(--prod-color-91); }
  .portal-community-space-action[data-action="leave"] { color: var(--ink-3); }
  .portal-community-space-action:disabled { cursor: not-allowed; opacity: .62; }
  .portal-community-space-action > span { transition: transform .22s cubic-bezier(.22, 1, .36, 1); }
  .portal-community-space-access-status { border-color: transparent; padding-right: 0; color: var(--ink-3); }

  .portal-community-inline-action { min-height: var(--space-2xl); border: 1px solid var(--ink); background: var(--ink); padding: var(--space-0) var(--space-sm); color: var(--prod-color-91); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-inline-action:disabled { cursor: not-allowed; opacity: .68; }
  .portal-community-discussion-rows { border-top: 1px solid var(--border); }
  .portal-community-discussion-row,
.portal-community-content-row,
.portal-community-resource-row { display: grid; grid-template-columns: var(--space-2xs) minmax(0, 1fr) auto; align-items: center; gap: var(--space-md); min-height: var(--space-3xl); padding: var(--space-md); border-bottom: 1px solid var(--border); }
  .portal-community-discussion-row[data-selected="true"] { background: linear-gradient(90deg, var(--deep-blue-soft), transparent 64%), var(--paper); }
  .portal-community-discussion-row > span,
.portal-community-content-row > span:first-child { align-self: stretch; background: var(--deep-blue); }
  .portal-community-discussion-row > span[data-tone="olive"],
.portal-community-content-row > span[data-tone="olive"] { background: var(--forest-green); }
  .portal-community-discussion-row > span[data-tone="rust"],
.portal-community-content-row > span[data-tone="rust"] { background: var(--terra); }
  .portal-community-discussion-row p strong,
.portal-community-discussion-row p small,
.portal-community-content-row p strong,
.portal-community-content-row p small,
.portal-community-resource-row p strong,
.portal-community-resource-row p small { display: block; }
  .portal-community-discussion-row p strong,
.portal-community-content-row p strong,
.portal-community-resource-row p strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-community-discussion-row p small,
.portal-community-content-row p small,
.portal-community-resource-row p small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-discussion-row em { color: var(--deep-blue); font-size: var(--type-sm); font-style: normal; font-weight: 700; }
  .portal-community-thread-preview { margin: var(--space-md); padding: var(--space-lg); border: 1px solid var(--border); border-top: 2px solid var(--forest-green); background: var(--paper); }
  .portal-community-thread-preview h3 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-community-thread-preview > small { display: block; margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-thread-preview > p:not(.portal-eyebrow) { margin-top: var(--space-md); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.5; }
  .portal-community-replies { display: grid; gap: var(--space-sm); margin-top: var(--space-lg); }
  .portal-community-replies > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-sm); padding: var(--space-sm); background: var(--surface); }
  .portal-community-replies > div > span { width: var(--space-2xl); height: var(--space-2xl); display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; color: var(--deep-blue); font-size: var(--type-micro); font-weight: 750; }
  .portal-community-replies strong,
.portal-community-replies small { display: block; }
  .portal-community-replies strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-community-replies small { margin-top: var(--space-2xs); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-thread-preview footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); margin-top: var(--space-lg); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-thread-preview footer div { display: flex; gap: var(--space-xs); }
  .portal-community-thread-preview footer button,
.portal-community-content-row button,
.portal-community-resource-row button { min-height: var(--space-2xl); border: 1px solid var(--border-strong); background: var(--surface); padding: var(--space-0) var(--space-sm); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-thread-preview footer button:disabled,
.portal-community-content-row button:disabled,
.portal-community-resource-row button:disabled { cursor: not-allowed; opacity: 1; }
  .portal-community-event-rsvp { display: grid; justify-items: end; gap: var(--space-2xs); }
  .portal-community-event-rsvp small { max-width: 16rem; color: var(--terra); font-size: var(--type-xs); line-height: 1.3; text-align: right; }
  .portal-community-content-row > a,
.portal-community-content-row > span:last-child { color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; text-decoration: none; }
  .portal-community-thread-actions { display: flex; gap: var(--space-xs); }
  .portal-community-thread-actions button:not(:disabled):hover { border-color: var(--deep-blue); background: var(--deep-blue-soft); }
  .portal-community-action-backdrop {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: var(--space-lg);
    background: color-mix(in srgb, var(--ink) 28%, transparent);
    backdrop-filter: blur(3px);
    animation: portal-community-backdrop-in .18s ease-out both;
  }
  .portal-community-action-modal {
    width: min(38rem, 100%);
    max-height: calc(100dvh - var(--space-3xl));
    overflow-y: auto;
    border: 1px solid var(--border-strong);
    border-top: 3px solid var(--deep-blue);
    background: var(--surface);
    box-shadow: 0 1.75rem 5rem color-mix(in srgb, var(--ink) 24%, transparent);
    animation: portal-community-modal-in .24s cubic-bezier(.22, 1, .36, 1) both;
  }
  .portal-community-action-modal > header { display: flex; align-items: start; justify-content: space-between; gap: var(--space-lg); padding: var(--space-lg); border-bottom: 1px solid var(--border); }
  .portal-community-action-modal > header h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-community-action-modal > header > button { width: var(--space-2xl); height: var(--space-2xl); border: 1px solid var(--border); background: var(--paper); color: var(--ink-2); font-size: var(--type-xl); line-height: 1; }
  .portal-community-action-intro { padding: var(--space-md) var(--space-lg) 0; color: var(--ink-2); font-size: var(--type-sm); line-height: 1.5; }
  .portal-community-action-modal form { display: grid; gap: var(--space-md); padding: var(--space-lg); }
  .portal-community-action-modal form label { display: grid; gap: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-action-modal form label > span { color: var(--ink-3); font-weight: 500; }
  .portal-community-action-modal form footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding-top: var(--space-xs); }
  .portal-community-action-modal form footer span { max-width: 28ch; color: var(--ink-3); font-size: var(--type-sm); line-height: 1.4; }
  .portal-community-action-modal form footer button { min-height: var(--space-2xl); border: 1px solid var(--deep-blue); background: var(--deep-blue); padding: var(--space-0) var(--space-md); color: var(--prod-color-91); font-size: var(--type-sm); font-weight: 750; }
  .portal-community-action-modal form footer button:disabled { cursor: wait; opacity: .68; }
  .portal-community-action-result { padding: var(--space-sm); border-left: 3px solid var(--forest-green); background: var(--sage-soft); color: var(--forest-green); font-size: var(--type-sm); line-height: 1.4; }
  .portal-community-action-result--error { border-left-color: var(--terra); background: var(--terra-soft); color: var(--terra); }
  @keyframes portal-community-backdrop-in { from { opacity: 0; } }
  @keyframes portal-community-modal-in { from { opacity: 0; transform: translateY(.75rem) scale(.985); } }
  .portal-community-private-note > p,
.portal-community-panel-note { margin: var(--space-md); padding: var(--space-md); background: var(--paper); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.5; }
  .portal-community-private-note > a,
.portal-community-private-note > button { display: inline-flex; margin: var(--space-0) var(--space-md) var(--space-md); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-private-note > button { min-height: var(--space-2xl); border: 1px solid var(--border-strong); background: var(--surface); padding: var(--space-0) var(--space-sm); }
  .portal-community-private-note > button:disabled { cursor: not-allowed; opacity: 1; }

  .portal-community-directory-note { display: flex; align-items: center; justify-content: space-between; gap: var(--space-xl); padding: var(--space-lg); border: 1px solid var(--border); border-left: 4px solid var(--forest-green); background: var(--surface); }
  .portal-community-directory-note h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-community-directory-note p:last-child { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-directory-note > strong { min-width: max-content; color: var(--forest-green); font-size: var(--type-sm); }
  .portal-community-directory-note > a { min-width: max-content; min-height: var(--space-2xl); display: inline-flex; align-items: center; border: 1px solid var(--border-strong); padding: var(--space-0) var(--space-sm); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-member-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
  .portal-record-panel > .portal-community-member-grid { padding: var(--space-md); }
  .portal-community-member-card { min-height: calc(var(--space-3xl) + var(--space-3xl) + var(--space-3xl) + var(--space-3xl)); display: flex; flex-direction: column; padding: var(--space-lg); border: 1px solid var(--border); background: var(--surface); transition: transform .22s cubic-bezier(.22, 1, .36, 1), border-color .22s ease, box-shadow .22s ease; }
  .portal-community-member-card header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); }
  .portal-community-member-card header > span { width: var(--space-2xl); height: var(--space-2xl); display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; background: var(--paper); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 750; }
  .portal-community-member-card header em { color: var(--forest-green); font-size: var(--type-sm); font-style: normal; font-weight: 700; }
  .portal-community-member-card h2 { margin-top: var(--space-md); color: var(--ink); font-size: var(--type-lg); }
  .portal-community-member-card > p { margin-top: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-member-badges,
.portal-community-profile-badges { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
  .portal-community-member-badges { margin-top: var(--space-md); }
  .portal-community-member-badges span,
.portal-community-profile-badges span { border: 1px solid color-mix(in srgb, var(--deep-blue) 22%, var(--border)); background: var(--deep-blue-soft); padding: var(--space-2xs) var(--space-xs); color: var(--deep-blue); font-size: var(--type-xs); font-weight: 700; line-height: 1.2; }
  .portal-community-member-card footer { margin-top: auto; padding-top: var(--space-lg); color: var(--ink-3); font-size: var(--type-sm); }

  .portal-community-resource-row { grid-template-columns: auto minmax(0, 1fr) auto; transition: background-color .2s ease, box-shadow .2s ease; }
  .portal-community-resource-row > span:first-child { width: var(--space-2xl); height: var(--space-2xl); display: grid; place-items: center; border: 1px solid var(--border-strong); background: var(--paper); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 760; }
  .portal-community-resource-row > span[data-kind="replay"] { color: var(--terra); }
  .portal-community-resource-row > span[data-kind="guide"] { color: var(--forest-green); }
  .portal-community-topic-list { padding: var(--space-0) var(--space-md); }
  .portal-community-topic-list > div { min-height: var(--space-3xl); display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); border-bottom: 1px solid var(--border); font-size: var(--type-sm); }
  .portal-community-topic-list > div:last-child { border-bottom: 0; }
  .portal-community-topic-list span { color: var(--ink-2); }
  .portal-community-topic-list strong { color: var(--deep-blue); }

  .portal-community-settings-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(24%, .8fr); gap: var(--space-lg); align-items: start; }
  .portal-community-profile-preview { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-md); padding: var(--space-lg); background: linear-gradient(135deg, var(--deep-blue-soft), transparent 72%), var(--paper); }
  .portal-community-profile-preview > span { width: var(--space-3xl); height: var(--space-3xl); display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; background: var(--surface); color: var(--deep-blue); font-size: var(--type-lg); font-weight: 760; }
  .portal-community-profile-preview h3 { color: var(--ink); font-size: var(--type-xl); }
  .portal-community-profile-preview p { margin-top: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-profile-badges { margin-top: var(--space-sm); }
  .portal-community-verified-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-md); padding: var(--space-md); border-top: 1px solid var(--border); }
  .portal-community-verified-row > span { width: var(--space-xl); height: var(--space-xl); display: grid; place-items: center; background: var(--deep-blue); color: var(--prod-color-91); font-size: var(--type-sm); }
  .portal-community-verified-row p strong,
.portal-community-verified-row p small { display: block; }
  .portal-community-verified-row p strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-community-verified-row p small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-verified-row button { min-height: var(--space-2xl); border: 1px solid var(--border-strong); background: var(--surface); padding: var(--space-0) var(--space-sm); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-settings-list { padding: var(--space-0) var(--space-md); }
  .portal-community-setting-row { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); border-bottom: 1px solid var(--border); color: var(--ink-2); font-size: var(--type-sm); }
  .portal-community-setting-row:last-child { border-bottom: 0; }
  .portal-community-setting-row strong { color: var(--forest-green); text-align: right; }
  .portal-community-setting-row button { min-width: calc(var(--space-3xl) + var(--space-xl)); min-height: var(--space-2xl); border: 1px solid var(--border-strong); background: var(--surface); padding: var(--space-0) var(--space-sm); color: var(--ink-2); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-setting-row button[aria-pressed="true"] { border-color: var(--forest-green); background: var(--sage-soft); color: var(--forest-green); }
  .portal-community-setting-row button:disabled,
.portal-community-verified-row button:disabled { cursor: not-allowed; opacity: 1; }
  .portal-community-standard { border-top: 2px solid var(--forest-green); }
  .portal-community-settings-status { padding: var(--space-md); border-left: 3px solid var(--deep-blue); background: var(--deep-blue-soft); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-preference-form { margin: 0; }
  .portal-community-preference-fields { display: grid; gap: var(--space-md); padding: var(--space-md); }
  .portal-community-preference-fields label { display: grid; gap: var(--space-xs); color: var(--ink); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-preference-fields input,
.portal-community-preference-fields select { width: 100%; min-height: 44px; border: 1px solid var(--border-strong); background: var(--surface); padding: 0 var(--space-sm); color: var(--ink); font: inherit; font-weight: 520; }
  .portal-community-preference-fields input:focus-visible,
.portal-community-preference-fields select:focus-visible { outline: 2px solid var(--deep-blue); outline-offset: 2px; }
  .portal-community-preference-fields small { color: var(--ink-3); font-size: var(--type-sm); font-weight: 450; line-height: 1.4; }
  .portal-community-choice-grid { display: grid; gap: var(--space-xs); padding: var(--space-md); border: 0; }
  .portal-community-choice-grid > legend { padding: var(--space-0) var(--space-md); color: var(--ink); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-choice-grid > label { min-height: 64px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-sm); border: 1px solid var(--border); background: var(--paper); padding: var(--space-sm); cursor: pointer; }
  .portal-community-choice-grid > label[data-selected="true"] { border-color: var(--deep-blue); background: var(--deep-blue-soft); box-shadow: inset 3px 0 0 var(--deep-blue); }
  .portal-community-choice-grid input { width: 18px; height: 18px; accent-color: var(--deep-blue); }
  .portal-community-choice-grid strong,
.portal-community-choice-grid small { display: block; }
  .portal-community-choice-grid strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-community-choice-grid small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.35; }
  .portal-community-interest-fieldset { padding: var(--space-md); border: 0; border-top: 1px solid var(--border); }
  .portal-community-interest-fieldset legend { color: var(--ink); font-size: var(--type-sm); font-weight: 700; }
  .portal-community-interest-fieldset > small { display: block; margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.4; }
  .portal-community-interest-fieldset > div { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-sm); }
  .portal-community-interest-fieldset label { position: relative; min-height: var(--space-2xl); display: inline-flex; align-items: center; border: 1px solid var(--border); background: var(--surface); padding: 0 var(--space-sm); color: var(--ink-2); font-size: var(--type-sm); cursor: pointer; }
  .portal-community-interest-fieldset label[data-selected="true"] { border-color: var(--forest-green); background: var(--sage-soft); color: var(--forest-green); font-weight: 700; }
  .portal-community-interest-fieldset input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
  .portal-community-profile-facets { background: linear-gradient(145deg, color-mix(in srgb, var(--deep-blue) 4%, var(--surface)), var(--surface) 56%); box-shadow: inset 0 var(--space-3xs) var(--deep-blue); }
  .portal-community-private-context-note { margin: var(--space-0) var(--space-md) var(--space-md); padding: var(--space-sm); border-left: var(--space-3xs) solid var(--deep-blue); background: var(--deep-blue-soft); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-choice-grid:disabled > label,
.portal-community-interest-fieldset:disabled label,
.portal-community-preference-fields input:disabled,
.portal-community-preference-fields select:disabled { cursor: not-allowed; opacity: .72; }
  .portal-community-preference-submit { display: grid; gap: var(--space-sm); padding: var(--space-md); border-left: 3px solid var(--deep-blue); background: var(--deep-blue-soft); }
  .portal-community-preference-submit[data-tone="success"] { border-left-color: var(--forest-green); background: var(--sage-soft); }
  .portal-community-preference-submit[data-tone="error"] { border-left-color: var(--terra); background: color-mix(in srgb, var(--terra) 9%, var(--surface)); }
  .portal-community-preference-submit p { color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-preference-submit button { min-height: 44px; border: 1px solid var(--deep-blue); background: var(--deep-blue); padding: 0 var(--space-md); color: var(--prod-color-91); font-size: var(--type-sm); font-weight: 760; }
  .portal-community-preference-submit button:disabled { cursor: not-allowed; border-color: var(--border-strong); background: var(--paper); color: var(--ink-3); }

  .portal-community-access-banner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-xl); padding: var(--space-lg); border: 1px solid var(--border); border-left: 4px solid var(--forest-green); background: var(--surface); }
  .portal-community-access-banner h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-community-access-banner p:last-child { margin-top: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); }
  .portal-community-access-banner > strong { min-width: max-content; color: var(--forest-green); font-size: var(--type-lg); }
  .portal-community-access-layers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); padding: var(--space-md); }
  .portal-community-access-layers article { min-height: calc(var(--space-3xl) + var(--space-3xl) + var(--space-3xl)); padding: var(--space-md); border: 1px solid var(--border); background: var(--paper); }
  .portal-community-access-layers h3 { margin-top: var(--space-md); color: var(--ink); font-size: var(--type-lg); }
  .portal-community-access-layers article > p:last-child { margin-top: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-access-grid { grid-template-columns: minmax(0, 1.65fr) minmax(24%, .75fr); }
  .portal-community-facet-group { padding: var(--space-md); border-bottom: 1px solid var(--border); }
  .portal-community-facet-group:last-child { border-bottom: 0; }
  .portal-community-facet-group > header { display: flex; align-items: start; justify-content: space-between; gap: var(--space-lg); }
  .portal-community-facet-group > header strong { color: var(--ink); font-size: var(--type-base); }
  .portal-community-facet-group > header span { color: var(--ink-3); font-size: var(--type-sm); text-align: right; }
  .portal-community-facet-group > div { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-sm); }
  .portal-community-facet-group button { min-height: var(--space-2xl); border: 1px solid var(--border); background: var(--surface); padding: var(--space-0) var(--space-sm); color: var(--ink-2); font-size: var(--type-sm); }
  .portal-community-facet-group button[aria-pressed="true"] { border-color: var(--forest-green); background: var(--sage-soft); color: var(--forest-green); font-weight: 700; }
  .portal-community-facet-group button:disabled { cursor: not-allowed; opacity: 1; }
  .portal-community-tailored-preview { border-top: 2px solid var(--deep-blue); }
  .portal-community-tailored-preview > div { padding: var(--space-0) var(--space-md); }
  .portal-community-tailored-preview > div p { padding: var(--space-md) 0; border-bottom: 1px solid var(--border); }
  .portal-community-tailored-preview > div p:last-child { border-bottom: 0; }
  .portal-community-tailored-preview strong,
.portal-community-tailored-preview span { display: block; }
  .portal-community-tailored-preview strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-community-tailored-preview span { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.4; }

  .portal-community-modules { display: grid; gap: var(--space-md); }
  .portal-community-modules > header { display: flex; align-items: end; justify-content: space-between; gap: var(--space-lg); }
  .portal-community-modules > header h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-2xl); }
  .portal-community-modules > header > :is(span, a) { color: var(--ink-3); font-size: var(--type-sm); font-weight: 700; text-decoration: none; }
  .portal-community-modules > header > a { color: var(--deep-blue); }
  .portal-community-module-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); gap: var(--space-sm); }
  .portal-community-module-card { --module-accent: var(--deep-blue); position: relative; min-height: 13.5rem; display: flex; overflow: hidden; flex-direction: column; border: 1px solid var(--border); background: linear-gradient(145deg, color-mix(in srgb, var(--module-accent) 5%, var(--surface)), var(--surface) 58%); padding: var(--space-lg); color: inherit; text-decoration: none; transition: border-color .2s ease, box-shadow .3s cubic-bezier(.22,1,.36,1), transform .3s cubic-bezier(.22,1,.36,1); }
  .portal-community-module-card[data-accent="rust"] { --module-accent: var(--rust); }
  .portal-community-module-card[data-accent="olive"] { --module-accent: var(--forest-green); }
  .portal-community-module-card::before { position: absolute; inset: 12% auto 12% 0; width: .1875rem; background: var(--module-accent); content: ""; transform: scaleY(.22); transform-origin: center; transition: transform .35s cubic-bezier(.22,1,.36,1); }
  .portal-community-module-card:hover,
.portal-community-module-card:focus-visible,
.portal-community-module-card[data-selected="true"] { border-color: color-mix(in srgb, var(--module-accent) 50%, var(--border)); box-shadow: 0 .85rem 2rem rgba(22,31,40,.09); transform: translateY(-.1875rem); }
  .portal-community-module-card:hover::before,
.portal-community-module-card:focus-visible::before,
.portal-community-module-card[data-selected="true"]::before { transform: scaleY(1); }
  .portal-community-module-mark { width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; gap: .1875rem; margin-bottom: var(--space-md); border: 1px solid color-mix(in srgb, var(--module-accent) 30%, var(--border)); background: color-mix(in srgb, var(--module-accent) 7%, var(--paper)); }
  .portal-community-module-mark i { width: .1875rem; background: var(--module-accent); }
  .portal-community-module-mark i:nth-child(1) { height: .5rem; }
  .portal-community-module-mark i:nth-child(2) { height: .9rem; }
  .portal-community-module-mark i:nth-child(3) { height: .65rem; }
  .portal-community-module-card h3 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); line-height: 1.1; }
  .portal-community-module-card > p:not(.portal-eyebrow) { margin-top: var(--space-sm); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-module-card footer { display: flex; align-items: end; justify-content: space-between; gap: var(--space-sm); margin-top: auto; padding-top: var(--space-lg); color: var(--ink-3); font-size: var(--type-xs); }
  .portal-community-module-card footer strong { color: var(--module-accent); }
  .portal-community-module-empty { padding: var(--space-2xl); background: linear-gradient(120deg, color-mix(in srgb, var(--deep-blue) 4%, var(--paper)), var(--paper)); }
  .portal-community-module-empty strong { color: var(--ink); font-size: var(--type-lg); }
  .portal-community-module-empty p { max-width: 42rem; margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.5; }

  .portal-community-section-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(260px, .75fr); gap: var(--space-lg); align-items: start; }
  .portal-community-discussion-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-sm); }
  .portal-community-discussion-list .portal-community-discussion-feature { min-height: 280px; }
  .portal-community-boundary-list,
.portal-community-profile-list { padding: var(--space-md); }
  .portal-community-boundary-list p { padding: var(--space-sm) 0; border-bottom: 1px solid var(--border); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-boundary-list p:last-child { border-bottom: 0; }
  .portal-community-lesson-list { display: grid; }
  .portal-community-lesson-row { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-md); align-items: center; padding: var(--space-lg); border-bottom: 1px solid var(--border); color: inherit; text-decoration: none; }
  .portal-community-lesson-row::before { position: absolute; inset: 18% auto 18% 0; width: .1875rem; background: var(--deep-blue); content: ""; opacity: 0; transform: scaleY(.25); transform-origin: center; transition: opacity .2s ease, transform .3s cubic-bezier(.22,1,.36,1); }
  .portal-community-lesson-row:hover::before,
.portal-community-lesson-row:focus-visible::before { opacity: 1; transform: scaleY(1); }
  .portal-community-lesson-row:last-child { border-bottom: 0; }
  .portal-community-lesson-time { width: var(--space-3xl); height: var(--space-3xl); display: grid; place-content: center; border: 1px solid var(--border); background: var(--paper); color: var(--deep-blue); text-align: center; }
  .portal-community-lesson-time strong { font-size: var(--type-lg); line-height: 1; }
  .portal-community-lesson-time span { color: var(--ink-3); font-size: var(--type-micro); }
  .portal-community-lesson-row h3 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-lg); }
  .portal-community-lesson-row > div:nth-child(2) > p:not(.portal-eyebrow) { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-lesson-progress { display: flex; gap: var(--space-2xs); margin-top: var(--space-sm); }
  .portal-community-lesson-progress i { width: var(--space-xl); height: .1875rem; background: var(--border); }
  .portal-community-lesson-progress i[data-complete="true"] { background: var(--forest-green); }

  .portal-lesson-back { display: flex; gap: var(--space-sm); align-items: center; margin-bottom: var(--space-lg); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-lesson-back a { color: var(--deep-blue); font-weight: 700; text-decoration: none; }
  .portal-lesson-shell { max-width: 68rem; margin: 0 auto; }
  .portal-lesson-intro { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-2xl); align-items: end; padding: clamp(1.5rem,4vw,3.5rem); border: 1px solid var(--border); border-top: .1875rem solid var(--deep-blue); background: linear-gradient(145deg, color-mix(in srgb, var(--paper) 96%, var(--deep-blue)), var(--paper)); box-shadow: 0 .875rem 2rem rgba(22, 31, 40, .07); }
  .portal-lesson-intro h1 { margin-top: var(--space-xs); color: var(--ink); font-family: var(--font-display), "Aptos Display", "Avenir Next", "Segoe UI Variable Display", sans-serif; font-size: clamp(2rem,5vw,4.25rem); line-height: .98; letter-spacing: -.045em; }
  .portal-lesson-intro > div > p:last-child { max-width: 44rem; margin-top: var(--space-md); color: var(--ink-3); font-size: var(--type-lg); line-height: 1.55; }
  .portal-lesson-time { width: 6.5rem; height: 6.5rem; display: grid; place-content: center; border: 1px solid var(--border); background: var(--surface); color: var(--deep-blue); text-align: center; }
  .portal-lesson-time strong { font-family: var(--font-display), sans-serif; font-size: var(--type-4xl); line-height: .95; }
  .portal-lesson-time span { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-micro); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
  .portal-lesson-progress-head { display: grid; grid-template-columns: auto minmax(12rem, 1fr); gap: var(--space-xl); align-items: center; padding: var(--space-lg) clamp(1rem,3vw,2rem); border: 1px solid var(--border); border-top: 0; background: var(--surface); }
  .portal-lesson-progress-head > span { color: var(--ink-3); font-size: var(--type-sm); font-weight: 700; }
  .portal-lesson-progress-head > div { display: flex; gap: var(--space-xs); }
  .portal-lesson-progress-head button { height: .3125rem; flex: 1 1 0; border: 0; background: var(--border); cursor: pointer; transition: transform .2s ease, background .2s ease; }
  .portal-lesson-progress-head button[data-complete="true"] { background: var(--forest-green); }
  .portal-lesson-progress-head button[data-active="true"] { background: var(--deep-blue); transform: scaleY(1.65); }
  .portal-lesson-progress-head button:disabled { cursor: default; }
  .portal-lesson-stage { min-height: 25rem; display: grid; align-items: stretch; margin-top: var(--space-xl); overflow: hidden; border: 1px solid var(--border); background: var(--surface); box-shadow: 0 1.25rem 3.5rem rgba(22, 31, 40, .08); }
  .portal-lesson-step { min-height: 25rem; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,7vw,5.5rem); }
  .portal-lesson-step h2 { max-width: 48rem; margin-top: var(--space-sm); color: var(--ink); font-family: var(--font-display), "Aptos Display", "Avenir Next", "Segoe UI Variable Display", sans-serif; font-size: clamp(1.75rem,4vw,3.4rem); line-height: 1.05; letter-spacing: -.035em; }
  .portal-lesson-body { max-width: 46rem; margin-top: var(--space-lg); color: var(--ink-2); font-size: clamp(1rem,2vw,1.25rem); line-height: 1.7; }
  .portal-lesson-step blockquote { max-width: 48rem; margin: var(--space-2xl) 0 0; padding: var(--space-xl); border-left: .1875rem solid var(--rust); background: linear-gradient(115deg, color-mix(in srgb, var(--rust) 8%, var(--paper)), var(--paper)); }
  .portal-lesson-step blockquote span { color: var(--rust); font-size: var(--type-micro); font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
  .portal-lesson-step blockquote p { margin-top: var(--space-sm); color: var(--ink); font-family: var(--font-display), sans-serif; font-size: var(--type-xl); line-height: 1.4; }
  .portal-lesson-step blockquote small { display: block; margin-top: var(--space-md); color: var(--ink-3); font-size: var(--type-xs); }
  .portal-lesson-complete > span { width: 3.25rem; height: 3.25rem; display: grid; place-content: center; margin-bottom: var(--space-lg); border-radius: 50%; background: var(--forest-green); color: white; font-size: var(--type-xl); }
  .portal-lesson-complete > p:last-child { max-width: 44rem; margin-top: var(--space-lg); color: var(--ink-3); font-size: var(--type-lg); line-height: 1.65; }
  .portal-lesson-error { margin-top: var(--space-md); border: 1px solid color-mix(in srgb, var(--rust) 35%, var(--border)); background: color-mix(in srgb, var(--rust) 6%, var(--paper)); padding: var(--space-md); color: var(--rust); font-size: var(--type-sm); }
  .portal-lesson-actions { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: var(--space-lg); align-items: center; padding: var(--space-lg) 0; }
  .portal-lesson-actions button,
.portal-lesson-actions a { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); background: var(--surface); padding: 0 var(--space-lg); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 800; text-decoration: none; }
  .portal-lesson-actions button:disabled { color: var(--ink-3); opacity: .55; }
  .portal-lesson-actions > span { color: var(--ink-3); font-size: var(--type-xs); text-align: center; }
  .portal-lesson-actions .portal-lesson-next { border-color: var(--deep-blue); background: var(--deep-blue); color: white; }
  .portal-lesson-notes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-lg); margin-top: var(--space-lg); padding-top: var(--space-xl); border-top: 1px solid var(--border); }
  .portal-lesson-notes > div { padding: var(--space-lg); background: var(--paper); }
  .portal-lesson-notes > div > p:last-child { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-xs); line-height: 1.55; }
  .portal-community-state { min-width: max-content; color: var(--deep-blue); font-size: var(--type-sm); font-weight: 720; }
  .portal-community-profile-list div { display: grid; grid-template-columns: minmax(120px, .6fr) minmax(0, 1.4fr); gap: var(--space-lg); padding: var(--space-sm) 0; border-bottom: 1px solid var(--border); font-size: var(--type-sm); }
  .portal-community-profile-list div:last-child { border-bottom: 0; }
  .portal-community-profile-list dt { color: var(--ink-3); }
  .portal-community-profile-list dd { color: var(--ink); font-weight: 650; }
  .portal-community-guardrails { padding: var(--space-xl); border: 1px solid var(--border); background: var(--ink); color: var(--prod-color-91); }
  .portal-community-guardrails .portal-eyebrow { color: rgba(255,255,255,.5); }
  .portal-community-guardrails h2 { margin-top: var(--space-xs); font-size: var(--type-xl); line-height: 1.15; }
  .portal-community-guardrails ul { margin-top: var(--space-lg); padding-left: var(--space-lg); }
  .portal-community-guardrails li { margin-top: var(--space-sm); color: rgba(255,255,255,.7); font-size: var(--type-sm); line-height: 1.45; }
  .portal-community-search-note { margin-top: var(--space-lg); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-community-search-note a { color: var(--deep-blue); font-weight: 700; }
  .portal-projection-stage-rail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-projection-stage {
    min-height: calc(var(--space-3xl) + var(--space-xl));
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    border: 0;
    border-right: 1px solid var(--border);
    background: transparent;
    padding: var(--space-sm) var(--space-md);
    color: var(--ink);
    text-align: left;
    transition: background var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
  }
  .portal-projection-stage:last-child { border-right: 0; }
  .portal-projection-stage[data-state="current"] {
    background: linear-gradient(120deg, color-mix(in srgb, var(--deep-blue) 7%, transparent), transparent 62%), var(--surface);
    box-shadow: inset 0 var(--space-3xs) var(--deep-blue);
  }
  .portal-projection-stage-number {
    width: var(--space-xl);
    height: var(--space-xl);
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--border-strong);
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: var(--type-sm);
    font-weight: 700;
  }
  .portal-projection-stage[data-state="current"] .portal-projection-stage-number { border-color: var(--deep-blue); color: var(--deep-blue); }
  .portal-projection-stage[data-state="complete"] .portal-projection-stage-number { border-color: var(--deep-blue); background: var(--deep-blue); color: var(--on-accent); }
  .portal-projection-stage-copy,
.portal-projection-stage-copy b,
.portal-projection-stage-copy span { min-width: 0; display: block; }
  .portal-projection-stage-copy b { color: var(--ink); font-size: var(--type-base); }
  .portal-projection-stage-copy span { margin-top: var(--space-3xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.3; }

  .portal-projection-source-desk {
    display: grid;
    grid-template-columns: minmax(13rem, .52fr) minmax(0, 2.48fr);
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-projection-source-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-lg);
    background: var(--portal-inverse-bg);
    color: var(--portal-inverse-ink);
  }
  .portal-projection-source-intro .portal-eyebrow { color: var(--portal-inverse-faint); }
  .portal-projection-source-intro strong { margin-top: var(--space-md); font-size: var(--type-xl); line-height: 1.15; }
  .portal-projection-source-intro span { margin-top: var(--space-xs); color: var(--portal-inverse-muted); font-size: var(--type-sm); line-height: 1.45; }
  .portal-projection-baseline { min-width: 0; }
  .portal-projection-baseline-head {
    min-height: calc(var(--space-3xl) + var(--space-lg));
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-lg);
    padding: var(--space-md);
  }
  .portal-projection-baseline-head h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-lg); line-height: 1.2; }
  .portal-projection-baseline-head > span { max-width: 28rem; color: var(--ink-3); font-size: var(--type-sm); line-height: 1.4; text-align: right; }
  .portal-projection-baseline-columns,
.portal-projection-baseline-row { display: grid; grid-template-columns: minmax(12rem, 1.25fr) minmax(7.5rem, .58fr) minmax(12rem, 1fr) minmax(10rem, .82fr); }
  .portal-projection-baseline-columns { border-top: 1px solid var(--border); background: var(--paper); }
  .portal-projection-baseline-columns span { padding: var(--space-xs) var(--space-md); color: var(--ink-3); font-size: var(--type-micro); font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
  .portal-projection-baseline-row { border-top: 1px solid var(--border); }
  .portal-projection-baseline-cell {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid var(--border);
    padding: var(--space-sm) var(--space-md);
  }
  .portal-projection-baseline-cell:last-child { border-right: 0; }
  .portal-projection-baseline-cell strong,
.portal-projection-baseline-cell > span { display: block; font-size: var(--type-sm); }
  .portal-projection-baseline-cell > span { margin-top: var(--space-3xs); color: var(--ink-3); line-height: 1.35; }
  .portal-projection-baseline-cell select {
    width: 100%;
    min-height: var(--space-2xl);
    margin-top: var(--space-xs);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    background: var(--surface);
    padding: var(--space-0) var(--space-sm);
    color: var(--ink);
    font-size: var(--type-sm);
  }
  .portal-projection-baseline-cell select:disabled { background: var(--paper); color: var(--ink-2); opacity: 1; }
  .portal-projection-baseline-cell > label,
.portal-projection-baseline-cell > label > span:first-child { color: var(--ink-3); font-size: var(--type-sm); }
  .portal-projection-empty-source { display: grid; gap: var(--space-xs); border-top: 1px solid var(--border); padding: var(--space-lg); }
  .portal-projection-empty-source strong { color: var(--ink); font-size: var(--type-base); }
  .portal-projection-empty-source span { color: var(--ink-3); font-size: var(--type-sm); }
  .portal-projection-source-actions {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    border-top: 1px solid var(--border);
    background: var(--paper);
    padding: var(--space-sm) var(--space-md);
  }
  .portal-projection-source-actions > span { color: var(--ink-3); font-size: var(--type-sm); }

  .portal-projection-reference { overflow: hidden; border: 1px solid var(--border); background: var(--surface); }
  .portal-projection-reference > header {
    min-height: calc(var(--space-3xl) + var(--space-lg));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    padding: var(--space-sm) var(--space-md);
    border-bottom: 1px solid var(--border);
  }
  .portal-projection-reference h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-lg); }
  .portal-projection-reference table { width: 100%; border-collapse: collapse; table-layout: fixed; }
  .portal-projection-reference th,
.portal-projection-reference td { padding: var(--space-xs) var(--space-md); border-bottom: 1px solid var(--border); text-align: left; }
  .portal-projection-reference th {
    background: var(--paper);
    color: var(--ink-3);
    font-size: var(--type-micro);
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .portal-projection-reference td { color: var(--ink); font-size: var(--type-sm); line-height: 1.3; }
  .portal-projection-reference th:first-child,
.portal-projection-reference td:first-child { width: 48%; }
  .portal-projection-reference th:nth-child(2),
.portal-projection-reference td:nth-child(2) { width: 28%; color: var(--ink-3); }
  .portal-projection-reference th:last-child,
.portal-projection-reference td:last-child { width: 24%; text-align: right; }
  .portal-projection-reference tbody tr:last-child td { border-bottom: 0; }

  .portal-projection-change-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(17rem, .55fr); align-items: start; gap: var(--space-lg); }
  .portal-projection-change-stack { min-width: 0; display: grid; gap: var(--space-lg); }
  .portal-projection-needs-panel { position: sticky; top: var(--space-lg); overflow: hidden; border: 1px solid var(--border); background: var(--surface); }
  .portal-projection-needs-panel > header { padding: var(--space-md); border-bottom: 1px solid var(--border); }
  .portal-projection-needs-panel > header h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-lg); }
  .portal-projection-needs-panel ul { margin: var(--space-0); padding: var(--space-0); list-style: none; }
  .portal-projection-needs-panel li {
    min-height: calc(var(--space-3xl) + var(--space-md));
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-sm);
    border-bottom: 1px solid var(--border);
    padding: var(--space-md);
  }
  .portal-projection-needs-panel li > span,
.portal-projection-needs-panel li strong,
.portal-projection-needs-panel li small { min-width: 0; display: block; }
  .portal-projection-needs-panel li strong { color: var(--ink); font-size: var(--type-sm); line-height: 1.35; }
  .portal-projection-needs-panel li small { margin-top: var(--space-2xs); color: var(--ink-3); font-size: var(--type-sm); }
  .portal-projection-needs-clear { display: grid; gap: var(--space-xs); padding: var(--space-lg) var(--space-md); }
  .portal-projection-needs-clear strong { color: var(--forest-green); font-size: var(--type-base); }
  .portal-projection-needs-clear span { color: var(--ink-3); font-size: var(--type-sm); line-height: 1.4; }
  .portal-projection-needs-action { border-top: 1px solid var(--border); background: var(--paper); padding: var(--space-md); }
  .portal-projection-needs-action button { width: 100%; }

  .portal-projection-review-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr);
    align-items: start;
    gap: var(--space-lg);
  }
  .portal-projection-review-main { min-width: 0; }
  .portal-projection-review-actions { display: flex; justify-content: flex-start; }
  .portal-projection-send-panel {
    position: sticky;
    top: var(--space-lg);
    overflow: hidden;
    border: 1px solid var(--border);
    border-top: var(--space-3xs) solid var(--deep-blue);
    background: var(--surface);
    padding: var(--space-lg);
  }
  .portal-projection-send-panel h2 { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-xl); }
  .portal-projection-send-copy { margin-top: var(--space-sm); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.55; }
  .portal-projection-send-note {
    display: grid;
    gap: var(--space-2xs);
    margin-top: var(--space-lg);
    border-left: var(--space-3xs) solid var(--deep-blue);
    background: color-mix(in oklab, var(--deep-blue) 5%, transparent);
    padding: var(--space-md);
  }
  .portal-projection-send-note strong { color: var(--ink); font-size: var(--type-sm); }
  .portal-projection-send-note span { color: var(--ink-2); font-size: var(--type-sm); line-height: 1.5; }
  .portal-projection-send-panel > .portal-primary-button { width: 100%; margin-top: var(--space-lg); }
  .portal-projection-preview-note {
    margin-top: var(--space-lg);
    border: 1px solid var(--border);
    background: var(--paper);
    padding: var(--space-sm) var(--space-md);
    color: var(--ink-3);
    font-size: var(--type-sm);
    line-height: 1.45;
  }

  @media (hover: hover) and (pointer: fine) {
    .portal-community-discussion-feature:hover {
      transform: translateY(-3px);
      box-shadow: 0 20px 36px -28px color-mix(in srgb, var(--ink) 72%, transparent);
    }
    .portal-community-discussion-feature:hover .portal-community-conversation-mark i:nth-child(1) { height: var(--space-sm); }
    .portal-community-discussion-feature:hover .portal-community-conversation-mark i:nth-child(2) { height: calc(var(--space-md) + var(--space-2xs)); }
    .portal-community-discussion-feature:hover .portal-community-conversation-mark i:nth-child(3) { height: var(--space-xs); }
    .portal-community-discussion-mini:hover,
.portal-community-space-card:hover,
.portal-community-member-card:hover {
      transform: translateY(-3px);
      border-color: var(--border-strong);
      box-shadow: 0 18px 32px -28px color-mix(in srgb, var(--ink) 60%, transparent);
    }
    .portal-community-space-action[data-action="join"]:hover > span { transform: translateX(3px); }
    .portal-community-resource-row:hover { background: var(--paper); box-shadow: inset 3px 0 var(--deep-blue); }
    .portal-community-live-tile:hover,
.portal-community-live-tile:focus-visible {
      border-color: color-mix(in srgb, var(--live-accent) 48%, var(--border));
      box-shadow: 0 18px 32px -28px color-mix(in srgb, var(--ink) 60%, transparent);
      transform: translateY(calc(var(--space-3xs) * -1));
    }
    .portal-community-live-tile:hover::before,
.portal-community-live-tile:focus-visible::before { transform: scaleY(1); }
    .portal-community-live-tile:hover .portal-community-live-bars i:nth-child(1) { height: var(--space-sm); }
    .portal-community-live-tile:hover .portal-community-live-bars i:nth-child(2) { height: calc(var(--space-md) + var(--space-2xs)); }
    .portal-community-live-tile:hover .portal-community-live-bars i:nth-child(3) { height: var(--space-xs); }
  }

  @media (prefers-reduced-motion: reduce) {
    .portal-community-live-tile,
.portal-community-live-tile::before,
.portal-community-live-bars i { transition: none !important; }
  }
  .portal-skin .portal-row:hover {
    transform: none;
    background: var(--paper);
    box-shadow: inset 3px 0 var(--border-strong);
  }

  @media (max-width: 1100px) {
    .portal-overview-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-overview-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-projection-source-desk { grid-template-columns: minmax(0, 1fr); }
    .portal-projection-source-intro { min-height: calc(var(--space-3xl) * 2 + var(--space-xl)); }
    .portal-projection-change-layout { grid-template-columns: minmax(0, 1fr); }
    .portal-projection-needs-panel { position: static; }
    .portal-projection-review-layout { grid-template-columns: minmax(0, 1fr); }
    .portal-projection-send-panel { position: static; }
    .portal-community-toolbar { grid-template-columns: minmax(0, 1fr) auto auto; }
    .portal-community-layout,
.portal-community-section-grid,
.portal-community-settings-grid,
.portal-community-access-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-community-space-grid,
.portal-community-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-community-layout > aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-community-layout > aside .portal-community-faith-card { grid-column: 1 / -1; }
  }

  @media (max-width: 700px) {
    .portal-overview-head { align-items: start; }
    .portal-overview-context { max-width: 126px; }
    .portal-overview-banner { grid-template-columns: 88px minmax(0, 1fr); }
    .portal-overview-banner-action { grid-column: 2; justify-self: start; margin: 0 var(--space-md) var(--space-md); }
    .portal-overview-attention-summary { grid-template-columns: 90px minmax(0, 1fr); }
    .portal-overview-action-register li { grid-template-columns: minmax(0, 1fr); }
    .portal-overview-row-action { grid-column: 1; justify-self: start; }
    .portal-overview-release-board { grid-template-columns: 1fr; }
    .portal-overview-release-feature { min-height: 200px; }
    .portal-overview-placeholder-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-roadmap-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-financial-snapshot-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-financial-snapshot-account-head { flex-direction: column; align-items: start; }
    .portal-financial-snapshot-balance { align-items: start; text-align: left; }
    .portal-overview-placeholder-card { min-height: calc(var(--space-3xl) * 3 + var(--space-xl) + var(--space-3xs)); }
    .portal-overview-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-overview-side { grid-template-columns: minmax(0, 1fr); }
    .portal-projection-stage-rail { grid-template-columns: minmax(0, 1fr); }
    .portal-projection-stage { min-height: calc(var(--space-3xl) + var(--space-sm)); border-right: 0; border-bottom: 1px solid var(--border); }
    .portal-projection-stage:last-child { border-bottom: 0; }
    .portal-projection-baseline-head { display: block; }
    .portal-projection-baseline-head > span { display: block; margin-top: var(--space-xs); text-align: left; }
    .portal-projection-baseline-columns { display: none; }
    .portal-projection-baseline-row { grid-template-columns: minmax(0, 1fr); }
    .portal-projection-baseline-cell { border-top: 1px solid var(--border); border-right: 0; }
    .portal-projection-baseline-cell:first-child { border-top: 0; }
    .portal-projection-source-actions { align-items: stretch; flex-direction: column; }
    .portal-projection-source-actions button { width: 100%; }
    .portal-projection-reference > header { align-items: flex-start; flex-direction: column; gap: var(--space-sm); }
    .portal-projection-reference > header button { width: 100%; }
    .portal-projection-reference thead { display: none; }
    .portal-projection-reference tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-bottom: 1px solid var(--border); padding: var(--space-sm) var(--space-md); }
    .portal-projection-reference tbody tr:last-child { border-bottom: 0; }
    .portal-projection-reference td { width: auto !important; border: 0; padding: var(--space-3xs) var(--space-0); }
    .portal-projection-reference td:nth-child(2) { grid-column: 1; }
    .portal-projection-reference td:last-child { grid-column: 2; grid-row: 1 / span 2; align-self: center; padding-left: var(--space-md); }
    .portal-planning-process > summary { grid-template-columns: auto minmax(0, 1fr); }
    .portal-planning-process-meta { grid-column: 2; justify-content: space-between; text-align: left; }
    .portal-planning-phase-list { grid-template-columns: minmax(0, 1fr); }
    .portal-planning-phase-list li { border-right: 0; border-top-width: 1px; }
    .portal-planning-phase-content { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-sm); }
    .portal-planning-phase-content > strong { margin-top: 0; }
    .portal-planning-phase-content > small { grid-column: 2; margin-top: 0; }
    .portal-planning-phase-content > em { grid-column: 3; grid-row: 1 / span 2; align-self: center; margin-top: 0; padding-top: 0; }
    .portal-summary-strip--two,
.portal-summary-strip--three { grid-template-columns: minmax(0, 1fr); }
    .portal-summary-strip > div { border-right: 0; border-bottom: 1px solid var(--border); }
    .portal-summary-strip > div:last-child { border-bottom: 0; }
    .portal-record-panel-head { align-items: start; flex-direction: column; gap: var(--space-sm); }
    .portal-record-panel-head--filters > div:last-child { width: 100%; }
    .portal-investment-row { align-items: start; }
    .portal-policy-feature { grid-template-columns: 48px minmax(0, 1fr); }
    .portal-policy-feature-mark { padding-inline: var(--space-xs); }
    .portal-policy-feature-side {
      grid-column: 2;
      min-width: 0;
      align-items: flex-start;
      padding: var(--space-0) var(--space-lg) var(--space-lg);
      border-left: 0;
      text-align: left;
    }
    .portal-focused-record-head { align-items: flex-start; flex-direction: column; }
    .portal-community-page-head .portal-page-head-meta { padding-left: var(--space-sm); }
    .portal-community-toolbar { grid-template-columns: minmax(0, 1fr) auto; }
    .portal-community-toolbar form { grid-column: 1; }
    .portal-community-toolbar form input[type="search"] { width: 100%; }
    .portal-community-toolbar-note { grid-column: 1; }
    .portal-community-tour-trigger { grid-column: 2; grid-row: 2; }
    .portal-community-primary { grid-column: 1 / -1; margin-top: 0; }
    .portal-community-event-hero { grid-template-columns: minmax(88px, .4fr) minmax(0, 1.6fr); }
    .portal-community-event-seat { grid-column: 2; border-top: 1px solid var(--border); border-left: 0; }
    .portal-community-layout > aside { grid-template-columns: minmax(0, 1fr); }
    .portal-community-layout > aside .portal-community-faith-card { grid-column: auto; }
    .portal-community-conversations > div:not(.portal-community-discussion-list),
.portal-community-discussion-list { grid-template-columns: minmax(0, 1fr); }
    .portal-community-discussion-feature { min-height: 240px; }
    .portal-community-live > header { align-items: start; flex-direction: column; gap: var(--space-xs); }
    .portal-community-summary-strip,
.portal-community-space-grid,
.portal-community-member-grid,
.portal-community-access-layers { grid-template-columns: minmax(0, 1fr); }
    .portal-community-summary-strip > div { border-right: 0; border-bottom: 1px solid var(--border); }
    .portal-community-summary-strip > div:last-child { border-bottom: 0; }
    .portal-community-directory-note,
.portal-community-access-banner { align-items: start; flex-direction: column; }
    .portal-community-discussion-row,
.portal-community-content-row { grid-template-columns: var(--space-2xs) minmax(0, 1fr); }
    .portal-community-discussion-row em,
.portal-community-content-row button,
.portal-community-event-rsvp { grid-column: 2; justify-self: start; }
    .portal-community-event-rsvp { justify-items: start; }
    .portal-community-event-rsvp small { text-align: left; }
    .portal-community-resource-row { grid-template-columns: auto minmax(0, 1fr); }
    .portal-community-resource-row button { grid-column: 2; justify-self: start; }
    .portal-community-thread-preview footer { align-items: flex-start; flex-direction: column; }
    .portal-community-facet-group > header { flex-direction: column; gap: var(--space-xs); }
    .portal-community-facet-group > header span { text-align: left; }
    .portal-lesson-intro { grid-template-columns: minmax(0,1fr); align-items: start; }
    .portal-lesson-time { width: 5rem; height: 5rem; }
    .portal-lesson-progress-head { grid-template-columns: minmax(0,1fr); gap: var(--space-sm); }
    .portal-lesson-stage,
.portal-lesson-step { min-height: 28rem; }
    .portal-lesson-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-lesson-actions > span { grid-column: 1 / -1; grid-row: 2; }
    .portal-lesson-notes { grid-template-columns: minmax(0,1fr); }
  }

  @media (max-width: 440px) {
    .portal-investment-row { grid-template-columns: auto minmax(0, 1fr); }
    .portal-investment-value {
      grid-column: 2;
      display: flex;
      min-width: 0;
      align-items: baseline;
      justify-content: space-between;
      gap: var(--space-sm);
      text-align: left;
    }
    .portal-investment-value > p { margin-top: 0; }
    .portal-community-toolbar { grid-template-columns: minmax(0, 1fr); }
    .portal-community-toolbar form,
.portal-community-toolbar-note,
.portal-community-tour-trigger,
.portal-community-primary { grid-column: 1; grid-row: auto; }
    .portal-community-tour-trigger,
.portal-community-primary { margin: var(--space-xs) var(--space-sm); }
    .portal-community-event-hero { grid-template-columns: minmax(0, 1fr); }
    .portal-community-event-date,
.portal-community-event-seat { grid-column: auto; }
    .portal-community-event-seat { border-left: 0; }
    .portal-community-live-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-community-discussion-feature { padding: var(--space-lg); }
    .portal-community-discussion-feature > footer { align-items: start; flex-direction: column; }
    .portal-community-modules > header { align-items: start; flex-direction: column; gap: var(--space-xs); }
    .portal-community-faith-card { grid-template-columns: minmax(72px, .35fr) minmax(0, 1.65fr); }
    .portal-community-lesson-row { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
    .portal-community-state { grid-column: 2; }
    .portal-community-profile-list div { grid-template-columns: minmax(0, 1fr); gap: var(--space-2xs); }
    .portal-community-verified-row { grid-template-columns: auto minmax(0, 1fr); }
    .portal-community-verified-row button { grid-column: 2; justify-self: start; }
    .portal-community-setting-row { align-items: start; flex-direction: column; gap: var(--space-xs); padding: var(--space-sm) 0; }
    .portal-community-setting-row strong { text-align: left; }
    .portal-community-thread-preview footer div { flex-wrap: wrap; }
  }
  .portal-skin :is(h1, h2, h3, h4),
.portal-skin .portal-sidebar-brand strong {
    font-family: var(--font-portal-display);
  }
}
@layer components {
  .portal-business-report-detail-head { margin-top: 0; }
  .portal-business-report-detail-head > p { text-align: right; }

  .portal-business-report-detail {
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
  }
  .portal-business-report-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr);
    gap: clamp(var(--space-xl), 4vw, 3.5rem);
    min-height: 290px;
    align-items: end;
    padding: clamp(var(--space-xl), 5vw, 4rem);
    background:
      radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--terra) 24%, transparent), transparent 34%),
      linear-gradient(132deg, var(--prod-color-93) 0%, var(--prod-color-94) 56%, var(--prod-color-95) 100%);
    color: var(--prod-color-91);
  }
  .portal-business-report-hero .portal-eyebrow { color: color-mix(in srgb, var(--terra-soft) 74%, var(--prod-color-91)); }
  .portal-business-report-hero-copy h1 {
    max-width: 760px;
    margin-top: var(--space-sm);
    color: var(--prod-color-91);
    font-family: var(--font-display), var(--font-ui-sans), ui-sans-serif, system-ui, sans-serif;
    font-size: clamp(2rem, 4.4vw, 3.65rem);
    font-weight: 710;
    letter-spacing: -.045em;
    line-height: 1.02;
  }
  .portal-business-report-hero-copy > p:last-child {
    max-width: 600px;
    margin-top: var(--space-md);
    color: rgba(255, 255, 255, .72);
    font-size: var(--type-base);
    line-height: 1.55;
  }
  .portal-business-report-thesis,
.portal-business-report-document-action {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--space-lg);
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .08);
    box-shadow: 0 24px 50px -42px var(--prod-color-96);
    backdrop-filter: blur(10px);
  }
  .portal-business-report-thesis span,
.portal-business-report-document-action > span {
    color: var(--prod-color-97);
    font-size: var(--type-micro);
    font-weight: 780;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .portal-business-report-thesis strong,
.portal-business-report-document-action > strong {
    margin-top: var(--space-sm);
    color: var(--prod-color-91);
    font-size: clamp(1.05rem, 1.8vw, 1.3rem);
    font-weight: 660;
    line-height: 1.48;
  }
  .portal-business-report-open { margin-top: var(--space-lg); }
  .portal-business-report-open .portal-primary-button {
    min-height: 40px;
    padding: var(--space-0) var(--space-md);
    border-color: var(--prod-color-91);
    background: var(--prod-color-91);
    color: var(--prod-color-98);
    font-size: var(--type-sm);
    font-weight: 760;
  }
  .portal-business-report-open .portal-primary-button:disabled { cursor: not-allowed; opacity: .46; }
  .portal-business-report-open p { margin-top: var(--space-sm); color: var(--prod-color-91); font-size: var(--type-sm); }

  .portal-business-report-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-bottom: 1px solid var(--border);
  }
  .portal-business-report-metrics > div {
    position: relative;
    min-width: 0;
    padding: var(--space-lg);
    border-right: 1px solid var(--border);
  }
  .portal-business-report-metrics > div:last-child { border-right: 0; }
  .portal-business-report-metrics > div::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 34%;
    height: 2px;
    background: var(--deep-blue);
  }
  .portal-business-report-metrics > div[data-tone="rust"]::before { background: var(--terra); }
  .portal-business-report-metrics > div[data-tone="olive"]::before { background: var(--forest-green); }
  .portal-business-report-metrics span,
.portal-business-report-metrics strong,
.portal-business-report-metrics small { display: block; }
  .portal-business-report-metrics span { color: var(--ink-3); font-size: var(--type-micro); font-weight: 730; letter-spacing: .08em; text-transform: uppercase; }
  .portal-business-report-metrics strong { margin-top: var(--space-sm); color: var(--ink); font-size: clamp(1.35rem, 2.3vw, 2rem); font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
  .portal-business-report-metrics small { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.4; }

  .portal-business-report-body {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    border-bottom: 1px solid var(--border);
  }
  .portal-business-report-findings,
.portal-business-report-decisions { min-width: 0; padding: clamp(var(--space-lg), 3vw, var(--space-2xl)); }
  .portal-business-report-findings { border-right: 1px solid var(--border); }
  .portal-business-report-findings h2,
.portal-business-report-decisions h2,
.portal-business-report-next h2 { margin-top: var(--space-xs); color: var(--ink); font-size: var(--type-xl); font-weight: 720; letter-spacing: -.025em; }
  .portal-business-report-findings > div,
.portal-business-report-decisions > div { margin-top: var(--space-lg); }
  .portal-business-report-findings article {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: var(--space-md);
    padding: var(--space-md) var(--space-sm);
    border-bottom: 1px solid var(--border);
  }
  .portal-business-report-findings article:first-child { border-top: 1px solid var(--border); }
  .portal-business-report-findings article > span { color: var(--terra); font-size: var(--type-sm); font-weight: 780; font-variant-numeric: tabular-nums; }
  .portal-business-report-findings strong,
.portal-business-report-decisions strong { display: block; color: var(--ink); font-size: var(--type-base); line-height: 1.4; }
  .portal-business-report-findings p,
.portal-business-report-decisions p { margin-top: var(--space-xs); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.5; }
  .portal-business-report-decisions { background: color-mix(in srgb, var(--paper) 68%, var(--surface)); }
  .portal-business-report-decisions article { padding: var(--space-md) 0; border-bottom: 1px solid var(--border); }
  .portal-business-report-decisions article:first-child { padding-top: 0; }
  .portal-business-report-decisions article:last-child { padding-bottom: 0; border-bottom: 0; }
  .portal-business-report-decisions article > span {
    display: inline-block;
    margin-bottom: var(--space-xs);
    color: var(--deep-blue);
    font-size: var(--type-micro);
    font-weight: 780;
    letter-spacing: .09em;
    text-transform: uppercase;
  }
  .portal-business-report-decisions article[data-state="watch"] > span { color: var(--terra); }
  .portal-business-report-decisions article[data-state="decided"] > span { color: var(--forest-green); }

  .portal-business-report-next { padding: clamp(var(--space-lg), 3vw, var(--space-2xl)); border-bottom: 1px solid var(--border); }
  .portal-business-report-next > header { display: flex; align-items: end; justify-content: space-between; gap: var(--space-lg); }
  .portal-business-report-next > header > span { color: var(--ink-3); font-size: var(--type-sm); }
  .portal-business-report-next > div { margin-top: var(--space-lg); border: 1px solid var(--border); }
  .portal-business-report-next article {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: var(--space-md);
    align-items: center;
    min-height: 76px;
    padding: var(--space-sm) var(--space-md);
    border-bottom: 1px solid var(--border);
  }
  .portal-business-report-next article:last-child { border-bottom: 0; }
  .portal-business-report-next article > span { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--border-strong); color: var(--deep-blue); font-size: var(--type-sm); font-weight: 780; }
  .portal-business-report-next small,
.portal-business-report-next strong { display: block; }
  .portal-business-report-next small { color: var(--terra); font-size: var(--type-micro); font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
  .portal-business-report-next strong { margin-top: var(--space-2xs); color: var(--ink); font-size: var(--type-sm); line-height: 1.4; }
  .portal-business-report-next time { color: var(--ink-3); font-size: var(--type-sm); white-space: nowrap; }

  .portal-business-report-basis {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(190px, .6fr);
    gap: var(--space-md) var(--space-xl);
    padding: var(--space-lg);
    background: var(--paper);
  }
  .portal-business-report-basis span,
.portal-business-report-basis strong { display: block; }
  .portal-business-report-basis span { color: var(--ink-3); font-size: var(--type-micro); font-weight: 720; letter-spacing: .08em; text-transform: uppercase; }
  .portal-business-report-basis strong { margin-top: var(--space-xs); color: var(--ink-2); font-size: var(--type-sm); line-height: 1.45; }
  .portal-business-report-basis > p { grid-column: 1 / -1; padding-top: var(--space-md); border-top: 1px solid var(--border); color: var(--ink-3); font-size: var(--type-sm); line-height: 1.45; }

  @media (max-width: 920px) {
    .portal-business-report-hero { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .portal-business-report-thesis,
.portal-business-report-document-action { min-height: 150px; }
    .portal-business-report-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-business-report-metrics > div:nth-child(2) { border-right: 0; }
    .portal-business-report-metrics > div:nth-child(-n + 2) { border-bottom: 1px solid var(--border); }
    .portal-business-report-body { grid-template-columns: minmax(0, 1fr); }
    .portal-business-report-findings { border-right: 0; border-bottom: 1px solid var(--border); }
  }

  @media (max-width: 560px) {
    .portal-business-report-detail-head { align-items: flex-start; }
    .portal-business-report-detail-head > p { text-align: left; }
    .portal-business-report-hero { padding: var(--space-lg); }
    .portal-business-report-hero-copy h1 { font-size: 2rem; }
    .portal-business-report-metrics { grid-template-columns: minmax(0, 1fr); }
    .portal-business-report-metrics > div { border-right: 0; border-bottom: 1px solid var(--border); }
    .portal-business-report-metrics > div:last-child { border-bottom: 0; }
    .portal-business-report-next > header { align-items: flex-start; flex-direction: column; }
    .portal-business-report-next article { grid-template-columns: 36px minmax(0, 1fr); }
    .portal-business-report-next time { grid-column: 2; }
    .portal-business-report-basis { grid-template-columns: minmax(0, 1fr); }
  }

  @media (prefers-reduced-motion: reduce) {
    .portal-business-report-detail .portal-interactive-rail::before { transition: none !important; }
  }
}
:root {
  --markup-ink: var(--prod-color-99);
  --markup-ink-hover: var(--prod-color-100);
}
