/* LexRio — Geist System
 * Ported wholesale from the canonical Vercel/Geist design language.
 * - Pure white canvas, near-black text, hairline rules, no card chrome
 * - Geist Sans + Geist Mono, OpenType "liga" globally
 * - Shadow-as-border (--ring-light) instead of CSS borders for surfaces
 * - Tokenized radii, sentence-case chips with tinted soft fills + darker text
 *
 * Original spec: /design system root → README.md, colors_and_type.css, preview/*.html
 * Disciplined target: ~v1 LexRio styles.css (~190 lines). v3 compatibility classes
 * below funnel into the same vocabulary so all screens render uniformly.
 */

/* Variable weight range so the Lisa D05 scale (incl. 650 semibold) renders
   from real font data instead of synthesized weights. */
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@400;500;600&display=swap');

/* ============================================================
 * 1. TOKENS
 * ============================================================ */
:root {
  /* ── Colour primitives — the raw palette. Semantic tokens below point
     here, so a hue can be retuned in one place; components never use these
     directly. This is the primitive → semantic → component token layering. */
  /* neutral ramp (light → dark) */
  --color-white: #FFFFFF;
  --color-neutral-25: #FAFAFA;
  --color-neutral-40: #F7F7F7;
  --color-neutral-50: #F5F5F5;
  --color-neutral-75: #F4F4F4;
  --color-neutral-100: #F0F0F0;
  --color-neutral-150: #EBEBEB;
  --color-neutral-200: #E5E5E5;
  --color-neutral-300: #D4D4D4;
  --color-neutral-400: #A3A3A3;
  --color-neutral-500: #737373;
  --color-neutral-550: #666666;
  --color-neutral-600: #525252;
  --color-neutral-650: #4D4D4D;
  --color-neutral-700: #404040;
  --color-neutral-900: #171717;
  --color-black: #000000;
  /* brand + status hues */
  --color-blue-600: #0068D6;
  --color-blue-50: #EBF5FF;
  --color-green-600: #1A7D3A;
  --color-green-50: #E7F8ED;
  --color-amber-700: #8B6914;
  --color-amber-50: #FEF6DD;
  --color-red-600: #C0291F;
  --color-red-50: #FFEAE7;
  /* Centralized primary purple (Lisa D01). Named to avoid the shadcn island's
     black --primary token; consumed via --action-dominant-* (D02 scope). */
  --color-purple-500: #814AF0;
  --color-violet-575: #733CBF;
  --color-violet-600: #7928CA;
  --color-violet-650: #6B29C0;
  --color-violet-25: #F6F4FA;
  --color-violet-50: #F3EBFF;
  --color-violet-75: #EEE2FF;
  /* Sticky-note tones (Pratishtha, Notes and Stickies 662:5488-662:5493;
     Dan R3, 14 Sep 2026) — fills and 10px top bars, exactly as drawn. */
  --color-yellow-50: #FCF6D8;
  --color-yellow-300: #F7E070;
  --color-violet-35: #FBEEFF;
  --color-violet-400: #AA7FE7;
  --color-magenta-500: #DE1D8D;
  /* Dominant-action role (Lisa D02): purple is reserved for the dominant
     action in a view; other actions use the black --ink/--accent system.
     Brand/active-nav violets below migrate in the Side Nav slice (15D). */
  --action-dominant-bg: var(--color-purple-500);
  --action-dominant-hover-bg: var(--color-violet-575);
  --brand-primary: var(--color-violet-600);
  --brand-primary-hover: var(--color-violet-650);
  --brand-subtle: var(--color-violet-50);
  --brand-subtle-hover: var(--color-violet-75);

  /* Surfaces — pure achromatic */
  --bg:        var(--color-white);
  --bg-deep:   var(--color-neutral-25);
  --surface:   var(--color-white);
  --surface-2: var(--color-neutral-25);
  --surface-3: var(--color-neutral-75);
  --hover:     var(--color-neutral-25);
  --hover-2:   var(--color-neutral-75);
  --nav-bg:     var(--surface);
  --canvas-bg:  var(--color-neutral-25); /* Lisa 03A: canvas #FAFAFA, one app-wide token */
  --chrome-bg:  var(--nav-bg);
  /* Dan 2026-08-19 reconciliation correction A: the shared workspace Page
     Header (AppPageScaffold pages — Work, Inbox, Calendar, Claims,
     Prospects, …) uses the canvas colour; it is not a separate white
     surface. The earlier white reading was an unsupported inference. */
  --page-header-bg: var(--canvas-bg);
  /* Claim identity/detail header — explicitly excluded from correction A;
     preserved current white fill pending the Claim Page Header slice. */
  --claim-header-bg: var(--surface);
  /* Page Header (Dan 2026-08-19 resolution: Dev Handover 69:191 governs the
     root — 80px hug, spacing/lg 16 vertical, spacing/xl 24 horizontal; the
     Design System set 257:115 matches every nested value and is used for
     nested primitives only). */
  --page-header-pad-y: var(--space-7);        /* spacing/lg 16 */
  --page-header-pad-x: var(--space-9);        /* spacing/xl 24 */
  --page-header-heading-gap: var(--space-1);  /* spacing/xs 4 (257:39 = 69:192) */
  --page-header-badge-pad-x: var(--space-1);  /* Badge/Count 257:42: 0 x spacing/xs */
  --page-header-badge-min-w: 16px;
  --page-header-badge-h: 13px;
  --page-header-badge-bg: var(--color-neutral-40); /* neutral/100 #F7F7F7 */
  --section-bg: var(--surface);
  --widget-bg:  var(--section-bg);
  --space-rhythm: 18px;
  --widget-padding-y: var(--space-rhythm);
  --widget-padding-x: var(--space-rhythm);
  --widget-padding: var(--widget-padding-y) var(--widget-padding-x);
  --widget-gap: var(--widget-stack-gap);
  --widget-gutter: var(--widget-gap);
  --canvas-gutter-top: var(--page-gutter-top);
  --canvas-gutter-side: var(--page-gutter);
  /* Correction F (Dan): ONE workspace canvas-inset recipe for the mounted
     Work/Calendar widget bodies. Horizontal = the shared Page Header 24px
     inset so widget edges align with the title; top = the governed 16 (the
     header's own vertical rhythm) so the full --widget-shadow contact/ring
     and ambient render clear of the header boundary. Values come from the
     governed scale, not from either route's prior accidental position
     (Work had 0 top, Calendar 24/32/28). The narrow re-resolution lives in
     the ≤760 media block below. */
  --workspace-canvas-inset-x: var(--page-gutter);
  --workspace-canvas-inset-top: var(--page-gutter-top);
  --workspace-canvas-inset-bottom: var(--page-gutter);
  --claim-header-tab-gap: var(--space-rhythm);
  --claim-nav-group-gap: var(--space-rhythm); /* tier-1 tab-GROUP gap (control gap, unchanged at 18; not a widget gap) */
  --claim-tab-header-padding: var(--page-gutter-top) var(--page-gutter) 0;
  --table-shell-padding-x: 0px;
  --table-row-indicator-offset-x: 12px;
  --table-row-indicator-width: 2px;
  --widget-divider: var(--rule);
  /* Aliases for legacy names still referenced in a handful of rules —
     previously undefined (silent fallback). */
  --line: var(--rule);
  --shadow-2: var(--shadow-pop);
  --shadow-lg: var(--shadow-pop);
  --critical-border: color-mix(in srgb, var(--critical) 45%, var(--rule));
  --panel: var(--surface);
  --text-muted: var(--text-3);
  --bg-soft: var(--surface-2);
  --ok: var(--success);
  --danger: var(--critical);
  --lex-card-radius: var(--radius-widget);
  --warning-soft: var(--warn-soft);
  --border-strong: var(--rule-firm);
  --accent-text: var(--accent);
  --danger-bg: var(--critical-soft);
  --danger-border: var(--critical-border);
  --info-bg: var(--info-soft);
  --mono-font: var(--font-mono);
  --rule-strong: var(--rule-firm);
  --success-strong: var(--success);
  --surface-soft: var(--surface-2);
  --text-1: var(--text);
  --widget-header-bg: var(--surface-2);
  --widget-header-fg: var(--text);
  --widget-header-icon: currentColor;
  /* Foundations surface role (Lisa 03A): the mounted-widget treatment —
     subtle contact/ring edge, close shadow, soft ambient shadow. Bounded
     widgets (dockets, Calendar) consume this; internal structure stays flat. */
  --surface-mounted-shadow:
    0 0 0 0.5px rgba(0, 0, 0, 0.04),
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(0, 0, 0, 0.06);
  --widget-shadow: var(--surface-mounted-shadow);
  /* Worklist sticky notes (Dan R1/R3, 14 Sep 2026): each note is a mounted
     card on the widget shadow + radius/lg with a tone bar across its top.
     Table note = yellow, Claim note = purple. */
  --sticky-note-yellow-bg: var(--color-yellow-50);
  --sticky-note-yellow-bar: var(--color-yellow-300);
  --sticky-note-purple-bg: var(--color-violet-35);
  --sticky-note-purple-bar: var(--color-violet-400);
  --sticky-note-bar-height: 10px;
  /* Inline text separators (OA-A12, Dan 15 Sep 2026): the agenda subtitles'
     middle dot is the default glyph; the strong bullet reads at 11px muted
     text where the middle dot is too faint (Worklist Table note foot). */
  --separator-glyph: "\00B7";
  --separator-glyph-strong: "\2022";
  /* Hairline / shadow-as-border tokens */
  --rule:        var(--color-neutral-150);
  --rule-soft:   var(--color-neutral-100);
  --border-subtle: var(--color-neutral-40); /* DS border/subtle #F7F7F7 (Lisa 06 semantic role) */
  --approved-bg-subtle: var(--color-neutral-40); /* DS bg/subtle #F7F7F7 — UP36: the column-head band fill (Dan adopted Lisa's colouring, 2 Sep) */
  /* UP40 (Dan F9): two-tier column-head heights — base 30 (71:1309, tables
     without a selection header) and 46 for select-header tables (claims/
     documents, Lisa's 46 push). One recipe reads the base token; the
     select-header surfaces re-bind it. */
  --column-head-height: 30px;
  --column-head-height-select: 46px;
  --rule-firm:   var(--color-neutral-200);
  --border:      var(--color-neutral-150);
  --border-soft: var(--color-neutral-100);
  --border-firm: var(--color-neutral-200);
  --quiet-control-bg: color-mix(in srgb, var(--surface) 68%, transparent);
  --quiet-control-border: var(--rule);
  --quiet-control-hover-bg: var(--surface-3);
  --quiet-control-hover-border: var(--text-2);

  /* Ink — Geist gray scale */
  --text:    var(--color-neutral-900);   /* gray-900 */
  --text-2:  var(--color-neutral-650);   /* gray-600 */
  --text-3:  var(--color-neutral-550);   /* gray-500 */
  --text-4:  var(--color-neutral-500);   /* gray-450, raised for icon/text contrast */
  --muted:        var(--color-neutral-550);
  --muted-strong: var(--color-neutral-650);

  /* Approved shell/My Work typography colors. These retain the exact Figma
     roles without globally recoloring legacy screens that still use text-2/3. */
  --approved-text-primary: var(--color-neutral-900);
  --approved-text-secondary: var(--color-neutral-700);
  --approved-text-muted: var(--color-neutral-500);
  --approved-text-subtle: var(--color-neutral-400);
  --approved-text-brand: var(--color-violet-575);
  --approved-border-strong: var(--color-neutral-300);

  /* Approved Dev Handover feedback palette. The agenda bands use the
     quieter Figma tints without changing legacy status colors elsewhere. */
  --approved-feedback-error: #C73838;
  --approved-feedback-error-bg: #FBF3F3;
  --approved-feedback-warning: #8B6E2D;
  --approved-feedback-warning-bg: #FAF7F0;
  --approved-feedback-info: #2F5FA8;
  --approved-feedback-info-bg: #F4F7FB;
  /* Success role: the solid pre-existed this slice (Top Nav avatar). The -bg
     tint is bound from the delivered Dev Handover values (APPT chip
     71:1354/71:1356 feedback/success-bg, Row Status / Completed 78:2372
     green/100). */
  --approved-feedback-success: #3F6B4A;
  --approved-feedback-success-bg: #F3F7F4;
  /* Dev Handover brand/subtle as delivered on the Work claim-reference chip
     (71:1335). Narrow component role — the global --brand-subtle (#F3EBFF)
     is deliberately NOT repointed. */
  --agenda-claim-reference-bg: #F6F4FA;
  /* Authored agenda dock-header divider (Rectangle 71:1278, green/100 #F3F7F4).
     Local semantic divider role only — not a success-feedback surface and not
     a general divider colour. */
  --agenda-dock-divider: #F3F7F4;

  /* Approved Dev Handover button system (Components, Figma node 6-2).
     Keep these component tokens separate from shell brand roles: the shell's
     active-navigation purple is intentionally not the same as the CTA fill. */
  --button-primary-bg: var(--action-dominant-bg);
  --button-primary-hover-bg: var(--action-dominant-hover-bg);
  --button-secondary-bg: var(--surface);
  --button-secondary-hover-bg: #F7F7F7;
  --button-secondary-border: #EBEBEB;
  --button-secondary-hover-border: #D4D4D4;
  --button-tertiary-hover-bg: #F7F7F7;
  --button-destructive-bg: var(--approved-feedback-error);
  --button-destructive-hover-bg: color-mix(in srgb, var(--approved-feedback-error) 90%, var(--color-black));
  --button-disabled-bg: #F7F7F7;
  --button-disabled-border: #EBEBEB;
  --button-text: var(--approved-text-secondary);
  --button-text-disabled: var(--approved-text-muted);
  --button-text-on-color: var(--color-white);

  /* Semantic */
  --critical:      var(--color-red-600);  --critical-soft: var(--color-red-50);  --critical-fg: var(--color-white);
  --warn:          var(--color-amber-700);  --warn-soft:     var(--color-amber-50);
  --success:       var(--color-green-600);  --success-soft:  var(--color-green-50);
  --info:          var(--color-blue-600);  --info-soft:     var(--color-blue-50);

  /* Calendar taxonomy accents — restrained Geist-compatible range */
  --calendar-red:        var(--critical);
  --calendar-amber:      var(--warn);
  --calendar-blue:       var(--info);
  --calendar-purple:     var(--color-violet-600);
  --calendar-pink:       var(--color-magenta-500);
  --calendar-green:      var(--success);
  --calendar-orange:     var(--color-tube-orange);
  --calendar-gray:       var(--color-neutral-600);
  --calendar-gray-muted: var(--color-neutral-500);

  /* Claim-timeline "tubemap" palette — distinct categorical line colours for
     the hub timeline canvas (drawn on <canvas>, so hub reads these live at
     render time). The six line hues are their own primitives so they stay
     visually distinct across issues; the chrome (main/today/grid/text) points
     at neutrals so it re-skins with the rest of the app. */
  --color-tube-green:   #00782A;
  --color-tube-red:     #E32017;
  --color-tube-purple:  #9B5DE5;
  --color-tube-orange:  #C74C00;
  --color-tube-teal:    #006C67;
  --color-tube-magenta: #8F2D56;
  --color-tube-blue:    #003688;
  --timeline-line-1: var(--color-tube-green);
  --timeline-line-2: var(--color-tube-red);
  --timeline-line-3: var(--color-tube-purple);
  --timeline-line-4: var(--color-tube-orange);
  --timeline-line-5: var(--color-tube-teal);
  --timeline-line-6: var(--color-tube-magenta);
  --timeline-main:     var(--color-tube-blue);
  --timeline-today:    var(--text);
  --timeline-terminal: var(--text-4);
  --timeline-grid:     var(--rule);
  --timeline-text:     var(--text);
  --timeline-muted:    var(--text-3);
  --timeline-bg:       var(--surface);

  /* Primary CTA — near-black ink, the Geist signature */
  --ink:        var(--color-neutral-900);
  --ink-hover:  var(--color-black);
  --ink-soft:   var(--color-neutral-25);
  --ink-fg:     var(--color-white);

  /* Accent — alias to ink so legacy JSX works; not a brand color */
  --accent:        var(--color-neutral-900);
  --accent-hover:  var(--color-black);
  --accent-fg:     var(--color-white);
  --accent-soft:   var(--color-neutral-75);
  --accent-bg:     var(--color-neutral-25);
  --filter-active-bg:   var(--color-violet-50);
  --filter-active-bg-hover: var(--color-violet-75);
  --filter-active-text: var(--color-violet-650);
  --filter-control-height: var(--button-height);
  --filter-control-gap: 5px;
  --filter-control-padding-x: var(--space-4);
  --filter-control-radius: var(--radius-pill);
  --filter-control-font-size: var(--text-sm);
  --filter-control-font-weight: var(--font-weight-medium);
  --filter-control-active-font-weight: var(--font-weight-semibold);

  /* Shape — governed radius roles (Lisa D07, 18 Aug 2026): 0 / 4 / 8 / 12 / full.
     Components consume the legacy aliases below, which all resolve into this
     governed set; 1px, 2px, 6px, 10px, and 14px outcomes are retired. */
  --radius-role-none: 0;
  --radius-role-sm:   4px;   /* small controls, chips, Calendar event pills */
  --radius-role-md:   8px;   /* buttons and smaller controls */
  --radius-role-lg:   12px;  /* widgets, Calendar surfaces, containers */
  --radius-role-full: 9999px; /* true pills and badges */
  --radius-square: var(--radius-role-none);
  --radius-xs:   var(--radius-role-sm);
  --radius-sm:   var(--radius-role-sm);
  --radius-md:   var(--radius-role-md);
  --radius-lg:   var(--radius-role-lg);
  --radius-pill: var(--radius-role-full);
  --radius: var(--radius-sm);
  --radius-xl: var(--radius-lg);
  --radius-label: var(--radius-xs);
  --radius-control: var(--radius-role-md);
  --radius-widget: var(--radius-role-lg);
  --radius-container: var(--radius-role-lg);
  --assistant-composer-input-radius: var(--radius-container);
  --assistant-composer-shadow: var(--widget-shadow);
  /* Focus composition keeps the non-focus widget shadow (inner ring + shadow). */
  --assistant-composer-focus-shadow: inset 0 0 0 2px var(--focus-ring), var(--widget-shadow);
  --assistant-composer-hover-pulse-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-selection) 54%, transparent), var(--widget-shadow);
  --radius-tab-track: var(--radius-role-md);
  --radius-connected-control: var(--radius-control);
  --radius-connected-top: var(--radius-connected-control) var(--radius-connected-control) 0 0;
  --radius-connected-bottom: 0 0 var(--radius-connected-control) var(--radius-connected-control);
  --radius-segment-start: var(--radius-pill) 0 0 var(--radius-pill);
  --radius-segment-end: 0 var(--radius-pill) var(--radius-pill) 0;
  --rule-accent-width: 3px; /* left-accent bars (calendar legend, dcard etc.) */

  /* Dense product spacing */
  --space-1: 4px;
  --space-2: 6px;
  --space-3: 8px;
  --space-4: 10px;
  --space-5: 12px;
  --space-6: 14px;
  --space-7: 16px;
  --space-8: 20px;
  --space-9: 24px;
  /* Page-frame + widget-rhythm tokens (spacing round, Dan/Lisa, 12 Sep 2026 —
     plan IW35). ONE source for every page gutter and inter-widget gap; each
     value sits on the --space-* scale. --space-rhythm (18) survives ONLY for
     widget INTERIOR padding, never a gutter or an inter-widget gap. */
  --page-gutter: var(--space-9);       /* 24 — left AND right on every screen */
  --page-gutter-top: var(--space-7);   /* 16 — strip/header → first widget (orchestrator assumption; DH 947:6007/6015) */
  --widget-stack-gap: var(--space-7);  /* 16 — stacked widgets */
  --widget-row-gap: var(--space-9);    /* 24 — side-by-side widgets */
  --pane-gap: var(--space-7);          /* 16 — issues pane ↔ workspace card (orchestrator assumption pending Dan; DH 947:6017) */
  --space-widget: var(--page-gutter);
  --button-height: 32px;
  --touch-target-min: 44px;
  --button-sm-height: 28px;
  --button-lg-height: 40px;
  --button-padding-x: var(--space-5);
  --button-sm-padding-x: var(--space-5);
  --button-lg-padding-x: var(--space-7);
  --button-gap: var(--space-3);
  --button-sm-gap: var(--space-1);
  --button-lg-gap: var(--space-3);
  --button-radius: var(--radius-role-md);
  --button-icon-size: var(--button-height);
  --button-icon-sm-size: var(--button-sm-height);
  --button-icon-lg-size: var(--button-lg-height);
  /* Shared segmented control (CountTabs) — central DH/DS treatment
     (Calendar / View Switcher, DS Board/Calendar 579:1654): 29px track with
     spacing/2xs pad+gap on bg/subtle, 25px active segment on bg/surface with
     Elevation/100. Widths stay intrinsic/label-driven; the Calendar frame's
     179/64px are composition results, not tokens. */
  --tabs-track-padding: 2px;
  --tabs-item-min-height: 25px;
  --tabs-item-padding: 5px 10px;
  --tabs-item-gap: var(--space-2);
  --tabs-icon-only-size: var(--tabs-item-min-height);
  --tabs-item-font-size: var(--text-body);
  --tabs-item-font-weight: 500;
  --tabs-active-font-weight: var(--font-weight-medium);
  --tabs-control-height: 29px;
  --tabs-leading-label-max-width: 116px;
  --tabs-floating-label-gap: var(--space-4);
  --tabs-floating-label-padding: 6px 9px;
  --tabs-floating-label-pointer-size: 6px;
  --tabs-floating-label-radius: var(--radius-control);
  --tabs-floating-label-bg: var(--ink);
  --tabs-floating-label-color: var(--ink-fg);
  --tabs-floating-label-shadow: 0 8px 22px rgba(0,0,0,0.18);
  --work-widget-row-gap: var(--widget-stack-gap);
  --work-widget-column-gap: var(--widget-row-gap);
  --work-widget-intro-gap: 0px;
  --headline-icon-size: 18px;

  /* Geist signature shadows */
  --ring:        rgba(0,0,0,0.08) 0px 0px 0px 1px;
  --ring-light:  rgb(235,235,235) 0px 0px 0px 1px;
  /* Authored select chevron (New event modal 505:12272: 16px Icon,
     neutral/400 #A3A3A3 — the newest authored form supersedes the older
     Form/Select's text/secondary glyph). Data-URI lives here so the glyph
     colour stays a :root-owned value like every other colour. */
  --form-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A3A3A3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --shadow-hair: 0 0 0 1px rgba(0,0,0,0.04);
  --shadow-xs:   0 1px 1.5px rgba(35,12,38,0.08), 0 1px 1px rgba(35,12,38,0.05);
  --shadow-sm:   0 1px 2px rgba(0,0,0,0.04);
  --shadow-card: rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px;
  --shadow-md:   0 1px 2px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.06);
  --shadow-pop:  0 1px 2px rgba(0,0,0,0.04), 0 12px 32px rgba(0,0,0,0.10);
  /* DS Elevation/400 (Board/Modal 373:3 tokens board; also authored on the
     delivered Create Event modals DH 83:2739 and Calendar Modals). Owned by
     the shared Modal overlay surface. */
  --elevation-400: 0 8px 16px rgba(35,12,38,0.12), 0 4px 8px rgba(35,12,38,0.08);
  /* DS Elevation/100 (Board/Calendar tokens 579:1654: "Active view-switcher
     segment"; DH Calendar / View Switcher active segment 0/1/2 #230C26 5% +
     0/1/3 8%). Owned by the shared segmented control's active segment. */
  --elevation-100: 0 1px 2px rgba(35,12,38,0.05), 0 1px 3px rgba(35,12,38,0.08);
  /* DS Elevation/200 (DH Side Menu / Flyout 398:26749: 0/2/4 #230C26 7% +
     0/1/2 5%). Owned by the Side Menu section fly-out panel. */
  --elevation-200: 0 2px 4px rgba(35,12,38,0.07), 0 1px 2px rgba(35,12,38,0.05);
  /* DH Popover / Claim facts (398:27316): 0/1/2 6% + 0/8/24/-4 10%. */
  --elevation-300: 0 1px 2px rgba(35,12,38,0.06), 0 8px 24px -4px rgba(35,12,38,0.10);
  /* Shared modal scrim — PROVISIONAL global value (Dan, 19 Aug 2026, pending
     Lisa). The two approved Dev Handover scrims conflict: Work overview frame
     78:1347 / Overlay-Scrim 81:2353 authors #171717 at 45% (no blur); Calendar
     frame 143:5442 / scrim 143:5753 authors #0D0814 at 45% (no blur). Dan
     selected the darker Calendar value globally to keep the programme moving.
     One owner: consumed only by .modal-backdrop; no contextual variants. */
  --modal-scrim: rgba(13,8,20,0.45);

  /* Focus */
  /* Selection/attention accent (provisional — logged D12 gap): the legacy
     blue retained for selection rails, active highlights, record accents and
     attention pulses until Lisa's colour review (D08/D10) governs a value.
     This is NOT a focus indicator role. */
  --accent-selection: hsla(212, 100%, 48%, 1);
  /* Source-anchor attention blue (provisional — logged D12 gap): non-keyboard
     programmatic attention for PDF source anchoring (sweep, ring, margin
     marker). Value is the shipped blue; not grey, not purple, pending the
     Lisa/Dan colour decision. */
  --attention-source: #2563eb;
  --attention-source-rgb: 37, 99, 235;
  /* Keyboard-focus indicator role (Lisa D09, provisional): 2px inner grey.
     Contrast 2.52:1 on white / 2.42:1 on #FAFAFA — below the 3:1 non-text
     minimum on light surfaces; accepted provisionally pending Lisa's
     surface-aware mapping. The legacy blue focus token is gone; remaining
     blues are the provisional non-focus roles --accent-selection and
     --attention-source only. */
  --focus-ring: var(--color-neutral-400);
  --focus-ring-width: 2px;
  --focus-ring-inset: -2px;

  /* Type families */
  --font-sans:  'Geist', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-serif: 'Geist', ui-sans-serif, system-ui, sans-serif; /* alias */
  --font-mono:  'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;


  /* Type sizes — reference these; a skin/setting can then scale type globally.
     Values chosen to cover the existing product without visual change. */
  --text-2xs:  10px;
  --text-xs:   11px;
  --text-sm:   12px;
  --text-body: 13px;
  --text-md:   14px;
  --text-lg:   15px;
  --text-xl:   18px;
  --text-2xl:  24px;
  --text-3xl:  32px;

  /* Type weights — reference these instead of hardcoding raw values.
     Lisa D05 weight scale: 400 / 500 / 650 / 700 (600 was incorrect). */
  --font-weight-regular:  400;
  --font-weight-medium:   500;
  --font-weight-semibold: 650;
  --font-weight-bold:     700;

  /* Semantic type roles (Lisa D05): primary body/UI 14, secondary/label 13,
     title-like emphasis 16. Consumers migrate per-surface; roles are the
     canonical names. */
  --type-body-primary:   14px;
  --type-body-secondary: 13px;
  --type-title-sm:       16px;

  /* Layout */
  --sidebar-w: 248px;
  /* Approved Dev Handover Side Menu parameter set (Components node 33:323).
     Authored side-nav numbers live only here; the component rules below
     consume these variables. Values are authored off the shared scales,
     so they stay nav-scoped rather than repointing global tokens. */
  --nav-collapsed-w: 64px;          /* authored collapsed icon rail (412:2) */
  /* Brand-header height is the shared shell parameter --header-h below. */
  --nav-header-pad: 16px;
  --nav-header-gap: 8px;
  --nav-brand-mark-size: 28px;
  --brand-mark-bg: var(--color-purple-500); /* authored mark #814AF0; Lisa D01 */
  /* Collapse/expand affordances are STATE-SPECIFIC (Dan, 19 Aug 2026):
     EXPANDED uses the internal header control (DS 132:194: 24x24, governed
     radius/md per D07 — Dev Handover 33:638's 26x26/radius-6 is a recorded
     stale variance — with the 16x16 CaretDoubleLeft icon 132:195, Lucide
     chevronsLeft per 15A). COLLAPSED/narrow keep the external 9x32 #EBEBEB
     tab with the 6x6 CaretRight and the >=24x40 practical hit target. */
  --nav-collapse-ctrl-size: 24px;      /* expanded internal control (132:194) */
  --nav-collapse-ctrl-icon-size: 16px; /* expanded control icon (132:195) */
  --nav-collapse-tab-w: 9px;      /* authored Rectangle 1: 9x32 */
  --nav-collapse-tab-h: 32px;
  --nav-collapse-tab-top: 64px;   /* raster-derived offset below the header/logo region; provisional until an authored position lands */
  --nav-collapse-caret-size: 6px; /* authored CaretRight 6x6 */
  --nav-collapse-hit-w: 24px;     /* invisible practical hit target */
  --nav-collapse-hit-h: 40px;
  --nav-control-radius: var(--radius-role-md); /* brand mark (governed D07) */
  --nav-item-h: 36px;                /* primary Nav Item clickable row 232x36 */
  --nav-item-pad: 8px 12px 8px 8px;
  --nav-item-gap: 12px;              /* icon-to-label distance */
  --nav-item-radius: var(--radius-role-md); /* Nav Item corner (governed D07; authored 9 retired) */
  --nav-icon-size: 16px;             /* Lisa 15B: 16px nominal slot, ~14px optical glyph */
  --nav-section-header-h: 36px;      /* section header 248x36 */
  --nav-section-header-pad: 12px 16px 4px;
  --nav-section-header-gap: 8px;
  --nav-section-icon-size: 16px;
  --nav-section-chevron-size: 13px;
  --nav-rail-inset: 22px;            /* nested guide-rail x offset */
  --nav-rail-w: 2px;
  --nav-rail-gap: 12px;              /* rail-to-column distance */
  --nav-nested-inset-end: 12px;      /* nested column right inset */
  --nav-subitem-h: 32px;             /* Sub Nav Item 200x32 */
  --nav-subitem-pad: 8px;
  --nav-subitem-gap: 8px;
  --nav-subitem-radius: var(--radius-role-md); /* Sub/Recent Nav corner (governed D07; authored 7 retired) */
  --nav-recent-h: 29px;              /* Recent Item 200x29 */
  --nav-recent-pad: 4px 8px;
  --nav-recent-dot-size: 6px;
  --nav-recent-dot-gap: 2px;         /* breathing room; effective 10px slot */
  --nav-row-gap: 4px;                /* top-group rows, nested rows, section bottom rhythm */
  --nav-top-group-pad: 12px 8px 6px; /* Lisa: 12px above Work overview */
  --nav-divider-w: 1px;
  /* Centralized active-navigation role (Lisa 15D): Figma active semantics. */
  --nav-active-fg: var(--color-violet-575);
  --nav-active-shadow: 0 1px 2px rgba(35, 12, 38, 0.05), 0 1px 3px rgba(35, 12, 38, 0.08);
  --nav-active-soft-bg: var(--color-violet-25);
  /* Authored bg/subtle + border/subtle #F7F7F7 (115:8, header 132:188). */
  --nav-hover-bg: var(--color-neutral-40);
  --nav-divider-subtle: var(--color-neutral-40);
  --nav-rail-item-size: 40px;        /* collapsed rail Nav Item (428:1117) */
  --nav-flyout-w: 196px;             /* Side Menu / Flyout (398:26749) */
  --nav-flyout-offset: 10px;         /* authored: 10px right of the rail */
  --nav-flyout-pad: 8px;
  --nav-flyout-gap: 4px;             /* header-to-items */
  --nav-flyout-row-gap: 2px;         /* authored fly-out items gap (inline nested stays 4) */
  --nav-flyout-items-inset: 12px;    /* items pad-left beside the guide line */
  --nav-flyout-radius: var(--radius-role-lg);
  --nav-active-soft-fg: var(--approved-text-brand);
  /* Shared shell-header height: authored 62px (Side Menu header 132:188);
     the 2px seam is resolved by the 16px wordmark line-height (Lisa),
     superseding the provisional 64px. */
  --header-h:  62px;
  /* Approved Top Nav parameters (Design System node 579:499, authenticated
     inspector evidence). spacing/md, spacing/xs, and spacing/lg numerics are
     unproven and deliberately not tokenized. */
  --topnav-tool-h: 32px;           /* shared fixed height (221:14/221:23) */
  --topnav-tool-radius: var(--button-radius); /* shared radius/md, connected outer corners only */
  --topnav-tools-gap: 2px;         /* spacing/2xs between Search and Ask (198:143) */
  --topnav-pad-x: var(--space-5);  /* shared spacing/md 12 horizontal padding (221:14/221:23) */
  /* Shared icon-label role (Codex ledger verdict): spacing/xs 4, exact on the
     authored Ask; the Search child geometry reads 5 and yields -1 to the
     higher-authority same-roles decision (Lisa 14). */
  --topnav-icon-label-gap: var(--space-1);
  --topnav-kbd-gap: 40px;          /* shared spacing/3xl content-to-keycap gap (Search Frame 22) */
  --topnav-search-icon-size: 14px; /* authored Search icon (221:14 / Group 3) */
  /* Ask control: authored Figma width is exactly 110px, but the restored
     visible shortcut chip cannot fit inside it. Product requirement overrides
     this one authored numeric: 110 becomes the minimum/baseline and the
     control hugs its content. Excluded from exact-Figma claims. */
  --topnav-ask-min-w: 110px;       /* authored baseline (221:23), now a minimum */
  --topnav-bell-size: 22px;        /* Topbar/Notification authored visual frame (221:30) */
  --topnav-bell-icon-size: 16px;   /* authored Bell glyph 16x16 at (3,3) (221:30) */
  --topnav-bell-hit-inset: 5px;    /* practical hit-area extension; visual frame stays 22 */
  --topnav-bell-hit-top: 12px;     /* extra top reach covering the floating unread badge row */
  --topnav-badge-size: 14px;       /* authored unread pill 14x14 (221:30) */
  --topnav-badge-top: -3px;        /* authored pill offset from the bell frame */
  --topnav-badge-left: 10px;
  --topnav-badge-pad-x: 2px;       /* spacing/2xs */
  --topnav-badge-bg: #C73838;      /* authored red/500; semantic feedback/error mapping deferred (Q8, D12 gap) */
  --topnav-user-pad: var(--space-3) var(--space-7); /* authored spacing/sm 8 / spacing/lg 16 (221:7) */
  --z-assistant-trigger: 125;
  --subheader-h: 40px;
  --data-widget-scroll-h: clamp(280px, 34vh, 460px);

  /* Shared blurred-backdrop modal motion */
  --modal-motion-open-duration: 540ms;
  --modal-motion-close-duration: 300ms;
  --modal-motion-backdrop-in-duration: 180ms;
  --modal-motion-backdrop-out-duration: 220ms;
  --modal-motion-open-easing: cubic-bezier(0.72, 0, 0.18, 1);
  --modal-motion-close-easing: cubic-bezier(0.4, 0, 1, 1);
  /* DC03 (directory-contacts slice, Sep 2026): in-widget split panels — the
     claims/directory/contacts filter drawers, the preview panes and the
     calendar day-agenda — slide on ONE central motion pair. Before this the
     grid split snapped (UP12 measured no transition). Dan asked for a
     slower slide than the 260ms modal swap. Consumed only by the split
     layouts' grid-template-columns transition and the shared presence hook
     (useSplitPanelPresence reads the duration so the panel stays mounted
     for the close slide). */
  --split-motion-duration: 380ms;
  --split-motion-easing: cubic-bezier(0.72, 0, 0.18, 1);
  --z-calendar-fullscreen: 200;
  --z-calendar-fullscreen-tooltip: 205;
  --z-side-menu: 40; /* above .main so the external collapse tab paints over Top Nav */
  --z-side-menu-flyout: 120; /* open fly-out only: above page-local layers (claim tabs 70, local tooltips 70/71, fact widgets 100), below the assistant trigger and modals */
  --z-local-tooltip: 70;
  --z-local-tooltip-tail: 71;
  /* ── OVERLAY STACKING PRINCIPLE (D55, 21 Aug 2026) ─────────────────────
     Chrome-anchored overlays (menus, drawers, popovers) MUST render through
     a document.body portal with position:fixed on one of the shared bands
     below — never with raw z-index escalation inside the page tree, where
     local bands (claim tabs 70, fact rows 10080) and ancestor contexts can
     defeat them. Bands: content-local < 10080-10090 (document facts)
     < 10500 (chrome popovers/drawers/menus) < 11000+ (modals, command,
     notifications). Pattern: ClaimFactsQuickAccess / DocumentHiddenFactsPortal. */
  --z-claim-header-popover: 10500; /* chrome popover band: above content bands, below modals */
  --z-portal-menu: 10500; /* same chrome-popover band: body-portalled action menus (agenda rows, Create) */
  --z-document-facts-row: 10080;
  --z-document-facts-popover: 10090;
  --z-command-backdrop: var(--z-modal-backdrop);
  --z-command: var(--z-modal);
  --z-modal-backdrop: 11000;
  --z-modal: 11001;
  /* Modal-popover band (DS dropdowns slice, 28 Aug 2026): body-portalled
     picker panels (.dropdown-panel) whose trigger fields live INSIDE modal
     dialogs must paint above --z-modal but below notifications. Same D55
     portal rule as the 10500 chrome band — never raw z-index in the tree. */
  --z-modal-popover: 11005;
  --z-notifications: 11010;

  /* component-scoped palettes promoted from lx-* rules (design-system alignment pass, Jul 2026):
     mock legal-document/preview pages, inbox filed/removed banners, claimant-portal mock-site chrome */
  --doc-mock-ink: #1A1814;
  --doc-mock-rule: #444;
  --doc-mock-muted: #888;
  --doc-mock-faint: #555;
  --doc-mock-letterhead: #222;
  --doc-mock-note-bg: #f7f5ee;
  --doc-mock-paper-bg: #E5DDD0;
  --doc-mock-tan: #C8B89D;
  --doc-mock-gray: #52525B;
  --doc-mock-brown: #7A6D5C;
  --banner-filed-bg: #E6F4EA;
  --banner-filed-border: #C4E0CB;
  --banner-filed-ink: #2A5C36;
  --banner-filed-muted: #467852;
  --banner-removed-bg: #FBE3E1;
  --banner-removed-border: #F2C3BF;
  --banner-removed-ink: #A02D24;
  --banner-removed-accent: #DC2626;
  --portal-mock-traffic-red: #FF5F57;
  --portal-mock-traffic-amber: #FEBC2E;
  --portal-mock-traffic-green: #28C840;
  --portal-mock-positive: #3F6B2C;
}

/* ============================================================
 * 2. RESET / BASE
 * ============================================================ */
* { box-sizing:border-box; }
html, body { margin:0; padding:0; height:100%; }
body {
  font-family:var(--font-sans);
  background:var(--bg);
  color:var(--text);
  font-size: var(--text-md);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-feature-settings:"liga";
}
button { font-family:inherit; font-size:inherit; color:inherit; cursor:pointer; border:0; background:transparent; padding:0; }
button:disabled,
input.filter-checkbox:disabled { cursor:not-allowed; opacity:0.55; }
input, textarea, select { font-family:inherit; font-size:inherit; color:inherit; }
a { color:#0072F5; text-decoration:none; }
a:hover { text-decoration:underline; }

/* Headings — Geist compression curve */
h1, h2, h3, h4, h5, h6 {
  font-family:var(--font-sans);
  font-weight: var(--font-weight-semibold);
  letter-spacing:-0.02em;
  margin:0;
  line-height:1.25;
}

.serif { font-family:var(--font-sans); font-weight: var(--font-weight-semibold); letter-spacing:-0.02em; }
.mono  { font-family:var(--font-mono); font-feature-settings:"liga","tnum"; }
.muted { color:var(--text-3); }
.small { font-size: var(--text-body); }
.tabular { font-feature-settings:"tnum"; }
.eyebrow {
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing:0;
  font-weight: var(--font-weight-medium);
  color:var(--text-3);
  line-height:1;
}

/* Display ramp (mirrors design-system spec) */
.h-display { font-size: var(--text-3xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.04em; line-height:1.2; margin:0; }
.h1        { font-size: var(--text-2xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.04em; line-height:1.25; margin:0; }
.h2        { font-size: var(--text-xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.03em; margin:0; }
.h3        { font-size: var(--text-md); font-weight: var(--font-weight-semibold); letter-spacing:-0.02em; margin:0; }

/* Tabular numerals on data */
.cell-mono, .mono, .kbd, .chip, .tab-count,
.deadline-when, .deadline-when-date, .sidebar-item-count, .activity-time,
.hub-stat-value, .convert-step-num, .metric-value {
  font-variant-numeric:tabular-nums lining-nums;
}

/* Force sans + clean weight on common label/name elements so they
   never fall back to italic, serif, or different weights */
.name, .dir-row-value, .metric-label, .deadline-label,
.cell-strong, .empty-state-title, .conv-empty-title, .conv-fresh-title,
.modal-title, .source-viewer-title, .card-head-title,
.template-card > div:first-child {
  font-family:var(--font-sans);
  font-style:normal;
}

/* Keyboard focus indicator — Lisa D09 provisional: 2px inner grey ring.
   Inner geometry cannot be clipped by ancestor overflow. Forced-colors
   keeps a system-visible indicator via the block further below. */
button:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible,
.btn:focus-visible, .sidebar-item:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
@media (forced-colors: active) {
  /* Universal guard: no later-specificity rule may remove the system-visible
     keyboard indicator in forced-colors mode. */
  *:focus-visible,
  .chip-select:focus-within, .filter-bar .filter-search:focus-within,
  .assistant-claim-picker-input:focus, .doc-title-input:focus,
  .composer-box:focus-within {
    outline:2px solid Highlight !important;
    outline-offset:-2px !important;
    box-shadow:none !important;
  }
}

/* ============================================================
 * 3. APP SHELL
 * ============================================================ */
.app {
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  /* minmax(0,1fr) pins the single row to the viewport. The default auto row
     sizes to max-content, so when nav/main content exceeded a short viewport
     the row overflowed and .app's hidden overflow clipped the excess
     unreachably (the nav's own overflow-y:auto never engaged). At normal
     sizes the row already stretched to the container, so nothing changes
     there (Codex R1 scroll-detach probe). */
  grid-template-rows:minmax(0, 1fr);
  height:100vh;
  min-height:0;
  overflow:hidden;
  background:var(--canvas-bg);
}
.app.side-menu-is-collapsed { grid-template-columns:var(--nav-collapsed-w) 1fr; }

.sidebar {
  background:var(--nav-bg);
  box-shadow:inset calc(-1 * var(--nav-divider-w)) 0 0 var(--rule);
  display:flex;
  flex-direction:column;
  padding:0;
  gap:0;
  /* The external collapse tab sits outside the rail, so the sidebar must
     not clip it and must paint above the adjacent Top Nav. */
  overflow:visible;
  position:relative;
  z-index:var(--z-side-menu);
}
.sidebar-brand {
  position:relative;
  display:flex;
  align-items:center;
  gap:var(--nav-header-gap);
  min-height:var(--header-h);
  padding:var(--nav-header-pad);
}
.sidebar-brand::after {
  content:'';
  position:absolute;
  right:-8px;
  bottom:0;
  left:-8px;
  height:var(--nav-divider-w);
  background:var(--nav-divider-subtle);
}
/* Base mark keeps the pre-pilot 7px look for the auth screens that reuse it;
   the authored Side Menu geometry is scoped to the SideMenuBrand context. */
.sidebar-brand-logo {
  width:28px; height:28px;
  background:var(--brand-mark-bg);
  border-radius:var(--radius-role-md);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-fg);
  font-weight: var(--font-weight-semibold); font-size: var(--text-md); letter-spacing:0;
}
.side-menu-brand .sidebar-brand-logo {
  width:var(--nav-brand-mark-size);
  height:var(--nav-brand-mark-size);
  border-radius:var(--nav-control-radius);
}
.side-menu-brand-copy { min-width:0; display:flex; flex-direction:column; gap:0; }
.sidebar-brand-name { font-family:var(--font-sans); font-weight:var(--font-weight-bold); font-size:var(--text-md); letter-spacing:0; color:var(--approved-text-primary); line-height:16px; }
.sidebar-brand-firm {
  overflow:hidden;
  max-width:132px;
  font-family:var(--font-sans);
  /* Authored company label 132:193: Geist 10/500/14, 0 tracking. */
  font-size:10px;
  letter-spacing:0;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--approved-text-secondary); font-weight:var(--font-weight-medium); line-height:14px;
}
/* EXPANDED collapse control (DS 132:194 + Lisa 15A/D07): a normal flex
   child at the right of the brand header (margin-left:auto inside the
   authored 16px header padding; no absolute positioning). Dan: no resting
   border; reserved width so hover causes no shift; --rule border + shared
   hover fill on hover; D09 grey ring from the global button:focus-visible. */
.side-menu-collapse-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:auto;
  width:var(--nav-collapse-ctrl-size);
  height:var(--nav-collapse-ctrl-size);
  flex:0 0 auto;
  border:var(--nav-divider-w) solid transparent;
  border-radius:var(--nav-control-radius);
  background:transparent;
  color:var(--text-3);
}
.side-menu-collapse-toggle svg {
  width:var(--nav-collapse-ctrl-icon-size);
  height:var(--nav-collapse-ctrl-icon-size);
}
.side-menu-collapse-toggle:hover {
  border-color:var(--rule);
  background:var(--nav-hover-bg);
  color:var(--text);
}

/* min-height:0 makes the declared overflow scroll real: without it the
   column-flex default (min-height:auto) never lets the nav shrink below its
   content, so short viewports clipped items unreachably instead of
   scrolling (found by the Codex R1 scroll-detach probe). */
.sidebar-nav { flex:1; min-height:0; overflow-y:auto; display:flex; flex-direction:column; gap:0; scrollbar-width:none; }
.sidebar-nav::-webkit-scrollbar { display:none; }
.sidebar-section { display:flex; flex-direction:column; gap:0; padding-bottom:var(--nav-row-gap); }
/* Top primary group: authored rhythm 2px 8px 6px, 4px row gap, one divider after. */
.side-menu-section:not(.side-menu-section--nested) {
  gap:var(--nav-row-gap);
  padding:var(--nav-top-group-pad);
  border-bottom:var(--nav-divider-w) solid var(--rule-soft);
}
.side-menu-section-items { display:flex; flex-direction:column; gap:var(--nav-row-gap); }
.side-menu-section-items[hidden] { display:none; }
.sidebar-section-label {
  display:flex;
  align-items:center;
  gap:var(--nav-section-header-gap);
  width:100%;
  font-family:var(--font-sans);
  font-size:11px; letter-spacing:.5px;
  font-weight:var(--font-weight-semibold); color:var(--approved-text-muted);
  min-height:var(--nav-section-header-h);
  padding:var(--nav-section-header-pad); line-height:11px;
  text-align:left;
}
button.sidebar-section-label:hover { color:var(--approved-text-secondary); }
button.sidebar-section-label:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); border-radius:var(--radius-control); }
.sidebar-section-icon {
  width:var(--nav-section-icon-size);
  height:var(--nav-section-icon-size);
  color:var(--text-3); flex:0 0 auto;
}
.sidebar-section-chevron {
  width:var(--nav-section-chevron-size);
  height:var(--nav-section-chevron-size);
  margin-left:auto; color:var(--text-4);
}
/* Nested column: 200px rows starting at x36 in the 248px sidebar —
   rail inset + rail width + rail-to-column gap. */
.side-menu-section-items--nested {
  position:relative;
  padding:0 var(--nav-nested-inset-end) 0 calc(var(--nav-rail-inset) + var(--nav-rail-w) + var(--nav-rail-gap));
  gap:var(--nav-row-gap);
}
.side-menu-section-items--nested::before {
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  left:var(--nav-rail-inset);
  width:var(--nav-rail-w);
  border-radius:calc(var(--nav-rail-w) / 2);
  background:var(--rule);
}
.sidebar-item {
  display:flex; align-items:center; gap:var(--nav-item-gap);
  padding:var(--nav-item-pad);
  border-radius:var(--nav-item-radius);
  color:var(--approved-text-primary);
  text-align:left;
  text-decoration:none;
  /* Authored Nav Item label 115:6: Geist 14/400/100%. */
  font-size: var(--text-md); font-weight: var(--font-weight-regular);
  line-height:14px;
  width:100%; min-height:var(--nav-item-h);
  position:relative;
}
.sidebar-item > span:not(.sidebar-item-count):not(.dot) {
  flex:1; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.sidebar-item:hover { background:var(--nav-hover-bg); color:var(--text); }
.sidebar-item.active {
  background:var(--surface);
  color:var(--nav-active-fg);
  box-shadow:0 0 0 1px var(--rule), var(--nav-active-shadow);
  /* Authored active label 115:14: weight 500. */
  font-weight:var(--font-weight-medium);
}
.sidebar-icon { width:var(--nav-icon-size); height:var(--nav-icon-size); flex-shrink:0; opacity:0.8; }
/* Sub Nav Item: authored 200x32, padding 8, gap 8, radius 7. */
.side-menu-item--nested {
  min-height:var(--nav-subitem-h);
  padding:var(--nav-subitem-pad);
  gap:var(--nav-subitem-gap);
  border-radius:var(--nav-subitem-radius);
  color:var(--approved-text-secondary);
}
/* Recent Item: authored 200x29, padding 4px 8px, gap 8, radius 7. */
.side-menu-item--recent {
  min-height:var(--nav-recent-h);
  padding:var(--nav-recent-pad);
  gap:var(--nav-subitem-gap);
  border-radius:var(--nav-subitem-radius);
  color:var(--approved-text-secondary); font-size:var(--text-body); line-height:13px;
}
.side-menu-item--recent .sidebar-item-count { font-family:var(--font-sans); font-size:var(--text-xs); line-height:11px; color:var(--approved-text-muted); }
/* Recent status dot: 6x6 visible mark with 2px breathing room (10px slot). */
.side-menu-item--recent .dot {
  width:var(--nav-recent-dot-size);
  height:var(--nav-recent-dot-size);
  margin:0 var(--nav-recent-dot-gap);
}
.sidebar-item.active .sidebar-icon { opacity:1; }
/* Nested/recent active state: authored soft violet surface + brand text,
   without the primary active ring/elevation. */
.side-menu-item--nested.active,
.side-menu-item--recent.active {
  background:var(--nav-active-soft-bg);
  color:var(--nav-active-soft-fg);
  box-shadow:none;
}
.sidebar-item-count {
  margin-left:auto;
  font-family:var(--font-mono);
  font-size: var(--text-sm); color:var(--text-3); font-weight: var(--font-weight-regular);
  flex-shrink:0;
}

.sidebar-user {
  display:flex; align-items:center; gap:8px;
  padding:8px 8px;
  border-top:1px solid var(--rule);
  margin-top:4px;
}
.side-menu-user-actions { display:flex; align-items:center; gap:4px; }
.side-menu--collapsed {
  width:var(--nav-collapsed-w);
  padding-left:0;
  padding-right:0;
}
.side-menu--collapsed .sidebar-brand-name,
.side-menu--collapsed .sidebar-brand-firm,
.side-menu--collapsed .side-menu-brand-copy,
.side-menu--collapsed .sidebar-section-label > span,
.side-menu--collapsed .sidebar-section-chevron,
.side-menu--collapsed .sidebar-item > span:not(.sidebar-item-count):not(.dot),
.side-menu--collapsed .sidebar-item-count,
.side-menu--collapsed .side-menu-user-copy {
  display:none;
}
/* Authored collapsed organism (412:2): section groups reduce to their
   leading icons; Sub Nav and Recent rows leave layout and tab order
   entirely and return unchanged on expand. */
.side-menu--collapsed .side-menu-section-items--nested { display:none; }
/* Authored rail Section Header (430:1114): 40x40 icon-only tile. */
.side-menu--collapsed .sidebar-section-label {
  justify-content:center;
  gap:0;
  width:var(--nav-rail-item-size);
  height:var(--nav-rail-item-size);
  min-height:var(--nav-rail-item-size);
  margin:0 auto;
  padding:0;
  border-radius:var(--nav-item-radius);
}
/* Authored collapsed rail Nav Item (428:1117): 40x40, radius/md, centred. */
.side-menu--collapsed .sidebar-item {
  justify-content:center;
  width:var(--nav-rail-item-size);
  height:var(--nav-rail-item-size);
  min-height:var(--nav-rail-item-size);
  margin:0 auto;
  padding:0;
}
/* Collapsed: the 28px mark centres in the 64px rail (18..46). The expand
   affordance is the external 9x32 #EBEBEB tab outside the divider (far-right
   specimen + Dan): the 24px hit target spans 64..88 (left:100%), visible tab
   at 64..73, 6x6 CaretRight painted legibly — text/secondary colour,
   explicit stacking, and a CSS-owned stroke (Lucide's 24-viewBox stroke
   scales by 6/24, so stroke-width 4 paints a 1px glyph). */
.side-menu--collapsed .sidebar-brand {
  justify-content:center;
  padding:0;
}
.side-menu--collapsed .side-menu-collapse-toggle {
  position:absolute;
  left:100%;
  top:calc(var(--nav-collapse-tab-top) - (var(--nav-collapse-hit-h) - var(--nav-collapse-tab-h)) / 2);
  margin:0;
  justify-content:flex-start;
  padding:0 0 0 calc((var(--nav-collapse-tab-w) - var(--nav-collapse-caret-size)) / 2);
  width:var(--nav-collapse-hit-w);
  height:var(--nav-collapse-hit-h);
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--approved-text-secondary);
}
.side-menu--collapsed .side-menu-collapse-toggle::before {
  content:'';
  position:absolute;
  left:0;
  top:calc((var(--nav-collapse-hit-h) - var(--nav-collapse-tab-h)) / 2);
  width:var(--nav-collapse-tab-w);
  height:var(--nav-collapse-tab-h);
  background:var(--rule);
  border-radius:0 var(--radius-role-sm) var(--radius-role-sm) 0;
}
.side-menu--collapsed .side-menu-collapse-toggle svg {
  position:relative;
  z-index:1;
  width:var(--nav-collapse-caret-size);
  height:var(--nav-collapse-caret-size);
  stroke-width:4;
}
.side-menu--collapsed .side-menu-collapse-toggle:hover {
  border:0;
  background:transparent;
  color:var(--text);
}
.side-menu--collapsed .sidebar-brand-logo { flex:0 0 auto; }
.side-menu--collapsed .side-menu-section:not(.side-menu-section--nested) {
  padding-left:0;
  padding-right:0;
}
/* The fixed fly-out panel cannot escape the sidebar's z:40 stacking context,
   and page-local layers (claim tab navigation z:70) would otherwise paint
   over it. While a fly-out is open the whole sidebar context lifts above the
   page-local band; the resting order is unchanged. */
.sidebar:has(.side-menu-flyout-panel) { z-index:var(--z-side-menu-flyout); }
/* Authored Side Menu / Flyout (398:26749, variants 398:26754/26761): 196-wide
   popup anchored 10px right of the collapsed rail, top-aligned to its section
   tile (top set inline from the tile rect). Fixed positioning honours the
   authored "not clipped" contract without changing .sidebar-nav scroll, and
   the viewport clamp scrolls internally instead of clipping at short
   windows. */
.side-menu-flyout-panel {
  position:fixed;
  left:calc(var(--nav-collapsed-w) + var(--nav-flyout-offset));
  width:var(--nav-flyout-w);
  max-height:calc(100dvh - var(--nav-flyout-top, 0px) - 12px);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:var(--nav-flyout-gap);
  padding:var(--nav-flyout-pad);
  background:var(--surface);
  /* The authored 1px border/default renders as a ring (same technique as the
     active Nav Item) so the 196 outer box keeps the authored 180/168 inner
     column widths instead of losing 2px to a box-model border. */
  border-radius:var(--nav-flyout-radius);
  box-shadow:0 0 0 var(--nav-divider-w) var(--rule), var(--elevation-200);
}
/* Fly-out header: authored Micro Geist 10/500/14, zero tracking, text/muted. */
.side-menu-flyout-title {
  font-family:var(--font-sans);
  font-size:10px;
  line-height:14px;
  font-weight:var(--font-weight-medium);
  letter-spacing:0;
  color:var(--approved-text-muted);
}
/* Fly-out items column: authored pad-left 12 beside a 1px border/default
   guide line, 2px row gap. */
.side-menu-flyout-items {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:var(--nav-flyout-row-gap);
  padding-left:var(--nav-flyout-items-inset);
}
.side-menu-flyout-items::before {
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:var(--nav-divider-w);
  background:var(--rule);
}
/* Rows inside the fly-out keep their authored Sub Nav/Recent geometry: the
   collapsed scope's 40x40 rail override and hidden label/count spans are
   reverted here (rules ordered after that scope so equal specificity wins). */
.side-menu--collapsed .side-menu-flyout-panel .sidebar-item {
  justify-content:flex-start;
  width:100%;
  height:auto;
  margin:0;
}
.side-menu--collapsed .side-menu-flyout-panel .side-menu-item--nested {
  min-height:var(--nav-subitem-h);
  padding:var(--nav-subitem-pad);
}
.side-menu--collapsed .side-menu-flyout-panel .side-menu-item--recent {
  min-height:var(--nav-recent-h);
  padding:var(--nav-recent-pad);
}
.side-menu--collapsed .side-menu-flyout-panel .sidebar-item > span:not(.sidebar-item-count):not(.dot),
.side-menu--collapsed .side-menu-flyout-panel .sidebar-item-count {
  display:revert;
}
/* Open trigger tile: authored Nav Item Active recipe (bg/surface + 1px
   border/default + Elevation/100) while its fly-out shows. */
.side-menu--collapsed .sidebar-section-label.is-flyout-open {
  background:var(--surface);
  box-shadow:0 0 0 var(--nav-divider-w) var(--rule), var(--nav-active-shadow);
  color:var(--approved-text-secondary);
}

.side-menu--flyout {
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar-w);
  z-index:var(--z-modal);
  box-shadow:var(--shadow-pop), inset calc(-1 * var(--nav-divider-w)) 0 0 var(--rule);
}
/* The fixed flyout leaves the grid flow, so the main pane must span the full
   grid or it would collapse into the empty rail column. */
.app.side-menu-flyout-open > .main { grid-column:1 / -1; }

.skip-to-content {
  position:fixed;
  left:16px;
  top:16px;
  transform:translateY(calc(-100% - 24px));
  z-index:var(--z-modal);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 12px;
  border-radius:var(--radius-control);
  background:var(--ink);
  color:var(--ink-fg);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  text-decoration:none;
}
/* The pop shadow lives on the focus state only: the resting pill sits just
   above the viewport and a resting shadow would bleed past the top edge. */
.skip-to-content:focus-visible {
  transform:translateY(0);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  box-shadow:var(--shadow-pop);
}

/* Main pane */
.main { display:flex; flex-direction:column; overflow:hidden; min-width:0; min-height:0; }
.header {
  height:var(--header-h);
  box-shadow:inset 0 -1px 0 var(--rule);
  display:flex; align-items:center;
  padding:0 var(--space-9); gap:8px;
  background:var(--surface);
  flex-shrink:0;
}
.header-title { display:flex; align-items:center; min-width:0; overflow:hidden; }
.crumb { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); }
.crumb-sep  { color:var(--text-4); display:inline-flex; align-items:center; }
.crumb-item { color:var(--text-2); cursor:pointer; }
.crumb-item:hover { color:var(--text); }
.crumb-item.current,
.crumb strong { color:var(--text); font-weight: var(--font-weight-medium); }

.header-actions { margin-left:auto; display:flex; align-items:center; gap:6px; }
.top-nav-leading { flex:1; }
.top-nav-tools { display:flex; align-items:center; min-width:0; }
.top-nav-leading + .top-nav-tools { margin-left:auto; }
.top-nav-trailing { display:flex; align-items:center; margin-left:auto; min-width:0; }
.top-nav-tools > .header-actions,
.top-nav-trailing > .header-actions { margin-left:0; }
.top-nav-tools > .header-actions { gap:var(--topnav-tools-gap); }
.top-nav-trailing > .header-actions { position:relative; gap:8px; }
.top-nav-user-shell { position:relative; }
.top-nav-user {
  display:flex;
  align-items:center;
  gap:var(--space-3);
  min-width:0;
  min-height:46px;
  margin-left:0;
  padding:var(--topnav-user-pad);
  border-radius:var(--radius-control);
  text-align:left;
}
.top-nav-user:hover { color:var(--text); background:var(--hover); }
.top-nav-user .avatar { background:var(--approved-feedback-success); color:var(--critical-fg); box-shadow:none; }
.top-nav-user .avatar.sm { width:28px; height:28px; font-size:var(--text-sm); }
.top-nav-user-copy {
  display:flex;
  flex-direction:column;
  min-width:0;
  max-width:142px;
  line-height:1.15;
}
.top-nav-user-name { color:var(--approved-text-primary); font-size:12.5px; font-weight:var(--font-weight-semibold); line-height:12.5px; }
.top-nav-user-role { color:var(--text-3); font-size:var(--text-xs); font-weight:var(--font-weight-regular); line-height:11px; }
.top-nav-user-chevron { display:none; }
.top-nav-user-menu {
  position:absolute;
  top:calc(100% + var(--space-3));
  right:0;
  z-index:var(--z-notifications);
  min-width:176px;
  padding:var(--space-1);
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.top-nav-user-menu > button {
  display:flex;
  align-items:center;
  gap:var(--space-3);
  width:100%;
  min-height:32px;
  padding:0 var(--space-3);
  border-radius:var(--radius-control);
  color:var(--text-2);
  font-size:var(--text-body);
  text-align:left;
}
.top-nav-user-menu > button:hover,
.top-nav-user-menu > button:focus-visible { background:var(--hover-2); color:var(--text); }
.command-trigger {
  display:inline-flex;
  align-items:center;
  gap:var(--topnav-kbd-gap);
  width:auto;
  height:var(--topnav-tool-h);
  /* Shared vertical role (Codex ledger verdict): the authored sm/xs vertical
     paddings are arithmetic-equivalent under the fixed 32px height, resolved
     to one centred-content role. Width hugs content (Lisa 14) because the
     retained keycap is wider than the authored plain shortcut. */
  padding:0 var(--topnav-pad-x);
  border:1px solid var(--quiet-control-border);
  /* Authored radius/md on the outer (left) corners only: Search + Ask read
     as one segmented pair. */
  border-radius:var(--topnav-tool-radius) 0 0 var(--topnav-tool-radius);
  background:var(--surface);
  box-shadow:none;
  color:var(--text-2);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  line-height:13px;
  white-space:nowrap;
  transition:background 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease;
}
.command-trigger:hover,
.command-trigger:focus-visible {
  border-color:var(--quiet-control-hover-border);
  background:var(--quiet-control-hover-bg);
  color:var(--text);
}
.command-trigger:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  box-shadow:none;
}
.command-trigger-label {
  line-height:1;
}
/* Authored nested layout (221:14): [icon + label] group, then the shared
   content-to-keycap gap to the shortcut. Shared by Search and Ask. */
.topnav-trigger-body {
  display:inline-flex;
  align-items:center;
  gap:var(--topnav-icon-label-gap);
  min-width:0;
}
.command-trigger-icon {
  width:var(--topnav-search-icon-size);
  height:var(--topnav-search-icon-size);
  flex:0 0 auto;
}
/* Derived (not authored): when Ask LexRio is absent (assistant open/active),
   the lone Search Button restores full outer radius. */
.header-actions .command-trigger:last-child {
  border-radius:var(--topnav-tool-radius);
}
.search-bar {
  flex:1; max-width:380px;
  display:flex; align-items:center; gap:7px;
  height:30px; padding:0 10px;
  background:var(--bg-deep);
  box-shadow:var(--ring-light);
  border-radius:var(--radius-pill);
  color:var(--text-3);
}
.search-bar input { flex:1; border:0; outline:0; background:transparent; font-size: var(--text-body); color:var(--text); }
.kbd {
  font-family:var(--font-mono);
  font-size: var(--text-xs); color:var(--text-3);
  box-shadow:var(--ring-light);
  border-radius:var(--radius-role-sm);
  padding:1px 5px;
  background:var(--surface);
  font-weight: var(--font-weight-medium);
}

.content {
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  background:var(--canvas-bg);
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.content:has(.my-work-approved) { scrollbar-gutter:auto; }
.content:focus { outline:none; }
.content:has(> .claim-identity-header) {
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.content > .claim-identity-header {
  flex:0 0 auto;
}
.content > .lx-1youv2o,
.content > .page-scroll-region {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
/* Correction F: the shared workspace canvas inset re-resolves once,
   centrally, at the narrow breakpoint — both routes inherit it. */
@media (max-width: 760px) {
  :root {
    /* IW35: the narrow re-resolution binds the page-frame tokens themselves
       (the workspace insets alias them); bottom keeps a 16 clearance. */
    --page-gutter: var(--space-5);
    --page-gutter-top: var(--space-5);
    --workspace-canvas-inset-bottom: var(--space-7);
  }
}

.app-page-scaffold {
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  background:var(--canvas-bg);
  overflow:hidden;
}
.page-header-surface {
  background:var(--page-header-bg);
}

.app-page-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--space-9);
  /* DH 69:191: 80px hug (16 + 48 heading + 16). No divider — Lisa removed
     the header/canvas dividing line. */
  min-height:80px;
  padding:var(--page-header-pad-y) var(--page-header-pad-x);
  background:var(--page-header-bg);
}
.app-page-heading {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--page-header-heading-gap);
}
.app-page-title-row {
  display:flex;
  align-items:center;
  gap:var(--space-3); /* authored spacing/sm (257:40) */
  min-width:0;
}
.app-page-title {
  margin:0;
  color:var(--text);
  font-size:20px;
  line-height:28px;
  font-weight: var(--font-weight-semibold);
  letter-spacing:0;
}
.app-page-meta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:var(--page-header-badge-h);
  min-width:var(--page-header-badge-min-w);
  padding:0 var(--page-header-badge-pad-x);
  border-radius:var(--radius-role-full);
  background:var(--page-header-badge-bg);
  color:var(--approved-text-secondary);
  font-size:10px;
  font-weight: var(--font-weight-medium);
  line-height:var(--page-header-badge-h);
  white-space:nowrap;
}
.app-page-subtitle {
  margin-top:0;
  color:var(--approved-text-secondary);
  font-size: var(--text-body);
  line-height:16px; /* authored Label (257:45 = DH) */
}
.app-page-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:min(360px, 42%);
}
.app-page-actions .header-actions {
  width:100%;
  justify-content:flex-end;
}
.app-page-body {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

/* Reference UI embeds inside the app shell (nav retained) as a full-height frame. */
.reference-ui-frame { display:block; width:100%; height:100%; min-height:calc(100vh - 120px); border:0; background:var(--canvas-bg); }
.app-page-body:has(> .reference-ui-frame) { padding:0; }

.app-page-body:has(> .reference-ui) {
  display:block;
  overflow:auto;
  scrollbar-gutter:stable;
}
.app-page-body > .lx-28v4rf,
.app-page-body > .lx-51qana,
.app-page-body > .lx-yn6tld {
  padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  flex:1;
  min-height:0;
  overflow:auto;
}
.app-page-body > .lx-28v4rf:has(.table-shell-with-rail),
.app-page-body > .lx-28v4rf:has(.data-list-card),
.app-page-body > .lx-51qana:has(.table-shell-with-rail),
.app-page-body > .lx-yn6tld:has(.table-shell-with-rail) {
  overflow:hidden;
}
.app-page-body > .lx-yn6tld {
  align-content:start;
  align-items:start;
}
.app-page-body > .my-work-root {
  padding-top:var(--page-gutter-top);
}
.app-page-body > .calendar-page,
.app-page-body > .my-work-root {
  flex:1;
  min-height:0;
  overflow:auto;
}
.app-page-body > .my-work-root {
  display:flex;
  flex-direction:column;
  gap:var(--widget-gap);
  overflow:auto;
}
.app-page-body > .lx-28v4rf.my-work-root {
  overflow:auto;
}
.backend-load-error-screen {
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:32px;
  background:var(--bg);
}
.backend-load-error-card {
  width:min(760px, 100%);
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:16px;
  padding:22px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--shadow-card);
}
.backend-load-error-icon {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:var(--radius);
  color:var(--critical);
  background:var(--critical-soft);
}
.backend-load-error-copy {
  display:grid;
  gap:12px;
  min-width:0;
}
.backend-load-error-kicker {
  margin:0;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  letter-spacing:0;
}
.backend-load-error-copy h1 {
  margin:0;
  font-size:22px;
  line-height:1.2;
  letter-spacing:0;
}
.backend-load-error-copy p {
  margin:0;
  color:var(--text-2);
}
.backend-load-error-details {
  display:grid;
  gap:8px;
  margin:0;
  padding:12px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.backend-load-error-details div {
  display:grid;
  grid-template-columns:82px minmax(0, 1fr);
  gap:10px;
}
.backend-load-error-details dt {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.backend-load-error-details dd {
  min-width:0;
  margin:0;
  color:var(--text);
  overflow-wrap:anywhere;
}
.backend-load-error-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.my-work-root .work-widget-grid {
  display:grid;
  flex:0 0 auto;
  grid-auto-rows:auto;
  min-height:max-content;
  align-items:stretch;
}
@media (min-width: 1920px) {
  .my-work-root .work-widget-grid {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 1351px) {
  .my-work-root .work-widget-grid {
    grid-template-columns:1fr;
  }
}
.my-work-root > .lx-15kjdyn,
.my-work-root > .my-week-strip-card {
  flex:0 0 auto;
  margin-bottom:0;
}
.my-work-root .work-widget-grid > .data-list-card {
  flex:0 1 auto;
  min-height:220px;
  height:100%;
}
.my-work-root .work-widget-grid > .my-work-split-widget.is-empty {
  min-height:0;
  height:auto;
}
.my-work-root .work-widget-grid > .data-list-card > .card-body.tight {
  flex:1 1 auto;
  min-height:0;
}
.my-work-root .widget-scroll-region {
  flex:1 1 auto;
  min-height:132px;
  max-height:var(--data-widget-scroll-h);
}
.my-work-root .my-work-split-widget.is-empty .widget-scroll-region.is-empty {
  flex:0 0 auto;
  min-height:0;
  max-height:none;
  overflow:visible;
}
.my-work-root.my-work-docket-maximized {
  overflow:hidden;
}
.app-page-body > .lx-28v4rf.my-work-root.my-work-docket-maximized {
  overflow:hidden;
}
.my-work-root.my-work-docket-maximized .my-work-perspective-card {
  flex:0 0 auto;
}
.my-work-root.my-work-docket-maximized .my-docket-card {
  flex:1 1 auto;
  min-height:0;
}
.my-work-root.my-work-docket-maximized .my-docket-card > .card-body.tight {
  min-height:0;
}
.my-work-root.my-work-docket-maximized .my-docket-card .docket-table-scroll {
  max-height:none;
}
.my-work-root.my-work-docket-maximizing > .my-week-strip-card {
  animation:my-work-widget-maximize-slide 180ms cubic-bezier(0.4, 0, 0.2, 1) both;
}
.my-work-root.my-work-docket-maximizing > .awaiting-review-card {
  animation:my-work-widget-maximize-slide 180ms cubic-bezier(0.4, 0, 0.2, 1) 25ms both;
}
.my-work-root.my-work-docket-expanded .my-docket-card {
  animation:my-work-docket-maximize-fill 340ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
}
.my-work-root.my-work-docket-restoring-gap .my-docket-card {
  animation:my-work-docket-restore-gap 110ms cubic-bezier(0.4, 0, 0.2, 1) both;
}
.my-work-root.my-work-docket-restoring > .my-week-strip-card {
  animation:my-work-widget-restore-slide 340ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
}
.my-work-root.my-work-docket-restoring > .awaiting-review-card {
  animation:my-work-widget-restore-slide 360ms cubic-bezier(0.18, 0.9, 0.2, 1) 50ms both;
}
.my-work-root.my-work-docket-restoring .my-docket-card {
  animation:my-work-docket-restore-settle 400ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
}
.my-work-enter-list .work-row {
  animation:my-work-row-drop-in 460ms cubic-bezier(0.18, 0.9, 0.2, 1) backwards; /* DC50: see the table-shell entry motion note */
  transform-origin:top center;
  will-change:transform, opacity;
}
.my-week-grid {
  overflow:hidden;
}
.my-week-day {
  animation:my-week-day-drop-in 500ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
  transform-origin:top center;
  will-change:transform, opacity;
}
.my-week-event {
  animation:my-week-event-settle-in 360ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
  will-change:transform, opacity;
}
.my-week-day:nth-child(1) { animation-delay:0ms; }
.my-week-day:nth-child(2) { animation-delay:48ms; }
.my-week-day:nth-child(3) { animation-delay:96ms; }
.my-week-day:nth-child(4) { animation-delay:144ms; }
.my-week-day:nth-child(5) { animation-delay:192ms; }
.my-week-day:nth-child(6) { animation-delay:240ms; }
.my-week-day:nth-child(7) { animation-delay:288ms; }
.my-week-day:nth-child(1) .my-week-event { animation-delay:120ms; }
.my-week-day:nth-child(2) .my-week-event { animation-delay:168ms; }
.my-week-day:nth-child(3) .my-week-event { animation-delay:216ms; }
.my-week-day:nth-child(4) .my-week-event { animation-delay:264ms; }
.my-week-day:nth-child(5) .my-week-event { animation-delay:312ms; }
.my-week-day:nth-child(6) .my-week-event { animation-delay:360ms; }
.my-week-day:nth-child(7) .my-week-event { animation-delay:408ms; }
/* ── Standard entry motion ─────────────────────────────────────────────
   The My-Work row drop-in, promoted to the standard table component: every
   TableShell-hosted table (claims, prospects, directory, knowledge, admin)
   and the calendar docket tables stagger their rows in on load; the calendar
   week/month grids use the Next-7-days treatment (day columns stagger, the
   grid settles). Opt out with .no-enter-motion on the shell. */
/* DC50 (directory-contacts slice): fill `backwards`, not `both`. The delay
   still hides each row until its turn, but once the motion ends the row gets
   its natural styles back. With `both`, the finished animation kept an
   identity transform on EVERY row for the page's life — each row became a
   stacking context and in-row popovers (the 3-dot row menu) painted UNDER
   the rows below them. The end frame equals the natural state, so nothing
   visibly changes at the hand-off. */
.table-shell:not(.no-enter-motion) tbody tr,
.calendar-docket-table tbody tr {
  animation:my-work-row-drop-in 460ms cubic-bezier(0.18, 0.9, 0.2, 1) backwards;
  transform-origin:top center;
}
.table-shell:not(.no-enter-motion) tbody tr:nth-child(1),  .calendar-docket-table tbody tr:nth-child(1)  { animation-delay:0ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(2),  .calendar-docket-table tbody tr:nth-child(2)  { animation-delay:32ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(3),  .calendar-docket-table tbody tr:nth-child(3)  { animation-delay:64ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(4),  .calendar-docket-table tbody tr:nth-child(4)  { animation-delay:96ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(5),  .calendar-docket-table tbody tr:nth-child(5)  { animation-delay:128ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(6),  .calendar-docket-table tbody tr:nth-child(6)  { animation-delay:160ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(7),  .calendar-docket-table tbody tr:nth-child(7)  { animation-delay:192ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(8),  .calendar-docket-table tbody tr:nth-child(8)  { animation-delay:224ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(9),  .calendar-docket-table tbody tr:nth-child(9)  { animation-delay:256ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(10), .calendar-docket-table tbody tr:nth-child(10) { animation-delay:288ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(11), .calendar-docket-table tbody tr:nth-child(11) { animation-delay:320ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(12), .calendar-docket-table tbody tr:nth-child(12) { animation-delay:352ms; }
.table-shell:not(.no-enter-motion) tbody tr:nth-child(n+13), .calendar-docket-table tbody tr:nth-child(n+13) { animation-delay:384ms; }

/* Calendar week: day columns stagger like the Next-7-days strip. */
.calendar-week-grid {
  animation:calendar-cell-drop-in 420ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
}
.calendar-week-daycol {
  animation:my-week-day-drop-in 500ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
  transform-origin:top center;
}
.calendar-week-daycol:nth-child(2) { animation-delay:0ms; }
.calendar-week-daycol:nth-child(3) { animation-delay:48ms; }
.calendar-week-daycol:nth-child(4) { animation-delay:96ms; }
.calendar-week-daycol:nth-child(5) { animation-delay:144ms; }
.calendar-week-daycol:nth-child(6) { animation-delay:192ms; }
.calendar-week-daycol:nth-child(7) { animation-delay:240ms; }
.calendar-week-daycol:nth-child(8) { animation-delay:288ms; }

/* Calendar month: the grid settles in as one piece. */
/* Month cells drop in a week-row at a time — the same drop-in the tables use,
   grouped by week (opacity keeps the out-of-month cells' 0.5 via the inline
   style; the keyframe animates transform/opacity to 1 which then settles). */
.calendar-month-cell {
  animation:calendar-cell-drop-in 460ms cubic-bezier(0.18, 0.9, 0.2, 1) both;
  transform-origin:top center;
}

@media (prefers-reduced-motion: reduce) {
  .table-shell tbody tr,
  .calendar-docket-table tbody tr,
  .calendar-week-daycol,
  .calendar-week-grid,
  .calendar-month-cell {
    animation:none;
  }
}

@keyframes calendar-cell-drop-in {
  0% { opacity:0; transform:translateY(-14px) scale(0.99); }
  100% { transform:translateY(0) scale(1); }
}
@keyframes my-work-row-drop-in {
  0% {
    opacity:0;
    transform:translateY(-18px) scale(0.985);
  }
  58% {
    opacity:1;
  }
  100% {
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
@keyframes my-work-widget-restore-slide {
  from {
    opacity:0;
    transform:translateY(-18px);
    clip-path:inset(0 0 100% 0);
  }
  to {
    opacity:1;
    transform:translateY(0);
    clip-path:inset(0 0 0 0);
  }
}
@keyframes my-work-widget-maximize-slide {
  from {
    opacity:1;
    transform:translateY(0);
    clip-path:inset(0 0 0 0);
  }
  to {
    opacity:0;
    transform:translateY(-18px);
    clip-path:inset(0 0 100% 0);
  }
}
@keyframes my-work-docket-maximize-fill {
  from {
    transform:translateY(18px);
  }
  to {
    transform:translateY(0);
  }
}
@keyframes my-work-docket-restore-gap {
  from {
    transform:translateY(0);
  }
  to {
    transform:translateY(12px);
  }
}
@keyframes my-work-docket-restore-settle {
  from {
    transform:translateY(-14px);
  }
  to {
    transform:translateY(0);
  }
}
@keyframes my-week-day-drop-in {
  0% {
    opacity:0;
    transform:translateY(-16px) scale(0.988);
  }
  64% {
    opacity:1;
  }
  100% {
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
@keyframes my-week-event-settle-in {
  0% {
    opacity:0;
    transform:translateY(-7px);
  }
  100% {
    opacity:1;
    transform:translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
	  .my-work-enter-list .work-row,
	  .docket-table tbody tr.is-clickable,
	  .my-week-day,
	  .my-week-event,
	  .my-work-root.my-work-docket-maximizing > .my-week-strip-card,
	  .my-work-root.my-work-docket-maximizing > .awaiting-review-card,
	  .my-work-root.my-work-docket-expanded .my-docket-card,
	  .my-work-root.my-work-docket-restoring-gap .my-docket-card,
	  .my-work-root.my-work-docket-restoring > .my-week-strip-card,
	  .my-work-root.my-work-docket-restoring > .awaiting-review-card,
	  .my-work-root.my-work-docket-restoring .my-docket-card,
	  .overview-work-grid .overview-row-section .card-body.tight > .work-row,
  .overview-work-grid .overview-row-section .card-body.tight > .list-row,
  .overview-work-grid .overview-row-section .card-body.tight > .overview-activity-compact-row {
    animation:none;
  }
}
.my-work-perspective-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  flex:0 0 auto;
  background:transparent;
  box-shadow:none;
  border-radius:var(--radius-role-none);
}
.my-work-perspective-main {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.my-work-perspective-avatar {
  width:34px;
  height:34px;
  border-radius:var(--radius-lg);
  display:grid;
  place-items:center;
  background:var(--accent-bg);
  color:var(--accent);
  font-size: var(--text-sm);
  font-weight:750;
  flex:0 0 auto;
}
.my-work-perspective-stats { display:block; line-height:1.5; }
.my-work-perspective-role { font-weight:var(--font-weight-semibold); color:var(--text-2); }
.my-work-perspective-review { color:var(--text-3); }
.my-work-perspective-control {
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.my-work-perspective-control > span {
  flex:0 0 auto;
  white-space:nowrap;
}
/* Round 3: adopts the central 40px control (its old height:32 lost to the
   recipe's min-height clamp and left the chevron mis-inset). */
.my-work-perspective-control select {
  min-width:220px;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.my-work-perspective-actions {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:var(--space-rhythm);
  flex-wrap:wrap;
  justify-content:flex-end;
}
.my-work-perspective-checkbox {
  display:inline-flex;
  align-items:center;
  gap:var(--filter-control-gap);
  flex:0 0 auto;
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight:var(--filter-control-font-weight);
  white-space:nowrap;
}
.my-work-perspective-checkbox input {
  width:14px;
  height:14px;
  accent-color:var(--ink);
}
.awaiting-review-card {
  flex:0 0 auto;
  min-height:0;
}
.awaiting-review-card .card-body.tight {
  flex:0 0 auto;
  min-height:auto;
}
.awaiting-review-card.is-empty .card-body.tight {
  min-height:0;
}
.awaiting-review-card .card-head {
  gap:12px;
}
.awaiting-review-title-link {
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
}
.awaiting-review-title-link:hover,
.awaiting-review-title-link:focus-visible {
  color:var(--text-2);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

.awaiting-review-list {
  flex:0 0 auto;
  height:clamp(260px, 38vh, 360px);
  max-height:360px;
}
.awaiting-review-list.is-empty {
  height:auto;
  min-height:0;
  max-height:none;
  overflow:visible;
}
.awaiting-review-table {
  min-width:900px;
}
.awaiting-review-table tbody tr.critical,
.awaiting-review-table tbody tr.warn {
  box-shadow:inset 2px 0 0 var(--warn);
}
.awaiting-review-table tbody tr.critical {
  box-shadow:inset 2px 0 0 var(--critical);
}
.awaiting-review-col-urgency { width:76px; }
.awaiting-review-col-route { width:122px; }
.awaiting-review-col-received { width:108px; }
.awaiting-review-col-source { width:30px; }
.awaiting-review-col-from { width:142px; }
.awaiting-review-col-subject { width:27%; }
.awaiting-review-col-claim { width:23%; }
.awaiting-review-col-status { width:118px; }
.awaiting-review-table th:nth-child(4),
.awaiting-review-table td:nth-child(4) {
  padding-left:4px;
  padding-right:2px;
}
.awaiting-review-table th:nth-child(5),
.awaiting-review-table td:nth-child(5) {
  padding-left:2px;
}
.awaiting-review-source-cell .source-chip {
  justify-content:center;
  width:18px;
}
.awaiting-review-date-cell {
  white-space:nowrap;
}
.awaiting-review-subject-cell {
  font-weight: var(--font-weight-medium);
  max-width:32ch;
}
.awaiting-review-subject-content {
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.awaiting-review-type-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  flex:0 0 20px;
  color:var(--text-3);
  position:relative;
  cursor:help;
}
.awaiting-review-type-icon:hover,
.awaiting-review-type-icon:focus-visible {
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.awaiting-review-type-tooltip {
  position:absolute;
  left:50%;
  top:calc(100% + 8px);
  z-index:30;
  transform:translateX(-50%) translateY(3px);
  opacity:0;
  pointer-events:none;
  padding:5px 7px;
  border-radius:var(--radius-sm);
  background:var(--text);
  color:var(--bg);
  box-shadow:var(--shadow-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  line-height:1.2;
  white-space:nowrap;
}
.awaiting-review-type-tooltip::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:100%;
  width:8px;
  height:8px;
  background:var(--text);
  transform:translate(-50%, 4px) rotate(45deg);
}
.awaiting-review-type-icon:hover .awaiting-review-type-tooltip,
.awaiting-review-type-icon:focus-visible .awaiting-review-type-tooltip {
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.awaiting-review-subject-text {
  min-width:0;
}
.awaiting-review-claim-cell {
  max-width:34ch;
  min-width:0;
}
.awaiting-review-claim-match {
  margin-right:4px;
}
.awaiting-review-table .chip {
  font-size: var(--text-sm);
}
.awaiting-review-table td.muted,
.awaiting-review-claim-match,
.awaiting-review-claim-cell .muted {
  font-size: var(--text-sm);
}
.awaiting-review-claim-separator {
  margin:0 3px;
}
.awaiting-review-row {
  display:grid;
  grid-template-columns:minmax(62px, .48fr) minmax(104px, .78fr) minmax(74px, .52fr) minmax(92px, .68fr) minmax(128px, .95fr) minmax(230px, 1.85fr) minmax(170px, 1.15fr) minmax(92px, .68fr);
  align-items:center;
  width:100%;
  column-gap:10px;
  min-height:42px;
  padding-top:5px;
  padding-bottom:5px;
  color:inherit;
  font-size: var(--text-body);
  line-height:1.2;
  text-align:left;
}
.awaiting-review-row:hover,
.awaiting-review-row:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.awaiting-review-main,
.awaiting-review-urgency,
.awaiting-review-role,
.awaiting-review-received-cell,
.awaiting-review-source,
.awaiting-review-from,
.awaiting-review-meta,
.awaiting-review-action {
  min-width:0;
}
.awaiting-review-urgency,
.awaiting-review-role,
.awaiting-review-received-cell,
.awaiting-review-source,
.awaiting-review-from,
.awaiting-review-main,
.awaiting-review-meta,
.awaiting-review-action {
  display:flex;
  align-items:center;
}
.awaiting-review-source {
  gap:5px;
  color:var(--text-2);
}
.awaiting-review-received {
  color:var(--text-3);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  white-space:nowrap;
}
.awaiting-review-from {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
}
.awaiting-review-title-line {
  min-width:0;
  flex-wrap:nowrap;
  align-items:center;
}
.awaiting-review-title {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.awaiting-review-meta {
  flex-wrap:nowrap;
  gap:6px;
  margin-top:0;
  justify-content:flex-start;
  color:var(--text-3);
  font-size: var(--text-body);
}
.awaiting-review-meta > span {
  min-width:0;
}
.awaiting-review-action {
  gap:8px;
  color:var(--text-2);
  justify-content:flex-start;
}
@media (max-width: 920px) {
  .my-work-perspective-card {
    align-items:stretch;
    flex-direction:column;
  }
  .my-work-perspective-control {
    align-items:stretch;
    flex-direction:column;
  }
  .my-work-perspective-actions {
    align-items:flex-start;
    justify-content:flex-start;
    margin-left:0;
  }
  .my-work-perspective-control select {
    min-width:0;
    width:100%;
  }
  .my-work-perspective-checkbox {
    justify-content:flex-start;
  }
  .awaiting-review-row {
    grid-template-columns:minmax(62px, .5fr) minmax(104px, .9fr) minmax(74px, .6fr) minmax(92px, .75fr) minmax(128px, 1fr) minmax(210px, 1.6fr);
    align-items:center;
  }
  .awaiting-review-meta,
  .awaiting-review-action {
    grid-column:5 / -1;
  }
  .widget-header-actions.header-checkbox-actions {
    width:100%;
    justify-content:flex-start;
  }
  .awaiting-review-action {
    justify-content:flex-start;
  }
}
.app-page-body > .canvas-table-page,
.app-page-body > .lx-tthces {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:var(--widget-stack-gap);
  overflow:hidden;
}
.app-page-body > .lx-1youv2o,
.app-page-body > .page-scroll-region {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.app-page-body > .filter-bar,
.app-page-body .filter-bar {
  background:var(--canvas-bg);
}
.app-page-body > .inbox-toolbar,
.app-page-body .inbox-toolbar {
  background:var(--chrome-bg);
}
.app-page-body .table-wrap {
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  overflow:visible;
}
.app-page-body > .tabs {
  align-self:flex-start;
  max-width:calc(100% - (var(--page-gutter) * 2));
  margin:var(--page-gutter-top) var(--page-gutter) 0;
}
.app-page-body .card {
  border-radius:var(--radius-role-none);
}
.content:has(.knowledge-page-root) {
  overflow:hidden;
}
.app-page-scaffold:has(.knowledge-page-root) {
  height:100%;
  min-height:0;
}
.app-page-body:has(> .knowledge-page-root) {
  display:flex;
  min-height:0;
  overflow:hidden;
}
.app-page-body:has(> .knowledge-page-root) > .knowledge-page-root {
  flex:1;
}
.app-page-body > .lx-yn6tld .table-wrap {
  border:0;
  border-radius:var(--radius-role-none);
}

/* ============================================================
 * 4. BUTTONS
 * ============================================================ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--button-gap);
  box-sizing:border-box;
  padding:0 var(--button-padding-x);
  font-size: var(--text-body); font-weight: var(--font-weight-medium);
  border:1px solid var(--button-secondary-border);
  border-radius:var(--button-radius);
  background:var(--button-secondary-bg);
  color:var(--button-text);
  height:var(--button-height);
  min-height:var(--button-height);
  white-space:nowrap;
  box-shadow:none;
  font-family:inherit;
  line-height:1;
  transition:background-color 120ms ease, border-color 120ms ease, color 120ms ease;
}
.btn:hover { background:var(--button-secondary-hover-bg); border-color:var(--button-secondary-hover-border); }
.btn:active { transform:translateY(0.5px); }
.btn-sm { height:var(--button-sm-height); min-height:var(--button-sm-height); padding:0 var(--button-sm-padding-x); gap:var(--button-sm-gap); font-size:var(--text-sm); }
.btn-lg { height:var(--button-lg-height); min-height:var(--button-lg-height); padding:0 var(--button-lg-padding-x); gap:var(--button-lg-gap); font-size:var(--text-md); }
.btn-xs { height:24px; min-height:24px; padding:0 8px; font-size: var(--text-xs); }
.btn-icon { padding:0; width:var(--button-icon-size); justify-content:center; }
.btn-icon.btn-sm { width:var(--button-icon-sm-size); }
.btn-icon.btn-lg { width:var(--button-icon-lg-size); }
/* Opt-in shared touch sizing; keep the approved fine-pointer desktop recipe. */
@media (max-width:640px), (pointer:coarse) {
  .btn.btn-touch-target {
    min-height:var(--touch-target-min);
    min-width:var(--touch-target-min);
  }
}
.btn-secondary { background:var(--button-secondary-bg); border-color:var(--button-secondary-border); color:var(--button-text); }
.btn-secondary:hover { background:var(--button-secondary-hover-bg); border-color:var(--button-secondary-hover-border); }
.btn-primary, .btn-accent { background:var(--button-primary-bg); border-color:var(--button-primary-bg); color:var(--button-text-on-color); }
.btn-primary:hover, .btn-accent:hover { background:var(--button-primary-hover-bg); border-color:var(--button-primary-hover-bg); }
.btn-tertiary, .btn-ghost { background:transparent; border-color:transparent; box-shadow:none; }
.btn-tertiary:hover, .btn-ghost:hover { background:var(--button-tertiary-hover-bg); border-color:transparent; }
.btn-tertiary.active { background:var(--button-secondary-bg); border-color:var(--button-secondary-border); color:var(--button-text); }
.btn-ghost.active { background:var(--surface); border-color:var(--button-secondary-border); color:var(--button-text); }
.btn-destructive { background:var(--button-destructive-bg); border-color:var(--button-destructive-bg); color:var(--button-text-on-color); }
.btn-destructive:hover { background:var(--button-destructive-hover-bg); border-color:var(--button-destructive-hover-bg); }
.btn:disabled,
.btn[aria-disabled="true"],
/* DR6: the Documents pin glyph wears the disabled padlock's pill surface. */
.btn.document-pinned-glyph {
  background:var(--button-disabled-bg);
  border-color:var(--button-disabled-border);
  color:var(--button-text-disabled);
  opacity:0.45;
  pointer-events:none;
  transform:none;
}
.btn .spinner {
  width:12px;
  height:12px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:var(--radius-pill);
  animation:spin 0.75s linear infinite;
}
.icon-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:var(--button-sm-height); height:var(--button-sm-height);
  border-radius:var(--button-radius);
  color:var(--text-3);
  background:transparent;
}
.icon-btn:hover { background:var(--hover-2); color:var(--text); }
/* Expanded menus retain their button variant; disabled controls never adopt
   an interactive expanded palette. Icons inherit the same foreground. */
.btn[aria-expanded="true"]:where(:not(:disabled):not([aria-disabled="true"]):not(.btn-primary):not(.btn-accent):not(.btn-destructive)),
.icon-btn[aria-expanded="true"]:where(:not(:disabled):not([aria-disabled="true"]):not(.btn-primary):not(.btn-accent):not(.btn-destructive)) { background:var(--surface-3); color:var(--text); }
.btn-primary[aria-expanded="true"]:where(:not(:disabled):not([aria-disabled="true"])),
.btn-accent[aria-expanded="true"]:where(:not(:disabled):not([aria-disabled="true"])) {
  background:var(--button-primary-hover-bg);
  border-color:var(--button-primary-hover-bg);
  color:var(--button-text-on-color);
}
.btn-destructive[aria-expanded="true"]:where(:not(:disabled):not([aria-disabled="true"])) {
  background:var(--button-destructive-hover-bg);
  border-color:var(--button-destructive-hover-bg);
  color:var(--button-text-on-color);
}

@keyframes spin {
  to { transform:rotate(360deg); }
}

/* ============================================================
 * 5. CHIPS — canonical Geist pill
 * Soft tinted bg + darker text, no border, sentence-case
 * ============================================================ */
.chip {
  display:inline-flex; align-items:center; gap:5px;
  font-size: var(--text-sm); font-weight: var(--font-weight-medium);
  padding:2px 10px;
  border-radius:var(--radius-pill);
  background:var(--surface-3);
  color:var(--text-2);
  white-space:nowrap;
  text-transform:none;
  letter-spacing:0;
  line-height:1.5;
  font-family:inherit;
  border:0;
}
.chip.outline   { background:var(--surface); color:var(--text); box-shadow:var(--ring-light); }
.chip-dot       { width:6px; height:6px; border-radius:var(--radius-role-full); background:currentColor; flex-shrink:0; opacity:0.85; }
.chip-critical  { background:var(--critical-soft); color:var(--critical); }
.chip-warn      { background:var(--warn-soft); color:var(--warn); }
.chip-success   { background:var(--success-soft); color:var(--success); }
.chip-info      { background:var(--info-soft); color:var(--info); }
.chip-accent    { background:var(--filter-active-bg); color:var(--filter-active-text); }
.chip-pink      { background:#FCE8F4; color:#B1227A; }
.chip-neutral   { background:var(--surface-3); color:var(--text-2); }
/* DC06 (directory-contacts slice, D1/D2): the Directory CATEGORY tone set —
   a separate set from the avatar tones so the two cannot drift, bound to
   existing token pairs only. Ledger (authored hex -> token): only
   litigation_support (F6F4FA on 733CBF) resolves exactly (violet-25/575);
   the other authored category colours have no token and are mapped to the
   nearest existing hue (blue/green/amber/violet/neutral); the authored red
   for Expert is the semantic error hue and is not used. Geometry comes from
   the D46 Chip/Status family. */
.chip.category-tone-blue        { background:var(--approved-feedback-info-bg); color:var(--approved-feedback-info); }
.chip.category-tone-green       { background:var(--approved-feedback-success-bg); color:var(--approved-feedback-success); }
.chip.category-tone-amber       { background:var(--approved-feedback-warning-bg); color:var(--approved-feedback-warning); }
.chip.category-tone-violet      { background:var(--brand-subtle); color:var(--approved-text-brand); }
.chip.category-tone-violet-deep { background:var(--color-violet-25); color:var(--color-violet-575); }
.chip.category-tone-neutral     { background:var(--surface-3); color:var(--text-2); }
.chip-active    { background:var(--surface); color:var(--text); box-shadow:0 0 0 1px var(--text); font-weight: var(--font-weight-semibold); }
.chip svg       { flex-shrink:0; }
.chip-compact-wrap {
  align-items:center;
  max-width:100%;
  min-height:22px;
  height:auto;
  padding:3px 7px;
  border-radius:var(--radius-role-sm);
  line-height:1.18;
  white-space:normal;
  vertical-align:middle;
}
.claim-header-id-box {
  position:relative;
  width:fit-content;
  max-width:min(360px, 100%);
  min-width:0;
  flex:0 0 auto;
}
.claim-header-id-box:has(.claim-facts-trigger.active) {
  z-index:320;
}
.claim-header-id-box .claim-facts-trigger {
  appearance:none;
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:var(--space-2);
  align-items:center;
  min-width:142px;
  max-width:min(360px, 100%);
  padding:var(--space-2) var(--space-3);
  border:1px solid var(--quiet-control-border);
  border-radius:var(--radius-tab-track);
  color:inherit;
  background:linear-gradient(180deg, var(--surface-2) 0%, var(--surface-3) 100%);
  cursor:pointer;
  font:inherit;
  text-align:left;
  transition:background 250ms ease,
    border-color 250ms ease,
    box-shadow 250ms ease;
}
.claim-header-id-box .claim-facts-trigger:hover,
.claim-header-id-box .claim-facts-trigger:focus-visible,
.claim-header-id-box .claim-facts-trigger.active {
  border-color:var(--quiet-control-hover-border);
  background:var(--surface-2);
}
.claim-header-id-box .claim-facts-trigger:focus-visible {
    outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.claim-header-id-box .claim-facts-trigger:active {
  transform:translateY(0.5px);
}
.claim-header-id-box .claim-facts-popover {
  top:calc(100% + 8px);
  right:auto;
  left:0;
  animation-name:claim-facts-panel-unfurl;
}
.claim-header-id-row {
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  gap:var(--space-2);
  min-width:0;
  font-size: var(--text-xs);
}
.claim-facts-icon {
  display:inline-grid;
  width:24px;
  height:28px;
  place-items:center;
  color:var(--text-2);
}
.claim-facts-label-stack {
  display:grid;
  gap:2px;
  min-width:0;
}
.claim-header-id-label {
  min-width:0;
  overflow:hidden;
  color:var(--text-4);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-regular);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-header-id-value {
  display:block;
  min-width:0;
  overflow:hidden;
  color:var(--text);
  font-family:var(--font-mono);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-facts-info-indicator {
  position:absolute;
  top:50%;
  right:var(--space-3);
  display:grid;
  width:18px;
  height:18px;
  place-items:center;
  color:var(--text-2);
  transform:translateY(-50%);
}
.claim-header-claim-number {
  display:inline-flex;
  align-items:baseline;
  gap:5px;
  border-radius:var(--radius-pill);
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.4;
  white-space:nowrap;
}
.claim-header-claim-number strong {
  color:var(--text);
  font-family:var(--font-mono);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.claim-header-cac {
  font-weight: var(--font-weight-medium);
}
.claim-header-cac svg {
  flex-shrink:0;
}
.claim-header-status {
  font-weight: var(--font-weight-medium);
}
.claim-header-title-stack {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.claim-header-main-row {
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
}
.claim-header-status-stack {
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.claim-header-tags-row {
  display:flex;
  min-width:0;
}
.claim-header-meta-item {
  display:inline-flex;
  align-items:baseline;
  gap:4px;
}
.claim-header-doi.is-missing strong {
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
}
.claim-header-meta-item + .claim-header-meta-item::before {
  content:"";
  flex:0 0 3px;
  width:3px;
  height:3px;
  align-self:center;
  margin:0 12px;
  border-radius:var(--radius-pill);
  background:var(--text-4);
}
.claim-header-main-row .claim-tags-wrap {
  flex-shrink:0;
}
.claim-header-main-row .claim-tag-row,
.claim-header-tags-row .claim-tag-row {
  margin-top:0;
}
.claim-facts-anchor {
  position:relative;
  perspective:720px;
}
.claim-facts-trigger {
  color:var(--text-2);
}
.claim-facts-trigger.active,
.claim-facts-trigger:hover,
.claim-facts-trigger:focus-visible {
  color:var(--text);
}
.claim-facts-popover {
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:260;
  display:flex;
  flex-direction:column;
  width:min(420px, calc(100vw - 32px));
  max-height:min(72vh, 720px);
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--radius-role-none);
  background:var(--bg);
  box-shadow:var(--shadow-pop);
  transform-origin:top left;
  backface-visibility:hidden;
  will-change:transform, opacity;
  animation:claim-facts-panel-unfurl 210ms cubic-bezier(0.32, 0, 0.15, 1);
}
.claim-facts-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:38px;
  padding:8px 10px 7px 12px;
  border-bottom:1px solid var(--border);
}
.claim-facts-title {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-bold);
  line-height:1.25;
}
.claim-facts-title-link {
  text-decoration:none;
}
.claim-facts-title-link:hover,
.claim-facts-title-link:focus-visible {
  color:var(--text);
  text-decoration:underline;
  text-underline-offset:3px;
}
.claim-facts-subtitle {
  max-width:320px;
  overflow:hidden;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-fact-list {
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:6px;
}
.claim-header-id-box .claim-fact-list,
.claim-fact-list {
  border-radius:var(--radius-role-none);
}
.claim-fact-row {
  display:grid;
  grid-template-columns:minmax(118px, 0.74fr) minmax(0, 1fr) 28px;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:5px 6px;
  border-radius:var(--radius);
}
.claim-fact-row:hover {
  background:var(--surface);
}
@media (prefers-reduced-motion: reduce) {
  .claim-facts-popover {
    animation:none;
  }
}
.claim-fact-label-group {
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:2px;
}
.claim-fact-label {
  overflow:hidden;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-fact-source {
  width:max-content;
  max-width:100%;
  overflow:hidden;
  color:var(--text-4);
  font-size: var(--text-2xs);
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-fact-value {
  min-width:0;
  overflow:hidden;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-fact-value.is-missing {
  color:var(--text-4);
  font-weight: var(--font-weight-medium);
}
.claim-fact-copy,
.claim-fact-copy-spacer {
  width:26px;
  height:26px;
}
.claim-fact-copy {
  color:var(--text-3);
}
.claim-fact-copy.copied {
  color:var(--success);
}
@media (max-width: 760px) {
  .claim-facts-anchor {
    align-items:flex-end;
  }
  .claim-facts-popover {
    position:fixed;
    top:auto;
    right:12px;
    bottom:12px;
    left:12px;
    width:auto;
    max-height:min(78vh, 680px);
  }
  .claim-header-id-box .claim-facts-popover {
    top:auto;
    right:12px;
    left:12px;
  }
  .claim-fact-row {
    grid-template-columns:minmax(96px, 0.66fr) minmax(0, 1fr) 28px;
  }
}
@media (min-width: 1450px) {
  .claim-header-title-stack {
    flex-direction:row;
    align-items:center;
    gap:18px;
  }
  .claim-header-main-row {
    flex:0 0 auto;
  }
  .claim-header-tags-row {
    flex:1 1 auto;
    justify-content:center;
    overflow:hidden;
  }
  .claim-header-tags-row .claim-tags-wrap {
    max-width:100%;
  }
}
.chip-select {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:var(--filter-control-gap);
  height:var(--filter-control-height);
  max-width:100%;
  padding:0;
  border:1px solid transparent;
  border-radius:var(--filter-control-radius);
  background:var(--surface-3);
  box-shadow:none;
  color:var(--text-2);
  font-size:var(--filter-control-font-size);
  font-weight:var(--filter-control-font-weight);
  line-height:1.5;
  white-space:nowrap;
  overflow:visible;
}
.chip-select.is-open {
  z-index:1300;
}
.chip-select:hover {
  background:var(--hover);
}
.chip-select:focus-within {
  border-color:var(--focus-ring);
  box-shadow:inset 0 0 0 1px var(--focus-ring);
}
.chip-select.is-active {
  border-color:transparent;
  box-shadow:none;
  font-weight:var(--filter-control-active-font-weight);
}
.chip-select-tone-success { background:var(--success-soft); color:var(--success); }
.chip-select-tone-info { background:var(--info-soft); color:var(--info); }
.chip-select-tone-warn { background:var(--warn-soft); color:var(--warn); }
.chip-select-tone-accent { background:var(--filter-active-bg); color:var(--filter-active-text); }
.chip-select-tone-critical { background:var(--critical-soft); color:var(--critical); }
.chip-select-tone-neutral,
.chip-select-tone-muted { background:var(--surface-3); color:var(--text-2); }
.widget-header-filter-select.chip-select {
  background:transparent;
  border-color:transparent;
  color:var(--text-2);
}
.widget-header-filter-select.chip-select:hover,
.widget-header-filter-select.chip-select.is-open,
.widget-header-filter-select.chip-select:focus-within {
  background:var(--surface-2);
}
.widget-header-filter-select.chip-select.is-active {
  background:var(--filter-active-bg);
  color:var(--filter-active-text);
}
.chip-select-label {
  display:inline-flex;
  align-items:center;
  min-width:0;
  max-width:100%;
  height:100%;
  overflow:hidden;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.chip-select-trigger {
  all:unset;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  width:100%;
  height:100%;
  padding:0 calc(var(--filter-control-padding-x) + 16px) 0 var(--filter-control-padding-x);
  border:0 !important;
  border-radius:var(--filter-control-radius);
  background:transparent !important;
  box-shadow:none !important;
  color:inherit;
  font:inherit;
  line-height:inherit;
  outline:0 !important;
  cursor:pointer;
}
.chip-select-trigger:focus,
.chip-select-trigger:focus-visible {
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}
.chip-select-chevron {
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  pointer-events:none;
  color:currentColor;
  opacity:0.65;
}
.chip-select-popover {
  position:absolute;
  z-index:5000;
  top:calc(100% + 6px);
  left:0;
  min-width:max(100%, 188px);
  max-width:min(320px, calc(100vw - 32px));
  padding:5px;
  border:1px solid var(--rule);
  border-radius:var(--radius-container);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
  max-height:min(360px, calc(100vh - 32px));
  overflow-y:auto;
}
.chip-select-popover.is-modal { z-index:var(--z-modal-popover); }
.chip-select-option {
  all:unset;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  min-height:30px;
  padding:6px 8px;
  border-radius:var(--radius-control);
  color:var(--text);
  cursor:pointer;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height:16px;
}
.chip-select-menu-heading {
  margin:0 -5px 4px;
  padding:6px 13px 9px;
  box-shadow:inset 0 -1px 0 var(--rule);
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:16px;
}
.chip-select-option.is-active,
.chip-select-option:hover {
  background:var(--surface-2);
}
.chip-select-option.is-list-heading {
  margin:0 -5px 4px;
  width:calc(100% + 10px);
  padding:6px 13px 9px;
  border-radius:var(--radius-role-none);
  box-shadow:inset 0 -1px 0 var(--rule);
  color:var(--text-3);
  font-weight: var(--font-weight-semibold);
}
.chip-select-option.is-list-heading.is-active,
.chip-select-option.is-list-heading:hover {
  background:transparent;
  color:var(--text-2);
}
.chip-select-option.is-selected {
  color:currentColor;
  font-weight: var(--font-weight-semibold);
}
.chip-select-option.is-list-heading.is-selected {
  font-weight: var(--font-weight-semibold);
}
.chip-select-option-label {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.chip-select-option-check {
  flex:0 0 auto;
  opacity:0.75;
}
.filter-chip-select {
  flex:0 1 auto;
  min-width:0;
  max-width:260px;
}
.source-chip {
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height:1.35;
  white-space:nowrap;
  font-family:inherit;
  letter-spacing:0;
}
.source-chip svg {
  flex-shrink:0;
}
.source-chip-compact {
  font-size: var(--text-sm);
}

.source-chip-critical { color:var(--critical); }
.source-chip-warn     { color:var(--warn); }
.source-chip-success  { color:var(--success); }
.source-chip-info     { color:var(--info); }
.source-chip-accent   { color:var(--calendar-purple); }
.source-chip-pink     { color:var(--calendar-pink); }
.source-chip-neutral  { color:var(--text-2); }
.source-label-critical { color:var(--critical); }
.source-label-warn     { color:var(--warn); }
.source-label-success  { color:var(--success); }
.source-label-info     { color:var(--info); }
.source-label-accent   { color:var(--calendar-purple); }
.source-label-pink     { color:var(--calendar-pink); }
.source-label-neutral  { color:var(--text-2); }

/* Source citation pill used by the assistant composer. App state labels use .chip. */
.src, .src-chip {
  border:0;
  height:20px; padding:0 10px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-mono);
  font-size: var(--text-xs); font-weight: var(--font-weight-medium);
letter-spacing:0;
  border-radius:var(--radius-pill);
  flex-shrink:0; line-height:1; width:auto;
  background:var(--surface-3); color:var(--text-2);
  cursor:pointer;
  vertical-align:baseline;
}
.src-chip-icon {
  width:22px;
  min-width:22px;
  height:22px;
  padding:0;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-role-full);
  background:var(--surface-2);
  color:var(--text-2);
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.04);
}
.src-chip-icon:hover,
.src-chip-icon:focus-visible {
  background:var(--surface);
  color:var(--text);
  border-color:var(--focus-ring);
  box-shadow:inset 0 0 0 1px var(--focus-ring);
}
.src-chip-document {
  color:var(--info);
  background:color-mix(in srgb, var(--info) 9%, var(--surface));
}
.src-chip-record {
  color:var(--accent-selection);
  background:color-mix(in srgb, var(--accent-selection) 8%, var(--surface));
}
.src-chip-cac {
  color:var(--accent);
  background:color-mix(in srgb, var(--accent) 8%, var(--surface));
}
.src-chip-internal {
  color:var(--warn);
  background:color-mix(in srgb, var(--warn) 8%, var(--surface));
}
.src-chip-knowledge {
  color:var(--calendar-purple);
  background:color-mix(in srgb, var(--calendar-purple) 8%, var(--surface));
}












/* ============================================================
 * 6. TABLES — flat, hairline rules, no wrapper chrome
 * ============================================================ */
.table-wrap { background:transparent; border:0; border-radius:var(--radius-role-none); overflow:visible; }

.table-shell {
  display:flex;
  flex-direction:column;
  min-height:0;
}
.table-shell-with-rail {
  flex:1;
}
.table-shell-with-rail > .table-wrap {
  flex:1;
  min-height:0;
  overflow:auto;
  scrollbar-gutter:stable;
}
.table-shell-with-rail .table thead th,
.table-shell-with-rail .tbl thead th {
  position:sticky;
  top:0;
  z-index:2;
}
.table-scroll-region {
  flex:1;
  min-height:0;
  overflow:auto;
  scrollbar-gutter:stable;
}
.widget-table {
  table-layout:auto;
}
.widget-table-headless thead {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
.widget-table-compact th,
.widget-table-compact td {
  height:40px;
  padding:6px 8px;
  font-size: var(--text-body);
  line-height:1.2;
  text-align:left;
  vertical-align:middle;
}
.widget-table-compact th {
  height:30px;
  background:var(--bg);
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.widget-table-compact tbody tr.is-clickable {
  cursor:pointer;
}
.widget-table-compact tbody tr.is-clickable:hover,
.widget-table-compact tbody tr.is-clickable:focus-visible {
  background:var(--hover);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
@media (max-width: 1550px) {
  .awaiting-review-col-from {
    width:92px;
  }
  .awaiting-review-col-subject {
    width:31%;
  }
  .awaiting-review-col-claim {
    width:26%;
  }
  .awaiting-review-table th.widget-table-optional-wide,
  .awaiting-review-table td.widget-table-optional-wide {
    max-width:92px;
  }
}
.widget-scroll-region {
  max-height:var(--data-widget-scroll-h);
}
.data-list-card {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.data-list-card > .card-body,
.data-list-card .card-body.tight {
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}
.data-list-card.awaiting-review-card {
  flex:0 0 auto;
}
.data-list-card.awaiting-review-card > .card-body.tight {
  flex:0 0 auto;
  min-height:auto;
}
.data-list-card.awaiting-review-card.is-empty > .card-body.tight {
  min-height:0;
}
.awaiting-review-card .awaiting-review-list {
  flex:0 0 auto;
  height:clamp(240px, 36vh, 320px);
  max-height:320px;
}
.awaiting-review-card .awaiting-review-list.is-empty {
  height:auto;
  min-height:0;
  max-height:none;
  overflow:visible;
}
.my-work-root .awaiting-review-card.is-empty .table-empty-cell,
.my-work-root .my-docket-card.is-empty .table-empty-cell {
  height:auto;
  padding:0;
  text-align:center;
}
.my-work-root .awaiting-review-card.is-empty .widget-empty-state,
.my-work-root .my-docket-card.is-empty .widget-empty-state,
.my-work-root .my-work-split-widget.is-empty .widget-empty-state {
  min-height:104px;
  padding:30px 16px;
  align-items:center;
  justify-content:center;
}
.data-view-rail {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:44px;
  padding:10px 0;
  border-top:1px solid var(--widget-divider);
  color:var(--text-3);
  font-size:12.5px;
  background:var(--chrome-bg);
}
.data-view-rail-compact {
  min-height:36px;
  padding:8px 0 0;
}
.data-view-rail-copy,
.data-view-rail-actions {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex-wrap:wrap;
}
.data-view-rail-copy span + span::before {
  content:"•";
  margin-right:10px;
  color:var(--text-4);
}
.data-view-rail-actions {
  justify-content:flex-end;
  flex-shrink:0;
}

.tbl, .table {
  width:100%;
  border-collapse:collapse;
  font-size: var(--text-body);
}
.tbl th, .table th {
  text-align:left;
  padding:12px 16px;
  vertical-align:middle;
  font-family:var(--font-sans);
  font-size: var(--text-body);
  text-transform:none;
  letter-spacing:0;
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
  box-shadow:inset 0 -1px 0 var(--rule);
  background:var(--bg);
  white-space:nowrap;
}
.tbl th > input[type="checkbox"]:only-child,
.table th > input[type="checkbox"]:only-child,
.tbl td > input[type="checkbox"]:only-child,
.table td > input[type="checkbox"]:only-child {
  display:block;
  margin:0 auto;
}
.tbl td, .table td {
  padding:14px 16px;
  box-shadow:inset 0 -1px 0 var(--rule);
  vertical-align:middle;
  border:0;
  font-size: var(--text-md);
}
.tbl tr, .table tr { cursor:default; }
.tbl tr.is-clickable,
.table tr.is-clickable,
.tbl tr[tabindex],
.table tr[tabindex],
.tbl tr[role="button"],
.table tr[role="button"] { cursor:pointer; }
.table-text-button {
  display:inline-flex;
  align-items:baseline;
  height:auto;
  padding:0;
  border:0;
  border-radius:var(--radius-label);
  background:transparent;
  box-shadow:none;
  color:var(--text);
  font:inherit;
  line-height:1.3;
}
.table-text-button:not(:disabled):hover {
  color:var(--text);
  text-decoration:underline;
  text-underline-offset:2px;
}
.table-text-button:disabled {
  color:var(--text-3);
  cursor:default;
  opacity:0.65;
}
.tbl tbody tr:hover td, .table tbody tr:hover td { background:var(--hover); }
.tbl tbody tr:last-child td, .table tbody tr:last-child td { box-shadow:none; }

/* Critical / warn / accent row tinting */
.tbl tr.crit td,    .table tr.crit td    { background:#FFFAF9; box-shadow:inset 0 -1px 0 var(--rule); }
.tbl tr.warn td,    .table tr.warn td    { background:#FFFCF3; box-shadow:inset 0 -1px 0 var(--rule); }
.tbl tr.accent td,  .table tr.accent td  { background:var(--surface-2); box-shadow:inset 0 -1px 0 var(--rule); }
/* Pinned documents R7: a pinned row carries the subtlest system purple
   (violet/25) so it stays distinct under any sort. Painted on the ROW, not
   the cells, so the hover cell wash and the packet-selection row tint still
   read on top of it. */
.tbl tbody tr.is-pinned, .table tbody tr.is-pinned { background:var(--color-violet-25); }

.row-list {
  display:grid;
  box-shadow:inset 0 1px 0 var(--rule), inset 0 -1px 0 var(--rule);
}
.list-row {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:10px;
  align-items:start;
  padding:10px 0;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.list-row:last-child {
  box-shadow:none;
}
.list-row.is-clickable {
  cursor:pointer;
}
.list-row.is-clickable:hover {
  background:var(--hover);
}
.list-row.selected {
  background:var(--hover-2);
}
.list-row-icon {
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-3);
}
.list-row-icon.tone-accent { color:var(--accent); }
.list-row-icon.tone-info { color:var(--info); }
.list-row-icon.tone-success { color:var(--success); }
.list-row-icon.tone-warn { color:var(--warn); }
.list-row-icon.tone-critical { color:var(--critical); }
.list-row-icon.tone-pink { color:var(--calendar-pink); }
.list-row-icon.tone-neutral { color:var(--text-3); }
.list-row-main {
  display:grid;
  gap:7px;
  min-width:0;
}
.list-row-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}
.list-row-title-wrap {
  display:grid;
  gap:2px;
  min-width:0;
}
.list-row-title {
  color:var(--text);
  font-size:13.5px;
  font-weight: var(--font-weight-semibold);
  line-height:1.3;
}
.list-row-title > .input {
  width:100%;
}
.list-row-meta,
.list-row-body {
  color:var(--text-3);
  font-size:12.5px;
  line-height:1.45;
}
.list-row-aside {
  flex:0 0 auto;
  color:var(--text-2);
  font-size:12.5px;
  text-align:right;
}
.list-row-body {
  display:grid;
  gap:8px;
}
.row-list-reasons {
  margin:0;
  padding-left:16px;
}

.claims-table {
  table-layout:fixed;
  /* UP09/UP18/UP22/UP29/UP31: fixed columns sum 1336 (Status 172, Claim
     84, select 36); Note flexes with a 134px floor. */
  min-width:1470px;
}
.claims-table-shell {
  min-width:0;
  container-type:inline-size;
}
.app-page-body .claims-table-shell .claims-table-wrap {
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x:contain;
}
/* UP09 (738:5877 cells): rows pad spacing/lg vertical + spacing/md
   horizontal with the row's spacing/lg side padding on the end cells;
   the 36px header band pads spacing/sm + spacing/md (738:5803). */
.claims-table th,
.claims-table td {
  padding:16px 12px;
  min-width:0;
  overflow:hidden;
  vertical-align:middle;
}
/* UP27: the authored 36px/8-12 band metrics need the same specificity as
   the shared D51 selector (which was silently winning with 7/16). F2:
   corners explicitly square. */
/* UP40 follow-up (Dan, 2 Sep): the 46 select tier is ONE central,
   generic mechanism — a table whose header renders the central
   selection atom takes it, purely in CSS; no per-surface token
   rebinding lists. Claims qualifies because its selector always
   renders; documents only while packets renders one; any future table
   with a header selection checkbox qualifies automatically, and every
   selector-less table keeps the 30 base tier. */
table:has(thead .filter-checkbox) {
  --column-head-height: var(--column-head-height-select);
}
/* UP50 note: the [data-col] arm outranks the shared D51 recipe (same
   class/element count otherwise, and sheet order put D51 later). */
.claims-browser-surface .claims-table thead th[data-col] {
  /* UP33/UP40: select-header tier (46); authored 12px horizontal rhythm. */
  padding:0 12px;
  height:var(--column-head-height);
  box-sizing:border-box;
  border-radius:var(--radius-role-none);
}
.claims-browser-surface .claims-table thead th:first-child,
.claims-table td:first-child { padding-left:16px; }
.claims-browser-surface .claims-table thead th:last-child,
.claims-table td:last-child { padding-right:16px; }
/* UP45 (Dan): when a filter group that maps to a visible column is
   active, that column's header takes the central applied-filter purple —
   the same convention as the drawer headings (reinforcement, never the
   sole signal). */
.claims-browser-surface .claims-table thead th.claims-th-filtered {
  color:var(--filter-active-text);
}
/* UP28 (Dan F4): the header and row selection checkboxes share ONE cell
   recipe so they align exactly (the :first-child arms outrank the
   collapse stage's generic edge-padding rules). */
.claims-browser-surface .claims-table thead th:first-child[data-col="select"],
.claims-browser-surface .claims-table tbody td:first-child[data-col="select"] {
  padding:0 2px 0 16px;
  text-align:left;
  vertical-align:middle;
}
/* UP37 (tester): the cell padding owns the checkbox inset — the base
   only-child auto-centring margin would drift it in the collapse stage. */
.claims-browser-surface .claims-table th[data-col="select"] input.filter-checkbox,
.claims-browser-surface .claims-table td[data-col="select"] input.filter-checkbox,
.documents-filtered-table .document-select-heading input.filter-checkbox,
.documents-filtered-table .document-select-cell input.filter-checkbox {
  display:block;
  margin:0;
}










/* UP09 (DH 724-3020): authored column widths; Priority column retired,
   Team split into Attorney/Paralegal (70 each, 28px avatars). */
/* UP31: 36 fits the 18px atom at the authored 16 inset (the frame's 32
   assumed a smaller native box — ledgered). */
.claims-table col[data-col="select"] { width:36px; }
/* UP22 (tester finding): the authored 64px truncated every real claim id
   ("LR-1042" needs ~53px content); readable 84px per the UP18 precedent. */
.claims-table col[data-col="claim"] { width:84px; }
.claims-table col[data-col="lni"] { width:84px; }
/* UP56 (Dan readability override, UP22/UP18 precedent — NOT a Figma
   delta: the authored 110 minus the 12px cell sides leaves only ~86px
   of text room and wraps typical two-word names): 128 buys ~104px of
   text room, taken from the flexing Note column's budget. */
.claims-table col[data-col="claimant"] { width:128px; }
.claims-table col[data-col="doi"] { width:58px; }
.claims-table col[data-col="tags"] { width:104px; }
/* UP18 (Dan override) + UP29 (Dan F6): Note carries readable content and
   is the FLEXING column — no fixed width; it absorbs viewport growth
   (116px minimum via the table's min-width budget). */
.claims-table col[data-col="employer"] { width:150px; }
/* UP29 (Dan F6): Status is FIXED at its chip-seating width; the NOTE
   column is the flexing one so extra viewport width buys readability. */
.claims-table col[data-col="status"] { width:172px; }
.claims-table col[data-col="nextAction"],
.claims-table col[data-col="deadline"] { width:175px; }
.claims-table col[data-col="timeline"] { width:95px; }
.claims-table col[data-col="issues"] { width:58px; }
.claims-table col[data-col="attorney"] { width:70px; }
.claims-table col[data-col="paralegal"] { width:70px; }
.claims-table col[data-col="activity"] { width:70px; }
.claim-id-cell {
  color:var(--text-2);
}
.claim-ref-id {
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  /* UP09 (738:5874): Geist 500 Medium 13, text/primary. */
  font-size:13px;
  font-weight: var(--font-weight-medium);
  color:var(--approved-text-primary);
  letter-spacing:0;
}
.claim-ref-claimant {}
.claim-ref-meta {
  margin-top:1px;
}
.claims-table .cell-muted,
.claims-table .cell-strong {
  min-width:0;
  max-width:100%;
}
.claims-table .chip {
  max-width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}
.claims-table td[data-col="employer"],
.claims-table td[data-col="claimant"],
.claims-table td[data-col="tags"],
.claims-table td[data-col="note"],
.claims-table td[data-col="status"],
.claims-table td[data-col="nextAction"],
.claims-table td[data-col="deadline"] {
  overflow-wrap:anywhere;
}
/* UP09 (738:5886): the status chip is the single-line 20-high central
   chip — the old wrap override is retired with the authored 156px column. */
.claims-table td[data-col="status"] .chip {
  display:inline-flex;
  white-space:nowrap;
}
.claims-table td[data-col="claim"],
.claims-table td[data-col="lni"],
.claims-table td[data-col="doi"],
.claims-table td[data-col="timeline"],
.claims-table td[data-col="issues"] {
  white-space:nowrap;
}
.claims-table td[data-col="issues"] {
  padding-left:8px;
  padding-right:8px;
}
/* UP50 (Dan): avatar cells share the header label's exact left content
   edge in BOTH width stages (matches the th rule's specificity so the
   collapse stage cannot skew them apart). */
.claims-browser-surface .claims-table tbody td[data-col="attorney"],
.claims-browser-surface .claims-table tbody td[data-col="paralegal"] {
  padding-left:12px;
  text-align:left;
}
/* UP43 (738:5867): Activity is Geist 500 12/100% text/subtle, one line. */
.claims-table td[data-col="activity"] {
  font-size:12px;
  line-height:1;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-subtle);
  white-space:nowrap;
}
/* UP44 (738:5857): Issues is plain Geist 500 12/100% muted — no pill. */
.claims-table td[data-col="issues"] .claims-issues-count {
  font-size:12px;
  line-height:1;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-muted);
  white-space:nowrap;
}
/* UP28/UP31: the legacy right-aligned 14px select styling is superseded by
   the shared select-cell recipe + the 18px Filter/Checkbox atom. */
/* UP09: the old red urgency edge-bar on the Next-action cell is retired —
   the authored frame (724-3020) carries urgency through the status chip
   and the red Timeline date. */
.claim-action-stack {
  display:grid;
  gap:4px;
  align-content:start;
}
.claim-action-heading {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.claim-action-heading .cell-strong {
  min-width:90px;
  flex:1 1 110px;
}
.claim-action-heading .chip {
  flex:0 0 auto;
}
/* UP09 (738:5891): relative date Geist 500 12, urgency colour from the
   shared timing-state classes; absolute date mono 11 muted below. The old
   oversized tinted-panel treatment is retired for this table. */
.claims-table td[data-col="timeline"] .deadline-when-days {
  font-size:12px;
  font-weight:var(--font-weight-medium);
  line-height:16px;
  letter-spacing:0;
}
.claims-table td[data-col="timeline"] .deadline-when {
  justify-content:center;
  padding:0;
  border-radius:var(--radius-role-none);
}
.claims-table td[data-col="timeline"] .deadline-when-date {
  margin-top:2px;
  font-size:11px;
  white-space:nowrap;
}
.claims-table td[data-col="tags"] .claim-tag-row {
  margin-top:0;
}
.claims-table td[data-col="tags"] .claim-tag {
  max-width:100%;
}
.claim-note-preview {
  display:-webkit-box;
  overflow:hidden;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.25;
  -webkit-box-orient:vertical;
  /* Dan's review DR5 (15 Sep 2026): four lines of the Table note. */
  -webkit-line-clamp:4;
}
.table th[data-align="end"],
.table td[data-align="end"] { text-align:right; }
.table th[data-align="center"],
.table td[data-align="center"] { text-align:center; }
.table th[data-align="numeric"],
.table td[data-align="numeric"] {
  text-align:right;
  font-variant-numeric:tabular-nums lining-nums;
}
.table th[data-align="data"],
.table td[data-align="data"] {
  font-variant-numeric:tabular-nums lining-nums;
}
.claims-table th:first-child,
.claims-table td:first-child {
  padding-left:14px;
}
/* UP28: the old right-aligned 4/1 select-cell tweak is superseded by the
   shared header/row select recipe above. */

.cell-mono   { font-family:var(--font-mono); font-size: var(--text-body); color:var(--text-2); }
.cell-strong { font-family:var(--font-sans); font-weight: var(--font-weight-medium); color:var(--text); font-size: var(--text-md); letter-spacing:-0.01em; }
.cell-muted  { color:var(--text-3); }

.feedback-table {
  table-layout:fixed;
}
.feedback-table col[data-col="when"] { width:180px; }
.feedback-table col[data-col="who"] { width:180px; }
.feedback-table col[data-col="status"] { width:150px; }
.feedback-comment {
  color:var(--text);
  line-height:1.45;
  overflow-wrap:anywhere;
}
.feedback-status-select {
  width:auto;
  min-width:112px;
  height:28px;
  padding:0 26px 0 10px;
  border:0;
  box-shadow:none;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.feedback-widget-button {
  position:fixed;
  z-index:39;
  width:48px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--ink);
  color:var(--ink-fg);
  box-shadow:var(--shadow-pop);
  cursor:grab;
  touch-action:none;
}
.feedback-widget-button:hover,
.feedback-widget-button:focus-visible {
  background:var(--accent);
}
.feedback-widget-button.is-dragging {
  cursor:grabbing;
}
.feedback-modal-title {
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.feedback-form textarea {
  min-height:118px;
}

/* ============================================================
 * 7. CARDS — hairline ruled, no fill
 * Every card variant in v3 funnels into this one pattern.
 * ============================================================ */
.card,
.card-rule {
  background:transparent;
  border:0;
  border-radius:var(--radius-role-none);
  padding:0;
}
.card-head {
  display:flex; align-items:center; gap:10px;
  padding:14px 2px 12px;
  box-shadow:inset 0 -1px 0 var(--widget-divider);
  margin-bottom:4px;
}
.card-head-title {
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-sans);
  font-size: var(--text-xl); font-weight: var(--font-weight-semibold);
  letter-spacing:-0.03em;
  color:var(--text);
  margin:0;
  line-height:1.3;
  min-height:24px;
}
.card-head-title svg { width:var(--headline-icon-size); height:var(--headline-icon-size); flex-shrink:0; color:var(--text-3); }
.card-head-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:var(--radius-pill);
  background:var(--accent-soft);
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1;
}
.card-head-actions,
.widget-header-actions {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:4px;
}
.header-checkbox-actions {
  gap:var(--space-rhythm);
  flex-wrap:wrap;
  justify-content:flex-end;
}
.header-checkbox-action {
  display:inline-flex;
  align-items:center;
  gap:var(--filter-control-gap);
  min-height:28px;
  padding:0 2px;
  border:0;
  background:transparent;
  color:var(--text-2);
  font-size:var(--filter-control-font-size);
  font-weight:var(--filter-control-font-weight);
  line-height:1.5;
  cursor:pointer;
}
.header-checkbox-action:hover,
.header-checkbox-action:focus-within {
  color:var(--text);
}
.header-checkbox-action input {
  width:13px;
  height:13px;
  margin:0;
  accent-color:var(--accent);
}
.docket-header-controls,
.docket-type-filters,
.docket-view-controls {
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:var(--space-rhythm);
}


.docket-type-filter-deadline input {
  accent-color:var(--critical);
}
.docket-type-filter-task input {
  accent-color:var(--info);
}
.docket-type-filter-appointment input {
  accent-color:var(--success);
}


.btn.widget-header-action {
  height:24px;
  padding-inline:8px;
  font-size: var(--text-sm);
}
.widget-header-command {
  appearance:none;
  min-height:26px;
  padding:0 6px;
  border:0;
  background:transparent;
  color:var(--text-3);
  font:inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
}
.widget-header-command:hover,
.widget-header-command:focus-visible {
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  text-decoration:underline;
  text-underline-offset:3px;
}
.docket-widget-header-actions {
  margin-left:auto;
  gap:8px;
}
.docket-widget-header-actions .docket-maximize-button {
  margin-left:0;
}
.btn-icon.widget-header-action,
.btn-icon.btn-sm.widget-header-action {
  width:24px;
  padding:0;
}
.widget-header-tooltip {
  position:relative;
}
.widget-header-tooltip::after {
  content:attr(data-tooltip);
  position:absolute;
  z-index:var(--z-local-tooltip);
  right:50%;
  bottom:calc(100% + 7px);
  max-width:180px;
  padding:5px 8px;
  border-radius:var(--radius);
  background:var(--text);
  color:var(--surface);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height:1.2;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translate(50%, 2px);
  transition:opacity 120ms ease, transform 120ms ease;
}
.widget-header-tooltip::before {
  content:"";
  position:absolute;
  z-index:var(--z-local-tooltip-tail);
  right:50%;
  bottom:calc(100% + 2px);
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:5px solid var(--text);
  opacity:0;
  pointer-events:none;
  transform:translate(50%, 2px);
  transition:opacity 120ms ease, transform 120ms ease;
}
.widget-header-tooltip:hover::after,
.widget-header-tooltip:focus-visible::after,
.widget-header-tooltip:hover::before,
.widget-header-tooltip:focus-visible::before {
  opacity:1;
  transform:translate(50%, 0);
}
.card-body { padding:14px 2px; }
.card-body.tight { padding:0; }

.widget,
.widget-surface {
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
  padding:var(--widget-padding);
}

/* Boxed card variant — only for drawers/modals/popovers where containment is needed */
.card-boxed {
  background:var(--surface);
  border-radius:var(--radius-widget);
  box-shadow:var(--shadow-card);
}

/* ============================================================
 * 7a. SHARED FLAT PRIMITIVES
 * ============================================================ */

.navigator-list {
  display:grid;
  border-block:1px solid var(--rule);
}
.navigator-row {
  width:100%;
  min-height:44px;
  /* flex, not grid: grid reserved gap space for EMPTY trailing tracks, adding
     ~30px of phantom right padding on copy-only rows */
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid var(--rule);
  border-radius:var(--radius-role-none);
  background:transparent;
  color:var(--text-2);
  text-align:left;
  cursor:pointer;
}
.navigator-row:last-child { border-bottom:0; }
.navigator-row:hover,
.navigator-row:focus-visible {
  background:var(--hover);
}
/* Conversation-list variant of the navigator row (the assistant threads look):
   taller copy-only rows, active = tinted bg + inset left bar. Used by the
   assistant conversations list and the claim issues rail. */



.navigator-row.active {
  background:var(--hover);
  color:var(--text);
}
.navigator-row.disabled {
  cursor:default;
  opacity:0.55;
}
.navigator-row-copy {
  flex:1 1 auto;
  min-width:0;
  display:grid;
  gap:2px;
}
.navigator-row-label {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}
.navigator-row-meta {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.navigator-row-count {
  min-width:22px;
  padding:2px 6px;
  border-radius:var(--radius-pill);
  background:var(--surface-3);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-align:center;
}
.navigator-row.active .navigator-row-count { color:var(--text); }

.review-row {
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px 0;
  border:0;
  border-bottom:1px solid var(--rule);
  background:transparent;
  color:inherit;
  text-align:left;
}
.review-row:last-child { border-bottom:0; }
.review-row-copy {
  min-width:0;
  display:grid;
  gap:3px;
}
.review-row-title {
  color:var(--text);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  line-height:1.35;
}
.review-row-detail,
.review-row-meta {
  color:var(--text-3);
  font-size: var(--text-body);
  line-height:1.35;
}
.list-row-right,
.review-row-action {
  display:inline-flex;
  align-items:center;
  gap:8px;
  justify-content:flex-end;
}

.review-row {
  padding:12px 2px;
}
.review-row-warn > svg { color:var(--warn); }
.review-row-critical > svg { color:var(--critical); }
.review-row-success > svg { color:var(--success); }


/* ============================================================
 * 8. AVATARS
 * ============================================================ */
.avatar {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--ring-light);
  /* UP46 (738:5861): tonal initials are Geist 500. */
  font-weight:var(--font-weight-medium);
  border-radius:var(--radius-role-full);
  font-family:var(--font-sans);
  font-style:normal;
  /* UP46 (738:5861): 28px avatars carry 11px Geist 500 initials. */
  font-size:11px; font-weight: var(--font-weight-medium);
  letter-spacing:-0.02em;
  width:28px; height:28px;
  flex-shrink:0;
}
/* UP46 (Lisa, 738:5861/738:5902): per-person tonal pairs — 100-tint
   circle with same-hue 500 initials, bound to the approved tint pairs
   (error red excluded: semantic). Assigned by the central
   window.avatarToneClass helper; every .avatar consumer takes the look. */
.avatar.tone-blue    { background:var(--approved-feedback-info-bg); color:var(--approved-feedback-info); box-shadow:none; }
.avatar.tone-green   { background:var(--approved-feedback-success-bg); color:var(--approved-feedback-success); box-shadow:none; }
.avatar.tone-amber   { background:var(--approved-feedback-warning-bg); color:var(--approved-feedback-warning); box-shadow:none; }
.avatar.tone-violet  { background:var(--brand-subtle); color:var(--approved-text-brand); box-shadow:none; }
.avatar.xs   { width:20px; height:20px; font-size: var(--text-2xs); }
.avatar.sm   { width:24px; height:24px; font-size: var(--text-xs); }
.avatar.md   { width:28px; height:28px; font-size:11px; } /* UP46 */
.avatar.lg   { width:36px; height:36px; font-size: var(--text-md); }
.avatar.xl   { width:48px; height:48px; font-size: var(--text-xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.04em; }
.avatar.filled { background:var(--ink); color:var(--ink-fg); box-shadow:none; font-weight: var(--font-weight-semibold); }

/* ============================================================
 * 9. FORMS
 * ============================================================ */
/* Central form-control recipe, reconciled to the authored New event modal
   (DH 505:12272 family — round 3, 21 Aug 2026: this NEWEST authored form
   takes precedence over the older 32px DS Form/Select; the calendar event
   form already carried these values): 40px control with a REAL 1px
   neutral-300 border (the old box-shadow ring rendered thinner and was
   clipped by overflow containers), radius/md, 12px inset, 14px text/primary
   values. Selects drop the native arrow for the authored 16px neutral-400
   chevron (token at :root so the glyph colour stays inside the token
   sheet). */
.input, .textarea, .select,
input[type="text"], input[type="search"], input[type="email"], input[type="tel"],
input[type="number"], input[type="date"], textarea, select {
  font-family:inherit; font-size: var(--text-md);
  color:var(--text);
  background:var(--surface);
  border:1px solid var(--approved-border-strong);
  box-shadow:none;
  border-radius:var(--radius-control);
  min-height:40px;
  padding:5px 12px;
  outline:0;
  line-height:1.4;
  width:100%;
  display:block;
}
.select, select {
  appearance:none;
  -webkit-appearance:none;
  padding-right:36px;
  background-image:var(--form-select-chevron);
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:16px 16px;
}
.input-invalid {
  box-shadow:0 0 0 1px var(--critical);
}
.date-input {
  font-variant-numeric:tabular-nums;
}
.field-error {
  color:var(--critical);
  font-size: var(--text-sm);
  line-height:1.4;
}
.input:focus, .textarea:focus, .select:focus,
input[type="text"]:focus, input[type="search"]:focus, input[type="email"]:focus,
input[type="tel"]:focus, input[type="number"]:focus, input[type="date"]:focus,
textarea:focus, select:focus { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.textarea, textarea { height:auto; resize:vertical; min-height:64px; line-height:1.5; }

/* Authored field recipe (New event / correspondence modals): 8px between
   the Label/Strong 13/500 text/secondary label and its control. */
.field { display:flex; flex-direction:column; gap:8px; }
.field-label {
  font-family:var(--font-sans);
  font-size: var(--text-body); text-transform:none; letter-spacing:0;
  font-weight: var(--font-weight-medium); color:var(--approved-text-secondary);
  line-height:1.3;
}
.editable-field { transition:background 0.1s; position:relative; border-radius:var(--radius-control); padding:2px 4px; margin:-2px -4px; }
.editable-field:hover { background:var(--hover-2); }

/* Inline-edit primitives (editing.jsx: EditableChip / EditableField) */
.editable-chip-editor { display:inline-flex; gap:var(--space-1); align-items:center; }
/* Deliberate compact variant: inline chip editing keeps its tiny footprint
   (min-height released from the central 40px control clamp). */
.editable-chip-select { padding:2px var(--space-2); font-size: var(--text-xs); height:auto; min-height:0; min-width:130px; }
.editable-chip-action { padding:2px; height:22px; width:22px; }
.editable-chip-trigger { cursor:pointer; display:inline-flex; }
.editable-field-row { padding:var(--space-3) 0; border-bottom:1px solid var(--border); display:grid; grid-template-columns:110px 1fr auto; gap:var(--space-4); align-items:flex-start; }
.editable-field-label { letter-spacing:0.01em; font-size:10.5px; font-weight: var(--font-weight-medium); padding-top:2px; }
.editable-field-textarea { font-size:12.5px; min-height:60px; }
.editable-field-checkbox { display:flex; gap:var(--space-2); align-items:center; font-size:12.5px; height:28px; }
.editable-field-input { font-size:12.5px; }
.editable-field-actions { display:flex; gap:var(--space-1); }
.editable-field-action { padding:2px; height:24px; width:24px; }
.editable-field-edit-btn { padding:2px; height:22px; width:22px; opacity:0.5; }
.editable-field-display { font-size:12.5px; color:var(--text); cursor:pointer; min-height:18px; padding:2px var(--space-1); margin-left:-var(--space-1); border-radius:var(--radius-control); }

.form-grid { display:grid; gap:12px; }
.new-claim-mode-switch {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin-bottom:14px;
}
.new-claim-mode {
  appearance:none;
  border:1px solid var(--rule);
  background:var(--surface);
  color:var(--text-2);
  border-radius:var(--radius-lg);
  min-height:42px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight: var(--font-weight-semibold);
  cursor:pointer;
}
.new-claim-mode.active {
  background:var(--ink);
  color:var(--ink-fg);
  border-color:var(--ink);
}
.cac-bootstrap-wizard {
  display:grid;
  gap:14px;
}
.cac-bootstrap-hero {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 72px;
  gap:14px;
  align-items:center;
  padding:16px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, var(--surface), var(--bg));
}
.cac-bootstrap-input {
  margin:6px 0 8px;
  min-height:48px;
  font-size:22px;
  font-weight:750;
  letter-spacing:0;
}
.cac-bootstrap-input::placeholder {
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
}
.cac-bootstrap-sync-badge {
  width:58px;
  height:58px;
  border-radius:var(--radius-lg);
  display:grid;
  place-items:center;
  color:var(--ink);
  background:var(--hover-2);
  box-shadow:inset 0 0 0 1px var(--rule);
}
.cac-bootstrap-timeline {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}
.cac-bootstrap-step {
  min-height:58px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:9px 10px;
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:8px;
  align-items:start;
  color:var(--text-3);
  background:var(--surface);
}
.cac-bootstrap-step.done {
  color:var(--text);
  background:#F1FAF4;
  border-color:#CFEFDB;
}
.cac-bootstrap-step.active {
  color:var(--text);
  border-color:var(--ink);
}
.cac-bootstrap-step.failed {
  color:var(--critical);
  border-color:#F0C9C9;
  background:#FFF5F5;
}
.cac-bootstrap-step-icon {
  width:22px;
  height:22px;
  border-radius:var(--radius-pill);
  display:grid;
  place-items:center;
  font-size: var(--text-xs);
  font-weight:750;
  color:inherit;
  background:var(--hover-2);
}
.cac-bootstrap-step.done .cac-bootstrap-step-icon {
  color:#1A7D3A;
  background:#DFF5E7;
}
.cac-bootstrap-step.failed .cac-bootstrap-step-icon {
  color:var(--critical);
  background:#F8DEDE;
}
.cac-bootstrap-step.active .cac-bootstrap-step-icon svg,
.cac-bootstrap-sync-badge.is-active svg {
  animation:spin 1.1s linear infinite;
}
.cac-transfer-showcase {
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, #F4F7FB, var(--surface));
  padding:14px;
  display:grid;
  gap:12px;
  overflow:hidden;
}
.cac-transfer-showcase.is-failed {
  border-color:rgba(185, 28, 28, 0.28);
  background:linear-gradient(180deg, #FFF7F7, var(--surface));
}
.cac-transfer-showcase.is-committing {
  border-color:rgba(36, 114, 79, 0.32);
  background:linear-gradient(180deg, #F1FAF4, var(--surface));
}
.cac-transfer-showcase-head {
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:start;
}
.cac-transfer-eyebrow {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size: var(--text-2xs);
  font-weight:750;
  letter-spacing:0.01em;
  color:#2457A8;
}
.cac-transfer-eyebrow span {
  width:7px;
  height:7px;
  border-radius:var(--radius-pill);
  background:#1A7D3A;
  box-shadow:0 0 0 4px rgba(26, 125, 58, 0.12);
}
.cac-transfer-showcase.is-active .cac-transfer-eyebrow span {
  animation:pulseDot 1.4s ease-in-out infinite;
}
.cac-transfer-showcase.is-committing .cac-transfer-eyebrow {
  color:#24724F;
}
.cac-transfer-showcase.is-failed .cac-transfer-eyebrow {
  color:var(--critical);
}
.cac-transfer-showcase.is-failed .cac-transfer-eyebrow span {
  background:var(--critical);
  box-shadow:0 0 0 4px rgba(185, 28, 28, 0.10);
}
.cac-transfer-showcase h3 {
  margin:5px 0 0;
  font-size: var(--text-xl);
  line-height:1.2;
  letter-spacing:-0.01em;
}
.cac-transfer-claim-pill {
  padding:6px 9px;
  border-radius:var(--radius-pill);
  background:var(--surface);
  border:1px solid var(--rule);
  color:var(--text-2);
  font-size: var(--text-sm);
  white-space:nowrap;
}
.cac-transfer-canvas {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 160px minmax(0, 1fr);
  gap:10px;
  align-items:stretch;
}
.cac-transfer-system {
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  overflow:hidden;
  min-width:0;
}
.cac-transfer-system.source {
  border-color:#B9CBE9;
}
.cac-transfer-system.target {
  border-color:#B9DFC8;
}
.cac-transfer-showcase.is-committing .cac-transfer-system.target {
  box-shadow:inset 0 0 0 1px rgba(36, 114, 79, 0.16), 0 0 0 3px rgba(36, 114, 79, 0.07);
}
.cac-transfer-system-head {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  color:white;
}
.cac-transfer-system.source .cac-transfer-system-head {
  background:#2457A8;
}
.cac-transfer-system.target .cac-transfer-system-head {
  background:#24724F;
}
.cac-transfer-system-head > span {
  width:30px;
  height:30px;
  border-radius:var(--radius-lg);
  display:grid;
  place-items:center;
  background:rgba(255,255,255,0.16);
  flex-shrink:0;
}
.cac-transfer-system-head strong,
.cac-transfer-system-head small {
  display:block;
  line-height:1.2;
}
.cac-transfer-system-head strong {
  font-size: var(--text-md);
  font-weight:750;
}
.cac-transfer-system-head small {
  margin-top:2px;
  font-size: var(--text-2xs);
  letter-spacing:0.01em;
  opacity:0.82;
}
.cac-transfer-system-body {
  display:grid;
  gap:1px;
  padding:8px;
  background:var(--bg);
}
.cac-transfer-category {
  min-height:28px;
  display:grid;
  grid-template-columns:24px minmax(0, 1fr) max-content;
  gap:8px;
  align-items:center;
  padding:6px 8px;
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text-2);
  font-size: var(--text-sm);
}
.cac-transfer-category-icon {
  width:22px;
  height:22px;
  border-radius:var(--radius);
  display:grid;
  place-items:center;
  background:var(--hover-2);
  color:var(--text-2);
}
.cac-transfer-category strong {
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  color:var(--text-3);
}
.cac-transfer-system.source .cac-transfer-category-icon {
  color:#2457A8;
  background:#E7EFFB;
}
.cac-transfer-system.target .cac-transfer-category-icon {
  color:#24724F;
  background:#E5F4EA;
}
.cac-transfer-channel {
  min-height:220px;
  position:relative;
  display:grid;
  place-items:center;
  color:#24724F;
}
.cac-transfer-line {
  position:absolute;
  left:-10px;
  right:-10px;
  top:72px;
  height:2px;
  background:linear-gradient(90deg, #2457A8 0%, #24724F 100%);
  opacity:0.34;
}
.cac-transfer-flow-dot {
  position:absolute;
  top:-4px;
  left:0;
  width:10px;
  height:10px;
  border-radius:var(--radius-pill);
  background:#2457A8;
  box-shadow:0 0 0 4px rgba(36, 87, 168, 0.12);
  opacity:0;
}
.cac-transfer-flow-dot:nth-child(2) {
  animation-delay:0.45s;
}
.cac-transfer-flow-dot:nth-child(3) {
  animation-delay:0.9s;
}
.cac-transfer-showcase.is-active .cac-transfer-flow-dot {
  animation:transferDot 1.8s linear infinite;
}
.cac-transfer-showcase.is-committing .cac-transfer-flow-dot {
  background:#24724F;
  box-shadow:0 0 0 4px rgba(36, 114, 79, 0.12);
}
.cac-transfer-status {
  width:138px;
  display:grid;
  gap:7px;
  text-align:center;
  color:var(--text);
}
.cac-transfer-status span {
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  letter-spacing:0.01em;
  color:var(--text-3);
}
.cac-transfer-progress {
  height:7px;
  border-radius:var(--radius-pill);
  background:#DCE5F2;
  overflow:hidden;
}
.cac-transfer-progress i {
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, #2457A8, #24724F);
  transition:width 0.28s ease;
}
.cac-transfer-status strong {
  font-family:var(--font-mono);
  font-size:20px;
  letter-spacing:-0.02em;
}
.cac-transfer-log {
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  overflow:hidden;
}
.cac-transfer-log-head {
  min-height:34px;
  padding:8px 12px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  background:var(--bg);
  border-bottom:1px solid var(--rule);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  letter-spacing:0.01em;
  color:var(--text-3);
}
.cac-transfer-log-head span:last-child {
  color:var(--text-3);
}
.cac-transfer-log-head span:last-child.is-live,
.cac-transfer-log-head span:last-child.is-complete {
  color:#24724F;
}
.cac-transfer-log-rows {
  max-height:122px;
  overflow:hidden;
}
.cac-transfer-log-row {
  display:grid;
  grid-template-columns:28px 22px 76px minmax(0, 1fr) 58px 50px;
  gap:8px;
  align-items:center;
  min-height:30px;
  padding:5px 12px;
  border-bottom:1px solid var(--rule-soft);
  font-size: var(--text-xs);
  color:var(--text-2);
}
.cac-transfer-log-time,
.cac-transfer-log-cat,
.cac-transfer-log-meta,
.cac-transfer-log-status {
  font-family:var(--font-mono);
}
.cac-transfer-log-time,
.cac-transfer-log-meta {
  color:var(--text-3);
}
.cac-transfer-log-icon {
  width:20px;
  height:20px;
  border-radius:var(--radius-role-sm);
  display:grid;
  place-items:center;
  color:#2457A8;
  background:#E7EFFB;
}
.cac-transfer-log-cat {
  font-size:9.5px;
  letter-spacing:0.1em;
  font-weight:750;
  color:#2457A8;
}
.cac-transfer-log-name {
  color:var(--text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight: var(--font-weight-semibold);
}
.cac-transfer-log-status {
  justify-self:end;
  color:#24724F;
  font-size: var(--text-2xs);
  font-weight:750;
}
.cac-transfer-log-status.wait {
  color:var(--text-3);
}
.cac-transfer-log-status.live {
  color:#2457A8;
}
.cac-transfer-log-status.sync,
.cac-transfer-log-status.file,
.cac-transfer-log-status.task {
  color:#24724F;
}
.cac-transfer-log-status.miss {
  color:var(--critical);
}
.cac-transfer-log-row.cat-parties .cac-transfer-log-icon,
.cac-transfer-log-row.cat-parties .cac-transfer-log-cat {
  color:#7457B8;
}
.cac-transfer-log-row.cat-docs .cac-transfer-log-icon,
.cac-transfer-log-row.cat-docs .cac-transfer-log-cat {
  color:#A86525;
}
.cac-transfer-log-row.cat-medical .cac-transfer-log-icon,
.cac-transfer-log-row.cat-medical .cac-transfer-log-cat {
  color:#B84646;
}
.cac-transfer-log-row.cat-pay .cac-transfer-log-icon,
.cac-transfer-log-row.cat-pay .cac-transfer-log-cat,
.cac-transfer-log-row.cat-legal .cac-transfer-log-icon,
.cac-transfer-log-row.cat-legal .cac-transfer-log-cat {
  color:#24724F;
}
@keyframes transferDot {
  0% { transform:translateX(0); opacity:0; }
  12% { opacity:1; }
  84% { opacity:1; }
  100% { transform:translateX(154px); opacity:0; }
}
@keyframes pulseDot {
  0%, 100% { opacity:1; transform:scale(1); }
  50% { opacity:0.45; transform:scale(0.86); }
}
@media (prefers-reduced-motion: reduce) {
  .cac-transfer-showcase.is-active .cac-transfer-eyebrow span,
  .cac-transfer-showcase.is-active .cac-transfer-flow-dot {
    animation:none;
  }
  .cac-transfer-progress i {
    transition:none;
  }
}
.cac-bootstrap-step strong,
.cac-bootstrap-step small {
  display:block;
  line-height:1.25;
}
.cac-bootstrap-step strong {
  font-size: var(--text-sm);
}
.cac-bootstrap-step small {
  margin-top:3px;
  font-size: var(--text-xs);
  color:var(--text-3);
  overflow-wrap:anywhere;
}
.cac-bootstrap-review {
  display:grid;
  gap:10px;
}
.cac-bootstrap-review-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap:10px;
}
.cac-bootstrap-panel {
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:12px;
  background:var(--bg);
  min-width:0;
}
.cac-bootstrap-panel h3 {
  margin:6px 0 10px;
  font-size:22px;
  line-height:1.1;
  letter-spacing:0;
}
.cac-bootstrap-facts {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin:0;
}
.cac-bootstrap-facts div {
  padding:9px;
  border-radius:var(--radius);
  background:var(--surface);
  min-width:0;
}
.cac-bootstrap-facts dt {
  font-size: var(--text-xs);
  color:var(--text-3);
}
.cac-bootstrap-facts dd {
  margin:2px 0 0;
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.cac-bootstrap-group-list {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.cac-bootstrap-field-chip-list {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.cac-bootstrap-policy-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin:0 0 10px;
}
.cac-bootstrap-policy-grid > div {
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:10px;
  min-width:0;
}
.cac-bootstrap-policy-grid strong {
  display:block;
  font-size: var(--text-sm);
  margin-bottom:4px;
}
.cac-bootstrap-policy-grid p {
  margin:0;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
}
.cac-bootstrap-extracted-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}
.cac-bootstrap-extracted-section {
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:10px;
  min-width:0;
}
.cac-bootstrap-extracted-section h4 {
  display:flex;
  align-items:center;
  gap:6px;
  margin:0 0 8px;
  font-size: var(--text-body);
  letter-spacing:0;
}
.cac-bootstrap-extracted-section dl {
  display:grid;
  gap:6px;
  margin:0;
}
.cac-bootstrap-extracted-section div {
  min-width:0;
}
.cac-bootstrap-extracted-section dt {
  font-size: var(--text-2xs);
  color:var(--text-3);
}
.cac-bootstrap-extracted-section dd {
  margin:1px 0 0;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.cac-bootstrap-panel-head {
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:10px;
}
.cac-bootstrap-doc-list {
  display:grid;
  gap:8px;
  max-height:240px;
  overflow:auto;
}
.cac-bootstrap-doc-card {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr) max-content;
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-lg);
  background:var(--surface);
}
.cac-bootstrap-doc-card input {
  width:14px;
  height:14px;
  box-shadow:none;
}
.cac-bootstrap-doc-card strong,
.cac-bootstrap-doc-card small {
  display:block;
  overflow-wrap:anywhere;
}
.cac-bootstrap-doc-card small {
  color:var(--text-3);
  margin-top:2px;
}
.cac-bootstrap-warnings {
  display:grid;
  gap:6px;
  color:var(--warn);
  font-size: var(--text-body);
}
.cac-bootstrap-warnings > div {
  display:flex;
  align-items:center;
  gap:6px;
}
.cac-bootstrap-not-found {
  display:grid;
  grid-template-columns:38px minmax(0, 1fr);
  gap:12px;
  align-items:start;
  border-color:#F0C9C9;
  background:#FFF8F8;
}
.cac-bootstrap-not-found-icon {
  width:32px;
  height:32px;
  border-radius:var(--radius-lg);
  display:grid;
  place-items:center;
  color:var(--critical);
  background:#F8DEDE;
}
.cac-bootstrap-not-found h3 {
  margin:4px 0 6px;
}
.cac-bootstrap-not-found p {
  margin:0;
  color:var(--text-2);
  line-height:1.45;
}
.check-row {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  color:var(--text-2);
  font-size: var(--text-body);
}
.check-row input {
  width:auto;
  box-shadow:none;
}

/* ============================================================
 * 10. TABS
 * ============================================================ */
.tabs {
  --tabs-active-x:3px;
  --tabs-active-width:0px;
  position:relative;
  display:inline-flex;
  align-self:flex-start;
  flex-shrink:0;
  width:fit-content;
  max-width:100%;
  min-height:var(--tabs-control-height);
  align-items:center;
  gap:2px;
  padding:var(--tabs-track-padding);
  overflow-x:auto;
  /* DH Calendar / View Switcher: track is borderless bg/subtle (neutral-40). */
  border:0;
  border-radius:var(--radius-tab-track);
  background:var(--color-neutral-40);
  box-shadow:none;
}
.tabs.has-floating-labels {
  overflow:visible;
}
.tabs-indicator {
  position:absolute;
  z-index:0;
  top:var(--tabs-track-padding);
  bottom:var(--tabs-track-padding);
  left:0;
  width:var(--tabs-active-width);
  min-width:var(--tabs-active-width);
  inline-size:var(--tabs-active-width);
  border-radius:var(--radius-control);
  /* DH active segment: bg/surface + Elevation/100 (no gradient). */
  background:var(--surface);
  box-shadow:var(--elevation-100);
  transform:translateX(var(--tabs-active-x));
  transition:transform 360ms cubic-bezier(0.2, 0.82, 0.16, 1),
    width 300ms cubic-bezier(0.22, 0.75, 0.16, 1);
  will-change:transform, width;
}
.tabs-indicator.is-manual-motion {
  transition:none;
}
.tabs-floating-label {
  position:absolute;
  z-index:4;
  top:calc(var(--tabs-floating-label-gap) * -1);
  left:0;
  max-width:180px;
  padding:var(--tabs-floating-label-padding);
  border-radius:var(--tabs-floating-label-radius);
  background:var(--tabs-floating-label-bg);
  color:var(--tabs-floating-label-color);
  box-shadow:var(--tabs-floating-label-shadow);
  font-size:var(--tabs-item-font-size);
  font-weight:var(--tabs-active-font-weight);
  line-height:1.1;
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
  transform:translate3d(var(--tabs-floating-label-x, 0px), -100%, 0) translateX(-50%) translateY(2px);
  transition:transform 220ms cubic-bezier(0.22, 0.75, 0.16, 1),
    opacity 150ms ease;
  will-change:transform, opacity;
}
.tabs-floating-label::after {
  content:'';
  position:absolute;
  left:50%;
  bottom:calc(var(--tabs-floating-label-pointer-size) / -2);
  width:var(--tabs-floating-label-pointer-size);
  height:var(--tabs-floating-label-pointer-size);
  border-radius:var(--radius-role-none);
  background:inherit;
  transform:translateX(-50%) rotate(45deg);
}
.tabs-floating-label.is-visible {
  opacity:1;
  transform:translate3d(var(--tabs-floating-label-x, 0px), -100%, 0) translateX(-50%) translateY(0);
}
.tab {
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:var(--tabs-item-gap);
  min-height:var(--tabs-item-min-height);
  padding:var(--tabs-item-padding);
  border:0;
  border-radius:var(--radius-control);
  color:var(--text-2);
  background:transparent;
  cursor:pointer;
  font:inherit;
  font-size:var(--tabs-item-font-size);
  font-weight:var(--tabs-item-font-weight);
  line-height:1.15;
  white-space:nowrap;
  transition:color 150ms ease;
}
.tab:hover,
.tab:focus-visible,
.tab.active { color:var(--text); }
.tab:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.tab.active {
  font-weight:var(--tabs-active-font-weight);
  box-shadow:none;
}
/* Modal-size segmented variant — authored New event Category control
   (DH 505:12285/12286): 36px track with 4px pad on bg/subtle, 28px
   equal-width segments (authored full-width thirds; authored radius 6 maps
   to the governed radius/control under Lisa 07). */
.tabs.tabs-modal {
  --tabs-track-padding: 4px;
  --tabs-item-min-height: 28px;
  --tabs-control-height: 36px;
  width:100%;
  align-self:stretch;
}
.tabs.tabs-modal .tab { flex:1; justify-content:center; }
.tabs-leading-label {
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  min-height:var(--tabs-item-min-height);
  max-width:var(--tabs-leading-label-max-width);
  padding:0 6px 0 7px;
  overflow:hidden;
  color:var(--text-3);
  font-size:var(--tabs-item-font-size);
  font-weight:var(--tabs-item-font-weight);
  line-height:1;
  white-space:nowrap;
  transform:translateX(0);
  transition:max-width 360ms cubic-bezier(0.22, 0.75, 0.16, 1),
    opacity 260ms ease,
    padding 360ms cubic-bezier(0.22, 0.75, 0.16, 1),
    transform 320ms cubic-bezier(0.22, 0.75, 0.16, 1);
}
.tabs-leading-label.is-hidden {
  max-width:0;
  padding-inline:0;
  opacity:0;
  transform:translateX(-4px);
}
.tab.is-icon-only {
  overflow:hidden;
  justify-content:center;
  width:var(--tabs-icon-only-size);
  padding:5px;
  gap:0;
}
.tabs:not(.has-floating-labels) .tab.is-icon-only:hover,
.tabs:not(.has-floating-labels) .tab.is-icon-only:focus-visible {
  width:auto;
  justify-content:flex-start;
  gap:var(--tabs-item-gap);
  padding:var(--tabs-item-padding);
}
.tab-collapsible-label,
.tab-collapsible-count {
  max-width:0;
  opacity:0;
  overflow:hidden;
  transform:translateX(-3px);
  white-space:nowrap;
  transition:max-width 360ms cubic-bezier(0.22, 0.75, 0.16, 1),
    opacity 240ms ease,
    transform 320ms cubic-bezier(0.22, 0.75, 0.16, 1);
}
.tab.is-icon-only .tab-collapsible-count {
  min-height:0;
  padding-inline:0;
}
.tabs:not(.has-floating-labels) .tab.is-icon-only:hover .tab-collapsible-label,
.tabs:not(.has-floating-labels) .tab.is-icon-only:focus-visible .tab-collapsible-label {
  max-width:120px;
  opacity:1;
  transform:translateX(0);
}
.tabs:not(.has-floating-labels) .tab.is-icon-only:hover .tab-collapsible-count,
.tabs:not(.has-floating-labels) .tab.is-icon-only:focus-visible .tab-collapsible-count {
  max-width:48px;
  min-height:17px;
  padding-inline:6px;
  opacity:1;
  transform:translateX(0);
}
.tabs:not(.has-moving-indicator) .tab.active {
  background:var(--surface);
  box-shadow:var(--elevation-100);
}
/* Central semantic filter role (Lisa: purple marks filters; authored on the
   DH 143:4478 Day Planner filter-tabs). Independent 30px filter controls —
   deliberately NOT the grey/white navigation segmented track above. */
.filter-option-group { display:flex; align-items:center; gap:4px; }
.filter-option {
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:30px;
  padding:0 12px;
  border:0;
  border-radius:var(--radius-role-md);
  background:transparent;
  color:var(--text-2);
  cursor:pointer;
  font:inherit;
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  line-height:1.15;
}
.filter-option:hover { background:var(--hover); }
.filter-option:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
/* Pressed toggle recipe: also the Worklist "Stickies" rail toggle when the
   rail is shown (Figma 662:5003: fill = violet-25, icon = the primary purple). */
.filter-option[aria-pressed="true"],
.claim-stickies-toggle[aria-pressed="true"] { background:var(--color-violet-25); color:var(--color-purple-500); }
.filter-option-count { color:var(--text-3); font-size:12px; }
.filter-option[aria-pressed="true"] .filter-option-count { color:inherit; }
.tab-count {
  display:inline-flex;
  align-items:center;
  min-height:17px;
  padding:1px 6px;
  border-radius:var(--radius-role-sm);
  color:var(--text-3);
  background:var(--surface-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height:1;
}
/* On the white Elevation/100 active segment a surface chip would vanish;
   surface-2 keeps the count legible without redesigning Badge/Count. */
.tab.active .tab-count { color:var(--text-3); background:var(--surface-2); }
@media (prefers-reduced-motion: reduce) {
  .tabs-indicator {
    transition:none;
  }
}

/* Inbox toolbar (the retired .inbox-tab pill variant was removed 5 Jul 2026 —
   all strips render the designed .tabs track via CountTabs) */
.inbox-toolbar {
  display:flex; align-items:center; gap:6px;
  padding:12px 24px;
  box-shadow:inset 0 -1px 0 var(--rule);
  flex-wrap:wrap;
}
.inbox-detail-view {
  display:grid;
  gap:12px;
}
.inbox-detail-topbar {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:0 0 10px;
  border-bottom:1px solid var(--rule);
}
.inbox-detail-heading {
  min-width:0;
}
.inbox-detail-title {
  color:var(--text);
  font-size:16px;
  font-weight:720;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inbox-detail-shell {
  background:var(--surface);
}
.inbox-detail-grid { display:grid; grid-template-columns:1fr 420px; gap:0; height:100%; margin:-var(--space-7); }
.inbox-detail-shell .inbox-detail-grid {
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  height:auto;
  min-height:min(820px, calc(100vh - 210px));
  margin:0;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--surface);
}
.inbox-detail-view-workspace {
  min-height:0;
  height:100%;
  display:flex;
  flex-direction:column;
}
.inbox-detail-view-workspace .inbox-detail-shell {
  min-height:0;
  flex:1;
  display:flex;
}
.inbox-detail-view-workspace .inbox-detail-grid {
  width:100%;
  min-height:0;
  height:100%;
  border:0;
  border-radius:var(--radius-role-none);
}
.inbox-detail-view-workspace .inbox-workspace-body {
  padding:0;
}

/* Inbox detail source/preview/workspace (tokenized from lx-* one-offs) */
.inbox-empty-state { padding:40px; }
.inbox-row-confidence { margin-left:var(--space-1); }
.inbox-row-logical-note { color:var(--warn); margin-left:var(--space-2); }
.inbox-source-pane { background:var(--surface-2); padding:var(--space-9); overflow-y:auto; border-right:1px solid var(--border); }
.inbox-source-header { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-5); }
.inbox-source-heading { flex:1; min-width:0; }
.inbox-source-title { font-weight: var(--font-weight-semibold); font-size: var(--text-body); }
.inbox-preview-page { min-height:600px; }
.inbox-preview-page-label { text-align:center; margin-bottom:var(--space-9); font-size: var(--text-xs); color:var(--doc-mock-muted); }
.inbox-preview-letterhead { border-bottom:2px solid var(--doc-mock-letterhead); padding-bottom:var(--space-5); margin-bottom:var(--space-7); }
.inbox-preview-sender { font-size: var(--text-md); font-weight: var(--font-weight-bold); font-family:var(--font-sans); }
.inbox-preview-sender-detail { font-size: var(--text-2xs); color:var(--text-3); margin-top:2px; }
.inbox-preview-subject { margin-bottom:var(--space-6); }
.inbox-preview-paragraph { margin:var(--space-3) 0; }
.inbox-preview-placeholder { margin:var(--space-3) 0; color:var(--text-3); }
.inbox-preview-pager { display:flex; justify-content:center; gap:var(--space-2); margin-top:var(--space-5); }
.inbox-preview-page-thumb { width:28px; height:36px; border:1px solid var(--border); border-radius:var(--radius-xs); font-size:9px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.inbox-workspace-pane { display:flex; flex-direction:column; overflow:hidden; }
.inbox-workspace-body { flex:1; overflow-y:auto; padding:var(--space-7); }
.inbox-filed-banner { padding:var(--space-5); background:var(--banner-filed-bg); border:1px solid var(--banner-filed-border); border-radius:var(--radius); margin-bottom:var(--space-5); }
.inbox-filed-banner-title { font-size: var(--text-sm); font-weight: var(--font-weight-semibold); color:var(--banner-filed-ink); margin-bottom:var(--space-1); display:flex; align-items:center; gap:var(--space-1); }
.inbox-filed-banner-time { color:var(--banner-filed-muted); }
.inbox-filed-to-label { margin-bottom:var(--space-2); font-size: var(--text-sm); font-weight: var(--font-weight-medium); }
.inbox-removed-banner { padding:var(--space-5); background:var(--banner-removed-bg); border:1px solid var(--banner-removed-border); border-radius:var(--radius); margin-bottom:var(--space-5); }
.inbox-removed-banner-title { font-size: var(--text-sm); font-weight: var(--font-weight-semibold); color:var(--banner-removed-ink); margin-bottom:var(--space-1); }
.inbox-removed-banner-reason { color:var(--banner-removed-accent); }
.inbox-manual-claim-picker { margin-top:var(--space-3); max-height:240px; overflow-y:auto; border:1px solid var(--border); border-radius:var(--radius); }
.inbox-manual-claim-search { border-radius:var(--radius-role-none); border:none; border-bottom:1px solid var(--border); }
.inbox-manual-claim-empty { margin-top:var(--space-1); }
.inbox-upload-dropzone { margin-bottom:var(--space-5); padding:var(--space-7); border:1.5px dashed var(--border-strong); border-radius:var(--radius); text-align:center; cursor:pointer; background:var(--surface-2); }
.inbox-upload-filename { font-size:12.5px; margin-top:var(--space-2); }
.inbox-upload-hint { margin-top:2px; }
.inbox-dev-fixture-list { display:flex; flex-wrap:wrap; gap:var(--space-1); padding:var(--space-1); border:1px solid var(--border); border-radius:var(--radius-sm); min-height:28px; align-items:center; }

.inbox-viewer-toggle {
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:2px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
  margin-left:auto;
}
.inbox-viewer-toggle-button {
  min-height:24px;
  padding:3px 8px;
  border:0;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--text-3);
  font:inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  cursor:pointer;
}
.inbox-viewer-toggle-button:hover {
  color:var(--text);
  background:var(--hover-2);
}
.inbox-viewer-toggle-button:disabled {
  color:var(--text-4);
  cursor:not-allowed;
  background:transparent;
  box-shadow:none;
}
.inbox-viewer-toggle-button.active {
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--ring-light);
}
.inbox-markdown-viewer {
  min-height:520px;
  max-height:calc(100vh - 310px);
  overflow:auto;
  padding:18px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--ring-light);
}
.inbox-pdf-embed-shell {
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:640px;
  height:calc(100vh - 280px);
  overflow:hidden;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--ring-light);
}
.inbox-pdf-embed-shell .inbox-anchor-viewer {
  flex:1;
  min-height:0;
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
}
.inbox-pdf-embed-shell .pdf-anchor-pages {
  flex:1;
  min-height:0;
  max-height:none;
  width:100%;
  overflow:auto;
}
.inbox-pdf-embed-shell .pdf-anchor-page {
  max-width:100%;
}
.inbox-pdf-embed-shell .pdf-anchor-canvas {
  max-width:100%;
  height:auto;
}
.inbox-pdf-embed {
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:var(--surface);
}
.inbox-pdf-loading-state {
  display:grid;
  min-height:100%;
  place-items:center;
  padding:24px;
  color:var(--muted);
  text-align:center;
}
.inbox-pdf-loading-state.has-error {
  color:var(--text);
}
.inbox-pdf-error-card {
  display:grid;
  gap:10px;
  max-width:420px;
  text-align:left;
}
.inbox-pdf-error-card p {
  margin:0;
  color:var(--text-3);
  font-size: var(--text-body);
  line-height:1.5;
}
.inbox-pdf-error-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.inbox-pdf-reader-actions {
  position:absolute;
  right:12px;
  bottom:12px;
  display:flex;
  gap:8px;
  align-items:center;
}
.inbox-pdf-reader-actions > .btn {
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}
.inbox-markdown-content {
  max-width:760px;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.58;
}
.inbox-markdown-content h2,
.inbox-markdown-content h3,
.inbox-markdown-content h4 {
  margin:0 0 10px;
  color:var(--text);
  font-weight:720;
  line-height:1.25;
}
.inbox-markdown-content h2 { font-size: var(--text-xl); }
.inbox-markdown-content h3 { font-size: var(--text-lg); }
.inbox-markdown-content h4 { font-size: var(--text-body); }
.inbox-markdown-content p,
.inbox-markdown-content ul {
  margin:0 0 10px;
}
.inbox-markdown-content ul {
  padding-left:20px;
}
.inbox-markdown-content li {
  margin:0 0 4px;
}
.inbox-markdown-content code {
  padding:1px 4px;
  border-radius:var(--radius-sm);
  background:var(--surface-3);
  font-family:var(--font-mono);
  font-size: var(--text-sm);
}
.inbox-markdown-content a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:2px;
}
.inbox-upload-ocr {
  min-height:142px;
  font-family:var(--font-mono);
  font-size: var(--text-sm);
}
/* ============================================================
 * 11. FILTER BAR (legacy v3) → small pill buttons
 * ============================================================ */
.filter-bar {
  display:flex; align-items:center; gap:6px;
  padding:var(--page-gutter-top) var(--page-gutter) 0;
  box-shadow:none;
  background:var(--canvas-bg);
  flex-wrap:wrap;
  overflow:visible;
}
.filter-bar .filter-search {
  flex:0 1 280px;
  width:auto;
  max-width:320px;
  height:28px;
  padding:0 10px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  box-shadow:none;
}
.filter-bar .filter-search:focus-within {
  background:var(--surface);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.filter-bar .filter-search input {
  font-size:12.5px;
}
.view-control-stack {
  display:grid;
  align-content:start;
  justify-items:start;
  gap:var(--space-rhythm);
}
.document-view-row {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-rhythm);
  flex-wrap:wrap;
}
.document-view-row-actions {
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--space-3);
}
.view-control-stack > .filter-bar {
  width:100%;
  padding-top:0;
}
.filter-bar-spacer {
  flex:1 1 auto;
  min-width:8px;
}
.filter-bar-actions {
  margin-left:auto;
  padding-left:var(--space-rhythm);
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.toggle-switch {
  --toggle-w:38px;
  --toggle-h:22px;
  --toggle-pad:2px;
  --toggle-knob:calc(var(--toggle-h) - var(--toggle-pad) * 2);
  position:relative;
  display:inline-flex;
  align-items:center;
  width:var(--toggle-w);
  height:var(--toggle-h);
  flex:0 0 auto;
  padding:0;
  border:0;
  border-radius:var(--radius-pill);
  background:var(--surface-3);
  box-shadow:inset 0 0 0 1px var(--rule);
  cursor:pointer;
  transition:background 160ms ease, box-shadow 160ms ease;
}
.toggle-switch > span {
  position:absolute;
  top:var(--toggle-pad);
  left:var(--toggle-pad);
  width:var(--toggle-knob);
  height:var(--toggle-knob);
  border-radius:var(--radius-role-full);
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04);
  transition:transform 180ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.toggle-switch:hover {
  background:color-mix(in srgb, var(--text-4) 30%, var(--surface-3));
}
.toggle-switch.is-on {
  /* CS25 item 4: every selected/active state in the system is the primary
     purple accent; no authored Switch exists in the DS or DH files, so the
     ON track binds to the dominant-action token (was raw off-palette teal). */
  background:var(--action-dominant-bg);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--action-dominant-bg) 80%, transparent);
}
.toggle-switch.is-on > span {
  transform:translateX(calc(var(--toggle-w) - var(--toggle-h)));
}
.toggle-switch:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.toggle-switch:disabled {
  cursor:not-allowed;
  opacity:0.55;
}
.filtered-table-toolbar {
  align-items:center;
  column-gap:var(--space-7);
  row-gap:var(--space-3);
  padding:var(--space-rhythm) 0 0;
  background:var(--canvas-bg);
  flex-direction:row;
  flex-wrap:wrap;
}
.filtered-table-toolbar .filtered-table-search {
  flex:0 0 auto;
  width:min(320px, 100%);
  max-width:320px;
  height:28px;
  padding:0 10px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  box-shadow:none;
}
.filtered-table-summary {
  min-height:28px;
  display:flex;
  align-items:center;
  gap:var(--space-2);
  flex:0 1 auto;
  max-width:100%;
  min-width:0;
  padding:0;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  color:var(--text-2);
  flex-wrap:wrap;
}
.filtered-table-summary.is-empty {
  display:none;
  min-width:0;
  flex-basis:0;
}
.filtered-table-summary-label {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing:0;
  text-transform:none;
}
.filtered-table-chip {
  max-width:min(280px, 100%);
  white-space:nowrap;
  cursor:default;
}
.filtered-table-chip > span {
  overflow:hidden;
  text-overflow:ellipsis;
}
.filtered-table-chip button,
.filter-reset {
  border:0;
  background:transparent;
  color:var(--text-3);
  font:inherit;
  font-size:var(--text-sm);
  padding:4px 6px;
  border-radius:var(--radius-control);
  cursor:pointer;
}
.filter-reset:hover,
.filter-reset:focus-visible { color:var(--text); background:var(--hover); }

.filtered-table-clear {
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
.filtered-table-chip button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.filtered-table-clear {
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-medium);
  padding:0 2px;
}
.filtered-table-clear:hover,
.filtered-table-clear:focus-visible {
  color:var(--text);
}
.filtered-table-th {
  position:relative;
  --filtered-table-filter-accent:var(--calendar-purple);
}
.filtered-table-th-anchor {
  position:relative;
}
.filtered-table-th-button {
  width:100%;
  min-height:100%;
  display:flex;
  align-items:center;
  gap:5px;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-size:inherit;
  font-weight:inherit;
  text-align:left;
  white-space:nowrap;
  cursor:pointer;
}
.filtered-table-heading-label {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.filtered-table-heading-adornment {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}
.filtered-table-th-button:hover,
.filtered-table-th-button:focus-visible,
.filtered-table-th.is-open .filtered-table-th-button {
  color:var(--text);
}
.filtered-table-th-button:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.filtered-table-th.is-filtered {
  color:var(--filtered-table-filter-accent);
}
.filtered-table-th.is-filtered::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--filtered-table-filter-accent);
}
.filtered-table-heading-chevron {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  color:var(--text-3);
  opacity:0.72;
  transition:color 120ms ease, opacity 120ms ease, transform 120ms ease;
}
.filtered-table-th-button:hover .filtered-table-heading-chevron,
.filtered-table-th-button:focus-visible .filtered-table-heading-chevron,
.filtered-table-th.is-open .filtered-table-heading-chevron {
  color:var(--text-2);
  opacity:1;
}
.filtered-table-th.is-open .filtered-table-heading-chevron {
  transform:rotate(180deg);
}
.filtered-table-th.is-filtered .filtered-table-heading-chevron {
  color:var(--filtered-table-filter-accent);
  opacity:1;
}
.filtered-table-sort-mark {
  color:var(--accent);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  line-height:1;
}
.filtered-table-popover {
  z-index:1000;
  min-width:240px;
  max-width:min(360px, calc(100vw - 36px));
  padding:6px;
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--shadow-pop);
  text-transform:none;
  letter-spacing:0;
}
.filtered-table-popover-section {
  padding:8px;
}
.filtered-table-popover-section + .filtered-table-popover-section,
.filtered-table-popover-footer {
  border-top:1px solid var(--rule-soft);
}
.filtered-table-popover-label {
  margin-bottom:6px;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing:0;
  text-transform:none;
}
.filtered-table-option,
.filtered-table-sort-option {
  width:100%;
  min-height:28px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:5px 6px;
  border:0;
  border-radius:var(--radius-control);
  background:transparent;
  color:var(--text-2);
  font:inherit;
  font-size: var(--text-sm);
  text-align:left;
  cursor:pointer;
}
.filtered-table-option:hover,
.filtered-table-sort-option:hover,
.filtered-table-sort-option.active {
  background:var(--surface-2);
  color:var(--text);
}
.filtered-table-option input {
  flex:0 0 auto;
}
.filtered-table-option-label {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.filtered-table-option-count {
  margin-left:auto;
  color:var(--text-3);
  font-size: var(--text-xs);
}
.filtered-table-option-list {
  max-height:180px;
  overflow:auto;
  padding-right:2px;
}
.filtered-table-popover .input,
.filtered-table-popover .search-bar {
  width:100%;
}
.filtered-table-date-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:var(--space-3);
}
.filtered-table-presets + .filtered-table-date-grid {
  margin-top:var(--space-3);
}
.filtered-table-date-grid label {
  display:grid;
  gap:4px;
  min-width:0;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
}
.filtered-table-date-grid input {
  box-sizing:border-box;
  min-width:0;
  width:100%;
}
.filtered-table-presets {
  display:flex;
  gap:4px;
  flex-wrap:wrap;
}
.filtered-table-preset {
  min-height:26px;
  padding:4px 8px;
  border:1px solid var(--rule);
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text-2);
  font:inherit;
  font-size:11.5px;
  cursor:pointer;
}
.filtered-table-preset:hover,
.filtered-table-preset.active {
  border-color:var(--accent);
  color:var(--accent);
  background:color-mix(in srgb, var(--accent) 8%, var(--surface));
}
.widget-filtered-table .filtered-table-th-button {
  align-items:center;
  white-space:normal;
}
.widget-filtered-table .filtered-table-heading-label {
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}
.file-type-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  line-height:0;
  color:var(--text-3);
}
.file-type-icon img {
  display:block;
  width:100%;
  height:100%;
}
.tab-filter-bar {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:0 0 10px;
  box-shadow:inset 0 -1px 0 var(--rule);
  background:var(--bg);
  flex-wrap:wrap;
}
.tab-filter-tabs {
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  overflow-x:auto;
}
.tab-filter-tab {
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:32px;
  padding:7px 10px;
  color:var(--text-3);
  background:transparent;
  font-size:12.5px;
  font-weight: var(--font-weight-medium);
  white-space:nowrap;
}
.tab-filter-tab:hover {
  color:var(--text-2);
}
.tab-filter-tab.active {
  color:var(--text);
  box-shadow:inset 0 -2px 0 var(--text);
}
.tab-filter-meta {
  color:var(--text-3);
  font-size: var(--text-sm);
  min-width:0;
}
.tab-filter-actions {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:6px;
}
.filter-pill {
  display:inline-flex; align-items:center; gap:var(--filter-control-gap);
  padding:0 var(--filter-control-padding-x);
  height:var(--filter-control-height);
  font-size:var(--filter-control-font-size); font-weight:var(--filter-control-font-weight);
  color:var(--text-2);
  background:var(--surface);
  box-shadow:var(--ring-light);
  border-radius:var(--filter-control-radius);
  cursor:pointer;
}
.filter-pill:hover { background:var(--hover); }
.filter-pill.active { box-shadow:0 0 0 1px var(--text); color:var(--text); }
.filter-pill-tone-accent {
  background:var(--filter-active-bg);
  color:var(--filter-active-text);
  box-shadow:none;
  font-weight:var(--filter-control-active-font-weight);
}
.filter-pill-tone-accent:hover {
  background:var(--filter-active-bg);
}
.filter-pill-tone-accent .filter-pill-val,
.filter-pill-tone-accent .filter-pill-x {
  color:inherit;
}
.filter-pill-key { color:var(--text-3); font-size: var(--text-xs); }
.filter-pill-val { font-weight: var(--font-weight-medium); color:var(--text); }
.filter-pill-x   { opacity:0.55; cursor:pointer; padding-left:2px; }
.filter-pill-x:hover { opacity:1; }
.app-page-body > .lx-28v4rf.knowledge-page-root {
  display:flex;
  flex-direction:column;
  min-height:0;
  /* keep the standard --space-widget top padding so the tab strip has the same
     gap above it as the admin area */
}

/* Knowledge leading row: kind strip left, actions right; the second filter
   row stacks tight beneath it. */
.knowledge-kind-bar.filter-bar { padding:0; background:transparent; }

.knowledge-filter-bar {
  display:grid;
  grid-template-columns:minmax(260px, 1fr) repeat(3, max-content);
  align-items:center;
  gap:8px;
  /* IW35 extension: the strip owns no bottom padding — the strip → first
     widget gap below is the page token (--page-gutter-top) on the workspace */
  padding:var(--space-4) 0 0;
}
.knowledge-filter-bar .search-bar {
  width:100%;
  max-width:none;
}
.knowledge-filter-select {
  flex:0 1 auto;
  min-width:0;
  max-width:260px;
}
.knowledge-filter-summary {
  grid-column:4;
  justify-self:end;
  white-space:nowrap;
  margin-bottom:4px;
}
.knowledge-create-actions {
  grid-column:5;
  display:inline-flex;
  align-items:center;
  justify-self:end;
  gap:6px;
}

@media (max-width: 1180px) {
  .knowledge-filter-bar {
    grid-template-columns:minmax(260px, 1fr) repeat(2, max-content);
  }

  .knowledge-filter-summary {
    grid-column:1 / -1;
    justify-self:start;
  }
  .knowledge-create-actions {
    grid-column:1 / -1;
    justify-self:start;
  }
  }

/* Central transient action-menu recipe, reconciled to the authored
   "Menu / Agenda item actions" component (DH 503:6475 family, 21 Aug 2026):
   bg/surface panel with 1px border/default, radius/lg, 5px padding, 1px item
   gap, Elevation/400; items 34px on radius/md with 10px inset/gap and
   Label/Strong 13/500 text/primary. ONE recipe, many consumers (agenda row
   menus, agenda Create menu, claim actions, claim docket, admin member menu,
   assistant tools) — per-surface classes may add width/placement only, never
   re-declare this look. */
.menu-popover {
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  display:flex;
  flex-direction:column;
  gap:1px;
  min-width:190px;
  padding:5px;
  z-index:50;
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:var(--radius-role-lg);
  box-shadow:var(--elevation-400);
}
.menu-popover.align-right { left:auto; right:0; }
/* Portalled placement (D55): the agenda menus render through a document.body
   portal with inline fixed coordinates; the class only carries the surface. */
.menu-popover.is-portalled { position:fixed; top:auto; left:auto; z-index:var(--z-portal-menu); }
.menu-popover.agenda-item-menu { width:190px; min-width:190px; }
/* DH 951:11735: the claim Documents row menu is authored 268 wide. */
.menu-popover.document-row-menu { width:268px; min-width:268px; }
.menu-section {
  padding:4px 0;
}
.menu-section + .menu-section {
  box-shadow:inset 0 1px 0 var(--rule-soft);
}
.menu-item {
  width:100%;
  min-height:34px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 10px;
  border-radius:var(--radius-role-md);
  text-align:left;
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.menu-item:hover,
.menu-item:focus-visible,
.menu-item[aria-selected="true"] {
  background:var(--hover-2);
  color:var(--text);
}
.menu-item:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
/* Authored destructive row (Delete · feedback/error, icon included). */
.menu-item.menu-item-destructive { color:var(--approved-feedback-error); }
.menu-item.menu-item-destructive:hover,
.menu-item.menu-item-destructive:focus-visible {
  background:var(--approved-feedback-error-bg);
  color:var(--approved-feedback-error);
}
/* Authored divider-wrap: 1px rule with 4px breathing on both sides. */
.menu-divider {
  flex:0 0 auto;
  margin:4px 0;
  border-top:1px solid var(--rule);
}
/* DS Dropdown Item STATE VOCABULARY adopted as enrichment (decision D1,
   docs/plans/ds-dropdowns-dh-20260828.md): selected = brand-tint fill with
   an automatic trailing check; disabled = muted and inert. Geometry stays
   DH-authored (503:6475) — these rules add states only, never re-declare
   the .menu-popover / .menu-item look. */
.menu-item.is-selected {
  background:var(--brand-subtle);
  color:var(--approved-text-brand);
}
.menu-item.is-selected:hover,
.menu-item.is-selected:focus-visible {
  background:var(--brand-subtle-hover);
  color:var(--approved-text-brand);
}
.menu-item .menu-item-check {
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  color:currentColor;
}
.menu-item:disabled,
.menu-item[aria-disabled="true"] {
  color:var(--approved-text-subtle);
  background:none;
  cursor:default;
}


/* ============================================================
 * 12. COMMAND MENU / SKELETONS
 * ============================================================ */
.command-backdrop {
  position:fixed;
  inset:0;
  z-index:var(--z-command-backdrop);
  background:rgba(0, 0, 0, 0.14);
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  padding:var(--command-menu-top, min(14vh, 120px)) var(--command-menu-right, 24px) 24px 24px;
}
.command-menu {
  width:min(640px, calc(100vw - 32px));
  max-height:min(640px, calc(100vh - 80px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:var(--radius-container);
  background:var(--bg);
  box-shadow:var(--shadow-pop);
  transform-origin:top right;
  animation:command-menu-open var(--modal-motion-open-duration) var(--modal-motion-open-easing) both;
  will-change:transform, opacity;
}
.command-motion-backdrop {
  animation:command-backdrop-in var(--modal-motion-backdrop-in-duration) ease-out both;
}
@keyframes command-backdrop-in {
  from { opacity:0; }
  to { opacity:1; }
}
@keyframes command-menu-open {
  0% {
    opacity:0;
    transform:translate(16px, -10px) scale(0.72, 0.64);
  }
  58% {
    opacity:1;
    transform:translate(-1px, 1px) scale(1.012, 1.008);
  }
  100% {
    opacity:1;
    transform:translate(0, 0) scale(1, 1);
  }
}
.command-search {
  display:grid;
  grid-template-columns:18px 1fr auto;
  align-items:center;
  gap:8px;
  padding:12px 14px;
  box-shadow:inset 0 -1px 0 var(--rule);
  color:var(--text-3);
}
.command-search input {
  border:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  padding:0;
  width:100%;
  font-size: var(--text-md);
}
.command-results {
  overflow:auto;
  padding:8px;
}
.command-group-label {
  font-family:var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color:var(--text-2);
  padding:10px 8px 6px;
}
.command-item {
  display:grid;
  grid-template-columns:24px 1fr auto;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:38px;
  padding:7px 9px;
  border-radius:var(--radius-control);
  text-align:left;
}
.command-item:hover,
.command-item[aria-selected="true"] {
  background:var(--surface-3);
}
.command-item:disabled,
.command-item.is-disabled {
  cursor:not-allowed;
  opacity:0.55;
}
.command-item-icon {
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-role-sm);
  background:var(--surface-2);
  color:var(--text-3);
}
.command-item-copy {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.command-item-label {
  display:block;
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
  line-height:18px;
  color:var(--text);
}
.command-item-sub {
  display:block;
  font-size: var(--text-sm);
  line-height:16px;
  color:var(--text-3);
}
.command-item-source {
  display:block;
  font-size: var(--text-xs);
  line-height:14px;
  color:var(--text-2);
}
.command-empty {
  padding:32px 16px;
  text-align:center;
  color:var(--text-3);
  font-size: var(--text-body);
}

.skeleton {
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-sm);
  background:var(--surface-3);
}
.skeleton::after {
  content:'';
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.75), transparent);
  animation:skeleton-shimmer 1.35s infinite;
}
.skeleton-line { height:12px; width:100%; }
.skeleton-pill { height:20px; border-radius:var(--radius-pill); }
.skeleton-table {
  padding:14px;
}
.skeleton-row {
  display:grid;
  grid-template-columns:110px 1fr 160px 150px 120px;
  gap:16px;
  padding:14px 0;
  box-shadow:inset 0 -1px 0 var(--rule);
}
@keyframes skeleton-shimmer {
  100% { transform:translateX(100%); }
}

/* ============================================================
 * 12. STATUS DOTS
 * ============================================================ */
.dot { width:8px; height:8px; border-radius:var(--radius-role-full); display:inline-block; flex-shrink:0; background:var(--text-4); }
.dot.critical { background:var(--critical); }
.dot.warn     { background:var(--warn); }
.dot.success  { background:var(--success); }
.dot.info     { background:var(--info); }

/* ============================================================
 * 13. HUB / DASHBOARD STAT BLOCKS
 * ============================================================ */
.hub { display:grid; grid-template-columns:minmax(0, 2fr) minmax(0, 1fr); gap:24px; padding:24px 24px; align-items:start; }
.hub-col { display:flex; flex-direction:column; gap:24px; min-width:0; }
.hub-summary { background:transparent; border:0; padding:12px 0; }
.hub-summary-row { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; padding:14px 0; box-shadow:inset 0 -1px 0 var(--rule), inset 0 1px 0 var(--rule); }
.hub-stat-label { font-family:var(--font-sans); font-size: var(--text-body); text-transform:none; letter-spacing:0; color:var(--text-3); margin-bottom:6px; font-weight: var(--font-weight-medium); line-height:1; }
.hub-stat-value { font-family:var(--font-sans); font-size: var(--text-2xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.04em; line-height:1.1; color:var(--text); }

/* ============================================================
 * 14. DEADLINE / ACTIVITY ROWS — typographic, no panels
 * ============================================================ */
.deadline-row {
  display:grid; grid-template-columns:104px 1fr auto;
  column-gap:18px; row-gap:12px; align-items:center;
  position:relative;
  padding:10px 6px 10px 18px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
  cursor:pointer;
}
.deadline-row.critical { box-shadow:inset 0 -1px 0 var(--rule-soft); }
.deadline-row.overdue {
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.deadline-row.warn {
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.deadline-row.conflict {
  background:color-mix(in srgb, var(--warn-soft) 52%, transparent);
}
.deadline-row:is(.critical, .overdue, .warn)::before {
  content:"";
  position:absolute;
  left:9px;
  top:10px;
  bottom:10px;
  width:2px;
  border-radius:var(--radius-pill);
  background:var(--text-4);
}
.deadline-row:is(.critical, .overdue)::before { background:var(--critical); }
.deadline-row.warn::before { background:var(--warn); }
.warn-text {
  color:var(--warn);
}
.deadline-when { display:flex; flex-direction:column; }
.deadline-row > .deadline-when {
  align-self:stretch;
  justify-content:center;
  padding:6px 8px 6px 10px;
}
.deadline-row.overdue > .deadline-when {
  background:color-mix(in srgb, var(--critical-soft) 58%, transparent);
}
.deadline-when-days { font-family:var(--font-sans); font-size: var(--text-xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.03em; line-height:1; color:var(--text); }
.deadline-when-days.overdue,
.deadline-when-days.critical { color:var(--critical); }
.deadline-when-days.warn     { color:var(--warn); }
.deadline-when-date { font-family:var(--font-mono); font-size: var(--text-xs); color:var(--text-3); margin-top:4px; letter-spacing:0; }
.deadline-urgency-chip {
  width:fit-content;
  margin-top:5px;
}
.deadline-label  { font-size: var(--text-body); color:var(--text); font-weight: var(--font-weight-medium); }
.deadline-source { font-size: var(--text-sm); color:var(--text-3); margin-top:2px; }
.deadline-audit-detail-grid,
.knowledge-provenance-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px 10px;
  margin-top:8px;
}


.deadline-audit-detail-grid > div {
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius-control);
  background:var(--surface-2);
}
.deadline-audit-detail-grid span {
  display:block;
  color:var(--text-3);
  font-size: var(--text-xs);
}
.deadline-audit-detail-grid strong {
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size: var(--text-sm);
  line-height:1.35;
}
.deadline-conflict-banner,
.claim-update-legal-conflict-banner {
  align-items:start;
}
.deadline-key-date-panel {
  display:grid;
  gap:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
}
.deadline-key-date-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.deadline-key-date-table {
  display:grid;
  max-height:340px;
  min-width:0;
  overflow:auto;
  border:1px solid var(--rule);
  border-radius:var(--radius-control);
}

/* CAC complete-data workspace */
.cac-workspace {
  display:grid;
  gap:16px;
  min-width:0;
}

.cac-subtabs {
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
}
.cac-subtab {
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  font-size:12.5px;
  font-weight: var(--font-weight-medium);
  color:var(--text-3);
  background:transparent;
  border-radius:var(--radius);
}
.cac-subtab:hover,
.cac-subtab.active {
  background:var(--surface-3);
  color:var(--text);
}

.cac-data-table {
  min-width:740px;
}
.cac-mini-grid,
.cac-recommendation-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.cac-mini-panel,
.cac-recommendation-grid > div {
  border:1px solid var(--rule);
  border-radius:var(--radius);
  padding:10px;
  background:var(--surface);
}


.cac-bar-button {
  width:100%;
  border:1px solid transparent;
  border-radius:var(--radius);
  padding:8px;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.cac-bar-button:hover,
.cac-bar-button:focus-visible {
  border-color:var(--rule);
  background:var(--surface-2);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.cac-bar {
  height:8px;
  border-radius:var(--radius-pill);
  overflow:hidden;
  background:var(--surface-3);
}

.cac-bar-fill.info { background:var(--info); }
.cac-bar-fill.success { background:var(--success); }
.cac-bar-fill.warn { background:var(--warn); }
.cac-cost-summary {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.cac-cost-summary > div {
  border:1px solid var(--rule);
  border-radius:var(--radius);
  padding:12px;
  background:var(--surface);
}
.cac-source-field-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.cac-source-field-list code {
  border:1px solid var(--rule);
  border-radius:var(--radius);
  padding:4px 6px;
  background:var(--surface-2);
  font-size: var(--text-xs);
}
.official-lni-workspace {
  display:grid;
  gap:18px;
}
.official-lni-layout {
  display:grid;
  grid-template-columns:minmax(220px, 280px) minmax(0, 1fr);
  gap:24px;
  align-items:start;
}
.official-lni-nav {
  position:sticky;
  top:0;
  min-width:0;
}
.navigator-row.cac-subtab {
  min-height:44px;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto auto;
  align-items:center;
  padding:10px 12px;
  border-radius:var(--radius-role-none);
  border-bottom:1px solid var(--rule);
  font-size:inherit;
}
.official-lni-main {
  min-width:0;
}
.official-lni-panel-stack,
.official-lni-row-list {
  display:grid;
}
.official-lni-panel-stack {
  gap:18px;
}
.official-lni-fact-strip {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px 18px;
}
.cac-table-shell .table-wrap {
  overflow-x:auto;
}
.notice.success {
  border-color:#c7ebd2;
  background:var(--success-soft);
  color:var(--success);
}
@media (max-width: 900px) {
  .cac-mini-grid,
  .cac-recommendation-grid {
    grid-template-columns:1fr;
  }
  .cac-bar-row,
  .cac-cost-summary {
    grid-template-columns:1fr;
  }
  .official-lni-layout,
  .official-lni-fact-strip {
    grid-template-columns:1fr;
  }
  .official-lni-nav {
    position:static;
  }
}
.deadline-key-date-table-head,
.deadline-key-date-row {
  display:grid;
  grid-template-columns:minmax(190px, 1.25fr) 78px minmax(220px, 1.3fr) 90px 112px;
  gap:12px;
  align-items:center;
  min-width:760px;
}
.deadline-key-date-table-head {
  position:sticky;
  top:0;
  z-index:1;
  padding:0 8px 7px;
  background:var(--surface);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  border-bottom:1px solid var(--rule);
}
.deadline-key-date-row {
  padding:6px 8px;
  border-bottom:1px solid var(--rule-soft);
}
.deadline-key-date-row:last-child {
  border-bottom:0;
}
.deadline-key-date-row.missing {
  color:var(--text-3);
  background:var(--surface-2);
}
.deadline-key-date-row strong {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  white-space:nowrap;
}
.deadline-key-date-label {
  overflow:hidden;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.deadline-key-date-source {
  overflow:hidden;
  color:var(--text-2);
  font-size: var(--text-sm);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.deadline-authority-panel {
  display:grid;
  gap:10px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.deadline-authority-head {
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.deadline-authority-text {
  color:var(--text-2);
  line-height:1.5;
}
.deadline-authority-list {
  display:grid;
  gap:6px;
}
.deadline-authority-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.deadline-authority-row > div {
  min-width:0;
}
.deadline-authority-add {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:8px;
  align-items:center;
  margin-top:8px;
}
.deadline-workspace-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:0;
}
.deadline-filter-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.deadline-group {
  margin:12px 0;
}
.deadline-group + .deadline-group {
  border-top:1px solid var(--rule-soft);
  padding-top:12px;
}
.deadline-group-head {
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 4px;
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}
.deadline-group-label {
  flex-shrink:0;
}
.deadline-scope-filter {
  display:flex;
  gap:10px;
  align-items:center;
  max-width:470px;
}
.deadline-scope-filter > span {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.authority-register,
.deadline-gap-list {
  display:grid;
  gap:10px;
}
.deadline-gap-row {
  display:grid;
  gap:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
}

.authority-register-row.inactive {
  color:var(--text-3);
  background:var(--surface-2);
}




.authority-register-actions {
  display:flex;
  justify-content:flex-end;
  gap:6px;
}
.deadline-gap-row {
  grid-template-columns:minmax(260px, 0.9fr) minmax(280px, 1.2fr) auto;
  align-items:center;
}
.deadline-gap-title {
  color:var(--text);
  font-weight: var(--font-weight-semibold);
}
.deadline-gap-items {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.legal-clock-gap {
  display:grid;
  gap:3px;
  min-width:0;
  padding:8px;
  border:1px solid var(--border);
  border-radius:var(--radius-control);
  background:var(--surface-2);
  color:var(--text);
  text-align:left;
}
.legal-clock-gap {
  display:flex;
  align-items:center;
  gap:6px;
  border-color:var(--critical-border);
  color:var(--critical);
}
.auth-shell {
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--bg);
}

.auth-panel {
  width:min(100%, 360px);
  display:grid;
  gap:18px;
  padding:26px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--shadow-lg);
}

.auth-panel h1 {
  margin:0;
  font-size:26px;
  line-height:1.1;
  letter-spacing:0;
}

.auth-form {
  display:grid;
  gap:12px;
}

.auth-form label {
  display:grid;
  gap:6px;
  color:var(--muted);
  font-size: var(--text-sm);
}

.auth-form input {
  width:100%;
  min-height:38px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text);
  font:inherit;
}

.auth-form input:focus {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  border-color:var(--accent);
}

.auth-error {
  padding:8px 10px;
  border:1px solid var(--danger-border, #f0b8b8);
  border-radius:var(--radius);
  background:var(--danger-bg, #fff4f4);
  color:var(--danger, #a12b2b);
  font-size: var(--text-body);
}
.auth-notice {
  padding:8px 10px;
  border:1px solid var(--rule-firm);
  border-radius:var(--radius);
  background:var(--surface-2);
  color:var(--text-2);
  font-size: var(--text-body);
  overflow-wrap:anywhere;
}
.app.session-locked {
  visibility:hidden;
}
.session-guard {
  position:fixed;
  inset:0;
  z-index:20000;
  display:grid;
  place-items:center;
  padding:24px;
}
.session-guard.locked {
  background:var(--bg);
}
.session-guard.warning {
  pointer-events:none;
  place-items:end center;
  background:linear-gradient(to top, color-mix(in srgb, var(--text) 10%, transparent), transparent 45%);
}
.session-guard-panel {
  width:min(100%, 520px);
  display:grid;
  gap:16px;
  padding:22px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--shadow-lg);
  pointer-events:auto;
}
.session-guard-panel h2,
.session-guard-panel p {
  margin:0;
}
.session-guard-panel p {
  margin-top:8px;
  color:var(--muted);
}
.session-guard-form {
  display:grid;
  gap:12px;
}
.session-guard-form label {
  display:grid;
  gap:6px;
  color:var(--muted);
  font-size:var(--text-sm);
}
.session-guard-form input {
  min-height:40px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text);
  font:inherit;
}
.session-guard-form input:focus {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  border-color:var(--accent);
}
.session-guard-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.session-guard-actions .auth-error {
  flex-basis:100%;
}
@media (max-width: 560px) {
  .deadline-authority-add {
    grid-template-columns:1fr;
  }
  .deadline-workspace-head {
    align-items:stretch;
    flex-direction:column;
  }
  .deadline-scope-filter,
  .authority-register-row,
  .deadline-gap-row {
    grid-template-columns:1fr;
  }
}
.knowledge-workspace {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
  align-items:stretch;
  flex:1;
  min-height:0;
  /* strip → first widget = --page-gutter-top measured to the PANEL box, and
     the panels sit on the 24 page gutter: the --space-1 / --space-2 shadow room
     below lives inside this clipping box, so the box bleeds by the same
     amounts (no raw px, both on the scale) */
  margin:calc(var(--page-gutter-top) - var(--space-1)) calc(-1 * var(--space-2)) 0;
  overflow:hidden;
  /* room for the lifted panel's widget shadow (otherwise it clips flush and
     the surface doesn't read as raised) */
  padding:var(--space-1) var(--space-2) var(--space-4);
}
.knowledge-table-panel {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  overflow:hidden;
  /* lifted widget surface; the strip → widget gap is the page token on the
     workspace box above (IW35 extension), not a second margin here */
  margin-top:0;
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
}
.app-page-body .knowledge-table-wrap {
  overflow:auto;
  flex:1;
  min-height:0;
}
.knowledge-table {
  width:100%;
  min-width:0;
  table-layout:fixed;
}
.knowledge-table th,
.knowledge-table td {
  padding:8px 12px;
  font-size:12.5px;
  vertical-align:middle;
}
.knowledge-table th:nth-child(1),
.knowledge-table td:nth-child(1) {
  width:30%;
}
.knowledge-table th:nth-child(2),
.knowledge-table td:nth-child(2) {
  width:11%;
  overflow-wrap:anywhere;
}
.knowledge-table th:nth-child(3),
.knowledge-table td:nth-child(3) {
  width:17%;
}
.knowledge-table th:nth-child(4),
.knowledge-table td:nth-child(4) {
  width:16%;
}
.knowledge-table th:nth-child(5),
.knowledge-table td:nth-child(5) {
  width:16%;
}
.knowledge-table th:nth-child(6),
.knowledge-table td:nth-child(6) {
  width:10%;
}
.knowledge-table tbody tr.active td {
  background:var(--surface-2);
}
.knowledge-table tbody tr:focus-visible td {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.knowledge-table-title {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  overflow-wrap:anywhere;
  color:var(--text);
  font-weight:550;
  line-height:1.25;
}
.knowledge-table-seed-chip {
  flex:0 0 auto;
}

.knowledge-table td:nth-child(2) .knowledge-table-sub {
  overflow-wrap:anywhere;
}
.knowledge-table-date {
  white-space:nowrap;
}
.knowledge-preview {
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:0;
  max-height:none;
  background:transparent;
  box-shadow:inset 1px 0 0 var(--rule);
}
.knowledge-preview.empty {
  min-height:360px;
  justify-content:center;
}
.knowledge-preview-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px 4px;
}
.knowledge-preview-head h3 {
  margin:3px 0 0;
  font-size:16px;
  line-height:1.25;
  color:var(--text);
}
.knowledge-preview-eyebrow {
  color:var(--text-3);
  font-family:var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
}
.knowledge-source-disabled,
.knowledge-source-disabled:hover {
  color:#A3A3A3;
  background:transparent;
  opacity:1;
  box-shadow:none;
  text-decoration:none;
}
.knowledge-preview-actions {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px;
  flex-shrink:0;
}
.knowledge-preview-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:4px 18px 10px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.knowledge-preview-scroll {
  flex:1;
  min-height:0;
  overflow:auto;
}
.knowledge-preview-layout {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:18px;
  padding:16px 18px 18px;
}
.knowledge-preview-document {
  display:grid;
  gap:18px;
  min-width:0;
}
.knowledge-preview-section {
  scroll-margin-top:18px;
  display:grid;
  gap:8px;
}
.knowledge-preview-section h4 {
  margin:0;
  font-size: var(--text-sm);
  line-height:1.3;
  color:var(--text);
}
.knowledge-preview-section p,
.knowledge-preview-section ul {
  margin:0;
  color:var(--text-2);
  font-size: var(--text-body);
  line-height:1.55;
}
.knowledge-preview-section ul {
  padding-left:18px;
}
.knowledge-preview-prose {
  white-space:pre-wrap;
}
.knowledge-preview-outline {
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:20;
  min-width:156px;
  display:grid;
  gap:2px;
  padding:4px;
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-pop), var(--ring-light);
}
.knowledge-preview-outline a {
  display:block;
  padding:5px 7px;
  border-radius:var(--radius-control);
  color:var(--text-3);
  font-size: var(--text-sm);
  text-decoration:none;
}
.knowledge-preview-outline a:hover,
.knowledge-preview-outline a:focus-visible {
  background:var(--hover-2);
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.knowledge-preview-review-actions {
  justify-content:flex-start;
}
.knowledge-large-modal-body {
  padding:0;
  min-height:0;
}
.knowledge-preview-large {
  position:static;
  flex:1;
  width:100%;
  height:100%;
  max-height:none;
  min-height:0;
  box-shadow:none;
  background:var(--bg);
}
.knowledge-preview-large .knowledge-preview-head,
.knowledge-preview-large .knowledge-preview-meta {
  padding-left:18px;
  padding-right:18px;
}
.knowledge-preview-large .knowledge-preview-scroll {
  flex:1;
}
.knowledge-preview-large .knowledge-preview-layout {
  width:100%;
  margin:0 auto;
  padding:20px 18px 28px;
}
.knowledge-detail-table {
  width:100%;
  border-collapse:collapse;
  font-size: var(--text-sm);
  box-shadow:inset 0 1px 0 var(--rule);
}
.knowledge-detail-table th,
.knowledge-detail-table td {
  padding:5px 8px;
  text-align:left;
  vertical-align:top;
  line-height:1.35;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.knowledge-detail-table th {
  width:24%;
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
}
.knowledge-detail-table td {
  color:var(--text);
  font-weight:550;
}
.knowledge-date-strip {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  margin-left:calc(24% + 8px);
  padding-top:2px;
}
.knowledge-date-strip div {
  min-width:0;
}
.knowledge-date-strip span,
.knowledge-date-strip strong {
  display:block;
  overflow-wrap:anywhere;
}
.knowledge-date-strip span {
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.35;
}
.knowledge-date-strip strong {
  margin-top:2px;
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight:550;
  line-height:1.35;
}
@media (max-width: 1180px) {
  .knowledge-workspace {
    grid-template-columns:1fr;
  }
  .knowledge-preview {
    position:static;
    max-height:none;
    box-shadow:inset 0 1px 0 var(--rule);
  }
}
@media (max-width: 760px) {
  .content:has(.knowledge-page-root) {
    overflow:auto;
  }
  .app-page-scaffold:has(.knowledge-page-root) {
    height:auto;
    min-height:100%;
  }
  .app-page-body:has(> .knowledge-page-root) {
    overflow:visible;
  }
  .app-page-body:has(> .knowledge-page-root) > .knowledge-page-root {
    flex:none;
    min-height:auto;
    overflow:visible;
  }
  .knowledge-workspace {
    min-height:auto;
    overflow:visible;
  }
  .knowledge-table-panel {
    height:min(60vh, 520px);
    min-height:360px;
    overflow:hidden;
  }
  .knowledge-table-panel > .knowledge-table-shell {
    display:flex;
    flex-direction:column;
    min-height:0;
  }
  .app-page-body .knowledge-table-wrap {
    flex:1;
    min-height:0;
    height:auto;
    max-height:none;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .knowledge-table {
    table-layout:auto;
  }
  .responsive-card-table.knowledge-table tbody td {
    width:100%;
  }
  .responsive-card-table.knowledge-table tbody tr {
    cursor:pointer;
  }
  .knowledge-table [data-card="article"] { order:1; }
  .knowledge-table [data-card="review"] { order:2; }
  .knowledge-table [data-card="validated"] { order:3; }
  .knowledge-table [data-card="kind"] { order:4; }
  .knowledge-table [data-card="topic"] { order:5; }
  .knowledge-table [data-card="authority"] { order:6; }
  .responsive-card-table.knowledge-table tbody td.card-primary {
    display:block;
  }
  .knowledge-table-title {
    gap:8px;
    font-size: var(--text-md);
  }
  .knowledge-preview-head {
    flex-direction:column;
  }
  .knowledge-date-strip {
    grid-template-columns:1fr;
    margin-left:0;
  }
}



.knowledge-viewer {
  display:grid;
  gap:18px;
}
.table-pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px var(--widget-padding-x) 16px;
  border-top:1px solid var(--rule);
}
.table-wrap + .table-pagination,
.card-body.tight > .table-pagination {
  margin-top:0;
}
.table-pagination-summary {
  flex:1 1 auto;
  min-width:170px;
}
.table-pagination-controls {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:0 1 auto;
  gap:10px;
  min-width:0;
}
.table-pagination-size {
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
.table-pagination-size-select {
  width:auto;
  min-width:70px;
  height:28px;
  padding-block:0;
  font-size: var(--text-sm);
}
.table-pagination-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px;
}
.table-pagination-gap {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  color:var(--text-3);
  font-weight: var(--font-weight-bold);
}
@media (max-width: 760px) {
  .table-pagination {
    align-items:flex-start;
    flex-direction:column;
  }
  .table-pagination-controls {
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .table-pagination-actions {
    justify-content:flex-start;
    padding-right:0;
  }
}
.knowledge-viewer-meta {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.knowledge-viewer-section {
  display:grid;
  gap:8px;
}
.knowledge-viewer-section h3 {
  margin:0;
  font-size: var(--text-body);
  line-height:1.3;
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}
.knowledge-viewer-section p,
.knowledge-viewer-section ul {
  margin:0;
  color:var(--text-2);
  font-size: var(--text-body);
  line-height:1.55;
}
.knowledge-viewer-section ul {
  padding-left:18px;
}
.report-export-options {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:8px;
  margin-top:10px;
}
.report-freshness-pill {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:26px;
  margin-bottom:10px;
  padding:3px 8px;
  border-radius:var(--radius-pill);
  box-shadow:var(--ring-light);
  color:var(--text-2);
  font-size: var(--text-sm);
}
.report-freshness-pill button {
  padding:0;
  border:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-weight: var(--font-weight-semibold);
}
.report-freshness-pill button:not(:disabled) {
  cursor:pointer;
}
.report-freshness-pill button:disabled {
  color:var(--text-3);
}
.report-export-option {
  display:grid;
  gap:2px;
  min-width:0;
  padding:10px 12px;
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
  background:var(--surface);
  text-align:left;
}
.report-export-option:hover,
.report-export-option:focus-visible {
  background:var(--hover);
}
.report-export-option.selected {
  box-shadow:inset 0 0 0 1px var(--text);
}
.report-export-option-label {
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}
.report-export-option-count {
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  color:var(--text-3);
}
.app-page-body > .reports-grid {
  display:grid;
  gap:var(--widget-stack-gap);
  align-content:start;
  padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  overflow:auto;
}
/* Reports widgets: banded heads, docket-style content */
.report-widget, .banded-widget { padding:0; overflow:hidden; border-radius:var(--radius-widget); align-self:start; flex:0 0 auto; }
.report-widget-head,
.banded-widget-head {
  color:var(--widget-header-fg);
  margin:0;
  padding:14px var(--widget-padding-x) 12px;
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
  display:flex;
  align-items:center;
  gap:8px;
}
.report-library-controls {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:10px var(--widget-padding-x);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.report-library-description { flex:1 1 220px; min-width:0; }
.report-parameter-form {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  align-items:end;
  gap:10px 12px;
  padding:12px var(--widget-padding-x);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
  background:var(--surface-2);
}
.report-parameter-field { display:grid; gap:5px; min-width:0; }
.report-parameter-field .input,
.report-parameter-field .select { width:100%; min-width:0; }
.report-parameter-run { min-height:var(--control-height); white-space:nowrap; }
.report-parameter-error { grid-column:1 / -1; }
.report-library-body { padding:0 var(--widget-padding-x) 14px; }
.banded-widget-body { padding:12px var(--widget-padding-x) 16px; }

.report-widget-head .card-head-title,
.banded-widget-head .card-head-title,
.help-rail-head .card-head-title {
  color:inherit;
}
/* The leading icon in banded widget titles is independently themable. */
.report-widget-head .card-head-title > svg,
.banded-widget-head .card-head-title > svg,
.help-rail-head .card-head-title > svg {
  color:var(--widget-header-icon);
}

.cac-dry-run-widget select { max-width:280px; }
.cac-dry-run-widget .banded-widget-body { display:grid; gap:10px; }

.report-library-body .filter-bar {
  padding:12px 0 10px;
  background:transparent;
}
.reports-widget-row {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(340px, 1fr));
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
  align-items:start;
}
.report-dashboard {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:18px;
  padding:12px var(--widget-padding-x) 16px;
}
/* Widget subheading — a clear, slightly-prominent section label inside a
   widget (firm-operations sections, and reusable elsewhere). */
.widget-subhead,
.report-dashboard-section-title {
  font-size:var(--text-body);
  font-weight:var(--font-weight-semibold);
  color:var(--text-2);
  letter-spacing:0;
  margin:0 0 10px;
  padding-bottom:6px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.report-overdue-stats { display:flex; gap:24px; flex-wrap:wrap; }
.report-stat-critical .hub-stat-value { color:var(--critical); }
.report-bar-row { display:grid; grid-template-columns:minmax(90px, 130px) minmax(0, 1fr) auto; align-items:center; gap:10px; padding:5px 0; }
.report-bar-label { font-size:var(--text-sm); color:var(--text-2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.report-bar-track { height:8px; border-radius:var(--radius-pill); background:var(--surface-3); overflow:hidden; }
.report-bar-fill { height:100%; border-radius:var(--radius-pill); background:var(--ink); min-width:3px; }
.report-bar-fill-info { background:var(--info); }
.report-bar-count { font-size:var(--text-sm); color:var(--text-2); }
.report-row-list { border-block:0; }
.report-row-list .list-row { padding-inline:var(--widget-padding-x); }
.reports-grid {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  grid-auto-rows:max-content;
  align-content:start;
  gap:var(--widget-stack-gap);
  min-width:0;
}
/* higher specificity than the base .table-shell so the library widget's own
   surface is the only one (no widget-on-widget) */
.report-library-body .reports-data-table-shell {
  flex:1 1 auto;
  min-height:0;
  max-height:clamp(340px, calc(100vh - 330px), 760px);
  box-shadow:none;
  border-radius:var(--radius-role-none);
  background:transparent;
}
.report-library-body .reports-data-table { width:100%; }
.reports-data-table-shell > .reports-data-table-wrap {
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
}
.reports-data-table {
  min-width:980px;
  width:max-content;
}
.reports-data-table th,
.reports-data-table td {
  white-space:nowrap;
}
.reports-data-table td:first-child,
.reports-data-table th:first-child {
  min-width:220px;
  white-space:normal;
}

.help-layout {
  flex:1;
  display:grid;
  grid-template-columns:minmax(220px, 260px) minmax(0, 1fr);
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
  /* ninth pass F1: the layout is flex:1 (fills the page body) — without this the
     grid shared the spare height between its rows once the rail wrapped above
     the content (a 195 blank band at ≤ 980); stacked widgets sit 16 apart */
  align-content:start;
  min-height:0;
  width:100%;
  padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  overflow:auto;
  scrollbar-gutter:stable;
}
.help-section-rail {
  display:flex;
  flex-direction:column;
}
.help-section-rail > * { flex:0 0 auto; }
.help-section-rail {
  gap:0;
  min-width:0;
  align-self:start;
  position:sticky;
  top:0;
  max-height:calc(100vh - 110px);
  overflow:auto;
  scrollbar-gutter:stable;
  background:var(--widget-bg);
  border-radius:var(--radius-container);
  box-shadow:var(--widget-shadow);
}
.help-rail-head {
  color:var(--widget-header-fg);
  margin:0;
  padding:14px var(--space-rhythm) 12px;
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
  position:sticky;
  top:0;
  z-index:2;
}
.help-section-rail > .search-bar { margin:8px var(--space-rhythm) 0; }
.help-section-rail .help-toolbar-count { padding:6px var(--space-rhythm) 8px; }
/* group bands use the docket timeframe-group treatment */
.help-article-nav-group {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px var(--space-rhythm);
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider), inset 0 1px 0 var(--widget-divider);
  font-size:var(--text-xs);
  font-weight:var(--font-weight-semibold);
  color:var(--text-3);
  position:sticky;
  top:0;
  z-index:1;
}
.help-article-nav-group-count { font-weight:var(--font-weight-regular); color:var(--text-4); font-family:var(--font-mono); }
.help-article-nav { border-block:0; }
.help-article-nav .navigator-row-meta { white-space:normal; }
.help-nav-skeleton { height:44px; margin:6px var(--space-rhythm); border-radius:var(--radius); }
.help-section-list {
  display:grid;
  gap:8px;
}
.help-content,
.document-playbook-guide {
  min-width:0;
}
.help-content {
  display:grid;
  align-content:start;
  gap:var(--widget-stack-gap);
}
.help-article {
  display:grid;
  gap:var(--widget-stack-gap);
  min-width:0;
}
.help-article-header,
.help-markdown,
.help-related,
.help-dynamic-panel {
  background:var(--widget-bg);
  border-radius:var(--radius-widget);
  box-shadow:var(--widget-shadow);
}
.help-article-header {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(220px, 320px);
  gap:18px;
  align-items:start;
  padding:18px;
}
.help-article-header h2 {
  margin:0;
  letter-spacing:0;
}
.help-article-header p {
  margin:6px 0 0;
}
.help-article-meta {
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  gap:6px;
  flex-wrap:wrap;
}
.help-markdown {
  display:grid;
  gap:12px;
  padding:20px;
  color:var(--text);
  line-height:1.55;
}
.help-markdown h2,
.help-markdown h3,
.help-markdown h4 {
  margin:12px 0 0;
  letter-spacing:0;
}
.help-markdown h2:first-child,
.help-markdown h3:first-child,
.help-markdown h4:first-child {
  margin-top:0;
}
.help-markdown p,
.help-markdown ul,
.help-markdown ol {
  margin:0;
}
.help-markdown ul,
.help-markdown ol {
  padding-left:22px;
}
.help-markdown li + li {
  margin-top:5px;
}
.help-markdown code {
  padding:1px 4px;
  border-radius:var(--radius-role-sm);
  background:var(--surface-2);
  color:var(--text);
}
.help-figure {
  margin:0;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px var(--rule);
  background:var(--surface-2);
}
.help-figure img {
  display:block;
  width:100%;
  height:auto;
}
.help-caption {
  color:var(--muted);
  font-size: var(--text-body);
}
.help-dynamic-panel {
  padding:16px;
}
.help-related {
  display:grid;
  gap:10px;
  padding:16px;
}
.help-related h3 {
  margin:0;
  letter-spacing:0;
}
.help-related-list {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:8px;
}
.help-related-card {
  display:grid;
  gap:4px;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule);
  text-align:left;
}
.help-related-card span {
  color:var(--muted);
  font-size: var(--text-sm);
  line-height:1.35;
}
.knowledge-preview-readonly-note {
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  padding:10px 12px;
  border-radius:var(--radius);
  background:var(--info-soft);
  color:var(--text-2);
  font-size: var(--text-body);
}
.document-playbook-guide {
  display:grid;
  gap:var(--widget-stack-gap);
  align-content:start;
}
.help-guide-hero,
.playbook-guide-detail {
  background:var(--surface);
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.help-guide-hero h2,
.help-empty-state h2,
.playbook-guide-detail h3,
.playbook-guide-step h4 {
  margin:0;
  letter-spacing:0;
}
.help-guide-hero p,
.playbook-guide-step p {
  margin:4px 0 0;
}


.help-guide-toolbar {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex-wrap:wrap;
}
.help-guide-toolbar .filter-search {
  flex:1 1 280px;
}
.help-date-control {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size: var(--text-body);
  font-weight:550;
}
.help-date-control .input {
  width:150px;
  height:var(--filter-control-height);
  padding-block:0;
}
.help-toolbar-count {
  margin-left:auto;
  white-space:nowrap;
}
.help-load-error,
.playbook-guide-empty-row,
.help-empty-state {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--ring-light);
}
.help-load-error {
  color:var(--critical);
  background:var(--critical-soft);
}
.help-empty-state {
  min-height:160px;
  justify-content:center;
}
.help-empty-state.compact {
  grid-column:1 / -1;
  min-height:92px;
  justify-content:flex-start;
}
.playbook-guide-empty-row {
  background:var(--surface-2);
  color:var(--muted);
  box-shadow:inset 0 0 0 1px var(--rule);
}
.playbook-guide-picker {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
  gap:8px;
  max-height:clamp(260px, 34vh, 420px);
  min-height:96px;
  overflow:auto;
  padding:1px;
  scrollbar-gutter:stable;
}
.playbook-guide-card {
  display:grid;
  gap:5px;
  align-content:start;
  min-height:118px;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--ring-light);
  text-align:left;
}
.playbook-guide-card:hover,
.playbook-guide-card:focus-visible {
  background:var(--hover);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.playbook-guide-card.active {
  box-shadow:inset 3px 0 0 var(--text), var(--ring-light);
}
.playbook-guide-card-category,
.playbook-guide-card-code,
.playbook-guide-card-counts {
  color:var(--muted);
  font-size: var(--text-sm);
}
.playbook-guide-card-title {
  color:var(--text);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  line-height:1.25;
}

.playbook-guide-card-counts {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:auto;
}
.playbook-guide-picker-scroll {
  display:grid;
  gap:14px;
  max-height:clamp(280px, 46vh, 520px);
  overflow:auto;
  padding:1px;
  scrollbar-gutter:stable;
}
.playbook-guide-picker-scroll .playbook-guide-picker {
  max-height:none;
  min-height:0;
  overflow:visible;
  padding:0;
}
.playbook-guide-cat-group {
  display:grid;
  gap:8px;
}
.playbook-guide-cat-title {
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 0;
  background:var(--help-paper);
  color:var(--help-muted);
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:0.01em;
}
.playbook-guide-cat-count {
  padding:0 7px;
  border-radius:var(--radius-pill);
  background:var(--help-hair);
  font-size: var(--text-2xs);
}
.playbook-guide-detail {
  display:grid;
  gap:0;
  overflow:hidden;
}
.playbook-guide-detail-header {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  padding:18px;
  border-bottom:1px solid var(--rule);
}
.playbook-guide-detail-header h3 {
  font-size:22px;
}

.playbook-guide-chip-row {
  display:flex;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  min-width:220px;
}

.playbook-guide-output-strip > div,
.playbook-guide-output-strip > div:last-child,
.playbook-guide-output-strip strong,
.playbook-guide-mini-card strong {
  min-width:0;
  overflow-wrap:anywhere;
}
.playbook-guide-flow {
  display:grid;
  gap:14px;
  padding:18px;
}
.playbook-guide-step {
  display:grid;
  grid-template-columns:32px minmax(0, 1fr);
  gap:12px;
  min-width:0;
}
.playbook-guide-step-marker {
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:100%;
}
.playbook-guide-step-marker span {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:28px;
  height:28px;
  border-radius:var(--radius-role-full);
  background:var(--ink);
  color:var(--ink-fg);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
}
.playbook-guide-step-marker::after {
  content:"";
  width:1px;
  flex:1 1 auto;
  min-height:22px;
  margin-top:2px;
  background:var(--rule);
}
.playbook-guide-step:last-child .playbook-guide-step-marker::after {
  display:none;
}
.playbook-guide-step-body {
  display:grid;
  min-width:0;
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
  background:var(--surface);
  overflow:hidden;
}
.playbook-guide-step-body > header {
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:14px;
  border-bottom:1px solid var(--rule);
}
.playbook-guide-step-icon {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:var(--radius);
  background:var(--surface-3);
  color:var(--text);
  flex:0 0 auto;
}
.playbook-guide-step-body h4 {
  font-size:16px;
}
.playbook-guide-step-body p {
  color:var(--muted);
  font-size: var(--text-body);
  line-height:1.4;
}
.playbook-guide-step-content {
  display:grid;
  gap:12px;
  padding:14px;
  min-width:0;
}
.help-chip-cloud {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
}
.help-chip-cloud.compact {
  gap:5px;
  margin-top:8px;
}
.playbook-guide-mini-cards {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:10px;
}
.playbook-guide-mini-card {
  display:grid;
  gap:8px;
  padding:12px;
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
  background:var(--surface);
}
.mini-card-title {
  display:flex;
  gap:8px;
  align-items:center;
}
.playbook-guide-authority {
  display:grid;
  gap:8px;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule);
}
.skeleton-card {
  min-height:118px;
  background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));
  background-size:220% 100%;
  animation:lx-skeleton 1.1s ease-in-out infinite;
  box-shadow:none;
}
@media (max-width: 980px) {
  .reports-grid {
    grid-template-columns:1fr;
  }
  .app-page-body > .reports-grid {
    padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  }
  .reports-data-table-shell {
    max-height:clamp(320px, calc(100vh - 300px), 680px);
  }
  .report-parameter-form { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .report-parameter-run { width:100%; }
  .help-layout {
    grid-template-columns:1fr;
    padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  }
  .help-section-list {
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  }
  .help-guide-hero,
  .playbook-guide-output-strip,
  .playbook-guide-detail-header {
    grid-template-columns:1fr;
  }
  .playbook-guide-detail-header {
    display:grid;
  }
  .playbook-guide-chip-row {
    justify-content:flex-start;
    min-width:0;
  }
  .playbook-guide-output-strip,
  
  }
@media (max-width: 640px) {
  .help-guide-toolbar,
  .help-date-control {
    align-items:stretch;
  }
  .help-guide-toolbar,
  .help-date-control,
  .help-date-control .input,
  .help-guide-toolbar .filter-search {
    width:100%;
  }
  .help-toolbar-count {
    margin-left:0;
  }
  .playbook-guide-picker {
    grid-template-columns:1fr;
    max-height:none;
  }
  .playbook-guide-step {
    grid-template-columns:1fr;
  }
  .playbook-guide-step-marker {
    display:none;
  }
}
@media (max-width: 620px) {
  .report-parameter-form { grid-template-columns:1fr; }
}

/* Help article visual treatment: editorial explainer inside the LexRio app shell. */
/* Help palette now aliases system tokens: canvas/ink/hairlines from the app,
   the old bespoke emerald selection replaced by the app's violet selection
   family, surfaces by the widget shadow. Help keeps its own component shapes
   where genuinely unique, but no parallel colour system. */
.help-layout {
  --help-paper:var(--bg);
  --help-paper-2: var(--surface-2);
  --help-ink:var(--text);
  --help-ink-soft:var(--text-2);
  --help-muted:var(--text-3);
  --help-hair:var(--rule);
  --help-hair-strong:var(--rule-firm);
  --help-emerald:var(--accent);
  --help-emerald-bright:var(--accent-hover);
  --help-emerald-deep:var(--ink);
  --help-emerald-wash:var(--accent-soft);
  --help-amber:var(--warn);
  --help-amber-wash:var(--warn-soft);
  --help-shadow:var(--widget-shadow);
  grid-template-columns:minmax(190px, 230px) minmax(0, 1fr);
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
  /* transparent so the standard app canvas shows behind the widget surfaces —
     an opaque paper here was hiding the canvas and killing the panels' lift */
  background:transparent;
  color:var(--help-ink);
}
.help-section-rail {
  position:sticky;
  top:0;
}
.document-playbook-guide {
  gap:22px;
}

.help-guide-hero .eyebrow {
  color:var(--help-emerald);
  font-size: var(--text-sm);
  letter-spacing:0.12em;
}




.help-guide-toolbar {
  align-items:flex-end;
  padding:0 2px;
}
.help-guide-toolbar .filter-search {
  max-width:500px;
}
.help-date-control {
  color:var(--help-ink-soft);
}
.help-date-control .input {
  border-color:var(--help-hair-strong);
  border-radius:var(--radius-role-md);
  background:var(--help-paper);
}
.playbook-guide-picker {
  grid-template-columns:repeat(auto-fill, minmax(172px, 1fr));
  gap:9px;
  max-height:clamp(280px, 42vh, 480px);
}
.playbook-guide-card {
  min-height:112px;
  gap:9px;
  padding:13px;
  border:1px solid var(--help-hair-strong);
  border-radius:var(--radius-role-lg);
  background:var(--help-paper);
  box-shadow:none;
  transition:border-color 0.16s, box-shadow 0.16s, transform 0.16s, background 0.16s;
}
.playbook-guide-card:hover,
.playbook-guide-card:focus-visible {
  border-color:var(--help-emerald-bright);
  background:white;
  box-shadow:var(--help-shadow);
  transform:translateY(-2px);
}
.playbook-guide-card.active {
  border-color:var(--help-emerald-deep);
  background:var(--help-emerald-deep);
  box-shadow:var(--help-shadow);
}
.playbook-guide-card.active .playbook-guide-card-category,
.playbook-guide-card.active .playbook-guide-card-title,
.playbook-guide-card.active .playbook-guide-card-code,
.playbook-guide-card.active .playbook-guide-card-counts {
  color:var(--help-paper);
}
.playbook-guide-card-category {
  color:var(--help-muted);
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:0.01em;
}
.playbook-guide-card-title {
  font-size:14.5px;
  line-height:1.18;
}

.playbook-guide-card-counts span {
  padding:2px 8px;
  border-radius:var(--radius-pill);
  background:var(--help-amber-wash);
  color:var(--help-amber);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.playbook-guide-card.active .playbook-guide-card-counts span {
  background:rgba(255, 255, 255, 0.16);
  color:#CFEFE0;
}
.playbook-guide-detail {
  border:1px solid var(--help-hair);
  border-radius:var(--radius-role-lg);
  background:var(--help-paper);
  box-shadow:none;
}
.playbook-guide-detail-header {
  padding:24px 28px 20px;
  border-bottom:0;
}
.playbook-guide-detail-header .eyebrow {
  color:var(--help-muted);
}
.playbook-guide-detail-header h3 {
  color:var(--help-ink);
  font-family:Georgia, "Times New Roman", serif;
  font-size:clamp(25px, 3vw, 34px);
  font-weight: var(--font-weight-medium);
}

.playbook-guide-chip-row .chip {
  border:1px solid var(--help-hair);
  background:var(--help-paper-2);
}
.playbook-guide-output-strip,

.playbook-guide-output-strip > div,
.playbook-guide-flow {
  position:relative;
  gap:0;
  padding:28px;
}
.playbook-guide-flow::before {
  content:"";
  position:absolute;
  left:43px;
  top:36px;
  bottom:62px;
  width:2px;
  background:linear-gradient(var(--help-hair-strong), var(--help-hair));
}
.playbook-guide-step {
  position:relative;
  grid-template-columns:34px minmax(0, 1fr);
  gap:18px;
  padding-bottom:28px;
}
.playbook-guide-step:last-child {
  padding-bottom:0;
}
.playbook-guide-step-marker {
  z-index:1;
}
.playbook-guide-step-marker span {
  width:26px;
  height:26px;
  border:2px solid var(--help-emerald);
  background:var(--help-paper);
  color:var(--help-emerald);
}
.playbook-guide-step-marker::after {
  display:none;
}
.playbook-guide-step-body {
  gap:10px;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.playbook-guide-step-body > header {
  padding:0;
  border-bottom:0;
}
.playbook-guide-step-icon {
  width:28px;
  height:28px;
  border:1px solid var(--help-hair);
  border-radius:var(--radius-role-md);
  background:var(--help-paper-2);
  color:var(--help-emerald);
}
.playbook-guide-step-body h4 {
  color:var(--help-ink);
  font-size:19px;
  line-height:1.12;
}
.playbook-guide-step-body p {
  max-width:72ch;
  color:var(--help-ink-soft);
  font-size:14.5px;
}
.playbook-guide-step-content {
  padding:0;
}
.help-chip-cloud .chip,
.playbook-guide-authority .chip {
  border:1px solid var(--help-hair);
  border-radius:var(--radius-role-md);
  background:var(--help-paper-2);
  color:var(--help-ink-soft);
  font-family:var(--font-mono);
}
.playbook-guide-facts {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid var(--help-hair);
  border-radius:var(--radius-role-lg);
  background:var(--help-hair);
}
.playbook-guide-fact {
  display:grid;
  gap:5px;
  min-height:102px;
  padding:12px 13px;
  background:var(--help-paper);
}
.playbook-guide-fact-label {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  color:var(--help-muted);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
  letter-spacing:0.01em;
}
.playbook-guide-fact-label span:last-child {
  padding:1px 5px;
  border-radius:var(--radius-role-sm);
  background:var(--help-amber-wash);
  color:var(--help-amber);
  font-family:var(--font-mono);
  font-size:9px;
}
.playbook-guide-fact-value {
  color:var(--help-ink);
  font-family:var(--font-mono);
  font-size:13.5px;
  font-weight: var(--font-weight-medium);
}
.playbook-guide-fact-meta {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:auto;
  color:var(--help-muted);
  font-size: var(--text-xs);
}
.playbook-guide-deadlines,
.playbook-guide-tasks,
.playbook-guide-updates {
  display:grid;
  gap:10px;
}
.playbook-guide-deadline {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:8px 16px;
  align-items:center;
  padding:16px 18px;
  border:1px solid var(--help-hair-strong);
  border-radius:var(--radius-role-lg);
  background:var(--help-paper);
}
.playbook-guide-deadline.statute {
  border-color:#E7C99E;
  background:linear-gradient(180deg, var(--help-amber-wash), var(--help-paper));
}
.playbook-guide-deadline-label {
  color:var(--help-ink);
  font-size:15.5px;
}
.playbook-guide-deadline-why {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:5px;
  color:var(--help-ink-soft);
  font-size: var(--text-body);
}
.playbook-guide-citation {
  padding:2px 7px;
  border:1px solid #EBD3AE;
  border-radius:var(--radius-role-sm);
  background:var(--help-amber-wash);
  color:var(--help-amber);
  font-family:var(--font-mono);
  font-size: var(--text-sm);
}
.playbook-guide-deadline.firm .playbook-guide-citation {
  border-color:#C7E6D7;
  background:var(--help-emerald-wash);
  color:var(--help-emerald);
}
.playbook-guide-deadline-date {
  display:grid;
  gap:2px;
  text-align:right;
}
.playbook-guide-deadline-date strong {
  color:var(--help-amber);
  font-family:var(--font-mono);
  font-size:16px;
  white-space:nowrap;
}
.playbook-guide-deadline.firm .playbook-guide-deadline-date strong {
  color:var(--help-emerald);
}
.playbook-guide-deadline-date span {
  color:var(--help-muted);
  font-size: var(--text-sm);
}
.playbook-guide-task {
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:12px 14px;
  border:1px solid var(--help-hair);
  border-radius:var(--radius-role-lg);
  background:var(--help-paper);
}
.playbook-guide-task-box {
  width:16px;
  height:16px;
  margin-top:2px;
  border:1.6px solid var(--help-hair-strong);
  border-radius:var(--radius-role-sm);
  flex:0 0 auto;
}
.playbook-guide-task.priority .playbook-guide-task-box {
  border-color:var(--help-amber);
  background:var(--help-amber-wash);
}
.playbook-guide-task strong {
  color:var(--help-ink);
  font-size:14.5px;
}
.playbook-guide-task div div {
  margin-top:3px;
  color:var(--help-muted);
  font-family:var(--font-mono);
  font-size: var(--text-sm);
}
.playbook-guide-task-priority {
  margin-left:8px;
  color:var(--help-amber);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  letter-spacing:0.01em;
}
.playbook-guide-update {
  display:grid;
  grid-template-columns:minmax(120px, 0.35fr) minmax(0, 1fr) auto;
  gap:10px;
  align-items:center;
  color:var(--help-ink-soft);
  font-size:14.5px;
}
.playbook-guide-update strong {
  color:var(--help-ink-soft);
  font-weight: var(--font-weight-semibold);
}
.playbook-guide-update span {
  min-width:0;
  padding:4px 9px;
  border:1px solid #C7E6D7;
  border-radius:var(--radius-role-md);
  background:var(--help-emerald-wash);
  color:var(--help-emerald-deep);
  font-family:var(--font-mono);
  font-size: var(--text-body);
  overflow-wrap:anywhere;
}
.playbook-guide-update em {
  color:var(--help-muted);
  font-family:var(--font-mono);
  font-size:10.5px;
  font-style:normal;
  letter-spacing:0.01em;
  white-space:nowrap;
}
.playbook-guide-update em.hold {
  color:var(--help-amber);
}
.playbook-guide-mini-card,
.playbook-guide-authority,
.playbook-guide-empty-row {
  border:1px solid var(--help-hair);
  border-radius:var(--radius-role-lg);
  background:color-mix(in srgb, var(--help-paper) 72%, white);
  box-shadow:none;
}

/* ---- Compact master-detail density layer ---- */
.document-playbook-guide {
  gap:10px;
}
.playbook-guide-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px 20px;
  flex-wrap:wrap;
  padding:12px 16px;
  border:1px solid var(--help-hair);
  border-radius:var(--radius);
  background:var(--help-paper);
}
.playbook-guide-head-text {
  display:grid;
  gap:2px;
  min-width:0;
}
.playbook-guide-head-text h2 {
  margin:0;
  font-family:inherit;
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color:var(--help-ink);
  letter-spacing:0;
  line-height:1.2;
}
.playbook-guide-head-note {
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin:1px 0 0;
  color:var(--help-muted);
  font-size:11.5px;
}
.document-playbook-guide .help-guide-toolbar {
  margin:0;
  gap:8px;
  flex:1 1 360px;
  justify-content:flex-end;
}
.document-playbook-guide .help-guide-toolbar .filter-search {
  flex:1 1 170px;
  min-width:140px;
}

.playbook-guide-split {
  display:grid;
  grid-template-columns:minmax(220px, 280px) minmax(0, 1fr);
  height:min(74vh, 760px);
  border:1px solid var(--help-hair);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--help-paper);
}
.playbook-guide-split .playbook-guide-picker-scroll {
  max-height:none;
  height:100%;
  margin:0;
  padding:8px;
  gap:10px;
  border-right:1px solid var(--help-hair);
  background:var(--help-paper-2);
}
.playbook-guide-detail-pane {
  height:100%;
  min-width:0;
  overflow:auto;
}
.playbook-guide-split .playbook-guide-detail {
  border:0;
  border-radius:var(--radius-role-none);
  box-shadow:none;
  background:transparent;
}

/* dense picker list */
.playbook-guide-split .playbook-guide-picker { gap:4px; }
.playbook-guide-split .playbook-guide-cat-group { gap:4px; }
.playbook-guide-split .playbook-guide-cat-title {
  background:var(--help-paper-2);
  padding:4px 2px 2px;
}
.playbook-guide-split .playbook-guide-card {
  min-height:0;
  gap:4px;
  padding:7px 9px;
  border-radius:var(--radius-role-md);
}
.playbook-guide-split .playbook-guide-card-title { font-size:12.5px; line-height:1.2; }
.playbook-guide-split .playbook-guide-card-counts { gap:5px; }
.playbook-guide-split .playbook-guide-card-counts span { padding:1px 6px; font-size:9.5px; }

/* dense detail */
.playbook-guide-split .playbook-guide-detail-header { padding:13px 16px 10px; }
.playbook-guide-split .playbook-guide-detail-header .eyebrow { font-size: var(--text-2xs); }
.playbook-guide-split .playbook-guide-detail-header h3 {
  font-family:inherit;
  font-size:17px;
  font-weight: var(--font-weight-semibold);
}
.playbook-guide-split .playbook-guide-chip-row { min-width:0; }
.playbook-guide-split .playbook-guide-split .playbook-guide-split .playbook-guide-split 
.playbook-guide-split .playbook-guide-flow { padding:14px 16px; }
.playbook-guide-split .playbook-guide-flow::before { left:39px; top:26px; bottom:38px; }
.playbook-guide-split .playbook-guide-step {
  grid-template-columns:24px minmax(0, 1fr);
  gap:12px;
  padding-bottom:14px;
}
.playbook-guide-split .playbook-guide-step-marker span { width:20px; height:20px; font-size: var(--text-2xs); }
.playbook-guide-split .playbook-guide-step-body { gap:7px; }
.playbook-guide-split .playbook-guide-step-icon { width:22px; height:22px; }
.playbook-guide-split .playbook-guide-step-body h4 { font-size: var(--text-md); }
.playbook-guide-split .playbook-guide-step-body p { font-size:12.5px; margin-top:2px; }

/* dense facts */
.playbook-guide-split .playbook-guide-facts { grid-template-columns:repeat(auto-fit, minmax(148px, 1fr)); gap:0; background:var(--help-paper); }
.playbook-guide-split .playbook-guide-fact { min-height:0; gap:3px; padding:7px 9px; box-shadow:inset -1px 0 0 var(--help-hair), inset 0 -1px 0 var(--help-hair); }
.playbook-guide-split .playbook-guide-fact-label { font-size:9.5px; }
.playbook-guide-split .playbook-guide-fact-value { font-size: var(--text-sm); }
.playbook-guide-split .playbook-guide-fact-meta { font-size:9.5px; }

/* dense clocks / tasks / updates */
.playbook-guide-split .playbook-guide-deadlines,
.playbook-guide-split .playbook-guide-tasks,
.playbook-guide-split .playbook-guide-updates { gap:6px; }
.playbook-guide-split .playbook-guide-deadline { padding:8px 11px; border-radius:var(--radius-role-md); }
.playbook-guide-split .playbook-guide-deadline-label { font-size: var(--text-body); }
.playbook-guide-split .playbook-guide-deadline-why { font-size:11.5px; margin-top:3px; }
.playbook-guide-split .playbook-guide-deadline-date strong { font-size:13.5px; }
.playbook-guide-split .playbook-guide-task { padding:7px 10px; }
.playbook-guide-split .playbook-guide-task strong { font-size: var(--text-body); }
.playbook-guide-split .playbook-guide-update { font-size: var(--text-body); }
.playbook-guide-split .playbook-guide-update span { padding:3px 8px; font-size: var(--text-sm); }

@media (max-width: 760px) {
  .playbook-guide-head { align-items:stretch; }
  .document-playbook-guide .help-guide-toolbar { justify-content:flex-start; }
  .playbook-guide-split {
    grid-template-columns:1fr;
    height:auto;
  }
  .playbook-guide-split .playbook-guide-picker-scroll {
    max-height:260px;
    border-right:0;
    border-bottom:1px solid var(--help-hair);
  }
  .playbook-guide-detail-pane { overflow:visible; }
}
@media (max-width: 980px) {
  .help-layout {
    grid-template-columns:1fr;
  }
  .help-section-rail {
    position:static;
  }

  .playbook-guide-detail-header,
  .playbook-guide-output-strip,
    .playbook-guide-output-strip,
    .playbook-guide-deadline,
  .playbook-guide-update {
    grid-template-columns:1fr;
  }
  .playbook-guide-deadline-date {
    text-align:left;
  }
}
@media (max-width: 640px) {


  .playbook-guide-flow::before {
    display:none;
  }
}

.docket-table-card {
  min-height:0;
}
.docket-table-card > .card-body.tight {
  overflow:hidden;
}
.my-docket-card {
  flex:0 0 auto;
  min-height:clamp(300px, 36vh, 440px);
}
.my-docket-card.is-empty {
  min-height:0;
}
.my-docket-card > .card-body.tight {
  min-height:244px;
}
.my-docket-card.is-empty > .card-body.tight {
  min-height:0;
}
.my-docket-card .docket-table-scroll {
  max-height:clamp(260px, 44vh, 520px);
}
.my-docket-card.is-empty .docket-table-scroll {
  flex:0 0 auto;
  min-height:0;
  max-height:none;
  overflow:visible;
}
.docket-table-scroll {
  flex:1 1 auto;
  min-height:180px;
}
.docket-table-scroll.is-empty {
  flex:0 0 auto;
  min-height:0;
  max-height:none;
  overflow:visible;
}
.docket-table {
  width:100%;
  table-layout:fixed;
}
.docket-col-type {
  width:146px;
}
.docket-col-due {
  width:118px;
}
.docket-col-title {
  width:auto;
}
.docket-col-claim {
  width:138px;
}
.docket-col-issue {
  width:190px;
}
.docket-col-owner {
  width:104px;
}
.docket-col-risk {
  width:120px;
}
.docket-col-source {
  width:96px;
}
.docket-table th,
.docket-table td {
  vertical-align:middle;
}
.docket-table .table-empty-cell {
  padding:0;
}
.my-docket-card.is-empty .docket-table tbody tr.table-empty-row {
  animation:none;
}
.docket-table thead th {
  white-space:nowrap;
}
.docket-table-scroll .docket-table thead th {
  position:sticky;
  top:0;
  z-index:4;
  background:var(--bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}
.docket-maximize-button {
  flex:0 0 auto;
  margin-left:auto;
}
.docket-table-card.is-maximized {
  min-height:0;
}
.docket-table .filtered-table-th-button {
  gap:3px;
}
.docket-table .filtered-table-heading-label {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.docket-table tbody tr.is-clickable {
  cursor:pointer;
  animation:my-work-row-drop-in 460ms cubic-bezier(0.18, 0.9, 0.2, 1) backwards; /* DC50: see the table-shell entry motion note */
  transform-origin:top center;
}
.docket-table tbody tr.is-historical {
  color:var(--text-3);
}
.docket-table tbody tr.is-historical .docket-title-cell,
.docket-table tbody tr.is-historical .docket-claim-cell strong,
.docket-table tbody tr.is-historical .docket-due-cell strong {
  color:var(--text-3);
}
.docket-table tbody tr.is-disabled {
  cursor:default;
}
.docket-section-row td {
  padding:0;
  border-bottom:1px solid var(--line);
}
.docket-section-toggle {
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  background:linear-gradient(180deg, var(--surface-2), var(--surface-3));
  color:var(--text-2);
  font:inherit;
  text-align:left;
  padding:0 18px;
  cursor:pointer;
}
.docket-section-toggle:hover {
  background:var(--surface-3);
  color:var(--text);
}
.docket-section-critical .docket-section-toggle {
  background:linear-gradient(180deg, var(--surface-2), var(--surface-3));
  color:var(--text-2);
  box-shadow:inset 3px 0 0 var(--critical);
}
.docket-section-critical .docket-section-toggle:hover {
  background:var(--surface-3);
  color:var(--text);
}
.docket-section-label {
  font-weight: var(--font-weight-bold);
}
.docket-section-count {
  min-width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 6px;
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  line-height:1;
}
.docket-section-critical .docket-section-count {
  background:var(--critical-soft);
  color:var(--critical);
}
.docket-section-meta {
  margin-left:auto;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
}
.docket-section-more-row td {
  padding:0;
  border-bottom:1px solid var(--widget-divider);
  background:var(--surface);
}
.docket-section-more {
  width:100%;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:0;
  background:transparent;
  color:var(--filter-active-text);
  font:inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  cursor:pointer;
}
.docket-section-more:hover,
.docket-section-more:focus-visible {
  background:var(--surface-2);
  color:var(--text);
}
.docket-type-cell,
.docket-due-cell,
.docket-claim-cell {
  display:grid;
  gap:2px;
  min-width:0;
}
.docket-type-cell {
  grid-template-columns:14px max-content;
  align-items:center;
  gap:7px;
  font-weight: var(--font-weight-bold);
  white-space:nowrap;
}
.docket-type-cell span:last-child {
  min-width:0;
  overflow:visible;
  text-overflow:clip;
}
.docket-type-deadline {
  color:var(--critical);
}
.docket-type-task {
  color:var(--info);
}
.docket-type-appointment {
  color:var(--success);
}
.docket-due-cell strong,
.docket-claim-cell strong,
.docket-due-cell small,
.docket-claim-cell small {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.docket-due-cell strong,
.docket-claim-cell strong {
  font-size:12.5px;
  line-height:1.15;
  color:var(--text);
}
.docket-due-cell small,
.docket-claim-cell small {
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.15;
}
.docket-title-cell,
.docket-source-cell {
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.docket-title-cell {
  max-width:none;
  font-weight: var(--font-weight-semibold);
  color:var(--text);
  white-space:normal;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.docket-source-cell {
  max-width:none;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height:1.2;
}
.docket-title-link,
.awaiting-review-title-link,
.overview-section-title-link {
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  cursor:pointer;
  text-decoration:none;
}
.docket-title-link:hover,
.docket-title-link:focus-visible,
.awaiting-review-title-link:hover,
.awaiting-review-title-link:focus-visible,
.overview-section-title-link:hover,
.overview-section-title-link:focus-visible {
  color:var(--text-2);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  text-decoration:none;
}
.docket-owner-stack {
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
}
.docket-avatar-unassigned {
  background:var(--surface-3);
  color:var(--text-3);
}





@media (max-width: 1500px) {
  .docket-col-type {
    width:144px;
  }
  .docket-col-due {
    width:116px;
  }
  .docket-col-claim {
    width:136px;
  }
  .docket-col-issue {
    width:180px;
  }
  .docket-col-owner {
    width:98px;
  }
  .docket-col-risk {
    width:118px;
  }
  .docket-col-source {
    width:92px;
  }
}





@media (max-width: 760px) {


















  .docket-table,
  .docket-table tbody,
  .docket-table tr,
  .docket-table td {
    display:block;
    width:100%;
  }
  .docket-table thead {
    display:none;
  }
  .docket-table tbody tr {
    padding:12px 14px;
    border-bottom:1px solid var(--rule);
  }
  .docket-table tbody tr:hover {
    background:var(--hover);
  }
  .docket-table tbody td {
    display:grid;
    grid-template-columns:96px minmax(0, 1fr);
    gap:10px;
    padding:5px 0;
    border-bottom:0;
    white-space:normal;
  }
  .docket-table tbody td::before {
    content:attr(data-label);
    color:var(--text-3);
    font-size: var(--text-xs);
    line-height:1.5;
  }
  .docket-table tbody .docket-section-row {
    padding:0;
  }
  .docket-table tbody .docket-section-more-row {
    padding:0;
  }
  .docket-table tbody .docket-section-row td {
    display:block;
    padding:0;
  }
  .docket-table tbody .docket-section-more-row td {
    display:block;
    padding:0;
  }
  .docket-table tbody .docket-section-row td::before {
    content:none;
  }
  .docket-table tbody .docket-section-more-row td::before {
    content:none;
  }
  .docket-section-toggle {
    min-height:42px;
    padding:0 14px;
  }
  .docket-title-cell,
  .docket-source-cell {
    max-width:none;
    white-space:normal;
  }
}
.knowledge-detail-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.knowledge-detail-grid > div {
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius-control);
  background:var(--surface-2);
}
.knowledge-detail-grid span {
  display:block;
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.3;
}
.knowledge-detail-grid strong {
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.drawer-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:14px;
  border-top:1px solid var(--rule);
}
.claim-tab-scaffold {
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--canvas-bg);
}
.claim-tab-header {
  position:relative;
  z-index:30;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:var(--claim-tab-header-padding);
  background:var(--canvas-bg);
}
.claim-tab-header:has(.claim-tab-title-controls) {
  padding-left:var(--space-widget);
  padding-right:var(--space-widget);
}
.claim-tab-heading {
  min-width:0;
}
.claim-tab-title-row {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex-wrap:wrap;
}
.claim-tab-title {
  margin:0;
  font-size: var(--text-xl);
  line-height:1.2;
  font-weight: var(--font-weight-semibold);
  color:var(--text);
  letter-spacing:0;
}
.claim-tab-subtitle {
  margin-top:5px;
  color:var(--text-3);
  font-size: var(--text-body);
  line-height:1.4;
}
.claim-tab-title-controls {
  margin-top:12px;
  min-width:0;
}
.claim-tab-title-control-stack {
  align-items:flex-start;
  gap:0;
  width:100%;
}
.claim-tab-actions {
  position:relative;
  z-index:40;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.claim-docket-header-toggle {
  min-height:var(--button-sm-height);
  margin-right:var(--space-1);
}
.claim-header-actions-cluster {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  min-width:0;
}
.claim-actions-dropdown {
  position:relative;
}
.btn.claim-actions-trigger,
.btn.claim-actions-trigger[aria-expanded="true"] {
  color:var(--text-2);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
}
.btn.claim-actions-trigger:hover,
.btn.claim-actions-trigger[aria-expanded="true"]:hover {
  color:var(--text);
  background:var(--surface-3);
  box-shadow:var(--ring);
}
.claim-actions-trigger .claim-actions-trigger-chevron {
  transition:transform 150ms ease;
  transform-origin:50% 50%;
}
.claim-actions-trigger.is-open .claim-actions-trigger-chevron {
  transform:rotate(-180deg);
}
.claim-actions-menu {
  position:fixed;
  top:var(--claim-actions-menu-top, auto);
  width:252px;
  max-height:var(--claim-actions-menu-max-height, calc(100vh - 96px));
  overflow:auto;
  transform-origin:top right;
  backface-visibility:hidden;
  will-change:transform, opacity;
  z-index:240;
  animation:claim-actions-menu-unfurl 210ms cubic-bezier(0.32, 0, 0.15, 1);
}
.menu-popover.align-right.claim-actions-menu {
  right:var(--claim-actions-menu-right, 8px);
}
.claim-actions-menu-label {
  padding:5px 8px 3px;
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-semibold);
  letter-spacing:0.01em;
}
.claim-actions-menu-item:disabled {
  cursor:not-allowed;
  opacity:0.55;
}
.claim-actions-menu-copy {
  display:grid;
  gap:1px;
  min-width:0;
}
.claim-actions-menu-sub {
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.3;
}
@keyframes claim-actions-menu-unfurl {
  0% {
    opacity:0;
    transform:translateY(-7px) rotateX(-22deg) scaleY(0.82);
  }
  100% {
    opacity:1;
    transform:translateY(0) rotateX(0) scaleY(1);
  }
}
@keyframes claim-facts-panel-unfurl {
  0% {
    opacity:0;
    transform:rotateX(-18deg) scaleY(0.86);
  }
  100% {
    opacity:1;
    transform:rotateX(0) scaleY(1);
  }
}
@keyframes claim-issue-scope-menu-unfurl {
  0% {
    opacity:0;
    transform:translateX(0) rotateX(-18deg) scaleY(0.86);
  }
  100% {
    opacity:1;
    transform:translateX(0) rotateX(0) scaleY(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .claim-actions-trigger svg,
  .claim-actions-menu,
  .claim-issue-scope-menu {
    animation:none;
    transition:none;
  }
}
.claim-tab-body {
  /* IW35: the tab body is the page frame — 16 under the strip, 24 at the
     sides and bottom — so the Summary issues pane shares the tier-2
     selector's left edge (both on --page-gutter). */
  padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:auto;
}
.claim-tab-body:has(.table-shell-with-rail),
.claim-tab-body:has(.data-list-card),
.claim-tab-body:has(.notes-thread-surface),
.claim-tab-body:has(.claim-update-list) {
  overflow:hidden;
}
.claim-tab-scaffold-list .claim-tab-body,
.claim-tab-scaffold-worksheet .claim-tab-body,
.claim-tab-body:has(.official-lni-workspace),
/* The Facts lenses mount railed tables (CAC source registry) whose own shell
   is not height-bounded, so the ":has(.table-shell-with-rail)" hidden rule
   above left ~180 registry rows clipped with nothing to scroll. The Facts
   workspace takes the same tab-body scroll recipe the Official L&I workspace
   already uses. */
.claim-tab-body:has(.enhanced-facts-workspace) {
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.claim-tab-body:has(> .overview-dashboard) {
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.claim-tab-scaffold-list .claim-tab-body .data-list-card,
.claim-tab-scaffold-list .claim-tab-body .data-list-card > .card-body.tight,
.claim-tab-scaffold-list .claim-tab-body .table-scroll-region {
  flex:0 0 auto;
}
.claim-tab-scaffold-list .claim-tab-body .table-scroll-region {
  min-height:132px;
}
.claim-tab-body > .hub,
.claim-tab-body > .document-view-shell,
.claim-tab-body > .lx-28v4rf,
.claim-tab-body > .claim-tab-prose,
.claim-tab-body > .claim-portal-page {
  padding:0;
}
.claim-tab-body > .hub {
  gap:var(--widget-gap);
}
.claim-tab-body > .document-view-shell,
.claim-tab-body > .lx-28v4rf,
.claim-tab-body > .claim-tab-prose {
  display:flex;
  flex-direction:column;
  gap:var(--widget-stack-gap);
  flex:1;
  min-height:0;
  min-width:0;
  max-width:100%;
}
.claim-tab-body > .notes-tab-wrap {
  max-width:none;
  width:100%;
}
.claim-tab-body .table-wrap {
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  overflow:visible;
}
.claim-activity-filter-toolbar {
  padding:0 0 12px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.claim-tab-body .table-wrap .empty-state {
  border-top:1px solid var(--rule-soft);
}
.claim-tab-body .card {
  border-radius:var(--radius-role-none);
}
.claim-tab-scaffold-list .claim-tab-body > .lx-28v4rf > .card,
.claim-tab-scaffold-timeline .claim-tab-body > .lx-28v4rf > .card {
  border-radius:var(--radius);
}
.claim-tab-scaffold-worksheet .claim-tab-body {
  /* IW35 extension: the worksheet scaffold (Financials) forked the top inset to a raw 18 */
  padding-top:var(--page-gutter-top);
}
.claim-info-link-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  padding:10px 0;
  border:0;
  border-bottom:1px solid var(--rule-soft);
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.claim-info-link-row:last-child { border-bottom:0; }
.claim-info-link-row.disabled {
  cursor:not-allowed;
  opacity:0.65;
}
.manual-entry-summary {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.document-context-action-row,
.apf-action-row {
  position:relative;
  z-index:3;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  pointer-events:auto;
}
.document-context-action-row > .btn,
.apf-action-row > .btn {
  position:relative;
  z-index:4;
  pointer-events:auto;
}
.document-file-action-panel,
.document-version-panel {
  display:grid;
  gap:10px;
  margin-bottom:12px;
  padding:12px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.document-version-list {
  display:grid;
  gap:6px;
}
.document-version-row {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface);
  font-size: var(--text-sm);
}
.document-version-row.active {
  border-color:var(--rule-firm);
  box-shadow:inset 2px 0 0 var(--accent);
}
.document-version-row span {
  color:var(--text-2);
  font-weight: var(--font-weight-bold);
}
.document-version-row strong {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
}
.document-version-row em {
  color:var(--text-2);
  font-style:normal;
  white-space:nowrap;
}
.document-ai-card {
  margin-bottom:14px;
}
.document-ai-card .card-head {
  align-items:center;
}
.document-ai-body {
  display:flex;
  flex-direction:column;
  gap:14px;
}
.document-ai-section {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.document-ai-summary {
  margin:0;
  color:var(--text);
  line-height:1.45;
}

.documents-filtered-table {
  table-layout:fixed;
  min-width:1424px;
}
.documents-filtered-table tbody tr {
  position:relative;
}
.documents-filtered-table tbody tr:has(.document-list-title-cell:hover),
.documents-filtered-table tbody tr:has(.document-title-hover:hover),
.documents-filtered-table tbody tr:has(.document-title-hover:focus-within) {
  z-index:var(--z-document-facts-row);
}
/* UP31 (Dan F4, 478:6829-6833): 16 edge + 18px atom + gap -> the first
   text column starts at the authored 52px. */
.documents-filtered-table col.document-col-select { width:36px; }
.documents-filtered-table .document-select-heading,
.documents-filtered-table .document-select-cell {
  padding:0 2px 0 16px;
  text-align:left;
  vertical-align:middle;
}
/* UP31: title is the auto column (surplus absorber) — see the surface-scope
   note. */
.documents-filtered-table col.document-col-summary { width:17%; }
.documents-filtered-table col.document-col-type { width:8.75%; }
.documents-filtered-table col.document-col-category { width:5.75%; }
.documents-filtered-table col.document-col-filed { width:6.5%; }
.documents-filtered-table col.document-col-date { width:6.5%; }
.documents-filtered-table col.document-col-visit { width:6.5%; }
.documents-filtered-table col.document-col-issues { width:8.75%; }
.documents-filtered-table col.document-col-tags { width:7%; }
.documents-filtered-table col.document-col-status { width:5%; }
/* IW42 (Dan review): the trailing actions column is part of the table's own
   width budget — the 28px editor button + the 28px "…" trigger (--space-1
   apart) inside the cell's 16 side padding, right-aligned, never past the
   table edge (5% of the 1440 table was 72 → the pair overflowed it). */
.documents-filtered-table col.document-col-edit { width:92px; }
.documents-filtered-table tbody td {
  font-size: var(--text-sm);
  line-height:1.25;
}
.documents-filtered-table tbody td:not(.document-list-title-cell) .cell-strong,
.documents-filtered-table tbody td:not(.document-list-title-cell) .small {
  font-size:inherit;
  line-height:inherit;
  letter-spacing:0;
}
.document-list-title-cell {
  min-width:0;
  position:relative;
}
.document-selection-bar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 16px;
  padding:8px 10px;
  border-top:1px solid var(--rule-soft);
  border-bottom:1px solid var(--rule-soft);
  background:color-mix(in srgb, var(--accent) 5%, var(--surface));
}
.document-selection-summary,
.document-selection-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
}
.document-selection-summary {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.document-selection-packet-select {
  width:min(260px, 42vw);
}
.document-selection-inline-row td {
  padding:0;
  background:color-mix(in srgb, var(--accent) 5%, var(--surface));
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.document-selection-inline-banner {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:34px;
  padding:7px 12px;
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.document-select-heading,
.document-select-cell {
  text-align:center;
}
.document-select-heading input,
.document-select-cell input {
  width:14px;
  height:14px;
  margin:0;
  accent-color:var(--accent);
}
.documents-filtered-table tbody tr.document-row-selected {
  background:color-mix(in srgb, var(--accent) 6%, var(--surface));
}
.document-list-title-cell:hover,
.document-list-title-cell:has(.document-title-hover:hover),
.document-list-title-cell:has(.document-title-hover:focus-within) {
  z-index:calc(var(--z-document-facts-row) + 1);
}
.document-list-title-text {
  display:inline;
  overflow:hidden;
}
.document-title-hover {
  position:relative;
  display:inline;
  max-width:100%;
  min-width:0;
}
.document-sharing-indicators {
  display:inline-flex;
  align-items:center;
  gap:3px;
  margin-left:5px;
  vertical-align:1px;
}
.document-sharing-chip {
  display:inline-flex;
  align-items:center;
  gap:2px;
  min-height:16px;
  padding:1px 4px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-full);
  background:var(--surface);
  color:var(--text-2);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-bold);
  line-height:1;
}
.document-sharing-chip svg {
  color:var(--text-3);
}
.document-sharing-chip.warn {
  border-color:color-mix(in srgb, var(--warn) 42%, var(--rule));
  background:color-mix(in srgb, var(--warn) 12%, var(--surface));
  color:var(--text);
}
.document-sharing-chip.warn svg {
  color:var(--warn);
}
.document-hidden-facts-trigger {
  display:none;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  padding:0;
  border:0;
  appearance:none;
  background:transparent;
  vertical-align:-1px;
  margin-left:4px;
  color:var(--text-3);
  cursor:help;
  line-height:1;
}
.document-hidden-facts-trigger:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.document-hidden-facts-popover {
  pointer-events:none;
  position:absolute;
  z-index:var(--z-document-facts-popover);
  left:0;
  top:calc(100% + 8px);
  display:flex;
  flex-direction:column;
  width:min(420px, calc(100vw - 32px));
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--radius-role-none);
  background:var(--bg);
  color:var(--text);
  box-shadow:var(--shadow-pop);
  opacity:0;
  transform:translateY(-3px);
  transition:opacity 160ms ease, transform 160ms ease, visibility 160ms linear;
  visibility:hidden;
}
.documents-filtered-table tbody tr:nth-last-child(-n + 2) .document-hidden-facts-popover {
  top:auto;
  bottom:calc(100% + 8px);
  transform:translateY(3px);
}
.document-list-title-cell:hover .document-hidden-facts-popover,
.document-list-title-cell:focus-within .document-hidden-facts-popover,
.document-title-hover:hover .document-hidden-facts-popover,
.document-title-hover:focus-within .document-hidden-facts-popover {
  opacity:1;
  transform:translateY(0);
  visibility:visible;
}
.document-hidden-facts-popover-portal {
  position:fixed;
  left:var(--document-facts-popover-left);
  top:var(--document-facts-popover-top);
  bottom:auto;
  width:min(var(--document-facts-popover-width), calc(100vw - 32px));
  max-height:calc(100vh - 32px);
  overflow:auto;
  opacity:1;
  transform:none;
  visibility:visible;
}
.document-hidden-facts-title {
  display:block;
  min-height:38px;
  padding:8px 10px 7px 12px;
  border-bottom:1px solid var(--border);
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-bold);
  line-height:1.25;
}
.document-hidden-facts-row {
  display:grid;
  grid-template-columns:88px minmax(0, 1fr);
  gap:10px;
  min-height:32px;
  padding:7px 12px;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
}
.document-hidden-facts-row + .document-hidden-facts-row {
  border-top:1px solid var(--border);
}
.document-hidden-facts-row > span:first-child {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.document-list-summary-cell {
  min-width:0;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.25;
}
.document-list-summary-text {
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
}
.document-list-chip-cell {
  min-width:0;
}
.document-table-meta-label {
  display:inline;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height:1.25;
}
.document-issue-label {
  color:var(--text-2);
}
.document-list-date-cell {
  min-width:0;
  white-space:nowrap;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.25;
}
.documents-filtered-table td.document-list-date-cell {
  font-size: var(--text-sm);
  line-height:1.25;
}
.document-filed-date-wrap {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  max-width:100%;
}
.document-view-dot {
  display:inline-block;
  width:7px;
  height:7px;
  flex:0 0 7px;
  border:0;
  border-radius:var(--radius-role-full);
  background:transparent;
}
.document-view-dot.is-unviewed {
  background:var(--success);
}
.document-view-dot.is-viewed {
  visibility:hidden;
}
.document-list-visit-cell {
  min-width:0;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.25;
}
.document-list-visit-cell > div,
.document-list-visit-cell > span {
  display:block;
  overflow:hidden;
  font-size:inherit;
  line-height:inherit;
  letter-spacing:0;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.document-list-issues-cell {
  min-width:0;
}
.document-issue-chip-stack {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
  min-width:0;
  line-height:1.25;
}
.document-unlinked-issue {
  display:inline-block;
  font-size: var(--text-sm);
  line-height:1.25;
}
.documents-filtered-table .document-unlinked-issue {
  font-size: var(--text-sm);
}
.document-tags-cell {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-1);
  align-items:center;
  min-width:0;
  overflow:hidden;
}
.document-tags-cell .chip {
  max-width:100%;
  flex:0 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}
/* UP60 (tester finding on UP57): the central chip is nowrap, so a long
   category label must be CONTAINED by its cell — it painted over the
   Filed column. Same ellipsis-clip containment as the tags pills; the
   full text stays on the cell's title attribute. */
.document-list-chip-cell.document-category-column .chip {
  max-width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.document-status-cell {
  text-align:left;
}
.document-edit-cell {
  text-align:right;
}
.document-tags-table-cell,
.documents-filtered-table td:last-child {
  min-width:0;
}
.document-alert-button {
  width:28px;
  height:28px;
  min-width:0;
  padding:0;
  justify-content:center;
}
.document-edit-action-wrap {
  display:inline-flex;
}
/* Issues workspace slice (D9): the trailing cell carries the internal-editor
   button AND the row "…" menu trigger — one 28px ghost recipe for both. */
.document-row-actions {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--space-1);
  max-width:100%;
}
.document-row-menu-button,
.document-edit-button {
  width:28px;
  height:28px;
  /* IW43 (twelfth pass F1): the pair keeps its 28+4+28 budget — a narrowed
     actions column must OVERFLOW (which the geometry leg catches), never
     squeeze the triggers down to a hairline. */
  flex:0 0 28px;
  min-width:28px;
  padding:0;
  justify-content:center;
}
.document-edit-button:disabled {
  color:var(--text-3);
  cursor:not-allowed;
  opacity:0.55;
}
/* DR6 (Dan) + X4 (OA-B8): the pin reads FULL purple inside that pill — the
   brand token at opacity 1. It reuses the pill SURFACE (bg, border, radius,
   28px) but not the padlock's disabled dimming, which would paint it pale
   lavender; and it is an image, not a control, so the cursor is default. */
.document-edit-button.document-pinned-glyph {
  color:var(--brand-primary);
  cursor:default;
  opacity:1;
}
.document-status-chip {
  max-width:100%;
  padding-left:8px;
  padding-right:8px;
  white-space:nowrap;
}
.document-date-filter {
  width:150px;
}
.document-date-filter-field {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text-2);
  font-size: var(--text-sm);
  white-space:nowrap;
}
/* The viewport-based progressive column collapse for the documents table
   was retired on 22 Aug 2026 (D61): the DH full-columns table keeps every
   column and pans horizontally inside its table-wrap instead. The
   hidden-facts trigger it used to gate is now always available. */
.document-hidden-facts-trigger { display:inline-flex; }

.document-ai-keyterms {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.document-ai-term {
  gap:6px;
}
.document-ai-term strong {
  color:var(--text);
}
.document-ai-structured {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  border:1px solid var(--rule);
  border-radius:var(--radius);
  overflow:hidden;
}
.document-ai-structured-row {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  padding:10px 12px;
  border-right:1px solid var(--rule-soft);
  border-bottom:1px solid var(--rule-soft);
}
.document-ai-structured-row:nth-child(2n) {
  border-right:0;
}
.document-ai-structured-row span {
  color:var(--text-3);
  font-size: var(--text-xs);
}
.document-ai-structured-row strong {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.document-ai-markdown {
  min-height:180px;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: var(--text-sm);
  line-height:1.45;
}
.document-review-modal {
  min-width:min(980px, calc(100vw - 32px));
}
.document-review-modal-body {
  padding:0;
  overflow:hidden;
}
.document-review-workspace {
  display:grid;
  grid-template-columns:minmax(460px, 1.08fr) minmax(420px, 0.92fr);
  min-height:0;
  height:100%;
}
.document-review-preview-pane {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  border-right:1px solid var(--rule);
  background:var(--surface-2);
}
.document-review-preview-body {
  min-height:0;
  flex:1;
  overflow:auto;
  padding:12px;
}
.document-review-preview-body .hub-pdf-viewer {
  min-height:100%;
  max-height:none;
}
.document-review-preview-body .document-review-page {
  min-height:100%;
}
.document-review-tags {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.document-summary-tags-card {
  align-content:start;
  gap:8px;
  padding-block:10px;
}
.document-review-tags .tag-bubble {
  min-height:22px;
  padding:3px 8px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text-2);
  font-size: var(--text-xs);
  line-height:1.2;
}
.document-review-ai-message,
.document-ai-empty-state {
  display:grid;
  gap:8px;
}
.document-review-ai-message {
  padding:10px 12px;
  border:1px solid var(--warn);
  border-radius:var(--radius-lg);
  background:var(--warn-soft);
  color:var(--warn);
  font-size: var(--text-sm);
  line-height:1.45;
}
.document-review-detail-card,
.document-review-deadline-card {
  display:grid;
  gap:8px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:12px;
}
.document-review-detail-row {
  display:grid;
  grid-template-columns:minmax(82px, 0.45fr) minmax(0, 1fr);
  gap:10px;
  align-items:baseline;
}
.document-review-detail-row span,
.document-review-deadline-card span {
  color:var(--text-3);
  font-size: var(--text-sm);
}
.document-review-detail-row strong,
.document-review-deadline-card strong {
  min-width:0;
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.document-review-deadline-card {
  border-color:rgba(156, 110, 31, 0.24);
  background:var(--warn-soft);
}
.document-review-update-card,
.claim-update-entry-card {
  display:grid;
  gap:10px;
  border:1px solid rgba(29, 113, 184, 0.24);
  border-radius:var(--radius-lg);
  background:var(--info-soft);
  padding:12px;
}
.claim-update-entry-card {
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:12px 16px;
  border-color:var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.document-review-update-card strong,
.claim-update-entry-card strong {
  display:block;
  color:var(--text);
  font-size: var(--text-md);
  font-weight: var(--font-weight-bold);
}
.document-review-update-card span {
  display:block;
  color:var(--text-2);
  font-size: var(--text-sm);
  margin-top:2px;
}
.claim-update-entry-card p {
  margin:4px 0 0;
}
.document-review-update-card .btn {
  justify-content:center;
}
.claim-update-entry-card .btn {
  justify-self:end;
  width:auto;
  min-width:max-content;
}
.document-review-actions {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.document-review-main {
  display:flex;
  flex-direction:column;
  min-width:0;
  background:var(--surface);
  overflow:hidden;
}
.document-review-tabs {
  padding:0 12px;
  border-bottom:1px solid var(--rule-soft);
}
.document-review-section {
  display:grid;
  gap:16px;
  padding:16px;
  overflow:auto;
}
.document-review-main > .document-review-section {
  min-height:0;
  flex:1;
}
.document-review-detail-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.document-summary-stack {
  display:grid;
  align-content:start;
  gap:12px;
}
.document-summary-details-card {
  gap:10px;
}
.document-summary-detail-list {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px 18px;
}
.document-summary-primary,
.document-summary-extract-section {
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  padding:12px;
}
.document-extract-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.document-extract-toolbar .field-label {
  margin-bottom:0;
}
.document-extract-preview {
  max-height:320px;
  overflow:auto;
}
.document-summary-empty {
  color:var(--text-3);
  font-size: var(--text-sm);
}
.document-extract-preview p {
  margin:0 0 10px;
  color:var(--text-2);
  line-height:1.45;
}
.document-extract-preview p:last-child {
  margin-bottom:0;
}
.evidence-summary-textarea {
  min-height:180px;
}
.document-review-page {
  margin:0;
}
.claim-update-review-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.claim-update-review-head p {
  margin:4px 0 0;
}
.claim-update-list {
  display:grid;
  gap:10px;
}
.claim-updates-workspace {
  display:flex;
  flex-direction:column;
  gap:14px;
  flex:1;
  min-height:0;
}
.enhanced-facts-workspace {
  --enhanced-facts-lni-blue:rgb(5, 34, 102);
  display:grid;
  gap:var(--widget-gap);
  min-width:0;
  min-height:0;
  padding-bottom:var(--space-8);
}



.enhanced-facts-layout {
  display:grid;
  grid-template-columns:minmax(176px, 200px) minmax(0, 1fr);
  gap:var(--widget-gap);
  align-items:start;
  min-width:0;
}
.enhanced-facts-rail {
  position:sticky;
  top:0;
  display:grid;
  min-width:0;
  overflow:hidden;
  border:0;
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
}
.enhanced-facts-category-rail {
  display:grid;
  min-width:0;
}
.enhanced-facts-rail-item {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:9px 10px;
  border:0;
  border-bottom:1px solid var(--widget-divider);
  background:transparent;
  color:var(--text-2);
  font:inherit;
  font-size:12.5px;
  text-align:left;
  cursor:pointer;
}
.enhanced-facts-rail-item:last-child {
  border-bottom:0;
}
.enhanced-facts-rail-item:hover,
.enhanced-facts-rail-item.active {
  background:var(--widget-header-bg);
  color:var(--text);
}
.enhanced-facts-rail-item.active {
  box-shadow:inset 3px 0 0 var(--accent-selection);
  font-weight: var(--font-weight-semibold);
}
.enhanced-facts-rail-item span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.enhanced-facts-rail-item small {
  display:block;
  margin-top:2px;
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-medium);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.enhanced-facts-rail-item strong {
  min-width:20px;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  text-align:right;
}
.enhanced-facts-main {
  display:grid;
  gap:var(--widget-gap);
  min-width:0;
  padding-bottom:var(--space-6);
}



.enhanced-facts-soft-alert {
  color:var(--warn);
}
.enhanced-facts-source-bar {
  padding:0;
  background:transparent;
}
.enhanced-facts-source-bar .filter-chip-select {
  max-width:min(440px, 100%);
}
.enhanced-facts-table-shell {
  display:grid;
  gap:var(--widget-gap);
  min-width:0;
}
.enhanced-facts-table-shell.with-detail {
  grid-template-columns:minmax(0, 1fr) minmax(280px, 330px);
  align-items:start;
}
.enhanced-facts-table-wrap {
  min-width:0;
  overflow:auto;
  border:0;
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
}
.enhanced-facts-table {
  width:100%;
  min-width:0;
  margin:0;
  table-layout:fixed;
}
.enhanced-facts-lens-compare .enhanced-facts-table {
  min-width:0;
}
.enhanced-facts-lens-lexrio .enhanced-facts-table {
  min-width:0;
}
.enhanced-facts-table th,
.enhanced-facts-table td {
  line-height:1.35;
}
.enhanced-facts-table thead tr:not(.enhanced-facts-group-row) th {
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
  border-bottom:1px solid var(--rule-firm);
}
.enhanced-facts-table th:first-child,
.enhanced-facts-table td:first-child,
.enhanced-facts-table tbody th[scope="row"] {
  width:clamp(150px, 22%, 220px);
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.enhanced-facts-table col.enhanced-facts-col-field { width:130px; }
.enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-field { width:135px; }
.enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-lni-value { width:40%; }
.enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-adoption { width:150px; }
.enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-observed { width:95px; }
.enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-field { width:120px; }
.enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-lni-value { width:210px; }
.enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-adoption { width:135px; }
.enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-lexrio-value { width:205px; }
.enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-history { width:60px; }
.enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-field { width:130px; }
.enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-lexrio-value { width:30%; }
.enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-source { width:18%; }
.enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-review { width:128px; }
.enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-history { width:58px; }
.enhanced-facts-lens-lni .enhanced-facts-table-wrap {
  background:var(--widget-bg);
}
.enhanced-facts-mirror-group,
.enhanced-facts-table th.enhanced-facts-mirror-col,
.enhanced-facts-table td.enhanced-facts-mirror-col {
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 58%, var(--widget-bg));
}
.enhanced-facts-mirror-group,
.enhanced-facts-table th.enhanced-facts-mirror-col {
  color:var(--enhanced-facts-lni-blue);
}
.enhanced-facts-table td.enhanced-facts-mirror-col .enhanced-fact-value {
  color:var(--enhanced-facts-lni-blue);
}
.enhanced-facts-adoption-cell .chip {
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:left;
}
.enhanced-facts-inline-review {
  margin-top:6px;
  width:max-content;
  max-width:100%;
}
.enhanced-facts-group-row th {
  border-bottom-color:var(--widget-divider);
  background:var(--widget-header-bg);
  color:var(--text);
  font-size: var(--text-xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing:-0.03em;
  line-height:1.3;
  padding:14px var(--widget-padding-x) 12px;
  white-space:normal;
}
.enhanced-facts-group-row th.enhanced-facts-mirror-group {
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 58%, var(--widget-bg));
  color:var(--enhanced-facts-lni-blue);
}
.enhanced-facts-group-row th.enhanced-facts-working-group {
  background:var(--widget-header-bg);
  color:var(--text);
}
.enhanced-facts-group-row th > span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.enhanced-facts-group-row th svg {
  flex:0 0 auto;
  width:var(--headline-icon-size);
  height:var(--headline-icon-size);
  color:var(--text-3);
}
.enhanced-facts-group-row th.enhanced-facts-mirror-group svg {
  color:var(--enhanced-facts-lni-blue);
}
.enhanced-facts-group-row th svg.enhanced-facts-lock-icon {
  width:12px;
  height:12px;
  opacity:0.75;
}
.enhanced-facts-table tbody tr {
  cursor:pointer;
}
.enhanced-facts-table tbody tr.selected {
  box-shadow:inset 3px 0 0 var(--accent-selection);
}
.enhanced-facts-table tbody tr:hover > th,
.enhanced-facts-table tbody tr:hover > td,
.enhanced-facts-table tbody tr.selected > th,
.enhanced-facts-table tbody tr.selected > td {
  background:var(--widget-header-bg);
}
.enhanced-facts-table tbody tr:hover > td.enhanced-facts-mirror-col,
.enhanced-facts-table tbody tr:hover > th.enhanced-facts-mirror-col {
  background:color-mix(in srgb, var(--accent-selection) 6%, color-mix(in srgb, var(--info-bg, #EEF6FF) 58%, var(--widget-bg)));
}
.enhanced-facts-table tbody tr.selected > td.enhanced-facts-mirror-col,
.enhanced-facts-table tbody tr.selected > th.enhanced-facts-mirror-col {
  background:color-mix(in srgb, var(--accent-selection) 10%, color-mix(in srgb, var(--info-bg, #EEF6FF) 58%, var(--widget-bg)));
}
.enhanced-facts-table tbody tr.selected > th[scope="row"] {
  color:var(--text);
  font-weight: var(--font-weight-bold);
}
.enhanced-fact-value {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  color:var(--text);
  font-weight: var(--font-weight-semibold);
  line-height:1.35;
  max-height:4.05em;
  max-width:100%;
  overflow:hidden;
  overflow-wrap:anywhere;
}
.enhanced-fact-lni-cell,
.enhanced-fact-lexrio-cell {
  min-width:0;
}
.enhanced-fact-lni-cell > span:not(.enhanced-fact-value),
.enhanced-fact-lexrio-cell > span:not(.enhanced-fact-value) {
  display:block;
}
.enhanced-fact-lni-cell > .enhanced-fact-value,
.enhanced-fact-lexrio-cell > .enhanced-fact-value,
td > .enhanced-fact-value {
  display:-webkit-box;
}
.enhanced-fact-lni-cell .cell-muted,
.enhanced-fact-lexrio-cell .cell-muted {
  margin-top:4px;
}
.enhanced-facts-review-cell {
  min-width:0;
}
.enhanced-facts-review-cell .chip {
  max-width:100%;
  height:auto;
  min-height:22px;
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:left;
}
.enhanced-facts-table-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
  border-top:1px solid var(--widget-divider);
  background:var(--widget-header-bg);
  color:var(--text-2);
  font-size: var(--text-sm);
}
.enhanced-facts-table-footer > div {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex-wrap:wrap;
}
.enhanced-facts-table-footer span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.enhanced-facts-pending-actions {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  flex-wrap:wrap;
}
.enhanced-facts-detail {
  position:sticky;
  top:var(--space-rhythm);
  display:grid;
  gap:12px;
  min-width:0;
  max-height:calc(100vh - (var(--space-rhythm) * 2));
  overflow:auto;
  border:0;
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
  padding:var(--widget-padding);
}
.enhanced-facts-detail-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.enhanced-facts-detail-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  min-width:0;
}
.enhanced-facts-detail-actions .chip {
  max-width:100%;
  margin-right:2px;
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:left;
}
.enhanced-facts-detail-links {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.enhanced-facts-document-open-button {
  display:inline-grid;
  grid-template-columns:28px;
  grid-template-rows:26px auto;
  align-items:center;
  justify-items:center;
  gap:2px;
  min-width:34px;
  padding:4px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--widget-bg);
  color:var(--text-2);
  cursor:pointer;
  font:inherit;
  font-size: var(--text-2xs);
  line-height:1;
}
.enhanced-facts-document-open-button:hover,
.enhanced-facts-document-open-button:focus-visible {
  border-color:var(--focus-ring);
  color:var(--text);
  box-shadow:inset 0 0 0 1px var(--focus-ring);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.enhanced-facts-document-open-button .file-type-icon {
  display:inline-flex;
}
.enhanced-facts-detail-head strong {
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size: var(--text-md);
  line-height:1.35;
}
.enhanced-facts-detail-source {
  display:block;
  margin-top:4px;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.35;
}
.enhanced-facts-detail-callout {
  display:flex;
  align-items:flex-start;
  gap:7px;
  padding:8px 9px;
  border-radius:var(--radius);
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 64%, var(--widget-bg));
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
}
.enhanced-facts-rlog-detail {
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid color-mix(in srgb, var(--enhanced-facts-lni-blue) 22%, var(--widget-divider));
  border-radius:var(--radius);
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 48%, var(--widget-bg));
}
.enhanced-facts-rlog-detail p {
  margin:0;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.4;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.enhanced-facts-rlog-detail dl {
  display:grid;
  grid-template-columns:minmax(88px, 0.42fr) minmax(0, 1fr);
  gap:5px 10px;
  margin:0;
  min-width:0;
}
.enhanced-facts-rlog-detail dl div {
  display:contents;
}
.enhanced-facts-rlog-detail dt,
.enhanced-facts-rlog-detail dd {
  margin:0;
  min-width:0;
  font-size:11.5px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.enhanced-facts-rlog-detail dt {
  color:var(--text-3);
  font-weight: var(--font-weight-bold);
}
.enhanced-facts-rlog-detail dd {
  color:var(--text-2);
}
.enhanced-facts-rlog-review {
  display:grid;
  gap:14px;
}
.enhanced-facts-rlog-review-source,
.enhanced-facts-rlog-review-candidate {
  display:grid;
  gap:8px;
  min-width:0;
  padding:12px;
  border:1px solid var(--widget-divider);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.enhanced-facts-rlog-review-source {
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 54%, var(--widget-bg));
}
.enhanced-facts-rlog-review-source strong,
.enhanced-facts-rlog-review-candidate strong {
  color:var(--text);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.enhanced-facts-rlog-review-source span,
.enhanced-facts-rlog-review-source p,
.enhanced-facts-rlog-review-candidate span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.4;
  overflow-wrap:anywhere;
}
.enhanced-facts-rlog-review-source p {
  margin:0;
  color:var(--text-2);
  white-space:pre-wrap;
}
.enhanced-facts-rlog-review-primary,
.enhanced-facts-rlog-review-meta {
  display:block;
}
.enhanced-facts-rlog-review-meta {
  margin-top:3px;
}
.enhanced-facts-rlog-playbook-code {
  display:block;
  margin-top:3px;
}
.enhanced-facts-rlog-playbook-code code {
  color:var(--text-2);
}
.enhanced-facts-rlog-review-values {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.enhanced-facts-rlog-review-values div {
  display:grid;
  gap:4px;
  min-width:0;
}
.enhanced-facts-rlog-decision-set {
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}
.enhanced-facts-rlog-decision-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.enhanced-facts-rlog-decision {
  display:grid;
  gap:3px;
  min-width:0;
  padding:10px;
  border:1px solid var(--widget-divider);
  border-radius:var(--radius);
  background:var(--widget-bg);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.enhanced-facts-rlog-decision.active {
  border-color:var(--accent-selection);
  background:color-mix(in srgb, var(--accent-selection) 10%, var(--widget-bg));
  box-shadow:inset 0 0 0 1px var(--accent-selection);
}
.enhanced-facts-rlog-decision span {
  color:var(--text-3);
  font-size:11.5px;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.enhanced-facts-pending-values span {
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-bold);
}

.inbox-automatic-history {
  display:grid;
  gap:14px;
}
.inbox-automatic-history-summary {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}
.inbox-automatic-history-summary > div,
.inbox-automatic-history-source,
.inbox-automatic-history-result,
.inbox-automatic-history-provenance {
  display:grid;
  gap:5px;
  min-width:0;
  padding:12px;
  border:1px solid var(--widget-divider);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.inbox-automatic-history-source span,
.inbox-automatic-history-result span,
.inbox-automatic-history-provenance dd {
  color:var(--text-3);
  font-size:var(--text-sm);
  overflow-wrap:anywhere;
}
.inbox-automatic-history-source p {
  margin:4px 0 0;
  color:var(--text-2);
  white-space:pre-wrap;
}
.inbox-automatic-history-counts {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.inbox-automatic-history-updates {
  display:grid;
  gap:8px;
}
.inbox-automatic-history-updates > div {
  display:grid;
  grid-template-columns:minmax(160px, .8fr) minmax(0, 1.2fr);
  gap:10px;
  padding-top:8px;
  border-top:1px solid var(--widget-divider);
}
.inbox-automatic-history-updates > div:first-child {
  padding-top:0;
  border-top:0;
}
.inbox-automatic-history-provenance dl {
  display:grid;
  grid-template-columns:max-content minmax(0, 1fr);
  gap:5px 12px;
  margin:0;
}
.inbox-automatic-history-provenance dt {
  color:var(--text-3);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-bold);
}
.inbox-automatic-history-provenance dd {
  margin:0;
}
@media (max-width: 720px) {
  .inbox-automatic-history-summary {
    grid-template-columns:1fr;
  }
  .inbox-automatic-history-updates > div {
    grid-template-columns:1fr;
    gap:3px;
  }
}
.enhanced-facts-pending-head {
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:8px;
  align-items:start;
}
.enhanced-facts-pending-head p {
  margin:2px 0 0;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.35;
}
.enhanced-facts-history {
  display:grid;
  gap:10px;
  min-width:0;
}
.enhanced-facts-history-title {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text);
  font-weight: var(--font-weight-bold);
}
.enhanced-facts-history > div:first-child p {
  margin:3px 0 0;
}
.enhanced-fact-history-row {
  position:relative;
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:8px;
  padding:0 0 12px;
  border-top:0;
}
.enhanced-fact-history-row:not(:last-child)::after {
  content:"";
  position:absolute;
  left:11px;
  top:25px;
  bottom:-3px;
  width:1px;
  background:var(--widget-divider);
}
.enhanced-fact-history-row-pending:not(:last-child)::after {
  background:repeating-linear-gradient(
    to bottom,
    var(--warn) 0,
    var(--warn) 4px,
    transparent 4px,
    transparent 8px
  );
}
.enhanced-fact-history-marker {
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border:1px solid var(--widget-divider);
  border-radius:var(--radius-role-full);
  background:var(--widget-bg);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
}
.enhanced-fact-history-row.latest .enhanced-fact-history-marker {
  border-color:var(--accent-selection);
  background:var(--accent-selection);
  color:white;
}
.enhanced-fact-history-row.latest .enhanced-fact-history-content > div:first-child strong,
.enhanced-fact-history-row.latest .enhanced-fact-history-content > div:first-child em {
  color:var(--accent-selection);
}
.enhanced-fact-history-row.latest .enhanced-fact-history-content > div:first-child em,
.enhanced-fact-history-row-pending .enhanced-fact-history-content > div:first-child em {
  font-size:12.5px;
  font-weight: var(--font-weight-bold);
}
.enhanced-fact-history-marker.pending {
  border-color:var(--warn);
  background:color-mix(in srgb, var(--warn) 16%, var(--widget-bg));
  color:var(--warn);
}
.enhanced-fact-history-marker.observation {
  border-color:color-mix(in srgb, var(--enhanced-facts-lni-blue) 28%, var(--widget-divider));
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 64%, var(--widget-bg));
  color:var(--enhanced-facts-lni-blue);
}
.enhanced-fact-history-row-observation .enhanced-fact-history-content > div:first-child strong,
.enhanced-fact-history-row-observation .enhanced-fact-history-content > div:first-child em {
  color:var(--enhanced-facts-lni-blue);
}
.enhanced-fact-pending-history-content {
  gap:7px;
  padding:9px 10px;
  border:1px dashed color-mix(in srgb, var(--warn) 68%, var(--widget-divider));
  border-radius:var(--radius);
  background:color-mix(in srgb, var(--warn) 5%, var(--widget-bg));
}
.enhanced-fact-pending-history-content > div:first-child {
  align-items:baseline;
}
.enhanced-fact-pending-history-content > div:first-child strong,
.enhanced-fact-pending-history-content > div:first-child em {
  color:var(--warn);
}
.enhanced-facts-pending-help {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text-3);
  cursor:default;
  font:inherit;
}
.enhanced-facts-pending-help-wrap {
  display:inline-flex;
  align-items:center;
  min-width:0;
  position:relative;
}
.enhanced-facts-pending-help-tip {
  position:absolute;
  z-index:90;
  top:calc(100% + 6px);
  right:0;
  display:block;
  width:max-content;
  max-width:min(260px, calc(100vw - 48px));
  padding:6px 8px;
  border:1px solid var(--widget-divider);
  border-radius:var(--radius-sm);
  background:var(--widget-bg);
  box-shadow:var(--shadow-pop);
  color:var(--text-2);
  font-size: var(--text-xs);
  line-height:1.35;
  opacity:0;
  pointer-events:none;
  transform:translateY(-2px);
  transition:opacity 0.12s ease, transform 0.12s ease, visibility 0.12s ease;
  visibility:hidden;
  white-space:normal;
}
.enhanced-facts-pending-help-tip::before {
  position:absolute;
  right:6px;
  bottom:100%;
  width:8px;
  height:8px;
  border-top:1px solid var(--widget-divider);
  border-left:1px solid var(--widget-divider);
  background:var(--widget-bg);
  content:"";
  transform:translateY(4px) rotate(45deg);
}
.enhanced-facts-pending-help-wrap:hover .enhanced-facts-pending-help-tip,
.enhanced-facts-pending-help-wrap:focus-within .enhanced-facts-pending-help-tip {
  opacity:1;
  transform:translateY(0);
  visibility:visible;
}
.enhanced-facts-pending-help-tip-portal {
  position:fixed;
  z-index:var(--z-document-facts-popover);
  left:var(--enhanced-facts-help-left);
  top:var(--enhanced-facts-help-top);
  right:auto;
  bottom:auto;
  width:min(var(--enhanced-facts-help-width), calc(100vw - 32px));
  max-width:min(var(--enhanced-facts-help-width), calc(100vw - 32px));
  opacity:1;
  transform:none;
  visibility:visible;
}
.enhanced-facts-pending-help-tip-portal::before {
  display:none;
}
.enhanced-fact-history-content {
  display:grid;
  gap:3px;
  min-width:0;
}
.enhanced-fact-history-content > div {
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.enhanced-fact-history-row strong {
  color:var(--text);
  font-size:12.5px;
}
.enhanced-fact-history-row span {
  color:var(--text-3);
  font-size:11.5px;
}
.enhanced-fact-history-row em {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-style:normal;
  font-weight: var(--font-weight-semibold);
}
.enhanced-fact-history-row p {
  margin:0;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.enhanced-fact-observation-list {
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-top:3px;
}

.enhanced-facts-history-note {
  margin:0;
  padding-top:8px;
  border-top:1px solid var(--rule-soft);
}
.enhanced-fact-observation-chip {
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  padding:3px 6px;
  border-radius:var(--radius-role-sm);
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 62%, var(--widget-bg));
  color:var(--text-3);
  font-size: var(--text-xs);
}
.enhanced-fact-observation-chip strong {
  color:var(--text);
  font-size:inherit;
  font-weight: var(--font-weight-semibold);
}
.enhanced-fact-history-button {
  justify-content:center;
  gap:3px;
  width:34px;
  min-width:0;
  max-width:100%;
  padding-inline:0;
}
.enhanced-facts-lens-lexrio .enhanced-facts-table td:last-child .btn-xs {
  justify-content:center;
  width:58px;
  max-width:100%;
  padding-inline:0;
}
.enhanced-facts-pending-values {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.enhanced-facts-source-review-values {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 18px minmax(0, 1fr);
  gap:8px;
  align-items:center;
}
.enhanced-facts-source-review-values > svg {
  color:var(--text-3);
}
.enhanced-facts-source-review-values > div {
  display:grid;
  gap:4px;
  min-width:0;
}
.enhanced-facts-source-review-values span {
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-bold);
}
.enhanced-facts-source-review-values strong {
  color:var(--text);
  font-size:12.5px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.enhanced-facts-source-evidence {
  display:flex;
  align-items:flex-start;
  gap:6px;
  padding:7px 8px;
  border-radius:var(--radius-control);
  background:var(--widget-header-bg);
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
}
.enhanced-facts-rlog-detail.enhanced-facts-source-evidence {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  min-width:0;
  overflow-wrap:anywhere;
}
.enhanced-facts-rlog-detail.enhanced-facts-source-evidence details {
  min-width:0;
}
.enhanced-facts-pending-values > div {
  display:grid;
  gap:4px;
  min-width:0;
}
.enhanced-facts-pending-values strong {
  color:var(--text);
  font-size:12.5px;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.enhanced-facts-status {
  border-top:1px solid var(--rule-soft);
  padding-top:8px;
}
.enhanced-facts-lni-detail {
  min-width:0;
}
.enhanced-facts-lni-detail .official-lni-panel-stack {
  gap:var(--widget-gap);
}
.enhanced-facts-lni-detail .card,
.enhanced-facts-lni-detail .cac-card {
  border:0;
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
}
.enhanced-fact-edit {
  display:grid;
  gap:14px;
}
.enhanced-fact-edit-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.enhanced-fact-edit-readonly {
  display:grid;
  gap:4px;
  min-width:0;
  padding:10px;
  border-radius:var(--radius);
  background:var(--surface-2);
}
.enhanced-fact-edit-readonly.mirror {
  background:color-mix(in srgb, var(--info-bg, #EEF6FF) 62%, var(--widget-bg));
}
.enhanced-fact-edit-readonly strong {
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.enhanced-fact-edit-readonly span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.35;
}
.enhanced-fact-edit-scope {
  justify-content:flex-start;
  align-items:flex-start;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.4;
}
.enhanced-fact-edit-meta {
  align-items:end;
}
.enhanced-fact-edit-task {
  min-height:34px;
  align-items:center;
}
.bulk-fact-edit {
  display:grid;
  gap:16px;
}
.bulk-fact-edit-section {
  display:grid;
  gap:12px;
  padding-bottom:14px;
  border-bottom:1px solid var(--rule-soft);
}
.bulk-fact-edit-section:last-child {
  padding-bottom:0;
  border-bottom:0;
}
.bulk-fact-edit-section-head {
  display:grid;
  gap:3px;
}
.bulk-fact-edit-section-head strong {
  color:var(--text);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
}
.bulk-fact-edit-section-head span {
  color:var(--text-3);
  font-size:12.5px;
  line-height:1.35;
}
.bulk-fact-edit-grid {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.bulk-fact-edit-grid .field.full {
  grid-column:1 / -1;
}
.enhanced-facts-update-modal .modal-body {
  display:grid;
  gap:12px;
}
.enhanced-facts-update-modal-wide.modal,
.enhanced-facts-update-modal-wide .modal-body {
  max-width:calc(100vw - 24px);
}
.enhanced-facts-update-modal-wide .modal-body {
  max-height:calc(100vh - 148px);
  overflow:auto;
}
.enhanced-facts-review-source-list {
  margin:0;
}
.enhanced-facts-review-source-list .card-body.tight {
  padding:0;
}
.enhanced-facts-review-source-list .awaiting-review-list {
  height:clamp(260px, 42vh, 420px);
  max-height:420px;
}
@media (max-width: 1320px) {
  .enhanced-facts-table-shell.with-detail {
    grid-template-columns:1fr;
  }
  .enhanced-facts-detail {
    position:static;
    max-height:none;
    overflow:visible;
  }
}
@media (max-width: 1100px) {
  .enhanced-facts-table-wrap {
    overflow-x:hidden;
  }
  .enhanced-facts-table th,
  .enhanced-facts-table td {
    padding-inline:10px;
  }
  .enhanced-facts-lens-lexrio .enhanced-facts-table {
    width:calc(100% - 8px);
  }
  .enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-field { width:112px; }
  .enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-lni-value { width:42%; }
  .enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-adoption { width:124px; }
  .enhanced-facts-lens-lni .enhanced-facts-table col.enhanced-facts-col-observed { width:78px; }
  .enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-field { width:96px; }
  .enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-lni-value { width:28%; }
  .enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-adoption { width:100px; }
  .enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-lexrio-value { width:28%; }
  .enhanced-facts-lens-compare .enhanced-facts-table col.enhanced-facts-col-history { width:44px; }
  .enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-field { width:104px; }
  .enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-lexrio-value { width:31%; }
  .enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-source { width:17%; }
  .enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-review { width:112px; }
  .enhanced-facts-lens-lexrio .enhanced-facts-table col.enhanced-facts-col-history { width:42px; }
  .enhanced-facts-adoption-cell .chip {
    white-space:normal;
  }
}
@media (max-width: 760px) {
  .enhanced-facts-rlog-review-values,
  .enhanced-facts-rlog-decision-grid {
    grid-template-columns:1fr;
  }
  .enhanced-fact-edit-grid {
    grid-template-columns:1fr;
  }
  .bulk-fact-edit-grid {
    grid-template-columns:1fr;
  }
}
@media (max-width: 1500px) {
  .enhanced-facts-layout {
    grid-template-columns:52px minmax(0, 1fr);
  }
  .enhanced-facts-rail {
    position:static;
    display:grid;
    overflow:visible;
  }
  .enhanced-facts-category-rail {
    display:grid;
    min-width:0;
  }
  .enhanced-facts-rail-item {
    position:relative;
    grid-template-columns:1fr;
    justify-items:center;
    width:52px;
    min-width:0;
    padding:10px 0;
    border-right:0;
    border-bottom:1px solid var(--rule-soft);
  }
  .enhanced-facts-rail-item.active {
    box-shadow:inset 3px 0 0 var(--accent-selection);
  }
  .enhanced-facts-rail-item span {
    display:none;
  }
  .enhanced-facts-rail-item strong {
    position:absolute;
    top:4px;
    right:5px;
    min-width:14px;
    padding:0 3px;
    border-radius:var(--radius-role-full);
    background:var(--widget-header-bg);
    font-size:9.5px;
    line-height:14px;
  }
  .enhanced-facts-rail-item::after {
    content:attr(data-label);
    position:absolute;
    z-index:20;
    top:50%;
    left:calc(100% + 8px);
    max-width:260px;
    padding:6px 8px;
    border:1px solid var(--rule);
    border-radius:var(--radius-role-sm);
    background:var(--text);
    color:var(--surface);
    box-shadow:var(--shadow-pop);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    line-height:1.25;
    opacity:0;
    pointer-events:none;
    transform:translateY(-50%) translateX(-4px);
    transition:opacity 120ms ease, transform 120ms ease;
    white-space:nowrap;
  }
  .enhanced-facts-rail-item:hover::after,
  .enhanced-facts-rail-item:focus-visible::after {
    opacity:1;
    transform:translateY(-50%) translateX(0);
  }
}
@media (max-width: 760px) {

  .enhanced-facts-pending-values {
    grid-template-columns:1fr;
  }
}
.cac-update-source-body {
  display:grid;
  gap:14px;
}
.cac-status-field {
  max-width:520px;
}
.cac-status-field .cac-status-control {
  margin-top:6px;
}
.cac-update-message-stack,
.cac-imported-facts-block {
  display:grid;
  gap:8px;
}
.cac-imported-facts-block .table {
  margin:0;
}
.claim-update-queue-summary {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}
.claim-update-queue-summary > div {
  display:grid;
  gap:4px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:10px 12px;
}
.claim-update-queue-summary span {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.claim-update-queue-summary strong {
  color:var(--text);
  font-size:20px;
  line-height:1;
}
.document-view-tabs {
  padding-inline:3px;
}
.document-packets-card .card-body.tight {
  padding:0;
}
.document-packet-list {
  display:grid;
}
.document-packet-row {
  display:grid;
  grid-template-columns:minmax(220px, 1.1fr) minmax(260px, 1fr) 150px;
  align-items:start;
  gap:18px;
  min-height:82px;
  padding:14px 16px;
  border-bottom:1px solid var(--rule);
}
.document-packet-row.has-issue-column {
  grid-template-columns:minmax(220px, 1fr) minmax(132px, .45fr) minmax(260px, 1fr) 150px;
}
.document-packet-row:last-child {
  border-bottom:0;
}
.document-packet-row:hover {
  background:var(--surface);
}
.delivery-packet-summary .document-packet-row {
  border-bottom:0;
}
.document-packet-row.is-clickable {
  cursor:pointer;
}
.document-packet-row.is-selected {
  background:var(--accent-soft);
  box-shadow:inset 3px 0 0 var(--accent);
}
.document-packet-main {
  display:grid;
  gap:7px;
  min-width:0;
}
.document-packet-title-line {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.document-packet-icon {
  width:30px;
  height:30px;
  color:var(--text-2);
}
.document-packet-icon svg {
  width:22px;
  height:22px;
}
.document-packet-description-line {
  margin-left:40px;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.document-packet-subtitle {
  margin-left:40px;
}
.document-packet-issues {
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:5px;
  min-width:0;
}
.document-packet-docs {
  min-width:0;
  color:var(--text-2);
  font-size:12.5px;
}
.document-packet-docs ul {
  display:grid;
  gap:4px;
  list-style:none;
  margin:0;
  padding:0;
}
.document-packet-docs li {
  display:grid;
  grid-template-columns:14px minmax(0, 1fr);
  align-items:center;
  gap:6px;
  min-width:0;
}
.document-packet-docs li svg {
  color:var(--text-3);
}
.document-packet-docs li span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.document-packet-docs li strong,
.document-packet-docs li em {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.document-packet-docs li strong {
  display:inline;
  color:var(--text);
  font-size:12.5px;
  font-weight: var(--font-weight-semibold);
}
.document-packet-docs li em {
  display:inline;
  color:var(--text-3);
  font-size:11.5px;
  font-style:normal;
}
.document-packet-meta {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:flex-start;
  gap:6px;
  min-width:0;
}
@media (max-width: 760px) {
  .document-packet-row {
    grid-template-columns:1fr;
  }
  .document-packet-meta {
    align-items:flex-start;
  }
}
.claim-alert-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
}
.claim-alert-summary-copy {
  display:grid;
  gap:3px;
  min-width:0;
}
.claim-alert-summary-title {
  display:flex;
  align-items:center;
  gap:7px;
  font-weight: var(--font-weight-bold);
  color:var(--text);
}
.claim-alert-summary-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.claim-alert-rule-chip {
  max-width:260px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width: 760px) {
  .claim-alert-summary {
    align-items:stretch;
    flex-direction:column;
  }
  .claim-alert-summary-actions {
    justify-content:flex-start;
  }
}
.dynamic-fact-workspace {
  display:grid;
  gap:var(--widget-stack-gap);
  padding:0;
  min-width:0;
}
.canvas-widget-stack {
  position:relative;
  display:grid;
  gap:var(--widget-stack-gap);
  min-width:0;
}
.app-page-body > .canvas-widget-scroll-host,
.claim-tab-body > .canvas-widget-scroll-host {
  overflow:visible;
}
.app-page-body:has(.canvas-widget-stack),
.claim-tab-body:has(.canvas-widget-stack) {
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.dynamic-fact-widget {
  position:relative;
  z-index:1;
  display:grid;
  gap:0;
  padding:0;
  background:var(--widget-bg);
  border-radius:var(--radius-widget);
  box-shadow:var(--widget-shadow);
  overflow:hidden;
}
.dynamic-fact-widget:has(.dynamic-fact-columns-button.active) {
  z-index:100;
  overflow:visible;
}
.dynamic-fact-main {
  display:grid;
  gap:0;
  min-width:0;
}
.dynamic-fact-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  column-gap:20px;
  row-gap:var(--space-3);
  flex-wrap:wrap;
  padding:14px var(--widget-padding-x) 12px;
  border-radius:var(--radius-widget) var(--radius-widget) 0 0;
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}
.dynamic-fact-toolbar-actions {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:var(--space-4);
  flex-wrap:wrap;
  justify-content:flex-end;
}
.dynamic-fact-title {
  min-width:180px;
  max-width:100%;
  flex:0 1 auto;
  font-size:16px;
  letter-spacing:0;
  min-height:28px;
  align-items:center;
}
.dynamic-fact-header-actions {
  flex:1 1 680px;
  min-width:min(100%, 680px);
}
.widget-header-filter-actions {
  --filter-control-height:var(--button-sm-height);
  --filter-control-padding-x:var(--space-3);
}
.widget-header-filter-group {
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  flex-wrap:wrap;
}
.widget-header-filter-actions .header-checkbox-action {
  min-height:var(--button-sm-height);
}
.widget-header-filter-actions .widget-header-filter-select .chip-select-trigger {
  padding-left:var(--space-3);
  padding-right:calc(var(--space-3) + 14px);
}
.widget-header-filter-toggle-group {
  gap:var(--space-rhythm);
  justify-content:flex-end;
}
.widget-header-filter-action-group {
  margin-left:var(--space-4);
  justify-content:flex-end;
}
.dynamic-fact-header-filter-group {
  justify-content:flex-end;
}
.dynamic-fact-template-tabs {
  display:flex;
  gap:6px;
  overflow-x:auto;
  padding:4px 0 6px;
}
.dynamic-fact-template-tab {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--bg);
  color:var(--text);
  padding:6px 9px;
  font:inherit;
  font-size: var(--text-sm);
  white-space:nowrap;
  cursor:pointer;
}
.dynamic-fact-template-tab.active {
  border-color:var(--text);
  background:var(--text);
  color:var(--bg);
}
.dynamic-fact-template-tab em {
  min-width:18px;
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text-2);
  font-style:normal;
  text-align:center;
  padding:1px 5px;
}
.dynamic-fact-template-tab.active em {
  background:rgba(255, 255, 255, 0.18);
  color:inherit;
}
.dynamic-fact-controls {
  width:100%;
  padding:8px 12px;
  position:relative;
  border-bottom:1px solid var(--rule-soft);
}
.dynamic-fact-toggle {
  flex:0 0 auto;
}
.dynamic-fact-toggle.is-disabled {
  opacity:0.45;
  cursor:not-allowed;
}
.dynamic-fact-toggle.is-disabled input {
  cursor:not-allowed;
}
.dynamic-fact-column-option {
  display:flex;
  min-height:30px;
  color:var(--text-2);
  font-size: var(--text-sm);
}
.dynamic-fact-columns-menu {
  position:relative;
  z-index:10;
}
.dynamic-fact-columns-button {
  min-height:var(--button-sm-height);
}
.dynamic-fact-columns-button svg:first-child {
  width:15px;
  height:15px;
}
.dynamic-fact-columns-button.widget-header-filter-button,
.dynamic-fact-clear-filters.widget-header-filter-button {
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.dynamic-fact-columns-button.widget-header-filter-button:hover,
.dynamic-fact-columns-button.widget-header-filter-button:focus-visible,
.dynamic-fact-columns-button.widget-header-filter-button.active,
.dynamic-fact-clear-filters.widget-header-filter-button:hover,
.dynamic-fact-clear-filters.widget-header-filter-button:focus-visible {
  background:var(--surface-2);
  border-color:var(--rule);
}
.dynamic-fact-columns-button.active {
  border-color:var(--accent-selection);
  box-shadow:0 0 0 2px var(--accent-selection);
}
.dynamic-fact-columns-count {
  min-width:34px;
  padding:1px 6px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  text-align:center;
}
.dynamic-fact-columns-popover {
  z-index:1600;
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  width:min(340px, calc(100vw - 32px));
}
.dynamic-fact-columns-search {
  display:grid;
  gap:6px;
}
.dynamic-fact-columns-actions {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:4px;
}
.dynamic-fact-columns-list {
  max-height:260px;
}
.dynamic-fact-column-option {
  min-height:30px;
}
.dynamic-fact-columns-empty {
  padding:8px 6px;
}
.claim-tab-body .dynamic-fact-table-shell > .dynamic-fact-table-wrap,
.dynamic-fact-table-shell > .dynamic-fact-table-wrap {
  flex:1;
  width:100%;
  min-width:0;
  max-width:100%;
  overflow:auto;
  scrollbar-gutter:stable;
}
.dynamic-fact-table-shell {
  width:100%;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.dynamic-fact-table th,
.dynamic-fact-table td {
  border-right:1px solid var(--rule-soft);
}
.dynamic-fact-table th {
  vertical-align:middle;
  color:var(--text-3);
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
}
.dynamic-fact-table td {
  vertical-align:top;
}
.dynamic-fact-table {
  table-layout:fixed;
  width:100%;
  min-width:100%;
}
.dynamic-fact-table .dynamic-fact-doc-col {
  width:196px;
}
.dynamic-fact-table .dynamic-fact-value-col {
  width:118px;
}
.dynamic-fact-table .dynamic-fact-review-col {
  width:112px;
}
.dynamic-fact-table th {
  white-space:normal;
}
.dynamic-fact-table tbody tr.has-open-source > td:first-child {
  box-shadow:inset 3px 0 0 var(--success);
}
.dynamic-fact-th-label,
.dynamic-fact-th-meta {
  display:block;
  min-width:0;
}
.dynamic-fact-th-label {
  color:inherit;
  display:flex;
  align-items:center;
  gap:4px;
  font-weight:inherit;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.dynamic-fact-required-icon {
  flex:0 0 auto;
  color:var(--warn);
}
.dynamic-fact-th-meta {
  margin-top:2px;
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-medium);
  line-height:1.15;
  letter-spacing:0;
}
.dynamic-fact-required-legend {
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--text-3);
  font-size:11.5px;
  white-space:nowrap;
}
.dynamic-fact-required-legend svg {
  color:var(--warn);
}
.dynamic-fact-table th,
.dynamic-fact-table td {
  padding:7px 8px;
}
.dynamic-fact-table th {
  padding-block:10px;
}
.dynamic-fact-table td.dynamic-fact-value-cell {
  padding:0;
  height:1px;
  position:relative;
}
.dynamic-fact-table th.dynamic-fact-document-heading,
.dynamic-fact-table td.dynamic-fact-document-cell {
  padding-left:var(--widget-padding-x);
}
.dynamic-fact-widget .dynamic-fact-table-shell .data-view-rail {
  padding-left:var(--widget-padding-x);
  padding-right:var(--widget-padding-x);
  border-radius:0 0 var(--radius-widget) var(--radius-widget);
}
.dynamic-fact-widget .dynamic-fact-table-shell {
  min-height:0;
  background:transparent;
  border-radius:var(--radius-role-none);
  box-shadow:none;
  overflow:hidden;
}
.dynamic-fact-document-name {
  display:-webkit-box;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
  overflow-wrap:anywhere;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.dynamic-fact-document-cell .lx-xsoera,
.dynamic-fact-document-cell .dynamic-fact-document-inner {
  align-items:flex-start;
}
.dynamic-fact-document-cell .lx-xsoera svg,
.dynamic-fact-document-cell .dynamic-fact-document-inner svg {
  flex:0 0 auto;
  margin-top:1px;
}
.dynamic-fact-cell {
  width:100%;
  min-height:47px;
  box-sizing:border-box;
  display:grid;
  grid-template-rows:minmax(0, 1fr);
  align-content:stretch;
  gap:2px;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  color:var(--text);
  padding:7px 8px 20px;
  font:inherit;
  font-size: var(--text-sm);
  text-align:left;
  overflow-wrap:anywhere;
}
.dynamic-fact-cell-value {
  display:-webkit-box;
  align-self:start;
  min-width:0;
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:anywhere;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.dynamic-fact-cell-meta {
  display:inline-flex;
  position:absolute;
  right:8px;
  bottom:7px;
  align-items:center;
  justify-content:flex-end;
  min-height:13px;
  color:var(--text-3);
  font-size:10.5px;
  line-height:1;
  text-align:right;
}
.dynamic-fact-cell em {
  font-style:normal;
}
.dynamic-fact-cell:hover:not(:disabled),
.dynamic-fact-cell.active {
  outline:0;
  background:transparent;
}
.dynamic-fact-cell:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.dynamic-fact-cell:disabled {
  color:var(--text-3);
  background:transparent;
}
.dynamic-fact-cell.missing {
  color:var(--text-3);
}
.dynamic-fact-cell.not-applicable {
  color:var(--text-3);
  background:transparent;
}
.dynamic-fact-cell.has-source-gap:not(.missing) {
  background:transparent;
}
.dynamic-fact-value-cell {
  padding:0;
  background:var(--bg);
}
.dynamic-fact-value-cell.has-source-gap {
  background:var(--bg);
}
.dynamic-fact-value-cell.has-missing-value {
  background:color-mix(in srgb, var(--text-4) 5%, var(--bg));
}
.dynamic-fact-value-cell.is-not-applicable {
  background:color-mix(in srgb, var(--text-4) 5%, var(--bg));
}
.dynamic-fact-review-cell {
  vertical-align:middle;
}
.dynamic-fact-review-cell .chip {
  white-space:normal;
  line-height:1.2;
}
.dynamic-fact-cell[data-status="confirmed"],
.dynamic-fact-cell[data-status="accepted"] {
  color:var(--text);
}
.dynamic-fact-cell[data-status="rejected"],
.dynamic-fact-cell[data-status="error"],
.dynamic-fact-cell[data-status="failed"] {
  color:var(--critical);
}
.dynamic-fact-cell[data-status="suggested"],
.dynamic-fact-cell[data-status="needs_review"],
.dynamic-fact-cell[data-status="needs-review"] {
  color:var(--text);
}
.document-fact-review-workspace {
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  min-height:0;
}
.document-fact-source-pane,
.document-fact-list-pane {
  min-width:0;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  overflow:hidden;
}
.document-fact-pane-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  border-bottom:1px solid var(--rule-soft);
  background:var(--surface-2);
}
.document-fact-pane-head strong {
  display:block;
  margin-top:2px;
  font-size: var(--text-body);
  overflow-wrap:anywhere;
}
.document-fact-bulk-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}
.document-fact-source-body {
  display:grid;
  gap:12px;
  max-height:650px;
  overflow:auto;
  padding:12px;
}
.document-fact-text-preview {
  min-height:340px;
  margin:0;
}
.document-fact-review-list {
  display:grid;
}
.document-fact-review-row {
  display:grid;
  grid-template-columns:minmax(120px, 0.65fr) minmax(140px, 1fr) minmax(118px, 0.4fr) auto;
  align-items:center;
  gap:10px;
  min-height:44px;
  border:0;
  border-bottom:1px solid var(--rule-soft);
  background:transparent;
  color:inherit;
  padding:9px 12px;
  font:inherit;
  text-align:left;
}
.document-fact-review-row-editable {
  cursor:default;
}
.document-fact-review-row:hover,
.document-fact-review-row.active {
  background:var(--surface-2);
}
.document-fact-review-row.active {
  box-shadow:inset 3px 0 0 var(--accent-selection);
}
.document-fact-review-row.dirty {
  background:color-mix(in srgb, var(--warn) 6%, transparent);
}
.document-fact-review-row:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.document-fact-review-row span {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
}
.document-fact-review-row strong {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.document-fact-review-row em {
  font-style:normal;
  justify-self:end;
}
.document-fact-edit-control {
  min-width:0;
}
.document-fact-value-input {
  width:100%;
  min-height:30px;
  font-size:12.5px;
}
.document-fact-status-select {
  width:100%;
  min-height:30px;
  font-size:12.5px;
}
.document-fact-status-select.chip-success {
  background:var(--success-soft);
}
.document-fact-status-select.chip-critical {
  background:var(--critical-soft);
}
.document-fact-status-select.chip-warn {
  background:var(--warn-soft);
}
.document-fact-edit-status {
  padding:8px 12px;
  border-top:1px solid var(--rule-soft);
}
.claim-update-source-bar {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.claim-update-source-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:28px;
  border:0;
  border-radius:var(--radius-pill);
  font:inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  padding:2px 10px;
  cursor:pointer;
}
.claim-update-source-chip:hover {
  background:var(--hover);
}
.claim-update-source-chip.active {
  background:var(--text);
  color:var(--surface);
}

.claim-update-status {
  border-top:1px solid var(--rule);
  padding-top:10px;
}

















.claim-update-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:start;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:12px;
}
.claim-update-row.approved,
.claim-update-row.applied {
  border-color:rgba(31, 130, 74, 0.38);
  background:var(--success-soft);
}
.claim-update-row.declined {
  border-color:rgba(193, 58, 43, 0.32);
  background:var(--critical-soft);
}
.claim-update-row.focused {
  border-color:var(--accent-selection);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-selection) 18%, transparent);
}
.claim-update-title-row {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:10px;
}
.claim-update-title-row strong {
  font-size: var(--text-lg);
}
.claim-update-values {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.claim-update-values > div {
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface-2);
  padding:10px;
}
.claim-update-values span {
  display:block;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
}
.claim-update-values strong {
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.claim-update-reason {
  margin-top:10px;
  color:var(--text-2);
  font-size: var(--text-body);
  line-height:1.4;
}
.claim-update-follow-up {
  display:grid;
  gap:8px;
  margin-top:10px;
  max-width:420px;
}
.checkbox-line {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--text-2);
  font-weight: var(--font-weight-semibold);
}
.checkbox-line input {
  margin:0;
}
.input-sm {
  min-height:32px;
  padding-block:6px;
  font-size: var(--text-sm);
}
.claim-field-provenance {
  margin-top:4px;
}
.claim-update-controls {
  display:grid;
  gap:6px;
  min-width:158px;
  justify-items:stretch;
}
.claim-update-controls .btn {
  width:100%;
  justify-content:flex-start;
  padding-inline:10px;
}
.claim-update-approve.active {
  border-color:rgba(31, 130, 74, 0.42);
  background:var(--success-soft);
  color:var(--success);
}
.claim-update-decline.active {
  border-color:rgba(193, 58, 43, 0.38);
  background:var(--critical-soft);
  color:var(--critical);
}
.claim-update-table-shell {
  flex:1 1 auto;
  min-height:0;
  max-height:min(62vh, 680px);
  overflow:auto;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
}
.claim-update-table {
  width:100%;
  border-collapse:collapse;
  font-size: var(--text-body);
}
.claim-update-table thead th {
  position:sticky;
  top:0;
  z-index:1;
  padding:10px 12px;
  border-bottom:1px solid var(--rule);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing:0.01em;
  text-align:left;
  white-space:nowrap;
  pointer-events:none;
}
.claim-update-table thead th .playbook-help-trigger {
  pointer-events:auto;
}
.claim-update-table-head {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.claim-update-table-help {
  text-transform:none;
}
.claim-update-table thead th .claim-update-table-help-popover {
  bottom:auto;
  top:calc(100% + 8px);
  width:min(320px, calc(100vw - 48px));
  white-space:pre-line;
  transform:translateX(-16px) translateY(-4px);
  z-index:5;
}
.claim-update-table thead th .playbook-help-trigger:hover .claim-update-table-help-popover,
.claim-update-table thead th .playbook-help-trigger:focus-visible .claim-update-table-help-popover {
  transform:translateX(-16px) translateY(0);
}
.claim-update-table-provenance[title] {
  cursor:help;
}
.claim-update-table tbody td,
.claim-update-table tbody th {
  padding:10px 12px;
  border-bottom:1px solid var(--rule-soft);
  vertical-align:middle;
}
.claim-update-table-row:last-child td,
.claim-update-table-row:last-child th {
  border-bottom:none;
}
.claim-update-table-row.approved,
.claim-update-table-row.applied {
  background:color-mix(in srgb, var(--success-soft) 72%, var(--surface));
}
.claim-update-table-row.declined {
  background:color-mix(in srgb, var(--critical-soft) 68%, var(--surface));
}
.claim-update-table-field {
  min-width:140px;
  font-weight: var(--font-weight-semibold);
}
.claim-update-table-field .chip-xs {
  display:inline-block;
  margin-left:6px;
  vertical-align:middle;
}
.claim-update-table-section {
  min-width:96px;
  white-space:nowrap;
}
.claim-update-table-value {
  min-width:160px;
  max-width:280px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.claim-update-table-proposed {
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}
.claim-update-table-provenance {
  min-width:132px;
  max-width:180px;
  line-height:1.35;
}
.claim-update-origin-label {
  display:block;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.claim-update-origin-detail {
  display:block;
  margin-top:2px;
  font-size: var(--text-xs);
  line-height:1.3;
}
.claim-update-origin-manual {
  color:var(--text);
}
.claim-update-origin-cac {
  color:var(--accent);
}
.claim-update-origin-document {
  color:var(--text-2);
}
.claim-update-table-decision-cell {
  min-width:148px;
}
.claim-update-table-decisions {
  display:inline-flex;
  flex-wrap:wrap;
  gap:6px;
}
.claim-update-table-decisions .btn-xs {
  min-height:28px;
  padding:4px 8px;
  font-size: var(--text-xs);
}
.claim-update-table-task-head,
.claim-update-table-task-cell {
  width:min(168px, 22vw);
  min-width:88px;
  text-align:left;
}
.claim-update-table-task-stack {
  display:grid;
  gap:6px;
  justify-items:start;
}
.claim-update-table-task {
  justify-content:flex-start;
  margin:0;
}
.claim-update-table-task-title {
  width:min(156px, 100%);
}
@media (max-width: 960px) {
  .document-review-workspace,
  .document-fact-review-workspace,
  .document-review-detail-grid,
  .document-summary-detail-list,
  .claim-update-queue-summary,
  .updates-summary-grid {
    grid-template-columns:1fr;
  }
  .document-review-actions {
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .claim-update-review-head,
  .claim-update-row,
  .claim-update-values {
    grid-template-columns:1fr;
  }
  .claim-update-entry-card {
    grid-template-columns:1fr;
  }
  .claim-update-entry-card .btn {
    justify-self:stretch;
    justify-content:center;
  }
  .claim-update-controls {
    min-width:0;
  }
  .claim-update-review-head {
    display:grid;
  }
  .document-review-actions {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .document-ai-structured {
    grid-template-columns:1fr;
  }
  .document-ai-structured-row,
  .document-ai-structured-row:nth-child(2n) {
    border-right:0;
  }
  .document-fact-review-row {
    grid-template-columns:1fr;
  }
  .document-fact-review-row em {
    justify-self:start;
  }
}
.evidence-helper-text {
  margin-bottom:12px;
  max-width:68ch;
}
.task-assignee-stack {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.task-assignee-stack-compact {
  gap:0;
}
.task-assignee-avatars {
  display:inline-flex;
  align-items:center;
}
.task-assignee-avatar {
  box-shadow:0 0 0 2px var(--surface);
}
.task-assignee-avatar + .task-assignee-avatar {
  margin-left:-7px;
}
.task-people-picker {
  position:relative;
  width:100%;
  min-width:0;
}
.task-people-selected {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:6px;
  border:1px solid var(--border);
  border-radius:var(--radius-connected-top);
  background:var(--surface-2);
}
.task-person-chip {
  display:flex;
  align-items:center;
  gap:7px;
  max-width:100%;
  padding:3px 6px 3px 4px;
  border:1px solid var(--border);
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text);
  font-size: var(--text-body);
}
.task-person-chip button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:var(--radius-pill);
  color:var(--text-3);
}
.task-person-chip button:hover {
  background:var(--surface-3);
  color:var(--text);
}
.task-people-search {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:0 10px;
  border:1px solid var(--border);
  border-top:0;
  border-radius:var(--radius-connected-bottom);
  background:var(--surface);
  color:var(--text-3);
}
.task-people-input {
  width:100%;
  height:34px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
}
.task-people-menu {
  position:absolute;
  z-index:30;
  top:calc(100% + 4px);
  left:0;
  right:0;
  max-height:236px;
  overflow:auto;
  border:1px solid var(--border-firm);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
  padding:4px;
}
.task-people-option {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
  gap:9px;
  width:100%;
  min-height:40px;
  padding:6px 8px;
  border-radius:var(--radius-control);
  text-align:left;
}
.task-people-option:hover,
.task-people-option:focus-visible {
  background:var(--surface-2);
}
.task-people-name {
  display:block;
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
  color:var(--text);
}
.task-people-role,
.task-people-empty {
  display:block;
  font-size: var(--text-sm);
  color:var(--text-3);
}
.task-people-empty {
  padding:10px;
}
.task-assignees-field .editable-field {
  min-width:0;
}
.task-waiting-line {
  margin-top:5px;
  max-width:46ch;
}




.fax-step.active {
  border-color:var(--text);
  background:var(--surface);
  color:var(--text);
}
.fax-step.complete {
  border-color:rgba(43, 122, 75, 0.28);
  background:var(--success-soft);
  color:var(--success);
}
.fax-panel {
  display:grid;
  gap:16px;
}
.fax-cover-builder,
.fax-attachment-builder {
  display:grid;
  gap:10px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  padding:12px;
  margin-bottom:12px;
}
.fax-cover-builder textarea {
  min-height:92px;
}
.fax-attachment-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.3fr) minmax(160px, 0.8fr) 78px auto;
  gap:8px;
  align-items:start;
}
.fax-attachment-name {
  display:grid;
  gap:4px;
}
.fax-existing-docs-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(220px, 0.45fr);
  gap:12px;
  align-items:end;
  margin:2px 0 8px;
}
.fax-existing-docs-head.outbound-doc-head {
  display:block;
  margin:2px 0 10px;
}

.outbound-doc-toolbar {
  margin-bottom:10px;
}
.outbound-compose-split .review-accordion-body > .packet-choice-panel + .outbound-doc-toolbar {
  margin-top:-12px;
}
.outbound-compose-split .review-accordion-body > .outbound-doc-toolbar + .fax-doc-list {
  margin-top:-12px;
}
.outbound-compose-panel > .packet-choice-panel + .outbound-doc-toolbar {
  margin-top:-14px;
}
.outbound-compose-panel > .outbound-doc-toolbar + .fax-doc-list {
  margin-top:-14px;
}
.fax-section-title {
  color:var(--text);
  font-size: var(--text-body);
  font-weight:720;
}
.fax-packet-order {
  display:grid;
  gap:8px;
  margin-bottom:12px;
}
.fax-packet-item {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:9px 10px;
}
.fax-packet-number {
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight:720;
}
.fax-packet-actions {
  display:flex;
  align-items:center;
  gap:4px;
}


.fax-doc-list,
.fax-recipient-list {
  display:grid;
  gap:8px;
}

.fax-doc-check input,
.packet-document-row-add input {
  margin:0;
}
.fax-doc-title,
.fax-recipient-name,
.fax-result-title {
  display:block;
  color:var(--text);
  font-weight:720;
}
.fax-doc-meta {
  display:block;
  margin-top:2px;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.fax-recipient-layout,
.fax-review-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.fax-add-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:8px;
}
.fax-custom-grid {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(140px, 0.75fr) auto;
  gap:8px;
}
.fax-recipient-card,
.fax-review-card,
.fax-result-banner,
.fax-receipt-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:12px;
}
.fax-result-banner {
  justify-content:flex-start;
}
.fax-result-banner.sent {
  border-color:rgba(43, 122, 75, 0.26);
  background:var(--success-soft);
}
.fax-result-banner.failed {
  border-color:rgba(156, 42, 24, 0.26);
  background:var(--critical-soft);
}
.fax-receipt-note {
  justify-content:flex-start;
  color:var(--text-2);
  font-size: var(--text-body);
}
.fax-empty {
  padding:18px;
}
@media (max-width: 760px) {
  .fax-steps,
  .fax-recipient-layout,
  .fax-review-grid {
    grid-template-columns:1fr;
  }
  .fax-custom-grid {
    grid-template-columns:1fr;
  }
  .fax-attachment-grid,
  .fax-existing-docs-head {
    grid-template-columns:1fr;
  }
  .fax-packet-item {
    grid-template-columns:auto minmax(0, 1fr);
  }
  .fax-packet-actions {
    grid-column:2;
  }
}
.workstream-status-banner {
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid #EBD3A8;
  border-radius:var(--radius);
  background:#FCEEDA;
}
.workstream-status-banner > div { flex:1; min-width:0; }

.preproduction-banner {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-5);
  background: #fff4d6;
  border-bottom: 1px solid #e5b94f;
  color: #614100;
  font-size: var(--text-sm);
}
.preproduction-banner > div { display:flex; flex-wrap:wrap; gap:var(--space-2); align-items:baseline; }
.preproduction-banner strong { font-weight: var(--font-weight-bold); }
.preproduction-banner-login {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 10;
  justify-content: center;
}

.activity-row {
  display:grid; grid-template-columns:64px 22px 1fr;
  gap:10px; align-items:start;
  padding:8px 0;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.activity-row.selected {
  margin-inline:-8px;
  padding-inline:8px;
  border-radius:var(--radius);
  background:var(--surface-2);
}
.activity-time { font-family:var(--font-mono); font-size: var(--text-xs); color:var(--text-3); padding-top:2px; }
.activity-text { font-size: var(--text-body); color:var(--text-2); line-height:1.5; }
.activity-filter-toolbar {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.activity-text-cac {
  display:grid;
  gap:6px;
}
.activity-cac-detail,
.activity-cac-meta {
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.activity-cac-detail span {
  min-width:0;
  overflow-wrap:anywhere;
}
.activity-cac-meta {
  align-items:center;
}

/* ============================================================
 * 15. INBOX — list rows + drawer
 * ============================================================ */
.inbox-table-shell .table-wrap {
  border-radius:var(--radius-role-none);
  overflow-x:auto;
  overflow-y:visible;
}
.inbox-table {
  table-layout:fixed;
  min-width:0;
  background:var(--surface);
}
.inbox-table th,
.inbox-table td {
  padding:14px 9px;
}
.inbox-table th {
  background:var(--widget-header-bg);
  font-size: var(--text-body);
}
.inbox-table td {
  font-size: var(--text-md);
}
.inbox-table col[data-col="select"],
.inbox-table col[data-col="actions"] { width:40px; }
.inbox-table col[data-col="received"] { width:94px; }
.inbox-table col[data-col="source"] { width:30px; }
.inbox-table col[data-col="from"] { width:230px; }
.inbox-table col[data-col="subject"] { width:260px; }
.inbox-table col[data-col="claim"] { width:235px; }
.inbox-table col[data-col="ingestion"] { width:245px; }
.inbox-table col[data-col="status"] { width:118px; }
.inbox-table th[data-col="actions"],
.inbox-table td.inbox-row-actions {
  padding-left:0;
  padding-right:0;
  text-align:center;
  vertical-align:middle;
}
.inbox-table td.inbox-row-actions {
  width:40px;
}
.inbox-table td.inbox-row-actions .inbox-row-action-btn {
  color:var(--muted);
  transition:color 120ms ease, background 120ms ease;
}
.inbox-table td.inbox-row-actions .inbox-row-action-btn svg {
  stroke:currentColor;
}
.inbox-table tbody tr:hover td.inbox-row-actions .inbox-row-action-btn,
.inbox-table tbody tr:focus-within td.inbox-row-actions .inbox-row-action-btn,
.inbox-table.inbox-table-show-actions td.inbox-row-actions .inbox-row-action-btn {
  color:var(--text);
  background:var(--hover-2);
}
.inbox-table td.card-control input {
  width:14px;
  height:14px;
  margin:0 auto;
}
.inbox-table th:first-child,
.inbox-table td:first-child {
  padding-left:14px;
}
.inbox-table tbody tr {
  cursor:pointer;
}
.inbox-table tbody tr.selected td {
  background:var(--hover-2);
  box-shadow:inset 0 -1px 0 var(--rule);
}
.inbox-table tbody tr.selected td:first-child,
.inbox-table tbody tr.selected td[data-card="received"] {
  box-shadow:inset 0 -1px 0 var(--rule), inset 3px 0 0 var(--text);
}
.inbox-file-success {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px;
  padding:9px 10px;
  border:1px solid color-mix(in srgb, var(--success) 28%, var(--rule));
  border-radius:var(--radius-lg);
  background:var(--success-soft);
  color:var(--text);
  font-size: var(--text-sm);
}
.inbox-file-success-main {
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.inbox-file-success-main svg {
  flex:0 0 auto;
  color:var(--success);
}
.inbox-file-success-main span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inbox-ingestion-items-panel {
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:12px;
  margin-bottom:12px;
  background:var(--surface);
}
.inbox-ingestion-items-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.inbox-ingestion-item-list {
  display:grid;
  gap:8px;
}
.inbox-ingestion-item-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto auto;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--panel);
}
.inbox-ingestion-item-row.active {
  border-color:var(--accent);
  box-shadow:inset 3px 0 0 var(--accent);
}
.inbox-ingestion-item-main {
  min-width:0;
}
.inbox-ingestion-item-title {
  font-weight: var(--font-weight-semibold);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inbox-ingestion-item-actions {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
@media (max-width: 760px) {
  .inbox-ingestion-item-row {
    grid-template-columns:minmax(0, 1fr);
    align-items:stretch;
  }
  .inbox-ingestion-item-actions {
    flex-wrap:wrap;
  }
}
.inbox-table tbody tr.unread .inbox-sender,
.inbox-table tbody tr.unread .inbox-subject {
  font-weight: var(--font-weight-semibold);
}
.inbox-source-cell {
  padding-left:4px !important;
  padding-right:2px !important;
}
.inbox-table th[data-col="from"],
.inbox-table td[data-card="from"] {
  padding-left:2px;
}
.inbox-source-cell .source-chip {
  justify-content:center;
  width:18px;
}
.inbox-source-cell,
.inbox-received-cell,
.inbox-pages-cell {
  white-space:nowrap;
}
.inbox-received-cell {
  line-height:1.2;
}
.inbox-received-date,
.inbox-received-time {
  display:block;
}
.inbox-received-time {
  margin-top:2px;
  font-size: var(--text-sm);
  color:var(--text-3);
}

.inbox-claim-match-line {
  font-size: var(--text-body);
}
.inbox-claim-match-line > span + span {
  margin-left:4px;
}
.inbox-claim-match-line .mono {
  font-size: var(--text-body);
}
.inbox-claim-separator {
  margin-inline:3px 0;
}
.inbox-sender,
.inbox-subject,
.inbox-claim-name {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inbox-split-flag {
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  color:var(--warn);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing:0;
}
.inbox-ingestion-cell {
  display:grid;
  gap:5px;
  min-width:0;
}
.inbox-ingestion-topline,
.inbox-ingestion-meta,
.inbox-ingestion-compact-top,
.inbox-ingestion-compact-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.inbox-ingestion-meta {
  color:var(--text-3);
  font-size: var(--text-sm);
}
.inbox-ingestion-meta span,
.inbox-ingestion-compact-bottom span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* Segmented progress track — reusable (inbox ingestion column, prospect stage). */
.segment-track {
  display:grid;
  gap:2px;
  height:6px;
}
.segment-track > * { min-width:0; background:var(--surface-3); border:0; padding:0; }
.segment-track > :first-child { border-radius:var(--radius-segment-start); }
.segment-track > :last-child { border-radius:var(--radius-segment-end); }
.segment-track > .complete { background:var(--accent); }
.segment-track > .current { background:color-mix(in srgb, var(--accent) 55%, var(--surface-3)); }
.inbox-ingestion-segments { grid-template-columns:repeat(6, minmax(0, 1fr)); }
button.segment-track-step { cursor:pointer; height:8px; transition:background 150ms ease; }
button.segment-track-step:disabled { cursor:default; }
.inbox-ingestion-cell.compact {
  gap:3px;
}

.inbox-ingestion-compact-bottom {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(72px, auto);
  align-items:center;
  gap:8px;
  color:var(--text-3);
  font-size:11.5px;
}
.inbox-ingestion-compact-bottom > span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inbox-ingestion-compact-bottom span:last-child {
  text-align:right;
}
.inbox-ingestion-status-cell {
  display:grid;
  justify-items:start;
  gap:3px;
  min-width:0;
}
.inbox-ingestion-status-cell .chip {
  max-width:100%;
}
.inbox-ingestion-progress-count {
  color:var(--text-3);
  font-size: var(--text-sm);
  margin-right:4px;
}
.inbox-ingestion-next {
  min-width:0;
  overflow:hidden;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  text-overflow:ellipsis;
  white-space:nowrap;
}

.error-banner {
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  background:var(--critical-soft);
  color:var(--critical);
  font-size:12.5px;
  box-shadow:inset 0 -1px 0 var(--rule);
}
.error-banner strong { font-weight: var(--font-weight-semibold); }



.inbox-plan-section-head {
  display:flex;
  align-items:center;
  gap:10px;
}
.inbox-filter-bar {
  align-items:center;
}
.app-page-body > .canvas-table-page.inbox-page {
  gap:0;
}
.inbox-filter-bar-compact {
  gap:8px;
}
.inbox-filter-bar-compact .filter-chip-select {
  max-width:210px;
}
.inbox-filter-bar-compact .filter-bar-actions {
  margin-left:0;
}
.inbox-row-actions {
  white-space:nowrap;
}
.inbox-row-dismissed {
  opacity:0.72;
}
.inbox-row-dismissed .inbox-subject {
  text-decoration:line-through;
  text-decoration-color:color-mix(in srgb, var(--text-muted) 70%, transparent);
}
.inbox-plan-source {
  font-size: var(--text-sm);
  color:var(--text-2);
  padding:8px 10px;
  background:color-mix(in srgb, var(--accent) 7%, var(--surface));
  border:1px solid color-mix(in srgb, var(--accent) 18%, var(--rule));
  border-radius:var(--radius);
}
.inbox-plan-section {
  display:grid;
  gap:8px;
}
.inbox-plan-section-head {
  justify-content:space-between;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}

.ingestion-step {
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.ingestion-step.completed {
  background:var(--success-soft);
  border-color:color-mix(in srgb, var(--success) 24%, var(--rule));
}
.ingestion-step.blocked {
  background:var(--critical-soft);
  border-color:color-mix(in srgb, var(--critical) 24%, var(--rule));
}
.ingestion-step.ready {
  background:color-mix(in srgb, var(--accent) 6%, var(--surface));
  border-color:color-mix(in srgb, var(--accent) 18%, var(--rule));
}
.ingestion-step-num {
  width:22px;
  height:22px;
  border-radius:var(--radius-role-full);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 22px;
  background:var(--surface);
  box-shadow:var(--ring-light);
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  color:var(--text-2);
}
.ingestion-step-title {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}








.ingestion-gaps {
  display:grid;
  gap:8px;
}
.ingestion-gap {
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px;
  border-radius:var(--radius);
  background:var(--surface-2);
  border:1px solid var(--rule-soft);
}
.ingestion-gap.blocking {
  background:var(--critical-soft);
  border-color:color-mix(in srgb, var(--critical) 24%, var(--rule));
}
.review-accordion-frame,
.review-file-flow {
  display:grid;
  gap:0;
  background:var(--surface);
  border:0;
  border-radius:var(--radius-md);
  padding:var(--space-7) var(--space-9);
}
.review-flow-header,
.review-flow-meta,
.review-flow-state,
.review-accordion-summary,
.review-owner-line,
.review-flow-foot,
.review-handoff-panel,
.review-selected-claim {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.review-flow-header {
  align-items:flex-start;
  padding:16px 18px 14px;
  border-bottom:1px solid var(--rule);
}
.review-flow-kicker {
  margin-bottom:2px;
  color:var(--text-3);
  font-size: var(--text-2xs);
  font-weight:720;
  letter-spacing:.02em;
}
.review-flow-title {
  font-size:16px;
  font-weight:720;
  color:var(--text);
  line-height:1.2;
}

.review-flow-spine {
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:6px;
}
.review-flow-spine.typed-record-lifecycle {
  grid-template-columns:repeat(3, minmax(0, 1fr));
  padding:12px 18px;
  border-bottom:1px solid var(--rule);
}
.review-flow-spine-step {
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  border:1px solid var(--rule);
  border-radius:var(--radius-label);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  font-family:inherit;
  cursor:pointer;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.review-flow-spine-step:hover {
  border-color:color-mix(in srgb, var(--accent) 24%, var(--rule));
  color:var(--text);
}
.review-flow-spine-step.done {
  border-color:color-mix(in srgb, var(--success) 22%, var(--rule));
  background:var(--success-soft);
  color:var(--success);
}
.review-flow-spine-step.active {
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 14%, var(--surface));
  color:var(--text);
  box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent);
}
.review-accordion-step {
  border:0;
  border-bottom:1px solid var(--rule);
  border-radius:var(--radius-role-none);
  background:transparent;
  overflow:hidden;
}
.review-accordion-step.open {
  background:transparent;
}
.review-accordion-summary {
  align-items:flex-start;
  padding:14px 18px;
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.review-accordion-summary:hover {
  background:color-mix(in srgb, var(--accent) 4%, transparent);
}
.review-accordion-main {
  display:grid;
  grid-template-columns:22px minmax(0, 1fr);
  gap:10px;
  min-width:0;
}
.review-accordion-copy {
  min-width:0;
}
.review-accordion-actions {
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.review-accordion-title {
  font-size: var(--text-md);
  font-weight:720;
  color:var(--text);
  line-height:1.25;
}
.review-accordion-line {
  margin-top:4px;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
}
.review-owner-line {
  justify-content:flex-start;
  flex-wrap:wrap;
  margin-top:6px;
  color:var(--text-3);
  font-size: var(--text-xs);
}
.review-inline-fields,
.review-edit-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(220px, 1fr));
  gap:10px;
}
.review-edit-grid .list-row {
  grid-template-columns:24px minmax(0, 1fr);
}
.review-edit-grid .list-row-main,
.review-edit-grid .list-row-title-wrap,
.review-edit-grid .list-row-title {
  min-width:0;
  width:100%;
}
.review-edit-grid .list-row-title-wrap {
  flex:1 1 auto;
}
.review-edit-grid .list-row-aside {
  margin-left:8px;
}
.review-edit-grid .list-row-title > .input {
  width:100%;
  min-width:min(420px, 100%);
}
.review-claim-updates-section {
  grid-column:1 / -1;
}
.review-output-reason {
  min-height:58px;
}
.review-output-stack {
  display:grid;
  gap:12px;
}
.review-output-stack .review-stage-card {
  padding:12px;
}
.cac-update-decision-select {
  width:min(220px, 100%);
}
.cac-data-update-detail {
  background:var(--surface);
  overflow:hidden;
}
.cac-data-update-detail.inbox-detail-view-workspace {
  height:auto;
}
.inbox-cac-update-workspace {
  flex:0 1 auto;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px 20px 20px;
  min-height:0;
  overflow:visible;
}
.inbox-cac-update-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:12px;
}
.inbox-cac-update-head h2 {
  margin:0;
  font-size:20px;
  line-height:1.25;
  letter-spacing:0;
}
.inbox-cac-update-head p {
  margin:4px 0 0;
}
.inbox-cac-update-callout {
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.inbox-cac-update-footer {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:12px;
  margin-top:4px;
}
.inbox-cac-update-footer-batch .inbox-cac-update-footer-summary {
  flex:1 1 auto;
}
.inbox-cac-update-footer-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.inbox-cac-update-workspace .claim-update-table-shell {
  flex:0 1 auto;
}
.inbox-cac-section-label {
  padding:4px 2px 0;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing:0.01em;
}
.inbox-cac-update-workspace .claim-update-list {
  display:grid;
  gap:10px;
  flex:0 1 auto;
  align-content:start;
  max-height:min(60vh, 640px);
  overflow:auto;
}
.inbox-cac-update-workspace .claim-update-row {
  margin:0;
  align-self:start;
}





.overline {
  display:block;
  margin-bottom:4px;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight:720;
  letter-spacing:0;
}



.cac-data-context-card,
.cac-data-review-panel,
.cac-data-resolved-card,
.cac-data-field-card {
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--bg);
}



















.cac-data-value.incoming {
  background:color-mix(in srgb, var(--accent) 8%, var(--surface-2));
}


.cac-data-resolved-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px;
}
.cac-data-apply-summary {
  display:grid;
  gap:16px;
  padding:16px;
  border:1px solid color-mix(in srgb, var(--success) 24%, var(--rule));
  border-radius:var(--radius-lg);
  background:var(--bg);
}
.cac-data-apply-summary-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.cac-data-apply-summary-head h3,
.cac-data-apply-summary-head p,
.cac-data-apply-columns h4,
.cac-data-apply-columns p {
  margin:0;
  letter-spacing:0;
}
.cac-data-apply-summary-head p {
  margin-top:6px;
  color:var(--text-2);
}


.chip-muted {
  background:var(--surface-2);
  color:var(--text-2);
}
@media (max-width: 980px) {
  .cac-data-context-grid,
  .cac-data-value-grid,
    .cac-data-update-header,
  .cac-data-review-title,
  .cac-data-field-heading,
  .cac-data-section-head,
  .cac-data-resolved-card,
  .cac-data-apply-summary-head {
    flex-direction:column;
    align-items:flex-start;
  }


}
.review-handoff-panel {
  align-items:flex-start;
  padding:11px 12px;
  border:1px solid color-mix(in srgb, var(--accent) 18%, var(--rule));
  border-radius:var(--radius-lg);
  background:color-mix(in srgb, var(--accent) 6%, var(--surface));
}
.review-handoff-title {
  font-weight:720;
  color:var(--text);
}
.review-accordion-body {
  display:grid;
  gap:12px;
  padding:0 18px 16px 50px;
}
.review-accordion-panel {
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(-4px);
  transition:max-height 360ms cubic-bezier(.2, .7, .2, 1),
    opacity 220ms ease,
    transform 260ms ease;
  visibility:hidden;
}
.review-accordion-step.open .review-accordion-panel {
  max-height:6400px;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
  visibility:visible;
}
.review-accordion-step.complete .ingestion-step-num {
  background:var(--success-soft);
  color:var(--success);
}
.review-accordion-step.processing .ingestion-step-num {
  background:var(--surface);
  color:var(--accent);
}
.review-step-spinner {
  width:12px;
  height:12px;
  border-radius:var(--radius-role-full);
  border:2px solid color-mix(in srgb, var(--accent) 22%, var(--rule));
  border-top-color:var(--accent);
  animation:review-step-spin 700ms linear infinite;
}
@keyframes review-step-spin {
  to {
    transform:rotate(360deg);
  }
}
.review-panel-toolbar {
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:flex-end;
}
.review-detail-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  color:var(--text-2);
  font-size: var(--text-sm);
}
.review-claim-stage {
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:space-between;
}
.review-step-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.review-file-step-actions {
  justify-content:flex-start;
  flex-wrap:wrap;
  padding-top:4px;
}
.review-file-step-actions .btn-primary {
  min-width:220px;
}
.review-source-step-actions {
  justify-content:flex-start;
}
.review-savebar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 18px;
  border-top:1px solid var(--rule);
  background:var(--surface);
}
.review-savebar-status {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--success);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.review-confirmed-line {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--success);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.review-step-thinking {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight:620;
}
.review-step-thinking-dot {
  width:7px;
  height:7px;
  border-radius:var(--radius-pill);
  background:var(--accent);
  animation:review-step-thinking-pulse 900ms ease-in-out infinite;
}
@keyframes review-step-thinking-pulse {
  0%, 100% {
    opacity:.35;
    transform:scale(.78);
  }
  50% {
    opacity:1;
    transform:scale(1);
  }
}
.review-type-evidence {
  display:grid;
  gap:10px;
  padding:0 12px 12px;
}
.review-evidence-label {
  margin-bottom:6px;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.review-signal-chips {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.review-type-candidates {
  display:grid;
  gap:6px;
}
.review-type-candidate {
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
  color:var(--text);
  font:inherit;
  font-size: var(--text-sm);
  text-align:left;
  cursor:pointer;
  padding:7px 9px;
}
.review-type-candidate.selected {
  border-color:color-mix(in srgb, var(--success) 28%, var(--rule));
  background:var(--success-soft);
}
.review-selected-claim {
  justify-content:flex-start;
  padding:8px 10px;
  border-radius:var(--radius);
  background:var(--surface-2);
  font-size: var(--text-sm);
}
.review-facts-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(180px, 1fr));
  gap:10px;
}
.review-fact {
  display:grid;
  gap:2px;
  padding:10px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.review-fact-label,
.review-fact-source {
  color:var(--text-3);
  font-size: var(--text-xs);
}
.review-fact-value {
  color:var(--text);
  font-weight:720;
}
.review-flow-foot {
  align-items:flex-start;
  padding:10px 12px;
  border:1px solid color-mix(in srgb, var(--success) 22%, var(--rule));
  border-radius:var(--radius-lg);
  background:var(--success-soft);
  color:var(--text);
  font-size: var(--text-sm);
}
.review-flow-foot .filing-protection-chip {
  flex:0 1 25%;
  max-width:25%;
  min-width:104px;
  justify-content:center;
  text-align:center;
  white-space:normal;
  line-height:1.2;
}
@media (max-width: 980px) {
  .inbox-detail-topbar,
  .inbox-detail-shell .inbox-detail-grid,
  .review-flow-spine,
  .review-inline-fields,
  .review-edit-grid,
  .review-facts-grid {
    grid-template-columns:1fr;
  }
  .inbox-detail-topbar {
    align-items:flex-start;
  }
}
.document-playbook-catalog {
  margin-top:14px;
  display:grid;
  gap:12px;
}
.admin-playbook-body .document-playbook-catalog {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.admin-playbook-body .document-playbook-toolbar {
  flex:0 0 auto;
}
.admin-playbook-body .document-playbook-split,
.admin-playbook-body .document-playbook-index,
.admin-playbook-body .document-playbook-table-shell {
  flex:1;
  min-height:0;
}
.admin-playbook-body .document-playbook-index {
  display:flex;
  flex-direction:column;
}
.admin-playbook-body .document-playbook-table-shell .table-wrap {
  max-height:none;
}
.admin-playbook-body .document-playbook-detail {
  min-height:0;
  overflow:visible;
}
.admin-playbook-body .document-playbook-catalog.is-list-view .document-playbook-split {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.document-playbook-toolbar {
  padding:10px 0 12px;
}
.document-playbook-search {
  flex-basis:320px;
}
.document-playbook-count {
  white-space:nowrap;
}
.document-playbook-split {
  display:grid;
  grid-template-columns:minmax(300px, 31%) minmax(0, 1fr);
  gap:18px;
  align-items:start;
  min-height:min(760px, calc(100vh - 238px));
}
.document-playbook-catalog.is-list-view .document-playbook-split {
  display:block;
}
.document-playbook-index,
.document-playbook-detail {
  min-width:0;
}
.document-playbook-catalog.is-list-view .document-playbook-index {
  width:100%;
}
.document-playbook-table-shell .table-wrap {
  max-height:calc(100vh - 286px);
  overflow:auto;
  box-shadow:inset 0 1px 0 var(--rule), inset 0 -1px 0 var(--rule);
}
.document-playbook-table {
  table-layout:fixed;
}
.document-playbook-table th {
  position:sticky;
  top:0;
  z-index:1;
  padding:8px 7px;
  font-size: var(--text-sm);
  background:var(--bg);
}
.document-playbook-table td {
  padding:7px;
  font-size:12.5px;
  line-height:1.25;
}
.document-playbook-table th:nth-child(1),
.document-playbook-table td:nth-child(1) {
  width:42%;
}
.document-playbook-table th:nth-child(2),
.document-playbook-table td:nth-child(2) {
  width:20%;
}
.document-playbook-table th:nth-child(3),
.document-playbook-table td:nth-child(3) {
  width:14%;
}
.document-playbook-table th:nth-child(4),
.document-playbook-table td:nth-child(4),
.document-playbook-table th:nth-child(5),
.document-playbook-table td:nth-child(5),
.document-playbook-table th:nth-child(6),
.document-playbook-table td:nth-child(6) {
  width:10%;
}
.document-playbook-table tbody tr {
  cursor:pointer;
}
.document-playbook-table tbody tr.active td {
  background:var(--accent-soft);
}
.document-playbook-title-cell {
  min-width:0;
}
.document-playbook-title-cell .cell-strong,
.document-playbook-title-cell .muted {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.document-playbook-detail {
  display:grid;
  gap:12px;
  align-content:start;
  padding-left:18px;
  box-shadow:inset 1px 0 0 var(--rule);
}

/* Playbook editor modal — heading inside the body (CAC-review pattern) and a
   full-width rule separating the section selector from the content. */

/* Playbook editor modal body: padded and scrollable (the workspace size's
   default padding:0/overflow:hidden expects a self-managing composer child,
   which this is not). */
.document-playbook-detail-modal .modal-body,
.document-playbook-detail-modal .modal-body.modal-body-full-height {
  padding:16px 22px 20px;
  overflow:auto;
  display:block;
}

.document-playbook-modal-head { padding-bottom:12px; }
.document-playbook-modal-title { margin:2px 0 6px; font-size:20px; font-weight:var(--font-weight-semibold); letter-spacing:-0.02em; line-height:1.25; }
.document-playbook-modal-tabs { padding-bottom:14px; margin-bottom:16px; box-shadow:inset 0 -1px 0 var(--rule); }

.document-playbook-detail-meta {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:5px;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.document-playbook-section-tabs {
  min-width:0;
  overflow-x:auto;
  padding-bottom:2px;
}
.document-playbook-detail-body {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:14px;
}
.document-playbook-detail-body .document-playbook-side {
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.document-playbook-editor,
.document-playbook-side {
  display:grid;
  gap:10px;
  align-content:start;
}
.document-playbook-editor {
  border:0;
  padding:0;
  margin:0;
  min-width:0;
}
.document-playbook-editor .form-grid {
  gap:10px;
}
.document-playbook-basics {
  grid-template-columns:minmax(220px, 1fr) minmax(160px, 0.6fr) minmax(220px, 0.8fr) 160px;
}
.modal .document-playbook-basics {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.document-playbook-editor .textarea {
  min-height:76px;
}
.document-playbook-editor .document-playbook-textarea-signals {
  min-height:132px;
}
.document-playbook-editor .document-playbook-textarea-schema {
  min-height:156px;
}
.document-playbook-section {
  display:grid;
  gap:10px;
  min-width:0;
}
.document-playbook-section-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.playbook-help-heading {
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  position:relative;
}
/* The info glyph carries its own circle — the trigger adds no second ring. */
.playbook-help-trigger {
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  border:0;
  background:transparent;
  color:var(--text-3);
  cursor:help;
  position:relative;
  flex:0 0 auto;
}
.playbook-help-trigger:hover { color:var(--text); }
.playbook-help-trigger:hover,
.playbook-help-trigger:focus-visible {
  color:var(--text);
  background:var(--surface-3);
}
.playbook-help-popover {
  position:absolute;
  left:50%;
  bottom:calc(100% + 8px);
  z-index:20;
  width:min(360px, calc(100vw - 48px));
  transform:translateX(-16px) translateY(4px);
  opacity:0;
  pointer-events:none;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--text);
  color:var(--bg);
  padding:9px 10px;
  box-shadow:var(--shadow-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-regular);
  line-height:1.4;
  text-align:left;
  white-space:normal;
}
.playbook-help-trigger:hover .playbook-help-popover,
.playbook-help-trigger:focus-visible .playbook-help-popover {
  opacity:1;
  transform:translateX(-16px) translateY(0);
}
.playbook-chip-editor {
  display:grid;
  gap:10px;
}
.playbook-chip-list {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  min-height:34px;
}
.playbook-removable-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:28px;
  max-width:100%;
  border:1px solid var(--rule);
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text);
  padding:4px 9px;
  font:inherit;
  font-size: var(--text-sm);
  cursor:pointer;
}
.playbook-removable-chip span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.playbook-removable-chip:hover {
  background:var(--hover-2);
}
.playbook-removable-chip.outline {
  background:var(--bg);
}
.playbook-inline-add {
  display:grid;
  grid-template-columns:minmax(0, 1fr) max-content;
  gap:8px;
}
.playbook-inline-add .btn {
  white-space:nowrap;
}
.playbook-inline-hint {
  color:var(--warn);
  margin-top:-4px;
}
.playbook-structured-wrap {
  width:100%;
  max-width:100%;
  max-height:min(520px, calc(100vh - 390px));
  overflow:auto;
  box-shadow:inset 0 1px 0 var(--rule), inset 0 -1px 0 var(--rule);
}
.app-page-body .playbook-structured-wrap {
  overflow:auto;
}
.playbook-structured-table {
  table-layout:fixed;
}
.playbook-structured-table th {
  position:sticky;
  top:0;
  z-index:1;
  background:var(--bg);
  font-size:11.5px;
}
.playbook-structured-table th,
.playbook-structured-table td {
  padding:6px;
  vertical-align:top;
}
.playbook-structured-table .input,
.playbook-structured-table .select {
  min-height:30px;
  font-size: var(--text-sm);
}
.playbook-fact-table {
  min-width:1180px;
}
.playbook-fact-table th:nth-child(1),
.playbook-fact-table td:nth-child(1) { width:170px; }
.playbook-fact-table th:nth-child(2),
.playbook-fact-table td:nth-child(2) { width:190px; }
.playbook-fact-table th:nth-child(3),
.playbook-fact-table td:nth-child(3) { width:112px; }
.playbook-fact-table th:nth-child(4),
.playbook-fact-table td:nth-child(4) { width:104px; }
.playbook-fact-table th:nth-child(5),
.playbook-fact-table td:nth-child(5) { width:210px; }
.playbook-fact-table th:nth-child(6),
.playbook-fact-table td:nth-child(6) { width:82px; }
.playbook-fact-table th:nth-child(7),
.playbook-fact-table td:nth-child(7) { width:130px; }
.playbook-fact-table th:nth-child(8),
.playbook-fact-table td:nth-child(8) { width:170px; }
.playbook-fact-table th:nth-child(9),
.playbook-fact-table td:nth-child(9) { width:48px; }
.playbook-dynamic-table {
  min-width:1160px;
}
.playbook-dynamic-table th:nth-child(1),
.playbook-dynamic-table td:nth-child(1) { width:170px; }
.playbook-dynamic-table th:nth-child(2),
.playbook-dynamic-table td:nth-child(2) { width:190px; }
.playbook-dynamic-table th:nth-child(3),
.playbook-dynamic-table td:nth-child(3) { width:96px; }
.playbook-dynamic-table th:nth-child(4),
.playbook-dynamic-table td:nth-child(4) { width:160px; }
.playbook-dynamic-table th:nth-child(5),
.playbook-dynamic-table td:nth-child(5) { width:330px; }
.playbook-dynamic-table th:nth-child(6),
.playbook-dynamic-table td:nth-child(6) { width:110px; }
.playbook-dynamic-table th:nth-child(7),
.playbook-dynamic-table td:nth-child(7) { width:72px; }
.playbook-dynamic-table th:nth-child(8),
.playbook-dynamic-table td:nth-child(8) { width:48px; }
.playbook-table-editor-list {
  display:grid;
  gap:14px;
}
.playbook-table-editor-card {
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--bg);
}
.playbook-table-editor-card .table-wrap {
  border:0;
  border-radius:var(--radius-role-none);
}
.playbook-columns-head {
  padding:10px 12px;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background:var(--bg-soft);
}
.playbook-table-column-table {
  min-width:1060px;
}
.playbook-table-column-table th:nth-child(1),
.playbook-table-column-table td:nth-child(1) { width:180px; }
.playbook-table-column-table th:nth-child(2),
.playbook-table-column-table td:nth-child(2) { width:210px; }
.playbook-table-column-table th:nth-child(3),
.playbook-table-column-table td:nth-child(3) { width:120px; }
.playbook-table-column-table th:nth-child(4),
.playbook-table-column-table td:nth-child(4) { width:104px; }
.playbook-table-column-table th:nth-child(5),
.playbook-table-column-table td:nth-child(5) { width:82px; }
.playbook-table-column-table th:nth-child(6),
.playbook-table-column-table td:nth-child(6) { width:130px; }
.playbook-table-column-table th:nth-child(7),
.playbook-table-column-table td:nth-child(7) { width:180px; }
.playbook-table-column-table th:nth-child(8),
.playbook-table-column-table td:nth-child(8) { width:48px; }
.playbook-clock-table th:nth-child(1),
.playbook-clock-table td:nth-child(1) { width:17%; }
.playbook-clock-table th:nth-child(2),
.playbook-clock-table td:nth-child(2) { width:22%; }
.playbook-clock-table th:nth-child(3),
.playbook-clock-table td:nth-child(3) { width:22%; }
.playbook-clock-table th:nth-child(4),
.playbook-clock-table td:nth-child(4) { width:72px; }
.playbook-clock-table th:nth-child(5),
.playbook-clock-table td:nth-child(5) { width:112px; }
.playbook-clock-table th:nth-child(6),
.playbook-clock-table td:nth-child(6) { width:19%; }
.playbook-clock-table th:nth-child(7),
.playbook-clock-table td:nth-child(7) { width:48px; }
.playbook-task-table th:nth-child(1),
.playbook-task-table td:nth-child(1) { width:24%; }
.playbook-task-table th:nth-child(2),
.playbook-task-table td:nth-child(2) { width:38%; }
.playbook-task-table th:nth-child(3),
.playbook-task-table td:nth-child(3) { width:76px; }
.playbook-task-table th:nth-child(4),
.playbook-task-table td:nth-child(4) { width:26%; }
.playbook-task-table th:nth-child(5),
.playbook-task-table td:nth-child(5) { width:48px; }
.playbook-update-table th:nth-child(1),
.playbook-update-table td:nth-child(1) { width:18%; }
.playbook-update-table th:nth-child(2),
.playbook-update-table td:nth-child(2) { width:40%; }
.playbook-update-table th:nth-child(3),
.playbook-update-table td:nth-child(3) { width:110px; }
.playbook-update-table th:nth-child(4),
.playbook-update-table td:nth-child(4) { width:130px; }
.playbook-update-table th:nth-child(5),
.playbook-update-table td:nth-child(5) { width:48px; }
.playbook-check {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  color:var(--text-2);
  font-size: var(--text-sm);
}
.playbook-token-row {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.playbook-validation-panel.has-errors {
  box-shadow:inset 3px 0 0 var(--danger, #a12b2b), inset 0 0 0 1px var(--rule);
}
.playbook-validation-panel.has-warnings {
  box-shadow:inset 3px 0 0 var(--warn), inset 0 0 0 1px var(--rule);
}
.playbook-validation-row {
  color:var(--text);
}
.playbook-preview-grid {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.playbook-version-grid {
  grid-template-columns:minmax(0, 1.2fr) minmax(260px, 0.8fr);
}
.playbook-preview-card {
  display:grid;
  gap:8px;
  min-width:0;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:10px;
  background:var(--surface);
}
@media (max-width: 1280px) {
  .document-playbook-split {
    grid-template-columns:1fr;
  }
  .document-playbook-detail {
    padding-left:0;
    padding-top:16px;
    box-shadow:inset 0 1px 0 var(--rule);
  }
    .document-playbook-table-shell .table-wrap {
    max-height:420px;
  }
  .playbook-structured-wrap {
    max-height:520px;
  }
}
@media (max-width: 1500px) {
  .document-playbook-table th:nth-child(3),
  .document-playbook-table td:nth-child(3),
  .document-playbook-table th:nth-child(5),
  .document-playbook-table td:nth-child(5),
  .document-playbook-table th:nth-child(6),
  .document-playbook-table td:nth-child(6) {
    display:none;
  }
  .document-playbook-table th:nth-child(1),
  .document-playbook-table td:nth-child(1) {
    width:50%;
  }
  .document-playbook-table th:nth-child(2),
  .document-playbook-table td:nth-child(2) {
    width:30%;
  }
  .document-playbook-table th:nth-child(4),
  .document-playbook-table td:nth-child(4) {
    width:20%;
  }
}
@media (max-width: 860px) {
      .document-playbook-basics,
  .playbook-preview-grid,
  .playbook-version-grid,
  .document-playbook-detail-body .document-playbook-side {
    grid-template-columns:1fr;
  }
  .playbook-structured-wrap {
    overflow-x:auto;
  }
  .playbook-structured-table {
    min-width:760px;
  }
}
.inline-error {
  padding:8px 10px;
  border-radius:var(--radius);
  background:var(--critical-soft);
  color:var(--critical);
  font-size: var(--text-sm);
}

/* ============================================================
 * 17. DRAWERS / MODALS
 * ============================================================ */
.drawer-backdrop, .modal-backdrop, .scrim, .assistant-scrim {
  position:fixed; inset:0;
  background:rgba(0,0,0,0.32);
  z-index:50;
}
.modal-backdrop {
  /* One shared scrim for every shared-Modal consumer (provisional Dan
     decision — see --modal-scrim). Authored scrims carry no blur. */
  background:var(--modal-scrim);
  z-index:var(--z-modal-backdrop);
  /* flex centering (not top/left + translate(-50%,-50%)): fractional translate
     rasterizes text on half-pixels and blurs it at odd modal sizes. */
  display:flex;
  align-items:center;
  justify-content:center;
}
.drawer-backdrop {
  z-index:var(--z-modal-backdrop);
}
.drawer {
  position:fixed; top:0; right:0; bottom:0;
  width:var(--drawer-width, 480px);
  background:var(--bg);
  box-shadow:var(--ring-light), -12px 0 32px rgba(0,0,0,0.06);
  z-index:var(--z-modal);
  display:flex; flex-direction:column;
}
/* Shared modal surface (Phase 2, 19 Aug 2026): governed radius/lg 12, the
   delivered 1px #EBEBEB edge (all four DH modal instances), and the DS
   Elevation/400 overlay shadow replace the legacy --shadow-pop recipe. */
.modal {
  position:relative;
  background:var(--bg);
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  box-shadow:var(--elevation-400);
  z-index:var(--z-modal);
  width:var(--modal-width, auto);
  min-width:480px; max-width:var(--modal-max-width, 600px);
  max-height:86vh;
  display:flex; flex-direction:column;
  overflow:hidden;
}
.modal-full-height { height:calc(100vh - 60px); max-height:calc(100vh - 60px); }
.modal-wide {
  width:min(860px, calc(100vw - 48px));
  max-width:calc(100vw - 48px);
}
.modal-workspace {
  width:calc(100vw - 48px);
  max-width:calc(100vw - 48px);
  height:calc(100vh - 48px);
  max-height:calc(100vh - 48px);
}
.modal-workspace-fit {
  width:calc(100vw - 48px);
  max-width:calc(100vw - 48px);
  height:auto;
  max-height:calc(100vh - 48px);
}
.modal-motion-backdrop {
  animation:modal-motion-backdrop-in var(--modal-motion-backdrop-in-duration) ease-out both;
}
.modal-motion {
  --modal-open-offset-x:0px;
  --modal-open-offset-y:0px;
  --modal-open-scale-x:0.96;
  --modal-open-scale-y:0.96;
  transform-origin:center center;
  animation:modal-motion-open var(--modal-motion-open-duration) var(--modal-motion-open-easing) both;
  will-change:transform, opacity;
}
.modal-motion-backdrop.is-continuing {
  animation:none;
}
.modal-motion.is-continuing {
  animation:modal-motion-swap 260ms var(--modal-motion-open-easing) both;
}
.modal-motion-backdrop.is-closing {
  animation:modal-motion-backdrop-out var(--modal-motion-backdrop-out-duration) ease-in both;
}
.modal-motion.is-closing {
  pointer-events:none;
  animation:modal-motion-close var(--modal-motion-close-duration) var(--modal-motion-close-easing) both;
}
@keyframes modal-motion-backdrop-in {
  from {
    opacity:0;
  }
  to {
    opacity:1;
  }
}
@keyframes modal-motion-backdrop-out {
  from {
    opacity:1;
  }
  to {
    opacity:0;
  }
}
@keyframes modal-motion-open {
  0% {
    opacity:0;
    transform:translate(var(--modal-open-offset-x), var(--modal-open-offset-y))
      scale(var(--modal-open-scale-x), var(--modal-open-scale-y));
  }
  100% {
    opacity:1;
    transform:none;
  }
}
@keyframes modal-motion-swap {
  0% {
    opacity:0.92;
    transform:scale(0.985, 0.985);
  }
  100% {
    opacity:1;
    transform:none;
  }
}
@keyframes modal-motion-close {
  0% {
    opacity:1;
    transform:none;
  }
  100% {
    opacity:0;
    transform:translate(var(--modal-open-offset-x), var(--modal-open-offset-y))
      scale(var(--modal-open-scale-x), var(--modal-open-scale-y));
  }
}
.modal-content-stage {
  animation:modal-content-stage-in 240ms var(--modal-motion-open-easing) both;
}
@keyframes modal-content-stage-in {
  0% {
    opacity:0;
    transform:translateY(8px);
  }
  100% {
    opacity:1;
    transform:translateY(0);
  }
}
.modal-pdf-reader {
  width:calc(100vw - 24px);
  max-width:calc(100vw - 24px);
  height:calc(100vh - 24px);
  max-height:calc(100vh - 24px);
}
.modal.modal-knowledge-viewer {
  width:calc(100vw - 48px);
  max-width:calc(100vw - 48px);
  height:calc(100vh - 48px);
  max-height:calc(100vh - 48px);
  border-radius:var(--radius-container);
  box-shadow:var(--shadow-pop), inset 0 0 0 1px var(--rule);
}
.modal-workspace .modal-body {
  min-height:0;
  padding:0;
}
.modal-workspace-fit .modal-body {
  min-height:0;
  padding:0;
  overflow:auto;
  flex:0 1 auto;
}
.modal.large-workspace-modal,
.modal.outbound-delivery-modal {
  --large-workspace-dialog-margin:16px;
  --large-workspace-rail-width:minmax(330px, 380px);
  --large-workspace-pane-padding:16px 18px 18px;
  width:min(1480px, calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  height:calc(100dvh - 32px);
  max-height:calc(100dvh - 32px);
  border-radius:var(--radius-container);
  box-shadow:var(--shadow-pop);
}




.outbound-delivery-modal-body {
  min-height:0;
  display:block;
  overflow:auto;
}
.outbound-delivery-modal .form-grid {
  align-items:start;
}
.outbound-compose-workspace {
  height:100%;
  min-height:0;
}
.outbound-compose-split {
  grid-template-columns:minmax(0, 1fr) minmax(330px, 390px);
}
.outbound-compose-grid {
  gap:12px;
}
.outbound-mail-grid {
  display:grid;
  gap:8px;
  padding-top:8px;
}
.mail-field {
  display:grid;
  grid-template-columns:76px minmax(0, 1fr);
  align-items:center;
  gap:10px;
}
.mail-field.full {
  grid-column:1 / -1;
}
/* Authored New Email message rows (506:14378): the left label column takes
   the standard Label/Strong 13/500 text/secondary treatment, left-aligned —
   the size/colour overrides that diverged from the central field-label
   recipe are gone (21 Aug 2026 round 2). */
.mail-field .field-label {
  margin:0;
  text-align:left;
}
/* Round 3: mail rows take the central 40px control — no compact override. */
.outbound-compose-panel {
  display:grid;
  gap:14px;
  min-width:0;
}
.outbound-compose-body {
  min-height:210px;
  resize:vertical;
}
.message-editor-shell {
  display:grid;
  gap:0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
}
.message-editor-toolbar {
  display:flex;
  align-items:center;
  gap:3px;
  padding:5px 6px;
  border-bottom:1px solid var(--rule);
  background:var(--surface-2);
}
.message-editor-shell .textarea {
  border:0;
  border-radius:var(--radius-role-none);
  box-shadow:none;
}
.message-editor-underline {
  font-weight:800;
  text-decoration:underline;
}
.outbound-delivery-summary-panel .packet-selected-list {
  min-height:0;
  max-height:none;
}
.outbound-delivery-summary-panel {
  align-content:start;
  grid-template-rows:auto auto auto auto minmax(0, 1fr) auto auto;
  overflow:auto;
}
.outbound-delivery-summary-panel .packet-selected-empty {
  place-items:start;
  min-height:0;
  padding:4px 0 10px;
  text-align:left;
}
.outbound-packet-description {
  min-height:104px;
  resize:vertical;
}

.packet-choice-panel {
  display:grid;
  gap:12px;
  margin-bottom:12px;
  padding:0;
}
.packet-source-control {
  display:grid;
  gap:7px;
}
.packet-source-switch {
  display:flex;
  width:100%;
}
.packet-source-tab {
  flex:1 1 0;
  justify-content:center;
  min-height:38px;
}
.packet-source-tab:disabled {
  cursor:not-allowed;
  opacity:.55;
}
.packet-source-tab.active {
  background:var(--surface-2);
  color:var(--text);
}

.saved-packet-row-list {
  display:grid;
  gap:8px;
}
.saved-packet-option {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  align-items:stretch;
  border-radius:var(--radius-role-none);
  background:transparent;
  border:0;
  overflow:hidden;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.saved-packet-option.has-checkbox {
  grid-template-columns:minmax(0, 1fr) 76px;
}
.saved-packet-option > input {
  grid-column:2;
  grid-row:1;
  align-self:center;
  justify-self:center;
  margin:0;
}
.saved-packet-option .document-packet-row {
  grid-column:1;
  grid-row:1;
  grid-template-columns:minmax(190px, .9fr) minmax(240px, 1.3fr) minmax(112px, auto);
  min-height:64px;
  padding:9px 10px;
  background:transparent;
  border:0;
  border-bottom:0;
  box-shadow:none;
}
.saved-packet-option .document-packet-row.is-selected {
  box-shadow:none;
}
.saved-packet-option:hover,
.saved-packet-option.is-selected {
  background:color-mix(in srgb, var(--accent-soft) 45%, var(--bg));
  border:0;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.saved-packet-row-list .document-packet-row {
  padding-inline:10px;
}
.outbound-selector-document-row {
  grid-template-columns:30px minmax(0, 1fr) minmax(0, auto) 76px;
}
.outbound-selector-document-row .packet-document-row-add {
  min-width:76px;
}
.packet-reuse-section {
  display:grid;
  gap:12px;
  margin-top:14px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
}
.packet-reuse-details {
  grid-template-columns:minmax(0, 2fr) minmax(180px, 1fr);
}
.packet-reuse-details .field.full {
  grid-column:1 / -1;
}
.accordion-section-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:12px;
}
.comms-row-clickable {
  cursor:pointer;
  border-radius:var(--radius);
}
.comms-row-clickable:hover,
.comms-row-clickable:focus-visible {
  background:var(--hover);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.comm-detail-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 14px;
  margin-bottom:14px;
}
.comm-detail-grid > div {
  display:grid;
  gap:3px;
}
.comm-detail-grid span,
.comm-detail-body .field-label,
.comm-detail-attachments .field-label {
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
}
.comm-detail-grid strong {
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.comm-detail-body,
.comm-detail-attachments {
  display:grid;
  gap:8px;
  padding-top:12px;
  border-top:1px solid var(--rule);
}
.comm-detail-body p {
  margin:0;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.5;
  white-space:pre-wrap;
}
.comm-detail-attachment-row {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:var(--text-2);
  font-size: var(--text-sm);
}
@media (max-width: 760px) {
  .mail-field {
    grid-template-columns:1fr;
    gap:4px;
  }
  .mail-field .field-label {
    text-align:left;
  }
  .packet-source-switch {
    flex-direction:column;
  }
}

.delivery-packet-summary {
  display:grid;
  gap:12px;
  padding:12px 0 4px;
}










.delivery-packet-match-note {
  display:flex;
  align-items:center;
  gap:8px;
  margin:-2px 0 12px;
  padding:8px 0;
  color:var(--text-3);
  font-size: var(--text-sm);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.delivery-packet-match-note svg {
  color:var(--accent);
}




.delivery-manual-documents .fax-cover-builder,
.delivery-manual-documents .fax-attachment-builder {
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
  padding:0 0 12px;
}
.packet-save-toggle {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr);
  align-items:start;
  gap:9px;
  min-height:38px;
  color:var(--text);
}
.packet-save-toggle input {
  margin-top:2px;
}
.packet-save-toggle strong {
  display:block;
  font-size: var(--text-body);
}
.packet-save-toggle em,
.packet-reuse-off-note {
  display:block;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-style:normal;
  margin-top:2px;
}
.packet-save-toggle.disabled {
  color:var(--text-3);
}
.packet-reuse-match,
.packet-dedupe-note {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr);
  align-items:start;
  gap:8px;
  color:var(--text);
  font-size: var(--text-sm);
}
.packet-reuse-match {
  padding:0;
  border-bottom:0;
}
.packet-dedupe-note {
  margin-top:10px;
  padding:9px 10px;
  border:1px solid var(--warn-soft);
  border-radius:var(--radius-md);
  background:var(--warn-soft);
  color:var(--warn);
}
.packet-reuse-match svg {
  color:var(--accent);
}
.packet-dedupe-note svg {
  color:var(--warn);
}
.packet-reuse-match strong {
  display:block;
  font-size: var(--text-body);
}
.packet-reuse-match em {
  display:block;
  margin-top:2px;
  color:var(--text-3);
  font-style:normal;
  line-height:1.35;
}
.packet-reuse-off-note {
  padding:0;
}

.packet-pdf-intro-fields {
  display:grid;
  gap:8px;
  margin-top:10px;
}
.packet-summary-preview {
  display:grid;
  gap:5px;
  padding:12px 0;
  border-top:1px solid var(--rule);
}
.outbound-delivery-summary-panel .packet-summary-preview {
  padding-top:4px;
  border-top:0;
}
.packet-summary-preview p {
  display:-webkit-box;
  margin:0;
  overflow:hidden;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.45;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.packet-summary-cover-row p {
  display:-webkit-box;
  grid-column:1 / -1;
  margin:2px 0 0;
  overflow:hidden;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.fax-cover-option {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr);
  align-items:start;
  gap:9px;
  color:var(--text);
}
.fax-cover-option input {
  margin-top:2px;
}
.fax-cover-option strong,
.fax-cover-option em {
  display:block;
}
.fax-cover-option strong {
  font-size: var(--text-body);
}
.fax-cover-option em {
  margin-top:2px;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-style:normal;
}
.fax-cover-populate {
  color:var(--info);
  padding-inline:0;
  justify-self:start;
  text-decoration:underline;
  text-underline-offset:2px;
}
.fax-cover-populate:hover {
  color:var(--info);
}
.fax-cover-warning {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}
.fax-summary-result {
  display:grid;
  gap:10px;
  padding-top:12px;
  border-top:1px solid var(--rule);
}
.fax-summary-result .fax-recipient-list {
  max-height:220px;
  overflow:auto;
}
@media (max-width: 760px) {


  .delivery-packet-summary-head .chip {
    grid-column:1 / -1;
    justify-self:start;
  }


}
.packet-composer {
  flex:1 1 auto;
  display:grid;
  grid-template-rows:minmax(0, 1fr);
  height:100%;
  min-height:100%;
  min-width:0;
}
.packet-draft-state {
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  gap:6px;
  padding:6px 9px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-full);
  background:var(--surface);
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  white-space:nowrap;
}
.packet-draft-state.warn {
  border-color:color-mix(in srgb, var(--warn) 28%, var(--rule));
  background:var(--warn-soft);
  color:var(--warn);
}
.packet-draft-state.info {
  border-color:color-mix(in srgb, var(--accent) 24%, var(--rule));
  background:var(--accent-soft);
  color:var(--accent);
}
.packet-draft-state.success {
  border-color:color-mix(in srgb, var(--success) 28%, var(--rule));
  background:var(--success-soft);
  color:var(--success);
}
.packet-composer-workspace {
  position:relative;
  isolation:isolate;
  grid-template-columns:minmax(0, 1fr) minmax(330px, 380px);
  overflow:visible;
}
.packet-composer-main {
  position:relative;
  z-index:20;
  min-width:0;
  min-height:0;
  overflow:visible;
  padding:0;
  background:var(--surface);
}
.packet-composer-workspace:not(.outbound-compose-split) .packet-composer-main {
  overflow:auto;
}
.packet-composer-workspace.outbound-compose-split .packet-composer-main {
  overflow:auto;
}
.packet-accordion-list {
  align-content:start;
  overflow:visible;
}
.packet-accordion-step .review-accordion-body {
  padding-left:50px;
}
.packet-accordion-step .ingestion-step-num {
  width:22px;
  height:22px;
}





.packet-basics-grid {
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) minmax(190px, 1fr);
}
.packet-basics-wide {
  grid-column:span 2;
}
.packet-basics-narrow {
  grid-column:span 1;
}

.packet-document-toolbar {
  position:relative;
  z-index:20;
  padding:0 0 10px;
  margin-bottom:10px;
  background:transparent;
  column-gap:var(--space-7);
}
.packet-document-toolbar:focus-within,
.packet-document-toolbar:has(.chip-select.is-open) {
  z-index:2000;
}
.packet-document-toolbar .packet-document-search {
  flex:0 0 auto;
  width:min(320px, 100%);
  max-width:320px;
}


/* Matches .fax-doc-list: flat hairline rows separated by an 8px gap — the
   email/fax document-list look, now the one standard. */
.packet-document-list {
  display:grid;
  gap:8px;
  max-height:340px;
  overflow:auto;
}
.packet-document-row {
  display:grid;
  grid-template-columns:30px minmax(0, 1fr) minmax(0, auto) 76px;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:58px;
  padding:9px 10px;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  color:var(--text);
  cursor:pointer;
  text-align:left;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.packet-document-row:hover,
.packet-document-row:focus-visible,
.packet-document-row:has(.packet-document-row-add input:checked) {
  background:color-mix(in srgb, var(--accent-soft) 45%, var(--bg));
}
.packet-document-row:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.packet-document-row-icon {
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text-3);
}
.packet-document-row-copy {
  display:grid;
  gap:3px;
  min-width:0;
}
.packet-document-row-copy strong,
.packet-selected-copy strong {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.packet-document-row-copy span,
.packet-selected-copy em {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-style:normal;
}
.packet-document-row-add {
  grid-column:4;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:end;
  gap:4px;
  min-width:68px;
}
.packet-cross-issue-chip {
  grid-column:3;
  justify-self:end;
  white-space:nowrap;
}
.packet-empty-filter {
  display:grid;
  justify-items:center;
  gap:7px;
  min-height:180px;
  padding:28px;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  color:var(--text-2);
  text-align:center;
}








.packet-summary-panel {
  position:relative;
  z-index:0;
  display:grid;
  grid-template-rows:auto auto auto minmax(0, 1fr) auto auto;
  gap:12px;
  align-self:stretch;
  max-height:none;
  min-width:0;
  min-height:0;
  overflow:hidden;
  padding:16px 18px 18px;
  border-left:1px solid var(--rule);
  background:var(--surface-2);
}
.packet-summary-basics {
  display:grid;
  gap:8px;
  padding:10px 0 12px;
  border-bottom:1px solid var(--rule);
}
.packet-summary-basics > div {
  display:grid;
  gap:3px;
  min-width:0;
}
.packet-summary-basics span {
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
}
.packet-summary-basics strong {
  min-width:0;
  color:var(--text);
  font-size:12.5px;
  font-weight: var(--font-weight-semibold);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.packet-summary-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.packet-selected-list {
  display:grid;
  align-content:start;
  gap:7px;
  min-height:160px;
  max-height:420px;
  overflow:auto;
}
.packet-selected-row {
  display:grid;
  grid-template-columns:24px minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  min-height:54px;
  padding:8px 0;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.packet-selected-index {
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:var(--radius-role-full);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight:800;
}
.packet-selected-copy {
  display:grid;
  gap:2px;
  min-width:0;
}
.packet-selected-actions {
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.packet-selected-empty {
  display:grid;
  place-items:center;
  min-height:160px;
  padding:18px;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  color:var(--text-3);
  text-align:center;
}
.packet-readiness-panel {
  display:grid;
  gap:7px;
  padding-top:12px;
  border-top:1px solid var(--rule);
}
.packet-readiness-panel > div:not(.field-label) {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.packet-readiness-panel strong {
  color:var(--text);
  font-size: var(--text-sm);
}
.packet-summary-panel.outbound-delivery-summary-panel {
  grid-template-rows:auto auto auto auto minmax(0, 1fr) auto auto;
}
.packet-summary-panel.fax-delivery-summary-panel {
  grid-template-rows:auto auto auto minmax(0, 1fr) auto auto auto;
}
.packet-summary-panel.outbound-delivery-summary-panel .packet-selected-list {
  min-height:0;
  max-height:none;
  align-content:start;
}
@media (max-width: 900px) {
  .packet-composer-workspace,
  .packet-basics-grid,
  .packet-optional-grid {
    grid-template-columns:1fr;
  }
  .packet-basics-wide,
  .packet-basics-narrow {
    grid-column:1;
  }
  .packet-summary-panel {
    position:static;
    border-left:0;
    border-top:1px solid var(--rule);
  }
}
/* Modal/Drawer header = the widget title band (--widget-header-bg + divider):
   a modal is a floating widget, so surfaces share one header treatment. */
.modal-head { padding:14px 18px; background:var(--widget-header-bg); box-shadow:inset 0 -1px 0 var(--widget-divider); display:flex; align-items:center; gap:10px; }
.modal-heading { flex:1; min-width:0; }
.modal-title { margin:0; font-size:var(--type-title-sm); font-weight: var(--font-weight-semibold); letter-spacing:-0.02em; line-height:1.25; }
.modal-description { margin-top:4px; color:var(--text-3); font-size:var(--text-body); line-height:18px; }
.modal-close { margin-left:auto; }
.modal-body { padding:16px 18px; overflow:auto; flex:1; }
/* Shared modal authored anatomy (DH Modal/Confirm complete 81:2353 and
   modal-Create event 83:2739; DS Board/Modal 373:3): white header with the
   authored 24/24/16 rhythm and top-aligned close, 18px title (authored 600
   renders via the Lisa D05 650 role), 13/400/19 muted supporting line, the
   authored 28px #F7F7F7 close square, and 16/24 body + footer padding.
   Scoped under .modal so the Drawer (which reuses these class names) keeps
   its current presentation — Drawer restyle is explicitly out of this slice. */
.modal .modal-head {
  padding:24px 24px 16px;
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule);
  align-items:flex-start;
  gap:12px;
}
.modal .modal-title {
  font-size:18px;
  font-weight:var(--font-weight-semibold);
  letter-spacing:0;
  line-height:24px;
}
.modal .modal-description {
  margin-top:4px;
  color:var(--approved-text-muted);
  font-size:var(--text-body);
  line-height:19px;
}
/* UP02 (Lisa): the close X carries NO resting background — it is exactly
   the central tertiary icon button (transparent at rest, tertiary hover).
   The old .modal .modal-close grey (--color-neutral-40) override is
   removed; do not reintroduce a local background on any modal's close. */
.modal > .modal-body { padding:16px 24px; }
.modal > .modal-body.review-accordion-modal-body { padding:0; background:var(--surface); }
.modal .modal-foot,
.modal .modal-actions { padding:16px 24px; }
.modal-body.packet-composer-modal-body {
  min-height:0;
  padding:0;
  overflow:hidden;
  background:var(--surface);
}
.modal.packet-composer-modal {
  height:min(1080px, calc(100vh - 16px));
  max-height:calc(100vh - 16px);
}
.modal.packet-composer-modal.outbound-delivery-modal {
  height:calc(100dvh - 32px);
  max-height:calc(100dvh - 32px);
}
.modal.packet-composer-modal:not(.outbound-delivery-modal) {
  height:auto;
  min-height:min(720px, calc(100dvh - 24px));
  max-height:calc(100dvh - 24px);
}
.drawer-stack { display:grid; gap:14px; }
.modal-body-full-height { overflow:hidden; display:flex; flex-direction:column; }
.pdf-reader-modal-body {
  padding:0;
  min-height:0;
}
.pdf-reader-modal-frame {
  display:block;
  width:100%;
  flex:1;
  min-height:0;
  border:0;
  background:var(--surface);
}
.modal-foot { padding:12px 18px; box-shadow:inset 0 1px 0 var(--rule); display:flex; justify-content:flex-end; align-items:center; gap:8px; }
/* Authored New event footer hint (505:12353): Caption 12/400 neutral-400,
   left-aligned opposite the action buttons. */
.modal-foot-hint {
  margin-right:auto;
  color:var(--approved-text-subtle);
  font-size:var(--text-sm);
  line-height:16px;
}
/* Authored field-label markers (505:12294 family): required asterisk in
   feedback/error; right-side "Optional" caption in neutral-400. */
.field-required { color:var(--approved-feedback-error); }
.field-optional {
  float:right;
  color:var(--approved-text-subtle);
  font-weight:var(--font-weight-regular);
}
/* Authored modal form grid (New event 505:12272 / appointment 81:3120 /
   Log communication 506:14321): full-width rows with authored two-col pairs
   and the three-up Date | Start | Duration row. ONE recipe — any Lisa-style
   modal joins the selector list instead of re-declaring columns. */
.new-event-grid,
.modal-form-grid { grid-template-columns:repeat(6, minmax(0, 1fr)); gap:16px; /* authored body gap, 505:12281 */ }
.new-event-grid .field,
.modal-form-grid .field { grid-column:span 3; }
.new-event-grid .field.third,
.modal-form-grid .field.third { grid-column:span 2; }
.new-event-grid .field.full,
.modal-form-grid .field.full { grid-column:1 / -1; }
/* Authored attendees control (83:2572): the chip group sits INSIDE a real
   bordered control — 1px neutral-300 on radius/md, 8px inset, 4px chip gap
   (round 3: Dan flagged the missing box). */
.new-event-attendees {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  padding:8px;
  border:1px solid var(--approved-border-strong);
  border-radius:var(--radius-role-md);
  background:var(--surface);
}
/* Authored Firm-attendees chip (DH 83:2585): 26px pill on bg/surface with
   the neutral-300 edge, 22px brand/primary avatar with 10/500 on-brand
   initials, Geist 400 14 name. Selected chips take the brand ring and
   brand-subtle fill. Central recipe — any people-picker modal may consume. */
.attendee-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:26px;
  padding:1px 12px 1px 1px;
  border:1px solid var(--approved-border-strong);
  border-radius:var(--radius-role-full);
  background:var(--surface);
  color:var(--approved-text-primary);
  font-size:var(--text-md);
  line-height:18px;
}
.attendee-chip-avatar {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:var(--radius-role-full);
  /* Authored brand/primary = the Lisa D01 purple (action-dominant role),
     NOT the legacy violet --brand-primary. */
  background:var(--action-dominant-bg);
  color:var(--button-text-on-color);
  font-size:var(--text-2xs);
  font-weight:var(--font-weight-medium);
}
.attendee-chip:hover { border-color:var(--action-dominant-bg); }
.attendee-chip.active { border-color:var(--action-dominant-bg); background:var(--brand-subtle); }
/* Round-2 category-switch motion: the viewport tweens between measured
   heights while the incoming field set phases in. Reduced-motion users get
   an instant swap. */
.new-event-category { margin-bottom:16px; }
/* Round 3 (Dan): slightly longer, softer tween so the size change reads as
   one continuous move with the fields settling in after it. */
.new-event-fields-viewport { overflow:hidden; transition:height 360ms cubic-bezier(0.3, 0.7, 0.2, 1); }
.new-event-fields { animation:new-event-fields-in 300ms cubic-bezier(0.3, 0.7, 0.2, 1) 110ms backwards; }
@keyframes new-event-fields-in {
  from { opacity:0; transform:translateY(5px); }
  to { opacity:1; transform:none; }
}
@media (prefers-reduced-motion: reduce) {
  .new-event-fields-viewport { transition:none; }
  .new-event-fields { animation:none; }
}
.new-event-portal-share {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  color:var(--approved-text-secondary);
  font-size:var(--text-body);
}
.modal-actions { padding:12px 18px; box-shadow:inset 0 1px 0 var(--rule); display:flex; justify-content:flex-end; gap:8px; }
.packet-removal-choice-modal .modal-foot {
  flex-wrap:wrap;
}
.packet-removal-choice-modal .modal-foot .btn {
  white-space:nowrap;
}
.packet-removal-copy {
  display:grid;
  gap:10px;
  color:var(--text-2);
  font-size: var(--text-body);
  line-height:1.45;
}
.packet-removal-copy p {
  margin:0;
}
.packet-removal-list {
  display:grid;
  gap:5px;
  margin:0;
  padding-left:18px;
  color:var(--text);
}
@media (max-width: 720px) {
  .modal {
    min-width:0;
    width:calc(100vw - 24px);
    max-width:calc(100vw - 24px);
  }
  .packet-removal-choice-modal .modal-foot .btn {
    width:100%;
    justify-content:center;
  }
  .modal-workspace {
    width:calc(100vw - 20px);
    max-width:calc(100vw - 20px);
    height:calc(100vh - 20px);
    max-height:calc(100vh - 20px);
  }
  .modal-workspace-fit {
    width:calc(100vw - 20px);
    max-width:calc(100vw - 20px);
    max-height:calc(100vh - 20px);
  }
  .new-claim-mode-switch,
  .cac-bootstrap-hero,
  .cac-bootstrap-review-grid,
  .cac-bootstrap-facts,
  .cac-bootstrap-policy-grid,
  .cac-bootstrap-extracted-grid,
  .cac-import-success-summary {
    grid-template-columns:1fr;
  }
  .cac-bootstrap-timeline {
    grid-template-columns:1fr;
  }
  .cac-transfer-showcase-head,
  .cac-transfer-canvas {
    grid-template-columns:1fr;
  }
  .cac-transfer-showcase-head {
    display:grid;
  }
  .cac-transfer-channel {
    min-height:96px;
  }
  .cac-transfer-line {
    top:24px;
    left:8px;
    right:8px;
  }
  .cac-transfer-log-row {
    grid-template-columns:22px 20px minmax(0, 1fr) 46px;
  }
  .cac-transfer-log-cat,
  .cac-transfer-log-meta {
    display:none;
  }
  .cac-bootstrap-doc-card {
    grid-template-columns:18px minmax(0, 1fr);
  }
  .cac-bootstrap-doc-card .chip {
    grid-column:2;
    justify-self:start;
  }
  .cac-import-success-actions {
    justify-content:flex-start;
  }
}
@media (prefers-reduced-motion: reduce) {
  .modal-motion-backdrop,
  .modal-motion,
  .command-motion-backdrop,
  .command-menu {
    animation:none;
  }
}
.notice {
  border:1px solid var(--rule);
  border-radius:var(--radius);
  padding:10px;
  background:var(--surface-2);
  color:var(--text-2);
}
.notice.warn {
  border-color:#ead99c;
  background:var(--warn-soft);
  color:var(--warn);
}



.cac-status-control {
  position:relative;
  width:fit-content;
  max-width:100%;
}
.cac-status-control-compact {
  width:100%;
}
.cac-status-button {
  width:100%;
  min-height:32px;
  border:0;
  border-radius:var(--radius-control);
  padding:6px 9px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
  font-family:var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
}
.cac-status-button:hover,
.cac-status-button:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.cac-status-menu {
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  z-index:50;
  width:230px;
  padding:6px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.cac-status-menu-item {
  width:100%;
  border:0;
  border-radius:var(--radius-sm);
  background:transparent;
  padding:5px 6px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  cursor:pointer;
}
.cac-status-menu-item:hover,
.cac-status-menu-item:focus-visible {
  background:var(--surface-2);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.cac-status-meta { margin-top:8px; }


/* ============================================================
 * 19. CONFIDENCE BAR
 * ============================================================ */
.confidence-bar { width:100%; height:3px; background:var(--surface-3); border-radius:var(--radius-pill); overflow:hidden; }
.confidence-bar-fill { height:100%; background:var(--text); }

/* ============================================================
 * 20. STAGE STEPPER (prospects convert)
 * ============================================================ */
.stage-stepper { display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:center; gap:8px 12px; padding:16px 24px; box-shadow:inset 0 -1px 0 var(--rule); }
.stage-stepper-label { font-family:var(--font-sans); font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); text-transform:none; letter-spacing:0; flex-shrink:0; }
.stage-stepper-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.stage-stepper-progress { color:var(--text-3); }
/* Each stage is one clickable section: label above its segment of the track
   (same segment aesthetic as the inbox ingestion column). */
.stage-stepper-sections { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:2px; }
.stage-stepper-section {
  display:grid;
  gap:5px;
  padding:4px 4px 0;
  border:0;
  background:transparent;
  cursor:pointer;
  text-align:left;
  border-radius:var(--radius-control);
}
.stage-stepper-section:hover:not(:disabled) { background:var(--hover); }
.stage-stepper-section:disabled { cursor:default; }
.stage-stepper-section-label {
  font-size:var(--text-xs);
  color:var(--text-3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.stage-stepper-section.past .stage-stepper-section-label { color:var(--text-2); }
.stage-stepper-section.current .stage-stepper-section-label { color:var(--text); font-weight:var(--font-weight-semibold); }
.stage-stepper-section-bar { display:block; height:6px; background:var(--surface-3); }
.stage-stepper-section:first-child .stage-stepper-section-bar { border-radius:var(--radius-segment-start); }
.stage-stepper-section:last-child .stage-stepper-section-bar { border-radius:var(--radius-segment-end); }
.stage-stepper-section-bar.complete { background:var(--accent); }
.stage-stepper-section-bar.current { background:color-mix(in srgb, var(--accent) 55%, var(--surface-3)); }
.stage-stepper-desc {
  grid-column:2;
  min-width:0;
  color:var(--text-3);
  font-size:12.5px;
  line-height:1.35;
}

/* ============================================================
 * 21. CONVERT FLOW (prospects → claim)
 * ============================================================ */
.convert-form        { display:flex; flex-direction:column; gap:14px; }
.convert-step        { padding:14px 0; box-shadow:inset 0 -1px 0 var(--rule-soft); }
.convert-step-bar    { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.convert-step-num    { font-family:var(--font-mono); font-size: var(--text-xs); color:var(--text-3); width:22px; text-align:right; }
.convert-stepper     { display:flex; align-items:center; gap:6px; }
.convert-field       { display:flex; flex-direction:column; gap:4px; }
.convert-input,
.convert-select      { /* inherit from input/select */ }
.convert-summary     { display:flex; flex-direction:column; gap:4px; padding:10px 0; }
.convert-summary-row { display:flex; justify-content:space-between; gap:10px; font-size: var(--text-body); }
.convert-fee-card    { padding:10px 12px; box-shadow:var(--ring-light); border-radius:var(--radius); background:var(--surface); }
.convert-economics-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.convert-fee-row     { display:flex; justify-content:space-between; padding:4px 0; font-size: var(--text-body); }
.convert-conflict-card  { padding:10px 12px; box-shadow:var(--ring-light); border-radius:var(--radius); background:var(--surface); }
.convert-conflict-list  { display:flex; flex-direction:column; gap:4px; }
.convert-conflict-row   { display:flex; align-items:center; gap:8px; padding:4px 0; font-size:12.5px; }
.convert-conflict-result.ok  { color:var(--success); font-weight: var(--font-weight-medium); }
.convert-conflict-result.bad { color:var(--critical); font-weight: var(--font-weight-medium); }

/* ============================================================
 * 22. PROSPECT DRAWER
 * ============================================================ */
.prospect-banner {
  display:flex; align-items:center; gap:12px;
  padding:12px 16px;
  background:var(--surface-2);
  box-shadow:inset 0 -1px 0 var(--rule);
  flex-wrap:wrap;
}
.prospect-row-actions {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  width:100%;
}
.prospect-row-actions .btn {
  min-width:0;
}
.my-work-summary-row {
  grid-template-columns:repeat(3, minmax(0, 1fr));
  margin-bottom:24px;
}
.finance-summary-row {
  grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
}
.finance-summary-row .hub-stat-value {
  overflow-wrap:anywhere;
  letter-spacing:0;
}
.financial-workspace-shell > .card > .card-body {
  display:grid;
  gap:16px;
}
.financial-workspace {
  display:grid;
  gap:16px;
  min-width:0;
}
.financial-workspace-tabs {
  max-width:100%;
  overflow-x:auto;
  scrollbar-width:thin;
}
.financial-workspace-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-bottom:10px;
}
.financial-workspace .table-action-stack {
  flex-wrap:wrap;
}
.financial-workspace .economics-workspace {
  margin-top:0;
}

/* Stat — compact density (Brief 1). Quiet label, mono numeral, optional tone.
   Standard density reuses .my-work-stat / .hub-stat-* unchanged. */
.stat-inline { display:inline-flex; align-items:baseline; gap:5px; font-size:var(--text-sm); white-space:nowrap; }
.stat-inline-label { color:var(--text-3); }
.stat-inline-value { font-weight:var(--font-weight-semibold); color:var(--text); }
.stat-inline-success .stat-inline-value { color:var(--success); }
.stat-inline-warn .stat-inline-value { color:var(--warn); }
.stat-inline-critical .stat-inline-value { color:var(--critical); }
.stat-inline-info .stat-inline-value { color:var(--info); }
.stat-inline-row { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.cac-data-apply-stats { padding:4px 0 2px; }
.playbook-guide-stat-row { padding:10px 14px 12px; }


.my-work-stat {
  min-width:0;
  cursor:help;
}
.my-work-stat:focus {
  outline:none;
}
.my-work-stat:focus-visible {
  border-radius:var(--radius-sm);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.prospect-drawer-strip  { display:grid; grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)); gap:16px; padding:16px 24px; box-shadow:inset 0 -1px 0 var(--rule); }
.prospect-reference-actions { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.prospect-details       { padding:16px 24px; }
.prospect-section       { padding:16px 0; box-shadow:inset 0 -1px 0 var(--rule-soft); }
.prospect-section:last-child { box-shadow:none; }

@media (max-width: 760px) {
  .finance-summary-row {
    grid-template-columns:1fr;
    gap:12px;
  }
  .finance-summary-row .hub-stat-value {
    font-size:22px;
  }
  .financial-workspace-actions {
    justify-content:flex-start;
  }
}
.prospect-section-title { font-family:var(--font-sans); font-size: var(--text-body); text-transform:none; letter-spacing:0; color:var(--text-3); font-weight: var(--font-weight-medium); margin-bottom:10px; }
.prospect-section-body  { font-size: var(--text-body); color:var(--text-2); line-height:1.5; }
.prospect-kv            { display:grid; grid-template-columns:100px 1fr; gap:8px; padding:4px 0; font-size: var(--text-body); }
.prospect-kv-k          { color:var(--text-3); }
.prospect-kv-v          { color:var(--text); }
.prospect-textarea      { min-height:80px; }
.prospect-notes-body    { font-size: var(--text-body); line-height:1.5; color:var(--text-2); }
.prospect-log           { display:flex; flex-direction:column; gap:0; }
.prospect-log-entry     { display:grid; grid-template-columns:80px 1fr; gap:12px; padding:8px 0; box-shadow:inset 0 -1px 0 var(--rule-soft); font-size:12.5px; }
.prospect-log-marker    { font-family:var(--font-mono); font-size: var(--text-xs); color:var(--text-3); }
.prospect-log-composer  { padding:10px 0; }

/* ============================================================
 * 23. DIRECTORY
 * ============================================================ */
.dir-quick { display:flex; flex-direction:column; gap:8px; }
.dir-quick-actions { display:flex; gap:6px; flex-wrap:wrap; }
.dir-section-title { font-family:var(--font-mono); font-size: var(--text-xs);color:var(--text-3); font-weight: var(--font-weight-medium); padding:12px 0 6px; }
.dir-row { display:grid; grid-template-columns:200px 1fr; gap:8px; padding:6px 0; font-size: var(--text-body); }
.dir-row-label { color:var(--text-3); }
.dir-row-value { color:var(--text); }
.dir-org-name {
  font-family:var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
  color:var(--text);
  line-height:1.35;
}
.dir-tag {
  display:inline-flex; align-items:center;
  padding:1px 8px; height:20px;
  border-radius:var(--radius-pill);
  background:var(--surface-3); color:var(--text-2);
  font-size: var(--text-xs); font-weight: var(--font-weight-medium);
}
.dir-claim-count {
  font-family:var(--font-sans);
  font-size: var(--text-body);
  color:var(--text-2);
  font-weight: var(--font-weight-medium);
  white-space:nowrap;
}
.dir-drawer-head { padding:14px 16px; box-shadow:inset 0 -1px 0 var(--rule); }
.dir-link-card  { padding:10px 12px; box-shadow:var(--ring-light); border-radius:var(--radius); }
.dir-link-head  { display:flex; align-items:center; gap:8px; }
.dir-link-list  { display:flex; flex-direction:column; gap:0; }
.dir-link-foot  { padding-top:8px; font-size: var(--text-sm); color:var(--text-3); }
.dir-link-claim-id { color:var(--muted); }
.dir-link-claimant { font-weight: var(--font-weight-medium); margin-top:2px; }
.dir-link-notes { margin-top:var(--space-3); color:var(--muted-strong); line-height:1.5; }
.dir-preferred-chip { display:inline-flex; align-items:center; gap:var(--space-1); }
.dir-drawer-title { display:flex; align-items:baseline; gap:var(--space-4); }
.dir-head-org { margin-top:var(--space-1); font-weight: var(--font-weight-medium); }
.dir-panel { padding:var(--space-rhythm); }
.dir-section { margin-bottom:22px; }
.dir-address { white-space:pre-line; }
.dir-drawer-tags { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.dir-notes { line-height:1.55; white-space:pre-wrap; }
.dir-form-field { margin-top:var(--space-5); }
.dir-form-actions { display:flex; gap:var(--space-3); justify-content:flex-end; margin-top:var(--space-rhythm); }
/* Directory table column budget — authored 380:2365 cells 190/253/185/247/183
   inside the 1218 row (16 side pads): proportions kept, table fills the
   widget and pans below 960. */
.directory-table { min-width:960px; table-layout:fixed; }
.directory-col-name { width:18%; }
.directory-col-org { width:24%; }
.directory-col-category { width:160px; } /* DC51 (tester V4/V8): a fixed column that fits the longest category chip; 17% shrank under the chip in the split at 1280/1024 */
.directory-col-contact { width:24%; }
.directory-col-claims { width:17%; }

.linked-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; padding:6px 0; box-shadow:inset 0 -1px 0 var(--rule-soft); font-size: var(--text-body); }
.linked-row-unlink { color:var(--text-3); cursor:pointer; }
.linked-row-unlink:hover { color:var(--critical); }

/* ============================================================
 * 24. ASSISTANT (panel + page)
 * ============================================================ */
.assistant-trigger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--topnav-kbd-gap);
  width:auto;
  min-width:var(--topnav-ask-min-w);
  height:var(--topnav-tool-h);
  padding:0 var(--topnav-pad-x);
  border:1px solid var(--rule);
  /* Authored radius/md on the outer (right) corners only — see
     .command-trigger for the segmented-pair note. */
  border-radius:0 var(--topnav-tool-radius) var(--topnav-tool-radius) 0;
  background:var(--surface);
  box-shadow:none;
  color:var(--brand-primary-hover);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  line-height:13px;
  z-index:var(--z-assistant-trigger);
  white-space:nowrap;
  transition:background 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease;
}
.assistant-trigger:hover,
.assistant-trigger:focus-visible {
  border-color:color-mix(in srgb, var(--brand-primary) 46%, var(--rule));
  background:var(--brand-subtle);
  color:var(--brand-primary-hover);
}
.assistant-trigger:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  box-shadow:none;
}
.assistant-mark {
  width:22px;
  height:22px;
  border-radius:var(--radius);
  background:var(--ink);
  color:var(--ink-fg);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  flex-shrink:0;
}
.assistant-mark svg {
  display:block;
}
.assistant-trigger-mark {
  width:16px;
  height:16px;
  border-radius:var(--radius-role-none);
  background:transparent;
  color:currentColor;
}
.assistant-trigger-label {
  line-height:1;
}
/* One shared keycap presentation role (Lisa 14): both chips render via the
   central .kbd treatment; no per-control keycap styling remains. */

.assistant-panel {
  position:fixed; top:0; right:0; bottom:0;
  width:460px;
  background:var(--bg);
  box-shadow:var(--ring-light), -12px 0 32px rgba(0,0,0,0.06);
  z-index:120;
  display:flex; flex-direction:column;
  pointer-events:none;
}
.assistant-panel :is(button, a, input, textarea, select, summary, [role="button"], [role="switch"], .conv-scroll, .assistant-panel-source, .assistant-history-popover, .modal-backdrop) {
  pointer-events:auto;
}
.assistant-panel.with-source { width:min(760px, calc(100vw - 24px)); }
.assistant-panel-head { padding:10px 14px; box-shadow:inset 0 -1px 0 var(--rule); display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:58px; }
.assistant-panel-title-row { display:flex; align-items:center; gap:8px; min-width:0; }
.assistant-panel-title-row > div { min-width:0; }
.assistant-panel-title-row .small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.assistant-panel-actions { display:flex; align-items:center; gap:4px; margin-left:auto; }

.assistant-page {
  display:grid;
  grid-template-columns:clamp(220px, 22vw, 280px) minmax(0, 1fr);
  /* IW35 (Dan: the Assistant screen was missed): the two panes are
     side-by-side widgets on the page frame — 24 gap, 16/24/24 inset. */
  gap:var(--widget-row-gap);
  height:calc(100dvh - 73px);
  min-height:0;
  overflow:hidden;
  padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
}
.assistant-page-widget {
  min-width:0;
  min-height:0;
  overflow:hidden;
  border-radius:var(--radius-container);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
}
.assistant-page-main { display:flex; flex-direction:column; min-width:0; min-height:0; background:var(--bg); }
html.assistant-mode-transition.assistant-expanding .assistant-page {
  animation:assistant-fullscreen-in 320ms cubic-bezier(.16, .82, .26, 1) both;
}
html.assistant-mode-transition.assistant-docking .assistant-panel {
  animation:assistant-panel-dock-in 300ms cubic-bezier(.16, .82, .26, 1) both;
}
@keyframes assistant-fullscreen-in {
  from {
    opacity:0;
    transform:translateX(10px) scale(.992);
  }
  to {
    opacity:1;
    transform:translateX(0) scale(1);
  }
}
@keyframes assistant-panel-dock-in {
  from {
    opacity:0;
    transform:translateX(18px) scale(.985);
  }
  to {
    opacity:1;
    transform:translateX(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  html.assistant-mode-transition.assistant-expanding .assistant-page,
  html.assistant-mode-transition.assistant-docking .assistant-panel {
    animation:none;
  }
}
.assistant-page-side {
  position:relative;
  z-index:auto;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  overflow:visible;
}
.assistant-page-side-head {
  position:relative;
  z-index:21;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px var(--widget-padding-x) 12px;
  border-radius:var(--radius-container) var(--radius-container) 0 0;
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}
.assistant-page-side-actions {
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-left:auto;
}

.assistant-page-workbench {
  position:relative;
  z-index:auto;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
}
.assistant-page-workspace {
  display:flex;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:var(--surface);
  box-shadow:inset 1px 0 0 var(--rule);
}
@media (max-width: 1240px) {
  .assistant-page {
    grid-template-columns:clamp(200px, 24vw, 240px) minmax(0, 1fr);
  }
  .assistant-page-workbench {
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  }
}
@media (max-width: 1100px) {
  .assistant-page {
    grid-template-columns:200px minmax(680px, 1fr);
    overflow:auto hidden;
  }
  .assistant-page-workbench {
    grid-template-columns:minmax(340px, 1fr) minmax(340px, 1fr);
  }
}
@media (max-height: 760px) {
  .thread-item.navigator-row {
    min-height:42px;
    padding-block:7px;
  }
  
.conv-scroll {
    padding:10px 12px;
    gap:10px;
  }
  .conv-empty {
    padding:28px 16px;
  }
  .conv-fresh {
    padding:16px 14px;
  }
  .composer {
    padding:8px 10px;
  }
}

.assistant-history { flex:1; overflow:auto; padding:8px; }
.assistant-history-popover { position:absolute; right:12px; top:44px; width:280px; background:var(--bg); border-radius:var(--radius-lg); box-shadow:var(--shadow-pop); padding:6px; z-index:5; }

.assistant-panel-source {
  min-height:220px;
  max-height:52vh;
  display:flex;
  overflow:hidden;
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule);
}

.assistant-thread-section { display:flex; flex-direction:column; flex:1; min-height:0; }

.thread-list {
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
  gap:0;
  padding:0;
  overflow:hidden;
  border-radius:0 0 var(--radius-container) var(--radius-container);
  background:var(--widget-bg);
}
.assistant-page-notice {
  margin:8px 8px 0;
  padding:8px 9px;
  border-radius:var(--radius);
  background:var(--warn-soft);
  color:var(--text-2);
  font-size:11.5px;
  line-height:1.35;
}
.thread-new-btn { width:100%; justify-content:center; margin-bottom:6px; }
.thread-new-btn:disabled { opacity:0.55; cursor:not-allowed; }
.thread-items {
  flex:1;
  min-height:0;
  overflow:auto;
  align-content:start;
  grid-auto-rows:max-content;
  background:var(--widget-bg);
}
.thread-items.navigator-list {
  border-block:0;
}
.thread-item.navigator-row {
  position:relative;
  grid-template-columns:minmax(0, 1fr);
  gap:8px;
  min-height:58px;
  padding:9px 10px 9px 12px;
}
.thread-item.pinned {
  background:var(--warn-soft);
  box-shadow:none;
}
.thread-item.navigator-row.active {
  background:var(--hover-2);
  box-shadow:inset 3px 0 0 var(--text-3);
}
.thread-item.pinned.active {
  background:var(--hover-2);
}
.thread-item-copy {
  min-width:0;
}
.thread-item.renaming {
  cursor:default;
  align-items:stretch;
  padding-block:10px;
}
.thread-item-title {
  display:flex;
  align-items:center;
  gap:4px;
}
.thread-item-title span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.thread-item-title svg {
  flex:0 0 auto;
  color:var(--text-3);
}
.thread-item.pinned .thread-item-title svg {
  color:var(--warn);
}
.thread-item-rename-form {
  display:grid;
  gap:8px;
  min-width:0;
}
.thread-item-rename-input {
  width:100%;
  min-width:0;
  height:34px;
  padding:0 10px;
  border:0;
  border-radius:var(--radius-control);
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--ring-light);
  font:inherit;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  outline:0;
}
input.thread-item-rename-input:focus,
input.thread-item-rename-input:focus-visible {
    outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.thread-item-rename-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}
.thread-item-rename-actions .btn {
  min-height:28px;
  gap:5px;
  font-size:11.5px;
  font-weight: var(--font-weight-bold);
}
.thread-item-meta {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.thread-item-scope,
.thread-item-status {
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:0 6px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-bold);
}
.thread-item-status.needs-retry {
  background:var(--critical-soft);
  color:var(--critical);
}
.thread-item-preview {
  display:block;
  min-width:0;
  margin-top:3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.25;
}
.thread-item-actions {
  position:absolute;
  top:50%;
  right:8px;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:3px;
  padding-left:16px;
  background:linear-gradient(90deg, transparent, var(--widget-bg) 16px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 120ms ease;
}
.thread-item:hover .thread-item-actions,
.thread-item:focus-visible .thread-item-actions,
.thread-item:focus-within .thread-item-actions,
.thread-item.renaming .thread-item-actions,
.thread-item.active .thread-item-actions {
  background:linear-gradient(90deg, transparent, var(--hover-2) 16px);
}
.thread-item:hover .thread-item-actions,
.thread-item:focus-visible .thread-item-actions,
.thread-item:focus-within .thread-item-actions,
.thread-item.renaming .thread-item-actions {
  opacity:0.72;
  visibility:visible;
  pointer-events:auto;
}
.thread-item-actions:focus-within { opacity:1; visibility:visible; }
.thread-item-action-btn,
.thread-item-action-btn.btn-icon.btn-sm {
  width:28px;
  min-width:28px;
  height:28px;
  min-height:28px;
  color:var(--text-3);
}
.thread-item-action-btn:hover,
.thread-item-action-btn:focus-visible {
  color:var(--text);
}
.thread-item-pin:hover,
.thread-item-pin.active:hover { opacity:1; color:#b45309; }
.thread-item-del:hover { opacity:1; color:var(--critical); }
.thread-empty { padding:24px 12px; text-align:center; color:var(--text-3); font-size: var(--text-sm); }

.assistant-claim-picker { display:flex; flex-direction:column; gap:8px; padding:10px 12px; box-shadow:inset 0 -1px 0 var(--rule); }
.assistant-claim-picker.compact { gap:7px; padding:10px 12px 12px; }
.assistant-claim-picker.idle { padding-top:8px; }
.assistant-claim-picker-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:20px; }
.assistant-claim-picker-label { font-size: var(--text-xs); font-weight: var(--font-weight-semibold); color:var(--text-3); }
.assistant-claim-actions { display:flex; align-items:center; gap:2px; }
.assistant-context-add-btn { width:100%; height:30px; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:0; border-radius:var(--radius-control); background:transparent; color:var(--text); box-shadow:var(--ring-light); font:inherit; font-size:12.5px; font-weight: var(--font-weight-medium); cursor:pointer; }
.assistant-context-add-btn:hover,
.assistant-context-add-btn:focus-visible { background:var(--hover-2); outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.assistant-claim-change { border:0; border-radius:var(--radius-control); background:transparent; color:var(--text); font:inherit; font-size:11.5px; font-weight: var(--font-weight-medium); line-height:1; padding:4px 5px; cursor:pointer; }
.assistant-claim-change:hover,
.assistant-claim-change:focus-visible { background:var(--hover-2); outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.assistant-claim-picker-input { width:100%; height:30px; padding:0 9px; border:0; border-radius:var(--radius-control); background:var(--surface); box-shadow:var(--ring-light); font:inherit; font-size:12.5px; outline:0; }
.assistant-claim-picker-input:focus { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.assistant-claim-selected { display:flex; flex-direction:column; gap:2px; min-width:0; padding:7px 8px; border-radius:var(--radius); background:var(--surface); box-shadow:inset 0 0 0 1px var(--rule); font-size: var(--text-sm); color:var(--text-2); }
.assistant-claim-selected > div { display:flex; align-items:baseline; gap:6px; min-width:0; }
.assistant-claim-selected-id { flex-shrink:0; font-size:10.5px; color:var(--text-3); }
.assistant-claim-selected-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); font-weight: var(--font-weight-medium); }
.assistant-claim-selected-sub { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-3); font-size: var(--text-xs); }
.assistant-claim-options { display:flex; flex-direction:column; gap:2px; max-height:220px; overflow:auto; }
.assistant-claim-option { border:0; border-radius:var(--radius-control); background:transparent; color:var(--text-2); display:grid; grid-template-columns:auto 1fr; gap:1px 8px; padding:7px 8px; text-align:left; font:inherit; cursor:pointer; }
.assistant-claim-option:hover,
.assistant-claim-option:focus-visible,
.assistant-claim-option.selected { background:var(--hover-2); }
.assistant-claim-option:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.assistant-claim-option-id { font-size:10.5px; color:var(--text-3); grid-row:span 2; align-self:start; padding-top:1px; }
.assistant-claim-option-main { font-size:12.5px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.assistant-claim-option-sub { font-size: var(--text-xs); color:var(--text-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.assistant-claim-empty { padding:10px 8px; text-align:center; }

/* Conversation surface */
/* The dock-to-side-panel action floats top-right of the conversation pane —
   it is the conversation that docks, not the thread list. */
.conv { display:flex; flex-direction:column; flex:1; min-height:0; position:relative; }
.conv-header-action { position:absolute; top:var(--space-4); right:var(--space-5); z-index:6; }
/* The pane clips upward tooltips (overflow:hidden for the radius); this one
   opens downward instead — same look, no z-index escalation. */
.conv-header-action .widget-header-tooltip::after { bottom:auto; top:calc(100% + 7px); }
.conv-header-action .widget-header-tooltip::before {
  bottom:auto; top:calc(100% + 2px);
  border-top:5px solid transparent;
  border-bottom:5px solid var(--text);
}
.conv-context-bar {
  display:flex;
  align-items:center;
  gap:6px;
  row-gap:6px;
  min-width:0;
  padding:10px 14px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
  flex-wrap:wrap;
}
.composer-context-bar {
  align-items:flex-start;
  gap:8px;
  padding:0 0 4px;
  box-shadow:none;
}
.conv-context-items {
  display:flex;
  align-items:center;
  gap:6px;
  row-gap:6px;
  min-width:0;
  flex:1;
  flex-wrap:wrap;
}
.conv-context-pill { position:relative; display:inline-flex; align-items:center; gap:5px; padding:2px 9px; min-height:22px; max-width:240px; border-radius:var(--radius-pill); background:var(--surface-3); color:var(--text-2); font-size:11.5px; overflow:visible; white-space:nowrap; }
.conv-context-pill-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.conv-context-tooltip {
  position:fixed;
  z-index:10001;
  left:var(--conv-context-tooltip-left, 16px);
  top:var(--conv-context-tooltip-top, 16px);
  width:max-content;
  max-width:min(280px, calc(100vw - 32px));
  padding:5px 8px;
  border-radius:var(--radius);
  background:var(--text);
  color:var(--surface);
  box-shadow:var(--shadow-pop);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height:1.25;
  white-space:normal;
  pointer-events:none;
  transform:translate(-50%, calc(-100% - 1px));
}
.conv-context-tooltip.opens-down {
  transform:translate(-50%, 1px);
}
.conv-context-tooltip::before {
  content:"";
  position:absolute;
  z-index:10002;
  left:50%;
  bottom:-5px;
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:5px solid var(--text);
  pointer-events:none;
  transform:translateX(-50%);
}
.conv-context-tooltip.opens-down::before {
  top:-5px;
  bottom:auto;
  border-top:0;
  border-bottom:5px solid var(--text);
}
.composer-context-bar .conv-context-pill { max-width:190px; }
.composer-context-bar .conv-context-pill-knowledge { max-width:132px; }
.composer-context-bar .conv-context-pill-document { max-width:178px; }
.conv-context-pill-knowledge { background:#eef2ff; color:#4338ca; }
.conv-context-pill-document  { background:#fff7ed; color:#b45309; }
.conv-context-manage {
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:28px;
  padding:0 12px;
  margin-left:auto;
  border:0;
  border-radius:var(--radius-lg);
  background:#0f766e;
  color:#fff;
  font:inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  cursor:pointer;
  flex-shrink:0;
  box-shadow:0 1px 2px rgba(15, 118, 110, 0.18);
  transition:background 120ms ease;
}
.conv-context-manage:hover,
.conv-context-manage:focus-visible { background:#115e58; outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.composer-context-action {
  margin-left:0;
}
.conv-context-manage-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,0.22);
  color:#fff;
  font-size:10.5px;
  font-weight: var(--font-weight-bold);
  font-family:var(--font-mono);
}
.composer-context-action .conv-context-manage-count {
  background:var(--surface-3);
  color:var(--text-2);
}
.conv-scroll       { flex:1; overflow:auto; padding:14px; display:flex; flex-direction:column; gap:14px; }
.msg-system-marker {
  align-self:center;
  max-width:min(520px, 92%);
  padding:5px 10px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-align:center;
}
.assistant-scope-warning {
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  margin:0 46px 8px 8px;
  padding:7px 9px;
  border-radius:var(--radius);
  background:var(--warn-soft);
  color:var(--warn);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
  line-height:1.3;
}
.assistant-scope-warning svg {
  flex:0 0 auto;
}
.conv-empty        { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:60px 24px; text-align:center; color:var(--text-3); }
.conv-empty-mark   { width:36px; height:36px; border-radius:var(--radius-lg); background:var(--ink); color:var(--ink-fg); display:inline-flex; align-items:center; justify-content:center; font-weight: var(--font-weight-semibold); }
.conv-empty-title  { font-size:var(--type-title-sm); font-weight: var(--font-weight-semibold); color:var(--text); letter-spacing:-0.02em; }
.conv-empty-sub    { font-size:12.5px; color:var(--text-3); }
.conv-fresh        { padding:24px 16px; }
.conv-fresh-title  { font-size:var(--type-title-sm); font-weight: var(--font-weight-semibold); letter-spacing:-0.02em; margin-bottom:6px; }
.conv-fresh-sub    { font-size:12.5px; color:var(--text-3); margin-bottom:12px; }
.conv-fresh-prompt-rail {
  position:relative;
  max-width:100%;
  overflow:hidden;
  padding:2px 0;
  mask-image:linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 16px), transparent);
}
.conv-fresh-prompt-track {
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:max-content;
  animation:conv-fresh-prompt-scroll 22s linear infinite;
  will-change:transform;
}
.conv-fresh-prompt-set {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:max-content;
}
.conv-fresh-prompt-rail:hover .conv-fresh-prompt-track,
.conv-fresh-prompt-rail:focus-within .conv-fresh-prompt-track {
  animation-play-state:paused;
}
/* No-overflow mode: chips fit the rail, so no marquee and no edge fade. */
.conv-fresh-prompt-rail.static {
  mask-image:none;
}
.conv-fresh-prompt-rail.static .conv-fresh-prompt-track {
  animation:none;
  flex-wrap:wrap;
  min-width:0;
}
.conv-fresh-prompt-chip {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  max-width:240px;
  padding:0 10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text-2);
  box-shadow:var(--ring-light);
  font:inherit;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}
.conv-fresh-prompt-chip:hover,
.conv-fresh-prompt-chip:focus-visible {
  border-color:var(--quiet-control-hover-border);
  background:var(--quiet-control-hover-bg);
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
@keyframes conv-fresh-prompt-scroll {
  from { transform:translateX(0); }
  to { transform:translateX(calc(-50% - 6px)); }
}
@media (prefers-reduced-motion: reduce) {
  .conv-fresh-prompt-track {
    animation:none;
    flex-wrap:wrap;
    min-width:0;
  }
  /* The second prompt set only exists for the marquee loop; with the
     animation off it would render as a visible duplicate group. */
  .conv-fresh-prompt-set[aria-hidden="true"] {
    display:none;
  }
}

/* ============================================================
   Manage Context modal — redesigned single-column layout
   ============================================================ */

.assistant-context-modal-v2 {
  height:min(720px, calc(100vh - 56px));
}
.assistant-context-modal-v2 .modal-body {
  padding:0;
  overflow:hidden;
}
.assistant-context-shell {
  display:flex;
  flex-direction:column;
  height:100%;
}

/* Chip strip */
.assistant-context-strip {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:12px 16px;
  background:var(--surface-2);
  box-shadow:inset 0 -1px 0 var(--rule);
}
.assistant-context-strip-label {
  font-size: var(--text-xs);
  letter-spacing:0.01em;
  color:var(--text-3);
  font-weight: var(--font-weight-semibold);
  margin-right:4px;
}
.assistant-context-strip-empty {
  font-size: var(--text-sm);
  color:var(--text-3);
}
.assistant-context-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 6px 4px 10px;
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text);
  font-size: var(--text-sm);
  box-shadow:inset 0 0 0 1px var(--rule);
}
.assistant-context-chip-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:var(--radius-role-full);
  background:var(--text-3);
}
.assistant-context-chip-dot.kind-claim { background:#0f766e; }
.assistant-context-chip-dot.kind-document { background:#b45309; }
.assistant-context-chip-dot.kind-knowledge { background:#4338ca; }
.assistant-context-chip-detach {
  width:18px;
  height:18px;
  border:0;
  border-radius:var(--radius-role-full);
  background:transparent;
  color:var(--text-3);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:2px;
  cursor:pointer;
}
.assistant-context-chip-detach:hover { background:var(--surface-3); color:var(--critical); }
.assistant-context-chip-detach:disabled { opacity:0.5; cursor:not-allowed; }
.assistant-context-chip-lock {
  margin-left:2px;
  padding:1px 5px;
  border-radius:var(--radius-pill);
  background:var(--surface-3);
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
}

/* Toolbar (search + tabs) */
.assistant-context-toolbar {
  padding:12px 16px 8px;
  display:flex;
  flex-direction:column;
  gap:10px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.assistant-context-search-v2 {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:0 12px;
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule);
  color:var(--text-3);
}
.assistant-context-search-v2 input {
  flex:1;
  min-width:0;
  height:32px;
  border:0;
  background:transparent;
  outline:0;
  font:inherit;
  font-size: var(--text-body);
  color:var(--text);
}
.assistant-context-tabs {
  display:flex;
  gap:4px;
  overflow-x:auto;
  scrollbar-width:thin;
  padding-bottom:2px;
}
.assistant-context-tab {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:30px;
  padding:0 12px;
  border:0;
  border-radius:var(--radius-pill);
  background:transparent;
  color:var(--text-2);
  font:inherit;
  font-size:12.5px;
  font-weight:550;
  cursor:pointer;
}
.assistant-context-tab .count {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-family:var(--font-mono);
}
.assistant-context-tab:hover { background:var(--surface-2); color:var(--text); }
.assistant-context-tab.is-on { background:var(--text); color:#fff; }
.assistant-context-tab.is-on .count { color:rgba(255,255,255,0.7); }
.assistant-context-tab.is-reserved {
  box-shadow:inset 0 0 0 1px var(--rule-soft);
  color:var(--text-3);
}
.assistant-context-tab.is-blocked {
  color:color-mix(in srgb, var(--critical) 70%, var(--text-3));
}
.assistant-context-tab.is-blocked .count::after {
  content:" locked";
  font-family:var(--font-sans);
  font-size: var(--text-2xs);
  letter-spacing:0.01em;
}

/* List & sections */
.assistant-context-list {
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:0 12px 16px;
  background:var(--surface);
}
.assistant-context-section {
  position:relative;
  padding-bottom:6px;
}
.assistant-context-section-head {
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:var(--surface);
  padding:12px 4px 8px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}
.assistant-context-section-head h3 {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing:0.01em;
  color:var(--text-2);
  margin:0;
}
.assistant-context-section-head .count {
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size:11.5px;
}

/* Row */
.assistant-context-row {
  display:grid;
  grid-template-columns:28px minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  padding:9px 8px;
  border-radius:var(--radius-lg);
  min-height:46px;
  cursor:pointer;
  user-select:none;
}
.assistant-context-row:hover { background:var(--surface-2); }
.assistant-context-row.is-included {
  background:color-mix(in srgb, #0f766e 6%, transparent);
}
.assistant-context-row.is-included:hover {
  background:color-mix(in srgb, #0f766e 10%, transparent);
}
.assistant-context-row-icon {
  width:28px;
  height:28px;
  border-radius:var(--radius);
  background:var(--surface-2);
  color:var(--text-3);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:inset 0 0 0 1px var(--rule-soft);
}
.assistant-context-row-icon.kind-claim { background:#f0fdfa; color:#0f766e; }
.assistant-context-row-icon.kind-document { background:#fff7ed; color:#b45309; }
.assistant-context-row-icon.kind-knowledge { background:#eef2ff; color:#4338ca; }
.assistant-context-row-copy {
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:2px;
}
.assistant-context-row-title {
  font-size: var(--text-body);
  font-weight:550;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.assistant-context-row.is-included .assistant-context-row-title { color:#0f766e; }
.assistant-context-row-meta {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11.5px;
  color:var(--text-3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.assistant-context-document-mode {
  display:inline-flex;
  align-items:center;
  min-height:16px;
  padding:0 5px;
  border-radius:var(--radius-pill);
  background:#fff7ed;
  color:#9a3412;
  box-shadow:inset 0 0 0 1px color-mix(in srgb, #fed7aa 80%, transparent);
  font-family:var(--font-mono);
  font-size:10.5px;
  font-weight: var(--font-weight-semibold);
  flex:0 0 auto;
}
.assistant-context-reserved {
  display:grid;
  grid-template-columns:28px minmax(0, 1fr);
  gap:10px;
  align-items:start;
  margin:10px 4px 4px;
  padding:12px;
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  color:var(--text-2);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
  font-size:12.5px;
  line-height:1.4;
}
.assistant-context-reserved svg {
  margin-top:1px;
  color:var(--text-3);
}
.assistant-context-reserved strong,
.assistant-context-reserved span {
  display:block;
}
.assistant-context-reserved strong {
  color:var(--text);
  font-size: var(--text-body);
  margin-bottom:2px;
}
.assistant-context-reserved.is-blocked {
  background:color-mix(in srgb, var(--critical-soft) 72%, var(--surface));
  color:color-mix(in srgb, var(--critical) 68%, var(--text-2));
}
.assistant-context-reserved.is-blocked svg,
.assistant-context-reserved.is-blocked strong {
  color:var(--critical);
}
.assistant-context-footer {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  width:100%;
}

/* Toggle switch */
.assistant-context-toggle {
  --t-w:38px;
  --t-h:22px;
  --t-pad:2px;
  --t-knob:calc(var(--t-h) - var(--t-pad) * 2);
  position:relative;
  display:inline-flex;
  align-items:center;
  width:var(--t-w);
  height:var(--t-h);
  padding:0;
  border:0;
  border-radius:var(--radius-pill);
  background:var(--surface-3);
  box-shadow:inset 0 0 0 1px var(--rule);
  cursor:pointer;
  transition:background 160ms ease, box-shadow 160ms ease;
  flex:0 0 auto;
}
.assistant-context-choice {
  width:18px;
  height:18px;
  border-radius:var(--radius-role-full);
  background:var(--surface);
  box-shadow:inset 0 0 0 1px var(--rule);
}
.assistant-context-row:hover .assistant-context-choice {
  box-shadow:inset 0 0 0 1px var(--text-3);
}
.assistant-context-toggle::before {
  content:"";
  position:absolute;
  top:var(--t-pad);
  left:var(--t-pad);
  width:var(--t-knob);
  height:var(--t-knob);
  background:#fff;
  border-radius:var(--radius-role-full);
  box-shadow:0 1px 2px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04);
  transition:transform 180ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.assistant-context-toggle:hover {
  background:color-mix(in srgb, var(--text-4) 30%, var(--surface-3));
}
.assistant-context-toggle.is-on {
  background:#0f766e;
  box-shadow:inset 0 0 0 1px color-mix(in srgb, #0f766e 80%, transparent);
}
.assistant-context-toggle.is-on::before {
  transform:translateX(calc(var(--t-w) - var(--t-h)));
}
.assistant-context-toggle:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.assistant-context-toggle:disabled {
  opacity:0.55;
  cursor:not-allowed;
}

/* Error / loading slots */
.assistant-context-error-v2 {
  margin:0 16px 8px;
  padding:8px 10px;
  border-radius:var(--radius);
  background:var(--critical-soft);
  color:var(--critical);
  font-size: var(--text-sm);
}
.assistant-context-loading-v2 {
  margin:0 16px 8px;
  color:var(--text-3);
  font-size: var(--text-sm);
}

@media (max-width: 880px) {
  .assistant-context-modal-v2 { width:min(100%, calc(100vw - 24px)); }
}

/* Messages */
.msg { display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:start; }
.msg.msg-user {
  display:flex;
  justify-content:flex-end;
  text-align:left;
}
.msg-user-shell {
  display:inline-flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
  max-width:min(78%, 680px);
}
.msg-avatar { width:26px; height:26px; border-radius:var(--radius); background:var(--surface-3); display:inline-flex; align-items:center; justify-content:center; font-size: var(--text-xs); font-weight: var(--font-weight-semibold); color:var(--text-2); }
.msg.msg-assistant .msg-avatar { background:var(--ink); color:var(--ink-fg); }
.msg-bubble { display:flex; flex-direction:column; gap:6px; min-width:0; }
.msg.msg-user .msg-bubble {
  position:relative;
  max-width:100%;
  min-height:34px;
  padding:8px 32px 8px 10px;
  border-radius:var(--radius-container);
  background:var(--surface-2);
  color:var(--text);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
  font-size:13.5px;
  line-height:1.45;
}
.msg-bubble-text {
  min-width:0;
  overflow-wrap:anywhere;
}
.msg-context-wrap {
  position:absolute;
  right:7px;
  bottom:7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  margin-bottom:0;
  z-index:4;
}
.msg-context-wrap.is-open {
  z-index:1400;
}
.msg-context-trigger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:19px;
  height:19px;
  border-radius:var(--radius-square);
  border:1px solid var(--rule-soft);
  padding:0;
  background:color-mix(in srgb, var(--surface) 72%, transparent);
  color:var(--text-4);
  font:inherit;
  cursor:default;
}
.msg-context-trigger:hover,
.msg-context-trigger:focus-visible {
  color:var(--text-2);
  background:var(--surface);
  border-color:var(--rule);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.msg-context-popover-panel {
  pointer-events:none;
  position:fixed;
  z-index:10000;
  left:var(--msg-context-popover-left, 16px);
  top:var(--msg-context-popover-top, 16px);
  display:flex;
  flex-direction:column;
  width:var(--msg-context-popover-width, min(340px, calc(100vw - 32px)));
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--radius-role-none);
  background:var(--bg);
  color:var(--text);
  box-shadow:var(--shadow-pop);
  opacity:1;
  text-align:left;
  transform:translateY(0);
  visibility:visible;
}
.msg-context-popover-group {
  display:grid;
  grid-template-columns:96px minmax(0, 1fr);
  gap:10px;
  padding:8px 10px;
  border-top:1px solid var(--rule-soft);
}
.msg-context-popover-group:first-of-type {
  border-top:0;
}
.msg-context-popover-group-label {
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
  line-height:1.35;
}
.msg-context-popover-list {
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:4px;
}
.msg-context-popover-item {
  position:relative;
  min-width:0;
  padding-left:10px;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
}
.msg-context-popover-item::before {
  content:"";
  position:absolute;
  left:0;
  top:0.62em;
  width:4px;
  height:4px;
  border-radius:var(--radius-role-full);
  background:var(--text-4);
}
.msg-body  { font-size:13.5px; line-height:1.55; color:var(--text); min-width:0; }
.assistant-answer-card {
  display:flex;
  flex-direction:column;
  gap:10px;
  max-width:min(100%, 760px);
  padding:10px 12px;
  border-radius:var(--radius-lg);
  background:color-mix(in srgb, var(--info) 4%, var(--surface));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--info) 14%, var(--rule-soft));
  overflow-wrap:anywhere;
}
.assistant-answer-nav-chip {
  border:0;
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:0 7px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-2);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
  flex:0 0 auto;
  font-family:inherit;
  line-height:1;
}
button.assistant-answer-nav-chip {
  cursor:pointer;
}
button.assistant-answer-nav-chip:hover,
button.assistant-answer-nav-chip:focus-visible {
  background:var(--surface-3);
  color:var(--text);
}
.assistant-answer-main {
  min-width:0;
}
.assistant-answer-next-steps {
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:9px 10px;
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
}
.assistant-answer-section-label {
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:0;
  color:var(--text-3);
  font-weight: var(--font-weight-semibold);
}
.assistant-answer-next-steps ul {
  margin:0;
  padding-left:18px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.assistant-answer-nav {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.assistant-workspace-results {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:12px;
}
.assistant-workspace-result-group {
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
.assistant-workspace-result-group-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
}
.assistant-workspace-result-list {
  display:flex;
  flex-direction:column;
  gap:6px;
}
.assistant-workspace-result-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:8px;
  padding:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface);
}
.assistant-workspace-result-row.is-attach-required {
  border-color:color-mix(in srgb, var(--warn) 36%, var(--rule));
  background:color-mix(in srgb, var(--warn) 7%, var(--surface));
}
.assistant-workspace-result-main,
.assistant-workspace-result-facts,
.assistant-workspace-result-actions {
  min-width:0;
}
.assistant-workspace-result-claim {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  color:var(--text-3);
  font-size:11.5px;
}
.assistant-workspace-result-title {
  margin-top:3px;
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  overflow-wrap:anywhere;
}
.assistant-workspace-result-warning {
  margin-top:6px;
  color:var(--text-2);
  font-size: var(--text-sm);
}
.assistant-workspace-result-facts {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px 10px;
  margin:0;
}
.assistant-workspace-result-facts div {
  min-width:0;
}
.assistant-workspace-result-facts dt {
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-bold);
  letter-spacing:0;
}
.assistant-workspace-result-facts dd {
  margin:1px 0 0;
  color:var(--text-2);
  font-size: var(--text-sm);
  overflow-wrap:anywhere;
}
.assistant-workspace-result-actions {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.assistant-action-preview-section {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}
.assistant-action-preview-list {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.assistant-action-preview-card,
.assistant-action-preview-dismissed {
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface);
}
.assistant-action-preview-dismissed {
  color:var(--text-3);
  font-size: var(--text-sm);
}
.assistant-action-preview-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.assistant-action-preview-kicker {
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-bold);
  letter-spacing:0;
}
.assistant-action-preview-title {
  margin-top:2px;
  color:var(--text);
  font-size:13.5px;
  font-weight: var(--font-weight-bold);
  overflow-wrap:anywhere;
}
.assistant-action-preview-state {
  flex-shrink:0;
  padding:3px 7px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-full);
  background:var(--surface-2);
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-action-preview-state.needs_details {
  border-color:color-mix(in srgb, var(--warn) 36%, var(--rule));
  background:color-mix(in srgb, var(--warn) 9%, var(--surface));
}
.assistant-action-preview-description {
  color:var(--text-2);
  font-size:12.5px;
}
.assistant-action-preview-facts {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:7px 10px;
  margin:0;
}
.assistant-action-preview-facts div {
  min-width:0;
}
.assistant-action-preview-facts dt {
  color:var(--text-3);
  font-size:10.5px;
  font-weight: var(--font-weight-bold);
  letter-spacing:0;
}
.assistant-action-preview-facts dd {
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:1px 0 0;
  color:var(--text-2);
  font-size: var(--text-sm);
  overflow-wrap:anywhere;
}

.assistant-action-preview-confirmations {
  display:flex;
  flex-direction:column;
  gap:4px;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.assistant-action-preview-edit {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:7px;
  padding:8px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
}
.assistant-action-preview-edit label {
  display:grid;
  gap:3px;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-action-preview-edit input,
.assistant-action-preview-edit select {
  min-width:0;
  width:100%;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  padding:6px 7px;
  background:var(--surface);
  color:var(--text);
  font:inherit;
}
.assistant-action-preview-edit select {
  min-height:32px;
}
.assistant-date-field {
  position:relative;
  display:flex;
  align-items:center;
  gap:6px;
}
.assistant-date-field input[type="text"] {
  flex:1;
}
.assistant-date-field-native {
  position:absolute;
  right:36px;
  bottom:0;
  width:1px;
  height:1px;
  opacity:0;
  border:0;
  padding:0;
  pointer-events:none;
}
.assistant-action-preview-edit .assistant-date-field-button {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text-2);
  cursor:pointer;
}
.assistant-action-preview-edit .assistant-date-field-button:hover {
  color:var(--text);
  border-color:var(--rule-strong, var(--rule));
}
.assistant-action-proposal-detail {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:4px;
  padding:8px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-3);
  font-size:11.5px;
}
.assistant-action-proposal-success,
.assistant-action-proposal-saved {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  color:var(--success);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.assistant-action-proposal-success svg,
.assistant-action-proposal-saved svg {
  flex:0 0 auto;
}
.assistant-action-proposal-success-link {
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--success);
  font-weight: var(--font-weight-semibold);
  text-decoration:underline;
  text-underline-offset:2px;
}
.assistant-action-proposal-error {
  display:flex;
  align-items:flex-start;
  gap:6px;
  padding:6px 8px;
  border:1px solid color-mix(in srgb, var(--critical) 35%, var(--rule));
  border-radius:var(--radius-sm);
  background:var(--critical-soft);
  color:var(--critical);
  font-weight: var(--font-weight-semibold);
}
.assistant-action-proposal-error svg {
  flex:0 0 auto;
  margin-top:1px;
}
.assistant-action-preview-field-invalid input,
.assistant-action-preview-field-invalid select {
  border-color:color-mix(in srgb, var(--warn) 50%, var(--rule));
  background:color-mix(in srgb, var(--warn) 6%, var(--surface));
}
.assistant-action-preview-field-message {
  color:var(--warn);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-action-preview-date-display {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-action-preview-blocker {
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--warn);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
}
.assistant-action-preview-blocker svg {
  flex:0 0 auto;
}
.assistant-action-preview-actions {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.msg-rich { display:flex; flex-direction:column; gap:8px; }
.msg-rich .msg-p { margin:0; }
.msg-rich .msg-heading { margin:4px 0 0; line-height:1.25; font-weight: var(--font-weight-semibold); letter-spacing:0; color:var(--text); }
.msg-rich .msg-heading-1 { font-size:17px; }
.msg-rich .msg-heading-2 { font-size:15.5px; }
.msg-rich .msg-heading-3 { font-size: var(--text-md); }
.msg-rich .msg-heading-4 { font-size:13.5px; }
.msg-rich .msg-list { margin:0; padding-left:18px; display:flex; flex-direction:column; gap:3px; }
.msg-rich .msg-list li { padding-left:2px; }
.msg-rich .msg-rule { width:100%; border:0; border-top:1px solid var(--rule-soft); margin:2px 0; }
.msg-rich .msg-table-wrap { overflow-x:auto; border:1px solid var(--rule-soft); border-radius:var(--radius-lg); background:var(--surface); }
.msg-rich .msg-table { width:100%; border-collapse:collapse; min-width:360px; font-size:12.5px; }
.msg-rich .msg-table th,
.msg-rich .msg-table td { padding:7px 9px; border-bottom:1px solid var(--rule-soft); text-align:left; vertical-align:top; }
.msg-rich .msg-table th { background:var(--surface-2); color:var(--text); font-weight: var(--font-weight-semibold); }
.msg-rich .msg-table tr:last-child td { border-bottom:0; }

.msg-error-actions { display:flex; align-items:center; gap:6px; margin-top:8px; }
.assistant-retry-btn { gap:6px; }
.msg-citation-warning {
  margin-top:8px;
  padding:8px 10px;
  border:1px solid color-mix(in srgb, var(--warn) 34%, var(--rule));
  border-radius:var(--radius-lg);
  background:color-mix(in srgb, var(--warn) 9%, var(--surface));
  color:var(--text);
}
.msg-citation-warning-title {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1.25;
}
.msg-citation-warning-text {
  margin-top:3px;
  font-size: var(--text-sm);
  line-height:1.35;
  color:var(--text-2);
}

/* Assistant activity log (tool trace + sources summary) inside messages */
.assistant-working-label { font-variant-numeric:tabular-nums; }

.thinking-row { display:flex; align-items:center; gap:6px; padding:4px 0; font-size: var(--text-sm); color:var(--text-3); }
.thinking-dot { width:5px; height:5px; border-radius:var(--radius-role-full); background:var(--text-4); animation:thinking 1.4s infinite ease-in-out; }
.thinking-dot:nth-child(2) { animation-delay:0.2s; }
.thinking-dot:nth-child(3) { animation-delay:0.4s; }
@keyframes thinking { 0%, 100% { opacity:0.3; } 50% { opacity:1; } }

/* Composer */
.composer { box-shadow:inset 0 1px 0 var(--rule); padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
.composer-box {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:6px;
  border-radius:var(--assistant-composer-input-radius);
  background:var(--surface);
  box-shadow:var(--assistant-composer-shadow);
}
.composer-box > * {
  position:relative;
  z-index:1;
}
.composer-box:hover:not(:focus-within) {
  animation:composer-focus-pulse 900ms ease-out 1;
}
.composer-box:focus-within {
  box-shadow:var(--assistant-composer-focus-shadow);
}
.composer-box:has(.composer-input:focus),
.composer-box:has(.composer-context-action:focus-visible),
.composer-box:has(.composer-send:focus-visible) {
  box-shadow:var(--assistant-composer-focus-shadow);
}
.composer-row { position:static; display:flex; align-items:flex-end; gap:8px; }
.composer-input {
  flex:1; min-height:36px; max-height:200px;
  padding:8px 42px 8px 10px;
  background:transparent;
  box-shadow:none;
  border-radius:var(--radius-role-none);
  font-size: var(--text-body);
  resize:none; outline:0; border:0;
  appearance:none;
  font-family:inherit;
  line-height:1.5;
}
.composer-input:focus,
.composer-input:focus-visible {
  outline:0;
  box-shadow:none;
}
.composer-send {
  position:absolute;
  z-index:3;
  right:6px;
  bottom:6px;
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  border-radius:var(--radius-container);
  flex-shrink:0;
  overflow:hidden;
  pointer-events:auto;
}
.composer-send:not(:disabled):hover,
.composer-send:not(:disabled):focus-visible {
  background:#0f766e;
  color:#fff;
}
.composer-send:not(:disabled):hover {
  animation:composer-send-pulse 900ms ease-out 1;
}
.composer-send svg {
  position:relative;
  z-index:1;
}
.composer-box-footer {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:5px;
  min-height:26px;
  padding:0 42px 0 0;
  flex-wrap:wrap;
}

.assistant-quick-prompts {
  position:relative;
  display:inline-flex;
  align-items:center;
}
.assistant-quick-prompts-trigger {
  gap:5px;
  color:var(--text-3);
}
.assistant-quick-prompts-trigger:hover,
.assistant-quick-prompts-trigger:focus-visible {
  color:var(--text);
}
.assistant-quick-prompts-menu {
  top:auto;
  bottom:calc(100% + 8px);
  left:0;
  width:max-content;
  min-width:220px;
  max-width:min(300px, calc(100vw - 32px));
  z-index:1300;
}
.assistant-quick-prompt-item {
  width:100%;
  min-height:30px;
  display:grid;
  grid-template-columns:16px minmax(0, 1fr) auto;
  align-items:center;
  gap:7px;
  padding:6px 8px;
  border:0;
  border-radius:var(--radius);
  background:transparent;
  color:var(--text-2);
  font:inherit;
  font-size: var(--text-sm);
  line-height:1.25;
  text-align:left;
  white-space:nowrap;
  cursor:pointer;
}
.assistant-quick-prompt-item:hover,
.assistant-quick-prompt-item:focus-visible {
  background:var(--surface-2);
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.assistant-quick-prompt-item svg {
  color:var(--text-3);
}
.assistant-quick-prompt-item span:nth-child(2) {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.assistant-quick-prompt-item .mono {
  color:var(--text-4);
  font-size:10.5px;
}
.assistant-model-mode {
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text-3);
  font-size:11.5px;
  font-weight: var(--font-weight-medium);
  white-space:nowrap;
}
.assistant-model-mode .is-active {
  color:var(--text);
  font-weight: var(--font-weight-semibold);
}
.assistant-model-toggle {
  --toggle-w:32px;
  --toggle-h:18px;
}
.assistant-model-mode-hint {
  color:var(--text-4);
  font-size:10.5px;
  font-weight: var(--font-weight-regular);
}

@keyframes composer-focus-pulse {
  0% { box-shadow:var(--assistant-composer-shadow); }
  34% { box-shadow:var(--assistant-composer-hover-pulse-shadow); }
  58% { box-shadow:var(--assistant-composer-hover-pulse-shadow); }
  100% { box-shadow:var(--assistant-composer-shadow); }
}

@keyframes composer-send-pulse {
  0% { box-shadow:none; }
  34% { box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-selection) 54%, transparent); }
  58% { box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-selection) 54%, transparent); }
  100% { box-shadow:none; }
}

/* Source viewer */
.source-viewer { display:flex; flex-direction:column; flex:1; min-width:0; max-width:100%; min-height:0; overflow:hidden; }
.source-viewer-head { position:sticky; top:0; z-index:1; padding:12px 14px; box-shadow:inset 0 -1px 0 var(--rule); display:flex; align-items:flex-start; gap:10px; min-width:0; background:var(--surface); }
.source-viewer-title { font-size: var(--text-md); font-weight: var(--font-weight-semibold); letter-spacing:0; overflow-wrap:anywhere; }
.source-viewer-sub   { font-size: var(--text-sm); color:var(--text-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.source-viewer-meta  { display:flex; flex:1; min-width:0; flex-direction:column; gap:2px; font-size:11.5px; color:var(--text-3); }
.source-viewer-actions { display:flex; gap:4px; margin-left:auto; min-width:0; flex-shrink:0; flex-wrap:wrap; justify-content:flex-end; }
.source-viewer-body { flex:1; min-width:0; max-width:100%; overflow:auto; padding:14px; }
.source-viewer-empty { padding:60px 24px; text-align:center; color:var(--text-3); }
.assistant-source-kind-badge {
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-bottom:10px;
  padding:3px 8px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-full);
  background:var(--surface-2);
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-source-kind-badge.source-kind-internal {
  border-color:color-mix(in srgb, var(--warn) 42%, var(--rule));
  background:color-mix(in srgb, var(--warn) 10%, var(--surface));
  color:var(--text);
}
.assistant-source-kind-badge.source-kind-cac {
  border-color:color-mix(in srgb, var(--accent) 36%, var(--rule));
  background:color-mix(in srgb, var(--accent) 8%, var(--surface));
}
.assistant-source-card { display:flex; flex-direction:column; gap:12px; min-width:0; }
.assistant-source-card .src-doc-header { margin-bottom:0; }
.assistant-source-card .src-doc-meta { border:1px solid var(--rule); border-radius:var(--radius-sm); background:var(--surface-2); padding:10px 12px; }
.assistant-source-fact-card {
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
  padding:14px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface);
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.04);
}
.assistant-source-fact-card.source-kind-cac {
  border-color:color-mix(in srgb, var(--accent) 24%, var(--rule));
}
.assistant-source-fact-card.source-kind-internal {
  border-color:color-mix(in srgb, var(--warn) 28%, var(--rule));
}
.assistant-source-fact-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.assistant-source-fact-type {
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:3px 8px;
  border:1px solid color-mix(in srgb, var(--accent-selection) 28%, var(--rule));
  border-radius:var(--radius-role-full);
  background:color-mix(in srgb, var(--accent-selection) 8%, var(--surface));
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-source-fact-title {
  color:var(--text);
  font-size: var(--text-xl);
  font-weight: var(--font-weight-semibold);
  line-height:1.25;
  overflow-wrap:anywhere;
}
.assistant-source-fact-summary {
  max-width:72ch;
  color:var(--text-2);
  font-size: var(--text-body);
  line-height:1.45;
}
.assistant-source-context-strip {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:1px;
  overflow:hidden;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--rule);
}
.assistant-source-context-strip > div {
  min-width:0;
  padding:9px 10px;
  background:var(--surface-2);
}
.assistant-source-context-label {
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size:10.5px;
}
.assistant-source-context-value {
  margin-top:3px;
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.assistant-source-fact-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin:0;
}
.assistant-source-fact-row {
  min-width:0;
  padding:9px 10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
}
.assistant-source-fact-row dt {
  margin:0;
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size:10.5px;
}
.assistant-source-fact-row dd {
  margin:3px 0 0;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.assistant-cac-lane-badge {
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:3px 8px;
  border:1px solid color-mix(in srgb, var(--accent) 36%, var(--rule));
  border-radius:var(--radius-role-full);
  background:color-mix(in srgb, var(--accent) 8%, var(--surface));
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
.assistant-cac-lane-badge.lane-adopted {
  border-color:color-mix(in srgb, var(--ok) 38%, var(--rule));
  background:color-mix(in srgb, var(--ok) 8%, var(--surface));
}
.assistant-source-card-excerpt {
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface);
  padding:10px 12px;
  min-width:0;
}
.assistant-source-card-excerpt-label {
  font-family:var(--font-mono);
  font-size:10.5px;
  color:var(--text-3);
  margin-bottom:6px;
}
.assistant-source-card-excerpt .src-page-text { margin:0; max-height:320px; overflow:auto; }
.assistant-source-card-actions { display:flex; gap:6px; flex-wrap:wrap; }
.assistant-source-card-actions:empty { display:none; }
@media (max-width: 900px) {
  .assistant-source-context-strip,
  .assistant-source-fact-grid {
    grid-template-columns:minmax(0, 1fr);
  }
}
.assistant-source-anchor-state {
  margin-bottom:12px;
  padding:8px 10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-sm);
}
.assistant-source-anchor-state.has-anchor {
  color:var(--text-2);
  background:color-mix(in srgb, var(--ok) 8%, var(--surface));
  border-color:color-mix(in srgb, var(--ok) 34%, var(--rule));
}
.assistant-source-anchor-state.missing-anchor {
  background:color-mix(in srgb, var(--warn) 8%, var(--surface));
}
.source-pdf-panel {
  position:relative;
  min-height:520px;
  height:min(72vh, 820px);
  margin-bottom:16px;
  overflow:auto;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
}
.source-pdf-frame {
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:var(--surface);
}
.source-pdf-loading {
  display:grid;
  min-height:100%;
  place-items:center;
  padding:24px;
  color:var(--text-3);
  text-align:center;
}
.source-pdf-open {
  position:absolute;
  right:12px;
  bottom:12px;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}
.source-pdf-launch {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
}
.source-pdf-launch-title {
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}
.source-pdf-launch-sub {
  margin-top:2px;
  color:var(--text-3);
  font-size: var(--text-sm);
}
.assistant-source-pdf-modal-body {
  padding:0;
  min-height:0;
}
.assistant-source-pdf-modal-tools {
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-bottom:1px solid var(--rule);
  background:var(--surface);
}
.assistant-source-highlight-reader {
  flex:1;
  width:100%;
  max-width:100%;
  min-height:0;
  overflow:auto;
  background:#f8fafc;
}
.assistant-source-highlight-reader .pdf-anchor-viewer {
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
}
.assistant-source-highlight-reader .pdf-anchor-page {
  width:100%;
  min-width:0;
  max-width:100%;
}
.source-viewer-embedded-pdf .source-viewer-head {
  flex-wrap:wrap;
}
.source-viewer-embedded-pdf .source-viewer-body {
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:100%;
  min-height:0;
  overflow:hidden;
  padding:0;
}
.assistant-widget-pdf-tools {
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-bottom:1px solid var(--rule);
  background:var(--surface);
  overflow-x:auto;
}
.assistant-widget-pdf-reader {
  flex:1;
  width:100%;
  max-width:100%;
  min-height:0;
  overflow:auto;
  background:#f8fafc;
}
.assistant-widget-pdf-reader .pdf-anchor-viewer {
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
}
.assistant-widget-pdf-reader .pdf-anchor-page {
  width:100%;
  min-width:0;
  max-width:100%;
}
.assistant-source-highlight-reader .pdf-anchor-toolbar,
.assistant-widget-pdf-reader .pdf-anchor-toolbar {
  min-width:0;
}
.assistant-source-highlight-reader .pdf-anchor-layer,
.assistant-widget-pdf-reader .pdf-anchor-layer {
  width:100%;
  overflow:hidden;
}
.assistant-source-highlight-reader .pdf-anchor-canvas,
.assistant-widget-pdf-reader .pdf-anchor-canvas {
  width:100%;
  height:auto;
}
.assistant-source-highlight-reader .pdf-readable-text-layer,
.assistant-widget-pdf-reader .pdf-readable-text-layer,
.assistant-source-highlight-reader .pdf-readable-text-layer span,
.assistant-widget-pdf-reader .pdf-readable-text-layer span {
  overflow:hidden;
}
.assistant-widget-shell {
  position:relative;
  display:flex;
  flex:1;
  min-width:0;
  min-height:0;
}

.assistant-workspace-empty {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  flex:1;
  gap:8px;
  padding:28px;
  text-align:center;
  color:var(--text-3);
}
.assistant-workspace-empty-title {
  color:var(--text);
  font-size:16px;
  font-weight: var(--font-weight-semibold);
}
.assistant-workspace-empty-copy {
  max-width:240px;
  font-size:12.5px;
  line-height:1.45;
}
.assistant-rail-empty-prompts {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  width:100%;
  max-width:240px;
  margin-top:6px;
}
.assistant-rail-empty-prompt {
  padding:7px 12px;
  border:1px solid var(--rule);
  border-radius:var(--radius-control);
  background:var(--surface);
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.35;
  text-align:left;
  cursor:pointer;
  transition:background 120ms ease, border-color 120ms ease, color 120ms ease;
}
.assistant-rail-empty-prompt:hover,
.assistant-rail-empty-prompt:focus-visible {
  border-color:var(--border);
  background:var(--surface-2);
  color:var(--text);
}
.assistant-rail-widget {
  display:flex;
  flex-direction:column;
  flex:1;
  min-width:0;
  min-height:0;
}
.assistant-rail-widget-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px 10px 7px 14px;
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule);
}
.assistant-rail-widget-title {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing:0.01em;
}
.assistant-rail-widget-actions {
  display:flex;
  align-items:center;
  gap:4px;
  flex:none;
}
.assistant-rail-pin.is-pinned {
  color:var(--accent);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule);
}
.assistant-rail-widget-body {
  display:flex;
  flex-direction:column;
  flex:1;
  min-width:0;
  min-height:0;
  overflow:hidden;
}
.assistant-rail-widget-body .source-viewer,
.assistant-rail-widget-body .assistant-widget-shell {
  flex:1;
  min-width:0;
  min-height:0;
}
.assistant-timeline-widget {
  display:flex;
  flex-direction:column;
  flex:1;
  min-width:0;
  min-height:0;
}
.assistant-widget-head {
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:14px 42px 12px 16px;
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule);
}
.assistant-widget-head-main {
  display:flex;
  flex-direction:column;
  gap:9px;
  width:100%;
  min-width:0;
}
.assistant-widget-title {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
}
.assistant-widget-sub {
  margin-top:2px;
  color:var(--text-3);
  font-size: var(--text-xs);
}
.assistant-timeline-filters {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.assistant-timeline-filter {
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:24px;
  padding:0 7px;
  border-radius:var(--radius-pill);
  border:0;
  background:var(--surface-2);
  color:var(--text-3);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
  font:inherit;
  font-size:10.5px;
  cursor:pointer;
}
.assistant-timeline-filter:hover,
.assistant-timeline-filter:focus-visible {
  color:var(--text);
  background:var(--hover-2);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.assistant-timeline-filter.active {
  color:var(--text);
  background:var(--surface);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 22%, var(--rule)), 0 1px 5px rgba(15, 23, 42, 0.08);
}
.assistant-timeline-filter-dot {
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:var(--radius-pill);
  background:var(--text-4);
}
.assistant-timeline-filter.deadline .assistant-timeline-filter-dot { background:#b45309; }
.assistant-timeline-filter.record .assistant-timeline-filter-dot { background:#0f766e; }
.assistant-timeline-filter.review .assistant-timeline-filter-dot { background:#991b1b; }
.assistant-timeline-scrubber {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(14px, 1fr));
  align-items:center;
  gap:4px;
  padding:7px;
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
}
.assistant-timeline-scrubber-dot {
  height:8px;
  min-width:12px;
  border:0;
  border-radius:var(--radius-pill);
  background:#cbd5e1;
  cursor:pointer;
}
.assistant-timeline-scrubber-dot.record { background:#99f6e4; }
.assistant-timeline-scrubber-dot.deadline { background:#fcd34d; }
.assistant-timeline-scrubber-dot.review { background:#fecaca; }
.assistant-timeline-scrubber-dot.active {
  background:var(--ink);
  box-shadow:0 0 0 2px var(--surface), 0 0 0 4px color-mix(in srgb, var(--ink) 18%, transparent);
}
.assistant-timeline-list {
  flex:1;
  min-height:0;
  overflow:auto;
  padding:14px 16px 18px;
}
.assistant-timeline-item {
  display:grid;
  grid-template-columns:82px 22px minmax(0, 1fr);
  gap:0 8px;
  position:relative;
  min-width:0;
  cursor:pointer;
  outline:none;
}
.assistant-timeline-item + .assistant-timeline-item { margin-top:2px; }
.assistant-timeline-date {
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.35;
  padding-top:12px;
}
.assistant-timeline-date span {
  display:inline-flex;
  max-width:100%;
  padding:2px 0;
}
.assistant-timeline-rail {
  position:relative;
  display:flex;
  justify-content:center;
}
.assistant-timeline-rail::before {
  content:"";
  position:absolute;
  top:0;
  bottom:-2px;
  width:2px;
  border-radius:var(--radius-pill);
  background:#e5e7eb;
}
.assistant-timeline-item:first-child .assistant-timeline-rail::before { top:14px; }
.assistant-timeline-item:last-child .assistant-timeline-rail::before { bottom:calc(100% - 22px); }
.assistant-timeline-node {
  position:relative;
  z-index:1;
  width:12px;
  height:12px;
  margin-top:13px;
  border-radius:var(--radius-pill);
  background:var(--surface);
  border:2px solid #94a3b8;
  box-shadow:0 0 0 3px var(--surface);
}
.assistant-timeline-item.record .assistant-timeline-node { border-color:#0f766e; }
.assistant-timeline-item.deadline .assistant-timeline-node { border-color:#b45309; background:#fef3c7; }
.assistant-timeline-item.review .assistant-timeline-node { border-color:#991b1b; background:#fee2e2; }
.assistant-timeline-item.selected .assistant-timeline-node {
  background:var(--ink);
  border-color:var(--ink);
  box-shadow:0 0 0 3px var(--surface), 0 0 0 6px color-mix(in srgb, var(--ink) 12%, transparent);
}
.assistant-timeline-card {
  min-width:0;
  margin-bottom:10px;
  padding:10px 11px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  transition:border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}
.assistant-timeline-item:hover .assistant-timeline-card,
.assistant-timeline-item:focus-visible .assistant-timeline-card {
  border-color:color-mix(in srgb, var(--ink) 22%, var(--rule));
  box-shadow:0 1px 8px rgba(15, 23, 42, 0.06);
}
.assistant-timeline-item.selected .assistant-timeline-card {
  border-color:color-mix(in srgb, var(--ink) 35%, var(--rule));
  background:color-mix(in srgb, var(--surface) 90%, #ecfeff);
  box-shadow:0 1px 10px rgba(15, 23, 42, 0.08);
}
.assistant-timeline-item.risk .assistant-timeline-card {
  border-left:3px solid #d97706;
}
.assistant-timeline-item.review .assistant-timeline-card {
  border-left:3px solid #dc2626;
}
.assistant-timeline-card-head {
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:5px;
  min-width:0;
}
.assistant-timeline-badge {
  display:inline-flex;
  align-items:center;
  height:19px;
  padding:0 7px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-3);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
  font-size:10.5px;
  font-weight: var(--font-weight-semibold);
}
.assistant-timeline-badge.record {
  background:#ecfdf5;
  color:#0f766e;
}
.assistant-timeline-badge.deadline {
  background:#fffbeb;
  color:#92400e;
}
.assistant-timeline-badge.review {
  background:#fef2f2;
  color:#991b1b;
}
.assistant-timeline-source-count {
  min-width:0;
  color:var(--text-3);
  font-size:10.5px;
}
.assistant-timeline-text {
  min-width:0;
  color:var(--text);
  font-size:12.5px;
  line-height:1.45;
}
.assistant-timeline-sources {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:8px;
}
.assistant-timeline-source {
  border:0;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-2);
  box-shadow:inset 0 0 0 1px var(--rule);
  font:inherit;
  font-size: var(--text-xs);
  line-height:1.2;
  max-width:100%;
  padding:3px 7px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.assistant-timeline-source:hover,
.assistant-timeline-source:focus-visible {
  background:var(--hover-2);
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.assistant-widget-empty {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex:1;
  min-height:220px;
  color:var(--text-3);
  text-align:center;
  font-size:12.5px;
}

/* Inline structured skill widgets (deadline audit, draft letter, timeline) */
.assistant-inline-skill-widgets {
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:10px;
}
.assistant-skill-widget {
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
  padding:12px 14px;
}
.assistant-skill-widget.assistant-inline-timeline {
  padding:0;
  overflow:hidden;
}
.assistant-skill-widget-head {
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-bottom:10px;
}
.assistant-skill-widget-sub {
  font-size: var(--text-sm);
  color:var(--text-3);
}
.assistant-deadline-audit-table-wrap {
  overflow-x:auto;
}
.assistant-deadline-audit-table {
  width:100%;
  border-collapse:collapse;
  font-size:12.5px;
}
.assistant-deadline-audit-table th {
  text-align:left;
  font-weight: var(--font-weight-semibold);
  color:var(--text-3);
  font-size: var(--text-xs);
  letter-spacing:0.02em;
  padding:6px 10px;
  border-bottom:1px solid var(--rule);
  white-space:nowrap;
}
.assistant-deadline-audit-table td {
  padding:8px 10px;
  border-bottom:1px solid var(--rule);
  vertical-align:top;
}
.assistant-deadline-audit-table tr:last-child td {
  border-bottom:0;
}
.assistant-draft-letter-subject {
  font-size: var(--text-body);
  margin-bottom:8px;
}
.assistant-draft-letter-body {
  white-space:pre-wrap;
  font-size: var(--text-body);
  line-height:1.5;
  color:var(--text);
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  padding:10px 12px;
}
.assistant-skill-widget-note {
  margin-top:8px;
  font-size:11.5px;
  color:var(--text-3);
  font-style:italic;
}
.assistant-skill-widget-sources {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:8px;
}
.assistant-skill-widget-source {
  border:0;
  border-radius:var(--radius-pill);
  background:var(--surface);
  color:var(--text-2);
  box-shadow:inset 0 0 0 1px var(--rule);
  font:inherit;
  font-size: var(--text-xs);
  line-height:1.2;
  max-width:100%;
  padding:3px 7px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.assistant-skill-widget-source:hover,
.assistant-skill-widget-source:focus-visible {
  background:var(--hover-2);
  color:var(--text);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

.src-doc-header { padding:10px 12px; background:var(--surface-2); border-radius:var(--radius); margin-bottom:12px; }
.src-doc-meta   { display:grid; grid-template-columns:100px 1fr; gap:4px 8px; font-size: var(--text-sm); }
.src-doc-meta-k { color:var(--text-3); font-family:var(--font-mono); font-size: var(--text-xs); }
.src-doc-meta-v { color:var(--text); }
.src-page       { margin-bottom:18px; }
.src-page-num   { font-family:var(--font-mono); font-size:10.5px;color:var(--text-3); margin-bottom:4px; }
.src-page-text  { font-size: var(--text-body); line-height:1.65; color:var(--text); white-space:pre-wrap; }
.src-highlight  { background:#FEF6DD; padding:0 2px; border-radius:var(--radius-xs); }
.pdf-anchor-viewer { display:flex; flex-direction:column; gap:8px; min-width:max-content; min-height:0; }
.pdf-anchor-toolbar {
  position:sticky;
  z-index:3;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:100%;
  padding:8px 10px;
  border-bottom:1px solid var(--rule);
  background:var(--surface-2);
}
.pdf-anchor-toolbar-pages {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.pdf-anchor-page-nav {
  border:1px solid var(--rule);
  background:var(--surface);
  color:var(--text-2);
  border-radius:var(--radius-sm);
  padding:3px 8px;
  font-family:var(--font-mono);
  font-size:10.5px;
  line-height:1.3;
  cursor:pointer;
}
.pdf-anchor-page-nav:hover,
.pdf-anchor-page-nav:focus-visible {
  background:var(--surface-2);
  color:var(--text);
}
.inbox-pdf-embed-shell .pdf-anchor-page-label {
  display:none;
}
.pdf-anchor-pages {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:18px;
  width:100%;
  box-sizing:border-box;
  overflow:auto;
  min-height:320px;
  max-height:62vh;
  padding:18px;
  background:#f8fafc;
}
.pdf-anchor-page {
  position:relative;
  width:max-content;
  min-width:100%;
  margin:0 auto;
  background:white;
  box-shadow:0 1px 3px rgba(15, 23, 42, 0.14);
}
.pdf-anchor-page-label {
  position:absolute;
  z-index:2;
  top:8px;
  right:8px;
  padding:3px 6px;
  border-radius:var(--radius-sm);
  background:rgba(15, 23, 42, 0.72);
  color:white;
  font-family:var(--font-mono);
  font-size:10.5px;
  pointer-events:none;
}
.pdf-anchor-layer { position:relative; width:max-content; }
.pdf-anchor-canvas {
  display:block;
  width:auto;
  max-width:none;
  height:auto;
  background:white;
  filter:contrast(1.1) brightness(0.98);
}
.pdf-readable-text-layer {
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.pdf-readable-text-layer span {
  position:absolute;
  overflow:visible;
  color:transparent;
  font-family:Arial, Helvetica, sans-serif;
  font-weight: var(--font-weight-semibold);
  line-height:1;
  white-space:pre;
  text-shadow:none;
}
.pdf-margin-marker {
  position:absolute;
  left:1.4%;
  width:0;
  background:transparent;
  border-left:6px solid var(--attention-source);
  border-radius:var(--radius-role-sm);
  pointer-events:none;
  z-index:3;
  box-shadow:0 0 0 1px rgba(var(--attention-source-rgb), 0.22), 0 2px 8px rgba(15, 23, 42, 0.18);
  animation:pdf-margin-marker-pulse 1500ms ease-out both;
}
.pdf-page-focus-sweep {
  position:absolute;
  inset:8px;
  z-index:3;
  overflow:hidden;
  background:transparent;
  border:2px solid rgba(var(--attention-source-rgb), 0.24);
  border-radius:var(--radius-role-md);
  box-shadow:0 0 0 1px rgba(var(--attention-source-rgb), 0.12), 0 0 18px rgba(var(--attention-source-rgb), 0.18);
  opacity:0;
  pointer-events:none;
  animation:pdf-page-focus-shell 1800ms ease-out both;
}
.pdf-page-focus-sweep::before,
.pdf-page-focus-sweep::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
}
.pdf-page-focus-sweep::before {
  border:2px solid rgba(var(--attention-source-rgb), 0.48);
  opacity:0;
  animation:pdf-page-focus-ring 1800ms ease-out both;
}
.pdf-page-focus-sweep::after {
  inset:-2px;
  background-image:linear-gradient(90deg, rgba(var(--attention-source-rgb), 0.1), rgba(var(--attention-source-rgb), 0.96)),
    linear-gradient(180deg, rgba(var(--attention-source-rgb), 0.1), rgba(var(--attention-source-rgb), 0.96)),
    linear-gradient(270deg, rgba(var(--attention-source-rgb), 0.1), rgba(var(--attention-source-rgb), 0.96)),
    linear-gradient(0deg, rgba(var(--attention-source-rgb), 0.1), rgba(var(--attention-source-rgb), 0.96));
  background-position:top left, top right, bottom right, bottom left;
  background-repeat:no-repeat;
  background-size:0% 3px, 3px 0%, 0% 3px, 3px 0%;
  opacity:0;
  animation:pdf-page-focus-edge-draw 1800ms ease-out both;
}
@keyframes pdf-margin-marker-pulse {
  0% {
    filter:brightness(1);
    box-shadow:0 0 0 0 rgba(var(--attention-source-rgb), 0.4), 0 2px 8px rgba(15, 23, 42, 0.18);
    transform:scaleX(1);
  }
  18% {
    filter:brightness(1.28);
    box-shadow:0 0 0 5px rgba(var(--attention-source-rgb), 0.22), 0 0 16px rgba(var(--attention-source-rgb), 0.42);
    transform:scaleX(1.7);
  }
  100% {
    filter:brightness(1);
    box-shadow:0 0 0 1px rgba(var(--attention-source-rgb), 0.22), 0 2px 8px rgba(15, 23, 42, 0.18);
    transform:scaleX(1);
  }
}
@keyframes pdf-page-focus-shell {
  0% {
    opacity:0;
  }
  10% {
    opacity:1;
  }
  72% {
    opacity:1;
  }
  100% {
    opacity:0;
  }
}
@keyframes pdf-page-focus-edge-draw {
  0% {
    opacity:0;
    background-size:0% 3px, 3px 0%, 0% 3px, 3px 0%;
  }
  12% {
    opacity:1;
  }
  30% {
    background-size:100% 3px, 3px 0%, 0% 3px, 3px 0%;
  }
  52% {
    background-size:100% 3px, 3px 100%, 0% 3px, 3px 0%;
  }
  74% {
    opacity:1;
    background-size:100% 3px, 3px 100%, 100% 3px, 3px 0%;
  }
  100% {
    opacity:0;
    background-size:100% 3px, 3px 100%, 100% 3px, 3px 100%;
  }
}
@keyframes pdf-page-focus-ring {
  0% {
    opacity:0;
    box-shadow:0 0 0 0 rgba(var(--attention-source-rgb), 0.24);
  }
  20% {
    opacity:0.72;
  }
  100% {
    opacity:0;
    box-shadow:0 0 0 8px rgba(var(--attention-source-rgb), 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pdf-page-focus-sweep::after {
    animation:none;
  }
  .pdf-page-focus-sweep::before {
    animation-duration:700ms;
  }
  .pdf-margin-marker {
    animation-duration:700ms;
  }
}


.pdf-document-viewer {
  flex:1;
  min-height:0;
  overflow:auto;
  display:grid;
  justify-items:center;
  gap:18px;
  padding:18px;
  background:#f8fafc;
}



.review-source-open { margin-top:6px; width:fit-content; }

/* ============================================================
 * 25. NOTES / TEMPLATES / DOC PAGE — light treatment
 * ============================================================ */
.note-actions { display:flex; gap:6px; margin-top:8px; }
.note-body    { font-size: var(--text-body); line-height:1.55; color:var(--text-2); }
.note-body p,
.note-body ul,
.note-body ol,
.note-body blockquote {
  margin:0 0 10px;
}
.note-body p:last-child,
.note-body ul:last-child,
.note-body ol:last-child,
.note-body blockquote:last-child {
  margin-bottom:0;
}
.note-body ul,
.note-body ol {
  padding-left:18px;
}
.note-body blockquote {
  border-left:2px solid var(--border-firm);
  padding-left:10px;
  color:var(--text-3);
}
.note-body code {
  background:var(--surface-3);
  padding:1px 4px;
  border-radius:var(--radius-role-sm);
  font-size:0.92em;
}
.note-mention {
  background:#E6E2D8;
  color:#5A5044;
  padding:1px 5px;
  border-radius:var(--radius-role-sm);
  font-weight: var(--font-weight-medium);
}
.markdown-editor {
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface);
  overflow:hidden;
}
.markdown-editor-toolbar {
  display:flex;
  align-items:center;
  gap:4px;
  padding:6px;
  border-bottom:1px solid var(--rule-soft);
  background:var(--surface-2);
}
.markdown-editor-tool {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:26px;
  padding:0 7px;
  border:1px solid transparent;
  border-radius:var(--radius-control);
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height:1;
}
.markdown-editor-tool:hover,
.markdown-editor-tool:focus-visible {
  border-color:var(--border-firm);
  background:var(--surface);
  color:var(--text);
}
.notes-toolbar-bold {
  font-weight:800;
}
.notes-toolbar-italic {
  font-style:italic;
}
.markdown-editor-surface {
  display:block;
  min-height:150px;
  padding:12px 14px;
  color:var(--text);
  font-size: var(--text-body);
  line-height:1.6;
  outline:none;
  background:var(--surface);
  cursor:text;
}
.modal .markdown-editor-surface,
.drawer .markdown-editor-surface {
  min-height:180px;
}
.markdown-editor-surface:empty::before {
  content:attr(data-placeholder);
  color:var(--text-3);
  pointer-events:none;
}
.markdown-editor-surface p,
.markdown-editor-surface ul,
.markdown-editor-surface ol,
.markdown-editor-surface blockquote {
  margin:0 0 10px;
}
.markdown-editor-surface ul,
.markdown-editor-surface ol {
  padding-left:18px;
}
.markdown-editor-surface blockquote {
  border-left:2px solid var(--border-firm);
  padding-left:10px;
  color:var(--text-3);
}
.markdown-editor-surface code {
  background:var(--surface-3);
  padding:1px 4px;
  border-radius:var(--radius-role-sm);
}
.directory-link-modal {
  display:grid;
  gap:14px;
}
.directory-link-layout {
  display:grid;
  grid-template-columns:minmax(240px, 1fr) minmax(260px, 0.9fr);
  gap:14px;
  min-height:340px;
}
.directory-link-results {
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:auto;
  background:var(--surface);
}
.directory-link-result {
  width:100%;
  display:grid;
  gap:3px;
  padding:11px 12px;
  border-bottom:1px solid var(--rule-soft);
  text-align:left;
  color:var(--text);
}
.directory-link-result:hover,
.directory-link-result.active {
  background:var(--surface-2);
}
.directory-link-result.active {
  box-shadow:inset 3px 0 0 var(--accent);
}
.directory-link-form {
  display:grid;
  align-content:start;
  gap:12px;
}
.directory-link-preview {
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
}
@media (max-width: 760px) {
  .directory-link-layout {
    grid-template-columns:1fr;
  }
}
.docgen-validation {
  display:grid;
  gap:8px;
  margin:10px 0 0;
}
.docgen-validation-block {
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-radius:var(--radius);
  border:1px solid var(--rule);
  background:var(--surface-2);
}
.docgen-validation-block.critical { border-color:var(--critical); background:var(--critical-soft); color:var(--critical); }
.docgen-validation-block.warn { border-color:var(--warn); background:var(--warn-soft); color:var(--warn); }
.docgen-validation-title { display:flex; align-items:center; gap:6px; font-weight: var(--font-weight-semibold); font-size:12.5px; color:var(--text); }
.docgen-editor-grid { display:grid; grid-template-columns:380px 1fr; gap:0; height:calc(100vh - 160px); min-height:600px; margin-left:-var(--space-8); margin-right:-var(--space-8); margin-bottom:-var(--space-8); }
.docgen-editor-grid {
  min-height:0 !important;
  grid-template-rows:minmax(0, 1fr);
}
.docgen-merge-panel {
  border-right:1px solid var(--border); overflow:auto; padding:var(--space-6) var(--space-7); background:var(--surface-2);
  height:100%;
  min-height:0;
  scrollbar-width:thin;
  scrollbar-color:var(--border) transparent;
}
.docgen-merge-panel::-webkit-scrollbar {
  width:6px;
}
.docgen-merge-panel::-webkit-scrollbar-track {
  background:transparent;
}
.docgen-merge-panel::-webkit-scrollbar-thumb {
  background:var(--border);
  border-radius:var(--radius-role-sm);
}
.docgen-merge-panel::-webkit-scrollbar-thumb:hover {
  background:var(--border-firm);
}
.docgen-field-required-label::after {
  content:' *';
  color:var(--critical);
  font-weight: var(--font-weight-bold);
}
.docgen-field-required-input {
  box-shadow:0 0 0 1px var(--critical) !important;
  background:var(--critical-soft) !important;
}
.docgen-validation-link {
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
  color:inherit;
  background:none;
  border:none;
  padding:0;
  font:inherit;
  display:inline;
}
.docgen-validation-link:hover {
  opacity:0.75;
}

.notifications-tray {
  position:fixed;
  top:58px;
  right:18px;
  width:min(430px, calc(100vw - 36px));
  max-height:calc(100vh - 84px);
  display:flex;
  flex-direction:column;
  background:var(--bg);
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-pop);
  z-index:var(--z-notifications);
}
.notifications-tray-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  min-height:50px;
  padding:10px 12px;
  box-shadow:inset 0 -1px 0 var(--rule);
  overflow:visible;
}
.notifications-tray-head .card-head-title {
  min-width:0;
  white-space:nowrap;
}
.notifications-tray-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  min-width:0;
}
.notifications-tray-actions .btn {
  flex:0 0 auto;
  min-height:28px;
  white-space:nowrap;
}
.notifications-filter-strip {
  display:flex;
  align-items:center;
  flex:0 0 auto;
  gap:4px;
  min-height:44px;
  padding:8px 10px 10px;
  overflow-x:auto;
  overflow-y:hidden;
  border-bottom:1px solid var(--rule-soft);
  box-shadow:none;
  scrollbar-width:none;
}
.notifications-filter-strip::-webkit-scrollbar {
  display:none;
}
.notifications-filter-strip .filter-pill {
  flex:0 0 auto;
  box-sizing:border-box;
  height:28px;
  padding:0 9px;
  border:1px solid transparent;
  line-height:1;
  box-shadow:var(--ring-light);
  white-space:nowrap;
}
.notifications-filter-strip .filter-pill.active {
  border-color:var(--text);
  box-shadow:none;
  color:var(--text);
}
.notifications-filter-strip.wide {
  padding:0;
  box-shadow:none;
  flex-wrap:wrap;
  scrollbar-width:auto;
}
.notifications-filter-strip.wide::-webkit-scrollbar {
  display:initial;
}
.notifications-filter-strip.wide .filter-pill {
  height:26px;
  padding:3px 10px;
}
.notifications-tray-body {
  display:grid;
  gap:8px;
  padding:12px;
  overflow:auto;
}
.notifications-state {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface-2);
  color:var(--text-2);
}
.notifications-state.error {
  background:var(--critical-soft);
  color:var(--critical);
}
.notifications-state-title { font-weight: var(--font-weight-semibold); color:var(--text); margin-bottom:2px; }
.notification-bell-button {
  position:relative;
  width:var(--topnav-bell-size);
  min-width:var(--topnav-bell-size);
  height:var(--topnav-bell-size);
  min-height:var(--topnav-bell-size);
}
/* Authored Bell glyph 16x16, centred in the 22px frame -> (3,3). */
.notification-bell-button svg {
  width:var(--topnav-bell-icon-size);
  height:var(--topnav-bell-icon-size);
}
/* Positioning anchor so the unread pill offsets are bell-frame-relative,
   exactly as authored (221:30). */
.notification-bell-anchor {
  position:relative;
  display:inline-flex;
  flex:0 0 auto;
}
/* Practical pointer target around the authored 22px visual frame. The
   extension stays clear of the adjacent user trigger (8px cluster gap) and
   reaches up over the cluster-anchored unread badge so badge-area clicks
   activate Notifications. */
.notification-bell-button::before {
  content:'';
  position:absolute;
  inset:calc(-1 * var(--topnav-bell-hit-inset));
  top:calc(-1 * var(--topnav-bell-hit-top));
}
.notification-bell-badge {
  position:absolute;
  pointer-events:none;
  /* Authored pill (221:30): 14x14 at top -3 / left 10 from the bell frame,
     radius/full, red/500, text 8/500 white. The product white ring was
     removed to match the authored treatment (Codex ledger verdict). */
  top:var(--topnav-badge-top);
  left:var(--topnav-badge-left);
  min-width:var(--topnav-badge-size);
  height:var(--topnav-badge-size);
  margin:0;
  padding:0 var(--topnav-badge-pad-x);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-role-full);
  background:var(--topnav-badge-bg);
  color:white;
  font-size:8px;
  font-weight: var(--font-weight-medium);
  line-height:1;
  z-index:1;
}
.notifications-item {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:8px;
  align-items:flex-start;
  padding:10px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
}
.notifications-item.center {
  padding:12px;
}
.notifications-item.unread {
  border-color:color-mix(in srgb, var(--accent) 42%, var(--rule));
  background:color-mix(in srgb, var(--accent) 7%, var(--surface));
}
.notifications-item-main {
  appearance:none;
  border:0;
  background:none;
  padding:0;
  margin:0;
  display:grid;
  gap:3px;
  min-width:0;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.notifications-item-main:hover .notifications-item-title {
  text-decoration:underline;
  text-underline-offset:2px;
}
.notifications-item-kicker {
  display:flex;
  flex-wrap:wrap;
  gap:4px 7px;
  color:var(--text-3);
  font-size: var(--text-xs);
}
.notifications-item-kicker span {
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.notifications-item-kicker span + span::before {
  content:"•";
  color:var(--text-4);
}
.notifications-item-title { font-size: var(--text-body); font-weight: var(--font-weight-semibold); color:var(--text); }
.notifications-item-controls {
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
}
.notifications-read-toggle {
  position:relative;
  align-self:start;
  width:28px;
  min-width:28px;
  min-height:24px;
  height:24px;
  padding:0;
  justify-content:center;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-3);
  box-shadow:none;
}
.notifications-read-toggle:hover {
  background:var(--hover);
}
.notifications-item.unread .notifications-read-toggle {
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
  color:var(--accent);
}
.notifications-item.unread .notifications-read-toggle:hover {
  background:color-mix(in srgb, var(--accent) 16%, var(--surface));
}
.notifications-read-toggle::after {
  content:attr(data-tooltip);
  position:absolute;
  z-index:20;
  top:50%;
  right:calc(100% + 8px);
  max-width:160px;
  padding:5px 8px;
  border-radius:var(--radius-role-md);
  background:var(--text);
  color:var(--surface);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height:1.2;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translate(4px, -50%);
  transition:opacity 120ms ease, transform 120ms ease;
}
.notifications-read-toggle:hover::after,
.notifications-read-toggle:focus-visible::after {
  opacity:1;
  transform:translate(0, -50%);
}
.notifications-center {
  /* IW35 extension: the Notifications page had no page frame at all (content
     flush to the nav and the right edge, raw 14 gap) — same frame recipe as
     .app-page-body > .reports-grid */
  display:grid;
  align-content:start;
  /* toolbar → filter strip → table: strip → first widget, the page token */
  gap:var(--page-gutter-top);
  padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  flex:1;
  min-height:0;
  overflow:auto;
}
.notifications-center-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.notifications-center-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex:0 0 auto;
}
.notifications-center .filter-search {
  min-width:min(420px, 100%);
  flex:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 10px;
  min-height:34px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
}
.notifications-center .filter-search input {
  border:0;
  outline:0;
  background:transparent;
  width:100%;
  min-width:0;
  color:var(--text);
}
.notifications-list {
  display:grid;
  gap:8px;
}
.alert-rules-drawer {
  display:grid;
  gap:14px;
}
.alert-rules-toolbar {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
  align-items:start;
}
.alert-rules-toolbar .filter-search {
  min-height:34px;
}
.alert-rules-create {
  white-space:nowrap;
}
.alert-rules-filters {
  grid-column:1 / -1;
  min-height:0;
  padding:0;
  border-bottom:0;
  flex-wrap:wrap;
  overflow:visible;
}
.alert-rule-editor {
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--ring-light);
}
.alert-rule-editor-header,
.alert-rule-editor-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.alert-rule-editor-title {
  font-weight: var(--font-weight-bold);
  color:var(--text);
}
.alert-rule-editor-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.alert-rule-enabled-toggle {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  color:var(--text);
}
.alert-rule-enabled-toggle input {
  width:16px;
  height:16px;
}
.alert-rule-test-panel {
  display:grid;
  gap:12px;
  padding:12px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface-2);
}
.alert-rule-test-header,
.alert-rule-preview-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.alert-rule-preview-panel {
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
}
.alert-rule-preview-panel.matched {
  border-color:color-mix(in srgb, var(--success) 35%, var(--rule));
}
.alert-rule-preview-title {
  display:flex;
  align-items:center;
  gap:7px;
  font-weight: var(--font-weight-bold);
  color:var(--text);
}
.alert-rule-source-link {
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:fit-content;
  color:var(--accent);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  text-decoration:none;
}
.alert-rule-trace-list {
  display:grid;
  gap:6px;
}
.alert-rule-trace-row {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:start;
  gap:8px;
  padding:8px;
  border-radius:var(--radius);
  background:var(--surface-2);
}
.alert-rule-trace-row[data-pass="true"] {
  color:var(--success);
}
.alert-rule-trace-row[data-pass="false"] {
  color:var(--danger);
}
.alert-rule-trace-title {
  color:var(--text);
  font-weight: var(--font-weight-semibold);
}
.alert-rules-message {
  padding-left:2px;
}
.alert-rules-list {
  display:grid;
  gap:8px;
}
.alert-rule-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px;
  border-bottom:1px solid var(--rule-soft);
}
.alert-rule-row:last-child {
  border-bottom:0;
}
.alert-rule-main {
  display:grid;
  gap:5px;
  min-width:0;
}
.alert-rule-title-row,
.alert-rule-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 8px;
  min-width:0;
}
.alert-rule-title {
  font-weight: var(--font-weight-semibold);
  color:var(--text);
}
.alert-rule-status {
  min-width:34px;
  padding:2px 7px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-align:center;
}
.alert-rule-status[data-enabled="true"] {
  background:var(--success-soft);
  color:var(--success);
}
.alert-rule-meta {
  color:var(--text-3);
  font-size: var(--text-sm);
}
.alert-rule-meta span + span::before {
  content:"•";
  margin-right:8px;
  color:var(--text-4);
}
.alert-rule-actions {
  display:flex;
  align-items:center;
  gap:4px;
  justify-content:flex-end;
  min-width:190px;
}


@media (max-width: 760px) {
  .notifications-center-toolbar {
    align-items:stretch;
    flex-direction:column;
  }
  .notifications-center-actions {
    justify-content:space-between;
  }
  .alert-rules-toolbar,
  .alert-rule-editor-grid {
    grid-template-columns:minmax(0, 1fr);
  }
  .alert-rule-row {
    grid-template-columns:minmax(0, 1fr);
  }
  .alert-rule-actions {
    justify-content:flex-start;
    min-width:0;
    flex-wrap:wrap;
  }
}
.admin-rule-chip {
  margin-left:8px;
}

.template-card {
  padding:14px;
  box-shadow:var(--ring-light);
  border-radius:var(--radius-lg);
  background:var(--surface);
  cursor:pointer;
  display:flex; flex-direction:column; gap:6px;
}
.template-card:hover { background:var(--hover); }

.doc-page {
  background:var(--surface);
  box-shadow:var(--ring-light);
  border-radius:var(--radius);
  padding:24px;
  font-size: var(--text-body);
  line-height:1.55;
}
.document-pdf-frame {
  width:100%;
  min-height:520px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
}
.hub-pdf-viewer {
  position:relative;
  width:100%;
  box-sizing:border-box;
  min-height:520px;
  max-height:calc(100vh - 240px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:16px;
  padding:16px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:#f8fafc;
}







/* ============================================================
 * 26. EMPTY STATES
 * ============================================================ */
.empty-state {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px;
  padding:60px 24px;
  text-align:center;
  color:var(--text-3);
}
.empty-state-title { font-size: var(--text-xl); font-weight: var(--font-weight-semibold); color:var(--text-3); letter-spacing:0; }
.empty-state-sub   { font-size: var(--text-body); color:var(--text-3); }
.empty-state-compact { padding:24px 18px; }
.widget-empty-state {
  min-height:0;
  padding:18px 16px;
}
.widget-empty-state .empty-state-title {
  font-size:13.5px;
  font-weight: var(--font-weight-medium);
  color:var(--text-3);
}
.widget-empty-state .empty-state-sub {
  font-size:12.5px;
  color:var(--text-3);
}
.table-empty-cell .widget-empty-state {
  margin:0;
}

.table-shell-contained .table-wrap {
  overflow:auto;
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--shadow-card);
}






.overview-dashboard {
  display:grid;
  gap:var(--work-widget-row-gap);
}
.cac-import-success-summary {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:36px minmax(0, 1fr) max-content;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #CFEFDB;
  border-radius:var(--radius-lg);
  background:#F1FAF4;
}
.cac-import-success-mark {
  width:32px;
  height:32px;
  border-radius:var(--radius-lg);
  display:grid;
  place-items:center;
  color:#1A7D3A;
  background:#DFF5E7;
}
.cac-import-success-copy {
  display:grid;
  gap:2px;
  min-width:0;
}
.cac-import-success-copy strong {
  font-size:16px;
}
.cac-import-success-copy span {
  color:var(--text-2);
  overflow-wrap:anywhere;
}
.cac-import-success-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.cac-sync-feedback-summary {
  margin:12px 16px 0;
}
.cac-sync-feedback-lines {
  margin:8px 0 0;
  padding-left:18px;
  color:var(--text-2);
}
.cac-sync-feedback-lines li {
  margin:4px 0;
  display:flex;
  gap:8px;
  align-items:baseline;
  flex-wrap:wrap;
}
.cac-sync-kind-chip,
.inbox-cac-kind-chip {
  font-size: var(--text-xs);
  white-space:nowrap;
}
.inbox-source-pane .inbox-source-cell {
  display:flex;
  flex-direction:column;
  gap:4px;
  align-items:flex-start;
}
.inbox-cac-import-status {
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:8px;
}
.review-flow-cac-import {
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-role-md);
  background:var(--surface-2);
}
.inbox-claim-scope-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.inbox-scope-banner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--info-soft);
  border-radius:var(--radius-role-md);
  background:var(--surface-2);
  color:var(--text);
}
.inbox-scope-banner > div {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.inbox-scope-banner span {
  color:var(--text-2);
  font-size: var(--text-sm);
}
.overview-work-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  grid-template-areas:"deadlines tasks"
    "appointments issues";
  column-gap:var(--work-widget-column-gap);
  row-gap:var(--work-widget-row-gap);
  margin-top:var(--work-widget-intro-gap);
}
.overview-work-grid-combined {
  grid-template-areas:"docket docket"
    "issues issues";
}
.overview-section-docket {
  grid-area:docket;
  min-width:0;
}
.claim-docket-card {
  min-height:clamp(300px, 34vh, 440px);
}
.claim-docket-card > .card-body.tight {
  min-height:244px;
}
.claim-docket-card .docket-table-scroll {
  max-height:none;
  overflow:visible;
}
.overview-section-deadlines { grid-area:deadlines; }
.overview-section-tasks { grid-area:tasks; }
.overview-section-appointments { grid-area:appointments; }
.overview-section-issues { grid-area:issues; }
.overview-section-timeline {
  min-width:0;
}
.overview-section-activity { grid-area:activity; }
.overview-work-grid .overview-row-section .card-body.tight > .work-row,
.overview-work-grid .overview-row-section .card-body.tight > .list-row,
.overview-work-grid .overview-row-section .card-body.tight > .overview-activity-compact-row {
  animation:overview-row-drop-in 460ms cubic-bezier(0.18, 0.9, 0.2, 1) backwards; /* DC50: see the table-shell entry motion note */
  transform-origin:top center;
  will-change:transform, opacity;
}
.overview-work-grid .overview-row-section .card-body.tight > :nth-child(1) { animation-delay:150ms; }
.overview-work-grid .overview-row-section .card-body.tight > :nth-child(2) { animation-delay:192ms; }
.overview-work-grid .overview-row-section .card-body.tight > :nth-child(3) { animation-delay:234ms; }
.overview-work-grid .overview-row-section .card-body.tight > :nth-child(4) { animation-delay:276ms; }
.overview-work-grid .overview-row-section .card-body.tight > :nth-child(5) { animation-delay:318ms; }
@keyframes overview-row-drop-in {
  0% {
    opacity:0;
    transform:translateY(-18px) scale(0.985);
  }
  58% {
    opacity:1;
  }
  100% {
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

@media (min-width: 1920px) {
  .overview-work-grid {
    grid-template-columns:repeat(4, minmax(0, 1fr));
    grid-template-areas:"deadlines tasks appointments issues";
  }
  .overview-work-grid-combined {
    grid-template-areas:"docket docket docket issues";
  }
}

.overview-lower-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:var(--work-widget-row-gap) var(--work-widget-column-gap);
}
.overview-lower-grid .overview-section-activity {
  grid-area:auto;
}

@media (max-width: 1080px) {
  .overview-work-grid {
    grid-template-columns:1fr;
    grid-template-areas:"deadlines"
      "tasks"
      "appointments"
      "issues";
  }
  .overview-work-grid-combined {
    grid-template-areas:"docket"
      "issues";
  }
  .overview-lower-grid {
    grid-template-columns:1fr;
  }
}
.overview-row-section .card-head-title {
  min-width:0;
  letter-spacing:0;
}
.claim-timeline-summary {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 10px;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}
.claim-timeline-summary span {
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 8px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-role-full);
  background:var(--surface-2);
}
.claim-timeline-shell {
  --claim-timeline-rail-width:132px;
  display:grid;
  grid-template-columns:var(--claim-timeline-rail-width) minmax(0, 1fr);
  min-width:0;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-widget);
  background:var(--surface);
  overflow:hidden;
}
.claim-timeline-rail {
  position:relative;
  z-index:2;
  min-height:var(--claim-timeline-height, 320px);
  background:var(--surface);
  box-shadow:1px 0 0 var(--rule-soft);
}
.claim-timeline-rail::after {
  content:"";
  position:absolute;
  top:0;
  right:-10px;
  width:10px;
  height:100%;
  pointer-events:none;
  background:linear-gradient(90deg, var(--surface) 0%, rgba(255,255,255,0));
}
.claim-timeline-track-label {
  position:absolute;
  left:14px;
  width:104px;
  transform:translateY(-50%);
  font-size: var(--text-xs);
  line-height:1.15;
  font-weight:800;
  overflow-wrap:anywhere;
}
.claim-timeline-scroll {
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
}
.claim-timeline-canvas-wrap {
  position:relative;
}
.claim-timeline-canvas {
  display:block;
}
.claim-timeline-cluster-popover {
  position:absolute;
  z-index:3;
  width:min(236px, calc(100% - 24px));
  padding:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  background:var(--surface);
  box-shadow:var(--shadow-lg);
  animation:claimTimelineFoldOut 160ms ease-out;
}
.claim-timeline-cluster-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  color:var(--text-2);
  font-size: var(--text-xs);
  font-weight:800;
}
.claim-timeline-cluster-head button {
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius-role-full);
  background:var(--surface-2);
  color:var(--text-2);
  font:inherit;
  line-height:1;
  cursor:pointer;
}
.claim-timeline-cluster-list {
  display:grid;
  gap:7px;
}
.claim-timeline-cluster-item {
  display:grid;
  gap:2px;
  min-width:0;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight:750;
  line-height:1.2;
}
.claim-timeline-cluster-item small {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}
@keyframes claimTimelineFoldOut {
  from {
    opacity:0;
    transform:translateY(-6px) scale(0.98);
  }
  to {
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
.overview-section-title-link {
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:0;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.overview-section-title-link:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
  border-radius:var(--radius-sm);
}
.overview-section-title-link svg {
  width:var(--headline-icon-size);
  height:var(--headline-icon-size);
  flex-shrink:0;
  color:var(--text-3);
}
.overview-section-add {
  flex-shrink:0;
}
.overview-row-section .list-row {
  grid-template-columns:minmax(0, 1fr);
  padding-left:2px;
  padding-right:2px;
}
.overview-row-section .list-row-aside {
  min-width:86px;
}
.overview-row-section .list-row-right {
  justify-content:flex-end;
  text-align:right;
}
.overview-row-section .deadline-when {
  align-items:flex-end;
  text-align:right;
}
.overview-row-section .deadline-urgency-chip {
  align-self:flex-end;
}
.overview-row-section .list-row-title {
  display:block;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.overview-activity-row .list-row-head {
  align-items:flex-start;
}

.overview-activity-row .list-row-title {
  display:block;
  overflow:visible;
  font-weight: var(--font-weight-medium);
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
}
.overview-activity-title .avatar {
  flex:0 0 auto;
}
.overview-activity-avatar {
  inline-size:24px;
  block-size:24px;
  min-inline-size:24px;
  min-block-size:24px;
  line-height:1;
}
.overview-activity-avatar.system {
  background:var(--surface);
  color:var(--text);
}
.overview-activity-compact-row {
  display:grid;
  grid-template-columns:74px 24px minmax(0, 1fr);
  gap:8px;
  align-items:center;
  min-height:36px;
  padding:7px 10px;
  border-bottom:1px solid var(--rule-soft);
}
.overview-activity-compact-row:hover {
  background:var(--hover);
}
.overview-activity-compact-row .activity-time {
  color:var(--text-3);
}
.overview-activity-text {
  min-width:0;
  overflow:hidden;
  color:var(--text-2);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  text-overflow:ellipsis;
  white-space:nowrap;
}



/* ============================================================
 * 27. TAGS / NAMES / MISC INLINE
 * ============================================================ */
.tag-bubble {
  display:inline-flex; align-items:center; gap:4px;
  padding:2px 8px;
  background:var(--surface-3);
  border-radius:var(--radius-sm);
  font-size:11.5px;
  color:var(--text-2);
}
.name { font-weight: var(--font-weight-medium); color:var(--text); }

/* ============================================================
 * 28. TWEAKS PANEL — keep visually distinct but inheriting tokens
 * ============================================================ */
.twk-panel {
  background:var(--bg);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-pop);
  padding:0;
  width:280px;
}
.twk-hd  { padding:10px 12px; box-shadow:inset 0 -1px 0 var(--rule); display:flex; align-items:center; gap:8px; font-size: var(--text-body); font-weight: var(--font-weight-semibold); }
.twk-x   { margin-left:auto; cursor:pointer; opacity:0.6; }
.twk-x:hover { opacity:1; }
.twk-body { padding:8px 12px; }
.twk-sect { padding:8px 0; }
.twk-sect + .twk-sect { box-shadow:inset 0 1px 0 var(--rule-soft); }
.twk-row  { display:flex; align-items:center; gap:8px; padding:4px 0; }
.twk-row-h { font-size: var(--text-xs); font-family:var(--font-mono);color:var(--text-3); padding:6px 0 4px; }
.twk-field { display:flex; flex-direction:column; gap:4px; padding:4px 0; }
.twk-lbl   { font-size: var(--text-sm); color:var(--text-2); }
.twk-num   { display:flex; align-items:center; gap:6px; }
.twk-num-lbl { font-size: var(--text-xs); color:var(--text-3); }
.twk-num-unit { font-family:var(--font-mono); font-size: var(--text-xs); color:var(--text-3); }
.twk-val   { font-family:var(--font-mono); font-size: var(--text-xs); color:var(--text-3); }
.twk-slider { flex:1; }
.twk-toggle { width:32px; height:18px; border-radius:var(--radius-pill); background:var(--surface-3); position:relative; cursor:pointer; }
.twk-toggle.on { background:var(--ink); }
.twk-toggle::after { content:''; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:var(--radius-role-full); background:#fff; box-shadow:var(--shadow-sm); transition:transform 0.15s; }
.twk-toggle.on::after { transform:translateX(14px); }
.twk-seg-thumb { position:absolute; top:0; bottom:0; background:var(--surface); border-radius:var(--radius-control); box-shadow:var(--ring-light); transition:left 0.15s; }
.twk-swatch { width:18px; height:18px; border-radius:var(--radius-role-full); box-shadow:var(--ring-light); }

/* ============================================================
 * 29. UTILITIES / LEGACY ALIASES
 * ============================================================ */
.full     { width:100%; }
.solid    { background:var(--ink); color:var(--ink-fg); }
.tight    { padding:0; }
.outline  { box-shadow:var(--ring-light); }
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}
.cluster { display:flex; align-items:center; gap:var(--space-2); }

.stack { display:flex; flex-direction:column; gap:var(--space-2); }
.truncate { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.u-flex-1 { flex:1; min-width:0; }

.data-num { font-variant-numeric:tabular-nums lining-nums; }

/* ============================================================
 * APPROVED MY WORK AGENDA — Dev Handover: Your agenda (default)
 * ============================================================ */
.app-page-body > .my-work-approved {
  flex:1;
  min-height:0;
  overflow:auto;
  /* Correction F: the shared workspace canvas-inset recipe (top inset lets
     the mounted --widget-shadow contact/ring render fully). */
  padding:var(--workspace-canvas-inset-top) var(--workspace-canvas-inset-x) var(--workspace-canvas-inset-bottom);
  background:var(--canvas-bg);
  scrollbar-gutter:auto;
  scrollbar-width:none;
}
.app-page-body > .my-work-approved::-webkit-scrollbar { display:none; }
/* Lisa 03A mounted widget: the agenda card sits on the distinct canvas and takes
   its edge from the central --widget-shadow contact ring — no 1px outer border. */
.my-work-agenda-surface {
  min-height:100%;
  background:var(--surface);
  border-radius:var(--radius-role-lg);
  box-shadow:var(--widget-shadow);
  overflow:visible;
}
.my-work-agenda-intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-9);
  min-height:68px;
  padding:14px 14px 12px 16px;
  border-bottom:1px solid var(--agenda-dock-divider);
}
.my-work-agenda-intro h3 {
  margin:0;
  color:var(--approved-text-secondary);
  font-size:16px;
  line-height:24px;
  font-weight:var(--font-weight-regular);
  letter-spacing:0;
}
.my-work-agenda-intro p {
  margin:2px 0 0;
  color:var(--approved-text-subtle);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-regular);
  line-height:16px;
}
.my-work-agenda-perspective {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.my-work-agenda-perspective-avatar {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:var(--radius-role-full);
  background:var(--info-soft);
  color:var(--info);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-medium);
}
.my-work-agenda-perspective-copy { min-width:0; }
.my-work-agenda-perspective-copy h3 {
  overflow:hidden;
  color:var(--approved-text-primary);
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  line-height:18px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-work-agenda-perspective-copy p {
  margin-top:1px;
  color:var(--approved-text-muted);
  font-size:var(--text-sm);
  line-height:16px;
  white-space:nowrap;
}
.my-work-agenda-control-row {
  display:flex;
  align-items:stretch;
  min-width:0;
  height:57px;
  min-height:57px;
  max-height:57px;
  border-bottom:1px solid var(--rule);
}
.my-work-agenda-tabs {
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 0 0 20px;
  overflow-x:auto;
  scrollbar-width:none;
}
.my-work-agenda-tabs::-webkit-scrollbar { display:none; }
.my-work-agenda-tab {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:33px;
  margin:auto 0;
  padding:0 12px;
  border:1px solid transparent;
  border-radius:var(--radius-role-md);
  color:var(--approved-text-secondary);
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  line-height:13px;
  white-space:nowrap;
}
.my-work-agenda-tab::after {
  display:none;
}
.my-work-agenda-tab:hover { color:var(--text); }
/* Authored active segment (Tab 127:2936 region): bg/surface plus the central
   shadow role only — the authored component carries no active border. */
.my-work-agenda-tab.active {
  background:var(--surface);
  color:var(--approved-text-primary);
  box-shadow:var(--shadow-xs);
}
/* The Completed tab sits 24px from the group, split by a 1px neutral-300
   separator (Rectangle 1: 1x28), then 24px to the tab (8px flex gap + 41).
   :last-child, not nth-child(6) — the Work overview strip dropped its Notes
   tab (round 3) so Completed is the last tab on BOTH agenda surfaces.
   (Renamed from "Completed today" and widened by Dan R4, 12 Sep 2026.) */
.my-work-agenda-tab:last-child { margin-left:41px; }
.my-work-agenda-tab:last-child::before {
  content:'';
  position:absolute;
  top:3px;
  bottom:3px;
  left:-25px;
  width:1px;
  background:var(--approved-border-strong);
}
/* Tab counts consume the shared authored Badge/Count anatomy (DS 257:42 —
   the same primitive the Page Header badge implements). */
.my-work-agenda-tab-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:16px;
  height:13px;
  padding:0 4px;
  border-radius:var(--radius-role-full);
  background:var(--color-neutral-40);
  color:var(--approved-text-secondary);
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:var(--font-weight-medium);
  line-height:1;
}
.my-work-agenda-tab:first-child .my-work-agenda-tab-count { display:none; }
.my-work-agenda-toolbar {
  position:relative;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  padding:12px 20px 12px 8px;
}
.my-work-agenda-toolbar-left,
.my-work-agenda-toolbar-right {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.my-work-agenda-search {
  display:flex;
  align-items:center;
  gap:7px;
  width:220px;
  height:32px;
  padding:0 10px;
  border:1px solid var(--quiet-control-border);
  border-radius:var(--radius-control);
  background:var(--surface);
  color:var(--text-3);
}
.my-work-agenda-search:focus-within {
  border-color:color-mix(in srgb, var(--brand-primary) 55%, var(--rule));
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.my-work-agenda-search input {
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font-size:var(--text-body);
}
.my-work-filter-control,
.my-work-create-control { position:relative; }
.my-work-filter-button,
.my-work-search-toggle,
.my-work-view-as,
.my-work-create-button {
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:32px;
  border-radius:var(--radius-control);
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
}
.my-work-filter-button {
  position:relative;
  justify-content:center;
  width:32px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text-2);
}
.my-work-filter-button:hover,
.my-work-filter-button.active { border-color:color-mix(in srgb, var(--brand-primary) 30%, var(--rule)); color:var(--brand-primary-hover); }
.my-work-filter-count {
  position:absolute;
  top:-2px;
  right:-3px;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:var(--radius-role-full);
  background:var(--brand-subtle);
  font-family:var(--font-mono);
  font-size:9px;
  line-height:17px;
  text-align:center;
}
.my-work-search-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:var(--radius-control);
  color:var(--text-2);
}
.my-work-search-toggle:hover,
.my-work-search-toggle.active { background:var(--hover-2); color:var(--brand-primary-hover); }
.my-work-filter-popover {
  position:absolute;
  top:calc(100% + 6px);
  z-index:20;
  min-width:210px;
  padding:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.my-work-filter-popover { left:0; }
.my-work-filter-title {
  display:block;
  margin-bottom:7px;
  color:var(--text-3);
  font-size:var(--text-xs);
  font-weight:var(--font-weight-semibold);
  letter-spacing:.04em;
}
.my-work-filter-popover label {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  color:var(--text-2);
  font-size:var(--text-body);
}
.my-work-view-as {
  padding-left:9px;
  border:1px solid var(--quiet-control-border);
  background:var(--surface);
  color:var(--text-3);
}
.my-work-view-as > span { white-space:nowrap; }
.my-work-view-as select {
  height:30px;
  max-width:156px;
  padding:0 28px 0 7px;
  border:0;
  border-left:1px solid var(--rule-soft);
  outline:0;
  background:transparent;
  color:var(--text);
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
}
.my-work-view-as-control { position:relative; }
.my-work-view-as-trigger {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:106px;
  height:33px;
  padding:0 14px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-md);
  background:var(--surface);
  color:var(--text-2);
  font-size:var(--text-body);
  font-weight:var(--font-weight-regular);
  box-shadow:var(--shadow-xs);
}
.my-work-view-as-trigger:hover { border-color:var(--quiet-control-hover-border); color:var(--text); }
.my-work-view-as-popover {
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:20;
  width:240px;
  padding:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-md);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.my-work-view-as-popover label > span {
  display:block;
  margin-bottom:6px;
  color:var(--text-3);
  font-size:var(--text-xs);
  font-weight:var(--font-weight-medium);
}
/* Round 3: adopts the central 40px control (old height:34/padding fought
   the recipe's min-height and chevron inset). */
.my-work-view-as-popover select {
  width:100%;
  font-size:var(--text-body);
}
.my-work-view-as-current { margin-top:7px; color:var(--text-3); font-size:var(--text-xs); }
.my-work-create-button {
  height:32px;
  min-width:90px;
  justify-content:center;
  gap:var(--button-gap);
  padding:0 12px;
  border-radius:var(--button-radius);
  background:var(--button-primary-bg);
  border-color:var(--button-primary-bg);
  box-shadow:none;
}
.my-work-create-button:hover { background:var(--button-primary-hover-bg); border-color:var(--button-primary-hover-bg); }
/* The old FOR CLAIM create popover is gone (Lisa, 21 Aug): the Create menu
   is the shared .menu-popover recipe via AgendaActionsMenu, and the claim is
   selected inside the New event modal. */
.my-work-agenda-groups {
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
}
.my-work-agenda-group {
  overflow:hidden;
  border:0;
  border-radius:var(--radius-role-none);
  background:var(--surface);
  box-shadow:none;
}
.my-work-agenda-group-head {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:38px;
  padding:10px 14px;
  border-bottom:0;
  text-align:left;
}
.my-work-agenda-group.tone-critical .my-work-agenda-group-head { background:var(--approved-feedback-error-bg); }
.my-work-agenda-group.tone-warning .my-work-agenda-group-head { background:var(--approved-feedback-warning-bg); }
.my-work-agenda-group.tone-calm .my-work-agenda-group-head { background:var(--approved-feedback-info-bg); }
/* History (Dan R2, 12 Sep 2026) is the FOURTH entry on this central selector
   list, not a per-surface fork: both Work overview and the claim Worklist
   inherit it. The Work overview DH page authors no fourth bucket, so the
   success band is specified by analogy with the three authored heads
   (docs/plans/worklist-history-figma-ledger-20260912.md B1/B4) on the same
   --approved-feedback-* family the agenda already binds. */
.my-work-agenda-group.tone-success .my-work-agenda-group-head { background:var(--approved-feedback-success-bg); }
/* Completed > Previous takes the Dev Handover's authored Neutral tone for the
   Table/Group Header component (ledger C1/C3: bg/subtle band, text/secondary
   count pill) rather than a fifth colour family. */
.my-work-agenda-group.tone-neutral .my-work-agenda-group-head { background:var(--approved-bg-subtle); }
.my-work-agenda-group-icon { display:inline-flex; color:var(--text-3); }
.my-work-agenda-group-icon,
.my-work-agenda-group-meta { display:none; }
.my-work-agenda-group-label {
  color:var(--approved-text-primary);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-medium);
  line-height:12px;
  letter-spacing:0;
}
.my-work-agenda-group-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:21px;
  height:18px;
  padding:2px 7px;
  border:0;
  border-radius:var(--radius-role-sm);
  background:var(--text-3);
  color:var(--surface);
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:var(--font-weight-medium);
  line-height:14px;
}
.my-work-agenda-group.tone-critical .my-work-agenda-group-count {
  background:var(--approved-feedback-error);
  box-shadow:inset 0 0 0 1px var(--approved-feedback-error);
}
.my-work-agenda-group.tone-warning .my-work-agenda-group-count {
  background:var(--approved-feedback-warning);
  box-shadow:inset 0 0 0 1px var(--approved-feedback-warning);
}
.my-work-agenda-group.tone-calm .my-work-agenda-group-count {
  background:var(--approved-feedback-info);
  box-shadow:inset 0 0 0 1px var(--approved-feedback-info);
}
.my-work-agenda-group.tone-success .my-work-agenda-group-count {
  background:var(--approved-feedback-success);
  box-shadow:inset 0 0 0 1px var(--approved-feedback-success);
}
.my-work-agenda-group.tone-neutral .my-work-agenda-group-count {
  background:var(--approved-text-secondary);
  box-shadow:inset 0 0 0 1px var(--approved-text-secondary);
}
.my-work-agenda-group-meta {
  margin-left:auto;
  color:var(--text-3);
  font-size:var(--text-sm);
}
/* Fluid track ownership: the authored fixed cells (type 64, due 92, who 40,
   action 96, more 24) keep their exact widths; the text columns flex so the
   grid always fits the real mounted-card width. The authored 1216px column
   edges apply only when the card genuinely reaches that width (>=1510). */
.my-work-agenda-row {
  display:grid;
  grid-template-columns:64px minmax(260px, 2.25fr) minmax(130px, 1fr) minmax(110px, .8fr) 92px 40px 96px 24px;
  gap:12px;
  align-items:center;
  min-height:61px;
  padding:11px 16px;
  border-bottom:1px solid var(--rule);
  cursor:pointer;
}
/* Authored column head (71:1309): 30px band on the bg/canvas fill with top and
   bottom rules, Micro 10/500/14 muted labels. */
.my-work-agenda-column-head {
  display:grid;
  grid-template-columns:64px minmax(260px, 2.25fr) minmax(130px, 1fr) minmax(110px, .8fr) 92px 40px 96px 24px;
  gap:12px;
  align-items:center;
  /* UP33/UP40: tiered band height (this band has no selection header —
     base tier), labels centred. */
  min-height:var(--column-head-height);
  padding:0 16px;
  /* UP26 (Dan F1): no rules on the band — one central contract with the
     docket/claims bands. */
  border-top:0;
  border-bottom:0;
  /* UP36: bg/subtle band fill (one contract with the docket/claims bands). */
  background:var(--approved-bg-subtle);
  color:var(--approved-text-muted);
  /* Figma column-head typography: 11 Geist 500 on the 14px line (Dan,
     21 Aug — supersedes the earlier 10px reading). */
  font-size:11px;
  font-weight:var(--font-weight-medium);
  line-height:14px;
  letter-spacing:0.5px; /* UP51 (825:4354) */
}
.my-work-agenda-row:last-child { border-bottom:0; }
.my-work-agenda-row:hover { background:var(--hover); }
.my-work-agenda-row:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.my-work-agenda-type {
  justify-self:start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  height:20px;
  padding:0 8px 0 7px;
  border-radius:var(--radius-role-sm);
  background:var(--surface-3);
  color:var(--text-3);
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:var(--font-weight-medium);
  line-height:14px;
  letter-spacing:0;
}
/* Authored type chips (71:1327/71:1356/71:1354) bind the approved semantic
   feedback pairs: SOL=warning, TASK=info, APPT=success. */
.my-work-agenda-type.type-deadline { background:var(--approved-feedback-warning-bg); color:var(--approved-feedback-warning); }
.my-work-agenda-type.type-task { background:var(--approved-feedback-info-bg); color:var(--approved-feedback-info); }
.my-work-agenda-type.type-appointment { background:var(--approved-feedback-success-bg); color:var(--approved-feedback-success); }
.my-work-agenda-main,
.my-work-agenda-claim,
.my-work-agenda-assigned,
.my-work-agenda-due { min-width:0; }
.my-work-agenda-title {
  overflow:hidden;
  color:var(--text);
  font-size:var(--text-md);
  font-weight:var(--font-weight-medium);
  line-height:20px;
  letter-spacing:.02em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-work-agenda-subtitle,
.my-work-agenda-claim small,
.my-work-agenda-assigned small,
.my-work-agenda-due small {
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--approved-text-muted);
  font-size:var(--text-sm);
  line-height:16px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-work-agenda-claim > span {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border-radius:var(--radius-role-sm);
  background:var(--agenda-claim-reference-bg);
  color:var(--approved-text-brand);
  font-family:var(--font-sans);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-medium);
  line-height:12px;
  max-width:100%;
  overflow:hidden;
}
/* Ellipsis lives on an owned text child: an inline-flex chip with a pseudo
   dot plus raw text cannot render text-overflow itself. The dot stays fixed. */
.my-work-agenda-claim-text {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-work-agenda-claim > span::before {
  content:'';
  width:6px;
  height:6px;
  margin-right:6px;
  border-radius:var(--radius-role-full);
  background:var(--color-purple-500); /* authored brand/primary #814AF0 (Ellipse 71:1336, Lisa D01) */
  flex:0 0 auto;
}
.my-work-agenda-assigned > span,
.my-work-agenda-due > span {
  display:block;
  overflow:hidden;
  color:var(--approved-text-secondary);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-regular);
  line-height:16px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-work-agenda-due > span {
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:0 8px;
  border-radius:var(--radius-role-sm);
  background:var(--surface-2);
  font-weight:var(--font-weight-medium);
}
/* Authored due chips (71:1341/71:1342) use the approved feedback pairs with
   Micro 10/500/14 chip text; plain upcoming dates stay Caption/Strong 12/500. */
.my-work-agenda-due.tone-critical > span,
.my-work-agenda-due.tone-today > span,
.my-work-agenda-due.tone-tomorrow > span {
  font-size:10px;
  line-height:14px;
}
.my-work-agenda-due.tone-critical > span,
.my-work-agenda-due.tone-today > span {
  background:var(--approved-feedback-error-bg);
  color:var(--approved-feedback-error);
}
.my-work-agenda-due.tone-tomorrow > span {
  background:var(--approved-feedback-warning-bg);
  color:var(--approved-feedback-warning);
}
.my-work-agenda-due.tone-upcoming > span { padding:0; background:transparent; }
/* UP46: the owner bubble is the CENTRAL .avatar (28px, tonal pairs via
   avatarToneClass) — the per-surface tone fork (owner-tone-1..4 on the
   legacy soft tokens, red included) is retired. The class remains as the
   grid-placement hook only. */
/* UP50 (Dan): table avatars are LEFT-aligned on the header label's
   content edge — Lisa's skewed Figma positioning is not authoritative. */
.my-work-agenda-owner { justify-self:start; }
.my-work-agenda-complete {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:96px;
  height:32px;
  padding:0 8px;
  border:1px solid var(--approved-border-strong);
  border-radius:var(--radius-md);
  background:var(--surface);
  color:var(--approved-text-secondary);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-medium);
  line-height:16px;
}
.my-work-agenda-complete:hover { border-color:color-mix(in srgb, var(--brand-primary) 35%, var(--rule)); color:var(--brand-primary-hover); }
/* Authored "Completed task — visual rule" (78:2812) applied to rows rendered in
   the real Completed-today result: content de-emphasises to one muted neutral,
   chips go neutral, the action slot becomes the settled green status marker in
   the same 96x32 footprint, and text is never struck through.
   Accessibility override (recorded authored delta): the DH specimen's
   neutral-400 #A3A3A3 is ~2.5:1 on white and fails 4.5:1 for this 12-14px
   text, so the de-emphasis binds the existing accessible semantic
   --approved-text-muted (#737373, ~4.7:1) instead. */
/* Ledger A1/A11 (node 78-2351 vs its active sibling 78-2324): the ONLY
   row-level difference the Dev Handover draws between an active and a
   settled row is the bg/surface -> Neutral/50 wash (ledger A1), which binds the
   existing app-wide --canvas-bg token. The hover recipe is re-declared after
   it because both selectors carry the same specificity, so without this the
   settled row would lose its pointer feedback while staying clickable. */
.my-work-agenda-row.is-completed { background:var(--canvas-bg); }
/* A settled row stays a control — role="button", tabIndex 0, opens the detail
   modal — so it needs pointer feedback. --hover resolves to the SAME
   neutral-25 as --canvas-bg, so re-declaring it here was a no-op and left the
   row with none at all (independent tester finding F2). The settled hover
   steps to the next existing neutral instead; no new value. */
.my-work-agenda-row.is-completed:hover { background:var(--approved-bg-subtle); }
.my-work-agenda-row.is-completed .my-work-agenda-title,
.my-work-agenda-row.is-completed .my-work-agenda-subtitle,
.my-work-agenda-row.is-completed .my-work-agenda-assigned > span,
.my-work-agenda-row.is-completed .my-work-agenda-due > span { color:var(--approved-text-muted); }
.my-work-agenda-row.is-completed .my-work-agenda-due > span {
  padding:0;
  background:transparent;
  font-size:var(--text-sm);
  line-height:16px;
}
.my-work-agenda-row.is-completed .my-work-agenda-type,
.my-work-agenda-row.is-completed .my-work-agenda-claim > span {
  background:var(--color-neutral-40);
  color:var(--approved-text-muted);
}
.my-work-agenda-row.is-completed .my-work-agenda-claim > span::before { background:var(--approved-text-subtle); }
.my-work-agenda-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:96px;
  height:32px;
  border:0;
  border-radius:var(--radius-md);
  background:var(--approved-feedback-success-bg);
  color:var(--approved-feedback-success);
  font-size:var(--text-sm);
  font-weight:var(--font-weight-medium);
  line-height:16px;
}
.my-work-agenda-status.is-inactive {
  background:var(--approved-bg-subtle);
  color:var(--approved-text-muted);
}
/* Transient "Link copied" / "Copy failed" confirmation for the row menu's
   Copy link (Dan, 29 Aug): status-toned chip on the completed-marker
   recipe geometry, cleared after 1.6s. */
.my-work-agenda-copied {
  display:inline-flex;
  align-items:center;
  height:24px;
  padding:0 var(--space-3);
  border-radius:var(--radius-role-full);
  background:var(--approved-feedback-success-bg);
  color:var(--approved-feedback-success);
  font-size:var(--text-xs);
  font-weight:var(--font-weight-medium);
  line-height:14px;
  white-space:nowrap;
}
.my-work-agenda-copied.is-failed {
  background:var(--approved-feedback-error-bg);
  color:var(--approved-feedback-error);
}
.my-work-agenda-more {
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:var(--radius-control);
  color:var(--text-3);
}
.my-work-agenda-more:hover,
.my-work-agenda-more.active { background:var(--hover-2); color:var(--text); }
/* Authored complete-task confirm modal (DH 78:1347): muted intro copy plus a
   bordered summary card — TASK chip, title, Claim / Due / Assigned-to rows. */
.complete-task-copy { margin:0 0 12px; color:var(--approved-text-muted); font-size:var(--text-body); line-height:18px; }
.complete-task-summary { display:grid; gap:8px; padding:12px; border:1px solid var(--rule); border-radius:var(--radius-role-md); background:var(--surface); }
.complete-task-summary .my-work-agenda-type { justify-self:start; }
.complete-task-summary-title { color:var(--approved-text-primary); font-size:var(--text-body); font-weight:var(--font-weight-medium); line-height:18px; }
.complete-task-summary-rows { display:grid; gap:4px; }
.complete-task-summary-rows > div { display:flex; gap:10px; font-size:var(--text-sm); line-height:16px; }
.complete-task-summary-rows > div > span { flex:0 0 84px; color:var(--approved-text-subtle); }
.complete-task-summary-rows > div > strong { color:var(--approved-text-secondary); font-weight:var(--font-weight-regular); }
/* Authored work-item detail modals (DH 326:3919 — Modal / Task detail
   542:2462, Modal / Deadline detail 542:2324, Appointment details 542:2518).
   ONE central recipe family shared by all three modals on both agenda
   surfaces: 96px-label meta rows with hairline separators, the neutral-40
   actions panel, the 11px kicker, and the deadline right-column cards
   (audit grid, warning fill variant, provenance rows). Sentence-case
   kickers are deliberate: the DH frames author uppercase, but the standing
   no-uppercase decision (claim-screens D04) wins the authority order — see
   docs/plans/agenda-detail-modals-dh-20260824.md D03. */
.work-detail-body { display:grid; gap:16px; align-content:start; }
.work-detail-chips { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.work-detail-title { margin:0; color:var(--approved-text-primary); font-size:18px; font-weight:var(--font-weight-semibold); line-height:1.25; letter-spacing:0; }
.work-detail-meta { display:grid; }
.work-detail-meta-row { display:flex; align-items:center; gap:12px; min-height:34px; padding:8px 0; border-bottom:1px solid var(--rule-soft); }
.work-detail-meta-row:last-child { border-bottom:0; }
.work-detail-meta-label { flex:0 0 96px; color:var(--approved-text-muted); font-size:var(--text-sm); line-height:16px; }
.work-detail-meta-value { flex:1; display:flex; align-items:center; gap:8px; min-width:0; color:var(--approved-text-primary); font-size:var(--text-body); line-height:17px; }
.work-detail-meta-value .is-overdue { color:var(--approved-feedback-error); font-weight:var(--font-weight-medium); }
.work-detail-meta-value .is-muted { color:var(--approved-text-muted); }
.work-detail-meta-value .select, .work-detail-meta-value .input { min-height:32px; }
.work-detail-kicker { color:var(--approved-text-muted); font-size:var(--text-xs); font-weight:var(--font-weight-medium); line-height:14px; }
.work-detail-actions { display:grid; gap:12px; padding:16px; border-radius:var(--radius-role-md); background:var(--color-neutral-40); }
.work-detail-actions-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.work-detail-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,428px); gap:24px; align-items:start; }
@media (max-width: 920px) { .work-detail-columns { grid-template-columns:minmax(0,1fr); } }
.work-detail-cards { display:grid; gap:16px; align-content:start; }
.work-detail-card { display:grid; gap:12px; padding:16px; border:1px solid var(--rule); border-radius:var(--radius-role-md); background:var(--surface); }
.work-detail-card.is-warning { border-color:transparent; background:var(--approved-feedback-warning-bg); }
.work-detail-card-title { display:flex; align-items:center; gap:8px; color:var(--approved-text-primary); font-size:var(--text-body); font-weight:var(--font-weight-medium); line-height:17px; }
.work-detail-card-copy { color:var(--approved-text-muted); font-size:var(--text-sm); line-height:16px; }
.work-detail-card-alert { color:var(--approved-feedback-warning); font-size:var(--text-sm); line-height:16px; }
.work-detail-audit-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px 16px; }
.work-detail-audit-grid > div { display:grid; gap:2px; align-content:start; }
.work-detail-audit-value { color:var(--approved-text-primary); font-size:var(--text-sm); line-height:16px; overflow-wrap:anywhere; }
.work-detail-provenance-row { display:flex; align-items:center; gap:8px; min-width:0; font-size:var(--text-sm); line-height:16px; color:var(--approved-text-primary); }
.work-detail-provenance-row .chip { flex-shrink:0; }
.work-detail-provenance-main { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.work-detail-provenance-end { margin-left:auto; flex-shrink:0; color:var(--approved-text-muted); }
.work-detail-helper { color:var(--approved-text-muted); font-size:var(--text-sm); line-height:16px; }
/* Calendar colour language on the detail modals (Dan, 25 Aug): the type
   chip wears the per-type colour dot; the subtitle claim reference is a
   live link with the open-link icon where the surface can navigate. */
.chip.work-detail-type-chip { display:inline-flex; align-items:center; gap:6px; }
.work-detail-type-chip::before { content:''; width:7px; height:7px; border-radius:var(--radius-role-full); background:var(--work-detail-type-color, var(--approved-text-subtle)); }
.work-detail-claim-link { display:inline-flex; align-items:center; gap:4px; font-size:inherit; }
.my-work-agenda-show-more {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:100%;
  min-height:40px;
  color:var(--text-3);
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
}
.my-work-agenda-show-more:hover { background:var(--brand-subtle); }
/* Delivered empty state (112:2234 region): centred 64px canvas badge with the
   default rule ring, 18/500 title, 13/400/150% body, primary action. */
.my-work-agenda-empty {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  min-height:320px;
  padding:48px 24px;
  text-align:center;
  color:var(--text-2);
}
.my-work-agenda-empty-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-full);
  background:var(--canvas-bg);
  color:var(--text-2);
}
/* Direct-child scoping (Dan, round 5): the descendant `span` selector was
   bleeding the muted body colour + display:block into the primary action
   button's label ("Open notes"/"New task" rendered grey on purple instead
   of the central on-brand token). */
.my-work-agenda-empty > strong,
.my-work-agenda-empty > span { display:block; }
.my-work-agenda-empty > strong {
  color:var(--approved-text-secondary);
  font-size:18px;
  font-weight:var(--font-weight-medium);
  line-height:1;
}
.my-work-agenda-empty > span {
  max-width:360px;
  color:var(--approved-text-muted);
  font-size:var(--text-body);
  line-height:1.5;
}
.my-work-agenda-error { margin:0 0 var(--space-5); }

@media (max-width: 1180px) {
  .my-work-agenda-row {
    grid-template-columns:64px minmax(150px, 2fr) minmax(112px, .9fr) 92px 28px 96px 28px;
  }
  .my-work-agenda-assigned { display:none; }
  .my-work-agenda-column-head {
    grid-template-columns:64px minmax(150px, 2fr) minmax(112px, .9fr) 92px 28px 96px 28px;
  }
  .my-work-agenda-column-head > span:nth-child(4) { display:none; }
}

/* The authored 1216px column edges (frame 71:1265 at 1512) hold only when the
   mounted card actually reaches that width: 248px rail + 2x24 inset + 1214px
   grid box. Below 1510 the fluid tracks above own the layout. */
@media (min-width: 1510px) {
  .my-work-agenda-row,
  .my-work-agenda-column-head {
    grid-template-columns:64px 436px 196px 150px 92px 40px 96px 24px;
  }
}

/* UP30 (Dan F6 — supersedes UP09's squeeze deletion): the pre-slice
   narrow-width collapse behaviour returns as a container stage on the
   authored column set. Below 1379px container width the columns compress
   (Claim keeps its UP22 readable width; the status chip may wrap again,
   the pre-slice behaviour) before the <=760 card mode takes over. */
@container (max-width: 1379px) {
  .claims-table {
    min-width:1264px;
  }
  .claims-table th,
  .claims-table td {
    padding-left:8px;
    padding-right:8px;
  }
  .claims-browser-surface .claims-table thead th:first-child,
  .claims-table td:first-child { padding-left:12px; }
  .claims-browser-surface .claims-table thead th:last-child,
  .claims-table td:last-child { padding-right:12px; }
  .claims-table col[data-col="select"] { width:36px; }
  .claims-table col[data-col="claim"] { width:84px; }
  .claims-table col[data-col="lni"] { width:76px; }
  /* UP56 (Dan readability override): 120 at the stage's 8px cell sides
     gives the SAME ~104px text room as the full-width 128, so two-word
     names that fit there fit here too; the flexing Note column absorbs
     it inside the unchanged 1264 stage budget. */
  .claims-table col[data-col="claimant"] { width:120px; }
  .claims-table col[data-col="doi"] { width:54px; }
  .claims-table col[data-col="tags"] { width:88px; }
  .claims-table col[data-col="employer"] { width:108px; }
  .claims-table col[data-col="status"] { width:156px; }
  .claims-table col[data-col="nextAction"],
  .claims-table col[data-col="deadline"] { width:150px; }
  .claims-table col[data-col="timeline"] { width:88px; }
  .claims-table col[data-col="issues"] { width:52px; }
  .claims-table col[data-col="attorney"] { width:56px; }
  .claims-table col[data-col="paralegal"] { width:56px; }
  .claims-table col[data-col="activity"] { width:56px; }
  .claims-table td[data-col="status"] .chip { white-space:normal; }
  /* UP28: select cells follow the stage's 12px edge rhythm together. */
  .claims-browser-surface .claims-table thead th:first-child[data-col="select"],
  .claims-browser-surface .claims-table tbody td:first-child[data-col="select"] { padding:0 2px 0 12px; }
}
/* Measured pressure containment (validator, 18 Aug 2026): with non-Mac
   Ctrl+K/Ctrl+J hints the chips-visible bar needs a >=830px viewport
   (248 rail + 24 pad + 436 tools + 8 gap + 90 trailing + 24 pad); below
   that the z-raised Ask trigger painted over the bell. Hide only the
   nonessential visible keycap hints at this deliberate breakpoint (10px
   guard for platform font metrics); labels, targets, shortcuts, and
   aria-keyshortcuts semantics are unchanged. */
@media (max-width: 840px) {
  .command-trigger .kbd,
  .assistant-trigger .kbd { display:none; }
}

@media (max-width: 980px) {
  .header { padding:var(--space-3) var(--space-5); }
  .top-nav-user-copy { display:none; }
  .header-actions .search-bar { max-width:260px; }
  /* UP09: the 980px claims squeeze is deleted with the 1379 container
     block — authored columns + horizontal panning down to the 760 card
     mode. */
  .inbox-table {
    min-width:1090px;
  }
  .inbox-table col[data-col="received"] { width:94px; }
  .inbox-table col[data-col="source"] { width:30px; }
  .inbox-table col[data-col="from"] { width:210px; }
  .inbox-table col[data-col="subject"] { width:230px; }
  .inbox-table col[data-col="claim"] { width:215px; }
  .inbox-table col[data-col="ingestion"] { width:220px; }
  .inbox-table col[data-col="status"] { width:112px; }
  .inbox-table th,
  .inbox-table td {
    padding-left:8px;
    padding-right:8px;
  }
}

@media (max-width: 760px) {
  /* The Side Menu's narrow behavior is React-owned (app.jsx narrow-shell
     state): the variant classes .side-menu--collapsed / .side-menu--flyout
     render the rail and overlay, so no media-only sidebar duplicates live
     here. Only non-sidebar responsive rules remain. */
  .top-nav-user { margin-left:0; padding-left:var(--space-2); }
  .top-nav-user-chevron { display:none; }
  .command-trigger-label,
  .command-trigger .kbd { display:none; }
  .command-trigger { width:36px; padding:0; justify-content:center; }
  .app-page-header { padding:var(--space-7); }
  .my-work-agenda-tabs { padding:0 6px; }
  .my-work-agenda-intro { align-items:flex-start; flex-direction:column; }
  .my-work-agenda-control-row { align-items:stretch; flex-direction:column; height:auto; max-height:none; }
  .my-work-agenda-toolbar {
    align-items:center;
    flex-direction:row;
    padding:12px;
  }
  .my-work-agenda-toolbar-left { flex:1; width:auto; }
  .my-work-agenda-toolbar-right { width:auto; }
  .my-work-agenda-search { flex:1; width:auto; }
  .my-work-agenda-toolbar-right { justify-content:space-between; }
  .my-work-view-as { min-width:0; }
  .my-work-view-as select { max-width:120px; }
  .my-work-agenda-groups { padding:0; }
  .my-work-agenda-group-meta { display:none; }
  .my-work-agenda-row {
    position:relative;
    grid-template-columns:44px minmax(0, 1fr) 28px;
    gap:8px;
    min-height:0;
    padding:12px;
  }
  .my-work-agenda-column-head { display:none; }
  .my-work-agenda-main { grid-column:2; }
  .my-work-agenda-claim { grid-column:2; }
  .my-work-agenda-due { grid-column:2; }
  .my-work-agenda-owner { grid-column:3; grid-row:1; }
  .my-work-agenda-complete,
  .my-work-agenda-status { grid-column:2 / 4; width:max-content; }
  .my-work-agenda-more { position:absolute; right:8px; bottom:8px; }

  .responsive-card-table {
    display:block;
    width:100%;
    min-width:0;
  }
  .app-page-scaffold,
  .app-page-body {
    height:auto;
    min-height:100%;
    overflow:visible;
  }
  .table-shell-with-rail,
  .table-shell-with-rail > .table-wrap,
  .table-scroll-region {
    display:block;
    overflow:visible;
  }
  .widget-scroll-region {
    max-height:none;
  }
  .claim-tab-scaffold,
  .claim-tab-body {
    height:auto;
    overflow:visible;
  }
  .table-shell-with-rail .table thead th,
  .table-shell-with-rail .tbl thead th {
    position:static;
  }
  .data-view-rail {
    align-items:flex-start;
    flex-direction:column;
  }
  .responsive-card-table colgroup,
  .responsive-card-table thead {
    display:none;
  }
  .responsive-card-table tbody {
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .responsive-card-table tbody tr {
    position:relative;
    display:flex;
    flex-direction:column;
    padding:12px 14px;
    background:var(--surface);
    border-radius:var(--radius-lg);
    box-shadow:var(--ring-light);
    cursor:pointer;
  }
  .responsive-card-table tbody tr:hover td,
  .responsive-card-table tbody tr:last-child td {
    background:transparent;
    box-shadow:none;
  }
  .responsive-card-table tbody td {
    display:grid;
    grid-template-columns:minmax(86px, 34%) minmax(0, 1fr);
    align-items:start;
    gap:10px;
    min-width:0;
    padding:5px 0;
    box-shadow:none;
    background:transparent;
    font-size: var(--text-body);
  }
  .responsive-card-table tbody td[data-align] {
    text-align:left;
  }
  .responsive-card-table tbody td::before {
    content:attr(data-label);
    min-width:0;
    color:var(--text-3);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
  }
  .responsive-card-table tbody td[data-label=""]::before,
  .responsive-card-table .card-primary::before,
  .responsive-card-table .card-control::before,
  .responsive-card-table .card-action::before,
  .responsive-card-table .table-empty-cell::before {
    content:none;
  }
  .responsive-card-table .card-primary {
    display:block;
    padding-bottom:8px;
  }
  .responsive-card-table .card-action {
    display:none;
  }
  .responsive-card-table.prospects-table .card-action,
  .responsive-card-table.remittance-table .card-action {
    display:flex;
    justify-content:flex-start;
    padding-top:8px;
  }
  .responsive-card-table.prospects-table .prospect-row-actions {
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .responsive-card-table tbody tr.table-empty-row {
    display:block;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  .responsive-card-table .table-empty-cell {
    display:block;
  }

  .claims-table {
    min-width:0;
  }
  .responsive-card-table.claims-table tbody td[data-col] {
    display:grid;
  }
  .responsive-card-table.claims-table tbody td.card-control {
    display:flex;
  }
  .claims-table [data-card="select"] { order:1; }
  .claims-table [data-card="claim"] { order:2; }
  .claims-table [data-card="claimant"] { order:3; }
  .claims-table [data-card="status"] { order:4; }
  .claims-table [data-card="timeline"] { order:5; }
  .claims-table [data-card="nextAction"] { order:6; }
  .claims-table [data-card="deadline"] { order:6; }
  .claims-table [data-card="lni"] { order:7; }
  .claims-table [data-card="doi"] { order:8; }
  .claims-table [data-card="employer"] { order:9; }
  .claims-table [data-card="tags"] { order:10; }
  .claims-table [data-card="note"] { order:11; }
  .claims-table [data-card="issues"] { order:12; }
  .claims-table [data-card="attorney"] { order:13; }
  .claims-table [data-card="paralegal"] { order:14; }
  .claims-table [data-card="activity"] { order:15; }
  .claims-table tbody tr {
    padding-right:44px;
  }
  .claims-table tbody tr[aria-selected="true"] {
    background:var(--hover-2);
    box-shadow:var(--ring-light), inset 3px 0 0 var(--text);
  }
  .claims-table .card-control {
    position:absolute;
    top:12px;
    right:14px;
    display:flex;
    width:auto;
    padding:0;
  }
  .claims-table td[data-col="timeline"] .deadline-when {
    align-items:flex-start;
    min-height:0;
    padding:0;
    background:transparent;
  }
  .claims-table .claim-row-overdue td[data-col="timeline"] .deadline-when {
    background:transparent;
  }
  .claims-table td[data-col="claim"],
  .claims-table td[data-col="lni"],
  .claims-table td[data-col="doi"],
  .claims-table td[data-col="timeline"],
  .claims-table td[data-col="issues"] {
    white-space:normal;
  }

  .inbox-table {
    min-width:0;
  }
    .inbox-table [data-card="received"] { order:1; }
    .inbox-table [data-card="source"] { order:2; }
    .inbox-table [data-card="from"] { order:3; }
    .inbox-table [data-card="subject"] { order:4; }
    .inbox-table [data-card="claim"] { order:5; }
    .inbox-table [data-card="ingestion"] { order:6; }
    .inbox-table [data-card="status"] { order:7; }
    .inbox-table [data-card="actions"] { order:8; }
  .inbox-table tbody tr {
    padding-right:44px;
  }
  .inbox-table tbody tr.selected {
    background:var(--hover-2);
    box-shadow:var(--ring-light), inset 3px 0 0 var(--text);
  }
  .inbox-table tbody tr.selected td {
    background:transparent;
    box-shadow:none;
  }
  .inbox-table .card-control {
    position:absolute;
    top:12px;
    right:14px;
    display:flex;
    width:auto;
    padding:0;
  }
  .inbox-table .inbox-source-cell {
    display:block;
    padding-left:0 !important;
  }
  .inbox-table .inbox-source-cell::before {
    content:none;
  }
  .inbox-table .inbox-sender,
  .inbox-table .inbox-subject,
  .inbox-table .inbox-claim-name {
    white-space:normal;
  }
}

/* ============================================================
 * 30. ADMIN — settings console using shared app primitives
 * ============================================================ */
.admin-panel {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.admin-filter-bar {
  gap:8px;
  flex:0 0 auto;
}
.admin-filter-summary {
  display:inline-flex;
  align-items:center;
  min-height:26px;
}
.admin-table-pad {
  padding:var(--canvas-gutter-top) var(--canvas-gutter-side);
  width:100%;
  box-sizing:border-box;
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:var(--widget-stack-gap);
  overflow:hidden;
}
.admin-table-pad > .table-shell-with-rail {
  flex:1;
  min-height:0;
}
.admin-action-notice {
  flex:0 0 auto;
}
.admin-form-body {
  padding:var(--canvas-gutter-top) var(--canvas-gutter-side);
  max-width:1100px;
  margin:0 auto;
}
.admin-panel > .admin-form-body:not(.admin-playbook-body):not(.admin-rules-body) {
  flex:1;
  min-height:0;
  width:100%;
  overflow:auto;
  scrollbar-gutter:stable;
}
.admin-form-body.admin-playbook-body {
  max-width:none;
  width:100%;
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.admin-form-body.admin-rules-body {
  max-width:none;
  width:100%;
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:var(--widget-stack-gap);
  overflow:auto;
  scrollbar-gutter:stable;
}
.admin-rules-body > .table-shell-with-rail {
  flex:0 0 auto;
  height:min(360px, 36vh);
  min-height:220px;
}
.admin-rules-body .form-grid.two {
  flex:0 0 auto;
  align-items:stretch;
}
.admin-rules-body .form-grid.two > .table-shell-with-rail {
  height:100%;
  min-height:240px;
}
.admin-notification-rules-panel,
.admin-alert-templates-panel {
  min-height:calc(100vh - 150px);
}
.admin-form-body.admin-notification-rules-body,
.admin-form-body.admin-alert-templates-body {
  overflow:hidden;
}
.admin-notification-rules-body > .admin-notification-rules-table,
.admin-alert-templates-body > .admin-alert-templates-table {
  flex:1 1 auto;
  height:auto;
  min-height:360px;
}
.admin-form-body.admin-alert-templates-body:has(.admin-alert-template-editor) {
  overflow:auto;
}
.admin-alert-templates-body:has(.admin-alert-template-editor) > .admin-alert-templates-table {
  flex:0 0 auto;
  min-height:280px;
}
.admin-playbook-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex:0 0 auto;
}
.admin-playbook-heading > div:first-child { display:grid; gap:4px; max-width:760px; }
.admin-save-actions {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.admin-table-foot {
  flex:0 0 auto;
  margin-top:12px;
  padding-top:14px;
  border-top:1px solid var(--rule);
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  font-size: var(--text-body);
  color:var(--text-3);
}
.admin-chip-list {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.admin-audit-search {
  flex:1 1 360px;
  min-width:280px;
  max-width:560px;
}
.admin-now {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
}


.admin-action-notice {
  margin-bottom:12px;
  padding:8px 10px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface-2);
  color:var(--text-2);
  font-size:12.5px;
}
.admin-member-actions {
  position:relative;
  display:inline-flex;
  justify-content:flex-end;
}
.admin-people-table tr.has-open-menu,
.admin-people-table tr.has-open-menu > td {
  position:relative;
  z-index:20;
}
.admin-member-menu {
  min-width:190px;
  z-index:60;
}
.admin-member-menu .menu-item:disabled {
  cursor:not-allowed;
  opacity:0.45;
}
.admin-role-change-person {
  display:flex;
  align-items:center;
  gap:10px;
}
.admin-role-change-description {
  margin-top:6px;
  line-height:1.45;
}
.admin-role-change-confirmation {
  margin-top:16px;
}
.critical-text {
  color:var(--critical);
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
}
.admin-people-table th,
.admin-people-table td,
.admin-portal-table th,
.admin-portal-table td,
.admin-audit-table th,
.admin-audit-table td,
.admin-permissions-table th,
.admin-permissions-table td {
  padding-left:12px;
  padding-right:12px;
}
.admin-people-table .is-muted td,
.admin-portal-table .is-muted td {
  opacity:0.6;
}
.admin-permissions-table {
  table-layout:fixed;
}
.admin-permissions-table th:not(:first-child),
.admin-permissions-table td:not(:first-child) {
  text-align:center;
}
.admin-permissions-table th:first-child,
.admin-permissions-table td:first-child {
  width:34%;
}
.admin-permissions-table .active-role {
  background:var(--surface-2);
}
.admin-permission-group td {
  padding:9px 10px;
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  background:linear-gradient(180deg, var(--surface-2), var(--surface-3));
}
.admin-role-col-btn {
  appearance:none; border:0; background:none; padding:0; margin:0;
  font:inherit; color:inherit; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;
}
.admin-role-col-btn:hover { color:var(--text); }
.admin-role-lock {
  display:block;
  margin-top:2px;
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-regular);
}
.permission-mark {
  width:18px;
  height:18px;
  border-radius:var(--radius-pill);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
}
.permission-full {
  color:var(--success);
  background:var(--success-soft);
}
.permission-limited {
  border:1px solid var(--text-2);
  background:var(--surface);
}

@media (max-width: 760px) {
  .app-page-body > .lx-1youv2o,
  .app-page-body > .calendar-page,
  .app-page-body > .page-scroll-region,
  .app-page-body > .lx-1qcw925,
  .admin-panel,
  .admin-playbook-body .document-playbook-catalog,
  .admin-playbook-body .document-playbook-catalog.is-list-view .document-playbook-split,
  .admin-playbook-body .document-playbook-index,
  .admin-playbook-body .document-playbook-table-shell {
    display:block;
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .app-page-body > .my-work-root {
    display:flex;
    flex-direction:column;
    gap:var(--widget-gap);
    height:auto;
    min-height:0;
    overflow:visible;
  }
  /* IW35 / IW37 (seventh pass F3, eighth pass F1): the Admin canvases follow
     the page tokens at 760 (12 via the :root re-bind) and keep their widget
     stack — a single-column grid instead of display:block, which dropped
     the flex gap to 0 */
  .admin-table-pad,
  .admin-panel > .admin-form-body:not(.admin-playbook-body):not(.admin-rules-body),
  .admin-form-body.admin-playbook-body,
  .admin-form-body.admin-rules-body {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    align-content:start;
    gap:var(--widget-stack-gap);
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .admin-rules-body > .table-shell-with-rail,
  .admin-rules-body .form-grid.two > .table-shell-with-rail {
    height:auto;
    min-height:0;
  }
  .admin-notification-rules-panel,
  .admin-alert-templates-panel,
  .admin-form-body.admin-notification-rules-body,
  .admin-form-body.admin-alert-templates-body,
  .admin-notification-rules-body > .admin-notification-rules-table,
  .admin-alert-templates-body > .admin-alert-templates-table {
    min-height:0;
  }
  .admin-permissions-table {
    min-width:720px;
  }
}

/* Edit-mode overrides slot — DO NOT REMOVE */

/* === Generated static style classes: start === */
/* Generated by scripts/lift-static-inline-styles.mjs. Keep static visual values out of JSX. */

.document-editor-mount {
  min-height:620px;
}

.doc-workspace,
.template-workspace {
  display:grid;
  gap:16px;
}

.doc-workspace {
  grid-template-columns:minmax(0, 1fr);
  min-height:calc(100vh - 150px);
}

.doc-workspace-sidebar,
.doc-workspace-main,
.template-editor-panel,
.merge-field-panel {
  border:1px solid var(--border);
  border-radius:var(--lex-card-radius);
  background:var(--surface);
}

.doc-workspace-sidebar {
  overflow:hidden;
}

.doc-workspace-sidebar-head,
.doc-workspace-head,
.template-workspace-head,
.merge-field-panel-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--border);
  padding:12px;
}

.doc-workspace-main {
  min-width:0;
  overflow:hidden;
}

.doc-workspace-head > div:first-child {
  flex:1;
  min-width:0;
}

.doc-workspace-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-shrink:0;
}

.doc-workspace-list-item {
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid var(--border);
  background:transparent;
  padding:10px 12px;
  text-align:left;
  color:var(--text);
  cursor:pointer;
}

.doc-workspace-list-item:hover,
.doc-workspace-list-item.active {
  background:var(--surface-2);
}

.doc-workspace-list-item span,
.doc-template-list button span {
  display:block;
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}

.doc-workspace-list-item small,
.doc-template-list button small {
  display:block;
  margin-top:2px;
  color:var(--text-3);
  font-size: var(--text-xs);
}

.doc-template-picker {
  display:grid;
  gap:8px;
  padding:12px;
}

.doc-template-picker label,
.template-editor-panel label {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
}

.doc-template-picker input,
.doc-title-input,
.merge-field-row input,
.merge-field-row select,
.template-editor-panel textarea {
  width:100%;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text);
  font:inherit;
}

/* Round 3: template-editor rows adopt the central 40px control; only the
   inputs keep a tighter inset (selects need the recipe's 36px chevron
   clearance, which their old 9px right padding crowded). */
.doc-template-picker input,
.merge-field-row input {
  padding:0 9px;
}

.doc-title-input {
  height:38px;
  min-width:0;
  border-color:transparent;
  padding:0;
  font-size:20px;
  font-weight:720;
}

.doc-title-input:focus {
  border-color:var(--border);
  padding:0 8px;
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

.doc-template-list {
  display:grid;
  gap:4px;
  max-height:310px;
  overflow:auto;
}

.doc-template-list button {
  border:1px solid transparent;
  border-radius:var(--radius);
  background:transparent;
  padding:8px;
  text-align:left;
  cursor:pointer;
}

.doc-template-list button:hover {
  border-color:var(--border);
  background:var(--surface-2);
}

.doc-title-label {
  display:block;
  margin-bottom:2px;
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.doc-status {
  color:var(--accent);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.doc-save-callout {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--border);
  padding:10px 12px;
  color:var(--text-2);
  font-size: var(--text-body);
}

.doc-save-callout.unsaved {
  background:var(--warn-soft);
  color:var(--warn);
}

.doc-save-callout.saved {
  background:var(--surface-2);
}

.new-document-chooser {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.new-document-option {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:12px;
  min-height:132px;
  border:1px solid var(--border);
  border-radius:var(--lex-card-radius);
  background:var(--surface);
  padding:16px;
  text-align:left;
  color:var(--text);
  cursor:pointer;
}

.new-document-option:hover {
  border-color:var(--accent);
  background:var(--surface-2);
}

.new-document-option-icon {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:var(--radius-pill);
  background:var(--surface-2);
  color:var(--accent);
}

.new-document-option-title {
  font-size: var(--text-lg);
  font-weight:720;
}

.new-document-option-copy {
  margin-top:6px;
  color:var(--text-2);
  font-size: var(--text-body);
  line-height:1.4;
}

.doc-editor-shell {
  background:var(--surface);
}

.doc-editor-toolbar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  border-bottom:1px solid var(--border);
  padding:8px 10px;
}

.doc-editor-tool {
  min-width:30px;
  height:28px;
  border:1px solid transparent;
  border-radius:var(--radius-control);
  background:transparent;
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  cursor:pointer;
}

.doc-editor-tool:hover,
.doc-editor-tool.active {
  border-color:var(--border);
  background:var(--surface-2);
}

.doc-editor-divider {
  width:1px;
  height:18px;
  background:var(--border);
  margin:0 4px;
}

.doc-editor-surface {
  padding:24px 32px;
  line-height:1.65;
  outline:none;
}

.doc-editor-surface h2,
.doc-editor-surface h3 {
  margin:18px 0 8px;
}

.doc-editor-surface p {
  margin:0 0 12px;
}

.merge-field-chip {
  display:inline-flex;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--warning-soft);
  padding:1px 6px;
  color:var(--accent);
  font-family:var(--mono-font, monospace);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
}

.template-grid {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 360px;
  gap:16px;
}

.template-editor-panel,
.merge-field-panel {
  padding:12px;
}

.template-editor-panel {
  display:grid;
  gap:10px;
}

.template-editor-panel textarea {
  min-height:74px;
  resize:vertical;
  padding:9px;
}

.merge-field-panel {
  align-self:start;
  padding:0;
}

.merge-field-row {
  display:grid;
  gap:6px;
  border-bottom:1px solid var(--border);
  padding:10px;
}

.success-banner {
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--success);
  border-radius:var(--lex-card-radius);
  background:var(--success-soft);
  color:var(--success);
  padding:8px 10px;
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}

@media (max-width: 980px) {
  .doc-workspace,
  .template-grid {
    grid-template-columns:1fr;
  }

  .doc-title-input {
    min-width:0;
    width:100%;
  }
}
/* =====================================================
 * Claimant portal (portal.jsx) — staff-side portal card, welcome
 * email composer, preview-as-claimant mock site, and admin roster.
 * The .portal-preview-* mock-site styling is intentionally distinct
 * from the staff shell — it renders the claimant-facing site.
 * ============================================================ */
.portal-card { border:1px solid var(--rule); background:var(--surface); position:relative; }
.portal-card-head { display:flex; align-items:baseline; gap:var(--space-4); padding:var(--space-4) var(--space-6) var(--space-3); border-bottom:1px solid var(--rule); }
.portal-card-title { font-size: var(--text-md); color:var(--text); font-weight: var(--font-weight-medium); }
.portal-card-body { padding:var(--space-5) var(--space-6); }
.portal-card-actions { margin-top:var(--space-5); padding-top:var(--space-4); border-top:1px solid var(--rule-soft); display:flex; gap:var(--space-3); justify-content:flex-end; }
.portal-spacer { flex:1; }
.portal-preview-open-btn { padding:0 var(--space-3); font-size: var(--text-xs); }
.portal-critical-btn { border-color:rgba(157,45,36,0.4); color:var(--critical); }
.portal-disable-btn { background:var(--critical); border-color:var(--critical); }
.portal-confirm-copy { font-size: var(--text-body); color:var(--text-2); line-height:1.6; }
.portal-section { padding-top:var(--space-4); }
.portal-section-title { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-semibold); margin-bottom:var(--space-3); }
.portal-stat-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:var(--space-6); padding-bottom:var(--space-4); border-bottom:1px solid var(--rule-soft); }
.portal-stat-label { font-size: var(--text-sm); color:var(--text-3); font-weight: var(--font-weight-medium); margin-bottom:var(--space-1); }
.portal-stat-value { font-size: var(--text-md); color:var(--text); font-weight: var(--font-weight-medium); font-variant-numeric:tabular-nums; }
.portal-state-row { display:flex; gap:var(--space-4); align-items:flex-start; }
.portal-state-icon-accent { color:var(--accent); margin-top:2px; }
.portal-state-icon-critical { color:var(--critical); margin-top:2px; }
.portal-state-icon-muted { color:var(--text-3); margin-top:2px; }
.portal-state-main { min-width:0; flex:1; }
.portal-state-title { font-size: var(--text-body); font-weight: var(--font-weight-medium); color:var(--text); }
.portal-state-when { font-weight: var(--font-weight-regular); color:var(--text-3); }
.portal-state-sub { font-size: var(--text-body); color:var(--text-3); margin-top:2px; }
.portal-invite-email { font-style:normal; }
.portal-toggle-row { display:grid; grid-template-columns:1fr 36px; gap:var(--space-4); padding:var(--space-3) 0; cursor:pointer; align-items:flex-start; border-bottom:1px dashed var(--rule-soft); }
.portal-toggle-label { font-size:12.5px; color:var(--text); font-weight: var(--font-weight-medium); }
.portal-toggle-hint { font-size: var(--text-xs); color:var(--text-3); margin-top:2px; line-height:1.45; }
.portal-toggle-control { padding-top:2px; }
.portal-toggle-track { width:30px; height:16px; display:inline-block; position:relative; border-radius:var(--radius-pill); transition:background 120ms; }
.portal-toggle-knob { position:absolute; top:2px; width:12px; height:12px; border-radius:var(--radius-role-full); background:var(--bg); transition:left 120ms; box-shadow:0 1px 2px rgba(0,0,0,0.15); }
.portal-toggle-input { display:none; }
.portal-email-recipient { display:flex; align-items:center; gap:var(--space-5); padding:var(--space-4) var(--space-5); border:1px solid var(--rule); background:var(--surface-2); margin-bottom:var(--space-6); }
.portal-email-recipient-main { flex:1; min-width:0; }
.portal-email-recipient-name { font-size: var(--text-body); font-weight: var(--font-weight-medium); }
.portal-email-recipient-meta { font-size: var(--text-xs); color:var(--text-3); }
.portal-email-from { font-size: var(--text-sm); color:var(--text-3); text-align:right; }
.portal-email-from-name { color:var(--text-2); font-weight: var(--font-weight-medium); }
.portal-email-body-field { margin-top:var(--space-5); }
.portal-email-body-input { font-family:var(--font-sans); font-size:12.5px; line-height:1.55; }
.portal-email-note { margin-top:var(--space-5); padding:var(--space-4) var(--space-5); border:1px solid var(--rule); background:var(--surface-2); font-size: var(--text-body); color:var(--text-3); display:flex; gap:var(--space-3); align-items:flex-start; }
.portal-email-note-icon { margin-top:1px; color:var(--text-3); flex-shrink:0; }
.portal-email-preview { border:1px solid var(--rule-firm); background:var(--surface); position:relative; }
.portal-email-preview-head { padding:var(--space-6) 18px var(--space-5); border-bottom:1px solid var(--rule-soft); display:flex; align-items:center; gap:var(--space-4); }
.portal-email-preview-logo { width:24px; height:24px; background:var(--ink); color:var(--ink-fg); display:flex; align-items:center; justify-content:center; font-size: var(--text-body); font-weight: var(--font-weight-semibold); }
.portal-firm-name { font-size: var(--text-md); font-weight: var(--font-weight-medium); color:var(--text); }
.portal-email-preview-subject { font-size: var(--text-2xs); color:var(--text-3); }
.portal-email-preview-body { padding:var(--space-8) 28px; font-size: var(--text-body); color:var(--text); line-height:1.7; white-space:pre-wrap; font-family:var(--font-sans); }
.portal-email-preview-cta { padding:0 28px 22px; }
.portal-email-preview-signin { display:inline-block; padding:var(--space-4) 22px; background:var(--ink); color:var(--ink-fg); font-size: var(--text-body); font-weight: var(--font-weight-medium); text-decoration:none; border-radius:var(--radius-xs); letter-spacing:0.01em; }
.portal-email-preview-link-note { font-size: var(--text-sm); color:var(--text-3); margin-top:var(--space-5); }
.portal-email-preview-footer { padding:var(--space-5) 28px; border-top:1px solid var(--rule-soft); font-size: var(--text-sm); color:var(--text-3); background:var(--surface-2); }
.portal-preview-backdrop { position:fixed; inset:0; background:rgba(15,15,14,0.55); z-index:100; display:flex; align-items:center; justify-content:center; padding:var(--space-8); backdrop-filter:blur(2px); }
.portal-preview-window { width:100%; max-width:1080px; max-height:92vh; background:var(--surface); box-shadow:0 20px 60px rgba(0,0,0,0.4); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--rule-firm); }
.portal-preview-banner { position:absolute; top:14px; left:50%; transform:translateX(-50%); background:var(--accent); color:var(--surface); padding:var(--space-1) var(--space-5); font-size: var(--text-body); font-weight: var(--font-weight-bold); border-radius:var(--radius-square); z-index:2; pointer-events:none; }
.portal-preview-chrome { background:var(--surface-3); padding:var(--space-3) var(--space-6); border-bottom:1px solid var(--rule-firm); display:flex; align-items:center; gap:var(--space-4); flex-shrink:0; }
.portal-preview-traffic-lights { display:flex; gap:5px; }
.portal-preview-traffic-red { width:11px; height:11px; border-radius:var(--radius-role-full); background:var(--portal-mock-traffic-red); }
.portal-preview-traffic-amber { width:11px; height:11px; border-radius:var(--radius-role-full); background:var(--portal-mock-traffic-amber); }
.portal-preview-traffic-green { width:11px; height:11px; border-radius:var(--radius-role-full); background:var(--portal-mock-traffic-green); }
.portal-preview-url-bar { flex:1; padding:var(--space-1) var(--space-6); background:var(--bg); border-radius:var(--radius-sm); border:1px solid var(--rule); font-size: var(--text-body); color:var(--text-3); display:flex; align-items:center; gap:var(--space-3); }
.portal-preview-url-lock { color:var(--portal-mock-positive); }
.portal-preview-action-btn { font-size: var(--text-xs); }
.portal-preview-page { overflow:auto; flex:1; background:var(--bg); }
.portal-preview-nav { background:var(--surface); border-bottom:1px solid var(--rule); padding:var(--space-6) 32px; display:flex; align-items:center; gap:var(--space-7); }
.portal-preview-brand { display:flex; align-items:center; gap:var(--space-4); }
.portal-preview-logo { width:26px; height:26px; background:var(--ink); color:var(--ink-fg); display:flex; align-items:center; justify-content:center; font-size: var(--text-md); font-weight: var(--font-weight-semibold); }
.portal-preview-brand-sub { font-size: var(--text-2xs); color:var(--text-3); margin-top:-1px; }
.portal-preview-meta { font-size: var(--text-sm); color:var(--text-3); }
.portal-preview-hero { padding:36px 32px var(--space-9); max-width:880px; margin:0 auto; }
.portal-preview-eyebrow { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-semibold); }
.portal-preview-headline { font-size:36px; font-weight: var(--font-weight-semibold); letter-spacing:-0.025em; margin:var(--space-2) 0 var(--space-6); line-height:1.15; }
.portal-preview-summary { font-size: var(--text-md); color:var(--text-2); line-height:1.6; max-width:640px; }
.portal-preview-summary-quiet { font-size:13.5px; color:var(--text-3); }
.portal-preview-strong { color:var(--text); font-weight: var(--font-weight-medium); }
.portal-preview-accent { color:var(--accent); }
.portal-preview-soft { color:var(--text-2); }
.portal-preview-facts { display:grid; grid-template-columns:repeat(3, 1fr); gap:0; margin-top:28px; border:1px solid var(--rule); background:var(--surface); }
.portal-preview-fact { padding:var(--space-6) 18px; border-right:1px solid var(--rule); }
.portal-preview-fact-last { padding:var(--space-6) 18px; }
.portal-preview-fact-value { font-size: var(--text-md); font-weight: var(--font-weight-medium); margin-top:var(--space-1); }
.portal-preview-fact-note { font-size: var(--text-xs); color:var(--text-3); margin-top:2px; }
.portal-preview-team-lead { font-size: var(--text-body); margin-top:var(--space-1); }
.portal-preview-team-role { color:var(--text-3); font-weight: var(--font-weight-regular); }
.portal-preview-team-member { font-size: var(--text-sm); color:var(--text-2); margin-top:1px; }
.portal-preview-columns { padding:var(--space-3) 32px 40px; max-width:880px; margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr; gap:28px; }
.portal-preview-section-head { display:flex; align-items:baseline; gap:var(--space-4); padding-bottom:var(--space-3); border-bottom:1px solid var(--rule-firm); margin-bottom:var(--space-1); }
.portal-preview-section-title { margin:0; font-size: var(--text-xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.01em; }
.portal-preview-count-accent { font-size: var(--text-sm); color:var(--accent); }
.portal-preview-empty { padding:var(--space-9); text-align:center; color:var(--text-3); }
.portal-preview-list-empty { padding:var(--space-7); font-size: var(--text-body); color:var(--text-3); }
.portal-upcoming-row { display:grid; grid-template-columns:70px 1fr; gap:var(--space-6); padding:var(--space-6) 0; border-bottom:1px solid var(--rule-soft); align-items:flex-start; }
.portal-upcoming-month { font-size: var(--text-xs); color:var(--text-3); }
.portal-upcoming-day { font-size:28px; font-weight: var(--font-weight-semibold); line-height:1; margin-top:2px; }
.portal-upcoming-relative { font-size: var(--text-body); font-weight: var(--font-weight-semibold); margin-top:var(--space-1); }
.portal-upcoming-main { padding-top:2px; }
.portal-upcoming-title { font-size:13.5px; font-weight: var(--font-weight-medium); color:var(--text); line-height:1.4; }
.portal-upcoming-sub { font-size: var(--text-sm); color:var(--text-3); margin-top:var(--space-1); line-height:1.5; }
.portal-message-row { padding:var(--space-5) 0; border-bottom:1px solid var(--rule-soft); }
.portal-message-head { display:flex; gap:var(--space-3); align-items:center; margin-bottom:var(--space-1); }
.portal-message-author { font-size: var(--text-sm); font-weight: var(--font-weight-medium); }
.portal-message-body { font-size:12.5px; color:var(--text-2); line-height:1.5; }
.portal-message-cta { margin-top:var(--space-5); width:100%; justify-content:center; }
.portal-preview-docs { margin-top:28px; }
.portal-doc-row { display:flex; gap:var(--space-4); padding:var(--space-4) 0; border-bottom:1px solid var(--rule-soft); align-items:center; }
.portal-doc-icon { color:var(--text-3); }
.portal-doc-main { flex:1; min-width:0; }
.portal-doc-name { font-size:12.5px; font-weight: var(--font-weight-medium); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-preview-footer { border-top:1px solid var(--rule); padding:var(--space-8) 32px; max-width:880px; margin:0 auto; text-align:center; font-size: var(--text-body); color:var(--text-3); }
.portal-admin-filter-end { margin-left:auto; display:flex; gap:var(--space-2); }
.portal-admin-claimant-cell { display:flex; align-items:center; gap:var(--space-4); min-width:0; }
.portal-admin-claimant-main { min-width:0; }
=======
/* Document generation — template picker (docgen.jsx) */
.docgen-picker-intro { margin-bottom:var(--space-7); font-size:12.5px; color:var(--text-2); line-height:1.5; }
.docgen-picker-deadline-note { margin-top:var(--space-3); padding:var(--space-4); background:var(--surface-2); border-radius:var(--radius); }
.docgen-template-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.docgen-template-option { text-align:left; padding:var(--space-5); border-radius:var(--radius); cursor:pointer; font-family:inherit; display:flex; flex-direction:column; gap:var(--space-2); }
.docgen-template-option-head { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); }
.docgen-template-option-title { font-size: var(--text-body); font-weight: var(--font-weight-medium); color:var(--text); }
.docgen-template-option-desc { line-height:1.45; }
.docgen-template-suggested-chip { font-size:9px; }
.docgen-template-chip-row { display:flex; gap:var(--space-2); margin-top:var(--space-1); }
.docgen-template-statute-chip { font-size: var(--text-2xs); }
/* Document generation — merge field editor (docgen.jsx) */
.docgen-merge-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-4); }
.docgen-merge-title { font-weight: var(--font-weight-medium); }
.docgen-draft-all-btn { width:100%; margin-bottom:var(--space-6); justify-content:center; }
.docgen-field-group { margin-bottom:var(--space-7); }
.docgen-field-group-label { font-size: var(--text-2xs); font-weight: var(--font-weight-medium); margin-bottom:var(--space-3); }
.docgen-field-group-icon { margin-right:var(--space-1); }
.docgen-field { margin-bottom:var(--space-5); }
.docgen-field-label-row { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:var(--space-1); }
.docgen-field-label { font-size: var(--text-body); font-weight: var(--font-weight-medium); color:var(--text-2); }
.docgen-field-regen-btn { padding:0; height:18px; width:18px; opacity:0.7; }
.docgen-field-textarea { font-size: var(--text-body); min-height:90px; line-height:1.5; font-family:inherit; }
.docgen-field-input { font-size:11.5px; }
/* Document generation — live preview chrome (docgen.jsx) */
.docgen-preview-pane { display:flex; flex-direction:column; height:100%; }
.docgen-preview-head { padding:var(--space-4) var(--space-7); border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; background:var(--surface); }
.docgen-docname-input { font-size:12.5px; font-weight: var(--font-weight-medium); max-width:520px; border:1px solid transparent; background:transparent; padding:var(--space-1) var(--space-2); }
.docgen-preview-actions { display:flex; gap:var(--space-2); }
.docgen-preview-scroll { flex:1; overflow:auto; padding:var(--space-9); background:var(--doc-mock-paper-bg); }
/* Document generation — rendered legal document. Intentional paper palette;
   these inks/rules simulate a printed filing and are deliberately not themed. */
.docgen-doc-page { background:white; max-width:720px; margin:0 auto; padding:60px 80px; min-height:900px; box-shadow:0 1px 3px rgba(0,0,0,0.08), 0 8px 24px rgba(0,0,0,0.06); font-size: var(--text-sm); line-height:1.7; color:var(--doc-mock-ink); }
.docgen-doc-page-empty { background:white; max-width:720px; margin:0 auto; padding:60px 80px; min-height:900px; box-shadow:0 1px 3px rgba(0,0,0,0.08), 0 8px 24px rgba(0,0,0,0.06); }
.docgen-doc-letterhead { text-align:center; margin-bottom:32px; padding-bottom:var(--space-6); border-bottom:1px solid var(--doc-mock-tan); }
.docgen-doc-letterhead-name { font-size:16px; font-weight: var(--font-weight-medium); }
.docgen-doc-letterhead-meta { font-size: var(--text-2xs); color:var(--doc-mock-gray); margin-top:var(--space-1); }
.docgen-doc-caption { margin-bottom:28px; }
.docgen-doc-caption-court { text-align:center; font-size: var(--text-sm); font-weight: var(--font-weight-medium); margin-bottom:var(--space-1); }
.docgen-doc-caption-state { text-align:center; font-size: var(--text-xs); margin-bottom:18px; }
.docgen-doc-caption-table { width:100%; border-top:1.5px solid var(--doc-mock-ink); border-bottom:1.5px solid var(--doc-mock-ink); }
.docgen-doc-caption-parties { width:55%; padding:var(--space-4) 0; vertical-align:top; border-right:1px solid var(--doc-mock-ink); padding-right:var(--space-7); }
.docgen-doc-caption-party-name { margin-left:30px; margin-top:var(--space-1); }
.docgen-doc-caption-party-role { margin-left:30px; }
.docgen-doc-caption-claim-line { margin-top:var(--space-3); }
.docgen-doc-caption-title-cell { padding:var(--space-4) 0 var(--space-4) var(--space-7); vertical-align:top; text-align:center; }
.docgen-doc-caption-title { font-size: var(--text-body); font-weight: var(--font-weight-medium); margin-top:var(--space-5); }
.docgen-doc-caption-subtitle { font-size: var(--text-sm); margin-top:var(--space-1); }
.docgen-doc-caption-spacer { height:18px; }
.docgen-doc-recipient { margin-bottom:18px; font-size:11.5px; }
.docgen-doc-spaced-line { margin-bottom:var(--space-6); }
.docgen-doc-subject { margin-bottom:var(--space-6); font-size:11.5px; }
.docgen-doc-subject-line { white-space:pre; }
.docgen-doc-heading { margin-top:18px; margin-bottom:var(--space-3); font-weight: var(--font-weight-medium); text-decoration:underline; font-size: var(--text-sm); }
.docgen-doc-paragraph { margin:0 0 var(--space-5); text-indent:24px; }
.docgen-doc-prepared-stamp { margin-top:28px; font-size: var(--text-2xs); color:var(--doc-mock-brown); text-align:right; }
.docgen-doc-signature { margin-top:36px; }
.docgen-doc-signature-closing { margin-bottom:var(--space-2); }
.docgen-doc-signature-space { height:36px; }
.docgen-doc-signature-block { border-top:1px solid var(--doc-mock-ink); width:240px; padding-top:var(--space-1); }
.docgen-doc-signature-title { white-space:pre-line; font-size: var(--text-sm); color:var(--doc-mock-gray); margin-top:2px; }
.lx-10432yj { display:flex; align-items:baseline; gap:var(--space-3); flex-wrap:wrap; }
.lx-106h3gy { min-width:160px; }
.lx-109c0zu { margin-bottom:var(--space-5); padding:var(--space-7); border:1.5px dashed var(--border-strong); border-radius:var(--radius); text-align:center; cursor:pointer; background:var(--surface-2); }
.claim-upload-target { display:grid; width:100%; gap:6px; place-items:center; color:inherit; font:inherit; }
.claim-upload-target:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.inbox-upload-target { width:100%; color:inherit; font:inherit; }
.lx-10absrh { padding:var(--space-5); background:var(--surface-2); border:1px dashed var(--border-strong); border-radius:var(--radius); font-size: var(--text-sm); color:var(--text-2); }
.claim-portal-page { padding:var(--space-8) var(--space-9); max-width:1100px; margin:0 auto; }
.lx-10ow05s { white-space:nowrap; font-variant-numeric:tabular-nums; }
.lx-11eqgpp { padding:2px var(--space-2); font-size: var(--text-2xs); background:var(--critical); color:white; border-color:var(--critical); }
.lx-11in013 { display:flex; gap:var(--space-4); align-items:center; padding:var(--space-6) 0 18px; border-bottom:1px solid var(--rule); margin-bottom:var(--space-1); }
.lx-11k3dk9 { font-size:11.5px; padding:3px var(--space-2); max-width:200px; }
.claim-portal-activity-row { display:grid; grid-template-columns:110px 1fr; gap:var(--space-6); padding:var(--space-4) var(--space-6); align-items:baseline; }
.lx-11zmobi { font-size:12.5px; cursor:pointer; padding:2px var(--space-1); margin-left:-var(--space-1); border-radius:var(--radius-control); }
.lx-12bwc43 { margin-bottom:var(--space-6); line-height:1.55; }
.lx-12gxw59 { font-size: var(--text-body); margin-right:var(--space-3); }
.lx-12ql7hg { background:var(--accent-soft); border-color:var(--accent); }
.calendar-week-head { display:grid; border-bottom:1px solid var(--rule); background:var(--surface); }
.lx-12tzurm { font-size: var(--text-2xs); }
.calendar-month-more-count { font-size: var(--text-2xs); }
.lx-12tzurm,
.claim-header-staff-role { font-size: var(--text-2xs); }
.lx-12xbtkj { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-2); }
.lx-130hxdz { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.3; }

.lx-13fsz0w { display:inline-flex; align-items:center; gap:var(--space-2); }
.calendar-month-grid { display:grid; grid-template-columns:repeat(7, 1fr); border:1px solid var(--rule); border-radius:var(--radius-widget); overflow:hidden; background:var(--surface); }
.lx-13n0cpr { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-7) 18px; }
.textarea-tall { width:100%; min-height:100px; font-size: var(--text-body); line-height:1.6; font-family:inherit; }
.lx-13y1bkz { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:var(--space-9); align-items:start; margin-top:var(--space-9); }
.lx-13zftl7 { font-size:12.5px; }
.lx-140j8fz { font-size: var(--text-md); font-weight: var(--font-weight-medium); color:var(--text); font-family:var(--font-sans); }
.lx-1453qfg { font-size: var(--text-sm); color:var(--text-3); margin-top:2px; }
.lx-14dyjk4 { font-size: var(--text-sm); font-weight: var(--font-weight-medium); padding-top:2px; }
.lx-14i0x9v,
.claim-header-meta-value { color:var(--text-2); }
.claim-header-meta-ellipsis { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lx-14zmgyl { font-size: var(--text-body); color:var(--text-3); margin-top:var(--space-1); }
.lx-15kjdyn { margin-bottom:var(--space-6); }
.my-week-strip-card { margin-bottom:var(--space-6); }
.lx-15nlm8x { list-style:none; padding:0; margin:0; }
.lx-15s4z2v { width:30px; }
.lx-15wh22 { display:grid; grid-template-columns:2fr repeat(4, 1fr); border-bottom:1px solid var(--rule-firm); background:var(--surface-2); }
.lx-15zv1d5 { display:grid; grid-template-columns:1fr; gap:var(--space-5); }
.lx-162f4jk { min-height:600px; }
.lx-162f4jk,
.document-preview-page-tall { min-height:600px; }
.claim-portal-pitch-body { font-size:12.5px; color:var(--text-2); line-height:1.6; font-family:var(--font-sans); }
.claim-portal-account-positive { color:var(--portal-mock-positive); font-size: var(--text-xs); }
.lx-16ds5qz { font-size: var(--text-body); color:var(--text-3); font-variant-numeric:tabular-nums; }

.lx-16kgpua { font-weight: var(--font-weight-semibold); }

.lx-16ogups { margin:0; }
.lx-16va8l5,
.document-preview-page-count { text-align:right; font-family:var(--font-mono); font-size: var(--text-2xs); color:var(--doc-mock-muted); }
.lx-174fz5p { display:flex; align-items:center; gap:var(--space-2); margin-left:var(--space-1); font-size: var(--text-sm); color:var(--muted); cursor:pointer; }
.claim-portal-pitch-title { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); margin-bottom:var(--space-4); }
.lx-17h4zbm { border:0; background:transparent; color:var(--text-3); cursor:pointer; padding:0; font-size: var(--text-body); line-height:1; display:inline-flex; align-items:center; justify-content:center; }
.lx-17ndem8 { padding:var(--space-8) var(--space-9); max-width:1200px; margin:0 auto; }
.lx-17smfpk { margin-left:auto; display:flex; gap:var(--space-2); align-items:center; }
.lx-17wbxzk { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--rule-firm); border-radius:var(--radius-role-full); background:var(--surface-2); font-family:var(--font-sans); font-weight: var(--font-weight-medium); color:var(--text-2); letter-spacing:-0.02em; }
.lx-183w7x2 { margin-top:var(--space-1); }
.lx-1894lob { font-size: var(--text-md); font-weight: var(--font-weight-semibold); }
.lx-18bctci { margin-top:var(--space-4); color:var(--critical); }
.lx-18ftw77 { display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center; }
.lx-18m9zba { background:var(--surface-3); color:var(--text); flex-shrink:0; width:40px; height:40px; font-size: var(--text-lg); }
.lx-18mzv45 { margin-bottom:var(--space-2); display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); }
.my-week-event-time { margin-right:3px; }
.lx-18upteq { display:inline-block; width:8px; height:8px; border-radius:var(--radius-role-full); background:transparent; border:1px solid var(--text); box-shadow:inset 0 0 0 2px var(--bg); }
.lx-18w8l3b { color:var(--info); }
.lx-190i90e { display:flex; align-items:center; gap:9px; flex-wrap:wrap; row-gap:5px; }
.lx-191a6go { display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--space-5); margin-bottom:28px; }
.lx-192ffa0 { padding-right:var(--space-6); display:flex; gap:var(--space-2); }
.claim-portal-activity-sep { color:var(--text-3); font-family:var(--font-sans); font-weight: var(--font-weight-regular); }
.lx-196jsdo { padding:2px; height:24px; width:24px; }
.lx-19bne5f { text-align:right; }

.calendar-week-head-date { font-size:16px; margin-top:2px; }
.lx-1aepwji { padding:0 var(--space-3); font-size: var(--text-sm); }
.lx-1ahrpky { display:flex; flex:1; }
.calendar-drawer { position:fixed; top:0; right:0; bottom:0; width:460px; background:var(--surface); box-shadow:var(--ring-light), -12px 0 32px rgba(0,0,0,0.06); z-index:61; display:flex; flex-direction:column; overflow:hidden; }
.lx-1aimgka { display:flex; flex-direction:column; gap:var(--space-2); align-items:flex-end; }
.lx-1aqa2z9 { font-size:10.5px; }
.lx-1aqyeg0 { border-top:1.5px solid #444; border-bottom:1.5px solid #444; padding:var(--space-3) 0; display:grid; grid-template-columns:1fr 1fr; font-size: var(--text-xs); margin-bottom:18px; }
.calendar-toolbar-label { font-size: var(--text-xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.03em; }
.calendar-month-cell-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-1); }
.lx-1ay6fbd { grid-column:span 2; display:flex; justify-content:space-between; align-items:center; padding:var(--space-7) 18px; border:1px solid rgba(157,45,36,0.3); border-radius:var(--radius-sm); background:rgba(157,45,36,0.03); }
.lx-1b4miso { padding-top:28px; padding-bottom:28px; border-bottom:1px solid var(--rule); display:grid; grid-template-columns:240px 1fr; gap:36px; }
.lx-1b5bjus { display:flex; gap:var(--space-3); justify-content:flex-end; }
.lx-1aqyeg0,
.document-preview-meta-band { border-top:1.5px solid var(--doc-mock-rule); border-bottom:1.5px solid var(--doc-mock-rule); padding:var(--space-3) 0; display:grid; grid-template-columns:1fr 1fr; font-size: var(--text-xs); margin-bottom:18px; }
.lx-1b5bjus,
.close-deadline-actions { display:flex; gap:var(--space-3); justify-content:flex-end; }
.lx-1bwi5gt { justify-content:center; }
.lx-1bwxfwm { font-size: var(--text-sm); color:var(--text-2); line-height:1.55; }
.lx-1bxdilm { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-2); }
.lx-1c0wkxw { color:var(--text-3); }
.lx-1c54092 { display:grid; grid-template-columns:60px 28px 1fr 110px 130px; gap:var(--space-6); padding:var(--space-5) 0; border-bottom:1px solid var(--rule-soft); align-items:center; position:relative; }
.lx-1c5dypu { width:280px; }

.lx-1ciko4y { padding:var(--space-4) var(--space-1); display:flex; gap:var(--space-6); }
.claim-portal-account-value { color:var(--text); }
.lx-1csa4gq { display:inline-block; width:7px; height:7px; border-radius:var(--radius-role-full); background:var(--text); }
.lx-1cvaddt { min-width:0; }
.lx-1cytbe0 { font-weight: var(--font-weight-semibold); margin-bottom:var(--space-1); font-size: var(--text-sm); }
.lx-1cz2ubw { display:inline-block; width:8px; height:8px; border-radius:var(--radius-role-full); background:var(--text); }
.lx-1d1ni9l { font-size: var(--text-sm); margin-bottom:var(--space-3); }

.lx-1d57dfu { margin-top:28px; padding-top:var(--space-7); border-top:1px solid var(--border); }
.lx-1d99ihu { flex:1; height:1px; background:var(--rule); }
.lx-1dadp55 { text-decoration:underline; cursor:pointer; color:#2A5C36; }
.lx-1dfcg8x { margin-bottom:var(--space-6); padding:var(--space-4); border:1px solid var(--border); border-radius:var(--radius); display:flex; align-items:center; justify-content:space-between; }
.lx-1dfpu8m { margin-top:18px; display:flex; flex-direction:column; gap:var(--space-3); }
.lx-1ecm070 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); }
.lx-1edk8pu { font-size: var(--text-3xl); font-weight: var(--font-weight-semibold); margin-top:var(--space-1); letter-spacing:-0.02em; }
.lx-1ee6kwm { display:flex; gap:var(--space-2); margin-right:var(--space-3); }
.lx-1ef8l4v { margin-left:auto; }
.calendar-drawer-title { font-size: var(--text-body); font-weight: var(--font-weight-semibold); }
.lx-1eoyck9 { margin:0 0 var(--space-7); font-size: var(--text-lg); font-family:var(--font-sans); line-height:1.4; cursor:pointer; padding:var(--space-1) var(--space-2); margin-left:-var(--space-2); border-radius:var(--radius-sm); }
.lx-1erk0np { display:flex; justify-content:flex-end; }
.lx-1ert53o { width:80px; font-size: var(--text-sm); padding-top:3px; }
.claim-portal-account-row { display:flex; justify-content:space-between; padding:var(--space-1) 0; }
.close-deadline-summary { padding:var(--space-5); background:var(--surface-2); border-radius:var(--radius); margin-bottom:var(--space-7); border:1px solid var(--border); }
.lx-1ey6rt6 { grid-template-columns:1fr; }
.lx-1f2brzp { padding:var(--space-5) var(--space-3); text-align:center; border-left:1px solid var(--rule); font-size: var(--text-body); font-weight: var(--font-weight-medium); color:var(--text); }
.lx-1f4ai0h { display:flex; align-items:center; gap:var(--space-2); font-size: var(--text-xs); color:var(--muted);letter-spacing:0.01em; }
.lx-1f4eqzg { font-size: var(--text-body); line-height:1.65; color:var(--text); white-space:pre-wrap; }
.lx-1f4w9hr { margin-top:var(--space-4); }
.calendar-week-allday-event { width:100%; border:0; font:inherit; font-size:10.5px; padding:2px 5px; border-radius:var(--radius-xs); cursor:pointer; overflow:hidden; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.calendar-drawer-foot { padding:var(--space-5) var(--space-7); border-top:1px solid var(--border); display:flex; gap:var(--space-3); justify-content:space-between; background:var(--surface-2); }
.calendar-drawer-kind-bar { width:6px; height:24px; border-radius:var(--radius-xs); }
.lx-1g9to1h { font-size: var(--text-sm); padding-top:1px; }
.lx-1gm3eiu { font-weight: var(--font-weight-medium); color:var(--text); }
.lx-1gygmxf { width:30px; text-align:right; }
.lx-1h0nr6t { display:flex; gap:var(--space-7); font-size: var(--text-sm); color:var(--text-3); }
.lx-1h351y2 { font-size:22px; color:var(--text); font-weight: var(--font-weight-semibold); font-variant-numeric:tabular-nums; letter-spacing:-0.02em; }
.lx-1hdy01o { display:flex; gap:5px; flex-wrap:wrap; }
.calendar-toolbar-nav { display:flex; align-items:center; gap:var(--space-1); margin-left:var(--space-3); }
.lx-1hhst95 { background:var(--surface); }
.lx-1hhst95,
.cac-facts-table { background:var(--surface); }
.lx-1htijjp { color:var(--accent); cursor:pointer; }
.lx-1hxf89b { background:var(--surface-2); border-color:var(--border); margin-bottom:var(--space-6); }
.lx-1i39uw8 { height:100%; background:var(--accent); }
.lx-1i6yjmb { font-size:16px; color:var(--text-3); }
.lx-1i9hqy3 { font-size:28px; font-weight: var(--font-weight-semibold); letter-spacing:-0.03em; }
.lx-1ifa83x,
.close-deadline-meta { margin-top:3px; }
.lx-1ilh3ut { cursor:pointer; font-size: var(--text-xs); padding:var(--space-1) 9px; border:1px solid; }
.calendar-toolbar { display:flex; align-items:center; gap:var(--space-4); flex-wrap:wrap; }
.lx-1j3518m { border:1.5px solid var(--surface); }
.lx-1j83yi2 { margin-top:32px; padding:var(--space-6) 0 var(--space-1); border-top:1px solid var(--rule); font-size: var(--text-body); color:var(--text-3); }
.lx-1j8tcim { display:flex; gap:var(--space-3); align-items:center; flex-wrap:wrap; margin-bottom:var(--space-1); }
.calendar-week-allday-cell { padding:3px; border-left:1px solid var(--border); display:flex; flex-direction:column; gap:2px; }
.lx-1jejltp { font-size: var(--text-body); color:var(--text-2); }
.lx-1jemtkw { text-transform:capitalize; }
.lx-1jg6kgk { margin-top:var(--space-7); font-size: var(--text-body); color:var(--text-3); }
.lx-1jntcpo,
.note-card-head { display:flex; align-items:center; gap:var(--space-4); margin-bottom:var(--space-3); }
.lx-1jq1n20 { font-size: var(--text-body); font-weight: var(--font-weight-medium); margin-bottom:2px; }
.lx-1k5u04m { display:flex; gap:var(--space-1); }
.calendar-day-card-actions { display:flex; gap:var(--space-1); }
.lx-1kd9zl6 { position:absolute; top:14px; left:50%; transform:translateX(-50%); background:var(--accent); color:var(--surface); padding:var(--space-1) var(--space-5); font-size: var(--text-body); font-weight: var(--font-weight-bold); border-radius:var(--radius-square); z-index:2; pointer-events:none; }
.lx-1kl7j89 { padding:2px; height:22px; width:22px; opacity:0.5; }
.lx-1knytja { position:relative; display:inline-flex; align-items:center; gap:var(--space-2); }
.lx-1l60p0v { font-weight: var(--font-weight-semibold); font-variant-numeric:tabular-nums; }
.lx-1la6wd7 { display:flex; gap:var(--space-2); margin-right:var(--space-3); flex-wrap:wrap; }
.lx-1lamyqz { font-size:28px; font-weight: var(--font-weight-semibold); color:var(--warn); letter-spacing:-0.03em; }
.lx-1ldaw1w { padding:var(--space-4) var(--space-6) var(--space-2); display:flex; align-items:baseline; gap:var(--space-3); border-top:1px solid var(--border); background:var(--surface-2); }
.lx-1lflf4f { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); }
.lx-1lhymtu { display:grid; grid-template-columns:2fr 0.9fr 1.1fr 1.3fr 0.7fr 80px; gap:var(--space-6); padding:var(--space-5) var(--space-1); border-bottom:1px solid var(--rule); align-items:center; }
.lx-1lrhr8t { margin-bottom:var(--space-5); }
.lx-1lx4ljm { margin:var(--space-5) 0; font-weight: var(--font-weight-semibold); }
.lx-1m1chkg { margin:0; font-family:var(--font-sans); font-size:20px; font-weight: var(--font-weight-semibold); letter-spacing:-0.02em; color:var(--text); white-space:nowrap; }
.lx-1mhlme6 { font-size: var(--text-body); color:var(--text-3); }
.lx-1mj6f1 { font-size:11.5px; font-weight: var(--font-weight-semibold); }
.claim-portal-account-card { margin-top:var(--space-7); border:1px solid var(--rule); padding:var(--space-6) var(--space-7); background:var(--surface); }
.lx-1mjmp94 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:var(--space-5); margin-bottom:var(--space-9); }
.lx-1mxbtto { padding:var(--space-9) var(--space-9) 32px; max-width:1100px; margin:0 auto; position:relative; }
.lx-1mxen47 { padding:var(--space-5) var(--space-7); font-size: var(--text-body); color:var(--text-2); font-weight: var(--font-weight-medium); }
.lx-1mxqgdl { font-size:12.5px; font-weight: var(--font-weight-medium); }

.calendar-week-event-time { font-size:9.5px; }
.calendar-field-label { font-size: var(--text-sm); color:var(--text-3); font-weight: var(--font-weight-medium); margin-bottom:var(--space-2); }
.lx-1ncm6m2 { width:6px; height:6px; border-radius:var(--radius-role-full); background:#3F6B2C; }
.lx-1neh5hc { display:flex; gap:var(--space-2); align-items:center; }
.lx-1nery57 { font-size: var(--text-body); color:var(--text-3); line-height:1.45; min-height:36px; }
.lx-1nhpum { font-weight: var(--font-weight-regular); color:var(--text-3); margin-left:var(--space-2); font-size: var(--text-body); }
.lx-1niyjgz { display:flex; align-items:center; gap:var(--space-4); flex-wrap:wrap; }
.lx-1njkp9i { display:flex; gap:var(--space-5); flex-wrap:wrap; }
.lx-1ntbvbi { padding:var(--space-9) 28px; border:1px solid var(--rule-firm); border-radius:var(--radius-sm); background:var(--surface); position:relative; margin-bottom:var(--space-3); }
.lx-1nwu4wn { color:var(--warn); font-size:12.5px; }
.lx-1nzd5xv { font-family:var(--font-sans); font-size:26px; font-weight: var(--font-weight-medium); line-height:1; }
.lx-1o2bfu8 { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:var(--space-2); }
.lx-1o2gls5 { position:absolute; top:14px; right:16px; font-size: var(--text-sm); color:var(--text-3); }
.lx-1o800n6 { display:flex; gap:var(--space-2); align-items:center; margin-bottom:3px; }
.calendar-drawer-head { padding:var(--space-6) var(--space-7); border-bottom:1px solid var(--border); display:flex; align-items:center; gap:var(--space-4); }
.lx-1ojm8c7 { display:flex; gap:var(--space-1); flex-wrap:wrap; margin-bottom:var(--space-4); }
.calendar-week-head-cell { padding:var(--space-3) var(--space-4); font-size: var(--text-xs); text-align:center; border-left:1px solid var(--border); }
.lx-1oojx8h { font-size: var(--text-body); color:var(--warn, #B58200); }
.lx-1ooyt6r { text-align:center; padding:40px; color:var(--muted); font-size: var(--text-body); }
.lx-1owbooy { display:grid; grid-template-columns:120px 1fr auto; gap:var(--space-7); align-items:flex-start; }
.lx-1oya5rt { opacity:0.6; }
.lx-1p0vuy0 { accent-color:var(--accent); }
.lx-1p6sxll { position:relative; }
.lx-1pe8pfc { margin-top:var(--space-7); color:#A02D24; font-weight: var(--font-weight-semibold); }
.lx-1pl9z5v { margin-top:var(--space-4); color:var(--warn); }
.lx-1plb8ui,
.claim-header-title-col { flex:1; min-width:0; }
.lx-1plp1w7 { color:var(--accent); font-weight: var(--font-weight-medium); }
.lx-1pvl1nt { display:flex; align-items:center; justify-content:space-between; }

.calendar-page { padding:var(--space-widget); display:flex; flex-direction:column; gap:var(--widget-gap); }
.lx-1qirer0 { margin-top:2px; }
.calendar-month-event { font-size:10.5px; padding:1px var(--space-1); border-radius:var(--radius-xs); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); }
.calendar-week-bgcell { border-bottom:1px solid var(--rule-soft); }
.claim-portal-pitch-list { margin:0; padding:0; list-style:none; font-size: var(--text-sm); color:var(--text-2); }
.lx-1qirer0,
.inline-status-note { margin-top:2px; }
.lx-1qvjok5 { position:absolute; top:80px; left:14px; background:white; border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 6px 16px rgba(0,0,0,0.12); padding:var(--space-1); z-index:10; min-width:200px; }

.lx-1qx34ee,
.document-preview-doc-title { text-align:center; font-size: var(--text-md); margin:0 0 18px;letter-spacing:1px; }
.lx-1qz5ttn { display:flex; gap:var(--space-3); align-items:center; flex-wrap:wrap; }
.lx-1r06904 { flex:1; overflow-y:auto; padding:0 var(--space-9) var(--space-9); }
.lx-1r3qz1x,
.toggle-field-row { display:grid; grid-template-columns:1fr 36px; gap:var(--space-4); padding:var(--space-3) 0; cursor:pointer; align-items:flex-start; border-bottom:1px dashed var(--rule-soft); }
.lx-1r3t4bu { font-size: var(--text-body); color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lx-1r90pa4 { margin-top:var(--space-1); line-height:1.55; }
.lx-1rfh2z8 { font-weight: var(--font-weight-medium); text-transform:capitalize; font-size:12.5px; }
.lx-1rj57uk { line-height:1.3; margin-top:1px; }
.lx-1rk1e8z { margin-top:var(--space-9); padding:var(--space-5) 0; border-top:1px solid var(--rule); font-size: var(--text-body); color:var(--text-3); }
.lx-1rkct7 { position:relative; flex:1; max-width:320px; }
.lx-1s1blyj { grid-template-columns:1fr 1fr; }
.lx-1s5kf3g { margin-left:var(--space-3); }
.lx-1t1k9dr { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.calendar-month-daynum { font-size:11.5px; width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--radius-role-full); }
.lx-1tfn5t1 { font-weight: var(--font-weight-medium); }
.claim-portal-pitch-section { margin-top:var(--space-6); padding-top:var(--space-5); border-top:1px solid var(--rule); }
.claim-portal-pitch-stat { color:var(--text); font-weight: var(--font-weight-medium); font-style:normal; font-family:var(--font-sans); }
.claim-header-staff-col { display:flex; flex-direction:column; align-items:flex-end; gap:5px; flex-shrink:0; }
.lx-1tfn5t1,
.claim-portal-activity-actor { font-weight: var(--font-weight-medium); }
.lx-1tomx14 { display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--space-6); margin-bottom:22px; padding:var(--space-6) 18px; background:var(--surface-2); border:1px solid var(--rule); }
.calendar-week-allday-label { padding:var(--space-2) var(--space-4); font-size: var(--text-sm); color:var(--text-3); border-right:1px solid var(--border); }
.calendar-month-cell-events { display:flex; flex-direction:column; gap:2px; }
.lx-1ud3bac { padding:var(--space-7); border-bottom:1px solid var(--border); display:flex; align-items:center; gap:var(--space-3); }

.lx-1uy79w1 { display:flex; gap:var(--space-2); margin-bottom:var(--space-5); flex-wrap:wrap; }
.calendar-week-daycol { position:relative; border-left:1px solid var(--rule-soft); min-width:0; overflow:hidden; }
.lx-1vn1q3j { margin-top:2px; color:var(--text-3); }
.lx-1vrxp02 { height:22px; width:22px; padding:0; }
.lx-1vsoqjc { display:inline-block; width:7px; height:7px; border-radius:var(--radius-role-full); border:1px solid var(--text); }
.claim-identity-header {
  display:grid;
  gap:var(--claim-header-tab-gap);
  padding:12px 20px var(--claim-header-tab-gap);
  background:var(--claim-header-bg);
  box-shadow:inset 0 -1px 0 var(--rule);
}
.claim-identity-main {
  display:flex;
  gap:18px;
  align-items:center;
}
.claim-primary-tabs {
  width:fit-content;
  max-width:100%;
}
.claim-tab-navigation {
  position:relative;
  z-index:70;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:var(--claim-nav-group-gap);
  row-gap:var(--claim-nav-group-gap);
  min-width:0;
  max-width:100%;
  overflow:visible;
}
.claim-wide-tabs,
.claim-work-scope-group {
  flex:0 0 auto;
}
.claim-work-scope-group {
  order:1;
  display:inline-flex;
  align-items:stretch;
  max-width:100%;
  min-width:0;
}
.claim-wide-icon-tabs {
  order:2;
}
.claim-work-scope-group .claim-work-tabs {
  border-top-left-radius:0;
  border-bottom-left-radius:0;
}
.claim-work-scope-group .claim-work-tabs {
  margin-left:-1px;
}
.claim-work-scope-group .claim-issue-scope-button {
  border-top-right-radius:0;
  border-bottom-right-radius:0;
}
.claim-wide-icon-tabs .tab svg {
  flex:0 0 auto;
}
.claim-issue-scope {
  position:relative;
  z-index:80;
  flex:0 0 auto;
  perspective:720px;
}
/* Issues workspace slice (D1, DH 947:6009 default / 947:6175 selected):
   the fixed-width Workspace issue selector — 256 x 40, 8/12 inset, 1px
   border/default, radius/md on the OUTER (left) corners only so it pairs with
   the right-rounded tier-2 segmented control exactly like the top-nav
   Search / Ask pair; Label/Strong 13 text/secondary; trailing 12px chevron in
   text/muted. Selected: violet-25 fill, purple-500 1px border, text/primary,
   the issue title truncated with an ellipsis. */
.claim-issue-scope-button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  width:256px;
  height:40px;
  min-height:40px;
  padding:0 var(--space-5);
  border:1px solid var(--rule);
  border-radius:var(--radius-role-md) 0 0 var(--radius-role-md);
  background:var(--surface);
  color:var(--approved-text-secondary);
  font:inherit;
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  line-height:1.3;
  white-space:nowrap;
  cursor:pointer;
  transition:background 250ms ease,
    border-color 250ms ease,
    color 150ms ease;
}
.claim-issue-scope-button svg { flex:0 0 auto; color:var(--text-3); }
.claim-issue-scope-button:hover,
.claim-issue-scope-button[aria-expanded="true"] {
  border-color:var(--text-2);
  background:var(--surface-2);
  color:var(--text);
}
.claim-issue-scope-button:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.claim-issue-scope-button.is-scoped,
.claim-issue-scope-button.is-scoped:hover,
.claim-issue-scope-button.is-scoped[aria-expanded="true"] {
  border-color:var(--color-purple-500);
  background:var(--color-violet-25);
  color:var(--approved-text-primary);
}
.claim-issue-scope-label {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* Geometry/look come from the central .dropdown-list recipe (D13 — the open
   state is not designed); this class keeps only the transform origin. */
.claim-issue-scope-menu {
  transform-origin:top left;
}
.claim-issue-scope-option {
  width:100%;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:0;
  border-radius:var(--radius-control);
  background:transparent;
  color:var(--text-2);
  font:inherit;
  font-size: var(--text-body);
  text-align:left;
  cursor:pointer;
}
.claim-issue-scope-option:hover,
.claim-issue-scope-option.active {
  background:var(--surface-2);
  color:var(--text);
}
.claim-issue-scope-divider {
  height:1px;
  margin:5px 2px;
  background:var(--rule-soft);
}
@media (max-width: 900px) {
  .claim-tab-navigation {
    align-items:stretch;
    flex-direction:column;
  }
  .claim-work-scope-group {
    width:fit-content;
  }
  .claim-issue-scope {
    width:fit-content;
  }
}
.lx-1vszg8f { background:var(--surface); border-radius:var(--radius); padding:var(--space-5) var(--space-6); margin-bottom:var(--space-4); position:relative; }
.notes-thread-surface {
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}
.notes-toolbar {
  width:100%;
  padding-bottom:14px;
  border-bottom:1px solid var(--rule-soft);
}
.notes-list {
  display:grid;
  gap:14px;
  width:100%;
}
.notes-list .note-card {
  width:100%;
  margin:0;
  padding:18px 20px;
  border-radius:var(--radius-lg);
}
.notes-empty {
  border:1px dashed var(--rule);
  border-radius:var(--radius-lg);
  background:var(--surface-2);
  margin-top:2px;
}
@media (max-width: 760px) {
  /* IW35 (seventh pass F3): the Notes tab takes the same page frame as every
     other tab (the :root re-bind, 12) — no raw px fork */
  .claim-tab-body:has(> .notes-tab-wrap) {
    padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  }
  .notes-list .note-card {
    padding:14px;
  }
  .notes-list .note-card .lx-1jntcpo,
  .notes-list .note-card .note-card-head {
    align-items:flex-start;
  }
}
.lx-1vyz7j9 { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-regular); }
.lx-1wd0yn { font-size:12.5px; color:var(--text-2); line-height:1.5; margin-bottom:var(--space-2); }
.lx-1wiau7g { width:1px; height:18px; background:var(--rule); margin:0 var(--space-2); }
.lx-1wl6f2a { display:grid; grid-template-columns:2fr 0.9fr 1.1fr 1.3fr 0.7fr 80px; gap:var(--space-6); padding:var(--space-3) var(--space-1); border-bottom:1px solid var(--rule-firm); font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-semibold); }
.lx-1wo6dpv { margin-top:var(--space-9); padding:var(--space-5); background:#f7f5ee; border-left:3px solid #888; font-size:10.5px; color:#555; }
.lx-1wo6dpv,
.document-extraction-note { margin-top:var(--space-9); padding:var(--space-5); background:var(--doc-mock-note-bg); border-left:3px solid var(--doc-mock-muted); font-size:10.5px; color:var(--doc-mock-faint); }
.lx-1x2ddj4 { font-size: var(--text-sm); padding:2px var(--space-3); }
.lx-1x462w2 { padding:11px var(--space-3); text-align:center; border-left:1px solid var(--rule-soft); }
.lx-1xasd0i { font-size: var(--text-sm); color:var(--text-3); text-align:right; font-variant-numeric:tabular-nums; }
.lx-1xo4npw { margin-top:3px; font-size: var(--text-sm); font-weight: var(--font-weight-medium); }
.calendar-legend-divider { width:1px; height:14px; background:var(--rule); margin:0 var(--space-1); }
.lx-1y8nq6e { display:grid; grid-template-columns:1.6fr 2fr 1fr 1fr 1.2fr 0.6fr 32px; gap:var(--space-6); padding:var(--space-4) var(--space-5); background:var(--surface-2); border-bottom:1px solid var(--rule-firm); font-size: var(--text-body); color:var(--text-2); font-weight: var(--font-weight-medium); }
.lx-1yk3y5y { font-size: var(--text-body); margin-top:var(--space-2); color:var(--text-2); }
.lx-1youv2o { flex:1; overflow:auto; }
.lx-1youv2o,
.page-scroll-region { flex:1; overflow:auto; }
.lx-1yu7255 { font-size: var(--text-2xs); border:1px solid ' + kindMeta.color + '40; }
.lx-1yym02c { font-size: var(--text-lg); font-weight: var(--font-weight-semibold); color:var(--text); letter-spacing:-0.01em; }
.lx-1yzk104 { padding:2px var(--space-2); font-size: var(--text-2xs); }
.lx-206twp {letter-spacing:0.01em; font-size:10.5px; font-weight: var(--font-weight-medium); padding-top:2px; }
.lx-28v4rf { padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter); }
.my-week-day { padding:var(--space-3); border-right:1px solid var(--border); min-height:100px; min-width:0; overflow:hidden; }
.lx-2d7i85 { margin-top:var(--space-6); padding:var(--space-4) var(--space-5); border:1px solid var(--rule); background:var(--surface-2); font-size:11.5px; color:var(--text-3); display:flex; gap:var(--space-3); align-items:flex-start; }

.lx-2sfy7l { font-size: var(--text-md); color:var(--text); line-height:1.55; font-family:var(--font-sans); }
.lx-3ekypt { display:flex; flex-wrap:wrap; gap:var(--space-1); }
.lx-3ii0tz { border:none; height:22px; padding:0 var(--space-1); flex:1; min-width:80px; }
.claim-header-staff-stack { display:flex; flex-direction:column; gap:5px; }
.claim-header-claimant-name { margin:0; font-size:25px; font-weight: var(--font-weight-semibold); letter-spacing:-0.03em; line-height:1.08; white-space:nowrap; font-family:var(--font-sans); }
.lx-3oajou { font-size:11.5px; margin-left:auto; }
.my-week-day-date { font-size: var(--text-md); }
.lx-4bd0q0 { padding:5px var(--space-5); border-radius:var(--radius-sm); font-size: var(--text-body); cursor:pointer; display:inline-flex; align-items:center; gap:var(--space-3); }
.lx-4dpnr0 { display:flex; align-items:center; gap:var(--space-3); }

.lx-51qana { padding:var(--space-6); }
.lx-56hac0 { width:4px; align-self:stretch; border-radius:var(--radius-xs); }
.lx-5f7j30 { color:var(--success); font-size:12.5px; }
.my-week-day-head { display:flex; align-items:baseline; gap:var(--space-2); margin-bottom:var(--space-2); }
.lx-5x44o { color:var(--text-3); font-size: var(--text-body); }
.lx-6388hj,
.claim-portal-account-rows { font-size:12.5px; color:var(--text-2); }
.lx-6a726j { font-size: var(--text-xs); font-weight: var(--font-weight-semibold); color:#A02D24; margin-bottom:var(--space-1); }
.lx-6kjcpa { padding:var(--space-5) 18px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:var(--space-2); }
.lx-6mewdd { padding:60px; text-align:center; color:var(--text-3); }
.lx-6ots5a { display:flex; gap:var(--space-2); align-items:center; font-size:12.5px; height:28px; }
.calendar-week-allday { display:grid; border-bottom:1px solid var(--rule-soft); min-height:28px; }
.calendar-week-allday > * { min-width:0; }
.calendar-week-allday .calendar-event-card { min-width:0; white-space:normal; overflow-wrap:anywhere; }
.my-week-grid { display:grid; grid-template-columns:repeat(7, 1fr); }
.claim-portal-panel-label { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); margin-bottom:var(--space-3); }
.lx-6vq0ca .calendar-event-card { min-width:0; white-space:normal; overflow-wrap:anywhere; }
.lx-75gl5h { display:flex; gap:var(--space-2); margin-bottom:var(--space-3); }

.lx-7m4qr1 { font-size: var(--text-sm); color:var(--text-3); margin-top:var(--space-2); line-height:1.45; }
.claim-portal-activity-title { font-family:var(--font-sans); font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); }
.lx-7ydnf { margin-bottom:18px; }
.claim-portal-pitch-item { padding:5px 0; display:flex; gap:var(--space-3); align-items:center; }
.lx-7zz5u7 { display:flex; align-items:baseline; gap:var(--space-5); padding-bottom:var(--space-6); border-bottom:1px solid var(--rule-firm); margin-bottom:18px; flex-wrap:wrap; row-gap:var(--space-3); }
.lx-80cguk { line-height:1.45; }
.my-week-event { font-size:10.5px; padding:2px var(--space-1); margin-bottom:2px; border-radius:var(--radius-xs); cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lx-8qsa4h { color:var(--text-2); font-weight: var(--font-weight-medium); }
.lx-8wphtz { display:flex; gap:var(--space-2); margin-bottom:var(--space-5); flex-wrap:wrap; align-items:center; }
.lx-8xt68c { padding:var(--space-3) var(--space-5); border-bottom:1px solid var(--border); cursor:pointer; font-size: var(--text-sm); }
.lx-975loh { font-size:9px;letter-spacing:0.01em; padding:1px 5px; border:1px solid var(--border); border-radius:var(--radius-control); color:var(--muted); font-weight: var(--font-weight-medium); }
.lx-9omh4x { padding:0 var(--space-2); font-size: var(--text-xs); white-space:nowrap; }
.lx-9w4qw9 { flex:1; font-size:12.5px; color:var(--text); }
.lx-a1qfvx { width:10px; height:10px; background:var(--critical-soft); border-left:3px solid var(--critical); }
.lx-a9wos0 { width:100%; padding-left:30px; height:32px; font-size: var(--text-body); }
.lx-aa638o { display:grid; grid-template-columns:1.6fr 2fr 1fr 1fr 1.2fr 0.6fr 32px; gap:var(--space-6); padding:var(--space-6) var(--space-5); border-bottom:1px solid var(--rule); align-items:center; }
.lx-agdbdw { background:var(--accent); }
.lx-aw1520,
.claim-portal-activity-when { font-size: var(--text-xs); color:var(--text-3); }
.lx-azg1du { font-size: var(--text-lg); font-weight: var(--font-weight-semibold); letter-spacing:-0.01em; color:var(--text); }
.lx-bh2b54 { display:flex; gap:var(--space-2); }
.calendar-drawer-actions { display:flex; gap:var(--space-2); }
.lx-bn9dd9 { font-size: var(--text-body); text-align:right; }
.lx-bsa9bg { font-size:12.5px; margin-top:var(--space-2); }
.lx-builys { position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--text-3); }
.lx-bxy65q { display:inline-flex; align-items:center; gap:var(--space-1); }
.calendar-legend-item { display:inline-flex; align-items:center; gap:var(--space-1); }
.lx-byd3nj { font-size: var(--text-body); font-weight: var(--font-weight-medium); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.lx-chi0i7 { margin-top:var(--space-4); font-size: var(--text-sm); color:var(--text-3); }
.lx-ckcso4 { width:64px; text-align:center; font-variant-numeric:tabular-nums; }
.lx-cs0063 { font-size:13.5px; font-weight: var(--font-weight-semibold); }
.lx-cwu228 { min-width:0; font-size: var(--text-body); color:var(--text-2); line-height:1.5; }
.lx-cxw6ye { padding:var(--space-9) var(--space-9) 32px; max-width:1100px; margin:0 auto; }
.lx-d0ysxz { background:var(--surface-2); border-color:var(--border); }
.lx-d1000j { display:flex; align-items:center; gap:var(--space-5); margin-bottom:var(--space-6); }
.lx-dhceq5 { font-size: var(--text-2xs); opacity:0.7; }


/* Calendar events show their taxonomy icon (deadline = flag, appointment =
   its type icon). The icon sits in a small chip tinted from the entry colour
   so the type colour reads as a block, not just thin strokes. */
.calendar-event-type-icon {
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:18px; height:18px; margin-right:5px; border-radius:var(--radius-role-sm);
  background:color-mix(in srgb, currentColor 13%, transparent);
  vertical-align:-3px;
}
.calendar-event-card-compact .calendar-event-type-icon {
  width:14px; height:14px; margin-right:3px; border-radius:var(--radius-role-sm); vertical-align:-2px;
}
/* Shape is the second channel: appointments are round, deadlines are square —
   kind stays distinguishable even for types that share quiet gray hues. */
.calendar-event-type-icon--appointment { border-radius:var(--radius-role-full); }
.calendar-event-type-icon--deadline { background:color-mix(in srgb, currentColor 18%, transparent); }


/* Month/week canvas widget: tinted header with a maximise toggle; fill mode
   stretches the grid to the viewport height. */
/* Mid-stack filter bars: when the surrounding region already provides the
   page gutter (claim tab bodies, the calendar toolbar stack), the bar must
   not add its own — the default 18px padding is for bars that LEAD a page
   and double-pads everywhere else ('tabbed in' filters, tables at a
   different left edge). One rule keeps every claim tab aligned. */
.claim-tab-body .filter-bar,
.calendar-filter-bar.filter-bar { padding:0; background:transparent; }

/* Calendar filters sit inline on the toolbar, left-aligned right after the
   date items; the spacer then pushes Subscribe/Add event to the far right. */
.calendar-toolbar-filters { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* Extra breathing room between the date block and the inline filters. */
.calendar-toolbar-spacer { width:var(--space-5); flex:0 0 auto; }



/* Correction C (Lisa D16, 19 Aug 2026): the retired calendar canvas-widget
   and widget-head selector block had no JSX consumers — its fill/full-screen
   recipes now live on the real .calendar-view-canvas owner (see the
   approved Calendar section). The old scroll-host constraints were NOT
   ported: activating them would change the accepted List/Day appearance. */
.calendar-docket-table { width:100%; }
.calendar-docket-table td { vertical-align:middle; }
.calendar-docket-col-type { width:150px; }
.calendar-docket-col-time { width:90px; }
.calendar-docket-col-claim { width:220px; }
.calendar-docket-section { cursor:default; }
.calendar-docket-row { cursor:pointer; box-shadow:inset 3px 0 0 var(--calendar-event-color); }
.calendar-docket-row:hover td { background:var(--hover); }
.calendar-docket-title { display:inline-flex; align-items:center; gap:8px; font-weight:var(--font-weight-medium); }


.calendar-legend { display:flex; gap:var(--space-6); padding:var(--space-5) 0 var(--space-1); font-size: var(--text-sm); color:var(--text-3); flex-wrap:wrap; align-items:center; }
.calendar-drawer-field-grid { display:grid; gap:var(--space-4); }
.claim-portal-pitch-card { border:1px solid var(--rule); background:var(--surface-2); padding:var(--space-6) var(--space-7); }
.claim-portal-activity-card { margin-top:var(--space-8); border:1px solid var(--rule); background:var(--surface); }
.lx-e9rsti { display:block; font-size: var(--text-body); color:var(--text-2); font-weight: var(--font-weight-medium); margin-bottom:var(--space-2); }
.lx-edlr4p { display:flex; gap:var(--space-2); align-items:center; margin-bottom:var(--space-5); flex-wrap:wrap; }
.lx-ejkaud { font-size: var(--text-body); }
.lx-elltgp { display:inline-flex; align-items:center; gap:var(--space-2); padding:3px 9px; border:1px solid var(--rule-firm); border-radius:var(--radius-role-sm); font-size: var(--text-sm); font-weight: var(--font-weight-medium); background:var(--surface-2); }
.lx-esn9v4 { width:200px; font-size:12.5px; }
.lx-esvzol,
.claim-header-meta-nowrap { white-space:nowrap; }
.lx-eti4iq { display:block; font-size: var(--text-xs); color:var(--text-3); font-weight: var(--font-weight-regular); margin-top:2px; }
.lx-ewift { flex:1; font-size: var(--text-sm); color:#DC2626; }
.lx-f2j629 { text-align:center; padding:40px; color:var(--muted); }
.lx-f6e1j4 { background:transparent; }
.lx-ffaape { padding:var(--space-6); max-width:880px; margin:0 auto; }
.notes-thread-surface.lx-ffaape { padding:0; max-width:none; margin:0; }
.lx-flrvjp { display:grid; grid-template-columns:90px 4px 1fr auto; gap:var(--space-5); padding:var(--space-4) var(--space-5); border-top:1px solid var(--border); cursor:pointer; align-items:flex-start; }
.lx-fqtfep { font-size:12.5px; color:var(--text); cursor:pointer; min-height:18px; padding:2px var(--space-1); margin-left:-var(--space-1); border-radius:var(--radius-control); }
.lx-frodw7 { padding:var(--space-8); }
.lx-fw2l3x { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-2) var(--space-3); width:100%; background:transparent; border:none; cursor:pointer; font-family:inherit; font-size: var(--text-sm); text-align:left; }
.lx-g8til0 { margin-top:22px; }
.lx-gf5mn9 { display:flex; gap:var(--space-2); justify-content:flex-end; margin-top:var(--space-3); }
.claim-header-meta-row { display:flex; gap:0; row-gap:var(--space-1); font-size: var(--text-sm); color:var(--text-3); margin-top:3px; flex-wrap:wrap; align-items:center; }
.lx-gjza0 { padding:var(--space-5); background:#FBE3E1; border:1px solid #F2C3BF; border-radius:var(--radius); display:flex; gap:var(--space-4); align-items:center; }
.lx-gkn6vu { margin:0 var(--space-2); }
.lx-grf17i { margin-left:var(--space-2); }
.lx-h4mlzt { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; }
.lx-h669rl { display:flex; gap:var(--space-9); margin-top:var(--space-7); font-size: var(--text-body); color:var(--text-2); flex-wrap:wrap; }
.lx-hg3r3d { margin-bottom:var(--space-5); background:var(--surface-2); border-color:var(--border); }
.lx-hlbdjj { display:flex; align-items:center; gap:var(--space-2); margin-top:2px; }
.claim-portal-activity-empty { padding:var(--space-8) var(--space-6); font-size: var(--text-sm); color:var(--text-3); font-family:var(--font-sans); text-align:center; }
.lx-hojevg { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-3); }
.lx-hzp4mz { padding:5px 0; display:flex; gap:var(--space-3); }
.lx-i6it7h { height:40px; }
.lx-ilhuhf { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); padding:var(--space-3) var(--space-6) var(--space-1); }
.calendar-month-cell { min-height:104px; padding:var(--space-2); cursor:pointer; min-width:0; overflow:hidden; }
.lx-j1mhkr { padding:var(--space-4) var(--space-5); border-bottom:1px solid var(--border); display:grid; grid-template-columns:1fr auto; gap:var(--space-4); }
.lx-jk66v5 { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-3); }
.lx-jmpm8y { padding:var(--space-3) var(--space-5); border-bottom:1px solid var(--border); display:grid; grid-template-columns:auto 1fr auto; gap:var(--space-3); align-items:center; }
.claim-portal-signout-btn { width:100%; justify-content:center; margin-top:var(--space-4); }
.lx-jqba7q { padding:var(--space-3) 0; border-bottom:1px solid var(--border); display:grid; grid-template-columns:110px 1fr auto; gap:var(--space-4); align-items:flex-start; }
.lx-jwrel1 { border-color:rgba(157,45,36,0.4); color:var(--critical); }
.lx-k4xskl { display:flex; align-items:baseline; gap:var(--space-5); margin-bottom:var(--space-4); }
.lx-k5gvwl { font-size: var(--text-body); color:var(--text-2); text-align:right; }
.lx-kbpaku { margin-bottom:var(--space-3); }
.lx-kd3v7a { font-size: var(--text-sm); font-weight: var(--font-weight-medium); white-space:nowrap; }
.lx-kjd79j,
.claim-portal-activity-count { font-size: var(--text-sm); color:var(--text-3); }
.lx-kmq3yz { display:flex; align-items:baseline; gap:var(--space-4); }
.lx-ku8rve { display:flex; gap:var(--space-9); margin-bottom:var(--space-5); }
.lx-ky9yva { padding:11px var(--space-7); font-size: var(--text-body); color:var(--text-2); }

.lx-l42jsa { color:var(--critical); }
.calendar-drawer-delete { color:var(--critical); }
.lx-le9tjt { display:grid; grid-template-columns:2fr repeat(4, 1fr); border-top:1px solid var(--rule-soft); align-items:center; }
.lx-lhi6q2 { font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); padding:var(--space-5) var(--space-6) var(--space-1); }
.lx-liz352 { background:var(--critical); color:white; border-color:var(--critical); }
.lx-lnkopf { border:1px solid var(--rule); border-radius:var(--radius-sm); overflow:hidden; }
.lx-lpj9au { font-size: var(--text-3xl); font-weight: var(--font-weight-semibold); margin-top:var(--space-1); }
.lx-lql403 { display:flex; align-items:baseline; gap:var(--space-4); min-width:0; white-space:nowrap; }
.lx-ltg5jr { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.calendar-attendee-chips { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.lx-lttbef { width:100%; min-height:130px; font-size: var(--text-body); line-height:1.6; font-family:inherit; resize:vertical; border:none; padding:var(--space-1); }
.calendar-drawer-check-label { display:flex; align-items:center; gap:var(--space-2); font-size: var(--text-sm); }
.lx-m1tiiz { display:flex; flex-direction:column; gap:var(--space-4); }
.calendar-week-timed { position:relative; display:grid; }
/* Week timed grid: a fixed default height that hour rows share equally; in
   fill/fullscreen the grid flexes and the rows stretch with it (events are
   %-positioned so they track the span). */
.calendar-week-timed { --wk-hour:44px; }
.calendar-week-gutter-cell { height:var(--wk-hour); }
.calendar-week-bgcell { height:var(--wk-hour); }
.calendar-week-daycol .calendar-week-event { position:absolute; }
.lx-maples { font-weight: var(--font-weight-medium); margin-bottom:var(--space-3); }
.lx-mba11l { width:140px; }
.lx-mfaben { display:flex; align-items:center; gap:var(--space-4); min-width:0; }
.lx-mgx2c9 { margin-bottom:var(--space-7); }

.lx-msnoxj { display:flex; gap:var(--space-3); margin-top:var(--space-5); padding-top:var(--space-4); border-top:1px solid var(--border); align-items:center; flex-wrap:wrap; }
.lx-mzava6 { font-size: var(--text-sm); font-weight: var(--font-weight-medium); }
.calendar-week-head-day { font-size: var(--text-sm); font-weight: var(--font-weight-medium); }
.lx-n17r6i { margin-top:var(--space-3); display:flex; align-items:center; }
.lx-n2o3bq { font-size: var(--text-sm); color:var(--text-3); font-variant-numeric:tabular-nums; }
.calendar-drawer-overlay { position:fixed; inset:0; background:rgba(28,30,28,0.32); z-index:60; }
.lx-nbq4if { border-top:1px solid var(--border); padding-top:var(--space-5); }
.lx-ncr22 { opacity:0.85; }
.claim-portal-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:var(--space-9); align-items:flex-start; }
.lx-ndydwe { display:grid; grid-template-columns:140px 1fr; padding:7px 0; border-bottom:1px dashed var(--border); font-size:12.5px; }
.lx-nnaqba { height:32px; font-size: var(--text-body); }
.lx-nqezzu { flex:1; height:14px; background:var(--surface-2); border-radius:var(--radius-role-sm); overflow:hidden; }
.lx-nza3rp { display:flex; gap:var(--space-2); flex-wrap:wrap; margin-top:var(--space-4); }
.lx-odd25k { padding:var(--space-7); }
.lx-ogxnl1 { color:var(--accent); }
.lx-ohmbel { padding:var(--space-7) var(--space-7) var(--space-6); border:1px solid var(--rule); border-radius:var(--radius-sm); background:var(--surface); }
.lx-oq6lr7 { padding:var(--space-4) var(--space-7) var(--space-2); font-size: var(--text-sm); color:var(--text-3); font-weight: var(--font-weight-medium); background:var(--bg); }
.calendar-legend-label { font-weight: var(--font-weight-medium); color:var(--text-2); }
.lx-p01yvu { position:absolute; top:calc(100% + 6px); left:0; z-index:200; width:320px; padding:var(--space-4) var(--space-5); background:var(--text); color:var(--surface); border-radius:var(--radius); font-size: var(--text-body); line-height:1.5; box-shadow:var(--shadow-pop); pointer-events:none; }
.lx-p6qihj,
.close-deadline-label { font-size: var(--text-body); font-weight: var(--font-weight-medium); }
.lx-p931pw { font-size: var(--text-xs); padding:var(--space-1) var(--space-3); background:var(--surface-2); border-radius:var(--radius-sm); }

.lx-pkn96w { text-align:left; padding:var(--space-5); border-radius:var(--radius); cursor:pointer; font-family:inherit; display:flex; flex-direction:column; gap:var(--space-2); }
.lx-pog01x { display:flex; gap:var(--space-2); flex-wrap:wrap; align-items:center; min-height:32px; padding:5px var(--space-3); border:1px solid var(--rule); border-radius:var(--radius-sm); background:var(--surface); }
.lx-pyafsr { cursor:pointer; }
.calendar-week-event-title { font-weight: var(--font-weight-semibold); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lx-qej50h { width:320px; }
.lx-qtmyku { background:var(--surface); border-radius:var(--radius); padding:var(--space-6); margin-bottom:18px; position:relative; }
.calendar-drawer-body { flex:1; overflow:auto; padding:var(--space-6) var(--space-7); display:flex; flex-direction:column; gap:var(--space-6); }
.lx-r22787 { display:flex; align-items:center; }
.lx-r3823a { margin:0; padding:0 0 0 var(--space-6); font-size: var(--text-body); color:var(--text-2); line-height:1.5; }
.lx-r3etn2 { text-align:center; }
.calendar-week-gutter-cell { padding:2px var(--space-2) 0; font-size: var(--text-2xs); color:var(--text-3); text-align:right; border-bottom:1px solid var(--border); }
.lx-r3rkw { flex:1; }
.calendar-drawer-head-main,
.calendar-toolbar-grow { flex:1; }
.lx-rdh00h { text-align:justify; }
.lx-r3rkw,
.flex-spacer { flex:1; }
.claim-portal-activity-detail { font-size: var(--text-xs); color:var(--text-3); margin-top:1px; font-family:var(--font-sans); }
.lx-rdh00h,
.document-preview-text { text-align:justify; }
.claim-header-staff-name { line-height:1.2; }
.lx-rkjooj { display:flex; align-items:center; gap:var(--space-3); padding:5px 0; }
.lx-romabo { border-radius:var(--radius); padding:var(--space-6); }
.lx-roo9tv { margin-top:28px; padding-top:var(--space-7); border-top:1px solid var(--border); display:flex; gap:var(--space-3); align-items:center; }
.lx-rp7wwq { display:flex; justify-content:flex-end; gap:var(--space-1); }
.calendar-week-grid { border:1px solid var(--rule); border-radius:var(--radius-widget); overflow:hidden; background:var(--surface); }
.lx-rwxumw { margin-top:var(--space-2); }
.calendar-drawer-claim-link { margin-top:var(--space-2); }
.lx-rwxumw,
.stack-top-gap { margin-top:var(--space-2); }
.lx-s0obu6 { display:flex; align-items:center; gap:var(--space-2); }
.lx-si9izv { display:flex; gap:var(--space-1); align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.lx-silukr { font-size: var(--text-xs); }

.lx-swaypb { font-size: var(--text-md); font-weight: var(--font-weight-medium); color:var(--text); }
.lx-syl70 { padding:var(--space-8); min-height:280px; }
.lx-ta6sj3 { display:flex; gap:var(--space-1); margin-top:var(--space-3); align-items:center; }
.lx-tbtdf4,
.document-preview-kicker { text-align:center; margin-bottom:var(--space-9); margin-top:var(--space-5); font-size: var(--text-xs); letter-spacing:2px; color:var(--doc-mock-faint); }
.lx-tfy11i { background:var(--critical); color:var(--ink-fg); border-color:var(--critical); }
.lx-tfy11i:hover { background:color-mix(in srgb, var(--critical) 88%, #000); color:var(--ink-fg); border-color:color-mix(in srgb, var(--critical) 88%, #000); }
.lx-th2h3k,
.inline-check-label { display:flex; align-items:center; gap:5px; font-size:11.5px; cursor:pointer; }

.lx-tpa1aq { position:absolute; left:3px; right:3px; border-radius:var(--radius-role-sm); padding:3px 5px; cursor:pointer; overflow:hidden; font-size:10.5px; line-height:1.3; }
.calendar-event-card-timed { position:absolute; left:3px; right:3px; border-radius:var(--radius-role-sm); padding:3px 5px; cursor:pointer; overflow:hidden; font-size:10.5px; line-height:1.3; }
.lx-tthces { display:flex; flex-direction:column; height:100%; overflow:hidden; }
.lx-tv8lfg { font-size: var(--text-body); color:var(--text-3); margin-top:var(--space-2); line-height:1.5; }
.lx-u3e3eq { padding:var(--space-4) var(--space-5); display:flex; gap:var(--space-4); align-items:flex-start; }
.lx-u82ak2 { margin-top:var(--space-9); padding:var(--space-6) var(--space-5); border-top:1px solid var(--rule); display:flex; justify-content:space-between; align-items:center; font-size: var(--text-body); color:var(--text-3); }
.lx-ud5rj9 { font-size: var(--text-2xl); font-weight: var(--font-weight-semibold); letter-spacing:-0.02em; color:var(--text); }
.calendar-month-layout { display:grid; gap:var(--space-5); }
.lx-ujef51 { display:flex; flex-wrap:wrap; gap:var(--space-1); padding:var(--space-1); border:1px solid var(--border); border-radius:var(--radius-sm); min-height:28px; align-items:center; }
.lx-uldevn { margin-top:var(--space-6); }
.claim-portal-activity-head { padding:var(--space-4) var(--space-6) var(--space-3); border-bottom:1px solid var(--rule); display:flex; align-items:baseline; gap:var(--space-3); }
.claim-header-staff-person { display:flex; gap:var(--space-2); align-items:center; white-space:nowrap; }
.claim-tab-prose { font-size: var(--text-body); line-height:1.55; margin-bottom:var(--space-7); }
.lx-v9gnok { display:flex; gap:18px; align-items:center; }
.lx-vjyr1k { font-size: var(--text-body); font-weight: var(--font-weight-medium); color:var(--text); }
.lx-vqpbqk { position:absolute; left:-8px; top:0; bottom:0; width:2px; background:var(--critical); }
.lx-vu6z7t { display:flex; gap:var(--space-2); margin-top:var(--space-2); justify-content:flex-end; }
.lx-wgn2h2 { padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); background:var(--surface-2); margin-bottom:var(--space-1); display:flex; gap:var(--space-3); align-items:center; }
.lx-wh4kyi { display:flex; gap:var(--space-1); align-items:center; }
.lx-wq12nt { margin-top:var(--space-5); }
.lx-wqgxs { padding:var(--space-4) var(--space-5); border-bottom:1px solid var(--border); display:grid; grid-template-columns:60px 22px 1fr; gap:var(--space-4); }
.lx-x51vgm { border-radius:var(--radius-role-full); color:white; display:inline-flex; align-items:center; justify-content:center; font-weight: var(--font-weight-medium); flex-shrink:0; }
.lx-xd1a07 { width:20%; }
.drawer-section-tabs { margin:16px 0 14px; }
.lx-xg1t7l { margin-top:var(--space-1); line-height:1.5; }
.lx-xsoera { display:flex; gap:var(--space-3); align-items:center; }
.lx-xsoera,
.dynamic-fact-document-inner { display:flex; gap:var(--space-3); align-items:center; }
.lx-xyksiy { margin-top:var(--space-6); padding:var(--space-4); border:1px solid #F2C3BF; background:#FFF6F4; border-radius:var(--radius); }
.lx-y3j6y5 { display:flex; gap:var(--space-1); align-items:center; font-size: var(--text-xs); color:var(--critical); }
.calendar-month-weekday { padding:var(--space-4) var(--space-5); font-size: var(--text-body); color:var(--text-3); font-weight: var(--font-weight-medium); border-bottom:1px solid var(--rule); background:var(--surface); }
.lx-ygtf4b { margin-right:var(--space-1); }
.calendar-event-time-prefix,
.calendar-chip-avatar { margin-right:var(--space-1); }
.lx-yjywa7 { height:22px; width:22px; padding:0; color:var(--critical); }
.lx-yn6tld { padding:var(--space-9); display:grid; grid-template-columns:1fr 1fr; gap:var(--space-9); }
.lx-yu6avr { cursor:default; }
.lx-yvjfi3 { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-4); gap:var(--space-4); }
.lx-yvls8c { padding:40px 0; text-align:center; }
.lx-zjfx3z { display:flex; gap:var(--space-2); justify-content:flex-end; margin-top:var(--space-2); }
.lx-yu6avr,
.cac-facts-row { cursor:default; }
.close-deadline-confirm-text { font-size:12.5px; color:var(--text-2); line-height:1.5; margin-bottom:var(--space-7); }
.lx-zjfx3z,
.field-actions-end { display:flex; gap:var(--space-2); justify-content:flex-end; margin-top:var(--space-2); }

.lx-zorliu { font-size: var(--text-lg); line-height:1.4; min-height:60px; font-family:var(--font-sans); }
.lx-zxoi8z { padding:0 var(--space-1); font-size: var(--text-sm); margin-top:2px; }
.lx-zz7phi { margin-top:2px; font-family:var(--font-sans); }
/* === Generated static style classes: end === */

.claim-tags-wrap {
  position:relative;
  width:fit-content;
  max-width:100%;
}

.claim-tag-row {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:5px;
  align-items:center;
}

.claim-tag {
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:150px;
  min-height:18px;
  padding:2px 6px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-2);
  font-size: var(--text-xs);
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* UP58 (Dan): the tag icon is part of the user-tag pill canon and must
   never be the flex item a tight cell crushes to zero width — the label
   ellipsizes instead (mirrors the .chip svg guard). */
.claim-tag svg { flex-shrink:0; }

.claim-tag-option {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  padding:3px 2px;
  color:var(--text-2);
  font-size: var(--text-sm);
}

.claim-tag-option input {
  margin:0;
}

.claim-tag-option.disabled {
  color:var(--text-3);
}

.claim-tag-hint {
  margin-left:auto;
  color:var(--text-3);
  font-size: var(--text-xs);
}

.claim-tag-manage-link {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  text-decoration:none;
}
.claim-tag-manage-link:hover,
.claim-tag-manage-link:focus-visible {
  color:var(--text);
  text-decoration:underline;
  text-underline-offset:3px;
}

.claim-tag-error {
  margin-top:8px;
  color:#8D2B25;
  font-size: var(--text-sm);
}

.claim-tag-modal-content {
  display:grid;
  gap:14px;
}

.claim-tag-modal-list {
  display:grid;
  gap:4px;
}

.claim-tag-modal .claim-tag-option {
  min-height:36px;
  padding:6px 8px;
  border-radius:var(--radius-control);
}

.claim-tag-modal .claim-tag-option:hover {
  background:var(--surface-2);
}

.claim-tag-modal .claim-tag-option.disabled:hover {
  background:transparent;
}

.bulk-edit {
  display:grid;
  gap:14px;
}

.bulk-edit-layout {
  display:grid;
  grid-template-columns:190px minmax(0, 1fr);
  gap:16px;
  align-items:start;
}

.bulk-edit-list {
  display:grid;
  gap:6px;
}

.bulk-edit-list-item {
  display:grid;
  grid-template-columns:16px minmax(0, 1fr);
  gap:9px;
  align-items:center;
  min-height:48px;
  padding:8px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
}

.bulk-edit-list-item.active {
  border-color:color-mix(in srgb, var(--accent) 35%, var(--rule));
  background:color-mix(in srgb, var(--accent-soft) 55%, var(--surface));
  box-shadow:inset 3px 0 0 var(--accent);
}

.bulk-edit-list-item.enabled:not(.active) {
  background:var(--surface-2);
}

.bulk-edit-list-item.enabled .bulk-edit-list-copy strong {
  color:var(--accent);
}

.bulk-edit-list-checkbox {
  width:14px;
  height:14px;
  margin:0;
  accent-color:var(--accent);
}

.bulk-edit-list-copy {
  display:grid;
  gap:2px;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}

.bulk-edit-list-copy:disabled {
  cursor:default;
}

.bulk-edit-list-copy strong {
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  line-height:1.2;
}

.bulk-edit-list-copy span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.2;
}

.bulk-edit-panel {
  min-width:0;
  padding:12px;
  border:1px solid var(--rule);
  border-radius:var(--radius);
  background:var(--surface);
}

.bulk-edit-panel-head {
  display:flex;
  gap:10px;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:10px;
}

.bulk-edit-field {
  display:grid;
  gap:8px;
}

.bulk-edit-note {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.35;
}

.bulk-claim-tags-list {
  display:grid;
  gap:8px;
}

.bulk-claim-tag-option {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:30px;
}

.bulk-claim-tag-option input {
  width:14px;
  height:14px;
  margin:0;
  flex:0 0 auto;
  accent-color:var(--accent);
}

@media (max-width: 760px) {
  .bulk-edit-layout {
    grid-template-columns:1fr;
  }
}

.claim-tag-red { border-color:#F2C3BF; background:#FFF6F4; color:#8D2B25; }
.claim-tag-blue { border-color:#B9D5F5; background:#F3F8FE; color:#225C91; }
.claim-tag-orange { border-color:#F4D0A1; background:#FFF8ED; color:#84520E; }
.claim-tag-green { border-color:#B8DDBD; background:#F4FBF5; color:#276B35; }

.economics-workspace {
  display:grid;
  gap:14px;
  padding:0 24px 24px;
}

.economics-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}

.economics-title {
  font-weight:750;
  font-size: var(--text-lg);
}

.economics-summary-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.economics-summary-tile {
  min-height:84px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
}

.economics-summary-tile.ok {
  border-color:#B8DDBD;
  background:#F4FBF5;
}

.economics-summary-tile.warn {
  border-color:#EBD3A8;
  background:#FFF9EC;
}

.economics-summary-label {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.economics-summary-value {
  margin-top:8px;
  color:var(--text);
  font-size:22px;
  font-weight:800;
  line-height:1.05;
}

.economics-summary-detail {
  margin-top:6px;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.3;
}

.economics-workpaper-grid {
  display:grid;
  gap:14px;
}

.economics-workpaper {
  display:grid;
  grid-template-columns:minmax(0, 1.65fr) minmax(280px, 0.85fr);
  gap:0;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  overflow:hidden;
}

.economics-workpaper-main {
  padding:14px;
}

.economics-workpaper-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.economics-workpaper-title {
  font-weight:750;
  font-size: var(--text-md);
}

.economics-input-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.economics-field-label-content {
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-width:0;
}

.economics-field-help {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border:1px solid var(--border);
  border-radius:var(--radius-role-full);
  color:var(--text-3);
  background:var(--surface);
  font-size: var(--text-xs);
  line-height:1;
  cursor:help;
}

.economics-field-help:hover,
.economics-field-help:focus-visible {
  color:var(--text-1);
  border-color:var(--border-strong);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

.economics-field-source {
  margin-top:4px;
  color:var(--text-3);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.economics-source-tools {
  display:grid;
  gap:6px;
  margin-top:6px;
}

.economics-source-details {
  color:var(--text-3);
  font-size: var(--text-sm);
}

.economics-source-details summary {
  display:inline-flex;
  align-items:center;
  width:fit-content;
  cursor:pointer;
  color:var(--text-2);
  font-weight: var(--font-weight-semibold);
}

.economics-source-details[open] summary {
  margin-bottom:6px;
}

.economics-source-detail-card {
  display:grid;
  gap:5px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:var(--radius-role-md);
  background:var(--surface-2);
}

.economics-source-detail-card + .economics-source-detail-card {
  margin-top:6px;
}

.economics-source-detail-title {
  color:var(--text-2);
  font-weight:750;
}

.economics-source-detail-row,
.economics-source-alternative-row {
  display:grid;
  grid-template-columns:minmax(70px, 0.45fr) minmax(0, 1fr);
  gap:8px;
  align-items:start;
}

.economics-source-detail-row span,
.economics-source-alternative-row span {
  color:var(--text-3);
}

.economics-source-detail-row strong,
.economics-source-alternative-row strong {
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--text-1);
  font-weight: var(--font-weight-semibold);
}

.economics-source-alternative-row {
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
}

.economics-missing-inputs {
  display:grid;
  gap:8px;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid #E7D4A8;
  border-radius:var(--radius-role-md);
  background:#FFF9EC;
}

.economics-missing-input-list {
  display:grid;
  gap:5px;
}

.economics-missing-input-row {
  display:grid;
  grid-template-columns:minmax(120px, 0.35fr) minmax(0, 1fr);
  gap:8px;
  font-size: var(--text-sm);
}

.economics-missing-input-row span {
  color:var(--text-2);
  font-weight: var(--font-weight-bold);
}

.economics-missing-input-row em {
  color:var(--text-3);
  font-style:normal;
}

.economics-workpaper-strip {
  display:flex;
  align-items:center;
  gap:18px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--radius-role-md);
  background:var(--surface);
  margin:10px 0 12px;
}

.economics-workpaper-strip > div {
  min-width:0;
}

.economics-check-field {
  grid-column:span 2;
}

.economics-result-panel {
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px;
  border-left:1px solid var(--border);
  background:var(--surface-2);
}

.economics-result-title {
  font-size: var(--text-sm);
  font-weight:750;
  color:var(--text-2);
}

.economics-result-empty {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.economics-result-list {
  display:grid;
  gap:6px;
}

.economics-result-row {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding-bottom:6px;
  border-bottom:1px solid var(--border);
  font-size: var(--text-sm);
}

.economics-result-row span {
  color:var(--text-3);
}

.economics-result-row strong {
  text-align:right;
  white-space:nowrap;
}

.economics-warning-list {
  display:grid;
  gap:4px;
  padding:8px;
  border:1px solid #EBD3A8;
  border-radius:var(--radius-control);
  background:#FFF9EC;
}

.economics-result-footer {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-top:auto;
}

.economics-chip-row {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

@media (max-width: 980px) {
  .economics-summary-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .economics-workpaper {
    grid-template-columns:1fr;
  }

  .economics-result-panel {
    border-left:0;
    border-top:1px solid var(--border);
  }

  .economics-input-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .economics-summary-grid,
  .economics-input-grid {
    grid-template-columns:1fr;
  }

  .economics-check-field {
    grid-column:auto;
  }
}

.backlog-field-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}





.issue-workspace-root {
  min-width:0;
}

.issue-workspace-shell {
  display:grid;
  grid-template-columns:minmax(220px, 280px) minmax(0, 1fr);
  gap:14px;
  align-items:start;
}

/* Same surface treatment as .assistant-page-widget (conversations list):
   radius-container + widget shadow, rows full-bleed and contiguous. */
.issue-rail {
  position:sticky;
  top:0;
  display:grid;
  align-content:start;
  max-height:calc(100vh - 190px);
  overflow:auto;
  border-radius:var(--radius-container);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
  padding:0;
}




.issue-rail .navigator-list { border-block:0; }






.issue-workspace-panel {
  min-width:0;
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
  padding:14px var(--widget-padding-x);
}

.issue-workspace-header {
  display:flex;
  align-items:flex-start;
  gap:12px;
}

.issue-workspace-header-main {
  flex:1;
  min-width:0;
}

.issue-workspace-title {
  margin:10px 0 0;
  font-size:21px;
  line-height:1.25;
  letter-spacing:0;
}

.issue-workspace-stats {
  display:flex;
  flex-wrap:wrap;
  gap:6px 28px;
  margin-top:12px;
  padding:10px 0;
  box-shadow:inset 0 1px 0 var(--rule-soft), inset 0 -1px 0 var(--rule-soft);
}

.issue-workspace-stats > div {
  display:grid;
  gap:2px;
  min-width:0;
}

.issue-workspace-stats strong {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size: var(--text-body);
}

.issue-workspace-section {
  display:grid;
  gap:12px;
  margin-top:12px;
}

.issue-summary-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.task-summary-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}


/* Issue workspace linked sections use the standard card-head vocabulary so
   Deadlines/Tasks/Appointments/Documents match the Primary evidence heading. */


.issue-linked-overview {
  display:grid;
  gap:10px;
}



@media (max-width: 900px) {
  .issue-workspace-shell {
    grid-template-columns:1fr;
  }

  .issue-rail {
    position:static;
    max-height:none;
  }

  .issue-workspace-stats,
  .issue-summary-grid,
  .task-summary-grid {
    grid-template-columns:1fr;
  }
}

/* === Slice C — work-rows shared display components === */

.work-row {
  display:flex;
  gap:12px;
  position:relative;
  padding:10px 12px 10px 18px;
  border-bottom:1px solid var(--rule-soft, #F0F0F0);
  align-items:flex-start;
}
.work-row.is-clickable { cursor:pointer; }
.work-row.is-clickable:hover { background:var(--hover, #FAFAFA); }
.work-row.selected { box-shadow:inset 3px 0 0 var(--accent-text, #6B29C0); background:var(--surface-2, #FAFAFA); }
.work-row.overdue::before,
.work-row.critical::before,
.work-row.warn::before {
  content:"";
  position:absolute;
  left:8px;
  top:10px;
  bottom:10px;
  width:2px;
  border-radius:var(--radius-pill);
  background:var(--warn, #8B6914);
}
.work-row.overdue::before,
.work-row.critical::before { background:var(--critical, #C0291F); }
.work-row-variant-claim:is(.overdue, .critical, .warn)::before {
  top:8px;
  bottom:8px;
}
.work-row-variant-register:is(.overdue, .critical, .warn)::before {
  top:12px;
  bottom:12px;
}
.work-row.closed .work-row-title-line { color:var(--text-3, #666); }

.work-row-lead { flex:none; display:flex; align-items:center; gap:8px; }
.work-row-with-proximity .work-row-lead,
.work-row-kind-deadline .work-row-lead {
  align-self:stretch;
  align-items:stretch;
  flex:0 0 104px;
  width:104px;
}
.work-row-proximity,
.work-row-kind-deadline .deadline-when {
  width:100%;
  box-sizing:border-box;
  justify-content:center;
  padding:6px 8px 6px 10px;
}
.work-row-kind-deadline .deadline-when {
  align-items:flex-start;
  text-align:left;
}
.work-row-proximity {
  display:flex;
  flex-direction:column;
}
.work-row-proximity.critical {
  background:color-mix(in srgb, var(--critical-soft, #FFEAE7) 58%, transparent);
}
.work-row-proximity-days {
  font-size: var(--text-xl);
  line-height:1;
  font-weight: var(--font-weight-semibold);
  color:var(--text, #1F1F1F);
}
.work-row-proximity.critical .work-row-proximity-days {
  color:var(--critical, #C0291F);
}
.work-row-proximity.warn .work-row-proximity-days {
  color:var(--warn, #8B6914);
}
.work-row-proximity.muted .work-row-proximity-days {
  color:var(--text-3, #666);
}
.work-row-proximity-date {
  margin-top:4px;
  color:var(--text-3, #666);
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing:0;
}
.work-row-kind-deadline.overdue .deadline-when {
  background:color-mix(in srgb, var(--critical-soft, #FFEAE7) 58%, transparent);
}
.work-row-main { flex:1; min-width:0; }
.work-row-title-line {
  display:flex; flex-wrap:wrap; gap:6px; align-items:center;
  font-weight: var(--font-weight-medium);
}
.work-row-title-text { font-weight: var(--font-weight-medium); }
.work-row-context-line {
  margin-top:3px;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color:var(--text-2, #4D4D4D);
}
.work-row-meta {
  font-size: var(--text-sm); color:var(--text-3, #666);
  margin-top:3px;
  display:flex; flex-wrap:wrap; gap:6px; align-items:center;
}
.work-row-meta-claim { font-weight: var(--font-weight-medium); color:var(--text-2, #4D4D4D); }
.work-row-source-spacer { margin-top:4px; }
.work-row-aside { flex:none; display:flex; gap:8px; align-items:center; justify-content:flex-end; }
.appointment-row-actions {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}







.work-row-due-block.critical .work-row-due-days { color:var(--critical, #C0291F); font-weight: var(--font-weight-semibold); }
.work-row-due-block.warn .work-row-due-days { color:var(--warn, #8B6914); font-weight: var(--font-weight-semibold); }
.work-row-due-block.muted .work-row-due-days { color:var(--text-3, #666); }



.work-row-detail-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:4px 14px;
  font-size: var(--text-sm);
  color:var(--text-3, #666);
  margin-top:6px;
}
.work-row-detail-grid strong { color:var(--text-2, #4D4D4D); font-weight: var(--font-weight-medium); margin-right:4px; }

.work-row .indicator-inline { color:var(--text-3, #666); font-style:italic; }

.ime-readiness-chip-row {
  display:flex;
  gap:6px;
  margin-top:10px;
  margin-bottom:16px;
  flex-wrap:wrap;
}

/* Variant tweaks */
.work-row-variant-myday { padding:10px 12px 10px 18px; }
.work-row-variant-claim { padding:8px 10px 8px 18px; }
.work-row-variant-register { padding:12px 12px 12px 18px; }

.work-widget-grid {
  column-gap:var(--work-widget-column-gap);
  row-gap:var(--work-widget-row-gap);
  margin-top:0;
}

.calendar-event-card {
  position:relative;
  padding-left:10px;
}
/* 78:2812 completed rule on month/week event cards: label drops to the
   accessible muted neutral and a small green check marks completion; the
   accent bar de-saturates via the event colour set at the builder. */
.calendar-event-card.is-completed { color:var(--approved-text-muted); }
.calendar-event-card.is-completed .calendar-week-event-title { color:var(--approved-text-muted); }
.calendar-event-completed-check {
  display:inline-flex;
  flex:0 0 auto;
  margin-left:2px;
  color:var(--approved-feedback-success);
  vertical-align:middle;
}
/* Round 3 (Dan): on the ellipsis-truncating compact cards the check pins to
   the card's right edge with reserved padding, so a long label can never
   truncate the completion marker away. The three-class selector outranks
   the later `.calendar-approved .calendar-month-event` padding shorthand
   (independent-review finding: equal specificity + later source order was
   silently resetting this to 4px). */
.calendar-event-card-compact.is-completed,
.calendar-approved .calendar-month-event.is-completed { padding-right:18px; }
.calendar-event-card-compact.is-completed .calendar-event-completed-check {
  position:absolute;
  right:3px;
  top:50%;
  transform:translateY(-50%);
  margin-left:0;
}
/* Same 78:2812 wash on the List rows and Day-timeline cards, which also
   receive completed events now. */
.calendar-docket-row.is-completed td,
.calendar-docket-row.is-completed .docket-due-cell strong,
.calendar-docket-row.is-completed .calendar-docket-title,
.calendar-docket-row.is-completed .docket-claim-cell strong { color:var(--approved-text-muted); }
.calendar-timeline-event.is-completed,
.calendar-timeline-event.is-completed strong { color:var(--approved-text-muted); }
.calendar-event-card::before,
.calendar-agenda-row::before {
  content:"";
  position:absolute;
  left:4px;
  top:3px;
  bottom:3px;
  width:2px;
  border-radius:var(--radius-pill);
  background:var(--calendar-event-color, var(--accent));
}
.calendar-event-card-timed::before,
.calendar-agenda-row::before {
  top:6px;
  bottom:6px;
}
.calendar-event-card-compact::before {
  top:2px;
  bottom:2px;
}

/* ============================================================
 * APPROVED CALENDAR — Dev Handover node 108:2258
 * One surface and one event language across Month, Week and Day.
 * ============================================================ */
/* Correction F: the Calendar-only desktop Page Header override (77px root,
   20/32/12 padding, 24/32 title, 13/13 subtitle) is removed — Calendar
   consumes the shared DH 69:191 contract (80px, 16/24, 20/650/28). The
   accepted ≤520 phone reflow block below is responsive behavior and stays. */
.calendar-page-range {
  display:inline-flex;
  align-items:center;
  gap:8px;
  /* Authored date-range chip (259:27): 33 hug, 1px border/subtle. */
  min-height:33px;
  padding:0 12px;
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-role-md);
  background:var(--surface);
  color:var(--text-2);
  font-size:var(--text-body);
  white-space:nowrap;
}
.app-page-body > .calendar-page.calendar-approved {
  /* Correction F: the shared workspace canvas-inset recipe (was the
     route-specific 24/32/28). */
  padding:var(--workspace-canvas-inset-top) var(--workspace-canvas-inset-x) var(--workspace-canvas-inset-bottom);
  gap:0;
  /* Lisa 03A: the page ground is the one canvas token; the calendar card and
     legend mount on it via the central widget shadow (no 1px borders). */
  background:var(--canvas-bg);
  scrollbar-width:none;
}
.calendar-approved::-webkit-scrollbar { display:none; }
.content:has(.calendar-approved) { scrollbar-gutter:auto; }
.calendar-surface {
  min-width:0;
  /* DH card 143:4184 authors a 1px border/default edge with no effects;
     Lisa 03A supersedes: mounted-widget shadow on the canvas, no border. */
  border:0;
  border-radius:var(--radius-role-lg);
  background:var(--surface);
  /* E-R2 defect fix: the previous hidden-overflow value made the card a
     programmatic scroll container — keyboard focus/scrollIntoView could
     silently set scrollTop (observed 160) and hide the dock/planner header
     with no user recovery. clip clips to the rounded border box WITHOUT
     creating a scroll container, so the surface can never scroll. */
  overflow:clip;
  box-shadow:var(--widget-shadow);
}
.calendar-surface-intro {
  min-height:70px;
  padding:16px 16px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid var(--rule);
}
/* DH dock-header 143:4184: title Body/Medium 16/400/24 neutral/700,
   subtitle Caption 12/400/16 neutral/400 — same roles as Work. */
.calendar-surface-intro h3 { margin:0; font-size:16px; line-height:24px; font-weight:var(--font-weight-regular); color:var(--approved-text-secondary); }
.calendar-surface-intro p { margin:2px 0 0; color:var(--approved-text-subtle); font-size:var(--text-sm); line-height:16px; }
/* DH scope trigger: btn-secondary instance, Label/Strong 13/500. */
.calendar-scope-button { gap:8px; font-size:var(--text-body); }
.calendar-scope-picker { position:relative; }
.calendar-scope-menu {
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:210;
  width:260px;
  padding:6px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-lg);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.calendar-scope-menu > button {
  width:100%; min-height:34px; padding:6px 8px; border:0; border-radius:var(--radius-control); background:transparent; color:var(--text-2); font:inherit; font-size:12px; text-align:left; display:grid; grid-template-columns:22px 1fr 16px; align-items:center; gap:7px; cursor:pointer;
}
.calendar-scope-menu > button:hover { background:var(--hover); }
.calendar-scope-menu > button > span:nth-child(2) { display:grid; }
/* DH Calendar / Calendar Row: trailing visual checkbox. The row keeps its
   menuitemcheckbox semantics; this box is presentation only (aria-hidden).
   Checked fill uses the neutral ink accent — checkbox colour is not read
   from DH and brand purple stays reserved for highlights/actions. */
.calendar-scope-checkbox {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border:1px solid var(--approved-border-strong);
  border-radius:var(--radius-role-sm);
  background:var(--surface);
  color:var(--color-white);
}
.calendar-scope-checkbox.is-checked { border-color:var(--accent); background:var(--accent); }
.calendar-scope-menu small { color:var(--text-3); font-size:10px; }
.calendar-scope-menu-label { margin:5px 8px 3px; padding-top:6px; border-top:1px solid var(--rule-soft); color:var(--text-3); font-size:10px; font-weight:var(--font-weight-medium); letter-spacing:.04em; }
.calendar-approved .calendar-toolbar {
  height:56px;
  min-height:56px;
  padding:12px 16px;
  display:grid;
  grid-template-columns:auto auto minmax(120px, 1fr) auto auto auto;
  gap:10px;
  border-bottom:1px solid var(--rule);
  flex-wrap:nowrap;
}
.calendar-approved .calendar-toolbar-nav { margin-left:12px; }
.calendar-approved .calendar-toolbar-nav::before { content:""; width:1px; height:24px; margin-right:2px; background:var(--rule); }
.calendar-view-tabs-wrap { display:flex; align-items:center; gap:8px; }
.calendar-options-menu { position:relative; }
.calendar-options-menu > .btn.is-active { color:var(--accent); background:var(--accent-bg); }
.calendar-options-popover {
  position:absolute; top:calc(100% + 8px); right:0; z-index:220; width:224px; padding:8px;
  border:1px solid var(--rule); border-radius:var(--radius-role-lg); background:var(--surface); box-shadow:var(--shadow-pop);
}
.calendar-options-heading { padding:7px 8px 5px; color:var(--text-3); font-size:10px; font-weight:var(--font-weight-medium); letter-spacing:.02em; }
.calendar-options-heading:not(:first-child) { margin-top:5px; border-top:1px solid var(--rule-soft); }
.calendar-options-popover > button { width:100%; min-height:36px; padding:8px; display:flex; align-items:center; justify-content:space-between; gap:8px; border:0; border-radius:var(--radius-control); background:transparent; color:var(--text-2); font:inherit; font-size:12px; text-align:left; cursor:pointer; }
.calendar-options-popover > button:hover { background:var(--hover); }
.calendar-approved .calendar-toolbar-label { text-align:center; font-size:16px; line-height:24px; font-weight:var(--font-weight-regular); letter-spacing:0; white-space:nowrap; }
.calendar-approved .calendar-toolbar-spacer,
.calendar-approved .calendar-toolbar-grow { display:none; }
.calendar-approved .calendar-toolbar-filters { justify-content:flex-end; flex-wrap:nowrap; }
/* UP05 (143:4223): Subscribe + Create event are one 8-gap pair (the
   authored buttons container) at the toolbar's right edge. */
.calendar-toolbar-create-pair { display:inline-flex; align-items:center; gap:8px; justify-self:end; }
.calendar-toolbar-create-pair .btn,
.calendar-toolbar-create-pair .my-work-create-button { white-space:nowrap; }
.calendar-view-canvas { position:relative; min-width:0; background:var(--surface); overflow:auto; }
/* Correction C (Lisa D16): fit/full-screen recipes reconciled from the
   retired canvas-widget selector block onto the live canvas owner.
   FIT (opt-in): the month grid sizes to the visible canvas area; the week
   timed grid derives --wk-hour from the viewport.
   FULLSCREEN: a fixed inset-14 overlay at the central z role. */
.calendar-view-canvas.is-fill .calendar-month-grid {
  height:calc(100vh - 320px);
  min-height:420px;
  grid-template-rows:auto;
  grid-auto-rows:minmax(0, 1fr);
  overflow:hidden;
}
.calendar-view-canvas.is-fill .calendar-month-grid > * { min-height:0; overflow:auto; }
.calendar-view-canvas.is-fill .calendar-week-timed { --wk-hour:calc((100vh - 340px) / 12); }
.calendar-view-canvas.is-fullscreen {
  position:fixed;
  inset:14px;
  z-index:var(--z-calendar-fullscreen);
  display:flex;
  flex-direction:column;
  border-radius:var(--radius-role-lg);
  box-shadow:var(--shadow-pop), 0 0 0 1px var(--rule);
}
.calendar-view-canvas.is-fullscreen .calendar-month-grid {
  flex:1;
  min-height:0;
  grid-template-rows:auto;
  grid-auto-rows:minmax(0, 1fr);
  overflow:hidden;
}
.calendar-view-canvas.is-fullscreen .calendar-month-grid > * { min-height:0; overflow:auto; }
.calendar-view-canvas.is-fullscreen .calendar-week-grid { flex:1; min-height:0; overflow:auto; }
.calendar-view-canvas.is-fullscreen .calendar-week-timed { --wk-hour:calc((100vh - 240px) / 12); }
/* Correction G (Dan): split-state maximise — the WHOLE surface becomes the
   fixed overlay (dock + planner + month stay mounted) on the same central
   recipe. The surface keeps overflow:clip (E-R2 invariant: never a scroll
   container); the overlay children own their scrolling. The intro toggle
   inside the overlay is the Restore control. Unsplit modes keep the
   accepted canvas-level overlay above. */
.calendar-surface.is-fullscreen {
  position:fixed;
  inset:14px;
  z-index:var(--z-calendar-fullscreen);
  display:flex;
  flex-direction:column;
  box-shadow:var(--widget-shadow), var(--shadow-pop), 0 0 0 1px var(--rule);
}
.calendar-surface.is-fullscreen .calendar-month-layout.is-split {
  flex:1;
  min-height:0;
}
.calendar-surface.is-fullscreen .calendar-day-planner {
  min-height:0;
  overflow:auto;
}
.calendar-surface.is-fullscreen .calendar-split-month {
  min-height:0;
  display:flex;
  flex-direction:column;
}
.calendar-surface.is-fullscreen .calendar-split-month .calendar-view-canvas {
  flex:1;
  min-height:0;
}
.calendar-view-canvas.is-fullscreen .calendar-fullscreen-exit {
  position:absolute;
  top:10px;
  right:10px;
  z-index:5;
  background:var(--surface);
  box-shadow:0 0 0 1px var(--rule), var(--shadow-sm);
}
.calendar-intro-tools { display:flex; align-items:center; gap:8px; }
/* DC03: same central slide as the claims/directory splits — the planner
   track interpolates minmax(0,0%) -> minmax(360px,38%). */
.calendar-approved .calendar-month-layout {
  grid-template-columns:minmax(0px, 0%) minmax(0, 1fr);
  gap:0;
  transition:grid-template-columns var(--split-motion-duration) var(--split-motion-easing);
}
.calendar-approved .calendar-month-layout.is-split { grid-template-columns:minmax(360px, 38%) minmax(0, 1fr); }
.calendar-approved .calendar-month-layout > .calendar-day-planner { min-width:0; overflow:hidden; }
/* R5 (Codex review, DC47): with the planner closed the month canvas is the
   only child and auto-placement would drop it into the collapsed first
   track — pin it to the 1fr track. In the split state the month sits in
   .calendar-split-month (order:2) and the planner (order:1) takes track one,
   so this rule only ever addresses the closed state. */
.calendar-approved .calendar-month-layout > .calendar-view-canvas { grid-column:2; min-width:0; }
@media (prefers-reduced-motion: reduce) {
  .calendar-approved .calendar-month-layout { transition:none; }
}
.calendar-split-month { order:2; min-width:0; border-left:1px solid var(--rule); }
.calendar-split-month-head { min-height:58px; padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--rule); }
.calendar-split-month-head > div { display:flex; align-items:center; gap:4px; }
.calendar-split-month-head > strong { font-size:16px; line-height:24px; font-weight:var(--font-weight-regular); }
.calendar-day-planner { order:1; border:0; border-radius:var(--radius-role-none); box-shadow:none; min-width:0; }
/* Correction B (DH 143:4478 planner-header): authored 20/20/16/20 padding,
   4px heading gap and hug height (20 + 24 title + 4 + 19 date line + 16 =
   83); title Body/Medium 16/400/24/0 neutral/700. Sentence-case copy is
   retained per Lisa D04 (title-case "Day Planner" recorded as held). */
/* Correction E (DH 143:4478 rows): the 26px first header row carries the
   title and actions space-between with Collapse far right; the date line
   follows on the 4px gap. 20 + 26 + 4 + 17 + 16 = the authored 83 hug. */
.calendar-day-planner .card-head { min-height:0; padding:20px 20px 16px; display:grid; gap:4px; }
.calendar-planner-head-row { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:26px; }
/* The authored header-actions instance is 26 high — inside this row the
   planner controls take the authored 26 (supersedes the correction-B hold
   that kept them at the 28px shared size). */
.calendar-planner-head-row .btn { height:26px; min-height:26px; }
.calendar-planner-head-row .btn-icon { width:26px; }
/* Shared Body/Medium 16/400/24 text/secondary widget title — the claims
   dock title (724:3030) joins the planner title (143:4478) on one rule. */
.calendar-day-planner .card-head-title,
.claims-browser-title,
.browser-dock-title { font-size:16px; font-weight:var(--font-weight-regular); letter-spacing:0; line-height:24px; color:var(--approved-text-secondary); }
.calendar-day-planner .card-head .muted.small { line-height:17px; }
/* DH 143:4478 header-actions: horizontal gap 8. */
.calendar-day-card-actions { display:flex; align-items:center; gap:8px; }
/* DH 143:4478 Collapse: 26x26 on the governed radius/md, central Lucide
   chevronsLeft (Lisa D15A) at 16px — the inspector's Phosphor naming is
   not adopted. */
.calendar-planner-head-row .calendar-planner-collapse { width:26px; height:26px; min-height:26px; padding:0; border-radius:var(--radius-role-md); }
/* Correction E (DH 143:4478 filter-tabs): the planner filter row is the
   central filter-pill role, not the navigation segmented track. */
.calendar-planner-controls { display:flex; align-items:center; padding:2px 16px 12px; border-bottom:1px solid var(--rule); }
/* Correction E (DH 143:4478 agenda-list): 16px inset, 12px rhythm on the
   neutral/50 canvas; the list owns the full-width Create event inset.
   Event-card internals are intentionally unchanged (no authored internal
   read in this slice). */
.calendar-day-planner .calendar-planner-card-list { display:grid; align-content:start; gap:12px; padding:16px; background:var(--canvas-bg); }
.calendar-day-planner .calendar-planner-card-list > .btn { width:100%; justify-content:center; }
.calendar-planner-card { position:relative; width:100%; min-width:0; display:grid; gap:5px; padding:10px 12px 10px 15px; border:1px solid var(--rule); border-radius:var(--radius-role-md); background:var(--surface); color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.calendar-planner-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; border-radius:var(--radius-role-md) 0 0 var(--radius-role-md); background:var(--calendar-event-color); }
.calendar-planner-card:hover { border-color:var(--approved-border-strong); background:var(--hover); }
.calendar-planner-card:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.calendar-planner-card-meta { display:flex; align-items:center; gap:7px; color:var(--text-3); font-size:11px; }
.calendar-planner-card-meta strong { color:var(--calendar-event-color); font-weight:var(--font-weight-medium); }
/* DH planner card 143:4454: right kicker names the record kind
   (Deadline / Appointment / Completed), driven only by real event data. */
.calendar-planner-card-kicker { margin-left:auto; color:var(--text-3); font-size:11px; white-space:nowrap; }
/* DH planner card title: Tag 14/500/20/2% neutral/700. */
.calendar-planner-card-title { overflow:hidden; color:var(--approved-text-secondary); font-size:14px; font-weight:var(--font-weight-medium); line-height:20px; letter-spacing:0.02em; text-overflow:ellipsis; white-space:nowrap; }
.calendar-planner-card-detail { display:flex; align-items:center; gap:6px; overflow:hidden; color:var(--text-3); font-size:11px; line-height:16px; white-space:nowrap; }
.calendar-planner-card-detail > span { overflow:hidden; text-overflow:ellipsis; }
/* DH claim chip on planner cards — the delivered brand/subtle claim
   reference treatment (same narrow role as the Work agenda chip). */
.calendar-planner-claim-chip { flex:0 0 auto; padding:1px 6px; border-radius:var(--radius-role-sm); background:var(--agenda-claim-reference-bg); color:var(--text-2); font-size:10px; font-weight:var(--font-weight-medium); line-height:14px; }
/* Authored "Completed task — visual rule" (78:2812, calendar card 766:3940):
   the same treatment as the Work-overview row — content de-emphasises to the
   accessible muted neutral, the type accent (left bar + time) de-saturates
   to neutral-400, chips go neutral, and the top-right kicker becomes the
   green "Completed ✓" marker. No strikethrough. */
.calendar-planner-card.is-completed { --calendar-event-color: var(--approved-text-subtle); }
.calendar-planner-card.is-completed .calendar-planner-card-title,
.calendar-planner-card.is-completed .calendar-planner-card-detail,
.calendar-planner-card.is-completed .calendar-planner-card-meta { color:var(--approved-text-muted); }
.calendar-planner-card.is-completed .calendar-planner-claim-chip { background:var(--color-neutral-40); color:var(--approved-text-muted); }
.calendar-planner-card.is-completed .calendar-planner-card-kicker { color:var(--approved-feedback-success); font-weight:var(--font-weight-medium); }
/* Correction E: the bottom .calendar-split-context footer was an unauthored
   extra — the authored split composition keeps the scope controls in the
   top dock header. */
.calendar-day-planner .calendar-docket-table { display:block; overflow:auto; }
.calendar-day-planner .calendar-docket-col-claim { display:none; }
.calendar-approved .calendar-month-grid,
.calendar-approved .calendar-week-grid { border:0; border-radius:var(--radius-role-none); }
/* DH Calendar / Weekday Header: Micro 10/500/14 text/muted (neutral-400); the
   uppercase text is authored in markup (D04 weekday-abbreviation exception —
   no CSS text-transform). */
.calendar-approved .calendar-month-weekday {
  min-height:36px;
  padding:10px 12px;
  font-size:10px;
  line-height:14px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-subtle);
}
/* DH Calendar / Day Cell 143:4245: Fill x 120, right+bottom 1px
   border/default rules, bg/surface; Outside-month bg/subtle (neutral-40)
   with muted numeral (no opacity hack); Selected 143:4626 brand/subtle
   (violet-25) with a 1px brand/primary (purple-500, Lisa D01) ring — the
   inset shadow keeps the grid geometry. The weekend tint is preserved
   current behavior (DH silent). */
.calendar-approved .calendar-month-cell {
  min-height:120px;
  padding:8px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--surface);
}
.calendar-approved .calendar-month-cell.is-weekend { background:var(--bg); }
.calendar-approved .calendar-month-cell.is-outside { background:var(--color-neutral-40); }
.calendar-approved .calendar-month-cell.is-outside .calendar-month-daynum { color:var(--approved-text-subtle); }
.calendar-approved .calendar-month-cell.is-selected {
  background:var(--color-violet-25);
  box-shadow:inset 0 0 0 1px var(--color-purple-500);
}
/* DH day numeral marker: today badge 22x22 radius/full accent ink with a
   Caption/Strong 12/500 white numeral. */
.calendar-approved .calendar-month-daynum {
  width:22px;
  height:22px;
  font-size:12px;
  font-weight:var(--font-weight-medium);
  color:var(--text-2);
}
.calendar-approved .calendar-month-daynum.is-today {
  color:var(--color-white);
  background:var(--accent);
}
/* DH Calendar / Event Chip: 20 high, 2x16 radius/full accent bar, title
   Caption 12/400/16; timed time text Caption/Strong 12/500 in the event's
   category colour (mapping-neutral: colour values stay held Q10/11).
   Correction D: direct Lisa D07 assigns Calendar event pills the governed
   radius/sm role, overriding the DH instance's radius/md. */
.calendar-approved .calendar-month-event {
  min-height:20px;
  padding:2px 4px 2px 12px;
  border-radius:var(--radius-role-sm);
  background:transparent;
  font-size:12px;
  line-height:16px;
}
.calendar-approved .calendar-month-event .calendar-event-type-icon { display:none; }
.calendar-approved .calendar-month-event::before { left:4px; top:2px; bottom:2px; width:2px; }
.calendar-approved .calendar-month-event .calendar-event-time-prefix {
  color:var(--calendar-event-color, var(--accent));
  font-weight:var(--font-weight-medium);
}
/* D-R1: genuine keyboard testing exposed that the div[role=button] month
   cells and chips fall outside the global button:focus-visible rule — the
   governed D09 ring is applied to both keyboard stops here. */
.calendar-approved .calendar-month-cell:focus-visible,
.calendar-approved .calendar-month-event:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
/* DH "+1 more": Micro 10/500/14 text/muted. */
.calendar-approved .calendar-month-more-count { align-self:flex-start; margin:1px 0 0 5px; padding:0; border:0; background:transparent; color:var(--approved-text-subtle); font:inherit; font-size:10px; font-weight:var(--font-weight-medium); line-height:14px; cursor:pointer; }
.calendar-approved .calendar-month-more-count:hover { color:var(--accent); }
.calendar-approved .calendar-legend {
  margin:var(--widget-stack-gap) 0 0;
  padding:12px 16px;
  /* Lisa 03A mounted widget on the canvas — shadow edge, no 1px border. */
  border:0;
  border-radius:var(--radius-role-lg);
  background:var(--surface);
  box-shadow:var(--widget-shadow);
  display:grid;
  gap:10px;
  font-size:11px;
}
.calendar-legend-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.calendar-owner-legend-row { padding-top:10px; border-top:1px solid var(--rule-soft); }
.calendar-approved .calendar-legend-item { gap:5px; }
.calendar-owner-legend > span:first-child { width:8px; height:8px; border-radius:var(--radius-role-full); }
/* DH legend labels author uppercase Micro 10/500/14 text/muted; D04 keeps
   sentence case (uppercase is not a listed exception here) while the Micro
   size/colour is adopted. Swatches are the authored 10x10 on one governed
   radius/sm (Lisa 07 — the delivered mix of raw 3px and radius/sm collapses
   to the central role). */
.calendar-approved .calendar-legend-label { font-size:10px; line-height:14px; color:var(--approved-text-subtle); }
.calendar-approved .calendar-legend-item .calendar-event-type-icon {
  width:10px;
  height:10px;
  padding:0;
  border:0;
  border-radius:var(--radius-role-sm);
  background:currentColor;
}
.calendar-approved .calendar-legend-item svg { display:none; }
.calendar-day-timeline { min-width:700px; }
.calendar-day-summary {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:64px;
  padding:10px 64px;
  border-bottom:1px solid var(--rule-soft);
}
.calendar-day-summary-date { width:28px; height:28px; display:grid; place-items:center; border-radius:var(--radius-role-full); font-weight:var(--font-weight-semibold); }
.calendar-day-summary-date.is-today { color:white; background:var(--text); }
.calendar-day-summary > span:last-child { display:grid; }
.calendar-day-summary small { color:var(--text-3); font-size:11px; }
.calendar-day-allday { display:grid; grid-template-columns:64px 1fr; border-bottom:1px solid var(--rule); }
.calendar-day-allday > span { padding:8px; text-align:right; color:var(--text-3); font-size:11px; }
.calendar-day-allday > div { display:grid; gap:3px; padding:4px 8px; border-left:1px solid var(--rule-soft); }
.calendar-day-hours { display:grid; grid-template-columns:64px 1fr; height:var(--calendar-day-height); }
.calendar-day-hour-labels { display:grid; grid-auto-rows:var(--calendar-hour-height); }
.calendar-day-hour-labels span { padding:3px 8px 0 0; text-align:right; color:var(--text-3); font-size:10px; }
.calendar-day-hour-lane { position:relative; border-left:1px solid var(--rule-soft); }
.calendar-day-hour-rule { height:var(--calendar-hour-height); border-top:1px solid var(--rule-soft); }
.calendar-timeline-event {
  position:absolute;
  left:8px;
  right:8px;
  min-height:26px;
  padding:6px 10px 6px 14px;
  border:0;
  border-radius:var(--radius-role-sm);
  background:color-mix(in srgb, var(--calendar-event-color) 7%, var(--surface));
  color:var(--text);
  font:inherit;
  font-size:12px;
  text-align:left;
  cursor:pointer;
  overflow:hidden;
}
.calendar-timeline-event::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--calendar-event-color); }
.calendar-timeline-event strong { margin-right:8px; color:var(--calendar-event-color); font-size:11px; }
.calendar-timeline-event.is-compact { position:relative; inset:auto; width:100%; }
.calendar-approved .calendar-week-head-cell { min-height:48px; padding:8px 4px; }
.calendar-approved .calendar-week-head-date { font-size:15px; }
/* DH week event card time: Micro 10/500/14. */
.calendar-approved .calendar-week-event-time { font-size:10px; font-weight:var(--font-weight-medium); line-height:14px; }
.calendar-approved .calendar-week-event { border:0; color:var(--text); font:inherit; text-align:left; cursor:pointer; background:color-mix(in srgb, var(--calendar-event-color) 7%, var(--surface)); }
.calendar-approved .calendar-week-event:focus-visible,
.calendar-approved .calendar-week-allday-event:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); z-index:3; }
.calendar-approved .calendar-week-timed { --wk-hour:42px; }
.calendar-type-select { position:relative; }
.calendar-type-select::before { content:""; position:absolute; left:12px; top:50%; width:7px; height:7px; border-radius:var(--radius-role-full); background:var(--calendar-field-color); transform:translateY(-50%); z-index:1; pointer-events:none; }
.calendar-type-select .input, .calendar-type-select .select { padding-left:28px; }
/* Authored scheduling-conflict alert (DH 143:7344 Create Event Modal):
   feedback/warning 1px border on warning-bg, 12px inset, 8px icon gap,
   16px icon. The heading is Label 13/16 REGULAR in feedback/warning (not
   bold — authored weight 400); body lines are Caption 12/16
   text/secondary, one line per conflict. */
.calendar-conflict-alert { display:flex; flex-direction:row; align-items:flex-start; gap:8px; padding:12px; border:1px solid var(--approved-feedback-warning); border-radius:var(--radius-role-md); background:var(--approved-feedback-warning-bg); color:var(--approved-feedback-warning); }
/* Issue 2055 (main PR 2059; the refs are spelled out so the token audit does not read them as hex): the icon's width attribute is only a flex basis. With a long conflict
   sentence the row flex container shrank the SVG to ~12.4px; the authored 16px
   icon must not flex-shrink (same recipe as .chip svg / .card-head-title svg). */
.calendar-conflict-alert > svg { flex-shrink:0; }
.calendar-conflict-alert > span { display:grid; gap:2px; }
.calendar-conflict-alert strong { font-size:var(--text-body); font-weight:var(--font-weight-regular); line-height:16px; }
.calendar-conflict-alert small { color:var(--approved-text-secondary); font-size:var(--text-sm); line-height:16px; }

@media (max-width: 1400px) {
  .calendar-approved .calendar-toolbar { grid-template-columns:auto auto minmax(100px, 1fr) auto auto auto; }
}
@media (max-width: 760px) {
  .calendar-surface-intro { padding:10px 12px; }
  .calendar-scope-button { overflow:hidden; }
  .calendar-approved .calendar-toolbar { height:auto; min-height:96px; grid-template-columns:auto 1fr auto; grid-auto-rows:auto; padding:8px; }
  .calendar-approved .calendar-toolbar > .calendar-view-tabs-wrap { grid-column:1 / -1; }
  .calendar-approved .calendar-toolbar-label { display:none; }
  .calendar-approved .calendar-toolbar-nav { margin-left:0; }
  .calendar-approved .calendar-toolbar-filters { grid-column:2; justify-self:end; }
  .calendar-approved .calendar-toolbar > .calendar-toolbar-create-pair { grid-column:3; }
  .calendar-approved .calendar-toolbar .calendar-toolbar-create-pair > .calendar-subscribe-button { display:none; }
  .calendar-approved .calendar-month-grid { min-width:0; width:100%; }
  .calendar-approved .calendar-month-layout.is-split { grid-template-columns:1fr; }
  .calendar-split-month { order:1; border-left:0; }
  .calendar-day-planner { order:2; border-top:1px solid var(--rule); }
  .calendar-approved .calendar-month-weekday { padding:8px 2px; font-size:9px; text-align:center; }
  .calendar-approved .calendar-month-cell { min-height:76px; padding:4px; }
  .calendar-approved .calendar-month-event { min-height:16px; padding:1px 2px 1px 7px; font-size:9px; line-height:13px; }
}
@media (max-width: 520px) {
  /* Correction F: the ≤520 Calendar block keeps only the reflow/actions
     behavior (column stack for the range control). Root padding, min-height
     and title/subtitle typography come from the shared central roles so
     Work and Calendar are identical at 520. */
  .app-page-scaffold:has(> .app-page-body > .calendar-approved) > .app-page-header { gap:8px; flex-direction:column; }
  .app-page-scaffold:has(> .app-page-body > .calendar-approved) > .app-page-header .app-page-subtitle { max-width:260px; }
  .app-page-scaffold:has(> .app-page-body > .calendar-approved) > .app-page-header .app-page-actions { width:100%; min-width:0; justify-content:flex-start; }
  .calendar-surface-intro { align-items:stretch; flex-direction:column; gap:8px; }
  .calendar-scope-picker,
  .calendar-scope-button { width:100%; max-width:100%; }
  .calendar-scope-menu { left:0; right:auto; width:min(260px, calc(100vw - 108px)); }
}


/* SourceProvenanceChip atom */
.source-prov-chip {
  display:inline-flex; align-items:center; gap:4px;
  background:var(--surface-3, #F4F4F4); color:var(--text-2, #4D4D4D);
  padding:2px 8px 2px 6px; border-radius:var(--radius-pill);
  font-size: var(--text-xs); font-weight: var(--font-weight-medium); white-space:nowrap;
}
.source-prov-chip-info { background:var(--info-soft, #EBF5FF); color:var(--info, #0068D6); }
.source-prov-chip-accent { background:var(--accent-soft, #F3EBFF); color:var(--accent-text, #6B29C0); }
.source-prov-chip-success { background:var(--success-soft, #E7F8ED); color:var(--success, #1A7D3A); }
.source-prov-chip-neutral { background:var(--surface-3, #F4F4F4); color:var(--text-2, #4D4D4D); }
.source-prov-chip-warn { background:var(--warn-soft, #FEF6DD); color:var(--warn, #8B6914); }
.source-prov-chip-critical { background:var(--critical-soft, #FFEAE7); color:var(--critical, #C0291F); }
.source-prov-chip-compact { padding:2px 6px; }
.source-prov-chip-label { font-weight: var(--font-weight-medium); }
.source-prov-chip-detail { color:var(--text-3, #666); font-weight: var(--font-weight-regular); max-width:240px; overflow:hidden; text-overflow:ellipsis; }

/* ============================================================
 * Reference UI
 * ============================================================ */
.reference-ui {
  display:flex;
  flex-direction:column;
  gap:28px;
  padding:22px 24px 36px;
  min-height:100%;
  background:var(--bg);
}

.reference-hero {
  display:block;
  gap:20px;
  padding-bottom:18px;
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-hero-copy {
  display:grid;
  gap:8px;
  max-width:820px;
}

.reference-page-map {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.reference-page-card {
  display:grid;
  gap:10px;
  padding:12px;
  min-width:0;
  background:var(--surface);
  box-shadow:var(--ring-light);
  border-radius:var(--radius-lg);
}

.reference-page-card h4,
.reference-page-card p {
  margin:0;
}

.reference-page-card h4 {
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}

.reference-page-card p {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-page-card code {
  display:inline-block;
  margin-top:5px;
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  color:var(--text-3);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
  border-radius:var(--radius-sm);
  padding:3px 5px;
}

.reference-component-links {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.reference-component-links a {
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:24px;
  padding:3px 7px;
  border-radius:var(--radius-pill);
  color:var(--text-2);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  text-decoration:none;
}

.reference-component-links a:hover {
  color:var(--text);
  background:var(--surface-3);
}

.reference-hero-copy p,
.reference-section-head p {
  margin:0;
  color:var(--text-3);
  font-size: var(--text-body);
  max-width:840px;
}

.reference-anchor-nav {
  position:sticky;
  top:0;
  z-index:4;
  display:flex;
  gap:4px;
  align-items:center;
  overflow-x:auto;
  padding:8px 0;
  background:color-mix(in srgb, var(--bg) 94%, transparent);
  backdrop-filter:blur(10px);
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-anchor-nav a {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  height:26px;
  padding:0 10px;
  border-radius:var(--radius-pill);
  color:var(--text-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  text-decoration:none;
}

.reference-anchor-nav a:hover {
  color:var(--text);
  background:var(--hover-2);
}

.reference-section {
  display:grid;
  gap:14px;
  scroll-margin-top:60px;
}

.reference-section-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:end;
}

.reference-section-head > div {
  display:grid;
  gap:6px;
}

.reference-anatomy {
  display:grid;
  gap:16px;
}

.reference-anatomy-card {
  min-width:0;
  overflow:hidden;
  border:1px solid var(--rule-soft);
  border-radius:var(--radius);
  background:var(--surface);
}

.reference-anatomy-card-navCanvas {
  border-style:dashed;
}

.reference-anatomy-card-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(240px, 0.42fr);
  gap:16px;
  align-items:start;
  padding:12px 14px;
  background:var(--surface-2);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-anatomy-card-head h4,
.reference-anatomy-card-head p {
  margin:0;
}

.reference-anatomy-card-head p {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-anatomy-variant-group {
  display:grid;
  gap:14px;
  margin-top:4px;
  padding-top:16px;
  box-shadow:inset 0 1px 0 var(--rule-soft);
}

.reference-anatomy-variant-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(260px, 0.45fr);
  gap:16px;
  align-items:start;
  padding:12px 14px;
  border-radius:var(--radius);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
}

.reference-anatomy-variant-head h4,
.reference-anatomy-variant-head p {
  margin:0;
}

.reference-anatomy-variant-head p {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-canvas-audit {
  display:grid;
  gap:10px;
  min-width:0;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-canvas-audit-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding-bottom:10px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-canvas-audit-head div {
  display:grid;
  gap:4px;
}

.reference-canvas-audit-head strong {
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}

.reference-canvas-audit-head span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-canvas-audit-list {
  display:grid;
  gap:1px;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-canvas-audit-row {
  display:grid;
  grid-template-columns:minmax(180px, 0.85fr) minmax(180px, 1fr) minmax(170px, 0.85fr) minmax(220px, 1.2fr);
  gap:10px;
  align-items:start;
  padding:9px 10px;
  background:var(--surface-2);
  color:var(--text-3);
  font-size:11.5px;
  line-height:1.4;
}

.reference-canvas-audit-row code,
.reference-canvas-audit-row em,
.reference-canvas-audit-row b {
  font-style:normal;
  font-weight: var(--font-weight-medium);
}

.reference-canvas-audit-row code {
  overflow-wrap:anywhere;
  color:var(--text-2);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-canvas-audit-row b {
  color:var(--text-2);
}

.reference-widget-layer-map {
  display:grid;
  gap:10px;
  min-width:0;
  padding:12px;
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-radius-proposal {
  display:grid;
  grid-template-columns:minmax(180px, 0.9fr) repeat(5, minmax(130px, auto));
  gap:8px;
  align-items:center;
  padding:12px;
  background:var(--surface);
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-radius-proposal > div {
  display:grid;
  gap:2px;
  margin-right:6px;
}

.reference-radius-proposal strong {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-proposal span {
  color:var(--text-3);
  font-size:11.5px;
}

.reference-radius-proposal code {
  align-self:stretch;
  padding:4px 6px;
  color:var(--text-2);
  background:var(--surface-2);
  border-radius:var(--radius-sm);
  box-shadow:var(--ring-light);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-radius-proposal p {
  grid-column:1 / -1;
  margin:2px 0 0;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-radius-proposal p code {
  display:inline;
  padding:2px 4px;
}

.reference-radius-review {
  display:grid;
  gap:14px;
}

.reference-radius-review-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.reference-radius-review-card {
  display:grid;
  gap:12px;
  min-width:0;
  padding:14px;
  background:var(--surface);
  border-radius:var(--radius-widget);
  box-shadow:var(--widget-shadow);
}

.reference-radius-review-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:start;
  padding-bottom:12px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-radius-review-head h4,
.reference-radius-review-head p {
  margin:0;
}

.reference-radius-review-head p {
  margin-top:5px;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-radius-review-head > code {
  padding:4px 6px;
  color:var(--text-2);
  background:var(--surface-2);
  border-radius:var(--radius-label);
  box-shadow:var(--ring-light);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-radius-context-list {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.reference-radius-context-list code {
  padding:3px 5px;
  color:var(--text-3);
  background:var(--surface-2);
  border-radius:var(--radius-label);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-radius-decision {
  display:grid;
  grid-template-columns:max-content minmax(0, 1fr);
  gap:8px;
  align-items:start;
  padding:9px 10px;
  background:var(--surface-2);
  border-radius:var(--radius-control);
  box-shadow:var(--ring-light);
}

.reference-radius-decision strong {
  color:var(--text);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-radius-decision span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.4;
}

.reference-radius-context-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

.reference-radius-context-card {
  display:grid;
  gap:9px;
  min-width:0;
  padding:10px;
  background:var(--surface);
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-radius-context-copy {
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:start;
  min-width:0;
}

.reference-radius-context-copy div {
  display:grid;
  gap:2px;
  min-width:0;
}

.reference-radius-context-copy strong,
.reference-radius-context-copy span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-radius-context-copy strong {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-context-copy span,
.reference-radius-context-card p {
  color:var(--text-3);
  font-size: var(--text-xs);
  line-height:1.35;
}

.reference-radius-context-copy code {
  flex:0 1 auto;
  max-width:48%;
  overflow:hidden;
  padding:2px 4px;
  color:var(--text-3);
  background:var(--surface-2);
  border-radius:var(--radius-label);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-radius-context-card p {
  margin:0;
}

.reference-radius-context-visual {
  display:grid;
  min-height:64px;
  align-items:center;
  padding:10px;
  background:var(--bg-deep);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
}

.reference-radius-context-document {
  justify-items:center;
}

.reference-radius-context-portal {
  justify-items:center;
}

.reference-radius-portal-shell {
  position:relative;
  display:grid;
  gap:7px;
  width:min(100%, 190px);
  min-height:82px;
  padding:24px 14px 12px;
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-radius-preview-banner {
  position:absolute;
  top:7px;
  left:50%;
  transform:translateX(-50%);
  width:max-content;
  max-width:calc(100% - 18px);
  overflow:hidden;
  padding:3px 9px;
  background:var(--ink);
  color:var(--ink-fg);
  font-size:9px;
  font-weight: var(--font-weight-bold);
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-radius-portal-head {
  width:54%;
  height:9px;
  background:var(--text);
}

.reference-radius-portal-line {
  display:block;
  height:6px;
  background:var(--surface-3);
}

.reference-radius-portal-line.short {
  width:72%;
}

.reference-radius-page {
  position:relative;
  display:grid;
  gap:6px;
  width:min(100%, 150px);
  min-height:72px;
  padding:18px 12px 10px;
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-radius-doc-marker {
  position:absolute;
  top:6px;
  left:50%;
  transform:translateX(-50%);
  padding:2px 8px;
  background:var(--ink);
  color:var(--ink-fg);
  font-size:9px;
  font-weight: var(--font-weight-bold);
}

.reference-radius-doc-line {
  display:block;
  height:6px;
  background:var(--surface-3);
}

.reference-radius-doc-line.short {
  width:68%;
}

.reference-radius-micro-tag {
  display:inline-flex;
  width:max-content;
  padding:3px 9px;
  background:var(--ink);
  color:var(--ink-fg);
  font-size:10.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-radius-micro-tag.muted {
  margin-left:6px;
  background:var(--surface-3);
  color:var(--text-2);
}

.reference-claimant-portal-backdrop {
  position:relative;
  min-height:640px;
  overflow:hidden;
  padding:34px 24px 28px;
  background:rgba(15, 15, 14, 0.55);
  box-shadow:inset 0 0 0 1px var(--rule-soft);
}

.reference-claimant-portal-underlay {
  position:absolute;
  inset:0;
  display:grid;
  align-content:start;
  gap:8px;
  padding:42px 52px;
  color:rgba(255, 255, 255, 0.35);
  filter:blur(1px);
  opacity:0.55;
}

.reference-claimant-portal-underlay strong {
  font-size:28px;
  font-weight: var(--font-weight-semibold);
}

.reference-claimant-portal-underlay span {
  font-size: var(--text-body);
}

.reference-claimant-portal-window {
  position:relative;
  z-index:1;
  display:flex;
  max-width:1080px;
  min-height:560px;
  margin:0 auto;
  overflow:hidden;
  flex-direction:column;
  background:var(--surface);
  box-shadow:0 20px 60px rgba(0, 0, 0, 0.4);
}

.reference-claimant-browser-chrome {
  display:flex;
  gap:10px;
  align-items:center;
  min-height:45px;
  padding:8px 14px;
  background:var(--surface-3);
  box-shadow:inset 0 -1px 0 var(--rule-firm);
}

.reference-claimant-window-dots {
  display:flex;
  gap:5px;
}

.reference-claimant-window-dots span {
  width:11px;
  height:11px;
  border-radius:var(--radius-role-full);
}

.reference-claimant-window-dots span:nth-child(1) { background:#FF5F57; }
.reference-claimant-window-dots span:nth-child(2) { background:#FEBC2E; }
.reference-claimant-window-dots span:nth-child(3) { background:#28C840; }

.reference-claimant-address-bar {
  display:flex;
  min-width:0;
  flex:1;
  align-items:center;
  gap:8px;
  overflow:hidden;
  padding:4px 14px;
  border:1px solid var(--rule);
  border-radius:var(--radius-sm);
  background:var(--bg);
  color:var(--text-3);
  font-size:12.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-claimant-address-bar svg {
  color:#3F6B2C;
  flex:0 0 auto;
}

.reference-claimant-portal-preview-label {
  position:absolute;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  padding:4px 12px;
  border-radius:var(--radius-square);
  background:var(--accent);
  color:var(--surface);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  pointer-events:none;
}

.reference-claimant-portal-page {
  flex:1;
  overflow:hidden;
  background:var(--bg);
}

.reference-claimant-portal-topbar,
.reference-claimant-portal-section-head,
.reference-portal-management-head,
.reference-portal-management-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.reference-claimant-portal-topbar {
  min-height:64px;
  padding:14px 32px;
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-claimant-portal-topbar > div {
  display:flex;
  align-items:center;
  gap:12px;
}

.reference-claimant-portal-topbar > div:first-child,
.reference-portal-management-head div {
  min-width:0;
}

.reference-claimant-portal-topbar > div:first-child > span:last-child {
  display:grid;
  gap:1px;
}

.reference-claimant-portal-logo {
  display:grid;
  width:26px;
  height:26px;
  place-items:center;
  background:var(--ink);
  color:var(--ink-fg);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
}

.reference-claimant-portal-topbar strong,
.reference-portal-management-head strong {
  font-size: var(--text-body);
  font-style:normal;
  font-weight: var(--font-weight-medium);
}

.reference-claimant-portal-topbar span,
.reference-claimant-portal-topbar em,
.reference-portal-management-head span,
.reference-claimant-portal-section-head span,
.reference-claimant-portal-footer,
.reference-portal-mini-stats span {
  color:var(--text-3);
  font-size:11.5px;
  font-style:normal;
}

.reference-claimant-portal-hero {
  max-width:880px;
  margin:0 auto;
  padding:36px 32px 24px;
}

.reference-claimant-portal-hero h4 {
  margin:8px 0 0;
  color:var(--text);
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-semibold);
  line-height:1.1;
  letter-spacing:-0.03em;
}

.reference-claimant-portal-hero p {
  max-width:740px;
  margin:18px 0 0;
  color:var(--text-2);
  font-size: var(--text-md);
  line-height:1.6;
}

.reference-claimant-portal-eyebrow {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-claimant-portal-claim-strip {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  margin-top:28px;
  border:1px solid var(--rule);
  background:var(--surface);
}

.reference-claimant-portal-claim-strip > div {
  display:grid;
  align-content:start;
  gap:4px;
  min-width:0;
  padding:14px 18px;
  border-right:1px solid var(--rule);
}

.reference-claimant-portal-claim-strip > div:last-child {
  border-right:0;
}

.reference-claimant-portal-claim-strip span,
.reference-claimant-portal-claim-strip em,
.reference-claimant-portal-date-row em,
.reference-claimant-portal-date-row span,
.reference-claimant-portal-message em {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-style:normal;
}

.reference-claimant-portal-claim-strip strong {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-medium);
}

.reference-claimant-portal-claim-strip > div:first-child strong {
  font-family:var(--font-mono);
}

.reference-claimant-portal-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:28px;
  max-width:880px;
  margin:0 auto;
  padding:8px 32px 40px;
}

.reference-claimant-portal-grid section,
.reference-portal-management-card {
  display:grid;
  gap:12px;
  min-width:0;
}

.reference-claimant-portal-section-head {
  padding-bottom:8px;
  box-shadow:inset 0 -1px 0 var(--rule-firm);
}

.reference-claimant-portal-section-head h5 {
  margin:0;
  font-size: var(--text-xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing:-0.01em;
}

.reference-claimant-portal-date-row {
  display:grid;
  grid-template-columns:70px minmax(0, 1fr);
  gap:14px;
  align-items:flex-start;
  padding:14px 0;
  border-bottom:1px solid var(--rule-soft);
}

.reference-claimant-portal-date-row div {
  display:grid;
  gap:2px;
}

.reference-claimant-portal-date-row div strong {
  color:var(--text);
  font-size:28px;
  font-weight: var(--font-weight-semibold);
  line-height:1;
}

.reference-claimant-portal-date-row p {
  display:grid;
  gap:4px;
  margin:0;
}

.reference-claimant-portal-date-row p strong {
  color:var(--text);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
}

.reference-claimant-portal-date-row p span,
.reference-claimant-portal-message p,
.reference-claimant-portal-shared p {
  margin:0;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.4;
}

.reference-claimant-portal-message {
  display:grid;
  grid-template-columns:24px minmax(0, 1fr);
  gap:8px;
  align-items:start;
  padding:12px 0;
  border-bottom:1px solid var(--rule-soft);
}

.reference-claimant-portal-message p {
  display:grid;
  gap:3px;
}

.reference-claimant-portal-message p strong {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
}

.reference-claimant-portal-message p span {
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-claimant-portal-wide-action {
  width:100%;
  justify-content:center;
}

.reference-claimant-portal-shared {
  display:grid;
  gap:12px;
  margin-top:28px;
}

.reference-claimant-portal-footer {
  max-width:880px;
  margin:0 auto;
  padding:20px 32px;
  border-top:1px solid var(--rule);
  color:var(--text-3);
  text-align:center;
  font-size: var(--text-body);
  line-height:1.45;
}

.reference-portal-management-card {
  padding:14px;
  background:var(--surface-2);
  box-shadow:var(--ring-light);
}

.reference-portal-mini-stats {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}

.reference-portal-mini-stats div {
  display:grid;
  gap:3px;
  min-width:0;
  padding:9px;
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-portal-mini-stats strong {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-portal-toggle-list {
  display:grid;
  gap:8px;
}

.reference-portal-toggle-list label {
  display:flex;
  gap:8px;
  align-items:center;
  color:var(--text-2);
  font-size: var(--text-sm);
}

.reference-radius-prose {
  align-items:center;
  color:var(--text-2);
  font-size: var(--text-sm);
  line-height:1.5;
}

.reference-radius-prose code,
.reference-radius-prose mark {
  padding:1px 5px;
  color:var(--text);
  background:var(--warn-soft);
  font-family:var(--font-mono);
  font-size: var(--text-xs);
}

.reference-radius-prose mark {
  font-family:var(--font-sans);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-text-button {
  width:max-content;
  padding:2px 4px;
  color:var(--text);
  background:transparent;
  text-decoration:none;
}

.reference-radius-text-button-states {
  grid-template-columns:repeat(3, max-content);
  gap:10px;
  justify-content:center;
}

.reference-radius-text-button-states::before {
  content:"rest / hover / focus";
  grid-column:1 / -1;
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  text-align:center;
}

.reference-radius-text-button-hover {
  text-decoration:underline;
  text-underline-offset:2px;
}

.reference-radius-text-button-focus {
  background:var(--surface);
  box-shadow:inset 0 0 0 2px var(--focus-ring);
}

.reference-radius-log-row {
  grid-template-columns:auto auto minmax(0, 1fr);
  gap:8px;
  color:var(--text-2);
  font-size: var(--text-xs);
}

.reference-radius-log-icon {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  background:var(--info-soft);
  color:var(--info);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-bold);
}

.reference-radius-status-button {
  display:flex;
  justify-content:space-between;
  gap:8px;
  width:100%;
  min-height:32px;
  padding:6px 9px;
  background:var(--surface);
  box-shadow:var(--ring-light);
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-status-button span {
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
}

.reference-radius-tab-count {
  display:inline-grid;
  min-width:18px;
  min-height:18px;
  place-items:center;
  padding:0 5px;
  background:var(--surface-3);
  color:var(--text-2);
  box-shadow:var(--ring-light);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-admin-tag,
.reference-radius-editable-field,
.reference-radius-calendar-event,
.reference-radius-editor-tool {
  display:inline-flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  padding:4px 7px;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--ring-light);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-editable-field {
  min-height:24px;
}

.reference-radius-editor-tool {
  min-width:24px;
  min-height:24px;
  justify-content:center;
  padding:0 7px;
  font-weight: var(--font-weight-bold);
}

.reference-radius-admin-tag {
  background:var(--surface-3);
  color:var(--text-2);
}

.reference-radius-mini-progress {
  display:block;
  width:112px;
  height:8px;
  overflow:hidden;
  background:var(--surface);
  box-shadow:inset 0 0 0 1px var(--rule);
}

.reference-radius-mini-progress span {
  display:block;
  width:62%;
  height:100%;
  background:var(--ink);
}

.reference-radius-calendar-event {
  background:var(--info-soft);
  color:var(--info);
}

.reference-radius-warning-panel {
  padding:9px 10px;
  background:var(--warn-soft);
  color:var(--warn);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--warn) 18%, transparent);
  font-size: var(--text-sm);
  line-height:1.35;
}

.reference-radius-rail {
  gap:5px;
}

.reference-radius-rail-item {
  display:grid;
  gap:2px;
  width:100%;
  padding:7px 8px;
  background:transparent;
  color:var(--text);
  text-align:left;
}

.reference-radius-rail-item.active {
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-radius-rail-item span {
  color:var(--text-3);
  font-size: var(--text-xs);
}

.reference-radius-step-row {
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
}

.reference-radius-step,
.reference-radius-candidate {
  background:var(--surface);
  box-shadow:var(--ring-light);
  color:var(--text-2);
}

.reference-radius-step {
  min-height:32px;
  padding:0 8px;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-step.active {
  color:var(--text);
  background:var(--surface-3);
}

.reference-radius-candidate {
  display:grid;
  gap:3px;
  width:100%;
  padding:9px 10px;
  text-align:left;
}

.reference-radius-candidate strong {
  color:var(--text);
  font-size: var(--text-sm);
}

.reference-radius-candidate span {
  color:var(--text-3);
  font-size: var(--text-xs);
}

.reference-radius-review-fact,
.reference-radius-widget-card,
.reference-radius-table-shell,
.reference-radius-overview-widget,
.reference-radius-menu-popover {
  display:grid;
  gap:4px;
  min-width:0;
  padding:8px 9px;
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-radius-review-fact span,
.reference-radius-widget-card span,
.reference-radius-overview-widget span,
.reference-radius-menu-popover span {
  color:var(--text-3);
  font-size:10.5px;
}

.reference-radius-review-fact strong,
.reference-radius-widget-card strong,
.reference-radius-overview-widget strong,
.reference-radius-menu-popover strong {
  color:var(--text);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-radius-assistant-icon {
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--ring-light);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
}

.reference-radius-assistant-error {
  display:inline-flex;
  padding:6px 8px;
  background:var(--critical-soft);
  color:var(--critical);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--critical) 16%, transparent);
  font-size: var(--text-xs);
}

.reference-radius-tweak-field {
  width:68px;
  height:26px;
  padding:0 8px;
  border:0;
  background:rgba(255, 255, 255, 0.74);
  box-shadow:inset 0 0 0 1px rgba(0, 0, 0, 0.1);
  color:var(--text);
  font:inherit;
  font-size: var(--text-xs);
}

.reference-radius-table-shell {
  grid-template-columns:1fr auto;
  gap:8px;
  width:100%;
  color:var(--text-2);
  font-size: var(--text-xs);
}

.reference-radius-menu-popover {
  width:min(100%, 150px);
  background:var(--chrome-bg);
  box-shadow:var(--shadow-pop);
}

.reference-radius-status-pill,
.reference-radius-search-pill,
.reference-radius-person-chip {
  display:inline-flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  min-height:22px;
  padding:3px 9px;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--ring-light);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-status-pill {
  background:var(--success-soft);
  color:var(--success);
}

.reference-radius-search-pill {
  min-width:142px;
  justify-content:flex-start;
  color:var(--text-3);
}

.reference-radius-person-chip {
  background:var(--surface-3);
}

.reference-radius-toggle {
  display:inline-flex;
  width:38px;
  height:20px;
  align-items:center;
  padding:2px;
  background:var(--ink);
}

.reference-radius-toggle span {
  width:16px;
  height:16px;
  margin-left:auto;
  border-radius:var(--radius-role-full);
  background:var(--surface);
}

.reference-radius-modal-shell {
  display:grid;
  overflow:hidden;
  background:var(--surface);
  box-shadow:var(--shadow-pop), inset 0 0 0 1px var(--rule);
}

.reference-radius-modal-head {
  padding:8px 10px;
  box-shadow:inset 0 -1px 0 var(--rule);
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-modal-body {
  display:block;
  height:38px;
  background:linear-gradient(var(--surface-2), var(--surface));
}

.reference-radius-connected {
  align-items:stretch;
}

.reference-radius-people-selected {
  display:flex;
  gap:5px;
  padding:6px;
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--rule);
}

.reference-radius-people-selected.muted {
  border-radius:var(--radius-connected-top);
  opacity:0.62;
}

.reference-radius-people-selected span {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border-radius:var(--radius-role-full);
  background:var(--surface);
  box-shadow:var(--ring-light);
  color:var(--text);
  font-size: var(--text-2xs);
}

.reference-radius-people-menu {
  margin-top:-1px;
  padding:8px;
  color:var(--text-3);
  background:var(--surface);
  box-shadow:inset 0 0 0 1px var(--rule);
  font-size: var(--text-sm);
}

.reference-radius-people-menu.active {
  background:var(--surface-2);
}

.reference-radius-segment-row {
  display:grid;
  grid-template-columns:1fr 1.2fr 0.8fr 1fr;
  gap:2px;
}

.reference-radius-segment {
  height:18px;
  background:var(--surface-3);
}

.reference-radius-segment.active {
  background:var(--info-soft);
}

.reference-radius-segment.first {
  background:var(--info-soft);
}

.reference-radius-segment.last {
  background:var(--success-soft);
  border-radius:0 var(--radius-pill) var(--radius-pill) 0;
}

.reference-radius-comparison {
  display:grid;
  gap:10px;
}

.reference-radius-current {
  display:grid;
  gap:6px;
}

.reference-radius-current > span {
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-options {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}

.reference-radius-option {
  display:grid;
  gap:7px;
  min-width:0;
  padding:8px;
  background:var(--surface-2);
  border-radius:var(--radius-control);
  box-shadow:var(--ring-light);
}

.reference-radius-option strong,
.reference-radius-option span {
  display:block;
}

.reference-radius-option strong {
  color:var(--text);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
  line-height:1.25;
}

.reference-radius-option span {
  margin-top:2px;
  color:var(--text-3);
  font-size:10.5px;
  line-height:1.3;
}

.reference-radius-sample {
  display:grid;
  grid-template-columns:22px minmax(0, 1fr) auto;
  gap:8px;
  align-items:center;
  min-height:38px;
  padding:8px 9px;
  background:var(--surface);
  box-shadow:var(--ring-light);
  color:var(--text-2);
  font-size: var(--text-sm);
}

.reference-radius-current-1 { border-radius:var(--radius-square); }
.reference-radius-current-3 { border-radius:var(--radius-control); }
.reference-radius-current-5 { border-radius:var(--radius-control); }
.reference-radius-current-7 { border-radius:var(--radius); }
.reference-radius-current-top { border-radius:var(--radius-connected-top); }
.reference-radius-current-segment-left { border-radius:var(--radius-segment-start); }
.reference-radius-option-xs { border-radius:var(--radius-xs); }
.reference-radius-option-control { border-radius:var(--radius-control); }
.reference-radius-option-base { border-radius:var(--radius); }
.reference-radius-option-lg { border-radius:var(--radius-lg); }
.reference-radius-option-tab-track { border-radius:var(--radius-tab-track); }
.reference-radius-option-widget { border-radius:var(--radius-widget); }
.reference-radius-option-container { border-radius:var(--radius-container); }
.reference-radius-option-pill { border-radius:var(--radius-pill); }
.reference-radius-option-top-control { border-radius:var(--radius-connected-top); }
.reference-radius-option-top-widget { border-radius:var(--radius-widget) var(--radius-widget) 0 0; }
.reference-radius-option-segment-control { border-radius:var(--radius-control) 0 0 var(--radius-control); }

.reference-radius-sample-icon {
  width:22px;
  height:22px;
  border-radius:inherit;
  background:var(--surface-3);
  box-shadow:inset 0 0 0 1px var(--rule);
}

.reference-radius-sample-copy {
  min-width:0;
  overflow:hidden;
  color:var(--text);
  font-weight: var(--font-weight-semibold);
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-radius-sample-meta {
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size:10.5px;
}

@media (max-width: 1100px) {
  .reference-radius-review-grid,
  .reference-radius-options,
  .reference-radius-context-grid {
    grid-template-columns:1fr;
  }
}

.reference-widget-layer-head {
  display:grid;
  gap:4px;
  padding-bottom:10px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-widget-layer-head strong {
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}

.reference-widget-layer-head span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-widget-layer-grid {
  display:grid;
  gap:1px;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-widget-layer-row {
  display:grid;
  grid-template-columns:minmax(130px, 0.75fr) minmax(170px, 0.9fr) minmax(220px, 1.25fr) minmax(200px, 1.05fr) minmax(120px, 0.7fr) minmax(220px, 1.2fr);
  gap:10px;
  align-items:start;
  padding:9px 10px;
  background:var(--surface-2);
  color:var(--text-3);
  font-size:11.5px;
  line-height:1.4;
}

.reference-widget-layer-row strong,
.reference-widget-layer-row b {
  color:var(--text-2);
  font-weight: var(--font-weight-semibold);
}

.reference-widget-layer-row code {
  overflow-wrap:anywhere;
  color:var(--text-2);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-widget-layer-row em {
  font-style:normal;
}

.reference-widget-layer-row a {
  color:var(--info);
  font-weight: var(--font-weight-medium);
}

.reference-divider-comparison {
  --widget-divider:var(--rule);
  --space-rhythm:18px;
  --widget-padding-y:var(--space-rhythm);
  --widget-padding-x:var(--space-rhythm);
  --widget-padding:var(--widget-padding-y) var(--widget-padding-x);
  display:grid;
  gap:10px;
  padding:14px;
  background:var(--surface);
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-divider-comparison-head {
  display:flex;
  gap:12px;
  align-items:start;
  justify-content:space-between;
}

.reference-divider-comparison-head > div {
  display:grid;
  gap:3px;
  min-width:0;
}

.reference-divider-comparison-head strong {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-divider-comparison-head span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-divider-comparison-head code {
  flex-shrink:0;
  padding:3px 5px;
  color:var(--text-2);
  background:var(--surface-2);
  border-radius:var(--radius-sm);
  box-shadow:var(--ring-light);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-divider-options {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.reference-divider-card {
  display:grid;
  min-width:0;
  overflow:hidden;
  background:var(--widget-bg);
  border-radius:var(--radius-widget, var(--radius));
  box-shadow:var(--widget-shadow);
}

.reference-divider-card-head {
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:space-between;
  min-height:40px;
  color:var(--text);
}

.reference-divider-card-head span {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-divider-card-head em {
  color:var(--text-3);
  font-size:10.5px;
  font-style:normal;
}

.reference-divider-card-inset {
  padding:var(--widget-padding);
}

.reference-divider-card-inset .reference-divider-card-head {
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}

.reference-divider-card-full {
  padding:var(--widget-padding);
}

.reference-divider-card-full .reference-divider-card-head {
  margin:calc(var(--widget-padding-y) * -1) calc(var(--widget-padding-x) * -1) 0;
  padding:var(--widget-padding-y) var(--widget-padding-x);
  background:var(--surface-2);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}

.reference-divider-card-body {
  display:grid;
}

.reference-divider-row {
  min-height:34px;
  padding:9px 0;
  color:var(--text-2);
  border-bottom:1px solid var(--rule-soft);
  font-size:11.5px;
}

.reference-divider-row:last-child {
  border-bottom:0;
}

.reference-divider-card p {
  margin:8px 0 0;
  color:var(--text-3);
  font-size:11.5px;
  line-height:1.45;
}

.reference-widget-standard {
  --space-rhythm:18px;
  --widget-padding-y:var(--space-rhythm);
  --widget-padding-x:var(--space-rhythm);
  --widget-padding:var(--widget-padding-y) var(--widget-padding-x);
  /* the widget standard the demo shows: interior 18 (--space-rhythm), stacked
     widgets 16 apart and the 16 / 24 page frame (IW35) */
  --widget-gap:var(--widget-stack-gap);
  --widget-gutter:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  --claim-header-tab-gap:var(--space-rhythm);
  display:grid;
  grid-template-columns:minmax(280px, 0.8fr) minmax(320px, 1fr);
  gap:14px;
  align-items:start;
}

.reference-widget-standard-demo {
  padding:18px;
  background:var(--bg-deep);
  border-radius:var(--radius);
}

.reference-widget-standard-surface {
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
  padding:var(--widget-padding);
}

.reference-widget-standard-spec {
  display:grid;
  gap:8px;
}

.reference-widget-standard-spec > div {
  display:grid;
  gap:4px;
  padding:9px 10px;
  background:var(--surface-2);
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-widget-standard-spec strong {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-widget-standard-spec span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-widget-standard-spec code {
  color:var(--text-2);
  font-family:var(--font-mono);
  font-size:10.5px;
}

.reference-anatomy-layout {
  display:grid;
  grid-template-columns:minmax(560px, 1fr) minmax(300px, 0.42fr);
  gap:14px;
  padding:14px;
  align-items:start;
}

.reference-anatomy-map-stack {
  display:grid;
  gap:10px;
  min-width:0;
}

.reference-anatomy-map-stage {
  display:grid;
  grid-template-columns:minmax(174px, 0.22fr) minmax(0, 1fr);
  gap:10px;
  min-width:0;
  align-items:stretch;
}

.reference-decomposition-rail,
.reference-measure-legend {
  min-width:0;
  background:var(--surface);
  border-radius:var(--radius-widget);
  box-shadow:var(--ring-light);
}

.reference-decomposition-rail {
  align-self:start;
  display:grid;
  gap:3px;
  padding:8px;
}

.reference-decomposition-head,
.reference-measure-legend-head {
  display:grid;
  gap:3px;
  padding:4px 5px 8px;
}

.reference-decomposition-head strong,
.reference-measure-legend-head strong {
  font-size: var(--text-xs);
}

.reference-decomposition-head span,
.reference-measure-legend-head span {
  color:var(--text-3);
  font-size: var(--text-2xs);
  line-height:1.35;
}

.reference-decomposition-item {
  display:grid;
  grid-template-columns:66px minmax(0, 1fr);
  gap:6px;
  align-items:center;
  padding:5px 6px;
  color:inherit;
  text-decoration:none;
  border-radius:var(--radius-control);
}

.reference-decomposition-item:hover {
  background:var(--hover);
}

.reference-decomposition-item code {
  justify-self:start;
  padding:2px 5px;
  color:var(--ink-fg);
  background:var(--ink);
  border-radius:var(--radius-pill);
  font-family:var(--font-mono);
  font-size:8.5px;
}

.reference-decomposition-item span {
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--text-2);
  font-size:10.5px;
  line-height:1.25;
  white-space:nowrap;
}

.reference-decomposition-item.level-2 { margin-left:8px; }
.reference-decomposition-item.level-3 { margin-left:16px; }
.reference-decomposition-item.level-4 { margin-left:24px; }
.reference-decomposition-item.level-5 { margin-left:32px; }

.reference-measure-legend {
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:1px;
  overflow:hidden;
}

.reference-measure-legend-head {
  grid-column:1 / -1;
  background:var(--surface-2);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-measure-legend-row {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:4px 7px;
  align-content:start;
  min-width:0;
  padding:8px;
  background:var(--surface);
}

.reference-measure-legend-row.needs-token {
  background:color-mix(in srgb, var(--warn-soft) 42%, var(--surface));
}

.reference-measure-legend-row > b {
  display:grid;
  width:28px;
  height:18px;
  place-items:center;
  color:var(--ink-fg);
  background:var(--ink);
  border-radius:var(--radius-pill);
  font-family:var(--font-mono);
  font-size:9px;
}

.reference-measure-legend-row > span,
.reference-measure-legend-row code,
.reference-measure-legend-row small,
.reference-measure-legend-row p {
  grid-column:2;
}

.reference-measure-legend-row > span {
  display:grid;
  gap:2px;
}

.reference-measure-legend-row strong {
  font-size:10.5px;
}

.reference-measure-legend-row em,
.reference-measure-legend-row small,
.reference-measure-legend-row p {
  color:var(--text-3);
  font-style:normal;
  line-height:1.25;
}

.reference-measure-legend-row em,
.reference-measure-legend-row small {
  font-size:9.5px;
}

.reference-measure-legend-row code {
  width:fit-content;
  max-width:100%;
  padding:2px 4px;
  overflow-wrap:anywhere;
  background:var(--surface-2);
  border-radius:var(--radius-role-sm);
  font-size:9px;
}

.reference-measure-legend-row p {
  margin:0;
  font-size:9.5px;
}

.reference-anatomy-viewport {
  position:relative;
  display:grid;
  grid-template-columns:18% minmax(0, 1fr);
  min-height:520px;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--bg);
  box-shadow:var(--ring-light);
}

.reference-anatomy-sidebar {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:13px 10px;
  overflow:hidden;
  background:var(--bg-deep);
  box-shadow:inset -1px 0 0 var(--rule);
}

.reference-anatomy-brand {
  display:flex;
  align-items:center;
  gap:7px;
  min-height:28px;
  font-size: var(--text-xs);
}

.reference-anatomy-brand span {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border-radius:var(--radius-role-sm);
  color:var(--ink-fg);
  background:var(--ink);
  font-weight: var(--font-weight-semibold);
}

.reference-anatomy-brand strong,
.reference-anatomy-title,
.reference-anatomy-widget strong {
  color:var(--text);
  font-weight: var(--font-weight-semibold);
}

.reference-anatomy-nav-group {
  display:grid;
  gap:2px;
}

.reference-anatomy-nav-label {
  margin-top:5px;
  color:var(--text-3);
  font-size:9px;
  font-weight: var(--font-weight-semibold);
}

.reference-anatomy-nav-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  min-height:24px;
  padding:0 7px;
  border-radius:var(--radius-sm);
  color:var(--text-2);
  font-size: var(--text-2xs);
}

.reference-anatomy-nav-item.active {
  color:var(--text);
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-anatomy-nav-item b {
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size:9px;
  font-weight: var(--font-weight-medium);
}

.reference-anatomy-sidebar-user {
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:auto;
  padding-top:8px;
  box-shadow:inset 0 1px 0 var(--rule);
  color:var(--text-2);
  font-size: var(--text-2xs);
}

.reference-anatomy-sidebar-user span {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border-radius:var(--radius-role-full);
  background:var(--surface);
  box-shadow:var(--ring-light);
  font-size:9px;
}

.reference-anatomy-canvas {
  display:flex;
  min-width:0;
  min-height:0;
  flex-direction:column;
  background:var(--bg);
}

.reference-anatomy-navCanvas .reference-anatomy-canvas,
.reference-anatomy-navCanvas .reference-anatomy-body,
.reference-anatomy-navCanvas .reference-anatomy-tab-scaffold {
  background:var(--bg-deep);
}

.reference-anatomy-navCanvas {
  --space-rhythm:18px;
  --widget-padding-y:var(--space-rhythm);
  --widget-padding-x:var(--space-rhythm);
  --widget-padding:var(--widget-padding-y) var(--widget-padding-x);
  /* the widget standard the demo shows: interior 18 (--space-rhythm), stacked
     widgets 16 apart and the 16 / 24 page frame (IW35) */
  --widget-gap:var(--widget-stack-gap);
  --widget-gutter:var(--page-gutter-top) var(--page-gutter) var(--page-gutter);
  --claim-header-tab-gap:var(--space-rhythm);
  --radius-xs:var(--radius-role-sm);
  --radius-sm:var(--radius-role-sm);
  --radius-md:var(--radius-role-md);
  --radius-lg:var(--radius-role-lg);
  --radius-pill:var(--radius-role-full);
  --radius:var(--radius-sm);
  --radius-label:var(--radius-xs);
  --radius-control:var(--radius-role-md);
  --radius-tab-track:var(--radius-role-md);
  --radius-widget:var(--radius-role-lg);
  --radius-container:var(--radius-role-lg);
}

.reference-anatomy-navCanvas .reference-anatomy-breadcrumb,
.reference-anatomy-navCanvas .reference-anatomy-tabs,
.reference-anatomy-navCanvas .reference-anatomy-tab-header {
  background:var(--bg-deep);
}

.reference-anatomy-navCanvas .reference-anatomy-tab-header {
  /* tenth pass F1: the demo DRAWS the product's tab header inset (16 24 0);
     the 74 left is the anatomy pin allowance */
  padding:var(--claim-tab-header-padding);
  padding-left:74px;
}

.reference-anatomy-navCanvas .reference-anatomy-page-header,
.reference-anatomy-navCanvas .reference-anatomy-claim-header {
  background:var(--bg);
}

.reference-anatomy-navCanvas.reference-anatomy-mywork .reference-anatomy-page-header {
  background:var(--bg-deep);
}

.reference-anatomy-navCanvas .reference-anatomy-week-strip,
.reference-anatomy-navCanvas .reference-anatomy-review-card,
.reference-anatomy-navCanvas .reference-anatomy-widget {
  padding:var(--widget-padding);
  border-radius:var(--radius-widget);
  background:var(--widget-bg);
  box-shadow:var(--widget-shadow);
}

.reference-anatomy-navCanvas .reference-anatomy-perspective-card {
  padding:12px 14px 12px 70px;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:none;
}

.reference-anatomy-navCanvas .reference-anatomy-actions span,
.reference-anatomy-navCanvas .reference-anatomy-nav-item,
.reference-anatomy-navCanvas .reference-anatomy-filter-row span {
  border-radius:var(--radius-role-sm);
}

.reference-anatomy-navCanvas .reference-anatomy-actions span.reference-anatomy-search-pill,
.reference-anatomy-navCanvas .reference-anatomy-status-pill {
  border-radius:var(--radius-pill);
}

.reference-anatomy-navCanvas .reference-anatomy-tabs span.active {
  border-radius:var(--radius-label);
}

.reference-anatomy-navCanvas .reference-anatomy-widget-grid {
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
}

.reference-anatomy-navCanvas .reference-anatomy-body,
.reference-anatomy-navCanvas .reference-anatomy-intro-row {
  gap:var(--widget-gap);
}

.reference-anatomy-navCanvas .reference-anatomy-body {
  padding:var(--widget-gutter);
}

.reference-anatomy-page-header,
.reference-anatomy-claim-header,
.reference-anatomy-tab-header {
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px 18px 12px 74px;
  background:var(--bg);
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-anatomy-title {
  font-size: var(--text-lg);
  line-height:1.2;
}

.reference-anatomy-subtitle,
.reference-anatomy-widget span,
.reference-anatomy-intro-row span {
  color:var(--text-3);
  font-size: var(--text-2xs);
  line-height:1.35;
}

.reference-anatomy-status-pill {
  display:inline-flex;
  align-items:center;
  min-height:18px;
  margin-top:5px;
  padding:2px 7px;
  color:var(--info);
  background:var(--info-soft);
  border-radius:var(--radius-pill);
  box-shadow:var(--ring-light);
  font-size:9px;
  font-weight: var(--font-weight-semibold);
}

.reference-anatomy-actions {
  position:relative;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.reference-anatomy-actions span {
  min-height:22px;
  padding:4px 7px;
  border-radius:var(--radius-sm);
  color:var(--text-2);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-medium);
}

.reference-anatomy-body {
  position:relative;
  display:grid;
  gap:10px;
  padding:18px;
  overflow:hidden;
}

.reference-anatomy-perspective-card,
.reference-anatomy-week-strip,
.reference-anatomy-review-card {
  min-width:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:none;
}

.reference-anatomy-perspective-card {
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0, 1fr) auto;
  gap:10px;
  align-items:center;
  min-height:58px;
  padding:12px 14px 12px 56px;
}

.reference-anatomy-perspective-card > span:not(.reference-anatomy-pin) {
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  color:var(--accent);
  background:var(--accent-bg);
  border-radius:var(--radius-lg);
  box-shadow:none;
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-bold);
}

.reference-anatomy-perspective-card div,
.reference-anatomy-review-card div {
  display:grid;
  gap:2px;
}

.reference-anatomy-perspective-card small,
.reference-anatomy-perspective-card em,
.reference-anatomy-review-card small {
  color:var(--text-3);
  font-size: var(--text-2xs);
  font-style:normal;
}

.reference-anatomy-week-strip {
  display:grid;
  gap:6px;
  padding:0 2px;
}

.reference-anatomy-week-strip > strong,
.reference-anatomy-review-card strong {
  font-size: var(--text-xs);
}

.reference-anatomy-week-strip > strong,
.reference-anatomy-review-card > div:first-child {
  padding:2px 0 8px;
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-anatomy-week-strip > div {
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:6px;
}

.reference-anatomy-week-strip span {
  min-height:38px;
  padding:5px;
  color:var(--text-3);
  background:var(--surface-2);
  border-radius:var(--radius-sm);
  font-size:9px;
}

.reference-anatomy-review-card {
  display:grid;
  gap:8px;
  min-height:92px;
  padding:0 2px;
}

.reference-anatomy-filter-row {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
}

.reference-anatomy-filter-row span {
  min-height:24px;
  padding:5px 7px;
  color:var(--text-2);
  background:var(--surface-2);
  border-radius:var(--radius-pill);
  box-shadow:var(--ring-light);
  font-size:9px;
}

.reference-anatomy-intro-row {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.reference-anatomy-intro-row > div,
.reference-anatomy-widget {
  display:grid;
  align-content:start;
  gap:6px;
  min-width:0;
  padding:0 2px;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:none;
}

.reference-anatomy-widget-grid {
  position:relative;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--work-widget-column-gap);
}

.reference-anatomy-widget-grid.claim {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.reference-anatomy-widget {
  position:relative;
  min-height:134px;
  overflow:hidden;
}

.reference-measure-chip {
  position:absolute;
  z-index:4;
  display:grid;
  gap:1px;
  width:max-content;
  max-width:112px;
  padding:4px 6px;
  color:var(--text);
  background:rgba(255, 255, 255, 0.94);
  box-shadow:var(--shadow-pop);
  border-radius:var(--radius-sm);
  font-family:var(--font-mono);
  line-height:1.15;
  pointer-events:none;
}

.reference-measure-chip strong {
  display:inline-grid;
  width:26px;
  height:16px;
  place-items:center;
  color:var(--ink-fg);
  background:var(--ink);
  border-radius:var(--radius-pill);
  font-size:8.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-measure-chip b {
  color:var(--text);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-semibold);
}

.reference-measure-chip em {
  color:var(--text-3);
  font-size:8.5px;
  font-style:normal;
  font-family:var(--font-sans);
}

.reference-measure-chip code {
  max-width:86px;
  overflow:hidden;
  color:var(--text-3);
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-measure-chip::after {
  content:"";
  position:absolute;
  background:var(--info);
  box-shadow:0 0 0 1px rgba(255, 255, 255, 0.76);
}

.reference-anatomy-viewport .reference-measure-chip {
  width:28px;
  height:18px;
  max-width:28px;
  padding:0;
  place-items:center;
  gap:0;
  border-radius:var(--radius-pill);
  color:var(--ink-fg);
  background:var(--ink);
}

.reference-anatomy-viewport .reference-measure-chip strong {
  width:auto;
  height:auto;
  background:transparent;
  font-size:8.5px;
}

.reference-anatomy-viewport .reference-measure-chip b,
.reference-anatomy-viewport .reference-measure-chip em,
.reference-anatomy-viewport .reference-measure-chip code {
  display:none;
}

.reference-measure-body-gutter {
  right:12px;
  top:10px;
}

.reference-measure-body-gutter::after {
  left:calc(100% + 4px);
  top:50%;
  /* the bar spans the side inset (--widget-gutter is now the 3-value frame shorthand) */
  width:var(--page-gutter, 24px);
  height:2px;
}

.reference-measure-tab-padding {
  right:250px;
  top:8px;
}

.reference-measure-tab-padding::after {
  left:50%;
  top:50%;
  transform:translateY(-50%);
  width:2px;
  height:18px;
}

.reference-measure-tab-padding::before {
  content:"";
  position:absolute;
  left:calc(50% - 9px);
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:2px;
  background:var(--info);
  box-shadow:0 0 0 1px rgba(255, 255, 255, 0.76);
}

.reference-measure-widget-gap {
  left:calc(((100% - (var(--widget-row-gap, 24px) * 2)) / 3) + (var(--widget-row-gap, 24px) / 2));
  top:-10px;
  transform:translateX(-50%);
}

.reference-anatomy-widget-grid.claim .reference-measure-widget-gap {
  left:calc(((100% - var(--widget-row-gap, 24px)) / 2) + (var(--widget-row-gap, 24px) / 2));
}

.reference-measure-widget-gap::after {
  left:50%;
  top:100%;
  width:2px;
  height:12px;
}

.reference-measure-widget-padding {
  right:8px;
  bottom:8px;
}

.reference-measure-widget-padding::after {
  right:calc(100% + 4px);
  bottom:8px;
  width:var(--widget-padding-x, 18px);
  height:2px;
}

.reference-measure-widget-header {
  left:8px;
  top:8px;
}

.reference-measure-widget-header::after {
  left:50%;
  top:100%;
  width:2px;
  height:14px;
}

.reference-measure-row-padding {
  left:56px;
  bottom:8px;
}

.reference-measure-row-padding::after {
  left:-18px;
  top:50%;
  width:18px;
  height:2px;
}

.reference-anatomy-widget > div {
  min-height:38px;
  margin:calc(var(--widget-padding-y, 18px) * -1) calc(var(--widget-padding-x, 18px) * -1) 8px;
  padding:14px var(--widget-padding-x, 18px) 12px;
  color:var(--text-3);
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-anatomy-widget-critical {
  box-shadow:none;
}

.reference-anatomy-widget-warn {
  box-shadow:none;
}

.reference-anatomy-widget-critical strong {
  color:var(--critical);
}

.reference-anatomy-widget-warn strong {
  color:var(--warn);
}

.reference-anatomy-breadcrumb {
  position:relative;
  min-height:34px;
  padding:10px 18px 10px 74px;
  color:var(--text-3);
  font-size: var(--text-2xs);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-anatomy-claim-header {
  align-items:center;
}

.reference-anatomy-claim-header-with-tabs {
  display:grid;
  align-items:stretch;
  justify-content:stretch;
  gap:10px;
}

.reference-anatomy-claim-header-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-width:0;
}

.reference-anatomy-claim-header-main > div:nth-child(2) {
  min-width:0;
  flex:1 1 auto;
}

.reference-anatomy-header-tabs {
  position:relative;
  display:flex;
  min-width:0;
  align-items:center;
}

.reference-anatomy-header-tabs .reference-anatomy-pin-tabs {
  left:-62px;
}

.reference-anatomy-header-tabs .reference-segmented-tabs {
  min-width:0;
}

.reference-anatomy-id-box {
  display:grid;
  grid-template-columns:auto auto;
  gap:3px 8px;
  width:128px;
  padding:8px;
  background:var(--surface-2);
  box-shadow:var(--ring-light);
}

.reference-anatomy-id-box span {
  color:var(--text-3);
  font-size:9px;
}

.reference-anatomy-id-box strong {
  font-family:var(--font-mono);
  font-size:9px;
}

.reference-anatomy-staff {
  color:var(--text-2);
  font-size: var(--text-2xs);
  white-space:nowrap;
}

.reference-anatomy-tabs {
  position:relative;
  display:flex;
  gap:16px;
  min-height:36px;
  padding:0 18px 0 74px;
  align-items:end;
  overflow:hidden;
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-anatomy-tabs span {
  padding-bottom:10px;
  color:var(--text-3);
  font-size: var(--text-2xs);
  white-space:nowrap;
}

.reference-anatomy-tabs span.active {
  color:var(--text);
  box-shadow:inset 0 -2px 0 var(--text);
}

.reference-anatomy-tab-scaffold {
  position:relative;
  display:flex;
  min-height:0;
  flex:1;
  flex-direction:column;
}

.reference-anatomy-pin {
  position:absolute;
  z-index:4;
  display:grid;
  min-width:36px;
  height:22px;
  padding:0 6px;
  place-items:center;
  border-radius:var(--radius-pill);
  color:var(--ink-fg);
  background:var(--ink);
  box-shadow:0 0 0 2px var(--surface), var(--shadow-pop);
  font-family:var(--font-mono);
  font-size:8px;
  font-weight: var(--font-weight-semibold);
  white-space:nowrap;
}

.reference-anatomy-pin-anchored {
  z-index:5;
}

.reference-anatomy-pin-shell {
  left:calc(18% - 18px);
  top:18px;
}

.reference-anatomy-pin-sidebar {
  left:50%;
  top:34%;
  transform:translate(-50%, -50%);
}

.reference-anatomy-pin-page-header,
.reference-anatomy-pin-claim-header,
.reference-anatomy-pin-tab-scaffold,
.reference-anatomy-pin-breadcrumb,
.reference-anatomy-pin-tabs {
  left:12px;
  top:50%;
  transform:translateY(-50%);
}

.reference-anatomy-pin-actions {
  right:-10px;
  top:-10px;
}

.reference-anatomy-actions .reference-anatomy-pin {
  display:grid;
  min-width:36px;
  height:22px;
  min-height:0;
  padding:0 6px;
  place-items:center;
  border-radius:var(--radius-pill);
  color:var(--ink-fg);
  background:var(--ink);
  box-shadow:0 0 0 2px var(--surface), var(--shadow-pop);
  font-family:var(--font-mono);
  font-size:8px;
  font-weight: var(--font-weight-semibold);
}

.reference-anatomy-pin-body {
  left:12px;
  top:12px;
}

.reference-anatomy-pin-widget-grid {
  right:8px;
  top:8px;
}

.reference-anatomy-pin-context-strip {
  left:14px;
  top:50%;
  transform:translateY(-50%);
}

.reference-anatomy-spec-list {
  display:grid;
  gap:8px;
  min-width:0;
  align-content:start;
}

.reference-anatomy-spec {
  display:grid;
  grid-template-columns:78px minmax(0, 1fr);
  gap:8px;
  padding:9px;
  color:inherit;
  text-decoration:none;
  background:var(--surface-2);
  border-radius:var(--radius);
  box-shadow:var(--ring-light);
}

.reference-anatomy-spec:hover {
  background:var(--hover-2);
}

.reference-anatomy-spec-number {
  display:grid;
  min-width:64px;
  height:22px;
  padding:0 5px;
  place-items:center;
  border-radius:var(--radius-pill);
  color:var(--ink-fg);
  background:var(--ink);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
}

.reference-anatomy-spec > span:last-child {
  display:grid;
  gap:4px;
  min-width:0;
}

.reference-anatomy-spec strong {
  color:var(--text);
  font-size: var(--text-sm);
}

.reference-anatomy-spec span span,
.reference-anatomy-spec em {
  color:var(--text-3);
  font-size:11.5px;
  font-style:normal;
  line-height:1.4;
}

.reference-anatomy-spec code {
  width:fit-content;
  max-width:100%;
  padding:3px 5px;
  overflow-wrap:anywhere;
  color:var(--text-2);
  background:var(--surface);
  border-radius:var(--radius-sm);
  box-shadow:var(--ring-light);
  font-size: var(--text-2xs);
}

.reference-anatomy-token-row {
  display:flex;
  gap:4px;
  flex-wrap:wrap;
}

.reference-anatomy-token-row b {
  padding:2px 5px;
  border-radius:var(--radius-sm);
  color:var(--text-2);
  background:var(--surface);
  box-shadow:var(--ring-light);
  font-family:var(--font-mono);
  font-size:9.5px;
  font-weight: var(--font-weight-medium);
}

.reference-archive-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:10px;
}

.reference-archive-grid a {
  display:grid;
  gap:4px;
  padding:12px;
  color:inherit;
  text-decoration:none;
  background:var(--surface);
  border-radius:var(--radius-widget);
  box-shadow:var(--ring-light);
}

.reference-archive-grid a:hover {
  background:var(--hover-2);
}

.reference-archive-grid strong {
  font-size: var(--text-body);
}

.reference-archive-grid span {
  color:var(--text-3);
  font-size: var(--text-xs);
}

.reference-taxonomy-card {
  display:grid;
  gap:14px;
  min-width:0;
  padding:16px;
  background:var(--surface);
  border-radius:var(--radius-container);
  box-shadow:var(--ring-light);
}

.reference-taxonomy-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(220px, 0.7fr);
  gap:16px;
  align-items:start;
}

.reference-taxonomy-head p {
  margin:0;
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-taxonomy-layout {
  display:grid;
  grid-template-columns:minmax(180px, 240px) minmax(0, 1fr);
  gap:14px;
  align-items:start;
}

.reference-taxonomy-tree {
  position:sticky;
  top:10px;
  display:grid;
  gap:4px;
  padding:8px;
  background:var(--surface-2);
  border-radius:var(--radius-widget);
  box-shadow:var(--ring-light);
}

.reference-taxonomy-tree-item {
  display:grid;
  grid-template-columns:74px minmax(0, 1fr);
  gap:8px;
  align-items:center;
  padding:6px 7px;
  color:inherit;
  text-decoration:none;
  border-radius:var(--radius-control);
}

.reference-taxonomy-tree-item:hover {
  background:var(--hover);
}

.reference-taxonomy-tree-item code,
.reference-taxonomy-id code {
  width:fit-content;
  padding:2px 5px;
  color:var(--ink-fg);
  background:var(--ink);
  border-radius:var(--radius-pill);
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
}

.reference-taxonomy-tree-item span {
  font-size: var(--text-sm);
  line-height:1.3;
}

.reference-taxonomy-tree .reference-taxonomy-level-2 {
  margin-left:12px;
}

.reference-taxonomy-tree .reference-taxonomy-level-3 {
  margin-left:24px;
}

.reference-taxonomy-table .reference-taxonomy-level-2 {
  box-shadow:inset 3px 0 0 var(--rule-soft);
}

.reference-taxonomy-table .reference-taxonomy-level-3 {
  box-shadow:inset 6px 0 0 var(--rule-soft);
}

.reference-taxonomy-table {
  display:grid;
  gap:1px;
  min-width:0;
  overflow:hidden;
  border-radius:var(--radius-widget);
  box-shadow:var(--ring-light);
}

.reference-taxonomy-row {
  display:grid;
  grid-template-columns:90px minmax(180px, 0.9fr) minmax(190px, 1fr) minmax(220px, 1.1fr);
  gap:12px;
  padding:10px 12px;
  background:var(--surface);
}

.reference-taxonomy-row:target {
  background:var(--info-soft);
  outline:2px solid var(--accent-selection);
  outline-offset:-2px;
}

.reference-taxonomy-row-head {
  color:var(--text-3);
  background:var(--surface-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-taxonomy-row:not(.reference-taxonomy-row-head) > span {
  display:grid;
  gap:5px;
  align-content:start;
  min-width:0;
}

.reference-taxonomy-row strong {
  color:var(--text);
  font-size: var(--text-body);
}

.reference-taxonomy-row em,
.reference-taxonomy-row a {
  color:var(--text-3);
  font-size:11.5px;
  font-style:normal;
  line-height:1.4;
}

.reference-taxonomy-row a {
  color:var(--info);
  text-decoration:none;
  font-weight:550;
}

.reference-taxonomy-row > span:not(.reference-taxonomy-id) code {
  width:fit-content;
  max-width:100%;
  padding:3px 5px;
  overflow-wrap:anywhere;
  color:var(--text-2);
  background:var(--surface-2);
  border-radius:var(--radius-role-sm);
  font-size:10.5px;
}

.reference-taxonomy-row .reference-tag {
  width:fit-content;
}

@media (max-width: 1100px) {
  .reference-taxonomy-head,
  .reference-taxonomy-layout {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-taxonomy-tree {
    position:static;
  }

  .reference-taxonomy-row,
  .reference-taxonomy-row-head {
    grid-template-columns:minmax(0, 1fr);
  }
}

.reference-screen-label {
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
}

.reference-token-group,
.reference-type-ramp {
  background:var(--surface);
  box-shadow:var(--ring-light);
  border-radius:var(--radius-lg);
  min-width:0;
}

.reference-spec {
  min-width:0;
  border:1px solid var(--rule-soft);
  border-left:3px solid var(--rule);
  border-radius:var(--radius);
  background:transparent;
}

.reference-spec-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:start;
  padding:12px 14px;
  background:var(--surface-2);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-spec-head {
  grid-template-columns:minmax(0, 1fr);
}

.reference-spec-head h4,
.reference-token-group h4 {
  margin:0;
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  letter-spacing:0;
}

.reference-spec-title-line {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.reference-tag {
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 7px;
  border-radius:var(--radius-pill);
  font-size:10.5px;
  font-weight: var(--font-weight-semibold);
  box-shadow:var(--ring-light);
}

.reference-tag-shared {
  color:var(--text-2);
  background:var(--surface-2);
}

.reference-tag-composite {
  color:var(--info);
  background:var(--info-soft);
}

.reference-tag-unique {
  color:var(--warn);
  background:var(--warn-soft);
}

.reference-tag-deprecated {
  color:var(--critical);
  background:var(--critical-soft);
}

.reference-tag-candidate {
  color:var(--text-2);
  background:var(--surface-3);
}

.reference-spec-head code,
.reference-token code,
.reference-type-row code {
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  color:var(--text-3);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
  border-radius:var(--radius-sm);
  padding:3px 5px;
  white-space:normal;
  text-align:right;
}

.reference-spec-head code {
  justify-self:start;
  text-align:left;
  max-width:100%;
}

.reference-used {
  margin-top:3px;
  color:var(--text-3);
  font-size: var(--text-sm);
}

.reference-spec-body {
  display:grid;
  gap:12px;
  padding:14px;
  min-width:0;
  background:var(--surface);
}

.reference-spec-candidate {
  border-left-color:var(--rule-firm);
}

.reference-spec-deprecated {
  border-left-color:var(--critical);
}

.reference-spec-unique {
  border-left-color:var(--rule-firm);
}

.reference-spec-composite {
  border-left-color:var(--rule-firm);
}

.reference-mini-toolbar,
.reference-command-row,
.reference-inline,
.reference-inline-tight {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
}

.reference-segmented-tabs {
  display:inline-flex;
  max-width:100%;
  color:var(--text-2);
}

.reference-segmented-tab-track {
  --reference-tab-active-x:3px;
  --reference-tab-active-width:0px;
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:2px;
  max-width:100%;
  padding:3px;
  overflow:hidden;
  border:1px solid var(--rule);
  border-radius:var(--radius-tab-track);
  background:var(--surface);
}

.reference-segmented-tab-indicator {
  position:absolute;
  z-index:0;
  top:3px;
  bottom:3px;
  left:0;
  width:var(--reference-tab-active-width);
  min-width:var(--reference-tab-active-width);
  inline-size:var(--reference-tab-active-width);
  border-radius:var(--radius-control);
  background:linear-gradient(180deg, var(--surface-2) 0%, var(--surface-3) 100%);
  transform:translateX(var(--reference-tab-active-x));
  transition:transform 360ms cubic-bezier(0.2, 0.82, 0.16, 1),
    width 300ms cubic-bezier(0.22, 0.75, 0.16, 1);
  will-change:transform, width;
}

.reference-segmented-tab {
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:28px;
  padding:5px 12px;
  border:0;
  border-radius:var(--radius-control);
  color:var(--text-2);
  background:transparent;
  cursor:pointer;
  font:inherit;
  font-size: var(--text-body);
  line-height:1.15;
  white-space:nowrap;
  transition:color 150ms ease;
}

.reference-segmented-tab:hover,
.reference-segmented-tab:focus-visible,
.reference-segmented-tab[data-state="active"] {
  color:var(--text);
}

.reference-segmented-tab:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

.reference-segmented-tab[data-state="active"] {
  font-weight: var(--font-weight-medium);
}

.reference-segmented-tab-count {
  display:inline-flex;
  align-items:center;
  min-height:17px;
  padding:1px 6px;
  border-radius:var(--radius-control);
  color:var(--text-3);
  background:var(--surface-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height:1;
}

.reference-segmented-tab[data-state="active"] .reference-segmented-tab-count {
  background:var(--surface);
}

.reference-segmented-tabs-compact .reference-segmented-tab {
  min-height:23px;
  padding:4px 8px;
  font-size:9.5px;
}

.reference-segmented-tabs-compact .reference-segmented-tab-count {
  min-height:14px;
  padding:1px 4px;
  font-size:8.5px;
}

@media (prefers-reduced-motion: reduce) {
  .reference-segmented-tab-indicator {
    transition:none;
  }
}

.reference-breadcrumb-frame {
  padding:10px 12px;
  border-radius:var(--radius);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
}

.reference-claim-facts-sample {
  display:grid;
  gap:12px;
  align-content:start;
  min-height:330px;
}

.reference-claim-facts-layout {
  display:grid;
  grid-template-columns:minmax(180px, max-content) minmax(240px, 1fr);
  gap:18px;
  align-items:start;
}

.reference-claim-facts-state {
  display:grid;
  gap:8px;
  min-width:0;
}

.reference-claim-facts-box {
  margin-top:2px;
}

.reference-claim-facts-popover {
  width:min(360px, calc(100vw - 64px));
  max-height:250px;
}

.reference-mini-toolbar {
  justify-content:space-between;
}

.reference-inline-tight {
  gap:6px;
}

.reference-spec-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  align-items:start;
}

#reference-documents .reference-spec-grid {
  grid-template-columns:minmax(0, 1fr);
}

#reference-claim .reference-spec-grid {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.reference-spec {
  overflow:hidden;
}

.reference-spec-wide {
  grid-column:1 / -1;
}

.reference-token-layout {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}

.reference-token-group {
  padding:12px;
  display:grid;
  gap:10px;
}

.reference-token-list {
  display:grid;
  gap:6px;
}

.reference-token {
  display:grid;
  grid-template-columns:22px minmax(0, 1fr) auto;
  gap:8px;
  align-items:center;
  min-height:28px;
  font-size: var(--text-sm);
  color:var(--text-2);
}

.reference-token-swatch {
  width:22px;
  height:22px;
  border-radius:var(--radius-sm);
  box-shadow:var(--ring-light);
}

.reference-token-radius-swatch {
  display:grid;
  width:46px;
  min-width:46px;
  border-radius:var(--reference-token-radius);
  place-items:center;
  background:var(--surface);
  color:var(--text-3);
  font-family:var(--font-mono);
  font-size:8.5px;
  line-height:1.05;
  text-align:center;
}

.reference-token-shape {
  grid-template-columns:46px minmax(0, 1fr) auto;
}

.reference-radius-matrix {
  display:grid;
  gap:12px;
  min-width:0;
  padding:14px;
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-radius-matrix-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:10px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-radius-matrix-head > div {
  display:grid;
  gap:4px;
}

.reference-radius-matrix-head strong {
  color:var(--text);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
}

.reference-radius-matrix-head span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-radius-matrix-table {
  display:grid;
  gap:1px;
  min-width:0;
  overflow:hidden;
  box-shadow:var(--ring-light);
}

.reference-radius-matrix-row {
  display:grid;
  grid-template-columns:minmax(160px, 0.52fr)
    minmax(190px, 0.78fr)
    minmax(180px, 0.68fr)
    minmax(190px, 0.78fr)
    minmax(240px, 1fr);
  gap:10px;
  align-items:start;
  padding:9px 10px;
  background:var(--surface);
  color:var(--text-3);
  font-size:11.5px;
  line-height:1.4;
}

.reference-radius-matrix-header {
  background:var(--surface-2);
  color:var(--text-2);
  font-size:10.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-radius-matrix-standard {
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  gap:8px;
  align-items:center;
  min-width:0;
}

.reference-radius-matrix-standard div,
.reference-radius-matrix-instances {
  display:flex;
  gap:4px;
  flex-wrap:wrap;
  min-width:0;
}

.reference-radius-matrix-standard div {
  flex-direction:column;
  align-items:flex-start;
}

.reference-radius-matrix-standard strong {
  color:var(--text);
  font-size:11.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-radius-matrix-repeat {
  width:30px;
  height:1px;
  background:var(--rule);
}

.reference-radius-matrix-sample {
  width:30px;
  height:22px;
  background:var(--surface-3);
  box-shadow:inset 0 0 0 1px var(--rule);
}

.reference-radius-matrix-preview {
  min-width:0;
}

.reference-radius-matrix-preview .reference-radius-context-visual {
  min-height:48px;
  padding:7px;
}

.reference-radius-matrix code,
.reference-radius-matrix-head code {
  width:fit-content;
  max-width:100%;
  padding:2px 4px;
  overflow-wrap:anywhere;
  background:var(--surface-2);
  color:var(--text-2);
  box-shadow:var(--ring-light);
  font-size: var(--text-2xs);
}

.reference-type-ramp {
  overflow:hidden;
}

.reference-type-row {
  display:grid;
  grid-template-columns:120px minmax(0, 1fr) auto;
  gap:16px;
  align-items:center;
  padding:12px 14px;
  box-shadow:inset 0 -1px 0 var(--rule);
}

.reference-type-row:last-child {
  box-shadow:none;
}

.reference-type-label {
  color:var(--text-3);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
}

.reference-source-grid,
.reference-form-grid,
.reference-empty-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

.reference-source-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  padding:8px;
  border-radius:var(--radius);
  background:var(--surface-2);
}

.reference-stack {
  display:grid;
  gap:10px;
}

.reference-work-row-summary {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:10px;
}

.reference-work-row-summary > div,
.reference-work-row-card {
  min-width:0;
  background:var(--surface-2);
  box-shadow:var(--ring-light);
  border-radius:var(--radius);
}

.reference-work-row-summary > div {
  display:grid;
  gap:4px;
  align-content:start;
  padding:10px 12px;
}

.reference-work-row-summary strong,
.reference-work-row-card-head {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-work-row-summary span {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-work-row-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

.reference-work-row-card {
  overflow:hidden;
}

.reference-work-row-item {
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-work-row-item .reference-work-row-example {
  box-shadow:none;
}

.reference-work-row-card-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:10px 12px;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-work-row-example {
  background:var(--surface);
}

.reference-work-row-example .work-row-lead {
  align-self:stretch;
  align-items:stretch;
  flex:0 0 96px;
  width:96px;
}

.reference-activity-compact-row {
  display:grid;
  grid-template-columns:78px 26px minmax(0, 1fr);
  gap:8px;
  align-items:center;
  min-height:34px;
  padding:7px 10px;
  background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-activity-compact-row .activity-time {
  color:var(--text-3);
}

.reference-activity-compact-text {
  min-width:0;
  overflow:hidden;
  color:var(--text-2);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-work-row-field-list {
  display:grid;
  gap:0;
  padding:0 12px 10px 126px;
}

.reference-activity-compact-fields {
  padding:2px 12px 10px;
  background:var(--surface);
}

.reference-work-row-field-row {
  display:grid;
  grid-template-columns:82px minmax(0, 1fr);
  gap:10px;
  padding:5px 0;
  border-top:1px solid var(--rule-soft);
  font-size:11.5px;
  line-height:1.35;
}

.reference-work-row-field-row span {
  color:var(--text-3);
  font-weight: var(--font-weight-medium);
}

.reference-work-row-field-row strong {
  color:var(--text-2);
  font-weight: var(--font-weight-regular);
}

.reference-claim-tab-sample {
  min-height:0;
}

.reference-mini-claim-tab {
  min-height:0;
  box-shadow:var(--ring-light);
}

.reference-mini-claim-tab .claim-tab-header {
  padding:12px;
  gap:10px;
}

.reference-mini-claim-tab .claim-tab-title {
  font-size: var(--text-md);
}

.reference-mini-claim-tab .claim-tab-subtitle {
  font-size:11.5px;
}

.reference-mini-claim-tab .claim-tab-body {
  padding:0;
}

.reference-overview-dashboard {
  gap:12px;
}

.reference-worklist-rail {
  width:300px;
  max-width:100%;
}

.reference-issue-workspace .issue-workspace-shell {
  min-height:320px;
}

.reference-cac-workspace {
  padding:0;
}

.reference-economics-workspace {
  padding:0;
}

.reference-economics-workspace .economics-workpaper {
  margin:0;
}

.reference-ui .claim-update-queue-summary {
  margin:0;
}

.reference-ui .claim-update-row {
  background:var(--surface);
}

.reference-ui .activity-row {
  grid-template-columns:64px minmax(0, 1fr);
}

.reference-ui .notes-thread-surface {
  min-height:0;
}

.reference-ui .notes-toolbar {
  position:static;
}

.reference-ui .new-document-chooser {
  grid-template-columns:minmax(0, 1fr);
}

.reference-all-claim-actions {
  display:grid;
  gap:12px;
  align-content:start;
}

.reference-all-claim-actions.is-menu-open {
  min-height:760px;
}

.reference-all-claim-actions .claim-actions-dropdown {
  position:relative;
}

.reference-all-claim-actions .claim-actions-menu {
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  max-height:min(70vh, 720px);
  z-index:30;
}

.reference-document-view-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  align-items:start;
}

.reference-document-view-panel {
  display:grid;
  gap:10px;
  min-width:0;
}

.reference-document-tables-view {
  padding:0;
}

.reference-document-tables-view .dynamic-fact-toolbar,
.reference-document-tables-view .dynamic-fact-controls {
  padding-left:0;
  padding-right:0;
}

.reference-document-tables-view .dynamic-fact-table-shell {
  margin:0;
}

.reference-summary-action-example {
  display:grid;
  gap:6px;
}

.reference-pattern-meta,
.reference-pattern-note {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-pattern-note {
  padding:10px 12px;
  border-radius:var(--radius);
  background:var(--surface-2);
  box-shadow:var(--ring-light);
}

.reference-empty-grid .empty-state {
  min-height:150px;
}

.reference-skeleton {
  min-height:150px;
  box-shadow:var(--ring-light);
  border-radius:var(--radius);
  padding:8px;
}

.reference-document-review-frame {
  height:min(640px, 72vh);
  min-height:520px;
  overflow:hidden;
  border-radius:var(--radius-lg);
  box-shadow:var(--ring-light);
  background:var(--surface);
}

.reference-document-review-workspace {
  height:100%;
  grid-template-columns:minmax(320px, 0.95fr) minmax(360px, 1.05fr);
}

.reference-shared-workflow-modal {
  display:grid;
  gap:12px;
}

.reference-shared-workflow-frame {
  height:min(560px, 68vh);
  min-height:460px;
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--ring-light);
}

.reference-shared-workflow-workspace {
  height:100%;
  grid-template-columns:minmax(420px, 1fr) minmax(260px, 320px);
}

.reference-shared-workflow-main {
  min-width:0;
  overflow:auto;
}

.reference-shared-workflow-rail {
  display:grid;
  align-content:start;
  gap:12px;
  min-width:0;
  padding:16px 18px;
  border-left:1px solid var(--rule);
  background:var(--surface-2);
}

.reference-shared-workflow-toolbar {
  padding:0 0 8px;
}

.reference-shared-workflow-row {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr) auto;
  gap:8px;
  align-items:center;
  min-height:40px;
  padding:7px 0;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
  color:var(--text-2);
  font-size:12.5px;
}

.reference-shared-workflow-row span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reference-dynamic-fact-workspace {
  padding:0;
}

.reference-source-preview-grid {
  display:grid;
  grid-template-columns:minmax(260px, 0.9fr) minmax(260px, 1fr);
  gap:12px;
  align-items:start;
}

.reference-source-preview-grid .doc-page {
  min-height:360px;
}

.reference-tab-filter-comparison {
  display:grid;
  gap:12px;
}

.reference-tab-filter-canonical {
  display:grid;
  gap:6px;
  padding:10px;
  background:var(--surface-2);
  box-shadow:var(--ring-light);
  border-radius:var(--radius);
}

.reference-tab-filter-canonical .tab-filter-bar {
  padding-bottom:0;
}

.reference-tab-filter-variants {
  display:grid;
  gap:10px;
}

.reference-tab-filter-variant {
  display:grid;
  gap:8px;
  padding:10px;
  background:var(--surface);
  box-shadow:var(--ring-light);
  border-radius:var(--radius);
  min-width:0;
}

.reference-tab-filter-variant-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
  align-items:start;
}

.reference-tab-filter-title {
  color:var(--text);
  font-size:12.5px;
  font-weight: var(--font-weight-semibold);
}

.reference-tab-filter-demo {
  min-width:0;
}

.reference-tab-filter-demo .tabs,
.reference-tab-filter-demo .filter-bar {
  padding-inline:0;
}

.reference-tab-filter-demo .filter-bar {
  padding-block:8px;
}

.reference-legacy-filter-row {
  margin-bottom:0;
}

.reference-deadline-head {
  min-height:34px;
}

.reference-pdf-shell {
  min-height:180px;
}

.reference-modal-wire,
.reference-drawer-wire {
  overflow:hidden;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  background:var(--surface);
}

.reference-modal-wire {
  max-width:520px;
}

.reference-drawer-wire {
  max-width:360px;
  margin-left:auto;
}

.reference-ui .filter-bar {
  min-width:0;
}

.reference-ui .table-shell {
  min-width:0;
}

.reference-pr7-board {
  display:grid;
  gap:18px;
}

.reference-pr7-summary {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.reference-pr7-summary > div,
.reference-pr7-decision-table,
.reference-pr7-slice {
  min-width:0;
  background:var(--surface);
  border-radius:var(--radius-widget);
  box-shadow:var(--widget-shadow);
  overflow:hidden;
}

.reference-pr7-summary > div {
  display:grid;
  gap:4px;
  padding:var(--widget-padding);
}

.reference-pr7-summary strong,
.reference-pr7-slice-copy span {
  color:var(--text);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
}

.reference-pr7-summary span,
.reference-pr7-slice-copy p,
.reference-pr7-decision-row em {
  color:var(--text-3);
  font-size: var(--text-sm);
  line-height:1.45;
}

.reference-pr7-decision-table {
  display:grid;
}

.reference-pr7-decision-head,
.reference-pr7-decision-row {
  display:grid;
  grid-template-columns:1.2fr 1fr 1.7fr;
  gap:12px;
  align-items:start;
  padding:10px 14px;
}

.reference-pr7-decision-head {
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
  color:var(--text-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.reference-pr7-decision-row {
  color:inherit;
  text-decoration:none;
  box-shadow:inset 0 -1px 0 var(--rule-soft);
}

.reference-pr7-decision-row:hover,
.reference-pr7-decision-row:focus-visible {
  background:var(--hover);
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

.reference-pr7-decision-row span {
  min-width:0;
}

.reference-pr7-decision-row strong,
.reference-pr7-decision-row em {
  display:block;
}

.reference-pr7-slice-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}

.reference-pr7-slice {
  display:grid;
  align-content:start;
}

.reference-pr7-slice-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:start;
  padding:14px var(--widget-padding-x) 12px;
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}

.reference-pr7-slice-head code {
  max-width:360px;
  white-space:normal;
  text-align:right;
}

.reference-pr7-slice-copy {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1px;
  background:var(--rule-soft);
}

.reference-pr7-slice-copy > div {
  display:grid;
  gap:4px;
  padding:12px var(--widget-padding-x);
  background:var(--surface);
}

.reference-pr7-slice-copy p {
  margin:0;
}

.reference-pr7-visual {
  padding:var(--widget-padding);
}

.reference-pr7-mini-page {
  display:grid;
  gap:10px;
  min-width:0;
}

.reference-pr7-mini-page .data-list-card,
.reference-pr7-mini-page .table-shell,
.reference-pr7-mini-page .row-list,
.reference-pr7-mini-page .filter-bar,
.reference-pr7-mini-page .tab-filter-bar {
  min-width:0;
}

.reference-pr7-mini-page .table-shell {
  max-height:260px;
}

.reference-pr7-mini-page .table td .work-row {
  min-width:420px;
}

.reference-pr7-contained-filter {
  background:var(--surface-2);
  border-radius:var(--radius-control);
  padding:8px;
}

.reference-pr7-slice > .reference-component-links {
  padding:0 var(--widget-padding-x) var(--widget-padding-y);
}

@media (max-width: 1180px) {
  .reference-anatomy-layout,
  .reference-page-map,
  .reference-token-layout {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .reference-anatomy-layout {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-anatomy-map-stage,
  .reference-measure-legend {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-decomposition-rail {
    position:static;
  }
}

@media (max-width: 860px) {
  .reference-ui {
    padding:16px 14px 28px;
  }

  .reference-anatomy-variant-head,
  .reference-anatomy-card-head,
  .reference-anatomy-layout,
  .reference-anatomy-map-stage,
  .reference-measure-legend,
  .reference-hero,
  .reference-spec-grid,
  #reference-claim .reference-spec-grid,
  .reference-page-map,
  .reference-work-row-grid,
  .reference-work-row-summary,
  .reference-token-layout,
  .reference-source-grid,
  .reference-source-preview-grid,
  .reference-document-view-grid,
  .reference-form-grid,
  .reference-empty-grid {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-anatomy-viewport {
    grid-template-columns:86px minmax(0, 1fr);
    min-height:520px;
  }

  .reference-anatomy-sidebar {
    padding-inline:8px;
  }

  .reference-anatomy-brand strong,
  .reference-anatomy-nav-label,
  .reference-anatomy-nav-item b,
  .reference-anatomy-sidebar-user strong {
    display:none;
  }

  .reference-anatomy-widget-grid,
  .reference-anatomy-widget-grid.claim,
  .reference-anatomy-intro-row,
  .reference-canvas-audit-row,
  .reference-widget-layer-row,
  .reference-widget-standard,
  .reference-pr7-summary,
  .reference-pr7-slice-grid,
  .reference-pr7-slice-copy,
  .reference-pr7-decision-head,
  .reference-pr7-decision-row {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-pr7-slice-head {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-pr7-slice-head code {
    max-width:none;
    text-align:left;
  }

  .reference-document-review-frame {
    height:auto;
  }

  .reference-document-review-workspace {
    grid-template-columns:minmax(0, 1fr);
  }

  .reference-type-row {
    grid-template-columns:minmax(0, 1fr);
    gap:6px;
  }

  .reference-work-row-field-list {
    padding-left:12px;
  }

  .reference-work-row-field-row {
    grid-template-columns:minmax(0, 1fr);
    gap:2px;
  }
}

/* ============================================================
 * LIVE SURFACE STANDARDIZATION — PR 4-6 implementation
 * ============================================================ */
.content,
.app-page-scaffold,
.app-page-body,
.claim-tab-scaffold,
.claim-tab-body {
  background:var(--canvas-bg);
}

.header,
.lx-8hg7bi {
  background:var(--chrome-bg);
}

.page-header-surface,
.app-page-header {
  background:var(--page-header-bg);
}
/* The claim identity header also carries .page-header-surface in hub.jsx;
   this later rule keeps the excluded component on its own preserved role. */
.claim-identity-header {
  background:var(--claim-header-bg);
}

.claim-tab-header {
  background:var(--canvas-bg);
}

.data-list-card,
.my-week-strip-card,
.overview-row-section,
.table-shell {
  background:var(--widget-bg);
  border-radius:var(--radius-widget);
  box-shadow:var(--widget-shadow);
  overflow:hidden;
}

.app-page-body > .canvas-table-shell,
.canvas-table-page > .canvas-table-shell {
  margin:var(--canvas-gutter-top) var(--canvas-gutter-side);
  padding:0;
}

.data-list-card > .card-head,
.my-week-strip-card > .card-head,
.overview-row-section > .card-head {
  padding:14px var(--widget-padding-x) 12px;
  margin:0;
  background:var(--widget-header-bg);
  box-shadow:inset 0 -1px 0 var(--widget-divider);
}

.data-list-card > .card-body,
.data-list-card > .card-body.tight,
.my-week-strip-card > .card-body,
.my-week-strip-card > .card-body.tight,
.overview-row-section > .card-body,
.overview-row-section > .card-body.tight {
  padding:var(--widget-padding);
}

.data-list-card > .card-body.tight,
.overview-row-section > .card-body.tight {
  gap:0;
}

.table-shell > .table-wrap,
.table-shell-with-rail > .table-wrap,
.app-page-body .table-shell > .table-wrap,
.claim-tab-body .table-shell > .table-wrap {
  padding:0 var(--table-shell-padding-x);
  background:var(--widget-bg);
  overflow:auto;
  border-radius:var(--radius-role-none);
}

.table-shell > .data-view-rail,
.data-list-card .data-view-rail,
.overview-row-section .data-view-rail {
  padding-inline:var(--widget-padding-x);
  background:var(--widget-bg);
}

.table-shell .table thead th,
.table-shell .tbl thead th {
  background:var(--widget-header-bg);
}
/* Inside a banded widget the tinted band is the header — the table keeps a
   white thead like the docket (the in-widget standard). */
.report-widget .table-shell .table thead th,
.report-widget .table-shell .tbl thead th,
.banded-widget .table-shell .table thead th,
.banded-widget .table-shell .tbl thead th {
  background:var(--widget-bg);
}

.work-widget-grid,
.my-work-root .work-widget-grid,
.overview-work-grid {
  column-gap:var(--widget-row-gap);
  row-gap:var(--widget-stack-gap);
  margin-top:0;
}

.my-work-root,
.claim-tab-body > .hub,
.claim-tab-body > .document-view-shell,
.claim-tab-body > .lx-28v4rf,
.claim-tab-body > .claim-tab-prose {
  gap:var(--widget-gap);
}

.my-work-root > .my-week-strip-card,
.my-work-root > .awaiting-review-card,
.my-work-root > .work-widget-grid {
  margin-block:0;
}

.claim-tab-scaffold-table .claim-tab-body > .canvas-widget-scroll-host {
  overflow:visible;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

.work-row,
.overview-row-section .list-row,
.overview-activity-compact-row {
  border-bottom-color:var(--widget-divider);
}

.claim-tab-body .card:is(.data-list-card, .overview-row-section),
.app-page-body .card:is(.data-list-card, .my-week-strip-card, .overview-row-section),
.claim-tab-scaffold-list .claim-tab-body > .lx-28v4rf > .card.data-list-card,
.claim-tab-scaffold-timeline .claim-tab-body > .lx-28v4rf > .card.data-list-card {
  border-radius:var(--radius-widget);
}

/* Preserved hashed classes (still in use outside Slice C scope) */
.lx-mn1hhg { font-size: var(--text-sm); }
.calendar-drawer-eyebrow,
.my-week-day-label { font-size: var(--text-sm); }
.claim-portal-activity-action { font-size:12.5px; color:var(--text); }
/* Preserved hashed class (still used outside hub.jsx) */
.lx-mn1hhg,
.cac-facts-field-cell { font-size: var(--text-sm); }

.assistant-working {
  display:grid;
  gap:6px;
}
.assistant-live-steps {
  margin:0;
  padding:0 0 0 2px;
  list-style:none;
  display:grid;
  gap:3px;
}
.assistant-live-steps li {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11.5px;
  color:var(--text-3);
}
.assistant-live-steps li.running {
  color:var(--text-2);
}
.assistant-live-steps li.failed {
  color:var(--critical, var(--text-2));
}
.assistant-live-step-mark {
  display:inline-flex;
  width:12px;
  justify-content:center;
}
.assistant-live-step-spinner {
  width:7px;
  height:7px;
  border:1.5px solid var(--rule);
  border-top-color:var(--text-2);
  border-radius:var(--radius-role-full);
  animation:assistant-live-spin 0.8s linear infinite;
}
@keyframes assistant-live-spin {
  to { transform:rotate(360deg); }
}





.table-action-stack {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
}

.finance-action-modal .modal-body {
  background:var(--surface);
}

.finance-action-stack {
  display:grid;
  gap:12px;
}

.finance-action-summary {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  overflow:hidden;
  background:var(--surface);
}

.finance-action-summary > div {
  display:grid;
  gap:4px;
  padding:12px;
  border-right:1px solid var(--rule);
}

.finance-action-summary > div:last-child {
  border-right:0;
}

.finance-action-summary span {
  font-size: var(--text-sm);
  color:var(--text-3);
}

.finance-action-summary strong {
  font-size: var(--text-md);
  color:var(--text);
}

.finance-action-section {
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  background:var(--surface);
}

.finance-action-section h3 {
  margin:0 0 4px;
  font-size: var(--text-lg);
  line-height:1.25;
}

.finance-action-section p {
  margin:0;
}

.finance-action-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:10px;
}

.finance-action-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  align-items:end;
}

.finance-action-controls .field {
  min-width:160px;
}

.finance-action-controls .field span {
  font-size: var(--text-sm);
  color:var(--text-3);
}

.finance-action-readout {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}

.finance-discrepancy-list {
  display:grid;
  gap:10px;
}

.finance-discrepancy-row {
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  background:var(--surface-soft);
}

.finance-discrepancy-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.finance-discrepancy-main strong {
  font-size: var(--text-md);
}

.finance-discrepancy-values {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.finance-discrepancy-values > div {
  display:grid;
  gap:3px;
  padding:10px;
  border:1px solid var(--rule);
  border-radius:var(--radius-control);
  background:var(--surface);
}

.finance-discrepancy-values span,
.finance-discrepancy-notes span {
  font-size: var(--text-sm);
  color:var(--text-3);
}

.finance-discrepancy-values strong {
  font-size: var(--text-md);
  color:var(--text);
}

.finance-discrepancy-notes {
  flex:1 1 320px;
}

.alert {
  border:1px solid var(--rule);
  border-radius:var(--radius-widget);
  padding:10px 12px;
  font-size: var(--text-body);
}

.alert-error {
  border-color:color-mix(in srgb, var(--critical) 34%, var(--rule));
  color:var(--critical);
  background:color-mix(in srgb, var(--critical) 7%, var(--surface));
}

.alert-success {
  border-color:color-mix(in srgb, var(--success) 34%, var(--rule));
  color:var(--success-strong, var(--success));
  background:color-mix(in srgb, var(--success) 9%, var(--surface));
}

@media (max-width: 860px) {
  .finance-action-summary,
  .finance-action-grid {
    grid-template-columns:1fr;
  }

  .finance-action-summary > div {
    border-right:0;
    border-bottom:1px solid var(--rule);
  }

  .finance-action-summary > div:last-child {
    border-bottom:0;
  }

  .table-action-stack {
    justify-content:flex-start;
  }

  .finance-discrepancy-main,
  .finance-discrepancy-values {
    grid-template-columns:1fr;
  }
}

/* Rendered knowledge guidance (display-only markdown) */
.knowledge-md { font-size: var(--text-body); line-height: 1.6; color: var(--text-2); }
.knowledge-md h4, .knowledge-md h5, .knowledge-md h6 { color: var(--text); margin: 14px 0 4px; font-weight: var(--font-weight-semibold); }
.knowledge-md h4 { font-size: var(--text-md); }
.knowledge-md h5 { font-size: var(--text-body); }
.knowledge-md h6 { font-size: 12.5px; }
.knowledge-md p { margin: 6px 0; }
.knowledge-md ul, .knowledge-md ol { margin: 6px 0 6px 18px; padding: 0; }
.knowledge-md li { margin: 2px 0; }
.knowledge-md code { font-family: var(--font-mono); font-size: 11.5px; background: var(--surface-2); border-radius: var(--radius-xs); padding: 1px 4px; }
.knowledge-md pre { background: var(--surface-2); border-radius: var(--radius-sm); padding: 10px 12px; overflow-x: auto; margin: 8px 0; }
.knowledge-md pre code { background: none; padding: 0; }
.knowledge-md a { color: var(--info); }

/* ============================================================
 * CLAIM SCREENS — DH two-tier IA (Claims page 325-2559 family)
 * Header recomposition (status band 329:5970/5971, metadata 32 band,
 * nav-tiered 329:6014), tier-2 segmented row (329:6023 recipe), and the
 * Workspace Summary / Worklist / Claim info compositions. Later-in-file
 * rules of equal specificity intentionally override the legacy header
 * recipes above. Plan: docs/plans/claim-screens-dh-20260820.md
 * ============================================================ */

/* --- Claim header (authored: breadcrumb + identity 88 + metadata 32 +
       divider + 43px tier-1 band, all on bg/surface) --- */
.claim-identity-header {
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
}
/* Identity block: authored padding 16/24/12/24, gap 4. */
.claim-identity-block {
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 24px 12px;
}
.claim-breadcrumb { display:flex; align-items:center; min-height:16px; }
/* Authored breadcrumb "Claims": Label 13/400/16 text/secondary. */
.claim-breadcrumb-link {
  display:inline-flex;
  align-items:center;
  gap:4px;
  border:0;
  background:transparent;
  padding:0;
  font-family:var(--font-sans);
  font-size:13px;
  line-height:16px;
  font-weight:var(--font-weight-regular);
  color:var(--approved-text-secondary);
  cursor:pointer;
}
.claim-breadcrumb-link:hover { color:var(--text); text-decoration:underline; }
.claim-breadcrumb-chevron { color:var(--text-4); flex-shrink:0; }
.claim-title-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}
.claim-title-left {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1;
}
/* Authored H1 329:5977: Geist 32/40, −1.5%; Lisa D05 weight scale maps the
   authored 600 to the approved 650 role. */
.claim-header-claimant-name {
  margin:0;
  font-family:var(--font-sans);
  font-size:32px;
  line-height:40px;
  font-weight:var(--font-weight-semibold);
  letter-spacing:-0.015em;
  color:var(--approved-text-primary);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* Authored Status pill: 20 high, radius/full, Caption/Strong 12/500. Tone
   colours keep the current product mapping (purple family held per Q10/11);
   the geometry applies to every pill in the title row (status, priority,
   CAC freshness, tags) so the stack reads as one pill family (D46). */
.claim-header-status,
.claim-title-left .chip,
.claim-title-left .claim-header-cac,
.claims-table td[data-col="status"] .chip,
.claims-table td[data-col="nextAction"] .chip,
.document-tags-cell .chip,
/* UP57 (Dan, 478:6958): the documents Category chip is Chip/Status
   Neutral — a member of this central family, not a compact-wrap fork. */
.document-list-chip-cell.document-category-column .chip,
/* DC06: Directory category chips and claim-party Role chips (D1: Chip/Status
   geometry, NOT the authored 24-high "Category Chip"). */
.chip.directory-category-chip,
.chip.claim-party-role-chip,
.claim-header-tags-row .chip {
  min-height:20px;
  padding:2px 8px;
  border-radius:var(--radius-role-full);
  font-size:12px;
  line-height:16px;
  font-weight:var(--font-weight-medium);
}
.claim-header-priority-button {
  min-height:20px;
  padding:0;
  border:0;
  background:transparent;
}
.claim-title-actions {
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
/* Authored header buttons: Secondary/Medium, fixed 32 high, radius/md. */
.claim-title-actions .btn { min-height:32px; }
.claim-facts-anchor--button { position:relative; display:inline-flex; }
/* DH Popover / Claim facts (398:27316): Fixed 496 wide, radius 12, 1px
   border/default, bg/surface, Elevation/300. Positioned FIXED from the
   measured trigger rect on the shared header-popover band — the top-layer
   principle for chrome-anchored overlays: fixed positioning escapes every
   ancestor stacking/clipping context, the band sits above all content
   z-bands (claim tabs 70, fact rows 10080) and below modals (11000). */
.claim-facts-popover--portal,
.claim-facts-anchor--button .claim-facts-popover {
  position:fixed;
  top:auto;
  right:auto;
  left:auto;
  width:min(496px, calc(100vw - 32px));
  max-height:calc(100dvh - 120px);
  border:1px solid var(--rule);
  border-radius:var(--radius-role-lg);
  background:var(--surface);
  box-shadow:var(--elevation-300);
  z-index:var(--z-claim-header-popover);
}
.claim-facts-popover--portal .claim-facts-header {
  padding:14px 16px;
  border-bottom:1px solid var(--rule);
}
.claim-facts-popover--portal .claim-facts-title {
  font-size:14px;
  line-height:18px;
  font-weight:var(--font-weight-semibold);
  color:var(--approved-text-primary);
}
/* Rows: two-line label (source sub-label), value column, copy control,
   full-width separators, generous authored rhythm. */
.claim-facts-popover--portal .claim-fact-row {
  display:grid;
  grid-template-columns:150px minmax(0, 1fr) 28px;
  gap:4px 12px;
  align-items:center;
  padding:12px 16px;
  border-bottom:1px solid var(--rule-soft, var(--rule));
}
.claim-facts-popover--portal .claim-fact-row:last-child { border-bottom:0; }
.claim-facts-popover--portal .claim-fact-label-group { display:flex; flex-direction:column; gap:2px; min-width:0; }
.claim-facts-popover--portal .claim-fact-label {
  font-size:13px;
  line-height:16px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.claim-facts-popover--portal .claim-fact-source {
  font-size:11px;
  line-height:14px;
  color:var(--approved-text-muted);
}
.claim-facts-popover--portal .claim-fact-value {
  font-size:13px;
  line-height:18px;
  color:var(--approved-text-secondary);
  min-width:0;
  overflow-wrap:anywhere;
}
.claim-facts-popover--portal .claim-fact-value.is-missing { color:var(--approved-text-muted); }
/* Metadata band: authored 32 high, padding 8/24; Caption 12/400 muted labels
   + Caption/Strong 12/500 secondary values; staff pairs right. */
.claim-header-meta-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:32px;
  margin-top:0;
  padding:8px 24px;
  flex-wrap:wrap;
}
.claim-header-meta-pairs {
  display:flex;
  align-items:center;
  gap:4px 0;
  min-width:0;
  flex-wrap:wrap;
}
.claim-header-meta-staff {
  display:flex;
  align-items:center;
  gap:16px;
  flex-shrink:0;
}
.claim-header-meta-row .muted { color:var(--approved-text-muted); font-weight:var(--font-weight-regular); font-size:12px; line-height:16px; }
.claim-header-meta-value {
  color:var(--approved-text-secondary);
  font-weight:var(--font-weight-medium);
  font-size:12px;
  line-height:16px;
}
/* Metadata separators: the DH shows a single light 3px dot (lighter than
   the legacy text-4 tone). */
.claim-header-meta-item + .claim-header-meta-item::before {
  background:var(--color-neutral-300);
}
/* Tier-1 band (nav-tiered 329:6014) sits on the header surface above the
   divider that the header's inset shadow already paints. */
.claim-identity-header .claim-tab-navigation {
  border-top:1px solid var(--rule);
  padding:0 24px;
}

/* --- Underline tabs (Tab Type=Underline, active 329:6018) --- */
.underline-tabs {
  display:flex;
  align-items:stretch;
  gap:0;
  min-height:43px;
  overflow-x:auto;
  scrollbar-width:none;
}
.underline-tabs::-webkit-scrollbar { display:none; }
.underline-tab {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border:0;
  background:transparent;
  font-family:var(--font-sans);
  font-size:13px;
  line-height:100%;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-secondary);
  cursor:pointer;
  white-space:nowrap;
}
.underline-tab:hover { color:var(--text); }
.underline-tab.active { color:var(--color-purple-500); }
.underline-tab-indicator {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:transparent;
}
.underline-tab.active .underline-tab-indicator { background:var(--color-purple-500); }

/* --- Tier-2 row: 41px segmented recipe (329:6023) + issue scope right --- */
.claim-tier2-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  /* Issues workspace slice (D1, DH 947:6007): the authored 72-high row pads
     16/24/16/24 — on the page-frame tokens since IW35, so the selector and
     the Summary issues pane share one left edge. */
  padding:var(--page-gutter-top) var(--page-gutter);
  flex-wrap:wrap;
}
/* Issues workspace slice (D1): the tier-2 row is ONE pair — selector left,
   16px (DH 947:6008 gap), the Workspace pages right. */
.claim-tier2-pair {
  display:flex;
  align-items:center;
  gap:var(--space-7);
  min-width:0;
  max-width:100%;
}
/* Authored 40px segmented scale (DH 947:6014, superseding the 41px 329:6023
   reading): 504x40 track on bg/subtle with a 1px border/default stroke drawn
   INSIDE the frame, so 1px border + 3px padding keeps the authored 4px
   visual inset around 32-high pills (radius/md). Distinct from the shared
   29px Calendar scale (both authored; recorded dual-scale). */
.tabs--lg {
  --tabs-track-padding:3px;
  --tabs-control-height:40px;
  --tabs-item-min-height:32px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-md);
}
.tabs--lg .tabs-indicator { border-radius:var(--radius-role-md); }
/* D1 pair end: outer (right) corners only, mirroring the selector. */
.claim-tier2-pair > .claim-workspace-tabs {
  border-radius:0 var(--radius-role-md) var(--radius-role-md) 0;
}
/* Round-3 F8 / re-test F6: when the pair no longer fits it wraps instead
   of being clipped, and — only while actually wrapped (measured in
   ClaimHub, `.is-wrapped`) — each control regains its full radius. */
.claim-tier2-pair { flex-wrap:wrap; row-gap:var(--space-3); }
.claim-tier2-pair.is-wrapped > .claim-workspace-tabs,
.claim-tier2-pair.is-wrapped .claim-issue-scope-button { border-radius:var(--radius-role-md); }
/* Worklist stickies slice (Dan R4): the Stickies toggle is the row's far-right
   item at every width — when the row wraps it stays on the right edge of its
   own line instead of falling to the left. */
.claim-tier2-row > .claim-stickies-toggle { margin-left:auto; }

/* Tier pages without sub-page headings: collapse the header band padding. */
.claim-tab-scaffold--bare > .claim-tab-header { padding-bottom:0; }

/* --- Drill-in back bar --- */
.claim-subview-backbar { display:flex; margin-bottom:2px; }
.claim-subview-back { display:inline-flex; align-items:center; gap:4px; }

/* --- Shared summary/info card recipes (Lisa 03A mounted widgets) --- */
/* The Summary issues pane shares the mounted-widget surface (its own layout
   below resets padding/gap). */
.claim-issues-pane,
.claim-summary-card {
  background:var(--widget-bg, var(--surface));
  /* CS26 (supersedes the CS24 outer-surface reading): Dan's ruling —
     product-system precedent overrides the frame-level stroke. Summary outer
     surfaces are mounted widgets and take the SAME treatment as the central
     .my-work-agenda-surface recipe (Worklist/Documents/Correspondence):
     widget background, NO explicit border, central widget radius, central
     mounted shadow. Inner anatomy (CS24/25) stands. */
  border-radius:var(--radius-role-lg);
  box-shadow:var(--widget-shadow);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.claim-summary-card-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  /* CS24 ledger: authored header pads 16 below the title before the divider
     (header 52 = 16+20+16), and content starts 16 after it (12 + card gap 4). */
  margin:0 -16px 12px;
  padding:0 16px 16px;
  border-bottom:1px solid var(--rule);
}
/* Authored card-title style "Tag" (398:26142): Geist 500 Medium 14/20,
   +2% tracking, text/primary — NOT semibold. */
.claim-summary-card-head h4,
.claim-worklist-issues-head h4 {
  margin:0;
  font-size:14px;
  line-height:20px;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.02em;
  color:var(--approved-text-primary);
}
/* CS24 ledger (662:10700 note): prose sits 12 under the divider (head gives
   12+4=16, trimmed 4) and the note closes with a subtle full-bleed rule. */
/* CS25 item 2: the stale later `> p` rule (margins 0) was re-inseting this
   divider by cascade — folded here so the note rule really spans the card. */
.claim-summary-strategy-card > p {
  margin:-4px -16px 0;
  padding:0 16px 12px;
  border-bottom:1px solid var(--border-subtle);
  color:var(--approved-text-secondary);
  font-size:14px;
  line-height:22px;
}
.claim-summary-edit { font-size:12px; line-height:16px; font-weight:var(--font-weight-medium); }
.claim-summary-widget-row {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  /* CS25 item 1 (662:10707 strategy row, 662:10730 snapshot row): 46px hug
     rows with spacing/md (12) vertical + spacing/lg (16) horizontal padding
     and the row's OWN full-card-width border/subtle bottom rule. */
  box-sizing:border-box;
  min-height:46px;
  margin:0 -16px;
  padding:12px 16px;
  border-bottom:1px solid var(--border-subtle);
}
.claim-summary-widget-row:last-child { border-bottom:0; }
.claim-summary-widget-label {
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-muted);
  flex-shrink:0;
}
.claim-summary-widget-value,
.claim-summary-widget-value .claim-summary-link {
  color:var(--approved-text-primary);
  font-weight:var(--font-weight-medium);
}
.claim-summary-widget-value {
  font-size:12px;
  line-height:16px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
  text-align:right;
  min-width:0;
  overflow-wrap:anywhere;
}
.claim-summary-link {
  border:0;
  background:transparent;
  padding:0;
  font:inherit;
  color:var(--approved-text-brand);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.claim-summary-link:hover { text-decoration:underline; }
.claim-summary-empty {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:20px 12px;
  text-align:center;
}
.claim-summary-empty strong { font-size:13px; color:var(--approved-text-secondary); font-weight:var(--font-weight-medium); }
.claim-summary-empty span { font-size:12px; color:var(--approved-text-muted); }

/* --- Workspace / Summary --- */
.claim-summary-page {
  display:flex;
  flex-direction:column;
  gap:var(--widget-stack-gap);
}
.claim-ai-summary-card { gap:8px; }
.claim-ai-summary-heading {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.claim-ai-summary-state {
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 7px;
  border-radius:var(--radius-role-full);
  font-size:11px;
  line-height:14px;
  color:var(--approved-text-secondary);
  background:var(--surface-3);
}
.claim-ai-summary-state.tone-success { color:var(--success); background:var(--success-soft); }
.claim-ai-summary-state.tone-warning { color:var(--warn); background:var(--warn-soft); }
.claim-ai-summary-state.tone-critical { color:var(--critical); background:var(--critical-soft); }
.claim-ai-summary-state.tone-info { color:var(--approved-text-brand); background:var(--nav-active-soft-bg); }
/* UP25: the refresh spinner occupies the atom's 14px footprint so the
   action label holds still across state swaps. */
.claim-ai-summary-spin-box {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  flex-shrink:0;
}
.claim-ai-summary-regenerate {
  min-height:28px;
  padding:4px 6px;
  border-radius:var(--radius-role-sm);
  flex-shrink:0;
  /* UP07 (662:10676): action label is Label/Strong — Geist 500 13 on the
     17px box, text/brand (the link colour already binds it). */
  font-size:13px;
  line-height:17px;
  font-weight:var(--font-weight-medium);
}
.claim-ai-summary-regenerate:focus-visible,
.claim-ai-summary-source:focus-visible {
  outline:2px solid var(--focus-ring, var(--approved-text-brand));
  outline-offset:2px;
}
.claim-ai-summary-regenerate[aria-disabled="true"] { color:var(--approved-text-muted); cursor:not-allowed; text-decoration:none; }
.claim-ai-summary-loading {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:72px;
  color:var(--approved-text-muted);
  font-size:13px;
}
.claim-ai-summary-content {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(240px, 320px);
  gap:24px;
  align-items:start;
}
/* CS24: bullet prose is Body/Small 14/22 (662:10679 ai-summary = 3x22 + 2x8). */
.claim-ai-summary-points li > span { font-size:14px; line-height:22px; }
.claim-ai-summary-points {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0;
  padding-left:20px;
  color:var(--approved-text-secondary);
  font-size:13px;
  line-height:20px;
}
.claim-ai-summary-points li { padding-left:2px; }
.claim-ai-summary-sources {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  margin-top:5px;
}
.claim-ai-summary-source {
  appearance:none;
  border:1px solid var(--rule);
  cursor:pointer;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-ai-summary-source:hover { border-color:var(--approved-text-brand); }
.claim-ai-summary-footer {
  display:flex;
  flex-direction:column;
  gap:2px;
  /* CS24 B3: full-bleed footer divider — same negative-margin pattern proven
     on the issue cards, with the authored subtle rule. */
  margin:0 -16px;
  padding:8px 16px 0;
  border-top:1px solid var(--border-subtle);
  color:var(--approved-text-muted);
  font-size:11px;
  line-height:15px;
}
.claim-ai-summary-error { color:var(--critical); }
.claim-summary-overview-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap); /* CS24 ledger: authored columns gap 24 (662:10698) */
  align-items:start;
}





/* Frame 662:10602 issue card: radius/md, 1px border/default, body left +
   Next steps sub-card right (stacks below ~900px). */




/* CS24 ledger (662:10896): the resolved card is quieter — 12px vertical
   rhythm, subtle header divider, secondary title, muted prose. */





/* CS20 (DH 662:10747): the issue card shares the card-head full-bleed
   divider pattern — header divider spans the full card width directly
   below the title section, exactly like Strategy/Claim snapshot. */



/* CS24 typography (browser-inspected): prose is Body/Small 14/22; the
   Strategy line is Caption 12/16 — both text/secondary. */




/* CS24: meta values are Caption/Strong — medium, text/primary. */



/* CS24 ledger chips: authored open-status chip is NEUTRAL with a success dot;
   Resolved is the approved success tint (approved success pair); the dated footer chip
   is the approved error pair (approved error pair) with a dot. Same binding pattern
   as .my-work-agenda-type. */
.claim-summary-card .chip{ padding:2px 8px; } /* CS24: authored chip pad 2/8 */

.claim-summary-resolved-chip,
.claim-issue-status-chip.is-active { background:var(--approved-feedback-success-bg); color:var(--approved-feedback-success); }

/* CS21 (662:10774): the Next steps rail is a stacked sub-card — small muted
   heading, then numbered items with circular counters. */





/* The qualifier line stays in the text column — never under the marker. */
/* CS24: step titles are Label 13/16 text/primary — the authored frame styles
   them as text; linked steps keep the button affordance but adopt the tone. */





/* CS11: focus-issue-only summary recipes removed with their dead component (CS09); .claim-summary-next-action stays live (AI card). */
.claim-summary-next-action {
  border-radius:var(--radius-role-md);
  /* CS24 ledger: authored fill = approved warning-bg, not amber-50. */
  background:var(--approved-feedback-warning-bg);
  padding:12px 16px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.claim-summary-next-action-kicker {
  font-size:11px;
  line-height:14px;
  letter-spacing:0.5px;
  font-weight:var(--font-weight-semibold);
  color:var(--approved-feedback-warning); /* CS24 ledger: authored approved-feedback-warning */
}
.claim-summary-next-action-title { font-size:13px; line-height:18px; font-weight:var(--font-weight-medium); color:var(--approved-text-primary); }
.claim-summary-next-action-due { font-size:12px; line-height:16px; color:var(--approved-text-muted); } /* CS24 ledger: authored text/muted, not red */

/* ===== Issues workspace slice (DH 947:5950 / 947:6116, D3/D4/D5) =====
   Two-pane Summary: the 256 issues pane (947:6018) + the issue-dependent
   content column, 16 apart (947:6017). Every surface is the central mounted
   widget recipe (CS26: no frame strokes); inner anatomy follows the ledger. */
.claim-summary-layout {
  display:grid;
  grid-template-columns:256px minmax(0, 1fr);
  gap:var(--pane-gap); /* pane ↔ workspace card — its own token (DH 947:6017 authors 16; pending Dan) */
  align-items:start;
}
.claim-issues-pane {
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:0;
  gap:0;
}
.claim-issues-pane-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  padding:12px;
}
.claim-issues-pane-head h4 {
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  margin:0;
  font-size:var(--text-body);
  line-height:1.3;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.claim-issues-pane-count {
  font-size:12px;
  line-height:16px;
  font-weight:var(--font-weight-regular);
  color:var(--approved-text-muted);
}
.claim-issues-pane-head .claim-summary-link,
.claim-issues-pane-new {
  font-size:var(--text-body);
  line-height:1.3;
  font-weight:var(--font-weight-medium);
}
.claim-issues-pane-new {
  display:flex;
  align-items:center;
  gap:var(--space-3);
  width:100%;
  padding:12px;
  border:0;
  border-bottom:1px solid var(--rule);
  background:transparent;
  color:var(--approved-text-brand);
  font-family:inherit;
  text-align:left;
  cursor:pointer;
}
.claim-issues-pane-new:hover { text-decoration:underline; }
.claim-issues-pane-new:focus-visible,
.claim-issues-pane-row:focus-visible,
.claim-issues-pane-sort-button:focus-visible,
.claim-issues-pane-filters {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  padding:8px 12px;
  border-bottom:1px solid var(--rule);
}
.claim-issues-pane-sort { position:relative; }
.claim-issues-pane-sort-button {
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--approved-text-secondary);
  font:inherit;
  font-size:12px;
  line-height:16px;
  cursor:pointer;
}
.claim-issues-pane-sort-button svg { color:var(--text-3); }
.claim-issues-pane-sort-menu { width:160px; }
.claim-issues-pane-list { display:flex; flex-direction:column; }
.claim-issues-pane-row {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  width:100%;
  min-width:0;
  padding:10px 12px;
  border:0;
  border-top:1px solid var(--rule);
  background:transparent;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
}
.claim-issues-pane-row:first-child { border-top:0; }
.claim-issues-pane-row:hover { background:var(--hover-2); }
.claim-issues-pane-row.is-selected { background:var(--approved-bg-subtle); }
.claim-issues-pane-title {
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:var(--text-body);
  line-height:1.3;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-secondary);
}
.claim-issues-pane-row.is-selected .claim-issues-pane-title { color:var(--approved-text-primary); }
.claim-issues-pane-meta {
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-muted);
}
.claim-issues-pane-empty {
  padding:12px;
  border-top:1px solid var(--rule);
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-muted);
}
/* 947:6020 issue heading widget: chips / 20-26 title / label-value pairs. */
.claim-issue-heading { gap:12px; }
.claim-issue-heading-top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--space-5);
}
.claim-issue-heading-chips { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.claim-issue-heading-title {
  margin:0;
  font-size:20px;
  line-height:26px;
  font-weight:var(--font-weight-semibold);
  color:var(--approved-text-primary);
  overflow-wrap:anywhere;
}
.claim-issue-heading-meta {
  display:flex;
  flex-wrap:wrap;
  gap:12px 32px;
  margin:0;
}
.claim-issue-heading-pair {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.claim-issue-heading-pair dt {
  font-size:12px;
  line-height:1.3;
  color:var(--approved-text-muted);
}
.claim-issue-heading-pair dd {
  margin:0;
  font-size:var(--text-body);
  line-height:1.3;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
  overflow-wrap:anywhere;
}
/* 947:6056 summary body: prose beside the 320 next-action callout, 24 apart. */
.claim-issue-summary-body {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 320px;
  gap:24px;
  align-items:start;
}
/* Fourth-pass F5 (IW24 #9, container-keyed like the tier-2 wrap): the Summary
   page is a size container, so the prose + 320 callout and the two-up rows
   stack when THE PAGE is narrow (pane + side menu eat the viewport), not
   only below a viewport breakpoint. */
.claim-summary-page { container-type:inline-size; }
@container (max-width: 640px) {
  .claim-issue-summary-body,
  .claim-summary-overview-columns { grid-template-columns:minmax(0, 1fr); }
  /* IW32: the AI summary two-up follows the page container like every other two-up. */
  .claim-ai-summary-content { grid-template-columns:1fr; }
}
.claim-issue-prose {
  margin:0;
  font-size:14px;
  line-height:22px;
  color:var(--approved-text-secondary);
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.claim-issue-empty { color:var(--approved-text-muted); }
/* 947:6071 Dispute detail sub-blocks: Micro 10/14 muted labels. */
.claim-issue-block {
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:8px 0 6px;
}
.claim-issue-block-label {
  font-size:10px;
  line-height:14px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-muted);
}
.claim-issue-block-label--rows { padding-top:12px; }
.claim-issue-lower-row { align-items:start; }
.claim-issue-workflows-note {
  margin:0 0 8px;
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-muted);
}
.claim-issue-workflows-body { display:flex; flex-direction:column; gap:12px; }
/* Fifth-pass F4 (IW24 #9, D6 "nothing is lost"): legacy compact panels
   hosted by the interim widget stay inside its container — a no-wrap value
   (the shared economics row) wraps here instead of pushing the statutory
   basis and status off the card. */
.claim-issue-workflows-body > * { min-width:0; max-width:100%; }
.claim-issue-workflows-body .economics-result-row { flex-wrap:wrap; }
.claim-issue-workflows-body .economics-result-row strong { white-space:normal; overflow-wrap:anywhere; }
/* IW32/IW34: the IME panel's linked rows are grid (min-width:0 above keeps
   them inside the widget; measured 0 overflow at every width) — a flex-wrap
   rule here was a no-op and is gone. */
/* D6 (IW09): evidence rows keep the retired workspace's controls — name,
   Primary evidence chip, rationale, then the pin / rationale icon actions. */
.claim-issue-evidence-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-1); }
.claim-issue-evidence-row { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); font-size:13px; line-height:18px; color:var(--approved-text-secondary); }
.claim-issue-evidence-name { min-width:0; overflow-wrap:anywhere; color:var(--approved-text-primary); }
.claim-issue-evidence-note { min-width:0; overflow-wrap:anywhere; color:var(--approved-text-muted); }
.claim-issue-evidence-actions { display:inline-flex; gap:var(--space-1); margin-left:auto; }
/* IW31: the outstanding-work decision inside the Delete / Resolve confirms —
   the authored confirm family (DH 78:1347) with a wider row label. */
.issue-work-choice { display:grid; gap:12px; }
.issue-work-choice .complete-task-summary-rows > div > span { flex-basis:168px; }
.issue-work-list { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.issue-work-list-item { display:flex; gap:10px; align-items:baseline; min-width:0; font-size:var(--text-sm); line-height:16px; }
.issue-work-list-title { flex:1; min-width:0; color:var(--approved-text-secondary); overflow-wrap:anywhere; }
.issue-work-list-due { flex-shrink:0; color:var(--approved-text-subtle); }
.issue-work-list-more { font-size:var(--text-sm); line-height:16px; color:var(--approved-text-muted); }
.issue-work-options { display:grid; gap:var(--space-3); }
/* 951:10201 issue modal: amber from-document callout, documents block. */
.issue-modal-callout {
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:16px;
  padding:12px;
  border-radius:var(--radius-role-md);
  background:var(--approved-feedback-warning-bg);
}
.issue-modal-callout-title {
  font-size:12px;
  line-height:1.3;
  font-weight:var(--font-weight-medium);
  color:var(--approved-feedback-warning);
}
.issue-modal-callout-body {
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-primary);
}
.issue-modal .issue-modal-status { margin-right:auto; }
.issue-modal-document-actions { display:flex; flex-wrap:wrap; gap:8px; }
.issue-modal-attach { position:relative; }
.issue-modal-attached {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:8px 0 0;
  padding:0;
  list-style:none;
}
.issue-modal-attached-row {
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-md);
}
.issue-modal-attached-row > svg { flex:0 0 auto; color:var(--text-3); }
.issue-modal-attached-copy { display:flex; flex-direction:column; gap:2px; flex:1 1 auto; min-width:0; }
.issue-modal-attached-name {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:var(--text-body);
  line-height:1.3;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.issue-modal-attached-meta { font-size:12px; line-height:16px; color:var(--approved-text-muted); }
.issue-modal-attached-lock { display:inline-flex; color:var(--text-3); }
.issue-modal-helper { margin-top:8px; font-size:12px; line-height:16px; color:var(--approved-text-muted); }
.issue-prose-textarea { min-height:160px; }
.menu-item.menu-item-emphasis { color:var(--approved-text-primary); }
@media (max-width: 900px) {
  .claim-summary-layout,
  .claim-issue-summary-body { grid-template-columns:minmax(0, 1fr); }
}
.claim-ai-summary-header-actions { display:inline-flex; align-items:center; gap:16px; flex-shrink:0; }
.claim-ai-summary-links-toggle { display:inline-flex; align-items:center; gap:8px; }
.claim-ai-summary-links-label { font-size:12px; line-height:16px; color:var(--approved-text-muted); }
/* CS24 B1: honest hidden-by-filter note beside the claim-wide counts. */

.claim-summary-issue-card-owner {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:var(--radius-role-full);
  background:var(--surface-3);
  color:var(--text-2);
  font-size:10px;
  font-weight:var(--font-weight-semibold);
}

/* --- Workspace / Worklist --- */
.claim-worklist {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 300px;
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
  align-items:start;
}
/* Dan R4 (14 Sep 2026): the sub-tab row "Stickies" toggle unmounts the
   right rail and the agenda column takes the full content width. */
.claim-worklist.is-rail-hidden { grid-template-columns:minmax(0, 1fr); }
.claim-worklist-main { display:flex; flex-direction:column; gap:var(--widget-stack-gap); min-width:0; }
/* The rail is a transparent STACK of mounted surfaces (Pratishtha 662:5487
   is a loose frame with no fill): the sticky note cards, then the pinned
   documents widget — each carries its own surface recipe. */
.claim-worklist-notes {
  display:flex;
  flex-direction:column;
  gap:var(--widget-stack-gap);
  min-width:0;
}
@media (max-width: 980px) {
  .claim-worklist { grid-template-columns:1fr; }
}
/* The agenda surface is radius/lg but its last row/bucket painted square
   corners; the groups container clips to the surface's bottom radius
   (central: applies to Work overview too). */
.my-work-agenda-groups {
  border-radius:0 0 var(--radius-role-lg) var(--radius-role-lg);
  overflow:hidden;
}

/* In-claim the agenda's Claim column is redundant (every row is this claim)
   and the notes rail narrows the surface; drop the column here so the row
   controls keep their full width. Columns: Type/Task/Assigned/Due/Who/
   Complete/More. Shared My Work grid is untouched. */
.claim-worklist .my-work-agenda-row,
.claim-worklist .my-work-agenda-column-head {
  grid-template-columns:64px minmax(220px, 2.25fr) minmax(110px, .8fr) 92px 40px 96px 24px;
}
.claim-worklist .my-work-agenda-claim,
.claim-worklist .my-work-agenda-column-head span:nth-child(3) {
  display:none;
}
.claim-worklist-create { position:relative; }
.claim-worklist-create-menu { position:absolute; top:calc(100% + 6px); right:0; min-width:200px; }
.claim-worklist-tools { display:flex; align-items:center; gap:6px; padding-right:12px; }
.claim-worklist-caption { display:flex; align-items:center; gap:12px; padding:10px 16px; }
.claim-worklist-manage { font-size:12px; }
.claim-worklist-issues {
  background:var(--widget-bg, var(--surface));
  border-radius:var(--radius-role-lg);
  box-shadow:var(--widget-shadow);
  padding:12px 16px 8px;
}
.claim-worklist-issues-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
.claim-worklist-issue-rows { display:flex; flex-direction:column; }
.claim-worklist-issue-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border:0;
  border-bottom:1px solid var(--rule-soft, var(--rule));
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.claim-worklist-issue-row:last-child { border-bottom:0; }
.claim-worklist-issue-row:hover .claim-worklist-issue-title { color:var(--approved-text-brand); }
.claim-worklist-issue-copy { display:flex; flex-direction:column; gap:2px; min-width:0; }
.claim-worklist-issue-title { font-size:13px; line-height:18px; font-weight:var(--font-weight-medium); color:var(--approved-text-primary); }
.claim-worklist-issue-next { font-size:12px; line-height:16px; }
.claim-worklist-issue-side { display:flex; align-items:center; gap:8px; flex-shrink:0; }

/* --- Claim info --- */
.claim-info-view { display:flex; flex-direction:column; gap:var(--widget-stack-gap); }
.claim-info-layout {
  display:grid;
  grid-template-columns:200px minmax(0, 1fr) minmax(0, 1fr);
  row-gap:var(--widget-stack-gap);
  column-gap:var(--widget-row-gap);
  align-items:start;
}
.claim-info-sections { display:flex; flex-direction:column; gap:2px; }
.claim-info-sections-title { font-size:11px; letter-spacing:0.5px; font-weight:var(--font-weight-semibold); padding:4px 8px; }
.claim-info-section {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  border:0;
  background:transparent;
  text-align:left;
  padding:8px;
  border-radius:var(--radius-role-md);
  font-size:13px;
  line-height:16px;
  color:var(--approved-text-secondary);
  cursor:pointer;
}
.claim-info-section-label { font-weight:var(--font-weight-medium); }
.claim-info-section-stat {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  font-size:11px;
  line-height:14px;
}
.claim-info-section:hover { background:var(--nav-hover-bg); }

.claim-info-section.active {
  background:var(--nav-active-soft-bg);
  color:var(--nav-active-soft-fg);
  font-weight:var(--font-weight-medium);
  cursor:default;
}
.claim-info-main, .claim-info-side { display:flex; flex-direction:column; gap:16px; min-width:0; }
.claim-info-group-kicker { font-size:11px; letter-spacing:0.5px; font-weight:var(--font-weight-semibold); margin-top:8px; }
.claim-info-footer { display:flex; justify-content:flex-end; align-items:center; gap:12px; padding:4px 2px 0; }
.claim-info-footer > .muted { margin-right:auto; }
.claim-info-full-view { font-size:13px; font-weight:var(--font-weight-medium); }
.claim-info-load-state { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; }
.claim-info-fact-row,
.claim-info-source-update,
.claim-info-deadline-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--rule-soft, var(--rule));
}
.claim-info-fact-row:last-child,
.claim-info-source-update:last-child,
.claim-info-deadline-row:last-child { border-bottom:0; }
.claim-info-fact-copy,
.claim-info-source-update > div:first-child,
.claim-info-deadline-row { min-width:0; }
.claim-info-fact-copy { display:flex; flex-direction:column; gap:2px; }
.claim-info-fact-copy > strong,
.claim-info-source-update strong { font-size:13px; line-height:18px; font-weight:var(--font-weight-medium); overflow-wrap:anywhere; }
.claim-info-official-value { display:flex; align-items:center; gap:4px; color:var(--approved-text-secondary); font-size:11px; line-height:16px; }
.claim-info-fact-actions,
.claim-info-source-update-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; flex:0 0 auto; }
.claim-info-history-list { display:flex; flex-direction:column; }
.claim-info-history-entry { display:grid; grid-template-columns:24px minmax(0, 1fr); gap:8px; padding:8px 0; }
.claim-info-history-entry > div { display:flex; flex-direction:column; gap:2px; }
.claim-info-history-entry strong { font-size:13px; line-height:18px; font-weight:var(--font-weight-medium); }
.claim-info-history-entry span,
.claim-info-history-entry p { margin:0; color:var(--approved-text-secondary); font-size:11px; line-height:16px; }
.claim-info-history-marker { display:flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:var(--nav-active-soft-bg); color:var(--nav-active-soft-fg); font-size:10px; font-weight:var(--font-weight-semibold); }
.claim-info-history-marker.official { background:var(--surface-subtle, var(--color-neutral-100)); color:var(--approved-text-secondary); }
.claim-info-source-update-list { display:flex; flex-direction:column; }
.claim-info-source-fact-controls {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:10px 0;
  border-bottom:1px solid var(--rule-soft, var(--rule));
}
.claim-info-source-fact-controls > .input { min-width:220px; flex:1 1 260px; }
.claim-info-source-fact-pagination { display:flex; align-items:center; gap:8px; margin-left:auto; }
.claim-info-source-update > div:first-child { display:flex; flex-direction:column; gap:3px; }
.claim-info-source-update > div:first-child > span:not(.field-label),
.claim-info-source-update p,
.claim-info-deadline-row span { margin:0; color:var(--approved-text-secondary); font-size:11px; line-height:16px; }
.claim-info-deadline-row { flex-direction:column; gap:2px; }
.claim-info-deadline-row strong { font-size:13px; line-height:18px; font-weight:var(--font-weight-medium); }
.claim-info-audit-link { display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:10px; padding:10px 0 0; border:0; border-top:1px solid var(--rule-soft, var(--rule)); background:transparent; color:var(--approved-text-brand); cursor:pointer; text-align:left; }

/* --- Activity composite --- */
.claim-activity-stack { display:flex; flex-direction:column; gap:var(--widget-stack-gap); }
/* The audit list inside the stack contains a data-list-card, which the
   generic :has() rule above locks to overflow:hidden for tab-internal
   scrolling; the composite page scrolls the body instead (Dan, 21 Aug). */
.claim-tab-body:has(.claim-activity-stack) {
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
/* The legacy ActivityView wrapper adds a 24px inset the timeline card does
   not have; align both stack children to the same edges. */
.claim-activity-stack > .lx-28v4rf { padding:0; }

/* --- Responsive: the header and grids reflow instead of clipping --- */
@media (max-width: 900px) {
  .claim-ai-summary-content,
  .claim-summary-overview-columns { grid-template-columns:1fr; }
  .claim-info-layout { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
  .claim-title-row { flex-wrap:wrap; }
  /* The name takes its own full-width line so the pill stack and tags can
     never squeeze it to a sliver; pills/tags wrap beneath it. */
  .claim-title-left { flex-wrap:wrap; flex-basis:100%; }
  .claim-header-claimant-name { flex:1 1 100%; white-space:normal; }
  .claim-header-status-stack { flex-wrap:wrap; }
  .claim-header-tags-row { flex-wrap:wrap; }
  .claim-header-meta-row { flex-direction:column; align-items:flex-start; gap:4px; }
}

/* --- Sticky notes: mounted tone cards (Pratishtha, Notes and Stickies
   662:5488 / 662:5492; Dan R1–R3, orchestrator O1/O2, 14 Sep 2026) ---
   Surface = the central mounted-widget recipe (widget shadow, radius/lg, no
   border); the fill and the 10px top bar come from the sticky-note tone
   tokens. The bar is a background layer so it clips to the card radius
   without overflow clipping and without touching box-shadow. Padding keeps
   the existing 12/14 card inset, measured below the bar. The note name sits
   inside the card; the textarea keeps its 12/18 recipe and 86px height. */
.claim-sticky-note {
  --sticky-note-bg: var(--sticky-note-yellow-bg);
  --sticky-note-bar: var(--sticky-note-yellow-bar);
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  min-width:0;
  margin:0;
  padding:calc(var(--sticky-note-bar-height) + var(--space-5)) var(--space-6) var(--space-5);
  border:0;
  border-radius:var(--radius-widget);
  background:linear-gradient(var(--sticky-note-bar) 0 var(--sticky-note-bar-height), transparent var(--sticky-note-bar-height)), var(--sticky-note-bg);
  box-shadow:var(--widget-shadow);
  color:var(--approved-text-secondary);
}
.claim-sticky-note.claim-sticky-tone-yellow {
  --sticky-note-bg: var(--sticky-note-yellow-bg);
  --sticky-note-bar: var(--sticky-note-yellow-bar);
}
.claim-sticky-note.claim-sticky-tone-purple {
  --sticky-note-bg: var(--sticky-note-purple-bg);
  --sticky-note-bar: var(--sticky-note-purple-bar);
}
.claim-sticky-label {
  font-size:12px;
  line-height:16px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.claim-sticky-foot {
  display:flex;
  align-items:center;
  gap:var(--space-3);
}
/* Central inline separator element: <span class="inline-separator"> renders
   the separator glyph token between inline text runs; the --strong modifier
   swaps in the bullet. Colour and size inherit from the surrounding text. */
.inline-separator::before { content:var(--separator-glyph); }
.inline-separator.inline-separator--strong::before { content:var(--separator-glyph-strong); }
/* OA-A9 / OA-A12: word guide • status flow inline as one muted meta line. */
.claim-sticky-foot-meta,
.claim-sticky-word-guide,
.claim-sticky-status { font-size:11px; line-height:14px; color:var(--approved-text-muted); }
.claim-sticky-foot-meta { flex:1 1 auto; min-width:0; }
.claim-sticky-word-guide { font-variant-numeric:tabular-nums; cursor:default; }
.claim-sticky-save { flex:0 0 auto; margin-left:auto; font-size:12px; }
.claim-sticky-save:disabled { opacity:0.6; cursor:default; }
.claim-sticky-note .textarea {
  width:100%;
  min-height:86px;
  margin:0;
  padding:0;
  border:0;
  border-radius:var(--radius-role-none);
  background:transparent;
  box-shadow:none;
  /* Dan's review DR3 (15 Sep 2026): no resize handle on either note. */
  resize:none;
  font-size:12px;
  line-height:18px;
  color:var(--approved-text-secondary);
}
/* DR3: the Table note is a fixed six-line field (6 x 18) — comfortably more
   than the 20-word guide at the rail width — and scrolls past that. */
.claim-sticky-note .textarea.claim-sticky-textarea-fixed {
  height:108px;
  min-height:108px;
  overflow-y:auto;
}
/* DR3: the Claim note grows with its content from the same starting height.
   OA-A10 Y1: every engine either grows or scrolls, never clips — the field
   scrolls by default, StickyNotesEditor measures and grows it where
   field-sizing is unavailable, and only an engine that sizes the field to its
   content hides the (then unused) scrollbar. */
.claim-sticky-note .textarea.claim-sticky-textarea-grow {
  field-sizing:content;
  overflow-y:auto;
}
@supports (field-sizing: content) {
  .claim-sticky-note .textarea.claim-sticky-textarea-grow { overflow-y:hidden; }
}
.claim-sticky-note .textarea::placeholder { color:var(--approved-text-muted); }
.claim-sticky-note .textarea:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}

/* --- Documents + Correspondence docket surfaces
   (DH Single claim - Documents 471:29267 full columns;
    DH Single claim - Correspondence 471:28681 docket-slim) --- */
.claim-documents-surface,
.claim-corr-surface,
/* Pinned documents R6 (ledger F12): the rail widget is a mounted widget, so
   it takes this central surface (widget bg, radius/lg, --widget-shadow, no
   explicit border) rather than the frame's own stroke/shadow (CS26). */
.pinned-documents-widget {
  background:var(--widget-bg, var(--surface));
  border-radius:var(--radius-role-lg);
  box-shadow:var(--widget-shadow);
  display:flex;
  flex-direction:column;
  overflow:visible;
}
.claim-documents-surface:has(> .documents-filtered-table-shell) {
  flex:1;
  min-height:0;
  overflow:hidden;
}
/* Shared dock-header (DH: Hug 56, padding spacing/md spacing/lg, D68). */
.claim-docket-head { padding:12px 16px; }
/* UP39 (Dan F8): the claims shell joins this list — the generic
   .table-shell widget-card radius was clipping the band's top corners. */
.claim-documents-surface .table-shell,
.claims-browser-surface .table-shell,
/* V5 (DC50): the claim Contacts and Directory shells join the list — the same
   generic .table-shell radius was rounding their band's top corners. */
.claim-contacts-surface .table-shell,
.directory-browser-surface .table-shell,
.claim-documents-surface .table-shell.filtered-table-shell {
  flex:1;
  min-height:0;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  border:0;
  overflow:hidden;
}
.claim-documents-surface .canvas-widget-stack { padding:0 16px 16px; }
/* Pinned documents widget interior — measured on 662:5497 (F13-F18).
   PD-B18/OA-B3: no COMPACT central widget-head recipe exists (the banded
   Reports/Admin head is page-scale: 14/18/12 on a surface-2 band with a 20px
   card title), so this follows the sibling agenda widget's precedent on the
   same page — the head lives inside the mounted surface, no band, a bottom
   rule on the central --widget-divider token — with the frame's own sizes:
   header pad 10/12/10/14 gap 6, title 500 12/16; rows pad 8/12/8/14 gap 3,
   top line gap 6 (file-text 13, name 500 11/15, chevron-right 12), subtitle
   400 10/13; 1px rules between rows. Colours are tokens only. */
.pinned-documents-widget-head {
  display:flex;
  align-items:center;
  gap:6px;
  padding:10px 12px 10px 14px;
  border-bottom:1px solid var(--widget-divider);
}
.pinned-documents-widget-title {
  margin:0;
  font-size:12px;
  line-height:16px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.pinned-documents-widget-empty {
  margin:0;
  padding:8px 12px 8px 14px;
  font-size:11px;
  line-height:15px;
  color:var(--approved-text-muted);
}
.pinned-documents-widget-list { list-style:none; margin:0; padding:0; }
.pinned-documents-widget-list > li + li { border-top:1px solid var(--widget-divider); }
.pinned-documents-widget-row {
  display:flex;
  flex-direction:column;
  gap:3px;
  width:100%;
  padding:8px 12px 8px 14px;
  border:0;
  border-radius:0;
  background:transparent;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.pinned-documents-widget-row:hover { background:var(--hover); }
.pinned-documents-widget-row:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.pinned-documents-widget-row-line {
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:var(--approved-text-muted);
}
.pinned-documents-widget-row-line svg { flex-shrink:0; }
.pinned-documents-widget-row-name {
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
  line-height:15px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.pinned-documents-widget-row-sub {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  line-height:13px;
  color:var(--approved-text-muted);
}
/* The discreet trailing pin glyph after a pinned document's name (R5); its
   pill surface and size come from the padlock recipe (DR6). */
.document-edit-button.document-pinned-glyph {
  vertical-align:middle;
  margin-left:4px;
}
.claim-docket-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  width:100%;
}
.claim-docket-toolbar-right { display:flex; align-items:center; gap:8px; }
.claim-docket-menu-anchor { position:relative; }
.claim-docket-menu {
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  min-width:220px;
  z-index:var(--z-claim-header-popover);
}
/* Shared docket table head band — the central D51 column-head recipe
   (11 Geist 500 on line 14, canvas band, top+bottom rules). Both docket
   tables join it; new docket tables join this selector list. */
/* UP36: the documents arm carries thead so the band recipe outranks the
   generic .table-shell thead th widget-header fill (later tie win). */
.claim-corr-table th,
.claims-browser-surface .claims-table thead th,
.claim-documents-surface .documents-filtered-table thead th,
/* DC02: the Directory and claim Contacts tables join the band recipe. */
.directory-browser-surface .directory-table thead th,
.claim-contacts-surface .claim-contacts-table thead th {
  text-align:left;
  font-size:11px;
  line-height:14px;
  /* UP51 (825:4354): Lisa's shared header-cell label carries 0.5px
     tracking — one central value for every band. */
  letter-spacing:0.5px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-muted);
  /* UP33/UP40: tiered band height (base 30 / select-header 46), labels
     vertically centred. */
  padding:0 16px;
  height:var(--column-head-height);
  box-sizing:border-box;
  vertical-align:middle;
  /* UP26 (Dan F1, 738-5799 — supersedes the UP01 single-rule contract):
     the authored band carries NO rules above or below. The box-shadow
     neutralisation stays (the base .table th recipe still paints its own
     inset rule, which would otherwise return). */
  border-top:0;
  border-bottom:0;
  box-shadow:none;
  /* UP36 (Dan, 2 Sep): Lisa's consistent band colouring — bg/subtle. */
  background:var(--approved-bg-subtle);
}
/* The filtered-table header buttons inherit the band typography
   (.filtered-table-th-button is padding:0 / font:inherit). */
/* DH full columns want width (the frame is 1920): the inner table-wrap
   pans horizontally below that; the rail and dock-header stay put and the
   D57/D59 guard still clips the shell. Column budget per the DH cell
   proportions. */
.claim-documents-surface .table-shell > .table-wrap {
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.claim-documents-surface .documents-filtered-table { min-width:1440px; }
/* UP31: the title column is the AUTO column so layout surplus lands here,
   not in the fixed 36px select column (fixed tables hand leftover width to
   the first column otherwise). */
.claim-documents-surface .documents-filtered-table col.document-col-summary { width:13%; }
.claim-documents-surface .documents-filtered-table col.document-col-type { width:10%; }
.claim-documents-surface .documents-filtered-table col.document-col-category { width:7%; }
.claim-documents-surface .documents-filtered-table col.document-col-filed { width:6.5%; }
.claim-documents-surface .documents-filtered-table col.document-col-date { width:6.5%; }
.claim-documents-surface .documents-filtered-table col.document-col-visit { width:7%; }
.claim-documents-surface .documents-filtered-table col.document-col-issues { width:12%; }
.claim-documents-surface .documents-filtered-table col.document-col-tags { width:9%; }
.claim-documents-surface .documents-filtered-table col.document-col-status { width:6%; }
.claim-documents-surface .documents-filtered-table col.document-col-edit { width:92px; } /* IW42: the pair's fixed budget wins over the 1440 percentages */
/* Documents full-columns rows (DH docrow: pad 12/16, 1px divider). */
.claim-documents-surface .documents-filtered-table tbody td {
  padding:12px 16px;
  border-bottom:1px solid var(--rule-soft, var(--rule));
  vertical-align:top;
}
.claim-documents-surface .documents-filtered-table tbody tr:last-child td { border-bottom:0; }
/* DH Label/Strong title: Geist 500 13, neutral/700. */
.claim-documents-surface .document-list-title-text {
  font-size:13px;
  line-height:18px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-secondary);
}
.claim-documents-doc-sub {
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:2px;
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-muted);
}
.claim-docket-badge {
  font-family:var(--font-mono);
  font-size:10px;
  line-height:14px;
  padding:0 4px;
  border-radius:var(--radius-role-sm);
  background:var(--color-neutral-40);
  color:var(--approved-text-secondary);
}
/* Placeholder copy ("No document date") wraps inside its column instead of
   overflowing the fixed layout (the legacy nowrap was sized for the old
   collapse system). */
.claim-documents-surface .documents-filtered-table td.document-list-date-cell {
  white-space:normal;
  overflow:hidden;
}
/* --- Correspondence docket table (corr-row: pad 11/16, gap 12) --- */
.claim-corr-table { width:100%; min-width:840px; border-collapse:collapse; table-layout:fixed; }
.claim-corr-table col.claim-corr-col-direction { width:108px; }
.claim-corr-table col.claim-corr-col-party { width:188px; }
.claim-corr-table col.claim-corr-col-document { width:160px; }
.claim-corr-table col.claim-corr-col-status { width:208px; }
.claim-corr-table td {
  padding:11px 16px;
  border-bottom:1px solid var(--rule-soft, var(--rule));
  vertical-align:top;
}
.claim-corr-table tr:last-child td { border-bottom:0; }
/* Subject = authored "Tag" (Geist 500 14/20 +2%, text/primary, D58). */
.claim-corr-subject-title {
  display:block;
  font-size:14px;
  line-height:20px;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.02em;
  color:var(--approved-text-primary);
}
/* Sub-lines = authored "Caption" (Geist 400 12/16, text/muted). */
.claim-corr-sub {
  display:block;
  margin-top:3px;
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-muted);
}
.claim-corr-party-line {
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-secondary);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.claim-corr-doc-link {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-secondary);
  min-width:0;
}
.claim-corr-doc-link > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.claim-corr-row { cursor:pointer; }
.claim-corr-row:hover td { background:var(--color-neutral-25); }


/* ============================================================
 * DS DROPDOWN PICKER PANELS — date picker / time picker (28 Aug 2026)
 * DS file 6XMIOaHX4cceZSlevY2b0N, Board / Dropdown 578:319 (date picker
 * 785:485, time picker 785:489, day-cell states 785:493, time-option
 * states 785:497). Panel contract per settled decision D1
 * (docs/plans/ds-dropdowns-dh-20260828.md): the NEW picker dropdowns adopt
 * the DS Elevation/200 surface — radius/md 8, 1px border/subtle, 24px
 * padding, 16px gap — DISTINCT from .menu-popover, which keeps its
 * DH-authored Elevation/400 menu geometry. Panels body-portal (D55) on the
 * --z-modal-popover band because their trigger fields live inside modals.
 * ============================================================ */
.dropdown-panel {
  position:fixed;
  display:flex;
  flex-direction:column;
  gap:var(--space-7);              /* DS spacing/lg 16 */
  padding:var(--space-9);          /* DS spacing/xl 24 */
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-role-md);
  box-shadow:var(--elevation-200);
  z-index:var(--z-modal-popover);
}
/* Picker-augmented field: the native input KEEPS the form value and typed
   entry (keyboard parity + honest touch fallback per the plan's variant
   inference); the trailing trigger opens the DS panel. The WebKit
   calendar/time indicator is hidden so the field carries ONE affordance. */
.picker-field { position:relative; display:flex; min-width:0; }
.picker-field > .input { flex:1 1 auto; min-width:0; padding-right:36px; }
.picker-field > .input::-webkit-calendar-picker-indicator { display:none; }
.picker-trigger {
  position:absolute;
  top:50%;
  right:5px;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:var(--radius-role-md);
  color:var(--approved-text-subtle);
}
.picker-trigger:hover { background:var(--hover-2); color:var(--approved-text-secondary); }
.picker-trigger:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
/* Date picker (DS 785:485, single variant): month head + chevrons,
   SUNDAY-FIRST sentence-case two-letter day heads (decision D2 — matches
   the shipped Calendar page week start; the DS heads' casing is kept and
   the Calendar page's uppercase treatment is NOT copied), day-cell states
   per 785:493, footer value left + Today link right. */
.date-picker-panel { width:352px; }
.date-picker-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
}
.date-picker-month-label {
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
}
.date-picker-nav { display:flex; gap:var(--space-1); }
.date-picker-nav-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:var(--radius-role-md);
  color:var(--approved-text-secondary);
}
.date-picker-nav-btn:hover { background:var(--hover-2); }
.date-picker-nav-btn:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.date-picker-grid { display:flex; flex-direction:column; gap:2px; }
.date-picker-dayheads,
.date-picker-week {
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:2px;
}
/* Sentence-case day heads — content casing, no text-transform (D04). */
.date-picker-dayhead {
  display:flex;
  align-items:center;
  justify-content:center;
  height:24px;
  font-size:var(--text-sm);
  color:var(--approved-text-muted);
}
.date-picker-day {
  display:flex;
  align-items:center;
  justify-content:center;
  height:36px;
  border-radius:var(--radius-role-md);
  font-size:var(--text-body);
  color:var(--approved-text-primary);
}
.date-picker-day:hover { background:var(--hover-2); }
.date-picker-day:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.date-picker-day.is-outside { color:var(--approved-text-subtle); }
/* DS today state: purple outline ring (785:493). */
.date-picker-day.is-today { box-shadow:inset 0 0 0 1px var(--action-dominant-bg); }
/* DS selected state: purple pill (action-dominant per the D26 precedent). */
.date-picker-day.is-selected {
  background:var(--action-dominant-bg);
  color:var(--button-text-on-color);
}
.date-picker-day:disabled { color:var(--approved-text-subtle); background:none; cursor:default; }
/* Time picker (DS 785:489, slot-list 12h variant per the plan's variant
   inference): 30-minute options with states per 785:497, footer value
   left + Now link right. */
.time-picker-panel { width:224px; }
.time-picker-list {
  display:flex;
  flex-direction:column;
  gap:2px;
  max-height:264px;
  overflow-y:auto;
}
.time-picker-option {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  min-height:34px;
  padding:0 10px;
  border-radius:var(--radius-role-md);
  font-size:var(--text-body);
  color:var(--approved-text-primary);
  text-align:left;
}
.time-picker-option:hover { background:var(--hover-2); }
.time-picker-option:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.time-picker-option.is-selected {
  background:var(--brand-subtle);
  color:var(--approved-text-brand);
  font-weight:var(--font-weight-medium);
}
/* DS Dropdown list (DH 398:27556 — the claim issues filter; the DS
   "Dropdown" container + "Dropdown Item"): 224 wide, radius/lg, 4px inset,
   2px gap, 1px border/subtle, Elevation/200; items 38 high, radius/md, 8px
   inset/gap, Geist 400 14/22 text/primary, trailing check when selected.
   Distinct from .menu-popover (DH row menus, D1) and from the picker
   panels (24/16 spacing) — one recipe for list-style dropdowns. */
.dropdown-list {
  position:absolute;
  z-index:var(--z-portal-menu);
  top:calc(100% + 4px);
  left:0;
  display:flex;
  flex-direction:column;
  gap:2px;
  width:224px;
  max-height:340px;
  overflow:auto;
  padding:var(--space-1);
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-role-lg);
  box-shadow:var(--elevation-200);
}
.dropdown-list.is-right-aligned { left:auto; right:0; }
/* A list that opens under a fixed-width trigger takes the trigger's width
   (issues workspace D13 — the 256 Workspace issue selector). */
.dropdown-list.is-trigger-width { width:100%; }
.dropdown-list-item {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:var(--space-3);
  min-height:38px;
  padding:var(--space-3);
  border-radius:var(--radius-role-md);
  font-size:var(--text-md);
  font-weight:var(--font-weight-regular);
  line-height:22px;
  color:var(--approved-text-primary);
  text-align:left;
}
.dropdown-list-item:hover { background:var(--hover-2); }
.dropdown-list-item:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
.dropdown-list-item.is-selected { background:var(--brand-subtle); color:var(--approved-text-brand); }
.dropdown-list-label { flex:1 1 auto; min-width:0; }
.dropdown-list-check { display:inline-flex; align-items:center; margin-left:auto; color:currentColor; }
.dropdown-list-divider { flex:0 0 auto; height:1px; margin:2px 0; background:var(--border-subtle); }
/* Shared picker footer — ONE recipe, both panels (value left, action
   link right: "Today" / "Now"). */
.picker-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
}
.picker-foot-value {
  font-size:var(--text-sm);
  color:var(--approved-text-secondary);
}
.picker-foot-link {
  font-size:var(--text-body);
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-brand);
  border-radius:var(--radius-role-sm);
}
.picker-foot-link:hover { text-decoration:underline; }
.picker-foot-link:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}


/* ============================================================
 * All-claims table widget (DH 724-3020) + filter drawer (737-3818)
 * UP10-UP14. The surface is a mounted widget on the CENTRAL recipe
 * (widget bg, radius/lg, --widget-shadow, no border — CS26 precedent;
 * the frame's grey border is deliberately not copied). The filter
 * drawer docks inside the widget on the right via the same in-widget
 * grid split the calendar day-agenda uses.
 * ============================================================ */
/* DC02 (directory-contacts slice): the Directory Contacts widget and the
   claim Contacts widget are further consumers of this ONE mounted-widget
   dock/surface recipe — selector lists, never copies. */
.claims-browser-surface,
.directory-browser-surface,
.claim-contacts-surface {
  /* The surface keeps the page canvas gutters the old canvas-table-shell
     carried. UP41 (Dan): the page body is an overflow:hidden flex column —
     the widget fills the available height and the TABLE scrolls
     internally with a sticky band (the pre-slice rail-shell behaviour the
     rework had dropped). */
  flex:1;
  min-height:0;
  margin:var(--canvas-gutter-top) var(--canvas-gutter-side);
  background:var(--widget-bg, var(--surface));
  border-radius:var(--radius-role-lg);
  box-shadow:var(--widget-shadow);
  min-width:0;
  display:flex;
  flex-direction:column;
}
/* IW35: inside .claim-tab-body the page frame is already supplied — the
   nested surface must not add a second inset (36 → 24). */
.claim-tab-body .claim-contacts-surface { margin:0; }
.claims-browser-head,
.browser-dock-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.claims-browser-head-titles,
.browser-dock-head-titles { min-width:0; }
.claims-browser-title,
.browser-dock-title { margin:0; }
/* 724:3032/3033 meta line: Caption/Strong 12 muted + Caption 12/16 subtle. */
.claims-browser-meta,
.browser-dock-meta {
  margin-top:2px;
  font-size:12px;
  line-height:16px;
  color:var(--approved-text-subtle);
}
.claims-browser-meta-strong,
.browser-dock-meta-strong {
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-muted);
}
/* 724:3034 controls cluster (follow-up-measured): icon pair 16 apart,
   ONE spacing/xl (24) gap to the button pair, buttons 12 apart. */
.claims-browser-controls,
.browser-dock-controls {
  display:flex;
  align-items:center;
  gap:24px;
  flex-shrink:0;
}
.claims-browser-controls-icons,
.browser-dock-controls-icons { display:flex; align-items:center; gap:16px; }
.claims-browser-controls-actions,
.browser-dock-controls-actions { display:flex; align-items:center; gap:12px; }

/* DC03: the split keeps TWO tracks in both states (a 0px right track while
   closed) so grid-template-columns can interpolate; the panel track clips
   its content while it slides. */
.claims-browser-layout,
.split-panel-layout {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 0px;
  flex:1;
  min-height:0;
  transition:grid-template-columns var(--split-motion-duration) var(--split-motion-easing);
}
.claims-browser-layout.is-split,
.split-panel-layout.is-split { grid-template-columns:minmax(0, 1fr) 360px; }
/* DC51 (tester on DC50): the ONE grid row is minmax(0,1fr), never auto — an
   auto row sizes to the tallest track, so a long pane/drawer (2,300px of
   filter sections on a claim) stretched the row and every table row with
   it (60px → 234px). With the row capped to the layout, the pane/drawer
   body scrolls (their bodies are already overflow-y:auto). */
.claims-browser-layout,
.split-panel-layout { grid-template-rows:minmax(0, 1fr); }
.claims-browser-layout > .split-panel,
.split-panel-layout > .split-panel { min-width:0; overflow:hidden; }
@media (prefers-reduced-motion: reduce) {
  .claims-browser-layout,
  .split-panel-layout { transition:none; }
}
.claims-browser-table-region { min-width:0; min-height:0; display:flex; flex-direction:column; }
.claims-browser-surface .claims-table-shell,
.directory-browser-surface .table-shell,
.claim-contacts-surface .table-shell { min-width:0; }
/* DC51: ContactsView wraps the surface in `.claim-contacts-view`; as a block it
   broke the flex chain from `.claim-tab-body`, so the surface sized to its
   content (852px in a 568px body, closed) and the tab body scrolled the
   whole widget instead of the table scrolling inside it (UP41). The wrapper
   is a flex column that fills the body; the body clips like the page does. */
.claim-tab-body > .claim-contacts-view { flex:1; min-height:0; min-width:0; display:flex; flex-direction:column; }
.claim-tab-body:has(> .claim-contacts-view) { overflow:hidden; }
.claims-browser-surface .claims-table-wrap,
.directory-browser-surface .table-wrap,
.claim-contacts-surface .table-wrap {
  width:100%;
  max-width:100%;
  /* UP41: the wrap is the vertical scroll host inside the widget. */
  flex:1;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
/* UP41: the band stays visible while rows scroll under it. */
.claims-browser-surface .claims-table thead th,
.directory-browser-surface .directory-table thead th,
.claim-contacts-surface .claim-contacts-table thead th {
  position:sticky;
  top:0;
  z-index:2;
}
/* 738:5888 next-action title: Geist 500 13 text/secondary. */
.claims-table td[data-col="nextAction"] .cell-strong.small {
  font-size:13px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-secondary);
}
/* 738:5876/5880: identifier and date cells are Geist Mono 400 11 muted. */
.claims-table td[data-col="lni"] .cell-mono,
.claims-table td[data-col="doi"] .cell-mono {
  font-size:11px;
  color:var(--approved-text-muted);
}
/* ---- Filter drawer (737-3818) ---- */
.claims-filter-drawer {
  display:flex;
  flex-direction:column;
  min-height:0;
  border-left:1px solid var(--rule);
  background:var(--widget-bg, var(--surface));
}
.claims-filter-drawer-head {
  padding:16px 16px 12px;
  border-bottom:1px solid var(--rule);
  display:grid;
  gap:8px;
}
.claims-filter-drawer-title-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
/* Drawer title: Geist 600->650 scale weight 16/100% -2% text/primary. */
.claims-filter-drawer-title-row h4 {
  margin:0;
  font-size:16px;
  line-height:16px;
  font-weight:var(--font-weight-semibold);
  letter-spacing:-0.02em;
  color:var(--approved-text-primary);
}
.claims-filter-drawer-state {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:13px;
  line-height:16px;
  color:var(--approved-text-secondary);
}
.claims-filter-clear-all {
  border:0;
  background:transparent;
  padding:0;
  font:inherit;
  font-weight:var(--font-weight-medium);
  color:var(--filter-active-text);
  cursor:pointer;
  flex-shrink:0;
}
.claims-filter-clear-all:hover { text-decoration:underline; }
.claims-filter-drawer-body { flex:1; min-height:0; overflow-y:auto; }
.claims-filter-section { border-bottom:1px solid var(--rule); padding:12px 16px; }
.claims-filter-section-head {
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  text-align:left;
}
/* Section heading: Tag style (Geist 500 14/20 +2%) — the shared card-title
   ramp; an APPLIED group takes the central applied-filter text colour
   (Dan, item 2) and shows its count badge. */
.claims-filter-section-title {
  flex:1;
  min-width:0;
  font-size:14px;
  line-height:20px;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.02em;
  color:var(--approved-text-primary);
}
.claims-filter-section.has-active .claims-filter-section-title { color:var(--filter-active-text); }
.claims-filter-section-head .lucide { color:var(--approved-text-muted); flex-shrink:0; }
.claims-filter-section-count {
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:var(--radius-role-full);
  background:var(--filter-active-bg);
  color:var(--filter-active-text);
  font-family:var(--font-mono);
  font-size:10px;
  line-height:18px;
  text-align:center;
  flex-shrink:0;
}
.claims-filter-options { display:grid; gap:10px; padding-top:12px; }
.claims-filter-option {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  line-height:16px;
  color:var(--approved-text-primary);
  cursor:pointer;
}
/* Filter/Checkbox atom (737-3818): 18x18 radius/sm, checked = the
   action-dominant purple with a white tick. First central instance of the
   DS checkbox atom; future consumers join .filter-checkbox. */
input.filter-checkbox {
  appearance:none;
  position:relative;
  width:18px;
  height:18px;
  margin:0;
  flex-shrink:0;
  /* UP31 (478:6831): the atom's border is border/strong. */
  border:1px solid var(--approved-border-strong);
  border-radius:var(--radius-role-sm);
  background:var(--surface);
  display:inline-grid;
  place-content:center;
  cursor:pointer;
}
input.filter-checkbox:checked {
  background:var(--action-dominant-bg);
  border-color:var(--action-dominant-bg);
}
/* UP37 (tester): the indeterminate (partial-selection) state renders the
   standard dash on the same purple fill — the appearance:none atom
   otherwise hides it entirely. */
input.filter-checkbox:indeterminate {
  background:var(--action-dominant-bg);
  border-color:var(--action-dominant-bg);
}
/* Selection glyphs own their geometry. Table-only-child centering deliberately
   uses display:block; never rely on the input remaining a grid container for
   its empty pseudo-element to acquire dimensions (DS 579:904). */
input.filter-checkbox::after {
  display:block;
  position:absolute;
  inset:0;
  margin:auto;
  pointer-events:none;
}
input.filter-checkbox:checked::after {
  content:"";
  width:10px;
  height:10px;
  background:var(--button-text-on-color);
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>') center / contain no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>') center / contain no-repeat;
}
/* Native indeterminate can coexist with checked: mixed must win and remove
   the check mask, not squeeze the tick into the dash's two-pixel height. */
input.filter-checkbox:indeterminate::after {
  content:"";
  width:10px;
  height:2px;
  border-radius:1px;
  background:var(--button-text-on-color);
  -webkit-mask:none;
  mask:none;
}
input.filter-checkbox:focus-visible {
  outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-inset);
}
/* UP42: the drawer foot (Reset/Apply) is removed — live-apply filters. */
/* Narrow widths: the split collapses to one column with the drawer ABOVE
   the table (a filters panel below a long table is unreachable). */
@media (max-width: 900px) {
  .claims-browser-layout.is-split { grid-template-columns:minmax(0, 1fr); }
  .claims-filter-drawer { order:-1; border-left:0; border-bottom:1px solid var(--rule); }
  .claims-browser-head { flex-wrap:wrap; }
  /* Narrow widths: the control cluster wraps (icons row / actions row)
     so New Claim stays fully inside the viewport. */
  .claims-browser-controls { flex-wrap:wrap; gap:12px; flex-shrink:1; min-width:0; }
}

/* ============================================================
 * Directory + claim Contacts slice (docs/plans/directory-contacts-dh-20260904.md)
 * Designer Pratishtha Purwar, file exh2dOCfyeTtv4UcEKDHS3, page "Directory &
 * Contacts". Chrome follows the shipped recipes (Dan D1); authored values
 * are cited by node id in the plan's ledger.
 * ============================================================ */
/* Generic in-widget split (DC02): the table region + a right column that
   holds EITHER the filter drawer or the preview pane. */
.split-panel-layout > .split-panel-table-region { min-width:0; min-height:0; display:flex; flex-direction:column; }
.directory-browser-surface .table-shell,
.claim-contacts-surface .table-shell { flex:1; min-height:0; display:flex; flex-direction:column; }
/* Category strip (380:2350 toolbar, authored 12/20 padding + 1px rule
   below): the central .filter-option pill recipe, single-select. */
/* V2 (DC50): the Directory category strip was removed (380-4425 has no
   strip); its recipe went with it. */
/* Rows: authored 70 high (16/12 cell padding), name Geist 500 14/18
   text/primary, org 14/18 text/secondary, primary contact 14/18, the
   "Last contact" line Caption 12/16 muted (380:2379-2391). */
.directory-table td,
.claim-contacts-table td { padding:16px 12px; vertical-align:top; }
.directory-table td:first-child,
.claim-contacts-table td:first-child { padding-left:16px; }
.directory-table td:last-child,
.claim-contacts-table td:last-child { padding-right:16px; }
.directory-table thead th:first-child,
.claim-contacts-table thead th:first-child { padding-left:16px; }
.directory-table thead th:not(:first-child),
.claim-contacts-table thead th:not(:first-child) { padding-left:12px; }
.directory-table tbody tr,
.claim-contacts-table tbody tr { cursor:pointer; }
.directory-table tbody tr:hover,
.claim-contacts-table tbody tr:hover { background:var(--hover); }
.directory-table tbody tr.is-selected,
.claim-contacts-table tbody tr.is-selected { background:var(--approved-bg-subtle); } /* node 6 relay: subtle neutral full-row highlight, no accent bar */
.directory-table tbody tr:focus-visible,
.claim-contacts-table tbody tr:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:-2px; }
.directory-cell-name,
.contacts-cell-name {
  font-size:14px;
  line-height:18px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
  /* DC51 (tester V4/V8): an unbroken token in a name (an email jammed into it)
     wraps inside the column like the plain cells do. */
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.directory-cell-org,
.contacts-cell-plain {
  font-size:14px;
  line-height:18px;
  color:var(--approved-text-secondary);
  /* V4 (DC50): long emails wrap inside their cell at 1280/1024 and in the split
     instead of painting over Phone. */
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.directory-cell-contact { font-size:14px; line-height:18px; color:var(--approved-text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.directory-cell-last-contact { margin-top:4px; font-size:12px; line-height:16px; color:var(--approved-text-muted); }
.directory-cell-claims { font-size:14px; line-height:18px; color:var(--approved-text-secondary); }
.claim-contacts-table .row-actions { display:flex; justify-content:flex-end; gap:4px; }
/* Tester finding 7b (DC27): hidden-until-hover actions stay FOCUSABLE
   (opacity, not visibility) so a closing modal can restore focus to its
   opener; hover, selection, focus-within and focus-visible reveal them. */
.claim-contacts-table .row-actions .btn { opacity:0; }
.claim-contacts-table tbody tr:hover .row-actions .btn,
.claim-contacts-table tbody tr.is-selected .row-actions .btn,
.claim-contacts-table tbody tr:focus-within .row-actions .btn,
.claim-contacts-table .row-actions .btn:focus-visible,
.claim-contacts-table .row-actions .btn.is-persistent { opacity:1; } /* node 5 relay: the open chevron is always visible */
/* node 5 relay (380:1344): authored Role 192 / Name 182 fixed, the rest proportional. */
.claim-contacts-table { table-layout:fixed; min-width:960px; }
.claim-contacts-col-role { width:192px; }
.claim-contacts-col-name { width:182px; }
.claim-contacts-col-org { width:22%; }
.claim-contacts-col-email { width:22%; }
.claim-contacts-col-phone { width:13%; }
.claim-contacts-col-actions { width:56px; } /* 8 + 32 trigger + 16 trailing gutter — proven by DC50 V4/V8 (no cell overflow, split included) */
.claim-contacts-gap { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.claim-contacts-gap-actions { display:inline-flex; gap:8px; flex-shrink:0; }
/* V6/V7/V8 (DC50, Dan): the 3-dot menu is the only per-row control; the column
   is fixed-width in every state so nothing sits in a blank column or overlaps. */
.claim-contacts-cell-actions { text-align:right; padding-left:8px !important; padding-right:16px !important; }
.claim-party-menu-anchor { position:relative; display:inline-flex; }
.claim-party-menu { min-width:220px; top:calc(100% + 4px); }
.claim-party-menu .menu-item { display:flex; align-items:center; gap:8px; width:100%; }
.claim-party-menu .menu-item:disabled { opacity:.5; cursor:not-allowed; }
/* DC42 (final tester I1): with the split open the table must FIT the left
   track — the 960 minimum is released and the lowest-priority column leaves
   (Phone on the claim tab, Linked claims in the Directory: both live in the
   open pane), so row actions stay reachable and nothing hides behind an
   unsignposted horizontal scroll. */
.split-panel-layout.is-split .claim-contacts-table,
.split-panel-layout.is-split .directory-table { min-width:0; }
.split-panel-layout.is-split .claim-contacts-col-phone,
.split-panel-layout.is-split .directory-col-claims { width:0; }
/* DC50 V8: the cells COLLAPSE in place rather than leave the row. Under
   table-layout:fixed a display:none header cell shifts every later cell one
   column left, so the Contacts actions header fell into the 0-width Phone
   slot and the 3-dot trigger overflowed its cell. */
/* DC51: `white-space:nowrap` is load-bearing — the plain-cell recipe wraps
   anywhere, and at 0 width a phone number broke one character per line and
   stretched every row to 234px (the tester's V4/V8 finding). */
.split-panel-layout.is-split .claim-contacts-cell-phone,
.split-panel-layout.is-split .directory-cell-claims-col { width:0; max-width:0; padding:0 !important; border:0; overflow:hidden; visibility:hidden; white-space:nowrap; }
/* Preview pane (380:3354): 360 wide; head 60 (16/24) with title Geist 500
   18/26 + category chip + close; meta strip 46 (12/24) on canvas with
   22-high pills; segmented tabs (shared CountTabs) on 12/24; body 8/24/24
   with 24 gap; section head 28 with an Edit action; rows 32 high, label
   110 + value, 1px border/subtle between rows. Chrome per D1: the drawer's
   border-left rule on the widget surface, no overlay shadow. */
.contact-pane {
  display:flex;
  flex-direction:column;
  min-height:0;
  border-left:1px solid var(--rule);
  background:var(--widget-bg, var(--surface));
}
.contact-pane-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:60px;
  padding:16px 24px;
}
.contact-pane-title { display:flex; align-items:center; gap:8px; min-width:0; }
.contact-pane-title h4 {
  margin:0;
  font-size:18px;
  line-height:26px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-primary);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.contact-pane-head-actions { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.contact-pane-strip {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  min-height:46px;
  padding:12px 24px;
  background:var(--canvas-bg);
}
.contact-pane-pill {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:22px;
  padding:4px 10px;
  border-radius:var(--radius-role-full);
  background:var(--surface);
  box-shadow:var(--ring-light);
  font-size:10px;
  line-height:14px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-muted);
  text-decoration:none;
  max-width:100%;
}
.contact-pane-pill span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-pane-pill .lucide { color:var(--action-dominant-bg); flex-shrink:0; }
.contact-pane-tabs { padding:12px 24px; }
.contact-pane-body { flex:1; min-height:0; overflow-y:auto; padding:8px 24px 24px; display:flex; flex-direction:column; gap:24px; }
.contact-pane-section { display:flex; flex-direction:column; gap:4px; }
.contact-pane-section-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:28px; }
.contact-pane-section-title { font-size:13px; line-height:17px; font-weight:var(--font-weight-medium); color:var(--approved-text-primary); }
.contact-pane-row {
  display:grid;
  grid-template-columns:110px minmax(0, 1fr);
  gap:12px;
  min-height:32px;
  padding:8px 0;
  font-size:13px;
  line-height:16px;
}
.contact-pane-row + .contact-pane-row { border-top:1px solid var(--border-subtle); }
.contact-pane-row-label { color:var(--approved-text-muted); }
.contact-pane-row-value { color:var(--approved-text-primary); min-width:0; overflow-wrap:anywhere; }
.contact-pane-row-value .muted { color:var(--approved-text-muted); }
.contact-pane-link {
  border:0;
  background:transparent;
  padding:0;
  font:inherit;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-brand);
  cursor:pointer;
  text-align:left;
}
.contact-pane-link:hover { text-decoration:underline; }
/* Linked-claim card (380:3800 "Cart": 312 wide, radius/md, 1px rule, 16 pad):
   claimant Geist 400 18/28 + role chip, claim id line 13/16 muted, Open claim
   link 13/500 brand, plus the claim note. */
.contact-claim-card {
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px;
  border-radius:var(--radius-role-md);
  box-shadow:var(--ring-light);
  background:var(--surface);
}
.contact-claim-card-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.contact-claim-card-title { font-size:18px; line-height:28px; color:var(--approved-text-primary); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-claim-card-meta { font-size:13px; line-height:16px; color:var(--approved-text-muted); }
.contact-claim-card-note { font-size:13px; line-height:18px; color:var(--approved-text-secondary); white-space:pre-wrap; }
.contact-claim-card-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.contact-pane-foot { padding:12px 16px; border-top:1px solid var(--rule); display:flex; justify-content:flex-end; }
/* History (380:4264 "Communication Log"): entries with title 13/500
   secondary + mono 10 timestamp, and the mono channel code badge (content
   codes may read uppercase — D66 exception, no text-transform). */
.contact-history { display:flex; flex-direction:column; border-radius:var(--radius-role-lg); box-shadow:var(--ring-light); overflow:hidden; }
.contact-history-head {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:16px;
  padding:8px 16px;
  background:var(--canvas-bg);
  font-size:11px;
  line-height:14px;
  font-weight:var(--font-weight-medium);
  color:var(--approved-text-muted);
}
.contact-history-entry {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:16px;
  align-items:center;
  padding:14px 16px;
  text-align:left;
  border:0;
  background:transparent;
  font:inherit;
  cursor:pointer;
}
.contact-history-entry + .contact-history-entry { border-top:1px solid var(--border-subtle); }
.contact-history-entry:hover { background:var(--hover); }
.contact-history-entry-title { font-size:13px; line-height:17px; font-weight:var(--font-weight-medium); color:var(--approved-text-secondary); }
.contact-history-entry-when { margin-top:4px; font-family:var(--font-mono); font-size:10px; line-height:13.5px; color:var(--approved-text-muted); }
.contact-history-code {
  display:inline-flex;
  align-items:center;
  padding:2px 4px;
  border-radius:var(--radius-role-md);
  background:var(--surface-3);
  font-family:var(--font-mono);
  font-size:11px;
  line-height:14px;
  color:var(--approved-text-secondary);
}
/* Dan 8 September: keep the ordinary textarea recipe, fixed at two lines. */
.claim-note-field .textarea,
.claim-note-field textarea {
  min-height:0;
  resize:none;
  overflow-y:auto;
}
/* DC26 (380:2087 expanded row): the Selected contact card. */
.contact-pick-card { padding:8px 16px; border-radius:var(--radius-role-md); box-shadow:var(--ring-light); background:var(--surface); }
.contact-pick-card .contact-pane-section-title { display:block; padding:8px 0 4px; }
.claim-note-field .field-hint { color:var(--approved-text-muted); }
/* Shared contact type-ahead (DC12; authored field-searching 395:1336 —
   44-high input row, 46-high result rows). The listbox is the DS dropdown
   panel surface with a compact list padding. */
.typeahead-field { position:relative; display:flex; align-items:center; min-width:0; }
.typeahead-field-icon { position:absolute; left:10px; color:var(--approved-text-muted); pointer-events:none; }
.typeahead-field .typeahead-input { flex:1 1 auto; min-width:0; padding-left:32px; }
.typeahead-panel {
  gap:0;
  padding:4px;
  max-height:min(360px, calc(100vh - 32px));
  overflow-y:auto;
}
.typeahead-option {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto auto;
  align-items:center;
  gap:12px;
  width:100%;
  min-height:46px;
  padding:6px 10px;
  border:0;
  border-radius:var(--radius-role-md);
  background:transparent;
  text-align:left;
  font:inherit;
  color:var(--approved-text-primary);
  cursor:pointer;
}
.typeahead-option.is-active,
.typeahead-option:hover { background:var(--hover-2); }
.typeahead-option.is-chosen { color:var(--approved-text-brand); }
.typeahead-option-main { display:flex; flex-direction:column; gap:2px; min-width:0; }
.typeahead-option-name { display:flex; align-items:center; gap:8px; min-width:0; font-size:14px; line-height:22px; font-weight:var(--font-weight-regular); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } /* node 2 relay: result-name Body/Small 14/22 */
.typeahead-option-badge { display:inline-flex; align-items:center; min-height:20px; padding:2px 8px; border-radius:var(--radius-role-sm); box-shadow:var(--ring-light); background:var(--surface-2); font-size:11px; line-height:16px; color:var(--approved-text-secondary); flex-shrink:0; } /* node 2 relay: claim-badge 20 high 2/8 radius/sm on our mono badge recipe (raw mint not minted) */
.typeahead-option-secondary { font-size:12px; line-height:16px; color:var(--approved-text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.typeahead-option-meta { font-size:12px; line-height:16px; color:var(--approved-text-muted); white-space:nowrap; }
.typeahead-option-check { color:var(--approved-text-brand); }
.typeahead-option-create { grid-template-columns:auto minmax(0, 1fr); color:var(--approved-text-brand); }
.typeahead-status { padding:12px 10px; font-size:13px; line-height:16px; color:var(--approved-text-muted); }
/* Add-from-Directory selection rows (D6 multi-select): each chosen contact
   expands to its summary + Role on the claim + Claim note. */
.contact-pick-list { display:flex; flex-direction:column; gap:12px; margin-top:12px; }
.contact-pick-row { display:flex; flex-direction:column; gap:12px; padding:12px 16px; border-radius:var(--radius-role-md); box-shadow:var(--ring-light); background:var(--surface); }
.contact-pick-row-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.contact-relationship-head { align-items:center; flex-wrap:wrap; }
.contact-relationship-identity { flex:1; min-width:0; white-space:normal; overflow-wrap:anywhere; }
.contact-pick-row-name { font-size:14px; line-height:18px; font-weight:var(--font-weight-medium); color:var(--approved-text-primary); }
.contact-pick-row-meta { margin-top:2px; font-size:12px; line-height:16px; color:var(--approved-text-muted); }
.contact-pick-row-fields { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:12px; }
.contact-pick-row-fields .claim-note-field { grid-column:1 / -1; }
/* Per-section search inside the shared filter drawer (I380:4665;131:105:
   336x36, radius/md, 1px rule) and per-option counts (129:25). */
.claims-filter-search {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:0 8px;
  border:1px solid var(--rule);
  border-radius:var(--radius-role-md);
  background:var(--surface);
  color:var(--approved-text-muted);
}
/* V1 (Dan visual round, DC50): the generic search-input recipe painted its own
   1px box INSIDE the section search box ("box within a box"); the section
   search is ONE flat control (380-4425). */
.claims-filter-search .claims-filter-search-input { flex:1; min-width:0; border:0; box-shadow:none; border-radius:0; padding:0; min-height:0; height:auto; background:transparent; font:inherit; font-size:13px; line-height:16px; color:var(--approved-text-primary); outline:none; }
/* DC51 (tester V1): the focus ring belongs to the ONE flat control — the
   wrapper — never to the inner input (a ring inside the box read as a box
   within a box again). */
.claims-filter-search .claims-filter-search-input:focus,
.claims-filter-search .claims-filter-search-input:focus-visible,
.contact-list-search .contact-list-search-input:focus,
.contact-list-search .contact-list-search-input:focus-visible { outline:none; }
.claims-filter-search:focus-within,
.contact-list-search:focus-within { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-inset); }
.claims-filter-option-count { margin-left:auto; font-size:12px; line-height:16px; color:var(--approved-text-muted); }
.claims-filter-option.is-empty { color:var(--approved-text-muted); cursor:default; }
/* Import preview table + mapping selects (DC15). */
.contact-import-mapping { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:12px; }
.contact-import-preview { max-height:280px; overflow:auto; border-radius:var(--radius-role-md); box-shadow:var(--ring-light); }
.contact-import-preview table { width:100%; border-collapse:collapse; font-size:12px; line-height:16px; }
.contact-import-preview th,
.contact-import-preview td { padding:6px 10px; text-align:left; white-space:nowrap; border-bottom:1px solid var(--border-subtle); }
.contact-import-preview th { position:sticky; top:0; background:var(--approved-bg-subtle); font-weight:var(--font-weight-medium); color:var(--approved-text-muted); }
.contact-import-summary { display:flex; flex-direction:column; gap:4px; font-size:13px; line-height:16px; }
/* Directory contact modal sections (380:4817 Filled): titled groups with
   a two-column field grid. */
.contact-form-section { display:flex; flex-direction:column; gap:12px; }
.contact-form-content { border:0; padding:0; margin:0; min-width:0; }
.contact-form-section + .contact-form-section { margin-top:16px; padding-top:16px; border-top:1px solid var(--border-subtle); } /* node 3 relay: sections at spacing/lg with a hairline divider */
/* DC28 (node 4 relay, Dan recommendation): the Edit modal footer's left
   "danger" slot carries Archive contact as a destructive TERTIARY. */
.btn-tertiary.is-destructive { color:var(--button-destructive-bg); }
.btn-tertiary.is-destructive:hover { background:var(--critical-soft); color:var(--button-destructive-bg); }
.modal-foot .modal-foot-start { margin-right:auto; }
.contact-form-section-title { font-size:13px; line-height:17px; font-weight:var(--font-weight-medium); color:var(--approved-text-primary); }
.contact-form-grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:12px 16px; }
.contact-form-grid-thirds { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.contact-form-grid .field.full { grid-column:1 / -1; }
.contact-form-requirement { font-size:12px; line-height:16px; color:var(--approved-text-muted); }
.contact-form-requirement.is-unmet { color:var(--critical); }
/* DC51 (tester V4/V8 at 1024): with the 248px sidebar a 1024 viewport leaves
   ~344px for the table beside a 360px pane — no five-column table fits that.
   Below 1100px the contact surfaces STACK (the calendar's planner precedent):
   the table keeps the top track, the pane/drawer takes a capped bottom track
   and scrolls inside it. */
@media (max-width: 1100px) {
  /* DC52 (tester on DC51): a capped bottom track left the pane body 32–45px
     tall at 1024×900. Stacked, the widget is allowed its natural height and
     the PAGE scrolls (the calendar's stacked planner behaviour): the table
     shows every row, the pane/drawer sits below it at full height. */
  .claim-tab-body:has(> .claim-contacts-view):has(.split-panel-layout.is-split) { overflow:auto; }
  .claim-tab-body > .claim-contacts-view:has(.split-panel-layout.is-split),
  .directory-browser-surface:has(.split-panel-layout.is-split) { flex:none; }
  .app-page-body:has(.directory-browser-surface .split-panel-layout.is-split) { overflow:auto; }
  .claim-contacts-surface .split-panel-layout.is-split,
  .directory-browser-surface .split-panel-layout.is-split { grid-template-columns:minmax(0, 1fr); grid-template-rows:auto auto; flex:none; }
  .claim-contacts-surface .split-panel-layout.is-split > .split-panel,
  .directory-browser-surface .split-panel-layout.is-split > .split-panel { order:1; border-left:0; border-top:1px solid var(--rule); }
  .claim-contacts-surface .split-panel-layout.is-split .table-wrap,
  .directory-browser-surface .split-panel-layout.is-split .table-wrap { flex:none; overflow-y:visible; }
  .claim-contacts-surface .split-panel-layout.is-split .claim-contacts-cell-phone,
  .directory-browser-surface .split-panel-layout.is-split .directory-cell-claims-col { width:auto; max-width:none; padding:16px 12px !important; overflow:visible; visibility:visible; white-space:normal; }
  /* the closed-state column widths return with the columns (an `auto` track in
     the fixed layout took only the leftover and the mono phone overflowed it) */
  .claim-contacts-surface .split-panel-layout.is-split .claim-contacts-col-phone { width:13%; }
  .directory-browser-surface .split-panel-layout.is-split .directory-col-claims { width:17%; }
  /* Stacked, the table has the full width again and keeps the closed-state
     960 floor (it scrolls sideways inside the wrap exactly as the closed
     table does at this width) — every column, Phone included, is back. */
  .claim-contacts-surface .split-panel-layout.is-split .claim-contacts-table,
  .directory-browser-surface .split-panel-layout.is-split .directory-table { min-width:960px; }
}
@media (max-width: 900px) {
  .split-panel-layout.is-split { grid-template-columns:minmax(0, 1fr); }
  .split-panel-layout > .split-panel { order:-1; border-left:0; border-bottom:1px solid var(--rule); }
  .contact-form-grid,
  .contact-pick-row-fields { grid-template-columns:minmax(0, 1fr); }
}

/* ============================================================
 * WIDGET-SURFACE BOTTOM-RADIUS GUARD (standard, D57, hardened D59)
 * Every mounted widget surface is radius/lg; its LAST content block clips
 * to that radius so square inner children (tables, rows, footers) can never
 * break the corners. New widget surfaces join this selector list; overlays
 * inside a widget must follow the overlay stacking principle (portal),
 * never rely on surface overflow. The radii carry !important because this
 * is a terminal invariant: end-of-sheet order only wins equal-specificity
 * ties, and a higher-specificity chrome-neutralize rule silently beat the
 * guard once (22 Aug 2026). overflow stays overridable so a scrollable
 * last block may re-declare overflow-x:auto AFTER this rule — any
 * non-visible overflow still clips to the guarded radius. Verified by
 * verify-claim-screens-ui corner checks (radius AND overflow, explicit
 * parentheses — a `&&/||` precedence bug once let a broken radius pass).
 * ============================================================ */
.claim-documents-surface > :last-child,
.claim-corr-surface > :last-child,
.claim-worklist-issues > :last-child,
.claim-issues-pane > :last-child,
.claims-browser-surface > :last-child,
.directory-browser-surface > :last-child,
.claim-contacts-surface > :last-child,
.my-work-agenda-surface > :last-child,
.claim-sticky-note > :last-child,
/* Pinned documents R6: the rail widget is a mounted widget surface. */
.pinned-documents-widget > :last-child {
  border-bottom-left-radius:var(--radius-role-lg) !important;
  border-bottom-right-radius:var(--radius-role-lg) !important;
  overflow:hidden;
}
/* D59 scroll exception (see guard comment): the correspondence table pans
   horizontally below its 840px column budget; overflow-x:auto still clips
   to the guarded radius. Declared after the guard so the tie resolves to
   panning. */
.claim-corr-surface > .claim-corr-wrap {
  overflow-x:auto;
  overflow-y:hidden;
}
/* Same exception: the claims layout's table wrap pans horizontally under
   its 1340px column budget; clipping stays on the guarded surface child. */
.claims-browser-surface .claims-table-wrap {
  overflow-x:auto;
}

/* ── V10/V15 (DC50, 380:2087): shared contact-list row recipe ──────────────
   One bordered stack: a flat search cap, rows separated by hairlines, each
   row [checkbox] [Category chip] "Name | Organisation" on ONE line; a ticked
   row expands in place to the Selected-contact card (left) and Role + Claim
   note (right). The typeahead's compact variant reuses the one-line text. */
.contact-list { display:flex; flex-direction:column; min-height:0; }
.contact-list-search { display:flex; align-items:center; gap:8px; min-height:42px; padding:0 12px; border:1px solid var(--rule); border-radius:var(--radius-role-md) var(--radius-role-md) 0 0; background:var(--surface); color:var(--approved-text-muted); }
.contact-list-search .contact-list-search-input { flex:1; min-width:0; border:0; box-shadow:none; border-radius:0; padding:0; min-height:0; height:auto; background:transparent; font:inherit; font-size:14px; line-height:18px; color:var(--approved-text-primary); outline:none; }
.contact-list-rows { border:1px solid var(--rule); border-top:0; border-radius:0 0 var(--radius-role-md) var(--radius-role-md); background:var(--surface); max-height:min(56vh, 520px); overflow:auto; }
.contact-list-row { border-bottom:1px solid var(--rule); }
.contact-list-row:last-child { border-bottom:0; }
.contact-list-row-head { display:flex; align-items:center; gap:8px; min-height:52px; padding:0 12px; }
.contact-list-row-head .filter-checkbox { flex-shrink:0; }
.contact-list-row-text { flex:1; min-width:0; display:block; text-align:left; border:0; background:transparent; padding:0; font:inherit; font-size:14px; line-height:18px; color:var(--approved-text-primary); cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-list-row-sep { color:var(--approved-text-muted); }
.contact-list-row.is-selected .contact-list-row-head { background:var(--approved-bg-subtle); }
.contact-list-row-body { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:12px; padding:12px 12px 16px 38px; }
.contact-list-row-fields { display:grid; gap:12px; align-content:start; }
.contact-list-row-detail { padding:0 12px 16px; }
.contact-list-results .typeahead-option { border-radius:0; border-bottom:1px solid var(--rule); }
.contact-list-empty { padding:16px 12px; font-size:13px; line-height:16px; color:var(--approved-text-muted); }
.contact-list-foot { display:flex; justify-content:flex-start; padding-top:12px; }
.typeahead-option.is-compact { grid-template-columns:minmax(0, 1fr) auto; min-height:40px; }
.typeahead-option.is-compact .typeahead-option-name { line-height:18px; }
.typeahead-option.is-compact .contact-list-row-text { cursor:inherit; }
/* V14 (DC50): the native file control gives way to the standard button recipe,
   vertically centred in its row. */
.contact-import-file { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.contact-import-file-row { display:flex; align-items:center; gap:10px; min-height:32px; }
.contact-import-file-name { font-size:13px; line-height:16px; color:var(--approved-text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
