.ui-icon[data-v-964237be]{flex:none;vertical-align:middle}.ui-dialog[data-v-ab5899c9]{padding:0;border:0;background:transparent;color:var(--c-text);width:calc(100% - 2 * var(--sp-4));max-height:calc(100dvh - 2 * var(--sp-4));overflow:visible}.ui-dialog--sm[data-v-ab5899c9]{max-width:440px}.ui-dialog--md[data-v-ab5899c9]{max-width:640px}.ui-dialog--lg[data-v-ab5899c9]{max-width:920px}.ui-dialog[data-v-ab5899c9]::backdrop{background:var(--c-overlay)}.ui-dialog__panel[data-v-ab5899c9]{display:flex;flex-direction:column;max-height:calc(100dvh - 2 * var(--sp-4));background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-3)}.ui-dialog__header[data-v-ab5899c9]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border)}.ui-dialog__title[data-v-ab5899c9]{margin:0;font-size:var(--fs-lg)}.ui-dialog__body[data-v-ab5899c9]{padding:var(--sp-5);overflow:auto}.ui-dialog__footer[data-v-ab5899c9]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--c-border)}@media(max-width:720px){.ui-dialog[data-v-ab5899c9]{max-width:none;width:100%;margin:auto 0 0;max-height:92dvh}.ui-dialog__panel[data-v-ab5899c9]{max-height:92dvh;border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0}.ui-dialog__footer[data-v-ab5899c9]{flex-direction:column-reverse}.ui-dialog__footer[data-v-ab5899c9] .btn{width:100%}}.confirm__details[data-v-91d79d50]{margin:0;padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-6);background:var(--c-surface-2);border-radius:var(--r-md);font-size:var(--fs-sm)}.ui-toast-region[data-v-69c87369]{position:fixed;z-index:var(--z-toast);right:var(--sp-4);bottom:var(--sp-4);display:grid;gap:var(--sp-2);max-width:min(420px,calc(100vw - 2 * var(--sp-4)));pointer-events:none}.ui-toast-list[data-v-69c87369]{display:grid;gap:var(--sp-2)}.ui-toast-list[data-v-69c87369]>*{pointer-events:auto}.toast[data-v-69c87369]{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-2)}.toast--success[data-v-69c87369]{border-color:var(--c-success-border);background:var(--c-success-bg);color:var(--c-success-text)}.toast--danger[data-v-69c87369]{border-color:var(--c-danger-border);background:var(--c-danger-bg);color:var(--c-danger-text)}.toast--info[data-v-69c87369]{border-color:var(--c-info-border);background:var(--c-info-bg);color:var(--c-info-text)}.ui-toast__msg[data-v-69c87369]{flex:1;min-width:0}@media(max-width:720px){.ui-toast-region[data-v-69c87369]{right:auto;bottom:auto;left:50%;transform:translate(-50%);top:calc(var(--topbar-h) + var(--sp-2));width:calc(100vw - 2 * var(--sp-4))}}.nav-item[data-v-ae8f8012]{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--r-md);color:var(--c-text);border:1px solid transparent;text-decoration:none}.nav-item[data-v-ae8f8012]:hover{background:var(--c-surface-2);text-decoration:none}.nav-item--sub[data-v-ae8f8012]{padding-left:calc(var(--sp-3) + 28px)}.nav-item--active[data-v-ae8f8012],.nav-item--active[data-v-ae8f8012]:hover{background:var(--c-accent-soft);color:var(--c-accent-text);font-weight:var(--fw-semibold);border-color:var(--c-accent)}.nav-item__step[data-v-ae8f8012]{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:var(--r-pill);background:var(--c-surface-2);border:1px solid var(--c-border-strong);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.nav-item--active .nav-item__step[data-v-ae8f8012]{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.nav-item__label[data-v-ae8f8012]{flex:1;min-width:0}.nav-item__progress[data-v-ae8f8012]{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--c-text-muted)}.nav-item--active .nav-item__progress[data-v-ae8f8012]{color:var(--c-accent-text)}@media(min-width:900px){.nav-item[data-v-ae8f8012]{min-height:38px}}.nav-section[data-v-47d925b4]{display:grid;gap:var(--sp-1)}.nav-section__head[data-v-47d925b4]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:0 var(--sp-3)}.nav-section__title[data-v-47d925b4]{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-muted);margin:0}.nav-section__items[data-v-47d925b4]{display:grid;gap:2px}.usercard[data-v-8f557c67]{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface-2);color:var(--c-text)}.usercard__who[data-v-8f557c67]{display:grid;gap:2px;justify-items:start;min-width:0}.usercard__name[data-v-8f557c67]{font-weight:var(--fw-semibold);overflow-wrap:anywhere}.usercard__email[data-v-8f557c67]{font-size:var(--fs-xs);color:var(--c-text-muted);overflow-wrap:anywhere}.usercard__role[data-v-8f557c67]{margin-top:var(--sp-1)}.sidebar[data-v-2134d3e0]{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4) var(--sp-3);min-height:100%}.sidebar__brand[data-v-2134d3e0]{padding:0 var(--sp-3)}.sidebar__brandlink[data-v-2134d3e0]{display:grid;color:var(--c-text);text-decoration:none}.sidebar__brandlink[data-v-2134d3e0]:hover{text-decoration:none}.sidebar__title[data-v-2134d3e0]{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.sidebar__sub[data-v-2134d3e0]{font-size:var(--fs-xs);color:var(--c-text-muted)}.sidebar__nav[data-v-2134d3e0]{display:grid;gap:var(--sp-5);align-content:start;flex:1}.step-head[data-v-2134d3e0]{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) 0;font-weight:var(--fw-semibold)}.step-head__num[data-v-2134d3e0]{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:var(--r-pill);background:var(--c-surface-2);border:1px solid var(--c-border-strong);font-size:var(--fs-xs)}.step-head--active .step-head__num[data-v-2134d3e0]{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.step-head__progress[data-v-2134d3e0]{margin-left:auto;font-size:var(--fs-xs);font-weight:var(--fw-normal);font-variant-numeric:tabular-nums;color:var(--c-text-muted)}.sidebar__footer[data-v-2134d3e0]{padding:0 var(--sp-3);font-size:var(--fs-xs);color:var(--c-text-muted)}.sidebar__version[data-v-2134d3e0]{font-family:var(--font-mono);overflow-wrap:anywhere}.ui-menu[data-v-aa909408]{position:relative;display:inline-block}.ui-menu__list[data-v-aa909408]{position:fixed;inset:auto;margin:0;z-index:var(--z-dialog);max-height:calc(100dvh - 16px);overflow-y:auto;color:var(--c-text);padding:var(--sp-1);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-2)}.ui-menu__item[data-v-aa909408]{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:var(--tap);padding:var(--sp-2) var(--sp-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--c-text);text-align:left;cursor:pointer}.ui-menu__item[data-v-aa909408]:hover:not(:disabled),.ui-menu__item[data-v-aa909408]:focus-visible{background:var(--c-surface-2)}.ui-menu__item[data-v-aa909408]:disabled{color:var(--c-text-faint);cursor:not-allowed}.ui-menu__item--danger[data-v-aa909408]{color:var(--c-danger)}.year-picker[data-v-a9cd3011]{display:inline-flex;align-items:center;gap:var(--sp-1)}.year-picker__btn[data-v-a9cd3011]{display:inline-grid;place-items:center;width:var(--control-h);height:var(--control-h);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border-strong);border-radius:var(--r-md);cursor:pointer;padding:0}.year-picker__btn[data-v-a9cd3011]:hover:not(:disabled){background:var(--c-surface-2)}.year-picker__btn[data-v-a9cd3011]:disabled{opacity:.5;cursor:not-allowed}.year-picker__input[data-v-a9cd3011]{width:4.5rem;min-height:var(--control-h);text-align:center;font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold);font-size:var(--fs-md);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border-strong);border-radius:var(--r-md)}.year-picker--compact .year-picker__btn[data-v-a9cd3011]{width:36px;height:36px}.year-picker--compact .year-picker__input[data-v-a9cd3011]{width:4rem;min-height:36px}@media(max-width:720px){.year-picker--compact .year-picker__btn[data-v-a9cd3011]{width:44px;height:44px}.year-picker--compact .year-picker__input[data-v-a9cd3011]{width:4.5rem;min-height:44px}}.topbar[data-v-e3d2e066]{position:fixed;inset:0 0 auto;z-index:var(--z-topbar);height:var(--topbar-h);display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);background:var(--c-surface);border-bottom:1px solid var(--c-border);color:var(--c-text)}.topbar__title[data-v-e3d2e066]{flex:1;min-width:0;font-weight:var(--fw-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:900px){.topbar[data-v-e3d2e066]{display:none}}@media(max-width:380px){.topbar[data-v-e3d2e066]{gap:var(--sp-1);padding:0 var(--sp-2)}.topbar__title[data-v-e3d2e066]{font-size:var(--fs-sm)}}.drawer[data-v-02f32abf]{position:fixed;inset:0 auto 0 0;margin:0;padding:0;border:0;width:min(320px,88vw);max-width:none;height:100dvh;max-height:none;background:var(--c-surface);color:var(--c-text);box-shadow:var(--sh-3);overflow:hidden}.drawer[data-v-02f32abf]::backdrop{background:var(--c-overlay)}.drawer__panel[data-v-02f32abf]{height:100%;overflow-y:auto;overscroll-behavior:contain}.drawer__bar[data-v-02f32abf]{display:flex;justify-content:flex-end;padding:var(--sp-2) var(--sp-2) 0;position:sticky;top:0;background:var(--c-surface);z-index:1}@media(min-width:900px){.drawer[data-v-02f32abf]{display:none!important}}@media(prefers-reduced-motion:no-preference){.drawer[open][data-v-02f32abf]{animation:drawer-in-02f32abf .18s var(--ease)}@keyframes drawer-in-02f32abf{0%{transform:translate(-24px);opacity:0}to{transform:none;opacity:1}}}.app-sidebar[data-v-94020b99],.context-bar[data-v-94020b99]{display:none}@media(min-width:900px){.app-sidebar[data-v-94020b99]{display:block;grid-column:1;grid-row:1;position:sticky;top:0;align-self:start;height:100dvh;overflow-y:auto;background:var(--c-surface);border-right:1px solid var(--c-border)}.app-main[data-v-94020b99]{grid-column:2;grid-row:1}.context-bar[data-v-94020b99]{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-2);max-width:var(--content-max);min-height:var(--control-h);margin:0 auto var(--sp-4)}.context-bar__label[data-v-94020b99]{font-size:var(--fs-sm);color:var(--c-text-muted)}}.boot[data-v-f7a7617d]{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:var(--sp-3);color:var(--c-text-muted)}.boot__spinner[data-v-f7a7617d]{width:28px;height:28px;border-radius:50%;border:3px solid var(--c-border);border-top-color:var(--c-accent);animation:boot-spin-f7a7617d .9s linear infinite}@keyframes boot-spin-f7a7617d{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.boot__spinner[data-v-f7a7617d]{animation-duration:3s}}:root{color-scheme:light dark;--c-bg: #f5f6f8;--c-surface: #ffffff;--c-surface-2: #eef0f4;--c-surface-inset: #f9fafb;--c-border: #d3d9e2;--c-border-strong: #7a869a;--c-text: #0f172a;--c-text-muted: #475569;--c-text-faint: #566275;--c-overlay: rgba(15, 23, 42, .5);--c-accent: #1d4ed8;--c-accent-hover: #1e40af;--c-accent-soft: #e3ebff;--c-accent-text: #1e3a8a;--c-on-accent: #ffffff;--c-focus: #1d4ed8;--c-danger: #b91c1c;--c-danger-bg: #fdecec;--c-danger-border: #d98a8a;--c-danger-text: #7f1d1d;--c-on-danger: #ffffff;--c-warn: #b45309;--c-warn-bg: #fef3c7;--c-warn-border: #d4a73c;--c-warn-text: #78350f;--c-success: #137336;--c-success-bg: #e4f6ea;--c-success-border: #6fbd8a;--c-success-text: #14532d;--c-info: #0369a1;--c-info-bg: #e3f2fb;--c-info-border: #6fb0d9;--c-info-text: #0c4a6e;--c-r0: #e9e2f7;--c-r0-t: #4c2889;--c-r1: #b4e5d4;--c-r1-t: #064e3b;--c-r2: #cdeedb;--c-r2-t: #14532d;--c-r3: #e6f2c9;--c-r3-t: #3b5a0a;--c-r4: #fdf3c4;--c-r4-t: #6b4e03;--c-r5: #fdebd3;--c-r5-t: #7c3a05;--c-r6: #fde2e2;--c-r6-t: #7f1d1d;--c-r-open: transparent;--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--lh-tight: 1.25;--lh-base: 1.5;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--sh-1: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.08);--sh-2: 0 4px 12px rgba(15,23,42,.1);--sh-3: 0 12px 32px rgba(15,23,42,.18);--nav-w: 264px;--topbar-h: 56px;--content-max: 1200px;--content-narrow: 760px;--tap: 44px;--control-h: 40px;--z-nav: 20;--z-topbar: 30;--z-dialog: 50;--z-toast: 60;--ease: cubic-bezier(.2,.8,.2,1);--dur: .14s}@media(prefers-color-scheme:dark){:root{--c-bg:#0b1020;--c-surface:#131a2e;--c-surface-2:#1b2440;--c-surface-inset:#0f1527;--c-border:#2a3555;--c-border-strong:#6b7a9f;--c-text:#e8ecf5;--c-text-muted:#a9b4cc;--c-text-faint:#93a0bd;--c-overlay: rgba(2,6,23,.7);--c-accent:#7aa2ff;--c-accent-hover:#9db8ff;--c-accent-soft:#1c2a52;--c-accent-text:#cddbff;--c-on-accent:#0b1020;--c-focus:#9db8ff;--c-danger:#f87171;--c-danger-bg:#3a1618;--c-danger-border:#7a2b2f;--c-danger-text:#fecaca;--c-on-danger:#1a0a0a;--c-warn:#fbbf24;--c-warn-bg:#35280a;--c-warn-border:#6f5414;--c-warn-text:#fde68a;--c-success:#4ade80;--c-success-bg:#0f2e1c;--c-success-border:#1f6b3d;--c-success-text:#bbf7d0;--c-info:#38bdf8;--c-info-bg:#0c2a3c;--c-info-border:#1d5e82;--c-info-text:#bae6fd;--c-r0:#33265a;--c-r0-t:#e0d4ff;--c-r1:#0f4a3b;--c-r1-t:#a7f3d0;--c-r2:#15422a;--c-r2-t:#bbf7d0;--c-r3:#2c4012;--c-r3-t:#d9f99d;--c-r4:#463a0e;--c-r4-t:#fde68a;--c-r5:#4a2e12;--c-r5-t:#fed7aa;--c-r6:#4a1d20;--c-r6-t:#fecaca;--sh-1: 0 1px 2px rgba(0,0,0,.4);--sh-2: 0 4px 12px rgba(0,0,0,.45);--sh-3: 0 12px 32px rgba(0,0,0,.6)}}@media(max-width:720px){:root{--fs-xl: 1.25rem;--control-h: var(--tap)}}@media(prefers-reduced-motion:reduce){:root{--dur: 0ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;min-height:100dvh;background:var(--c-bg);color:var(--c-text);font:var(--fs-md)/var(--lh-base) var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1{font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}h3{font-size:var(--fs-md);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}h4{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}nav a,a.nav-link,.btn{color:inherit}nav a:hover,a.btn:hover{text-decoration:none}img,svg{max-width:100%}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}[tabindex="-1"]:focus{outline:none}button,input,select,textarea{font:inherit;color:inherit}button,input:not([type=checkbox]):not([type=radio]),select{min-height:var(--control-h)}textarea{resize:vertical}button{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}[hidden]{display:none!important}::selection{background:var(--c-accent-soft);color:var(--c-accent-text)}::placeholder{color:var(--c-text-faint);opacity:1}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}code{background:var(--c-surface-2);padding:0 4px;border-radius:var(--r-sm)}hr{border:0;border-top:1px solid var(--c-border);margin:0}table{border-collapse:collapse}th{text-align:left}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.app-shell{min-height:100dvh;display:block}.app-main{padding:var(--sp-6) var(--sp-4);max-width:var(--content-max);margin-inline:auto;width:100%;min-width:0}.app-main:focus{outline:none}.app-shell>.app-main{padding-top:calc(var(--topbar-h) + var(--sp-6))}@media(min-width:900px){.app-shell{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr)}.app-shell>.app-main{padding:var(--sp-8) var(--sp-8)}}.page{display:grid;gap:var(--sp-6);align-content:start;min-width:0}.page--narrow{max-width:var(--content-narrow);margin-inline:0}.stack{display:grid;gap:var(--sp-4);align-content:start;min-width:0}.stack-2{gap:var(--sp-2)}.stack-3{gap:var(--sp-3)}.stack-4{gap:var(--sp-4)}.cluster{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.cluster--end{justify-content:flex-end}.cluster--between{justify-content:space-between}.grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.split{display:grid;gap:var(--sp-6);grid-template-columns:minmax(0,1fr);align-items:start}@media(min-width:960px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.split--sidebar{grid-template-columns:minmax(0,1fr)}@media(min-width:960px){.split--sidebar{grid-template-columns:320px minmax(0,1fr)}}.sticky-top{position:sticky;top:calc(var(--topbar-h) + var(--sp-2));z-index:5}@media(min-width:900px){.sticky-top{top:var(--sp-2)}}.skip-link{position:fixed;left:var(--sp-2);top:var(--sp-2);z-index:calc(var(--z-toast) + 1);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);background:var(--c-accent);color:var(--c-on-accent);font-weight:var(--fw-semibold);transform:translateY(-200%)}.skip-link:focus{transform:none}.btn{--_bg: var(--c-surface);--_fg: var(--c-text);--_bd: var(--c-border-strong);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 var(--sp-4);border:1px solid var(--_bd);border-radius:var(--r-md);background:var(--_bg);color:var(--_fg);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;position:relative;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.btn:hover:not(:disabled):not([aria-disabled=true]){--_bg: var(--c-surface-2);text-decoration:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn--primary{--_bg: var(--c-accent);--_fg: var(--c-on-accent);--_bd: var(--c-accent)}.btn--primary:hover:not(:disabled):not([aria-disabled=true]){--_bg: var(--c-accent-hover);--_bd: var(--c-accent-hover)}.btn--ghost{--_bg: transparent;--_bd: transparent;--_fg: var(--c-accent)}.btn--ghost:hover:not(:disabled):not([aria-disabled=true]){--_bg: var(--c-accent-soft)}.btn--danger{--_bg: var(--c-danger-bg);--_fg: var(--c-danger-text);--_bd: var(--c-danger)}.btn--danger:hover:not(:disabled):not([aria-disabled=true]){--_bg: color-mix(in srgb, var(--c-danger) 14%, var(--c-danger-bg))}.btn--danger-solid{--_bg: var(--c-danger);--_fg: var(--c-on-danger);--_bd: var(--c-danger)}.btn--danger-solid:hover:not(:disabled):not([aria-disabled=true]){--_bg: var(--c-danger);filter:brightness(.92)}.btn--sm{min-height:32px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.btn--icon{padding:0;width:36px;min-height:36px;height:36px}@media(max-width:720px){.btn--icon{width:var(--tap);height:var(--tap)}.btn--sm{min-height:var(--tap)}}.btn[aria-busy=true]{color:transparent;pointer-events:none}.btn[aria-busy=true]:after{content:"";position:absolute;width:1em;height:1em;inset:0;margin:auto;border:2px solid var(--_fg);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.btn--primary[aria-busy=true]:after{border-color:var(--c-on-accent);border-right-color:transparent}@keyframes spin{to{transform:rotate(360deg)}}.field{display:grid;gap:var(--sp-1);min-width:0}.field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text)}.field__hint{font-size:var(--fs-xs);color:var(--c-text-muted)}.field__error{font-size:var(--fs-xs);color:var(--c-danger);font-weight:var(--fw-medium)}.input,.select,.textarea{width:100%;min-height:var(--control-h);padding:var(--sp-2) var(--sp-3);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border-strong);border-radius:var(--r-md);font-size:var(--fs-md)}.input:hover,.select:hover,.textarea:hover{background:var(--c-surface-inset)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline-offset:0;border-color:var(--c-focus);border-radius:var(--r-md)}.textarea{min-height:96px;line-height:var(--lh-base);resize:vertical}.textarea--mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--c-danger);border-width:2px}.input:disabled,.select:disabled,.textarea:disabled{opacity:.6;cursor:not-allowed}.input[readonly],.textarea[readonly]{background:var(--c-surface-inset)}.input--inline{border-color:transparent;background:transparent}.input--inline:hover,.input--inline:focus-visible{border-color:var(--c-border-strong);background:var(--c-surface)}.select{appearance:none;padding-right:var(--sp-8);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.check,.radio{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);cursor:pointer;font-size:var(--fs-md)}.check input,.radio input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--c-accent);flex:none}@media(max-width:720px){.check,.radio{min-height:var(--tap)}}.check>span,.radio>span{align-self:center}.card{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-1);min-width:0}.card__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5) 0}.card__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.card__body{padding:var(--sp-4) var(--sp-5);display:grid;gap:var(--sp-4)}.card__footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--c-border);display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:flex-end}.card--flat{box-shadow:none}.card--accent{border-left:4px solid var(--c-accent)}.table-wrap{overflow-x:auto}.table{width:100%;font-size:var(--fs-sm);border-collapse:separate;border-spacing:0}.table th,.table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border);vertical-align:middle;text-align:left}.table thead th{position:sticky;top:0;z-index:1;background:var(--c-surface-2);color:var(--c-text-muted);font-weight:var(--fw-semibold);white-space:nowrap}.table tbody tr:hover{background:var(--c-surface-2)}.table .num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table__actions{text-align:right;white-space:nowrap}.table th[aria-sort] button{background:none;border:0;color:inherit;font:inherit;padding:0;min-height:0;display:inline-flex;gap:var(--sp-1);align-items:center}@media(max-width:719.98px){.table th[aria-sort] button{min-height:var(--tap)}}@media(max-width:719.98px){.table--cards,.table--cards tbody,.table--cards tr,.table--cards td{display:block;width:100%}.table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.table--cards tr{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);box-shadow:var(--sh-1)}.table--cards tbody tr:hover{background:var(--c-surface)}.table--cards td{border:0;padding:var(--sp-1) 0;display:flex;justify-content:space-between;gap:var(--sp-3);text-align:right}.table--cards td[data-label]:before{content:attr(data-label);color:var(--c-text-muted);font-weight:var(--fw-medium);text-align:left;flex:none}.table--cards td a:not(.btn),.table--cards th a:not(.btn){display:inline-flex;align-items:center;min-height:var(--tap)}.table--cards td.table__actions{justify-content:flex-end;border-top:1px solid var(--c-border);margin-top:var(--sp-2);padding-top:var(--sp-2)}}.badge{--_bg: var(--c-surface-2);--_fg: var(--c-text);--_bd: var(--c-border-strong);display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);border:1px solid var(--_bd);background:var(--_bg);color:var(--_fg);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:var(--lh-base);white-space:nowrap}.badge--neutral{--_bg: var(--c-surface-2);--_fg: var(--c-text)}.badge--info{--_bg: var(--c-info-bg);--_fg: var(--c-info-text);--_bd: var(--c-info)}.badge--success{--_bg: var(--c-success-bg);--_fg: var(--c-success-text);--_bd: var(--c-success)}.badge--warn{--_bg: var(--c-warn-bg);--_fg: var(--c-warn-text);--_bd: var(--c-warn)}.badge--danger{--_bg: var(--c-danger-bg);--_fg: var(--c-danger-text);--_bd: var(--c-danger)}.alert{--_bg: var(--c-info-bg);--_fg: var(--c-info-text);--_bd: var(--c-info-border);--_ic: var(--c-info);display:flex;gap:var(--sp-3);align-items:flex-start;flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border:1px solid var(--_bd);border-left:4px solid var(--_ic);border-radius:var(--r-md);background:var(--_bg);color:var(--_fg);font-size:var(--fs-sm)}.alert__title{font-weight:var(--fw-semibold)}.alert--info{--_bg: var(--c-info-bg);--_fg: var(--c-info-text);--_bd: var(--c-info-border);--_ic: var(--c-info)}.alert--success{--_bg: var(--c-success-bg);--_fg: var(--c-success-text);--_bd: var(--c-success-border);--_ic: var(--c-success)}.alert--warn{--_bg: var(--c-warn-bg);--_fg: var(--c-warn-text);--_bd: var(--c-warn-border);--_ic: var(--c-warn)}.alert--danger{--_bg: var(--c-danger-bg);--_fg: var(--c-danger-text);--_bd: var(--c-danger-border);--_ic: var(--c-danger)}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--c-border);overflow-x:auto;scrollbar-width:thin}.tabs__tab{flex:none;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-4);background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--c-text-muted);font-size:var(--fs-md);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer}.tabs__tab:hover{color:var(--c-text);background:var(--c-surface-2)}.tabs__tab[aria-selected=true]{color:var(--c-accent-text);border-bottom-color:var(--c-accent);background:var(--c-accent-soft)}.tabs__tab:focus-visible{outline-offset:-3px}.empty{display:grid;justify-items:center;text-align:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-4);color:var(--c-text-muted)}.empty__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--c-text)}.skeleton{display:block;border-radius:var(--r-sm);background:var(--c-surface-2);background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c-text) 8%,transparent),transparent);background-size:200% 100%;background-repeat:no-repeat;animation:shimmer 1.4s linear infinite}.skeleton--line{height:1em;width:100%}.skeleton--block{height:96px;width:100%;border-radius:var(--r-md)}.skeleton--row{height:44px;width:100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background-image:none}}.rating{--_bg: var(--c-surface-2);--_fg: var(--c-text);display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;padding:0 var(--sp-2);border-radius:var(--r-sm);border:1px solid transparent;background:var(--_bg);color:var(--_fg);font-size:var(--fs-sm);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.rating--0{--_bg: var(--c-r0);--_fg: var(--c-r0-t)}.rating--1{--_bg: var(--c-r1);--_fg: var(--c-r1-t)}.rating--2{--_bg: var(--c-r2);--_fg: var(--c-r2-t)}.rating--3{--_bg: var(--c-r3);--_fg: var(--c-r3-t)}.rating--4{--_bg: var(--c-r4);--_fg: var(--c-r4-t)}.rating--5{--_bg: var(--c-r5);--_fg: var(--c-r5-t)}.rating--6{--_bg: var(--c-r6);--_fg: var(--c-r6-t)}.rating--open{background:var(--c-r-open);color:var(--c-text-muted);border:1px dashed var(--c-border-strong)}button.rating,select.rating{cursor:pointer;min-height:36px}button.rating[aria-checked=true],button.rating[aria-pressed=true]{box-shadow:0 0 0 2px var(--c-text)}@media(max-width:720px){button.rating{min-height:var(--tap);min-width:var(--tap)}}.menu{position:relative;display:inline-block}.menu__panel,.menu:not(.menu--static)>[role=menu]{position:absolute;right:0;top:calc(100% + var(--sp-1));z-index:var(--z-nav);min-width:200px;padding:var(--sp-1);background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);box-shadow:var(--sh-2);display:grid;gap:2px}.menu__item{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:var(--control-h);padding:0 var(--sp-3);background:transparent;border:0;border-radius:var(--r-sm);color:var(--c-text);font-size:var(--fs-sm);text-align:left;cursor:pointer}.menu__item:hover,.menu__item:focus-visible{background:var(--c-accent-soft);color:var(--c-accent-text)}.menu__item--danger{color:var(--c-danger)}.menu__item--danger:hover,.menu__item--danger:focus-visible{background:var(--c-danger-bg);color:var(--c-danger-text)}.dialog{position:fixed;inset:0;z-index:var(--z-dialog);display:grid;place-items:center;padding:var(--sp-4)}.dialog__backdrop{position:absolute;inset:0;background:var(--c-overlay)}.dialog__panel{position:relative;width:min(560px,100%);max-height:calc(100dvh - var(--sp-8));display:flex;flex-direction:column;overflow:hidden;background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-3)}.dialog--wide .dialog__panel{width:min(900px,100%)}.dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border)}.dialog__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.dialog__body{padding:var(--sp-4) var(--sp-5);overflow-y:auto;display:grid;gap:var(--sp-4)}.dialog__footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--c-border);display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:flex-end}@media(max-width:719.98px){.dialog--sheet{place-items:end stretch;padding:0}.dialog--sheet .dialog__panel{width:100%;max-height:92dvh;border-radius:var(--r-lg) var(--r-lg) 0 0}}dialog.dialog__panel{padding:0;margin:auto}dialog.dialog__panel::backdrop{background:var(--c-overlay)}.toast-region{position:fixed;z-index:var(--z-toast);display:grid;gap:var(--sp-2);pointer-events:none;top:calc(var(--topbar-h) + var(--sp-2));left:var(--sp-3);right:var(--sp-3);justify-items:center}@media(min-width:720px){.toast-region{top:auto;left:auto;bottom:var(--sp-5);right:var(--sp-5);justify-items:end}}.toast{--_bg: var(--c-surface);--_fg: var(--c-text);--_ic: var(--c-border-strong);pointer-events:auto;display:flex;align-items:center;gap:var(--sp-3);max-width:420px;padding:var(--sp-3) var(--sp-4);background:var(--_bg);color:var(--_fg);border:1px solid var(--c-border-strong);border-left:4px solid var(--_ic);border-radius:var(--r-md);box-shadow:var(--sh-2);font-size:var(--fs-sm)}.toast--success{--_bg: var(--c-success-bg);--_fg: var(--c-success-text);--_ic: var(--c-success)}.toast--danger{--_bg: var(--c-danger-bg);--_fg: var(--c-danger-text);--_ic: var(--c-danger)}.toast--info{--_bg: var(--c-info-bg);--_fg: var(--c-info-text);--_ic: var(--c-info)}.progress{appearance:none;-webkit-appearance:none;width:100%;height:8px;border:0;border-radius:var(--r-pill);background:var(--c-surface-2);overflow:hidden;accent-color:var(--c-accent)}.progress::-webkit-progress-bar{background:var(--c-surface-2);border-radius:var(--r-pill)}.progress::-webkit-progress-value{background:var(--c-accent);border-radius:var(--r-pill)}.progress::-moz-progress-bar{background:var(--c-accent);border-radius:var(--r-pill)}.progress__label{font-size:var(--fs-xs);color:var(--c-text-muted);font-variant-numeric:tabular-nums}.kbd{font-family:var(--font-mono);font-size:var(--fs-xs);padding:1px 6px;border:1px solid var(--c-border-strong);border-bottom-width:2px;border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text)}.stat{display:grid;gap:var(--sp-1)}.stat__value{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums}.stat__label{font-size:var(--fs-sm);color:var(--c-text-muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.muted{color:var(--c-text-muted)}.faint{color:var(--c-text-faint);font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.text-right{text-align:right}.text-center{text-align:center}.mono{font-family:var(--font-mono)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.num{text-align:right;font-variant-numeric:tabular-nums}.w-full{width:100%}.mt-auto{margin-top:auto}
