@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-italic-BHALq22K.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-cyrillic-ext-400-normal-XB2BPmDK.woff2) format("woff2"),url(/assets/geist-mono-cyrillic-ext-400-normal-CkxHOdCb.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-cyrillic-400-normal-C51Di1Mf.woff2) format("woff2"),url(/assets/geist-mono-cyrillic-400-normal-CPJFfJgk.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-symbols2-400-normal-BS9BGVxz.woff2) format("woff2"),url(/assets/geist-mono-symbols2-400-normal-DjbiTEEA.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-vietnamese-400-normal-CKEaXIlx.woff2) format("woff2"),url(/assets/geist-mono-vietnamese-400-normal-CZEPLOgu.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-ext-400-normal-DI-rJ0UV.woff2) format("woff2"),url(/assets/geist-mono-latin-ext-400-normal-CfzLURNc.woff) format("woff");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:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2) format("woff2"),url(/assets/geist-mono-latin-400-normal-B2yvC1Cq.woff) format("woff");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:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-cyrillic-ext-500-normal-C7aYOB1D.woff2) format("woff2"),url(/assets/geist-mono-cyrillic-ext-500-normal-BY1KTvO5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-cyrillic-500-normal-D2cXvDHF.woff2) format("woff2"),url(/assets/geist-mono-cyrillic-500-normal-DfuvdVgn.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-symbols2-500-normal-Q_ksOahU.woff2) format("woff2"),url(/assets/geist-mono-symbols2-500-normal-CmnCPGa0.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-vietnamese-500-normal-Bs29RrUZ.woff2) format("woff2"),url(/assets/geist-mono-vietnamese-500-normal-Dx9-epDo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-ext-500-normal-Buglb9-a.woff2) format("woff2"),url(/assets/geist-mono-latin-ext-500-normal-CrWEgvU_.woff) format("woff");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:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-500-normal-YINYabwD.woff2) format("woff2"),url(/assets/geist-mono-latin-500-normal-D-GG86Jb.woff) format("woff");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}:root{--color-paper: #f5f2ec;--color-paper-2: #efebe3;--color-surface: #ffffff;--color-app-bg: #faf8f4;--color-ink: #14201a;--color-ink-2: #3d4842;--color-muted: #616a64;--color-faint: #a1a8a3;--color-line: #e4dfd5;--color-line-strong: #d3ccbf;--color-forest: #1f4a37;--color-forest-deep: #15342a;--color-sage: #e3ebe2;--color-clay: #b85433;--color-clay-tint: #f6e6de;--color-clay-text: #a84b2d;--color-on-dark: #f5f2ec;--color-on-dark-muted: rgba(245, 242, 236, .82);--color-on-dark-faint: rgba(245, 242, 236, .66);--color-on-dark-line: rgba(245, 242, 236, .16);--color-ink-hover: #070d0a;--color-danger-hover: #84301f;--color-row-selected: #f6f9f5;--color-ink-raised: #2a3630;--color-check-border: #c9c3b8;--tone-green-bg: #e3ebe2;--tone-green-fg: #1f4a37;--tone-green-dot: #2f7a55;--tone-amber-bg: #fbefd9;--tone-amber-fg: #8a5a12;--tone-amber-dot: #c98a12;--tone-red-bg: #f7e1dc;--tone-red-fg: #a63a26;--tone-red-dot: #c2412b;--tone-gray-bg: #efebe3;--tone-gray-fg: #3d4842;--tone-gray-dot: #8b928d;--tone-clay-bg: #f6e6de;--tone-clay-fg: #9a4428;--tone-clay-dot: #b85433;--tone-blue-bg: #e2e9f4;--tone-blue-fg: #2c4a7c;--tone-blue-dot: #4a6fae;--pin-bg: var(--color-surface);--pin-fg: var(--color-ink);--pin-active-bg: var(--color-forest);--pin-active-fg: var(--color-on-dark);--map-water: #bfd9cf;--map-bg: #e7ece4;--art-bg: var(--color-forest);--art-block: #255541;--art-road: #3a6a52;--art-river: #2c5b46;--art-pin-halo: rgba(20, 32, 26, .35);--art-pin: var(--color-clay);--font-heading: "Fraunces Variable", "Fraunces", Georgia, serif;--font-ui: "Geist Variable", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-display: clamp(2.25rem, 1.4rem + 3.4vw, 4rem);--text-h1: clamp(1.875rem, 1.4rem + 1.9vw, 2.75rem);--text-h2: clamp(1.5rem, 1.25rem + 1vw, 2rem);--text-h3: 1.375rem;--text-lg: 1.0625rem;--text-md: 1rem;--text-base: .9375rem;--text-sm: .875rem;--text-xs: .8125rem;--text-2xs: .75rem;--text-eyebrow: .6875rem;--tracking-display: -.025em;--tracking-heading: -.02em;--tracking-eyebrow: .08em;--radius-xs: 6px;--radius-control: 10px;--radius-nav: 9px;--radius-panel: 12px;--radius-card: 14px;--radius-card-lg: 16px;--radius-sheet: 20px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--gutter: clamp(16px, 4vw, 48px);--control-h: 44px;--control-h-sm: 36px;--topnav-h: 76px;--sidebar-w: 264px;--content-max: 1344px;--shadow-xs: 0 1px 2px rgba(20, 32, 26, .05);--shadow-sm: 0 2px 8px rgba(20, 32, 26, .06);--shadow-md: 0 8px 24px rgba(20, 32, 26, .08);--overlay: rgba(20, 32, 26, .42);--focus-ring: 0 0 0 3px rgba(31, 74, 55, .28);--focus-outline: 2px solid var(--color-forest);--ease: cubic-bezier(.2, .7, .2, 1);--dur-fast: .12s;--dur: .2s;--z-sticky: 20;--z-drawer: 40;--z-dialog: 50;--z-toast: 60}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-ui)}body{min-height:100dvh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.v2{min-height:100dvh;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-ui);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased}.v2--app{background:var(--color-app-bg)}:where(.v2) :where(h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol){margin:0}:where(.v2) :where(ul,ol){padding:0;list-style:none}:where(.v2) :where(button,input,select,textarea){font:inherit;color:inherit}:where(.v2) :where(a){color:inherit;text-decoration:none}:where(.v2) :where(img){display:block;max-width:100%}:where(.v2) :where(:focus-visible){outline:var(--focus-outline);outline-offset:2px}.v2-skip{position:absolute;top:-48px;left:16px;z-index:var(--z-toast);padding:10px 14px;border-radius:var(--radius-control);background:var(--color-ink);color:var(--color-on-dark);font-size:var(--text-sm)}.v2-skip:focus{top:12px}.v2-display{font-family:var(--font-heading);font-size:var(--text-display);font-weight:400;line-height:1.05;letter-spacing:var(--tracking-display)}.v2-h1{font-family:var(--font-heading);font-size:var(--text-h1);font-weight:400;line-height:1.1;letter-spacing:var(--tracking-heading)}.v2-h2{font-family:var(--font-heading);font-size:var(--text-h2);font-weight:400;line-height:1.15;letter-spacing:var(--tracking-heading)}.v2-h3{font-family:var(--font-heading);font-size:var(--text-h3);font-weight:400;line-height:1.2}.v2-accent{font-style:italic}.v2-eyebrow{font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-clay-text)}.v2-muted{color:var(--color-muted)}.v2-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.v2-container{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}.ui-avatar{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;font-weight:600;line-height:1}.ui-avatar img{width:100%;height:100%;object-fit:cover}.ui-avatar--sm{width:28px;height:28px;font-size:11px}.ui-avatar--md{width:36px;height:36px;font-size:13px}.ui-avatar--lg{width:56px;height:56px;font-size:18px}.ui-avatar--sage{background:var(--color-sage);color:var(--color-forest)}.ui-avatar--clay{background:var(--color-clay-tint);color:var(--color-clay-text)}.ui-avatar--paper{background:var(--color-paper-2);color:var(--color-ink-2)}.ui-badge{--badge-bg: var(--tone-gray-bg);--badge-fg: var(--tone-gray-fg);--badge-dot: var(--tone-gray-dot);display:inline-flex;align-items:center;gap:6px;height:24px;padding-inline:10px;border-radius:var(--radius-pill);background:var(--badge-bg);color:var(--badge-fg);font-size:var(--text-2xs);font-weight:500;line-height:1;white-space:nowrap}.ui-badge svg{width:13px;height:13px}.ui-badge__dot{width:6px;height:6px;border-radius:50%;background:var(--badge-dot)}.ui-badge--green{--badge-bg: var(--tone-green-bg);--badge-fg: var(--tone-green-fg);--badge-dot: var(--tone-green-dot)}.ui-badge--amber{--badge-bg: var(--tone-amber-bg);--badge-fg: var(--tone-amber-fg);--badge-dot: var(--tone-amber-dot)}.ui-badge--red{--badge-bg: var(--tone-red-bg);--badge-fg: var(--tone-red-fg);--badge-dot: var(--tone-red-dot)}.ui-badge--clay{--badge-bg: var(--tone-clay-bg);--badge-fg: var(--tone-clay-fg);--badge-dot: var(--tone-clay-dot)}.ui-badge--blue{--badge-bg: var(--tone-blue-bg);--badge-fg: var(--tone-blue-fg);--badge-dot: var(--tone-blue-dot)}.ui-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-paper-2);color:var(--color-ink-2);font-size:11px;font-weight:600;line-height:1.3}.ui-count--emphasis{background:var(--color-clay);color:var(--color-surface)}.ui-btn{--btn-bg: var(--color-forest);--btn-fg: var(--color-on-dark);--btn-border: transparent;--btn-bg-hover: var(--color-forest-deep);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h);padding-inline:var(--space-5);border:1px solid var(--btn-border);border-radius:var(--radius-control);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ui-btn:hover:not(:disabled){background:var(--btn-bg-hover)}.ui-btn:focus-visible{outline:var(--focus-outline);outline-offset:2px}.ui-btn:disabled{cursor:not-allowed;opacity:.55}.ui-btn svg{width:18px;height:18px;flex-shrink:0}.ui-btn--dark{--btn-bg: var(--color-ink);--btn-bg-hover: var(--color-ink-hover)}.ui-btn--secondary{--btn-bg: var(--color-surface);--btn-fg: var(--color-ink);--btn-border: var(--color-line);--btn-bg-hover: var(--color-paper)}.ui-btn--ghost{--btn-bg: transparent;--btn-fg: var(--color-ink-2);--btn-bg-hover: var(--color-paper-2)}.ui-btn--danger{--btn-bg: var(--tone-red-fg);--btn-bg-hover: var(--color-danger-hover)}.ui-btn--link{--btn-bg: transparent;--btn-fg: var(--color-forest);--btn-bg-hover: transparent;height:auto;padding:0;text-decoration:underline;text-underline-offset:3px}.ui-btn--sm{height:var(--control-h-sm);padding-inline:var(--space-3);font-size:var(--text-xs)}.ui-btn--sm svg{width:16px;height:16px}.ui-btn--lg{height:52px;padding-inline:var(--space-6);font-size:var(--text-base)}.ui-btn--block{width:100%}.ui-btn--icon{width:var(--control-h);padding:0}.ui-btn--icon.ui-btn--sm{width:var(--control-h-sm)}.ui-btn__spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-card{min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-card-lg);background:var(--color-surface)}.ui-card--paper{background:var(--color-paper)}.ui-card--sage{border-color:transparent;background:var(--color-sage)}.ui-card--pad-none{padding:0}.ui-card--pad-sm{padding:var(--space-4)}.ui-card--pad-md{padding:var(--space-6)}.ui-card--pad-lg{padding:var(--space-8)}@media (max-width: 767px){.ui-card--pad-md{padding:var(--space-4)}.ui-card--pad-lg{padding:var(--space-5)}}.ui-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.ui-card__heading{display:grid;gap:4px;min-width:0}.ui-card__title{font-family:var(--font-heading);font-size:1.25rem;font-weight:400;letter-spacing:-.01em}.ui-card__desc{color:var(--color-muted);font-size:var(--text-sm)}.ui-card__action{flex-shrink:0}.ui-stat{display:grid;gap:var(--space-2)}.ui-stat__top{display:flex;align-items:center;justify-content:space-between}.ui-stat__label{color:var(--color-muted);font-size:var(--text-sm)}.ui-stat__icon{display:inline-flex;color:var(--color-muted)}.ui-stat__icon svg{width:18px;height:18px}.ui-stat__value{font-family:var(--font-heading);font-size:2.25rem;line-height:1.1;letter-spacing:var(--tracking-heading)}.ui-stat__meta{color:var(--color-muted);font-size:var(--text-xs)}.ui-progress{display:grid;gap:var(--space-2)}.ui-progress__row{display:flex;justify-content:space-between;color:var(--color-muted);font-size:var(--text-2xs)}.ui-progress__row strong{color:var(--color-ink);font-weight:600}.ui-progress__track{height:4px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-paper-2)}.ui-progress__fill{display:block;height:100%;border-radius:inherit;background:var(--color-forest);transition:width var(--dur) var(--ease)}.ui-tag{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--radius-pill);background:var(--color-paper-2);color:var(--color-ink-2);font-size:var(--text-2xs);font-weight:500;line-height:1.2;white-space:nowrap}.ui-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding-inline:14px;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-xs);font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.ui-chip:hover{border-color:var(--color-line-strong)}.ui-chip:focus-visible{outline:var(--focus-outline);outline-offset:2px}.ui-chip--selected,.ui-chip--selected:hover{border-color:var(--color-forest);background:var(--color-forest);color:var(--color-on-dark)}.ui-chip svg{width:15px;height:15px}.ui-chip-group{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:var(--space-2);min-width:0}@media (max-width: 767px){.ui-chip-group{flex-wrap:nowrap;overflow-x:auto;max-width:calc(100% + 2 * var(--gutter));margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scrollbar-width:none}.ui-chip-group::-webkit-scrollbar{display:none}}.ui-skeleton{display:block;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--color-paper-2) 0%,var(--color-paper) 50%,var(--color-paper-2) 100%);background-size:200% 100%;animation:ui-shimmer 1.4s ease-in-out infinite}@keyframes ui-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.ui-skeleton{animation:none}}.ui-skeleton-card{display:grid;gap:10px}.ui-skeleton-card__photo{aspect-ratio:404 / 272;margin-bottom:4px}.ui-skeleton-card__tags{display:flex;gap:6px;padding-top:4px}.ui-table-wrap{position:relative;overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--radius-card-lg);background:var(--color-surface)}.ui-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ui-table th{height:44px;padding:0 var(--space-4);border-bottom:1px solid var(--color-line);background:var(--color-app-bg);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-align:left;text-transform:uppercase;white-space:nowrap}.ui-table td{height:64px;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-line);color:var(--color-ink-2);vertical-align:middle}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table--right{text-align:right!important}.ui-table--center{text-align:center!important}.ui-table__check{width:48px;padding-right:0!important}.ui-table__actions{width:56px;text-align:right}.ui-table__checkbox{width:18px;height:18px;margin:0;accent-color:var(--color-forest);cursor:pointer}.ui-table__row--selected td{background:var(--color-row-selected)}.ui-table__row--clickable{cursor:pointer}.ui-table__row--clickable:hover td{background:var(--color-app-bg)}.ui-table__empty-row td{height:auto;padding:0}.ui-table__skeleton td{height:64px}@media (max-width: 767px){.ui-table-wrap{border:0;background:transparent}.ui-table thead{display:none}.ui-table,.ui-table tbody{display:block}.ui-table tbody{display:grid;gap:var(--space-3)}.ui-table tbody tr{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-2) var(--space-3);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-surface)}.ui-table__row--selected{border-color:var(--color-forest)!important}.ui-table td{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;gap:var(--space-3);height:auto;padding:0;border:0;background:transparent!important;text-align:right}.ui-table td[data-label]:before{content:attr(data-label);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-align:left;text-transform:uppercase}.ui-table td.ui-table__check{grid-column:1;grid-row:1;width:auto}.ui-table td.ui-table__primary{grid-column:2;grid-row:1;justify-content:flex-start;text-align:left}.ui-table td.ui-table__primary:before{display:none}.ui-table td.ui-table__actions{grid-column:3;grid-row:1;width:auto}.ui-table td.ui-table__hide-mobile{display:none}.ui-table__empty-row,.ui-table__skeleton{display:block!important}}.ui-bulk{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-control);background:var(--color-ink);color:var(--color-on-dark)}.ui-bulk__count{flex:1;font-size:var(--text-sm);font-weight:500}.ui-bulk__actions{display:flex;gap:var(--space-2)}.ui-bulk__actions .ui-btn{--btn-bg: var(--color-ink-raised);--btn-fg: var(--color-on-dark);--btn-bg-hover: var(--color-ink-2);height:var(--control-h-sm);padding-inline:var(--space-3);font-size:var(--text-xs)}.ui-bulk__clear{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-nav);background:none;color:var(--color-on-dark);cursor:pointer}.ui-bulk__clear svg{width:16px;height:16px}.ui-bulk__clear:focus-visible{outline:2px solid var(--color-on-dark)}.ui-dialog{width:min(calc(100% - 32px),560px);max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--color-line);border-radius:var(--radius-sheet);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-ui);box-shadow:var(--shadow-md)}.ui-dialog::backdrop{background:var(--overlay)}.ui-dialog--sm{width:min(calc(100% - 32px),440px)}.ui-dialog--lg{width:min(calc(100% - 32px),840px)}.ui-dialog__panel{display:flex;flex-direction:column;max-height:inherit}.ui-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) var(--space-6) var(--space-3)}.ui-dialog__title{font-family:var(--font-heading);font-size:1.5rem;font-weight:400;line-height:1.2}.ui-dialog__desc{margin-top:6px;color:var(--color-muted);font-size:var(--text-sm)}.ui-dialog__close{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--radius-nav);background:none;color:var(--color-muted);cursor:pointer}.ui-dialog__close:hover{background:var(--color-paper);color:var(--color-ink)}.ui-dialog__close svg{width:18px;height:18px}.ui-dialog__body{overflow-y:auto;padding:var(--space-2) var(--space-6) var(--space-4);font-size:var(--text-sm)}.ui-dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6)}@media (max-width: 767px){.ui-dialog{width:100%;max-width:none;margin:auto 0 0;border-radius:var(--radius-sheet) var(--radius-sheet) 0 0}.ui-dialog__footer{flex-direction:column-reverse}.ui-dialog__footer .ui-btn{width:100%}}.ui-drawer{position:fixed;inset:0 auto 0 0;width:min(86vw,320px);max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-ui)}.ui-drawer::backdrop{background:var(--overlay)}.ui-drawer--right{inset:0 0 0 auto}.ui-drawer--bottom{inset:auto 0 0 0;width:100%;height:auto;max-height:88dvh;border-radius:var(--radius-sheet) var(--radius-sheet) 0 0}.ui-drawer[open]{animation:ui-drawer-in-left var(--dur) var(--ease)}.ui-drawer--right[open]{animation-name:ui-drawer-in-right}.ui-drawer--bottom[open]{animation-name:ui-drawer-in-bottom}@keyframes ui-drawer-in-left{0%{transform:translate(-100%)}}@keyframes ui-drawer-in-right{0%{transform:translate(100%)}}@keyframes ui-drawer-in-bottom{0%{transform:translateY(100%)}}.ui-drawer__panel{display:flex;flex-direction:column;height:100%;max-height:inherit}.ui-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-2) var(--space-5)}.ui-drawer__title{font-family:var(--font-heading);font-size:1.25rem;font-weight:400}.ui-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:auto;border:0;border-radius:var(--radius-nav);background:none;color:var(--color-ink-2);cursor:pointer}.ui-drawer__close:hover{background:var(--color-paper-2)}.ui-drawer__close svg{width:20px;height:20px}.ui-drawer__body{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-4) var(--space-6)}.ui-empty{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);text-align:center}.ui-empty--compact{padding:var(--space-8) var(--space-4)}.ui-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:var(--space-2);border-radius:50%;background:var(--color-sage);color:var(--color-forest)}.ui-empty--error .ui-empty__icon{background:var(--tone-red-bg);color:var(--tone-red-fg)}.ui-empty__icon svg{width:22px;height:22px}.ui-empty__title{font-family:var(--font-heading);font-size:1.375rem;font-weight:400}.ui-empty__desc{max-width:42ch;color:var(--color-muted);font-size:var(--text-sm)}.ui-empty__action{margin-top:var(--space-3)}.ui-empty__detail{max-width:560px;padding:6px 10px;border-radius:var(--radius-control);background:var(--tone-red-bg);color:var(--tone-red-fg);font-family:var(--font-mono);font-size:var(--text-2xs);overflow-wrap:anywhere}.ui-field{display:grid;gap:6px;min-width:0}.ui-field__label{display:flex;align-items:baseline;gap:var(--space-2);color:var(--color-ink);font-size:var(--text-sm);font-weight:500}.ui-field__optional{color:var(--color-muted);font-size:var(--text-2xs);font-weight:400}.ui-field__hint,.ui-field__error{font-size:var(--text-xs);line-height:1.4}.ui-field__hint{color:var(--color-muted)}.ui-field__error{color:var(--tone-red-fg)}.ui-input,.ui-input-wrap{width:100%;min-width:0;height:var(--control-h);border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.ui-input{padding-inline:14px}.ui-input::placeholder{color:var(--color-faint)}.ui-input:hover,.ui-input-wrap:hover{border-color:var(--color-line-strong)}.ui-input:focus,.ui-input-wrap:focus-within{border-color:var(--color-forest);box-shadow:var(--focus-ring);outline:none}.ui-input:disabled{background:var(--color-paper);color:var(--color-muted)}.ui-input[aria-invalid=true],.ui-field--error .ui-input-wrap{border-color:var(--tone-red-dot)}.ui-input--lg{height:52px}.ui-input-wrap{display:flex;align-items:center;gap:var(--space-2);padding-inline:14px}.ui-input-wrap .ui-input--bare{flex:1;height:100%;padding:0;border:0;background:transparent;box-shadow:none}.ui-input-wrap__icon,.ui-input-wrap__trailing{display:inline-flex;align-items:center;color:var(--color-muted)}.ui-input-wrap__icon svg{width:18px;height:18px}.ui-textarea{height:auto;min-height:96px;padding-block:12px;line-height:1.5;resize:vertical}.ui-check{display:inline-flex;align-items:flex-start;gap:10px;font-size:var(--text-sm);cursor:pointer}.ui-check__box{flex-shrink:0;width:18px;height:18px;margin:1px 0 0;accent-color:var(--color-forest);cursor:pointer}.ui-check__text{display:grid;gap:2px}.ui-check__desc{color:var(--color-muted);font-size:var(--text-xs)}.ui-toggle{position:relative;display:inline-flex;align-items:center;gap:10px;font-size:var(--text-sm);font-weight:500;cursor:pointer}.ui-toggle__input{position:absolute;opacity:0;width:1px;height:1px}.ui-toggle__track{position:relative;width:34px;height:20px;border-radius:var(--radius-pill);background:var(--color-line-strong);transition:background-color var(--dur) var(--ease)}.ui-toggle__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--color-surface);box-shadow:var(--shadow-xs);transition:transform var(--dur) var(--ease)}.ui-toggle__input:checked+.ui-toggle__track{background:var(--color-forest)}.ui-toggle__input:checked+.ui-toggle__track .ui-toggle__thumb{transform:translate(14px)}.ui-toggle__input:focus-visible+.ui-toggle__track{outline:var(--focus-outline);outline-offset:2px}.ui-logo{display:inline-flex;align-items:center;gap:10px;color:var(--color-ink);text-decoration:none}.ui-logo:focus-visible{outline:var(--focus-outline);outline-offset:4px;border-radius:var(--radius-xs)}.ui-logo__mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--color-forest);color:var(--color-on-dark)}.ui-logo__mark svg{width:18px;height:18px}.ui-logo__word{font-family:var(--font-heading);font-size:22px;font-weight:600;font-variation-settings:"SOFT" 0,"WONK" 1;letter-spacing:-.02em;line-height:1}.ui-logo--on-dark{color:var(--color-on-dark)}.ui-logo--on-dark .ui-logo__mark{background:var(--color-on-dark);color:var(--color-forest)}.ui-menu{position:relative;display:inline-flex}.ui-menu__trigger{display:inline-flex;align-items:center;gap:var(--space-2);border:0;background:none;color:var(--color-ink-2);cursor:pointer}.ui-menu__trigger--icon{justify-content:center;width:34px;height:34px;border-radius:var(--radius-nav)}.ui-menu__trigger--icon:hover,.ui-menu__trigger[aria-expanded=true]{background:var(--color-paper-2)}.ui-menu__trigger svg{width:18px;height:18px}.ui-menu__trigger:focus-visible{outline:var(--focus-outline);outline-offset:1px;border-radius:var(--radius-nav)}.ui-menu__list{position:absolute;top:calc(100% + 4px);z-index:var(--z-sticky);display:grid;min-width:200px;padding:6px;border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-md)}.ui-menu__list--end{right:0}.ui-menu__list--start{left:0}.ui-menu__item{display:flex;align-items:center;gap:10px;height:36px;padding-inline:10px;border:0;border-radius:var(--radius-xs);background:none;color:var(--color-ink);font-size:var(--text-sm);text-align:left;cursor:pointer}.ui-menu__item svg{width:16px;height:16px;color:var(--color-muted)}.ui-menu__item:hover:not(:disabled),.ui-menu__item:focus-visible{background:var(--color-paper);outline:none}.ui-menu__item:focus-visible{box-shadow:inset 0 0 0 2px var(--color-forest)}.ui-menu__item:disabled{color:var(--color-faint);cursor:not-allowed}.ui-menu__item--danger,.ui-menu__item--danger svg{color:var(--tone-red-fg)}.ui-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.ui-pagination__summary{color:var(--color-muted);font-size:var(--text-xs)}.ui-pagination__pages{display:flex;align-items:center;gap:6px}.ui-pagination__btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding-inline:8px;border:1px solid transparent;border-radius:var(--radius-nav);background:transparent;color:var(--color-ink-2);font-size:var(--text-xs);font-weight:500;cursor:pointer}.ui-pagination__btn:first-child,.ui-pagination__btn:last-child{border-color:var(--color-line);background:var(--color-surface)}.ui-pagination__btn:hover:not(:disabled){background:var(--color-paper-2)}.ui-pagination__btn:disabled{color:var(--color-faint);cursor:not-allowed}.ui-pagination__btn:focus-visible{outline:var(--focus-outline);outline-offset:1px}.ui-pagination__btn svg{width:16px;height:16px}.ui-pagination__btn--active,.ui-pagination__btn--active:hover:not(:disabled){background:var(--color-ink);color:var(--color-on-dark)}.ui-pagination__gap{color:var(--color-muted);font-size:var(--text-xs)}@media (max-width: 767px){.ui-pagination{justify-content:center}.ui-pagination__summary{width:100%;text-align:center}}.ui-show-more{display:grid;justify-items:center;gap:var(--space-3);padding-block:var(--space-6)}.ui-select{position:relative;width:100%;min-width:0}.ui-select__control{width:100%;height:var(--control-h);padding:0 40px 0 14px;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-base);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.ui-select__control:hover{border-color:var(--color-line-strong)}.ui-select__control:focus{border-color:var(--color-forest);box-shadow:var(--focus-ring);outline:none}.ui-select__control[aria-invalid=true]{border-color:var(--tone-red-dot)}.ui-select__chevron,.ui-filter-select__chevron{position:absolute;top:50%;right:14px;width:16px;height:16px;color:var(--color-muted);pointer-events:none;transform:translateY(-50%)}.ui-filter-select{position:relative;display:inline-grid;align-content:center;min-width:112px;padding:0 40px 0 14px;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface)}.ui-filter-select:hover{border-color:var(--color-line-strong)}.ui-filter-select:focus-within{border-color:var(--color-forest);box-shadow:var(--focus-ring)}.ui-filter-select--stacked{height:52px;gap:1px}.ui-filter-select--stacked .ui-filter-select__caption{color:var(--color-muted);font-size:11px;line-height:1.2}.ui-filter-select--stacked .ui-filter-select__value{font-size:var(--text-sm);font-weight:500;line-height:1.3}.ui-filter-select--inline{grid-auto-flow:column;justify-content:start;gap:4px;height:40px;font-size:var(--text-xs)}.ui-filter-select--inline .ui-filter-select__caption{color:var(--color-muted)}.ui-filter-select--inline .ui-filter-select__value{font-weight:600}.ui-filter-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-filter-select__control{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}.ui-app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100dvh}.ui-app-shell__main{min-width:0;padding:40px clamp(20px,3vw,40px) 64px}.ui-sidebar{position:sticky;top:0;height:100dvh;border-right:1px solid var(--color-line);background:var(--color-paper)}.ui-sidebar__inner{display:flex;flex-direction:column;gap:4px;height:100%;padding:24px 14px 20px;overflow-y:auto}.ui-sidebar-drawer .ui-sidebar__inner{height:auto;min-height:100%;padding:0}.ui-sidebar__brand{display:grid;justify-items:start;gap:10px;padding:0 10px 14px}.ui-sidebar__workspace{padding:4px 8px;border-radius:var(--radius-xs);background:var(--color-paper-2);color:var(--color-ink-2);font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.ui-sidebar__nav,.ui-sidebar__group ul{display:grid;gap:4px}.ui-sidebar__group-label{padding:18px 12px 6px;color:var(--color-faint);font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.ui-sidebar__link{display:flex;align-items:center;gap:12px;height:40px;padding-inline:12px;border:1px solid transparent;border-radius:var(--radius-nav);color:var(--color-ink-2);font-size:var(--text-sm);font-weight:500}.ui-sidebar__link:hover{background:var(--color-paper-2)}.ui-sidebar__link:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.ui-sidebar__link--active,.ui-sidebar__link--active:hover{border-color:var(--color-line);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-xs)}.ui-sidebar__icon{display:inline-flex}.ui-sidebar__icon svg{width:18px;height:18px}.ui-sidebar__label{flex:1;min-width:0}.ui-sidebar__user{display:flex;align-items:center;gap:10px;margin-top:auto;padding:12px;border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface)}.ui-sidebar__who{flex:1;min-width:0}.ui-sidebar__name,.ui-sidebar__subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-sidebar__name{font-size:var(--text-xs);font-weight:600}.ui-sidebar__subtitle{color:var(--color-muted);font-size:var(--text-2xs)}.ui-sidebar__signout{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-nav);background:none;color:var(--color-ink-2);cursor:pointer}.ui-sidebar__signout:hover{background:var(--color-paper)}.ui-sidebar__signout svg{width:18px;height:18px}.ui-sidebar-bar{display:none}@media (max-width: 767px){.ui-app-shell{display:block}.ui-app-shell__main{padding:24px 16px 48px}.ui-sidebar{display:none}.ui-sidebar-bar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:10px;height:60px;padding-inline:16px 8px;border-bottom:1px solid var(--color-line);background:var(--color-paper)}.ui-sidebar-bar .ui-sidebar__workspace{font-size:10px}.ui-sidebar-bar__toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;border:0;border-radius:var(--radius-nav);background:none;color:var(--color-ink);cursor:pointer}.ui-sidebar-bar__toggle svg{width:22px;height:22px}}.ui-page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.ui-page-header__text{display:grid;gap:6px;min-width:0}.ui-page-header__subtitle{color:var(--color-muted);font-size:var(--text-base)}.ui-page-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ui-stepper{padding:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-card-lg);background:var(--color-surface)}.ui-stepper__list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.ui-stepper__button{display:flex;align-items:center;gap:var(--space-3);width:100%;height:40px;padding-inline:var(--space-3);border:0;border-radius:var(--radius-nav);background:transparent;color:var(--color-muted);font-size:var(--text-sm);text-align:left}button.ui-stepper__button{cursor:pointer}button.ui-stepper__button:hover{background:var(--color-paper)}.ui-stepper__button:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.ui-stepper__marker{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-line-strong);border-radius:50%;font-size:11px;font-weight:500}.ui-stepper__marker svg{width:12px;height:12px}.ui-stepper__item--done .ui-stepper__button{color:var(--color-ink)}.ui-stepper__item--done .ui-stepper__marker{border-color:var(--color-forest);background:var(--color-forest);color:var(--color-on-dark)}.ui-stepper__item--current .ui-stepper__button{background:var(--color-paper);color:var(--color-ink);font-weight:500}.ui-stepper__item--current .ui-stepper__marker{border:1.5px solid var(--color-ink)}@media (max-width: 767px){.ui-stepper{padding:var(--space-1);overflow-x:auto;scrollbar-width:none}.ui-stepper__list{display:flex;gap:var(--space-1)}.ui-stepper__button{white-space:nowrap}.ui-stepper__item--todo .ui-stepper__label,.ui-stepper__item--done .ui-stepper__label{display:none}}.ui-number{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;height:var(--control-h);border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface)}.ui-number:focus-within{border-color:var(--color-forest);box-shadow:var(--focus-ring)}.ui-number__btn{display:inline-flex;align-items:center;justify-content:center;height:100%;border:0;background:none;color:var(--color-ink);cursor:pointer}.ui-number__btn:disabled{color:var(--color-faint);cursor:not-allowed}.ui-number__btn svg{width:16px;height:16px}.ui-number__input{width:100%;min-width:0;border:0;background:none;font-size:var(--text-base);font-weight:500;text-align:center;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.ui-number__input::-webkit-outer-spin-button,.ui-number__input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.ui-number__input:focus{outline:none}.ui-radio-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3);margin:0;padding:0;border:0}.ui-radio-card{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);padding:14px 16px;border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);cursor:pointer}.ui-radio-card:hover{border-color:var(--color-line-strong)}.ui-radio-card--selected,.ui-radio-card--selected:hover{border:1.5px solid var(--color-forest);background:var(--color-sage)}.ui-radio-card__input{position:absolute;opacity:0}.ui-radio-card:has(.ui-radio-card__input:focus-visible){outline:var(--focus-outline);outline-offset:2px}.ui-radio-card__dot{flex-shrink:0;width:18px;height:18px;margin-top:2px;border:1.5px solid var(--color-line-strong);border-radius:50%;background:var(--color-surface)}.ui-radio-card--selected .ui-radio-card__dot{border:5px solid var(--color-forest)}.ui-radio-card__text{display:grid;gap:2px}.ui-radio-card__label{font-size:var(--text-sm);font-weight:600}.ui-radio-card__desc{color:var(--color-muted);font-size:var(--text-2xs)}.ui-tabs{display:flex;gap:var(--space-6);overflow-x:auto;border-bottom:1px solid var(--color-line);scrollbar-width:none}.ui-tabs::-webkit-scrollbar{display:none}.ui-tabs__tab{display:inline-flex;flex-shrink:0;align-items:center;gap:var(--space-2);margin-bottom:-1px;padding:10px 2px 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--color-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer}.ui-tabs__tab:hover{color:var(--color-ink)}.ui-tabs__tab--active{border-bottom-color:var(--color-forest);color:var(--color-ink)}.ui-tabs__tab:focus-visible{outline:var(--focus-outline);outline-offset:-2px;border-radius:var(--radius-xs)}.ui-tabs__count--active{background:var(--color-forest);color:var(--color-on-dark)}.ui-segmented{display:inline-flex;padding:3px;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-surface)}.ui-segmented__item{display:inline-flex;align-items:center;gap:6px;height:34px;padding-inline:14px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);font-size:var(--text-xs);font-weight:500;cursor:pointer}.ui-segmented__item svg{width:15px;height:15px}.ui-segmented__item--active{background:var(--color-ink);color:var(--color-on-dark)}.ui-segmented__item:focus-visible{outline:var(--focus-outline);outline-offset:1px}.ui-toasts{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:var(--z-toast);display:grid;gap:var(--space-2);width:min(calc(100vw - 32px),380px);pointer-events:none}.ui-toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:12px 12px 12px 14px;border-radius:var(--radius-panel);background:var(--color-ink);color:var(--color-on-dark);font-family:var(--font-ui);font-size:var(--text-sm);box-shadow:var(--shadow-md);pointer-events:auto;animation:ui-toast-in var(--dur) var(--ease)}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(8px)}}.ui-toast__icon{flex-shrink:0;width:18px;height:18px;margin-top:1px}.ui-toast--success .ui-toast__icon{color:var(--color-sage)}.ui-toast--error .ui-toast__icon{color:var(--tone-red-bg)}.ui-toast__msg{flex:1;line-height:1.4}.ui-toast__close{display:inline-flex;border:0;background:none;color:inherit;opacity:.7;cursor:pointer}.ui-toast__close:hover{opacity:1}.ui-toast__close svg{width:16px;height:16px}@media (max-width: 767px){.ui-toasts{right:16px;bottom:16px;left:16px;width:auto}}.ui-topnav{position:sticky;top:0;z-index:var(--z-sticky);border-bottom:1px solid var(--color-line);background:var(--color-paper)}.ui-topnav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:var(--topnav-h);max-width:calc(var(--content-max) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}.ui-topnav__left{display:flex;align-items:center;gap:56px;min-width:0}.ui-topnav__links{display:flex;gap:28px}.ui-topnav__link--bar{position:relative;display:inline-flex;align-items:center;gap:6px;padding-block:6px;color:var(--color-muted);font-size:var(--text-base)}.ui-topnav__link--bar:hover,.ui-topnav__link--bar.is-active{color:var(--color-ink)}.ui-topnav__link--bar.is-active{font-weight:500}.ui-topnav__link--bar:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:var(--radius-xs)}.ui-topnav__dot{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding-inline:5px;border-radius:var(--radius-pill);background:var(--color-clay);color:var(--color-surface);font-size:10px;font-weight:600}.ui-topnav__right{display:flex;align-items:center;gap:12px}.ui-topnav__saved{display:inline-flex;align-items:center;gap:8px;height:40px;padding-inline:14px;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:500}.ui-topnav__saved:hover{border-color:var(--color-line-strong)}.ui-topnav__saved svg{width:16px;height:16px}.ui-topnav__right .ui-menu__trigger .ui-avatar{width:40px;height:40px}.ui-topnav__toggle{display:none}.ui-topnav__drawer-links{display:grid;gap:2px}.ui-topnav__link--drawer{display:flex;align-items:center;gap:12px;height:48px;padding-inline:12px;border-radius:var(--radius-nav);color:var(--color-ink-2);font-size:var(--text-base);font-weight:500}.ui-topnav__link--drawer svg{width:20px;height:20px}.ui-topnav__link--drawer.is-active{background:var(--color-surface);color:var(--color-ink)}.ui-topnav__drawer-user{display:flex;align-items:center;gap:10px;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-line);font-size:var(--text-sm);font-weight:500}.ui-topnav__drawer-signout{display:inline-flex;align-items:center;gap:6px;margin-left:auto;border:0;background:none;color:var(--color-ink-2);font-size:var(--text-xs);cursor:pointer}.ui-topnav__drawer-signout svg{width:16px;height:16px}@media (max-width: 1023px){.ui-topnav__left{gap:32px}.ui-topnav__links{gap:20px}}@media (max-width: 767px){.ui-topnav__inner{height:60px}.ui-topnav__links,.ui-topnav__saved,.ui-topnav__right .ui-menu{display:none}.ui-topnav__toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;border:0;border-radius:var(--radius-nav);background:none;color:var(--color-ink);cursor:pointer}.ui-topnav__toggle svg{width:22px;height:22px}}.app-loader{display:grid;place-content:center;justify-items:center;gap:var(--space-5);min-height:100dvh}.app-loader__bar{width:120px;height:3px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-paper-2)}.app-loader__bar:after{content:"";display:block;width:40%;height:100%;border-radius:inherit;background:var(--color-forest);animation:app-loader-slide 1.1s var(--ease) infinite}@keyframes app-loader-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion: reduce){.app-loader__bar:after{animation:none}}.student-shell{display:flex;flex-direction:column}.student-shell__main{flex:1}.student-shell__footer{border-top:1px solid var(--color-line)}.student-shell__footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:28px;color:var(--color-muted);font-size:var(--text-sm)}@media (max-width: 767px){.student-shell__footer-inner{flex-direction:column;text-align:center}}
