/* Lead Generation Program UI kit. Tokens (spec 2), base styles and every uk- component (spec 3).
   No hex literal may appear outside :root in this file (tests/gates.test.mjs). */

@font-face{font-family:"Inter Variable";font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/inter-latin-opsz-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter Variable";font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/inter-latin-ext-opsz-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter Variable";font-style:italic;font-weight:100 900;font-display:swap;
  src:url(/fonts/inter-latin-opsz-italic.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+2000-206F}

:root{
  /* neutrals */
  --gray-0:#FFFFFF;--gray-25:#FCFCFD;--gray-50:#F7F7F8;--gray-100:#F0F0F2;--gray-150:#E8E8EB;--gray-200:#E2E2E6;
  --gray-300:#CFCFD5;--gray-400:#A3A3AB;--gray-500:#8F8F97;--gray-600:#6E6E76;--gray-700:#5C5C64;--gray-800:#2A2A30;--gray-900:#18181B;
  --bg:var(--gray-0);--canvas:var(--gray-50);--surface:var(--gray-0);--surface-sunken:var(--gray-50);
  /* Placeholder is gray-600, not gray-500: it carries the accepted date format, "Not sure" and the listbox trigger's
     own visible label, and gray-500 measures 3.21:1 on white (accessibility review 2026-09-13). */
  --text-1:var(--gray-900);--text-2:var(--gray-700);--text-3:var(--gray-600);--text-placeholder:var(--gray-600);
  /* --border is the decorative card hairline. A control whose edge is the only thing identifying it (input, listbox
     trigger, secondary button, chip, option card, segmented track) uses --border-interactive, which must clear 3:1
     against whatever it is drawn on (WCAG 1.4.11). It is no longer var(--gray-500): #8F8F97 measured 3.21 on white but
     exactly 3.00 on --canvas and 2.91 on an --info-bg banner, so the same control failed as soon as it sat on a tinted
     surface (accessibility re-check 2026-09-14). #83838B keeps headroom on every background the kit paints behind a
     control: 3.76 on white, 3.51 on --canvas / --surface-sunken, 3.41 on --info-bg, 3.45 on --success-bg,
     3.30 on --neutral-bg and 3.08 on --pressed. --gray-500 itself is unchanged; it is still --neutral-solid. */
  --border:var(--gray-200);--border-strong:var(--gray-300);--border-interactive:#83838B;--hover:var(--gray-100);--pressed:var(--gray-150);
  --frost-bg:rgba(255,255,255,.78);--frost-filter:saturate(180%) blur(20px);--frost-border:rgba(24,24,27,.08);
  /* green */
  --green-50:#EDF8F1;--green-100:#D3EFDD;--green-200:#A9DFBF;--green-300:#72C897;--green-400:#3FB373;--green-500:#1F9D55;
  --green-600:#17804A;--green-700:#126B3D;--green-800:#0F5A34;--green-900:#0B4427;
  --brand:var(--green-500);--primary:var(--green-600);--primary-hover:var(--green-700);--primary-pressed:var(--green-800);
  --link:var(--green-700);--selected-bg:var(--green-50);--selected-border:var(--green-500);
  /* semantic tones: text, background, border, solid */
  --success-text:#126B3D;--success-bg:#EDF8F1;--success-border:#D3EFDD;--success-solid:#1F9D55;
  --warning-text:#B54708;--warning-bg:#FFFAEB;--warning-border:#FEDF89;--warning-solid:#F79009;
  --danger-text:#B42318;--danger-bg:#FEF3F2;--danger-border:#FECDCA;--danger-solid:#D92D20;
  --info-text:#475467;--info-bg:#F2F4F7;--info-border:#E4E7EC;--info-solid:#667085;
  --neutral-text:#5C5C64;--neutral-bg:#F0F0F2;--neutral-border:#E2E2E6;--neutral-solid:#8F8F97;
  /* review lifecycle tones */
  --lc-draft-text:#5C5C64;--lc-draft-bg:#F0F0F2;
  --lc-awaiting-text:#B54708;--lc-awaiting-bg:#FFFAEB;
  --lc-changes-text:#C4320A;--lc-changes-bg:#FFF4ED;
  --lc-accepted-text:#126B3D;--lc-accepted-bg:#EDF8F1;
  /* implemented reads as slate, never indigo beside Acquire's azure (design review 2026-09-12) */
  --lc-implemented-text:#475467;--lc-implemented-bg:#F2F4F7;
  --lc-verified-text:#0B4427;--lc-verified-bg:#D3EFDD;
  --lc-stale-text:#6941C6;--lc-stale-bg:#F4F3FF;
  --lc-locked-text:#6E6E76;--lc-locked-bg:#F7F7F8;
  /* vendor mark plates */
  --plate-chatgpt:#F4F4F5;--plate-claude:#FBF1ED;--plate-grok:#F4F4F5;--plate-perplexity:#E9F8FA;--plate-ring:rgba(24,24,27,.06);
  /* charts */
  --chart-spend:#5C5C64;--chart-outcome:#17804A;--chart-outcome-fill:#1F9D55;--chart-outcome-area:rgba(31,157,85,.16);--chart-outcome-soft:rgba(31,157,85,.35);
  --chart-neutral:#A3A3AB;--chart-negative:#D92D20;--chart-grid:rgba(24,24,27,.08);--chart-axis:#6E6E76;--chart-band:rgba(24,24,27,.035);
  --scenario-a:#17804A;--scenario-b:#475467;--scenario-c:#B54708;
  /* focus and feedback */
  --focus-ring:rgba(31,157,85,.22);--danger-ring:rgba(217,45,32,.16);--flash:rgba(31,157,85,.08);--on-accent:#FFFFFF;
  /* typography */
  --font-sans:"Inter Variable",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --t-display:650 40px/48px var(--font-sans);--t-h1:650 32px/40px var(--font-sans);--t-reader-title:650 34px/42px var(--font-sans);
  --t-h2:600 24px/32px var(--font-sans);--t-h3:600 20px/28px var(--font-sans);--t-title:600 16px/24px var(--font-sans);
  --t-reading:400 16px/26px var(--font-sans);--t-body:400 15px/24px var(--font-sans);--t-input:400 16px/24px var(--font-sans);
  --t-ui:500 14px/20px var(--font-sans);--t-small:500 13px/18px var(--font-sans);--t-caption:500 12px/16px var(--font-sans);
  --t-micro:600 11px/14px var(--font-sans);--t-kpi:650 28px/32px var(--font-sans);--t-kpi-sm:600 20px/24px var(--font-sans);
  --t-mono:450 13px/20px var(--font-mono);
  /* The scale in spec 2.2 has no 17px, and the phone top-bar title in spec 4.4 is the one place that needs it. This is
     that exception, named once. Everything else that reached for 17px belongs on --t-body (page descriptions),
     --t-title (panel and card titles), --t-reading (document body) or --t-input (every text input). */
  --t-topbar:600 17px/22px var(--font-sans);
  /* spacing and sizing */
  --s-0:0;--s-0_5:2px;--s-1:4px;--s-1_5:6px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--s-20:80px;
  --h-sm:28px;--h-md:36px;--h-lg:44px;--h-field:var(--h-md);
  --icon-sm:16px;--icon-md:20px;--icon-lg:24px;
  /* radii */
  --r-2xs:4px;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:999px;
  /* borders and shadows */
  --border-w:1px;
  --shadow-xs:0 1px 2px rgba(24,24,27,.05);
  --shadow-card:0 1px 2px rgba(24,24,27,.04),0 1px 1px rgba(24,24,27,.02);
  --shadow-raised:0 8px 20px -10px rgba(24,24,27,.18);
  --shadow-pop:0 0 0 1px rgba(24,24,27,.06),0 12px 32px -8px rgba(24,24,27,.16);
  --shadow-sheet:0 24px 64px -16px rgba(24,24,27,.28);
  --shadow-inset:inset 0 1px 1px rgba(24,24,27,.04);
  --backdrop:rgba(24,24,27,.32);--backdrop-reader:rgba(24,24,27,.18);
  /* motion */
  --ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--ease-exit:cubic-bezier(.4,0,1,1);--ease-spring:cubic-bezier(.34,1.36,.64,1);
  --dur-1:100ms;--dur-2:150ms;--dur-3:200ms;--dur-4:260ms;--dur-5:320ms;
  /* layers */
  --z-sticky:10;--z-nav:20;--z-popover:40;
  --sticky-top:0px;--toast-offset:12px;
}
@media (max-width:767px){
  :root{
    --t-display:650 30px/36px var(--font-sans);--t-h1:650 26px/32px var(--font-sans);--t-reader-title:650 28px/34px var(--font-sans);
    --t-h2:600 21px/28px var(--font-sans);--t-h3:600 18px/26px var(--font-sans);--t-kpi:650 24px/28px var(--font-sans);
    --h-field:44px;
  }
}
@media (pointer:coarse){:root{--h-md:44px;--h-field:44px}}

/* ------------------------------------------------------------------ base */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-optical-sizing:auto;font-size:15px;line-height:24px;letter-spacing:-.006em;color:var(--text-1)}
input,textarea,button,select{font:inherit;letter-spacing:inherit}
.tabular,[data-num]{font-variant-numeric:tabular-nums}
html.uk-scroll-lock{overflow:hidden}
mark{background:var(--green-50);color:inherit;border-radius:3px;padding:0 1px}
:where([class^="uk-"],[class*=" uk-"])[hidden]{display:none!important}
:where([class^="uk-"],[class*=" uk-"]),:where([class^="uk-"],[class*=" uk-"])::before,:where([class^="uk-"],[class*=" uk-"])::after{box-sizing:border-box}

.t-display,.t-h1,.t-reader-title,.t-h2,.t-h3{margin:0}
.t-display{font:var(--t-display);letter-spacing:-.022em;font-variation-settings:"opsz" 32}
.t-h1{font:var(--t-h1);letter-spacing:-.02em;font-variation-settings:"opsz" 32}
.t-reader-title{font:var(--t-reader-title);letter-spacing:-.022em;font-variation-settings:"opsz" 32}
.t-h2{font:var(--t-h2);letter-spacing:-.015em;font-variation-settings:"opsz" 32}
.t-h3{font:var(--t-h3);letter-spacing:-.01em;font-variation-settings:"opsz" 24}
.t-title{font:var(--t-title);letter-spacing:-.006em}
.t-reading{font:var(--t-reading);letter-spacing:-.004em}
.t-body{font:var(--t-body);letter-spacing:-.006em}
.t-input{font:var(--t-input);letter-spacing:-.006em}
.t-ui{font:var(--t-ui);letter-spacing:-.003em}
.t-small{font:var(--t-small);letter-spacing:0}
.t-caption{font:var(--t-caption);letter-spacing:0}
.t-micro{font:var(--t-micro);letter-spacing:.01em}
.t-kpi{font:var(--t-kpi);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 32}
.t-kpi-sm{font:var(--t-kpi-sm);letter-spacing:-.012em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 24}
.t-mono{font:var(--t-mono)}
.t-eyebrow{font:var(--t-small);color:var(--text-3);margin:0}
.t-muted{color:var(--text-3)}

/* focus (spec 2.6) */
:where(a,button,[role=button],[role=tab],[role=option],[role=radio],[role=switch],summary,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--green-600);outline-offset:2px}
.uk-field input:focus-visible,.uk-field textarea:focus-visible,.uk-listbox-trigger:focus-visible{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px var(--focus-ring)}
.uk-btn--primary:focus-visible{outline:none;box-shadow:0 0 0 2px var(--gray-0),0 0 0 4px var(--green-600)}
:where(h1,h2,h3,h4,[tabindex="-1"]):focus{outline:none}

.uk-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.uk-sr-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:inherit;z-index:2;appearance:none;border:0}
.uk-sr-input:focus-visible{outline:none}

@keyframes uk-spin{to{transform:rotate(360deg)}}
@keyframes uk-pop{from{opacity:0;transform:scale(.97)}}
@keyframes uk-pop-above{from{opacity:0;transform:scale(.97) translateY(4px)}}
@keyframes uk-fade-in{from{opacity:0}}
@keyframes uk-fade-out{to{opacity:0}}
@keyframes uk-rise{from{opacity:0;transform:translateY(8px)}}
@keyframes uk-flash{from{background-color:var(--flash)}to{background-color:transparent}}
@keyframes uk-ring-flash{0%{box-shadow:0 0 0 0 var(--focus-ring)}30%{box-shadow:0 0 0 6px var(--focus-ring)}100%{box-shadow:0 0 0 0 transparent}}
@keyframes uk-shimmer{from{background-position:150% 0}to{background-position:-50% 0}}
@keyframes uk-check-pop{from{transform:scale(.4);opacity:0}}
.is-flash{animation:uk-flash 900ms var(--ease-out)}
.is-flash .uk-input-group,.is-flash .uk-listbox-trigger{animation:uk-ring-flash 900ms var(--ease-out)}

.uk-icon{flex:none;display:inline-block;vertical-align:middle}
.uk-icon *{vector-effect:non-scaling-stroke}
.uk-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:var(--r-full);background:var(--neutral-solid)}
.uk-dot--success{background:var(--success-solid)}.uk-dot--warning{background:var(--warning-solid)}.uk-dot--danger{background:var(--danger-solid)}.uk-dot--info{background:var(--info-solid)}.uk-dot--brand{background:var(--green-500)}

/* generic card surfaces */
.uk-card{--card-pad:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--card-pad);min-width:0}
.uk-card--compact{--card-pad:16px}.uk-card--section{--card-pad:24px}.uk-card--paper{--card-pad:32px}
@media (max-width:767px){.uk-card--section{--card-pad:16px}}
.uk-card--link{display:block;color:inherit;text-decoration:none;transition:box-shadow 200ms var(--ease-out),transform 200ms var(--ease-out),border-color 200ms var(--ease-out)}
.uk-card--link:hover{box-shadow:var(--shadow-raised);transform:translateY(-1px);border-color:var(--border-strong);transition-duration:var(--dur-2)}
.uk-card--link:active{transform:scale(.985)}
.uk-plate{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--r-md);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border);color:var(--text-2)}
.uk-plate--sm{width:32px;height:32px;border-radius:var(--r-sm)}
.uk-divider{height:1px;border:0;margin:0;background:var(--border)}

