/* Vendored from the ume design system v3: ume-docs docs/brand/ume/v3/css/ume-v3.css (mirrored in the /ume-design skill).
   Copied byte for byte except the two @font-face lines: Inter is served as a Latin-subset WOFF2 (102 KB, opsz + wght axes kept)
   instead of the 877 KB TTF, and JetBrains Mono is not loaded (the site has no code beyond one inline scope string, which falls back to Menlo/Consolas).
   To update: copy the new file over this one and reapply the font-face line. Do not edit values here. */
/* ume design system v3. Ruled 24 Sep 2026. Variables and type classes from tokens.json; the component layer below is byte-identical to the Design System page bundle.css. */
@font-face { font-family: "Inter"; src: url("../fonts/Inter-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
:root {
  --white: #FFFFFF;
  --paper: #FAF6F4;
  --ink: #421932;
  --body: #423834;
  --muted: #5A4D47;
  --rule: #E5DCD7;
  --border-strong: #CFC2BB;
  --rule-ink: #421932;
  --surface-bar: #F3EFEC;
  --surface-glass: rgba(243,239,236,0.80);
  --plum: #8E3A63;
  --plum-hover: #5A2240;
  --plum-tint: #FBF3F6;
  --gold: #B88A12;
  --gold-text: #6F540B;
  --gold-tint: #FBF6E8;
  --success: #2F9E54;
  --success-text: #166534;
  --success-bg: #DEF5E2;
  --warning: #D4A24C;
  --warning-text: #8A5A1F;
  --warning-bg: #FBEBD1;
  --error: #B82828;
  --error-text: #6E1313;
  --error-bg: #F8D4D4;
  --info: #6E5D8A;
  --info-text: #3F3258;
  --info-bg: #E5DEEC;
  --chart-1: #8E3A63;
  --chart-2: #D45F5C;
  --chart-3: #4A5A8A;
  --chart-4: #B57639;
  --chart-5: #4F6D3E;
  --chart-6: #9A6BA0;
  --chart-7: #D6739A;
  --chart-8: #7F7975;
  --chart-seq-1: #DCA5BC;
  --chart-seq-2: #CF86A6;
  --chart-seq-3: #C06690;
  --chart-seq-4: #AC497A;
  --chart-seq-5: #933264;
  --chart-seq-6: #7A194F;
  --chart-seq-7: #5F013A;
  --chart-div-1: #32437D;
  --chart-div-2: #5266A4;
  --chart-div-3: #758BCC;
  --chart-div-4: #A1B3E5;
  --chart-div-5: #F3EDEA;
  --chart-div-6: #DAA1B9;
  --chart-div-7: #C46F96;
  --chart-div-8: #A34172;
  --chart-div-9: #7B1B4F;
  --art-mist: #A3B8D4;
  --art-periwinkle: #DCD6E4;
  --art-lavender: #CEC1D9;
  --art-blossom: #F2C4CB;
  --art-blossom-deep: #E7AAB9;
  --art-plum-rim: #AC7E99;
  --art-morning: #F7E8D4;
  --art-paper: #F9F7F2;
  --art-sky: #A9C9E1;
  --art-tide: #5C83A7;
  --art-peach: #F6CFC2;
  --art-twilight: #7D6B90;
  --plum-50: #FBF3F6;
  --plum-100: #F5E2EB;
  --plum-200: #E8C0D2;
  --plum-300: #D593B0;
  --plum-400: #B66388;
  --plum-500: #8E3A63;
  --plum-600: #732C50;
  --plum-700: #5A2240;
  --plum-800: #421932;
  --plum-900: #2D1124;
  --gold-50: #FBF6E8;
  --gold-100: #F6EAC2;
  --gold-200: #EDD580;
  --gold-300: #E2BD45;
  --gold-400: #D4A422;
  --gold-500: #B88A12;
  --gold-600: #94700E;
  --gold-700: #6F540B;
  --gold-800: #4D3A08;
  --gold-900: #2E2305;
  --neutral-0: #FFFFFF;
  --neutral-50: #FAF6F4;
  --neutral-100: #F3EDEA;
  --neutral-200: #E5DCD7;
  --neutral-300: #CFC2BB;
  --neutral-400: #A39189;
  --neutral-500: #786861;
  --neutral-600: #5A4D47;
  --neutral-700: #423834;
  --neutral-800: #2A2421;
  --neutral-900: #1B1614;
  --neutral-950: #110D0B;
  --font-sans: Inter, system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  --font-mono: 'JetBrains Mono', Menlo, Consolas, monospace;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --radius-0: 0;
  --radius-label: 2px;
  --radius-field: 4px;
  --radius-item: 6px;
  --radius-float: 8px;
  --radius-pill: 9999px;
  --shadow-sm: 0 1px 2px rgba(27,22,20,0.08), 0 1px 1px rgba(27,22,20,0.04);
  --shadow-md: 0 6px 12px -2px rgba(27,22,20,0.14), 0 3px 6px -3px rgba(27,22,20,0.10);
  --shadow-lg: 0 14px 28px -6px rgba(27,22,20,0.18), 0 6px 12px -6px rgba(27,22,20,0.12);
  --shadow-xl: 0 28px 48px -12px rgba(27,22,20,0.24), 0 12px 20px -10px rgba(27,22,20,0.14);
  --shadow-focus: 0 0 0 3px rgba(142,58,99,0.66);
  --duration-fast: 150ms;
  --duration-base: 200ms;
  --duration-slow: 300ms;
  --duration-reveal-app: 1000ms;
  --duration-reveal-hero: 2080ms;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --icon-sm: 16px;
  --icon-md: 20px;
  --icon-lg: 24px;
  --icon-gap: 8px;
  --icon-gap-sm: 6px;
}
.display { font-family: var(--font-sans); font-size: 64px; line-height: 70px; font-weight: 700; letter-spacing: -0.03em; }
.headline { font-family: var(--font-sans); font-size: 44px; line-height: 50px; font-weight: 700; letter-spacing: -0.015em; }
.section { font-family: var(--font-sans); font-size: 30px; line-height: 38px; font-weight: 700; letter-spacing: -0.015em; }
.subhead { font-family: var(--font-sans); font-size: 22px; line-height: 30px; font-weight: 600; letter-spacing: -0.01em; }
.lead { font-family: var(--font-sans); font-size: 21px; line-height: 32px; font-weight: 400; letter-spacing: -0.005em; }
.body { font-family: var(--font-sans); font-size: 17px; line-height: 28px; font-weight: 400; letter-spacing: 0; }
.body-sm { font-family: var(--font-sans); font-size: 14px; line-height: 22px; font-weight: 400; letter-spacing: 0; }
.label { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: 0; }
.button { font-family: var(--font-sans); font-size: 15px; line-height: 20px; font-weight: 400; letter-spacing: 0.01em; }
.caption { font-family: var(--font-sans); font-size: 13px; line-height: 20px; font-weight: 400; letter-spacing: 0; }
.metric { font-family: var(--font-sans); font-size: 56px; line-height: 60px; font-weight: 800; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.metric-hero { font-family: var(--font-sans); font-size: 117px; line-height: 117px; font-weight: 800; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.cover-sub { font-family: var(--font-sans); font-size: 19px; line-height: 28px; font-weight: 400; letter-spacing: 0; }
.meta { font-family: var(--font-sans); font-size: 11px; line-height: 16px; font-weight: 400; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.data { font-family: var(--font-sans); font-size: 15px; line-height: 22px; font-weight: 500; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.code { font-family: var(--font-mono); font-size: 14px; line-height: 22px; font-weight: 400; letter-spacing: 0; }

/* ume v3 components. Ruled 24 Sep 2026. Inter only. Sentence case. Sharp containers (0 radius, hairlines), pill controls: buttons, tabs, chips and badges are pills, the nav is a floating glass pill on the page grid, alerts are tinted with a colour dot, the app bar is warm grey over a white rail. One filled button per screen: ink on a light field, white on a dark field (.u-dark-field). Tokens from tokens.json. */
.u-root{font-family:var(--font-sans);color:var(--body);-webkit-font-smoothing:antialiased;font-optical-sizing:auto}
.u-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 22px;border-radius:var(--radius-pill);border:1px solid transparent;font:400 15px/1 var(--font-sans);letter-spacing:0.01em;cursor:pointer;text-decoration:none;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform 160ms var(--ease-out)}
.u-btn:active{transform:scale(0.96)}
.u-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.u-btn--primary{background:var(--ink);color:var(--white)}
.u-btn--primary:hover{background:var(--plum-hover)}
.u-btn--secondary{background:transparent;color:var(--ink);border-color:currentColor}
.u-btn--secondary:hover{color:var(--plum-hover)}
.u-dark-field .u-btn--primary{background:var(--white);color:var(--ink)}
.u-dark-field .u-btn--primary:hover{background:var(--surface-bar)}
.u-dark-field .u-btn--secondary{background:transparent;color:var(--white);border-color:currentColor}
.u-dark-field .u-btn--secondary:hover{color:var(--white);background:rgba(255,255,255,0.12)}
.u-dark-field .u-btn:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,0.70)}
.u-btn--sm>.u-icon{width:var(--icon-sm,16px);height:var(--icon-sm,16px)}
.u-btn--sm:has(>.u-icon){gap:var(--icon-gap-sm,6px)}
.u-link{color:var(--plum);text-decoration:none;font:inherit;background:none;border:0;padding:0;cursor:pointer}
.u-link:hover{color:var(--plum-hover);text-decoration:underline}
.u-btn--danger{background:transparent;color:var(--error);border-color:currentColor}
.u-btn--danger-confirm{background:var(--error);color:var(--white);border-color:var(--error)}
.u-btn--sm{height:32px;padding:0 12px;font-size:13px}
.u-btn--lg{height:48px;padding:0 22px;font-size:15px}
.u-btn[disabled]{opacity:.4;cursor:not-allowed}
.u-field{display:flex;flex-direction:column;gap:6px}
.u-label{font:600 14px/20px var(--font-sans);color:var(--ink)}
.u-help{font:400 13px/20px var(--font-sans);color:var(--muted)}
.u-input,.u-select{box-sizing:border-box;height:44px;padding:0 14px;border:1px solid var(--neutral-400);border-radius:var(--radius-field);background:var(--white);font:400 15px/1 var(--font-sans);color:var(--body);transition:border-color var(--duration-fast) var(--ease-out)}
@media (hover:hover){.u-input:hover:not(:focus):not([disabled]):not(.u-input--error),.u-select:hover:not(:focus):not([disabled]){border-color:var(--neutral-500)}}
.u-input:focus,.u-select:focus{outline:none;border-color:var(--plum);box-shadow:var(--shadow-focus)}
.u-input--error{border-color:var(--error)}
.u-input[disabled],.u-select[disabled]{opacity:.4;cursor:not-allowed}
.u-error{font:500 13px/20px var(--font-sans);color:var(--error)}
.u-check{display:inline-flex;align-items:center;gap:8px;font:400 14px/20px var(--font-sans);color:var(--body)}
.u-check input{width:18px;height:18px;accent-color:var(--plum)}
.u-badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px 0 7px;border-radius:var(--radius-pill);border:1px solid var(--neutral-400);background:var(--white);color:var(--body);font:500 12px/1 var(--font-sans);cursor:default}
.u-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--muted)}
.u-badge--neutral::before{background:var(--muted)}
.u-badge--plum::before{background:var(--plum)}
.u-badge--success::before{background:var(--success)}
.u-badge--warning::before{background:var(--warning)}
.u-badge--error::before{background:var(--error)}
.u-badge--info::before{background:var(--info)}
.u-badge .u-icon{display:none}
.u-table{width:100%;border-collapse:collapse;font:400 14px/20px var(--font-sans);color:var(--body);font-variant-numeric:tabular-nums}
.u-table th{text-align:left;font:600 12px/16px var(--font-sans);color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--rule-ink);white-space:nowrap}
.u-table td{padding:12px 12px;border-bottom:1px solid var(--rule);vertical-align:middle}
.u-table tr:last-child td{border-bottom:0}
.u-table tbody tr:hover td{background:var(--neutral-50)}
.u-table .num{text-align:right}
.u-table .neg{color:var(--error-text)}
.u-table__caption{font:400 12px/16px var(--font-sans);color:var(--muted);text-align:left;padding:8px 12px 0}
.u-tabs{display:inline-flex;width:fit-content;gap:2px;padding:4px;border-radius:var(--radius-pill);background:var(--surface-glass)}
.u-tab{height:36px;padding:0 16px;border-radius:var(--radius-pill);font:400 14px/36px var(--font-sans);color:var(--body);border:0;background:none;cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.u-tab:hover{color:var(--ink)}
.u-tab[aria-selected="true"]{background:var(--white);color:var(--ink);box-shadow:0 1px 2px rgba(27,22,20,.08)}
.u-alert{position:relative;display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-label);font:400 14px/21px var(--font-sans);color:var(--body)}
.u-alert::before{content:"";width:8px;height:8px;border-radius:1px;flex:none;margin-top:6px;background:var(--muted)}
.u-alert__title{font-weight:600}
.u-alert--info{background:var(--info-bg)}.u-alert--info::before{background:var(--info)}.u-alert--info .u-alert__title{color:var(--info-text)}
.u-alert--success{background:var(--success-bg)}.u-alert--success::before{background:var(--success)}.u-alert--success .u-alert__title{color:var(--success-text)}
.u-alert--warning{background:var(--warning-bg)}.u-alert--warning::before{background:var(--warning)}.u-alert--warning .u-alert__title{color:var(--warning-text)}
.u-alert--error{background:var(--error-bg)}.u-alert--error::before{background:var(--error)}.u-alert--error .u-alert__title{color:var(--error-text)}
.u-alert--icon::before{display:none}
.u-alert--icon>.u-icon{width:var(--icon-sm,16px);height:var(--icon-sm,16px);margin-top:2.5px}
.u-alert--info>.u-icon{color:var(--info-text)}.u-alert--success>.u-icon{color:var(--success-text)}.u-alert--warning>.u-icon{color:var(--warning-text)}.u-alert--error>.u-icon{color:var(--error-text)}
.u-nav{position:sticky;top:12px;z-index:20;max-width:1200px;margin:12px auto 0;height:56px;padding:0 6px 0 22px;display:flex;align-items:center;justify-content:space-between;border-radius:var(--radius-pill);background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@media (max-width:1231px){.u-nav{margin:12px 16px 0}}
@supports not (backdrop-filter:blur(1px)){.u-nav{background:var(--surface-bar)}}
.u-nav__links{display:flex;gap:24px;align-items:center}
.u-nav__link{font:400 14px/20px var(--font-sans);color:var(--body);text-decoration:none}
.u-nav__link:hover,.u-nav__link[aria-current="page"]{color:var(--ink)}
.u-topbar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--surface-bar);border-bottom:1px solid rgba(66,25,50,.08)}
.u-side{width:232px;background:var(--white);border-right:1px solid rgba(66,25,50,.06);padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.u-side__item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-item);font:400 14px/20px var(--font-sans);color:var(--body);text-decoration:none}
.u-side__item:hover{background:var(--neutral-50);color:var(--ink)}
.u-side__item[aria-current="page"]{background:var(--surface-bar);color:var(--ink);font-weight:600}
@media (prefers-reduced-motion: reduce){.u-btn{transition:none}.u-btn:active{transform:none}}
.u-tab:focus-visible,.u-side__item:focus-visible,.u-nav__link:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.u-nav__link:focus-visible{border-radius:var(--radius-label)}
.u-link:focus-visible{outline:3px solid rgba(142,58,99,0.66);outline-offset:2px;border-radius:var(--radius-label);box-shadow:none}

