/* =============================================================
   saaha-base.css  —  Saaha Fabric OS · ROOT BASE (v2, brand-per-file)
   Compiled from tokens/saaha.tokens.json. DO NOT hand-edit values; edit the
   token file and recompile. See RECONCILIATION_REPORT.md + CLAUDE.md.

   MODE MODEL (v2): modes are LIGHT / DARK and REGION-SCOPABLE.
     :root, [data-mode="light"]   = light contract (default + re-assertable)
     [data-mode="dark"]           = dark contract
   Both are plain attribute selectors and custom props inherit, so a mode set
   on ANY element themes that subtree — a dark sidebar can live in a light page
   (the "hybrid"). No third mode: hybrid = composition.

   BRAND is the FILE, not a mode key. This file is Saaha only. Innovo / Army are
   separate brand-delta files authored in the MSGP project (their collapsed
   values were set aside in migration/innovo-army-delta-input.json).

   DEPRECATION WINDOW: the legacy compound-mode + [data-theme] selectors are kept
   aliased onto light/dark for one release so existing call sites keep resolving.
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  /* Primitives · Saaha color */
  --saaha-alpha-black-10: rgba(0,0,0,0.1);
  --saaha-alpha-black-05: rgba(0,0,0,0.05);
  --saaha-alpha-black-08: rgba(0,0,0,0.08);
  --saaha-alpha-black-25: rgba(0,0,0,0.25);
  --saaha-alpha-black-50: rgba(0,0,0,0.5);
  --saaha-alpha-black-75: rgba(0,0,0,0.75);
  --saaha-alpha-teal-10: rgba(13,115,119,0.1);
  --saaha-alpha-teal-20: rgba(13,115,119,0.2);
  --saaha-alpha-violet-15: rgba(107,91,201,0.15);
  --saaha-alpha-white-08: rgba(255,255,255,0.078);
  --saaha-alpha-white-12: rgba(255,255,255,0.12);
  --saaha-alpha-white-16: rgba(255,255,255,0.161);
  --saaha-alpha-white-28: rgba(255,255,255,0.278);
  --saaha-base-black: #000000;
  --saaha-base-white: #FFFFFF;
  --saaha-gold-700: #B89100; /* promoted from army-gold-700 during v2 migration — value unchanged */
  --saaha-alpha-white-14: rgba(255,255,255,0.14);
  --saaha-alpha-teal-500-14: rgba(58,167,170,0.14);
  --saaha-alpha-teal-500-10: rgba(58,167,170,0.10);
  --saaha-alpha-white-72: rgba(255,255,255,0.72);
  --saaha-alpha-white-65: rgba(245,243,238,0.65);
  --saaha-alpha-white-10: rgba(255,255,255,0.10);
  --saaha-alpha-white-16: rgba(255,255,255,0.16);
  --saaha-alpha-teal-700-50: rgba(13,115,119,0.5);
  --saaha-olive-500: #8B9B7A;
  --saaha-gray-400: #A0AAB8; /* completes gray ramp; skeleton use */
  --saaha-coral-100: #FAE9DE;
  --saaha-coral-300: #F3C3A5;
  --saaha-coral-500: #E89A6F;
  --saaha-coral-600: #CD8157;
  --saaha-coral-700: #A86642;
  --saaha-gray-100: #EDF2F7;
  --saaha-gray-200: #E2E8F0;
  --saaha-gray-300: #CBD5E0;
  --saaha-gray-500: #718096;
  --saaha-ink-600: #4A5568;
  --saaha-ink-700: #2D3748;
  --saaha-navy-600: #3A4762;
  --saaha-navy-700: #25304A;
  --saaha-navy-800: #1A2332;
  --saaha-navy-900: #0F1620;
  --saaha-navy-950: #0A101A;
  --saaha-parchment-100: #F7F5F0;
  --saaha-parchment-200: #EFECE3;
  --saaha-sage-100: #EEF1E8;
  --saaha-sage-300: #C4CEB3;
  --saaha-sage-500: #8B9B7A;
  --saaha-sage-600: #6D7D5E;
  --saaha-sage-800: #47543C;
  --saaha-sand-100: #F5EDD7;
  --saaha-sand-300: #E2CE97;
  --saaha-sand-500: #C4A35A;
  --saaha-sand-600: #A88A45;
  --saaha-sand-800: #7A6430;
  --saaha-slate-200: #D8DEE8;
  --saaha-slate-300: #94A3B8;
  --saaha-slate-400: #9CA3AF;
  --saaha-slate-450: #A4AEC2;
  --saaha-slate-500: #6B7280;
  --saaha-slate-550: #7B8699;
  --saaha-slate-600: #687083;
  --saaha-slate-700: #5A6576;
  --saaha-status-danger: #C53030;
  --saaha-status-danger-bright: #F56565;
  --saaha-status-danger-deep: #9B2C2C;
  --saaha-status-success: #2F855A;
  --saaha-status-success-bright: #48BB78;
  --saaha-status-warning: #B7791F;
  --saaha-status-warning-bright: #D69E2E;
  --saaha-status-warning-deep: #975A16;
  --saaha-teal-100: #E0F0F1;
  --saaha-teal-200: #5EEAD4;
  --saaha-teal-300: #9CD1D3;
  --saaha-teal-400: #2DD4BF;
  --saaha-teal-500: #3AA7AA;
  --saaha-teal-600: #1A8A8E;
  --saaha-teal-700: #0D7377;
  --saaha-teal-800: #0A5C5F;
  --saaha-teal-900: #062E2F;
  --saaha-violet-100: #E8E5F5;
  --saaha-violet-300: #D2CDE8;
  --saaha-violet-500: #6B5BC9;
  --saaha-violet-700: #4C3F8B;

  /* Primitives · Vendor (third-party model-vendor brand marks — NON-SEMANTIC; never themed, never a UI role) */
  --vendor-openai: #10B981;
  --vendor-anthropic: #D97757;
  --vendor-google: #4285F4;
  --vendor-meta: #1877F2;
  --vendor-mistral: #FA5C2A;
  --vendor-cohere: #39594D;

  /* Primitives · Radius */
  --radius-lg: 10px;
  --radius-md: 6px;
  --radius-pill: 999px;
  --radius-sm: 4px;
  --radius-xl: 14px;
  --radius-xs: 2px;

  /* Semantic · Interactive control radius (single knob for buttons, inputs,
     selects, toolbar controls). Brands retheme this; true pills use the pill
     token and are unaffected. Default = Saaha 6px. */
  --control-radius: var(--radius-md);
  --control-radius-pill: var(--radius-pill);

  /* Primitives · Spacing (4pt multiplier scale + 2px sub-grid) */
  --space-0: 0px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-9: 36px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-0-5: 2px;
  --space-1-5: 6px;
  --space-2-5: 10px;
  --space-3-5: 14px;
  --space-4-5: 18px;

  /* Type */
  --font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --font-size-body: 15px;
  --font-size-display: 56px;
  --font-size-h1: 40px;
  --font-size-h2: 30px;
  --font-size-h3: 22px;
  --font-size-h4: 18px;
  --font-size-micro: 11px;
  --font-size-small: 13px;
  --lh-normal: 1.5;
  --lh-relaxed: 1.65;
  --lh-snug: 1.3;
  --lh-tight: 1.15;
  --ls-caps: 0.09em;
  --ls-normal: 0em;
  --ls-snug: -0.01em;
  --ls-tight: -0.02em;
  --ls-wide: 0.04em;
  --weight-black: 800;
  --weight-bold: 700;
  --weight-medium: 500;
  --weight-regular: 400;
  --weight-semibold: 600;

  /* Brand-fixed · Control sizes (semantic.size.control-*) */
  --size-control-sm: var(--space-8);
  --size-control-compact: var(--space-9);
  --size-control-default: var(--space-10);

  /* Brand-fixed · Border widths */
  --border-thin: 1px;
  --border-med: 1.5px;
  --border-thick: 2px;

  /* Brand-fixed · Motion */
  --dur-fast: 120ms;
  --dur-med: 200ms;
  --dur-slow: 320ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-emphasized: cubic-bezier(0.3, 0, 0, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);

  /* Brand-fixed · Elevation */
  --shadow-xs: 0 1px 2px rgba(15,22,32,0.06);
  --shadow-sm: 0 2px 4px rgba(15,22,32,0.06), 0 1px 2px rgba(15,22,32,0.04);
  --shadow-md: 0 4px 12px rgba(15,22,32,0.08), 0 2px 4px rgba(15,22,32,0.04);
  --shadow-lg: 0 12px 32px rgba(15,22,32,0.12), 0 4px 8px rgba(15,22,32,0.06);
  --shadow-focus: 0 0 0 3px rgba(13,115,119,0.28);

  /* v2 fold — inverse-panel family: MODE-INVARIANT fixed-dark chrome (:root only; never flips) */
  --panel-inverse-bg: var(--saaha-navy-800);
  --panel-inverse-bg-deep: var(--saaha-navy-900);
  --panel-inverse-bg-rail: var(--saaha-navy-700);
  --panel-inverse-fg: var(--saaha-parchment-100);
  --panel-inverse-fg-strong: var(--saaha-base-white);
  --panel-inverse-accent: var(--saaha-teal-300);
  --panel-inverse-muted: var(--saaha-slate-450);
  --panel-inverse-faint: var(--saaha-slate-550);
  --panel-inverse-muted-alpha: var(--saaha-alpha-white-72);
  --panel-inverse-faint-alpha: var(--saaha-alpha-white-65);
  --panel-inverse-hover: var(--saaha-alpha-white-08);
  --panel-inverse-divider: var(--saaha-alpha-white-10);
  --panel-inverse-divider-strong: var(--saaha-alpha-white-16);
  --panel-inverse-icon-border: var(--saaha-alpha-teal-700-50);

  /* Component tier (tier 3) — defaults to brand-invariant; a brand delta MAY reshape */
  --btn-radius: var(--radius-md);
  --btn-border-width: var(--border-med);