/* --------------------------------------------------------------- buttons */
.uk-btn{--btn-h:var(--h-md);appearance:none;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--btn-h);padding:0 14px;margin:0;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--text-1);font:500 14px/20px var(--font-sans);letter-spacing:-.003em;text-decoration:none;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;transition:background-color 200ms var(--ease-out),border-color 200ms var(--ease-out),color 200ms var(--ease-out),box-shadow 200ms var(--ease-out),transform var(--dur-1) var(--ease-out),opacity 200ms var(--ease-out)}
.uk-btn:hover{transition-duration:var(--dur-2),var(--dur-2),var(--dur-2),var(--dur-2),var(--dur-1),var(--dur-2)}
.uk-btn:active:not(:disabled):not([aria-disabled=true]){transform:scale(.97)}
.uk-btn--sm{--btn-h:var(--h-sm);padding:0 10px;font-size:13px;line-height:18px;gap:5px}
.uk-btn--md{--btn-h:36px}
.uk-btn--lg{--btn-h:var(--h-lg);padding:0 18px;font-size:15px;line-height:22px;gap:8px}
@media (pointer:coarse){.uk-btn--md{--btn-h:44px}}
.uk-btn--block{display:flex;width:100%}
.uk-btn__label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.uk-btn__icon{flex:none}
.uk-btn--primary{background:var(--primary);color:var(--on-accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 1px 2px rgba(15,90,52,.24)}
.uk-btn--primary:hover{background:var(--primary-hover)}
.uk-btn--primary:active{background:var(--primary-pressed)}
.uk-btn--secondary{background:var(--surface);border-color:var(--border-interactive);color:var(--text-1);box-shadow:var(--shadow-xs)}
.uk-btn--secondary .uk-icon{color:var(--text-2)}
.uk-btn--secondary:hover{background:var(--gray-50);border-color:var(--gray-600)}
.uk-btn--secondary:active{background:var(--hover)}
.uk-btn--ghost{color:var(--text-2)}
.uk-btn--ghost:hover{background:var(--hover);color:var(--text-1)}
.uk-btn--ghost:active{background:var(--pressed)}
.uk-btn--graphite{background:var(--gray-900);color:var(--on-accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 2px rgba(24,24,27,.2)}
.uk-btn--graphite:hover{background:var(--gray-800)}
.uk-btn--graphite:active{background:var(--gray-700)}
.uk-btn--danger{background:var(--surface);border-color:var(--danger-border);color:var(--danger-text);box-shadow:var(--shadow-xs)}
.uk-btn--danger:hover{background:var(--danger-bg);border-color:var(--danger-text)}
.uk-btn--danger-solid{background:var(--danger-solid);color:var(--on-accent)}
.uk-btn--danger-solid:hover{background:var(--danger-text)}
.uk-btn--link{--btn-h:auto;height:auto;padding:0;border:0;border-radius:var(--r-2xs);color:var(--link);box-shadow:none}
.uk-btn--link:hover{text-decoration:underline;text-underline-offset:3px}
.uk-btn--link:active:not(:disabled){transform:none}
.uk-btn:disabled,.uk-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.uk-btn--icon{width:var(--btn-h);padding:0}
.uk-btn--icon.uk-btn--ghost{color:var(--text-3)}
.uk-btn--icon.uk-btn--ghost:hover{color:var(--text-1)}
@media (max-width:767px){.uk-btn--icon.uk-btn--sm::before,.uk-btn--icon.uk-btn--md::before{content:"";position:absolute;inset:calc((var(--btn-h) - 44px) / 2)}}
.uk-btn.is-loading{cursor:progress}
.uk-btn.is-loading .uk-btn__label,.uk-btn.is-loading>.uk-btn__icon{visibility:hidden}
.uk-btn__spinner{position:absolute;inset:0;display:grid;place-items:center}
.uk-btn__spinner .uk-icon{animation:uk-spin 800ms linear infinite}
.uk-link{appearance:none;border:0;background:none;padding:0;margin:0;font:500 13px/18px var(--font-sans);color:var(--link);cursor:pointer;text-decoration:none;border-radius:var(--r-2xs)}
.uk-link:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------------------------------------------------------- vendor marks */
.uk-mark{display:inline-block;flex:none;vertical-align:middle}
.uk-mark--chatgpt,.uk-mark--grok{color:var(--gray-900)}
.uk-mark-plate{--plate-bg:var(--gray-50);display:inline-grid;place-items:center;flex:none;width:var(--plate);height:var(--plate);border-radius:var(--r-md);background:var(--plate-bg);box-shadow:inset 0 0 0 1px var(--plate-ring);overflow:hidden;position:relative;vertical-align:middle}
.uk-mark-plate[style*="--plate:32px"]{border-radius:var(--r-sm)}
.uk-mark-plate>svg{display:block}
.uk-mark-plate--chatgpt{--plate-bg:var(--plate-chatgpt)}
.uk-mark-plate--claude{--plate-bg:var(--plate-claude)}
.uk-mark-plate--grok{--plate-bg:var(--plate-grok)}
.uk-mark-plate--perplexity{--plate-bg:var(--plate-perplexity)}
.uk-mark-fallback{display:inline-grid;place-items:center;color:var(--text-3)}
/* Avatar-style stack: circles with a 2px surface ring, later marks on top, 4px overlap. Glyphs sit 6px inside each circle
   (12px in 24), so the overlap plus the ring never touches a mark. */
.uk-stack{display:inline-flex;align-items:center;vertical-align:middle;isolation:isolate}
.uk-stack .uk-stack__item{position:relative;z-index:var(--i,0);display:inline-grid;place-items:center;flex:none;width:var(--stack);height:var(--stack);border-radius:var(--r-full);background:var(--plate-bg,var(--gray-50));box-shadow:0 0 0 2px var(--gray-0);overflow:hidden}
.uk-stack .uk-stack__item::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--plate-ring);pointer-events:none}
.uk-stack .uk-stack__item+.uk-stack__item{margin-left:-4px}
.uk-stack .uk-stack__item>svg{display:block}

/* ---------------------------------------------------------------- fields */
.uk-field{display:flex;flex-direction:column;gap:6px;min-width:0;position:relative;border-radius:var(--r-md)}
.uk-field__label{display:flex;align-items:baseline;gap:6px;font:500 13px/18px var(--font-sans);color:var(--text-1);letter-spacing:0}
.uk-field__req,.uk-field__opt{font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-field__hint{display:flex;gap:6px;align-items:flex-start;margin:0;font:400 12px/16px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-field__hint .uk-icon{margin-top:1px}
.uk-field__error{display:flex;gap:6px;align-items:flex-start;margin:0;font:500 12px/16px var(--font-sans);color:var(--danger-text);letter-spacing:0}
.uk-field__error .uk-icon{margin-top:1px}
.uk-field__aux{display:flex;align-items:center;gap:10px;flex-wrap:wrap;order:1}
.uk-field__row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.uk-field__counter{font:500 12px/16px var(--font-sans);color:var(--text-3);white-space:nowrap}
.uk-input-group{position:relative;display:flex;align-items:center;height:var(--h-field);min-width:0;background:var(--surface);border:1px solid var(--border-interactive);border-radius:var(--r-md);box-shadow:var(--shadow-xs);transition:border-color 200ms var(--ease-out),box-shadow 200ms var(--ease-out),background-color 200ms var(--ease-out)}
.uk-input-group:hover{border-color:var(--gray-600);transition-duration:var(--dur-2)}
.uk-input-group:focus-within{border-color:var(--green-500);box-shadow:0 0 0 3px var(--focus-ring)}
.uk-input-group>input,.uk-input-group>textarea{flex:1 1 auto;min-width:0;width:100%;height:100%;margin:0;border:0;border-radius:inherit;background:transparent;padding:0 12px;font:400 16px/24px var(--font-sans);letter-spacing:-.006em;color:var(--text-1);outline:none;box-shadow:none;appearance:none}
.uk-input-group>input:focus-visible,.uk-input-group>textarea:focus-visible{outline:none;box-shadow:none}
.uk-input-group>input::placeholder,.uk-input-group>textarea::placeholder{color:var(--text-placeholder);opacity:1}
.uk-input-group>input[data-uk-number]{font-variant-numeric:tabular-nums}
.uk-input-group>input:disabled,.uk-input-group>textarea:disabled{color:var(--text-3);cursor:not-allowed}
.uk-input-group:has(>input:disabled){background:var(--gray-50);box-shadow:none}
.uk-field[data-invalid] .uk-input-group{border-color:var(--danger-solid)}
.uk-field[data-invalid] .uk-input-group:focus-within{box-shadow:0 0 0 3px var(--danger-ring)}
.uk-affix{flex:none;color:var(--text-3);font:400 16px/24px var(--font-sans);user-select:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.uk-affix--prefix{padding-left:12px}
.uk-affix--suffix{padding:0 12px 0 1px}
/* One alignment for numbers: left-aligned and tabular, the affix about 2px from the value ("$2,400", "42%"; the suffix pads 1px
   because the caret and the glyph's side bearing add the rest); only steppers centre.
   A suffix hugs the value by sizing the input to its content; without field-sizing the value and unit sit together on the right. */
.uk-input-group>.uk-affix--prefix+input{padding-left:2px}
.uk-input-group>input:has(+.uk-affix--suffix){padding-right:0}
@supports (field-sizing:content){
  .uk-input-group:not(.uk-input-group--stepper)>input:has(+.uk-affix--suffix){field-sizing:content;flex:0 1 auto;width:auto;min-width:1ch}
  .uk-input-group:not(.uk-input-group--stepper)>input:has(+.uk-affix--suffix)+.uk-affix--suffix{margin-right:auto}
}
@supports not (field-sizing:content){.uk-input-group>input[data-uk-number]:has(+.uk-affix--suffix){text-align:right}}
.uk-input-group:has(>input:placeholder-shown)>.uk-affix--suffix{visibility:hidden}
.uk-step{appearance:none;flex:none;display:grid;place-items:center;width:28px;height:28px;margin:0 4px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--text-2);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out);touch-action:manipulation}
.uk-step:hover{background:var(--hover);color:var(--text-1)}
.uk-step:active{background:var(--pressed);transform:scale(.94)}
.uk-step:disabled{opacity:.4;cursor:not-allowed}
@media (pointer:coarse){.uk-step{width:36px;height:36px;margin:0 3px}}
/* Stepper buttons are full-height segments with hairline separators, so they read as buttons, not glyphs. */
.uk-step[data-step]{align-self:stretch;width:36px;height:auto;margin:0;border:0 solid var(--border);border-radius:0}
.uk-step[data-step="-1"]{border-right-width:1px;border-radius:calc(var(--r-md) - 1px) 0 0 calc(var(--r-md) - 1px)}
.uk-step[data-step="1"]{border-left-width:1px;border-radius:0 calc(var(--r-md) - 1px) calc(var(--r-md) - 1px) 0}
.uk-step[data-step]:active{transform:none}
@media (pointer:coarse){.uk-step[data-step]{width:44px;height:auto;margin:0}}
.uk-input-group--stepper>input{text-align:center;padding:0 8px}
.uk-input-group--stepper>.uk-affix--prefix{padding-left:0}
.uk-input-group--stepper>.uk-affix--suffix{padding-right:0}
.uk-input-group--stepper>input[data-uk-number]:has(+.uk-affix--suffix){text-align:right;padding-right:0}
/* Browsers that size fields to content centre the value and its unit as one unit between the steppers. */
@supports (field-sizing:content){
  .uk-input-group--stepper>input[data-uk-number]{field-sizing:content;flex:0 1 auto;width:auto;min-width:2ch;margin-left:auto;margin-right:auto;padding:0 2px;text-align:center}
  .uk-input-group--stepper>input[data-uk-number]:has(+.uk-affix--suffix){margin-right:0;text-align:center}
  .uk-input-group--stepper>.uk-affix--suffix{margin-right:auto;padding-left:1px}
  .uk-input-group--stepper:has(>input:placeholder-shown)>.uk-affix--suffix{display:none}
  .uk-input-group--stepper:has(>input:placeholder-shown)>input[data-uk-number]{margin-right:auto}
}
/* Grouped display ("2,400") drawn over a canonical value ("2400"): FormData and .value never see the commas. */
.uk-number__display{position:absolute;top:0;bottom:0;display:flex;align-items:center;margin:0;overflow:visible;white-space:nowrap;pointer-events:none;font:400 16px/24px var(--font-sans);letter-spacing:-.006em;font-variant-numeric:tabular-nums;color:var(--text-1)}
.uk-input-group>input.is-grouped:not(:focus){color:transparent;-webkit-text-fill-color:transparent}
.uk-input-group:focus-within>.uk-number__display{visibility:hidden}
.uk-input-group:has(>input:disabled)>.uk-number__display{color:var(--text-3)}
.uk-field--w-sm .uk-input-group{width:140px;max-width:100%}
.uk-field--w-md .uk-input-group{width:200px;max-width:100%}
.uk-field--w-sm .uk-input-group--stepper{width:176px}
.uk-field--w-auto .uk-input-group--stepper{width:200px}
.uk-field--number.uk-field--w-auto .uk-input-group{max-width:240px}
.uk-field--w-full .uk-input-group{width:100%}
@media (min-width:1024px){
  .uk-field--compact{--h-field:32px}
  .uk-field--compact .uk-input-group>input,.uk-field--compact .uk-affix,.uk-field--compact .uk-listbox-trigger,.uk-field--compact .uk-number__display{font-size:14px;line-height:20px}
  .uk-field--compact .uk-step{width:26px;height:26px}
  .uk-field--compact .uk-step[data-step]{width:30px;height:auto}
}
.uk-input-group--area{height:auto;align-items:stretch}
.uk-input-group--area>textarea{padding:8px 12px;resize:none;min-height:64px;overflow:hidden;display:block}

/* slider */
/* Standard field anatomy: label on top, [range][number] on one row, hint below. In a column narrower than 480px the number
   moves onto the label row and the range runs full width beneath it (spec 3.7), so the track is never cramped. */
.uk-field--slider{container:uk-slider/inline-size;display:grid;grid-template-columns:minmax(0,1fr) 96px;column-gap:16px;row-gap:6px;align-items:center}
.uk-field--slider>.uk-field__label{grid-column:1/-1;grid-row:1}
.uk-field--slider>.uk-range{grid-column:1;grid-row:2}
.uk-field.uk-field--slider>.uk-input-group{grid-column:2;grid-row:2;width:96px;max-width:none}
.uk-field--slider>.uk-field__hint,.uk-field--slider>.uk-field__error,.uk-field--slider>.uk-field__aux{grid-column:1/-1}
@container uk-slider (max-width:480px){
  .uk-field--slider>.uk-field__label{grid-column:1;grid-row:1;align-self:center}
  .uk-field.uk-field--slider>.uk-input-group{grid-column:2;grid-row:1}
  .uk-field--slider>.uk-range{grid-column:1/-1;grid-row:2;margin-top:6px}
}
.uk-range{-webkit-appearance:none;appearance:none;width:100%;height:24px;margin:0;padding:0;background:transparent;cursor:pointer;outline:none;touch-action:pan-y}
.uk-range::-webkit-slider-runnable-track{height:4px;border-radius:var(--r-full);background:linear-gradient(90deg,var(--green-500) 0 var(--pct,0%),var(--gray-150) var(--pct,0%) 100%)}
.uk-range::-moz-range-track{height:4px;border-radius:var(--r-full);background:var(--gray-150)}
.uk-range::-moz-range-progress{height:4px;border-radius:var(--r-full);background:var(--green-500)}
.uk-range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--gray-0);border:1px solid var(--border-strong);box-shadow:0 1px 3px rgba(24,24,27,.12),var(--shadow-xs);transition:transform var(--dur-2) var(--ease-out)}
.uk-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--gray-0);border:1px solid var(--border-strong);box-shadow:0 1px 3px rgba(24,24,27,.12)}
.uk-range:active::-webkit-slider-thumb{transform:scale(1.22)}
.uk-range:active::-moz-range-thumb{transform:scale(1.22)}

/* search */
.uk-search{position:relative;display:flex;align-items:center;height:var(--h-field);min-width:0;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-xs);transition:border-color 200ms var(--ease-out),box-shadow 200ms var(--ease-out)}
.uk-search:hover{border-color:var(--gray-400)}
.uk-search:focus-within{border-color:var(--green-500);box-shadow:0 0 0 3px var(--focus-ring)}
.uk-search--lg{height:48px}
.uk-search__icon{position:absolute;left:12px;color:var(--text-3);pointer-events:none}
.uk-search input{appearance:none;-webkit-appearance:none;flex:1;min-width:0;height:100%;margin:0;padding:0 8px 0 38px;border:0;border-radius:inherit;background:transparent;font:400 16px/24px var(--font-sans);color:var(--text-1);outline:none}
.uk-search input:focus-visible{outline:none}
.uk-search input::placeholder{color:var(--text-placeholder)}
.uk-search input::-webkit-search-cancel-button,.uk-search input::-webkit-search-decoration{display:none;-webkit-appearance:none}
.uk-search__clear{appearance:none;position:relative;flex:none;display:grid;place-items:center;width:22px;height:22px;margin-right:9px;padding:0;border:0;border-radius:var(--r-full);background:var(--gray-150);color:var(--text-2);cursor:pointer}
/* Same hit-area rule the kit already uses for .uk-kpi__info: the dot stays 22px, the thumb gets 44px. */
.uk-search__clear::before{content:"";position:absolute;inset:-6px}
@media (pointer:coarse){.uk-search__clear::before{inset:-11px}}
.uk-search__clear:hover{background:var(--gray-200);color:var(--text-1)}
.uk-search__kbd{display:flex;gap:3px;margin-right:9px;pointer-events:none}
.uk-search.has-value .uk-search__kbd{display:none}
@media (max-width:767px){.uk-search__kbd{display:none}}