/* Sharp system additions */
.u-rule{border:0;border-top:1px solid var(--rule-ink);margin:0}
.u-menu,.u-popover,.u-dialog{border-radius:var(--radius-float);background:var(--white);border:1px solid var(--rule);box-shadow:var(--shadow-lg);padding:6px}
.u-menu__item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:calc(var(--radius-float) - 6px);font:400 14px/20px var(--font-sans);color:var(--body)}
.u-menu__item:hover{background:var(--surface-bar);color:var(--ink)}
.u-sheet{border-radius:var(--radius-float) var(--radius-float) 0 0;background:var(--white);border-top:1px solid var(--rule-ink)}
.u-chip{position:relative;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:var(--radius-pill);border:1px solid var(--neutral-400);background:var(--white);font:400 13px/1 var(--font-sans);color:var(--body);cursor:pointer}
.u-chip::after{content:"";position:absolute;inset:-7px -1px}
.u-chip[aria-pressed="true"]{background:var(--surface-bar);border-color:var(--ink);color:var(--ink)}
.u-chip:focus-visible,.u-menu__item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.u-avatar{width:32px;height:32px;border-radius:var(--radius-pill);background:var(--plum);display:inline-block}
/* Media: edge to edge, never framed (SpaceX rule, Ha 24 Sep). Wonderful's rounded frames are not ume. */
.u-media{display:block;width:100%;height:auto;border-radius:0;border:0;box-shadow:none;object-fit:cover}
.u-media--bleed{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
@media (min-width:768px){.u-media--bleed{width:100%;margin:0}}
.u-media-caption{font:400 13px/20px var(--font-sans);color:var(--muted);padding:8px 0 0}
/* Cards and stat tiles: ruled columns, not boxes. Hairline top, no fill, no shadow, 0 radius. */
.u-card{border-top:1px solid var(--rule-ink);padding:14px 0 0;background:none;border-radius:0;box-shadow:none}
.u-card__title{margin:0;font:600 22px/30px var(--font-sans);letter-spacing:-0.01em;color:var(--ink)}
.u-stat{display:flex;flex-direction:column;gap:4px}
.u-stat__label{font:400 14px/20px var(--font-sans);color:var(--muted)}
.u-stat__value{font:800 56px/60px var(--font-sans);letter-spacing:-0.04em;color:var(--ink);font-variant-numeric:tabular-nums}
.u-stat__delta{font:500 14px/20px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--muted)}
.u-stat__delta--up{color:var(--success-text)}
.u-stat__delta--down{color:var(--error-text)}
/* Gradients v3 (ruled 23 Sep: all ten kept). Solid fallback first, OKLCH interpolation second. Add .u-grain for 2% noise. */
.u-grad-sunset{background:linear-gradient(120deg, #A3B8D4 0%, #CEC1D9 48%, #F2C4CB 100%);background:linear-gradient(in oklch 120deg, #A3B8D4 0%, #CEC1D9 48%, #F2C4CB 100%)}
.u-grad-dawn{background:radial-gradient(60% 70% at 88% 12%, #F2C4CB 0%, #F2C4CB00 70%), radial-gradient(55% 65% at 10% 95%, #A3B8D4 0%, #A3B8D400 70%), #F9F7F2;background:radial-gradient(60% 70% at 88% 12%, #F2C4CB 0%, #F2C4CB00 70%), radial-gradient(55% 65% at 10% 95%, #A3B8D4 0%, #A3B8D400 70%), #F9F7F2}
.u-grad-morning{background:linear-gradient(160deg, #F7E8D4 0%, #F2C4CB 55%, #DCD6E4 100%);background:linear-gradient(in oklch 160deg, #F7E8D4 0%, #F2C4CB 55%, #DCD6E4 100%)}
.u-grad-peach-sky{background:linear-gradient(135deg, #F6CFC2 0%, #F9F7F2 50%, #A9C9E1 100%);background:linear-gradient(in oklch 135deg, #F6CFC2 0%, #F9F7F2 50%, #A9C9E1 100%)}
.u-grad-mesh{background:radial-gradient(55% 60% at 0% 0%, #A3B8D4 0%, #A3B8D400 70%), radial-gradient(50% 55% at 100% 0%, #CEC1D9 0%, #CEC1D900 70%), radial-gradient(60% 65% at 100% 100%, #F2C4CB 0%, #F2C4CB00 70%), radial-gradient(55% 60% at 0% 100%, #F7E8D4 0%, #F7E8D400 70%), #F9F7F2;background:radial-gradient(55% 60% at 0% 0%, #A3B8D4 0%, #A3B8D400 70%), radial-gradient(50% 55% at 100% 0%, #CEC1D9 0%, #CEC1D900 70%), radial-gradient(60% 65% at 100% 100%, #F2C4CB 0%, #F2C4CB00 70%), radial-gradient(55% 60% at 0% 100%, #F7E8D4 0%, #F7E8D400 70%), #F9F7F2}
.u-grad-tide{background:linear-gradient(180deg, #F9F7F2 0%, #A9C9E1 55%, #5C83A7 100%);background:linear-gradient(in oklch 180deg, #F9F7F2 0%, #A9C9E1 55%, #5C83A7 100%)}
.u-grad-twilight{background:linear-gradient(135deg, #7D6B90 0%, #E7AAB9 60%, #F6CFC2 100%);background:linear-gradient(in oklch 135deg, #7D6B90 0%, #E7AAB9 60%, #F6CFC2 100%)}
.u-grad-plum-dusk{background:linear-gradient(135deg, #421932 0%, #8E3A63 60%, #E7AAB9 100%);background:linear-gradient(in oklch 135deg, #421932 0%, #8E3A63 60%, #E7AAB9 100%)}
.u-grad-nightfall{background:linear-gradient(160deg, #421932 0%, #5A2240 55%, #8E3A63 100%);background:linear-gradient(in oklch 160deg, #421932 0%, #5A2240 55%, #8E3A63 100%)}
.u-grad-insight{background:linear-gradient(90deg, #8E3A63 0%, #E7AAB9 55%, #A3B8D4 100%);background:linear-gradient(in oklch 90deg, #8E3A63 0%, #E7AAB9 55%, #A3B8D4 100%)}
.u-grain{position:relative;isolation:isolate}.u-grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:multiply;border-radius:inherit;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.u-insight{position:relative;border-radius:0;background:var(--white);padding:14px 0 0;border-bottom:1px solid var(--rule)}.u-insight::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#8E3A63,#E7AAB9 55%,#A3B8D4);pointer-events:none}
@media (prefers-reduced-motion:no-preference){.u-grad-drift{background-size:200% 200%;animation:u-drift 24s ease-in-out infinite alternate}}@keyframes u-drift{from{background-position:0% 50%}to{background-position:100% 50%}}
/* Charts (FHQ-241, 25 Sep 2026). Spec: guidelines/45-charts.md. Text wears text colours, never series colours. Series colours come from chart-1 to chart-8 in order; stone (chart-8) is the dotted comparison line and "Other". Marks: 2 px lines, bars 24 px at most with a 2 px data end, 2 px white gaps. Grid: horizontal hairlines in rule, no axis lines, no ticks. */
.u-chart{position:relative;font-family:var(--font-sans);color:var(--body)}
.u-chart__title{margin:0;font:600 16px/24px var(--font-sans);letter-spacing:-0.005em;color:var(--ink)}
.u-chart__sub{margin:2px 0 0;font:400 14px/20px var(--font-sans);color:var(--muted)}
.u-chart__key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding:0;list-style:none;font:400 12px/16px var(--font-sans);color:var(--muted)}
.u-chart__key li{display:inline-flex;align-items:center;gap:6px}
.u-chart__swatch{flex:none;width:10px;height:10px;border-radius:2px;background:var(--c,var(--chart-1))}
.u-chart__line-key{flex:none;width:16px;height:2px;border-radius:1px;background:var(--c,var(--chart-1))}
.u-chart__line-key--dotted{height:0;border-radius:0;background:none;border-top:2px dotted var(--c,var(--chart-8))}
.u-chart__plot{display:block;margin-top:8px;min-height:120px}
.u-chart__plot svg{display:block;overflow:visible;touch-action:pan-y}
.u-chart__plot svg:focus{outline:none}
.u-chart__plot svg:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:2px}
.u-chart__source{margin:8px 0 0;font:400 12px/16px var(--font-sans);color:var(--muted)}
.u-chart__grid{stroke:var(--rule);stroke-width:1;shape-rendering:crispEdges}
.u-chart__base{stroke:var(--neutral-400);stroke-width:1;shape-rendering:crispEdges}
.u-chart__tick{fill:var(--muted);font:400 12px/1 var(--font-sans);font-variant-numeric:tabular-nums}
.u-chart__label{fill:var(--ink);font:600 12px/1 var(--font-sans);font-variant-numeric:tabular-nums}
.u-chart__label--quiet{fill:var(--muted);font-weight:400}
.u-chart__label--inside{fill:var(--white)}
.u-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.u-chart__line--comparison{stroke:var(--chart-8);stroke-dasharray:0.1 4}
.u-chart__line--partial{stroke-dasharray:4 4}
.u-chart__ref{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 3;shape-rendering:crispEdges}
.u-chart__cross{stroke:var(--neutral-400);stroke-width:1;shape-rendering:crispEdges;pointer-events:none}
.u-chart__dot{stroke:var(--white);stroke-width:2;pointer-events:none}
.u-chart__mark{transition:opacity var(--duration-fast) var(--ease-out)}
.u-chart__mark[data-dim]{opacity:.3}
.u-chart__tip{position:absolute;z-index:5;top:0;left:0;min-width:128px;padding:8px 10px;background:var(--white);border:1px solid var(--rule);border-radius:var(--radius-float);box-shadow:var(--shadow-lg);font:400 12px/18px var(--font-sans);color:var(--muted);pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}
.u-chart__tip[data-open]{opacity:1}
.u-chart__tip-head{margin-bottom:2px;font-weight:500;color:var(--ink)}
.u-chart__tip-row{display:flex;align-items:center;gap:8px;white-space:nowrap}
.u-chart__tip-row b{margin-left:auto;padding-left:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.u-chart__data{margin:8px 0 0;font:400 12px/16px var(--font-sans);color:var(--muted)}
.u-chart__data summary{display:inline;cursor:pointer;color:var(--plum);list-style:none}
.u-chart__data summary::-webkit-details-marker{display:none}
.u-chart__data summary:hover{color:var(--plum-hover);text-decoration:underline}
.u-chart__data summary:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:2px}
.u-chart__data .u-table{margin-top:8px;font-size:13px}
.u-chart__scroll{max-width:100%;overflow-x:auto;overflow-y:hidden}
.u-chart__data:not([open]) .u-chart__scroll{display:none}
.u-chart__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;font:400 14px/20px var(--font-sans);color:var(--muted)}
.u-chart__state strong{font-weight:600;color:var(--ink)}
.u-chart__skeleton{fill:var(--neutral-100)}
.u-chart--refetch .u-chart__plot{opacity:.5;transition:opacity var(--duration-base) var(--ease-out)}
@media (prefers-reduced-motion:no-preference){.u-chart__draw{animation:u-chart-draw 500ms var(--ease-out) both}.u-chart__grow{transform-box:fill-box;transform-origin:50% 100%;animation:u-chart-grow 400ms var(--ease-out) both}.u-chart__grow--x{transform-origin:0 50%;animation-name:u-chart-grow-x}.u-chart__fade{animation:u-chart-fade 400ms var(--ease-out) both}.u-chart__skeleton{animation:u-chart-pulse 1400ms ease-in-out infinite alternate}}
@keyframes u-chart-draw{from{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}
@keyframes u-chart-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes u-chart-grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes u-chart-fade{from{opacity:0}to{opacity:1}}
@keyframes u-chart-pulse{from{opacity:1}to{opacity:.55}}
/* Small data pieces: compact stat, sparkline, bar list, category bar, progress bar, tracker. Patterns from Tremor Raw, rebuilt on ume tokens. */
.u-stat--compact .u-stat__value{font-size:32px;line-height:36px;letter-spacing:-0.03em}
.u-stat--compact .u-stat__delta{font-size:13px}
.u-stat__delta--flat{color:var(--muted)}
.u-stat__row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.u-spark{display:block;flex:none;overflow:visible}
.u-barlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font:400 14px/20px var(--font-sans)}
.u-barlist__row{display:flex;align-items:center;gap:16px}
.u-barlist__bar{position:relative;flex:1;min-width:0;height:32px;display:flex;align-items:center}
.u-barlist__fill{position:absolute;top:0;bottom:0;left:0;width:var(--w,0%);background:var(--plum-100);border-radius:0 2px 2px 0}
.u-barlist__row--focus .u-barlist__fill{background:var(--plum-200)}
.u-barlist__name{position:relative;padding:0 10px;color:var(--ink);white-space:nowrap}
.u-barlist__value{flex:none;min-width:56px;text-align:right;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.u-catbar{position:relative;display:flex;gap:2px;height:8px}
.u-catbar__seg{min-width:2px;background:var(--c,var(--chart-1))}
.u-catbar__seg:first-child{border-radius:2px 0 0 2px}
.u-catbar__seg:last-child{border-radius:0 2px 2px 0}
.u-catbar__marker{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);box-shadow:0 0 0 2px var(--white)}
.u-progress{height:8px;background:var(--plum-100);border-radius:2px;overflow:hidden}
.u-progress__fill{height:100%;width:var(--v,0%);background:var(--plum);border-radius:2px;transition:width var(--duration-slow) var(--ease-out)}
.u-progress--warning{background:var(--warning-bg)}.u-progress--warning .u-progress__fill{background:var(--warning)}
.u-progress--error{background:var(--error-bg)}.u-progress--error .u-progress__fill{background:var(--error)}
.u-meter{display:flex;flex-direction:column;gap:8px}
.u-meter__head{display:flex;justify-content:space-between;gap:16px;font:400 14px/20px var(--font-sans);color:var(--body)}
.u-meter__head b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.u-tracker{display:flex;gap:2px;height:28px}
.u-tracker__day{flex:1;min-width:3px;border-radius:1px;background:var(--success);transition:opacity var(--duration-fast) var(--ease-out)}
.u-tracker__day--warning{background:var(--warning)}
.u-tracker__day--error{background:var(--error)}
.u-tracker__day--none{background:var(--neutral-200)}
.u-tracker__day:hover{opacity:.6}
@media (prefers-reduced-motion:reduce){.u-chart__mark,.u-chart__tip,.u-progress__fill,.u-tracker__day{transition:none}}
/* Icons (FHQ-247, Ha 25 Sep 2026). Spec: guidelines/85-icons.md. Phosphor Regular only, inline SVG in the text colour. Three sizes: 16, 20 (default), 24. */
.u-icon{flex:none;display:inline-block;width:var(--icon-md,20px);height:var(--icon-md,20px);color:inherit;fill:currentColor;vertical-align:middle}
.u-icon--sm{width:var(--icon-sm,16px);height:var(--icon-sm,16px)}
.u-icon--lg{width:var(--icon-lg,24px);height:var(--icon-lg,24px)}
.u-icon--muted{color:var(--muted)}
.u-icon--success{color:var(--success-text)}
.u-icon--warning{color:var(--warning-text)}
.u-icon--error{color:var(--error-text)}
.u-icon--info{color:var(--info-text)}
.u-icon-label{display:inline-flex;align-items:baseline;gap:var(--icon-gap,8px)}
.u-icon-label>.u-icon{align-self:center}
.u-icon-label--sm{gap:var(--icon-gap-sm,6px)}
.u-icon-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-pill);background:none;color:var(--body);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform 160ms var(--ease-out)}
@media (hover:hover){.u-icon-btn:hover{background:rgba(66,25,50,.06);color:var(--ink)}}
.u-icon-btn:active{transform:scale(0.96)}
.u-icon-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.u-icon-btn[disabled]{opacity:.4;cursor:not-allowed}
.u-icon-btn--sm{width:32px;height:32px}
.u-dark-field .u-icon-btn{color:var(--white)}
@media (hover:hover){.u-dark-field .u-icon-btn:hover{background:rgba(255,255,255,.12);color:var(--white)}}
.u-dark-field .u-icon-btn:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.70)}
@media (prefers-reduced-motion:reduce){.u-icon-btn{transition:none}.u-icon-btn:active{transform:none}}