/* Legacy primitive aliases (deprecated) */
  --saaha-parchment: var(--saaha-parchment-100);
  --saaha-parchment-2: var(--saaha-parchment-200);
  --saaha-ink: var(--saaha-ink-700);
  --saaha-ink-mute: var(--saaha-ink-600);
  --saaha-gradient: var(--gradient-brand);
  --saaha-gradient-soft: linear-gradient(95deg, #0D7377 0%, #A88A45 55%, #D16238 100%);

  /* Legacy semantic aliases (deprecated → new roles) */
  --fg-1: var(--text-primary);
  --fg-2: var(--text-body);
  --fg-3: var(--text-muted);
  --fg-4: var(--text-faint);
  --fg-inverse: var(--text-inverse);
  --fg-on-brand: var(--text-on-brand);
  --interactive: var(--action-primary);
  --interactive-hover: var(--action-primary-hover);
  --interactive-subtle: var(--action-primary-subtle);
  --color-brand: var(--brand-default);
  --color-brand-hover: var(--brand-hover);
  --color-brand-active: var(--brand-active);
  --color-accent-sand: var(--brand-accent-sand);
  --color-accent-coral: var(--brand-accent-coral);
  --color-success: var(--status-success);
  --color-warning: var(--status-warning);
  --color-danger: var(--status-danger);
  --color-info: var(--status-info);
  --color-state-allowed: var(--state-allowed);
  --color-state-denied: var(--state-denied);
  --color-state-pending: var(--state-pending);
  --color-state-review: var(--state-review);
  --border-1: var(--border-faint);
  --border-2: var(--border-default);
  --status-danger-text: var(--saaha-status-danger-deep);
  --tone-federal: var(--saaha-violet-500);
  --tone-federal-bg: var(--saaha-violet-100);
  --tone-federal-border: var(--saaha-violet-300);
  --tone-federal-fg: var(--saaha-violet-700);
  /* Categorical identity ramp — sibling-distinguishing marks (avatars, operator groups, chart series). Brand-invariant. */
  --categorical-1: var(--saaha-sand-500);
  --categorical-2: var(--saaha-coral-500);
  --categorical-3: var(--saaha-navy-800);
  --categorical-4: var(--saaha-teal-700);
  --categorical-5: var(--saaha-gold-700);
  --categorical-6: var(--saaha-sage-500);
}