/* copy field and code boxes */
.uk-copy .uk-input-group{padding-right:4px}
.uk-copy .uk-input-group>input{text-overflow:ellipsis}
.uk-copy__mono{font:450 13px/20px var(--font-mono)!important;letter-spacing:0!important}
.uk-copy__lock{margin-left:12px;color:var(--text-3)}
.uk-copy__lock+input{padding-left:8px}
.uk-copy__button{flex:none;border-radius:var(--r-sm)}
.uk-copy__button.is-copied{color:var(--success-text);border-color:var(--success-border);background:var(--success-bg)}
.uk-copy__button.is-copied .uk-icon{color:var(--success-solid)}
.uk-copy__warning{color:var(--warning-text)}
.uk-code{display:flex;align-items:center;gap:8px;max-width:100%}
.uk-code__box{display:grid;place-items:center;flex:1 1 0;min-width:0;max-width:44px;height:52px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-xs);font:500 28px/32px var(--font-sans);letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--text-1)}
.uk-code__sep{flex:0 0 12px;height:2px;border-radius:1px;background:var(--text-3)}
@media (max-width:420px){.uk-code{gap:5px}.uk-code__box{height:44px;font-size:22px;border-radius:var(--r-sm)}.uk-code__sep{flex-basis:8px}}

/* ------------------------------------------------------------- segmented */
.uk-seg{display:block;min-width:0;margin:0;padding:0;border:0}
.uk-seg__legend{float:left;width:100%;margin:0 0 6px;padding:0;font:500 13px/18px var(--font-sans);color:var(--text-1);letter-spacing:0}
.uk-seg__legend+.uk-seg__track{clear:both}
/* The track is an interactive control, so its edge carries --border-interactive like every other one. Its --gray-150
   fill alone measured 1.22:1 on white, which is where a segmented control starts and stops (WCAG 1.4.11). */
.uk-seg__track{position:relative;display:inline-flex;align-items:stretch;max-width:100%;height:36px;padding:3px;border-radius:var(--r-md);background:var(--gray-150);box-shadow:inset 0 0 0 1px var(--border-interactive),var(--shadow-inset);vertical-align:top}
.uk-seg--sm .uk-seg__track{height:28px;padding:2px;border-radius:var(--r-sm)}
.uk-seg--block .uk-seg__track{display:flex;width:100%}
.uk-seg--block .uk-seg__item{flex:1 1 0}
.uk-seg__item{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:0 12px;border-radius:var(--r-sm);color:var(--text-2);font:500 14px/20px var(--font-sans);letter-spacing:-.003em;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:color 200ms var(--ease-out),background-color 200ms var(--ease-out)}
.uk-seg--sm .uk-seg__item{padding:0 10px;font-size:13px;line-height:18px;border-radius:6px}
.uk-seg__item:hover{color:var(--text-1);transition-duration:var(--dur-2)}
.uk-seg__item .uk-icon{color:var(--text-3)}
.uk-seg__item:has(input:checked){color:var(--text-1);font-weight:600}
.uk-seg__item:has(input:checked) .uk-icon{color:var(--text-1)}
.uk-seg__item:has(input:focus-visible){outline:2px solid var(--green-600);outline-offset:-2px}
.uk-seg--sm .uk-seg__item:has(input:focus-visible){outline-offset:-1px}
.uk-seg__item.is-disabled{opacity:.45;cursor:not-allowed}
.uk-seg__text,.uk-chip__text,.uk-tabs__label{display:inline-grid;min-width:0}
.uk-seg__text::after,.uk-chip__text::after{content:attr(data-label);height:0;visibility:hidden;overflow:hidden;font-weight:600;user-select:none;pointer-events:none}
.uk-seg__thumb{position:absolute;z-index:0;left:0;top:3px;width:0;height:calc(100% - 6px);border-radius:var(--r-sm);background:var(--gray-0);box-shadow:0 0 0 1px var(--border),0 1px 2px rgba(24,24,27,.06),0 1px 1px rgba(24,24,27,.03);pointer-events:none;will-change:transform}
.uk-seg--sm .uk-seg__thumb{border-radius:6px}
/* Touch: a 36px track (28px when small) is under the 44px minimum, so each item carries a transparent vertical
   hit extension the way chips do (spec 2.3). The track keeps its drawn height, so no layout moves. */
@media (pointer:coarse){
  .uk-seg__item::before{content:"";position:absolute;inset:-8px 0}
  .uk-seg--sm .uk-seg__item::before{inset:-10px 0}
}
.uk-seg.is-ready .uk-seg__thumb{transition:transform var(--dur-3) var(--ease-out),width var(--dur-3) var(--ease-out)}
.uk-seg:not(.is-ready) .uk-seg__thumb{opacity:0}
.uk-seg:not(.is-ready) .uk-seg__item:has(input:checked){background:var(--gray-0);box-shadow:0 0 0 1px var(--border),0 1px 2px rgba(24,24,27,.06)}
/* labels do not fit: wrap into option chips */
.uk-seg--wrap .uk-seg__track{display:flex;flex-wrap:wrap;gap:8px;height:auto;padding:0;background:none;box-shadow:none}
.uk-seg--wrap .uk-seg__thumb{display:none}
.uk-seg--wrap .uk-seg__item,.uk-seg--wrap:not(.is-ready) .uk-seg__item:has(input:checked){flex:0 0 auto;height:32px;padding:0 12px;border-radius:var(--r-full);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}
.uk-seg--wrap .uk-seg__item:hover{background:var(--hover)}
.uk-seg--wrap .uk-seg__item:has(input:checked){background:var(--selected-bg);box-shadow:inset 0 0 0 1px var(--green-500);color:var(--green-900)}

/* ---------------------------------------------------------- option cards */
.uk-cards{display:grid;grid-template-columns:repeat(var(--cols-base,1),minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:0;border:0}
@media (min-width:640px){.uk-cards{grid-template-columns:repeat(var(--cols-sm,2),minmax(0,1fr))}}
@media (min-width:1024px){.uk-cards{grid-template-columns:repeat(var(--cols-lg,3),minmax(0,1fr))}}
.uk-card-option{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) 20px;grid-template-rows:auto 1fr;column-gap:14px;align-items:start;min-height:72px;padding:16px;border-radius:var(--r-lg);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-interactive),var(--shadow-card);color:var(--text-1);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:box-shadow 200ms var(--ease-out),background-color 200ms var(--ease-out),transform 200ms var(--ease-out)}
.uk-card-option:not(:has(.uk-card-option__lead)){grid-template-columns:minmax(0,1fr) 20px}
.uk-cards--lg .uk-card-option{min-height:88px;padding:18px}
.uk-card-option:has(input:checked){background:var(--selected-bg);box-shadow:inset 0 0 0 1.5px var(--selected-border)}
/* Hover lifts the card (fill, stronger hairline, raised shadow, 1px rise); a selected card keeps its ring and only rises. */
.uk-card-option:not(.is-disabled):hover{transform:translateY(-1px);transition-duration:var(--dur-2)}
.uk-card-option:not(.is-disabled):not(:has(input:checked)):hover{background:var(--gray-50);box-shadow:inset 0 0 0 1px var(--gray-600),var(--shadow-raised)}
.uk-card-option:active:not(.is-disabled){transform:scale(.985);transition-duration:var(--dur-1)}
/* Focus is the global outline (spec 2.6), outside the card, so it never reads as the inset selection ring. */
.uk-card-option:has(input:focus-visible){outline:2px solid var(--green-600);outline-offset:2px}
.uk-card-option.is-disabled{opacity:.6;cursor:not-allowed}
.uk-card-option.is-disabled:hover{background:var(--surface);box-shadow:inset 0 0 0 1px var(--border),var(--shadow-card)}
.uk-card-option__lead{grid-row:1/span 2;display:flex}
.uk-card-option__lead .uk-plate{background:var(--surface);transition:color 200ms var(--ease-out)}
.uk-card-option:has(input:checked) .uk-card-option__lead .uk-plate{color:var(--green-500);box-shadow:inset 0 0 0 1px var(--green-100)}
.uk-card-option__text{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:1px}
.uk-card-option__title{font:600 15px/22px var(--font-sans);letter-spacing:-.006em;color:var(--text-1)}
.uk-card-option__desc{font:400 14px/20px var(--font-sans);letter-spacing:-.003em;color:var(--text-3);text-wrap:pretty}
/* A selected card is tinted, so an untoned pill on it lifts to the surface colour. A pill that carries a tone keeps
   that tone: a 'Ready' or 'Needs work' badge must not turn white just because its card is the chosen one. */
.uk-card-option:has(input:checked) .uk-card-option__meta .uk-pill:not(:is(.uk-pill--success,.uk-pill--warning,.uk-pill--danger,.uk-pill--info,.uk-pill--draft,.uk-pill--awaiting,.uk-pill--changes,.uk-pill--accepted,.uk-pill--implemented,.uk-pill--verified,.uk-pill--stale,.uk-pill--locked)){--pill-bg:var(--surface)}
.uk-card-option__meta{grid-column:-3/-2;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px;font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-card-option__reason{color:var(--text-2)}
.uk-card-option__check{grid-column:-2;grid-row:1;display:grid;place-items:center;width:20px;height:20px;margin-top:1px;border-radius:var(--r-full);background:var(--gray-0);box-shadow:inset 0 0 0 1px var(--border-strong);color:transparent;transition:background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}
.uk-cards--multi .uk-card-option__check{border-radius:var(--r-xs)}
.uk-card-option:has(input:checked) .uk-card-option__check{background:var(--green-500);box-shadow:none;color:var(--on-accent)}
.uk-card-option:has(input:checked) .uk-card-option__check .uk-icon{animation:uk-check-pop var(--dur-3) var(--ease-spring)}
.uk-card-option:not(.uk-cards--multi *) .uk-card-option__check .uk-icon{width:12px;height:12px}
.uk-card-option .uk-card-option__check.is-locked{background:transparent;box-shadow:none;color:var(--text-3)}
.uk-card-option .uk-card-option__check.is-locked .uk-icon{width:14px;height:14px}

/* ----------------------------------------------------------------- chips */
.uk-chips{display:flex;flex-wrap:wrap;gap:12px;min-width:0}
.uk-chips--quick{gap:8px}
.uk-chip{appearance:none;position:relative;display:inline-flex;align-items:center;gap:6px;height:32px;margin:0;padding:0 12px;border:0;border-radius:var(--r-full);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-interactive);color:var(--text-2);font:500 14px/20px var(--font-sans);letter-spacing:-.003em;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-decoration:none;flex:none;scroll-snap-align:start;transition:background-color 200ms var(--ease-out),box-shadow 200ms var(--ease-out),color 200ms var(--ease-out),transform var(--dur-1) var(--ease-out)}
.uk-chip--sm{height:28px;padding:0 10px;font-size:13px;line-height:18px;gap:5px}
.uk-chip:hover{background:var(--hover);color:var(--text-1);transition-duration:var(--dur-2)}
.uk-chip:active{transform:scale(.97)}
.uk-chip .uk-icon{color:var(--text-3)}
.uk-chip:has(input:checked){background:var(--selected-bg);box-shadow:inset 0 0 0 1px var(--green-500);color:var(--green-900);font-weight:600}
.uk-chip:has(input:checked) .uk-icon{color:var(--green-500)}
.uk-chip:has(input:focus-visible){outline:2px solid var(--green-600);outline-offset:2px}
.uk-chip.is-disabled{opacity:.45;cursor:not-allowed}
/* Touch: extend every chip's hit area to 44px tall without changing its drawn size (spec 2.3). */
@media (pointer:coarse){.uk-chip::before{content:"";position:absolute;inset:-6px 0}.uk-chip--sm::before{inset:-8px 0}.uk-chips,.uk-chips--quick{row-gap:16px}}
.uk-chip__count{margin-right:-4px}
.uk-chip__thumb{display:inline-block;width:20px;height:20px;margin-left:-6px;border-radius:22%;overflow:hidden;flex:none}
.uk-chip__thumb img{display:block;width:128%;height:128%;margin:-14%;object-fit:cover}
.uk-chips--scroll-always,.uk-chips--scroll-always{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px;margin:-2px;-webkit-mask-image:linear-gradient(90deg,transparent 0,black 24px,black calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent 0,black 24px,black calc(100% - 24px),transparent)}
/* Phone scrollers bleed to the card or page edge (both 16px there) so chips run off-screen instead of stopping short. */
@media (max-width:767px){.uk-chips--scroll-phone{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;gap:8px;padding:2px 16px;margin:-2px -16px;scroll-padding-inline:16px;-webkit-mask-image:linear-gradient(90deg,transparent 0,black 16px,black calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent 0,black 16px,black calc(100% - 24px),transparent)}}
.uk-chips--scroll-phone::-webkit-scrollbar,.uk-chips--scroll-always::-webkit-scrollbar{display:none}
/* A chip row that scrolls computes overflow-y:auto too, so it clipped the ::before that makes the target 44px tall.
   Give the scroller that room back and pull it out again with a negative margin, so the row keeps its height. */
@media (pointer:coarse){.uk-chips--scroll-always{padding-block:8px;margin-block:-8px}}
@media (pointer:coarse) and (max-width:767px){.uk-chips--scroll-phone{padding-block:8px;margin-block:-8px}}

