/* ==========================================================================
   FOLIO · PAGE LAYOUT
   --------------------------------------------------------------------------
   Registers belong to SECTIONS. Cards sit on them. The previous pass applied
   a register to every module, which turned a composed page into a stack of
   full-width bands — the layout equivalent of shouting every word.

   THE PAGE SPINE
     .folio-page      one width, one gutter, shared by chrome and body
     .folio-entity-card   the household header, as a card, tabs inside it
     .folio-hero      Register A · no surface at all; the page's big moment
     .folio-sec       a titled section on the canvas
     .folio-band      Register C · full-bleed vellum, static, one per page
     .folio-cols      the grid cards live in

   Load order: folio.css -> folio-cards.css -> folio-editor.css
               -> folio-modules.css -> folio-layout.css -> folio-chrome.css
   ========================================================================== */

/* ==========================================================================
   A · SPINE
   ========================================================================== */

.advisor-app {
    --advisor-topbar-height: 66px;
}

.folio .folio-page {
    width: 100%;
    min-width: 0;
    max-width: var(--f-page, 1280px);
    margin: 0 auto;
    padding: 0 var(--f-gutter, 40px);
}

.folio .folio-route {
    display: block;
    min-width: 0;
}

/* Wide ledgers and boards scroll inside the household mount, rather than
   expanding the grid track and clipping the entire phone page. */
.folio .household-detail,
.folio .household-detail-body > * { min-width: 0; }
.folio .household-detail-body { grid-template-columns: minmax(0, 1fr); }

/* Keep the Reports grid item on the page measure; only its dense tables scroll. */
.folio #business-module-root:has(.practice-module-route--reports) {
    min-width: 0;
    width: 100%;
}


/* --------------------------------------------------------------------------
   ROUTE CHROME (advisorFolioRoute)

   The tab rail and the route's identity, set as CHROME. The identity heading
   is deliberately far smaller than .folio-page__header's h1: a route that
   leads with a hero already has its largest moment, and two display headings
   stacked above the fold read as two pages. Where a route has no hero, the
   heading still orients without shouting.
   -------------------------------------------------------------------------- */

/* The rail is a REGISTER, not a block on the measure: its ground bleeds to the
   canvas edge like the band's and its inner .folio-page re-insets, so a sticky
   rail can be flush across the window while its tabs stay on the text column.
   It is also a direct child of .folio-route, which is what gives `sticky` a
   containing block tall enough to stick against -- inside the chrome's own
   .folio-page it scrolled away with the heading. */
.folio .folio-route__nav {
    position: sticky;
    top: var(--advisor-topbar-height, 76px);
    z-index: 24;
    padding: 14px 0 0;
    background: var(--f-canvas);
    box-shadow: 0 1px 0 var(--f-line-strong);
}
.folio .folio-route__id {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px 28px;
    padding: 18px 0 14px;
}
.folio .folio-route__idmain { min-width: 0; }
.folio .folio-route__eyebrow {
    margin: 0 0 5px;
    color: var(--f-accent);
    font: 500 9.5px/1 var(--f-font-mono);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.folio .folio-route__title {
    margin: 0;
    color: var(--f-ink);
    font: 400 clamp(23px, 2.3vw, 30px)/1.12 var(--f-font-display);
    letter-spacing: -0.015em;
}
.folio .folio-route__lede {
    max-width: 76ch;
    margin: 6px 0 0;
    color: var(--f-muted);
    font: 400 12.5px/1.5 var(--f-font-ui);
}
.folio .folio-route__actions {
    display: flex;
    flex: none;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
}

/* --------------------------------------------------------------------------
   A2 · THE ROUTE BLEEDS, ITS BLOCKS DO NOT

   Same contract as the topbar below, and it is the SAME contract for every
   route -- household detail and practice alike, both mounted by
   advisorFolioRoute(). A register (.folio-band, .folio-fade) is a change of
   GROUND, so it has to reach the edge of the canvas it sits on. Bleeding it by
   one gutter only ever cancelled the padding of the box it was already inside:
   on any canvas wider than --f-page the whole route stayed in a centred box and
   every band stopped short of the background, reading as a second container
   floating on the page.

   So the clamp moves off the containers and onto the blocks. Nothing here
   names a route: the page a route mounts in stops constraining, the element it
   mounts into stops constraining, each top-level block of the route states the
   measure itself, and the two registers decline it. A route that renders no
   .folio-route -- the household tabs still on legacy markup reached through a
   different path -- is untouched.
   -------------------------------------------------------------------------- */

.app-page.folio.active:has(.folio-route) {
    max-width: none;
    padding-inline: 0;
}

/* the mount: whatever element a route is rendered into */
.folio *:has(> .folio-route) {
    max-width: none;
    padding-inline: 0;
}

/* :not() carries the weight of its heaviest argument, which is what lifts this
   over a block's own padding rule -- .folio .folio-hero sets `padding: 40px 0`
   on the assumption that a container supplies the gutter, and under this spine
   the block supplies its own. Only padding-INLINE is claimed, so each block
   keeps its own vertical rhythm. */
.folio .folio-route > *:not(.folio-band, .folio-fade, .folio-route, .folio-route__nav) {
    width: 100%;
    max-width: var(--f-page, 1280px);
    margin-inline: auto;
    padding-inline: var(--f-gutter, 40px);
}

/* A tab that still declares its own .folio-route is absorbed by the shell's:
   the inner one stops constraining and its blocks take the measure through the
   same rule above, so declaring a route or contributing blocks render
   identically. Tabs mid-migration need no coordination; the wrapper can go
   whenever that tab is next touched. */
.folio .folio-route > .folio-route {
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
}

/* the registers own the canvas; only their .folio-page carries the measure */
.folio .folio-route > :is(.folio-band, .folio-fade) {
    max-width: none;
    padding-inline: 0;
}

.folio .folio-route :is(.folio-band, .folio-fade) > .folio-page {
    padding-inline: var(--f-gutter, 40px);
}

/* --------------------------------------------------------------------------
   A3 · THE OVERLAY PORTAL

   An overlay cannot be rendered inside the route. Two ancestors trap it:
   .workspace-main-content carries `isolation: isolate` (it owns the canvas
   grid), which makes it a stacking context at z-index auto, and the sidebar
   beside it claims z-index 10. A .folio-scrim inside the route is therefore
   painted over by the sidebar however high its own z-index goes -- and by the
   household header strip (z-index 60) and the sticky topbar (z-index 60),
   which is what put the household nav on top of the open policy editor.

   #household-overlay-root sits outside .workspace entirely, alongside the
   task, meeting and business overlay roots. It has no box of its own: it is
   empty when nothing is open, and its children are position: fixed, so it
   never intercepts a pointer event it should not.
   -------------------------------------------------------------------------- */

#household-overlay-root {
    position: relative;
    z-index: 1500;
}

/* the topbar bleeds, its contents do not */
.book-topbar.folio {
    position: sticky;
    top: 0;
    z-index: 60;
    padding: 0;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    min-width: 0;
}
.book-topbar.folio > .folio-page {
    display: grid;
    grid-template-columns: minmax(150px, 0.9fr) minmax(260px, 1.3fr) auto;
    align-items: center;
    gap: 20px;
}

.folio .advisor-scope-bar.is-sticky {
    top: var(--advisor-topbar-height);
}

/* The route is content on the one application canvas, not a second canvas
   inset inside it. This also retires the legacy 1080px anti-squish rule for
   the migrated household surface. */
.app-page.folio.active {
    width: 100%;
    min-width: 0;
    max-width: var(--f-page, 1280px);
    margin: 0 auto;
    padding: 0 var(--f-gutter, 40px) 64px;
    background: transparent;
}

/* ==========================================================================
   B · ENTITY CARD  — the household header returns to being a card
   ========================================================================== */

.folio .folio-entity-card {
    margin: 20px 0 0;
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius-lg, 13px);
    background: var(--f-paper);
    box-shadow: var(--f-shadow);
}

.folio .folio-entity-card__top {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 22px 16px;
}