/* ---- LIGHT contract (default at :root; region-re-assertable) ----
   Legacy aliases folded into the selector list for the deprecation window. */
:root,
[data-mode="light"],
[data-brand="saaha"][data-mode="warp-weft"], [data-mode="saaha-warp-weft"],
[data-theme="warp-weft"] {
  --status-danger-text: var(--saaha-status-danger-deep);
  --tone-federal: var(--saaha-violet-500);
  --tone-federal-bg: var(--saaha-violet-100);
  --tone-federal-border: var(--saaha-violet-300);
  --tone-federal-fg: var(--saaha-violet-700);
  --action-primary: var(--saaha-teal-700);
  --action-primary-hover: var(--saaha-teal-800);
  --action-primary-subtle: var(--saaha-teal-100);
  --action-primary-text: var(--saaha-base-white);
  --avatar-coral: var(--categorical-2);
  --avatar-fg: var(--saaha-base-white);
  --avatar-gold: var(--categorical-5);
  --avatar-navy: var(--categorical-3);
  --avatar-olive: var(--categorical-6);
  --avatar-sand: var(--categorical-1);
  --avatar-teal: var(--categorical-4);
  --bg-accent: var(--saaha-teal-700);
  --bg-brand: var(--saaha-navy-900);
  --bg-canvas: var(--saaha-parchment-100);
  --bg-inverse: var(--saaha-navy-800);
  --bg-selected: var(--saaha-alpha-teal-10);
  --bg-selected-warm: var(--saaha-sand-500);
  --bg-sunken: var(--saaha-parchment-200);
  --bg-surface: var(--saaha-base-white);
  --bg-surface-2: var(--saaha-parchment-100);
  --bg-hover: var(--saaha-alpha-black-05);
  --bg-press: var(--saaha-alpha-black-08);
  --bg-warm: var(--saaha-parchment-200);
  --border-brand: var(--saaha-teal-700);
  --border-default: var(--saaha-slate-500);
  --border-faint: var(--saaha-gray-200);
  --border-focus: var(--saaha-teal-700);
  --border-strong: var(--saaha-ink-600);
  --border-subtle: var(--saaha-parchment-200);
  --brand-accent-coral: var(--saaha-coral-500);
  --brand-accent-sand: var(--saaha-sand-500);
  --brand-accent-tan: var(--saaha-sand-500);
  --brand-active: var(--saaha-teal-900);
  --brand-default: var(--saaha-teal-700);
  --brand-hover: var(--saaha-teal-800);
  --overlay-ai-tint: var(--saaha-alpha-teal-10);
  --overlay-image-darken: var(--saaha-alpha-black-25);
  --overlay-scrim: var(--saaha-alpha-black-75);
  --portal-fabric-admin: var(--saaha-ink-700);
  --portal-loom: var(--saaha-sage-500);
  --portal-org-admin: var(--saaha-teal-700);
  --portal-tapestry: var(--saaha-coral-500);
  --state-allowed: var(--saaha-status-success);
  --state-denied: var(--saaha-status-danger);
  --state-pending: var(--saaha-status-warning);
  --state-review: var(--saaha-teal-700);
  --status-ai: var(--saaha-teal-700);
  --status-danger: var(--saaha-status-danger);
  --status-info: var(--saaha-teal-700);
  --status-success: var(--saaha-status-success);
  --status-warning: var(--saaha-status-warning-deep);
  --text-body: var(--saaha-ink-700);
  --text-brand: var(--saaha-teal-700);
  --text-faint: var(--saaha-gray-500);
  --text-inverse: var(--saaha-parchment-100);
  --text-muted: var(--saaha-slate-600);
  --text-muted-on-inverse: var(--saaha-slate-300);
  --text-on-accent: var(--saaha-base-white);
  --text-on-brand: var(--saaha-base-white);
  --text-on-inverse: var(--saaha-base-white);
  --text-primary: var(--saaha-navy-800);
  --text-secondary: var(--saaha-slate-700);
  --gradient-brand: linear-gradient(95deg, var(--saaha-teal-600) 0%, var(--saaha-teal-500) 22%, var(--saaha-sand-500) 60%, var(--saaha-coral-500) 100%);
  --gradient-brand-mark: linear-gradient(135deg, var(--saaha-teal-700) 0%, var(--saaha-sage-500) 100%);
  --gradient-brand-panel: linear-gradient(135deg, var(--saaha-teal-700) 0%, var(--saaha-navy-800) 65%, var(--saaha-navy-800) 100%);
  /* v2 fold — accent (canonical name; brand-accent-* kept as aliases) + promoted dark-tier roles */
  --accent-coral: var(--saaha-coral-500);
  --accent-sand: var(--saaha-sand-500);
  --text-brand-soft: var(--saaha-teal-700);
  --text-muted-strong: var(--saaha-ink-600);
  --text-faint-strong: var(--saaha-gray-500);
  --text-faint-soft: var(--saaha-gray-500);
  --text-on-brand-chip: var(--saaha-base-white);
  --bg-selected-brand: var(--saaha-teal-100);
  --bg-selected-brand-subtle: var(--saaha-teal-100);
  --bg-brand-chip: var(--saaha-teal-700);
  --border-divider-strong: var(--saaha-gray-300);
  --bg-chrome: var(--saaha-parchment-100);
  --bg-command: var(--saaha-teal-900);
  --bg-on-command-fill: var(--saaha-alpha-white-08);
  --text-on-command: rgba(255,255,255,0.92);
  --text-on-command-muted: rgba(255,255,255,0.75);
  --border-on-command: var(--saaha-alpha-white-08);
  --border-on-command-divider: var(--saaha-alpha-white-14);
  --border-brand-soft: var(--saaha-teal-300);
}