/* --------------------------------------------------------------- listbox */
.uk-listbox{--lb-h:var(--h-field);position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}
.uk-listbox--compact{--lb-h:32px}
.uk-listbox__label{font:500 13px/18px var(--font-sans);color:var(--text-1);letter-spacing:0}
.uk-listbox-trigger{appearance:none;display:flex;align-items:center;gap:8px;width:100%;height:var(--lb-h);min-width:0;margin:0;padding:0 10px 0 12px;border:1px solid var(--border-interactive);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-xs);color:var(--text-1);font:400 16px/24px var(--font-sans);letter-spacing:-.006em;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color 200ms var(--ease-out),box-shadow 200ms var(--ease-out),background-color 200ms var(--ease-out)}
.uk-listbox--compact .uk-listbox-trigger{font-size:14px;line-height:20px;padding:0 8px 0 10px}
.uk-listbox-trigger:hover{border-color:var(--gray-600);transition-duration:var(--dur-2)}
.uk-listbox.is-open .uk-listbox-trigger{border-color:var(--green-500);box-shadow:0 0 0 3px var(--focus-ring)}
.uk-listbox-trigger:disabled{background:var(--gray-50);color:var(--text-3);cursor:not-allowed;box-shadow:none}
.uk-listbox__lead{display:inline-flex;flex:none;color:var(--text-2)}
.uk-listbox__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}
.uk-listbox__placeholder{color:var(--text-placeholder)}
.uk-listbox__chev{flex:none;color:var(--text-3);transition:transform var(--dur-3) var(--ease-out)}
.uk-listbox.is-open .uk-listbox__chev{transform:rotate(180deg)}
.uk-listbox__token{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 2px 0 8px;border-radius:var(--r-xs);background:var(--gray-100);font:500 13px/18px var(--font-sans);color:var(--text-1);flex:none}
.uk-listbox__token-x{display:grid;place-items:center;width:20px;height:20px;border-radius:5px;color:var(--text-3)}
.uk-listbox__token-x:hover{background:var(--gray-200);color:var(--text-1)}
.uk-listbox__panel{position:absolute;z-index:var(--z-popover);top:calc(100% + 4px);left:0;min-width:100%;max-width:min(420px,calc(100vw - 24px));max-height:320px;display:flex;flex-direction:column;padding:0 4px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-pop);transform-origin:top left;animation:uk-pop var(--dur-3) var(--ease-out)}
.uk-listbox__panel.is-above{top:auto;bottom:calc(var(--lb-h) + 4px);transform-origin:bottom left;animation-name:uk-pop-above}
@media (max-width:767px){.uk-listbox__panel{max-width:100%;width:100%}}
.uk-listbox__search-wrap{display:flex;align-items:center;gap:8px;flex:none;height:40px;margin:0 -4px;padding:0 12px;border-bottom:1px solid var(--border);color:var(--text-3)}
.uk-listbox__search{appearance:none;flex:1;min-width:0;height:100%;margin:0;padding:0;border:0;background:transparent;font:400 16px/24px var(--font-sans);color:var(--text-1);outline:none}
.uk-listbox__search:focus-visible{outline:none}
.uk-listbox__search::placeholder{color:var(--text-placeholder)}
.uk-listbox [role=listbox]{list-style:none;margin:0;padding:4px 0;overflow-y:auto;overscroll-behavior:contain;outline:none;scroll-padding-block:4px}
/* Edge fades appear only on the side that has more to scroll, so a row is never hard-clipped under the divider. */
.uk-listbox [role=listbox][data-fade="top"]{-webkit-mask-image:linear-gradient(transparent,black 12px);mask-image:linear-gradient(transparent,black 12px)}
.uk-listbox [role=listbox][data-fade="bottom"]{-webkit-mask-image:linear-gradient(black calc(100% - 12px),transparent);mask-image:linear-gradient(black calc(100% - 12px),transparent)}
.uk-listbox [role=listbox][data-fade="both"]{-webkit-mask-image:linear-gradient(transparent,black 12px,black calc(100% - 12px),transparent);mask-image:linear-gradient(transparent,black 12px,black calc(100% - 12px),transparent)}
.uk-listbox__opt,.uk-listbox__create{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px 6px 8px;border-radius:var(--r-sm);color:var(--text-1);font:400 14px/20px var(--font-sans);letter-spacing:-.003em;cursor:pointer;user-select:none;-webkit-user-select:none}
@media (max-width:767px),(pointer:coarse){.uk-listbox__opt,.uk-listbox__create{min-height:44px}}
.uk-listbox__opt[data-active],.uk-listbox__create[data-active]{background:var(--hover)}
.uk-listbox__opt[aria-selected=true]{font-weight:500}
.uk-listbox__opt[aria-disabled=true]{color:var(--text-3);cursor:not-allowed}
/* Lead column: 16px (empty when an option has no icon) + 8px gap puts every label 36px from the panel edge, level with the
   search text (12px padding + 16px icon + 8px gap). Lists of vendor marks reserve 20px. */
.uk-listbox__opt-icon{display:inline-grid;place-items:center;flex:none;width:16px;min-height:16px;color:var(--text-2)}
.uk-listbox:has(.uk-listbox__opt .uk-mark) .uk-listbox__opt-icon{width:20px}
.uk-listbox__opt-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.uk-listbox__opt-text small{font:400 12px/16px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-listbox__check{flex:none;display:grid;color:var(--green-600);visibility:hidden}
.uk-listbox__opt[aria-selected=true] .uk-listbox__check{visibility:visible}
.uk-listbox__box{display:grid;place-items:center;flex:none;width:16px;height:16px;border-radius:var(--r-2xs);box-shadow:inset 0 0 0 1px var(--border-strong);background:var(--surface);color:transparent}
.uk-listbox__opt[aria-selected=true] .uk-listbox__box{background:var(--green-500);box-shadow:none;color:var(--on-accent)}
.uk-listbox__group{padding:10px 10px 4px 8px;font:600 12px/16px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-listbox__group:first-child{padding-top:6px}
.uk-listbox__empty{padding:16px 10px;text-align:center;font:400 14px/20px var(--font-sans);color:var(--text-3)}
.uk-listbox__create{color:var(--link);font-weight:500}
.uk-listbox__create .uk-listbox__opt-icon{color:var(--link)}
.uk-listbox__create-form{display:flex;gap:6px;padding:4px}
.uk-listbox__create-input{flex:1;min-width:0;height:32px;padding:0 10px;border:1px solid var(--green-500);border-radius:var(--r-sm);box-shadow:0 0 0 3px var(--focus-ring);font:400 16px/24px var(--font-sans);color:var(--text-1);outline:none}
.uk-listbox__create-form .uk-btn{height:32px}

/* ---------------------------------------------------------------- switch */
.uk-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.uk-switch-row.is-disabled{cursor:not-allowed}
.uk-switch-row__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.uk-switch-row__label{font:500 14px/20px var(--font-sans);color:var(--text-1);letter-spacing:-.003em}
.uk-switch-row__text small{font:400 13px/18px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-switch-row__text small.uk-switch-row__reason{display:flex;align-items:center;gap:4px;margin-top:4px;font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:32px;height:20px;margin:0;border:0;border-radius:var(--r-full);background:var(--gray-300);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}
.uk-switch::before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--gray-0);box-shadow:0 1px 2px rgba(24,24,27,.2),0 0 0 .5px rgba(24,24,27,.04);transition:transform var(--dur-2) var(--ease-out)}
.uk-switch:hover{background:var(--gray-400)}
.uk-switch:checked{background:var(--green-500)}
.uk-switch:checked:hover{background:var(--green-600)}
.uk-switch:checked::before{transform:translateX(12px)}
.uk-switch:active::before{width:19px}
.uk-switch:checked:active::before{transform:translateX(9px)}
.uk-switch:disabled{opacity:.5;cursor:not-allowed}

/* ------------------------------------------------------------ date field */
.uk-date .uk-input-group{max-width:240px}
.uk-date--range .uk-input-group{max-width:420px}
.uk-date .uk-input-group>input{font-variant-numeric:tabular-nums}
.uk-date__pair>input{text-align:left}
.uk-date__pair>input+.uk-date__sep+input{padding-left:8px}
.uk-date__sep{flex:none;color:var(--text-3);display:inline-flex}
.uk-date__button{color:var(--text-3)}
.uk-date.is-open .uk-date__button{background:var(--pressed);color:var(--text-1)}
.uk-date.is-open>.uk-input-group{border-color:var(--green-500);box-shadow:0 0 0 3px var(--focus-ring)}
.uk-cal__foot [data-today]{color:var(--link)}
.uk-cal__foot [data-today]:hover{color:var(--green-800)}
.uk-cal{position:absolute;z-index:var(--z-popover);left:0;padding:12px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-pop);transform-origin:top left;animation:uk-pop var(--dur-3) var(--ease-out)}
.uk-cal.is-above{transform-origin:bottom left;animation-name:uk-pop-above}
.uk-cal.is-end{left:auto;right:0}
.uk-cal__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}
.uk-cal__head strong{font:600 14px/20px var(--font-sans);color:var(--text-1);letter-spacing:-.003em}
.uk-cal__nav{appearance:none;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);cursor:pointer}
.uk-cal__nav:hover{background:var(--hover);color:var(--text-1)}
.uk-cal__months{display:flex;gap:24px}
.uk-cal__title{display:none}
.uk-cal table{border-collapse:separate;border-spacing:0 2px;table-layout:fixed}
.uk-cal th{width:36px;height:28px;padding:0;font:500 11px/14px var(--font-sans);color:var(--text-3);text-align:center;letter-spacing:.01em}
.uk-cal td{width:36px;height:36px;padding:0;text-align:center}
.uk-cal__day{appearance:none;display:grid;place-items:center;width:32px;height:32px;margin:0 auto;padding:0;border:0;border-radius:var(--r-full);background:transparent;color:var(--text-1);font:500 14px/20px var(--font-sans);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}
.uk-cal__day:hover{background:var(--hover)}
.uk-cal__day.is-outside{color:var(--text-placeholder)}
.uk-cal__day.is-today{box-shadow:inset 0 0 0 1px var(--green-500);color:var(--green-700);font-weight:600}
.uk-cal__day[aria-selected=true]{background:var(--green-600);color:var(--on-accent);box-shadow:none;font-weight:600}
.uk-cal__day:disabled{color:var(--gray-300);cursor:not-allowed;background:transparent}
.uk-cal__day:focus-visible{outline:2px solid var(--green-600);outline-offset:1px}
.uk-cal td.is-between{background:var(--green-50)}
.uk-cal td.is-between .uk-cal__day{border-radius:0}
.uk-cal td[data-edge=start]{background:linear-gradient(90deg,transparent 50%,var(--green-50) 50%)}
.uk-cal td[data-edge=end]{background:linear-gradient(90deg,var(--green-50) 50%,transparent 50%)}
.uk-cal__foot{display:flex;justify-content:space-between;gap:8px;margin-top:6px;padding-top:8px;border-top:1px solid var(--border)}
@media (max-width:767px){
  /* On a phone the calendar is a bottom sheet, not a panel flipped above the field: above the field it lands under a
     sticky top bar and the customer never sees the month they opened. Folded in from the onboarding surface in wave 2. */
  .uk-date .uk-cal{position:fixed;left:0!important;right:0;top:auto!important;bottom:0!important;margin:0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-pop);transform-origin:bottom center}
  .uk-date .uk-cal table{margin:0 auto}
  .uk-cal{left:0;right:0;padding:10px}
  .uk-cal table{width:100%}
  .uk-cal th,.uk-cal td{width:auto}
  .uk-cal td{height:40px}
  /* 36px days inside 40px cells (narrower when the cell is), so today's ring and the selected fill never touch. */
  .uk-cal__day{width:calc(100% - 4px);max-width:36px;height:auto;aspect-ratio:1}
  .uk-cal__months>.uk-cal__month+.uk-cal__month{display:none}
}
.uk-time__row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.uk-time__value{font:600 15px/24px var(--font-sans);color:var(--text-1);margin-right:4px}
.uk-time__value.is-empty{font-weight:400;color:var(--text-3)}
.uk-time__manual{display:flex;flex-direction:column;gap:12px;margin-top:4px;padding:12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken)}
.uk-time__clock{display:flex;gap:12px;flex-wrap:wrap}

