@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:optional;src:url(/fonts/inter-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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;font-style:normal;font-weight:100 900;font-display:optional;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--zinc-50:#fafafa;--zinc-100:#f4f4f5;--zinc-200:#e4e4e7;--zinc-300:#d4d4d8;--zinc-400:#a1a1aa;--zinc-500:#71717a;--zinc-600:#52525b;--zinc-700:#3f3f46;--zinc-800:#27272a;--zinc-900:#18181b;--zinc-950:#09090b;--white:#fff;--black:#000;--kat-0:#04090b;--kat-1:#071013;--kat-2:#0a181c;--kat-3:#0d2126;--kat-4:#112b31;--kat-5:#17383f;--kat-6:#21505a;--kat-7:#326d79;--brand-bright:#00e5c7;--brand-dim:#00c9ae;--brand-deep:#0a6b5e;--brand-deeper:#064c42;--brand-tint:#d5faf2;--brand-shade:#052924;--success:#0f7a4a;--success-soft:#e2f3e9;--success-on-soft:#0b5c38;--warning:#b26a00;--warning-soft:#fbeeda;--warning-on-soft:#7a4a00;--danger:#b3271a;--danger-soft:#fbe7e4;--danger-on-soft:#96190f;--info:#2a5ca8;--info-soft:#e5edf9;--info-on-soft:#1e4586;--neutral:#71717a;--neutral-soft:#f4f4f5;--neutral-on-soft:#52525b;--success-d:#34d399;--success-soft-d:#062a1d;--success-on-soft-d:#6ee7b7;--warning-d:#fbbf24;--warning-soft-d:#2d1f04;--warning-on-soft-d:#fcd34d;--danger-d:#f87171;--danger-soft-d:#2e100d;--danger-on-soft-d:#fca5a5;--info-d:#60a5fa;--info-soft-d:#0c1d35;--info-on-soft-d:#93c5fd;--neutral-d:#a1a1aa;--neutral-soft-d:#1c2427;--neutral-on-soft-d:#d4d4d8;--viz-1:#2a5ca8;--viz-2:#b26a00;--viz-3:#0f7a4a;--viz-4:#6d3fa8;--viz-5:#a82a63;--viz-6:#0e7490;--viz-1-d:#60a5fa;--viz-2-d:#fbbf24;--viz-3-d:#34d399;--viz-4-d:#c084fc;--viz-5-d:#f472b6;--viz-6-d:#22d3ee;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--kat-bg:var(--zinc-100);--kat-bg-raised:var(--white);--kat-bg-sunken:var(--zinc-200);--kat-bg-hover:var(--zinc-200);--kat-bg-active:var(--zinc-300);--kat-ink:var(--zinc-950);--kat-ink-muted:var(--zinc-600);--kat-ink-subtle:#5e5e67;--kat-line:var(--zinc-200);--kat-line-strong:#86868f;--kat-brand:var(--brand-deep);--kat-brand-hover:var(--brand-deeper);--kat-brand-fill:var(--brand-deep);--kat-on-brand-fill:var(--white);--kat-brand-soft:var(--brand-tint);--kat-cta-bg:var(--zinc-950);--kat-cta-bg-hover:var(--zinc-700);--kat-cta-bg-active:var(--zinc-600);--kat-cta-bg-disabled:var(--zinc-300);--kat-cta-ink:var(--white);--kat-cta-ink-disabled:var(--zinc-500);--kat-cta-border:var(--kat-line-strong);--kat-cta-border-hover:var(--zinc-700);--kat-cta-border-active:var(--zinc-600);--kat-cta-outline-ink:var(--zinc-950);--kat-link:var(--zinc-600);--kat-link-hover:var(--zinc-950);--kat-link-active:var(--zinc-700);--kat-focus:var(--zinc-950);--kat-focus-offset:2px;--kat-success:var(--success);--kat-success-soft:var(--success-soft);--kat-success-ink:var(--success-on-soft);--kat-warning:var(--warning);--kat-warning-soft:var(--warning-soft);--kat-warning-ink:var(--warning-on-soft);--kat-danger:var(--danger);--kat-danger-soft:var(--danger-soft);--kat-danger-ink:var(--danger-on-soft);--kat-info:var(--info);--kat-info-soft:var(--info-soft);--kat-info-ink:var(--info-on-soft);--kat-neutral:var(--neutral);--kat-neutral-soft:var(--neutral-soft);--kat-neutral-ink:var(--neutral-on-soft);--kat-viz-1:var(--viz-1);--kat-viz-2:var(--viz-2);--kat-viz-3:var(--viz-3);--kat-viz-4:var(--viz-4);--kat-viz-5:var(--viz-5);--kat-viz-6:var(--viz-6);--kat-viz-track:var(--zinc-200);--shadow-rgb:4 9 11;--lift-0:none;--lift-1:0 1px 2px rgb(var(--shadow-rgb) / .06);--lift-2:0 6px 16px -4px rgb(var(--shadow-rgb) / .12), 0 2px 6px -2px rgb(var(--shadow-rgb) / .06);--lift-3:0 24px 56px -12px rgb(var(--shadow-rgb) / .22), 0 6px 16px -6px rgb(var(--shadow-rgb) / .1);--font-display:"Geist", "Geist Fallback", Helvetica, Arial, sans-serif;--font-base:"Inter", "Inter Fallback", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--weight-heading:400;--weight-body:500;--weight-strong:600;--fs-t1:2.75rem;--fs-t2:2.25rem;--fs-t3:1.875rem;--fs-t4:1.625rem;--fs-t5:1.5rem;--fs-t6:1.25rem;--fs-t7:1rem;--fs-b1:1.25rem;--fs-b2:1.125rem;--fs-b3:1rem;--fs-b4:.875rem;--fs-b5:.8125rem;--fs-b6:.75rem;--lh-t1:.96;--lh-t2:1;--lh-t3:1;--lh-t4:1.14;--lh-t5:1.1;--lh-t6:1.2;--lh-t7:1.3;--lh-body:1.55;--lh-body-tight:1.3;--lh-body-relaxed:1.68;--ls-t1:0;--ls-t2:0;--ls-t3:0;--ls-t4:0;--ls-t5:.02em;--ls-t6:.02em;--ls-t7:.015em;--ls-b:.015em;--ls-b-small:.04em;--ls-label:.06em;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:2.5rem;--space-3xl:4rem;--space-4xl:5rem;--space-5xl:8rem;--section-y:4rem;--section-y-tight:2.5rem;--w-text:40rem;--w-prose:48rem;--w-page:67.5rem;--w-wide:75rem;--w-full:100rem;--gutter:1rem;--margin:1.875rem;--header-h:4.5rem;--hero-top:var(--header-h);--radius-xs:.25rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--radius-button:var(--radius-full);--radius-card:var(--radius-md);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-cubic:cubic-bezier(.215, .61, .355, 1);--ease-quad:cubic-bezier(.25, .46, .45, .94);--ease-emphasis:cubic-bezier(.66, 0, .34, 1);--ease-spring:cubic-bezier(.34, 1.28, .42, 1);--dur-1:.1s;--dur-2:.15s;--dur-3:.2s;--dur-4:.3s;--dur-5:.45s;--dur-6:.5s;--z-sticky:20;--z-dropdown:40;--z-drawer:60;--z-modal:80;--z-toast:100;--btn-primary-bg:var(--kat-cta-bg);--btn-primary-bg-hover:var(--kat-cta-bg-hover);--btn-primary-bg-active:var(--kat-cta-bg-active);--btn-primary-bg-disabled:var(--kat-cta-bg-disabled);--btn-primary-ink:var(--kat-cta-ink);--btn-primary-ink-disabled:var(--kat-cta-ink-disabled);--btn-secondary-bg:transparent;--btn-secondary-border:var(--kat-cta-border);--btn-secondary-border-hover:var(--kat-cta-border-hover);--btn-secondary-border-active:var(--kat-cta-border-active);--btn-secondary-ink:var(--kat-cta-outline-ink);--btn-danger-bg:var(--danger);--btn-danger-bg-hover:var(--danger-on-soft);--btn-danger-ink:var(--white);--card-bg:var(--kat-bg-raised);--card-border:var(--kat-line);--card-ink:var(--kat-ink);--field-bg:var(--kat-bg-raised);--field-border:var(--kat-line-strong);--field-border-focus:var(--kat-focus);--field-ink:var(--kat-ink);--field-placeholder:var(--kat-ink-subtle);--header-bg:var(--kat-bg-raised);--header-ink:var(--kat-ink);--header-line:var(--kat-line);--table-head-bg:var(--kat-bg-sunken);--table-row-hover:var(--kat-bg-hover);--table-line:var(--kat-line);--skeleton-bg:var(--kat-bg-sunken);--skeleton-sheen:#ffffff8c}[data-kat=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--kat-bg:var(--kat-1);--kat-bg-raised:var(--kat-3);--kat-bg-sunken:var(--kat-0);--kat-bg-hover:var(--kat-4);--kat-bg-active:var(--kat-5);--kat-ink:var(--zinc-100);--kat-ink-muted:var(--zinc-400);--kat-ink-subtle:#8b949c;--kat-line:var(--kat-5);--kat-line-strong:#3d818f;--kat-brand:var(--brand-bright);--kat-brand-hover:var(--brand-dim);--kat-brand-fill:var(--brand-bright);--kat-on-brand-fill:var(--kat-0);--kat-brand-soft:var(--brand-shade);--kat-cta-bg:var(--white);--kat-cta-bg-hover:var(--zinc-300);--kat-cta-bg-active:var(--zinc-400);--kat-cta-bg-disabled:var(--kat-6);--kat-cta-ink:var(--kat-0);--kat-cta-ink-disabled:var(--zinc-500);--kat-cta-border:var(--kat-line-strong);--kat-cta-border-hover:var(--zinc-300);--kat-cta-border-active:var(--zinc-400);--kat-cta-outline-ink:var(--zinc-100);--kat-link:#9797a2;--kat-link-hover:var(--zinc-300);--kat-link-active:var(--zinc-400);--kat-focus:var(--white);--kat-success:var(--success-d);--kat-success-soft:var(--success-soft-d);--kat-success-ink:var(--success-on-soft-d);--kat-warning:var(--warning-d);--kat-warning-soft:var(--warning-soft-d);--kat-warning-ink:var(--warning-on-soft-d);--kat-danger:var(--danger-d);--kat-danger-soft:var(--danger-soft-d);--kat-danger-ink:var(--danger-on-soft-d);--kat-info:var(--info-d);--kat-info-soft:var(--info-soft-d);--kat-info-ink:var(--info-on-soft-d);--kat-neutral:var(--neutral-d);--kat-neutral-soft:var(--neutral-soft-d);--kat-neutral-ink:var(--neutral-on-soft-d);--kat-viz-1:var(--viz-1-d);--kat-viz-2:var(--viz-2-d);--kat-viz-3:var(--viz-3-d);--kat-viz-4:var(--viz-4-d);--kat-viz-5:var(--viz-5-d);--kat-viz-6:var(--viz-6-d);--kat-viz-track:var(--kat-4);--btn-danger-bg:var(--danger-d);--btn-danger-bg-hover:#fca5a5;--btn-danger-ink:var(--kat-0);--skeleton-sheen:#ffffff14}[data-kat=warm]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--kat-bg:#fbfaf4;--kat-bg-raised:#fffef9;--kat-bg-sunken:#f2f0e4;--kat-bg-hover:#efece0;--kat-bg-active:#e7e3d4;--kat-ink:#17201d;--kat-ink-muted:#4b544f;--kat-ink-subtle:#656d68;--kat-line:#e4e1d3;--kat-line-strong:#83836f;--kat-brand:var(--brand-deep);--kat-brand-hover:var(--brand-deeper);--kat-brand-fill:var(--brand-deep);--kat-on-brand-fill:#fffef9;--kat-brand-soft:#e6f6f1;--kat-cta-bg:#17201d;--kat-cta-bg-hover:#2c3733;--kat-cta-bg-active:#3f4b46;--kat-cta-bg-disabled:#d5d1c2;--kat-cta-ink:#fffef9;--kat-cta-ink-disabled:#7b8079;--kat-cta-border:var(--kat-line-strong);--kat-cta-border-hover:#2c3733;--kat-cta-border-active:#3f4b46;--kat-cta-outline-ink:#17201d;--kat-link:#4b544f;--kat-link-hover:#17201d;--kat-link-active:#2c3733;--kat-focus:#17201d;--kat-viz-track:#e4e1d3}@media (width>=640px){:root{--fs-t1:3.375rem;--fs-t2:3rem;--fs-t3:2.25rem;--fs-t4:1.875rem;--section-y:5rem;--section-y-tight:3rem}}@media (width>=900px){:root{--fs-t1:3.75rem;--fs-t2:3rem;--fs-t3:2.5rem;--fs-t4:1.875rem;--section-y:6rem}}@media (width>=1200px){:root{--fs-t1:4rem;--fs-t2:3.5rem;--fs-t3:2.75rem;--fs-t4:2.125rem;--section-y:8rem;--section-y-tight:4rem;--gutter:1.5rem}}@media (width>=1600px){:root{--fs-t1:6rem;--fs-t2:4.375rem;--fs-t3:3.4375rem;--fs-t4:3rem}}@media (prefers-reduced-motion:reduce){:root{--dur-1:1ms;--dur-2:1ms;--dur-3:1ms;--dur-4:1ms;--dur-5:1ms;--dur-6:1ms}}:root{--sidebar-w:252px;--sidebar-w-rail:64px;--topbar-h:60px;--tabbar-h:60px;--shell:var(--kat-1);--shell-raised:var(--kat-3);--shell-line:var(--kat-5);--shell-hover:var(--kat-4);--shell-ink:var(--zinc-100);--shell-ink-muted:var(--zinc-400);--shell-ink-subtle:#8b949c;--shell-active-bar:var(--brand-bright);--shell-active-ink:var(--white);--shell-active-bg:var(--kat-4);--skeleton-base:var(--kat-bg-sunken)}@keyframes nv-marquee{0%{transform:translate(0)}to{transform:translateX(calc(-100% - var(--marquee-gap,1.5rem)))}}@keyframes nv-marquee-reverse{0%{transform:translateX(calc(-100% - var(--marquee-gap,1.5rem)))}to{transform:translate(0)}}@keyframes nv-scroll-x{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes nv-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes nv-draw{to{stroke-dashoffset:0}}@keyframes nv-travel{0%{offset-distance:var(--travel-from,-20%)}40%,to{offset-distance:var(--travel-to,80%)}}@keyframes nv-pulse{50%,to{opacity:0;transform:scale(1.4)}}@keyframes nv-fade-in{0%{opacity:0}to{opacity:1}}@keyframes nv-rise-in{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:none}}@keyframes nv-word-cycle{0%,4%{opacity:0;transform:translateY(.5em)}10%,90%{opacity:1;transform:none}96%,to{opacity:0;transform:translateY(-.5em)}}.nv-marquee{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.nv-marquee-track{gap:var(--marquee-gap,1.5rem);animation:nv-marquee var(--marquee-duration,40s) linear infinite;will-change:transform;flex:none;padding-inline-end:var(--marquee-gap,1.5rem);display:flex}.nv-marquee-track[data-direction=reverse]{animation-name:nv-marquee-reverse}@media (hover:hover){.nv-marquee:hover .nv-marquee-track{animation-play-state:paused}}.nv-reveal{opacity:1}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.nv-reveal{opacity:0;animation:linear both nv-rise-in;animation-timeline:view();animation-range:entry 10% cover 32%}}}.nv-draw path,.nv-draw line,.nv-draw polyline{stroke-dasharray:1;stroke-dashoffset:1px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.nv-draw path,.nv-draw line,.nv-draw polyline{animation:linear both nv-draw;animation-timeline:view();animation-range:entry 20% cover 45%}}}@media (prefers-reduced-motion:reduce){.nv-draw path,.nv-draw line,.nv-draw polyline{stroke-dashoffset:0}}.nv-shimmer{background-image:linear-gradient(90deg, transparent 0%, var(--skeleton-sheen) 50%, transparent 100%);animation:nv-shimmer 1.4s var(--ease-in-out) infinite;background-repeat:no-repeat;background-size:200% 100%}@media (prefers-reduced-motion:reduce){.nv-marquee{overflow:visible;-webkit-mask-image:none;mask-image:none}.nv-marquee-track{flex-wrap:wrap;flex:auto;justify-content:center;width:100%;min-width:0;padding-inline-end:0;animation:none}.nv-marquee-track[data-clone=true]{display:none}.nv-shimmer{animation:none}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:var(--kat-bg);color:var(--kat-ink);font-family:var(--font-base);font-size:var(--fs-b4);font-weight:var(--weight-body);line-height:var(--lh-body);letter-spacing:var(--ls-b-small);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:var(--lh-t6);color:var(--kat-ink);text-wrap:balance;margin:0}h1{font-size:var(--fs-t5);font-weight:var(--weight-heading);letter-spacing:var(--ls-t5)}h2{font-size:var(--fs-t6);letter-spacing:var(--ls-t6)}h3{font-size:var(--fs-t7);letter-spacing:var(--ls-t7)}h4{font-size:var(--fs-b4)}p{margin:0}a{color:inherit;text-decoration:none}.prose a,p>a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}ul,ol{margin:0;padding:0;list-style:none}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}.tabular,td.num,th.num{font-variant-numeric:tabular-nums}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--kat-focus);outline-offset:var(--kat-focus-offset);border-radius:var(--radius-xs)}.sidebar :where(a,button):focus-visible,.tabbar :where(a,button):focus-visible{outline-color:var(--brand-bright)}::selection{background:var(--brand-bright);color:var(--kat-0)}.skip-link{top:var(--space-xs);left:var(--space-xs);z-index:200;background:var(--kat-cta-bg);color:var(--kat-cta-ink);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);font-weight:var(--weight-strong);transition:transform var(--dur-2) var(--ease-out);position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:9px var(--space-lg);border-radius:var(--radius-button);background:var(--btn-primary-bg);color:var(--btn-primary-ink);font-size:var(--fs-b4);font-weight:var(--weight-body);white-space:nowrap;transition:background-color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);border:1px solid #0000;line-height:1.2;display:inline-flex}.btn:hover{background:var(--btn-primary-bg-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{background:var(--btn-primary-bg-disabled);color:var(--btn-primary-ink-disabled);pointer-events:none}.btn.secondary{background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);color:var(--btn-secondary-ink)}.btn.secondary:hover{border-color:var(--btn-secondary-border-hover);background:var(--kat-bg-hover)}.btn.ghost{color:var(--kat-ink-muted);padding-inline:var(--space-sm);background:0 0}.btn.ghost:hover{background:var(--kat-bg-hover);color:var(--kat-ink)}.btn.danger{background:var(--btn-danger-bg);color:var(--btn-danger-ink)}.btn.danger:hover{background:var(--btn-danger-bg-hover)}.btn.sm{padding:5px var(--space-md);font-size:var(--fs-b5)}.btn.block{width:100%}.icon-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--kat-ink-muted);transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:var(--kat-bg-hover);color:var(--kat-ink)}.field{flex-direction:column;gap:6px;display:flex}.field>label,.field-label{font-size:var(--fs-b5);color:var(--kat-ink)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=search],input[type=tel],input[type=url],select,textarea{width:100%;padding:8px var(--space-sm);border:1px solid var(--field-border);border-radius:var(--radius-md);background:var(--field-bg);color:var(--field-ink);font-size:var(--fs-b4);transition:border-color var(--dur-1) var(--ease-out)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--kat-cta-border-hover)}input:focus,select:focus,textarea:focus{border-color:var(--field-border-focus)}input:disabled,select:disabled,textarea:disabled{background:var(--kat-bg-sunken);color:var(--kat-ink-subtle);cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--field-placeholder)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--kat-danger)}textarea{resize:vertical;min-height:88px}select{appearance:none;padding-right:var(--space-xl);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%2371717a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm) center}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--kat-cta-bg);cursor:pointer}.field-hint{font-size:var(--fs-b6);color:var(--kat-ink-subtle)}.field-error{font-size:var(--fs-b6);color:var(--kat-danger-ink);align-items:flex-start;gap:6px;display:flex}.form-error{align-items:flex-start;gap:var(--space-xs);margin-bottom:var(--space-md);padding:var(--space-sm);border-radius:var(--radius-md);background:var(--kat-danger-soft);color:var(--kat-danger-ink);font-size:var(--fs-b5);display:flex}.form-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.grid-2{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.check-row{align-items:center;gap:var(--space-xs);font-size:var(--fs-b4);cursor:pointer;display:flex}.card{border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card-bg);padding:var(--space-lg)}.badge{border-radius:var(--radius-xs);background:var(--kat-neutral-soft);color:var(--kat-neutral-ink);font-size:var(--fs-b6);font-weight:var(--weight-strong);white-space:nowrap;align-items:center;gap:5px;padding:2px 8px;line-height:1.6;display:inline-flex}.badge.green{background:var(--kat-success-soft);color:var(--kat-success-ink)}.badge.red{background:var(--kat-danger-soft);color:var(--kat-danger-ink)}.badge.yellow{background:var(--kat-warning-soft);color:var(--kat-warning-ink)}.badge.blue{background:var(--kat-info-soft);color:var(--kat-info-ink)}.badge.gray{background:var(--kat-neutral-soft);color:var(--kat-neutral-ink)}.badge.signal{background:var(--kat-brand-fill);color:var(--kat-on-brand-fill)}.table-wrap{border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);overflow:hidden}.table-wrap.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-b4)}thead th{z-index:1;padding:var(--space-sm) var(--space-md);background:var(--table-head-bg);border-bottom:1px solid var(--table-line);color:var(--kat-ink-subtle);font-size:var(--fs-b6);font-weight:var(--weight-strong);letter-spacing:var(--ls-label);text-align:left;white-space:nowrap;position:sticky;top:0}tbody td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--table-line);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--table-row-hover)}th.num,td.num{text-align:right}thead th button{color:inherit;font:inherit;letter-spacing:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}thead th button:hover{color:var(--kat-ink)}.toolbar{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.skeleton{border-radius:var(--radius-sm);background:var(--skeleton-base);position:relative;overflow:hidden}.skeleton:after{content:"";background-image:linear-gradient(90deg, transparent, var(--skeleton-sheen), transparent);animation:nv-shimmer 1.4s var(--ease-in-out) infinite;background-repeat:no-repeat;background-size:200% 100%;position:absolute;inset:0}.skeleton-row{height:12px;margin-bottom:var(--space-xs)}.skeleton-row:last-child{width:60%;margin-bottom:0}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none;display:none}}.nv-logo{line-height:1;font-family:var(--font-display);letter-spacing:-.02em;align-items:center;font-weight:600;display:inline-flex}.nv-logo-mark{display:inline-flex}.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100dvh;display:grid}.app-shell.collapsed{grid-template-columns:var(--sidebar-w-rail) minmax(0, 1fr)}.sidebar{gap:var(--space-2xs);padding:var(--space-md) var(--space-sm);background:var(--shell);border-right:1px solid var(--shell-line);flex-direction:column;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar .brand{justify-content:space-between;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-xs) var(--space-lg);color:var(--shell-ink);display:flex}.sidebar .brand .nv-logo-mark{color:var(--brand-bright)}.sidebar nav{gap:var(--space-lg);flex-direction:column;display:flex}.sidebar .section-title{padding:0 var(--space-xs) var(--space-xs);color:var(--shell-ink-subtle);font-size:var(--fs-b6);font-weight:var(--weight-strong);letter-spacing:var(--ls-label)}.sidebar nav a{align-items:center;gap:var(--space-sm);padding:7px var(--space-xs);border-radius:var(--radius-md);color:var(--shell-ink-muted);font-size:var(--fs-b4);font-weight:var(--weight-body);transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);display:flex;position:relative}.sidebar nav a:hover{background:var(--shell-hover);color:var(--shell-ink)}.sidebar nav a.active{background:var(--shell-active-bg);color:var(--shell-active-ink);font-weight:var(--weight-strong)}.sidebar nav a.active:before{content:"";left:calc(var(--space-sm) * -1);background:var(--shell-active-bar);border-radius:0 2px 2px 0;width:3px;position:absolute;top:6px;bottom:6px}.sidebar .badge{margin-left:auto}.sidebar .spacer{flex:1}.sidebar-collapse{align-items:center;gap:var(--space-sm);padding:7px var(--space-xs);border-radius:var(--radius-md);color:var(--shell-ink-subtle);font-size:var(--fs-b5);background:0 0;border:none;display:flex}.sidebar-collapse:hover{background:var(--shell-hover);color:var(--shell-ink)}.drawer-close{display:none}.app-shell.collapsed .sidebar{padding-inline:var(--space-xs);align-items:center}.app-shell.collapsed .nav-label,.app-shell.collapsed .section-title,.app-shell.collapsed .brand .nv-logo>span:last-child,.app-shell.collapsed .sidebar .badge{display:none}.app-shell.collapsed .sidebar nav a,.app-shell.collapsed .sidebar-collapse{justify-content:center;width:40px;padding-inline:0}.app-shell.collapsed .sidebar nav a.active:before{left:-8px}.app-body{flex-direction:column;min-width:0;display:flex}.topbar{align-items:center;gap:var(--space-sm);z-index:var(--z-sticky);height:var(--topbar-h);padding-inline:var(--space-lg);background:color-mix(in srgb, var(--kat-bg-raised) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--kat-line);display:flex;position:sticky;top:0}.menu-toggle{display:none}.crumbs{align-items:center;gap:var(--space-xs);min-width:0;color:var(--kat-ink-subtle);font-size:var(--fs-b5);display:flex}.crumbs>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.crumb-current{color:var(--kat-ink);font-weight:var(--weight-strong)}.topbar-actions{align-items:center;gap:var(--space-xs);margin-left:auto;display:flex}.search-trigger{align-items:center;gap:var(--space-xs);min-width:190px;padding:6px var(--space-sm);border:1px solid var(--kat-line);border-radius:var(--radius-md);background:var(--kat-bg-sunken);color:var(--kat-ink-subtle);font-size:var(--fs-b5);transition:border-color var(--dur-1) var(--ease-out);display:flex}.search-trigger:hover{border-color:var(--kat-line-strong);color:var(--kat-ink-muted)}.search-trigger kbd{border:1px solid var(--kat-line);border-radius:var(--radius-xs);background:var(--kat-bg-raised);font-size:var(--fs-b6);margin-left:auto;padding:1px 5px}.unread-dot{background:var(--kat-danger);width:7px;height:7px;box-shadow:0 0 0 2px var(--kat-bg-raised);border-radius:50%;position:absolute;top:7px;right:7px}.icon-btn.avatar{background:var(--kat-ink);color:var(--kat-cta-ink);font-size:var(--fs-b6);font-weight:var(--weight-strong);letter-spacing:.02em}.icon-btn.avatar:hover{background:var(--kat-cta-bg-hover);color:var(--kat-cta-ink)}.main{min-width:0;padding:var(--space-lg) var(--space-lg) var(--space-4xl);flex:1}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.page-header h1{font-size:var(--fs-t5)}.page-header .sub{color:var(--kat-ink-muted);font-size:var(--fs-b4);margin-top:4px}.page-header .actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.filter-bar{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-md);padding:var(--space-sm);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);flex-wrap:wrap;display:flex}.filter-bar select,.filter-bar input{width:auto;min-width:150px}.filter-search{flex:1;min-width:200px}.filter-actions{gap:var(--space-xs);margin-left:auto;display:flex}.pagination{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--kat-line);color:var(--kat-ink-muted);font-size:var(--fs-b5);display:flex}.pagination .actions{gap:var(--space-xs);display:flex}.row-actions{justify-content:flex-end;align-items:center;gap:var(--space-xs);display:flex}.menu{z-index:var(--z-dropdown);min-width:208px;padding:var(--space-2xs);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);box-shadow:var(--lift-2);position:absolute;top:calc(100% + 6px);right:0}.menu button,.menu a{align-items:center;gap:var(--space-xs);width:100%;padding:7px var(--space-sm);border-radius:var(--radius-md);color:var(--kat-ink);font-size:var(--fs-b4);text-align:left;background:0 0;border:none;display:flex}.menu button:hover,.menu a:hover{background:var(--kat-bg-hover)}.menu button.danger{color:var(--kat-danger-ink)}.menu button.danger:hover{background:var(--kat-danger-soft)}.menu-head{padding:var(--space-sm)}.menu-head .name{font-weight:var(--weight-strong)}.divider{height:1px;margin:var(--space-2xs) 0;background:var(--kat-line)}.modal-backdrop{z-index:var(--z-modal);padding:var(--space-md);background:color-mix(in srgb, var(--kat-ink) 45%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:nv-fade var(--dur-2) var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:560px;max-height:calc(100vh - var(--space-2xl));border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);box-shadow:var(--lift-3);animation:nv-rise var(--dur-3) var(--ease-out);overflow-y:auto}.modal>header{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--kat-line);display:flex}.modal>form,.modal>.body{padding:var(--space-lg)}.modal .actions{justify-content:flex-end;gap:var(--space-xs);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--kat-line);display:flex}.modal .field+.field,.modal .form-grid+.field,.modal .field+.form-grid{margin-top:var(--space-md)}@keyframes nv-fade{0%{opacity:0}}@keyframes nv-rise{0%{opacity:0;transform:translateY(10px)scale(.99)}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}.toast-stack{right:var(--space-md);bottom:var(--space-md);z-index:var(--z-toast);gap:var(--space-xs);max-width:min(380px, calc(100vw - var(--space-2xl)));flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border:1px solid var(--kat-line);border-radius:var(--radius-md);background:var(--kat-bg-raised);box-shadow:var(--lift-2);color:var(--kat-ink);font-size:var(--fs-b4);text-align:left;animation:nv-toast var(--dur-3) var(--ease-spring);display:flex}.toast.success{border-left:3px solid var(--kat-success)}.toast.error{border-left:3px solid var(--kat-danger)}.toast.info{border-left:3px solid var(--kat-info)}.toast.success svg{color:var(--kat-success-ink)}.toast.error svg{color:var(--kat-danger-ink)}.toast.info svg{color:var(--kat-info-ink)}@keyframes nv-toast{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.tabs{gap:var(--space-2xs);margin-bottom:var(--space-lg);border-bottom:1px solid var(--kat-line);display:flex;overflow-x:auto}.tabs button{padding:var(--space-xs) var(--space-sm);color:var(--kat-ink-muted);font-size:var(--fs-b4);font-weight:var(--weight-body);white-space:nowrap;transition:color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000}.tabs button:hover{color:var(--kat-ink)}.tabs button[aria-selected=true]{color:var(--kat-ink);font-weight:var(--weight-strong);border-bottom-color:var(--kat-ink)}.stat-row{gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.stat{gap:var(--space-xs);padding:var(--space-md) var(--space-lg);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);flex-direction:column;display:flex}.stat-head{justify-content:space-between;align-items:center;gap:var(--space-xs);color:var(--kat-ink-muted);font-size:var(--fs-b5);font-weight:var(--weight-body);display:flex}.stat .label{color:var(--kat-ink-muted);font-size:var(--fs-b5);font-weight:var(--weight-body);display:block}.stat .value{font-size:var(--fs-t5);font-weight:var(--weight-strong);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-t6);line-height:1.1;display:block}.stat .sub{color:var(--kat-ink-subtle);font-size:var(--fs-b6)}.stat-link{color:var(--kat-ink);font-size:var(--fs-b5);font-weight:var(--weight-strong);text-underline-offset:3px;text-decoration:underline}.stat-spark{height:28px}.delta{font-size:var(--fs-b6);font-weight:var(--weight-strong);align-items:center;gap:3px;display:inline-flex}.delta.pos{color:var(--kat-success-ink)}.delta.neg{color:var(--kat-danger-ink)}.figures{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.dash-top{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);display:grid}@media (width<=1024px){.dash-top{grid-template-columns:1fr}}.attention-card{padding:0;overflow:hidden}.attention-card>h2{padding:var(--space-lg) var(--space-lg) var(--space-sm)}.attention-card>.state-block{padding-bottom:var(--space-2xl)}.attention-list{flex-direction:column;display:flex}.attention-list>li+li>a{border-top:1px solid var(--kat-line)}.attention-list a{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-lg);color:inherit;text-align:left;transition:background-color var(--dur-1) var(--ease-out);display:flex}.attention-list a:hover{background:var(--kat-bg-hover)}.attention-icon{border-radius:var(--radius-md);background:var(--kat-bg-sunken);width:30px;height:30px;color:var(--kat-ink-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.attention-icon.red{background:var(--kat-danger-soft);color:var(--kat-danger-ink)}.attention-icon.yellow{background:var(--kat-warning-soft);color:var(--kat-warning-ink)}.attention-icon.blue{background:var(--kat-info-soft);color:var(--kat-info-ink)}.attention-icon.green{background:var(--kat-success-soft);color:var(--kat-success-ink)}.attention-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.attention-text>strong{font-size:var(--fs-b4);font-weight:var(--weight-strong)}.attention-text>span{color:var(--kat-ink-subtle);font-size:var(--fs-b6)}.attention-chevron{color:var(--kat-ink-subtle);flex-shrink:0}.collection-card{padding:0;overflow:hidden}.collection-body{padding:var(--space-lg)}.chart{width:100%}.chart-legend{gap:var(--space-xs) var(--space-md);margin-top:var(--space-sm);font-size:var(--fs-b6);color:var(--kat-ink-muted);flex-wrap:wrap;display:flex}.chart-legend>*{align-items:center;gap:6px;display:flex}.chart-legend i,.chart-legend .bar{border-radius:2px;flex-shrink:0;width:10px;height:10px}.grid-line{stroke:var(--kat-line);stroke-width:1px}.minibar{border-radius:var(--radius-full);background:var(--kat-viz-track);height:6px;overflow:hidden}.minibar>*{border-radius:inherit;background:var(--kat-ink);height:100%}.state-block{align-items:center;gap:var(--space-sm);padding:var(--space-3xl) var(--space-lg);text-align:center;flex-direction:column;display:flex}.state-icon{border-radius:var(--radius-lg);background:var(--kat-bg-sunken);width:44px;height:44px;color:var(--kat-ink-subtle);justify-content:center;align-items:center;display:flex}.state-title{font-size:var(--fs-b2);font-weight:var(--weight-strong)}.state-text{max-width:44ch;color:var(--kat-ink-muted);font-size:var(--fs-b4);line-height:var(--lh-body-relaxed)}.state-block .actions{gap:var(--space-xs);margin-top:var(--space-xs);display:flex}.empty{padding:var(--space-2xl) var(--space-lg);text-align:center;color:var(--kat-ink-muted)}.error-boundary{max-width:520px;margin:var(--space-4xl) auto;padding:var(--space-xl);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);text-align:center}.route-loading{padding:var(--space-lg) 0}.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite nv-spin}@keyframes nv-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.palette-backdrop{z-index:var(--z-modal);padding:12vh var(--space-md) var(--space-md);background:color-mix(in srgb, var(--kat-ink) 45%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;display:flex;position:fixed;inset:0}.palette{border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);width:100%;max-width:600px;max-height:62vh;box-shadow:var(--lift-3);animation:nv-rise var(--dur-3) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.palette{animation:none}}.palette-input{width:100%;padding:var(--space-md) var(--space-lg);border:none;border-bottom:1px solid var(--kat-line);font-size:var(--fs-b2);background:0 0;border-radius:0}.palette-input:focus{border-color:var(--kat-line);outline:none}.palette-results{padding:var(--space-xs);flex:1;overflow-y:auto}.palette-group{padding:var(--space-sm) var(--space-sm) var(--space-2xs);color:var(--kat-ink-subtle);font-size:var(--fs-b6);font-weight:var(--weight-strong);letter-spacing:var(--ls-label)}.palette-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);color:var(--kat-ink);font-size:var(--fs-b4);text-align:left;background:0 0;border:none;display:flex}.palette-item[aria-selected=true]{background:var(--kat-bg-active)}.palette-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette-sub{color:var(--kat-ink-subtle);font-size:var(--fs-b6)}.palette-dot{background:var(--kat-brand);border-radius:50%;width:6px;height:6px}.palette-enter{color:var(--kat-ink-subtle);font-size:var(--fs-b6)}.palette-note,.palette-footer{padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--kat-line);color:var(--kat-ink-subtle);font-size:var(--fs-b6)}.palette-footer{gap:var(--space-md);display:flex}.tabbar{display:none}.timeline{gap:var(--space-md);flex-direction:column;display:flex}.timeline>*{gap:var(--space-md);display:flex}.timeline-when{width:92px;color:var(--kat-ink-subtle);font-size:var(--fs-b6);font-variant-numeric:tabular-nums;flex-shrink:0}.history{gap:var(--space-sm);flex-direction:column;display:flex}.announcement{padding:var(--space-lg);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised)}.announcement-head{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.summary-list{flex-direction:column;display:flex}.summary-list>*{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--kat-line);display:flex}.summary-list>:last-child{border-bottom:none}.relation-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--kat-line);display:flex}.relation-row:last-child{border-bottom:none}.inline-create,.assign-form{gap:var(--space-xs);flex-wrap:wrap;align-items:flex-end;display:flex}.poll-options{gap:var(--space-sm);flex-direction:column;display:flex}.status-row{align-items:center;gap:var(--space-xs);display:flex}.flow-steps{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.flow-body{gap:var(--space-xs);flex-direction:column;display:flex}.flow-arrow{color:var(--kat-ink-subtle)}.pass-code{font-family:var(--font-mono);font-size:var(--fs-t6);letter-spacing:.14em;padding:var(--space-sm) var(--space-md);border:1px dashed var(--kat-line-strong);border-radius:var(--radius-md);background:var(--kat-bg-sunken);text-align:center}.pay-bar{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);box-shadow:var(--lift-2);display:flex;position:sticky;bottom:0}.pay-bar-amount{font-size:var(--fs-t5);font-weight:var(--weight-strong);font-variant-numeric:tabular-nums}.unit-card{gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--kat-line);border-radius:var(--radius-lg);background:var(--kat-bg-raised);flex-direction:column;display:flex}.unit-card-head{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.unit-card-debt{align-items:baseline;gap:var(--space-xs);display:flex}.unit-card-debt .label{color:var(--kat-ink-muted);font-size:var(--fs-b5)}.unit-card-debt .value{font-variant-numeric:tabular-nums;font-weight:var(--weight-strong);font-size:var(--fs-b2)}.handoff{min-height:100dvh;padding:var(--space-lg);background:var(--shell);justify-content:center;align-items:center;display:flex}.handoff-card{width:100%;max-width:400px;padding:var(--space-2xl);border:1px solid var(--shell-line);border-radius:var(--radius-lg);background:var(--shell-raised);color:var(--shell-ink);text-align:center}.handoff-mark{margin-bottom:var(--space-lg);color:var(--brand-bright);display:inline-flex}.handoff-status{color:var(--shell-ink-muted);font-size:var(--fs-b4)}.handoff-bar{height:3px;margin-top:var(--space-lg);border-radius:var(--radius-full);background:var(--shell-line);overflow:hidden}.handoff-bar>*{border-radius:inherit;background:var(--brand-bright);width:40%;height:100%;animation:nv-indeterminate 1.2s var(--ease-in-out) infinite;display:block}@keyframes nv-indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.handoff-bar>*{width:100%;animation:none}}.handoff-error{margin-top:var(--space-md);color:var(--kat-danger-ink);font-size:var(--fs-b5)}.handoff-action{margin-top:var(--space-lg)}.handoff-foot{margin-top:var(--space-lg);color:var(--shell-ink-subtle);font-size:var(--fs-b6)}.login-wrap{min-height:100dvh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:400px}@media (width<=900px){.app-shell,.app-shell.collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:var(--z-drawer);width:min(300px,84vw);transition:transform var(--dur-3) var(--ease-out);box-shadow:var(--lift-3);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:none}.drawer-close{border-radius:var(--radius-md);width:34px;height:34px;color:var(--shell-ink-muted);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.drawer-close:hover{background:var(--shell-hover);color:var(--shell-ink)}.sidebar-collapse{display:none}.menu-toggle{display:inline-flex}.topbar{padding-inline:var(--space-md)}.main{padding:var(--space-lg) var(--space-md) var(--space-4xl)}.search-trigger{min-width:0}.search-trigger span,.search-trigger kbd{display:none}.page-header{flex-direction:column;align-items:stretch}.filter-actions{width:100%;margin-left:0}.filter-search{width:100%;min-width:0}.filter-bar select,.filter-bar input{width:100%}.timeline>*{gap:var(--space-2xs);flex-direction:column}.timeline-when{width:auto}.tabbar{z-index:var(--z-sticky);height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--kat-bg-raised) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--kat-line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.tabbar a{color:var(--kat-ink-subtle);font-size:var(--fs-b6);font-weight:var(--weight-body);flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex}.tabbar a.active{color:var(--kat-ink)}.tabbar a.active:before{content:"";background:var(--kat-brand);border-radius:0 0 2px 2px;width:26px;height:2px;position:absolute;top:0}.tabbar a{position:relative}.app-shell:has(.tabbar) .main{padding-bottom:calc(var(--tabbar-h) + var(--space-lg))}.toast-stack{right:var(--space-sm);left:var(--space-sm);bottom:var(--space-sm);max-width:none}.pay-bar{align-items:stretch;gap:var(--space-sm);flex-direction:column}}.muted{color:var(--kat-ink-muted)}.small{font-size:var(--fs-b5)}.strong{font-weight:var(--weight-strong);color:var(--kat-ink)}.pos{color:var(--kat-success-ink)}.neg{color:var(--kat-danger-ink)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--space-2xs)}.mb-2{margin-bottom:var(--space-xs)}.mb-3{margin-bottom:var(--space-sm)}.mb-4{margin-bottom:var(--space-md)}.mt-2{margin-top:var(--space-xs)}.mt-3{margin-top:var(--space-sm)}.actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}@media print{:root,[data-kat=dark]{--kat-bg:#fff;--kat-bg-raised:#fff;--kat-bg-sunken:#fff;--kat-bg-hover:#fff;--kat-ink:#000;--kat-ink-muted:#333;--kat-ink-subtle:#555;--kat-line:#ccc;--kat-line-strong:#888;--lift-1:none;--lift-2:none;--lift-3:none}body{background:#fff}.sidebar,.topbar,.tabbar,.toast-stack,.palette-backdrop,.modal-backdrop,.skip-link,.filter-bar,.pagination,.row-actions,.page-header .actions,.no-print{display:none!important}.app-shell,.app-shell.collapsed{display:block}.main{padding:0}.card,.table-wrap,.stat{border:none;border-radius:0;padding:0}thead{display:table-header-group}tfoot{display:table-footer-group}tr,.card,.announcement{break-inside:avoid}thead th{color:#000;background:#fff;border-bottom:1px solid #000;position:static}tbody td{border-bottom:1px solid #ddd}.prose a:after,p>a:after{content:" (" attr(href) ")";color:#555;font-size:.85em}*,:before,:after{transition:none!important;animation:none!important}}