/* ---- DARK contract (region-scopable: themes any subtree it's set on) ----
   Legacy aliases folded into the selector list for the deprecation window. */
[data-mode="dark"],
[data-brand="saaha"][data-mode="sidebar-rail"], [data-mode="saaha-sidebar-rail"],
[data-theme="sidebar-rail"] {
  --status-danger-text: var(--saaha-status-danger-bright);
  --tone-federal: var(--saaha-violet-300);
  --tone-federal-bg: var(--saaha-alpha-violet-15);
  --tone-federal-border: var(--saaha-violet-500);
  --tone-federal-fg: var(--saaha-violet-300);
  --action-primary: var(--saaha-teal-400);
  --action-primary-hover: var(--saaha-teal-200);
  --action-primary-subtle: var(--saaha-teal-800);
  --action-primary-text: var(--saaha-base-white);
  --avatar-coral: var(--categorical-2);
  --avatar-fg: var(--saaha-base-white);
  --avatar-gold: var(--categorical-5);
  --avatar-navy: var(--categorical-3);
  --avatar-olive: var(--categorical-6);
  --avatar-sand: var(--categorical-1);
  --avatar-teal: var(--categorical-4);
  --bg-accent: var(--saaha-teal-400);
  --bg-brand: var(--saaha-navy-900);
  --bg-canvas: var(--saaha-navy-900);
  --bg-inverse: var(--saaha-parchment-100);
  --bg-selected: var(--saaha-alpha-teal-20);
  --bg-selected-warm: var(--saaha-sand-500);
  --bg-sunken: var(--saaha-navy-900);
  --bg-surface: var(--saaha-navy-800);
  --bg-surface-2: var(--saaha-navy-700);
  --bg-hover: var(--saaha-alpha-white-08);
  --bg-press: var(--saaha-alpha-white-12);
  --bg-warm: var(--saaha-parchment-200);
  --border-brand: var(--saaha-teal-500);
  --border-default: var(--saaha-slate-500);
  --border-faint: var(--saaha-alpha-white-08);
  --border-focus: var(--saaha-teal-400);
  --border-strong: var(--saaha-slate-300);
  --border-subtle: var(--saaha-alpha-white-08);
  --brand-accent-coral: var(--saaha-coral-500);
  --brand-accent-sand: var(--saaha-sand-500);
  --brand-accent-tan: var(--saaha-sand-500);
  --brand-active: var(--saaha-teal-300);
  --brand-default: var(--saaha-teal-400);
  --brand-hover: var(--saaha-teal-200);
  --overlay-ai-tint: var(--saaha-alpha-teal-10);
  --overlay-image-darken: var(--saaha-alpha-black-25);
  --overlay-scrim: var(--saaha-alpha-black-75);
  --portal-fabric-admin: var(--saaha-ink-700);
  --portal-loom: var(--saaha-sage-500);
  --portal-org-admin: var(--saaha-teal-700);
  --portal-tapestry: var(--saaha-coral-500);
  --state-allowed: var(--saaha-status-success);
  --state-denied: var(--saaha-status-danger);
  --state-pending: var(--saaha-status-warning);
  --state-review: var(--saaha-teal-500);
  --status-ai: var(--saaha-teal-400);
  --status-danger: var(--saaha-status-danger-bright);
  --status-info: var(--saaha-teal-500);
  --status-success: var(--saaha-status-success-bright);
  --status-warning: var(--saaha-status-warning-bright);
  --text-body: var(--saaha-gray-200);
  --text-brand: var(--saaha-teal-400);
  --text-faint: var(--saaha-slate-300);
  --text-inverse: var(--saaha-navy-800);
  --text-muted: var(--saaha-gray-300);
  --text-muted-on-inverse: var(--saaha-slate-600);
  --text-on-accent: var(--saaha-base-white);
  --text-on-brand: var(--saaha-navy-900);
  --text-on-inverse: var(--saaha-navy-900);
  --text-primary: var(--saaha-parchment-100);
  --text-secondary: var(--saaha-slate-400);
  --gradient-brand: linear-gradient(95deg, var(--saaha-teal-600) 0%, var(--saaha-teal-500) 22%, var(--saaha-sand-500) 60%, var(--saaha-coral-500) 100%);
  /* v2 fold — promoted dark-tier overrides */
  --text-brand-soft: var(--saaha-teal-300);
  --text-muted-strong: var(--saaha-slate-450);
  --text-faint-strong: var(--saaha-slate-550);
  --text-faint-soft: var(--saaha-slate-450);
  --text-on-brand-chip: var(--saaha-teal-300);
  --bg-selected-brand: var(--saaha-alpha-teal-500-14);
  --bg-selected-brand-subtle: var(--saaha-alpha-teal-500-10);
  --bg-brand-chip: var(--saaha-teal-800);
  --border-divider-strong: var(--saaha-alpha-white-14);
  --bg-chrome: var(--saaha-navy-800);
}