/* ------------------------------------------------------------- drop zone */
.uk-drop{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0}
.uk-drop>.uk-drop__input{position:absolute;inset:auto;width:1px;height:1px;opacity:0;overflow:hidden;clip-path:inset(50%);pointer-events:none}
.uk-drop__body{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:24px;border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface-sunken);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color 200ms var(--ease-out),background-color 200ms var(--ease-out)}
.uk-drop__body:hover{border-color:var(--gray-400);background:var(--gray-25);transition-duration:var(--dur-2)}
.uk-drop[data-over] .uk-drop__body{border-color:var(--green-500);background:var(--selected-bg)}
.uk-drop:has(.uk-drop__input:focus-visible) .uk-drop__body{outline:2px solid var(--green-600);outline-offset:2px}
.uk-plate--drop{margin-bottom:10px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border),var(--shadow-xs);transition:color 200ms var(--ease-out),transform 200ms var(--ease-spring)}
.uk-drop[data-over] .uk-plate--drop{color:var(--green-500);transform:translateY(-2px)}
.uk-drop__title{font:600 15px/22px var(--font-sans);color:var(--text-1);letter-spacing:-.006em}
.uk-drop__hint{font:400 13px/18px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-drop.has-file .uk-drop__body{flex-direction:row;gap:10px;padding:12px 16px}
.uk-drop.has-file .uk-plate--drop{display:none}
.uk-drop.has-file .uk-drop__hint{display:none}
.uk-drop.has-file .uk-drop__title{font:500 14px/20px var(--font-sans);color:var(--text-2)}
.uk-drop__file{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 8px 10px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-xs)}
.uk-drop__meta{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
.uk-drop__name{font:500 14px/20px var(--font-sans);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-drop__size{font:400 12px/16px var(--font-sans);color:var(--text-3)}
.uk-drop__status{order:5;flex-basis:100%;display:flex;align-items:center;gap:6px;padding-left:44px;font:500 13px/18px var(--font-sans)}
.uk-drop__status--success{color:var(--success-text)}.uk-drop__status--success .uk-icon{color:var(--success-solid)}
.uk-drop__status--warning{color:var(--warning-text)}.uk-drop__status--danger{color:var(--danger-text)}

/* ------------------------------------------------------------------ tabs */
.uk-tabs{position:relative;display:flex;align-items:stretch;gap:4px;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;box-shadow:inset 0 -1px 0 var(--border)}
.uk-tabs::-webkit-scrollbar{display:none}
.uk-tabs__tab{appearance:none;position:relative;display:inline-flex;align-items:center;gap:6px;flex:none;height:40px;margin:0;padding:0 12px;border:0;border-radius:var(--r-sm) var(--r-sm) 0 0;background:transparent;color:var(--text-3);font:500 14px/20px var(--font-sans);letter-spacing:-.003em;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color 200ms var(--ease-out)}
.uk-tabs__tab:hover{color:var(--text-1);transition-duration:var(--dur-2)}
.uk-tabs__tab[aria-selected=true]{color:var(--text-1)}
.uk-tabs__tab[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.uk-tabs__tab:focus-visible{outline-offset:-2px}
.uk-tabs__tab .uk-icon{color:var(--text-3)}
.uk-tabs__tab[aria-selected=true] .uk-icon{color:var(--text-1)}
.uk-tabs__indicator{position:absolute;left:0;bottom:0;width:0;height:2px;border-radius:var(--r-full);background:var(--gray-900);pointer-events:none}
.uk-tabs.is-ready .uk-tabs__indicator{transition:transform var(--dur-3) var(--ease-out),width var(--dur-3) var(--ease-out)}
.uk-tabs:not(.is-ready) .uk-tabs__indicator{opacity:0}
.uk-tabs--underline:not(.is-ready) .uk-tabs__tab[aria-selected=true]{box-shadow:inset 0 -2px 0 var(--gray-900)}
.uk-tabs--segmented{display:inline-flex;width:max-content;align-self:flex-start;gap:0;padding:3px;height:36px;border-radius:var(--r-md);background:var(--gray-150);box-shadow:var(--shadow-inset)}
.uk-tabs--segmented .uk-tabs__tab{z-index:1;height:auto;padding:0 12px;border-radius:var(--r-sm);color:var(--text-2)}
.uk-tabs--segmented .uk-tabs__tab[aria-selected=true]{color:var(--text-1);font-weight:600}
.uk-tabs--segmented .uk-tabs__indicator{top:3px;bottom:auto;height:auto;border-radius:var(--r-sm);background:var(--gray-0);box-shadow:0 0 0 1px var(--border),0 1px 2px rgba(24,24,27,.06);z-index:0}
.uk-tabs--segmented:not(.is-ready) .uk-tabs__tab[aria-selected=true]{background:var(--gray-0)}
@media (max-width:767px){.uk-tabs--underline{margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px;-webkit-mask-image:linear-gradient(90deg,black calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,black calc(100% - 24px),transparent)}}
.uk-tabpanel:focus-visible{outline-offset:4px;border-radius:var(--r-sm)}

/* ------------------------------------------------------------ disclosure */
.uk-disclosure{min-width:0;interpolate-size:allow-keywords}
.uk-disclosure>summary{box-sizing:border-box;list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border-radius:var(--r-md);color:var(--text-1);font:600 15px/22px var(--font-sans);letter-spacing:-.006em;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color 200ms var(--ease-out),color 200ms var(--ease-out)}
.uk-disclosure>summary::-webkit-details-marker{display:none}
.uk-disclosure>summary::marker{content:""}
.uk-disclosure>summary:hover{background:var(--hover);transition-duration:var(--dur-2)}
.uk-disclosure__lead{color:var(--text-3)}
.uk-disclosure__summary{flex:0 1 auto;min-width:0}
.uk-disclosure__meta{margin-left:auto;font:400 13px/18px var(--font-sans);color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.uk-disclosure__chev{flex:none;color:var(--text-3);transition:transform var(--dur-2) var(--ease-out)}
.uk-disclosure[open]>summary .uk-disclosure__chev{transform:rotate(90deg)}
.uk-disclosure__body{padding:4px 12px 16px}
.uk-disclosure::details-content{block-size:0;overflow:clip;transition:block-size var(--dur-4) var(--ease-in-out),content-visibility var(--dur-4) allow-discrete}
.uk-disclosure[open]::details-content{block-size:auto}
/* Row: text stays flush with the section; only the hover fill bleeds 12px either side. */
.uk-disclosure--row{border-bottom:1px solid var(--border)}
.uk-disclosure--row>summary{border-radius:var(--r-sm);padding:11px 12px;margin-inline:-12px}
.uk-disclosure--row>.uk-disclosure__body{padding:0 0 16px;font:var(--t-body);letter-spacing:-.006em;color:var(--text-2)}
.uk-accordion--row{border-top:1px solid var(--border)}
.uk-disclosure--card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card)}
.uk-disclosure--card>summary{padding:13px 16px;border-radius:calc(var(--r-lg) - 1px)}
.uk-disclosure--card[open]>summary{border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0}
.uk-disclosure--card>.uk-disclosure__body{padding:0 16px 16px;font:var(--t-body);letter-spacing:-.006em;color:var(--text-2)}
.uk-accordion--card{display:flex;flex-direction:column;gap:8px}
.uk-disclosure--plain>summary{min-height:32px;padding:6px 0;gap:6px;color:var(--text-2);font:500 13px/18px var(--font-sans);letter-spacing:0}
.uk-disclosure--plain>summary:hover{background:transparent;color:var(--text-1)}
.uk-disclosure--plain .uk-disclosure__summary{flex:none}
.uk-disclosure--plain .uk-disclosure__chev{order:-1;margin-left:-2px}
.uk-disclosure--plain .uk-disclosure__meta:empty{display:none}
.uk-disclosure--plain .uk-disclosure__lead{order:-2;display:none}
.uk-disclosure--plain .uk-disclosure__body{padding:6px 0 4px}

/* ----------------------------------------------------------------- pills */
.uk-pill{--pill-text:var(--neutral-text);--pill-bg:var(--neutral-bg);--pill-border:var(--neutral-border);display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;border:0;border-radius:var(--r-full);background:var(--pill-bg);color:var(--pill-text);font:500 13px/16px var(--font-sans);letter-spacing:0;white-space:nowrap;vertical-align:middle;flex:none}
.uk-pill:has(>.uk-icon){padding-left:7px}
.uk-pill--sm{height:20px;padding:0 8px;font-size:12px;gap:3px}
.uk-pill--sm:has(>.uk-icon){padding-left:6px}
.uk-pill--success{--pill-text:var(--success-text);--pill-bg:var(--success-bg);--pill-border:var(--success-border)}
.uk-pill--warning{--pill-text:var(--warning-text);--pill-bg:var(--warning-bg);--pill-border:var(--warning-border)}
.uk-pill--danger{--pill-text:var(--danger-text);--pill-bg:var(--danger-bg);--pill-border:var(--danger-border)}
.uk-pill--info{--pill-text:var(--info-text);--pill-bg:var(--info-bg);--pill-border:var(--info-border)}
.uk-pill--neutral{--pill-text:var(--neutral-text);--pill-bg:var(--neutral-bg);--pill-border:var(--neutral-border)}
.uk-pill--draft{--pill-text:var(--lc-draft-text);--pill-bg:var(--lc-draft-bg)}
.uk-pill--awaiting{--pill-text:var(--lc-awaiting-text);--pill-bg:var(--lc-awaiting-bg)}
.uk-pill--changes{--pill-text:var(--text-1);--pill-bg:var(--lc-changes-bg)}
.uk-pill--changes>.uk-icon{color:var(--lc-changes-text)}
.uk-pill--accepted{--pill-text:var(--lc-accepted-text);--pill-bg:var(--lc-accepted-bg)}
.uk-pill--implemented{--pill-text:var(--lc-implemented-text);--pill-bg:var(--lc-implemented-bg)}
.uk-pill--verified{--pill-text:var(--lc-verified-text);--pill-bg:var(--lc-verified-bg)}
.uk-pill--stale{--pill-text:var(--lc-stale-text);--pill-bg:var(--lc-stale-bg)}
.uk-pill--locked{--pill-text:var(--lc-locked-text);--pill-bg:var(--lc-locked-bg)}
:is(.uk-pill--draft,.uk-pill--awaiting,.uk-pill--changes,.uk-pill--accepted,.uk-pill--implemented,.uk-pill--verified,.uk-pill--stale,.uk-pill--locked){--pill-border:color-mix(in srgb,var(--pill-text) 16%,var(--pill-bg))}
/* One count badge, wherever it appears (spec 3.13 countBadge): 16px tall, 11/600, graphite on white with a hairline
   so it stays a pill on white, on the segmented track and inside a selected chip. Attention is the warning pair. */
.uk-count,.uk-seg__count,.uk-chip__count,.uk-tabs__count{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-full);background:var(--gray-0);box-shadow:inset 0 0 0 1px var(--border);color:var(--text-1);font:600 11px/14px var(--font-sans);letter-spacing:.01em;flex:none}
.uk-count--attention{background:var(--warning-bg);box-shadow:inset 0 0 0 1px var(--warning-border);color:var(--warning-text)}

/* ------------------------------------------------------------ page header */
/* One header shape for every surface (spec 4.2): eyebrow, title, one 640px description measure. Actions are not here;
   they go to the page bar through setPageActions, so the title never starts at a different x from one route to the next. */
.uk-page-head{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;padding-top:8px}
.uk-page-head--lead{grid-template-columns:72px minmax(0,1fr)}
.uk-page-head__text{min-width:0}
.uk-page-head__art{flex:none}
.uk-page-head__eyebrow{margin:0 0 6px;font:var(--t-small);letter-spacing:0;color:var(--text-3)}
.uk-page-head__eyebrow.is-link{color:var(--link)}
.uk-page-head__title{margin:0;font:var(--t-h1);letter-spacing:-.02em;font-variation-settings:"opsz" 32;color:var(--text-1);text-wrap:balance}
.uk-page-head__lead{margin:8px 0 0;max-width:640px;font:var(--t-body);letter-spacing:-.006em;color:var(--text-2);text-wrap:pretty}
.uk-page-head__meta{margin:8px 0 0;font:var(--t-caption);letter-spacing:0;color:var(--text-3)}
@media (max-width:767px){.uk-page-head--lead{grid-template-columns:56px minmax(0,1fr);gap:16px}}

/* ------------------------------------------------------------------- KPI */
/* Every tile has the same rows (label 18 · value 32 · foot 20), top-aligned, so values share one baseline across a strip. */
.uk-kpi{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;row-gap:6px;min-width:0;padding:20px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card)}
/* position/z-index: the explain button extends its hit area past this row, and the value below is a later sibling
   that would otherwise paint over that extension and swallow the tap. */
.uk-kpi__label{position:relative;z-index:1;display:flex;align-items:center;gap:6px;height:18px;min-width:0;font:500 13px/18px var(--font-sans);color:var(--text-3);letter-spacing:0;white-space:nowrap}
.uk-kpi__label>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* The Example pill sits in the label row, centred on the 18px line and inside the tile padding. */
.uk-kpi__label>.uk-pill{margin:-1px 0 -1px auto}
.uk-kpi__label>.uk-pill+.uk-kpi__info{margin-left:0}
.uk-kpi__info{appearance:none;display:grid;place-items:center;flex:none;width:20px;height:20px;margin:0 0 0 -2px;padding:0;border:0;border-radius:var(--r-full);background:transparent;color:var(--gray-400);cursor:pointer;position:relative}
.uk-kpi__info::before{content:"";position:absolute;inset:-6px}
@media (pointer:coarse){.uk-kpi__info::before{inset:-12px}}
.uk-kpi__info:hover,.uk-kpi__info[aria-expanded=true]{color:var(--text-1);background:var(--hover)}
.uk-kpi__value{margin:0;font:var(--t-kpi);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 32;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uk-kpi.is-unknown .uk-kpi__value{color:var(--text-3)}
/* Foot: [delta][label, truncates][sparkline, right] on one line; a target sits on its own line below. */
.uk-kpi__foot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:6px;row-gap:6px;min-height:20px;min-width:0}
.uk-kpi__foot>.uk-kpi__delta{grid-column:1;grid-row:1}
.uk-kpi__foot>.uk-kpi__delta-label{grid-column:2;grid-row:1}
.uk-kpi__foot>.uk-kpi__spark{grid-column:3;grid-row:1}
.uk-kpi__foot>.uk-kpi__target{grid-column:1/-1}
.uk-kpi__foot>.uk-kpi__target:first-child{grid-row:1;grid-column:1/3}
/* A delta is direction once: a 12px arrow and an unsigned value in the tone colour, no fill. */
.uk-kpi__delta{display:inline-flex;align-items:center;gap:2px;height:20px;padding:0;font:600 12px/16px var(--font-sans);letter-spacing:0;color:var(--text-3);white-space:nowrap}
.uk-kpi__delta--success{color:var(--success-text)}
.uk-kpi__delta--danger{color:var(--danger-text)}
.uk-kpi__delta-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-kpi__target{display:inline-flex;align-items:center;gap:4px;min-width:0;white-space:nowrap;font:500 12px/16px var(--font-sans);color:var(--text-2)}
.uk-kpi__target.is-pass{color:var(--success-text)}
.uk-kpi__target.is-fail{color:var(--danger-text)}
.uk-kpi__spark{display:inline-flex;justify-self:end;margin-left:auto}
.uk-kpi__needs{appearance:none;display:inline-flex;align-items:flex-start;gap:4px;justify-self:start;margin:0;padding:0;border:0;background:none;color:var(--link);font:500 13px/18px var(--font-sans);text-align:left;cursor:pointer;border-radius:var(--r-2xs)}
.uk-kpi__needs .uk-icon{margin-top:2px}
.uk-kpi__needs:hover{text-decoration:underline;text-underline-offset:3px}
.uk-kpi--sm{padding:14px 16px;row-gap:4px}
.uk-kpi--sm .uk-kpi__value{font:var(--t-kpi-sm);letter-spacing:-.012em;font-variation-settings:"opsz" 24}
.uk-kpi.is-changed{animation:uk-flash 400ms var(--ease-out)}
.uk-kpi.is-sample .uk-kpi__value{color:var(--text-2)}
/* Columns come from the strip's own width, and only in balanced counts (n, then half, then 2, then 1) with tiles of
   at least 200px: six tiles become 6, 3 × 2, 2 × 3 or a single column, never 5 + 1. --cols-lg is n, --cols-half is ceil(n/2). */
.uk-kpi-strip{--kpi-min:200px;--kpi-gap:12px;display:grid;gap:var(--kpi-gap);min-width:0;
  grid-template-columns:repeat(auto-fill,minmax(clamp(
    calc(100% / (var(--cols-lg,6) + 1) + .1%),
    calc((var(--cols-lg,6) * var(--kpi-min) + (var(--cols-lg,6) - 1) * var(--kpi-gap) - 100%) * 1000),
    clamp(
      calc(100% / (var(--cols-half,3) + 1) + .1%),
      calc((var(--cols-half,3) * var(--kpi-min) + (var(--cols-half,3) - 1) * var(--kpi-gap) - 100%) * 1000),
      clamp(calc(100% / 3 + .1%), calc((2 * var(--kpi-min) + var(--kpi-gap) - 100%) * 1000), 100%))
  ),1fr))}
@media (max-width:767px){
  /* Phone: a snap carousel that bleeds to the card edge and peeks the third tile, so more KPIs read as off-screen. */
  .uk-kpi-strip{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:150px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:-2px -16px;padding:2px 16px;scroll-padding-inline:16px;-webkit-mask-image:linear-gradient(90deg,black calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,black calc(100% - 24px),transparent)}
  .uk-kpi-strip::-webkit-scrollbar{display:none}
  .uk-kpi-strip>.uk-kpi{scroll-snap-align:start;padding:16px}
  /* 150px tiles: one-line labels that truncate, and the sparkline on its own row so it never runs into the border. */
  .uk-kpi-strip>.uk-kpi .uk-kpi__foot>.uk-kpi__delta-label{grid-column:1/-1;grid-row:2}
  .uk-kpi-strip>.uk-kpi .uk-kpi__foot>.uk-kpi__spark{grid-column:1/-1;grid-row:3;justify-self:start;width:72px;margin-left:0}
}
.uk-kpi-strip__sentinel{position:absolute;width:1px;height:1px;margin-top:-1px;pointer-events:none}
.uk-kpi-strip--sticky{position:sticky;top:var(--sticky-top);z-index:var(--z-sticky)}
.uk-kpi-strip--sticky.is-condensed{gap:0;padding:0 8px;border:1px solid var(--frost-border);border-radius:var(--r-lg);background:var(--frost-bg);-webkit-backdrop-filter:var(--frost-filter);backdrop-filter:var(--frost-filter);box-shadow:var(--shadow-raised)}
.uk-kpi-strip--sticky.is-condensed>.uk-kpi{display:flex;flex-direction:row;align-items:center;gap:8px;height:56px;padding:0 12px;border:0;border-radius:0;background:transparent;box-shadow:none}
.uk-kpi-strip--sticky.is-condensed .uk-kpi__value{font:var(--t-kpi-sm);font-variation-settings:"opsz" 24}
.uk-kpi-strip--sticky.is-condensed :is(.uk-kpi__foot,.uk-kpi__needs,.uk-kpi__info){display:none}

/* ----------------------------------------------- empty, banner, skeleton */
.uk-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px}
.uk-empty--lg{padding:64px 24px}
.uk-empty--bordered{border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface)}
.uk-empty__icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-sunken);color:var(--text-2);box-shadow:var(--shadow-xs)}
.uk-empty__title{margin:0;font:600 16px/24px var(--font-sans);letter-spacing:-.006em;color:var(--text-1);text-wrap:balance}
.uk-empty--lg .uk-empty__title{font:var(--t-h3);letter-spacing:-.01em;font-variation-settings:"opsz" 24}
.uk-empty__desc{max-width:400px;margin:4px 0 0;font:400 14px/22px var(--font-sans);color:var(--text-3);letter-spacing:-.003em;text-wrap:pretty}
.uk-empty__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}
/* Every tone is the same shape (spec 3.15): tone background, tone hairline, no shadow, no side rule. The 16px icon is the accent. */
.uk-banner{--tone-text:var(--info-text);--tone-bg:var(--info-bg);--tone-border:var(--info-border);--tone-solid:var(--info-solid);position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px 12px 12px 14px;border:1px solid var(--tone-border);border-radius:var(--r-lg);background:var(--tone-bg);box-shadow:none;color:var(--text-1)}
.uk-banner--success{--tone-text:var(--success-text);--tone-bg:var(--success-bg);--tone-border:var(--success-border);--tone-solid:var(--success-solid)}
.uk-banner--warning{--tone-text:var(--warning-text);--tone-bg:var(--warning-bg);--tone-border:var(--warning-border);--tone-solid:var(--warning-solid)}
.uk-banner--danger{--tone-text:var(--danger-text);--tone-bg:var(--danger-bg);--tone-border:var(--danger-border);--tone-solid:var(--danger-solid)}
.uk-banner--neutral{--tone-text:var(--neutral-text);--tone-bg:var(--surface-sunken);--tone-border:var(--border);--tone-solid:var(--neutral-solid)}
.uk-banner__icon{flex:none;margin-top:2px;color:var(--tone-solid)}
.uk-banner__text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.uk-banner__title{margin:0;font:600 14px/20px var(--font-sans);color:var(--text-1);letter-spacing:-.003em}
.uk-banner__body{margin:0;font:400 14px/20px var(--font-sans);color:var(--text-2);letter-spacing:-.003em;text-wrap:pretty}
.uk-banner__actions{display:flex;flex-wrap:wrap;gap:8px;align-self:center;flex:none}
.uk-banner>.uk-btn--icon{margin:-4px -4px -4px 0;align-self:center}
@media (max-width:767px){.uk-banner{flex-wrap:wrap}.uk-banner__text{flex-basis:calc(100% - 64px)}.uk-banner__actions{flex-basis:100%;padding-left:28px;order:3}.uk-banner>.uk-btn--icon{align-self:flex-start}}
.uk-skeleton{display:flex;gap:12px;min-width:0}
.uk-skeleton__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.uk-skel{display:block;border-radius:var(--r-sm);background-color:var(--gray-150);background-image:linear-gradient(90deg,transparent 0,rgba(255,255,255,.6) 50%,transparent 100%);background-size:200% 100%;background-repeat:no-repeat;animation:uk-shimmer 1.2s linear infinite}
.uk-skel--line{height:12px}
.uk-skel--block{max-width:100%}
.uk-skel--avatar{flex:none;width:40px;height:40px;border-radius:var(--r-full)}