.folio .folio-entity-card__back {
    display: grid;
    flex: none;
    place-content: center;
    width: 32px;
    height: 32px;
    margin-top: 3px;
    border: 1px solid var(--f-line-strong);
    border-radius: 50%;
    background: var(--f-paper);
    color: var(--f-muted);
    text-decoration: none;
    transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.folio .folio-entity-card__back:hover {
    border-color: var(--f-accent);
    background: var(--f-accent-soft);
    color: var(--f-accent);
}

.folio .folio-entity-card__id { flex: 1; min-width: 0; }

.folio .folio-entity-card__eyebrow {
    margin: 0 0 5px;
    color: var(--f-accent);
    font: 500 9.5px/1 var(--f-font-mono);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.folio .folio-entity-card__title {
    margin: 0;
    font: 400 clamp(21px, 2.1vw, 27px)/1.15 var(--f-font-display);
    letter-spacing: -0.015em;
}

.folio .folio-entity-card__lede {
    margin: 6px 0 0;
    max-width: 76ch;
    color: var(--f-muted);
    font: 400 12.5px/1.5 var(--f-font-ui);
}

/* a compact figure rides the header rather than a stretched metadata rail —
   the old dotted leaders spanned the whole viewport and read as a bug */
.folio :is(.folio-entity-card__figure, .advisor-entity-figure) {
    flex: none;
    padding-left: 20px;
    border-left: 1px solid var(--f-hair, rgba(78, 66, 43, 0.10));
    text-align: right;
}
.folio :is(.folio-entity-card__figure, .advisor-entity-figure) span {
    display: block;
    margin-bottom: 4px;
    color: var(--f-dim);
    font: 500 9.5px/1 var(--f-font-mono);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.folio :is(.folio-entity-card__figure, .advisor-entity-figure) strong {
    display: block;
    font: 400 22px/1 var(--f-font-display);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.folio :is(.folio-entity-card__figure, .advisor-entity-figure) em {
    display: block;
    margin-top: 5px;
    color: var(--f-muted);
    font: 400 11px/1.4 var(--f-font-ui);
    font-style: normal;
}

.folio .folio-entity-card__actions { display: flex; flex: none; gap: 8px; margin-top: 3px; }

/* tabs live inside the card, on its bottom edge */
.folio .folio-entity-card__tabs {
    display: flex;
    gap: 22px;
    overflow-x: auto;
    padding: 0 22px;
    border-top: 1px solid var(--f-line);
    scrollbar-width: none;
}
.folio .folio-entity-card__tabs::-webkit-scrollbar { display: none; }

/* --------------------------------------------------------------------------
   B2 · MAPPING — advisorEntityHeader() output onto the entity card.
   core/ui.js already emits the right structure and the IDs the routes bind
   to, so the header migrates in CSS alone. No JS change, no lost hooks.
   -------------------------------------------------------------------------- */

.folio .advisor-entity-header {
    margin: 20px 0 0;
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius-lg, 13px);
    background: var(--f-paper);
    box-shadow: var(--f-shadow);
}

/* The household settings menu opens beyond the entity card. The tab row owns
   its own horizontal clipping, so the card must not clip the management menu. */
.folio .advisor-entity-header.household-entity-header { overflow: visible; }

.folio .advisor-entity-header-main {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 22px 16px;
}

.folio .advisor-entity-back {
    display: grid;
    flex: none;
    place-content: center;
    width: 32px;
    height: 32px;
    margin-top: 3px;
    border: 1px solid var(--f-line-strong);
    border-radius: 50%;
    background: var(--f-paper);
    color: var(--f-muted);
    text-decoration: none;
    transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.folio .advisor-entity-back:hover {
    border-color: var(--f-accent);
    background: var(--f-accent-soft);
    color: var(--f-accent);
}

.folio .advisor-entity-identity { flex: 1; min-width: 0; }

.folio .advisor-entity-eyebrow {
    margin: 0 0 5px;
    color: var(--f-accent);
    font: 500 9.5px/1 var(--f-font-mono);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.folio .advisor-entity-identity h1 {
    margin: 0;
    font: 400 clamp(21px, 2.1vw, 27px)/1.15 var(--f-font-display);
    letter-spacing: -0.015em;
}

.folio .advisor-entity-identity > p {
    margin: 6px 0 0;
    max-width: 76ch;
    color: var(--f-muted);
    font: 400 12.5px/1.5 var(--f-font-ui);
}

/* facts ride the header as a compact right-hand group.
   They are NOT a full-width leader rail — stretching dotted leaders across
   the viewport was the single ugliest thing in the previous build. */
.folio .advisor-entity-facts {
    display: flex;
    flex: none;
    gap: 24px;
    margin: 2px 0 0;
    padding-left: 20px;
    border-left: 1px solid var(--f-hair, rgba(78, 66, 43, 0.10));
}
.folio .advisor-entity-facts > div { min-width: 0; }
.folio .advisor-entity-facts dt {
    margin: 0 0 4px;
    color: var(--f-dim);
    font: 500 9px/1 var(--f-font-mono);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
}
.folio .advisor-entity-facts dd {
    margin: 0;
    font: 500 12.5px/1.35 var(--f-font-ui);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.folio .advisor-entity-actions { display: flex; flex: none; gap: 8px; margin-top: 3px; }

/* the tab strip lives inside the card, on its bottom edge */
.folio .advisor-entity-navigation {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding: 0 22px;
    border-top: 1px solid var(--f-line);
    scrollbar-width: none;
}
.folio .advisor-entity-navigation::-webkit-scrollbar { display: none; }

/* advisorEntityHeader() deliberately keeps a semantic nav inside the shared
   navigation slot. The slot owns the surface and scrolling; the nav only owns
   the row of tabs. Styling both created the visible "container in a container". */
.folio .advisor-entity-navigation > .household-subtabs-nav {
    flex: 0 0 max-content;
    width: max-content;
    max-width: none;
    gap: 12px;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

@media (max-width: 1080px) {
    .folio .advisor-entity-header-main { flex-wrap: wrap; }
    .folio .advisor-entity-facts {
        order: 4;
        width: 100%;
        margin-top: 12px;
        padding-top: 12px;
        padding-left: 0;
        border-top: 1px solid var(--f-hair, rgba(78, 66, 43, 0.10));
        border-left: 0;
    }
}

/* ==========================================================================
   C · HERO  — Register A. No surface. The page's largest moment.
   ========================================================================== */

.folio .folio-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr);
    gap: 56px;
    align-items: start;
    padding: 52px 0 44px;
    border-bottom: 1px solid var(--f-line);
}

.folio .folio-hero__eyebrow {
    margin: 0;
    color: var(--f-bronze);
    font: 500 10px/1 var(--f-font-mono);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.folio .folio-hero__figure {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin: 16px 0 0;
    color: var(--f-ink);
    font: 400 clamp(38px, 5.3vw, 76px)/.92 var(--f-font-display);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.025em;
    white-space: nowrap;
}
.folio .folio-hero__figure.pos { color: var(--f-green); }
.folio .folio-hero__figure.neg { color: var(--f-red); }
.folio .folio-hero__figure.dim { color: var(--f-dim); }
.folio .folio-hero__figure.is-estimate { font-weight: 300; }
.folio .folio-hero__figure.is-unknown { font-style: italic; font-size: clamp(28px, 4vw, 52px); color: var(--f-dim); }
.folio .folio-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 16px; }
.folio .folio-hero__actions { margin-top: 24px; }

/* H4: a full-width conclusion and the open calculation row below it. */
.folio .folio-hero.folio-hero--open { grid-template-columns: minmax(0, 1fr); gap: 0; border-bottom: 0; container-type: inline-size; }
.folio .folio-hero__figure-action { display: inline-flex; position: relative; flex-wrap: wrap; align-items: baseline; gap: 12px 22px; max-width: 100%; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; cursor: pointer; }
.folio .folio-hero__figure-action > small { color: var(--f-muted); font: 400 12px/1.4 var(--f-font-ui); letter-spacing: normal; text-decoration: underline; text-underline-offset: 3px; }
.folio .folio-hero__figure-action:focus-visible { outline: 2px solid var(--f-accent); outline-offset: 5px; }

.folio .folio-hero__title {
    margin: 14px 0 0;
    font: 400 clamp(19px, 2vw, 26px)/1.2 var(--f-font-display);
}

.folio .folio-hero__lede {
    margin: 10px 0 0;
    max-width: 62ch;
    color: var(--f-muted);
    font: 400 15px/1.6 var(--f-font-ui);
}

/* the glance panel: a quiet inset, not a card competing with the hero */
.folio .folio-hero__glance {
    padding: 17px 19px;
    border-radius: var(--f-radius, 9px);
    background: var(--f-inset);
}
.folio .folio-hero__glance > p {
    margin: 0 0 11px;
    color: var(--f-dim);
    font: 500 9.5px/1 var(--f-font-mono);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.folio .folio-hero__glance b {
    display: block;
    margin-bottom: 8px;
    font: 500 13.5px/1.4 var(--f-font-ui);
}
.folio .folio-hero__glance span {
    display: block;
    color: var(--f-muted);
    font: 400 12px/1.5 var(--f-font-ui);
}

/* Allocation ledger — a sticky source-to-use statement, not a KPI strip. */
.folio .folio-allocation-ledger {
    position: sticky;
    z-index: 12;
    top: 0;
    margin-top: 16px;
    padding: 22px 0 10px;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    background: var(--f-canvas);
}
.folio .folio-allocation-ledger__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    padding-bottom: 13px;
}
.folio .folio-allocation-ledger__source,
.folio .folio-allocation-ledger__conclusion { min-width: 0; }
.folio .folio-allocation-ledger__source > span,
.folio .folio-allocation-ledger__conclusion > span {
    display: block;
    margin-bottom: 5px;
    color: var(--f-dim);
    font: 600 9.5px/1 var(--f-font-mono);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.folio .folio-allocation-ledger__source > strong,
.folio .folio-allocation-ledger__conclusion > strong {
    color: var(--f-ink);
    font: 500 clamp(32px, 3.6vw, 40px)/1 var(--f-font-display);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.folio .folio-allocation-ledger__source > em {
    margin-left: 5px;
    color: var(--f-dim);
    font: 500 10px/1 var(--f-font-mono);
}
.folio .folio-allocation-ledger__source > p {
    max-width: 62ch;
    margin: 6px 0 0;
    color: var(--f-muted);
    font-size: 10.5px;
}
.folio .folio-allocation-ledger__conclusion {
    min-width: 245px;
    text-align: right;
}
.folio .folio-allocation-ledger__conclusion > strong { color: var(--f-green); }
.folio .folio-allocation-ledger__conclusion > strong.is-unknown { color: var(--f-muted); font-size: 28px; }
.folio .folio-allocation-ledger__conclusion > small {
    display: block;
    margin-top: 5px;
    color: var(--f-muted);
    font: 500 10px/1.3 var(--f-font-mono);
}
.folio .folio-allocation-ledger__conclusion > small b { color: var(--f-ink); }
.folio .folio-allocation-ledger__bar {
    display: flex;
    width: 100%;
    height: 11px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--f-line-strong);
}
.folio .folio-allocation-ledger__bar > i {
    display: block;
    height: 100%;
    transition: width .18s ease;
}
.folio .folio-allocation-ledger__bar .tone-ink,
.folio .folio-allocation-ledger__legend .tone-ink { background: var(--f-ink); }
.folio .folio-allocation-ledger__bar .tone-slate,
.folio .folio-allocation-ledger__legend .tone-slate { background: var(--f-slate); }
.folio .folio-allocation-ledger__bar .tone-gold,
.folio .folio-allocation-ledger__legend .tone-gold { background: var(--f-gold); }
.folio .folio-allocation-ledger__bar .tone-quiet,
.folio .folio-allocation-ledger__legend .tone-quiet { background: var(--f-line-strong); }
.folio .folio-allocation-ledger.is-over .folio-allocation-ledger__bar {
    outline: 2px solid var(--f-red);
    outline-offset: 2px;
}
.folio .folio-allocation-ledger__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    padding: 9px 0 0;
    color: var(--f-muted);
    font: 500 9.5px/1.3 var(--f-font-mono);
}
.folio .folio-allocation-ledger__legend > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.folio .folio-allocation-ledger__legend i {
    width: 7px;
    height: 7px;
    border-radius: 2px;
}
.folio .folio-allocation-ledger__legend b {
    color: var(--f-ink);
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 760px) {
    .folio .folio-allocation-ledger { position: static; padding-top: 20px; }
    .folio .folio-allocation-ledger__head { align-items: stretch; flex-direction: column; gap: 18px; }
    .folio .folio-allocation-ledger__conclusion { min-width: 0; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
    .folio .folio-allocation-ledger__bar > i { transition: none; }
}

/* Native task page, board, and filter composition. */
.folio .folio-page__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    padding: 32px 0 22px;
    border-bottom: 1px solid var(--f-line-strong);
}
.folio .folio-page__heading h1 { margin: 4px 0 8px; font: 430 clamp(38px, 5vw, 64px)/1 var(--f-font-display); }
.folio .folio-page__description { max-width: 68ch; margin: 0; color: var(--f-dim); }
.folio .folio-page__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.folio .folio-page--compact .folio-page__header { align-items: center; padding: 20px 0 15px; }
.folio .folio-page--compact .folio-page__heading h1 { margin: 3px 0 5px; font-size: clamp(32px, 3.6vw, 46px); }
.folio .folio-page--compact .folio-page__description { font-size: 13px; }
.folio .folio-task-command-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0 0; }
.folio .folio-task-command-bar__tools,
.folio .folio-saved-views { display: flex; align-items: center; gap: 8px; }
.folio .folio-saved-views .folio-menu-select__trigger { min-height: 36px; max-width: 220px; }
.folio .folio-saved-views .folio-button { min-height: 36px; padding: 7px 10px; }
.folio .folio-task-saved-view-error { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.folio .folio-task-saved-view-error .folio-button { min-height: 30px; padding: 5px 9px; }
/* The filter bar is a search line plus a row of stated filters, not a seven
   column grid of boxed form controls. The grid squeezed every field to 120px --
   which is how "Type a household name" ended up truncated inside its own
   placeholder -- and gave equal visual weight to search and to a rarely
   touched dropdown. Search leads on its own row; the filters wrap beneath it
   and tint themselves when they are actually narrowing the queue. */
/* The filter bar is one line. It was a tinted card three bands tall -- search,
   then chips, then a footer holding the disclosure and the reset -- which spent
   more vertical space on narrowing the queue than on showing it. Search shares
   the row with the filters, and the disclosure and reset are chips at the end of
   the same row. No card: the controls are legible on the page ground. */
.folio .folio-filter-bar { margin: 10px 0 12px; padding: 0; border: 0; background: transparent; }
.folio .folio-filter-bar__primary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
/* Search leads the row. It grows four times as fast as the household field and
   the household field is capped, so no filter can ever end up wider than the
   thing that actually searches the queue. */
.folio .folio-filter-bar__primary .folio-field--search { flex: 4 1 260px; min-width: 220px; }
.folio .folio-filter-bar__primary .folio-field--search .folio-field__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.folio .folio-filter-bar__primary .folio-search-control input { min-height: 38px; font-size: 14px; }

/* The household filter is a typed record reference, so it wears the chip shape
   the menus wear rather than standing apart as a boxed labelled input. */
.folio .folio-filter-bar__primary .folio-field--household { position: relative; flex: 1 1 180px; min-width: 160px; max-width: 250px; flex-direction: row; align-items: center; gap: 0; min-height: 38px; padding: 0 13px; border: 1px solid var(--f-line-strong); border-radius: 999px; background: var(--f-paper); }
.folio .folio-filter-bar__primary .folio-field--household .folio-field__label { flex: none; margin-right: 9px; color: var(--f-faint); font: 600 8.5px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-filter-bar__primary .folio-field--household .folio-combobox { flex: 1; min-width: 0; }
.folio .folio-filter-bar__primary .folio-combobox input { min-height: 36px; padding: 6px 0; border: 0; background: transparent; font: 550 13px/1.2 var(--f-font-ui); }
.folio .folio-filter-bar__primary .folio-combobox input:focus { outline: none; }
.folio .folio-filter-bar__primary .folio-field--household:focus-within { border-color: var(--f-accent); box-shadow: 0 0 0 3px var(--f-accent-soft); }
.folio .folio-filter-bar__primary .folio-field--household .folio-field__hint { position: absolute; top: calc(100% + 4px); left: 13px; color: var(--f-red); font-size: 11px; white-space: nowrap; }
.folio .folio-filter-bar__primary .folio-field--household.folio-field--error { border-color: var(--f-red); }

/* Closed, the disclosure is one more chip in the row. Open, it claims a line so
   the secondary filters have somewhere to land. */
.folio .folio-filter-bar__more { flex: none; }
.folio .folio-filter-bar__more[open] { flex: 1 1 100%; }
.folio .folio-filter-bar__more > summary { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 13px; border: 1px dashed var(--f-line-strong); border-radius: 999px; color: var(--f-dim); font: 600 11.5px/1 var(--f-font-ui); cursor: pointer; list-style: none; }
.folio .folio-filter-bar__more > summary:hover { border-color: var(--f-faint); color: var(--f-ink); }
.folio .folio-filter-bar__more > summary::-webkit-details-marker { display: none; }
.folio .folio-filter-bar__more > summary::before { content: "+"; color: var(--f-accent); font: 600 15px/1 var(--f-font-ui); }
.folio .folio-filter-bar__more[open] > summary { border-style: solid; border-color: var(--f-accent); color: var(--f-accent); }
.folio .folio-filter-bar__more[open] > summary::before { content: "\2212"; }
.folio .folio-filter-bar__count { display: inline-grid; min-width: 19px; height: 19px; padding: 0 5px; place-items: center; border-radius: 999px; background: var(--f-inset); color: var(--f-dim); font: 600 10px/1 var(--f-font-mono); }
.folio .folio-filter-bar__more[open] .folio-filter-bar__count { background: var(--f-accent-soft); color: var(--f-accent); }
.folio .folio-filter-bar__secondary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--f-line); }
.folio .folio-filter-bar__actions { display: flex; flex: none; }
.folio .folio-filter-bar__actions .folio-button { min-height: 38px; padding: 0 14px; border-radius: 999px; font-size: 11.5px; }

/* ==========================================================================
   MENU SELECT  — a listbox we actually own
   --------------------------------------------------------------------------
   A native <select> hands its open list to the operating system: the popup
   cannot take the page's type or colour, and it anchors to the <select> box,
   which inside a labelled pill sits inset from the pill's edge and opens
   visibly off-register. The trigger here is the whole pill and the popup is
   ours; the value stays in a hidden input that dispatches `change`.
   ========================================================================== */

.folio .folio-menu-select { position: relative; display: inline-flex; }
.folio .folio-menu-select.is-open { z-index: 30; }
.folio .folio-work-item:has(.folio-menu-select.is-open) { z-index: 30; }
.folio .folio-menu-select__trigger { display: inline-flex; align-items: center; gap: 9px; max-width: 320px; border: 1px solid var(--f-line-strong); background: var(--f-paper); color: var(--f-ink); cursor: pointer; }
.folio .folio-menu-select__label { flex: none; color: var(--f-faint); font: 600 8.5px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-menu-select__value { min-width: 0; overflow: hidden; font: 550 13px/1.2 var(--f-font-ui); text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-menu-select__caret { flex: none; margin-left: auto; color: var(--f-faint); font-size: 9px; transition: transform 120ms ease; }
.folio .folio-menu-select.is-open .folio-menu-select__caret { transform: rotate(180deg); }
.folio .folio-menu-select__trigger:hover { border-color: var(--f-faint); }
.folio .folio-menu-select__trigger:focus-visible { outline: 2px solid var(--f-accent); outline-offset: 2px; }
.folio .folio-menu-select--chip .folio-menu-select__trigger { min-height: 38px; padding: 0 12px; border-radius: 999px; gap: 8px; }
.folio .folio-menu-select--chip.is-active .folio-menu-select__trigger { border-color: var(--f-accent); background: var(--f-accent-soft); }
.folio .folio-menu-select--chip.is-active .folio-menu-select__label,
.folio .folio-menu-select--chip.is-active .folio-menu-select__caret { color: var(--f-accent); }
.folio .folio-menu-select--chip.is-active .folio-menu-select__value { color: var(--f-accent); font-weight: 620; }

/* Inside an editor field the menu wears the field box, so a form reads as one
   family whether a control is a menu, an input or a textarea. */
.folio .folio-menu-select--field { display: flex; width: 100%; }
.folio .folio-menu-select--field .folio-menu-select__trigger { width: 100%; max-width: none; min-height: 40px; padding: 9px 12px; border-radius: 7px; font: 450 14px/1.3 var(--f-font-ui); }
.folio .folio-menu-select--field .folio-menu-select__value { flex: 1; font: inherit; }
.folio .folio-menu-select--field .folio-menu-select__popup { min-width: 100%; }

/* A lane says how much work it holds and, when it holds more than it shows,
   offers to show more of itself. It never offers a page. */
.folio .folio-board__lane-more { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--f-line-strong); }
.folio .folio-board__lane-more span { color: var(--f-dim); font: 600 10px/1 var(--f-font-mono); letter-spacing: .08em; }
.folio .folio-board__lane-more .folio-button { min-height: 30px; padding: 6px 11px; border-radius: 999px; font-size: 11.5px; }

.folio .folio-menu-select__popup { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; min-width: max(100%, 208px); max-height: 288px; padding: 5px; overflow-y: auto; border: 1px solid var(--f-line-strong); border-radius: 11px; background: var(--f-paper); box-shadow: var(--f-shadow-pop); }
.folio .folio-menu-select[data-folio-menu-align="end"] .folio-menu-select__popup { right: 0; left: auto; }
.folio .folio-menu-select__option { display: flex; align-items: center; gap: 9px; width: 100%; padding: 9px 11px; border: 0; border-radius: 7px; background: transparent; color: var(--f-ink); font: 500 13.5px/1.3 var(--f-font-ui); text-align: left; cursor: pointer; }
.folio .folio-menu-select__option:hover { background: var(--f-inset); }
.folio .folio-menu-select__option:focus-visible { outline: none; background: var(--f-accent-soft); color: var(--f-accent); }
.folio .folio-menu-select__tick { width: 14px; height: 14px; flex: none; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--f-line-strong); }
.folio .folio-menu-select__option[aria-selected="true"] { font-weight: 640; }
.folio .folio-menu-select__option[aria-selected="true"] .folio-menu-select__tick { background: var(--f-accent); box-shadow: inset 0 0 0 1px var(--f-accent), inset 0 0 0 3px var(--f-paper); }

/* The stage menu keeps the pill skin the cards already use. */
.folio .folio-menu-select--status .folio-menu-select__trigger { min-height: 32px; padding: 0 11px; border: 0; border-radius: 999px; background: var(--folio-status-surface, var(--f-t-grey)); color: var(--folio-status-ink, var(--f-dim)); font: 650 10.5px/1 var(--f-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.folio .folio-menu-select--status .folio-menu-select__value { font: inherit; }
.folio .folio-menu-select--status .folio-menu-select__caret { color: var(--folio-status-ink, var(--f-dim)); }
.folio .folio-menu-select--status .folio-menu-select__trigger:hover { box-shadow: inset 0 0 0 1px var(--folio-status-ink, var(--f-dim)); }
.folio .folio-status--not_started { --folio-status-surface: var(--f-inset); --folio-status-ink: var(--f-muted); }
.folio .folio-status--in_progress { --folio-status-surface: var(--f-accent-soft); --folio-status-ink: var(--f-accent); }
.folio .folio-status--waiting { --folio-status-surface: var(--f-gold-soft); --folio-status-ink: var(--f-bronze-deep); }
.folio .folio-status--completed { --folio-status-surface: var(--f-t-sage); --folio-status-ink: var(--f-sage); }
.folio .folio-menu-select__option.folio-status--not_started .folio-menu-select__tick,
.folio .folio-menu-select__option.folio-status--in_progress .folio-menu-select__tick,
.folio .folio-menu-select__option.folio-status--waiting .folio-menu-select__tick,
.folio .folio-menu-select__option.folio-status--completed .folio-menu-select__tick { background: var(--folio-status-ink); box-shadow: inset 0 0 0 1px var(--folio-status-ink); }

@media (max-width: 680px) {
    .folio .folio-filter-bar__primary > *,
    .folio .folio-filter-bar__secondary > * { flex: 1 1 100%; }
    .folio .folio-menu-select { display: flex; }
    .folio .folio-menu-select__trigger { width: 100%; max-width: none; }
    .folio .folio-filter-bar__more > summary { justify-content: center; }
    .folio .folio-filter-bar__actions .folio-button { width: 100%; }
}
.folio .folio-task-results__summary { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 1px 12px; color: var(--f-dim); font-size: 12px; }
.folio .folio-task-results__summary p { margin: 0; }
.folio .folio-task-results__summary strong { color: var(--f-ink); font-variant-numeric: tabular-nums; }
.folio .folio-task-results__headline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 10px; }
.folio .folio-task-results__headline > span { color: var(--f-faint); }
.folio .folio-task-results__exception { color: var(--f-red); font-weight: 650; }
.folio .folio-household-task-context { display: flex; align-items: center; gap: 14px; padding: 12px 0 2px; }
.folio .folio-household-task-context > p { margin: 0; color: var(--f-dim); font-size: 12px; }
.folio .folio-task-folder-stack { display: grid; gap: 12px; }
.folio .folio-task-folder-stack--nested { gap: 0; }
.folio .folio-task-folder { overflow: clip; border: 1px solid var(--f-line); border-radius: 8px; background: var(--f-paper); }
.folio .folio-task-folder > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 12px; min-height: 62px; padding: 12px 16px; box-shadow: inset 3px 0 0 var(--f-accent); color: var(--f-ink); cursor: pointer; list-style: none; }
.folio .folio-task-folder > summary::-webkit-details-marker { display: none; }
.folio .folio-task-folder > summary:hover { background: color-mix(in srgb, var(--f-inset) 58%, transparent); }
.folio .folio-task-folder > summary:focus-visible { outline: 2px solid var(--f-accent); outline-offset: 2px; }
.folio .folio-task-folder__heading { display: grid; gap: 3px; min-width: 0; }
.folio .folio-task-folder__kind { color: var(--f-bronze); font: 650 8.5px/1.1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-task-folder__heading strong { font: 630 14px/1.2 var(--f-font-ui); }
.folio .folio-task-folder__heading small { overflow: hidden; color: var(--f-dim); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-task-folder__count { display: inline-grid; min-width: 52px; height: 26px; padding: 0 9px; place-items: center; border-radius: 999px; background: var(--f-inset); color: var(--f-dim); font: 600 10px/1 var(--f-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.folio .folio-task-folder__chevron { color: var(--f-faint); transition: transform 140ms ease; }
.folio .folio-task-folder[open] > summary .folio-task-folder__chevron { transform: rotate(180deg); }
.folio .folio-task-folder[open]:not(.folio-task-folder--nested) > summary { background: color-mix(in srgb, var(--f-inset) 38%, transparent); }
.folio .folio-task-folder__body { padding: 0 16px 16px; }
.folio .folio-task-folder--nested { border-radius: 0; background: transparent; }
.folio .folio-task-folder--nested > summary { min-height: 48px; box-shadow: none; }
.folio .folio-task-folder--nested .folio-task-folder__body { padding-left: 16px; }

/* Household Tasks: responsibility sections with a compact category register.
   Keep the native disclosures and the existing page scroll owner. */
.folio .folio-task-page--household .folio-page__heading h1 { font-size: clamp(30px, 3vw, 38px); }
.folio .folio-task-page--household .folio-page__header { padding-top: 16px; }
.folio .folio-task-page--household .folio-task-folder-stack { gap: 12px; }
.folio .folio-task-page--household .folio-task-folder { border-radius: 8px; }
.folio .folio-task-page--household .folio-task-folder > summary { min-height: 58px; }
.folio .folio-task-page--household .folio-task-folder__body { padding: 0 16px 16px; }
.folio .folio-task-page--household .folio-task-folder-stack--nested { gap: 0; border-top: 1px solid var(--f-line); }
.folio .folio-task-page--household .folio-task-folder--nested { border: 0; border-bottom: 1px solid var(--f-line); border-radius: 0; background: transparent; }
.folio .folio-task-page--household .folio-task-folder--nested:last-child { border-bottom: 0; }
.folio .folio-task-page--household .folio-task-folder--nested > summary { min-height: 48px; padding: 11px 2px; }
.folio .folio-task-page--household .folio-task-folder--nested .folio-task-folder__heading strong { font-size: 13.5px; font-weight: 600; }
.folio .folio-task-page--household .folio-task-folder--nested .folio-task-folder__count { min-width: 0; height: auto; padding: 0; border-radius: 0; background: transparent; color: var(--f-faint); }
.folio .folio-task-page--household .folio-task-folder--nested .folio-task-folder__body { padding: 0 0 10px; }
.folio .folio-task-page--household .folio-task-folder__body > .folio-work-list { gap: 0; border-top: 1px solid var(--f-line); }
.folio .folio-task-page--household .folio-work-item { padding: 15px 4px; border: 0; border-bottom: 1px solid var(--f-line); border-radius: 0; background: transparent; box-shadow: none; }
.folio .folio-task-page--household .folio-work-item--needs-owner { border-style: solid; }
.folio .folio-task-page--household .folio-work-item:last-child { border-bottom: 0; }
.folio .folio-task-page--household .folio-task-results__summary { flex-wrap: wrap; gap: 4px 16px; }
@media (max-width: 680px) {
    .folio .folio-task-page--household .folio-task-folder__body { padding-inline: 10px; }
}
.folio .folio-board { display: grid; grid-template-columns: repeat(4, minmax(250px, 1fr)); align-items: start; gap: 12px; overflow-x: auto; padding-bottom: 12px; }
.folio .folio-board__lane { min-height: 0; padding: 11px; border: 1px solid var(--f-line); border-radius: 11px; background: var(--f-inset); }
.folio .folio-board__lane--empty { background: color-mix(in srgb, var(--f-inset) 54%, transparent); }
.folio .folio-board__lane.is-drop-target { outline: 2px solid var(--f-accent); outline-offset: -2px; }
.folio .folio-board__lane > header,
.folio .folio-attention > section > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.folio .folio-board__lane h2,
.folio .folio-attention h2 { margin: 0; font: 560 17px/1.2 var(--f-font-ui); }
.folio .folio-board__lane > header > span { display: inline-grid; min-width: 22px; height: 22px; padding: 0 6px; place-items: center; border-radius: 999px; background: var(--folio-lane-surface, var(--f-paper)); color: var(--folio-lane-ink, var(--f-dim)); font: 600 11px/1 var(--f-font-mono); }
/* A lane names its stage in the same colours the status pill uses, so dragging
   a card between lanes and setting the pill in list view read as one system. */
.folio .folio-board__lane > header { padding-bottom: 10px; border-bottom: 2px solid var(--folio-lane-ink, var(--f-line-strong)); }
.folio .folio-board__lane--not_started { --folio-lane-surface: var(--f-inset); --folio-lane-ink: var(--f-muted); }
.folio .folio-board__lane--in_progress { --folio-lane-surface: var(--f-accent-soft); --folio-lane-ink: var(--f-accent); }
.folio .folio-board__lane--waiting { --folio-lane-surface: var(--f-gold-soft); --folio-lane-ink: var(--f-bronze-deep); }
.folio .folio-board__lane--completed { --folio-lane-surface: var(--f-t-sage); --folio-lane-ink: var(--f-sage); }
.folio .folio-board__items,
.folio .folio-work-list { display: grid; gap: 10px; }
.folio .folio-board__lane--empty .folio-empty { min-height: 104px; display: grid; place-items: center; padding: 18px 8px; border: 1px dashed var(--f-line-strong); border-radius: 8px; }
.folio .folio-attention { display: grid; gap: 26px; }
.folio .folio-attention > section { padding-top: 16px; border-top: 1px solid var(--f-line-strong); }
.folio .folio-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 20px 0; }
.folio .folio-empty { padding: 28px; color: var(--f-dim); text-align: center; }
.folio .folio-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 1100px) {
    .folio .folio-filter-bar__primary .folio-field--household { flex: 1 1 100%; }
}
@media (max-width: 680px) {
    .folio .folio-page { padding-inline: 16px; }
    .folio .folio-page__header, .folio .folio-task-command-bar { align-items: stretch; flex-direction: column; }
    .folio .folio-task-command-bar__tools { align-items: stretch; flex-direction: column; }
    .folio .folio-saved-views { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; }
    .folio .folio-saved-views .folio-menu-select__trigger { width: 100%; max-width: none; }
    .folio .folio-page--compact .folio-page__header { padding-top: 16px; }
    .folio .folio-page__actions .folio-button { width: 100%; }
    .folio .folio-filter-bar__primary > *,
    .folio .folio-filter-bar__secondary > * { flex: 1 1 100%; }
    .folio .folio-filter-bar__footer { align-items: stretch; flex-direction: column; }
    .folio .folio-filter-bar__actions { justify-content: stretch; }
    .folio .folio-filter-bar__actions .folio-button { width: 100%; }
    .folio .folio-task-results__summary { align-items: flex-start; flex-direction: column; gap: 3px; }
    .folio .folio-household-task-context { align-items: stretch; flex-direction: column; gap: 7px; }
    .folio .folio-household-task-context .folio-segmented { display: grid; grid-template-columns: 1fr 1fr; }
    .folio .folio-task-folder > summary { grid-template-columns: minmax(0, 1fr) auto 16px; gap: 8px; padding-inline: 12px; }
    .folio .folio-task-folder__heading small { white-space: normal; }
    .folio .folio-task-folder__body,
    .folio .folio-task-folder--nested .folio-task-folder__body { padding: 0 10px 10px; }
    .folio .folio-board { grid-template-columns: repeat(4, minmax(82vw, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .folio .folio-task-folder__chevron { transition: none; }
}
.folio .folio-hero__glance--figures {
    padding: 0;
    background: transparent;
}
.folio .folio-hero__glance--figures .folio-figgrid { background: var(--f-paper); }

/* D4b H1: the figure-grid family owns notation and value semantics. */
.folio .folio-hero__glance--facts { padding: 0; background: transparent; }
.folio .folio-hero-facts { background: var(--f-paper); border-radius: 12px; box-shadow: var(--f-shadow); }
.folio .folio-hero-facts > div { padding: 18px 20px; }
.folio .folio-hero-facts > div > span { color: var(--f-bronze); font-size: 10px; letter-spacing: .14em; }
.folio .folio-hero-facts > div > strong { margin-top: 10px; font-size: clamp(20px, 2vw, 24px); overflow: visible; text-overflow: clip; }
.folio .folio-hero-facts > div > small { margin-top: 7px; font-size: 12.5px; }

/* ==========================================================================
   D · SECTION + BAND
   ========================================================================== */

.folio .folio-sec { padding: 34px 0; }

.folio .folio-sec__eyebrow {
    margin: 0 0 5px;
    color: var(--f-bronze);
    font: 500 9.5px/1 var(--f-font-mono);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.folio .folio-sec__title {
    margin: 0 0 20px;
    font: 400 clamp(19px, 1.9vw, 23px)/1.2 var(--f-font-display);
}

.folio .folio-sec__title-row {
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin-bottom: 20px;
}
.folio .folio-sec__title-row .folio-sec__title { margin: 0; }
.folio .folio-sec__title-row > .end { margin-left: auto; }

/* Register C · full-bleed band. Static, flat, at most one per page.
   Sits OUTSIDE .folio-page; its own .folio-page re-insets the content.

   THE BAND IS FLAT. NO GRADIENT.
   A gradient band announces itself at both ends and still hard-cuts wherever
   the stops run out. A flat tone one step below the canvas, closed by
   hairlines, is what "a different section" is supposed to feel like: you
   register it without ever looking at it. --f-band sits 3.3 lightness points
   under the canvas. That is the whole effect. */
.folio .folio-band {
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    background: var(--f-band);
}
.folio .folio-band .folio-sec { padding: 40px 0; }

/* A banded section is a chapter, so it earns the folio numeral (device D8).
   Bottom-right, behind everything, never crossing an edge. */
.folio .folio-band__num {
    position: absolute;
    /* the band bleeds to the canvas, the numeral belongs to the measure: on a
       canvas wider than --f-page it tracks the text column instead of drifting
       out into the margin */
    right: max(26px, calc((100% - var(--f-page, 1280px)) / 2 + 26px));
    bottom: -16px;
    z-index: 0;
    color: var(--f-bronze);
    font: 400 clamp(84px, 8vw, 124px)/1 var(--f-font-display);
    opacity: 0.09;
    pointer-events: none;
    user-select: none;
}
.folio .folio-band > .folio-page { position: relative; z-index: 1; }

/* --------------------------------------------------------------------------
   D2 · FADE — the OTHER separator, and the only permitted gradient here.

   TWO SEPARATORS, TWO JOBS. Do not mix them:

     .folio-band   a HARD CUT. Flat tone, hairline top and bottom.
                   Carries the folio numeral. Use for a section that is a
                   different KIND of thing.

     .folio-fade   an EXTREMELY SUBTLE gradient, for gentle separation
                   between two sections of the same kind.
                   NEVER carries a numeral. NEVER has a border.

   WHY THIS CANNOT HARD-CUT
     The stops are alpha on a single champagne hue: 0 at the top, a 0.20 peak
     in the middle, 0 at the bottom. Because both ends resolve to fully
     transparent, the section dissolves into whatever the canvas is. There is
     no stop where a visible colour meets a visible colour, so an abrupt edge
     is not expressible. A gradient that ends on an opaque stop always cuts;
     that is the mistake this replaces.
   -------------------------------------------------------------------------- */

.folio .folio-fade {
    border: 0;
    background-image: linear-gradient(180deg,
        rgba(214, 191, 141, 0) 0%,
        rgba(214, 191, 141, 0.20) 50%,
        rgba(214, 191, 141, 0) 100%);
}

/* a fade never carries a chapter numeral — that belongs to the hard cut */
.folio .folio-fade .folio-band__num { display: none; }

/* ==========================================================================
   E · GRIDS
   ========================================================================== */

.folio .folio-cols { display: grid; gap: 18px; }
.folio .folio-cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.folio .folio-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.folio .folio-cols--auto { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.folio .folio-cols--roster { grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }

/* ==========================================================================
   F · CARD HEAD + THE NAV-OUT LINK
   The old treatment was a filled pill floating mid-header. A link out of a
   card is navigation, not a commit action, so it gets the quietest possible
   affordance that still reads as clickable.
   ========================================================================== */

.folio .folio-ch {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 15px;
}

.folio .folio-ch__icon {
    display: grid;
    flex: none;
    place-content: center;
    width: 22px;
    height: 22px;
    color: var(--f-accent-c, var(--f-accent));
    opacity: 0.8;
}
.folio .folio-ch__icon svg { width: 17px; height: 17px; }

.folio .folio-ch__text { min-width: 0; }
/* A card head may carry the same action group a section title row does. */
.folio .folio-ch > .folio-action-group { flex: 0 1 auto; margin-left: auto; justify-content: flex-end; }
@media (max-width: 720px) { .folio .folio-ch:has(> .folio-action-group) { flex-wrap: wrap; } .folio .folio-ch > .folio-action-group { margin-left: 0; flex-basis: 100%; justify-content: flex-start; } }
.folio .folio-ch__eyebrow {
    margin: 0 0 3px;
    color: var(--f-accent-c, var(--f-accent));
    font: 500 9px/1 var(--f-font-mono);
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.folio .folio-ch__title {
    margin: 0;
    font: 400 17px/1.2 var(--f-font-display);
}

.folio .folio-cardlink {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    padding: 5px 11px;
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius-pill, 999px);
    background: transparent;
    color: var(--f-muted);
    font: 500 11.5px/1 var(--f-font-ui);
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
}
.folio .folio-cardlink::after { content: "→"; font-size: 12px; transition: transform 150ms ease; }
.folio .folio-cardlink:hover {
    border-color: var(--f-accent);
    background: var(--f-accent-soft);
    color: var(--f-accent);
}
.folio .folio-cardlink:hover::after { transform: translateX(2px); }

@media (prefers-reduced-motion: reduce) {
    .folio .folio-cardlink:hover::after { transform: none; }
}

/* ==========================================================================
   G · FIGURE GRID INSIDE A CARD
   Bordered cells, so four numbers read as a table rather than a smear.
   ========================================================================== */

.folio .folio-figgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius, 9px);
}

.folio .folio-figgrid > div {
    padding: 13px 15px;
    border-right: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    min-width: 0;
}
.folio .folio-figgrid > div:nth-child(2n) { border-right: 0; }
.folio .folio-figgrid > div:nth-last-child(-n+2) { border-bottom: 0; }

.folio .folio-figgrid > div > span {
    display: block;
    margin-bottom: 5px;
    color: var(--f-dim);
    font: 500 9px/1.3 var(--f-font-mono);
    letter-spacing: 0.13em;
    text-transform: uppercase;
}
.folio .folio-figgrid > div > strong {
    display: block;
    font: 400 clamp(18px, 1.6vw, 23px)/1.05 var(--f-font-display);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.folio .folio-figgrid > div > small {
    display: block;
    margin-top: 4px;
    color: var(--f-muted);
    font: 400 11px/1.4 var(--f-font-ui);
}

/* one cell may be promoted — the headline number in the set */
/* Three figures are a ROW of three, not a 2x2 with a hole cut out of it. The
   hole read as a missing figure the page had failed to load. */
@media (min-width: 1081px) {
    .folio .folio-figgrid:has(> div:nth-child(3):last-child) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .folio .folio-figgrid:has(> div:nth-child(3):last-child) > div {
        border-right: 1px solid var(--f-line);
        border-bottom: 0;
    }
    .folio .folio-figgrid:has(> div:nth-child(3):last-child) > div:last-child { border-right: 0; }
}

.folio .folio-figgrid > div.is-lead { background: var(--f-t-gold); }
.folio .folio-figgrid > div.is-lead strong { color: var(--f-bronze); }

.folio .folio-figgrid .pos { color: var(--f-green); }
.folio .folio-figgrid .neg { color: var(--f-red); }
.folio .folio-figgrid .dim { color: var(--f-faint); }
.folio .folio-figgrid--summary { margin-bottom: 16px; }
.folio .folio-card-meter { margin-top: 2px; }
.folio .folio-note {
    margin: 11px 0 0;
    color: var(--f-dim);
    font: 400 10.5px/1.45 var(--f-font-ui);
}
.folio .folio-actions { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* Advisor-wide action contracts. Specialized segments and table links keep
   their own anatomy; action buttons share dimensions, spacing and states. */
.folio :is(.advisor-button:not(.advisor-button--segment), .folio-button, .button) {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    box-sizing: border-box; height: auto; min-height: 40px; padding: 9px 15px;
    border-radius: 7px; font-family: var(--f-font-ui); line-height: 1.2;
    vertical-align: middle; cursor: pointer;
}
.folio :is(.advisor-button--small:not(.advisor-button--segment), .folio-button--small, .button.compact) { min-height: 32px; height: auto; padding: 6px 12px; font-size: 12px; }
.folio :is(.advisor-button:not(.advisor-button--segment), .folio-button, .button):is(:disabled, [aria-disabled="true"]) { opacity: .55; cursor: not-allowed; }
.folio :is(.advisor-button:not(.advisor-button--segment), .folio-button, .button)[aria-busy="true"] { cursor: progress; }
.folio :is(.advisor-button, .folio-button, .button, .folio-cardlink, .folio-export-menu > summary):focus-visible { outline: 2px solid var(--f-accent); outline-offset: 3px; }
.folio :is(.folio-action-group, .folio-page__actions, .advisor-section-actions, .folio-hero__actions, .vesting-toolbar, .practice-insurance-inventory-actions) {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.folio .folio-action-group > .folio-action-group { gap: 8px; }
.folio .folio-action-group:has(> .folio-action-group) { gap: 16px; }
.folio .folio-sec__title-row { align-items: center; gap: 16px; flex-wrap: wrap; }
.folio .folio-sec__title-row > .folio-action-group { flex: 0 1 auto; justify-content: flex-end; }
.folio :is(.folio-action-group, .advisor-section-actions, .folio-hero__actions) > :is(button, .folio-cardlink) { margin: 0; }
.folio .folio-export-menu { position: relative; flex: none; color: var(--f-ink); font: 500 12px/1.2 var(--f-font-ui); }
.folio .folio-export-menu > summary { min-height: 32px; box-sizing: border-box; display: flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--f-line-strong); border-radius: 7px; cursor: pointer; list-style: none; background: var(--f-paper); }
.folio .folio-export-menu > summary::-webkit-details-marker { display: none; }
.folio .folio-export-menu > summary::after { content: '▾'; font-size: 10px; }
.folio .folio-export-menu__items { position: absolute; inset-inline-end: 0; top: calc(100% + 6px); min-width: 180px; width: max-content; max-width: min(300px, 85vw); z-index: 80; display: grid; gap: 4px; padding: 8px; background: var(--f-paper); border: 1px solid var(--f-line-strong); border-radius: 8px; box-shadow: 0 10px 28px rgba(16,35,28,.12); }
.folio .folio-export-menu:not([open]) > .folio-export-menu__items { display: none; }
.folio .folio-export-menu__items > button { justify-content: flex-start; white-space: normal; text-align: left; width: 100%; }
@media (max-width: 700px) {
    .folio .folio-sec__title-row > .folio-action-group { margin-inline-start: 0; justify-content: flex-start; flex-basis: 100%; }
    .folio :is(.folio-page__actions, .advisor-section-actions, .folio-hero__actions) { gap: 8px; }
}

/* ==========================================================================
   H · ACCOUNT ROWS
   ========================================================================== */

.folio .folio-acct {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid var(--f-line);
}
.folio .folio-acct:last-child { border-bottom: 0; }

.folio .folio-acct__swatch {
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 5px;
    background: var(--f-t-gold);
    border: 1px solid rgba(166, 119, 8, 0.30);
}
.folio .folio-acct__swatch--sage { background: var(--f-t-sage); border-color: rgba(74, 124, 89, 0.30); }
.folio .folio-acct__swatch--clay { background: var(--f-t-clay); border-color: rgba(168, 103, 77, 0.30); }

.folio .folio-acct__id { flex: 1; min-width: 0; }
.folio .folio-acct__id b {
    display: block;
    overflow: hidden;
    font: 500 12.5px/1.35 var(--f-font-ui);
    text-overflow: ellipsis;
    white-space: nowrap;
}
.folio .folio-acct__id span {
    color: var(--f-dim);
    font: 400 10px/1.4 var(--f-font-mono);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.folio .folio-acct__val { flex: none; text-align: right; }
.folio .folio-acct__val b {
    display: block;
    font: 500 13px/1.3 var(--f-font-ui);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.folio .folio-acct__val span {
    font: 400 10.5px/1.4 var(--f-font-mono);
    color: var(--f-muted);
}
.folio .folio-acct__val span.pos { color: var(--f-green); }
.folio .folio-acct__val span.neg { color: var(--f-red); }

/* ==========================================================================
   I · METER
   ========================================================================== */

.folio .folio-meter {
    position: relative;
    height: 6px;
    border-radius: 3px;
    /* translucent ink so the track survives on tinted and vellum grounds */
    background: rgba(78, 66, 43, 0.14);
}
.folio .folio-meter__fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 3px;
    background: var(--f-accent);
}
.folio .folio-meter--empty .folio-meter__fill {
    background-image: repeating-linear-gradient(-45deg,
        transparent 0 5px, rgba(78, 66, 43, 0.16) 5px 6px);
    background-color: transparent;
}
.folio .folio-meter-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
    color: var(--f-muted);
    font: 400 11.5px/1.4 var(--f-font-ui);
}
.folio .folio-meter-foot {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 7px;
    color: var(--f-dim);
    font: 400 10px/1.4 var(--f-font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ==========================================================================
   J · MEMBER CARD
   ========================================================================== */

.folio .folio-member__head {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 11px;
    margin-bottom: 14px;
}

.folio .folio-member__avatar {
    grid-column: 1;
    grid-row: 1 / 3;
    display: grid;
    flex: none;
    place-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(35, 111, 93, 0.24);
    border-radius: 50%;
    background: var(--f-accent-soft);
    color: var(--f-accent);
    font: 500 11px/1 var(--f-font-mono);
    letter-spacing: 0.04em;
}

.folio .folio-member__id { grid-column: 2; grid-row: 1; min-width: 0; }
.folio .folio-member__id b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 13.5px/1.3 var(--f-font-ui); }
.folio .folio-member__role { grid-column: 2; grid-row: 2; justify-self: start; max-width: 100%; color: var(--f-muted); font: 400 12px/1.4 var(--f-font-ui); white-space: normal; overflow-wrap: anywhere; }
.folio .folio-member__actions { grid-column: 3; grid-row: 1 / 3; display: flex; align-items: center; }
.folio .folio-member__id span {
    color: var(--f-dim);
    font: 400 10px/1.4 var(--f-font-mono);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* structural label rules must never flatten a nested component */
.folio .folio-chip,
.folio .folio-roster__cell .folio-chip {
    display: inline-flex;
    flex: none;
    align-items: center;
    padding: 3px 9px;
    border-radius: var(--f-radius-pill, 999px);
    font: 500 9.5px/1.4 var(--f-font-mono);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.folio .folio-chip--gold { background: var(--f-t-gold); color: var(--f-bronze); border: 1px solid rgba(166, 119, 8, 0.28); }
.folio .folio-chip--sage { background: var(--f-t-sage); color: var(--f-sage); border: 1px solid rgba(74, 124, 89, 0.28); }
.folio .folio-chip--grey { background: var(--f-t-grey); color: var(--f-muted); border: 1px solid rgba(154, 144, 129, 0.30); }

.folio .folio-kvgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px 14px;
}
.folio .folio-kvgrid > div > span {
    display: block;
    margin-bottom: 3px;
    color: var(--f-dim);
    font: 500 9px/1.3 var(--f-font-mono);
    letter-spacing: 0.13em;
    text-transform: uppercase;
}
.folio .folio-kvgrid > div > b {
    display: block;
    overflow: hidden;
    font: 400 12.5px/1.4 var(--f-font-ui);
    text-overflow: ellipsis;
    white-space: nowrap;
}
.folio .folio-kvgrid > div > b.dim { color: var(--f-faint); }

/* ==========================================================================
   J3 · RECORD LIST — a third card idiom, for directories
   Rules only, no box: distinct from both the paper figure cards and the
   band roster, so a third section reads as a third kind of thing.
   ========================================================================== */

.folio .folio-records { border-top: 1px solid var(--f-line-strong); }

.folio .folio-record {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 15px 2px;
    border-bottom: 1px solid var(--f-line);
    text-decoration: none;
    color: inherit;
    transition: background 140ms ease;
}
.folio .folio-member__action { margin-left: 2px; }
.folio .folio-sec--final { padding-bottom: 78px; }
.folio button.folio-record {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--f-line);
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.folio .folio-record:hover { background: rgba(255, 253, 248, 0.72); }

.folio .folio-record__mark {
    display: grid;
    flex: none;
    place-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(166, 119, 8, 0.28);
    border-radius: 7px;
    background: var(--f-t-gold);
    color: var(--f-bronze);
    font: 500 11px/1 var(--f-font-mono);
}

.folio .folio-record__id { flex: 1; min-width: 0; }
.folio .folio-record__id b { display: block; font: 500 13.5px/1.35 var(--f-font-ui); }
.folio .folio-record__id span {
    color: var(--f-dim);
    font: 400 10px/1.4 var(--f-font-mono);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.folio .folio-record__meta {
    flex: none;
    color: var(--f-muted);
    font: 400 11.5px/1.4 var(--f-font-ui);
    text-align: right;
}

/* ==========================================================================
   K · RESPONSIVE
   ========================================================================== */

@media (max-width: 1080px) {
    .folio .folio-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .folio .folio-cols--2, .folio .folio-cols--3 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {
    .advisor-app { --advisor-topbar-height: 108px; }
    .folio .folio-route :is(.folio-band, .folio-fade) > .folio-page { padding-inline: 16px; }
    .folio .folio-band__num { font-size: 74px; right: 14px; }
    .folio .folio-record { flex-wrap: wrap; }
    .folio .folio-record__meta { width: 100%; text-align: left; }
    .book-topbar.folio > .folio-page {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        padding-block: 10px;
    }
    .book-topbar.folio .folio-search { grid-column: 1 / -1; order: 3; }
    .folio .folio-entity-card__top { flex-wrap: wrap; }
    .folio :is(.folio-entity-card__figure, .advisor-entity-figure) {
        order: 4;
        width: 100%;
        margin-top: 12px;
        padding-top: 12px;
        padding-left: 0;
        border-top: 1px solid var(--f-hair, rgba(78, 66, 43, 0.10));
        border-left: 0;
        text-align: left;
    }
    .folio .folio-figgrid { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-figgrid > div { border-right: 0; }
    .folio .folio-figgrid > div:nth-last-child(-n+2) { border-bottom: 1px solid var(--f-line); }
    .folio .folio-figgrid > div:last-child { border-bottom: 0; }
    .folio .folio-kvgrid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 620px) {
    .folio :is(.advisor-entity-header-main, .folio-entity-card__top) {
        display: grid;
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 12px 14px;
        padding: 17px 16px 15px;
    }

    .folio :is(.advisor-entity-back, .folio-entity-card__back) {
        grid-column: 1;
        grid-row: 1;
    }

    .folio :is(.advisor-entity-identity, .folio-entity-card__id),
    .folio :is(.advisor-entity-actions, .folio-entity-card__actions) {
        grid-column: 2;
    }

    .folio :is(.advisor-entity-identity, .folio-entity-card__id) {
        grid-row: 1;
    }

    .folio :is(.advisor-entity-actions, .folio-entity-card__actions) {
        grid-row: 2;
        justify-self: start;
        margin: 0;
    }

    .folio :is(.advisor-entity-figure, .folio-entity-card__figure) {
        grid-column: 1 / -1;
        grid-row: 3;
        width: 100%;
        margin-top: 2px;
    }

    .folio .advisor-entity-facts {
        grid-column: 1 / -1;
        grid-row: 3;
        gap: 16px;
        margin-top: 2px;
    }

    .folio :is(.advisor-entity-navigation, .folio-entity-card__tabs) {
        gap: 20px;
        padding-inline: 16px;
    }
}



/* Shared analytical figures ------------------------------------------------ */
.folio .folio-chart-frame {
    display: grid;
    gap: 18px;
    min-width: 0;
    margin: 0;
    padding: 22px;
    border: 1px solid var(--f-line);
    border-radius: 10px;
    background: var(--f-paper);
}
.folio .folio-chart-frame > figcaption {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.folio .folio-chart-frame > figcaption h3,
.folio .folio-breakdown > header h3 { margin: 2px 0 0; font: 600 22px/1.15 var(--f-font-display); }
.folio .folio-chart-frame > figcaption p:not(.folio-eyebrow),
.folio .folio-breakdown > header p { max-width: 680px; margin: 6px 0 0; color: var(--f-muted); font-size: 12px; line-height: 1.5; }
.folio .folio-chart-frame__controls { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.folio .folio-chart-frame__body { display: grid; gap: 14px; min-width: 0; }
.folio .folio-chart-frame__table { min-width: 0; border-top: 1px solid var(--f-line); padding-top: 12px; }
.folio .folio-chart-frame__table > summary,
.folio .folio-figure-definition > summary { cursor: pointer; color: var(--f-muted); font: 500 12px/1.5 var(--f-font-ui); }
.folio .folio-chart-frame__table > summary:focus-visible,
.folio .folio-figure-definition > summary:focus-visible { outline: 2px solid var(--f-green); outline-offset: 4px; }
.folio .folio-chart-frame__table[open] > summary { margin-bottom: 12px; }
.folio .folio-figure-definition { margin-top: 8px; }
.folio .folio-figure-definition p { color: var(--f-muted); font: 400 12px/1.55 var(--f-font-ui); margin: 8px 0 0; }
.folio .folio-chart-frame__summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--f-line); background: var(--f-line); gap: 1px; }
.folio .folio-chart-frame__summary > div { display: grid; gap: 5px; min-width: 0; padding: 12px 14px; background: var(--f-quiet); }
.folio .folio-chart-frame__summary span { color: var(--f-dim); font: 600 8px/1.2 var(--f-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.folio .folio-chart-frame__summary strong { overflow: hidden; font: 600 clamp(16px, 2vw, 23px)/1 var(--f-font-display); font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-chart-frame__summary small { color: var(--f-muted); font-size: 10px; }
.folio .folio-chart-frame__plot { min-width: 0; overflow-x: auto; }
.folio .folio-chart-frame__plot svg { display: block; width: 100%; min-width: 620px; height: auto; }
.folio .folio-chart-frame__state { padding: 34px 20px; border: 1px dashed var(--f-line-strong); background: var(--f-quiet); text-align: center; }
.folio .folio-chart-frame__state p { margin: 6px 0 0; color: var(--f-muted); }
.folio .folio-chart-frame > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-top: 1px solid var(--f-line); padding-top: 12px; }
.folio .folio-chart-frame > footer > p { max-width: 620px; margin: 0; color: var(--f-dim); font-size: 10.5px; line-height: 1.45; }
.folio .folio-chart-frame__legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; padding: 0; list-style: none; }
.folio .folio-chart-frame__legend li { display: inline-flex; align-items: center; gap: 6px; color: var(--f-muted); font-size: 10px; }
.folio .folio-chart-swatch { width: 18px; height: 3px; background: var(--f-grey); }
.folio .folio-tone--sage { background: var(--f-sage); }
.folio .folio-tone--clay { background: var(--f-clay); }
.folio .folio-tone--gold { background: var(--f-gold); }
.folio .folio-tone--bronze { background: var(--f-bronze); }
.folio .folio-tone--emerald { background: var(--f-emerald); }
.folio .folio-tone--teal { background: var(--f-teal); }
.folio .folio-tone--red { background: var(--f-red); }
.folio .folio-tone--grey { background: var(--f-grey); }

.folio .folio-breakdown { display: grid; gap: 14px; min-width: 0; }
.folio .folio-breakdown__rows { display: grid; border-top: 1px solid var(--f-line); }
.folio .folio-breakdown__row {
    display: grid;
    grid-template-columns: minmax(130px, 1fr) auto minmax(150px, 1.25fr);
    gap: 14px;
    align-items: center;
    width: 100%;
    padding: 12px 0;
    border: 0;
    border-bottom: 1px solid var(--f-line);
    background: transparent;
    color: inherit;
    text-align: left;
}
.folio button.folio-breakdown__row { cursor: pointer; }
.folio button.folio-breakdown__row:hover strong { color: var(--f-bronze); }
.folio .folio-breakdown__identity { display: grid; gap: 2px; min-width: 0; }
.folio .folio-breakdown__identity strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-breakdown__identity small { color: var(--f-dim); font-size: 9.5px; }
.folio .folio-breakdown__value { font: 600 12px/1 var(--f-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.folio .folio-breakdown__track { display: flex; height: 8px; overflow: hidden; background: var(--f-inset); }
.folio .folio-breakdown__track i { display: block; min-width: 1px; height: 100%; }

.folio .folio-ranked-bars { min-width: 0; }
.folio .folio-ranked-bars__rows { display: grid; gap: 18px; }
.folio .folio-ranked-bars__row { display: grid; gap: 8px; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.folio button.folio-ranked-bars__row { cursor: pointer; }
.folio button.folio-ranked-bars__row:hover strong { color: var(--f-bronze); }
.folio .folio-ranked-bars__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: end; }
.folio .folio-ranked-bars__head > span { display: grid; gap: 2px; min-width: 0; }
.folio .folio-ranked-bars__head strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-ranked-bars__head small { color: var(--f-dim); font-size: 9.5px; }
.folio .folio-ranked-bars__head b { font: 600 12px/1 var(--f-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
/* the share is a second number, not a suffix -- without this it set flush
   against the value and "141" + "84%" read as "14184%" */
.folio .folio-ranked-bars__head b em { margin-left: 8px; color: var(--f-dim); font-style: normal; font-weight: 500; }
.folio .folio-ranked-bars__track { display: block; height: 12px; overflow: hidden; background: var(--f-inset); }
.folio .folio-ranked-bars__fill { display: flex; min-width: 2px; height: 100%; overflow: hidden; }
.folio .folio-ranked-bars__fill > i { display: block; width: 100%; min-width: 1px; height: 100%; }
.folio .folio-ranked-bars > footer { display: flex; justify-content: space-between; margin-top: 9px; padding-top: 7px; border-top: 1px solid var(--f-line); color: var(--f-dim); font: 500 8px/1.2 var(--f-font-mono); }

.folio .folio-donut { display: grid; gap: 14px; min-width: 0; }
.folio .folio-donut > h3 { margin: 0; font: 600 22px/1.15 var(--f-font-display); }
.folio .folio-donut__layout { display: grid; grid-template-columns: minmax(150px, .75fr) minmax(210px, 1.25fr); gap: 22px; align-items: center; }
.folio .folio-donut__plot { display: grid; place-items: center; width: min(100%, 210px); aspect-ratio: 1; margin-inline: auto; border-radius: 50%; background: var(--folio-donut); }
.folio .folio-donut__plot::before { grid-area: 1 / 1; width: 64%; aspect-ratio: 1; border-radius: 50%; background: var(--f-paper); content: ""; }
.folio .folio-donut__plot > span { z-index: 1; grid-area: 1 / 1; display: grid; gap: 4px; max-width: 58%; text-align: center; }
.folio .folio-donut__plot strong { overflow: hidden; font: 600 clamp(17px, 2.3vw, 26px)/1 var(--f-font-display); font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-donut__plot small { color: var(--f-dim); font: 600 8px/1.25 var(--f-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.folio .folio-donut ul { display: grid; gap: 1px; margin: 0; padding: 0; background: var(--f-line); list-style: none; }
.folio .folio-donut li > :is(div, button) { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 9px; align-items: center; width: 100%; padding: 10px 11px; border: 0; background: var(--f-paper); color: inherit; text-align: left; }
.folio .folio-donut li > button { cursor: pointer; }
.folio .folio-donut li > button:hover strong { color: var(--f-bronze); }
.folio .folio-donut li span { display: grid; gap: 2px; min-width: 0; }
.folio .folio-donut li strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-donut li small { color: var(--f-dim); font-size: 9px; }
.folio .folio-donut li b { font: 600 10px/1 var(--f-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }

.folio .folio-balance-sheet {
    overflow: hidden;
    border: 1px solid var(--f-line-strong);
    border-radius: 11px;
    background: var(--f-paper);
    box-shadow: 0 12px 32px rgba(50, 41, 25, .055);
}
.folio .folio-balance-sheet__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
    gap: 34px;
    align-items: end;
    padding: 26px 28px 24px;
    background: linear-gradient(110deg, rgba(74, 124, 89, .09), rgba(166, 119, 8, .045) 58%, transparent);
}
.folio .folio-balance-sheet__head h2 { margin: 4px 0 0; font: 500 clamp(26px, 3.2vw, 42px)/1.04 var(--f-font-display); letter-spacing: -.025em; }
.folio .folio-balance-sheet__head > div > p:not(.folio-eyebrow) { max-width: 58ch; margin: 9px 0 0; color: var(--f-muted); font-size: 12px; line-height: 1.55; }
.folio .folio-balance-sheet__head dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--f-line); }
.folio .folio-balance-sheet__head dl > div { display: grid; gap: 5px; min-width: 0; padding: 14px 16px; background: rgba(255, 253, 248, .86); }
.folio .folio-balance-sheet__head dt { color: var(--f-dim); font: 600 8px/1.2 var(--f-font-mono); letter-spacing: .09em; text-transform: uppercase; }
.folio .folio-balance-sheet__head dd { margin: 0; overflow: hidden; font: 500 clamp(22px, 3vw, 34px)/1 var(--f-font-display); font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-balance-sheet__head small { color: var(--f-dim); font-size: 9.5px; }
.folio .folio-balance-sheet__head .is-net dd { color: var(--f-sage); }
.folio .folio-balance-sheet__body { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); border-top: 1px solid var(--f-line-strong); }
.folio .folio-balance-sheet__lane { min-width: 0; padding: 20px 24px 22px; }
.folio .folio-balance-sheet__lane + .folio-balance-sheet__lane { border-left: 1px solid var(--f-line-strong); }
.folio .folio-balance-sheet__lane header { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.folio .folio-balance-sheet__lane header span { color: var(--f-dim); font: 600 8px/1.2 var(--f-font-mono); letter-spacing: .09em; text-transform: uppercase; }
.folio .folio-balance-sheet__lane header strong { font: 500 18px/1 var(--f-font-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.folio .folio-balance-sheet__lane.is-liabilities header strong { color: var(--f-clay); }
.folio .folio-balance-sheet__bar { display: flex; height: 18px; margin: 12px 0 13px; overflow: hidden; border-radius: 3px; background: var(--f-inset); }
.folio .folio-balance-sheet__bar i { min-width: 2px; height: 100%; }
.folio .folio-balance-sheet__lane ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.folio .folio-balance-sheet__lane li > :is(div, button) { display: grid; grid-template-columns: 13px minmax(0, 1fr); gap: 7px; width: 100%; padding: 7px 0; border: 0; background: transparent; color: inherit; text-align: left; }
.folio .folio-balance-sheet__lane li > button { cursor: pointer; }
.folio .folio-balance-sheet__lane li > button:hover strong { color: var(--f-bronze); }
.folio .folio-balance-sheet__lane li .folio-chart-swatch { width: 13px; height: 5px; margin-top: 3px; border-radius: 2px; }
.folio .folio-balance-sheet__lane li span { display: grid; gap: 2px; min-width: 0; }
.folio .folio-balance-sheet__lane li strong { overflow: hidden; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-balance-sheet__lane li small { color: var(--f-dim); font-size: 8.5px; }
.folio .folio-balance-sheet__lane li b { grid-column: 2; font: 600 10px/1 var(--f-font-mono); font-variant-numeric: tabular-nums; }

.folio .folio-mosaic { display: grid; gap: 16px; min-width: 0; }
.folio .folio-mosaic > header h3,
.folio .folio-marker-plot > header h3 { margin: 0; font: 500 24px/1.1 var(--f-font-display); }
.folio .folio-mosaic > header p,
.folio .folio-marker-plot > header p { max-width: 62ch; margin: 7px 0 0; color: var(--f-muted); font-size: 11px; line-height: 1.5; }
.folio .folio-mosaic__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: minmax(92px, auto); gap: 8px; }
.folio .folio-mosaic__tile { --folio-tile: var(--f-t-grey); --folio-tile-ink: var(--f-ink); display: grid; grid-column: span 2; align-content: end; gap: 5px; min-width: 0; padding: 15px; border: 1px solid rgba(78, 66, 43, .12); border-radius: 7px; background: var(--folio-tile); color: var(--folio-tile-ink); text-align: left; }
.folio button.folio-mosaic__tile { font: inherit; cursor: pointer; }
.folio button.folio-mosaic__tile:hover { border-color: var(--f-accent-c, var(--f-bronze)); transform: translateY(-1px); }
.folio .folio-mosaic__tile.is-lead { grid-column: span 4; grid-row: span 2; }
.folio .folio-mosaic__tile.is-wide { grid-column: span 3; }
.folio .folio-mosaic__tile.tone-sage { --folio-tile: #dfeadd; --f-accent-c: var(--f-sage); }
.folio .folio-mosaic__tile.tone-emerald { --folio-tile: #d7e4de; --f-accent-c: var(--f-emerald); }
.folio .folio-mosaic__tile.tone-gold { --folio-tile: #f4e5b5; --f-accent-c: var(--f-gold); }
.folio .folio-mosaic__tile.tone-clay { --folio-tile: #eed9cf; --f-accent-c: var(--f-clay); }
.folio .folio-mosaic__tile.tone-red { --folio-tile: #f2d6d0; --f-accent-c: var(--f-red); }
.folio .folio-mosaic__tile.tone-teal { --folio-tile: #d7e5e2; --f-accent-c: var(--f-teal); }
.folio .folio-mosaic__tile.tone-bronze { --folio-tile: #eadbc3; --f-accent-c: var(--f-bronze); }
.folio .folio-mosaic__tile span { color: var(--f-muted); font: 600 8.5px/1.2 var(--f-font-mono); letter-spacing: .07em; text-transform: uppercase; }
.folio .folio-mosaic__tile strong { overflow: hidden; font: 500 clamp(18px, 2.6vw, 31px)/1 var(--f-font-display); font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-mosaic__tile small { color: var(--f-muted); font-size: 9.5px; }

.folio .folio-marker-plot { display: grid; gap: 17px; min-width: 0; }
.folio .folio-marker-plot__axis { position: relative; display: grid; gap: 20px; padding: 18px 0 0; }
.folio .folio-marker-plot__axis::before { position: absolute; inset: 50px 0 auto; height: 1px; background: var(--f-line-strong); content: ""; }
.folio .folio-marker-plot__item { position: relative; display: grid; grid-template-columns: minmax(110px, .42fr) minmax(0, 1fr); gap: 15px; align-items: center; min-height: 34px; }
.folio .folio-marker-plot__label { display: grid; gap: 3px; }
.folio .folio-marker-plot__label strong { font-size: 11px; }
.folio .folio-marker-plot__label b { font: 500 19px/1 var(--f-font-display); font-variant-numeric: tabular-nums; }
.folio .folio-marker-plot__line { position: relative; width: var(--folio-marker); max-width: 100%; height: 4px; border-radius: 4px; opacity: .68; }
.folio .folio-marker-plot__dot { position: absolute; top: -4px; right: -6px; width: 12px; height: 12px; border: 3px solid var(--f-paper); border-radius: 50%; box-shadow: 0 0 0 1px rgba(78, 66, 43, .18); }
.folio .folio-marker-plot__axis footer { display: flex; justify-content: space-between; padding-top: 8px; border-top: 1px solid var(--f-line); color: var(--f-dim); font: 500 8px/1.2 var(--f-font-mono); }

.folio .folio-data-table { min-width: 0; border: 1px solid var(--f-line); background: var(--f-paper); }
.folio .folio-data-table__scroll { overflow-x: auto; }
.folio .folio-data-table table { width: 100%; border-collapse: collapse; }
.folio .folio-data-table th,
.folio .folio-data-table td { padding: 11px 13px; border-bottom: 1px solid var(--f-line); text-align: left; vertical-align: middle; }
.folio .folio-data-table th { background: var(--f-quiet); color: var(--f-dim); font: 600 8.5px/1.2 var(--f-font-mono); letter-spacing: .07em; text-transform: uppercase; }
.folio .folio-data-table th button { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.folio .folio-data-table td { color: var(--f-muted); font-size: 11px; }
.folio .folio-data-table :is(th, td).is-end { text-align: right; }
.folio .folio-data-table tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 760px) {
    .folio .folio-chart-frame { padding: 17px; }
    .folio .folio-chart-frame > figcaption,
    .folio .folio-chart-frame > footer { display: grid; }
    .folio .folio-chart-frame__controls { justify-content: flex-start; }
    .folio .folio-chart-frame__summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .folio .folio-breakdown__row { grid-template-columns: minmax(0, 1fr) auto; }
    .folio .folio-breakdown__track { grid-column: 1 / -1; }
    .folio .folio-donut__layout { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-balance-sheet__head,
    .folio .folio-balance-sheet__body { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-balance-sheet__head { gap: 22px; padding: 22px 19px; }
    .folio .folio-balance-sheet__lane { padding-inline: 19px; }
    .folio .folio-balance-sheet__lane + .folio-balance-sheet__lane { border-top: 1px solid var(--f-line-strong); border-left: 0; }
    .folio .folio-mosaic__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .folio .folio-mosaic__tile,
    .folio .folio-mosaic__tile.is-wide { grid-column: span 1; }
    .folio .folio-mosaic__tile.is-lead { grid-column: 1 / -1; grid-row: span 1; min-height: 130px; }
    .folio .folio-data-table thead { display: none; }
    .folio .folio-data-table :is(table, tbody, tr, td) { display: block; width: 100%; }
    .folio .folio-data-table tr { padding: 10px 13px; border-bottom: 1px solid var(--f-line); }
    .folio .folio-data-table td { display: grid; grid-template-columns: minmax(105px, .55fr) minmax(0, 1fr); gap: 12px; padding: 5px 0; border: 0; text-align: left !important; }
    .folio .folio-data-table td::before { color: var(--f-dim); content: attr(data-label); font: 600 8px/1.3 var(--f-font-mono); letter-spacing: .07em; text-transform: uppercase; }
}

@media (max-width: 480px) {
    .folio .folio-balance-sheet__head dl { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-balance-sheet__lane ul { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-marker-plot__item { grid-template-columns: minmax(95px, .48fr) minmax(0, 1fr); }
}

/* Opt-in readable compact inventories retain table geometry at narrow widths. */
.folio .folio-data-table--compact { border-radius: 6px; }
.folio .folio-data-table--compact .folio-data-table__scroll { border-radius: 6px; }
.folio .folio-data-table--compact table { display: table; min-width: 880px; width: 100%; }
.folio .folio-data-table--compact thead { display: table-header-group; }
.folio .folio-data-table--compact tbody { display: table-row-group; }
.folio .folio-data-table--compact tr { display: table-row; padding: 0; border: 0; }
.folio .folio-data-table--compact :is(th,td) { display: table-cell; width: auto; padding: 12px; text-align: left; vertical-align: middle; }
.folio .folio-data-table--compact th { font: 600 12px/1.35 var(--f-font-ui); text-transform: none; letter-spacing: 0; white-space: nowrap; }
.folio .folio-data-table--compact td { height: 48px; box-sizing: border-box; color: var(--f-ink); font: 400 14px/1.35 var(--f-font-ui); font-variant-numeric: tabular-nums; }
.folio .folio-data-table--compact td::before { display: none; }
.folio .folio-data-table--compact :is(th,td).is-end { text-align: right !important; }
.folio .folio-data-table--compact tr.is-clickable { cursor: pointer; }
.folio .folio-data-table--compact tr.is-clickable:is(:hover,:focus-within) { background: var(--f-quiet); }
.folio .folio-data-table--compact :focus-visible { outline: 2px solid var(--f-accent); outline-offset: -2px; }
/* Reusable draft/apply date filter, independent of the owning route. */
.folio .folio-date-filter { position: relative; flex: 0 1 auto; margin: 0; color: var(--f-ink); }
.folio .folio-date-filter > summary { display: flex; align-items: center; gap: 8px; min-height: 40px; box-sizing: border-box; padding: 8px 12px; border: 1px solid var(--f-line-strong); border-radius: 6px; background: var(--f-paper); list-style: none; cursor: pointer; font: 400 13px/1.3 var(--f-font-ui); }
.folio .folio-date-filter > summary::-webkit-details-marker { display: none; }
.folio .folio-date-filter > summary > span:first-child { color: var(--f-dim); font-size: 12px; }
.folio .folio-date-filter > summary > strong { font-weight: 550; }
.folio .folio-date-filter[open] > summary { border-color: var(--f-accent); }
.folio .folio-date-filter__popover { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; width: min(340px, calc(100vw - 32px)); max-height: min(540px, calc(100dvh - 180px)); overflow: auto; box-sizing: border-box; padding: 16px; border: 1px solid var(--f-line-strong); border-radius: 10px; background: var(--f-paper); box-shadow: 0 12px 36px #29251f26; }
.folio .folio-date-filter__popover button { min-height: 36px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--f-ink); cursor: pointer; font: 500 13px/1.3 var(--f-font-ui); }
.folio .folio-date-filter__popover button:is(:hover,:focus-visible) { background: var(--f-quiet); }
.folio .folio-date-filter__popover button[aria-pressed="true"] { background: var(--f-accent-soft); color: var(--f-accent); border-color: var(--f-accent); }
.folio .folio-date-filter__modes { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 4px; padding: 4px; border-radius: 7px; background: var(--f-quiet); margin-bottom: 16px; }
.folio .folio-date-filter__year { display: grid; grid-template-columns: 36px 1fr 36px; align-items: end; gap: 8px; }
.folio .folio-date-filter__popover label { display: grid; gap: 5px; color: var(--f-dim); font: 500 12px/1.3 var(--f-font-ui); }
.folio .folio-date-filter__popover input { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid var(--f-line-strong); border-radius: 5px; background: var(--f-paper); padding: 8px; color: var(--f-ink); font: 400 14px/1.3 var(--f-font-ui); }
.folio .folio-date-filter__months { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.folio .folio-date-filter__dates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.folio .folio-date-filter__calendar-head { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font-size: 14px; }
.folio .folio-date-filter__calendar { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; text-align: center; }
.folio .folio-date-filter__calendar > span { padding: 5px 0; color: var(--f-dim); font-size: 11px; }
.folio .folio-date-filter__hint { margin: 10px 0; font: 400 12px/1.4 var(--f-font-ui); color: var(--f-dim); }
.folio .folio-date-filter__error { margin: 8px 0; font: 400 13px/1.4 var(--f-font-ui); color: var(--f-red); }
.folio .folio-date-filter__popover footer { display: flex; justify-content: flex-end; gap: 6px; border-top: 1px solid var(--f-line); padding-top: 10px; margin-top: 12px; }
.folio .folio-date-filter__popover footer button { padding-inline: 12px; }
.folio .folio-date-filter__popover .folio-date-filter__apply { background: var(--f-accent); color: var(--f-paper); }
.folio .folio-date-filter :focus-visible { outline: 2px solid var(--f-accent); outline-offset: 2px; }
body.advisor-app .folio .mobile-navigation-toggle { display:none; }
@media (max-width:620px) {
    body.advisor-app .folio .mobile-navigation-toggle { display:inline-flex; }
    body.advisor-app .workspace, body.advisor-app.sidebar-collapsed .workspace { grid-template-columns:minmax(0, 1fr); }
    body.advisor-app.sidebar-collapsed .workspace-sidebar { display:none; }
    body.advisor-app:not(.sidebar-collapsed) .workspace-sidebar { position:fixed; inset:0 auto 0 0; width:min(320px, calc(100vw - 36px)); height:100dvh; max-height:none; display:grid; grid-template-rows:minmax(0, 1fr) auto; overflow-y:auto; z-index:200; }
    body.advisor-app:not(.sidebar-collapsed) .workspace-sidebar .sidebar-top { display:grid; grid-template-rows:auto minmax(0, 1fr); overflow:hidden; }
    body.advisor-app:not(.sidebar-collapsed) .workspace-sidebar .workspace-nav { display:grid; overflow-y:auto; }
    body.advisor-app:not(.sidebar-collapsed) .workspace-sidebar .sidebar-bottom,
    body.advisor-app:not(.sidebar-collapsed) .workspace-sidebar .meta-list { display:grid; }
    .folio .advisor-entity-identity > p { white-space:normal; overflow-wrap:anywhere; max-width:100%; }
}
.funding-horizon-availability { padding:0 12px; font-size:12px; line-height:1.4; color:var(--f-muted, #5c665e); }

/* ==========================================================================
   Z · ONE BUTTON FAMILY
   Folio library decision D2c (M1, "minimal colour"), 2026-10-01.
   The legacy .button / .advisor-button systems and .folio-button collapse
   into one family here, so a page stylesheet can no longer recolour or
   uppercase an action. Variants: primary (one per area), secondary, tint
   (recommended next step), gold (needs attention), quiet, danger.
   Segmented buttons and tabs are not actions and are excluded.
   ========================================================================== */
.advisor-app .folio :is(.button, .advisor-button:not(.advisor-button--segment), .folio-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    height: auto;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: inset 0 0 0 1px var(--f-line-strong);
    color: var(--f-ink);
    font: 600 13.5px/1 var(--f-font-ui);
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .16s, color .16s, box-shadow .16s;
}
.advisor-app .folio :is(.button, .advisor-button:not(.advisor-button--segment), .folio-button):hover:not(:disabled) {
    box-shadow: inset 0 0 0 1px var(--f-ink);
}
.advisor-app .folio :is(.button.compact, .advisor-button--small, .folio-button--small) {
    min-height: 32px;
    padding: 0 13px;
    font-size: 12.5px;
}
.advisor-app .folio :is(.button.primary, .advisor-button--primary, .folio-button--primary) {
    background: var(--f-accent);
    box-shadow: none;
    color: #fff;
}
.advisor-app .folio :is(.button.primary, .advisor-button--primary, .folio-button--primary):hover:not(:disabled) {
    background: var(--f-emerald-2);
    box-shadow: none;
}
.advisor-app .folio .folio-button--tint {
    background: var(--f-accent-soft);
    box-shadow: none;
    color: var(--f-accent);
}
.advisor-app .folio :is(.folio-button--gold, .advisor-button.advisor-action--gold) {
    background: var(--f-gold-soft);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--f-gold) 35%, transparent);
    color: var(--f-bronze-deep);
}
.advisor-app .folio :is(.folio-button--quiet, .advisor-button--ghost) {
    box-shadow: none;
    color: var(--f-muted);
}
.advisor-app .folio :is(.folio-button--quiet, .advisor-button--ghost):hover:not(:disabled) {
    box-shadow: none;
    color: var(--f-accent);
}
.advisor-app .folio :is(.button.danger, .advisor-button--danger, .folio-button--danger) {
    background: transparent;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--f-red) 40%, transparent);
    color: var(--f-red);
}
.advisor-app .folio :is(.button, .advisor-button, .folio-button):is(:disabled, [aria-disabled="true"]) {
    opacity: .45;
    cursor: not-allowed;
}
.advisor-app .folio :is(.button, .advisor-button, .folio-button):focus-visible {
    outline: 2px solid var(--f-accent);
    outline-offset: 3px;
}
/* a text action, not a gold uppercase label */
.advisor-app .folio .icon-text-button {
    padding: 0;
    border: 0;
    background: none;
    color: var(--f-accent);
    font: 600 13px/1.2 var(--f-font-ui);
    letter-spacing: 0;
    text-transform: none;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    cursor: pointer;
}
.advisor-app .folio .icon-text-button.danger { color: var(--f-red); }

/* ==========================================================================
   Z2 · FIGURE STATES, STAMP, CHIPS
   Folio library decisions D3c (C1), D11 (S2), D2d (G3), 2026-10-01.
   ========================================================================== */
.folio .folio-state { display: inline-grid; place-items: center; width: 15px; height: 15px; color: var(--f-dim); }
.folio .folio-state svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.folio .folio-state--estimate { color: var(--f-gold); }
.folio .folio-state--stale { color: var(--f-bronze); }
.folio .folio-state--unknown { color: var(--f-faint); }
.folio .folio-state--confirmed { color: var(--f-green); }
.folio .folio-state--lapsed { color: var(--f-red); }
/* D18 A: words beside labels/notes; circles belong to dense table cells. */
.folio .folio-state-text { color:var(--f-muted); font:400 11px/1.4 var(--f-font-ui); text-transform:none; letter-spacing:0; }
.folio .folio-statement__line .folio-state-text, .folio .folio-ledger__instrument-rows .folio-state-text { margin-left:8px; white-space:nowrap; }
.folio .folio-ledger--instrument .folio-state-text { color:inherit; opacity:.75; }
.folio .folio-ledger__cell > .folio-state { position:static; vertical-align:middle; margin-left:5px; }
@container (max-width:620px) { .folio .folio-statement__line .folio-state-text { display:block; margin:3px 0 0; } }
.folio .folio-figgrid > div.has-state { position: relative; }
.folio .folio-figgrid > div.has-state > .folio-state { position: absolute; top: 14px; right: 14px; }
.folio .folio-figgrid > div.has-state > span:not(.folio-state) { padding-right: 22px; }
.folio .folio-figgrid > div.is-estimate > strong { font-weight: 300; }
.folio .folio-figgrid > div > strong.pos { color: var(--f-green); }
.folio .folio-figgrid > div > strong.neg { color: var(--f-red); }
.folio .folio-figgrid > div.is-unknown > strong { font-style: italic; color: var(--f-dim); }

/* D4b H4 shares the figure states, with native buttons for inspection. */
.folio .folio-figgrid.folio-figgrid--row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 34px; overflow: visible; border: 0; border-top: 1px solid var(--f-line); border-radius: 0; background: transparent; }
.folio .folio-figgrid--row > :is(div, button) { position: relative; display: block; min-width: 0; padding: 20px 22px 22px; border: 0; border-right: 1px solid var(--f-line); border-bottom: 1px solid var(--f-line); border-radius: 0; background: transparent; color: var(--f-ink); text-align: left; }
.folio .folio-figgrid--row > button { cursor: pointer; }
.folio .folio-figgrid--row > button:hover, .folio .folio-figgrid--row > button[aria-expanded="true"] { background: color-mix(in srgb, var(--f-paper) 70%, transparent); }
.folio .folio-figgrid--row > button:focus-visible { outline: 2px solid var(--f-accent); outline-offset: -3px; }
.folio .folio-figgrid--row > :is(div, button):nth-child(5n), .folio .folio-figgrid--row > :last-child { border-right: 0; }
.folio .folio-figgrid--row > :is(div, button) > span:not(.folio-state) { display: block; padding-right: 24px; color: var(--f-muted); font: 500 10px/1.5 var(--f-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.folio .folio-figgrid--row > button > span:not(.folio-state)::after { content: "›"; position: absolute; top: 20px; right: 12px; color: var(--f-dim); font: 400 15px/1 var(--f-font-ui); }
.folio .folio-figgrid--row > .has-state > .folio-state { position: absolute; top: 18px; right: 30px; }
.folio .folio-figgrid--row > .has-state > span:not(.folio-state) { padding-right: 36px; }
.folio .folio-figgrid--row > :is(div, button) > strong { display: block; margin-top: 10px; overflow: visible; color: var(--f-ink); font: 400 clamp(24px, 2.5vw, 34px)/1.2 var(--f-font-display); font-variant-numeric: tabular-nums; white-space: nowrap; text-overflow: clip; }
.folio .folio-figgrid--row > .is-estimate > strong { font-weight: 300; }
.folio .folio-figgrid--row > .is-unknown > strong { color: var(--f-dim); font-style: italic; font-size: 22px; }
.folio .folio-figgrid--row > :is(div, button) > strong.pos { color: var(--f-green); }
.folio .folio-figgrid--row > :is(div, button) > strong.neg { color: var(--f-red); }
.folio .folio-figgrid--row > :is(div, button) > small { display: block; margin-top: 7px; color: var(--f-muted); font: 400 12px/1.5 var(--f-font-ui); }
@media (min-width: 1081px) { .folio .folio-figgrid--row > :first-child { padding-left: 0; } }
@media (max-width: 1080px) {
    .folio .folio-figgrid.folio-figgrid--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .folio .folio-figgrid--row > :is(div, button):nth-child(5n) { border-right: 1px solid var(--f-line); }
    .folio .folio-figgrid--row > :is(div, button):nth-child(3n), .folio .folio-figgrid--row > :last-child { border-right: 0; }
}
@media (max-width: 620px) {
    .folio .folio-figgrid.folio-figgrid--row { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-figgrid--row > :is(div, button), .folio .folio-figgrid--row > :is(div, button):nth-child(5n), .folio .folio-figgrid--row > :is(div, button):nth-child(3n) { padding-inline: 0; border-right: 0; }
    .folio .folio-figgrid--row > :is(div, button) > strong { font-size: 32px; }
    .folio .folio-figgrid--row > .is-unknown > strong { font-size: 24px; }
}

/* Specimen columns and narrow app hosts obey their own available width. */
@container (max-width: 1000px) {
    .folio .folio-hero--open > .folio-figgrid--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .folio .folio-hero--open > .folio-figgrid--row > :is(div, button) { padding-left: 22px; }
    .folio .folio-hero--open > .folio-figgrid--row > :is(div, button):nth-child(5n) { border-right: 1px solid var(--f-line); }
    .folio .folio-hero--open > .folio-figgrid--row > :is(div, button):nth-child(3n), .folio .folio-hero--open > .folio-figgrid--row > :last-child { border-right: 0; }
}
@container (max-width: 600px) {
    .folio .folio-hero--open .folio-hero__figure { font-size: clamp(38px, 14cqw, 52px); }
    .folio .folio-hero--open .folio-hero__figure.is-unknown { font-size: 28px; }
    .folio .folio-hero--open > .folio-figgrid--row { grid-template-columns: minmax(0, 1fr); }
    .folio .folio-hero--open > .folio-figgrid--row > :is(div, button), .folio .folio-hero--open > .folio-figgrid--row > :is(div, button):nth-child(5n), .folio .folio-hero--open > .folio-figgrid--row > :is(div, button):nth-child(3n) { padding-inline: 0; border-right: 0; }
    .folio .folio-hero--open > .folio-figgrid--row > :is(div, button) > strong { font-size: 32px; }
    .folio .folio-hero--open > .folio-figgrid--row > .is-unknown > strong { font-size: 24px; }
}

.folio .folio-stamp { display: inline-flex; align-items: center; padding: 4px 6px; border: 1px solid color-mix(in srgb, var(--f-bronze) 45%, transparent); border-radius: 3px; font: 500 9.5px/1 var(--f-font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--f-bronze); white-space: nowrap; }

.folio .folio-chip { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 11px; border-radius: 999px; font: 600 11.5px/1 var(--f-font-ui); white-space: nowrap; isolation: isolate;
    background: linear-gradient(180deg, rgba(255, 255, 255, .7), rgba(255, 255, 255, .35));
    -webkit-backdrop-filter: blur(8px) saturate(170%); backdrop-filter: blur(8px) saturate(170%);
    box-shadow: 0 2px 8px rgba(16, 35, 28, .08), inset 0 0 0 1px rgba(150, 128, 88, .22); }
.folio .folio-chip--ink { color: var(--f-ink); }
.folio .folio-chip--green { color: var(--f-green); }
.folio .folio-chip--gold { color: var(--f-bronze-deep); }
.folio .folio-chip--red { color: var(--f-red); }
.folio .folio-chip__dot { width: 7px; height: 7px; border-radius: 50%; }
.folio .folio-chip__dot--live { background: var(--f-green); }
.folio .folio-chip__dot--manual { border: 1.5px solid var(--f-dim); }
.folio .advisor-entity-navigation:has(> .folio-tabrail) { display: block; overflow: visible; padding: 0; gap: 0; }
.folio .advisor-entity-navigation > .folio-tabrail { border-top: 0; }
.folio .folio-hero__detail { margin: 18px 0; color: var(--f-muted); font: 400 14px/1.6 var(--f-font-ui); }
.folio .folio-hero__detail summary { cursor: pointer; width: fit-content; color: var(--f-ink); }
.folio .folio-hero__detail summary:focus-visible { outline: 2px solid var(--f-accent); outline-offset: 4px; }
.folio .folio-hero__detail p { max-width: 58ch; }
.folio .folio-hero__glance--instrument { padding: 0; background: transparent; }
.folio .folio-hero.folio-hero--instrument { display: flex; flex-wrap: wrap; container-type: inline-size; }
.folio .folio-hero--instrument > div { flex: 1.15 1 420px; min-width: 0; }
.folio .folio-hero--instrument > aside { flex: .85 1 340px; min-width: 0; }
.folio .folio-hero--instrument .folio-hero__figure { font-size: clamp(38px, 6.4cqw, 76px); }
.folio .folio-hero--instrument .folio-hero__figure.is-unknown { font-size: clamp(28px, 4cqw, 52px); white-space: normal; }
.folio .folio-hero--provisional .folio-hero__figure { font-weight: 300; }
.folio .folio-hero.folio-hero--facts { display: flex; flex-wrap: wrap; container-type: inline-size; }
.folio .folio-hero--facts > div { flex: 1.4 1 540px; min-width: 0; }
.folio .folio-hero--facts > aside { flex: 1 1 360px; min-width: 0; }
@container (max-width: 600px) {
    .folio .folio-hero--facts .folio-hero__figure { font-size: clamp(38px, 14cqw, 52px); }
    .folio .folio-hero--facts .folio-hero__figure.is-unknown { font-size: 28px; white-space: normal; }
    .folio .folio-hero--facts .folio-figgrid:has(> div:nth-child(3):last-child) { grid-template-columns:minmax(0,1fr); }
    .folio .folio-hero--facts .folio-figgrid > div { border-right:0; border-bottom:1px solid var(--f-line); }
    .folio .folio-hero--facts .folio-figgrid > div:last-child { border-bottom:0; }
}


/* R1 A · approved Reports index and reading workspace, October 5, 2026. */
.folio .folio-reports { padding-block:22px 48px; }
.folio .folio-reports--index { display:grid; grid-template-columns:250px minmax(0,1fr); gap:36px; align-items:start; }
.folio .folio-report-index { min-width:0; }
.folio .folio-report-index__heading { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:15px; }
.folio .folio-report-index__heading h2 { margin:0; font:400 21px/1.2 var(--f-font-display); }
.folio .folio-report-index__heading small { color:var(--f-muted); font:400 10px/1.4 var(--f-font-mono); }
.folio .folio-report-index .folio-field { margin-bottom:20px; }
.folio .folio-report-group { margin:20px 0 0; }
.folio .folio-report-group h3 { margin:0 0 7px; color:var(--f-bronze); font:500 10px/1.3 var(--f-font-mono); letter-spacing:.12em; text-transform:uppercase; }
.folio .folio-report-group .folio-record { gap:9px; padding:11px 0; }
.folio .folio-report-group .folio-record__mark { display:none; }
.folio .folio-report-group .folio-record__id b { font-size:12.5px; }
.folio .folio-report-group .folio-record__id span { display:none; }
.folio .folio-report-group .folio-cardlink { font-size:10px; }
.folio .folio-report-group [aria-current="true"] { background:var(--f-paper); color:var(--f-accent); }
.folio .folio-report-group [aria-current="true"] .folio-record__id b { font-weight:650; }
.folio .folio-report-main { min-width:0; }
.folio .folio-report-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:0 0 20px; border-bottom:1px solid var(--f-line-strong); }
.folio .folio-report-head h2 { margin:4px 0 9px; color:var(--f-ink); font:400 clamp(29px,3vw,40px)/1.1 var(--f-font-display); letter-spacing:-.02em; }
.folio .folio-report-head p { max-width:65ch; margin:0; color:var(--f-dim); font:400 12.5px/1.5 var(--f-font-ui); }
.folio .folio-report-head .folio-report-kicker { color:var(--f-bronze); font:500 10px/1.3 var(--f-font-mono); letter-spacing:.12em; text-transform:uppercase; }
.folio .folio-report-head .folio-export-menu { flex:none; margin-top:4px; }
.folio .folio-report-head .folio-export-menu__items { left:auto; right:0; }
.folio .folio-report-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; padding:15px 0; color:var(--f-muted); font:400 11px/1.4 var(--f-font-ui); }
.folio .folio-report-meta strong { color:var(--f-ink); font-weight:550; }
.folio .folio-report-view { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; padding:8px 0 14px; }
.folio .folio-report-view .folio-field { min-width:200px; max-width:100%; }
.folio .folio-report-view label.folio-report-columns { display:flex; align-items:center; gap:7px; min-height:40px; color:var(--f-dim); font:400 11px/1.4 var(--f-font-ui); }
.folio .folio-report-view input[type="checkbox"] { width:15px; height:15px; accent-color:var(--f-accent); }
.folio .folio-report-main .folio-data-table td { white-space:nowrap; }
.folio .folio-report-main .folio-data-table td:first-child { white-space:normal; min-width:145px; }
.folio .folio-report-amount { font:500 14px/1.3 var(--f-font-mono); font-variant-numeric:tabular-nums; }
.folio .folio-report-amount--positive { color:var(--f-green); }
.folio .folio-report-amount--negative { color:var(--f-red); }
.folio .folio-report-unknown { color:var(--f-muted); font-style:italic; font-size:12px; }
.folio .folio-report-pages { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:15px 0; color:var(--f-muted); font:400 11px/1.4 var(--f-font-ui); }
.folio .folio-report-pages .folio-actions { gap:8px; }
.folio .folio-report-notes { border-top:1px solid var(--f-line); padding-top:14px; }
.folio .folio-report-notes p { max-width:85ch; color:var(--f-dim); font:400 12px/1.6 var(--f-font-ui); }
.folio .folio-report-notes dl { display:grid; grid-template-columns:130px minmax(0,1fr); gap:8px 18px; font:400 11px/1.5 var(--f-font-ui); }
.folio .folio-report-notes dt { color:var(--f-muted); }
.folio .folio-report-notes dd { margin:0; overflow-wrap:anywhere; }
.folio .folio-report-mobile-chooser { display:none; }
@media(max-width:1080px) {
  .folio .folio-reports--index { grid-template-columns:210px minmax(0,1fr); gap:24px; }
}
@media(max-width:900px) {
  .folio .folio-reports--index { display:block; }
  .folio .folio-report-mobile-chooser { display:block; margin-bottom:18px; }
  .folio .folio-report-index { display:none; padding-bottom:24px; }
  .folio .folio-report-index.is-open { display:block; }
  .folio .folio-report-head { gap:10px; }
  .folio .folio-report-head h2 { font-size:29px; }
  .folio .folio-report-head .folio-export-menu { margin-top:0; }
  .folio .folio-report-meta { gap:7px 14px; }
  .folio .folio-report-notes dl { grid-template-columns:minmax(0,1fr); gap:5px; }
  .folio .folio-report-notes dd { margin-bottom:8px; }
}

/* ==========================================================================
   MEETINGS · CLIENT WORK  (D20 MS1, D21 SC1, D22 MB1, D25 CN1, D26 ST1,
   D27 PV1, D28 TP2, D29 TR1b; approved 2026-10-06)
   Meetings has three sub-tabs: Meetings, Case prep and Case notes. Prep and
   notes share one meeting bar. Tasks live on household Tasks; the notes rail
   creates them and links back.
   ========================================================================== */

/* The shell already carries the route gutter; pages inside it must not add a second one. */
.folio .household-meetings-shell > .folio-page { padding-inline: 0; }
/* ST1 · serif sub-tabs with the accent underline */
.folio .folio-subtabs__tab:first-child { padding-left: 0; }
.folio .folio-subtabs__tab:first-child[aria-selected="true"]::after { left: 0; }
.folio .folio-subtabs { display: flex; align-items: flex-end; gap: 4px; margin: 22px 0 0; border-bottom: 1px solid var(--f-line); overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.folio .folio-subtabs.folio-subtabs::-webkit-scrollbar { display: none; }
.folio .folio-subtabs__tab { position: relative; display: inline-flex; flex: none; align-items: center; gap: 8px; padding: 0 14px 12px; border: 0; background: none; color: var(--f-muted); font: 400 17px/1 var(--f-font-display); white-space: nowrap; cursor: pointer; }
.folio .folio-subtabs__tab:hover, .folio .folio-subtabs__tab[aria-selected="true"] { color: var(--f-ink); }
.folio .folio-subtabs__tab[aria-selected="true"]::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--f-accent); }
.folio .folio-subtabs__tab:focus-visible { outline: 2px solid var(--f-accent); outline-offset: -2px; border-radius: 6px; }
.folio .folio-subtabs__tab small { color: var(--f-dim); font: 500 10.5px/1 var(--f-font-mono); }
.folio .folio-subtabs__tab small.is-live { color: var(--f-accent); }

/* Stage track: scheduled, prepped, held, notes, follow-ups */
.folio .folio-stage { display: inline-flex; align-items: center; gap: 4px; }
.folio .folio-stage__step { width: 18px; height: 4px; border-radius: 2px; background: var(--f-line); }
.folio .folio-stage__step.is-done { background: var(--f-accent); }
.folio .folio-stage__step.is-part { background: linear-gradient(90deg, var(--f-accent) 50%, var(--f-line) 50%); }
.folio .folio-stage__label { margin-left: 6px; color: var(--f-muted); font: 500 11.5px/1.2 var(--f-font-ui); white-space: nowrap; }

.folio .folio-avatars { display: inline-flex; align-items: center; }
.folio .folio-avatars .folio-owner-chip + .folio-owner-chip { margin-left: -6px; }
.folio .folio-mono { color: var(--f-bronze); font: 500 9.5px/1 var(--f-font-mono); letter-spacing: .13em; text-transform: uppercase; }
.folio .folio-kbd { display: inline-block; padding: 2px 5px; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-dim); font: 500 10px/1.2 var(--f-font-mono); }

/* MS1 · the household's meetings, each with its stage and next action */
.folio .folio-meetings-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 4px 0 14px; }
.folio .folio-meetings-bar__end { margin-left: auto; display: flex; gap: 8px; }
.folio .folio-due-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; background: color-mix(in srgb, var(--f-gold-soft) 70%, var(--f-paper)); box-shadow: inset 0 0 0 1px rgba(166, 119, 8, .25); font-size: 13px; }
.folio .folio-due-strip b { font-weight: 600; }
.folio .folio-due-strip span { color: var(--f-muted); }
.folio .folio-due-strip .folio-button { margin-left: auto; }
.folio .folio-schedule { border: 1px solid var(--f-line); border-radius: 14px; background: var(--f-paper); box-shadow: var(--f-shadow); overflow: hidden; }
.folio .folio-schedule__group { padding: 10px 18px 8px; border-bottom: 1px solid var(--f-line); background: color-mix(in srgb, var(--f-quiet) 70%, var(--f-paper)); }
.folio .folio-schedule__row { display: grid; grid-template-columns: 60px minmax(0, 1.4fr) minmax(0, 1fr) 200px 270px; gap: 18px; align-items: center; padding: 14px 18px; border-bottom: 1px solid color-mix(in srgb, var(--f-line) 75%, transparent); font-size: 13px; }
.folio .folio-schedule__row:last-child { border-bottom: 0; }
.folio .folio-schedule__date { padding: 6px 0; border-radius: 9px; box-shadow: inset 0 0 0 1px var(--f-line); text-align: center; }
.folio .folio-schedule__date b { display: block; font: 400 21px/1 var(--f-font-display); }
.folio .folio-schedule__date small { display: block; margin-top: 3px; color: var(--f-dim); font: 500 9px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-schedule__row.is-next .folio-schedule__date { background: var(--f-accent); box-shadow: none; color: #fff; }
.folio .folio-schedule__row.is-next .folio-schedule__date small { color: rgba(255, 255, 255, .78); }
.folio .folio-schedule__date.is-month { border: 1px dashed rgba(166, 119, 8, .5); box-shadow: none; background: repeating-linear-gradient(135deg, transparent 0 5px, rgba(166, 119, 8, .08) 5px 6px); }
.folio .folio-schedule__what { min-width: 0; }
.folio .folio-schedule__what b { display: block; font: 400 17px/1.2 var(--f-font-display); }
.folio .folio-schedule__what span { display: block; margin-top: 3px; color: var(--f-dim); font-size: 12px; }
.folio .folio-schedule__who { display: flex; align-items: center; gap: 9px; min-width: 0; color: var(--f-muted); font-size: 12px; }
.folio .folio-schedule__who > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-schedule__acts { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.folio .folio-schedule__row.is-past .folio-schedule__what b { color: var(--f-muted); }
.folio .folio-schedule__empty { padding: 26px 18px; color: var(--f-dim); font-size: 13px; text-align: center; }

/* SC1 · schedule panel content */
.folio .folio-type-choices { display: flex; flex-wrap: wrap; gap: 6px; }
.folio .folio-type-choice { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 999px; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-muted); font: 500 12.5px/1 var(--f-font-ui); cursor: pointer; }
.folio .folio-type-choice input { position: absolute; opacity: 0; pointer-events: none; }
.folio .folio-type-choice i { width: 8px; height: 8px; border-radius: 50%; background: var(--meeting-color, var(--f-accent)); }
.folio .folio-type-choice:has(input:checked) { background: var(--f-accent-soft); box-shadow: inset 0 0 0 1.5px var(--f-accent); color: var(--f-accent); }
.folio .folio-type-choice:has(input:focus-visible) { outline: 2px solid var(--f-accent); outline-offset: 2px; }
.folio .folio-people { display: grid; gap: 4px; padding: 6px; border-radius: 10px; background: var(--f-inset); box-shadow: inset 0 1px 2px rgba(66, 49, 20, .08); }
.folio .folio-person { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 6px 8px; border-radius: 8px; background: var(--f-paper); font-size: 13px; }
.folio .folio-person__name b { font-weight: 600; }
.folio .folio-person__name span { margin-left: 4px; color: var(--f-dim); font-size: 12px; }
.folio .folio-person select { min-height: 30px; padding: 2px 8px; border: 0; border-radius: 7px; background: var(--f-inset); color: var(--f-muted); font: 500 11.5px/1 var(--f-font-ui); }
.folio .folio-person__warn { color: var(--f-gold); font: 500 11px/1.2 var(--f-font-ui); }
.folio .folio-person__remove { width: 26px; height: 26px; border: 0; border-radius: 50%; background: none; color: var(--f-dim); cursor: pointer; }
.folio .folio-person__remove:hover { background: var(--f-inset); color: var(--f-red); }
.folio .folio-person-add { display: flex; gap: 6px; }
.folio .folio-person-add select { flex: 1; }
.folio .folio-member-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.folio .folio-member-check { display: inline-flex; align-items: center; gap: 8px; padding: 6px 11px 6px 7px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--f-line-strong); font-size: 12.5px; cursor: pointer; }
.folio .folio-member-check input { accent-color: var(--f-accent); }
.folio .folio-member-check:has(input:checked) { box-shadow: inset 0 0 0 1.5px var(--f-accent); }
.folio .folio-template-line { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--f-line); font-size: 13px; }
.folio .folio-template-line span { color: var(--f-dim); font-size: 12px; }

/* MB1 · the meeting bar shared by Case prep and Case notes */
.folio .folio-meeting-bar { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin: 18px 0; padding: 10px 12px 10px 10px; border: 1px solid var(--f-line); border-radius: 13px; background: var(--f-paper); box-shadow: var(--f-shadow); }
.folio .folio-meeting-bar__date { flex: none; width: 50px; padding: 6px 0; border-radius: 9px; background: var(--f-accent); color: #fff; text-align: center; }
.folio .folio-meeting-bar__date b { display: block; font: 400 20px/1 var(--f-font-display); }
.folio .folio-meeting-bar__date small { display: block; margin-top: 3px; color: rgba(255, 255, 255, .78); font: 500 9px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-meeting-bar__date.is-loose { background: var(--f-inset); color: var(--f-ink); }
.folio .folio-meeting-bar__date.is-loose small { color: var(--f-dim); }
.folio .folio-meeting-bar__what { flex: 1 1 260px; min-width: 0; }
.folio .folio-meeting-bar__what b { display: block; font: 400 18px/1.15 var(--f-font-display); }
.folio .folio-meeting-bar__what span { display: block; margin-top: 3px; color: var(--f-dim); font: 400 12px/1.35 var(--f-font-ui); }
.folio .folio-meeting-bar__people { display: flex; align-items: center; gap: 8px; color: var(--f-muted); font-size: 12px; }
.folio .folio-meeting-bar__rule { width: 1px; height: 30px; background: var(--f-line); }
.folio .folio-meeting-bar__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.folio .folio-meeting-picker { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; width: min(400px, calc(100vw - 32px)); max-height: 420px; overflow: auto; padding: 8px; border: 1px solid var(--f-line); border-radius: 13px; background: var(--f-paper); box-shadow: var(--f-shadow-pop); }
.folio .folio-meeting-picker .folio-mono { margin: 8px 10px 6px; }
.folio .folio-meeting-picker__item { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; padding: 9px 10px; border: 0; border-radius: 9px; background: none; color: var(--f-ink); font: 400 13px/1.3 var(--f-font-ui); text-align: left; cursor: pointer; }
.folio .folio-meeting-picker__item:hover, .folio .folio-meeting-picker__item.is-current { background: var(--f-inset); }
.folio .folio-meeting-picker__item > span:first-child { color: var(--f-dim); font: 500 11px/1 var(--f-font-mono); }
.folio .folio-meeting-picker__item small { display: block; margin-top: 2px; color: var(--f-dim); font-size: 11.5px; }
.folio .folio-meeting-picker hr { margin: 6px 4px; border: 0; border-top: 1px solid var(--f-line); }
.folio .folio-meeting-picker__new { color: var(--f-accent); font-weight: 600; }

/* Case prep: template line, agenda list and the section preview (PV1) */
.folio .folio-template-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 14px; color: var(--f-muted); font-size: 13px; }
.folio .folio-template-bar b { color: var(--f-ink); font-weight: 600; }
.folio .folio-template-bar__end { margin-left: auto; display: flex; gap: 8px; }
.folio .folio-prep { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 20px; align-items: start; }
.folio .folio-agenda { border: 1px solid var(--f-line); border-radius: 14px; background: var(--f-paper); box-shadow: var(--f-shadow); overflow: hidden; }
.folio .folio-agenda__head { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 16px 10px; border-bottom: 1px solid var(--f-line); }
.folio .folio-agenda__head h3 { margin: 0; font: 400 18px/1 var(--f-font-display); }
.folio .folio-agenda__head span { color: var(--f-dim); font-size: 12px; }
.folio .folio-agenda__row { display: grid; grid-template-columns: 14px 22px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 10px 12px 10px 8px; border-bottom: 1px solid color-mix(in srgb, var(--f-line) 70%, transparent); }
.folio .folio-agenda__row:last-of-type { border-bottom: 0; }
.folio .folio-agenda__row.is-selected { background: var(--f-accent-soft); box-shadow: inset 2px 0 0 var(--f-accent); }
.folio .folio-agenda__row.is-off .folio-agenda__pick b { color: var(--f-dim); text-decoration: line-through; text-decoration-color: var(--f-faint); }
.folio .folio-agenda__row.is-dragging { opacity: .45; }
.folio .folio-agenda__grip { color: var(--f-faint); font-size: 12px; letter-spacing: -2px; cursor: grab; }
.folio .folio-agenda__num { color: var(--f-dim); font: 500 10.5px/1 var(--f-font-mono); }
.folio .folio-agenda__pick { min-width: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.folio .folio-agenda__pick b { display: block; font: 600 13px/1.3 var(--f-font-ui); }
.folio .folio-agenda__pick small { display: block; margin-top: 3px; color: var(--f-dim); font-size: 11.5px; }
.folio .folio-agenda__pick small.is-warn { color: var(--f-gold); }
.folio .folio-agenda__pick:focus-visible { outline: 2px solid var(--f-accent); outline-offset: 2px; border-radius: 4px; }
.folio .folio-agenda__tools { display: flex; align-items: center; gap: 4px; }
.folio .folio-agenda__move { width: 22px; height: 22px; border: 0; border-radius: 5px; background: none; color: var(--f-dim); font-size: 11px; cursor: pointer; opacity: 0; }
.folio .folio-agenda__row:hover .folio-agenda__move, .folio .folio-agenda__move:focus-visible { opacity: 1; }
.folio .folio-agenda__move:hover { background: var(--f-inset); color: var(--f-ink); }
.folio .folio-agenda__hint { font-style: normal; }
/* Touch screens cannot drag rows or hover: the arrows stay visible and big enough to tap. */
@media (hover: none) {
  .folio .folio-agenda__move { width: 34px; height: 34px; opacity: 1; font-size: 12px; }
  .folio .folio-agenda__hint { display: none; }
}
.folio input.folio-switch { position: relative; flex: none; width: 30px; height: 18px; min-height: 0; padding: 0; border: 0; box-shadow: none; margin: 0; appearance: none; border-radius: 999px; background: var(--f-line-strong); cursor: pointer; transition: background .15s; }
.folio .folio-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .15s; }
.folio .folio-switch:checked { background: var(--f-accent); }
.folio .folio-switch:checked::after { transform: translateX(12px); }
.folio .folio-switch:focus-visible { outline: 2px solid var(--f-accent); outline-offset: 2px; }
.folio .folio-switch:disabled { cursor: default; opacity: .5; }
.folio .folio-agenda__add { display: flex; gap: 6px; padding: 10px 12px; border-top: 1px solid var(--f-line); }
.folio .folio-agenda__add select { flex: 1; min-height: 32px; }

.folio .folio-preview { position: sticky; top: calc(var(--advisor-topbar-height, 66px) + 12px); display: grid; gap: 12px; min-width: 0; }
.folio .folio-preview__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.folio .folio-preview__end { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.folio .folio-preview__nav { display: inline-flex; align-items: center; gap: 6px; color: var(--f-dim); font: 500 11px/1 var(--f-font-mono); letter-spacing: .08em; }
.folio .folio-preview__nav button { width: 30px; height: 30px; border: 0; border-radius: 50%; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-muted); cursor: pointer; }
.folio .folio-preview__nav button:disabled { opacity: .4; cursor: default; }
.folio .folio-preview__stage { padding: 26px; border-radius: 14px; background: color-mix(in srgb, var(--f-canvas-deep) 45%, var(--f-canvas)); box-shadow: inset 0 1px 3px rgba(66, 49, 20, .12); }
.folio .folio-preview__editor { display: grid; gap: 12px; max-width: 640px; margin: 0 auto; padding: 16px 18px; border-radius: 12px; background: var(--f-paper); box-shadow: var(--f-shadow); }
.folio .folio-advisor-strip { max-width: 640px; width: 100%; margin: 0 auto; padding: 12px 16px; border-radius: 10px; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line); color: var(--f-muted); font-size: 12.5px; }
.folio .folio-advisor-strip .folio-mono { display: block; margin-bottom: 6px; }
.folio .folio-advisor-strip p { margin: 0; white-space: pre-wrap; }

/* PV1 · a section as the printed packet page */
.folio .folio-packet-page { position: relative; max-width: 640px; margin: 0 auto; padding: 38px 44px 34px; background: #fffefb; box-shadow: 0 1px 2px rgba(66, 49, 20, .1), 0 24px 50px rgba(66, 49, 20, .16); color: var(--f-ink); }
.folio .folio-packet-page__mast { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding-bottom: 10px; border-bottom: 1px solid var(--f-ink); }
.folio .folio-packet-page__mast b { font: 400 13px/1.2 var(--f-font-display); letter-spacing: .02em; }
.folio .folio-packet-page__mast span { color: var(--f-dim); font: 500 8.5px/1.3 var(--f-font-mono); letter-spacing: .14em; text-transform: uppercase; text-align: right; }
.folio .folio-packet-page__num { margin: 22px 0 6px; color: var(--f-bronze); font: 500 9px/1 var(--f-font-mono); letter-spacing: .16em; text-transform: uppercase; }
.folio .folio-packet-page h4 { margin: 0 0 10px; font: 400 27px/1.1 var(--f-font-display); letter-spacing: -.01em; }
.folio .folio-packet-page__lede { margin: 0 0 18px; color: var(--f-muted); font: 400 12.5px/1.55 var(--f-font-ui); white-space: pre-wrap; }
.folio .folio-packet-page__figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--f-line); border-bottom: 1px solid var(--f-line); }
.folio .folio-packet-page__figs > div { min-width: 0; padding: 12px 12px 12px 0; }
.folio .folio-packet-page__figs > div + div { padding-left: 12px; border-left: 1px solid var(--f-line); }
.folio .folio-packet-page__figs small { display: block; color: var(--f-dim); font: 500 8.5px/1.3 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-packet-page__figs b { display: block; margin-top: 6px; font: 400 22px/1 var(--f-font-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.folio .folio-packet-page__figs b.pos { color: var(--f-green); }
.folio .folio-packet-page__figs b.neg { color: var(--f-red); }
.folio .folio-packet-page__figs b.is-estimate { font-weight: 300; }
.folio .folio-packet-page__figs b.is-unknown { color: var(--f-dim); font: italic 400 15px/1.3 var(--f-font-display); white-space: normal; }
.folio .folio-packet-page__figs em { display: block; margin-top: 5px; color: var(--f-muted); font: 400 10.5px/1.35 var(--f-font-ui); font-style: normal; }
.folio .folio-packet-page__notes { margin: 14px 0 0; padding: 0; list-style: none; color: var(--f-muted); font: 400 11px/1.5 var(--f-font-ui); }
.folio .folio-packet-page__foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 26px; padding-top: 8px; border-top: 1px solid var(--f-line); color: var(--f-faint); font: 500 8px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-packet-page--internal { box-shadow: 0 1px 2px rgba(66, 49, 20, .1), 0 24px 50px rgba(66, 49, 20, .16), inset 0 0 0 2px var(--f-gold-soft); }
.folio .folio-page-thumbs { display: flex; gap: 10px; overflow-x: auto; overflow-y: hidden; padding: 2px; scrollbar-width: none; }
.folio .folio-page-thumbs.folio-page-thumbs::-webkit-scrollbar { display: none; }
.folio .folio-page-thumb { flex: none; width: 96px; padding: 8px; border: 0; border-radius: 8px; background: #fffefb; box-shadow: 0 1px 2px rgba(66, 49, 20, .1), inset 0 0 0 1px var(--f-line); text-align: left; cursor: pointer; }
.folio .folio-page-thumb i { display: block; height: 4px; margin-top: 5px; border-radius: 2px; background: var(--f-line); }
.folio .folio-page-thumb i:nth-of-type(1) { width: 70%; height: 7px; background: var(--f-line-strong); }
.folio .folio-page-thumb i:nth-of-type(2) { width: 90%; }
.folio .folio-page-thumb i:nth-of-type(3) { width: 60%; }
.folio .folio-page-thumb span { display: block; color: var(--f-dim); font: 500 8.5px/1 var(--f-font-mono); }
.folio .folio-page-thumb small { display: block; margin-top: 6px; overflow: hidden; color: var(--f-muted); font: 500 10px/1.2 var(--f-font-ui); text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-page-thumb[aria-current="true"] { box-shadow: 0 0 0 2px var(--f-accent); }
.folio .folio-page-thumb.is-off { opacity: .4; }

/* TP2 · named templates in a side panel */
.folio .folio-template-list { display: grid; gap: 4px; }
.folio .folio-template-list .folio-mono { margin: 12px 4px 6px; }
.folio .folio-template-card { padding: 12px 14px; border-radius: 11px; }
.folio .folio-template-card__open { display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.folio .folio-template-card:hover { background: var(--f-inset); }
.folio .folio-template-card__top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.folio .folio-template-card__top b { font: 400 17px/1.2 var(--f-font-display); }
.folio .folio-template-card__tags { display: inline-flex; gap: 5px; margin-left: auto; }
.folio .folio-template-card p { margin: 4px 0 0; color: var(--f-dim); font-size: 12px; }
.folio .folio-template-card.is-open { background: var(--f-paper); box-shadow: inset 0 0 0 1.5px var(--f-accent), var(--f-shadow); }
.folio .folio-template-card__sections { display: grid; gap: 2px; margin: 12px 0 10px; padding: 8px; border-radius: 9px; background: var(--f-inset); box-shadow: inset 0 1px 2px rgba(66, 49, 20, .08); list-style: none; counter-reset: folio-template-section; }
.folio .folio-template-card__sections li { display: flex; gap: 10px; padding: 5px 6px; color: var(--f-ink); font-size: 12.5px; }
.folio .folio-template-card__sections li::before { counter-increment: folio-template-section; content: counter(folio-template-section, decimal-leading-zero); color: var(--f-dim); font: 500 10px/1.6 var(--f-font-mono); }
.folio .folio-template-card__sections li em { margin-left: auto; color: var(--f-dim); font: 400 11px/1.6 var(--f-font-ui); font-style: normal; }
.folio .folio-template-card__actions { display: flex; flex-wrap: wrap; gap: 6px; }
.folio .folio-tag { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 999px; font: 600 10.5px/1 var(--f-font-ui); white-space: nowrap; }
.folio .folio-tag--mine { background: var(--f-accent); color: #fff; }
.folio .folio-tag--firm { background: var(--f-emerald); color: var(--f-gold-lumen); }
.folio .folio-tag--plain { box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-muted); }
.folio .folio-radio-cards { display: grid; gap: 6px; }
.folio .folio-radio-card { display: flex; gap: 10px; align-items: flex-start; padding: 11px 12px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--f-line-strong); font-size: 13px; cursor: pointer; }
.folio .folio-radio-card input { margin-top: 2px; accent-color: var(--f-accent); }
.folio .folio-radio-card:has(input:checked) { background: color-mix(in srgb, var(--f-accent-soft) 45%, var(--f-paper)); box-shadow: inset 0 0 0 1.5px var(--f-accent); }
.folio .folio-radio-card b { display: block; font-weight: 600; }
.folio .folio-radio-card span { display: block; margin-top: 2px; color: var(--f-dim); font-size: 12px; }

/* CN1 · one free-form page; agenda markers are optional */
.folio .folio-notes-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 18px; align-items: start; }
.folio .folio-notes { border: 1px solid var(--f-line); border-radius: 14px; background: var(--f-paper); box-shadow: var(--f-shadow); }
.folio .folio-notes__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 18px; border-bottom: 1px solid var(--f-line); color: var(--f-muted); font-size: 12.5px; }
.folio .folio-notes__live { display: inline-flex; align-items: center; gap: 6px; }
.folio .folio-notes__live i { width: 7px; height: 7px; border-radius: 50%; background: var(--f-accent-bright); box-shadow: 0 0 0 3px var(--f-accent-soft); }
.folio .folio-notes__saved { margin-left: auto; color: var(--f-dim); }
.folio .folio-notes__saved.is-error { color: var(--f-red); }
.folio .folio-notes__tools { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px 14px; border-bottom: 1px solid var(--f-line); background: color-mix(in srgb, var(--f-quiet) 70%, var(--f-paper)); }
.folio .folio-notes__tools button { padding: 6px 9px; border: 0; border-radius: 6px; background: none; color: var(--f-muted); font: 600 12px/1 var(--f-font-ui); cursor: pointer; }
.folio .folio-notes__tools button:hover, .folio .folio-notes__tools button[aria-pressed="true"] { background: var(--f-inset); color: var(--f-ink); }
.folio .folio-notes__tools button:disabled { opacity: .4; cursor: default; }
.folio .folio-notes__sep { width: 1px; margin: 2px 4px; background: var(--f-line); }
.folio .folio-notes__body { display: grid; grid-template-columns: 170px minmax(0, 1fr); min-height: 520px; }
.folio .folio-notes__gutter { padding: 18px 10px 18px 14px; border-right: 1px solid color-mix(in srgb, var(--f-line) 70%, transparent); }
.folio .folio-notes__gutter .folio-mono { margin: 0 6px 8px; }
.folio .folio-notes__section { display: flex; gap: 7px; align-items: baseline; width: 100%; padding: 6px; border: 0; border-radius: 6px; background: none; color: var(--f-muted); font: 400 12.5px/1.3 var(--f-font-ui); text-align: left; cursor: pointer; }
.folio .folio-notes__section span { color: var(--f-faint); font: 500 10px/1 var(--f-font-mono); }
.folio .folio-notes__section.has-notes { color: var(--f-ink); }
.folio .folio-notes__section.has-notes span { color: var(--f-accent); }
.folio .folio-notes__section:hover { background: var(--f-inset); }
.folio .folio-notes__section:disabled { cursor: default; }
.folio .folio-notes__gutter small { display: block; margin: 12px 6px 0; color: var(--f-dim); font-size: 11.5px; line-height: 1.45; }
.folio .folio-notes__page { min-width: 0; padding: 22px 30px 30px; }
.folio .folio-notes__page > h3 { margin: 0 0 2px; font: 400 26px/1.15 var(--f-font-display); }
.folio .folio-notes__meta { margin: 0 0 14px; color: var(--f-dim); font-size: 12.5px; }
.folio .folio-notes__marker { display: flex; align-items: center; gap: 10px; margin: 18px 0 4px; color: var(--f-accent); font: 500 10px/1 var(--f-font-mono); letter-spacing: .13em; text-transform: uppercase; }
.folio .folio-notes__marker::after { content: ""; flex: 1; height: 1px; background: var(--f-line); }
.folio .folio-note-block { position: relative; display: flex; gap: 6px; align-items: flex-start; margin: 0 -8px; padding: 2px 8px; border-radius: 6px; }
.folio .folio-note-block:focus-within { background: color-mix(in srgb, var(--f-accent-soft) 35%, transparent); }
.folio .folio-note-block textarea { flex: 1; min-width: 0; min-height: 26px; padding: 3px 0; border: 0; outline: 0; background: transparent; color: var(--f-ink); font: 400 14.5px/1.65 var(--f-font-ui); resize: none; overflow: hidden; field-sizing: content; }
.folio .folio-note-block textarea::placeholder { color: var(--f-faint); }
.folio .folio-note-block textarea[readonly] { cursor: default; }
.folio .folio-note-block.is-saving textarea { color: var(--f-muted); }
.folio .folio-note-block.is-error { box-shadow: inset 2px 0 0 var(--f-red); }
.folio .folio-note-mark { flex: none; margin-top: 6px; padding: 2px 7px; border: 0; border-radius: 5px; font: 600 10.5px/1.4 var(--f-font-ui); cursor: pointer; }
.folio .folio-note-mark--decision { background: var(--f-bronze-soft); color: var(--f-bronze-deep); }
.folio .folio-note-mark--confirmed { background: var(--f-green-soft); color: var(--f-green); }
.folio .folio-note-block__task { flex: none; margin-top: 6px; padding: 1px 7px; border: 0; border-radius: 999px; background: var(--f-accent-soft); color: var(--f-accent); font: 600 11px/1.5 var(--f-font-ui); cursor: pointer; }
.folio .folio-note-block__author { position: absolute; right: 8px; top: -14px; display: none; padding: 1px 6px; border-radius: 4px; background: var(--f-emerald); color: #fff; font: 500 10px/1.4 var(--f-font-ui); }
.folio .folio-note-block:focus-within .folio-note-block__author { display: block; }
.folio .folio-notes__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--f-line); color: var(--f-muted); font-size: 12.5px; }
.folio .folio-notes__foot .folio-action-group { margin-left: auto; }
.folio .folio-notes__amend { display: grid; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--f-line); }
.folio .folio-notes__amendment { padding: 10px 12px; border-radius: 9px; background: var(--f-inset); font-size: 13px; }
.folio .folio-notes__amendment b { display: block; margin-bottom: 4px; color: var(--f-dim); font: 500 10px/1.2 var(--f-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.folio .folio-notes__amendment p { margin: 0; white-space: pre-wrap; }

/* TR1b · the task rail: a full new-task form, then quiet links */
.folio .folio-task-rail { position: sticky; top: calc(var(--advisor-topbar-height, 66px) + 12px); display: flex; flex-direction: column; border: 1px solid var(--f-line); border-radius: 14px; background: var(--f-paper); box-shadow: var(--f-shadow); overflow: hidden; }
.folio .folio-task-rail__head { padding: 12px 14px 10px; }
.folio .folio-task-rail__head h3 { margin: 0; font: 400 19px/1 var(--f-font-display); }
.folio .folio-task-form { margin: 0 10px 10px; border-radius: 12px; background: var(--f-inset); box-shadow: inset 0 1px 2px rgba(66, 49, 20, .08); }
.folio .folio-task-form__title { display: block; width: calc(100% - 20px); margin: 10px 10px 0; min-height: 40px; padding: 8px 12px; border: 0; border-radius: 8px; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-ink); font: 500 14px/1.35 var(--f-font-ui); resize: none; field-sizing: content; }
.folio .folio-task-form__title:focus { outline: 0; box-shadow: inset 0 0 0 2px var(--f-accent); }
.folio .folio-task-form__source { margin: 6px 12px 0; color: var(--f-dim); font-size: 11.5px; }
.folio .folio-task-form__source b { color: var(--f-accent); font-weight: 600; }
.folio .folio-task-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px; }
.folio .folio-task-form__field { min-width: 0; }
.folio .folio-task-form__field--wide { grid-column: 1 / -1; }
.folio .folio-task-form__field > span { display: block; margin: 0 0 4px 2px; color: var(--f-dim); font: 500 9px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-task-form__field :is(select, input, textarea) { width: 100%; min-height: 34px; padding: 6px 9px; border: 0; border-radius: 8px; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-ink); font: 500 12.5px/1.3 var(--f-font-ui); }
.folio .folio-task-form__field textarea { min-height: 54px; resize: vertical; }
.folio .folio-task-form__field :is(select, input, textarea):focus { outline: 0; box-shadow: inset 0 0 0 2px var(--f-accent); }
.folio .folio-quick-dates { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.folio .folio-quick-dates button { padding: 4px 7px; border: 0; border-radius: 6px; background: transparent; box-shadow: inset 0 0 0 1px var(--f-line); color: var(--f-muted); font: 600 10.5px/1 var(--f-font-ui); white-space: nowrap; cursor: pointer; }
.folio .folio-quick-dates button[aria-pressed="true"] { background: var(--f-accent-soft); box-shadow: inset 0 0 0 1px var(--f-accent); color: var(--f-accent); }
.folio .folio-priority-choice { display: flex; gap: 3px; }
.folio .folio-priority-choice label { flex: 1; position: relative; }
.folio .folio-priority-choice input { position: absolute; opacity: 0; pointer-events: none; }
.folio .folio-priority-choice span { display: grid; place-items: center; height: 34px; border-radius: 8px; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line-strong); color: var(--f-muted); font: 600 11.5px/1 var(--f-font-ui); cursor: pointer; }
.folio .folio-priority-choice input:checked + span { background: var(--f-ink); box-shadow: none; color: #fff; }
.folio .folio-priority-choice input:checked + span.is-high { background: var(--f-gold); }
.folio .folio-priority-choice input:checked + span.is-urgent { background: var(--f-red); }
.folio .folio-priority-choice input:focus-visible + span { outline: 2px solid var(--f-accent); outline-offset: 2px; }
.folio .folio-task-form__steps { display: grid; gap: 4px; padding: 0 10px 10px; }
.folio .folio-task-form__steps > span { margin: 0 0 2px 2px; color: var(--f-dim); font: 500 9px/1 var(--f-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.folio .folio-task-form__step { display: flex; align-items: center; gap: 6px; }
.folio .folio-task-form__step input { flex: 1; min-height: 30px; padding: 4px 9px; border: 0; border-radius: 7px; background: var(--f-paper); box-shadow: inset 0 0 0 1px var(--f-line); font: 400 12.5px/1.3 var(--f-font-ui); }
.folio .folio-task-form__step button { width: 26px; height: 26px; border: 0; border-radius: 50%; background: none; color: var(--f-dim); cursor: pointer; }
.folio .folio-task-form__more { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 10px 10px; }
.folio .folio-task-form__more button { padding: 6px 9px; border: 1px dashed var(--f-line-strong); border-radius: 999px; background: transparent; color: var(--f-muted); font: 600 11px/1 var(--f-font-ui); cursor: pointer; }
.folio .folio-task-form__more button[aria-pressed="true"] { border-style: solid; border-color: var(--f-accent); color: var(--f-accent); }
.folio .folio-task-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px; border-top: 1px solid var(--f-line); }
.folio .folio-task-form__foot label { display: inline-flex; align-items: center; gap: 7px; color: var(--f-muted); font-size: 12px; }
.folio .folio-task-form__foot input { accent-color: var(--f-bronze); }
.folio .folio-task-form__foot .folio-button { margin-left: auto; }
.folio .folio-task-form__notice { margin: 0 10px 10px; color: var(--f-red); font-size: 12px; }
.folio .folio-task-links { padding: 4px 6px 8px; border-top: 1px solid var(--f-line); }
.folio .folio-task-links .folio-mono { margin: 8px 8px 4px; color: var(--f-dim); }
.folio .folio-task-link { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 8px; align-items: center; width: 100%; padding: 5px 8px; border: 0; border-radius: 6px; background: none; color: var(--f-muted); font: 400 12px/1.3 var(--f-font-ui); text-align: left; cursor: pointer; }
.folio .folio-task-link:hover { background: var(--f-inset); color: var(--f-ink); }
.folio .folio-task-link i { width: 10px; height: 10px; border-radius: 3px; box-shadow: inset 0 0 0 1.25px var(--f-line-strong); }
.folio .folio-task-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folio .folio-task-link em { color: var(--f-dim); font: 500 10.5px/1 var(--f-font-mono); font-style: normal; white-space: nowrap; }
.folio .folio-task-link em.is-late { color: var(--f-red); }
.folio .folio-task-link.is-done span { color: var(--f-faint); text-decoration: line-through; }
.folio .folio-task-link.is-done i { background: var(--f-accent); box-shadow: none; }
.folio .folio-task-links__all { display: block; margin: 6px 8px 0; color: var(--f-accent); font: 600 11.5px/1 var(--f-font-ui); text-decoration: none; }
.folio .folio-task-links__empty { margin: 4px 8px; color: var(--f-dim); font-size: 12px; }

@media (max-width: 1180px) {
  .folio .folio-schedule__row { grid-template-columns: 56px minmax(0, 1fr) minmax(0, .8fr); }
  .folio .folio-schedule__row > :nth-child(4) { grid-column: 2; }
  .folio .folio-schedule__acts { grid-column: 3; grid-row: 2; }
  .folio .folio-notes-layout { grid-template-columns: minmax(0, 1fr) 330px; }
}
@media (max-width: 1080px) {
  .folio .folio-prep { grid-template-columns: minmax(0, 1fr); }
  .folio .folio-notes-layout { grid-template-columns: minmax(0, 1fr); }
  .folio .folio-task-rail, .folio .folio-preview { position: static; }
}
@media (max-width: 760px) {
  /* All three sub-tabs fit a phone; the count and date are on the page. */
  .folio .folio-subtabs__tab { padding: 0 9px 11px; font-size: 16px; }
  .folio .folio-subtabs__tab[aria-selected="true"]::after { left: 9px; right: 9px; }
  .folio .folio-subtabs__tab:first-child[aria-selected="true"]::after { left: 0; }
  .folio .folio-subtabs__tab small { display: none; }
  .folio .folio-schedule__row { grid-template-columns: 52px minmax(0, 1fr); gap: 10px 14px; }
  .folio .folio-schedule__row > :nth-child(n+3) { grid-column: 2; }
  .folio .folio-schedule__acts { grid-row: auto; justify-content: flex-start; }
  .folio .folio-meeting-bar__rule { display: none; }
  .folio .folio-notes__body { grid-template-columns: minmax(0, 1fr); }
  .folio .folio-notes__gutter { display: flex; flex-wrap: wrap; gap: 4px; padding: 10px 14px; border-right: 0; border-bottom: 1px solid var(--f-line); }
  .folio .folio-notes__gutter .folio-mono, .folio .folio-notes__gutter small { display: none; }
  .folio .folio-notes__section { width: auto; }
  .folio .folio-notes__page { padding: 18px 16px 24px; }
  .folio .folio-packet-page { padding: 24px 20px; }
  .folio .folio-packet-page__figs { grid-template-columns: minmax(0, 1fr); }
  .folio .folio-packet-page__figs > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--f-line); }
  .folio .folio-preview__stage { padding: 12px; }
}
.folio .folio-notes__tools select { width: auto; min-height: 30px; padding: 4px 28px 4px 10px; font-size: 12px; }
.folio .folio-task-form__steps > .folio-button { justify-self: start; }
.folio .folio-meeting-form { display: grid; gap: 16px; }
.folio .folio-meeting-form .folio-cols { gap: 10px; }
.folio .folio-member-check input, .folio .folio-type-choice input { width: auto; min-height: 0; margin: 0; }
.folio .folio-person select { width: auto; }