/* ============================================================
   BASE TYPOGRAPHY
   ============================================================ */
html { font-family: var(--font-sans); font-size: var(--font-size-body); line-height: var(--lh-normal); color: var(--text-body); background: var(--bg-canvas); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: 'cv11', 'ss01', 'ss03'; }
.display, h1.display { font-size: var(--font-size-display); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); font-weight: var(--weight-bold); color: var(--text-primary); }
h1, .h1 { font-size: var(--font-size-h1); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); font-weight: var(--weight-bold); color: var(--text-primary); }
h2, .h2 { font-size: var(--font-size-h2); line-height: var(--lh-snug); letter-spacing: var(--ls-snug); font-weight: var(--weight-semibold); color: var(--text-primary); }
h3, .h3 { font-size: var(--font-size-h3); line-height: var(--lh-snug); font-weight: var(--weight-semibold); color: var(--text-primary); }
h4, .h4 { font-size: var(--font-size-h4); line-height: var(--lh-snug); font-weight: var(--weight-semibold); color: var(--text-primary); }
p, .body { font-size: var(--font-size-body); line-height: var(--lh-relaxed); color: var(--text-body); }
.small { font-size: var(--font-size-small); line-height: var(--lh-normal); color: var(--text-muted); }
.micro { font-size: var(--font-size-micro); line-height: var(--lh-normal); color: var(--text-faint); }
.eyebrow, .overline { font-size: var(--font-size-micro); letter-spacing: var(--ls-caps); text-transform: uppercase; font-weight: var(--weight-semibold); color: var(--text-muted); }
code, kbd, samp, pre, .mono { font-family: var(--font-mono); font-size: 0.92em; }
.code-inline { font-family: var(--font-mono); font-size: 0.88em; padding: 2px 6px; background: var(--bg-sunken); border: 1px solid var(--border-faint); border-radius: var(--radius-sm); color: var(--text-primary); }
a { color: var(--action-primary); text-decoration: none; }
a:hover { color: var(--action-primary-hover); text-decoration: underline; text-underline-offset: 2px; }
*:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-sm); }