/* ---------------------------------------------------------------- toasts */
.uk-toasts{position:fixed;inset:auto 24px 24px auto;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:auto;max-width:calc(100vw - 24px);height:auto;margin:0;padding:0;border:0;background:transparent;color:var(--text-1);overflow:visible}
@media (max-width:767px){.uk-toasts{inset:auto 12px calc(var(--toast-offset) + env(safe-area-inset-bottom)) 12px;align-items:stretch;max-width:none}}
.uk-toast{display:flex;align-items:flex-start;gap:10px;min-width:320px;max-width:420px;padding:12px 8px 12px 14px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-pop);animation:uk-rise var(--dur-3) var(--ease-out)}
@media (max-width:767px){.uk-toast{min-width:0;max-width:420px;width:100%;margin:0 auto}}
.uk-toast.is-leaving{animation:uk-fade-out var(--dur-2) var(--ease-exit) forwards}
.uk-toast__icon{flex:none;margin-top:1px;color:var(--info-solid)}
.uk-toast--success .uk-toast__icon{color:var(--success-solid)}
.uk-toast--danger .uk-toast__icon{color:var(--danger-solid)}
.uk-toast--warning .uk-toast__icon{color:var(--warning-solid)}
.uk-toast__text{flex:1 1 auto;min-width:0}
.uk-toast__title{margin:0;font:600 14px/20px var(--font-sans);color:var(--text-1);letter-spacing:-.003em}
.uk-toast__desc{margin:2px 0 0;font:400 13px/18px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-toast__action{margin:-4px 0;flex:none}
.uk-toast__close{margin:-4px 0;flex:none}

/* ---------------------------------------------------------------- sheets */
dialog.uk-sheet{display:flex;flex-direction:column;width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:0;border-radius:var(--r-xl);background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-sheet);overflow:hidden;overscroll-behavior:contain}
dialog.uk-sheet:not([open]){display:none}
dialog.uk-sheet::backdrop{background:var(--backdrop);animation:uk-fade-in var(--dur-3) var(--ease-out)}
dialog.uk-sheet[open]{animation:uk-sheet-center var(--dur-3) var(--ease-out)}
dialog.uk-sheet.is-closing{animation:uk-sheet-center-out var(--dur-2) var(--ease-exit) forwards}
dialog.uk-sheet.is-closing::backdrop{animation:uk-fade-out var(--dur-2) var(--ease-exit) forwards}
@keyframes uk-sheet-center{from{opacity:0;transform:scale(.97)}}
@keyframes uk-sheet-center-out{to{opacity:0;transform:scale(.98)}}
@keyframes uk-sheet-right{from{opacity:0;transform:translateX(24px)}}
@keyframes uk-sheet-right-out{to{opacity:0;transform:translateX(16px)}}
@keyframes uk-sheet-bottom{from{transform:translateY(100%)}}
@keyframes uk-sheet-bottom-out{to{transform:translateY(100%)}}
@keyframes uk-sheet-full{from{transform:translateX(100%)}}
dialog.uk-sheet--sm{max-width:420px}
dialog.uk-sheet--lg{max-width:760px}
.uk-sheet__grabber{display:none}
.uk-sheet__header{display:flex;align-items:flex-start;gap:12px;flex:none;padding:20px 16px 12px 24px}
.uk-sheet__heading{flex:1 1 auto;min-width:0;padding-top:2px}
.uk-sheet__title{margin:0;font:600 18px/26px var(--font-sans);letter-spacing:-.01em;color:var(--text-1);outline:none}
.uk-sheet__desc{margin:4px 0 0;font:400 14px/20px var(--font-sans);color:var(--text-3);letter-spacing:-.003em}
.uk-sheet__close{margin-top:-2px}
.uk-sheet__body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 24px 24px}
.uk-sheet__footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex:none;padding:12px 24px;border-top:1px solid var(--border);background:var(--surface)}
dialog.uk-sheet--right,dialog.uk-sheet--full{width:480px;max-width:calc(100vw - 24px);height:calc(100dvh - 24px);max-height:none;margin:12px 12px 12px auto}
dialog.uk-sheet--right.uk-sheet--lg,dialog.uk-sheet--full{width:720px}
dialog.uk-sheet--right[open],dialog.uk-sheet--full[open]{animation:uk-sheet-right var(--dur-4) var(--ease-out)}
dialog.uk-sheet--right.is-closing,dialog.uk-sheet--full.is-closing{animation:uk-sheet-right-out var(--dur-3) var(--ease-exit) forwards}
dialog.uk-sheet--bottom{width:100%;max-width:640px;height:fit-content;max-height:92dvh;margin:auto auto 0;border-radius:var(--r-xl) var(--r-xl) 0 0}
dialog.uk-sheet--bottom[open]{animation:uk-sheet-bottom var(--dur-4) var(--ease-spring)}
dialog.uk-sheet--bottom.is-closing{animation:uk-sheet-bottom-out var(--dur-3) var(--ease-exit) forwards}
dialog.uk-sheet--bottom .uk-sheet__grabber{display:flex;justify-content:center;flex:none;padding-top:8px;cursor:grab;touch-action:none}
.uk-sheet__grabber span{width:36px;height:4px;border-radius:var(--r-full);background:var(--gray-300)}
dialog.uk-sheet.is-dragging{animation:none;transition:none}
@media (max-width:767px){
  /* .uk-sheet--right.uk-sheet--lg outranks a single class, so a large right sheet used to keep its 720px on a 390px
     phone (the demo, source and history sheets all do). Name the pair here so the phone form wins. */
  dialog.uk-sheet--center,dialog.uk-sheet--right,dialog.uk-sheet--right.uk-sheet--lg{width:100%;max-width:none;height:fit-content;max-height:92dvh;margin:auto 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0}
  dialog.uk-sheet--center[open],dialog.uk-sheet--right[open]{animation:uk-sheet-bottom var(--dur-4) var(--ease-spring)}
  dialog.uk-sheet--center.is-closing,dialog.uk-sheet--right.is-closing{animation:uk-sheet-bottom-out var(--dur-3) var(--ease-exit) forwards}
  :is(dialog.uk-sheet--center,dialog.uk-sheet--right) .uk-sheet__grabber{display:flex;justify-content:center;flex:none;padding-top:8px;touch-action:none}
  :is(dialog.uk-sheet--center,dialog.uk-sheet--right,dialog.uk-sheet--bottom) .uk-sheet__header{padding:10px 12px 8px 20px;touch-action:none}
  dialog.uk-sheet .uk-sheet__body{padding:4px 20px 20px}
  :is(dialog.uk-sheet--center,dialog.uk-sheet--right,dialog.uk-sheet--bottom) .uk-sheet__footer{flex-direction:column-reverse;align-items:stretch;padding:12px 20px calc(12px + env(safe-area-inset-bottom))}
  :is(dialog.uk-sheet--center,dialog.uk-sheet--right,dialog.uk-sheet--bottom) .uk-sheet__footer .uk-btn{width:100%;--btn-h:44px}
  dialog.uk-sheet--full{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}
  dialog.uk-sheet--full[open]{animation:uk-sheet-full 280ms var(--ease-out)}
}
dialog.uk-sheet--palette{width:calc(100% - 32px);max-width:640px;margin:20vh auto auto;background:var(--frost-bg);-webkit-backdrop-filter:var(--frost-filter);backdrop-filter:var(--frost-filter);box-shadow:0 0 0 1px var(--frost-border),var(--shadow-sheet)}
dialog.uk-sheet--palette::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}

/* ------------------------------------------------ popovers, menus, tips */
.uk-popover{position:fixed;inset:auto;z-index:var(--z-popover);width:max-content;min-width:220px;max-width:min(340px,calc(100vw - 16px));height:auto;margin:0;padding:14px 16px;border:0;border-radius:var(--r-lg);background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-pop);overflow:visible;font:400 14px/20px var(--font-sans);text-align:left}
.uk-popover.is-open{animation:uk-pop var(--dur-3) var(--ease-out)}
.uk-popover__title{margin:0 0 4px;font:600 14px/20px var(--font-sans);color:var(--text-1);letter-spacing:-.003em}
.uk-popover__formula{margin:0 0 10px;padding:6px 8px;border-radius:var(--r-sm);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border);font:var(--t-mono);color:var(--text-2)}
.uk-popover__list{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.uk-popover__list li{display:flex;justify-content:space-between;gap:16px;font:400 13px/18px var(--font-sans);color:var(--text-2)}
.uk-popover__list li span:last-child{color:var(--text-1);font-weight:500}
.uk-menu{position:relative;display:inline-flex}
.uk-menu__chev{color:var(--text-3)}
.uk-menu__panel{position:fixed;inset:auto;z-index:var(--z-popover);width:max-content;min-width:200px;max-width:calc(100vw - 16px);height:auto;margin:0;padding:4px;border:0;border-radius:12px;background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-pop);overflow:visible;outline:none}
.uk-menu__panel.is-open{animation:uk-pop var(--dur-3) var(--ease-out)}
.uk-menu__item{appearance:none;display:flex;align-items:center;gap:10px;width:100%;min-height:36px;margin:0;padding:0 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-1);font:500 14px/20px var(--font-sans);letter-spacing:-.003em;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none}
@media (pointer:coarse){.uk-menu__item{min-height:44px}}
.uk-menu__item .uk-icon{color:var(--text-3)}
.uk-menu__noicon{width:16px;flex:none}
.uk-menu__panel:not(:has(.uk-icon)) .uk-menu__noicon{display:none}
.uk-menu__item:hover,.uk-menu__item:focus{background:var(--hover)}
/* Focus must not be the hover fill: an inset ring stays inside the panel padding and survives a stray hover. */
.uk-menu__item:focus-visible{outline:2px solid var(--green-600);outline-offset:-2px}
.uk-menu__item.is-danger,.uk-menu__item.is-danger .uk-icon{color:var(--danger-text)}
.uk-menu__item.is-danger:hover,.uk-menu__item.is-danger:focus{background:var(--danger-bg)}
.uk-menu__item[aria-disabled=true]{color:var(--text-3);cursor:not-allowed;background:transparent}
.uk-menu__label{flex:1 1 auto}
.uk-menu__hint{margin-left:16px;font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-menu__sep{height:1px;margin:4px -4px;background:var(--border)}
.uk-confirm{max-width:300px}
.uk-confirm__body{margin:0;font:400 13px/18px var(--font-sans);color:var(--text-2)}
.uk-confirm__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.uk-tooltip{position:fixed;inset:auto;z-index:70;width:max-content;max-width:240px;height:auto;margin:0;padding:6px 8px;border:0;border-radius:var(--r-sm);background:var(--gray-800);color:var(--gray-0);font:500 12px/16px var(--font-sans);letter-spacing:0;pointer-events:none;overflow:visible;opacity:0;transition:opacity var(--dur-2) var(--ease-out)}
.uk-tooltip.is-visible{opacity:1}
@media (hover:none){.uk-tooltip{display:none!important}}

/* -------------------------------------------------------------- progress */
.uk-steps{display:flex;flex-direction:column;gap:10px;min-width:0}
.uk-steps ol{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(56px,1fr);gap:8px;width:max-content;max-width:100%;margin:0;padding:0;list-style:none}
.uk-steps__seg>a,.uk-steps__static{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none;border-radius:var(--r-2xs)}
.uk-steps__bar{display:block;width:100%;height:4px;border-radius:var(--r-full);background:var(--gray-150);transition:background-color var(--dur-3) var(--ease-out)}
.uk-steps__seg.is-done .uk-steps__bar,.uk-steps__seg.is-current .uk-steps__bar{background:var(--green-500)}
.uk-steps__label{display:inline-flex;align-items:center;gap:5px;font:500 12px/16px var(--font-sans);color:var(--text-3);white-space:nowrap;padding-right:8px}
.uk-steps__seg.is-done .uk-steps__label{color:var(--text-2)}
.uk-steps__seg.is-done .uk-steps__label .uk-icon{color:var(--green-500)}
.uk-steps__seg.is-current .uk-steps__label{color:var(--text-1)}
.uk-steps__seg>a:hover .uk-steps__label{color:var(--text-1)}
.uk-steps .step-status{margin:0;font:500 13px/18px var(--font-sans);color:var(--text-3);letter-spacing:0}
.uk-steps__phone,.uk-steps__phone-label{display:none}
@media (max-width:767px){
  .uk-steps ol{display:none}
  .uk-steps__phone{display:grid;grid-template-columns:repeat(var(--steps),minmax(0,1fr));gap:4px}
  .uk-steps__phone>span{height:4px;border-radius:var(--r-full);background:var(--gray-150)}
  .uk-steps__phone>span.is-on{background:var(--green-500)}
  .uk-steps__phone-label{display:inline}
}
.uk-life{min-width:0}
.uk-life__list{display:flex;margin:0;padding:0;list-style:none}
.uk-life__step{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;min-width:0;padding-top:26px;text-align:center}
.uk-life__step+.uk-life__step::before{content:"";position:absolute;top:37px;left:calc(-50% + 16px);right:calc(50% + 16px);height:2px;border-radius:1px;background:var(--border-strong)}
.uk-life__step.is-done+.uk-life__step::before{background:var(--green-500)}
.uk-life__hit{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:0 4px;border-radius:var(--r-sm)}
.uk-life__node{position:relative;display:grid;place-items:center;width:24px;height:24px;border-radius:var(--r-full);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--on-accent)}
.uk-life__step.is-done .uk-life__node{background:var(--green-500);box-shadow:none}
.uk-life__step.is-current .uk-life__node{box-shadow:inset 0 0 0 2px var(--green-500),0 0 0 4px var(--green-50)}
.uk-life__step.is-current .uk-life__node::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--green-500)}
.uk-life__label{font:500 12px/16px var(--font-sans);color:var(--text-3);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-life__step.is-done .uk-life__label{color:var(--text-2)}
.uk-life__step.is-current .uk-life__label{color:var(--text-1);font-weight:600}
.uk-life__loop{position:absolute;top:0;left:50%;transform:translateX(-50%)}
.uk-life__phone{display:none}
@media (max-width:767px){
  .uk-life__list{display:none}
  .uk-life__phone{display:flex;flex-direction:column;gap:8px}
  .uk-life__phone p{margin:0;font:500 13px/18px var(--font-sans);color:var(--text-2)}
  .uk-life__phone-bar{position:relative;display:block;height:4px;border-radius:var(--r-full);background:var(--gray-150);overflow:hidden}
  .uk-life__phone-bar::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--life-pct);border-radius:inherit;background:var(--green-500)}
}
.uk-meter{display:flex;flex-direction:column;gap:8px;min-width:0}
.uk-meter__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.uk-meter__label{font:500 13px/18px var(--font-sans);color:var(--text-2)}
.uk-meter__value{font:500 13px/18px var(--font-sans);color:var(--text-3);white-space:nowrap}
.uk-meter__track{position:relative;height:6px;border-radius:var(--r-full);background:var(--gray-150)}
.uk-meter__fill{display:block;height:100%;border-radius:inherit;background:var(--green-500);transition:width var(--dur-3) var(--ease-out)}
.uk-meter--warning .uk-meter__fill{background:var(--warning-solid)}
.uk-meter--danger .uk-meter__fill{background:var(--danger-solid)}
.uk-meter__marker{position:absolute;top:-3px;width:2px;height:12px;margin-left:-1px;border-radius:1px;background:var(--gray-700);box-shadow:0 0 0 1.5px var(--gray-0)}
.uk-meter__markers{position:relative;height:14px;margin-top:-2px}
.uk-meter__markers span{position:absolute;transform:translateX(-50%);font:500 11px/14px var(--font-sans);color:var(--text-3);white-space:nowrap}
.uk-meter__markers span:first-child:not(:only-child){transform:translateX(-50%)}
.uk-ring{display:inline-block;flex:none;vertical-align:middle;overflow:visible}
.uk-ring__track{stroke:var(--gray-150)}
.uk-ring__track.is-strong{stroke:var(--gray-200)}
.uk-ring__arc{stroke:var(--green-500);transition:stroke-dashoffset var(--dur-3) var(--ease-out)}
.uk-ring__done{fill:var(--green-500)}
.uk-ring__check{stroke:var(--on-accent)}
.uk-ring__text{font:600 13px/1 var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:0;fill:var(--text-1)}
.uk-state{position:relative;display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:var(--r-full);font:600 12px/1 var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--text-2)}
.uk-state--none{box-shadow:inset 0 0 0 1px var(--border-strong);background:var(--surface)}
.uk-state--done{background:var(--green-500);color:var(--on-accent)}
.uk-state--partial .uk-ring{position:absolute;inset:0}
.uk-state__num{position:relative;font:inherit;color:var(--text-2)}
.uk-state.is-current,.uk-state.is-current .uk-state__num{color:var(--text-1)}

/* ------------------------------------------------------------ supporting */
.uk-timeline{margin:0;padding:0;list-style:none}
.uk-timeline__item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:12px;padding-bottom:20px}
.uk-timeline__item:last-child{padding-bottom:0}
.uk-timeline__item:not(:last-child)::before{content:"";position:absolute;left:11.5px;top:30px;bottom:6px;width:1px;background:var(--border)}
.uk-timeline__node{--tone-text:var(--neutral-text);--tone-bg:var(--surface);--tone-border:var(--border-strong);display:grid;place-items:center;width:24px;height:24px;border-radius:var(--r-full);background:var(--tone-bg);box-shadow:inset 0 0 0 1px var(--tone-border);color:var(--tone-text)}
.uk-timeline__node--success{--tone-text:var(--success-solid);--tone-bg:var(--success-bg);--tone-border:var(--success-border)}
.uk-timeline__node--warning{--tone-text:var(--warning-text);--tone-bg:var(--warning-bg);--tone-border:var(--warning-border)}
.uk-timeline__node--danger{--tone-text:var(--danger-text);--tone-bg:var(--danger-bg);--tone-border:var(--danger-border)}
.uk-timeline__node--info{--tone-text:var(--info-text);--tone-bg:var(--info-bg);--tone-border:var(--info-border)}
.uk-timeline__node--changes{--tone-text:var(--lc-changes-text);--tone-bg:var(--lc-changes-bg);--tone-border:color-mix(in srgb,var(--lc-changes-text) 18%,var(--lc-changes-bg))}
.uk-timeline__node--implemented{--tone-text:var(--lc-implemented-text);--tone-bg:var(--lc-implemented-bg);--tone-border:color-mix(in srgb,var(--lc-implemented-text) 18%,var(--lc-implemented-bg))}
.uk-timeline__content{min-width:0;padding-top:2px}
.uk-timeline__head{display:flex;align-items:baseline;gap:12px;margin:0}
.uk-timeline__title{flex:1 1 auto;min-width:0;font:500 14px/20px var(--font-sans);color:var(--text-1);letter-spacing:-.003em}
.uk-timeline__time{flex:none;font:400 12px/16px var(--font-sans);color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.uk-timeline__meta{margin:2px 0 0;font:400 13px/18px var(--font-sans);color:var(--text-3)}
.uk-timeline__body{margin:8px 0 0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken);font:400 14px/20px var(--font-sans);color:var(--text-2);white-space:pre-line}
.uk-timeline__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.uk-timeline--compact .uk-timeline__item{padding-bottom:12px}
.uk-table-wrap{position:relative;max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card);overscroll-behavior-x:contain}
.uk-table-wrap:focus-visible{outline-offset:2px}
.uk-table-wrap[data-scroll-end=true]{-webkit-mask-image:linear-gradient(90deg,black calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,black calc(100% - 24px),transparent)}
.uk-table,.uk-table-wrap>table{width:100%;border-collapse:separate;border-spacing:0;font:400 14px/20px var(--font-sans);letter-spacing:-.003em;color:var(--text-1)}
.uk-table th[scope=col],.uk-table-wrap>table thead th{position:sticky;top:0;z-index:2;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--gray-50);color:var(--text-3);font:500 13px/18px var(--font-sans);letter-spacing:0;text-align:left;white-space:nowrap}
.uk-table td,.uk-table tbody th{white-space:nowrap}
.uk-table .is-wrap{white-space:normal;min-width:180px}
.uk-table td,.uk-table tbody th,.uk-table-wrap>table td{padding:12px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;font-weight:400}
.uk-table tbody th{font-weight:500}
.uk-table tbody tr:last-child>*,.uk-table-wrap>table tr:last-child>td{border-bottom:0}
.uk-table tbody tr{position:relative}
.uk-table tbody tr:hover>*{background:var(--hover)}
/* Headers carry their column's alignment (the th[scope=col] rule above would otherwise pin them left). */
.uk-table :is(th,td):is(.is-end,[data-align=end]),.uk-table th[scope=col]:is(.is-end,[data-align=end]){text-align:right;font-variant-numeric:tabular-nums}
.uk-table :is(th,td):is(.is-center,[data-align=center]),.uk-table th[scope=col]:is(.is-center,[data-align=center]){text-align:center}
.uk-table--compact td,.uk-table--compact tbody th{padding:8px 12px}
.uk-table--compact th[scope=col]{padding:8px 12px}
.uk-table__link{position:absolute;inset:0;z-index:0;border-radius:inherit}
.uk-table tr.is-link{cursor:pointer}
.uk-table tr.is-link :is(a,button):not(.uk-table__link){position:relative;z-index:1}
.uk-table__expand td{padding:0 16px;background:var(--surface-sunken)}
@media (max-width:767px){.uk-table .is-sticky{position:sticky;left:0;z-index:1;background:var(--surface)}.uk-table th.is-sticky[scope=col]{z-index:3;background:var(--gray-50)}}
/* A table that is a card's direct child is the card's content, not a card inside it: no second frame, bleeding to the
   card edge, the header full-bleed with only its bottom hairline, and the outer cells on the card's own padding. */
.uk-card>.uk-table-wrap{max-width:none;margin-inline:calc(-1 * var(--card-pad));border:0;border-radius:0;box-shadow:none;background:transparent}
.uk-card>.uk-table-wrap:first-child{margin-top:calc(-1 * var(--card-pad));border-top-left-radius:calc(var(--r-lg) - 1px);border-top-right-radius:calc(var(--r-lg) - 1px)}
.uk-card>.uk-table-wrap:last-child{margin-bottom:calc(-1 * var(--card-pad));border-bottom-left-radius:calc(var(--r-lg) - 1px);border-bottom-right-radius:calc(var(--r-lg) - 1px)}
.uk-card>.uk-table-wrap>.uk-table :is(th,td):first-child{padding-left:var(--card-pad)}
.uk-card>.uk-table-wrap>.uk-table :is(th,td):last-child{padding-right:var(--card-pad)}
.uk-table-empty{min-width:0}
.uk-avatar{display:inline-grid;place-items:center;flex:none;border-radius:var(--r-full);background:var(--gray-150);color:var(--text-2);font:600 12px/1 var(--font-sans);letter-spacing:0;user-select:none}
.uk-avatar--32{width:32px;height:32px}
.uk-avatar--24{width:24px;height:24px;font-size:10px}
.uk-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;font:500 14px/20px var(--font-sans);color:var(--text-3)}
.uk-crumbs li{display:inline-flex;align-items:center;gap:6px;min-width:0}
.uk-crumbs a{color:var(--text-3);text-decoration:none;border-radius:var(--r-2xs)}
.uk-crumbs a:hover{color:var(--text-1)}
.uk-crumbs [aria-current=page]{color:var(--text-1)}
.uk-crumbs__sep{color:var(--gray-400)}
.uk-kbd-group{display:inline-flex;gap:3px;vertical-align:middle}
.uk-kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--border);border-radius:var(--r-xs);background:var(--surface);box-shadow:0 1px 0 var(--border);color:var(--text-3);font:600 11px/1 var(--font-sans);letter-spacing:0}
.uk-kbd .uk-icon{width:11px;height:11px}
.uk-stage-art{display:inline-block;flex:none;overflow:hidden;border-radius:22%;width:var(--size);height:var(--size);vertical-align:middle}
.uk-stage-art img{display:block;width:128%;height:128%;margin:-14%;object-fit:cover}

/* checklist rows produced by the course build */
.uk-checklist{margin:12px 0;padding:0;list-style:none}
.uk-check-row{margin:0}
.uk-check-row>button{appearance:none;display:flex;align-items:flex-start;gap:12px;width:100%;margin:0;padding:8px 10px;border:0;border-radius:var(--r-sm);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}
.uk-check-row>button:hover{background:var(--hover)}
.uk-check-box{position:relative;display:grid;place-items:center;flex:none;width:20px;height:20px;margin-top:2px;border-radius:var(--r-xs);background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--border-strong);transition:background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}
.uk-check-row>button[aria-checked=true] .uk-check-box{background:var(--green-500);box-shadow:none}
.uk-check-row>button[aria-checked=true] .uk-check-box::after{content:"";width:10px;height:5px;margin-top:-3px;border-left:2px solid var(--on-accent);border-bottom:2px solid var(--on-accent);transform:rotate(-45deg);animation:uk-check-pop var(--dur-3) var(--ease-spring)}
.uk-check-row>button[aria-checked=true]>span:last-child{color:var(--text-2)}

/* ---------------------------------------------------------------- charts */
.uk-chart{position:relative;min-width:0;margin:0;border-radius:var(--r-sm)}
.uk-chart:focus{outline:none}
.uk-chart:focus-visible{outline:2px solid var(--green-600);outline-offset:6px}
.uk-chart__head{display:flex;flex-direction:column;gap:2px;margin:0 0 16px;min-width:0}
.uk-chart__title{margin:0;font:600 14px/20px var(--font-sans);letter-spacing:-.003em;color:var(--text-1)}
.uk-chart__headline{margin:2px 0 0;font:var(--t-kpi-sm);letter-spacing:-.012em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 24;color:var(--text-1)}
.uk-chart__summary{margin:2px 0 0;font:500 12px/16px var(--font-sans);letter-spacing:0;color:var(--text-3)}
.uk-chart__legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 12px;padding:0;list-style:none;font:500 12px/16px var(--font-sans);color:var(--text-2)}
.uk-chart__legend li{display:inline-flex;align-items:center;gap:6px}
.uk-swatch{--sw:var(--chart-outcome-fill);display:inline-block;flex:none;width:10px;height:10px;border-radius:3px;background:var(--sw)}
.uk-swatch.is-line{width:14px;height:2px;border-radius:1px}
.uk-swatch.is-dashed{width:14px;height:2px;border-radius:0;background:repeating-linear-gradient(90deg,var(--sw) 0 4px,transparent 4px 7px)}
.uk-swatch--outcome{--sw:var(--chart-outcome-fill)}
.uk-swatch--outcome.is-line,.uk-swatch--outcome.is-dashed{--sw:var(--chart-outcome)}
.uk-swatch--spend{--sw:var(--chart-spend)}.uk-swatch--neutral{--sw:var(--chart-neutral)}.uk-swatch--negative{--sw:var(--chart-negative)}.uk-swatch--cash{--sw:var(--gray-800)}.uk-swatch--outcome-soft{--sw:var(--chart-outcome-soft)}
.uk-swatch--scenario-a{--sw:var(--scenario-a)}.uk-swatch--scenario-b{--sw:var(--scenario-b)}.uk-swatch--scenario-c{--sw:var(--scenario-c)}
.uk-chart__plot{position:relative;width:100%;min-width:0}
.uk-chart__svg{display:block;overflow:visible;touch-action:pan-y}
.uk-chart__grid{stroke:var(--chart-grid);stroke-width:1;shape-rendering:crispEdges}
.uk-chart__zero{stroke:var(--border-strong);stroke-width:1;shape-rendering:crispEdges}
.uk-chart__tick{font:500 11px/1 var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:0;fill:var(--chart-axis)}
.uk-chart__cat{font:500 12px/1 var(--font-sans);letter-spacing:0;fill:var(--text-2)}
.uk-chart__value{font:600 11px/1 var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:0;fill:var(--text-2)}
.uk-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uk-chart__line--outcome{stroke:var(--chart-outcome)}.uk-chart__line--spend{stroke:var(--chart-spend)}.uk-chart__line--neutral{stroke:var(--chart-neutral)}.uk-chart__line--negative{stroke:var(--chart-negative)}.uk-chart__line--cash{stroke:var(--gray-800);stroke-width:1.5}
.uk-chart__line--scenario-a{stroke:var(--scenario-a)}.uk-chart__line--scenario-b{stroke:var(--scenario-b)}.uk-chart__line--scenario-c{stroke:var(--scenario-c)}
.uk-chart__line.is-dashed{stroke-dasharray:4 3;stroke-linecap:butt}
.uk-chart__stop--outcome{stop-color:var(--green-500)}.uk-chart__stop--spend{stop-color:var(--chart-spend)}.uk-chart__stop--neutral{stop-color:var(--chart-neutral)}.uk-chart__stop--cash{stop-color:var(--gray-900)}.uk-chart__stop--negative{stop-color:var(--chart-negative)}
.uk-chart__stop--scenario-a{stop-color:var(--scenario-a)}.uk-chart__stop--scenario-b{stop-color:var(--scenario-b)}.uk-chart__stop--scenario-c{stop-color:var(--scenario-c)}
.uk-chart__bar{transition:opacity var(--dur-2) var(--ease-out)}
.uk-chart__bar--outcome{fill:var(--chart-outcome-fill)}.uk-chart__bar--spend{fill:var(--chart-spend)}.uk-chart__bar--neutral{fill:var(--chart-neutral)}.uk-chart__bar--negative{fill:var(--chart-negative)}.uk-chart__bar--cash{fill:var(--gray-800)}.uk-chart__bar--outcome-soft{fill:var(--chart-outcome-soft)}
.uk-chart__bar--scenario-a{fill:var(--scenario-a)}.uk-chart__bar--scenario-b{fill:var(--scenario-b)}.uk-chart__bar--scenario-c{fill:var(--scenario-c)}
/* Cost bars in bar and combo charts are the lighter neutral, so the eye lands on the outcome; the dark spend grey stays for lines. */
:is(.uk-chart--bar,.uk-chart--combo) .uk-chart__bar--spend{fill:var(--chart-neutral)}
:is(.uk-chart--bar,.uk-chart--combo) .uk-swatch--spend:not(.is-line):not(.is-dashed){--sw:var(--chart-neutral)}
.uk-chart__bar.is-dashed{fill-opacity:.35;stroke:currentColor;stroke-dasharray:4 3}
.uk-chart__bar.is-dim{opacity:.4}
.uk-chart__band{fill:var(--chart-band)}
.uk-chart__cross{stroke:var(--border-strong);stroke-width:1;shape-rendering:crispEdges}
.uk-chart__dot{stroke:var(--gray-0);stroke-width:2}
.uk-chart__dot--outcome{fill:var(--chart-outcome)}.uk-chart__dot--spend{fill:var(--chart-spend)}.uk-chart__dot--neutral{fill:var(--chart-neutral)}.uk-chart__dot--cash{fill:var(--gray-800)}.uk-chart__dot--negative{fill:var(--chart-negative)}
.uk-chart__dot--scenario-a{fill:var(--scenario-a)}.uk-chart__dot--scenario-b{fill:var(--scenario-b)}.uk-chart__dot--scenario-c{fill:var(--scenario-c)}
.uk-chart__marker{stroke:var(--border-strong);stroke-width:1;shape-rendering:crispEdges}
.uk-chart__marker-chip rect{fill:var(--surface);stroke:var(--border);stroke-width:1}
.uk-chart__marker-chip text{font:600 11px/1 var(--font-sans);letter-spacing:0;fill:var(--text-2)}
.uk-chart__trough{fill:var(--gray-0);stroke:var(--chart-spend);stroke-width:2}
.uk-chart__connector{stroke:var(--gray-400);stroke-width:1;stroke-dasharray:2 3;shape-rendering:crispEdges}
.uk-chart__tip{position:absolute;left:0;top:0;z-index:5;min-width:148px;max-width:240px;padding:8px 10px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-pop);pointer-events:none;font:500 12px/18px var(--font-sans);letter-spacing:0}
.uk-chart__tip-label{margin:0 0 2px;color:var(--text-3)}
.uk-chart__tip-row{display:flex;align-items:center;gap:8px;margin:0}
.uk-chart__tip-name{flex:1 1 auto;min-width:0;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uk-chart__tip-value{color:var(--text-1);font-weight:600}
.uk-chart__empty{display:grid;place-items:center;min-height:120px;height:100%;padding:16px;border:1px dashed var(--border);border-radius:var(--r-md);background:var(--surface-sunken);font:500 13px/18px var(--font-sans);color:var(--text-3);text-align:center}
.uk-chart__table-toggle{margin-top:8px}
.uk-chart__table-wrap{overflow-x:auto;max-width:100%}
.uk-chart__table{width:100%;border-collapse:collapse;font:400 13px/18px var(--font-sans);color:var(--text-1)}
.uk-chart__table th,.uk-chart__table td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
.uk-chart__table thead th{font-weight:500;color:var(--text-3)}
.uk-chart__table tbody th{font-weight:500}
.uk-chart__table .is-end{text-align:right}
/* funnel */
.uk-funnel{display:flex;flex-direction:column;min-width:0}
.uk-funnel__item{min-width:0}
.uk-funnel__row{appearance:none;position:relative;display:grid;grid-template-columns:minmax(104px,32%) minmax(0,1fr);align-items:center;column-gap:16px;width:100%;margin:0;padding:8px 12px;border:0;border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;text-align:left}
button.uk-funnel__row{cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}
button.uk-funnel__row:hover{background:var(--hover)}
.uk-funnel__row.is-highlight{background:var(--warning-bg);box-shadow:inset 0 0 0 1px var(--warning-border);border-radius:var(--r-md)}
button.uk-funnel__row.is-highlight:hover{background:color-mix(in srgb,var(--warning-bg) 70%,var(--warning-border))}
.uk-funnel__text{display:flex;flex-direction:column;min-width:0}
.uk-funnel__label{font:500 13px/18px var(--font-sans);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-funnel__value{font:600 16px/22px var(--font-sans);letter-spacing:-.006em;color:var(--text-1)}
.uk-funnel__cost{font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-funnel__track{position:relative;height:28px;border-radius:var(--r-xs);background:var(--gray-50);box-shadow:inset 0 0 0 1px var(--border)}
.uk-funnel__fill{position:absolute;inset:0 auto 0 0;width:max(var(--pct),6px);border-radius:var(--r-xs);background:var(--chart-outcome-soft);transition:width var(--dur-3) var(--ease-out)}
.uk-funnel__fill[data-empty]{display:none}
.uk-funnel--log .uk-funnel__fill{width:max(var(--pct),24px)}
.uk-funnel--log .uk-funnel__required{width:max(var(--pct),24px)}
.uk-funnel--log .uk-funnel__gap{left:min(calc(max(var(--at),24px) + 6px),calc(100% - var(--gap-w,64px) - 4px))}
.uk-funnel__row.is-final .uk-funnel__fill{background:var(--green-500)}
.uk-funnel__required{position:absolute;inset:0 auto 0 0;width:var(--pct);border:1px dashed var(--green-600);border-radius:var(--r-xs);opacity:.6;pointer-events:none}
/* "24 short" sits just past the required outline it measures, clamped inside the track's right edge. Neutral: a gap, never a gain. */
.uk-funnel__gap{position:absolute;top:50%;left:min(calc(var(--at) + 6px),calc(100% - var(--gap-w,64px) - 4px));transform:translateY(-50%);height:20px;padding:0 6px;border-radius:var(--r-full);background:var(--neutral-bg);font:600 12px/20px var(--font-sans);letter-spacing:0;color:var(--neutral-text);white-space:nowrap}
.uk-funnel__flag{grid-column:2;justify-self:start;display:inline-flex;align-items:center;gap:4px;margin-top:6px;font:600 12px/16px var(--font-sans);color:var(--warning-text)}
.uk-funnel__rate{display:grid;grid-template-columns:minmax(104px,32%) minmax(0,1fr);column-gap:16px;padding:4px 12px;align-items:center}
/* The conversion into the next stage: "↓ 8%" on the label column, following the downward flow of the stages. */
.uk-funnel__rate-chip{grid-column:1;justify-self:start;display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 7px 0 5px;border-radius:var(--r-full);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border);font:600 12px/16px var(--font-sans);letter-spacing:0;color:var(--text-3)}
.uk-funnel__rate-chip .uk-icon{color:var(--text-3)}
.uk-funnel__scale{margin:8px 12px 0;font:500 11px/14px var(--font-sans);letter-spacing:.01em;color:var(--text-3)}
@media (max-width:479px){.uk-funnel__row,.uk-funnel__rate{grid-template-columns:minmax(88px,38%) minmax(0,1fr);column-gap:10px}}
.uk-funnel--vertical{flex-direction:row;align-items:flex-end;gap:8px}
.uk-funnel--vertical .uk-funnel__rate{display:none}
.uk-funnel--vertical .uk-funnel__item{flex:1 1 0}
.uk-funnel--vertical .uk-funnel__row{grid-template-columns:1fr;row-gap:8px}
.uk-funnel--vertical .uk-funnel__track{height:160px}
.uk-funnel--vertical .uk-funnel__fill{inset:auto 0 0 0;width:auto;height:var(--pct);min-height:3px}
/* tornado */
.uk-tornado{min-width:0}
.uk-tornado__rows{display:flex;flex-direction:column}
.uk-tornado__row{appearance:none;display:grid;grid-template-columns:minmax(96px,30%) minmax(0,1fr);align-items:center;column-gap:12px;height:32px;margin:0;padding:0 8px;border:0;border-radius:var(--r-sm);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}
.uk-tornado__row:hover{background:var(--hover)}
.uk-tornado__label{font:500 13px/18px var(--font-sans);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-tornado__plot{position:relative;height:100%}
.uk-tornado__plot::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-strong)}
.uk-tornado__bar{position:absolute;top:8px;bottom:8px}
.uk-tornado__bar--spend{background:var(--chart-spend)}
.uk-tornado__bar--outcome{background:var(--chart-outcome-fill)}
.uk-tornado__bar.is-below{border-radius:4px 0 0 4px}
.uk-tornado__bar.is-above{border-radius:0 4px 4px 0}
.uk-tornado__end{position:absolute;top:50%;transform:translateY(-50%);padding:0 6px;font:600 11px/14px var(--font-sans);color:var(--text-3);white-space:nowrap}
.uk-tornado__foot{display:grid;grid-template-columns:minmax(96px,30%) minmax(0,1fr);column-gap:12px;padding:6px 8px 0}
@media (max-width:479px){.uk-tornado__row{grid-template-columns:minmax(0,1fr);height:auto;row-gap:2px;padding:6px 8px}.uk-tornado__plot{height:20px}.uk-tornado__bar{top:4px;bottom:4px}.uk-tornado__foot{grid-template-columns:minmax(0,1fr)}.uk-tornado__foot>span:first-child{display:none}}
.uk-tornado__base{text-align:center;font:500 11px/14px var(--font-sans);color:var(--text-3)}
/* headroom and response */
/* Headroom: pale zones, the value as a chip above its dot, and labelled ticks directly under each boundary. */
.uk-headroom{position:relative;padding-top:4px}
.uk-headroom__values{position:relative;height:22px;margin-bottom:8px}
.uk-headroom__value{position:absolute;top:2px;display:inline-flex;align-items:center;height:20px;padding:2px 6px;border-radius:var(--r-xs);background:var(--gray-800);color:var(--on-accent);font:600 12px/16px var(--font-sans);letter-spacing:0;white-space:nowrap;transform:translateX(-50%);transition:left var(--dur-3) var(--ease-out)}
.uk-headroom__track{position:relative;display:flex;gap:2px;height:8px}
.uk-headroom__seg{height:100%;min-width:0}
.uk-headroom__seg:first-child{border-radius:var(--r-full) 0 0 var(--r-full)}
.uk-headroom__seg:nth-child(3){border-radius:0 var(--r-full) var(--r-full) 0}
.uk-headroom__seg--ok{background:var(--green-200)}
.uk-headroom__seg--warn{background:var(--warning-border)}
.uk-headroom__seg--over{background:var(--danger-border)}
.uk-headroom__dot{position:absolute;z-index:1;top:50%;width:14px;height:14px;border-radius:var(--r-full);background:var(--gray-0);box-shadow:0 0 0 2px var(--gray-900),var(--shadow-xs);transform:translate(-50%,-50%);transition:left var(--dur-3) var(--ease-out)}
.uk-headroom__ticks{position:relative;height:16px;margin-top:8px}
.uk-headroom__ticks.is-stacked{height:34px}
.uk-headroom__tick{position:absolute;top:0;display:inline-flex;gap:4px;font:500 11px/16px var(--font-sans);letter-spacing:.01em;color:var(--text-3);white-space:nowrap;transform:translateX(-50%)}
.uk-headroom__tick strong{font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums}
.uk-response__ticks{position:relative;height:16px;margin-top:8px}
.uk-response__ticks.is-stacked{height:34px}
.uk-response__ticks span{position:absolute;top:0;transform:translateX(-50%);font:500 11px/14px var(--font-sans);color:var(--text-3);white-space:nowrap}
.uk-headroom__mark{position:absolute;top:-3px;width:1px;height:14px;margin-left:-.5px;background:var(--gray-600)}
.uk-response__head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:10px}
.uk-response__value{font:650 20px/24px var(--font-sans);letter-spacing:-.012em;color:var(--text-1)}
.uk-response__verdict{font:500 13px/18px var(--font-sans);color:var(--text-3)}
.uk-response--success .uk-response__verdict{color:var(--success-text)}
.uk-response--warning .uk-response__verdict{color:var(--warning-text)}
.uk-response--danger .uk-response__verdict{color:var(--danger-text)}
.uk-response__track{position:relative;height:8px;border-radius:var(--r-full);background:var(--gray-150)}
.uk-response__fill{position:absolute;inset:0 auto 0 0;width:var(--pct);border-radius:inherit;background:var(--neutral-solid);transition:width var(--dur-3) var(--ease-out)}
.uk-response--success .uk-response__fill{background:var(--green-500)}
.uk-response--warning .uk-response__fill{background:var(--warning-solid)}
.uk-response--danger .uk-response__fill{background:var(--danger-solid)}
.uk-response__target{position:absolute;top:-3px;width:1px;height:14px;margin-left:-.5px;background:var(--gray-600)}
/* paired bars */
.uk-paired{display:flex;flex-direction:column;gap:18px}
.uk-paired__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.uk-paired__label{font:500 13px/18px var(--font-sans);color:var(--text-1)}
.uk-paired__bars{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(56px,auto);align-items:center;gap:6px 10px}
.uk-paired__name{font:500 12px/16px var(--font-sans);color:var(--text-3)}
.uk-paired__track{height:8px;border-radius:var(--r-full);background:var(--gray-100);overflow:hidden}
.uk-paired__fill{display:block;width:var(--pct);height:100%;border-radius:inherit;transition:width var(--dur-3) var(--ease-out)}
.uk-paired__fill--before{background:var(--chart-neutral)}
.uk-paired__fill--after{background:var(--green-500)}
.uk-paired__value{font:600 13px/18px var(--font-sans);color:var(--text-1);text-align:right}
/* sparkline */
.uk-spark{display:block;flex:none;overflow:visible}
.uk-spark__line{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke:var(--chart-outcome)}
.uk-spark__dot{fill:var(--chart-outcome)}
.uk-spark--spend .uk-spark__line{stroke:var(--chart-spend)}.uk-spark--spend .uk-spark__dot{fill:var(--chart-spend)}
.uk-spark--neutral .uk-spark__line{stroke:var(--chart-neutral)}.uk-spark--neutral .uk-spark__dot{fill:var(--chart-neutral)}
.uk-spark--negative .uk-spark__line{stroke:var(--chart-negative)}.uk-spark--negative .uk-spark__dot{fill:var(--chart-negative)}

/* ---------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion:reduce){
  :where([class^="uk-"],[class*=" uk-"]),:where([class^="uk-"],[class*=" uk-"])::before,:where([class^="uk-"],[class*=" uk-"])::after{transition-property:opacity,color,background-color,border-color,box-shadow,fill,stroke!important;transition-duration:120ms!important}
  .uk-btn:active,.uk-chip:active,.uk-card-option:active,.uk-card-option:hover,.uk-step:active,.uk-card--link:hover,.uk-card--link:active,.uk-drop[data-over] .uk-plate--drop{transform:none!important}
  .uk-listbox__panel,.uk-cal,.uk-toast,dialog.uk-sheet[open],dialog.uk-sheet::backdrop,.uk-popover.is-open,.uk-menu__panel.is-open,.uk-card-option__check .uk-icon,.uk-check-box::after{animation-name:uk-fade-in!important;animation-duration:120ms!important;animation-timing-function:linear!important}
  .uk-toast.is-leaving,dialog.uk-sheet.is-closing{animation-name:uk-fade-out!important}
  .uk-skel{animation:none!important;background-image:none}
  .uk-btn__spinner .uk-icon,.uk-kpi.is-changed,.is-flash,.is-flash *{animation:none!important}
  .uk-listbox.is-open .uk-listbox__chev,.uk-disclosure[open]>summary .uk-disclosure__chev{transition:none!important}
  .uk-disclosure::details-content{transition:none!important}
  .uk-seg__thumb,.uk-tabs__indicator,.uk-headroom__dot,.uk-headroom__value{transition:none!important}
  .uk-switch::before{transition:none!important}
}
