@timurtekb/tekjobs 0.33.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Every release, newest first. Written by semantic-release from the commit messages.
4
4
 
5
+ ## 0.34.0 (2026-10-07)
6
+
7
+ * feat(scan): where a board went, and three that moved to Ashby ([fc40107](https://github.com/Timurtek/tekjobs/commit/fc40107))
8
+
5
9
  ## 0.33.0 (2026-10-07)
6
10
 
7
11
  * feat(app): click an email on Mail to see it in full, and open it in Gmail ([ec2f1d6](https://github.com/Timurtek/tekjobs/commit/ec2f1d6))
package/README.md CHANGED
@@ -32,7 +32,7 @@ It does not fit if you want a hosted service with nothing to install (TekJobs is
32
32
  - **A daily scan** over Greenhouse, Lever, Ashby, Workday, Rippling, SmartRecruiters, Workable, BambooHR, Breezy, Personio, Teamtailor and Eightfold boards, the Atlassian, GitHub, Spotify and Amazon career APIs, the Google and Apple career pages (keyword-searched; they have no API), and eleven aggregator feeds including Wellfound's and Built In's remote listing pages. All public; the company-board scan needs no API key. Two optional feeds need a free key of their own: Adzuna, which reaches listings that never make it to a company board, and USAJOBS, which is every federal posting in the United States. Job alert emails saved into `Inbox/` are read too, which is how LinkedIn and Indeed listings get in without anything contacting those sites. Tens of thousands of postings a run, deduplicated, scored with every point written down as a reason, and cut to the ones that fit you.
33
33
  - **An app** (Zengin UI): a Today queue, a filterable jobs table with a detail sheet, a drag-and-drop pipeline from reviewing to offer, a Sources page with each board's health and a retry for the failed ones, a criteria editor with a live preview of what a change would do, scan history with a run button, the profile pages, and the agent setup page.
34
34
  - **Application material** written from your resume of record and checked against it: a tailored resume, a cover letter in your voice, and a copy panel for the answers forms keep asking for. Nothing is ever submitted; you review and click.
35
- - **An MCP server** with 44 tools, so Claude Code, Codex, Cursor or Claude Desktop can run the whole search: onboard you, find matches, move them through the pipeline, pull your profile and a posting together to tailor an application, save the draft into the note, add boards, start scans, read the mailbox.
35
+ - **An MCP server** with 45 tools, so Claude Code, Codex, Cursor or Claude Desktop can run the whole search: onboard you, find matches, move them through the pipeline, pull your profile and a posting together to tailor an application, save the draft into the note, add boards, start scans, read the mailbox.
36
36
 
37
37
  ## Quick start
38
38
 
@@ -1 +1 @@
1
- :root,[data-theme=light]{--color-surface:#fff;--color-surface-raised:#f8fafc;--color-surface-sunken:#f1f5f9;--color-surface-overlay:#0f172acc;--color-text:#0f172a;--color-text-muted:#475569;--color-text-subtle:#94a3b8;--color-text-faint:#94a3b8;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-active:#1e40af;--color-primary-soft:#dbeafe;--color-primary-soft-hover:#bfdbfe;--color-primary-soft-foreground:#1e40af;--color-on-primary:#fff;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-active:#991b1b;--color-danger-soft:#fee2e2;--color-danger-soft-hover:#fecaca;--color-danger-soft-foreground:#991b1b;--color-on-danger:#fff;--color-success:#15803d;--color-success-soft:#dcfce7;--color-success-soft-foreground:#166534;--color-on-success:#fff;--color-warning:#b45309;--color-warning-soft:#fef3c7;--color-warning-soft-foreground:#92400e;--color-on-warning:#fff;--color-neutral:#334155;--color-neutral-hover:#1e293b;--color-neutral-active:#0f172a;--color-neutral-soft:#e2e8f0;--color-neutral-soft-hover:#cbd5e1;--color-neutral-soft-foreground:#0f172a;--color-on-neutral:#fff;--color-focus:#3b82f6;--color-outline:#0000;--spacing-0:0px;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-8:32px;--spacing-10:40px;--spacing-12:48px;--spacing-16:64px;--spacing-20:80px;--spacing-24:96px;--spacing-32:128px;--radius-none:0px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:16px;--radius-full:9999px;--border-width:1px;--shadow-sm:0 1px 2px 0 #0f172a0f;--shadow-md:0 4px 8px -2px #0f172a1a, 0 2px 4px -2px #0f172a0f;--shadow-lg:0 12px 24px -6px #0f172a29, 0 4px 8px -4px #0f172a14;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-display:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--leading-normal:1.5;--leading-none:1.05;--tracking-tighter:-.03em;--tracking-tight:-.02em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.04em;--tracking-wider:.06em;--tracking-widest:.08em;--tracking-caps:.14em;--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.32s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-emphasized:cubic-bezier(.3, 0, 0, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--breakpoint-sm:40rem;--breakpoint-md:52rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem}[data-theme=dark]{--color-surface:#0f172a;--color-surface-raised:#1e293b;--color-surface-sunken:#020617;--color-surface-overlay:#020617cc;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-subtle:#64748b;--color-text-faint:#64748b;--color-border:#1e293b;--color-border-strong:#334155;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-active:#93c5fd;--color-primary-soft:#1e3a8a;--color-primary-soft-hover:#1e40af;--color-primary-soft-foreground:#93c5fd;--color-on-primary:#0f172a;--color-danger:#ef4444;--color-danger-hover:#f87171;--color-danger-active:#fca5a5;--color-danger-soft:#7f1d1d;--color-danger-soft-hover:#991b1b;--color-danger-soft-foreground:#fca5a5;--color-on-danger:#0f172a;--color-success:#22c55e;--color-success-soft:#14532d;--color-success-soft-foreground:#86efac;--color-on-success:#0f172a;--color-warning:#f59e0b;--color-warning-soft:#78350f;--color-warning-soft-foreground:#fcd34d;--color-on-warning:#0f172a;--color-neutral:#cbd5e1;--color-neutral-hover:#e2e8f0;--color-neutral-active:#f1f5f9;--color-neutral-soft:#334155;--color-neutral-soft-hover:#475569;--color-neutral-soft-foreground:#f1f5f9;--color-on-neutral:#0f172a;--color-focus:#60a5fa}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-surface:#0f172a;--color-surface-raised:#1e293b;--color-surface-sunken:#020617;--color-surface-overlay:#020617cc;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-subtle:#64748b;--color-text-faint:#64748b;--color-border:#1e293b;--color-border-strong:#334155;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-active:#93c5fd;--color-primary-soft:#1e3a8a;--color-primary-soft-hover:#1e40af;--color-primary-soft-foreground:#93c5fd;--color-on-primary:#0f172a;--color-danger:#ef4444;--color-danger-hover:#f87171;--color-danger-active:#fca5a5;--color-danger-soft:#7f1d1d;--color-danger-soft-hover:#991b1b;--color-danger-soft-foreground:#fca5a5;--color-on-danger:#0f172a;--color-success:#22c55e;--color-success-soft:#14532d;--color-success-soft-foreground:#86efac;--color-on-success:#0f172a;--color-warning:#f59e0b;--color-warning-soft:#78350f;--color-warning-soft-foreground:#fcd34d;--color-on-warning:#0f172a;--color-neutral:#cbd5e1;--color-neutral-hover:#e2e8f0;--color-neutral-active:#f1f5f9;--color-neutral-soft:#334155;--color-neutral-soft-hover:#475569;--color-neutral-soft-foreground:#f1f5f9;--color-on-neutral:#0f172a;--color-focus:#60a5fa}}.z-button,.z-badge,.z-card,.z-field,.z-checkbox,.z-dialog,.z-tooltip,.z-tabs,.z-select,.z-switch,.z-toast,.z-menu,.z-table,.z-avatar,.z-skeleton,.z-sheet,.z-popover,.z-progress,.z-separator,.z-textarea,.z-chart,.z-sparkline,.z-markdown,.z-codeblock,.z-conversation,.z-message,.z-prompt,.z-reasoning,.z-toolcall,.z-sources,.z-suggestions,.z-loader{box-sizing:border-box;font-family:var(--font-sans);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}.z-button *,.z-card *,.z-field *,.z-checkbox *,.z-dialog *,.z-tabs *,.z-select *,.z-switch *,.z-toast *,.z-menu *,.z-table *,.z-avatar *,.z-skeleton *,.z-sheet *,.z-popover *,.z-progress *,.z-separator *,.z-textarea *,.z-chart *,.z-markdown *,.z-codeblock *,.z-conversation *,.z-message *,.z-prompt *,.z-reasoning *,.z-toolcall *,.z-sources *,.z-suggestions *,.z-loader *{box-sizing:border-box}.z-focusable:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.z-focusable:focus:not(:focus-visible){outline:none}.z-icon{flex:none;width:1em;height:1em;display:inline-flex}.z-icon>svg{width:100%;height:100%}.z-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.z-chart{width:100%;color:var(--color-text);font-family:var(--font-sans);position:relative}.z-chart__svg{touch-action:none;width:100%;display:block;overflow:visible}.z-chart__grid{stroke:var(--color-border);stroke-width:1px}.z-chart__tick{fill:var(--color-text-subtle);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.z-chart__line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.z-chart__area{fill-opacity:.12}.z-chart__bar{transition:opacity var(--duration-fast) var(--ease-standard)}.z-chart__cursor line{stroke:var(--color-border-strong);stroke-dasharray:3 3}.z-chart__cursor circle{stroke:var(--color-surface);stroke-width:2px}[data-tone=primary]>.z-chart__line,[data-tone=primary]>.z-chart__bar,circle[data-tone=primary]{stroke:var(--color-primary)}[data-tone=success]>.z-chart__line,[data-tone=success]>.z-chart__bar,circle[data-tone=success]{stroke:var(--color-success)}[data-tone=warning]>.z-chart__line,[data-tone=warning]>.z-chart__bar,circle[data-tone=warning]{stroke:var(--color-warning)}[data-tone=danger]>.z-chart__line,[data-tone=danger]>.z-chart__bar,circle[data-tone=danger]{stroke:var(--color-danger)}[data-tone=neutral]>.z-chart__line,[data-tone=neutral]>.z-chart__bar,circle[data-tone=neutral]{stroke:var(--color-neutral)}[data-tone=primary]>.z-chart__area,[data-tone=primary]>.z-chart__bar,circle[data-tone=primary],[data-tone=primary]>.z-chart__swatch{fill:var(--color-primary);background-color:var(--color-primary)}[data-tone=success]>.z-chart__area,[data-tone=success]>.z-chart__bar,circle[data-tone=success],[data-tone=success]>.z-chart__swatch{fill:var(--color-success);background-color:var(--color-success)}[data-tone=warning]>.z-chart__area,[data-tone=warning]>.z-chart__bar,circle[data-tone=warning],[data-tone=warning]>.z-chart__swatch{fill:var(--color-warning);background-color:var(--color-warning)}[data-tone=danger]>.z-chart__area,[data-tone=danger]>.z-chart__bar,circle[data-tone=danger],[data-tone=danger]>.z-chart__swatch{fill:var(--color-danger);background-color:var(--color-danger)}[data-tone=neutral]>.z-chart__area,[data-tone=neutral]>.z-chart__bar,circle[data-tone=neutral],[data-tone=neutral]>.z-chart__swatch{fill:var(--color-neutral);background-color:var(--color-neutral)}.z-chart__bar{stroke:none}.z-chart__readout{top:var(--spacing-2);z-index:1;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-xs);line-height:var(--leading-tight);white-space:nowrap;pointer-events:none;display:grid;position:absolute}.z-chart__readout[data-side=right]{transform:translateX(var(--spacing-3))}.z-chart__readout[data-side=left]{transform:translateX(calc(-100% - var(--spacing-3)))}.z-chart__readout-label{color:var(--color-text-muted)}.z-chart__readout-row{align-items:center;gap:var(--spacing-2);display:flex}.z-chart__readout-row strong{font-variant-numeric:tabular-nums;margin-left:auto}.z-chart__swatch{width:var(--spacing-2);height:var(--spacing-2);border-radius:var(--radius-full);display:inline-block}.z-chart__legend{gap:var(--spacing-1) var(--spacing-4);margin:var(--spacing-2) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.z-chart__legend li{align-items:center;gap:var(--spacing-2);display:inline-flex}@media (prefers-reduced-motion:reduce){.z-chart__bar{transition-duration:0s}}.z-enter-fade{animation:z-enter-fade var(--duration-normal) var(--ease-standard) both}.z-enter-rise{animation:z-enter-rise var(--duration-slow) var(--ease-emphasized) both}.z-enter-scale{animation:z-enter-scale var(--duration-normal) var(--ease-emphasized) both}.z-stagger>*{animation:z-enter-rise var(--duration-slow) var(--ease-emphasized) both}.z-stagger>:first-child{animation-delay:0s}.z-stagger>:nth-child(2){animation-delay:calc(var(--duration-fast) * .5)}.z-stagger>:nth-child(3){animation-delay:calc(var(--duration-fast) * 1)}.z-stagger>:nth-child(4){animation-delay:calc(var(--duration-fast) * 1.5)}.z-stagger>:nth-child(5){animation-delay:calc(var(--duration-fast) * 2)}.z-stagger>:nth-child(6){animation-delay:calc(var(--duration-fast) * 2.5)}.z-stagger>:nth-child(7){animation-delay:calc(var(--duration-fast) * 3)}.z-stagger>:nth-child(8){animation-delay:calc(var(--duration-fast) * 3.5)}.z-stagger>:nth-child(9){animation-delay:calc(var(--duration-fast) * 4)}.z-stagger>:nth-child(10){animation-delay:calc(var(--duration-fast) * 4.5)}.z-stagger>:nth-child(11){animation-delay:calc(var(--duration-fast) * 5)}.z-stagger>:nth-child(12){animation-delay:calc(var(--duration-fast) * 5.5)}@keyframes z-enter-fade{0%{opacity:0}to{opacity:1}}@keyframes z-enter-rise{0%{opacity:0;transform:translateY(var(--spacing-2))}to{opacity:1;transform:translateY(0)}}@keyframes z-enter-scale{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.z-enter-rise,.z-enter-scale,.z-stagger>*{animation-name:z-enter-fade;animation-duration:var(--duration-fast);animation-delay:0s}}.z-avatar{background-color:var(--color-neutral-soft);color:var(--color-neutral-soft-foreground);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;vertical-align:middle;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative;overflow:hidden}.z-avatar[data-shape=circle]{border-radius:var(--radius-full)}.z-avatar[data-shape=square]{border-radius:var(--radius-md)}.z-avatar[data-size=sm]{width:1.5rem;height:1.5rem;font-size:var(--text-xs)}.z-avatar[data-size=md]{width:2rem;height:2rem;font-size:var(--text-xs)}.z-avatar[data-size=lg]{width:2.5rem;height:2.5rem;font-size:var(--text-sm)}.z-avatar[data-size=xl]{width:4rem;height:4rem;font-size:var(--text-xl)}.z-avatar__image{object-fit:cover;width:100%;height:100%}.z-avatar__fallback{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.z-badge{align-items:center;gap:var(--spacing-1);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;display:inline-flex}.z-badge[data-size=sm]{padding:var(--spacing-0) var(--spacing-2);font-size:var(--text-xs)}.z-badge[data-size=md]{padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-sm)}.z-badge[data-variant=soft][data-tone=neutral]{background-color:var(--color-neutral-soft);color:var(--color-neutral-soft-foreground)}.z-badge[data-variant=soft][data-tone=primary]{background-color:var(--color-primary-soft);color:var(--color-primary-soft-foreground)}.z-badge[data-variant=soft][data-tone=danger]{background-color:var(--color-danger-soft);color:var(--color-danger-soft-foreground)}.z-badge[data-variant=soft][data-tone=success]{background-color:var(--color-success-soft);color:var(--color-success-soft-foreground)}.z-badge[data-variant=soft][data-tone=warning]{background-color:var(--color-warning-soft);color:var(--color-warning-soft-foreground)}.z-badge[data-variant=solid][data-tone=neutral]{background-color:var(--color-neutral);color:var(--color-on-neutral)}.z-badge[data-variant=solid][data-tone=primary]{background-color:var(--color-primary);color:var(--color-on-primary)}.z-badge[data-variant=solid][data-tone=danger]{background-color:var(--color-danger);color:var(--color-on-danger)}.z-badge[data-variant=solid][data-tone=success]{background-color:var(--color-success);color:var(--color-on-success)}.z-badge[data-variant=solid][data-tone=warning]{background-color:var(--color-warning);color:var(--color-on-warning)}.z-badge[data-variant=outline]{background-color:#0000}.z-badge[data-variant=outline][data-tone=neutral]{border-color:var(--color-border-strong);color:var(--color-text-muted)}.z-badge[data-variant=outline][data-tone=primary]{border-color:var(--color-primary);color:var(--color-primary)}.z-badge[data-variant=outline][data-tone=danger]{border-color:var(--color-danger);color:var(--color-danger)}.z-badge[data-variant=outline][data-tone=success]{border-color:var(--color-success);color:var(--color-success)}.z-badge[data-variant=outline][data-tone=warning]{border-color:var(--color-warning);color:var(--color-warning)}.z-chart[data-kind=bar] .z-chart__group:hover .z-chart__bar,.z-chart[data-kind=bar] .z-chart__group[data-hover] .z-chart__bar{opacity:.8}.z-button{justify-content:center;align-items:center;gap:var(--spacing-2);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);text-decoration:none;display:inline-flex;position:relative}.z-button[data-align=center]{justify-content:center}.z-button[data-align=start]{justify-content:flex-start}.z-button[data-size=sm]{min-height:2rem;padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-sm)}.z-button[data-size=md]{min-height:2.5rem;padding:var(--spacing-2) var(--spacing-4);font-size:var(--text-sm)}.z-button[data-size=lg]{min-height:3rem;padding:var(--spacing-3) var(--spacing-5);font-size:var(--text-base)}.z-button[data-variant=solid][data-tone=neutral]{background-color:var(--color-neutral);color:var(--color-on-neutral)}.z-button[data-variant=solid][data-tone=neutral]:hover{background-color:var(--color-neutral-hover)}.z-button[data-variant=solid][data-tone=neutral]:active{background-color:var(--color-neutral-active)}.z-button[data-variant=solid][data-tone=primary]{background-color:var(--color-primary);color:var(--color-on-primary)}.z-button[data-variant=solid][data-tone=primary]:hover{background-color:var(--color-primary-hover)}.z-button[data-variant=solid][data-tone=primary]:active{background-color:var(--color-primary-active)}.z-button[data-variant=solid][data-tone=danger]{background-color:var(--color-danger);color:var(--color-on-danger)}.z-button[data-variant=solid][data-tone=danger]:hover{background-color:var(--color-danger-hover)}.z-button[data-variant=solid][data-tone=danger]:active{background-color:var(--color-danger-active)}.z-button[data-variant=soft][data-tone=neutral]{background-color:var(--color-neutral-soft);color:var(--color-neutral-soft-foreground)}.z-button[data-variant=soft][data-tone=neutral]:hover{background-color:var(--color-neutral-soft-hover)}.z-button[data-variant=soft][data-tone=primary]{background-color:var(--color-primary-soft);color:var(--color-primary-soft-foreground)}.z-button[data-variant=soft][data-tone=primary]:hover{background-color:var(--color-primary-soft-hover)}.z-button[data-variant=soft][data-tone=danger]{background-color:var(--color-danger-soft);color:var(--color-danger-soft-foreground)}.z-button[data-variant=soft][data-tone=danger]:hover{background-color:var(--color-danger-soft-hover)}.z-button[data-variant=ghost]{background-color:#0000}.z-button[data-variant=ghost][data-tone=neutral]{color:var(--color-text)}.z-button[data-variant=ghost][data-tone=neutral]:hover{background-color:var(--color-neutral-soft)}.z-button[data-variant=ghost][data-tone=primary]{color:var(--color-primary)}.z-button[data-variant=ghost][data-tone=primary]:hover{background-color:var(--color-primary-soft)}.z-button[data-variant=ghost][data-tone=danger]{color:var(--color-danger)}.z-button[data-variant=ghost][data-tone=danger]:hover{background-color:var(--color-danger-soft)}.z-button[data-variant=link]{border-radius:var(--radius-sm);background-color:#0000;min-height:0;padding:0}.z-button[data-variant=link][data-tone=neutral]{color:var(--color-text)}.z-button[data-variant=link][data-tone=primary]{color:var(--color-primary)}.z-button[data-variant=link][data-tone=danger]{color:var(--color-danger)}.z-button[data-variant=link]:hover{text-underline-offset:.2em;text-decoration:underline}.z-button:not([data-variant=link]):active:not([data-disabled]){transform:translateY(1px)}.z-button[data-disabled]{cursor:not-allowed;opacity:.55;transform:none}.z-button[data-loading] .z-button__label{visibility:hidden}.z-button__spinner{justify-content:center;align-items:center;display:inline-flex;position:absolute;inset:0}.z-button__spinner>svg{width:1.125em;height:1.125em;animation:z-spin var(--duration-slow) linear infinite;animation-duration:.8s}@keyframes z-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.z-button{transition-duration:0s}.z-button:active{transform:none}.z-button__spinner>svg{animation-duration:1.6s}}.z-card{background-color:var(--color-surface);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-lg);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-normal) var(--ease-standard);flex-direction:column;display:flex}.z-card[data-variant=outlined]{border-color:var(--color-border)}.z-card[data-variant=elevated]{box-shadow:var(--shadow-md)}.z-card[data-variant=sunken]{background-color:var(--color-surface-sunken)}.z-card[data-padding=none]{padding:var(--spacing-0)}.z-card[data-padding=sm]{padding:var(--spacing-3)}.z-card[data-padding=md]{padding:var(--spacing-4)}.z-card[data-padding=lg]{padding:var(--spacing-6)}.z-card:has(>.z-card__header,>.z-card__body,>.z-card__footer){padding:0}.z-card[data-padding=sm]>.z-card__header,.z-card[data-padding=sm]>.z-card__body,.z-card[data-padding=sm]>.z-card__footer{padding:var(--spacing-3)}.z-card[data-padding=md]>.z-card__header,.z-card[data-padding=md]>.z-card__body,.z-card[data-padding=md]>.z-card__footer{padding:var(--spacing-4)}.z-card[data-padding=lg]>.z-card__header,.z-card[data-padding=lg]>.z-card__body,.z-card[data-padding=lg]>.z-card__footer{padding:var(--spacing-6)}.z-card__header{align-items:center;gap:var(--spacing-3);border-bottom:var(--border-width) solid var(--color-border);font-weight:var(--font-weight-semibold);display:flex}.z-card__body{flex:1}.z-card__footer{justify-content:flex-end;align-items:center;gap:var(--spacing-2);border-top:var(--border-width) solid var(--color-border);background-color:var(--color-surface-raised);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;display:flex}.z-card[data-interactive]{cursor:pointer}.z-card[data-interactive]:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.z-card[data-interactive][data-variant=elevated]:hover{box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){.z-card{transition-duration:0s}.z-card[data-interactive]:hover{transform:none}}.z-dialog__overlay{z-index:50;background-color:var(--color-surface-overlay);animation:z-dialog-fade-in var(--duration-slow) var(--ease-standard);position:fixed;inset:0}.z-dialog__overlay[data-state=closed]{animation:z-dialog-fade-out var(--duration-normal) var(--ease-exit)}.z-dialog{z-index:51;gap:var(--spacing-3);width:calc(100vw - var(--spacing-8));max-height:calc(100vh - var(--spacing-8));background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--color-text);animation:z-dialog-enter var(--duration-slow) var(--ease-emphasized);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.z-dialog[data-state=closed]{animation:z-dialog-exit var(--duration-normal) var(--ease-exit)}.z-dialog:focus{outline:none}.z-dialog[data-size=sm]{max-width:24rem;padding:var(--spacing-5)}.z-dialog[data-size=md]{max-width:32rem;padding:var(--spacing-6)}.z-dialog[data-size=lg]{max-width:48rem;padding:var(--spacing-8)}.z-dialog__title{padding-right:var(--spacing-8);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.z-dialog__description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.z-dialog__footer{justify-content:flex-end;gap:var(--spacing-2);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.z-dialog__close{top:var(--spacing-3);right:var(--spacing-3);border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.z-dialog__close>svg{width:1rem;height:1rem}.z-dialog__close:hover{background-color:var(--color-neutral-soft);color:var(--color-text)}@keyframes z-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes z-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes z-dialog-enter{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes z-dialog-exit{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-48%)scale(.98)}}@media (prefers-reduced-motion:reduce){.z-dialog{animation:z-dialog-fade-in var(--duration-normal) var(--ease-standard)}.z-dialog[data-state=closed]{animation:z-dialog-fade-out var(--duration-fast) var(--ease-exit)}.z-dialog__close{transition-duration:0s}}.z-chart[data-kind=line] .z-chart__svg{cursor:crosshair}.z-menu{z-index:60;min-width:11rem;max-height:var(--radix-dropdown-menu-content-available-height);padding:var(--spacing-1);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--text-sm);transform-origin:var(--radix-dropdown-menu-content-transform-origin);animation:z-menu-enter var(--duration-fast) var(--ease-standard);overflow:auto}.z-menu[data-state=closed]{animation:z-menu-exit var(--duration-fast) var(--ease-exit)}.z-menu__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);line-height:var(--leading-tight);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex;position:relative}.z-menu__item--check{padding-left:var(--spacing-8)}.z-menu__item[data-highlighted]{background-color:var(--color-neutral-soft)}.z-menu__item[data-tone=danger]{color:var(--color-danger)}.z-menu__item[data-tone=danger][data-highlighted]{background-color:var(--color-danger-soft);color:var(--color-danger-soft-foreground)}.z-menu__item[data-disabled]{color:var(--color-text-subtle);cursor:not-allowed}.z-menu__icon{color:var(--color-text-muted)}.z-menu__item[data-tone=danger] .z-menu__icon{color:inherit}.z-menu__text{flex:1;min-width:0}.z-menu__shortcut{margin-left:var(--spacing-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-subtle)}.z-menu__indicator{left:var(--spacing-3);width:1rem;height:1rem;color:var(--color-primary);display:inline-flex;position:absolute}.z-menu__indicator>svg{width:100%;height:100%}.z-menu__label{padding:var(--spacing-2) var(--spacing-3) var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.z-menu__separator{height:1px;margin:var(--spacing-1) 0;background-color:var(--color-border)}@keyframes z-menu-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes z-menu-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-menu,.z-menu[data-state=closed]{animation:none}}.z-popover{z-index:60;background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal);transform-origin:var(--radix-popover-content-transform-origin);animation:z-popover-enter var(--duration-normal) var(--ease-emphasized)}.z-popover[data-state=closed]{animation:z-popover-exit var(--duration-fast) var(--ease-exit)}.z-popover:focus{outline:none}.z-popover[data-size=sm]{width:16rem;padding:var(--spacing-3)}.z-popover[data-size=md]{width:20rem;padding:var(--spacing-4)}.z-popover[data-size=lg]{width:28rem;padding:var(--spacing-5)}.z-popover__arrow{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1px}@keyframes z-popover-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes z-popover-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-popover,.z-popover[data-state=closed]{animation:none}}.z-progress{gap:var(--spacing-1);width:100%;color:var(--color-text);display:grid}.z-progress__head{justify-content:space-between;gap:var(--spacing-3);font-size:var(--text-sm);line-height:var(--leading-tight);display:flex}.z-progress__label{font-weight:var(--font-weight-medium)}.z-progress__value{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.z-progress__track{background-color:var(--color-neutral-soft);border-radius:var(--radius-full);width:100%;position:relative;overflow:hidden}.z-progress[data-size=sm] .z-progress__track{height:var(--spacing-1)}.z-progress[data-size=md] .z-progress__track{height:var(--spacing-2)}.z-progress__indicator{border-radius:inherit;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-standard)}.z-progress[data-tone=primary] .z-progress__indicator{background-color:var(--color-primary)}.z-progress[data-tone=neutral] .z-progress__indicator{background-color:var(--color-neutral)}.z-progress[data-tone=success] .z-progress__indicator{background-color:var(--color-success)}.z-progress[data-tone=warning] .z-progress__indicator{background-color:var(--color-warning)}.z-progress[data-tone=danger] .z-progress__indicator{background-color:var(--color-danger)}.z-progress__track[data-state=indeterminate] .z-progress__indicator{width:40%;animation:z-progress-sweep 1.4s var(--ease-standard) infinite}@keyframes z-progress-sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.z-progress__indicator{transition-duration:0s}.z-progress__track[data-state=indeterminate] .z-progress__indicator{width:100%;animation:z-progress-pulse 1.4s var(--ease-standard) infinite alternate}}@keyframes z-progress-pulse{0%{opacity:.4}to{opacity:1}}.z-select{gap:var(--spacing-1);color:var(--color-text);flex-direction:column;display:flex}.z-select__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}.z-select__required{color:var(--color-danger)}.z-select__trigger{justify-content:space-between;align-items:center;gap:var(--spacing-2);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);font-family:inherit;line-height:var(--leading-normal);text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);display:inline-flex}.z-select__trigger[data-placeholder]{color:var(--color-text-subtle)}.z-select__value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.z-select__chevron{width:1rem;height:1rem;color:var(--color-text-muted);flex:none;display:inline-flex}.z-select__chevron>svg{width:100%;height:100%}.z-select[data-size=sm] .z-select__trigger{min-height:2rem;padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm)}.z-select[data-size=md] .z-select__trigger{min-height:2.5rem;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-select[data-size=lg] .z-select__trigger{min-height:3rem;padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base)}.z-select__trigger:hover:not(:disabled){border-color:var(--color-text-muted)}.z-select__trigger:focus-visible{border-color:var(--color-focus);outline-offset:0}.z-select[data-invalid] .z-select__trigger{border-color:var(--color-danger)}.z-select[data-disabled]{color:var(--color-text-subtle)}.z-select__trigger:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.z-select__description,.z-select__error{font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-select__description{color:var(--color-text-muted)}.z-select__error{color:var(--color-danger)}.z-select__content{z-index:60;min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--text-sm);transform-origin:var(--radix-select-content-transform-origin);animation:z-select-enter var(--duration-fast) var(--ease-standard);overflow:hidden}.z-select__content[data-state=closed]{animation:z-select-exit var(--duration-fast) var(--ease-exit)}.z-select__viewport{padding:var(--spacing-1)}.z-select__scroll{height:var(--spacing-6);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.z-select__scroll>svg{width:1rem;height:1rem}.z-select__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-8) var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);line-height:var(--leading-tight);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex;position:relative}.z-select__item[data-highlighted]{background-color:var(--color-neutral-soft)}.z-select__item[data-state=checked]{font-weight:var(--font-weight-medium)}.z-select__item[data-disabled]{color:var(--color-text-subtle);cursor:not-allowed}.z-select__indicator{right:var(--spacing-3);width:1rem;height:1rem;color:var(--color-primary);display:inline-flex;position:absolute}.z-select__indicator>svg{width:100%;height:100%}.z-select__group-label{padding:var(--spacing-2) var(--spacing-3) var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.z-select__separator{height:1px;margin:var(--spacing-1) 0;background-color:var(--color-border)}@keyframes z-select-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes z-select-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-select__trigger{transition-duration:0s}.z-select__content,.z-select__content[data-state=closed]{animation:none}}.z-separator{background-color:var(--color-border);flex:none}.z-separator[data-orientation=horizontal]{width:100%;height:1px}.z-separator[data-orientation=vertical]{align-self:stretch;width:1px;height:100%;min-height:1em}.z-separator--labelled{align-items:center;gap:var(--spacing-3);background:0 0;height:auto;display:flex}.z-separator__line{background-color:var(--color-border);flex:1;height:1px}.z-separator__label{font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-text-muted);white-space:nowrap}.z-sheet__overlay{z-index:50;background-color:var(--color-surface-overlay);animation:z-sheet-fade-in var(--duration-slow) var(--ease-standard);position:fixed;inset:0}.z-sheet__overlay[data-state=closed]{animation:z-sheet-fade-out var(--duration-normal) var(--ease-exit)}.z-sheet{z-index:51;gap:var(--spacing-3);padding:var(--spacing-6);background-color:var(--color-surface);box-shadow:var(--shadow-lg);color:var(--color-text);animation-duration:var(--duration-slow);animation-timing-function:var(--ease-emphasized);flex-direction:column;display:flex;position:fixed;overflow:auto}.z-sheet:focus{outline:none}.z-sheet[data-side=right]{border-left:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-right;top:0;bottom:0;right:0}.z-sheet[data-side=left]{border-right:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-left;top:0;bottom:0;left:0}.z-sheet[data-side=top]{border-bottom:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-top;top:0;left:0;right:0}.z-sheet[data-side=bottom]{border-top:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-bottom;bottom:0;left:0;right:0}.z-sheet[data-state=closed]{animation-duration:var(--duration-normal);animation-timing-function:var(--ease-exit);animation-direction:reverse}.z-sheet[data-side=right][data-size=sm],.z-sheet[data-side=left][data-size=sm]{width:min(100vw,20rem)}.z-sheet[data-side=right][data-size=md],.z-sheet[data-side=left][data-size=md]{width:min(100vw,28rem)}.z-sheet[data-side=right][data-size=lg],.z-sheet[data-side=left][data-size=lg]{width:min(100vw,40rem)}.z-sheet[data-side=top][data-size=sm],.z-sheet[data-side=bottom][data-size=sm]{max-height:40vh}.z-sheet[data-side=top][data-size=md],.z-sheet[data-side=bottom][data-size=md]{max-height:60vh}.z-sheet[data-side=top][data-size=lg],.z-sheet[data-side=bottom][data-size=lg]{max-height:85vh}.z-sheet__title{padding-right:var(--spacing-8);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.z-sheet__description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.z-sheet__footer{justify-content:flex-end;gap:var(--spacing-2);padding-top:var(--spacing-4);flex-wrap:wrap;margin-top:auto;display:flex}.z-sheet__close{top:var(--spacing-3);right:var(--spacing-3);border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.z-sheet__close>svg{width:1rem;height:1rem}.z-sheet__close:hover{background-color:var(--color-neutral-soft);color:var(--color-text)}@keyframes z-sheet-fade-in{0%{opacity:0}to{opacity:1}}@keyframes z-sheet-fade-out{0%{opacity:1}to{opacity:0}}@keyframes z-sheet-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes z-sheet-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes z-sheet-from-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes z-sheet-from-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.z-sheet{animation-name:z-sheet-fade-in;animation-duration:var(--duration-normal)}.z-sheet[data-state=closed]{animation-name:z-sheet-fade-out;animation-direction:normal}.z-sheet__close{transition-duration:0s}}.z-sparkline{vertical-align:middle;width:100%;min-width:3rem;line-height:0;display:inline-block}.z-sparkline__svg{width:100%;display:block;overflow:visible}.z-sparkline__line{stroke-width:1.5px}.z-sparkline[data-tone=primary],.z-sparkline[data-tone=success],.z-sparkline[data-tone=warning],.z-sparkline[data-tone=danger],.z-sparkline[data-tone=neutral]{color:var(--color-text)}.z-switch{align-items:flex-start;gap:var(--spacing-2);color:var(--color-text);display:inline-flex}.z-switch__box{height:calc(var(--text-sm) * var(--leading-normal));flex:none;align-items:center;display:inline-flex}.z-switch[data-size=sm] .z-switch__box{height:calc(var(--text-xs) * var(--leading-normal))}.z-switch__control{background-color:var(--color-border-strong);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);border:2px solid #0000;flex:none;align-items:center;padding:0;display:inline-flex;position:relative}.z-switch[data-size=sm] .z-switch__control{width:1.75rem;height:1rem}.z-switch[data-size=md] .z-switch__control{width:2.25rem;height:1.25rem}.z-switch__thumb{background-color:var(--color-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-emphasized);display:block}.z-switch[data-size=sm] .z-switch__thumb{width:.75rem;height:.75rem}.z-switch[data-size=md] .z-switch__thumb{width:1rem;height:1rem}.z-switch[data-size=sm] .z-switch__control[data-state=checked] .z-switch__thumb{transform:translate(.75rem)}.z-switch[data-size=md] .z-switch__control[data-state=checked] .z-switch__thumb{transform:translate(1rem)}.z-switch__control:hover:not(:disabled){background-color:var(--color-text-muted)}.z-switch__control[data-state=checked]{background-color:var(--color-primary)}.z-switch__control[data-state=checked]:hover:not(:disabled){background-color:var(--color-primary-hover)}.z-switch__control:disabled{background-color:var(--color-border);cursor:not-allowed}.z-switch__control:disabled[data-state=checked]{background-color:var(--color-text-subtle)}.z-switch__text{gap:var(--spacing-0);flex-direction:column;display:flex}.z-switch__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);cursor:pointer}.z-switch[data-size=sm] .z-switch__label{font-size:var(--text-xs)}.z-switch__description{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}.z-switch[data-disabled]{color:var(--color-text-subtle)}.z-switch[data-disabled] .z-switch__label{cursor:not-allowed}@media (prefers-reduced-motion:reduce){.z-switch__control,.z-switch__thumb{transition-duration:0s}}.z-table{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);width:100%;color:var(--color-text);overflow:auto}.z-table__table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--leading-tight)}.z-table__cell{border-bottom:var(--border-width) solid var(--color-border);text-align:left;vertical-align:middle}.z-table[data-density=sm] .z-table__cell{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-xs)}.z-table[data-density=md] .z-table__cell{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-sm)}.z-table__cell--head{font-weight:var(--font-weight-medium);color:var(--color-text-muted);white-space:nowrap}.z-table__head .z-table__cell{background-color:var(--color-surface-raised)}.z-table[data-sticky] .z-table__head .z-table__cell{z-index:1;position:sticky;top:0}.z-table__body .z-table__row:last-child .z-table__cell{border-bottom:0}.z-table__foot .z-table__cell{border-top:var(--border-width) solid var(--color-border);background-color:var(--color-surface-raised);font-weight:var(--font-weight-medium);border-bottom:0}.z-table__cell[data-align=center]{text-align:center}.z-table__cell[data-align=end]{text-align:right}.z-table__cell[data-numeric]{font-variant-numeric:tabular-nums}.z-table__row[data-interactive]{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.z-table__row[data-interactive]:hover .z-table__cell{background-color:var(--color-surface-raised)}.z-table__row[data-selected] .z-table__cell{background-color:var(--color-primary-soft)}@media (prefers-reduced-motion:reduce){.z-table__row[data-interactive]{transition-duration:0s}}.z-textarea{gap:var(--spacing-1);color:var(--color-text);flex-direction:column;display:flex}.z-textarea__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}.z-textarea__required{color:var(--color-danger)}.z-textarea__control{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);font-family:inherit;line-height:var(--leading-normal);transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard)}.z-textarea__control::placeholder{color:var(--color-text-subtle)}.z-textarea[data-resize=none] .z-textarea__control{resize:none}.z-textarea[data-resize=vertical] .z-textarea__control{resize:vertical}.z-textarea[data-resize=both] .z-textarea__control{resize:both}.z-textarea[data-size=sm] .z-textarea__control{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm)}.z-textarea[data-size=md] .z-textarea__control{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-textarea[data-size=lg] .z-textarea__control{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base)}.z-textarea__control:hover:not(:disabled):not(:read-only){border-color:var(--color-text-muted)}.z-textarea__control:focus-visible{border-color:var(--color-focus);outline-offset:0}.z-textarea[data-invalid] .z-textarea__control{border-color:var(--color-danger)}.z-textarea[data-invalid] .z-textarea__control:focus-visible{outline-color:var(--color-danger)}.z-textarea[data-readonly] .z-textarea__control{background-color:var(--color-surface-sunken)}.z-textarea[data-disabled]{color:var(--color-text-subtle)}.z-textarea__control:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.z-textarea__description,.z-textarea__error{font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-textarea__description{color:var(--color-text-muted)}.z-textarea__error{color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.z-textarea__control{transition-duration:0s}}.z-textarea[data-font=mono] .z-textarea__control{font-family:var(--font-mono)}.z-field{gap:var(--spacing-1);color:var(--color-text);flex-direction:column;display:flex}.z-field__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}.z-field__required{color:var(--color-danger)}.z-field__control{align-items:center;display:flex;position:relative}.z-field__input{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);font-family:inherit;line-height:var(--leading-normal);transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard)}.z-field__input::placeholder{color:var(--color-text-subtle)}.z-field[data-size=sm] .z-field__input{min-height:2rem;padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm)}.z-field[data-size=md] .z-field__input{min-height:2.5rem;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-field[data-size=lg] .z-field__input{min-height:3rem;padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base)}.z-field__icon{color:var(--color-text-muted);pointer-events:none;position:absolute}.z-field__icon:first-child{left:var(--spacing-3)}.z-field__icon:last-child{right:var(--spacing-3)}.z-field__control:has(>.z-field__icon:first-child)>.z-field__input{padding-left:var(--spacing-8)}.z-field__control:has(>.z-field__icon:last-child)>.z-field__input{padding-right:var(--spacing-8)}.z-field__input:hover:not(:disabled):not(:read-only){border-color:var(--color-text-muted)}.z-field__input:focus-visible{border-color:var(--color-focus);outline-offset:0}.z-field[data-invalid] .z-field__input{border-color:var(--color-danger)}.z-field[data-invalid] .z-field__input:focus-visible{outline-color:var(--color-danger)}.z-field[data-readonly] .z-field__input{background-color:var(--color-surface-sunken)}.z-field[data-disabled]{color:var(--color-text-subtle)}.z-field__input:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.z-field__description,.z-field__error{font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-field__description{color:var(--color-text-muted)}.z-field__error{color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.z-field__input{transition-duration:0s}}.z-field[data-font=mono] .z-field__input{font-family:var(--font-mono)}.z-toast__viewport{z-index:70;gap:var(--spacing-2);width:min(100vw - var(--spacing-8), 24rem);padding:var(--spacing-4);outline:none;flex-direction:column;margin:0;list-style:none;display:flex;position:fixed}.z-toast__viewport[data-position=bottom-right]{bottom:0;right:0}.z-toast__viewport[data-position=bottom-left]{bottom:0;left:0}.z-toast__viewport[data-position=top-right]{top:0;right:0}.z-toast__viewport[data-position=top-left]{top:0;left:0}.z-toast{align-items:start;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-4);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text);animation:z-toast-enter var(--duration-slow) var(--ease-emphasized);border-left-width:3px;grid-template-columns:minmax(0,1fr) auto auto;display:grid}.z-toast[data-state=closed]{animation:z-toast-exit var(--duration-normal) var(--ease-exit)}.z-toast[data-swipe=move]{transform:translateX(var(--radix-toast-swipe-move-x))}.z-toast[data-swipe=cancel]{transition:transform var(--duration-normal) var(--ease-standard);transform:translate(0)}.z-toast[data-swipe=end]{animation:z-toast-swipe-out var(--duration-fast) var(--ease-exit)}.z-toast[data-tone=neutral]{border-left-color:var(--color-neutral)}.z-toast[data-tone=success]{border-left-color:var(--color-success)}.z-toast[data-tone=warning]{border-left-color:var(--color-warning)}.z-toast[data-tone=danger]{border-left-color:var(--color-danger)}.z-toast__body{gap:var(--spacing-1);min-width:0;display:grid}.z-toast__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.z-toast__description{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}.z-toast__action{padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-neutral-soft);border-radius:var(--radius-md);color:var(--color-neutral-soft-foreground);font-family:inherit;font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;border:0}.z-toast__action:hover{background-color:var(--color-neutral-soft-hover)}.z-toast--clear{box-shadow:none;background:0 0;border:0;justify-content:flex-end;padding:0;display:flex}.z-toast__clear{padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-neutral-soft);border-radius:var(--radius-md);color:var(--color-neutral-soft-foreground);font-family:inherit;font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);cursor:pointer;border:0}.z-toast__close{border-radius:var(--radius-md);width:1.5rem;height:1.5rem;color:var(--color-text-muted);cursor:pointer;background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.z-toast__close>svg{width:.875rem;height:.875rem}.z-toast__close:hover{background-color:var(--color-neutral-soft);color:var(--color-text)}@keyframes z-toast-enter{0%{opacity:0;transform:translateY(var(--spacing-3))}to{opacity:1;transform:translateY(0)}}@keyframes z-toast-exit{0%{opacity:1}to{opacity:0}}@keyframes z-toast-swipe-out{0%{transform:translateX(var(--radix-toast-swipe-end-x))}to{transform:translateX(calc(100% + var(--spacing-8)))}}@media (prefers-reduced-motion:reduce){.z-toast{animation:z-toast-exit var(--duration-fast) var(--ease-standard) reverse}}.z-tooltip{z-index:60;max-width:18rem;padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-surface);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);transform-origin:var(--radix-tooltip-content-transform-origin);animation:z-tooltip-enter var(--duration-fast) var(--ease-standard)}.z-tooltip[data-state=closed]{animation:z-tooltip-exit var(--duration-fast) var(--ease-exit)}.z-tooltip__arrow{fill:var(--color-text)}@keyframes z-tooltip-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes z-tooltip-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.z-tooltip,.z-tooltip[data-state=closed]{animation:none}}.z-checkbox{align-items:flex-start;gap:var(--spacing-2);color:var(--color-text);display:inline-flex}.z-checkbox__control{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-on-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.z-checkbox__box{height:calc(var(--text-sm) * var(--leading-normal));flex:none;align-items:center;display:inline-flex}.z-checkbox[data-size=sm] .z-checkbox__box{height:calc(var(--text-xs) * var(--leading-normal))}.z-checkbox[data-size=sm] .z-checkbox__control{width:1rem;height:1rem}.z-checkbox[data-size=md] .z-checkbox__control{width:1.25rem;height:1.25rem}.z-checkbox__control:hover:not(:disabled){border-color:var(--color-text-muted)}.z-checkbox__control[data-state=checked],.z-checkbox__control[data-state=indeterminate]{background-color:var(--color-primary);border-color:var(--color-primary)}.z-checkbox__control[data-state=checked]:hover:not(:disabled),.z-checkbox__control[data-state=indeterminate]:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.z-checkbox__control:disabled{background-color:var(--color-surface-sunken);border-color:var(--color-border);cursor:not-allowed}.z-checkbox__control:disabled[data-state=checked],.z-checkbox__control:disabled[data-state=indeterminate]{background-color:var(--color-text-subtle);border-color:var(--color-text-subtle)}.z-checkbox__indicator{width:80%;height:80%;display:inline-flex}.z-checkbox__indicator>svg{width:100%;height:100%}.z-checkbox__check,.z-checkbox__dash{stroke-dasharray:20;stroke-dashoffset:20px;transition:stroke-dashoffset var(--duration-normal) var(--ease-emphasized)}.z-checkbox__control[data-state=checked] .z-checkbox__check,.z-checkbox__control[data-state=indeterminate] .z-checkbox__dash{stroke-dashoffset:0}.z-checkbox__text{gap:var(--spacing-0);flex-direction:column;display:flex}.z-checkbox__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);cursor:pointer}.z-checkbox[data-size=sm] .z-checkbox__label{font-size:var(--text-xs)}.z-checkbox__description{color:var(--color-text-muted);font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-checkbox[data-disabled] .z-checkbox__label,.z-checkbox[data-disabled] .z-checkbox__description{color:var(--color-text-subtle);cursor:not-allowed}@media (prefers-reduced-motion:reduce){.z-checkbox__control,.z-checkbox__check,.z-checkbox__dash{transition-duration:0s}}.z-codeblock{background-color:var(--color-surface-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);display:grid;overflow:hidden}.z-codeblock__head{justify-content:space-between;align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-1) var(--spacing-1) var(--spacing-3);border-bottom:var(--border-width) solid var(--color-border);display:flex}.z-codeblock__language{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.z-codeblock__copy{margin-left:auto}.z-codeblock__pre{padding:var(--spacing-3);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);tab-size:2;margin:0;overflow-x:auto}.z-codeblock[data-wrap] .z-codeblock__pre{white-space:pre-wrap;word-break:break-word}.z-markdown{gap:var(--spacing-3);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal);overflow-wrap:anywhere;display:grid}.z-markdown>*{margin:0}.z-markdown h1,.z-markdown h2,.z-markdown h3,.z-markdown h4,.z-markdown h5,.z-markdown h6{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.z-markdown h1{font-size:var(--text-xl)}.z-markdown h2{font-size:var(--text-lg)}.z-markdown h3,.z-markdown h4,.z-markdown h5,.z-markdown h6{font-size:var(--text-base)}.z-markdown ul,.z-markdown ol{gap:var(--spacing-1);padding-left:var(--spacing-5);display:grid}.z-markdown code{padding:var(--spacing-0) var(--spacing-1);background-color:var(--color-surface-sunken);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9em}.z-markdown a{color:var(--color-primary);text-underline-offset:.15em}.z-markdown blockquote{padding-left:var(--spacing-3);border-left:2px solid var(--color-border-strong);color:var(--color-text-muted)}.z-markdown hr{background-color:var(--color-border);border:0;height:1px}.z-markdown__cursor{width:2px;height:1em;margin-left:var(--spacing-0);vertical-align:text-bottom;background-color:var(--color-text-muted);animation:1s steps(2,end) infinite z-markdown-blink;display:inline-block}@keyframes z-markdown-blink{to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-markdown__cursor{animation:none}}.z-tabs{color:var(--color-text);flex-direction:column;display:flex}.z-tabs__list{flex-wrap:wrap;align-items:center;display:flex}.z-tabs__trigger{align-items:center;gap:var(--spacing-2);color:var(--color-text-muted);font-family:inherit;font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);background:0 0;border:0;display:inline-flex}.z-tabs__trigger:hover:not(:disabled){color:var(--color-text)}.z-tabs__trigger:disabled{color:var(--color-text-subtle);cursor:not-allowed}.z-tabs__trigger[data-state=active]{color:var(--color-text)}.z-tabs[data-size=sm] .z-tabs__trigger{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs)}.z-tabs[data-size=md] .z-tabs__trigger{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-tabs[data-variant=line] .z-tabs__list{gap:var(--spacing-1);box-shadow:inset 0 -1px 0 var(--color-border)}.z-tabs[data-variant=line] .z-tabs__trigger{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:2px solid #0000}.z-tabs[data-variant=line] .z-tabs__trigger[data-state=active]{border-bottom-color:var(--color-primary);color:var(--color-primary)}.z-tabs[data-variant=pill] .z-tabs__list{align-self:flex-start;gap:var(--spacing-1);padding:var(--spacing-1);background-color:var(--color-surface-sunken);border-radius:var(--radius-md)}.z-tabs[data-variant=pill] .z-tabs__trigger{border-radius:var(--radius-sm)}.z-tabs[data-variant=pill] .z-tabs__trigger[data-state=active]{background-color:var(--color-surface);box-shadow:var(--shadow-sm)}.z-tabs__content{padding-top:var(--spacing-4);outline-offset:0}.z-tabs__content[data-state=inactive]{display:none}.z-skeleton{background-color:var(--color-neutral-soft);animation:z-skeleton-pulse var(--duration-slow) var(--ease-standard) infinite alternate;display:inline-block}.z-skeleton[data-variant=text]{border-radius:var(--radius-sm);vertical-align:middle;width:100%;height:1em}.z-skeleton[data-variant=rect]{border-radius:var(--radius-md);width:100%;height:4rem}.z-skeleton[data-variant=circle]{border-radius:var(--radius-full);width:2.5rem;height:2.5rem}.z-skeleton-lines{gap:var(--spacing-2);width:100%;display:grid}@keyframes z-skeleton-pulse{0%{opacity:1}to{opacity:.5}}@media (prefers-reduced-motion:reduce){.z-skeleton{animation:none}}.z-loader{align-items:center;gap:var(--spacing-2);color:var(--color-text-muted);font-size:var(--text-xs);display:inline-flex}.z-loader__dots{gap:var(--spacing-1);display:inline-flex}.z-loader__dots>span{border-radius:var(--radius-full);animation:z-loader-bounce 1.2s var(--ease-standard) infinite;background-color:currentColor;display:block}.z-loader[data-size=sm] .z-loader__dots>span{width:var(--spacing-1);height:var(--spacing-1)}.z-loader[data-size=md] .z-loader__dots>span{width:var(--spacing-2);height:var(--spacing-2)}.z-loader__dots>span:nth-child(2){animation-delay:.15s}.z-loader__dots>span:nth-child(3){animation-delay:.3s}@keyframes z-loader-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-25%)}}@media (prefers-reduced-motion:reduce){.z-loader__dots>span{animation:z-loader-fade 1.2s var(--ease-standard) infinite alternate}}@keyframes z-loader-fade{0%{opacity:.3}to{opacity:1}}.z-empty{justify-items:center;gap:var(--spacing-2);padding:var(--spacing-8);border:var(--border-width) dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);text-align:center;display:grid}.z-empty[data-size=sm]{padding:var(--spacing-5)}.z-empty__icon{color:var(--color-text-subtle);display:inline-flex}.z-empty[data-tone=danger] .z-empty__icon{color:var(--color-danger)}.z-empty__title{color:var(--color-text);font-weight:var(--font-weight-medium);margin:0}.z-empty[data-size=md] .z-empty__title{font-size:var(--text-lg)}.z-empty__description{max-width:44ch;font-size:var(--text-sm);text-wrap:pretty;margin:0}.z-empty__action{margin-top:var(--spacing-2)}.z-kanban{gap:var(--spacing-4);grid-auto-columns:minmax(16rem,1fr);grid-auto-flow:column;align-items:start;display:grid;overflow-x:auto}.z-kanban__column{gap:var(--spacing-3);padding:var(--spacing-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface-sunken);display:grid}.z-kanban__column[data-over]{border-color:var(--color-primary)}.z-kanban__head{justify-content:space-between;align-items:center;gap:var(--spacing-2);display:flex}.z-kanban__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);margin:0}.z-kanban__list{gap:var(--spacing-2);margin:0;padding:0;list-style:none;display:grid}.z-kanban__slot[data-drop]:before{content:"";height:2px;margin-bottom:var(--spacing-2);background-color:var(--color-primary);border-radius:var(--radius-full);display:block}.z-kanban__card{padding:var(--spacing-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);cursor:grab}.z-kanban__card[data-lifted]{cursor:grabbing;border-color:var(--color-primary);box-shadow:var(--shadow-md)}.z-kanban[data-density=sm] .z-kanban__card,.z-kanban[data-density=sm] .z-kanban__column{padding:var(--spacing-2)}.z-combobox{gap:var(--spacing-2);display:grid;position:relative}.z-combobox__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.z-combobox__control{align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-md);background-color:var(--color-surface);flex-wrap:wrap;display:flex}.z-combobox[data-invalid] .z-combobox__control{border-color:var(--color-danger)}.z-combobox[data-disabled] .z-combobox__control{background-color:var(--color-surface-sunken);opacity:.55}.z-combobox__input{min-width:6rem;padding-block:var(--spacing-1);color:inherit;background:0 0;border:0;flex:6rem;font-family:inherit}.z-combobox[data-size=sm] .z-combobox__input,.z-combobox[data-size=md] .z-combobox__input{font-size:var(--text-sm)}.z-combobox[data-size=lg] .z-combobox__input{font-size:var(--text-base)}.z-combobox__chip{align-items:center;gap:var(--spacing-1);display:inline-flex}.z-combobox__remove{color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.z-combobox__chevron{color:var(--color-text-subtle);display:inline-flex}.z-combobox__list{z-index:20;max-height:16rem;margin:var(--spacing-1) 0 0;padding:var(--spacing-1);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.z-combobox__list ul{margin:0;padding:0;list-style:none}.z-combobox__group-name{margin:var(--spacing-2) var(--spacing-2) var(--spacing-1);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-subtle)}.z-combobox__option{align-items:center;column-gap:var(--spacing-2);padding:var(--spacing-2);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:1fr auto;display:grid}.z-combobox__option[data-active=true]{background-color:var(--color-surface-sunken)}.z-combobox__option[aria-disabled]{opacity:.55;cursor:not-allowed}.z-combobox__option-label{font-size:var(--text-sm)}.z-combobox__option-hint{font-size:var(--text-xs);color:var(--color-text-muted);grid-column:1}.z-combobox__tick{color:var(--color-primary);grid-area:1/2/-1;display:inline-flex}.z-combobox__empty{padding:var(--spacing-3);font-size:var(--text-sm);color:var(--color-text-muted)}.z-combobox__description{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.z-combobox__error{font-size:var(--text-xs);color:var(--color-danger);margin:0}:root,[data-theme=light]{--font-sans:"Hanken Grotesk", Helvetica, Arial, sans-serif;--font-display:"Bricolage Grotesque", "Hanken Grotesk", sans-serif;--font-mono:"Azeret Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.0625rem;--text-2xl:1.375rem;--text-3xl:1.5rem;--text-4xl:1.875rem;--leading-normal:1.45;--leading-tight:1.15;--tracking-caps:.08em;--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--color-surface:#f4f8f5;--color-surface-raised:#e9f0eb;--color-surface-sunken:#e4ece6;--color-surface-overlay:#0e1a13cc;--color-text:#0e1a13;--color-text-muted:#3a4f43;--color-text-subtle:#54675c;--color-border:#d0dcd3;--color-border-strong:#b3c6b9;--color-primary:#1e6b3c;--color-primary-hover:#185a32;--color-primary-active:#124a28;--color-primary-soft:#d8ecdd;--color-primary-soft-hover:#c8e2cf;--color-primary-soft-foreground:#1e6b3c;--color-on-primary:#fff;--color-focus:#1e6b3c;--color-neutral:#22332a;--color-neutral-hover:#2f4438;--color-neutral-active:#0e1a13;--color-neutral-soft:#e9f0eb;--color-neutral-soft-hover:#d8ecdd;--color-neutral-soft-foreground:#0e1a13;--color-on-neutral:#fff;--color-success:#1e6b3c;--color-success-soft:#d8ecdd;--color-success-soft-foreground:#1e6b3c;--color-on-success:#fff;--color-warning:#8a6a12;--color-warning-soft:#f1e9c8;--color-warning-soft-foreground:#6b5210;--color-on-warning:#fff;--color-danger:#b4402c;--color-danger-hover:#9c3624;--color-danger-active:#7f2a1b;--color-danger-soft:#f4dcd7;--color-danger-soft-hover:#ecc9c2;--color-danger-soft-foreground:#8f3322;--color-on-danger:#fff;--color-text-faint:#6d7f75}[data-theme=dark]{--color-surface:#0d1a14;--color-surface-raised:#122119;--color-surface-sunken:#08120c;--color-surface-overlay:#08120ccc;--color-text:#e9f5ee;--color-text-muted:#a9c2b4;--color-text-subtle:#8aa596;--color-border:#1c2e25;--color-border-strong:#274536;--color-primary:#c8f542;--color-primary-hover:#d4f766;--color-primary-active:#9fcf2a;--color-primary-soft:#1a3326;--color-primary-soft-hover:#224030;--color-primary-soft-foreground:#c8f542;--color-on-primary:#08120c;--color-focus:#c8f542;--color-neutral:#c3d6cb;--color-neutral-hover:#d6e6dc;--color-neutral-active:#e9f5ee;--color-neutral-soft:#122119;--color-neutral-soft-hover:#1a3326;--color-neutral-soft-foreground:#e9f5ee;--color-on-neutral:#08120c;--color-success:#7fd9a2;--color-success-soft:#123324;--color-success-soft-foreground:#7fd9a2;--color-on-success:#08120c;--color-warning:#d9b85c;--color-warning-soft:#2a2812;--color-warning-soft-foreground:#e6c76b;--color-on-warning:#08120c;--color-danger:#ef8f8f;--color-danger-hover:#f4a3a3;--color-danger-active:#e07676;--color-danger-soft:#341c1c;--color-danger-soft-hover:#442424;--color-danger-soft-foreground:#ef8f8f;--color-on-danger:#08120c;--color-text-faint:#6c8878}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-surface:#0d1a14;--color-surface-raised:#122119;--color-surface-sunken:#08120c;--color-surface-overlay:#08120ccc;--color-text:#e9f5ee;--color-text-muted:#a9c2b4;--color-text-subtle:#8aa596;--color-border:#1c2e25;--color-border-strong:#274536;--color-primary:#c8f542;--color-primary-hover:#d4f766;--color-primary-active:#9fcf2a;--color-primary-soft:#1a3326;--color-primary-soft-hover:#224030;--color-primary-soft-foreground:#c8f542;--color-on-primary:#08120c;--color-focus:#c8f542;--color-neutral:#c3d6cb;--color-neutral-hover:#d6e6dc;--color-neutral-active:#e9f5ee;--color-neutral-soft:#122119;--color-neutral-soft-hover:#1a3326;--color-neutral-soft-foreground:#e9f5ee;--color-on-neutral:#08120c;--color-success:#7fd9a2;--color-success-soft:#123324;--color-success-soft-foreground:#7fd9a2;--color-on-success:#08120c;--color-warning:#d9b85c;--color-warning-soft:#2a2812;--color-warning-soft-foreground:#e6c76b;--color-on-warning:#08120c;--color-danger:#ef8f8f;--color-danger-hover:#f4a3a3;--color-danger-active:#e07676;--color-danger-soft:#341c1c;--color-danger-soft-hover:#442424;--color-danger-soft-foreground:#ef8f8f;--color-on-danger:#08120c;--color-text-faint:#6c8878}}.brand-mark{align-items:center;gap:var(--spacing-2);color:var(--color-text);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);letter-spacing:.02em;text-transform:uppercase;line-height:1;text-decoration:none;display:inline-flex}.brand-mark__logo{border-radius:var(--radius-md);object-fit:cover;width:32px;height:32px}.brand-mark__accent{color:var(--color-primary)}body{font-family:var(--font-sans);background-color:var(--color-surface-sunken);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}.shell *,.shell :before,.shell :after{box-sizing:border-box}.shell h1,.shell h2,.shell h3,.shell p{margin:0}.shell{grid-template-columns:12.5rem minmax(0,1fr);min-height:100vh;display:grid}@media (width<=64rem){.shell{grid-template-columns:minmax(0,1fr)}}.sidebar{gap:var(--spacing-6);height:100vh;padding:var(--spacing-6) var(--spacing-4);background-color:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;display:flex;position:sticky;top:0}@media (width<=64rem){.sidebar:not(.sidebar--sheet){display:none}}.sidebar--sheet{border:0;height:auto;padding:0;position:static}.nav__group{gap:var(--spacing-1);display:grid}.nav__group+.nav__group{margin-top:var(--spacing-4)}.nav__group-title{padding:0 var(--spacing-3);font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-regular);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint)}.nav__count{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-subtle);margin-left:auto}.brand{align-items:center;gap:var(--spacing-3);font-weight:var(--font-weight-semibold);display:flex}.brand__meta{line-height:var(--leading-tight);display:grid}.brand__meta small{font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.nav{gap:var(--spacing-1);display:grid}.nav__item{width:100%}.sidebar__foot{align-items:center;gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);margin-top:auto;display:flex}.sidebar__user{min-width:0;font-size:var(--text-sm);line-height:var(--leading-tight);flex:1;display:grid}.sidebar__user small{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:5;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-10);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;top:0}.topbar__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.topbar__search{width:16.25rem;margin-left:auto}.topbar__search .num{font-size:var(--text-xs);color:var(--color-text-faint)}@media (width<=52rem){.topbar__search{display:none}}.topbar__actions{align-items:center;gap:var(--spacing-2);display:flex}.topbar__menu{display:none}@media (width<=64rem){.topbar__menu{display:inline-flex}}.page{gap:var(--spacing-6);padding:var(--spacing-8) var(--spacing-10) var(--spacing-12);display:grid}@media (width<=52rem){.page{padding:var(--spacing-5) var(--spacing-4) var(--spacing-8)}}.page__head{justify-content:space-between;align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.page__head p{max-width:45rem;font-size:var(--text-sm);color:var(--color-text-muted);text-wrap:pretty}.page__head p+p{margin-top:var(--spacing-1)}.stats{gap:var(--spacing-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=64rem){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=40rem){.stats{grid-template-columns:minmax(0,1fr)}}.stat{gap:var(--spacing-2);display:grid}.stat__label{font-size:var(--text-sm);color:var(--color-text-muted)}.stat__row{justify-content:space-between;align-items:flex-end;gap:var(--spacing-3);display:flex}.stat__value{font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:var(--font-weight-regular);line-height:var(--leading-none);font-variant-numeric:tabular-nums}.stat__spark{width:6rem}.stat__delta{align-items:center;gap:var(--spacing-2);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.charts{gap:var(--spacing-4);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}@media (width<=64rem){.charts{grid-template-columns:minmax(0,1fr)}}.panel{gap:var(--spacing-4);display:grid}.panel__head{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.panel__head h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.panel__head p{font-size:var(--text-sm);color:var(--color-text-muted)}.who{align-items:center;gap:var(--spacing-3);display:flex}.who__text{min-width:0;line-height:var(--leading-tight);display:grid}.who__text small{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.muted{color:var(--color-text-muted)}.toolbar{align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.toolbar__search{width:16rem}.toolbar__filter{width:11rem}.toolbar__spacer{flex:1}.cell-spark{width:5rem}.pager{justify-content:space-between;align-items:center;gap:var(--spacing-3);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.pager__buttons{gap:var(--spacing-2);display:flex}.detail{gap:var(--spacing-4);display:grid}.detail__grid{gap:var(--spacing-3) var(--spacing-4);font-size:var(--text-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.detail__grid dt{color:var(--color-text-muted)}.detail__grid dd{font-weight:var(--font-weight-medium);margin:0}.billing{gap:var(--spacing-4);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}@media (width<=64rem){.billing{grid-template-columns:minmax(0,1fr)}}.plan{gap:var(--spacing-4);display:grid}.plan__price{font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.plan__price small{font-size:var(--text-sm);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.quotas{gap:var(--spacing-4);display:grid}.switches{gap:var(--spacing-3);display:grid}.settings{gap:var(--spacing-4);grid-template-columns:minmax(0,1fr);max-width:44rem;display:grid}.form{gap:var(--spacing-4);display:grid}.form__row{gap:var(--spacing-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=40rem){.form__row{grid-template-columns:minmax(0,1fr)}}.form__actions{justify-content:flex-end;gap:var(--spacing-2);display:flex}.danger{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.danger p{font-size:var(--text-sm);color:var(--color-text-muted)}.notifications{gap:var(--spacing-3);display:grid}.notifications__item{gap:var(--spacing-0);font-size:var(--text-sm);display:grid}.notifications__item small{font-size:var(--text-xs);color:var(--color-text-muted)}.section-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:var(--spacing-2);height:var(--spacing-2)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-primary)}.toolbar__filter--narrow{width:7rem}@media (width<=52rem){.jobs-narrow thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.jobs-narrow tbody tr{column-gap:var(--spacing-3);row-gap:var(--spacing-1);padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border);grid-template-columns:3rem minmax(0,1fr) auto;grid-template-areas:"score company pay""score role status""score where posted";display:grid}.jobs-narrow tbody td{border:0;min-width:0;padding:0;display:block}.jobs-narrow tbody td:first-child{font-weight:var(--font-weight-semibold);grid-area:score}.jobs-narrow tbody td:nth-child(2){font-weight:var(--font-weight-semibold);grid-area:company}.jobs-narrow tbody td:nth-child(3){grid-area:role}.jobs-narrow tbody td:nth-child(4){grid-area:pay;justify-self:end}.jobs-narrow tbody td:nth-child(5){grid-area:where}.jobs-narrow tbody td:nth-child(6){grid-area:posted;justify-self:end}.jobs-narrow tbody td:nth-child(7){grid-area:status;justify-self:end}.jobs-narrow tbody td[colspan]{grid-area:auto}.jobs-narrow .where{max-width:none}}.where{align-items:center;gap:var(--spacing-2);min-width:0;max-width:16rem;display:flex}.views{align-items:center;gap:var(--spacing-2);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.views__label{padding-right:var(--spacing-1);font-family:var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint);font-size:10px}.filters{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.filters__search{width:14rem}.filters__summary{justify-content:space-between;align-items:baseline;gap:var(--spacing-2) var(--spacing-5);font-size:var(--text-xs);color:var(--color-text-faint);flex-wrap:wrap;display:flex}.filters__query{overflow-wrap:anywhere;min-width:0}.filters__summary b{font-weight:var(--font-weight-regular);color:var(--color-text)}.filters__summary>span:first-child{align-items:center;gap:var(--spacing-3);display:inline-flex}.chip{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--text-xs);align-items:center;display:inline-flex;overflow:hidden}.chip--on{border-color:var(--color-primary)}.chip--default{border-style:dashed}.chip--current{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.chip>*+*{border-left:1px solid var(--color-border)}.chip__dot{border-radius:var(--radius-full);background-color:var(--color-border-strong);width:8px;height:8px;display:inline-block}.chip--on .chip__dot{background-color:var(--color-primary)}.chip__value{margin-left:var(--spacing-2);color:var(--color-text-muted)}.chip__editor{gap:var(--spacing-3);min-width:16rem;display:grid}.jobs-narrow thead th,.jobs-narrow thead th .col{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-regular);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint)}.shell--collapsed{grid-template-columns:3.5rem minmax(0,1fr)}.shell--collapsed .sidebar{padding-inline:var(--spacing-2);gap:var(--spacing-4)}.shell--collapsed .brand-mark{gap:0;font-size:0}.shell--collapsed .brand-mark__logo{width:32px;height:32px}.shell--collapsed .nav__group+.nav__group{margin-top:var(--spacing-3)}.sidebar__collapse{margin-left:auto}.shell--collapsed .sidebar__collapse{margin-left:0}.sheet-head{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4) var(--spacing-6);flex-wrap:wrap;display:flex}.sheet-head__main{gap:var(--spacing-2);min-width:0;display:grid}.sheet-head__meta{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0}.sheet-head h2{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;line-height:var(--leading-tight);margin:0}.sheet-head__side{justify-items:end;gap:var(--spacing-2);flex-shrink:0;display:grid}.sheet-head__links{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.split{gap:var(--spacing-8);grid-template-columns:minmax(0,1fr) 16rem;align-items:start;display:grid}@media (width<=52rem){.split{grid-template-columns:minmax(0,1fr)}}.reasons{border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.reasons__head{justify-content:space-between;align-items:baseline;gap:var(--spacing-4);padding-bottom:var(--spacing-3);font-size:var(--text-xs);display:flex}.reasons__fit{font-size:var(--text-2xl);color:var(--color-primary)}.reasons__fit small{font-size:var(--text-xs)}.reasons__row{gap:var(--spacing-4);padding:var(--spacing-3) 0;border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) 3.75rem;display:grid}.reasons__detail{font-size:var(--text-xs);color:var(--color-text-faint)}.reasons__pts{text-align:right;color:var(--color-primary)}.reasons__pts--neg{color:var(--color-danger)}.reasons__log{padding:var(--spacing-3) 0;border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-subtle)}.reasons__log summary{cursor:pointer}.split__aside{gap:var(--spacing-5);font-size:var(--text-xs);display:grid}.split__aside p{margin:var(--spacing-2) 0 0;color:var(--color-text-muted);line-height:var(--leading-normal)}.split__aside .small{font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere}.microlabel{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);font-size:10px}.people__list,.people__threads{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.people__row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);padding:var(--spacing-3) 0;border-top:1px solid var(--color-border);display:flex}.connections{gap:var(--spacing-2);display:grid}.connections__title{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--font-weight-semibold);margin:0}.mailsheet__facts{gap:var(--spacing-2) var(--spacing-4);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.mailsheet__facts dt{color:var(--color-text-subtle);font-size:var(--text-sm)}.mailsheet__facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.linkedin{gap:var(--spacing-4);display:grid}.linkedin__form{align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.linkedin__path{flex:24rem}.linkedin__preview{gap:var(--spacing-2);padding-top:var(--spacing-3);border-top:1px solid var(--color-border);display:grid}.people__row:last-child{border-bottom:1px solid var(--color-border)}.people__row>div:first-child{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.people__row .reasons__detail{flex-basis:100%}.people__threads li{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) 0;border-top:1px solid var(--color-border);display:flex}.people__thread{color:var(--color-text);text-decoration:none}.people__thread:hover{color:var(--color-primary)}.people__add{gap:var(--spacing-3);padding-top:var(--spacing-2);display:grid}.preview-doc{max-width:46rem;padding:var(--spacing-2) 0}.variants__foot{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-xs);margin:0}.settings__h{margin:0 0 var(--spacing-1);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.sidebar__legal{color:var(--color-text-faint);text-decoration:none}.sidebar__legal:hover{color:var(--color-text)}.mailstrip{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.mailstrip>span{align-items:center;gap:var(--spacing-2);display:inline-flex}.copy{gap:var(--spacing-3);width:min(26rem, calc(100vw - var(--spacing-8)));min-width:0;display:grid}.copy__groups{gap:var(--spacing-3);max-height:min(24rem,100vh - 14rem);display:grid;overflow:hidden auto}.copy__group{gap:var(--spacing-1);display:grid}.copy__row{width:100%;min-width:0;max-width:100%}.copy__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:60%;font-weight:var(--font-weight-regular);flex:0 auto;overflow:hidden}.copy__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-xs);color:var(--color-text-subtle);margin-left:auto;overflow:hidden}.copy__empty{padding:var(--spacing-2);margin:0}.copy__foot{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding-top:var(--spacing-2);border-top:1px solid var(--color-border);font-size:var(--text-xs);display:flex}.copy__rows{gap:var(--spacing-4);display:grid}.copy__edit{gap:var(--spacing-2);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border);display:grid}.copy__edit-actions{justify-content:flex-end;gap:var(--spacing-1);display:flex}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.today__date{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:-.015em;line-height:var(--leading-tight);margin:0}.today__figures{gap:var(--spacing-8);flex-wrap:wrap;display:flex}.today__figure{gap:var(--spacing-1);display:grid}.today__figure b{font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:var(--font-weight-regular);line-height:var(--leading-none)}.today__figure b[data-tone=danger]{color:var(--color-danger)}.today__figure small{font-size:var(--text-sm);color:var(--color-text-subtle)}.today__hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);margin-left:auto}.today__section-head{align-items:baseline;gap:var(--spacing-3);display:flex}.sidebar__foot{font-size:var(--text-sm);color:var(--color-text-faint);line-height:var(--leading-normal)}.preview{gap:var(--spacing-4);margin-top:var(--spacing-3);display:grid}.preview__block h3{font-size:var(--text-sm);margin-bottom:var(--spacing-2)}.preview__list{gap:var(--spacing-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.preview__score{font-variant-numeric:tabular-nums;min-width:5.5rem;color:var(--color-text-muted);display:inline-block}.import-results{margin:var(--spacing-3) 0 0;gap:var(--spacing-2);font-size:var(--text-sm);padding:0;list-style:none;display:grid}.import-results li{align-items:baseline;gap:var(--spacing-2);display:flex}.import-results__row{align-items:baseline;gap:var(--spacing-2);flex-wrap:wrap;display:inline-flex}.toolbar__switch{align-self:flex-end;margin-block-end:var(--spacing-2)}.toolbar__filter--wide{width:22rem;max-width:100%}.loading{padding:var(--spacing-6)}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.clamp{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:18rem;display:inline-block;overflow:hidden}.chips{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.detail__actions{align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.steps{gap:var(--spacing-3);max-width:52rem;display:grid}.step{gap:var(--spacing-4);align-items:flex-start;display:flex}.step__mark{width:var(--spacing-8);height:var(--spacing-8);color:var(--color-primary);background-color:var(--color-primary-soft);border-radius:var(--radius-full);flex:none;justify-content:center;align-items:center;display:inline-flex}.step__n{font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}.step__body{gap:var(--spacing-2);flex:1;min-width:0;display:grid}.step__label{font-weight:var(--font-weight-semibold)}.step__row{gap:var(--spacing-3);flex-wrap:wrap;align-items:flex-end;display:flex}.step__row>:first-child{flex:1;min-width:16rem}.form__actions--start{justify-content:flex-start}.kcard{gap:var(--spacing-1);cursor:grab;display:grid}.kcard:active{cursor:grabbing}.kcard__head{justify-content:space-between;align-items:center;gap:var(--spacing-2);display:flex}.kcard__company{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-regular);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.06em}.kcard__title{font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:1.35}.kcard__meta{gap:var(--spacing-2);margin-top:var(--spacing-1);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.kcard__score{color:var(--color-text-subtle)}.kcard__pay{color:var(--color-text-muted)}.kcard__pay--floor{color:var(--color-primary)}.today__section{gap:var(--spacing-3);margin-bottom:var(--spacing-6);display:grid}.today__heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--color-text);margin:0}.today__subheading{margin:0 0 var(--spacing-1);font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.today__cols{gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));align-items:start;display:grid}.today__cols>*,.today__list>li,.today__row{min-width:0}.today__actions{gap:var(--spacing-2);justify-content:flex-end;display:flex}.today__list{gap:var(--spacing-1);margin:var(--spacing-3) 0 0;padding:0;list-style:none;display:grid}.today__row{width:100%;overflow:hidden}.today__row-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.packet__state{gap:var(--spacing-1);padding:var(--spacing-3);background-color:var(--color-surface-sunken);border-radius:var(--radius-md);justify-items:start;display:grid}.packet__field{gap:var(--spacing-1);display:grid}.letter__options{gap:var(--spacing-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.letter__meta{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.letter__warnings{gap:var(--spacing-2);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.letter__warnings li{gap:var(--spacing-2);align-items:flex-start;display:flex}.resume-preview{max-height:60vh;padding:var(--spacing-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto}.z-table__row[data-posted]>td:first-child{box-shadow:inset 3px 0 0 var(--color-primary)}.z-table__row[data-posted]{background-color:color-mix(in srgb, var(--color-primary) 6%, transparent)}.kcard[data-posted]{border-left:3px solid var(--color-primary);background-color:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface-raised))}.posted-co{align-items:center;gap:var(--spacing-2);min-width:0;display:inline-flex}.posted__glyph{width:12px;height:12px;margin-right:var(--spacing-1);border-radius:var(--radius-sm);display:inline-block}.health{gap:var(--spacing-1);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.jobs{gap:var(--spacing-6);min-width:0;display:grid}.jobs--split{--tj-topbar:3.5625rem;margin:calc(var(--spacing-8) * -1) calc(var(--spacing-10) * -1) calc(var(--spacing-12) * -1);grid-template-columns:minmax(18.75rem,23.75rem) minmax(0,1fr);align-items:start;gap:0}.jobs__list{top:var(--tj-topbar);align-content:start;gap:var(--spacing-4);max-height:calc(100vh - var(--tj-topbar));padding:var(--spacing-5) var(--spacing-5) var(--spacing-12);border-right:1px solid var(--color-border);display:grid;position:sticky;overflow-y:auto}.jobs__detail{top:var(--tj-topbar);height:calc(100vh - var(--tj-topbar));padding:var(--spacing-5) var(--spacing-8) var(--spacing-12);position:sticky;overflow-y:auto;container-type:inline-size}@container (width<=38.75rem){.split{grid-template-columns:minmax(0,1fr)}}.ctools{gap:var(--spacing-2);display:grid}.ctools__row{align-items:center;gap:var(--spacing-2);display:flex}.ctools__row>.z-field{flex:1;min-width:0}.ctools__meta{font-size:var(--text-xs);color:var(--color-text-subtle);justify-content:space-between}.ctools__meta b{color:var(--color-text);font-weight:var(--font-weight-semibold)}.clist{border-top:1px solid var(--color-border);display:grid}.clist .clist__item{gap:var(--spacing-3);height:auto;padding:var(--spacing-3) var(--spacing-3);border-bottom:1px solid var(--color-border);text-align:left;white-space:normal;border-radius:0;grid-template-columns:2.75rem minmax(0,1fr);display:grid}.clist .clist__item[aria-current=true]{background-color:var(--color-surface-sunken);box-shadow:inset 3px 0 0 var(--color-primary)}.clist .clist__item[data-posted]{background-color:color-mix(in srgb, var(--color-primary) 6%, transparent)}.clist__score{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.clist__text{gap:var(--spacing-1);min-width:0;display:grid}.clist__role{font-weight:var(--font-weight-medium);line-height:var(--leading-tight);color:var(--color-text)}.clist__meta{font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.clist__pay--floor{color:var(--color-primary)}.clist__pager{justify-content:space-between;align-items:center;gap:var(--spacing-2);padding-top:var(--spacing-3);font-size:var(--text-xs);display:flex}.sheet-nav{align-items:center;gap:var(--spacing-1);display:flex}.sheet-nav__count{padding-left:var(--spacing-2);font-size:var(--text-xs);color:var(--color-text-subtle)}.sheet-nav .sheet-nav__close{margin-left:auto}.sheet-head__title{margin:0}@media (width<=40rem){.shell--strip .sidebar:not(.sidebar--sheet){align-items:center;gap:var(--spacing-2);z-index:6;height:auto;padding:var(--spacing-2) var(--spacing-3);border-right:0;border-bottom:1px solid var(--color-border);scrollbar-width:none;flex-direction:row;display:flex;position:sticky;top:0;overflow-x:auto}.shell--strip .sidebar::-webkit-scrollbar{display:none}.shell--strip .brand-mark{gap:0;font-size:0}.shell--strip .brand-mark__logo{width:28px;height:28px}.shell--strip .nav,.shell--strip .nav__group{gap:var(--spacing-1);display:flex}.shell--strip .nav__group+.nav__group{margin:0 0 0 var(--spacing-1);padding-left:var(--spacing-2);border-left:1px solid var(--color-border)}.shell--strip .nav__item{width:auto}.shell--strip .topbar__menu{display:none}}.runs__outcome{gap:var(--spacing-1);justify-items:start;display:grid}.runs__outcome small{font-size:var(--text-xs)}.runs__live{align-items:center;gap:var(--spacing-2);display:inline-flex}.runs__problems{gap:var(--spacing-1);margin:0 0 var(--spacing-2);padding-left:var(--spacing-5);font-size:var(--text-xs);display:grid}.funnel__bar{width:100%;min-width:6rem;height:var(--spacing-2);border-radius:var(--radius-full);background-color:var(--color-surface-sunken);overflow:hidden}.funnel__bar span{border-radius:inherit;background-color:var(--color-primary);height:100%;display:block}.panel--pad{padding:var(--spacing-4) var(--spacing-4) 0}p.panel--pad,.chips.panel--pad{padding-bottom:var(--spacing-4)}.impact{align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--color-border);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.impact--after{color:var(--color-text-muted)}.summary__list{gap:var(--spacing-2);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}
1
+ :root,[data-theme=light]{--color-surface:#fff;--color-surface-raised:#f8fafc;--color-surface-sunken:#f1f5f9;--color-surface-overlay:#0f172acc;--color-text:#0f172a;--color-text-muted:#475569;--color-text-subtle:#94a3b8;--color-text-faint:#94a3b8;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-active:#1e40af;--color-primary-soft:#dbeafe;--color-primary-soft-hover:#bfdbfe;--color-primary-soft-foreground:#1e40af;--color-on-primary:#fff;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-active:#991b1b;--color-danger-soft:#fee2e2;--color-danger-soft-hover:#fecaca;--color-danger-soft-foreground:#991b1b;--color-on-danger:#fff;--color-success:#15803d;--color-success-soft:#dcfce7;--color-success-soft-foreground:#166534;--color-on-success:#fff;--color-warning:#b45309;--color-warning-soft:#fef3c7;--color-warning-soft-foreground:#92400e;--color-on-warning:#fff;--color-neutral:#334155;--color-neutral-hover:#1e293b;--color-neutral-active:#0f172a;--color-neutral-soft:#e2e8f0;--color-neutral-soft-hover:#cbd5e1;--color-neutral-soft-foreground:#0f172a;--color-on-neutral:#fff;--color-focus:#3b82f6;--color-outline:#0000;--spacing-0:0px;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-8:32px;--spacing-10:40px;--spacing-12:48px;--spacing-16:64px;--spacing-20:80px;--spacing-24:96px;--spacing-32:128px;--radius-none:0px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:16px;--radius-full:9999px;--border-width:1px;--shadow-sm:0 1px 2px 0 #0f172a0f;--shadow-md:0 4px 8px -2px #0f172a1a, 0 2px 4px -2px #0f172a0f;--shadow-lg:0 12px 24px -6px #0f172a29, 0 4px 8px -4px #0f172a14;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-display:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--leading-normal:1.5;--leading-none:1.05;--tracking-tighter:-.03em;--tracking-tight:-.02em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.04em;--tracking-wider:.06em;--tracking-widest:.08em;--tracking-caps:.14em;--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.32s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-emphasized:cubic-bezier(.3, 0, 0, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--breakpoint-sm:40rem;--breakpoint-md:52rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem}[data-theme=dark]{--color-surface:#0f172a;--color-surface-raised:#1e293b;--color-surface-sunken:#020617;--color-surface-overlay:#020617cc;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-subtle:#64748b;--color-text-faint:#64748b;--color-border:#1e293b;--color-border-strong:#334155;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-active:#93c5fd;--color-primary-soft:#1e3a8a;--color-primary-soft-hover:#1e40af;--color-primary-soft-foreground:#93c5fd;--color-on-primary:#0f172a;--color-danger:#ef4444;--color-danger-hover:#f87171;--color-danger-active:#fca5a5;--color-danger-soft:#7f1d1d;--color-danger-soft-hover:#991b1b;--color-danger-soft-foreground:#fca5a5;--color-on-danger:#0f172a;--color-success:#22c55e;--color-success-soft:#14532d;--color-success-soft-foreground:#86efac;--color-on-success:#0f172a;--color-warning:#f59e0b;--color-warning-soft:#78350f;--color-warning-soft-foreground:#fcd34d;--color-on-warning:#0f172a;--color-neutral:#cbd5e1;--color-neutral-hover:#e2e8f0;--color-neutral-active:#f1f5f9;--color-neutral-soft:#334155;--color-neutral-soft-hover:#475569;--color-neutral-soft-foreground:#f1f5f9;--color-on-neutral:#0f172a;--color-focus:#60a5fa}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-surface:#0f172a;--color-surface-raised:#1e293b;--color-surface-sunken:#020617;--color-surface-overlay:#020617cc;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-subtle:#64748b;--color-text-faint:#64748b;--color-border:#1e293b;--color-border-strong:#334155;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-active:#93c5fd;--color-primary-soft:#1e3a8a;--color-primary-soft-hover:#1e40af;--color-primary-soft-foreground:#93c5fd;--color-on-primary:#0f172a;--color-danger:#ef4444;--color-danger-hover:#f87171;--color-danger-active:#fca5a5;--color-danger-soft:#7f1d1d;--color-danger-soft-hover:#991b1b;--color-danger-soft-foreground:#fca5a5;--color-on-danger:#0f172a;--color-success:#22c55e;--color-success-soft:#14532d;--color-success-soft-foreground:#86efac;--color-on-success:#0f172a;--color-warning:#f59e0b;--color-warning-soft:#78350f;--color-warning-soft-foreground:#fcd34d;--color-on-warning:#0f172a;--color-neutral:#cbd5e1;--color-neutral-hover:#e2e8f0;--color-neutral-active:#f1f5f9;--color-neutral-soft:#334155;--color-neutral-soft-hover:#475569;--color-neutral-soft-foreground:#f1f5f9;--color-on-neutral:#0f172a;--color-focus:#60a5fa}}.z-button,.z-badge,.z-card,.z-field,.z-checkbox,.z-dialog,.z-tooltip,.z-tabs,.z-select,.z-switch,.z-toast,.z-menu,.z-table,.z-avatar,.z-skeleton,.z-sheet,.z-popover,.z-progress,.z-separator,.z-textarea,.z-chart,.z-sparkline,.z-markdown,.z-codeblock,.z-conversation,.z-message,.z-prompt,.z-reasoning,.z-toolcall,.z-sources,.z-suggestions,.z-loader{box-sizing:border-box;font-family:var(--font-sans);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}.z-button *,.z-card *,.z-field *,.z-checkbox *,.z-dialog *,.z-tabs *,.z-select *,.z-switch *,.z-toast *,.z-menu *,.z-table *,.z-avatar *,.z-skeleton *,.z-sheet *,.z-popover *,.z-progress *,.z-separator *,.z-textarea *,.z-chart *,.z-markdown *,.z-codeblock *,.z-conversation *,.z-message *,.z-prompt *,.z-reasoning *,.z-toolcall *,.z-sources *,.z-suggestions *,.z-loader *{box-sizing:border-box}.z-focusable:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.z-focusable:focus:not(:focus-visible){outline:none}.z-icon{flex:none;width:1em;height:1em;display:inline-flex}.z-icon>svg{width:100%;height:100%}.z-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.z-chart{width:100%;color:var(--color-text);font-family:var(--font-sans);position:relative}.z-chart__svg{touch-action:none;width:100%;display:block;overflow:visible}.z-chart__grid{stroke:var(--color-border);stroke-width:1px}.z-chart__tick{fill:var(--color-text-subtle);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.z-chart__line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.z-chart__area{fill-opacity:.12}.z-chart__bar{transition:opacity var(--duration-fast) var(--ease-standard)}.z-chart__cursor line{stroke:var(--color-border-strong);stroke-dasharray:3 3}.z-chart__cursor circle{stroke:var(--color-surface);stroke-width:2px}[data-tone=primary]>.z-chart__line,[data-tone=primary]>.z-chart__bar,circle[data-tone=primary]{stroke:var(--color-primary)}[data-tone=success]>.z-chart__line,[data-tone=success]>.z-chart__bar,circle[data-tone=success]{stroke:var(--color-success)}[data-tone=warning]>.z-chart__line,[data-tone=warning]>.z-chart__bar,circle[data-tone=warning]{stroke:var(--color-warning)}[data-tone=danger]>.z-chart__line,[data-tone=danger]>.z-chart__bar,circle[data-tone=danger]{stroke:var(--color-danger)}[data-tone=neutral]>.z-chart__line,[data-tone=neutral]>.z-chart__bar,circle[data-tone=neutral]{stroke:var(--color-neutral)}[data-tone=primary]>.z-chart__area,[data-tone=primary]>.z-chart__bar,circle[data-tone=primary],[data-tone=primary]>.z-chart__swatch{fill:var(--color-primary);background-color:var(--color-primary)}[data-tone=success]>.z-chart__area,[data-tone=success]>.z-chart__bar,circle[data-tone=success],[data-tone=success]>.z-chart__swatch{fill:var(--color-success);background-color:var(--color-success)}[data-tone=warning]>.z-chart__area,[data-tone=warning]>.z-chart__bar,circle[data-tone=warning],[data-tone=warning]>.z-chart__swatch{fill:var(--color-warning);background-color:var(--color-warning)}[data-tone=danger]>.z-chart__area,[data-tone=danger]>.z-chart__bar,circle[data-tone=danger],[data-tone=danger]>.z-chart__swatch{fill:var(--color-danger);background-color:var(--color-danger)}[data-tone=neutral]>.z-chart__area,[data-tone=neutral]>.z-chart__bar,circle[data-tone=neutral],[data-tone=neutral]>.z-chart__swatch{fill:var(--color-neutral);background-color:var(--color-neutral)}.z-chart__bar{stroke:none}.z-chart__readout{top:var(--spacing-2);z-index:1;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-xs);line-height:var(--leading-tight);white-space:nowrap;pointer-events:none;display:grid;position:absolute}.z-chart__readout[data-side=right]{transform:translateX(var(--spacing-3))}.z-chart__readout[data-side=left]{transform:translateX(calc(-100% - var(--spacing-3)))}.z-chart__readout-label{color:var(--color-text-muted)}.z-chart__readout-row{align-items:center;gap:var(--spacing-2);display:flex}.z-chart__readout-row strong{font-variant-numeric:tabular-nums;margin-left:auto}.z-chart__swatch{width:var(--spacing-2);height:var(--spacing-2);border-radius:var(--radius-full);display:inline-block}.z-chart__legend{gap:var(--spacing-1) var(--spacing-4);margin:var(--spacing-2) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.z-chart__legend li{align-items:center;gap:var(--spacing-2);display:inline-flex}@media (prefers-reduced-motion:reduce){.z-chart__bar{transition-duration:0s}}.z-enter-fade{animation:z-enter-fade var(--duration-normal) var(--ease-standard) both}.z-enter-rise{animation:z-enter-rise var(--duration-slow) var(--ease-emphasized) both}.z-enter-scale{animation:z-enter-scale var(--duration-normal) var(--ease-emphasized) both}.z-stagger>*{animation:z-enter-rise var(--duration-slow) var(--ease-emphasized) both}.z-stagger>:first-child{animation-delay:0s}.z-stagger>:nth-child(2){animation-delay:calc(var(--duration-fast) * .5)}.z-stagger>:nth-child(3){animation-delay:calc(var(--duration-fast) * 1)}.z-stagger>:nth-child(4){animation-delay:calc(var(--duration-fast) * 1.5)}.z-stagger>:nth-child(5){animation-delay:calc(var(--duration-fast) * 2)}.z-stagger>:nth-child(6){animation-delay:calc(var(--duration-fast) * 2.5)}.z-stagger>:nth-child(7){animation-delay:calc(var(--duration-fast) * 3)}.z-stagger>:nth-child(8){animation-delay:calc(var(--duration-fast) * 3.5)}.z-stagger>:nth-child(9){animation-delay:calc(var(--duration-fast) * 4)}.z-stagger>:nth-child(10){animation-delay:calc(var(--duration-fast) * 4.5)}.z-stagger>:nth-child(11){animation-delay:calc(var(--duration-fast) * 5)}.z-stagger>:nth-child(12){animation-delay:calc(var(--duration-fast) * 5.5)}@keyframes z-enter-fade{0%{opacity:0}to{opacity:1}}@keyframes z-enter-rise{0%{opacity:0;transform:translateY(var(--spacing-2))}to{opacity:1;transform:translateY(0)}}@keyframes z-enter-scale{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.z-enter-rise,.z-enter-scale,.z-stagger>*{animation-name:z-enter-fade;animation-duration:var(--duration-fast);animation-delay:0s}}.z-avatar{background-color:var(--color-neutral-soft);color:var(--color-neutral-soft-foreground);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none;vertical-align:middle;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative;overflow:hidden}.z-avatar[data-shape=circle]{border-radius:var(--radius-full)}.z-avatar[data-shape=square]{border-radius:var(--radius-md)}.z-avatar[data-size=sm]{width:1.5rem;height:1.5rem;font-size:var(--text-xs)}.z-avatar[data-size=md]{width:2rem;height:2rem;font-size:var(--text-xs)}.z-avatar[data-size=lg]{width:2.5rem;height:2.5rem;font-size:var(--text-sm)}.z-avatar[data-size=xl]{width:4rem;height:4rem;font-size:var(--text-xl)}.z-avatar__image{object-fit:cover;width:100%;height:100%}.z-avatar__fallback{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.z-badge{align-items:center;gap:var(--spacing-1);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;display:inline-flex}.z-badge[data-size=sm]{padding:var(--spacing-0) var(--spacing-2);font-size:var(--text-xs)}.z-badge[data-size=md]{padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-sm)}.z-badge[data-variant=soft][data-tone=neutral]{background-color:var(--color-neutral-soft);color:var(--color-neutral-soft-foreground)}.z-badge[data-variant=soft][data-tone=primary]{background-color:var(--color-primary-soft);color:var(--color-primary-soft-foreground)}.z-badge[data-variant=soft][data-tone=danger]{background-color:var(--color-danger-soft);color:var(--color-danger-soft-foreground)}.z-badge[data-variant=soft][data-tone=success]{background-color:var(--color-success-soft);color:var(--color-success-soft-foreground)}.z-badge[data-variant=soft][data-tone=warning]{background-color:var(--color-warning-soft);color:var(--color-warning-soft-foreground)}.z-badge[data-variant=solid][data-tone=neutral]{background-color:var(--color-neutral);color:var(--color-on-neutral)}.z-badge[data-variant=solid][data-tone=primary]{background-color:var(--color-primary);color:var(--color-on-primary)}.z-badge[data-variant=solid][data-tone=danger]{background-color:var(--color-danger);color:var(--color-on-danger)}.z-badge[data-variant=solid][data-tone=success]{background-color:var(--color-success);color:var(--color-on-success)}.z-badge[data-variant=solid][data-tone=warning]{background-color:var(--color-warning);color:var(--color-on-warning)}.z-badge[data-variant=outline]{background-color:#0000}.z-badge[data-variant=outline][data-tone=neutral]{border-color:var(--color-border-strong);color:var(--color-text-muted)}.z-badge[data-variant=outline][data-tone=primary]{border-color:var(--color-primary);color:var(--color-primary)}.z-badge[data-variant=outline][data-tone=danger]{border-color:var(--color-danger);color:var(--color-danger)}.z-badge[data-variant=outline][data-tone=success]{border-color:var(--color-success);color:var(--color-success)}.z-badge[data-variant=outline][data-tone=warning]{border-color:var(--color-warning);color:var(--color-warning)}.z-chart[data-kind=bar] .z-chart__group:hover .z-chart__bar,.z-chart[data-kind=bar] .z-chart__group[data-hover] .z-chart__bar{opacity:.8}.z-button{justify-content:center;align-items:center;gap:var(--spacing-2);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);text-decoration:none;display:inline-flex;position:relative}.z-button[data-align=center]{justify-content:center}.z-button[data-align=start]{justify-content:flex-start}.z-button[data-size=sm]{min-height:2rem;padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-sm)}.z-button[data-size=md]{min-height:2.5rem;padding:var(--spacing-2) var(--spacing-4);font-size:var(--text-sm)}.z-button[data-size=lg]{min-height:3rem;padding:var(--spacing-3) var(--spacing-5);font-size:var(--text-base)}.z-button[data-variant=solid][data-tone=neutral]{background-color:var(--color-neutral);color:var(--color-on-neutral)}.z-button[data-variant=solid][data-tone=neutral]:hover{background-color:var(--color-neutral-hover)}.z-button[data-variant=solid][data-tone=neutral]:active{background-color:var(--color-neutral-active)}.z-button[data-variant=solid][data-tone=primary]{background-color:var(--color-primary);color:var(--color-on-primary)}.z-button[data-variant=solid][data-tone=primary]:hover{background-color:var(--color-primary-hover)}.z-button[data-variant=solid][data-tone=primary]:active{background-color:var(--color-primary-active)}.z-button[data-variant=solid][data-tone=danger]{background-color:var(--color-danger);color:var(--color-on-danger)}.z-button[data-variant=solid][data-tone=danger]:hover{background-color:var(--color-danger-hover)}.z-button[data-variant=solid][data-tone=danger]:active{background-color:var(--color-danger-active)}.z-button[data-variant=soft][data-tone=neutral]{background-color:var(--color-neutral-soft);color:var(--color-neutral-soft-foreground)}.z-button[data-variant=soft][data-tone=neutral]:hover{background-color:var(--color-neutral-soft-hover)}.z-button[data-variant=soft][data-tone=primary]{background-color:var(--color-primary-soft);color:var(--color-primary-soft-foreground)}.z-button[data-variant=soft][data-tone=primary]:hover{background-color:var(--color-primary-soft-hover)}.z-button[data-variant=soft][data-tone=danger]{background-color:var(--color-danger-soft);color:var(--color-danger-soft-foreground)}.z-button[data-variant=soft][data-tone=danger]:hover{background-color:var(--color-danger-soft-hover)}.z-button[data-variant=ghost]{background-color:#0000}.z-button[data-variant=ghost][data-tone=neutral]{color:var(--color-text)}.z-button[data-variant=ghost][data-tone=neutral]:hover{background-color:var(--color-neutral-soft)}.z-button[data-variant=ghost][data-tone=primary]{color:var(--color-primary)}.z-button[data-variant=ghost][data-tone=primary]:hover{background-color:var(--color-primary-soft)}.z-button[data-variant=ghost][data-tone=danger]{color:var(--color-danger)}.z-button[data-variant=ghost][data-tone=danger]:hover{background-color:var(--color-danger-soft)}.z-button[data-variant=link]{border-radius:var(--radius-sm);background-color:#0000;min-height:0;padding:0}.z-button[data-variant=link][data-tone=neutral]{color:var(--color-text)}.z-button[data-variant=link][data-tone=primary]{color:var(--color-primary)}.z-button[data-variant=link][data-tone=danger]{color:var(--color-danger)}.z-button[data-variant=link]:hover{text-underline-offset:.2em;text-decoration:underline}.z-button:not([data-variant=link]):active:not([data-disabled]){transform:translateY(1px)}.z-button[data-disabled]{cursor:not-allowed;opacity:.55;transform:none}.z-button[data-loading] .z-button__label{visibility:hidden}.z-button__spinner{justify-content:center;align-items:center;display:inline-flex;position:absolute;inset:0}.z-button__spinner>svg{width:1.125em;height:1.125em;animation:z-spin var(--duration-slow) linear infinite;animation-duration:.8s}@keyframes z-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.z-button{transition-duration:0s}.z-button:active{transform:none}.z-button__spinner>svg{animation-duration:1.6s}}.z-card{background-color:var(--color-surface);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-lg);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-normal) var(--ease-standard);flex-direction:column;display:flex}.z-card[data-variant=outlined]{border-color:var(--color-border)}.z-card[data-variant=elevated]{box-shadow:var(--shadow-md)}.z-card[data-variant=sunken]{background-color:var(--color-surface-sunken)}.z-card[data-padding=none]{padding:var(--spacing-0)}.z-card[data-padding=sm]{padding:var(--spacing-3)}.z-card[data-padding=md]{padding:var(--spacing-4)}.z-card[data-padding=lg]{padding:var(--spacing-6)}.z-card:has(>.z-card__header,>.z-card__body,>.z-card__footer){padding:0}.z-card[data-padding=sm]>.z-card__header,.z-card[data-padding=sm]>.z-card__body,.z-card[data-padding=sm]>.z-card__footer{padding:var(--spacing-3)}.z-card[data-padding=md]>.z-card__header,.z-card[data-padding=md]>.z-card__body,.z-card[data-padding=md]>.z-card__footer{padding:var(--spacing-4)}.z-card[data-padding=lg]>.z-card__header,.z-card[data-padding=lg]>.z-card__body,.z-card[data-padding=lg]>.z-card__footer{padding:var(--spacing-6)}.z-card__header{align-items:center;gap:var(--spacing-3);border-bottom:var(--border-width) solid var(--color-border);font-weight:var(--font-weight-semibold);display:flex}.z-card__body{flex:1}.z-card__footer{justify-content:flex-end;align-items:center;gap:var(--spacing-2);border-top:var(--border-width) solid var(--color-border);background-color:var(--color-surface-raised);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;display:flex}.z-card[data-interactive]{cursor:pointer}.z-card[data-interactive]:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.z-card[data-interactive][data-variant=elevated]:hover{box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){.z-card{transition-duration:0s}.z-card[data-interactive]:hover{transform:none}}.z-dialog__overlay{z-index:50;background-color:var(--color-surface-overlay);animation:z-dialog-fade-in var(--duration-slow) var(--ease-standard);position:fixed;inset:0}.z-dialog__overlay[data-state=closed]{animation:z-dialog-fade-out var(--duration-normal) var(--ease-exit)}.z-dialog{z-index:51;gap:var(--spacing-3);width:calc(100vw - var(--spacing-8));max-height:calc(100vh - var(--spacing-8));background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--color-text);animation:z-dialog-enter var(--duration-slow) var(--ease-emphasized);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.z-dialog[data-state=closed]{animation:z-dialog-exit var(--duration-normal) var(--ease-exit)}.z-dialog:focus{outline:none}.z-dialog[data-size=sm]{max-width:24rem;padding:var(--spacing-5)}.z-dialog[data-size=md]{max-width:32rem;padding:var(--spacing-6)}.z-dialog[data-size=lg]{max-width:48rem;padding:var(--spacing-8)}.z-dialog__title{padding-right:var(--spacing-8);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.z-dialog__description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.z-dialog__footer{justify-content:flex-end;gap:var(--spacing-2);margin-top:var(--spacing-2);flex-wrap:wrap;display:flex}.z-dialog__close{top:var(--spacing-3);right:var(--spacing-3);border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.z-dialog__close>svg{width:1rem;height:1rem}.z-dialog__close:hover{background-color:var(--color-neutral-soft);color:var(--color-text)}@keyframes z-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes z-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes z-dialog-enter{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes z-dialog-exit{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-48%)scale(.98)}}@media (prefers-reduced-motion:reduce){.z-dialog{animation:z-dialog-fade-in var(--duration-normal) var(--ease-standard)}.z-dialog[data-state=closed]{animation:z-dialog-fade-out var(--duration-fast) var(--ease-exit)}.z-dialog__close{transition-duration:0s}}.z-chart[data-kind=line] .z-chart__svg{cursor:crosshair}.z-menu{z-index:60;min-width:11rem;max-height:var(--radix-dropdown-menu-content-available-height);padding:var(--spacing-1);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--text-sm);transform-origin:var(--radix-dropdown-menu-content-transform-origin);animation:z-menu-enter var(--duration-fast) var(--ease-standard);overflow:auto}.z-menu[data-state=closed]{animation:z-menu-exit var(--duration-fast) var(--ease-exit)}.z-menu__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);line-height:var(--leading-tight);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex;position:relative}.z-menu__item--check{padding-left:var(--spacing-8)}.z-menu__item[data-highlighted]{background-color:var(--color-neutral-soft)}.z-menu__item[data-tone=danger]{color:var(--color-danger)}.z-menu__item[data-tone=danger][data-highlighted]{background-color:var(--color-danger-soft);color:var(--color-danger-soft-foreground)}.z-menu__item[data-disabled]{color:var(--color-text-subtle);cursor:not-allowed}.z-menu__icon{color:var(--color-text-muted)}.z-menu__item[data-tone=danger] .z-menu__icon{color:inherit}.z-menu__text{flex:1;min-width:0}.z-menu__shortcut{margin-left:var(--spacing-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-subtle)}.z-menu__indicator{left:var(--spacing-3);width:1rem;height:1rem;color:var(--color-primary);display:inline-flex;position:absolute}.z-menu__indicator>svg{width:100%;height:100%}.z-menu__label{padding:var(--spacing-2) var(--spacing-3) var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.z-menu__separator{height:1px;margin:var(--spacing-1) 0;background-color:var(--color-border)}@keyframes z-menu-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes z-menu-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-menu,.z-menu[data-state=closed]{animation:none}}.z-popover{z-index:60;background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal);transform-origin:var(--radix-popover-content-transform-origin);animation:z-popover-enter var(--duration-normal) var(--ease-emphasized)}.z-popover[data-state=closed]{animation:z-popover-exit var(--duration-fast) var(--ease-exit)}.z-popover:focus{outline:none}.z-popover[data-size=sm]{width:16rem;padding:var(--spacing-3)}.z-popover[data-size=md]{width:20rem;padding:var(--spacing-4)}.z-popover[data-size=lg]{width:28rem;padding:var(--spacing-5)}.z-popover__arrow{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1px}@keyframes z-popover-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes z-popover-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-popover,.z-popover[data-state=closed]{animation:none}}.z-progress{gap:var(--spacing-1);width:100%;color:var(--color-text);display:grid}.z-progress__head{justify-content:space-between;gap:var(--spacing-3);font-size:var(--text-sm);line-height:var(--leading-tight);display:flex}.z-progress__label{font-weight:var(--font-weight-medium)}.z-progress__value{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.z-progress__track{background-color:var(--color-neutral-soft);border-radius:var(--radius-full);width:100%;position:relative;overflow:hidden}.z-progress[data-size=sm] .z-progress__track{height:var(--spacing-1)}.z-progress[data-size=md] .z-progress__track{height:var(--spacing-2)}.z-progress__indicator{border-radius:inherit;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-standard)}.z-progress[data-tone=primary] .z-progress__indicator{background-color:var(--color-primary)}.z-progress[data-tone=neutral] .z-progress__indicator{background-color:var(--color-neutral)}.z-progress[data-tone=success] .z-progress__indicator{background-color:var(--color-success)}.z-progress[data-tone=warning] .z-progress__indicator{background-color:var(--color-warning)}.z-progress[data-tone=danger] .z-progress__indicator{background-color:var(--color-danger)}.z-progress__track[data-state=indeterminate] .z-progress__indicator{width:40%;animation:z-progress-sweep 1.4s var(--ease-standard) infinite}@keyframes z-progress-sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.z-progress__indicator{transition-duration:0s}.z-progress__track[data-state=indeterminate] .z-progress__indicator{width:100%;animation:z-progress-pulse 1.4s var(--ease-standard) infinite alternate}}@keyframes z-progress-pulse{0%{opacity:.4}to{opacity:1}}.z-select{gap:var(--spacing-1);color:var(--color-text);flex-direction:column;display:flex}.z-select__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}.z-select__required{color:var(--color-danger)}.z-select__trigger{justify-content:space-between;align-items:center;gap:var(--spacing-2);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);font-family:inherit;line-height:var(--leading-normal);text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);display:inline-flex}.z-select__trigger[data-placeholder]{color:var(--color-text-subtle)}.z-select__value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.z-select__chevron{width:1rem;height:1rem;color:var(--color-text-muted);flex:none;display:inline-flex}.z-select__chevron>svg{width:100%;height:100%}.z-select[data-size=sm] .z-select__trigger{min-height:2rem;padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm)}.z-select[data-size=md] .z-select__trigger{min-height:2.5rem;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-select[data-size=lg] .z-select__trigger{min-height:3rem;padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base)}.z-select__trigger:hover:not(:disabled){border-color:var(--color-text-muted)}.z-select__trigger:focus-visible{border-color:var(--color-focus);outline-offset:0}.z-select[data-invalid] .z-select__trigger{border-color:var(--color-danger)}.z-select[data-disabled]{color:var(--color-text-subtle)}.z-select__trigger:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.z-select__description,.z-select__error{font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-select__description{color:var(--color-text-muted)}.z-select__error{color:var(--color-danger)}.z-select__content{z-index:60;min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--text-sm);transform-origin:var(--radix-select-content-transform-origin);animation:z-select-enter var(--duration-fast) var(--ease-standard);overflow:hidden}.z-select__content[data-state=closed]{animation:z-select-exit var(--duration-fast) var(--ease-exit)}.z-select__viewport{padding:var(--spacing-1)}.z-select__scroll{height:var(--spacing-6);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.z-select__scroll>svg{width:1rem;height:1rem}.z-select__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-8) var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);line-height:var(--leading-tight);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex;position:relative}.z-select__item[data-highlighted]{background-color:var(--color-neutral-soft)}.z-select__item[data-state=checked]{font-weight:var(--font-weight-medium)}.z-select__item[data-disabled]{color:var(--color-text-subtle);cursor:not-allowed}.z-select__indicator{right:var(--spacing-3);width:1rem;height:1rem;color:var(--color-primary);display:inline-flex;position:absolute}.z-select__indicator>svg{width:100%;height:100%}.z-select__group-label{padding:var(--spacing-2) var(--spacing-3) var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.z-select__separator{height:1px;margin:var(--spacing-1) 0;background-color:var(--color-border)}@keyframes z-select-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes z-select-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-select__trigger{transition-duration:0s}.z-select__content,.z-select__content[data-state=closed]{animation:none}}.z-separator{background-color:var(--color-border);flex:none}.z-separator[data-orientation=horizontal]{width:100%;height:1px}.z-separator[data-orientation=vertical]{align-self:stretch;width:1px;height:100%;min-height:1em}.z-separator--labelled{align-items:center;gap:var(--spacing-3);background:0 0;height:auto;display:flex}.z-separator__line{background-color:var(--color-border);flex:1;height:1px}.z-separator__label{font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-text-muted);white-space:nowrap}.z-sheet__overlay{z-index:50;background-color:var(--color-surface-overlay);animation:z-sheet-fade-in var(--duration-slow) var(--ease-standard);position:fixed;inset:0}.z-sheet__overlay[data-state=closed]{animation:z-sheet-fade-out var(--duration-normal) var(--ease-exit)}.z-sheet{z-index:51;gap:var(--spacing-3);padding:var(--spacing-6);background-color:var(--color-surface);box-shadow:var(--shadow-lg);color:var(--color-text);animation-duration:var(--duration-slow);animation-timing-function:var(--ease-emphasized);flex-direction:column;display:flex;position:fixed;overflow:auto}.z-sheet:focus{outline:none}.z-sheet[data-side=right]{border-left:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-right;top:0;bottom:0;right:0}.z-sheet[data-side=left]{border-right:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-left;top:0;bottom:0;left:0}.z-sheet[data-side=top]{border-bottom:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-top;top:0;left:0;right:0}.z-sheet[data-side=bottom]{border-top:var(--border-width) solid var(--color-border);animation-name:z-sheet-from-bottom;bottom:0;left:0;right:0}.z-sheet[data-state=closed]{animation-duration:var(--duration-normal);animation-timing-function:var(--ease-exit);animation-direction:reverse}.z-sheet[data-side=right][data-size=sm],.z-sheet[data-side=left][data-size=sm]{width:min(100vw,20rem)}.z-sheet[data-side=right][data-size=md],.z-sheet[data-side=left][data-size=md]{width:min(100vw,28rem)}.z-sheet[data-side=right][data-size=lg],.z-sheet[data-side=left][data-size=lg]{width:min(100vw,40rem)}.z-sheet[data-side=top][data-size=sm],.z-sheet[data-side=bottom][data-size=sm]{max-height:40vh}.z-sheet[data-side=top][data-size=md],.z-sheet[data-side=bottom][data-size=md]{max-height:60vh}.z-sheet[data-side=top][data-size=lg],.z-sheet[data-side=bottom][data-size=lg]{max-height:85vh}.z-sheet__title{padding-right:var(--spacing-8);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.z-sheet__description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.z-sheet__footer{justify-content:flex-end;gap:var(--spacing-2);padding-top:var(--spacing-4);flex-wrap:wrap;margin-top:auto;display:flex}.z-sheet__close{top:var(--spacing-3);right:var(--spacing-3);border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.z-sheet__close>svg{width:1rem;height:1rem}.z-sheet__close:hover{background-color:var(--color-neutral-soft);color:var(--color-text)}@keyframes z-sheet-fade-in{0%{opacity:0}to{opacity:1}}@keyframes z-sheet-fade-out{0%{opacity:1}to{opacity:0}}@keyframes z-sheet-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes z-sheet-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes z-sheet-from-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes z-sheet-from-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.z-sheet{animation-name:z-sheet-fade-in;animation-duration:var(--duration-normal)}.z-sheet[data-state=closed]{animation-name:z-sheet-fade-out;animation-direction:normal}.z-sheet__close{transition-duration:0s}}.z-sparkline{vertical-align:middle;width:100%;min-width:3rem;line-height:0;display:inline-block}.z-sparkline__svg{width:100%;display:block;overflow:visible}.z-sparkline__line{stroke-width:1.5px}.z-sparkline[data-tone=primary],.z-sparkline[data-tone=success],.z-sparkline[data-tone=warning],.z-sparkline[data-tone=danger],.z-sparkline[data-tone=neutral]{color:var(--color-text)}.z-switch{align-items:flex-start;gap:var(--spacing-2);color:var(--color-text);display:inline-flex}.z-switch__box{height:calc(var(--text-sm) * var(--leading-normal));flex:none;align-items:center;display:inline-flex}.z-switch[data-size=sm] .z-switch__box{height:calc(var(--text-xs) * var(--leading-normal))}.z-switch__control{background-color:var(--color-border-strong);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);border:2px solid #0000;flex:none;align-items:center;padding:0;display:inline-flex;position:relative}.z-switch[data-size=sm] .z-switch__control{width:1.75rem;height:1rem}.z-switch[data-size=md] .z-switch__control{width:2.25rem;height:1.25rem}.z-switch__thumb{background-color:var(--color-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-emphasized);display:block}.z-switch[data-size=sm] .z-switch__thumb{width:.75rem;height:.75rem}.z-switch[data-size=md] .z-switch__thumb{width:1rem;height:1rem}.z-switch[data-size=sm] .z-switch__control[data-state=checked] .z-switch__thumb{transform:translate(.75rem)}.z-switch[data-size=md] .z-switch__control[data-state=checked] .z-switch__thumb{transform:translate(1rem)}.z-switch__control:hover:not(:disabled){background-color:var(--color-text-muted)}.z-switch__control[data-state=checked]{background-color:var(--color-primary)}.z-switch__control[data-state=checked]:hover:not(:disabled){background-color:var(--color-primary-hover)}.z-switch__control:disabled{background-color:var(--color-border);cursor:not-allowed}.z-switch__control:disabled[data-state=checked]{background-color:var(--color-text-subtle)}.z-switch__text{gap:var(--spacing-0);flex-direction:column;display:flex}.z-switch__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);cursor:pointer}.z-switch[data-size=sm] .z-switch__label{font-size:var(--text-xs)}.z-switch__description{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}.z-switch[data-disabled]{color:var(--color-text-subtle)}.z-switch[data-disabled] .z-switch__label{cursor:not-allowed}@media (prefers-reduced-motion:reduce){.z-switch__control,.z-switch__thumb{transition-duration:0s}}.z-table{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);width:100%;color:var(--color-text);overflow:auto}.z-table__table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--leading-tight)}.z-table__cell{border-bottom:var(--border-width) solid var(--color-border);text-align:left;vertical-align:middle}.z-table[data-density=sm] .z-table__cell{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-xs)}.z-table[data-density=md] .z-table__cell{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-sm)}.z-table__cell--head{font-weight:var(--font-weight-medium);color:var(--color-text-muted);white-space:nowrap}.z-table__head .z-table__cell{background-color:var(--color-surface-raised)}.z-table[data-sticky] .z-table__head .z-table__cell{z-index:1;position:sticky;top:0}.z-table__body .z-table__row:last-child .z-table__cell{border-bottom:0}.z-table__foot .z-table__cell{border-top:var(--border-width) solid var(--color-border);background-color:var(--color-surface-raised);font-weight:var(--font-weight-medium);border-bottom:0}.z-table__cell[data-align=center]{text-align:center}.z-table__cell[data-align=end]{text-align:right}.z-table__cell[data-numeric]{font-variant-numeric:tabular-nums}.z-table__row[data-interactive]{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.z-table__row[data-interactive]:hover .z-table__cell{background-color:var(--color-surface-raised)}.z-table__row[data-selected] .z-table__cell{background-color:var(--color-primary-soft)}@media (prefers-reduced-motion:reduce){.z-table__row[data-interactive]{transition-duration:0s}}.z-textarea{gap:var(--spacing-1);color:var(--color-text);flex-direction:column;display:flex}.z-textarea__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}.z-textarea__required{color:var(--color-danger)}.z-textarea__control{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);font-family:inherit;line-height:var(--leading-normal);transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard)}.z-textarea__control::placeholder{color:var(--color-text-subtle)}.z-textarea[data-resize=none] .z-textarea__control{resize:none}.z-textarea[data-resize=vertical] .z-textarea__control{resize:vertical}.z-textarea[data-resize=both] .z-textarea__control{resize:both}.z-textarea[data-size=sm] .z-textarea__control{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm)}.z-textarea[data-size=md] .z-textarea__control{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-textarea[data-size=lg] .z-textarea__control{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base)}.z-textarea__control:hover:not(:disabled):not(:read-only){border-color:var(--color-text-muted)}.z-textarea__control:focus-visible{border-color:var(--color-focus);outline-offset:0}.z-textarea[data-invalid] .z-textarea__control{border-color:var(--color-danger)}.z-textarea[data-invalid] .z-textarea__control:focus-visible{outline-color:var(--color-danger)}.z-textarea[data-readonly] .z-textarea__control{background-color:var(--color-surface-sunken)}.z-textarea[data-disabled]{color:var(--color-text-subtle)}.z-textarea__control:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.z-textarea__description,.z-textarea__error{font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-textarea__description{color:var(--color-text-muted)}.z-textarea__error{color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.z-textarea__control{transition-duration:0s}}.z-textarea[data-font=mono] .z-textarea__control{font-family:var(--font-mono)}.z-field{gap:var(--spacing-1);color:var(--color-text);flex-direction:column;display:flex}.z-field__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}.z-field__required{color:var(--color-danger)}.z-field__control{align-items:center;display:flex;position:relative}.z-field__input{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);font-family:inherit;line-height:var(--leading-normal);transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard)}.z-field__input::placeholder{color:var(--color-text-subtle)}.z-field[data-size=sm] .z-field__input{min-height:2rem;padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm)}.z-field[data-size=md] .z-field__input{min-height:2.5rem;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-field[data-size=lg] .z-field__input{min-height:3rem;padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base)}.z-field__icon{color:var(--color-text-muted);pointer-events:none;position:absolute}.z-field__icon:first-child{left:var(--spacing-3)}.z-field__icon:last-child{right:var(--spacing-3)}.z-field__control:has(>.z-field__icon:first-child)>.z-field__input{padding-left:var(--spacing-8)}.z-field__control:has(>.z-field__icon:last-child)>.z-field__input{padding-right:var(--spacing-8)}.z-field__input:hover:not(:disabled):not(:read-only){border-color:var(--color-text-muted)}.z-field__input:focus-visible{border-color:var(--color-focus);outline-offset:0}.z-field[data-invalid] .z-field__input{border-color:var(--color-danger)}.z-field[data-invalid] .z-field__input:focus-visible{outline-color:var(--color-danger)}.z-field[data-readonly] .z-field__input{background-color:var(--color-surface-sunken)}.z-field[data-disabled]{color:var(--color-text-subtle)}.z-field__input:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.z-field__description,.z-field__error{font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-field__description{color:var(--color-text-muted)}.z-field__error{color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.z-field__input{transition-duration:0s}}.z-field[data-font=mono] .z-field__input{font-family:var(--font-mono)}.z-toast__viewport{z-index:70;gap:var(--spacing-2);width:min(100vw - var(--spacing-8), 24rem);padding:var(--spacing-4);outline:none;flex-direction:column;margin:0;list-style:none;display:flex;position:fixed}.z-toast__viewport[data-position=bottom-right]{bottom:0;right:0}.z-toast__viewport[data-position=bottom-left]{bottom:0;left:0}.z-toast__viewport[data-position=top-right]{top:0;right:0}.z-toast__viewport[data-position=top-left]{top:0;left:0}.z-toast{align-items:start;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-4);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text);animation:z-toast-enter var(--duration-slow) var(--ease-emphasized);border-left-width:3px;grid-template-columns:minmax(0,1fr) auto auto;display:grid}.z-toast[data-state=closed]{animation:z-toast-exit var(--duration-normal) var(--ease-exit)}.z-toast[data-swipe=move]{transform:translateX(var(--radix-toast-swipe-move-x))}.z-toast[data-swipe=cancel]{transition:transform var(--duration-normal) var(--ease-standard);transform:translate(0)}.z-toast[data-swipe=end]{animation:z-toast-swipe-out var(--duration-fast) var(--ease-exit)}.z-toast[data-tone=neutral]{border-left-color:var(--color-neutral)}.z-toast[data-tone=success]{border-left-color:var(--color-success)}.z-toast[data-tone=warning]{border-left-color:var(--color-warning)}.z-toast[data-tone=danger]{border-left-color:var(--color-danger)}.z-toast__body{gap:var(--spacing-1);min-width:0;display:grid}.z-toast__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.z-toast__description{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}.z-toast__action{padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-neutral-soft);border-radius:var(--radius-md);color:var(--color-neutral-soft-foreground);font-family:inherit;font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;border:0}.z-toast__action:hover{background-color:var(--color-neutral-soft-hover)}.z-toast--clear{box-shadow:none;background:0 0;border:0;justify-content:flex-end;padding:0;display:flex}.z-toast__clear{padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-neutral-soft);border-radius:var(--radius-md);color:var(--color-neutral-soft-foreground);font-family:inherit;font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);cursor:pointer;border:0}.z-toast__close{border-radius:var(--radius-md);width:1.5rem;height:1.5rem;color:var(--color-text-muted);cursor:pointer;background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.z-toast__close>svg{width:.875rem;height:.875rem}.z-toast__close:hover{background-color:var(--color-neutral-soft);color:var(--color-text)}@keyframes z-toast-enter{0%{opacity:0;transform:translateY(var(--spacing-3))}to{opacity:1;transform:translateY(0)}}@keyframes z-toast-exit{0%{opacity:1}to{opacity:0}}@keyframes z-toast-swipe-out{0%{transform:translateX(var(--radix-toast-swipe-end-x))}to{transform:translateX(calc(100% + var(--spacing-8)))}}@media (prefers-reduced-motion:reduce){.z-toast{animation:z-toast-exit var(--duration-fast) var(--ease-standard) reverse}}.z-tooltip{z-index:60;max-width:18rem;padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-surface);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);transform-origin:var(--radix-tooltip-content-transform-origin);animation:z-tooltip-enter var(--duration-fast) var(--ease-standard)}.z-tooltip[data-state=closed]{animation:z-tooltip-exit var(--duration-fast) var(--ease-exit)}.z-tooltip__arrow{fill:var(--color-text)}@keyframes z-tooltip-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes z-tooltip-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.z-tooltip,.z-tooltip[data-state=closed]{animation:none}}.z-checkbox{align-items:flex-start;gap:var(--spacing-2);color:var(--color-text);display:inline-flex}.z-checkbox__control{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-on-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.z-checkbox__box{height:calc(var(--text-sm) * var(--leading-normal));flex:none;align-items:center;display:inline-flex}.z-checkbox[data-size=sm] .z-checkbox__box{height:calc(var(--text-xs) * var(--leading-normal))}.z-checkbox[data-size=sm] .z-checkbox__control{width:1rem;height:1rem}.z-checkbox[data-size=md] .z-checkbox__control{width:1.25rem;height:1.25rem}.z-checkbox__control:hover:not(:disabled){border-color:var(--color-text-muted)}.z-checkbox__control[data-state=checked],.z-checkbox__control[data-state=indeterminate]{background-color:var(--color-primary);border-color:var(--color-primary)}.z-checkbox__control[data-state=checked]:hover:not(:disabled),.z-checkbox__control[data-state=indeterminate]:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.z-checkbox__control:disabled{background-color:var(--color-surface-sunken);border-color:var(--color-border);cursor:not-allowed}.z-checkbox__control:disabled[data-state=checked],.z-checkbox__control:disabled[data-state=indeterminate]{background-color:var(--color-text-subtle);border-color:var(--color-text-subtle)}.z-checkbox__indicator{width:80%;height:80%;display:inline-flex}.z-checkbox__indicator>svg{width:100%;height:100%}.z-checkbox__check,.z-checkbox__dash{stroke-dasharray:20;stroke-dashoffset:20px;transition:stroke-dashoffset var(--duration-normal) var(--ease-emphasized)}.z-checkbox__control[data-state=checked] .z-checkbox__check,.z-checkbox__control[data-state=indeterminate] .z-checkbox__dash{stroke-dashoffset:0}.z-checkbox__text{gap:var(--spacing-0);flex-direction:column;display:flex}.z-checkbox__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);cursor:pointer}.z-checkbox[data-size=sm] .z-checkbox__label{font-size:var(--text-xs)}.z-checkbox__description{color:var(--color-text-muted);font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.z-checkbox[data-disabled] .z-checkbox__label,.z-checkbox[data-disabled] .z-checkbox__description{color:var(--color-text-subtle);cursor:not-allowed}@media (prefers-reduced-motion:reduce){.z-checkbox__control,.z-checkbox__check,.z-checkbox__dash{transition-duration:0s}}.z-codeblock{background-color:var(--color-surface-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);display:grid;overflow:hidden}.z-codeblock__head{justify-content:space-between;align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-1) var(--spacing-1) var(--spacing-3);border-bottom:var(--border-width) solid var(--color-border);display:flex}.z-codeblock__language{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.z-codeblock__copy{margin-left:auto}.z-codeblock__pre{padding:var(--spacing-3);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);tab-size:2;margin:0;overflow-x:auto}.z-codeblock[data-wrap] .z-codeblock__pre{white-space:pre-wrap;word-break:break-word}.z-markdown{gap:var(--spacing-3);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal);overflow-wrap:anywhere;display:grid}.z-markdown>*{margin:0}.z-markdown h1,.z-markdown h2,.z-markdown h3,.z-markdown h4,.z-markdown h5,.z-markdown h6{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.z-markdown h1{font-size:var(--text-xl)}.z-markdown h2{font-size:var(--text-lg)}.z-markdown h3,.z-markdown h4,.z-markdown h5,.z-markdown h6{font-size:var(--text-base)}.z-markdown ul,.z-markdown ol{gap:var(--spacing-1);padding-left:var(--spacing-5);display:grid}.z-markdown code{padding:var(--spacing-0) var(--spacing-1);background-color:var(--color-surface-sunken);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9em}.z-markdown a{color:var(--color-primary);text-underline-offset:.15em}.z-markdown blockquote{padding-left:var(--spacing-3);border-left:2px solid var(--color-border-strong);color:var(--color-text-muted)}.z-markdown hr{background-color:var(--color-border);border:0;height:1px}.z-markdown__cursor{width:2px;height:1em;margin-left:var(--spacing-0);vertical-align:text-bottom;background-color:var(--color-text-muted);animation:1s steps(2,end) infinite z-markdown-blink;display:inline-block}@keyframes z-markdown-blink{to{opacity:0}}@media (prefers-reduced-motion:reduce){.z-markdown__cursor{animation:none}}.z-tabs{color:var(--color-text);flex-direction:column;display:flex}.z-tabs__list{flex-wrap:wrap;align-items:center;display:flex}.z-tabs__trigger{align-items:center;gap:var(--spacing-2);color:var(--color-text-muted);font-family:inherit;font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);background:0 0;border:0;display:inline-flex}.z-tabs__trigger:hover:not(:disabled){color:var(--color-text)}.z-tabs__trigger:disabled{color:var(--color-text-subtle);cursor:not-allowed}.z-tabs__trigger[data-state=active]{color:var(--color-text)}.z-tabs[data-size=sm] .z-tabs__trigger{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs)}.z-tabs[data-size=md] .z-tabs__trigger{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}.z-tabs[data-variant=line] .z-tabs__list{gap:var(--spacing-1);box-shadow:inset 0 -1px 0 var(--color-border)}.z-tabs[data-variant=line] .z-tabs__trigger{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:2px solid #0000}.z-tabs[data-variant=line] .z-tabs__trigger[data-state=active]{border-bottom-color:var(--color-primary);color:var(--color-primary)}.z-tabs[data-variant=pill] .z-tabs__list{align-self:flex-start;gap:var(--spacing-1);padding:var(--spacing-1);background-color:var(--color-surface-sunken);border-radius:var(--radius-md)}.z-tabs[data-variant=pill] .z-tabs__trigger{border-radius:var(--radius-sm)}.z-tabs[data-variant=pill] .z-tabs__trigger[data-state=active]{background-color:var(--color-surface);box-shadow:var(--shadow-sm)}.z-tabs__content{padding-top:var(--spacing-4);outline-offset:0}.z-tabs__content[data-state=inactive]{display:none}.z-skeleton{background-color:var(--color-neutral-soft);animation:z-skeleton-pulse var(--duration-slow) var(--ease-standard) infinite alternate;display:inline-block}.z-skeleton[data-variant=text]{border-radius:var(--radius-sm);vertical-align:middle;width:100%;height:1em}.z-skeleton[data-variant=rect]{border-radius:var(--radius-md);width:100%;height:4rem}.z-skeleton[data-variant=circle]{border-radius:var(--radius-full);width:2.5rem;height:2.5rem}.z-skeleton-lines{gap:var(--spacing-2);width:100%;display:grid}@keyframes z-skeleton-pulse{0%{opacity:1}to{opacity:.5}}@media (prefers-reduced-motion:reduce){.z-skeleton{animation:none}}.z-loader{align-items:center;gap:var(--spacing-2);color:var(--color-text-muted);font-size:var(--text-xs);display:inline-flex}.z-loader__dots{gap:var(--spacing-1);display:inline-flex}.z-loader__dots>span{border-radius:var(--radius-full);animation:z-loader-bounce 1.2s var(--ease-standard) infinite;background-color:currentColor;display:block}.z-loader[data-size=sm] .z-loader__dots>span{width:var(--spacing-1);height:var(--spacing-1)}.z-loader[data-size=md] .z-loader__dots>span{width:var(--spacing-2);height:var(--spacing-2)}.z-loader__dots>span:nth-child(2){animation-delay:.15s}.z-loader__dots>span:nth-child(3){animation-delay:.3s}@keyframes z-loader-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-25%)}}@media (prefers-reduced-motion:reduce){.z-loader__dots>span{animation:z-loader-fade 1.2s var(--ease-standard) infinite alternate}}@keyframes z-loader-fade{0%{opacity:.3}to{opacity:1}}.z-empty{justify-items:center;gap:var(--spacing-2);padding:var(--spacing-8);border:var(--border-width) dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);text-align:center;display:grid}.z-empty[data-size=sm]{padding:var(--spacing-5)}.z-empty__icon{color:var(--color-text-subtle);display:inline-flex}.z-empty[data-tone=danger] .z-empty__icon{color:var(--color-danger)}.z-empty__title{color:var(--color-text);font-weight:var(--font-weight-medium);margin:0}.z-empty[data-size=md] .z-empty__title{font-size:var(--text-lg)}.z-empty__description{max-width:44ch;font-size:var(--text-sm);text-wrap:pretty;margin:0}.z-empty__action{margin-top:var(--spacing-2)}.z-kanban{gap:var(--spacing-4);grid-auto-columns:minmax(16rem,1fr);grid-auto-flow:column;align-items:start;display:grid;overflow-x:auto}.z-kanban__column{gap:var(--spacing-3);padding:var(--spacing-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface-sunken);display:grid}.z-kanban__column[data-over]{border-color:var(--color-primary)}.z-kanban__head{justify-content:space-between;align-items:center;gap:var(--spacing-2);display:flex}.z-kanban__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);margin:0}.z-kanban__list{gap:var(--spacing-2);margin:0;padding:0;list-style:none;display:grid}.z-kanban__slot[data-drop]:before{content:"";height:2px;margin-bottom:var(--spacing-2);background-color:var(--color-primary);border-radius:var(--radius-full);display:block}.z-kanban__card{padding:var(--spacing-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);cursor:grab}.z-kanban__card[data-lifted]{cursor:grabbing;border-color:var(--color-primary);box-shadow:var(--shadow-md)}.z-kanban[data-density=sm] .z-kanban__card,.z-kanban[data-density=sm] .z-kanban__column{padding:var(--spacing-2)}.z-combobox{gap:var(--spacing-2);display:grid;position:relative}.z-combobox__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.z-combobox__control{align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);border:var(--border-width) solid var(--color-outline);border-radius:var(--radius-md);background-color:var(--color-surface);flex-wrap:wrap;display:flex}.z-combobox[data-invalid] .z-combobox__control{border-color:var(--color-danger)}.z-combobox[data-disabled] .z-combobox__control{background-color:var(--color-surface-sunken);opacity:.55}.z-combobox__input{min-width:6rem;padding-block:var(--spacing-1);color:inherit;background:0 0;border:0;flex:6rem;font-family:inherit}.z-combobox[data-size=sm] .z-combobox__input,.z-combobox[data-size=md] .z-combobox__input{font-size:var(--text-sm)}.z-combobox[data-size=lg] .z-combobox__input{font-size:var(--text-base)}.z-combobox__chip{align-items:center;gap:var(--spacing-1);display:inline-flex}.z-combobox__remove{color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.z-combobox__chevron{color:var(--color-text-subtle);display:inline-flex}.z-combobox__list{z-index:20;max-height:16rem;margin:var(--spacing-1) 0 0;padding:var(--spacing-1);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.z-combobox__list ul{margin:0;padding:0;list-style:none}.z-combobox__group-name{margin:var(--spacing-2) var(--spacing-2) var(--spacing-1);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-subtle)}.z-combobox__option{align-items:center;column-gap:var(--spacing-2);padding:var(--spacing-2);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:1fr auto;display:grid}.z-combobox__option[data-active=true]{background-color:var(--color-surface-sunken)}.z-combobox__option[aria-disabled]{opacity:.55;cursor:not-allowed}.z-combobox__option-label{font-size:var(--text-sm)}.z-combobox__option-hint{font-size:var(--text-xs);color:var(--color-text-muted);grid-column:1}.z-combobox__tick{color:var(--color-primary);grid-area:1/2/-1;display:inline-flex}.z-combobox__empty{padding:var(--spacing-3);font-size:var(--text-sm);color:var(--color-text-muted)}.z-combobox__description{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.z-combobox__error{font-size:var(--text-xs);color:var(--color-danger);margin:0}:root,[data-theme=light]{--font-sans:"Hanken Grotesk", Helvetica, Arial, sans-serif;--font-display:"Bricolage Grotesque", "Hanken Grotesk", sans-serif;--font-mono:"Azeret Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.0625rem;--text-2xl:1.375rem;--text-3xl:1.5rem;--text-4xl:1.875rem;--leading-normal:1.45;--leading-tight:1.15;--tracking-caps:.08em;--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--color-surface:#f4f8f5;--color-surface-raised:#e9f0eb;--color-surface-sunken:#e4ece6;--color-surface-overlay:#0e1a13cc;--color-text:#0e1a13;--color-text-muted:#3a4f43;--color-text-subtle:#54675c;--color-border:#d0dcd3;--color-border-strong:#b3c6b9;--color-primary:#1e6b3c;--color-primary-hover:#185a32;--color-primary-active:#124a28;--color-primary-soft:#d8ecdd;--color-primary-soft-hover:#c8e2cf;--color-primary-soft-foreground:#1e6b3c;--color-on-primary:#fff;--color-focus:#1e6b3c;--color-neutral:#22332a;--color-neutral-hover:#2f4438;--color-neutral-active:#0e1a13;--color-neutral-soft:#e9f0eb;--color-neutral-soft-hover:#d8ecdd;--color-neutral-soft-foreground:#0e1a13;--color-on-neutral:#fff;--color-success:#1e6b3c;--color-success-soft:#d8ecdd;--color-success-soft-foreground:#1e6b3c;--color-on-success:#fff;--color-warning:#8a6a12;--color-warning-soft:#f1e9c8;--color-warning-soft-foreground:#6b5210;--color-on-warning:#fff;--color-danger:#b4402c;--color-danger-hover:#9c3624;--color-danger-active:#7f2a1b;--color-danger-soft:#f4dcd7;--color-danger-soft-hover:#ecc9c2;--color-danger-soft-foreground:#8f3322;--color-on-danger:#fff;--color-text-faint:#6d7f75}[data-theme=dark]{--color-surface:#0d1a14;--color-surface-raised:#122119;--color-surface-sunken:#08120c;--color-surface-overlay:#08120ccc;--color-text:#e9f5ee;--color-text-muted:#a9c2b4;--color-text-subtle:#8aa596;--color-border:#1c2e25;--color-border-strong:#274536;--color-primary:#c8f542;--color-primary-hover:#d4f766;--color-primary-active:#9fcf2a;--color-primary-soft:#1a3326;--color-primary-soft-hover:#224030;--color-primary-soft-foreground:#c8f542;--color-on-primary:#08120c;--color-focus:#c8f542;--color-neutral:#c3d6cb;--color-neutral-hover:#d6e6dc;--color-neutral-active:#e9f5ee;--color-neutral-soft:#122119;--color-neutral-soft-hover:#1a3326;--color-neutral-soft-foreground:#e9f5ee;--color-on-neutral:#08120c;--color-success:#7fd9a2;--color-success-soft:#123324;--color-success-soft-foreground:#7fd9a2;--color-on-success:#08120c;--color-warning:#d9b85c;--color-warning-soft:#2a2812;--color-warning-soft-foreground:#e6c76b;--color-on-warning:#08120c;--color-danger:#ef8f8f;--color-danger-hover:#f4a3a3;--color-danger-active:#e07676;--color-danger-soft:#341c1c;--color-danger-soft-hover:#442424;--color-danger-soft-foreground:#ef8f8f;--color-on-danger:#08120c;--color-text-faint:#6c8878}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-surface:#0d1a14;--color-surface-raised:#122119;--color-surface-sunken:#08120c;--color-surface-overlay:#08120ccc;--color-text:#e9f5ee;--color-text-muted:#a9c2b4;--color-text-subtle:#8aa596;--color-border:#1c2e25;--color-border-strong:#274536;--color-primary:#c8f542;--color-primary-hover:#d4f766;--color-primary-active:#9fcf2a;--color-primary-soft:#1a3326;--color-primary-soft-hover:#224030;--color-primary-soft-foreground:#c8f542;--color-on-primary:#08120c;--color-focus:#c8f542;--color-neutral:#c3d6cb;--color-neutral-hover:#d6e6dc;--color-neutral-active:#e9f5ee;--color-neutral-soft:#122119;--color-neutral-soft-hover:#1a3326;--color-neutral-soft-foreground:#e9f5ee;--color-on-neutral:#08120c;--color-success:#7fd9a2;--color-success-soft:#123324;--color-success-soft-foreground:#7fd9a2;--color-on-success:#08120c;--color-warning:#d9b85c;--color-warning-soft:#2a2812;--color-warning-soft-foreground:#e6c76b;--color-on-warning:#08120c;--color-danger:#ef8f8f;--color-danger-hover:#f4a3a3;--color-danger-active:#e07676;--color-danger-soft:#341c1c;--color-danger-soft-hover:#442424;--color-danger-soft-foreground:#ef8f8f;--color-on-danger:#08120c;--color-text-faint:#6c8878}}.brand-mark{align-items:center;gap:var(--spacing-2);color:var(--color-text);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);letter-spacing:.02em;text-transform:uppercase;line-height:1;text-decoration:none;display:inline-flex}.brand-mark__logo{border-radius:var(--radius-md);object-fit:cover;width:32px;height:32px}.brand-mark__accent{color:var(--color-primary)}body{font-family:var(--font-sans);background-color:var(--color-surface-sunken);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}.shell *,.shell :before,.shell :after{box-sizing:border-box}.shell h1,.shell h2,.shell h3,.shell p{margin:0}.shell{grid-template-columns:12.5rem minmax(0,1fr);min-height:100vh;display:grid}@media (width<=64rem){.shell{grid-template-columns:minmax(0,1fr)}}.sidebar{gap:var(--spacing-6);height:100vh;padding:var(--spacing-6) var(--spacing-4);background-color:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;display:flex;position:sticky;top:0}@media (width<=64rem){.sidebar:not(.sidebar--sheet){display:none}}.sidebar--sheet{border:0;height:auto;padding:0;position:static}.nav__group{gap:var(--spacing-1);display:grid}.nav__group+.nav__group{margin-top:var(--spacing-4)}.nav__group-title{padding:0 var(--spacing-3);font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-regular);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint)}.nav__count{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-subtle);margin-left:auto}.brand{align-items:center;gap:var(--spacing-3);font-weight:var(--font-weight-semibold);display:flex}.brand__meta{line-height:var(--leading-tight);display:grid}.brand__meta small{font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.nav{gap:var(--spacing-1);display:grid}.nav__item{width:100%}.sidebar__foot{align-items:center;gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);margin-top:auto;display:flex}.sidebar__user{min-width:0;font-size:var(--text-sm);line-height:var(--leading-tight);flex:1;display:grid}.sidebar__user small{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:5;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-10);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;top:0}.topbar__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.topbar__search{width:16.25rem;margin-left:auto}.topbar__search .num{font-size:var(--text-xs);color:var(--color-text-faint)}@media (width<=52rem){.topbar__search{display:none}}.topbar__actions{align-items:center;gap:var(--spacing-2);display:flex}.topbar__menu{display:none}@media (width<=64rem){.topbar__menu{display:inline-flex}}.page{gap:var(--spacing-6);padding:var(--spacing-8) var(--spacing-10) var(--spacing-12);display:grid}@media (width<=52rem){.page{padding:var(--spacing-5) var(--spacing-4) var(--spacing-8)}}.page__head{justify-content:space-between;align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.page__head p{max-width:45rem;font-size:var(--text-sm);color:var(--color-text-muted);text-wrap:pretty}.page__head p+p{margin-top:var(--spacing-1)}.stats{gap:var(--spacing-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=64rem){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=40rem){.stats{grid-template-columns:minmax(0,1fr)}}.stat{gap:var(--spacing-2);display:grid}.stat__label{font-size:var(--text-sm);color:var(--color-text-muted)}.stat__row{justify-content:space-between;align-items:flex-end;gap:var(--spacing-3);display:flex}.stat__value{font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:var(--font-weight-regular);line-height:var(--leading-none);font-variant-numeric:tabular-nums}.stat__spark{width:6rem}.stat__delta{align-items:center;gap:var(--spacing-2);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.charts{gap:var(--spacing-4);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}@media (width<=64rem){.charts{grid-template-columns:minmax(0,1fr)}}.panel{gap:var(--spacing-4);display:grid}.panel__head{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.panel__head h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.panel__head p{font-size:var(--text-sm);color:var(--color-text-muted)}.who{align-items:center;gap:var(--spacing-3);display:flex}.who__text{min-width:0;line-height:var(--leading-tight);display:grid}.who__text small{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.muted{color:var(--color-text-muted)}.toolbar{align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.toolbar__search{width:16rem}.toolbar__filter{width:11rem}.toolbar__spacer{flex:1}.cell-spark{width:5rem}.pager{justify-content:space-between;align-items:center;gap:var(--spacing-3);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.pager__buttons{gap:var(--spacing-2);display:flex}.detail{gap:var(--spacing-4);display:grid}.detail__grid{gap:var(--spacing-3) var(--spacing-4);font-size:var(--text-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.detail__grid dt{color:var(--color-text-muted)}.detail__grid dd{font-weight:var(--font-weight-medium);margin:0}.billing{gap:var(--spacing-4);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}@media (width<=64rem){.billing{grid-template-columns:minmax(0,1fr)}}.plan{gap:var(--spacing-4);display:grid}.plan__price{font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.plan__price small{font-size:var(--text-sm);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.quotas{gap:var(--spacing-4);display:grid}.switches{gap:var(--spacing-3);display:grid}.settings{gap:var(--spacing-4);grid-template-columns:minmax(0,1fr);max-width:44rem;display:grid}.form{gap:var(--spacing-4);display:grid}.form__row{gap:var(--spacing-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=40rem){.form__row{grid-template-columns:minmax(0,1fr)}}.form__actions{justify-content:flex-end;gap:var(--spacing-2);display:flex}.danger{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.danger p{font-size:var(--text-sm);color:var(--color-text-muted)}.notifications{gap:var(--spacing-3);display:grid}.notifications__item{gap:var(--spacing-0);font-size:var(--text-sm);display:grid}.notifications__item small{font-size:var(--text-xs);color:var(--color-text-muted)}.section-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:var(--spacing-2);height:var(--spacing-2)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-primary)}.toolbar__filter--narrow{width:7rem}@media (width<=52rem){.jobs-narrow thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.jobs-narrow tbody tr{column-gap:var(--spacing-3);row-gap:var(--spacing-1);padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border);grid-template-columns:3rem minmax(0,1fr) auto;grid-template-areas:"score company pay""score role status""score where posted";display:grid}.jobs-narrow tbody td{border:0;min-width:0;padding:0;display:block}.jobs-narrow tbody td:first-child{font-weight:var(--font-weight-semibold);grid-area:score}.jobs-narrow tbody td:nth-child(2){font-weight:var(--font-weight-semibold);grid-area:company}.jobs-narrow tbody td:nth-child(3){grid-area:role}.jobs-narrow tbody td:nth-child(4){grid-area:pay;justify-self:end}.jobs-narrow tbody td:nth-child(5){grid-area:where}.jobs-narrow tbody td:nth-child(6){grid-area:posted;justify-self:end}.jobs-narrow tbody td:nth-child(7){grid-area:status;justify-self:end}.jobs-narrow tbody td[colspan]{grid-area:auto}.jobs-narrow .where{max-width:none}}.where{align-items:center;gap:var(--spacing-2);min-width:0;max-width:16rem;display:flex}.views{align-items:center;gap:var(--spacing-2);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.views__label{padding-right:var(--spacing-1);font-family:var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint);font-size:10px}.filters{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.filters__search{width:14rem}.filters__summary{justify-content:space-between;align-items:baseline;gap:var(--spacing-2) var(--spacing-5);font-size:var(--text-xs);color:var(--color-text-faint);flex-wrap:wrap;display:flex}.filters__query{overflow-wrap:anywhere;min-width:0}.filters__summary b{font-weight:var(--font-weight-regular);color:var(--color-text)}.filters__summary>span:first-child{align-items:center;gap:var(--spacing-3);display:inline-flex}.chip{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--text-xs);align-items:center;display:inline-flex;overflow:hidden}.chip--on{border-color:var(--color-primary)}.chip--default{border-style:dashed}.chip--current{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.chip>*+*{border-left:1px solid var(--color-border)}.chip__dot{border-radius:var(--radius-full);background-color:var(--color-border-strong);width:8px;height:8px;display:inline-block}.chip--on .chip__dot{background-color:var(--color-primary)}.chip__value{margin-left:var(--spacing-2);color:var(--color-text-muted)}.chip__editor{gap:var(--spacing-3);min-width:16rem;display:grid}.jobs-narrow thead th,.jobs-narrow thead th .col{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-regular);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint)}.shell--collapsed{grid-template-columns:3.5rem minmax(0,1fr)}.shell--collapsed .sidebar{padding-inline:var(--spacing-2);gap:var(--spacing-4)}.shell--collapsed .brand-mark{gap:0;font-size:0}.shell--collapsed .brand-mark__logo{width:32px;height:32px}.shell--collapsed .nav__group+.nav__group{margin-top:var(--spacing-3)}.sidebar__collapse{margin-left:auto}.shell--collapsed .sidebar__collapse{margin-left:0}.sheet-head{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4) var(--spacing-6);flex-wrap:wrap;display:flex}.sheet-head__main{gap:var(--spacing-2);min-width:0;display:grid}.sheet-head__meta{font-size:var(--text-xs);color:var(--color-text-subtle);margin:0}.sheet-head h2{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;line-height:var(--leading-tight);margin:0}.sheet-head__side{justify-items:end;gap:var(--spacing-2);flex-shrink:0;display:grid}.sheet-head__links{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.split{gap:var(--spacing-8);grid-template-columns:minmax(0,1fr) 16rem;align-items:start;display:grid}@media (width<=52rem){.split{grid-template-columns:minmax(0,1fr)}}.reasons{border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.reasons__head{justify-content:space-between;align-items:baseline;gap:var(--spacing-4);padding-bottom:var(--spacing-3);font-size:var(--text-xs);display:flex}.reasons__fit{font-size:var(--text-2xl);color:var(--color-primary)}.reasons__fit small{font-size:var(--text-xs)}.reasons__row{gap:var(--spacing-4);padding:var(--spacing-3) 0;border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) 3.75rem;display:grid}.reasons__detail{font-size:var(--text-xs);color:var(--color-text-faint)}.reasons__pts{text-align:right;color:var(--color-primary)}.reasons__pts--neg{color:var(--color-danger)}.reasons__log{padding:var(--spacing-3) 0;border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-subtle)}.reasons__log summary{cursor:pointer}.split__aside{gap:var(--spacing-5);font-size:var(--text-xs);display:grid}.split__aside p{margin:var(--spacing-2) 0 0;color:var(--color-text-muted);line-height:var(--leading-normal)}.split__aside .small{font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere}.microlabel{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);font-size:10px}.people__list,.people__threads{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.people__row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);padding:var(--spacing-3) 0;border-top:1px solid var(--color-border);display:flex}.connections{gap:var(--spacing-2);display:grid}.connections__title{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--font-weight-semibold);margin:0}.mailsheet__facts{gap:var(--spacing-2) var(--spacing-4);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.mailsheet__facts dt{color:var(--color-text-subtle);font-size:var(--text-sm)}.mailsheet__facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.sources__move{white-space:nowrap}.linkedin{gap:var(--spacing-4);display:grid}.linkedin__form{align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.linkedin__path{flex:24rem}.linkedin__preview{gap:var(--spacing-2);padding-top:var(--spacing-3);border-top:1px solid var(--color-border);display:grid}.people__row:last-child{border-bottom:1px solid var(--color-border)}.people__row>div:first-child{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.people__row .reasons__detail{flex-basis:100%}.people__threads li{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) 0;border-top:1px solid var(--color-border);display:flex}.people__thread{color:var(--color-text);text-decoration:none}.people__thread:hover{color:var(--color-primary)}.people__add{gap:var(--spacing-3);padding-top:var(--spacing-2);display:grid}.preview-doc{max-width:46rem;padding:var(--spacing-2) 0}.variants__foot{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-xs);margin:0}.settings__h{margin:0 0 var(--spacing-1);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.sidebar__legal{color:var(--color-text-faint);text-decoration:none}.sidebar__legal:hover{color:var(--color-text)}.mailstrip{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.mailstrip>span{align-items:center;gap:var(--spacing-2);display:inline-flex}.copy{gap:var(--spacing-3);width:min(26rem, calc(100vw - var(--spacing-8)));min-width:0;display:grid}.copy__groups{gap:var(--spacing-3);max-height:min(24rem,100vh - 14rem);display:grid;overflow:hidden auto}.copy__group{gap:var(--spacing-1);display:grid}.copy__row{width:100%;min-width:0;max-width:100%}.copy__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:60%;font-weight:var(--font-weight-regular);flex:0 auto;overflow:hidden}.copy__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-xs);color:var(--color-text-subtle);margin-left:auto;overflow:hidden}.copy__empty{padding:var(--spacing-2);margin:0}.copy__foot{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding-top:var(--spacing-2);border-top:1px solid var(--color-border);font-size:var(--text-xs);display:flex}.copy__rows{gap:var(--spacing-4);display:grid}.copy__edit{gap:var(--spacing-2);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border);display:grid}.copy__edit-actions{justify-content:flex-end;gap:var(--spacing-1);display:flex}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.today__date{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:-.015em;line-height:var(--leading-tight);margin:0}.today__figures{gap:var(--spacing-8);flex-wrap:wrap;display:flex}.today__figure{gap:var(--spacing-1);display:grid}.today__figure b{font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:var(--font-weight-regular);line-height:var(--leading-none)}.today__figure b[data-tone=danger]{color:var(--color-danger)}.today__figure small{font-size:var(--text-sm);color:var(--color-text-subtle)}.today__hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);margin-left:auto}.today__section-head{align-items:baseline;gap:var(--spacing-3);display:flex}.sidebar__foot{font-size:var(--text-sm);color:var(--color-text-faint);line-height:var(--leading-normal)}.preview{gap:var(--spacing-4);margin-top:var(--spacing-3);display:grid}.preview__block h3{font-size:var(--text-sm);margin-bottom:var(--spacing-2)}.preview__list{gap:var(--spacing-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.preview__score{font-variant-numeric:tabular-nums;min-width:5.5rem;color:var(--color-text-muted);display:inline-block}.import-results{margin:var(--spacing-3) 0 0;gap:var(--spacing-2);font-size:var(--text-sm);padding:0;list-style:none;display:grid}.import-results li{align-items:baseline;gap:var(--spacing-2);display:flex}.import-results__row{align-items:baseline;gap:var(--spacing-2);flex-wrap:wrap;display:inline-flex}.toolbar__switch{align-self:flex-end;margin-block-end:var(--spacing-2)}.toolbar__filter--wide{width:22rem;max-width:100%}.loading{padding:var(--spacing-6)}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.clamp{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:18rem;display:inline-block;overflow:hidden}.chips{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.detail__actions{align-items:flex-end;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.steps{gap:var(--spacing-3);max-width:52rem;display:grid}.step{gap:var(--spacing-4);align-items:flex-start;display:flex}.step__mark{width:var(--spacing-8);height:var(--spacing-8);color:var(--color-primary);background-color:var(--color-primary-soft);border-radius:var(--radius-full);flex:none;justify-content:center;align-items:center;display:inline-flex}.step__n{font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}.step__body{gap:var(--spacing-2);flex:1;min-width:0;display:grid}.step__label{font-weight:var(--font-weight-semibold)}.step__row{gap:var(--spacing-3);flex-wrap:wrap;align-items:flex-end;display:flex}.step__row>:first-child{flex:1;min-width:16rem}.form__actions--start{justify-content:flex-start}.kcard{gap:var(--spacing-1);cursor:grab;display:grid}.kcard:active{cursor:grabbing}.kcard__head{justify-content:space-between;align-items:center;gap:var(--spacing-2);display:flex}.kcard__company{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-regular);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.06em}.kcard__title{font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:1.35}.kcard__meta{gap:var(--spacing-2);margin-top:var(--spacing-1);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.kcard__score{color:var(--color-text-subtle)}.kcard__pay{color:var(--color-text-muted)}.kcard__pay--floor{color:var(--color-primary)}.today__section{gap:var(--spacing-3);margin-bottom:var(--spacing-6);display:grid}.today__heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--color-text);margin:0}.today__subheading{margin:0 0 var(--spacing-1);font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.today__cols{gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));align-items:start;display:grid}.today__cols>*,.today__list>li,.today__row{min-width:0}.today__actions{gap:var(--spacing-2);justify-content:flex-end;display:flex}.today__list{gap:var(--spacing-1);margin:var(--spacing-3) 0 0;padding:0;list-style:none;display:grid}.today__row{width:100%;overflow:hidden}.today__row-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.packet__state{gap:var(--spacing-1);padding:var(--spacing-3);background-color:var(--color-surface-sunken);border-radius:var(--radius-md);justify-items:start;display:grid}.packet__field{gap:var(--spacing-1);display:grid}.letter__options{gap:var(--spacing-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.letter__meta{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.letter__warnings{gap:var(--spacing-2);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.letter__warnings li{gap:var(--spacing-2);align-items:flex-start;display:flex}.resume-preview{max-height:60vh;padding:var(--spacing-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto}.z-table__row[data-posted]>td:first-child{box-shadow:inset 3px 0 0 var(--color-primary)}.z-table__row[data-posted]{background-color:color-mix(in srgb, var(--color-primary) 6%, transparent)}.kcard[data-posted]{border-left:3px solid var(--color-primary);background-color:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface-raised))}.posted-co{align-items:center;gap:var(--spacing-2);min-width:0;display:inline-flex}.posted__glyph{width:12px;height:12px;margin-right:var(--spacing-1);border-radius:var(--radius-sm);display:inline-block}.health{gap:var(--spacing-1);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.jobs{gap:var(--spacing-6);min-width:0;display:grid}.jobs--split{--tj-topbar:3.5625rem;margin:calc(var(--spacing-8) * -1) calc(var(--spacing-10) * -1) calc(var(--spacing-12) * -1);grid-template-columns:minmax(18.75rem,23.75rem) minmax(0,1fr);align-items:start;gap:0}.jobs__list{top:var(--tj-topbar);align-content:start;gap:var(--spacing-4);max-height:calc(100vh - var(--tj-topbar));padding:var(--spacing-5) var(--spacing-5) var(--spacing-12);border-right:1px solid var(--color-border);display:grid;position:sticky;overflow-y:auto}.jobs__detail{top:var(--tj-topbar);height:calc(100vh - var(--tj-topbar));padding:var(--spacing-5) var(--spacing-8) var(--spacing-12);position:sticky;overflow-y:auto;container-type:inline-size}@container (width<=38.75rem){.split{grid-template-columns:minmax(0,1fr)}}.ctools{gap:var(--spacing-2);display:grid}.ctools__row{align-items:center;gap:var(--spacing-2);display:flex}.ctools__row>.z-field{flex:1;min-width:0}.ctools__meta{font-size:var(--text-xs);color:var(--color-text-subtle);justify-content:space-between}.ctools__meta b{color:var(--color-text);font-weight:var(--font-weight-semibold)}.clist{border-top:1px solid var(--color-border);display:grid}.clist .clist__item{gap:var(--spacing-3);height:auto;padding:var(--spacing-3) var(--spacing-3);border-bottom:1px solid var(--color-border);text-align:left;white-space:normal;border-radius:0;grid-template-columns:2.75rem minmax(0,1fr);display:grid}.clist .clist__item[aria-current=true]{background-color:var(--color-surface-sunken);box-shadow:inset 3px 0 0 var(--color-primary)}.clist .clist__item[data-posted]{background-color:color-mix(in srgb, var(--color-primary) 6%, transparent)}.clist__score{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.clist__text{gap:var(--spacing-1);min-width:0;display:grid}.clist__role{font-weight:var(--font-weight-medium);line-height:var(--leading-tight);color:var(--color-text)}.clist__meta{font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.clist__pay--floor{color:var(--color-primary)}.clist__pager{justify-content:space-between;align-items:center;gap:var(--spacing-2);padding-top:var(--spacing-3);font-size:var(--text-xs);display:flex}.sheet-nav{align-items:center;gap:var(--spacing-1);display:flex}.sheet-nav__count{padding-left:var(--spacing-2);font-size:var(--text-xs);color:var(--color-text-subtle)}.sheet-nav .sheet-nav__close{margin-left:auto}.sheet-head__title{margin:0}@media (width<=40rem){.shell--strip .sidebar:not(.sidebar--sheet){align-items:center;gap:var(--spacing-2);z-index:6;height:auto;padding:var(--spacing-2) var(--spacing-3);border-right:0;border-bottom:1px solid var(--color-border);scrollbar-width:none;flex-direction:row;display:flex;position:sticky;top:0;overflow-x:auto}.shell--strip .sidebar::-webkit-scrollbar{display:none}.shell--strip .brand-mark{gap:0;font-size:0}.shell--strip .brand-mark__logo{width:28px;height:28px}.shell--strip .nav,.shell--strip .nav__group{gap:var(--spacing-1);display:flex}.shell--strip .nav__group+.nav__group{margin:0 0 0 var(--spacing-1);padding-left:var(--spacing-2);border-left:1px solid var(--color-border)}.shell--strip .nav__item{width:auto}.shell--strip .topbar__menu{display:none}}.runs__outcome{gap:var(--spacing-1);justify-items:start;display:grid}.runs__outcome small{font-size:var(--text-xs)}.runs__live{align-items:center;gap:var(--spacing-2);display:inline-flex}.runs__problems{gap:var(--spacing-1);margin:0 0 var(--spacing-2);padding-left:var(--spacing-5);font-size:var(--text-xs);display:grid}.funnel__bar{width:100%;min-width:6rem;height:var(--spacing-2);border-radius:var(--radius-full);background-color:var(--color-surface-sunken);overflow:hidden}.funnel__bar span{border-radius:inherit;background-color:var(--color-primary);height:100%;display:block}.panel--pad{padding:var(--spacing-4) var(--spacing-4) 0}p.panel--pad,.chips.panel--pad{padding-bottom:var(--spacing-4)}.impact{align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--color-border);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.impact--after{color:var(--color-text-muted)}.summary__list{gap:var(--spacing-2);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}
@@ -54,10 +54,10 @@ Error generating stack: `+e.message+`
54
54
  Defaulting to \`null\`.`}md(Ad,`getInvalidValueError`);var jd=xd,Md=Cd;(0,b.forwardRef)(function({value:e,max:t=100,label:n,showValue:r=!1,size:i=`md`,tone:a=`primary`,className:o,...s},c){let l=(0,b.useId)(),u=e===void 0?void 0:Math.min(100,Math.max(0,e/t*100));return(0,x.jsxs)(`div`,{className:R(`z-progress`,o),"data-size":i,"data-tone":a,children:[(n||r)&&(0,x.jsxs)(`div`,{className:`z-progress__head`,children:[n&&(0,x.jsx)(`span`,{id:l,className:`z-progress__label`,children:n}),r&&u!==void 0&&(0,x.jsxs)(`span`,{className:`z-progress__value`,children:[Math.round(u),`%`]})]}),(0,x.jsx)(jd,{ref:c,className:`z-progress__track`,value:e??null,max:t,"aria-labelledby":n?l:void 0,...s,children:(0,x.jsx)(Md,{className:`z-progress__indicator`,style:u===void 0?void 0:{transform:`translateX(-${100-u}%)`}})})]})});var Nd=Object.defineProperty,Pd=(e,t)=>Nd(e,`name`,{value:t,configurable:!0});function Fd(e,[t,n]){return Math.min(n,Math.max(t,e))}Pd(Fd,`clamp`);var Id=Object.defineProperty,Ld=(e,t)=>Id(e,`name`,{value:t,configurable:!0});function Rd(e){let t=b.useRef({value:e,previous:e});return b.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}Ld(Rd,`usePrevious`);var zd=Object.defineProperty,Bd=(e,t)=>zd(e,`name`,{value:t,configurable:!0}),Vd=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),Hd=b.forwardRef(Bd(function(e,t){return(0,x.jsx)(L.span,{...e,ref:t,style:{...Vd,...e.style}})},`VisuallyHidden`)),Ud=Hd,Wd=Object.defineProperty,q=(e,t)=>Wd(e,`name`,{value:t,configurable:!0}),Gd=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Kd=[` `,`Enter`],qd=`Select`,[Jd,Yd,Xd]=Bi(qd),[Zd,Qd]=T(qd,[Xd,bs]),$d=bs(),[ef,tf]=Zd(qd),[nf,rf]=Zd(qd);function af(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=$d(t),[_,v]=b.useState(null),[y,S]=b.useState(null),[C,w]=b.useState(!1),T=G(l),[E,D]=kt({prop:r,defaultProp:i??!1,onChange:a,caller:qd}),[O,k]=kt({prop:o,defaultProp:s,onChange:c,caller:qd}),A=b.useRef(null),j=b.useRef(O);b.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=q(()=>k(j.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,k]);let ee=!_||!!m||!!_.closest(`form`),[M,N]=b.useState(new Set),te=bt(),P=Array.from(M).map(e=>e.props.value).join(`;`),F=b.useCallback(e=>{N(t=>new Set(t).add(e))},[]),ne=b.useCallback(e=>{N(t=>{let n=new Set(t);return n.delete(e),n})},[]),re={required:p,trigger:_,onTriggerChange:v,valueNode:y,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:w,contentId:te,value:O,onValueChange:k,open:E,onOpenChange:D,dir:T,triggerPointerDownPosRef:A,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:M,nativeSelectKey:P,isFormControl:ee};return(0,x.jsx)(Is,{...g,children:(0,x.jsx)(ef,{scope:t,...re,children:(0,x.jsx)(Jd.Provider,{scope:t,children:(0,x.jsx)(nf,{scope:t,onNativeOptionAdd:F,onNativeOptionRemove:ne,children:Xf(h)?h(re):n})})})})}q(af,`SelectProvider`);var of=q(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,x.jsx)(af,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,x.jsxs)(x.Fragment,{children:[n,e?(0,x.jsx)(Yf,{__scopeSelect:t}):null]})})},`Select`),sf=`SelectTrigger`,cf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=$d(n),o=tf(sf,n),s=o.disabled||r,c=P(t,o.onTriggerChange),l=Yd(n),u=b.useRef(`touch`),[d,f,p]=Qf(e=>{let t=l().filter(e=>!e.disabled),n=$f(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=q(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,x.jsx)(Ls,{asChild:!0,...a,children:(0,x.jsx)(L.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":Zf(o.value)?``:void 0,...i,ref:c,onClick:U(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:U(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:U(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&Gd.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),lf=`SelectValue`,uf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=tf(lf,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=P(t,c.onValueNodeChange);A(()=>{l(u)},[l,u]);let f=Zf(c.value);return(0,x.jsx)(L.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,x.jsx)(b.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),df=b.forwardRef(q(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,x.jsx)(L.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[ff,pf]=Zd(`SelectPortal`,{forceMount:void 0}),mf=q(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,x.jsx)(ff,{scope:e.__scopeSelect,forceMount:n,children:(0,x.jsx)(gn,{asChild:!0,...r})})},`SelectPortal`),hf=`SelectContent`,gf=b.forwardRef(q(function(e,t){let n=pf(hf,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=tf(hf,e.__scopeSelect),[o,s]=b.useState();return A(()=>{s(new DocumentFragment)},[]),(0,x.jsx)(bn,{present:r||a.open,children:({present:e})=>e?(0,x.jsx)(Sf,{...i,ref:t}):(0,x.jsx)(_f,{...i,fragment:o})})},`SelectContent`)),_f=b.forwardRef(q(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?j.createPortal((0,x.jsx)(yf,{scope:n,children:(0,x.jsx)(Jd.Slot,{scope:n,children:(0,x.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),vf=10,[yf,bf]=Zd(hf),xf=re(`SelectContent.RemoveScroll`),Sf=b.forwardRef(q(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=tf(hf,n),[y,S]=b.useState(null),[C,w]=b.useState(null),T=P(t,S),[E,D]=b.useState(null),[O,k]=b.useState(null),A=Yd(n),[j,ee]=b.useState(!1),M=b.useRef(!1);b.useEffect(()=>{if(y)return Yr(y)},[y]),jn();let N=b.useCallback(e=>{let[t,...n]=A().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&C&&(C.scrollTop=0),n===r&&C&&(C.scrollTop=C.scrollHeight),n?.focus(),document.activeElement!==i))return},[A,C]),te=b.useCallback(()=>N([E,y]),[N,E,y]);b.useEffect(()=>{j&&te()},[j,te]);let{onOpenChange:F,triggerPointerDownPosRef:ne}=v;b.useEffect(()=>{if(y){let e={x:0,y:0},t=q(t=>{e={x:Math.abs(Math.round(t.pageX)-(ne.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(ne.current?.y??0))}},`handlePointerMove`),n=q(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(y)||F(!1),document.removeEventListener(`pointermove`,t),ne.current=null},`handlePointerUp`);return ne.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[y,F,ne]),b.useEffect(()=>{let e=q(()=>F(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[F]);let[re,ie]=Qf(e=>{let t=A().filter(e=>!e.disabled),n=$f(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ae=b.useCallback((e,t,n)=>{let r=!M.current&&!n;(v.value!==void 0&&v.value===t||r)&&(D(e),r&&(M.current=!0))},[v.value]),oe=b.useCallback(()=>y?.focus(),[y]),se=b.useCallback((e,t,n)=>{let r=!M.current&&!n;(v.value!==void 0&&v.value===t||r)&&k(e)},[v.value]),ce=r===`popper`?wf:Cf,le=ce===wf?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,x.jsx)(yf,{scope:n,content:y,viewport:C,onViewportChange:w,itemRefCallback:ae,selectedItem:E,onItemLeave:oe,itemTextRefCallback:se,focusSelectedItem:te,selectedItemText:O,position:r,isPositioned:j,searchRef:re,children:(0,x.jsx)(Br,{as:xf,allowPinchZoom:!0,children:(0,x.jsx)(nn,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:U(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,x.jsx)(Vt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,x.jsx)(ce,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...le,onPlaced:()=>ee(!0),ref:T,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:U(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ie(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=A().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>N(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),Cf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=tf(hf,n),o=bf(hf,n),[s,c]=b.useState(null),[l,u]=b.useState(null),d=P(t,u),f=Yd(n),p=b.useRef(!1),m=b.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,y=b.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-vf,d=Fd(a,[vf,Math.max(vf,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-vf,d=Fd(a,[vf,Math.max(vf,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-vf*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-vf,D=c-E,O=g.offsetHeight/2,k=g.offsetTop+O,A=m+v+k,j=x-A;if(A<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,h.scrollTop=A-E+h.offsetTop}s.style.margin=`${vf}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);A(()=>y(),[y]);let[S,C]=b.useState();A(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]);let w=b.useCallback(e=>{e&&m.current===!0&&(y(),v?.(),m.current=!1)},[y,v]);return(0,x.jsx)(Tf,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:w,children:(0,x.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,x.jsx)(L.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),wf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=vf,...a}=e,o=$d(n);return(0,x.jsx)(Rs,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[Tf,Ef]=Zd(hf,{}),Df=`SelectViewport`,Of=b.forwardRef(q(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=bf(Df,n),o=Ef(Df,n),s=P(t,a.onViewportChange),c=b.useRef(0);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,x.jsx)(Jd.Slot,{scope:n,children:(0,x.jsx)(L.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:U(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-vf*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[kf,Af]=Zd(`SelectGroup`),jf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,...r}=e,i=bt();return(0,x.jsx)(kf,{scope:n,id:i,children:(0,x.jsx)(L.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})},`SelectGroup`)),Mf=`SelectLabel`,Nf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,...r}=e,i=Af(Mf,n);return(0,x.jsx)(L.div,{id:i.id,...r,ref:t})},`SelectLabel`)),Pf=`SelectItem`,[Ff,If]=Zd(Pf),Lf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=tf(Pf,n),c=bf(Pf,n),l=s.value===r,[u,d]=b.useState(a??``),[f,p]=b.useState(!1),m=P(t,k(e=>c.itemRefCallback?.(e,r,i))),h=bt(),g=b.useRef(`touch`),_=q(()=>{i||(s.onValueChange(r),s.onOpenChange(!1))},`handleSelect`);return(0,x.jsx)(Ff,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:b.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,x.jsx)(Jd.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,x.jsx)(L.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:U(o.onFocus,()=>p(!0)),onBlur:U(o.onBlur,()=>p(!1)),onClick:U(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:U(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:U(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:U(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:U(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:U(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(Kd.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Rf=`SelectItemText`,zf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=tf(Rf,n),s=bf(Rf,n),c=If(Rf,n),l=rf(Rf,n),[u,d]=b.useState(null),f=k(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=P(t,d,c.onItemTextChange,f),m=u?.textContent,h=b.useMemo(()=>(0,x.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return A(()=>(g(h),()=>_(h)),[g,_,h]),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(L.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!Zf(o.value)?j.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),Bf=`SelectItemIndicator`,Vf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,...r}=e;return If(Bf,n).isSelected?(0,x.jsx)(L.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Hf=`SelectScrollUpButton`,Uf=b.forwardRef(q(function(e,t){let n=bf(Hf,e.__scopeSelect),r=Ef(Hf,e.__scopeSelect),[i,a]=b.useState(!1),o=P(t,r.onScrollButtonChange);return A(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};q(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,x.jsx)(Kf,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Wf=`SelectScrollDownButton`,Gf=b.forwardRef(q(function(e,t){let n=bf(Wf,e.__scopeSelect),r=Ef(Wf,e.__scopeSelect),[i,a]=b.useState(!1),o=P(t,r.onScrollButtonChange);return A(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};q(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,x.jsx)(Kf,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Kf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=bf(`SelectScrollButton`,n),o=b.useRef(null),s=Yd(n),c=b.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return b.useEffect(()=>()=>c(),[c]),A(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,x.jsx)(L.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:U(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:U(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:U(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),qf=b.forwardRef(q(function(e,t){let{__scopeSelect:n,...r}=e;return(0,x.jsx)(L.div,{"aria-hidden":!0,...r,ref:t})},`SelectSeparator`)),Jf=`SelectBubbleInput`,Yf=b.forwardRef(q(function({__scopeSelect:e,...t},n){let r=tf(Jf,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=b.useRef(null),m=P(n,p),h=i??``,g=Rd(h),_=Array.from(d).some(e=>(e.props.value??``)===``);return b.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(g!==h&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,h),e.dispatchEvent(t)}},[g,h]),(0,x.jsxs)(L.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...Vd,...t.style},ref:m,defaultValue:h,children:[Zf(i)&&!_?(0,x.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function Xf(e){return typeof e==`function`}q(Xf,`isFunction`);function Zf(e){return e===``||e===void 0}q(Zf,`shouldShowPlaceholder`);function Qf(e){let t=k(e),n=b.useRef(``),r=b.useRef(0),i=b.useCallback(e=>{let i=n.current+e;t(i),q((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=b.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return b.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}q(Qf,`useTypeaheadSearch`);function $f(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=ep(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}q($f,`findNextItem`);function ep(e,t){return e.map((n,r)=>e[(t+r)%e.length])}q(ep,`wrapArray`);var tp=(0,b.forwardRef)(function({label:e,description:t,error:n,placeholder:r=`Select`,size:i=`md`,id:a,className:o,children:s,disabled:c,required:l,...u},d){let f=(0,b.useId)(),p=a??f,m=t?`${p}-description`:void 0,h=n?`${p}-error`:void 0,g=!!n;return(0,x.jsxs)(`div`,{className:R(`z-select`,o),"data-size":i,"data-invalid":g||void 0,"data-disabled":c||void 0,children:[e&&(0,x.jsxs)(`label`,{className:`z-select__label`,htmlFor:p,children:[e,l&&(0,x.jsx)(`span`,{className:`z-select__required`,"aria-hidden":`true`,children:` *`})]}),(0,x.jsxs)(of,{disabled:c,required:l,...u,children:[(0,x.jsxs)(cf,{ref:d,id:p,className:`z-select__trigger z-focusable`,"aria-invalid":g||void 0,"aria-describedby":[m,h].filter(Boolean).join(` `)||void 0,children:[(0,x.jsx)(`span`,{className:`z-select__value`,children:(0,x.jsx)(uf,{placeholder:r})}),(0,x.jsx)(df,{className:`z-select__chevron`,"aria-hidden":`true`,children:(0,x.jsx)(H.ChevronDown,{})})]}),(0,x.jsx)(mf,{children:(0,x.jsxs)(gf,{className:`z-select__content`,position:`popper`,sideOffset:4,collisionPadding:8,"data-size":i,children:[(0,x.jsx)(Uf,{className:`z-select__scroll`,"aria-hidden":`true`,children:(0,x.jsx)(np,{up:!0})}),(0,x.jsx)(Of,{className:`z-select__viewport`,children:s}),(0,x.jsx)(Gf,{className:`z-select__scroll`,"aria-hidden":`true`,children:(0,x.jsx)(np,{})})]})})]}),t&&(0,x.jsx)(`p`,{id:m,className:`z-select__description`,children:t}),n&&(0,x.jsx)(`p`,{id:h,className:`z-select__error`,role:`alert`,children:n})]})});function np({up:e=!1}){return e?(0,x.jsx)(H.ChevronUp,{}):(0,x.jsx)(H.ChevronDown,{})}var rp=(0,b.forwardRef)(function({className:e,children:t,...n},r){return(0,x.jsxs)(Lf,{ref:r,className:R(`z-select__item`,e),...n,children:[(0,x.jsx)(zf,{children:t}),(0,x.jsx)(Vf,{className:`z-select__indicator`,"aria-hidden":`true`,children:(0,x.jsx)(H.Check,{strokeWidth:2})})]})}),ip=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(jf,{ref:n,className:R(`z-select__group`,e),...t})}),ap=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Nf,{ref:n,className:R(`z-select__group-label`,e),...t})}),op=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(qf,{ref:n,className:R(`z-select__separator`,e),...t})}),J=Object.assign(tp,{Item:rp,Group:ip,Label:ap,Separator:op}),sp=Object.defineProperty,cp=(e,t)=>sp(e,`name`,{value:t,configurable:!0}),lp=`horizontal`,up=[`horizontal`,`vertical`],dp=b.forwardRef(cp(function(e,t){let{decorative:n,orientation:r=lp,...i}=e,a=fp(r)?r:lp,o=n?{role:`none`}:{"aria-orientation":a===`vertical`?a:void 0,role:`separator`};return(0,x.jsx)(L.div,{"data-orientation":a,...o,...i,ref:t})},`Separator`));function fp(e){return up.includes(e)}cp(fp,`isValidOrientation`);var pp=dp;(0,b.forwardRef)(function({orientation:e=`horizontal`,label:t,decorative:n=!0,className:r,...i},a){return t&&e===`horizontal`?(0,x.jsxs)(`div`,{className:R(`z-separator z-separator--labelled`,r),"data-orientation":e,role:n?void 0:`separator`,children:[(0,x.jsx)(pp,{ref:a,className:`z-separator__line`,decorative:!0,...i}),(0,x.jsx)(`span`,{className:`z-separator__label`,children:t}),(0,x.jsx)(pp,{className:`z-separator__line`,decorative:!0})]}):(0,x.jsx)(pp,{ref:a,className:R(`z-separator`,r),orientation:e,decorative:n,...i})});var mp=(0,b.createContext)({side:`right`,size:`md`});function hp({side:e=`right`,size:t=`md`,children:n,...r}){return(0,x.jsx)(mp.Provider,{value:{side:e,size:t},children:(0,x.jsx)(ri,{...r,children:n})})}var gp=ai,_p=wi,vp=(0,b.forwardRef)(function({className:e,children:t,showClose:n=!0,...r},i){let{side:a,size:o}=(0,b.useContext)(mp);return(0,x.jsxs)(li,{children:[(0,x.jsx)(di,{className:`z-sheet__overlay`}),(0,x.jsxs)(hi,{ref:i,className:R(`z-sheet`,e),"data-side":a,"data-size":o,...r,children:[t,n&&(0,x.jsx)(wi,{className:`z-sheet__close z-focusable`,"aria-label":`Close`,children:(0,x.jsx)(H.Close,{})})]})]})}),yp=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(bi,{ref:n,className:R(`z-sheet__title`,e),...t})}),bp=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Si,{ref:n,className:R(`z-sheet__description`,e),...t})}),xp=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(`div`,{ref:n,className:R(`z-sheet__footer`,e),...t})}),Sp=Object.assign(hp,{Trigger:gp,Content:vp,Title:yp,Description:bp,Footer:xp,Close:_p}),Cp=(0,b.forwardRef)(function({values:e,tone:t=`primary`,height:n=32,area:r=!0,className:i,...a},o){let[s,c]=ze(),l=Math.min(...e,0),u=Math.max(...e,1),d={width:c,height:n,top:2,right:1,bottom:2,left:1},f=e.map((t,n)=>[He(d,n,e.length),Ue(d,t,l,u===l?l+1:u)]),p=e[e.length-1],m=e[0],h=p===void 0||m===void 0?`flat`:p>m?`up`:p<m?`down`:`flat`;return(0,x.jsxs)(`span`,{ref:wp(o,s),className:R(`z-sparkline`,i),"data-tone":t,"data-trend":h,...a,children:[(0,x.jsx)(`span`,{className:`z-sr-only`,children:e.length?`${e.length} points, from ${Ke(m)} to ${Ke(p)}`:`no data`}),c>0&&e.length>0&&(0,x.jsx)(`svg`,{className:`z-sparkline__svg`,width:c,height:n,viewBox:`0 0 ${c} ${n}`,"aria-hidden":`true`,children:(0,x.jsxs)(`g`,{"data-tone":t,children:[r&&(0,x.jsx)(`path`,{className:`z-chart__area`,d:Ge(f,n-d.bottom,!0)}),(0,x.jsx)(`path`,{className:`z-chart__line z-sparkline__line`,d:We(f,!0)})]})})]})});function wp(...e){return t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)}}var Tp=Object.defineProperty,Ep=(e,t)=>Tp(e,`name`,{value:t,configurable:!0}),Dp=`Switch`,[Op,kp]=T(Dp),[Ap,jp]=Op(Dp);function Mp(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=kt({prop:n,defaultProp:i??!1,onChange:c,caller:Dp}),[m,h]=b.useState(null),[g,_]=b.useState(null),v=b.useRef(!1),[y,S]=b.useReducer(e=>e+1,0),C={checked:f,setChecked:p,disabled:a,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:v,userInteractionCount:y,onUserInteraction:S,required:l,defaultChecked:i,isFormControl:!m||!!o||!!m.closest(`form`),bubbleInput:g,setBubbleInput:_};return(0,x.jsx)(Ap,{scope:t,...C,children:Bp(d)?d(C):r})}Ep(Mp,`SwitchProvider`);var Np=`SwitchTrigger`,Pp=b.forwardRef(Ep(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,form:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:m,bubbleInput:h}=jp(Np,e),g=P(r,u),_=b.useRef(c);return b.useEffect(()=>{let e=a?i?.ownerDocument.getElementById(a):i?.form;if(e instanceof HTMLFormElement){let t=Ep(()=>d(_.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[i,a,d]),(0,x.jsx)(L.button,{type:`button`,role:`switch`,"aria-checked":c,"aria-required":l,"data-state":Vp(c),"data-disabled":s?``:void 0,disabled:s,value:o,...n,ref:g,onClick:U(t,e=>{p(),d(e=>!e),h&&m&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`SwitchTrigger`)),Fp=b.forwardRef(Ep(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,x.jsx)(Mp,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Pp,{...d,ref:t,__scopeSwitch:n}),e&&(0,x.jsx)(zp,{__scopeSwitch:n})]})})},`Switch`)),Ip=`SwitchThumb`,Lp=b.forwardRef(Ep(function(e,t){let{__scopeSwitch:n,...r}=e,i=jp(Ip,n);return(0,x.jsx)(L.span,{"data-state":Vp(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),Rp=`SwitchBubbleInput`,zp=b.forwardRef(Ep(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:m,setBubbleInput:h}=jp(Rp,e),g=P(r,h),_=hs(i),v=b.useRef(!1),y=b.useRef(s),S=b.useRef(o);b.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==S.current;S.current=o;let i=y.current!==s;y.current=s;let c=!(r&&a.current);if(i&&n){v.current=!r;let t=new Event(`click`,{bubbles:c});n.call(e,s),e.dispatchEvent(t),v.current=!1}},[m,s,a,o]);let C=b.useRef(s);return(0,x.jsx)(L.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??C.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:g,onClick:U(t,e=>{v.current&&e.stopPropagation()}),style:{...n.style,..._,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function Bp(e){return typeof e==`function`}Ep(Bp,`isFunction`);function Vp(e){return e?`checked`:`unchecked`}Ep(Vp,`getState`);var Hp=(0,b.forwardRef)(function({label:e,description:t,size:n=`md`,className:r,id:i,disabled:a,...o},s){let c=(0,b.useId)(),l=i??c,u=t?`${l}-description`:void 0;return(0,x.jsxs)(`div`,{className:R(`z-switch`,r),"data-size":n,"data-disabled":a||void 0,children:[(0,x.jsx)(`span`,{className:`z-switch__box`,children:(0,x.jsx)(Fp,{ref:s,id:l,className:`z-switch__control z-focusable`,disabled:a,"aria-describedby":u,...o,children:(0,x.jsx)(Lp,{className:`z-switch__thumb`})})}),(e||t)&&(0,x.jsxs)(`div`,{className:`z-switch__text`,children:[e&&(0,x.jsx)(`label`,{className:`z-switch__label`,htmlFor:l,children:e}),t&&(0,x.jsx)(`p`,{id:u,className:`z-switch__description`,children:t})]})]})}),Up=(0,b.forwardRef)(function({density:e=`md`,stickyHeader:t=!1,className:n,style:r,...i},a){return(0,x.jsx)(`div`,{className:R(`z-table`,n),style:r,"data-density":e,"data-sticky":t||void 0,children:(0,x.jsx)(`table`,{ref:a,className:`z-table__table`,...i})})}),Wp=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(`thead`,{ref:n,className:R(`z-table__head`,e),...t})}),Gp=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(`tbody`,{ref:n,className:R(`z-table__body`,e),...t})}),Kp=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(`tfoot`,{ref:n,className:R(`z-table__foot`,e),...t})}),qp=(0,b.forwardRef)(function({selected:e,interactive:t,className:n,...r},i){return(0,x.jsx)(`tr`,{ref:i,className:R(`z-table__row`,n),"data-selected":e||void 0,"data-interactive":t||void 0,"aria-selected":e,...r})}),Jp=(0,b.forwardRef)(function({align:e=`start`,numeric:t,className:n,...r},i){return(0,x.jsx)(`td`,{ref:i,className:R(`z-table__cell`,n),"data-align":e,"data-numeric":t||void 0,...r})}),Yp=(0,b.forwardRef)(function({align:e=`start`,numeric:t,className:n,scope:r=`col`,...i},a){return(0,x.jsx)(`th`,{ref:a,className:R(`z-table__cell z-table__cell--head`,n),"data-align":e,"data-numeric":t||void 0,scope:r,...i})}),Y=Object.assign(Up,{Head:Wp,Body:Gp,Foot:Kp,Row:qp,Cell:Jp,HeadCell:Yp}),Xp=(0,b.forwardRef)(function({label:e,description:t,error:n,size:r=`md`,resize:i=`vertical`,font:a=`sans`,rows:o=3,className:s,id:c,disabled:l,readOnly:u,required:d,...f},p){let m=(0,b.useId)(),h=c??m,g=t?`${h}-description`:void 0,_=n?`${h}-error`:void 0,v=!!n;return(0,x.jsxs)(`div`,{className:R(`z-textarea`,s),"data-size":r,"data-resize":i,"data-font":a,"data-invalid":v||void 0,"data-disabled":l||void 0,"data-readonly":u||void 0,children:[e&&(0,x.jsxs)(`label`,{className:`z-textarea__label`,htmlFor:h,children:[e,d&&(0,x.jsx)(`span`,{className:`z-textarea__required`,"aria-hidden":`true`,children:` *`})]}),(0,x.jsx)(`textarea`,{ref:p,id:h,className:`z-textarea__control z-focusable`,rows:o,disabled:l,readOnly:u,required:d,"aria-invalid":v||void 0,"aria-describedby":[g,_].filter(Boolean).join(` `)||void 0,...f}),t&&(0,x.jsx)(`p`,{id:g,className:`z-textarea__description`,children:t}),n&&(0,x.jsx)(`p`,{id:_,className:`z-textarea__error`,role:`alert`,children:n})]})}),Zp=(0,b.forwardRef)(function({label:e,description:t,error:n,size:r=`md`,font:i=`sans`,leadingIcon:a,trailingIcon:o,className:s,id:c,disabled:l,readOnly:u,required:d,...f},p){let m=(0,b.useId)(),h=c??m,g=t?`${h}-description`:void 0,_=n?`${h}-error`:void 0,v=!!n;return(0,x.jsxs)(`div`,{className:R(`z-field`,s),"data-size":r,"data-font":i,"data-invalid":v||void 0,"data-disabled":l||void 0,"data-readonly":u||void 0,children:[e&&(0,x.jsxs)(`label`,{className:`z-field__label`,htmlFor:h,children:[e,d&&(0,x.jsx)(`span`,{className:`z-field__required`,"aria-hidden":`true`,children:` *`})]}),(0,x.jsxs)(`div`,{className:`z-field__control`,children:[a&&(0,x.jsx)(`span`,{className:`z-icon z-field__icon`,"aria-hidden":`true`,children:a}),(0,x.jsx)(`input`,{ref:p,id:h,className:`z-field__input z-focusable`,disabled:l,readOnly:u,required:d,"aria-invalid":v||void 0,"aria-describedby":[g,_].filter(Boolean).join(` `)||void 0,...f}),o&&(0,x.jsx)(`span`,{className:`z-icon z-field__icon`,"aria-hidden":`true`,children:o})]}),t&&(0,x.jsx)(`p`,{id:g,className:`z-field__description`,children:t}),n&&(0,x.jsx)(`p`,{id:_,className:`z-field__error`,role:`alert`,children:n})]})}),Qp=Object.defineProperty,$p=(e,t)=>Qp(e,`name`,{value:t,configurable:!0}),em=`ToastProvider`,[tm,nm,rm]=Bi(`Toast`),[im,am]=T(`Toast`,[rm]),[om,sm]=im(em),cm=$p(e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,announcerContainer:o,children:s}=e,[c,l]=b.useState(null),[u,d]=b.useState(0),f=b.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${em}\`. Expected non-empty \`string\`.`),(0,x.jsx)(tm.Provider,{scope:t,children:(0,x.jsx)(om,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:u,viewport:c,onViewportChange:l,onToastAdd:b.useCallback(()=>d(e=>e+1),[]),onToastRemove:b.useCallback(()=>d(e=>e-1),[]),isClosePausedRef:f,announcerContainer:o,children:s})})},`ToastProvider`),lm=`ToastViewport`,um=[`F8`],dm=`toast.viewportPause`,fm=`toast.viewportResume`,pm=b.forwardRef($p(function(e,t){let{__scopeToast:n,hotkey:r=um,label:i=`Notifications ({hotkey})`,...a}=e,o=sm(lm,n),s=nm(n),c=b.useRef(null),l=b.useRef(null),u=b.useRef(null),d=b.useRef(null),f=P(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;b.useEffect(()=>{let e=$p(e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()},`handleKeyDown`);return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),b.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=$p(()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(dm);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},`handlePause`),r=$p(()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(fm);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},`handleResume`),i=$p(t=>{e.contains(t.relatedTarget)||r()},`handleFocusOutResume`),a=$p(()=>{e.contains(document.activeElement)||r()},`handlePointerLeaveResume`);return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=b.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...Rm(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return b.useEffect(()=>{let e=d.current;if(e){let t=$p(t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);zm(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}},`handleKeyDown`);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,x.jsxs)(Xt,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,x.jsx)(hm,{ref:l,onFocusFromOutsideViewport:()=>{zm(h({tabbingDirection:`forwards`}))}}),(0,x.jsx)(tm.Slot,{scope:n,children:(0,x.jsx)(L.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,x.jsx)(hm,{ref:u,onFocusFromOutsideViewport:()=>{zm(h({tabbingDirection:`backwards`}))}})]})},`ToastViewport`)),mm=`ToastFocusProxy`,hm=b.forwardRef($p(function(e,t){let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=sm(mm,n);return(0,x.jsx)(Hd,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})},`ToastFocusProxy`)),gm=`Toast`,_m=`toast.swipeStart`,vm=`toast.swipeMove`,ym=`toast.swipeCancel`,bm=`toast.swipeEnd`,xm=b.forwardRef($p(function(e,t){let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=kt({prop:r,defaultProp:i??!0,onChange:a,caller:gm});return(0,x.jsx)(bn,{present:n||s,children:(0,x.jsx)(wm,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:k(e.onPause),onResume:k(e.onResume),onSwipeStart:U(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:U(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:U(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:U(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})},`Toast`)),[Sm,Cm]=im(gm,{onClose(){}}),wm=b.forwardRef($p(function(e,t){let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=sm(gm,n),g=nm(n),[_,v]=b.useState(null),y=P(t,v),S=b.useRef(null),C=b.useRef(null),w=i||h.duration,T=b.useRef(0),E=b.useRef(w),D=b.useRef(0),{onToastAdd:O,onToastRemove:A}=h,ee=k(()=>{_?.contains(document.activeElement)&&h.viewport?.focus(),o()}),M=b.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(D.current),T.current=new Date().getTime(),D.current=window.setTimeout(ee,e))},[ee]);b.useEffect(()=>{let e=h.viewport;if(e){let t=$p(()=>{M(E.current),l?.()},`handleResume`),n=$p(()=>{let e=new Date().getTime()-T.current;E.current-=e,window.clearTimeout(D.current),c?.()},`handlePause`);return e.addEventListener(dm,n),e.addEventListener(fm,t),()=>{e.removeEventListener(dm,n),e.removeEventListener(fm,t)}}},[h.viewport,w,c,l,M]),b.useEffect(()=>{a&&!h.isClosePausedRef.current&&M(w)},[a,w,h.isClosePausedRef,M]),b.useEffect(()=>()=>{window.clearTimeout(D.current)},[]),b.useEffect(()=>(O(),()=>A()),[O,A]);let N=b.useMemo(()=>_?Nm(_):null,[_]);return h.viewport?(0,x.jsxs)(x.Fragment,{children:[N&&(0,x.jsx)(Tm,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:N}),(0,x.jsx)(Sm,{scope:n,onClose:ee,children:j.createPortal((0,x.jsx)(tm.ItemSlot,{scope:n,children:(0,x.jsx)(Yt,{asChild:!0,onEscapeKeyDown:U(s,e=>{g().some(t=>t.ref.current?.contains(e.target))||ee()}),children:(0,x.jsx)(L.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:y,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:U(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||ee())}),onPointerDown:U(e.onPointerDown,e=>{e.button===0&&(S.current={x:e.clientX,y:e.clientY})}),onPointerMove:U(e.onPointerMove,e=>{if(!S.current)return;let t=e.clientX-S.current.x,n=e.clientY-S.current.y,r=!!C.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(C.current=l,Pm(vm,d,f,{discrete:!1})):Fm(l,h.swipeDirection,c)?(C.current=l,Pm(_m,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(S.current=null)}),onPointerUp:U(e.onPointerUp,e=>{let t=C.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),C.current=null,S.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};Fm(t,h.swipeDirection,h.swipeThreshold)?Pm(bm,p,r,{discrete:!0}):Pm(ym,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null},`ToastImpl`)),Tm=$p(e=>{let{__scopeToast:t,children:n,...r}=e,i=sm(gm,t),[a,o]=b.useState(!1),[s,c]=b.useState(!1);return Im(()=>o(!0)),b.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,x.jsx)(gn,{asChild:!0,container:i.announcerContainer||void 0,children:(0,x.jsx)(Hd,{...r,children:a&&(0,x.jsxs)(x.Fragment,{children:[i.label,` `,n]})})})},`ToastAnnounce`),Em=b.forwardRef($p(function(e,t){let{__scopeToast:n,...r}=e;return(0,x.jsx)(L.div,{...r,ref:t})},`ToastTitle`)),Dm=b.forwardRef($p(function(e,t){let{__scopeToast:n,...r}=e;return(0,x.jsx)(L.div,{...r,ref:t})},`ToastDescription`)),Om=`ToastAction`,km=b.forwardRef($p(function(e,t){let{altText:n,...r}=e;return n.trim()?(0,x.jsx)(Mm,{altText:n,asChild:!0,children:(0,x.jsx)(jm,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Om}\`. Expected non-empty \`string\`.`),null)},`ToastAction`)),Am=`ToastClose`,jm=b.forwardRef($p(function(e,t){let{__scopeToast:n,...r}=e,i=Cm(Am,n);return(0,x.jsx)(Mm,{asChild:!0,children:(0,x.jsx)(L.button,{type:`button`,...r,ref:t,onClick:U(e.onClick,i.onClose)})})},`ToastClose`)),Mm=b.forwardRef($p(function(e,t){let{__scopeToast:n,altText:r,...i}=e;return(0,x.jsx)(L.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})},`ToastAnnounceExclude`));function Nm(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),Lm(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...Nm(e))}}}),t}$p(Nm,`getAnnounceTextContent`);function Pm(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?ye(i,a):i.dispatchEvent(a)}$p(Pm,`handleAndDispatchCustomEvent`);var Fm=$p((e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n},`isDeltaInDirection`);function Im(e=()=>{}){let t=k(e);A(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}$p(Im,`useNextFrame`);function Lm(e){return e.nodeType===e.ELEMENT_NODE}$p(Lm,`isHTMLElement`);function Rm(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:$p(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}$p(Rm,`getTabbableCandidates`);function zm(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}$p(zm,`focusFirst`);var Bm=cm,Vm=pm,Hm=xm,Um=Em,Wm=Dm,Gm=km,Km=jm,qm=1,Jm=[],Ym=3,Xm=new Set;function Zm(){for(let e of Xm)e(Jm)}function X(e){let t=qm++,n={id:t,tone:`neutral`,...e};return Jm=[...Jm,n].slice(-Ym),Zm(),t}X.dismiss=e=>{Jm=e===void 0?[]:Jm.filter(t=>t.id!==e),Zm()};function Qm({position:e=`bottom-right`,duration:t=5e3,max:n=3,className:r,children:i}){let[a,o]=(0,b.useState)(Jm);(0,b.useEffect)(()=>(Xm.add(o),()=>{Xm.delete(o)}),[]),(0,b.useEffect)(()=>{Ym=Math.max(1,n)},[n]);let s=e.endsWith(`right`)?`right`:`left`;return(0,x.jsxs)(Bm,{swipeDirection:s,duration:t,children:[i,a.length>1&&(0,x.jsx)(Hm,{className:`z-toast z-toast--clear`,duration:1/0,onOpenChange:()=>void 0,children:(0,x.jsxs)(Km,{className:`z-toast__clear z-focusable`,"aria-label":`Dismiss all notifications`,onClick:()=>X.dismiss(),children:[`Dismiss all (`,a.length,`)`]})}),a.map(e=>(0,x.jsxs)(Hm,{className:`z-toast`,"data-tone":e.tone,duration:e.duration,onOpenChange:t=>{t||X.dismiss(e.id)},children:[(0,x.jsxs)(`div`,{className:`z-toast__body`,children:[(0,x.jsx)(Um,{className:`z-toast__title`,children:e.title}),e.description&&(0,x.jsx)(Wm,{className:`z-toast__description`,children:e.description})]}),e.action&&(0,x.jsx)(Gm,{className:`z-toast__action z-focusable`,altText:e.action.label,onClick:e.action.onClick,children:e.action.label}),(0,x.jsx)(Km,{className:`z-toast__close z-focusable`,"aria-label":`Dismiss`,children:(0,x.jsx)(H.Close,{})})]},e.id)),(0,x.jsx)(Vm,{className:R(`z-toast__viewport`,r),"data-position":e,label:`Notifications`})]})}var $m={Provider:Qm},eh=Object.defineProperty,th=(e,t)=>eh(e,`name`,{value:t,configurable:!0}),[nh,rh]=T(`Tooltip`,[bs]),ih=bs(),ah=`TooltipProvider`,oh=700,sh=`tooltip.open`,[ch,lh]=nh(ah),uh=th(e=>{let{__scopeTooltip:t,delayDuration:n=oh,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=b.useRef(!0),s=b.useRef(!1),c=b.useRef(0);return b.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,x.jsx)(ch,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:b.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:b.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:b.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),dh=`Tooltip`,[fh,ph]=nh(dh),mh=th(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=lh(dh,e.__scopeTooltip),l=ih(t),[u,d]=b.useState(null),[f,p]=b.useState(void 0),m=bt(),h=b.useRef(0),g=o??c.disableHoverableContent,_=s??c.delayDuration,v=b.useRef(!1),[y,S]=kt({prop:r,defaultProp:i??!1,onChange:th(e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(sh))):c.onClose(),a?.(e)},`onChange`),caller:dh}),C=b.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),w=b.useCallback(()=>{window.clearTimeout(h.current),h.current=0,v.current=!1,S(!0)},[S]),T=b.useCallback(()=>{window.clearTimeout(h.current),h.current=0,S(!1)},[S]),E=b.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{v.current=!0,S(!0),h.current=0},_)},[_,S]);b.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]);let D=f??m;return(0,x.jsx)(Is,{...l,children:(0,x.jsx)(fh,{scope:t,contentId:D,setContentId:p,open:y,stateAttribute:C,trigger:u,onTriggerChange:d,onTriggerEnter:b.useCallback(()=>{c.isOpenDelayedRef.current?E():w()},[c.isOpenDelayedRef,E,w]),onTriggerLeave:b.useCallback(()=>{g?T():(window.clearTimeout(h.current),h.current=0)},[T,g]),onOpen:w,onClose:T,disableHoverableContent:g,children:n})})},`Tooltip`),hh=`TooltipTrigger`,gh=b.forwardRef(th(function(e,t){let{__scopeTooltip:n,...r}=e,i=ph(hh,n),a=lh(hh,n),o=ih(n),s=P(t,b.useRef(null),i.onTriggerChange),c=b.useRef(!1),l=b.useRef(!1),u=b.useCallback(()=>c.current=!1,[]);return b.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,x.jsx)(Ls,{asChild:!0,...o,children:(0,x.jsx)(L.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:U(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:U(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:U(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:U(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:U(e.onBlur,i.onClose),onClick:U(e.onClick,i.onClose)})})},`TooltipTrigger`)),_h=`TooltipPortal`,[vh,yh]=nh(_h,{forceMount:void 0}),bh=th(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=ph(_h,t);return(0,x.jsx)(vh,{scope:t,forceMount:n,children:(0,x.jsx)(bn,{present:n||a.open,children:(0,x.jsx)(gn,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),xh=`TooltipContent`,Sh=b.forwardRef(th(function(e,t){let n=yh(xh,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=ph(xh,e.__scopeTooltip);return(0,x.jsx)(bn,{present:r||o.open,children:o.disableHoverableContent?(0,x.jsx)(Th,{side:i,...a,ref:t}):(0,x.jsx)(Ch,{side:i,...a,ref:t})})},`TooltipContent`)),Ch=b.forwardRef(th(function(e,t){let n=ph(xh,e.__scopeTooltip),r=lh(xh,e.__scopeTooltip),i=b.useRef(null),a=P(t,i),[o,s]=b.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=b.useCallback(()=>{s(null),d(!1)},[d]),p=b.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Oh(r,Dh(r,n.getBoundingClientRect())),a=kh(t.getBoundingClientRect()),o=jh([...i,...a]);s(o),d(!0)},[d]);return b.useEffect(()=>()=>f(),[f]),b.useEffect(()=>{if(c&&u){let e=th(e=>p(e,u),`handleTriggerLeave`),t=th(e=>p(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),b.useEffect(()=>{if(o){let e=th(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Ah(n,o);r?f():i&&(f(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,x.jsx)(Th,{...e,ref:a})},`TooltipContentHoverable`)),wh=oe(`TooltipContent`),Th=b.forwardRef(th(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=ph(xh,n),u=ih(n),{onClose:d}=l;b.useEffect(()=>(document.addEventListener(sh,d),()=>document.removeEventListener(sh,d)),[d]),b.useEffect(()=>{if(l.trigger){let e=th(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:f}=l;return A(()=>(f(a),()=>{f(void 0)}),[a,f]),(0,x.jsx)(Vt,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,x.jsxs)(Rs,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,x.jsx)(wh,{children:r}),i?(0,x.jsx)(Ud,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`)),Eh=b.forwardRef(th(function(e,t){let{__scopeTooltip:n,...r}=e,i=ih(n);return(0,x.jsx)(zs,{...i,...r,ref:t})},`TooltipArrow`));function Dh(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}th(Dh,`getExitSideFromRect`);function Oh(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}th(Oh,`getPaddedExitPoints`);function kh(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}th(kh,`getPointsFromRect`);function Ah(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}th(Ah,`isPointInPolygon`);function jh(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Mh(t)}th(jh,`getHull`);function Mh(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}th(Mh,`getHullPresorted`);var Nh=uh,Ph=mh,Fh=gh,Ih=bh,Lh=Sh,Rh=Eh;function zh({content:e,children:t,side:n=`top`,delay:r=300,open:i,defaultOpen:a,onOpenChange:o}){return(0,x.jsxs)(Ph,{open:i,defaultOpen:a,onOpenChange:o,delayDuration:r,children:[(0,x.jsx)(Fh,{asChild:!0,children:t}),(0,x.jsx)(Ih,{children:(0,x.jsxs)(Lh,{className:`z-tooltip`,side:n,sideOffset:6,collisionPadding:8,children:[e,(0,x.jsx)(Rh,{className:`z-tooltip__arrow`,width:10,height:5})]})})]})}var Bh=Object.assign(zh,{Provider:Nh}),Vh=Object.defineProperty,Hh=(e,t)=>Vh(e,`name`,{value:t,configurable:!0}),Uh=`Checkbox`,[Wh,Gh]=T(Uh),[Kh,qh]=Wh(Uh);function Jh(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=kt({prop:n,defaultProp:i??!1,onChange:c,caller:Uh}),[m,h]=b.useState(null),[g,_]=b.useState(null),v=b.useRef(!1),[y,S]=b.useReducer(e=>e+1,0),C=!m||!!o||!!m.closest(`form`),w={checked:f,disabled:a,setChecked:p,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:v,userInteractionCount:y,onUserInteraction:S,required:l,defaultChecked:!rg(i)&&i,isFormControl:C,bubbleInput:g,setBubbleInput:_};return(0,x.jsx)(Kh,{scope:t,...w,children:ng(d)?d(w):r})}Hh(Jh,`CheckboxProvider`);var Yh=`CheckboxTrigger`,Xh=b.forwardRef(Hh(function({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i){let{control:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:m,bubbleInput:h}=qh(Yh,e),g=P(i,u),_=b.useRef(c);return b.useEffect(()=>{let e=a?.form;if(e){let t=Hh(()=>d(_.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,d]),(0,x.jsx)(L.button,{type:`button`,role:`checkbox`,"aria-checked":rg(c)?`mixed`:c,"aria-required":l,"data-state":ig(c),"data-disabled":s?``:void 0,disabled:s,value:o,...r,ref:g,onKeyDown:U(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:U(n,e=>{p(),d(e=>rg(e)?!0:!e),h&&m&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`CheckboxTrigger`)),Zh=b.forwardRef(Hh(function(e,t){let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,x.jsx)(Jh,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Xh,{...d,ref:t,__scopeCheckbox:n}),e&&(0,x.jsx)(tg,{__scopeCheckbox:n})]})})},`Checkbox`)),Qh=`CheckboxIndicator`,$h=b.forwardRef(Hh(function(e,t){let{__scopeCheckbox:n,forceMount:r,...i}=e,a=qh(Qh,n);return(0,x.jsx)(bn,{present:r||rg(a.checked)||a.checked===!0,children:(0,x.jsx)(L.span,{"data-state":ig(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})},`CheckboxIndicator`)),eg=`CheckboxBubbleInput`,tg=b.forwardRef(Hh(function({__scopeCheckbox:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:m,setBubbleInput:h}=qh(eg,e),g=P(r,h),_=hs(i),v=b.useRef(!1),y=b.useRef(s),S=b.useRef(o);b.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==S.current;S.current=o;let i=y.current!==s;y.current=s;let c=!(r&&a.current);if(i&&n){v.current=!r;let t=new Event(`click`,{bubbles:c});e.indeterminate=rg(s),n.call(e,!rg(s)&&s),e.dispatchEvent(t),v.current=!1}},[m,s,a,o]);let C=b.useRef(!rg(s)&&s);return(0,x.jsx)(L.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??C.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:g,onClick:U(t,e=>{v.current&&e.stopPropagation()}),style:{...n.style,..._,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`CheckboxBubbleInput`));function ng(e){return typeof e==`function`}Hh(ng,`isFunction`);function rg(e){return e===`indeterminate`}Hh(rg,`isIndeterminate`);function ig(e){return rg(e)?`indeterminate`:e?`checked`:`unchecked`}Hh(ig,`getState`),(0,b.forwardRef)(function({label:e,description:t,size:n=`md`,className:r,id:i,disabled:a,...o},s){let c=(0,b.useId)(),l=i??c,u=t?`${l}-description`:void 0;return(0,x.jsxs)(`div`,{className:R(`z-checkbox`,r),"data-size":n,"data-disabled":a||void 0,children:[(0,x.jsx)(`span`,{className:`z-checkbox__box`,children:(0,x.jsx)(Zh,{ref:s,id:l,className:`z-checkbox__control z-focusable`,disabled:a,"aria-describedby":u,...o,children:(0,x.jsx)($h,{className:`z-checkbox__indicator`,forceMount:!0,children:(0,x.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{className:`z-checkbox__check`,d:`M3.5 8.5l3 3 6-7`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,x.jsx)(`path`,{className:`z-checkbox__dash`,d:`M4 8h8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})]})})})}),(e||t)&&(0,x.jsxs)(`div`,{className:`z-checkbox__text`,children:[e&&(0,x.jsx)(`label`,{className:`z-checkbox__label`,htmlFor:l,children:e}),t&&(0,x.jsx)(`p`,{id:u,className:`z-checkbox__description`,children:t})]})]})});var ag=(0,b.forwardRef)(function({code:e,language:t,showCopy:n=!0,wrap:r=!1,className:i,...a},o){let[s,c]=(0,b.useState)(!1),l=async()=>{try{await navigator.clipboard.writeText(e),c(!0),setTimeout(()=>c(!1),1500)}catch{}};return(0,x.jsxs)(`div`,{ref:o,className:R(`z-codeblock`,i),"data-wrap":r||void 0,...a,children:[(t||n)&&(0,x.jsxs)(`div`,{className:`z-codeblock__head`,children:[(0,x.jsx)(`span`,{className:`z-codeblock__language`,children:t??``}),n&&(0,x.jsx)(B,{variant:`ghost`,size:`sm`,className:`z-codeblock__copy`,onClick:l,"aria-live":`polite`,children:s?`Copied`:`Copy`})]}),(0,x.jsx)(`pre`,{className:`z-codeblock__pre`,children:(0,x.jsx)(`code`,{children:e})})]})});function og(e){return e.trim().replace(/^\|/,``).replace(/\|$/,``).split(`|`).map(e=>e.trim())}var sg=e=>/^\s*\|.*\|\s*$/.test(e),cg=e=>/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/.test(e);function lg(e){let t=e.replace(/\r\n/g,`
55
55
  `).split(`
56
56
  `),n=[],r=0;for(;r<t.length;){let e=t[r];if(e.trim()===``){r++;continue}let i=/^```\s*([\w+-]*)\s*$/.exec(e);if(i){let e=i[1]??``,a=[];for(r++;r<t.length&&!/^```\s*$/.test(t[r]);)a.push(t[r++]);r++,n.push({kind:`code`,language:e,code:a.join(`
57
- `)});continue}let a=/^(#{1,6})\s+(.*)$/.exec(e);if(a){n.push({kind:`heading`,level:a[1].length,children:ug(a[2])}),r++;continue}if(/^(-{3,}|\*{3,}|_{3,})\s*$/.test(e)){n.push({kind:`rule`}),r++;continue}if(sg(e)&&r+1<t.length&&cg(t[r+1])){let i=og(e).map(ug);r+=2;let a=[];for(;r<t.length&&sg(t[r]);)a.push(og(t[r++]).map(ug));n.push({kind:`table`,header:i,rows:a});continue}if(/^>\s?/.test(e)){let e=[];for(;r<t.length&&/^>\s?/.test(t[r]);)e.push(t[r++].replace(/^>\s?/,``));n.push({kind:`quote`,children:ug(e.join(` `))});continue}let o=/^\s*([-*+]|\d+[.)])\s+/.exec(e);if(o){let e=/\d/.test(o[1]),i=[];for(;r<t.length;){let e=/^\s*([-*+]|\d+[.)])\s+(.*)$/.exec(t[r]);if(!e)break;let n=e[2];for(r++;r<t.length&&/^\s{2,}\S/.test(t[r])&&!/^\s*([-*+]|\d+[.)])\s+/.test(t[r]);)n+=` `+t[r++].trim();i.push(ug(n))}n.push({kind:`list`,ordered:e,items:i});continue}let s=[];for(;r<t.length&&t[r].trim()!==``&&!/^```/.test(t[r])&&!/^(#{1,6})\s/.test(t[r])&&!/^\s*([-*+]|\d+[.)])\s+/.test(t[r])&&!/^>\s?/.test(t[r])&&!(sg(t[r])&&r+1<t.length&&cg(t[r+1]));)s.push(t[r++].trim());n.push({kind:`paragraph`,children:ug(s.join(` `))})}return n}function ug(e){let t=[],n=e,r=e=>{let n=t[t.length-1];e.kind===`text`&&n?.kind===`text`?n.text+=e.text:t.push(e)};for(;n.length;){let e=/^`([^`]+)`/.exec(n);if(e){r({kind:`code`,text:e[1]}),n=n.slice(e[0].length);continue}let t=/^\[([^\]]+)\]\((https?:\/\/[^\s)]+|\/[^\s)]*|#[^\s)]*)\)/.exec(n);if(t){r({kind:`link`,href:t[2],children:ug(t[1])}),n=n.slice(t[0].length);continue}let i=/^(\*\*|__)(.+?)\1/.exec(n);if(i){r({kind:`strong`,children:ug(i[2])}),n=n.slice(i[0].length);continue}let a=/^(\*|_)([^*_]+?)\1/.exec(n);if(a){r({kind:`em`,children:ug(a[2])}),n=n.slice(a[0].length);continue}let o=n.slice(1).search(/[`*_[]/),s=o===-1?n.length:o+1;r({kind:`text`,text:n.slice(0,s)}),n=n.slice(s)}return t}var dg=(0,b.forwardRef)(function({text:e,streaming:t=!1,className:n,...r},i){let a=lg(e);return(0,x.jsxs)(`div`,{ref:i,className:R(`z-markdown`,n),"data-streaming":t||void 0,...r,children:[a.map((e,n)=>(0,x.jsx)(fg,{block:e,last:n===a.length-1,streaming:t},n)),t&&a.length===0&&(0,x.jsx)(`span`,{className:`z-markdown__cursor`,"aria-hidden":`true`})]})});function fg({block:e,last:t,streaming:n}){let r=t&&n?(0,x.jsx)(`span`,{className:`z-markdown__cursor`,"aria-hidden":`true`}):null;switch(e.kind){case`paragraph`:return(0,x.jsxs)(`p`,{children:[(0,x.jsx)(pg,{nodes:e.children}),r]});case`heading`:{let t=`h${e.level}`;return(0,x.jsxs)(t,{children:[(0,x.jsx)(pg,{nodes:e.children}),r]})}case`list`:{let t=e.ordered?`ol`:`ul`;return(0,x.jsx)(t,{children:e.items.map((t,n)=>(0,x.jsxs)(`li`,{children:[(0,x.jsx)(pg,{nodes:t}),n===e.items.length-1?r:null]},n))})}case`code`:return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ag,{code:e.code,language:e.language||void 0}),r]});case`quote`:return(0,x.jsxs)(`blockquote`,{children:[(0,x.jsx)(pg,{nodes:e.children}),r]});case`table`:return(0,x.jsxs)(Y,{density:`sm`,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsx)(Y.Row,{children:e.header.map((e,t)=>(0,x.jsx)(Y.HeadCell,{children:(0,x.jsx)(pg,{nodes:e})},t))})}),(0,x.jsx)(Y.Body,{children:e.rows.map((e,t)=>(0,x.jsx)(Y.Row,{children:e.map((e,t)=>(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(pg,{nodes:e})},t))},t))})]});case`rule`:return(0,x.jsx)(`hr`,{})}}function pg({nodes:e}){return e.map((e,t)=>{switch(e.kind){case`text`:return e.text;case`code`:return(0,x.jsx)(`code`,{children:e.text},t);case`strong`:return(0,x.jsx)(`strong`,{children:(0,x.jsx)(pg,{nodes:e.children})},t);case`em`:return(0,x.jsx)(`em`,{children:(0,x.jsx)(pg,{nodes:e.children})},t);case`link`:return(0,x.jsx)(`a`,{href:e.href,target:e.href.startsWith(`http`)?`_blank`:void 0,rel:e.href.startsWith(`http`)?`noreferrer`:void 0,children:(0,x.jsx)(pg,{nodes:e.children})},t)}})}var mg=Object.defineProperty,hg=(e,t)=>mg(e,`name`,{value:t,configurable:!0}),gg=`Tabs`,[_g,vg]=T(gg,[rc]),yg=rc(),[bg,xg]=_g(gg),Sg=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=G(s),[d,f]=kt({prop:r,onChange:i,defaultProp:a??``,caller:gg});return(0,x.jsx)(bg,{scope:n,baseId:bt(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,x.jsx)(L.div,{dir:u,"data-orientation":o,...l,ref:t})})},`Tabs`)),Cg=`TabsList`,wg=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=xg(Cg,n),o=yg(n);return(0,x.jsx)(hc,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,x.jsx)(L.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),Tg=`TabsTrigger`,Eg=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=xg(Tg,n),s=yg(n),c=kg(o.baseId,r),l=Ag(o.baseId,r),u=r===o.value;return(0,x.jsx)(gc,{asChild:!0,...s,focusable:!i,active:u,children:(0,x.jsx)(L.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:U(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:U(e.onKeyDown,e=>{i||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:U(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})},`TabsTrigger`)),Dg=`TabsContent`,Og=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=xg(Dg,n),c=kg(s.baseId,r),l=Ag(s.baseId,r),u=r===s.value,d=b.useRef(u);return b.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,x.jsx)(bn,{present:i||u,children:({present:n})=>(0,x.jsx)(L.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function kg(e,t){return`${e}-trigger-${t}`}hg(kg,`makeTriggerId`);function Ag(e,t){return`${e}-content-${t}`}hg(Ag,`makeContentId`);var jg=Sg,Mg=wg,Ng=Eg,Pg=Og,Fg=(0,b.forwardRef)(function({variant:e=`line`,size:t=`md`,className:n,...r},i){return(0,x.jsx)(jg,{ref:i,className:R(`z-tabs`,n),"data-variant":e,"data-size":t,...r})}),Ig=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Mg,{ref:n,className:R(`z-tabs__list`,e),...t})}),Lg=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Ng,{ref:n,className:R(`z-tabs__trigger z-focusable`,e),...t})}),Rg=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Pg,{ref:n,className:R(`z-tabs__content z-focusable`,e),...t})}),Z=Object.assign(Fg,{List:Ig,Trigger:Lg,Content:Rg}),zg=(0,b.forwardRef)(function({variant:e=`text`,width:t,height:n,lines:r=1,className:i,style:a,...o},s){return e===`text`&&r>1?(0,x.jsx)(`span`,{ref:s,className:R(`z-skeleton-lines`,i),"aria-hidden":`true`,style:a,...o,children:Array.from({length:r},(e,n)=>(0,x.jsx)(`span`,{className:`z-skeleton`,"data-variant":`text`,style:{width:n===r-1?`60%`:t}},n))}):(0,x.jsx)(`span`,{ref:s,className:R(`z-skeleton`,i),"data-variant":e,"aria-hidden":`true`,style:{width:t,height:n,...a},...o})}),Bg=(0,b.forwardRef)(function({label:e=`Thinking`,showLabel:t=!1,size:n=`md`,className:r,...i},a){return(0,x.jsxs)(`span`,{ref:a,className:R(`z-loader`,r),"data-size":n,role:`status`,"aria-label":e,...i,children:[(0,x.jsxs)(`span`,{className:`z-loader__dots`,"aria-hidden":`true`,children:[(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{})]}),t&&(0,x.jsx)(`span`,{className:`z-loader__label`,children:e})]})}),Vg=(0,b.forwardRef)(function({title:e,description:t,icon:n,action:r,size:i=`md`,tone:a=`neutral`,className:o,...s},c){return(0,x.jsxs)(`div`,{ref:c,className:R(`z-empty`,o),"data-size":i,"data-tone":a,...s,children:[n&&(0,x.jsx)(`span`,{className:`z-empty__icon`,"aria-hidden":`true`,children:n}),(0,x.jsx)(`p`,{className:`z-empty__title`,children:e}),t&&(0,x.jsx)(`p`,{className:`z-empty__description`,children:t}),r&&(0,x.jsx)(`div`,{className:`z-empty__action`,children:r})]})});function Hg({columns:e,cards:t,cardId:n,cardColumn:r,renderCard:i,cardLabel:a,onMove:o,density:s=`md`,label:c,className:l}){let[u,d]=(0,b.useState)(null),[f,p]=(0,b.useState)(null),[m,h]=(0,b.useState)(``),g=(0,b.useId)(),_=(0,b.useRef)(new Map),v=(0,b.useCallback)(e=>t.filter(t=>r(t)===e),[t,r]),y=(0,b.useCallback)((e,t,r,i)=>{(t!==r||v(t).findIndex(t=>n(t)===e)!==i)&&o?.({cardId:e,from:t,to:r,index:i})},[v,n,o]);(0,b.useEffect)(()=>{u&&_.current.get(u.id)?.focus()},[u,t]);let S=(e,t)=>{u&&(y(u.id,u.column,e,t),d(null),p(null))},C=(t,i,o,s)=>{if(t.target!==t.currentTarget)return;let c=n(i),l=t.key;if(l===` `||l===`Enter`){if(t.preventDefault(),!u)d({id:c,column:r(i),index:s}),h(`${a(i)} lifted. Use the arrow keys to move it, Enter to drop, Escape to cancel.`);else{let t=f??{column:u.column,index:u.index},n=e.find(e=>e.id===t.column);y(u.id,u.column,t.column,t.index),h(`${a(i)} moved to ${typeof n?.title==`string`?n.title:t.column}, position ${t.index+1}.`),d(null),p(null)}return}if(l===`Escape`&&u){t.preventDefault(),h(`${a(i)} put back.`),d(null),p(null);return}if(!u)return;let m=f??{column:u.column,index:u.index},g=e.findIndex(e=>e.id===m.column);if(l===`ArrowLeft`||l===`ArrowRight`){t.preventDefault();let r=e[g+(l===`ArrowRight`?1:-1)];if(!r)return;let i=v(r.id).filter(e=>n(e)!==u.id).length,a=Math.min(m.index,i);p({column:r.id,index:a}),h(`Over ${typeof r.title==`string`?r.title:r.id}, position ${a+1}.`);return}if(l===`ArrowUp`||l===`ArrowDown`){t.preventDefault();let e=v(m.column).filter(e=>n(e)!==u.id).length,r=Math.max(0,Math.min(e,m.index+(l===`ArrowDown`?1:-1)));p({column:m.column,index:r}),h(`Position ${r+1}.`)}};return(0,x.jsxs)(`div`,{className:R(`z-kanban`,l),"data-density":s,role:`group`,"aria-label":c,children:[(0,x.jsx)(`p`,{className:`z-sr-only`,role:`status`,"aria-live":`polite`,children:m}),e.map((e,t)=>{let r=v(e.id),o=f?.column===e.id,s=e.limit!==void 0&&r.length>e.limit;return(0,x.jsxs)(`section`,{className:`z-kanban__column`,"data-over":o||void 0,"aria-labelledby":`${g}-${e.id}`,onDragOver:t=>{u&&(t.preventDefault(),p({column:e.id,index:r.filter(e=>n(e)!==u.id).length}))},onDrop:t=>{t.preventDefault(),S(e.id,f?.column===e.id?f.index:r.length)},children:[(0,x.jsxs)(`header`,{className:`z-kanban__head`,children:[(0,x.jsx)(`h3`,{className:`z-kanban__title`,id:`${g}-${e.id}`,children:e.title}),(0,x.jsx)(z,{size:`sm`,tone:s?`warning`:`neutral`,variant:`outline`,children:e.limit===void 0?r.length:`${r.length}/${e.limit}`})]}),(0,x.jsxs)(`ul`,{className:`z-kanban__list`,children:[r.map((r,s)=>{let c=n(r),l=u?.id===c;return(0,x.jsx)(`li`,{className:`z-kanban__slot`,"data-drop":o&&f?.index===s?``:void 0,children:(0,x.jsx)(`article`,{ref:e=>{e?_.current.set(c,e):_.current.delete(c)},className:`z-kanban__card z-focusable`,tabIndex:0,draggable:!0,"data-lifted":l||void 0,"aria-roledescription":`Draggable card`,"aria-label":a(r),"aria-grabbed":l||void 0,onKeyDown:e=>C(e,r,t,s),onDragStart:()=>d({id:c,column:e.id,index:s}),onDragEnd:()=>{d(null),p(null)},children:i(r)})},c)}),r.length===0&&(0,x.jsx)(`li`,{className:`z-kanban__slot`,"data-drop":o?``:void 0,children:e.empty??(0,x.jsx)(Vg,{size:`sm`,title:`Nothing here`})})]})]},e.id)})]})}function Ug(e,t){return`${e}-option-${t}`}function Wg(e){let{options:t,label:n,description:r,error:i,placeholder:a,size:o=`md`,disabled:s,emptyMessage:c=`No matches`,className:l,id:u}=e,d=e.multiple===!0,f=(0,b.useId)(),p=u??f,m=`${p}-list`,[h,g]=(0,b.useState)(!1),[_,v]=(0,b.useState)(``),[y,S]=(0,b.useState)(0),C=(0,b.useRef)(null),w=(0,b.useRef)(null),T=(0,b.useRef)(null),E=(0,b.useMemo)(()=>{if(d)return e.value??[];let t=e.value;return t?[t]:[]},[d,e]),D=(0,b.useMemo)(()=>new Map(t.map(e=>[e.value,e])),[t]),O=(0,b.useMemo)(()=>{let e=_.trim().toLowerCase();return e?t.filter(t=>t.label.toLowerCase().includes(e)||(t.hint??``).toLowerCase().includes(e)):t},[t,_,d]);(0,b.useEffect)(()=>S(0),[_,h]),(0,b.useEffect)(()=>{if(!h)return;let e=e=>{T.current?.contains(e.target)||g(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[h]),(0,b.useEffect)(()=>{h&&w.current?.querySelector(`[data-active="true"]`)?.scrollIntoView({block:`nearest`})},[y,h]);let k=t=>{if(!t.disabled){if(d){let n=E.includes(t.value)?E.filter(e=>e!==t.value):[...E,t.value];e.onValueChange?.(n),v(``),C.current?.focus();return}e.onValueChange?.(t.value),v(``),g(!1)}},A=t=>{d&&(e.onValueChange?.(E.filter(e=>e!==t)),C.current?.focus())},j=e=>{let t=e.key;if(t===`ArrowDown`||t===`ArrowUp`){if(e.preventDefault(),!h){g(!0);return}let n=t===`ArrowDown`?1:-1;for(let e=1;e<=O.length;e++){let t=(y+n*e+O.length*e)%O.length;if(!O[t]?.disabled){S(t);return}}return}if(t===`Enter`&&h){let t=O[y];t&&(e.preventDefault(),k(t));return}if(t===`Escape`){h&&(e.preventDefault(),g(!1));return}t===`Backspace`&&d&&_===``&&E.length&&A(E[E.length-1])},ee=(0,b.useMemo)(()=>{let e=[];for(let t of O){let n=e[e.length-1];n&&n.name===t.group?n.options.push(t):e.push({name:t.group,options:[t]})}return e},[O]),M=-1,N=[r?`${p}-description`:null,i?`${p}-error`:null].filter(Boolean).join(` `)||void 0;return(0,x.jsxs)(`div`,{ref:T,className:R(`z-combobox`,l),"data-size":o,"data-invalid":i?``:void 0,"data-disabled":s||void 0,children:[(0,x.jsx)(`label`,{className:`z-combobox__label`,htmlFor:p,children:n}),(0,x.jsxs)(`div`,{className:`z-combobox__control`,children:[d&&E.map(e=>(0,x.jsxs)(z,{size:`sm`,tone:`neutral`,variant:`soft`,className:`z-combobox__chip`,children:[D.get(e)?.label??e,(0,x.jsx)(`button`,{type:`button`,className:`z-combobox__remove z-focusable`,"aria-label":`Remove ${D.get(e)?.label??e}`,onClick:()=>A(e),disabled:s,children:(0,x.jsx)(H.Close,{size:12})})]},e)),(0,x.jsx)(`input`,{ref:C,id:p,className:`z-combobox__input z-focusable`,role:`combobox`,type:`text`,autoComplete:`off`,"aria-expanded":h,"aria-controls":m,"aria-autocomplete":`list`,"aria-activedescendant":h&&O[y]?Ug(p,y):void 0,"aria-describedby":N,"aria-invalid":i?!0:void 0,disabled:s,placeholder:d||!E.length?a:D.get(E[0])?.label,value:_,onChange:e=>{v(e.target.value),g(!0)},onFocus:()=>g(!0),onKeyDown:j}),(0,x.jsx)(`span`,{className:`z-combobox__chevron`,"aria-hidden":`true`,children:(0,x.jsx)(H.ChevronDown,{size:16})})]}),h&&(0,x.jsxs)(`ul`,{ref:w,className:`z-combobox__list`,id:m,role:`listbox`,"aria-label":typeof n==`string`?n:void 0,"aria-multiselectable":d||void 0,children:[ee.map((e,t)=>(0,x.jsxs)(`li`,{className:`z-combobox__group`,role:`presentation`,children:[e.name&&(0,x.jsx)(`p`,{className:`z-combobox__group-name`,children:e.name}),(0,x.jsx)(`ul`,{role:`presentation`,children:e.options.map(e=>{M+=1;let t=M,n=E.includes(e.value);return(0,x.jsxs)(`li`,{id:Ug(p,t),"data-value":e.value,className:`z-combobox__option`,role:`option`,"aria-selected":n,"aria-disabled":e.disabled||void 0,"data-active":t===y,"data-selected":n||void 0,onPointerDown:t=>{t.preventDefault(),k(e)},onPointerEnter:()=>S(t),children:[(0,x.jsx)(`span`,{className:`z-combobox__option-label`,children:e.label}),e.hint&&(0,x.jsx)(`span`,{className:`z-combobox__option-hint`,children:e.hint}),n&&(0,x.jsx)(`span`,{className:`z-combobox__tick`,"aria-hidden":`true`,children:(0,x.jsx)(H.Check,{size:14})})]},e.value)})})]},e.name??`g${t}`)),O.length===0&&(0,x.jsx)(`li`,{className:`z-combobox__empty`,role:`presentation`,children:c})]}),r&&!i&&(0,x.jsx)(`p`,{className:`z-combobox__description`,id:`${p}-description`,children:r}),i&&(0,x.jsx)(`p`,{className:`z-combobox__error`,id:`${p}-error`,children:i})]})}var Gg=[`new`,`reviewing`,`applying`,`ready`,`applied`,`interviewing`,`offer`,`rejected`,`passed`],Kg=[`wrong role shape`,`weak evidence match`,`compensation`,`location or authorisation`,`too managerial`,`too visual`,`too engineering`,`stale or duplicate`,`company`],qg=[`recruiter`,`hiring-manager`,`interviewer`,`referral`,`other`];async function Q(e,t){let n=await fetch(e,{headers:{"content-type":`application/json`},...t}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error||`${n.status} ${n.statusText}`);return r}var $={summary:()=>Q(`/api/summary`),jobs:e=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&r!==null&&t.set(n,String(r));return Q(`/api/jobs?${t}`)},facets:e=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&r!==null&&t.set(n,String(r));return Q(`/api/jobs/facets?${t}`)},job:e=>Q(`/api/jobs/${encodeURIComponent(e)}`),attachPosting:(e,t,n=!1)=>Q(`/api/jobs/${encodeURIComponent(e)}/attach`,{method:`POST`,body:JSON.stringify({url:t,linkOnly:n})}),settings:()=>Q(`/api/settings`),saveSettings:e=>Q(`/api/settings`,{method:`PUT`,body:JSON.stringify(e)}),resumes:()=>Q(`/api/resumes`),useResume:e=>Q(`/api/resumes/use`,{method:`POST`,body:JSON.stringify({name:e})}),openResume:e=>Q(`/api/resumes/open`,{method:`POST`,body:JSON.stringify({name:e})}),revealJob:e=>Q(`/api/jobs/${encodeURIComponent(e)}/reveal`,{method:`POST`}),importLinks:e=>Q(`/api/jobs/import`,{method:`POST`,body:JSON.stringify({urls:e})}),today:(e=7)=>Q(`/api/today?cap=${e}`),setStatus:(e,t,n)=>Q(`/api/jobs/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({status:t,reason:n})}),addNote:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({note:t})}),packet:e=>Q(`/api/jobs/${encodeURIComponent(e)}/packet`),coverLetter:e=>Q(`/api/jobs/${encodeURIComponent(e)}/cover-letter`),writeCoverLetter:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/cover-letter`,{method:`POST`,body:JSON.stringify(t)}),tailoredResume:e=>Q(`/api/jobs/${encodeURIComponent(e)}/resume`),writeTailoredResume:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/resume`,{method:`POST`,body:JSON.stringify(t)}),saveTailoredResume:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/resume`,{method:`PUT`,body:JSON.stringify({text:t})}),resumePrintUrl:e=>`/api/jobs/${encodeURIComponent(e)}/resume.html`,saveCoverLetter:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/cover-letter`,{method:`PUT`,body:JSON.stringify({text:t})}),saveApplication:(e,t,n)=>Q(`/api/jobs/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({application:{field:t,value:n}})}),runs:()=>Q(`/api/runs`),scan:()=>Q(`/api/scan`),startScan:(e=!1,t,n=!1)=>Q(`/api/scan`,{method:`POST`,body:JSON.stringify({dry:e,criteria:t||``,retryFailed:n})}),criteria:()=>Q(`/api/criteria`),saveCriteria:e=>Q(`/api/criteria`,{method:`PUT`,body:JSON.stringify({raw:e})}),outcomes:()=>Q(`/api/outcomes`),views:()=>Q(`/api/views`),defaultViews:()=>Q(`/api/views/defaults`),saveViews:e=>Q(`/api/views`,{method:`PUT`,body:JSON.stringify({views:e})}),mail:()=>Q(`/api/mail`),mailCheck:e=>Q(`/api/mail/check`,{method:`POST`,body:JSON.stringify({sinceDays:e})}),mailConfirm:(e,t)=>Q(`/api/mail/${encodeURIComponent(e)}/confirm`,{method:`POST`,body:JSON.stringify({noteId:t})}),mailConfirmSafe:()=>Q(`/api/mail/confirm-safe`,{method:`POST`}),mailDismiss:e=>Q(`/api/mail/${encodeURIComponent(e)}/dismiss`,{method:`POST`}),previewCriteria:e=>Q(`/api/criteria/preview`,{method:`POST`,body:JSON.stringify({raw:e})}),rescoreNotes:(e=!1)=>Q(`/api/rescore`,{method:`POST`,body:JSON.stringify({dry:e})}),criteriaPresets:()=>Q(`/api/criteria/presets`),criteriaPreset:e=>Q(`/api/criteria/presets/${encodeURIComponent(e)}`),saveCriteriaPreset:(e,t)=>Q(`/api/criteria/presets/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify({raw:t})}),deleteCriteriaPreset:e=>Q(`/api/criteria/presets/${encodeURIComponent(e)}`,{method:`DELETE`}),activateCriteriaPreset:e=>Q(`/api/criteria/presets/${encodeURIComponent(e)}/activate`,{method:`POST`}),profileNotes:()=>Q(`/api/profile`),profileSummary:()=>Q(`/api/profile/summary`),saveProfileNote:(e,t)=>Q(`/api/profile`,{method:`PUT`,body:JSON.stringify({note:e,markdown:t})}),snippets:()=>Q(`/api/snippets`),saveSnippets:e=>Q(`/api/snippets`,{method:`PUT`,body:JSON.stringify({items:e})}),people:()=>Q(`/api/people`),person:e=>Q(`/api/people/${encodeURIComponent(e)}`),addPerson:e=>Q(`/api/people`,{method:`POST`,body:JSON.stringify(e)}),attachPerson:(e,t,n,r)=>Q(`/api/people/${encodeURIComponent(e)}/attach`,{method:`POST`,body:JSON.stringify({jobId:t,role:n,context:r})}),logContact:(e,t,n)=>Q(`/api/people/${encodeURIComponent(e)}/log`,{method:`POST`,body:JSON.stringify({text:t,date:n})}),jobPeople:e=>Q(`/api/jobs/${encodeURIComponent(e)}/people`),jobConnections:e=>Q(`/api/jobs/${encodeURIComponent(e)}/connections`),linkedinStatus:()=>Q(`/api/linkedin`),linkedinPreview:(e,t,n)=>Q(`/api/linkedin/preview`,{method:`POST`,body:JSON.stringify({source:e,since:t,everyone:n})}),linkedinImport:(e,t={})=>Q(`/api/linkedin/import`,{method:`POST`,body:JSON.stringify({source:e,...t})}),companies:()=>Q(`/api/companies`),addCompany:e=>Q(`/api/companies`,{method:`POST`,body:JSON.stringify(e)}),feeds:()=>Q(`/api/feeds`),onboarding:()=>Q(`/api/onboarding`),initProfile:()=>Q(`/api/onboarding/init`,{method:`POST`,body:`{}`}),importResume:e=>Q(`/api/onboarding/resume`,{method:`POST`,body:JSON.stringify({path:e})})},Jg=e=>`$${Math.round(e/1e3)}k`,Yg=e=>{let t=(e.replace(/\s*[•·].*$/,``).split(/(?<=[a-z])(?=[A-Z])/)[0]??``).replace(/\s+/g,` `).trim();return t.length>30?t.slice(0,29).trimEnd()+`…`:t},Xg=e=>{if(!e)return``;let t=Math.floor((Date.now()-new Date(e).getTime())/864e5);return Number.isFinite(t)?t<=0?`today`:`${t}d ago`:``},Zg={floor:`Floor`,stretch:`Stretch`,below:`Below`,unknown:`Not stated`},Qg={floor:`success`,stretch:`warning`,below:`neutral`,unknown:`neutral`},$g={new:`neutral`,reviewing:`primary`,applying:`primary`,ready:`warning`,applied:`primary`,interviewing:`warning`,offer:`success`,rejected:`danger`,passed:`neutral`};function e_(e){let[t,n]=(0,b.useState)(()=>typeof window<`u`&&window.matchMedia(e).matches);return(0,b.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}var t_={name:`TekJobs`,logo:`/brand/tekjobs-avatar-192.png`};function n_({href:e=`/`}){return(0,x.jsxs)(`a`,{className:`brand-mark`,href:e,"aria-label":t_.name,children:[t_.logo&&(0,x.jsx)(`img`,{className:`brand-mark__logo`,src:t_.logo,alt:``}),(0,x.jsxs)(`span`,{"aria-hidden":`true`,children:[`Tek`,(0,x.jsx)(`span`,{className:`brand-mark__accent`,children:`Jobs`})]})]})}function r_(){let[e,t]=(0,b.useState)(!1),[n,r]=(0,b.useState)(null),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(null),[c,l]=(0,b.useState)(!1),u=(0,b.useRef)(null),d=()=>$.snippets().then(r).catch(e=>X({title:`Could not load the copy panel`,description:e.message,tone:`danger`}));(0,b.useEffect)(()=>{e&&!n&&d()},[e]),(0,b.useEffect)(()=>{e?setTimeout(()=>u.current?.focus(),30):a(``)},[e]);let f=(0,b.useMemo)(()=>{let e=i.trim().toLowerCase(),t=(n?.items??[]).filter(t=>t.value&&(!e||`${t.group} ${t.label} ${t.value}`.toLowerCase().includes(e))),r=new Map;for(let e of t){let t=e.group||`Other`;r.has(t)||r.set(t,[]),r.get(t).push(e)}return[...r.entries()]},[n,i]),p=async e=>{try{await navigator.clipboard.writeText(e.value),s(e.label),setTimeout(()=>s(t=>t===e.label?null:t),1600)}catch(e){X({title:`Could not copy`,description:e.message,tone:`danger`})}},m=f[0]?.[1][0];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(fd,{open:e,onOpenChange:t,size:`lg`,children:[(0,x.jsx)(Bh,{content:`Copy panel`,children:(0,x.jsx)(fd.Trigger,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,"aria-label":`Copy panel`,leadingIcon:(0,x.jsx)(H.Copy,{})})})}),(0,x.jsx)(fd.Content,{align:`end`,showArrow:!1,children:(0,x.jsxs)(`div`,{className:`copy`,children:[(0,x.jsx)(`form`,{className:`copy__search`,onSubmit:e=>{e.preventDefault(),m&&p(m)},children:(0,x.jsx)(Zp,{ref:u,size:`sm`,"aria-label":`Find a snippet`,placeholder:`Find, then Enter copies the first`,leadingIcon:(0,x.jsx)(H.Search,{}),value:i,onChange:e=>a(e.target.value)})}),n?f.length===0?(0,x.jsx)(`p`,{className:`muted copy__empty`,children:n.items.length===0?`Nothing here yet. Customize adds lines.`:i?`Nothing matches.`:`Every snippet is empty. Customize fills them in.`}):(0,x.jsx)(`div`,{className:`copy__groups`,children:f.map(([e,t])=>(0,x.jsxs)(`div`,{className:`copy__group`,children:[(0,x.jsx)(`div`,{className:`microlabel`,children:e}),t.map(t=>(0,x.jsx)(B,{asChild:!0,variant:`ghost`,tone:`neutral`,size:`sm`,align:`start`,className:`copy__row`,children:(0,x.jsxs)(`button`,{type:`button`,onClick:()=>p(t),title:t.value,children:[(0,x.jsx)(`span`,{className:`copy__label`,children:t.label}),(0,x.jsxs)(`span`,{className:`copy__value num`,children:[o===t.label?`Copied`:t.value.split(`
57
+ `)});continue}let a=/^(#{1,6})\s+(.*)$/.exec(e);if(a){n.push({kind:`heading`,level:a[1].length,children:ug(a[2])}),r++;continue}if(/^(-{3,}|\*{3,}|_{3,})\s*$/.test(e)){n.push({kind:`rule`}),r++;continue}if(sg(e)&&r+1<t.length&&cg(t[r+1])){let i=og(e).map(ug);r+=2;let a=[];for(;r<t.length&&sg(t[r]);)a.push(og(t[r++]).map(ug));n.push({kind:`table`,header:i,rows:a});continue}if(/^>\s?/.test(e)){let e=[];for(;r<t.length&&/^>\s?/.test(t[r]);)e.push(t[r++].replace(/^>\s?/,``));n.push({kind:`quote`,children:ug(e.join(` `))});continue}let o=/^\s*([-*+]|\d+[.)])\s+/.exec(e);if(o){let e=/\d/.test(o[1]),i=[];for(;r<t.length;){let e=/^\s*([-*+]|\d+[.)])\s+(.*)$/.exec(t[r]);if(!e)break;let n=e[2];for(r++;r<t.length&&/^\s{2,}\S/.test(t[r])&&!/^\s*([-*+]|\d+[.)])\s+/.test(t[r]);)n+=` `+t[r++].trim();i.push(ug(n))}n.push({kind:`list`,ordered:e,items:i});continue}let s=[];for(;r<t.length&&t[r].trim()!==``&&!/^```/.test(t[r])&&!/^(#{1,6})\s/.test(t[r])&&!/^\s*([-*+]|\d+[.)])\s+/.test(t[r])&&!/^>\s?/.test(t[r])&&!(sg(t[r])&&r+1<t.length&&cg(t[r+1]));)s.push(t[r++].trim());n.push({kind:`paragraph`,children:ug(s.join(` `))})}return n}function ug(e){let t=[],n=e,r=e=>{let n=t[t.length-1];e.kind===`text`&&n?.kind===`text`?n.text+=e.text:t.push(e)};for(;n.length;){let e=/^`([^`]+)`/.exec(n);if(e){r({kind:`code`,text:e[1]}),n=n.slice(e[0].length);continue}let t=/^\[([^\]]+)\]\((https?:\/\/[^\s)]+|\/[^\s)]*|#[^\s)]*)\)/.exec(n);if(t){r({kind:`link`,href:t[2],children:ug(t[1])}),n=n.slice(t[0].length);continue}let i=/^(\*\*|__)(.+?)\1/.exec(n);if(i){r({kind:`strong`,children:ug(i[2])}),n=n.slice(i[0].length);continue}let a=/^(\*|_)([^*_]+?)\1/.exec(n);if(a){r({kind:`em`,children:ug(a[2])}),n=n.slice(a[0].length);continue}let o=n.slice(1).search(/[`*_[]/),s=o===-1?n.length:o+1;r({kind:`text`,text:n.slice(0,s)}),n=n.slice(s)}return t}var dg=(0,b.forwardRef)(function({text:e,streaming:t=!1,className:n,...r},i){let a=lg(e);return(0,x.jsxs)(`div`,{ref:i,className:R(`z-markdown`,n),"data-streaming":t||void 0,...r,children:[a.map((e,n)=>(0,x.jsx)(fg,{block:e,last:n===a.length-1,streaming:t},n)),t&&a.length===0&&(0,x.jsx)(`span`,{className:`z-markdown__cursor`,"aria-hidden":`true`})]})});function fg({block:e,last:t,streaming:n}){let r=t&&n?(0,x.jsx)(`span`,{className:`z-markdown__cursor`,"aria-hidden":`true`}):null;switch(e.kind){case`paragraph`:return(0,x.jsxs)(`p`,{children:[(0,x.jsx)(pg,{nodes:e.children}),r]});case`heading`:{let t=`h${e.level}`;return(0,x.jsxs)(t,{children:[(0,x.jsx)(pg,{nodes:e.children}),r]})}case`list`:{let t=e.ordered?`ol`:`ul`;return(0,x.jsx)(t,{children:e.items.map((t,n)=>(0,x.jsxs)(`li`,{children:[(0,x.jsx)(pg,{nodes:t}),n===e.items.length-1?r:null]},n))})}case`code`:return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ag,{code:e.code,language:e.language||void 0}),r]});case`quote`:return(0,x.jsxs)(`blockquote`,{children:[(0,x.jsx)(pg,{nodes:e.children}),r]});case`table`:return(0,x.jsxs)(Y,{density:`sm`,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsx)(Y.Row,{children:e.header.map((e,t)=>(0,x.jsx)(Y.HeadCell,{children:(0,x.jsx)(pg,{nodes:e})},t))})}),(0,x.jsx)(Y.Body,{children:e.rows.map((e,t)=>(0,x.jsx)(Y.Row,{children:e.map((e,t)=>(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(pg,{nodes:e})},t))},t))})]});case`rule`:return(0,x.jsx)(`hr`,{})}}function pg({nodes:e}){return e.map((e,t)=>{switch(e.kind){case`text`:return e.text;case`code`:return(0,x.jsx)(`code`,{children:e.text},t);case`strong`:return(0,x.jsx)(`strong`,{children:(0,x.jsx)(pg,{nodes:e.children})},t);case`em`:return(0,x.jsx)(`em`,{children:(0,x.jsx)(pg,{nodes:e.children})},t);case`link`:return(0,x.jsx)(`a`,{href:e.href,target:e.href.startsWith(`http`)?`_blank`:void 0,rel:e.href.startsWith(`http`)?`noreferrer`:void 0,children:(0,x.jsx)(pg,{nodes:e.children})},t)}})}var mg=Object.defineProperty,hg=(e,t)=>mg(e,`name`,{value:t,configurable:!0}),gg=`Tabs`,[_g,vg]=T(gg,[rc]),yg=rc(),[bg,xg]=_g(gg),Sg=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=G(s),[d,f]=kt({prop:r,onChange:i,defaultProp:a??``,caller:gg});return(0,x.jsx)(bg,{scope:n,baseId:bt(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,x.jsx)(L.div,{dir:u,"data-orientation":o,...l,ref:t})})},`Tabs`)),Cg=`TabsList`,wg=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=xg(Cg,n),o=yg(n);return(0,x.jsx)(hc,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,x.jsx)(L.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),Tg=`TabsTrigger`,Eg=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=xg(Tg,n),s=yg(n),c=kg(o.baseId,r),l=Ag(o.baseId,r),u=r===o.value;return(0,x.jsx)(gc,{asChild:!0,...s,focusable:!i,active:u,children:(0,x.jsx)(L.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:U(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:U(e.onKeyDown,e=>{i||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:U(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})},`TabsTrigger`)),Dg=`TabsContent`,Og=b.forwardRef(hg(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=xg(Dg,n),c=kg(s.baseId,r),l=Ag(s.baseId,r),u=r===s.value,d=b.useRef(u);return b.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,x.jsx)(bn,{present:i||u,children:({present:n})=>(0,x.jsx)(L.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function kg(e,t){return`${e}-trigger-${t}`}hg(kg,`makeTriggerId`);function Ag(e,t){return`${e}-content-${t}`}hg(Ag,`makeContentId`);var jg=Sg,Mg=wg,Ng=Eg,Pg=Og,Fg=(0,b.forwardRef)(function({variant:e=`line`,size:t=`md`,className:n,...r},i){return(0,x.jsx)(jg,{ref:i,className:R(`z-tabs`,n),"data-variant":e,"data-size":t,...r})}),Ig=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Mg,{ref:n,className:R(`z-tabs__list`,e),...t})}),Lg=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Ng,{ref:n,className:R(`z-tabs__trigger z-focusable`,e),...t})}),Rg=(0,b.forwardRef)(function({className:e,...t},n){return(0,x.jsx)(Pg,{ref:n,className:R(`z-tabs__content z-focusable`,e),...t})}),Z=Object.assign(Fg,{List:Ig,Trigger:Lg,Content:Rg}),zg=(0,b.forwardRef)(function({variant:e=`text`,width:t,height:n,lines:r=1,className:i,style:a,...o},s){return e===`text`&&r>1?(0,x.jsx)(`span`,{ref:s,className:R(`z-skeleton-lines`,i),"aria-hidden":`true`,style:a,...o,children:Array.from({length:r},(e,n)=>(0,x.jsx)(`span`,{className:`z-skeleton`,"data-variant":`text`,style:{width:n===r-1?`60%`:t}},n))}):(0,x.jsx)(`span`,{ref:s,className:R(`z-skeleton`,i),"data-variant":e,"aria-hidden":`true`,style:{width:t,height:n,...a},...o})}),Bg=(0,b.forwardRef)(function({label:e=`Thinking`,showLabel:t=!1,size:n=`md`,className:r,...i},a){return(0,x.jsxs)(`span`,{ref:a,className:R(`z-loader`,r),"data-size":n,role:`status`,"aria-label":e,...i,children:[(0,x.jsxs)(`span`,{className:`z-loader__dots`,"aria-hidden":`true`,children:[(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{})]}),t&&(0,x.jsx)(`span`,{className:`z-loader__label`,children:e})]})}),Vg=(0,b.forwardRef)(function({title:e,description:t,icon:n,action:r,size:i=`md`,tone:a=`neutral`,className:o,...s},c){return(0,x.jsxs)(`div`,{ref:c,className:R(`z-empty`,o),"data-size":i,"data-tone":a,...s,children:[n&&(0,x.jsx)(`span`,{className:`z-empty__icon`,"aria-hidden":`true`,children:n}),(0,x.jsx)(`p`,{className:`z-empty__title`,children:e}),t&&(0,x.jsx)(`p`,{className:`z-empty__description`,children:t}),r&&(0,x.jsx)(`div`,{className:`z-empty__action`,children:r})]})});function Hg({columns:e,cards:t,cardId:n,cardColumn:r,renderCard:i,cardLabel:a,onMove:o,density:s=`md`,label:c,className:l}){let[u,d]=(0,b.useState)(null),[f,p]=(0,b.useState)(null),[m,h]=(0,b.useState)(``),g=(0,b.useId)(),_=(0,b.useRef)(new Map),v=(0,b.useCallback)(e=>t.filter(t=>r(t)===e),[t,r]),y=(0,b.useCallback)((e,t,r,i)=>{(t!==r||v(t).findIndex(t=>n(t)===e)!==i)&&o?.({cardId:e,from:t,to:r,index:i})},[v,n,o]);(0,b.useEffect)(()=>{u&&_.current.get(u.id)?.focus()},[u,t]);let S=(e,t)=>{u&&(y(u.id,u.column,e,t),d(null),p(null))},C=(t,i,o,s)=>{if(t.target!==t.currentTarget)return;let c=n(i),l=t.key;if(l===` `||l===`Enter`){if(t.preventDefault(),!u)d({id:c,column:r(i),index:s}),h(`${a(i)} lifted. Use the arrow keys to move it, Enter to drop, Escape to cancel.`);else{let t=f??{column:u.column,index:u.index},n=e.find(e=>e.id===t.column);y(u.id,u.column,t.column,t.index),h(`${a(i)} moved to ${typeof n?.title==`string`?n.title:t.column}, position ${t.index+1}.`),d(null),p(null)}return}if(l===`Escape`&&u){t.preventDefault(),h(`${a(i)} put back.`),d(null),p(null);return}if(!u)return;let m=f??{column:u.column,index:u.index},g=e.findIndex(e=>e.id===m.column);if(l===`ArrowLeft`||l===`ArrowRight`){t.preventDefault();let r=e[g+(l===`ArrowRight`?1:-1)];if(!r)return;let i=v(r.id).filter(e=>n(e)!==u.id).length,a=Math.min(m.index,i);p({column:r.id,index:a}),h(`Over ${typeof r.title==`string`?r.title:r.id}, position ${a+1}.`);return}if(l===`ArrowUp`||l===`ArrowDown`){t.preventDefault();let e=v(m.column).filter(e=>n(e)!==u.id).length,r=Math.max(0,Math.min(e,m.index+(l===`ArrowDown`?1:-1)));p({column:m.column,index:r}),h(`Position ${r+1}.`)}};return(0,x.jsxs)(`div`,{className:R(`z-kanban`,l),"data-density":s,role:`group`,"aria-label":c,children:[(0,x.jsx)(`p`,{className:`z-sr-only`,role:`status`,"aria-live":`polite`,children:m}),e.map((e,t)=>{let r=v(e.id),o=f?.column===e.id,s=e.limit!==void 0&&r.length>e.limit;return(0,x.jsxs)(`section`,{className:`z-kanban__column`,"data-over":o||void 0,"aria-labelledby":`${g}-${e.id}`,onDragOver:t=>{u&&(t.preventDefault(),p({column:e.id,index:r.filter(e=>n(e)!==u.id).length}))},onDrop:t=>{t.preventDefault(),S(e.id,f?.column===e.id?f.index:r.length)},children:[(0,x.jsxs)(`header`,{className:`z-kanban__head`,children:[(0,x.jsx)(`h3`,{className:`z-kanban__title`,id:`${g}-${e.id}`,children:e.title}),(0,x.jsx)(z,{size:`sm`,tone:s?`warning`:`neutral`,variant:`outline`,children:e.limit===void 0?r.length:`${r.length}/${e.limit}`})]}),(0,x.jsxs)(`ul`,{className:`z-kanban__list`,children:[r.map((r,s)=>{let c=n(r),l=u?.id===c;return(0,x.jsx)(`li`,{className:`z-kanban__slot`,"data-drop":o&&f?.index===s?``:void 0,children:(0,x.jsx)(`article`,{ref:e=>{e?_.current.set(c,e):_.current.delete(c)},className:`z-kanban__card z-focusable`,tabIndex:0,draggable:!0,"data-lifted":l||void 0,"aria-roledescription":`Draggable card`,"aria-label":a(r),"aria-grabbed":l||void 0,onKeyDown:e=>C(e,r,t,s),onDragStart:()=>d({id:c,column:e.id,index:s}),onDragEnd:()=>{d(null),p(null)},children:i(r)})},c)}),r.length===0&&(0,x.jsx)(`li`,{className:`z-kanban__slot`,"data-drop":o?``:void 0,children:e.empty??(0,x.jsx)(Vg,{size:`sm`,title:`Nothing here`})})]})]},e.id)})]})}function Ug(e,t){return`${e}-option-${t}`}function Wg(e){let{options:t,label:n,description:r,error:i,placeholder:a,size:o=`md`,disabled:s,emptyMessage:c=`No matches`,className:l,id:u}=e,d=e.multiple===!0,f=(0,b.useId)(),p=u??f,m=`${p}-list`,[h,g]=(0,b.useState)(!1),[_,v]=(0,b.useState)(``),[y,S]=(0,b.useState)(0),C=(0,b.useRef)(null),w=(0,b.useRef)(null),T=(0,b.useRef)(null),E=(0,b.useMemo)(()=>{if(d)return e.value??[];let t=e.value;return t?[t]:[]},[d,e]),D=(0,b.useMemo)(()=>new Map(t.map(e=>[e.value,e])),[t]),O=(0,b.useMemo)(()=>{let e=_.trim().toLowerCase();return e?t.filter(t=>t.label.toLowerCase().includes(e)||(t.hint??``).toLowerCase().includes(e)):t},[t,_,d]);(0,b.useEffect)(()=>S(0),[_,h]),(0,b.useEffect)(()=>{if(!h)return;let e=e=>{T.current?.contains(e.target)||g(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[h]),(0,b.useEffect)(()=>{h&&w.current?.querySelector(`[data-active="true"]`)?.scrollIntoView({block:`nearest`})},[y,h]);let k=t=>{if(!t.disabled){if(d){let n=E.includes(t.value)?E.filter(e=>e!==t.value):[...E,t.value];e.onValueChange?.(n),v(``),C.current?.focus();return}e.onValueChange?.(t.value),v(``),g(!1)}},A=t=>{d&&(e.onValueChange?.(E.filter(e=>e!==t)),C.current?.focus())},j=e=>{let t=e.key;if(t===`ArrowDown`||t===`ArrowUp`){if(e.preventDefault(),!h){g(!0);return}let n=t===`ArrowDown`?1:-1;for(let e=1;e<=O.length;e++){let t=(y+n*e+O.length*e)%O.length;if(!O[t]?.disabled){S(t);return}}return}if(t===`Enter`&&h){let t=O[y];t&&(e.preventDefault(),k(t));return}if(t===`Escape`){h&&(e.preventDefault(),g(!1));return}t===`Backspace`&&d&&_===``&&E.length&&A(E[E.length-1])},ee=(0,b.useMemo)(()=>{let e=[];for(let t of O){let n=e[e.length-1];n&&n.name===t.group?n.options.push(t):e.push({name:t.group,options:[t]})}return e},[O]),M=-1,N=[r?`${p}-description`:null,i?`${p}-error`:null].filter(Boolean).join(` `)||void 0;return(0,x.jsxs)(`div`,{ref:T,className:R(`z-combobox`,l),"data-size":o,"data-invalid":i?``:void 0,"data-disabled":s||void 0,children:[(0,x.jsx)(`label`,{className:`z-combobox__label`,htmlFor:p,children:n}),(0,x.jsxs)(`div`,{className:`z-combobox__control`,children:[d&&E.map(e=>(0,x.jsxs)(z,{size:`sm`,tone:`neutral`,variant:`soft`,className:`z-combobox__chip`,children:[D.get(e)?.label??e,(0,x.jsx)(`button`,{type:`button`,className:`z-combobox__remove z-focusable`,"aria-label":`Remove ${D.get(e)?.label??e}`,onClick:()=>A(e),disabled:s,children:(0,x.jsx)(H.Close,{size:12})})]},e)),(0,x.jsx)(`input`,{ref:C,id:p,className:`z-combobox__input z-focusable`,role:`combobox`,type:`text`,autoComplete:`off`,"aria-expanded":h,"aria-controls":m,"aria-autocomplete":`list`,"aria-activedescendant":h&&O[y]?Ug(p,y):void 0,"aria-describedby":N,"aria-invalid":i?!0:void 0,disabled:s,placeholder:d||!E.length?a:D.get(E[0])?.label,value:_,onChange:e=>{v(e.target.value),g(!0)},onFocus:()=>g(!0),onKeyDown:j}),(0,x.jsx)(`span`,{className:`z-combobox__chevron`,"aria-hidden":`true`,children:(0,x.jsx)(H.ChevronDown,{size:16})})]}),h&&(0,x.jsxs)(`ul`,{ref:w,className:`z-combobox__list`,id:m,role:`listbox`,"aria-label":typeof n==`string`?n:void 0,"aria-multiselectable":d||void 0,children:[ee.map((e,t)=>(0,x.jsxs)(`li`,{className:`z-combobox__group`,role:`presentation`,children:[e.name&&(0,x.jsx)(`p`,{className:`z-combobox__group-name`,children:e.name}),(0,x.jsx)(`ul`,{role:`presentation`,children:e.options.map(e=>{M+=1;let t=M,n=E.includes(e.value);return(0,x.jsxs)(`li`,{id:Ug(p,t),"data-value":e.value,className:`z-combobox__option`,role:`option`,"aria-selected":n,"aria-disabled":e.disabled||void 0,"data-active":t===y,"data-selected":n||void 0,onPointerDown:t=>{t.preventDefault(),k(e)},onPointerEnter:()=>S(t),children:[(0,x.jsx)(`span`,{className:`z-combobox__option-label`,children:e.label}),e.hint&&(0,x.jsx)(`span`,{className:`z-combobox__option-hint`,children:e.hint}),n&&(0,x.jsx)(`span`,{className:`z-combobox__tick`,"aria-hidden":`true`,children:(0,x.jsx)(H.Check,{size:14})})]},e.value)})})]},e.name??`g${t}`)),O.length===0&&(0,x.jsx)(`li`,{className:`z-combobox__empty`,role:`presentation`,children:c})]}),r&&!i&&(0,x.jsx)(`p`,{className:`z-combobox__description`,id:`${p}-description`,children:r}),i&&(0,x.jsx)(`p`,{className:`z-combobox__error`,id:`${p}-error`,children:i})]})}var Gg=[`new`,`reviewing`,`applying`,`ready`,`applied`,`interviewing`,`offer`,`rejected`,`passed`],Kg=[`wrong role shape`,`weak evidence match`,`compensation`,`location or authorisation`,`too managerial`,`too visual`,`too engineering`,`stale or duplicate`,`company`],qg=[`recruiter`,`hiring-manager`,`interviewer`,`referral`,`other`];async function Q(e,t){let n=await fetch(e,{headers:{"content-type":`application/json`},...t}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error||`${n.status} ${n.statusText}`);return r}var $={summary:()=>Q(`/api/summary`),jobs:e=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&r!==null&&t.set(n,String(r));return Q(`/api/jobs?${t}`)},facets:e=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&r!==null&&t.set(n,String(r));return Q(`/api/jobs/facets?${t}`)},job:e=>Q(`/api/jobs/${encodeURIComponent(e)}`),attachPosting:(e,t,n=!1)=>Q(`/api/jobs/${encodeURIComponent(e)}/attach`,{method:`POST`,body:JSON.stringify({url:t,linkOnly:n})}),settings:()=>Q(`/api/settings`),saveSettings:e=>Q(`/api/settings`,{method:`PUT`,body:JSON.stringify(e)}),resumes:()=>Q(`/api/resumes`),useResume:e=>Q(`/api/resumes/use`,{method:`POST`,body:JSON.stringify({name:e})}),openResume:e=>Q(`/api/resumes/open`,{method:`POST`,body:JSON.stringify({name:e})}),revealJob:e=>Q(`/api/jobs/${encodeURIComponent(e)}/reveal`,{method:`POST`}),importLinks:e=>Q(`/api/jobs/import`,{method:`POST`,body:JSON.stringify({urls:e})}),today:(e=7)=>Q(`/api/today?cap=${e}`),setStatus:(e,t,n)=>Q(`/api/jobs/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({status:t,reason:n})}),addNote:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({note:t})}),packet:e=>Q(`/api/jobs/${encodeURIComponent(e)}/packet`),coverLetter:e=>Q(`/api/jobs/${encodeURIComponent(e)}/cover-letter`),writeCoverLetter:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/cover-letter`,{method:`POST`,body:JSON.stringify(t)}),tailoredResume:e=>Q(`/api/jobs/${encodeURIComponent(e)}/resume`),writeTailoredResume:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/resume`,{method:`POST`,body:JSON.stringify(t)}),saveTailoredResume:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/resume`,{method:`PUT`,body:JSON.stringify({text:t})}),resumePrintUrl:e=>`/api/jobs/${encodeURIComponent(e)}/resume.html`,saveCoverLetter:(e,t)=>Q(`/api/jobs/${encodeURIComponent(e)}/cover-letter`,{method:`PUT`,body:JSON.stringify({text:t})}),saveApplication:(e,t,n)=>Q(`/api/jobs/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({application:{field:t,value:n}})}),runs:()=>Q(`/api/runs`),scan:()=>Q(`/api/scan`),startScan:(e=!1,t,n=!1)=>Q(`/api/scan`,{method:`POST`,body:JSON.stringify({dry:e,criteria:t||``,retryFailed:n})}),criteria:()=>Q(`/api/criteria`),saveCriteria:e=>Q(`/api/criteria`,{method:`PUT`,body:JSON.stringify({raw:e})}),outcomes:()=>Q(`/api/outcomes`),views:()=>Q(`/api/views`),defaultViews:()=>Q(`/api/views/defaults`),saveViews:e=>Q(`/api/views`,{method:`PUT`,body:JSON.stringify({views:e})}),mail:()=>Q(`/api/mail`),mailCheck:e=>Q(`/api/mail/check`,{method:`POST`,body:JSON.stringify({sinceDays:e})}),mailConfirm:(e,t)=>Q(`/api/mail/${encodeURIComponent(e)}/confirm`,{method:`POST`,body:JSON.stringify({noteId:t})}),mailConfirmSafe:()=>Q(`/api/mail/confirm-safe`,{method:`POST`}),mailDismiss:e=>Q(`/api/mail/${encodeURIComponent(e)}/dismiss`,{method:`POST`}),previewCriteria:e=>Q(`/api/criteria/preview`,{method:`POST`,body:JSON.stringify({raw:e})}),rescoreNotes:(e=!1)=>Q(`/api/rescore`,{method:`POST`,body:JSON.stringify({dry:e})}),criteriaPresets:()=>Q(`/api/criteria/presets`),criteriaPreset:e=>Q(`/api/criteria/presets/${encodeURIComponent(e)}`),saveCriteriaPreset:(e,t)=>Q(`/api/criteria/presets/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify({raw:t})}),deleteCriteriaPreset:e=>Q(`/api/criteria/presets/${encodeURIComponent(e)}`,{method:`DELETE`}),activateCriteriaPreset:e=>Q(`/api/criteria/presets/${encodeURIComponent(e)}/activate`,{method:`POST`}),profileNotes:()=>Q(`/api/profile`),profileSummary:()=>Q(`/api/profile/summary`),saveProfileNote:(e,t)=>Q(`/api/profile`,{method:`PUT`,body:JSON.stringify({note:e,markdown:t})}),snippets:()=>Q(`/api/snippets`),saveSnippets:e=>Q(`/api/snippets`,{method:`PUT`,body:JSON.stringify({items:e})}),people:()=>Q(`/api/people`),person:e=>Q(`/api/people/${encodeURIComponent(e)}`),addPerson:e=>Q(`/api/people`,{method:`POST`,body:JSON.stringify(e)}),attachPerson:(e,t,n,r)=>Q(`/api/people/${encodeURIComponent(e)}/attach`,{method:`POST`,body:JSON.stringify({jobId:t,role:n,context:r})}),logContact:(e,t,n)=>Q(`/api/people/${encodeURIComponent(e)}/log`,{method:`POST`,body:JSON.stringify({text:t,date:n})}),jobPeople:e=>Q(`/api/jobs/${encodeURIComponent(e)}/people`),jobConnections:e=>Q(`/api/jobs/${encodeURIComponent(e)}/connections`),linkedinStatus:()=>Q(`/api/linkedin`),linkedinPreview:(e,t,n)=>Q(`/api/linkedin/preview`,{method:`POST`,body:JSON.stringify({source:e,since:t,everyone:n})}),linkedinImport:(e,t={})=>Q(`/api/linkedin/import`,{method:`POST`,body:JSON.stringify({source:e,...t})}),companies:()=>Q(`/api/companies`),addCompany:e=>Q(`/api/companies`,{method:`POST`,body:JSON.stringify(e)}),findBoard:(e,t,n)=>Q(`/api/companies/find?slug=${encodeURIComponent(e)}&ats=${encodeURIComponent(t)}&name=${encodeURIComponent(n)}`),moveBoard:e=>Q(`/api/companies/move`,{method:`POST`,body:JSON.stringify(e)}),feeds:()=>Q(`/api/feeds`),onboarding:()=>Q(`/api/onboarding`),initProfile:()=>Q(`/api/onboarding/init`,{method:`POST`,body:`{}`}),importResume:e=>Q(`/api/onboarding/resume`,{method:`POST`,body:JSON.stringify({path:e})})},Jg=e=>`$${Math.round(e/1e3)}k`,Yg=e=>{let t=(e.replace(/\s*[•·].*$/,``).split(/(?<=[a-z])(?=[A-Z])/)[0]??``).replace(/\s+/g,` `).trim();return t.length>30?t.slice(0,29).trimEnd()+`…`:t},Xg=e=>{if(!e)return``;let t=Math.floor((Date.now()-new Date(e).getTime())/864e5);return Number.isFinite(t)?t<=0?`today`:`${t}d ago`:``},Zg={floor:`Floor`,stretch:`Stretch`,below:`Below`,unknown:`Not stated`},Qg={floor:`success`,stretch:`warning`,below:`neutral`,unknown:`neutral`},$g={new:`neutral`,reviewing:`primary`,applying:`primary`,ready:`warning`,applied:`primary`,interviewing:`warning`,offer:`success`,rejected:`danger`,passed:`neutral`};function e_(e){let[t,n]=(0,b.useState)(()=>typeof window<`u`&&window.matchMedia(e).matches);return(0,b.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}var t_={name:`TekJobs`,logo:`/brand/tekjobs-avatar-192.png`};function n_({href:e=`/`}){return(0,x.jsxs)(`a`,{className:`brand-mark`,href:e,"aria-label":t_.name,children:[t_.logo&&(0,x.jsx)(`img`,{className:`brand-mark__logo`,src:t_.logo,alt:``}),(0,x.jsxs)(`span`,{"aria-hidden":`true`,children:[`Tek`,(0,x.jsx)(`span`,{className:`brand-mark__accent`,children:`Jobs`})]})]})}function r_(){let[e,t]=(0,b.useState)(!1),[n,r]=(0,b.useState)(null),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(null),[c,l]=(0,b.useState)(!1),u=(0,b.useRef)(null),d=()=>$.snippets().then(r).catch(e=>X({title:`Could not load the copy panel`,description:e.message,tone:`danger`}));(0,b.useEffect)(()=>{e&&!n&&d()},[e]),(0,b.useEffect)(()=>{e?setTimeout(()=>u.current?.focus(),30):a(``)},[e]);let f=(0,b.useMemo)(()=>{let e=i.trim().toLowerCase(),t=(n?.items??[]).filter(t=>t.value&&(!e||`${t.group} ${t.label} ${t.value}`.toLowerCase().includes(e))),r=new Map;for(let e of t){let t=e.group||`Other`;r.has(t)||r.set(t,[]),r.get(t).push(e)}return[...r.entries()]},[n,i]),p=async e=>{try{await navigator.clipboard.writeText(e.value),s(e.label),setTimeout(()=>s(t=>t===e.label?null:t),1600)}catch(e){X({title:`Could not copy`,description:e.message,tone:`danger`})}},m=f[0]?.[1][0];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(fd,{open:e,onOpenChange:t,size:`lg`,children:[(0,x.jsx)(Bh,{content:`Copy panel`,children:(0,x.jsx)(fd.Trigger,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,"aria-label":`Copy panel`,leadingIcon:(0,x.jsx)(H.Copy,{})})})}),(0,x.jsx)(fd.Content,{align:`end`,showArrow:!1,children:(0,x.jsxs)(`div`,{className:`copy`,children:[(0,x.jsx)(`form`,{className:`copy__search`,onSubmit:e=>{e.preventDefault(),m&&p(m)},children:(0,x.jsx)(Zp,{ref:u,size:`sm`,"aria-label":`Find a snippet`,placeholder:`Find, then Enter copies the first`,leadingIcon:(0,x.jsx)(H.Search,{}),value:i,onChange:e=>a(e.target.value)})}),n?f.length===0?(0,x.jsx)(`p`,{className:`muted copy__empty`,children:n.items.length===0?`Nothing here yet. Customize adds lines.`:i?`Nothing matches.`:`Every snippet is empty. Customize fills them in.`}):(0,x.jsx)(`div`,{className:`copy__groups`,children:f.map(([e,t])=>(0,x.jsxs)(`div`,{className:`copy__group`,children:[(0,x.jsx)(`div`,{className:`microlabel`,children:e}),t.map(t=>(0,x.jsx)(B,{asChild:!0,variant:`ghost`,tone:`neutral`,size:`sm`,align:`start`,className:`copy__row`,children:(0,x.jsxs)(`button`,{type:`button`,onClick:()=>p(t),title:t.value,children:[(0,x.jsx)(`span`,{className:`copy__label`,children:t.label}),(0,x.jsxs)(`span`,{className:`copy__value num`,children:[o===t.label?`Copied`:t.value.split(`
58
58
  `)[0],t.value.includes(`
59
59
  `)&&o!==t.label?` …`:``]})]})},`${e}:${t.label}`))]},e))}):(0,x.jsx)(zg,{lines:4}),(0,x.jsxs)(`div`,{className:`copy__foot`,children:[(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,leadingIcon:(0,x.jsx)(H.Edit,{}),onClick:()=>{t(!1),l(!0)},children:`Customize`}),n&&!n.exists&&(0,x.jsx)(`span`,{className:`muted`,children:`Read from your profile until you save once.`})]})]})})]}),c&&n&&(0,x.jsx)(i_,{initial:n.items,path:n.path,onClose:()=>l(!1),onSaved:e=>{r(e),l(!1)}})]})}function i_({initial:e,path:t,onClose:n,onSaved:r}){let[i,a]=(0,b.useState)(e.length?e:[{group:``,label:``,value:``}]),[o,s]=(0,b.useState)(!1),c=(e,t)=>a(n=>n.map((n,r)=>r===e?{...n,...t}:n)),l=(e,t)=>a(n=>{let r=e+t;if(r<0||r>=n.length)return n;let i=[...n];return[i[e],i[r]]=[i[r],i[e]],i}),u=e=>a(t=>t.filter((t,n)=>n!==e));return(0,x.jsx)(Sp,{open:!0,onOpenChange:e=>!e&&n(),side:`right`,size:`md`,children:(0,x.jsx)(Sp.Content,{children:(0,x.jsxs)(`div`,{className:`detail`,children:[(0,x.jsx)(Sp.Title,{children:`Customize the copy panel`}),(0,x.jsxs)(Sp.Description,{children:[`Label is the button, group is its heading, value is what lands on the clipboard. Lines with no label are dropped. Saved to `,(0,x.jsx)(`code`,{className:`mono`,children:t.split(/[\\/]/).slice(-2).join(`/`)}),`, so Obsidian works too.`]}),(0,x.jsx)(`div`,{className:`copy__rows`,children:i.map((e,t)=>(0,x.jsxs)(`div`,{className:`copy__edit`,children:[(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(Zp,{size:`sm`,label:`Label`,value:e.label,onChange:e=>c(t,{label:e.target.value})}),(0,x.jsx)(Zp,{size:`sm`,label:`Group`,value:e.group,onChange:e=>c(t,{group:e.target.value})})]}),(0,x.jsx)(Xp,{label:`Value`,rows:e.value.includes(`
60
- `)?4:1,value:e.value,onChange:e=>c(t,{value:e.target.value})}),(0,x.jsxs)(`div`,{className:`copy__edit-actions`,children:[(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,"aria-label":`Move up`,leadingIcon:(0,x.jsx)(H.ArrowUp,{}),disabled:t===0,onClick:()=>l(t,-1)}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,"aria-label":`Move down`,leadingIcon:(0,x.jsx)(H.ArrowDown,{}),disabled:t===i.length-1,onClick:()=>l(t,1)}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`danger`,"aria-label":`Remove`,leadingIcon:(0,x.jsx)(H.Trash,{}),onClick:()=>u(t)})]})]},t))}),(0,x.jsxs)(`div`,{className:`form__actions`,children:[(0,x.jsx)(B,{size:`sm`,variant:`soft`,tone:`neutral`,leadingIcon:(0,x.jsx)(H.Plus,{}),onClick:()=>a(e=>[...e,{group:e[e.length-1]?.group??``,label:``,value:``}]),children:`Add a line`}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,onClick:n,children:`Cancel`}),(0,x.jsx)(B,{size:`sm`,tone:`primary`,loading:o,onClick:async()=>{s(!0);try{let e=await $.saveSnippets(i);X({title:`Copy panel saved`,description:`Profile/Snippets.md`,tone:`success`}),r(e)}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}s(!1)},children:`Save`})]})]})})})}var a_=[{page:`onboarding`,label:`Get started`,icon:H.Sparkles},{page:`today`,label:`Today`,icon:H.Star},{page:`overview`,label:`Overview`,icon:H.Home},{page:`jobs`,label:`Jobs`,icon:H.Inbox},{page:`pipeline`,label:`Pipeline`,icon:H.Layers},{page:`mail`,label:`Mail`,icon:H.Mail},{page:`people`,label:`People`,icon:H.Users},{page:`companies`,label:`Sources`,icon:H.Globe},{page:`criteria`,label:`Criteria`,icon:H.Filter},{page:`profile`,label:`Profile`,icon:H.User},{page:`runs`,label:`Runs`,icon:H.Refresh},{page:`agent`,label:`Agent access`,icon:H.Terminal},{page:`settings`,label:`Settings`,icon:H.Settings}],o_={onboarding:`Get started`,today:`Today`,overview:`Overview`,jobs:`Jobs`,pipeline:`Pipeline`,mail:`Mail`,people:`People`,companies:`Sources`,criteria:`Criteria`,profile:`Profile`,runs:`Runs`,agent:`Agent access`,settings:`Settings`},s_=[{title:`Work`,pages:[`today`,`jobs`,`pipeline`,`mail`,`people`]},{title:`Insights`,pages:[`overview`]},{title:`Setup`,pages:[`profile`,`criteria`,`companies`]},{title:`System`,pages:[`runs`,`agent`,`settings`,`onboarding`]}];function c_({page:e,onNavigate:t,onSearch:n,theme:r,onToggleTheme:i,onboarded:a=!0,counts:o={},lastScan:s=``,children:c}){let[l,u]=(0,b.useState)(!1),d=e_(`(max-width: 40rem)`),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(()=>{try{return localStorage.getItem(`tekjobs.sidebar`)===`collapsed`}catch{return!1}}),g=()=>h(e=>{try{localStorage.setItem(`tekjobs.sidebar`,e?`open`:`collapsed`)}catch{}return!e}),_=e=>{t(e),u(!1)};return(0,x.jsxs)(`div`,{className:`shell${m?` shell--collapsed`:``}${d?` shell--strip`:``}`,children:[(0,x.jsx)(`aside`,{className:`sidebar`,"aria-label":`Primary`,children:(0,x.jsx)(l_,{page:e,onNavigate:_,onboarded:a,counts:o,lastScan:s,collapsed:m||d,onToggleCollapsed:d?void 0:g,tipSide:d?`bottom`:`right`})}),(0,x.jsxs)(`div`,{className:`main`,children:[(0,x.jsxs)(`header`,{className:`topbar`,children:[(0,x.jsxs)(Sp,{open:l,onOpenChange:u,side:`left`,size:`sm`,children:[(0,x.jsx)(Sp.Trigger,{asChild:!0,children:(0,x.jsx)(B,{className:`topbar__menu`,variant:`ghost`,size:`sm`,"aria-label":`Open navigation`,leadingIcon:(0,x.jsx)(H.Menu,{})})}),(0,x.jsxs)(Sp.Content,{children:[(0,x.jsx)(Sp.Title,{children:`Navigation`}),(0,x.jsx)(`div`,{className:`sidebar sidebar--sheet`,children:(0,x.jsx)(l_,{page:e,onNavigate:_,onboarded:a,counts:o,lastScan:s,collapsed:!1})})]})]}),(0,x.jsx)(`h1`,{className:`topbar__title`,children:o_[e]}),(0,x.jsx)(`form`,{className:`topbar__search`,onSubmit:e=>{e.preventDefault(),n(f.trim())},children:(0,x.jsx)(Zp,{size:`sm`,placeholder:`Search company or role`,"aria-label":`Search jobs`,leadingIcon:(0,x.jsx)(H.Search,{}),trailingIcon:(0,x.jsx)(`span`,{className:`num`,children:`⌘K`}),value:f,onChange:e=>p(e.target.value)})}),(0,x.jsxs)(`div`,{className:`topbar__actions`,children:[(0,x.jsx)(r_,{}),(0,x.jsx)(Bh,{content:r===`light`?`Switch to dark`:`Switch to light`,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,onClick:i,"aria-label":`Toggle theme`,leadingIcon:r===`light`?(0,x.jsx)(H.Moon,{}):(0,x.jsx)(H.Sun,{})})})]})]}),c]})]})}function l_({page:e,onNavigate:t,onboarded:n,counts:r,lastScan:i,collapsed:a,onToggleCollapsed:o,tipSide:s=`right`}){let c=new Map(a_.map(e=>[e.page,e])),l=n?s_:[{title:`Start`,pages:[`onboarding`]},...s_.map(e=>({...e,pages:e.pages.filter(e=>e!==`onboarding`)}))];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`brand`,children:[(0,x.jsx)(n_,{}),o&&(0,x.jsx)(Bh,{content:a?`Expand the sidebar`:`Collapse the sidebar`,children:(0,x.jsx)(B,{className:`sidebar__collapse`,variant:`ghost`,size:`sm`,tone:`neutral`,"aria-label":a?`Expand the sidebar`:`Collapse the sidebar`,leadingIcon:a?(0,x.jsx)(H.ChevronRight,{}):(0,x.jsx)(H.ChevronLeft,{}),onClick:o})})]}),(0,x.jsx)(`nav`,{className:`nav`,"aria-label":`Pages`,children:l.map(n=>(0,x.jsxs)(`div`,{className:`nav__group`,children:[!a&&(0,x.jsx)(`div`,{className:`nav__group-title`,children:n.title}),n.pages.map(e=>c.get(e)).filter(e=>!!e).map(n=>{let i=(0,x.jsx)(B,{className:`nav__item`,align:`start`,variant:e===n.page?`soft`:`ghost`,tone:e===n.page?`primary`:`neutral`,size:`sm`,leadingIcon:(0,x.jsx)(n.icon,{}),trailingIcon:!a&&r[n.page]!=null?(0,x.jsx)(`span`,{className:`nav__count`,children:r[n.page]}):void 0,"aria-current":e===n.page?`page`:void 0,"aria-label":a?n.label:void 0,onClick:()=>t(n.page),children:a?null:n.label},n.page);return a?(0,x.jsx)(Bh,{content:r[n.page]==null?n.label:`${n.label} · ${r[n.page]}`,side:s,children:i},n.page):i})]},n.title))}),!a&&(0,x.jsx)(`div`,{className:`sidebar__foot`,children:(0,x.jsxs)(`div`,{children:[`Notes are the record.`,i&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(`span`,{className:`num`,children:i})]}),(0,x.jsx)(`br`,{}),(0,x.jsxs)(`span`,{className:`num`,children:[`v`,`0.32.1`]}),(0,x.jsx)(`br`,{}),(0,x.jsx)(`a`,{className:`sidebar__legal`,href:`https://tekjobs.timurtek.com/legal/terms`,target:`_blank`,rel:`noreferrer`,children:`Terms`}),` · `,(0,x.jsx)(`a`,{className:`sidebar__legal`,href:`https://tekjobs.timurtek.com/legal/privacy`,target:`_blank`,rel:`noreferrer`,children:`Privacy`})]})})]})}var u_=`{
60
+ `)?4:1,value:e.value,onChange:e=>c(t,{value:e.target.value})}),(0,x.jsxs)(`div`,{className:`copy__edit-actions`,children:[(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,"aria-label":`Move up`,leadingIcon:(0,x.jsx)(H.ArrowUp,{}),disabled:t===0,onClick:()=>l(t,-1)}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,"aria-label":`Move down`,leadingIcon:(0,x.jsx)(H.ArrowDown,{}),disabled:t===i.length-1,onClick:()=>l(t,1)}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`danger`,"aria-label":`Remove`,leadingIcon:(0,x.jsx)(H.Trash,{}),onClick:()=>u(t)})]})]},t))}),(0,x.jsxs)(`div`,{className:`form__actions`,children:[(0,x.jsx)(B,{size:`sm`,variant:`soft`,tone:`neutral`,leadingIcon:(0,x.jsx)(H.Plus,{}),onClick:()=>a(e=>[...e,{group:e[e.length-1]?.group??``,label:``,value:``}]),children:`Add a line`}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,onClick:n,children:`Cancel`}),(0,x.jsx)(B,{size:`sm`,tone:`primary`,loading:o,onClick:async()=>{s(!0);try{let e=await $.saveSnippets(i);X({title:`Copy panel saved`,description:`Profile/Snippets.md`,tone:`success`}),r(e)}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}s(!1)},children:`Save`})]})]})})})}var a_=[{page:`onboarding`,label:`Get started`,icon:H.Sparkles},{page:`today`,label:`Today`,icon:H.Star},{page:`overview`,label:`Overview`,icon:H.Home},{page:`jobs`,label:`Jobs`,icon:H.Inbox},{page:`pipeline`,label:`Pipeline`,icon:H.Layers},{page:`mail`,label:`Mail`,icon:H.Mail},{page:`people`,label:`People`,icon:H.Users},{page:`companies`,label:`Sources`,icon:H.Globe},{page:`criteria`,label:`Criteria`,icon:H.Filter},{page:`profile`,label:`Profile`,icon:H.User},{page:`runs`,label:`Runs`,icon:H.Refresh},{page:`agent`,label:`Agent access`,icon:H.Terminal},{page:`settings`,label:`Settings`,icon:H.Settings}],o_={onboarding:`Get started`,today:`Today`,overview:`Overview`,jobs:`Jobs`,pipeline:`Pipeline`,mail:`Mail`,people:`People`,companies:`Sources`,criteria:`Criteria`,profile:`Profile`,runs:`Runs`,agent:`Agent access`,settings:`Settings`},s_=[{title:`Work`,pages:[`today`,`jobs`,`pipeline`,`mail`,`people`]},{title:`Insights`,pages:[`overview`]},{title:`Setup`,pages:[`profile`,`criteria`,`companies`]},{title:`System`,pages:[`runs`,`agent`,`settings`,`onboarding`]}];function c_({page:e,onNavigate:t,onSearch:n,theme:r,onToggleTheme:i,onboarded:a=!0,counts:o={},lastScan:s=``,children:c}){let[l,u]=(0,b.useState)(!1),d=e_(`(max-width: 40rem)`),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(()=>{try{return localStorage.getItem(`tekjobs.sidebar`)===`collapsed`}catch{return!1}}),g=()=>h(e=>{try{localStorage.setItem(`tekjobs.sidebar`,e?`open`:`collapsed`)}catch{}return!e}),_=e=>{t(e),u(!1)};return(0,x.jsxs)(`div`,{className:`shell${m?` shell--collapsed`:``}${d?` shell--strip`:``}`,children:[(0,x.jsx)(`aside`,{className:`sidebar`,"aria-label":`Primary`,children:(0,x.jsx)(l_,{page:e,onNavigate:_,onboarded:a,counts:o,lastScan:s,collapsed:m||d,onToggleCollapsed:d?void 0:g,tipSide:d?`bottom`:`right`})}),(0,x.jsxs)(`div`,{className:`main`,children:[(0,x.jsxs)(`header`,{className:`topbar`,children:[(0,x.jsxs)(Sp,{open:l,onOpenChange:u,side:`left`,size:`sm`,children:[(0,x.jsx)(Sp.Trigger,{asChild:!0,children:(0,x.jsx)(B,{className:`topbar__menu`,variant:`ghost`,size:`sm`,"aria-label":`Open navigation`,leadingIcon:(0,x.jsx)(H.Menu,{})})}),(0,x.jsxs)(Sp.Content,{children:[(0,x.jsx)(Sp.Title,{children:`Navigation`}),(0,x.jsx)(`div`,{className:`sidebar sidebar--sheet`,children:(0,x.jsx)(l_,{page:e,onNavigate:_,onboarded:a,counts:o,lastScan:s,collapsed:!1})})]})]}),(0,x.jsx)(`h1`,{className:`topbar__title`,children:o_[e]}),(0,x.jsx)(`form`,{className:`topbar__search`,onSubmit:e=>{e.preventDefault(),n(f.trim())},children:(0,x.jsx)(Zp,{size:`sm`,placeholder:`Search company or role`,"aria-label":`Search jobs`,leadingIcon:(0,x.jsx)(H.Search,{}),trailingIcon:(0,x.jsx)(`span`,{className:`num`,children:`⌘K`}),value:f,onChange:e=>p(e.target.value)})}),(0,x.jsxs)(`div`,{className:`topbar__actions`,children:[(0,x.jsx)(r_,{}),(0,x.jsx)(Bh,{content:r===`light`?`Switch to dark`:`Switch to light`,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,onClick:i,"aria-label":`Toggle theme`,leadingIcon:r===`light`?(0,x.jsx)(H.Moon,{}):(0,x.jsx)(H.Sun,{})})})]})]}),c]})]})}function l_({page:e,onNavigate:t,onboarded:n,counts:r,lastScan:i,collapsed:a,onToggleCollapsed:o,tipSide:s=`right`}){let c=new Map(a_.map(e=>[e.page,e])),l=n?s_:[{title:`Start`,pages:[`onboarding`]},...s_.map(e=>({...e,pages:e.pages.filter(e=>e!==`onboarding`)}))];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`brand`,children:[(0,x.jsx)(n_,{}),o&&(0,x.jsx)(Bh,{content:a?`Expand the sidebar`:`Collapse the sidebar`,children:(0,x.jsx)(B,{className:`sidebar__collapse`,variant:`ghost`,size:`sm`,tone:`neutral`,"aria-label":a?`Expand the sidebar`:`Collapse the sidebar`,leadingIcon:a?(0,x.jsx)(H.ChevronRight,{}):(0,x.jsx)(H.ChevronLeft,{}),onClick:o})})]}),(0,x.jsx)(`nav`,{className:`nav`,"aria-label":`Pages`,children:l.map(n=>(0,x.jsxs)(`div`,{className:`nav__group`,children:[!a&&(0,x.jsx)(`div`,{className:`nav__group-title`,children:n.title}),n.pages.map(e=>c.get(e)).filter(e=>!!e).map(n=>{let i=(0,x.jsx)(B,{className:`nav__item`,align:`start`,variant:e===n.page?`soft`:`ghost`,tone:e===n.page?`primary`:`neutral`,size:`sm`,leadingIcon:(0,x.jsx)(n.icon,{}),trailingIcon:!a&&r[n.page]!=null?(0,x.jsx)(`span`,{className:`nav__count`,children:r[n.page]}):void 0,"aria-current":e===n.page?`page`:void 0,"aria-label":a?n.label:void 0,onClick:()=>t(n.page),children:a?null:n.label},n.page);return a?(0,x.jsx)(Bh,{content:r[n.page]==null?n.label:`${n.label} · ${r[n.page]}`,side:s,children:i},n.page):i})]},n.title))}),!a&&(0,x.jsx)(`div`,{className:`sidebar__foot`,children:(0,x.jsxs)(`div`,{children:[`Notes are the record.`,i&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(`span`,{className:`num`,children:i})]}),(0,x.jsx)(`br`,{}),(0,x.jsxs)(`span`,{className:`num`,children:[`v`,`0.33.0`]}),(0,x.jsx)(`br`,{}),(0,x.jsx)(`a`,{className:`sidebar__legal`,href:`https://tekjobs.timurtek.com/legal/terms`,target:`_blank`,rel:`noreferrer`,children:`Terms`}),` · `,(0,x.jsx)(`a`,{className:`sidebar__legal`,href:`https://tekjobs.timurtek.com/legal/privacy`,target:`_blank`,rel:`noreferrer`,children:`Privacy`})]})})]})}var u_=`{
61
61
  "mcpServers": {
62
62
  "tekjobs": {
63
63
  "command": "node",
@@ -68,7 +68,7 @@ Defaulting to \`null\`.`}md(Ad,`getInvalidValueError`);var jd=xd,Md=Cd;(0,b.forw
68
68
  2. application_materials id=<note>
69
69
  3. draft the resume variant and cover letter from the profile + posting
70
70
  4. cover_letter_materials id=<note>, write it, then save_cover_letter id=<note> text=<letter>; fix what it flags
71
- 5. set_status id=<note> status=applying`})]})})]}),(0,x.jsx)(V,{padding:`none`,children:(0,x.jsxs)(Y,{"aria-label":`MCP tools`,density:`md`,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Tool`}),(0,x.jsx)(Y.HeadCell,{children:`What it does`})]})}),(0,x.jsx)(Y.Body,{children:d_.map(([e,t])=>(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`code`,{className:`mono`,children:e})}),(0,x.jsx)(Y.Cell,{children:t})]},e))})]})}),(0,x.jsx)(`p`,{className:`muted`,children:`Zengin's own MCP server (design-system checks for anyone editing this app) is configured alongside it in the same .mcp.json.`})]})}var p_=[`greenhouse`,`lever`,`ashby`,`workday`,`rippling`,`smartrecruiters`,`workable`,`bamboohr`,`breezy`,`personio`,`teamtailor`,`eightfold`],m_=[{key:`failed`,label:`Failed`,tone:`danger`},{key:`zero`,label:`Zero jobs`,tone:`warning`},{key:`stale`,label:`Stale`,tone:`warning`},{key:`never`,label:`Never fetched`,tone:`neutral`},{key:`ok`,label:`Healthy`,tone:`success`}],h_=Object.fromEntries(m_.map(e=>[e.key,e.tone])),g_=Object.fromEntries(m_.map(e=>[e.key,e.label]));function __(){let[e,t]=(0,b.useState)(null),[n,r]=(0,b.useState)(null),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(`all`),[c,l]=(0,b.useState)(`all`),[u,d]=(0,b.useState)(!1),[f,p]=(0,b.useState)({name:``,ats:`greenhouse`,slug:``,tier:`B`,notes:``}),[m,h]=(0,b.useState)(!1),[g,_]=(0,b.useState)(!1);(0,b.useEffect)(()=>{$.companies().then(t).catch(e=>X({title:`Could not load the watchlist`,description:e.message,tone:`danger`})),$.feeds().then(r).catch(()=>r([]))},[]);let v=(0,b.useMemo)(()=>{let t={};for(let n of e??[])t[n.health.state]=(t[n.health.state]||0)+1;return t},[e]),y=(0,b.useMemo)(()=>{let t=i.trim().toLowerCase(),n=e=>m_.findIndex(t=>t.key===e);return(e??[]).filter(e=>(o===`all`||e.tier===o)&&(c===`all`||e.health.state===c)&&(!t||`${e.name} ${e.ats} ${e.slug}`.toLowerCase().includes(t))).sort((e,t)=>n(e.health.state)-n(t.health.state)||e.name.localeCompare(t.name))},[e,i,o,c]),S=v.failed||0;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`toolbar`,children:[(0,x.jsx)(Zp,{className:`toolbar__search`,size:`sm`,label:`Search`,placeholder:`Company, platform or slug`,value:i,onChange:e=>a(e.target.value)}),(0,x.jsxs)(J,{className:`toolbar__filter`,size:`sm`,label:`Tier`,value:o,onValueChange:s,children:[(0,x.jsx)(J.Item,{value:`all`,children:`All tiers`}),(0,x.jsx)(J.Item,{value:`A`,children:`A, dream`}),(0,x.jsx)(J.Item,{value:`B`,children:`B, strong`}),(0,x.jsx)(J.Item,{value:`C`,children:`C, fine`})]}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),S>0&&(0,x.jsxs)(B,{size:`sm`,variant:`soft`,tone:`danger`,leadingIcon:(0,x.jsx)(H.Refresh,{}),loading:g,onClick:async()=>{_(!0);try{let e=await $.startScan(!1,void 0,!0);X({title:e.running?`Retrying ${S} failed board${S===1?``:`s`}`:`A scan is already running`,description:e.running?`Only the boards that failed last time, no feeds. Progress is on Runs; this page updates when it finishes.`:`Wait for it to finish, then retry.`,tone:e.running?`success`:`neutral`})}catch(e){X({title:`Could not start the retry`,description:e.message,tone:`danger`})}_(!1)},children:[`Retry `,S,` failed`]}),(0,x.jsxs)(W,{open:u,onOpenChange:d,size:`sm`,children:[(0,x.jsx)(W.Trigger,{asChild:!0,children:(0,x.jsx)(B,{tone:`primary`,size:`sm`,leadingIcon:(0,x.jsx)(H.Plus,{}),children:`Add a board`})}),(0,x.jsx)(W.Content,{children:(0,x.jsxs)(`form`,{className:`form`,onSubmit:async e=>{e.preventDefault(),h(!0);try{let e=await $.addCompany(f);t(e),d(!1),p({name:``,ats:`greenhouse`,slug:``,tier:`B`,notes:``}),X({title:`${f.name} added`,description:`It is fetched on the next scan.`,tone:`success`})}catch(e){X({title:`Not added`,description:e.message,tone:`danger`})}h(!1)},children:[(0,x.jsx)(W.Title,{children:`Watch a company board`}),(0,x.jsx)(W.Description,{children:`The slug is the board token in the careers URL. Rows are appended to Targets/Companies.md.`}),(0,x.jsx)(Zp,{label:`Company`,required:!0,value:f.name,onChange:e=>p({...f,name:e.target.value})}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(J,{label:`Platform`,value:f.ats,onValueChange:e=>p({...f,ats:e}),children:p_.map(e=>(0,x.jsx)(J.Item,{value:e,children:e},e))}),(0,x.jsxs)(J,{label:`Tier`,value:f.tier,onValueChange:e=>p({...f,tier:e}),children:[(0,x.jsx)(J.Item,{value:`A`,children:`A`}),(0,x.jsx)(J.Item,{value:`B`,children:`B`}),(0,x.jsx)(J.Item,{value:`C`,children:`C`})]})]}),(0,x.jsx)(Zp,{label:`Slug`,required:!0,description:f.ats===`workday`?`host/tenant/site`:f.ats===`eightfold`?`host/domain`:`as it appears in the board URL`,value:f.slug,onChange:e=>p({...f,slug:e.target.value})}),(0,x.jsx)(Zp,{label:`Notes`,value:f.notes,onChange:e=>p({...f,notes:e.target.value})}),(0,x.jsxs)(W.Footer,{children:[(0,x.jsx)(W.Close,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,children:`Cancel`})}),(0,x.jsx)(B,{type:`submit`,tone:`primary`,loading:m,children:`Add`})]})]})})]})]}),(0,x.jsxs)(`div`,{className:`health`,role:`group`,"aria-label":`Filter boards by health`,children:[(0,x.jsxs)(B,{size:`sm`,variant:c===`all`?`soft`:`ghost`,tone:`neutral`,onClick:()=>l(`all`),children:[`All `,(0,x.jsx)(`span`,{className:`num`,children:e?.length??0})]}),m_.map(e=>(0,x.jsxs)(B,{size:`sm`,variant:c===e.key?`soft`:`ghost`,tone:e.tone===`danger`?`danger`:`neutral`,onClick:()=>l(c===e.key?`all`:e.key),children:[e.label,` `,(0,x.jsx)(`span`,{className:`num`,children:v[e.key]||0})]},e.key))]}),(0,x.jsx)(V,{padding:`none`,children:e===null?(0,x.jsx)(`div`,{className:`loading`,children:(0,x.jsx)(zg,{lines:8})}):(0,x.jsxs)(Y,{"aria-label":`Company boards`,density:`md`,stickyHeader:!0,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Company`}),(0,x.jsx)(Y.HeadCell,{children:`Platform`}),(0,x.jsx)(Y.HeadCell,{children:`Slug`}),(0,x.jsx)(Y.HeadCell,{children:`Tier`}),(0,x.jsx)(Y.HeadCell,{children:`Health`}),(0,x.jsx)(Y.HeadCell,{children:`Last success`}),(0,x.jsx)(Y.HeadCell,{children:`Last attempt`}),(0,x.jsx)(Y.HeadCell,{children:`Notes`})]})}),(0,x.jsxs)(Y.Body,{children:[y.map(e=>(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.Cell,{children:e.name}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted`,children:e.ats})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`code`,{className:`mono`,children:e.slug})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(z,{tone:e.tier===`A`?`primary`:`neutral`,size:`sm`,children:e.tier||`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(Bh,{content:e.health.lastError||e.status||`No fetch on record yet.`,children:(0,x.jsxs)(z,{tone:h_[e.health.state],variant:e.health.state===`ok`?`soft`:`solid`,size:`sm`,children:[g_[e.health.state],e.health.failStreak>1?` ×${e.health.failStreak}`:``]})})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastOk?`${Xg(e.health.lastOk)} · ${e.health.lastOkJobs} job${e.health.lastOkJobs===1?``:`s`}`:e.status&&!e.status.startsWith(`bad-slug`)?e.status:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastAttempt?Xg(e.health.lastAttempt):`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted`,children:e.notes})})]},`${e.ats}:${e.slug}`)),y.length===0&&(0,x.jsx)(Y.Row,{children:(0,x.jsx)(Y.Cell,{colSpan:8,children:(0,x.jsx)(`span`,{className:`muted`,children:e.length===0?`No boards on the watchlist yet. Add one, or run the onboarding to start from the registry.`:`No boards match. Loosen a filter.`})})})]})]})}),(0,x.jsxs)(`p`,{className:`muted`,children:[y.length,` of `,e?.length??0,` boards. Failed means the latest attempt failed; zero means it answered with nothing, which for a board that once had jobs usually means the slug moved; stale means no success in three days. The Retry button fetches only the failed boards and writes matches like any scan.`]}),(0,x.jsx)(`h2`,{className:`settings__h`,children:`Aggregator feeds`}),(0,x.jsx)(V,{padding:`none`,children:n===null?(0,x.jsx)(`div`,{className:`loading`,children:(0,x.jsx)(zg,{lines:4})}):(0,x.jsxs)(Y,{"aria-label":`Aggregator feeds`,density:`md`,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Feed`}),(0,x.jsx)(Y.HeadCell,{children:`On`}),(0,x.jsx)(Y.HeadCell,{children:`Health`}),(0,x.jsx)(Y.HeadCell,{children:`Last success`}),(0,x.jsx)(Y.HeadCell,{children:`Last attempt`})]})}),(0,x.jsx)(Y.Body,{children:n.map(e=>(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.Cell,{children:(0,x.jsxs)(`div`,{className:`who__text`,children:[e.label,(0,x.jsxs)(`small`,{children:[(0,x.jsxs)(`code`,{className:`mono`,children:[`openSources.`,e.key]}),e.needsKey?` · needs a key`:``]})]})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(z,{tone:e.enabled?`success`:`neutral`,variant:`soft`,size:`sm`,children:e.enabled?`on`:`off`})}),(0,x.jsx)(Y.Cell,{children:e.enabled?(0,x.jsx)(Bh,{content:e.health.lastError||`No fetch on record yet.`,children:(0,x.jsx)(z,{tone:h_[e.health.state],variant:e.health.state===`ok`?`soft`:`solid`,size:`sm`,children:g_[e.health.state]})}):(0,x.jsx)(`span`,{className:`muted`,children:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastOk?`${Xg(e.health.lastOk)} · ${e.health.lastOkJobs} postings`:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastAttempt?Xg(e.health.lastAttempt):`—`})})]},e.key))})]})}),(0,x.jsxs)(`p`,{className:`muted`,children:[`Feeds are switched on and off in Criteria under `,(0,x.jsx)(`code`,{className:`mono`,children:`openSources`}),`. TekJobs postings and RemoteOK and HN are on unless you turn them off; the rest are opt-in.`]})]})}var v_={"design-eng":`design engineering`,adjacent:`adjacent titles`};function y_({title:e,rows:t,barBefore:n,barAfter:r}){return(0,x.jsxs)(`div`,{className:`preview__block`,children:[(0,x.jsxs)(`h3`,{children:[e,` `,(0,x.jsxs)(`span`,{className:`muted`,children:[`above the bar, `,n===r?`bar ${r}`:`bar ${n} → ${r}`]})]}),(0,x.jsxs)(`ul`,{className:`preview__list`,children:[t.map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsxs)(`span`,{className:`preview__score`,children:[e.aboveBefore,` → `,e.aboveAfter]}),` `,v_[e.key]??e.key,` `,(0,x.jsxs)(`span`,{className:`muted`,children:[`· `,e.notes,` notes, `,e.changed,` change`]})]},e.key)),t.length===0&&(0,x.jsx)(`li`,{className:`muted`,children:`Nothing to group.`})]})]})}function b_({title:e,rows:t,empty:n}){return(0,x.jsxs)(`div`,{className:`preview__block`,children:[(0,x.jsxs)(`h3`,{children:[e,` `,(0,x.jsxs)(`span`,{className:`muted`,children:[`(`,t.length,`)`]})]}),t.length===0?(0,x.jsx)(`p`,{className:`muted`,children:n}):(0,x.jsxs)(`ul`,{className:`preview__list`,children:[t.slice(0,8).map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsxs)(`span`,{className:`preview__score`,children:[e.before,` → `,e.after]}),` `,e.company,` — `,e.title]},e.id)),t.length>8&&(0,x.jsxs)(`li`,{className:`muted`,children:[`and `,t.length-8,` more`]})]})]})}var x_=`__active__`,S_=[`remoteok`,`hn`,`email`,`adzuna`,`usajobs`,`themuse`,`remotive`,`himalayas`,`jobicy`,`workingnomads`,`arbeitnow`,`wwr`,`wellfound`,`builtin`],C_={remoteok:`RemoteOK`,hn:`HN Who is hiring`,email:`Alert emails (Inbox/)`,adzuna:`Adzuna (needs a key)`,usajobs:`USAJOBS (needs a key)`,themuse:`The Muse`,remotive:`Remotive`,himalayas:`Himalayas`,jobicy:`Jobicy`,workingnomads:`Working Nomads`,arbeitnow:`Arbeitnow`,wwr:`We Work Remotely`,wellfound:`Wellfound`,builtin:`Built In`},w_=(e,t)=>t.reduce((e,t)=>e&&typeof e==`object`?e[t]:void 0,e);function T_(e,t,n){let[r,...i]=t;if(!r)return e;let a={...e};return i.length?(a[r]=T_(e[r]&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{},i,n),a):(n===void 0?delete a[r]:a[r]=n,a)}function E_({doc:e,path:t,label:n,hint:r,onChange:i,step:a=1}){let o=w_(e,t);return(0,x.jsx)(Zp,{size:`sm`,type:`number`,step:a,label:n,description:r,value:typeof o==`number`?String(o):``,onChange:n=>i(T_(e,t,n.target.value===``?void 0:Number(n.target.value)))})}function D_({label:e,hint:t,value:n,weighted:r,rows:i=8,onCommit:a}){let o=e=>r?Object.entries(e||{}).map(([e,t])=>`${e}: ${t}`).join(`
71
+ 5. set_status id=<note> status=applying`})]})})]}),(0,x.jsx)(V,{padding:`none`,children:(0,x.jsxs)(Y,{"aria-label":`MCP tools`,density:`md`,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Tool`}),(0,x.jsx)(Y.HeadCell,{children:`What it does`})]})}),(0,x.jsx)(Y.Body,{children:d_.map(([e,t])=>(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`code`,{className:`mono`,children:e})}),(0,x.jsx)(Y.Cell,{children:t})]},e))})]})}),(0,x.jsx)(`p`,{className:`muted`,children:`Zengin's own MCP server (design-system checks for anyone editing this app) is configured alongside it in the same .mcp.json.`})]})}var p_=[`greenhouse`,`lever`,`ashby`,`workday`,`rippling`,`smartrecruiters`,`workable`,`bamboohr`,`breezy`,`personio`,`teamtailor`,`eightfold`],m_=[{key:`failed`,label:`Failed`,tone:`danger`},{key:`zero`,label:`Zero jobs`,tone:`warning`},{key:`stale`,label:`Stale`,tone:`warning`},{key:`never`,label:`Never fetched`,tone:`neutral`},{key:`ok`,label:`Healthy`,tone:`success`}],h_=Object.fromEntries(m_.map(e=>[e.key,e.tone])),g_=Object.fromEntries(m_.map(e=>[e.key,e.label]));function __(){let[e,t]=(0,b.useState)(null),[n,r]=(0,b.useState)(null),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(`all`),[c,l]=(0,b.useState)(`all`),[u,d]=(0,b.useState)(!1),[f,p]=(0,b.useState)({name:``,ats:`greenhouse`,slug:``,tier:`B`,notes:``}),[m,h]=(0,b.useState)(!1),[g,_]=(0,b.useState)(!1);(0,b.useEffect)(()=>{$.companies().then(t).catch(e=>X({title:`Could not load the watchlist`,description:e.message,tone:`danger`})),$.feeds().then(r).catch(()=>r([]))},[]);let v=(0,b.useMemo)(()=>{let t={};for(let n of e??[])t[n.health.state]=(t[n.health.state]||0)+1;return t},[e]),y=(0,b.useMemo)(()=>{let t=i.trim().toLowerCase(),n=e=>m_.findIndex(t=>t.key===e);return(e??[]).filter(e=>(o===`all`||e.tier===o)&&(c===`all`||e.health.state===c)&&(!t||`${e.name} ${e.ats} ${e.slug}`.toLowerCase().includes(t))).sort((e,t)=>n(e.health.state)-n(t.health.state)||e.name.localeCompare(t.name))},[e,i,o,c]),S=v.failed||0,[C,w]=(0,b.useState)({}),T=e=>`${e.ats}:${e.slug}`,E=async e=>{w(t=>({...t,[T(e)]:`looking`}));try{w(t=>({...t,[T(e)]:void 0}));let t=await $.findBoard(e.slug,e.ats,e.name);w(n=>({...n,[T(e)]:t}))}catch(t){w(t=>{let n={...t};return delete n[T(e)],n}),X({title:`Could not probe`,description:t.message,tone:`danger`})}},D=async(e,n)=>{try{let r=await $.moveBoard({name:e.name,slug:e.slug,from:e.ats,to:n});t(r.companies),w(t=>{let n={...t};return delete n[T(e)],n}),X({title:`${e.name} now reads from ${n}`,description:`The row is updated in Targets/Companies.md; the next scan reads it there.`,tone:`success`})}catch(e){X({title:`Not moved`,description:e.message,tone:`danger`})}};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`toolbar`,children:[(0,x.jsx)(Zp,{className:`toolbar__search`,size:`sm`,label:`Search`,placeholder:`Company, platform or slug`,value:i,onChange:e=>a(e.target.value)}),(0,x.jsxs)(J,{className:`toolbar__filter`,size:`sm`,label:`Tier`,value:o,onValueChange:s,children:[(0,x.jsx)(J.Item,{value:`all`,children:`All tiers`}),(0,x.jsx)(J.Item,{value:`A`,children:`A, dream`}),(0,x.jsx)(J.Item,{value:`B`,children:`B, strong`}),(0,x.jsx)(J.Item,{value:`C`,children:`C, fine`})]}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),S>0&&(0,x.jsxs)(B,{size:`sm`,variant:`soft`,tone:`danger`,leadingIcon:(0,x.jsx)(H.Refresh,{}),loading:g,onClick:async()=>{_(!0);try{let e=await $.startScan(!1,void 0,!0);X({title:e.running?`Retrying ${S} failed board${S===1?``:`s`}`:`A scan is already running`,description:e.running?`Only the boards that failed last time, no feeds. Progress is on Runs; this page updates when it finishes.`:`Wait for it to finish, then retry.`,tone:e.running?`success`:`neutral`})}catch(e){X({title:`Could not start the retry`,description:e.message,tone:`danger`})}_(!1)},children:[`Retry `,S,` failed`]}),(0,x.jsxs)(W,{open:u,onOpenChange:d,size:`sm`,children:[(0,x.jsx)(W.Trigger,{asChild:!0,children:(0,x.jsx)(B,{tone:`primary`,size:`sm`,leadingIcon:(0,x.jsx)(H.Plus,{}),children:`Add a board`})}),(0,x.jsx)(W.Content,{children:(0,x.jsxs)(`form`,{className:`form`,onSubmit:async e=>{e.preventDefault(),h(!0);try{let e=await $.addCompany(f);t(e),d(!1),p({name:``,ats:`greenhouse`,slug:``,tier:`B`,notes:``}),X({title:`${f.name} added`,description:`It is fetched on the next scan.`,tone:`success`})}catch(e){X({title:`Not added`,description:e.message,tone:`danger`})}h(!1)},children:[(0,x.jsx)(W.Title,{children:`Watch a company board`}),(0,x.jsx)(W.Description,{children:`The slug is the board token in the careers URL. Rows are appended to Targets/Companies.md.`}),(0,x.jsx)(Zp,{label:`Company`,required:!0,value:f.name,onChange:e=>p({...f,name:e.target.value})}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(J,{label:`Platform`,value:f.ats,onValueChange:e=>p({...f,ats:e}),children:p_.map(e=>(0,x.jsx)(J.Item,{value:e,children:e},e))}),(0,x.jsxs)(J,{label:`Tier`,value:f.tier,onValueChange:e=>p({...f,tier:e}),children:[(0,x.jsx)(J.Item,{value:`A`,children:`A`}),(0,x.jsx)(J.Item,{value:`B`,children:`B`}),(0,x.jsx)(J.Item,{value:`C`,children:`C`})]})]}),(0,x.jsx)(Zp,{label:`Slug`,required:!0,description:f.ats===`workday`?`host/tenant/site`:f.ats===`eightfold`?`host/domain`:`as it appears in the board URL`,value:f.slug,onChange:e=>p({...f,slug:e.target.value})}),(0,x.jsx)(Zp,{label:`Notes`,value:f.notes,onChange:e=>p({...f,notes:e.target.value})}),(0,x.jsxs)(W.Footer,{children:[(0,x.jsx)(W.Close,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,children:`Cancel`})}),(0,x.jsx)(B,{type:`submit`,tone:`primary`,loading:m,children:`Add`})]})]})})]})]}),(0,x.jsxs)(`div`,{className:`health`,role:`group`,"aria-label":`Filter boards by health`,children:[(0,x.jsxs)(B,{size:`sm`,variant:c===`all`?`soft`:`ghost`,tone:`neutral`,onClick:()=>l(`all`),children:[`All `,(0,x.jsx)(`span`,{className:`num`,children:e?.length??0})]}),m_.map(e=>(0,x.jsxs)(B,{size:`sm`,variant:c===e.key?`soft`:`ghost`,tone:e.tone===`danger`?`danger`:`neutral`,onClick:()=>l(c===e.key?`all`:e.key),children:[e.label,` `,(0,x.jsx)(`span`,{className:`num`,children:v[e.key]||0})]},e.key))]}),(0,x.jsx)(V,{padding:`none`,children:e===null?(0,x.jsx)(`div`,{className:`loading`,children:(0,x.jsx)(zg,{lines:8})}):(0,x.jsxs)(Y,{"aria-label":`Company boards`,density:`md`,stickyHeader:!0,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Company`}),(0,x.jsx)(Y.HeadCell,{children:`Platform`}),(0,x.jsx)(Y.HeadCell,{children:`Slug`}),(0,x.jsx)(Y.HeadCell,{children:`Tier`}),(0,x.jsx)(Y.HeadCell,{children:`Health`}),(0,x.jsx)(Y.HeadCell,{children:`Last success`}),(0,x.jsx)(Y.HeadCell,{children:`Last attempt`}),(0,x.jsx)(Y.HeadCell,{children:`Notes`})]})}),(0,x.jsxs)(Y.Body,{children:[y.map(e=>(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.Cell,{children:e.name}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted`,children:e.ats})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`code`,{className:`mono`,children:e.slug})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(z,{tone:e.tier===`A`?`primary`:`neutral`,size:`sm`,children:e.tier||`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(Bh,{content:e.health.lastError||e.status||`No fetch on record yet.`,children:(0,x.jsxs)(z,{tone:h_[e.health.state],variant:e.health.state===`ok`?`soft`:`solid`,size:`sm`,children:[g_[e.health.state],e.health.failStreak>1?` ×${e.health.failStreak}`:``]})})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastOk?`${Xg(e.health.lastOk)} · ${e.health.lastOkJobs} job${e.health.lastOkJobs===1?``:`s`}`:e.status&&!e.status.startsWith(`bad-slug`)?e.status:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastAttempt?Xg(e.health.lastAttempt):`—`})}),(0,x.jsxs)(Y.Cell,{children:[(0,x.jsx)(`span`,{className:`muted`,children:e.notes}),e.health.state===`failed`&&(()=>{let t=C[T(e)];return t===`looking`?(0,x.jsx)(`span`,{className:`muted`,children:` · looking…`}):t&&t.found.length?(0,x.jsxs)(`span`,{className:`sources__move`,children:[` · `,(0,x.jsxs)(B,{size:`sm`,variant:`link`,tone:`primary`,onClick:()=>D(e,t.found[0].ats),children:[`Move to `,t.found[0].ats,` (`,t.found[0].jobs,` job`,t.found[0].jobs===1?``:`s`,`)`]})]}):t?(0,x.jsxs)(`span`,{className:`muted`,children:[` · `,t.note]}):(0,x.jsxs)(`span`,{className:`sources__move`,children:[` · `,(0,x.jsx)(B,{size:`sm`,variant:`link`,tone:`neutral`,onClick:()=>E(e),children:`Find board`})]})})()]})]},`${e.ats}:${e.slug}`)),y.length===0&&(0,x.jsx)(Y.Row,{children:(0,x.jsx)(Y.Cell,{colSpan:8,children:(0,x.jsx)(`span`,{className:`muted`,children:e.length===0?`No boards on the watchlist yet. Add one, or run the onboarding to start from the registry.`:`No boards match. Loosen a filter.`})})})]})]})}),(0,x.jsxs)(`p`,{className:`muted`,children:[y.length,` of `,e?.length??0,` boards. Failed means the latest attempt failed; zero means it answered with nothing, which for a board that once had jobs usually means the slug moved; stale means no success in three days. The Retry button fetches only the failed boards and writes matches like any scan.`]}),(0,x.jsx)(`h2`,{className:`settings__h`,children:`Aggregator feeds`}),(0,x.jsx)(V,{padding:`none`,children:n===null?(0,x.jsx)(`div`,{className:`loading`,children:(0,x.jsx)(zg,{lines:4})}):(0,x.jsxs)(Y,{"aria-label":`Aggregator feeds`,density:`md`,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Feed`}),(0,x.jsx)(Y.HeadCell,{children:`On`}),(0,x.jsx)(Y.HeadCell,{children:`Health`}),(0,x.jsx)(Y.HeadCell,{children:`Last success`}),(0,x.jsx)(Y.HeadCell,{children:`Last attempt`})]})}),(0,x.jsx)(Y.Body,{children:n.map(e=>(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.Cell,{children:(0,x.jsxs)(`div`,{className:`who__text`,children:[e.label,(0,x.jsxs)(`small`,{children:[(0,x.jsxs)(`code`,{className:`mono`,children:[`openSources.`,e.key]}),e.needsKey?` · needs a key`:``]})]})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(z,{tone:e.enabled?`success`:`neutral`,variant:`soft`,size:`sm`,children:e.enabled?`on`:`off`})}),(0,x.jsx)(Y.Cell,{children:e.enabled?(0,x.jsx)(Bh,{content:e.health.lastError||`No fetch on record yet.`,children:(0,x.jsx)(z,{tone:h_[e.health.state],variant:e.health.state===`ok`?`soft`:`solid`,size:`sm`,children:g_[e.health.state]})}):(0,x.jsx)(`span`,{className:`muted`,children:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastOk?`${Xg(e.health.lastOk)} · ${e.health.lastOkJobs} postings`:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`muted num`,children:e.health.lastAttempt?Xg(e.health.lastAttempt):`—`})})]},e.key))})]})}),(0,x.jsxs)(`p`,{className:`muted`,children:[`Feeds are switched on and off in Criteria under `,(0,x.jsx)(`code`,{className:`mono`,children:`openSources`}),`. TekJobs postings and RemoteOK and HN are on unless you turn them off; the rest are opt-in.`]})]})}var v_={"design-eng":`design engineering`,adjacent:`adjacent titles`};function y_({title:e,rows:t,barBefore:n,barAfter:r}){return(0,x.jsxs)(`div`,{className:`preview__block`,children:[(0,x.jsxs)(`h3`,{children:[e,` `,(0,x.jsxs)(`span`,{className:`muted`,children:[`above the bar, `,n===r?`bar ${r}`:`bar ${n} → ${r}`]})]}),(0,x.jsxs)(`ul`,{className:`preview__list`,children:[t.map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsxs)(`span`,{className:`preview__score`,children:[e.aboveBefore,` → `,e.aboveAfter]}),` `,v_[e.key]??e.key,` `,(0,x.jsxs)(`span`,{className:`muted`,children:[`· `,e.notes,` notes, `,e.changed,` change`]})]},e.key)),t.length===0&&(0,x.jsx)(`li`,{className:`muted`,children:`Nothing to group.`})]})]})}function b_({title:e,rows:t,empty:n}){return(0,x.jsxs)(`div`,{className:`preview__block`,children:[(0,x.jsxs)(`h3`,{children:[e,` `,(0,x.jsxs)(`span`,{className:`muted`,children:[`(`,t.length,`)`]})]}),t.length===0?(0,x.jsx)(`p`,{className:`muted`,children:n}):(0,x.jsxs)(`ul`,{className:`preview__list`,children:[t.slice(0,8).map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsxs)(`span`,{className:`preview__score`,children:[e.before,` → `,e.after]}),` `,e.company,` — `,e.title]},e.id)),t.length>8&&(0,x.jsxs)(`li`,{className:`muted`,children:[`and `,t.length-8,` more`]})]})]})}var x_=`__active__`,S_=[`remoteok`,`hn`,`email`,`adzuna`,`usajobs`,`themuse`,`remotive`,`himalayas`,`jobicy`,`workingnomads`,`arbeitnow`,`wwr`,`wellfound`,`builtin`],C_={remoteok:`RemoteOK`,hn:`HN Who is hiring`,email:`Alert emails (Inbox/)`,adzuna:`Adzuna (needs a key)`,usajobs:`USAJOBS (needs a key)`,themuse:`The Muse`,remotive:`Remotive`,himalayas:`Himalayas`,jobicy:`Jobicy`,workingnomads:`Working Nomads`,arbeitnow:`Arbeitnow`,wwr:`We Work Remotely`,wellfound:`Wellfound`,builtin:`Built In`},w_=(e,t)=>t.reduce((e,t)=>e&&typeof e==`object`?e[t]:void 0,e);function T_(e,t,n){let[r,...i]=t;if(!r)return e;let a={...e};return i.length?(a[r]=T_(e[r]&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{},i,n),a):(n===void 0?delete a[r]:a[r]=n,a)}function E_({doc:e,path:t,label:n,hint:r,onChange:i,step:a=1}){let o=w_(e,t);return(0,x.jsx)(Zp,{size:`sm`,type:`number`,step:a,label:n,description:r,value:typeof o==`number`?String(o):``,onChange:n=>i(T_(e,t,n.target.value===``?void 0:Number(n.target.value)))})}function D_({label:e,hint:t,value:n,weighted:r,rows:i=8,onCommit:a}){let o=e=>r?Object.entries(e||{}).map(([e,t])=>`${e}: ${t}`).join(`
72
72
  `):(e||[]).join(`
73
73
  `),[s,c]=(0,b.useState)(()=>o(n)),[l,u]=(0,b.useState)(``);return(0,b.useEffect)(()=>{c(o(n)),u(``)},[n]),(0,x.jsx)(Xp,{label:e,description:t,font:`mono`,rows:i,resize:`vertical`,value:s,onChange:e=>c(e.target.value),onBlur:()=>{let e=s.split(`
74
74
  `).map(e=>e.trim()).filter(Boolean);if(!r){u(``),a(e);return}let t={};for(let n of e){let e=n.match(/^(.*?)\s*:\s*(-?\d+(?:\.\d+)?)\s*$/);if(!e||!e[1]){u(`"${n}" is not "term: weight".`);return}t[e[1].trim().toLowerCase()]=Number(e[2])}u(``),a(t)},error:l||void 0})}function O_(){let[e,t]=(0,b.useState)(null),[n,r]=(0,b.useState)(``),[i,a]=(0,b.useState)(x_),[o,s]=(0,b.useState)([]),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(``),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(null),[g,_]=(0,b.useState)(!1),[v,y]=(0,b.useState)(null),[S,C]=(0,b.useState)(!1),[w,T]=(0,b.useState)(null),E=(0,b.useRef)(null),[D,O]=(0,b.useState)(null),[k,A]=(0,b.useState)(!1),j=(0,b.useMemo)(()=>e?JSON.stringify(e,null,2):``,[e]),ee=e!==null&&j!==n,M=i!==x_;(0,b.useEffect)(()=>{if(E.current&&window.clearTimeout(E.current),!ee||M){T(null);return}return E.current=window.setTimeout(()=>{$.previewCriteria(j).then(T).catch(()=>T(null))},700),()=>{E.current&&window.clearTimeout(E.current)}},[j,ee,M]),(0,b.useEffect)(()=>{if(!ee)return;let e=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[ee]);let N=()=>$.criteriaPresets().then(s).catch(()=>s([])),te=async e=>{try{let n=e===x_?await $.criteria():await $.criteriaPreset(e);if(!n.parsed)throw Error(`That note's JSON does not parse. Fix it in Obsidian first.`);t(n.parsed),r(JSON.stringify(n.parsed,null,2)),d(JSON.stringify(n.parsed,null,2)),p(``),a(e)}catch(e){X({title:`Could not load criteria`,description:e.message,tone:`danger`})}};(0,b.useEffect)(()=>{te(x_),N()},[]),(0,b.useEffect)(()=>{d(j),p(``)},[j]);let P=e=>t(e),F=async()=>{if(e){l(!0);try{if(M){let e=await $.saveCriteriaPreset(i,j);r(JSON.stringify(e.parsed,null,2)),X({title:`Preset "${i}" saved`,description:`Run a scan with it from here or from Runs; make it active to have the daily scan use it.`,tone:`success`})}else{let e=!!w?.weightsChange,t=w?w.notesAtCurrent:0,n=await $.saveCriteria(j);r(JSON.stringify(n.parsed,null,2)),X({title:`Criteria saved`,description:`Targets/Search Criteria.md updated. The next scan uses it.`,tone:`success`}),O(e&&t>0?{notes:t}:null)}N()}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}l(!1)}},ne=async()=>{if(e&&m?.trim()){l(!0);try{let e=await $.saveCriteriaPreset(m.trim(),j);h(null),await N(),a(e.name),r(JSON.stringify(e.parsed,null,2)),X({title:`Preset "${e.name}" created`,description:e.file,tone:`success`})}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}l(!1)}},re=async()=>{l(!0);try{await $.activateCriteriaPreset(i),await N(),X({title:`"${i}" is now the active criteria`,description:`Search Criteria.md holds a copy. The daily scan uses it from the next run.`,tone:`success`})}catch(e){X({title:`Could not activate`,description:e.message,tone:`danger`})}l(!1)},ie=async()=>{l(!0);try{await $.deleteCriteriaPreset(i),_(!1),await N(),await te(x_),X({title:`Preset deleted`,tone:`success`})}catch(e){X({title:`Could not delete`,description:e.message,tone:`danger`})}l(!1)},ae=async e=>{try{await $.startScan(e,M?i:void 0),X({title:e?`Dry run started`:`Scan started`,description:`Scoring with ${M?`"${i}"`:`the active criteria`}. Watch it on Runs.`,tone:`success`})}catch(e){X({title:`Could not start`,description:e.message,tone:`danger`})}},oe=async()=>{A(!0);try{let e=await $.rescoreNotes(!1);O(null),X({title:`${e.changed} note${e.changed===1?``:`s`} rescored`,description:`${e.alreadyCurrent} were already at these weights. Each moved note carries the new score, band and reasons, and a status-log line saying so.`,tone:`success`})}catch(e){X({title:`Rescore failed`,description:e.message,tone:`danger`})}A(!1)},se=async()=>{if(w){y(w);return}C(!0);try{y(await $.previewCriteria(j))}catch(e){X({title:`Could not preview`,description:e.message,tone:`danger`})}C(!1)},ce=()=>{try{let e=JSON.parse(u);t(e),p(``)}catch(e){p(e.message)}};if(!e)return(0,x.jsx)(zg,{variant:`rect`,height:`24rem`});let le=e.salary??{},ue={...Object.fromEntries(S_.map(e=>[e,!1])),...e.openSources??{}},de=o.find(e=>e.name===i);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`page__head`,children:[(0,x.jsx)(`div`,{children:(0,x.jsxs)(`p`,{children:[`What the scan looks for and how it scores. Fields write into the JSON in `,M?(0,x.jsxs)(`code`,{children:[`Targets/Criteria/`,i,`.md`]}):(0,x.jsx)(`code`,{children:`Targets/Search Criteria.md`}),`; keys this form does not show are kept as they are.`]})}),(0,x.jsxs)(`div`,{className:`chips`,children:[(0,x.jsxs)(z,{tone:`neutral`,size:`sm`,children:[`bar `,String(e.minScore??`?`)]}),le.minAnnual&&(0,x.jsxs)(z,{tone:`success`,size:`sm`,children:[`floor `,Jg(le.minAnnual)]}),le.stretchAnnual&&(0,x.jsxs)(z,{tone:`warning`,size:`sm`,children:[`stretch `,Jg(le.stretchAnnual)]}),ee&&(0,x.jsx)(z,{tone:`warning`,size:`sm`,children:`unsaved`})]})]}),(0,x.jsxs)(V,{padding:`md`,children:[(0,x.jsxs)(`div`,{className:`toolbar`,children:[(0,x.jsxs)(J,{className:`toolbar__filter toolbar__filter--wide`,size:`sm`,label:`Editing`,value:i,onValueChange:e=>{(!ee||window.confirm(`Discard unsaved changes?`))&&te(e)},children:[(0,x.jsx)(J.Item,{value:x_,children:`Active criteria (daily scan)`}),o.map(e=>(0,x.jsxs)(J.Item,{value:e.name,children:[e.name,e.active?` · same as active`:``]},e.name))]}),(0,x.jsx)(`div`,{className:`toolbar__spacer`}),(0,x.jsxs)(`div`,{className:`toolbar__switch pager__buttons`,children:[M&&(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`danger`,disabled:c,onClick:()=>_(!0),children:`Delete preset`}),M&&(0,x.jsx)(B,{size:`sm`,variant:`soft`,disabled:c||ee||de?.active,onClick:re,children:de?.active?`Is the active set`:`Make active`}),(0,x.jsx)(B,{size:`sm`,variant:`soft`,disabled:c||S,loading:S,onClick:se,children:`Preview impact`}),(0,x.jsx)(B,{size:`sm`,variant:`soft`,disabled:c,onClick:()=>h(M?`${i} copy`:``),children:`Save as preset…`}),(0,x.jsx)(B,{size:`sm`,variant:`soft`,disabled:c||ee,onClick:()=>ae(!0),children:`Dry run with this`}),(0,x.jsx)(B,{size:`sm`,variant:`soft`,disabled:c||ee,onClick:()=>ae(!1),children:`Scan with this`}),(0,x.jsx)(B,{size:`sm`,tone:`primary`,disabled:!ee||c,loading:c,onClick:F,children:M?`Save preset`:`Save to the vault`})]})]}),M&&de&&(0,x.jsxs)(`p`,{className:`muted`,children:[`Preset · `,de.titles,` title terms · updated `,de.updated,` · `,de.file]}),w&&(0,x.jsxs)(`div`,{className:`impact`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(`span`,{className:`microlabel`,children:`If saved`}),(0,x.jsxs)(z,{size:`sm`,tone:w.aboveAfter>=w.aboveBefore?`success`:`warning`,children:[`above the bar `,w.aboveBefore,` → `,w.aboveAfter]}),(0,x.jsxs)(z,{size:`sm`,tone:w.changed?`primary`:`neutral`,children:[w.changed,` of `,w.openNotes,` change score`]}),(0,x.jsxs)(z,{size:`sm`,tone:w.rise.length?`success`:`neutral`,children:[w.rise.length,` rise`]}),(0,x.jsxs)(z,{size:`sm`,tone:w.fall.length?`warning`:`neutral`,children:[w.fall.length,` fall`]}),(0,x.jsxs)(z,{size:`sm`,tone:`neutral`,children:[`top 20: `,w.enterTop20.length,` in, `,w.leaveTop20.length,` out`]}),w.weightsChange&&(0,x.jsx)(z,{size:`sm`,tone:`neutral`,variant:`outline`,children:(0,x.jsxs)(`span`,{className:`num`,children:[w.fingerprintBefore,` → `,w.fingerprintAfter]})}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,onClick:()=>y(w),children:`Details`})]}),D&&!ee&&(0,x.jsxs)(`div`,{className:`impact impact--after`,children:[(0,x.jsx)(`span`,{className:`microlabel`,children:`Saved`}),(0,x.jsxs)(`span`,{children:[D.notes,` open note`,D.notes===1?` was`:`s were`,` scored under the previous weights. The next scan scores new postings with the new ones; the existing notes keep their scores until you rescore them.`]}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),(0,x.jsxs)(B,{size:`sm`,variant:`soft`,tone:`primary`,loading:k,disabled:k,onClick:oe,children:[`Rescore `,D.notes,` notes`]}),(0,x.jsx)(B,{size:`sm`,variant:`ghost`,tone:`neutral`,disabled:k,onClick:()=>O(null),children:`Later`})]})]}),(0,x.jsxs)(Z,{defaultValue:`fields`,variant:`line`,size:`sm`,children:[(0,x.jsxs)(Z.List,{"aria-label":`Criteria editors`,children:[(0,x.jsx)(Z.Trigger,{value:`fields`,children:`Fields`}),(0,x.jsx)(Z.Trigger,{value:`titles`,children:`Titles and terms`}),(0,x.jsx)(Z.Trigger,{value:`location`,children:`Location and pay`}),(0,x.jsx)(Z.Trigger,{value:`sources`,children:`Sources`}),(0,x.jsx)(Z.Trigger,{value:`json`,children:`JSON (advanced)`})]}),(0,x.jsx)(Z.Content,{value:`fields`,children:(0,x.jsx)(V,{padding:`md`,children:(0,x.jsxs)(`div`,{className:`form`,children:[(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`minScore`],label:`Bar (minScore)`,hint:`A posting needs this many points to become a note.`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`noTitleMatchPenalty`],label:`No title match penalty`,hint:`Taken when the title matches nothing in the title terms.`,onChange:P})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`descCap`],label:`Description points cap`,hint:`Description terms add up to this many points, no more.`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`maxDescriptionChars`],label:`Description characters kept in a note`,onChange:P,step:500})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`titleExtraPer`],label:`Points per extra title match`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`titleExtraCap`],label:`Extra title matches cap`,onChange:P})]}),(0,x.jsx)(`h3`,{children:`Seniority`}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(D_,{label:`Boost (word: points)`,hint:`Words in the title that add. Example: staff: 10`,value:w_(e,[`seniority`,`boost`]),weighted:!0,rows:6,onCommit:t=>P(T_(e,[`seniority`,`boost`],t))}),(0,x.jsx)(D_,{label:`Penalty (word: points)`,hint:`Words in the title that subtract. Example: junior: -40`,value:w_(e,[`seniority`,`penalty`]),weighted:!0,rows:6,onCommit:t=>P(T_(e,[`seniority`,`penalty`],t))})]}),(0,x.jsx)(`h3`,{children:`Recency`}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`recency`,`days2`],label:`Posted within 2 days`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`recency`,`days7`],label:`Within 7 days`,onChange:P})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`recency`,`days30`],label:`Within 30 days`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`recency`,`days90`],label:`Within 90 days`,onChange:P})]}),(0,x.jsx)(`div`,{className:`form__row`,children:(0,x.jsx)(E_,{doc:e,path:[`recency`,`older`],label:`Older than 90 days`,onChange:P})})]})})}),(0,x.jsx)(Z.Content,{value:`titles`,children:(0,x.jsx)(V,{padding:`md`,children:(0,x.jsxs)(`div`,{className:`form`,children:[(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(D_,{label:`Title terms (term: weight)`,hint:`The best single match in the title counts fully; each extra match adds the per-extra points. One per line.`,value:e.titleTerms,weighted:!0,rows:18,onCommit:t=>P(T_(e,[`titleTerms`],t))}),(0,x.jsx)(D_,{label:`Title exclusions (one per line)`,hint:`Any hit in the title drops the posting entirely.`,value:e.titleExclude,weighted:!1,rows:18,onCommit:t=>P(T_(e,[`titleExclude`],t))})]}),(0,x.jsx)(D_,{label:`Description terms (term: weight)`,hint:`Each term found in the description adds its weight, up to the description cap.`,value:e.descTerms,weighted:!0,rows:14,onCommit:t=>P(T_(e,[`descTerms`],t))})]})})}),(0,x.jsx)(Z.Content,{value:`location`,children:(0,x.jsx)(V,{padding:`md`,children:(0,x.jsxs)(`div`,{className:`form`,children:[(0,x.jsx)(`h3`,{children:`Location`}),(0,x.jsx)(Hp,{label:`Remote only`,description:`Anything not remote takes the penalty below, which drops it under the bar.`,checked:!!w_(e,[`location`,`requireRemote`]),onCheckedChange:t=>P(T_(e,[`location`,`requireRemote`],t===!0))}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`location`,`notRemotePenalty`],label:`Not remote penalty`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`location`,`remoteBoost`],label:`Remote boost`,onChange:P})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`location`,`nonUsPenalty`],label:`Non-US penalty`,hint:`Applied when the location names a place in the list below and nothing US.`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`location`,`bayAreaBoost`],label:`Metro boost`,hint:`For the metro terms below. Set to 0 to switch it off.`,onChange:P})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(D_,{label:`Metro terms (one per line)`,hint:`Places that earn the metro boost. The interview seeds these from your location; empty the list for no boost.`,value:w_(e,[`location`,`bayAreaTerms`]),weighted:!1,rows:8,onCommit:t=>P(T_(e,[`location`,`bayAreaTerms`],t))}),(0,x.jsx)(D_,{label:`US terms (one per line)`,hint:`Words that mark a posting as US.`,value:w_(e,[`location`,`usTerms`]),weighted:!1,rows:8,onCommit:t=>P(T_(e,[`location`,`usTerms`],t))})]}),(0,x.jsx)(D_,{label:`Non-US terms (one per line)`,hint:`Places that trigger the non-US penalty. Whole words.`,value:w_(e,[`location`,`nonUsTerms`]),weighted:!1,rows:10,onCommit:t=>P(T_(e,[`location`,`nonUsTerms`],t))}),(0,x.jsx)(`h3`,{children:`Pay`}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`salary`,`minAnnual`],label:`Floor (annual)`,hint:`A stated range that tops out at or above this earns the bonus.`,onChange:P,step:5e3}),(0,x.jsx)(E_,{doc:e,path:[`salary`,`stretchAnnual`],label:`Stretch (annual)`,hint:`Between stretch and floor is the stretch band: kept visible, small penalty.`,onChange:P,step:5e3})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`salary`,`meetsBonus`],label:`Meets floor bonus`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`salary`,`stretchPenalty`],label:`Stretch band penalty`,onChange:P})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(E_,{doc:e,path:[`salary`,`belowPenalty`],label:`Below stretch penalty`,onChange:P}),(0,x.jsx)(E_,{doc:e,path:[`salary`,`abovePer10k`],label:`Points per $10k above floor`,hint:`Capped at ${String(w_(e,[`salary`,`aboveCap`])??`?`)} (aboveCap).`,onChange:P})]})]})})}),(0,x.jsx)(Z.Content,{value:`sources`,children:(0,x.jsx)(V,{padding:`md`,children:(0,x.jsxs)(`div`,{className:`form`,children:[(0,x.jsx)(`p`,{className:`muted`,children:`Aggregator feeds with no company slug. Company boards live on the Companies page. Adzuna and USAJOBS also need a free key in the environment.`}),(0,x.jsx)(`div`,{className:`form__row`,children:Object.keys(ue).map(t=>(0,x.jsx)(Hp,{label:C_[t]??t,checked:!!ue[t],onCheckedChange:n=>P(T_(e,[`openSources`,t],n===!0))},t))})]})})}),(0,x.jsx)(Z.Content,{value:`json`,children:(0,x.jsx)(V,{padding:`md`,children:(0,x.jsxs)(`div`,{className:`form`,children:[(0,x.jsx)(Xp,{label:`Criteria JSON`,description:`The whole document. Apply to push it into the fields; Save to write it to the vault.`,font:`mono`,rows:28,resize:`vertical`,value:u,onChange:e=>d(e.target.value),error:f||void 0}),(0,x.jsxs)(`div`,{className:`form__actions`,children:[(0,x.jsx)(B,{variant:`ghost`,size:`sm`,disabled:u===j,onClick:()=>{d(j),p(``)},children:`Revert`}),(0,x.jsx)(B,{variant:`soft`,size:`sm`,disabled:u===j,onClick:ce,children:`Apply to fields`})]})]})})})]}),(0,x.jsx)(W,{open:v!==null,onOpenChange:e=>!e&&y(null),size:`lg`,children:(0,x.jsxs)(W.Content,{children:[(0,x.jsx)(W.Title,{children:`What this set would do to the notes you have`}),(0,x.jsxs)(W.Description,{children:[`Against the active criteria. Covers `,v?.covers,`. Nothing is written by a preview.`,v?.weightsChange?` The weights change (${v.fingerprintBefore} → ${v.fingerprintAfter}); ${v.notesAtCurrent} open notes were scored under the current ones and can be rescored after saving.`:` The weights do not change; only the bar or the sources do.`]}),v&&(0,x.jsxs)(`div`,{className:`preview`,children:[(0,x.jsxs)(`div`,{className:`chips`,children:[(0,x.jsxs)(z,{size:`sm`,tone:`neutral`,children:[v.openNotes,` open notes`]}),(0,x.jsxs)(z,{size:`sm`,tone:v.changed?`primary`:`neutral`,children:[v.changed,` change score`]}),(0,x.jsxs)(z,{size:`sm`,tone:`neutral`,children:[`bar `,v.barBefore,` → `,v.barAfter]}),(0,x.jsxs)(z,{size:`sm`,tone:v.aboveAfter>=v.aboveBefore?`success`:`warning`,children:[`above the bar `,v.aboveBefore,` → `,v.aboveAfter]})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(b_,{title:`Rise above the bar`,rows:v.rise,empty:`Nothing crosses upward.`}),(0,x.jsx)(b_,{title:`Fall below the bar`,rows:v.fall,empty:`Nothing drops out.`})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(b_,{title:`Enter the top 20`,rows:v.enterTop20,empty:`The top 20 keeps its members.`}),(0,x.jsx)(b_,{title:`Leave the top 20`,rows:v.leaveTop20,empty:`The top 20 keeps its members.`})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(b_,{title:`Biggest gains`,rows:v.up,empty:`No note gains points.`}),(0,x.jsx)(b_,{title:`Biggest losses`,rows:v.down,empty:`No note loses points.`})]}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(y_,{title:`By role family`,rows:v.byKind,barBefore:v.barBefore,barAfter:v.barAfter}),(0,x.jsx)(y_,{title:`By source`,rows:v.bySource,barBefore:v.barBefore,barAfter:v.barAfter})]})]}),(0,x.jsxs)(W.Footer,{children:[(0,x.jsx)(W.Close,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,children:`Close`})}),ee&&(0,x.jsx)(B,{size:`sm`,tone:`primary`,disabled:c,onClick:()=>{y(null),F()},children:M?`Save preset`:`Save to the vault`})]})]})}),(0,x.jsx)(W,{open:m!==null,onOpenChange:e=>!e&&h(null),size:`sm`,children:(0,x.jsxs)(W.Content,{children:[(0,x.jsx)(W.Title,{children:`Save as a preset`}),(0,x.jsx)(W.Description,{children:`A named copy under Targets/Criteria/. The daily scan keeps using the active set until you make this one active.`}),(0,x.jsx)(Zp,{label:`Name`,placeholder:`Wider net, 180k floor`,value:m??``,onChange:e=>h(e.target.value)}),(0,x.jsxs)(W.Footer,{children:[(0,x.jsx)(W.Close,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,children:`Cancel`})}),(0,x.jsx)(B,{size:`sm`,tone:`primary`,disabled:!m?.trim()||c,loading:c,onClick:ne,children:`Save preset`})]})]})}),(0,x.jsx)(W,{open:g,onOpenChange:_,size:`sm`,children:(0,x.jsxs)(W.Content,{children:[(0,x.jsxs)(W.Title,{children:[`Delete "`,i,`"?`]}),(0,x.jsx)(W.Description,{children:`Removes the note under Targets/Criteria/. The active criteria and every job note stay as they are.`}),(0,x.jsxs)(W.Footer,{children:[(0,x.jsx)(W.Close,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,size:`sm`,children:`Keep it`})}),(0,x.jsx)(B,{size:`sm`,tone:`danger`,disabled:c,loading:c,onClick:ie,children:`Delete`})]})]})})]})}function k_({job:e}){let[t,n]=(0,b.useState)(null),[r,i]=(0,b.useState)(``),[a,o]=(0,b.useState)({emphasis:`auto`,length:`standard`,extra:``}),[s,c]=(0,b.useState)(!1),l=(0,b.useRef)(!1),u=(e,t)=>{n(e),t&&i(e.saved?.text??``)};(0,b.useEffect)(()=>{n(null),$.coverLetter(e.id).then(e=>u(e,!0)).catch(e=>X({title:`Could not read the letter`,description:e.message,tone:`danger`}))},[e.id]),(0,b.useEffect)(()=>{if(!t?.running){l.current&&t&&(l.current=!1,u(t,!t.error),t.error||X({title:`Cover letter drafted`,description:`Saved into the note. Read it before you use it.`,tone:`success`}));return}l.current=!0;let r=setInterval(()=>$.coverLetter(e.id).then(e=>n(e)).catch(()=>{}),2500);return()=>clearInterval(r)},[t?.running,e.id]);let d=async()=>{if(!t?.saved||window.confirm(`Write a new letter? It replaces the one saved in this note.`))try{u(await $.writeCoverLetter(e.id,a),!1)}catch(e){X({title:`Could not start`,description:e.message,tone:`danger`})}},f=async()=>{c(!0);try{u(await $.saveCoverLetter(e.id,r),!0),X({title:`Letter saved`,description:`Written into the note and checked against your resume.`,tone:`success`})}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}c(!1)},p=async()=>{try{await navigator.clipboard.writeText(r),X({title:`Copied`,tone:`success`})}catch{X({title:`Could not copy`,description:`Select the text and copy it by hand.`,tone:`danger`})}};if(!t)return(0,x.jsx)(`div`,{className:`detail`,children:(0,x.jsx)(zg,{lines:6})});let m=t.saved,h=!!m&&r!==m.text;return(0,x.jsxs)(`div`,{className:`detail`,children:[(0,x.jsxs)(`div`,{className:`letter__options`,children:[(0,x.jsxs)(J,{size:`sm`,label:`Emphasis`,value:a.emphasis,onValueChange:e=>o({...a,emphasis:e}),disabled:t.running,children:[(0,x.jsx)(J.Item,{value:`auto`,children:`Let the posting decide`}),(0,x.jsx)(J.Item,{value:`design-systems`,children:`Design systems first`}),(0,x.jsx)(J.Item,{value:`ai-product`,children:`AI product surfaces first`})]}),(0,x.jsxs)(J,{size:`sm`,label:`Length`,value:a.length,onValueChange:e=>o({...a,length:e}),disabled:t.running,children:[(0,x.jsx)(J.Item,{value:`short`,children:`Short, about 150 words`}),(0,x.jsx)(J.Item,{value:`standard`,children:`Standard, about 220 words`})]})]}),(0,x.jsx)(Zp,{size:`sm`,label:`Anything it should include`,description:`Optional. A person you spoke to, a product of theirs you use, a point to make.`,value:a.extra,onChange:e=>o({...a,extra:e.target.value}),disabled:t.running}),(0,x.jsxs)(`div`,{className:`form__actions form__actions--start`,children:[(0,x.jsx)(B,{tone:`primary`,size:`sm`,onClick:d,disabled:t.running,leadingIcon:t.running?(0,x.jsx)(Bg,{size:`sm`}):(0,x.jsx)(H.Sparkles,{}),children:t.running?`Writing`:m?`Write a new one`:`Write cover letter`}),m&&(0,x.jsx)(B,{variant:`soft`,size:`sm`,onClick:p,leadingIcon:(0,x.jsx)(H.Copy,{}),children:`Copy`}),h&&(0,x.jsx)(B,{variant:`soft`,tone:`primary`,size:`sm`,onClick:f,loading:s,children:`Save edits`})]}),t.running&&(0,x.jsx)(Bg,{showLabel:!0,label:`${t.runner} is writing from your resume and this posting`,size:`sm`}),t.error&&!t.running&&(0,x.jsx)(Vg,{tone:`danger`,size:`sm`,icon:(0,x.jsx)(H.Warning,{}),title:t.errorKind===`auth`?`${t.runner} is signed out`:t.errorKind===`missing`?`${t.runner} is not installed`:t.errorKind===`outdated`?`${t.runner} is out of date`:`The letter was not written`,description:`${t.error} You can also ask any agent connected to the TekJobs MCP server to write it: "write the cover letter for ${e.company}".`}),!m&&!t.running&&!t.error&&(0,x.jsx)(Vg,{size:`sm`,icon:(0,x.jsx)(H.File,{}),title:`No letter yet`,description:`It is written from your resume and ${e.company}'s posting, and only your resume supplies the facts.`}),m&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Xp,{label:`Cover letter`,rows:16,resize:`vertical`,value:r,onChange:e=>i(e.target.value),description:`Edit freely. Saving checks it against your resume again.`}),(0,x.jsxs)(`div`,{className:`letter__meta`,children:[(0,x.jsxs)(z,{tone:`neutral`,size:`sm`,children:[m.words,` words`]}),m.warnings.length===0?(0,x.jsx)(z,{tone:`success`,size:`sm`,children:`Nothing flagged`}):(0,x.jsxs)(z,{tone:`warning`,size:`sm`,children:[m.warnings.length,` to check`]}),h&&(0,x.jsx)(z,{tone:`primary`,variant:`outline`,size:`sm`,children:`Unsaved edits`})]}),m.warnings.length>0&&(0,x.jsx)(`ul`,{className:`letter__warnings`,children:m.warnings.map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsx)(z,{tone:e.kind===`claim`||e.kind===`placeholder`?`danger`:`warning`,size:`sm`,children:e.kind}),(0,x.jsx)(`span`,{children:e.text})]},e.text))})]}),(0,x.jsx)(`p`,{className:`muted`,children:`The letter is saved under "Cover letter" in the job note. Nothing is sent from here; you paste it where the application asks for it.`})]})}var A_={recruiter:`recruiter`,"hiring-manager":`hiring manager`,interviewer:`interviewer`,referral:`referral`,other:`contact`},j_={recruiter:`primary`,"hiring-manager":`warning`,interviewer:`neutral`,referral:`success`,other:`neutral`},M_=e=>qg.includes(e)?e:`other`;function N_(){let[e,t]=(0,b.useState)(null),[n,r]=(0,b.useState)(``),[i,a]=(0,b.useState)(`all`),[o,s]=(0,b.useState)(null),c=()=>$.people().then(t).catch(e=>X({title:`Could not load people`,description:e.message,tone:`danger`}));(0,b.useEffect)(()=>{c()},[]);let l=(0,b.useMemo)(()=>{let t=n.trim().toLowerCase();return(e??[]).filter(e=>(i===`all`||e.role===i)&&(!t||`${e.name} ${e.company} ${e.email}`.toLowerCase().includes(t)))},[e,n,i]);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`toolbar`,children:[(0,x.jsx)(Zp,{className:`toolbar__search`,size:`sm`,label:`Search`,placeholder:`Name, company or email`,value:n,onChange:e=>r(e.target.value)}),(0,x.jsxs)(J,{className:`toolbar__filter`,size:`sm`,label:`Role`,value:i,onValueChange:a,children:[(0,x.jsx)(J.Item,{value:`all`,children:`Everyone`}),qg.map(e=>(0,x.jsx)(J.Item,{value:e,children:A_[e]},e))]}),(0,x.jsx)(`span`,{className:`toolbar__spacer`}),(0,x.jsx)(P_,{onAdded:e=>{c(),s(e.id)}})]}),(0,x.jsx)(V,{padding:`none`,children:e===null?(0,x.jsx)(`div`,{className:`loading`,children:(0,x.jsx)(zg,{lines:6})}):e.length===0?(0,x.jsx)(Vg,{size:`sm`,title:`No people yet`,description:`Confirming an email that a person wrote adds them here, with the thread. Or add someone: a recruiter who reached out, a referral, the hiring manager you met.`}):(0,x.jsxs)(Y,{"aria-label":`People`,density:`md`,stickyHeader:!0,children:[(0,x.jsx)(Y.Head,{children:(0,x.jsxs)(Y.Row,{children:[(0,x.jsx)(Y.HeadCell,{children:`Name`}),(0,x.jsx)(Y.HeadCell,{children:`Role`}),(0,x.jsx)(Y.HeadCell,{children:`Company`}),(0,x.jsx)(Y.HeadCell,{children:`Email`}),(0,x.jsx)(Y.HeadCell,{children:`Last contact`}),(0,x.jsx)(Y.HeadCell,{children:`Threads`})]})}),(0,x.jsx)(Y.Body,{children:l.map(e=>(0,x.jsxs)(Y.Row,{interactive:!0,selected:o===e.id,onClick:()=>s(e.id),children:[(0,x.jsx)(Y.Cell,{children:e.name}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(z,{size:`sm`,tone:j_[M_(e.role)],variant:`soft`,children:A_[M_(e.role)]})}),(0,x.jsx)(Y.Cell,{children:e.company||(0,x.jsx)(`span`,{className:`muted`,children:`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`num muted`,children:e.email||`—`})}),(0,x.jsx)(Y.Cell,{children:(0,x.jsx)(`span`,{className:`num`,children:e.lastContact?`${e.lastContact} · ${Xg(e.lastContact)}`:`—`})}),(0,x.jsxs)(Y.Cell,{children:[(0,x.jsx)(`span`,{className:`num`,children:e.threads.length}),e.live>0&&(0,x.jsxs)(`span`,{className:`muted`,children:[` · `,e.live,` live`]})]})]},e.id))})]})}),(0,x.jsxs)(`p`,{className:`muted`,children:[l.length,` of `,e?.length??0,` people. Notes live in `,(0,x.jsx)(`code`,{className:`mono`,children:`People/`}),`; a job note lists its people under `,(0,x.jsx)(`code`,{className:`mono`,children:`## People`}),`.`]}),(0,x.jsx)(R_,{onDone:c}),(0,x.jsx)(F_,{id:o,onClose:()=>s(null),onChanged:c})]})}function P_({onAdded:e,job:t}){let[n,r]=(0,b.useState)(!1),i={name:``,role:`recruiter`,company:t?.company??``,email:``,links:``,about:``},[a,o]=(0,b.useState)(i),[s,c]=(0,b.useState)(!1);return(0,x.jsxs)(W,{open:n,onOpenChange:r,size:`sm`,children:[(0,x.jsx)(W.Trigger,{asChild:!0,children:(0,x.jsx)(B,{tone:`primary`,size:`sm`,leadingIcon:(0,x.jsx)(H.Plus,{}),children:`Add a person`})}),(0,x.jsx)(W.Content,{children:(0,x.jsxs)(`form`,{className:`form`,onSubmit:async n=>{n.preventDefault(),c(!0);try{let n=await $.addPerson({...a,jobId:t?.id});r(!1),o(i),X({title:`${n.name} ${n.created===new Date().toISOString().slice(0,10)?`added`:`recognised`}`,description:t?`On ${t.company} - ${t.title}.`:`People/${n.id}.md`,tone:`success`}),e(n)}catch(e){X({title:`Not added`,description:e.message,tone:`danger`})}c(!1)},children:[(0,x.jsx)(W.Title,{children:t?`Someone on ${t.company}`:`Add a person`}),(0,x.jsx)(W.Description,{children:`A note under People/. Someone already there, by email or by name at the same company, is recognised rather than duplicated.`}),(0,x.jsx)(Zp,{label:`Name`,required:!0,value:a.name,onChange:e=>o({...a,name:e.target.value})}),(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsx)(J,{label:`Role`,value:a.role,onValueChange:e=>o({...a,role:e}),children:qg.map(e=>(0,x.jsx)(J.Item,{value:e,children:A_[e]},e))}),(0,x.jsx)(Zp,{label:`Company`,value:a.company,onChange:e=>o({...a,company:e.target.value})})]}),(0,x.jsx)(Zp,{label:`Email`,type:`email`,value:a.email,onChange:e=>o({...a,email:e.target.value})}),(0,x.jsx)(Zp,{label:`Links`,description:`LinkedIn or anything else, as text.`,value:a.links,onChange:e=>o({...a,links:e.target.value})}),(0,x.jsx)(Zp,{label:`About`,description:`How you know them, in a line.`,value:a.about,onChange:e=>o({...a,about:e.target.value})}),(0,x.jsxs)(W.Footer,{children:[(0,x.jsx)(W.Close,{asChild:!0,children:(0,x.jsx)(B,{variant:`ghost`,children:`Cancel`})}),(0,x.jsx)(B,{type:`submit`,tone:`primary`,loading:s,children:`Add`})]})]})})]})}function F_({id:e,onClose:t,onChanged:n}){let[r,i]=(0,b.useState)(null),[a,o]=(0,b.useState)(``),[s,c]=(0,b.useState)(!1);return(0,b.useEffect)(()=>{i(null),e&&$.person(e).then(i).catch(e=>X({title:`Could not open the note`,description:e.message,tone:`danger`}))},[e]),(0,x.jsx)(Sp,{open:e!==null,onOpenChange:e=>!e&&t(),side:`right`,size:`md`,children:(0,x.jsx)(Sp.Content,{children:r?(0,x.jsxs)(`div`,{className:`detail`,children:[(0,x.jsxs)(`div`,{className:`sheet-head`,children:[(0,x.jsxs)(`div`,{className:`sheet-head__main`,children:[(0,x.jsxs)(`p`,{className:`sheet-head__meta`,children:[r.company||`no company`,r.created?` · since ${r.created}`:``]}),(0,x.jsx)(Sp.Title,{children:r.name}),(0,x.jsxs)(`div`,{className:`chips`,children:[(0,x.jsx)(z,{size:`sm`,tone:j_[M_(r.role)],variant:`soft`,children:A_[M_(r.role)]}),r.email&&(0,x.jsx)(z,{size:`sm`,tone:`neutral`,variant:`outline`,children:(0,x.jsx)(`span`,{className:`num`,children:r.email})}),r.lastContact&&(0,x.jsxs)(z,{size:`sm`,tone:`neutral`,variant:`outline`,children:[`last contact `,(0,x.jsx)(`span`,{className:`num`,children:r.lastContact})]})]})]}),(0,x.jsx)(`div`,{className:`sheet-head__side`,children:(0,x.jsxs)(`div`,{className:`sheet-head__links`,children:[r.email&&(0,x.jsx)(B,{asChild:!0,variant:`link`,size:`sm`,tone:`neutral`,children:(0,x.jsx)(`a`,{href:`mailto:${r.email}`,children:`Write to them ↗`})}),(0,x.jsx)(B,{asChild:!0,variant:`link`,size:`sm`,tone:`neutral`,children:(0,x.jsx)(`a`,{href:r.obsidianUrl,title:r.path,children:`Open in Obsidian ↗`})})]})})]}),(r.about||r.links)&&(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`microlabel`,children:`About`}),(0,x.jsxs)(`p`,{className:`muted`,children:[r.about,r.links?` ${r.links}`:``]})]}),(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`microlabel`,children:`Threads`}),r.threads.length===0?(0,x.jsx)(`p`,{className:`muted`,children:`On no job note yet.`}):(0,x.jsx)(`ul`,{className:`people__threads`,children:r.threads.map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsx)(`a`,{className:`people__thread`,href:`#/jobs?q=${encodeURIComponent(e.title.split(` - `)[0]??e.title)}`,children:e.title}),e.status&&(0,x.jsx)(z,{size:`sm`,tone:$g[e.status]??`neutral`,children:e.status}),e.role&&(0,x.jsxs)(`span`,{className:`muted`,children:[` · `,e.role]})]},e.id))})]}),(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`microlabel`,children:`Log`}),(0,x.jsx)(dg,{text:r.log||`_Nothing logged yet._`})]}),(0,x.jsx)(Xp,{label:`Log a contact`,rows:3,value:a,onChange:e=>o(e.target.value),placeholder:`A call, a reply, a note to self. Dated today, moves last contact forward. Nothing is sent.`}),(0,x.jsx)(`div`,{className:`form__actions`,children:(0,x.jsx)(B,{tone:`primary`,size:`sm`,onClick:async()=>{if(r&&a.trim()){c(!0);try{i(await $.logContact(r.id,a.trim())),o(``),n(),X({title:`Logged`,description:`On People/${r.id}.md; last contact is today.`,tone:`success`})}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}c(!1)}},disabled:s||!a.trim(),children:`Log it`})})]}):(0,x.jsx)(`div`,{className:`detail`,children:(0,x.jsx)(zg,{lines:5})})})})}function I_({job:e}){let[t,n]=(0,b.useState)(null),[r,i]=(0,b.useState)([]),[a,o]=(0,b.useState)(``),[s,c]=(0,b.useState)(`recruiter`),[l,u]=(0,b.useState)(``),[d,f]=(0,b.useState)(!1),p=()=>$.jobPeople(e.id).then(n).catch(()=>n([]));(0,b.useEffect)(()=>{p(),$.people().then(i).catch(()=>{})},[e.id]);let m=new Set((t??[]).map(e=>e.id)),h=r.filter(e=>!m.has(e.id));return(0,x.jsxs)(`div`,{className:`detail`,children:[t===null?(0,x.jsx)(zg,{lines:3}):t.length===0?(0,x.jsx)(`p`,{className:`muted`,children:`No one on this thread yet. Confirming an email a person wrote adds them; or add someone below.`}):(0,x.jsx)(`ul`,{className:`people__list`,children:t.map((e,t)=>(0,x.jsxs)(`li`,{className:`people__row`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`span`,{children:e.name}),e.role&&(0,x.jsx)(z,{size:`sm`,tone:j_[M_(e.role)],variant:`soft`,children:A_[M_(e.role)]}),e.context&&(0,x.jsx)(`div`,{className:`reasons__detail`,children:e.context})]}),(0,x.jsxs)(`div`,{className:`pager__buttons`,children:[e.email&&(0,x.jsx)(`a`,{className:`num muted`,href:`mailto:${e.email}`,children:e.email}),e.id&&(0,x.jsx)(`a`,{className:`muted`,href:`#/people`,title:`People/${e.id}.md`,children:`People ↗`})]})]},`${e.id||e.name}-${t}`))}),(0,x.jsx)(L_,{job:e}),(0,x.jsxs)(`div`,{className:`people__add`,children:[(0,x.jsxs)(`div`,{className:`form__row`,children:[(0,x.jsxs)(J,{size:`sm`,label:`Someone already in People`,value:a||`__none__`,onValueChange:e=>o(e===`__none__`?``:e),children:[(0,x.jsx)(J.Item,{value:`__none__`,children:`Pick a person`}),h.map(e=>(0,x.jsxs)(J.Item,{value:e.id,children:[e.name,e.company?` · ${e.company}`:``]},e.id))]}),(0,x.jsx)(J,{size:`sm`,label:`On this thread as`,value:s,onValueChange:e=>c(e),children:qg.map(e=>(0,x.jsx)(J.Item,{value:e,children:A_[e]},e))})]}),(0,x.jsx)(Zp,{size:`sm`,label:`Context`,placeholder:`A few words: reached out on LinkedIn, ran the screen, knows the team.`,value:l,onChange:e=>u(e.target.value)}),(0,x.jsxs)(`div`,{className:`form__actions`,children:[(0,x.jsx)(B,{size:`sm`,tone:`primary`,variant:`soft`,disabled:!a||d,onClick:async()=>{if(a){f(!0);try{await $.attachPerson(a,e.id,s,l.trim()),o(``),u(``),p(),X({title:`Added to the note`,description:`Under ## People on ${e.company} - ${e.title}.`,tone:`success`})}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}f(!1)}},children:`Add to this thread`}),(0,x.jsx)(P_,{job:e,onAdded:()=>{p(),$.people().then(i).catch(()=>{})}})]})]})]})}function L_({job:e}){let[t,n]=(0,b.useState)(null);if((0,b.useEffect)(()=>{$.jobConnections(e.id).then(n).catch(()=>n(null))},[e.id]),!t||!t.imported)return null;let r=t.people.slice(0,8);return(0,x.jsxs)(`div`,{className:`connections`,children:[(0,x.jsx)(`h4`,{className:`connections__title`,children:t.count===0?`No connections at ${e.company}`:`${t.count} connection${t.count===1?``:`s`} at ${e.company}`}),r.length>0&&(0,x.jsx)(`ul`,{className:`people__list`,children:r.map(e=>(0,x.jsxs)(`li`,{className:`people__row`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`span`,{children:e.name}),e.role!==`other`&&(0,x.jsx)(z,{size:`sm`,tone:j_[M_(e.role)],variant:`soft`,children:A_[M_(e.role)]}),e.title&&(0,x.jsx)(`div`,{className:`reasons__detail`,children:e.title})]}),(0,x.jsxs)(`div`,{className:`pager__buttons`,children:[e.connectedOn&&(0,x.jsxs)(`span`,{className:`num muted`,children:[`since `,e.connectedOn.slice(0,4)]}),e.url&&(0,x.jsx)(`a`,{className:`muted`,href:e.url,target:`_blank`,rel:`noreferrer`,children:`LinkedIn ↗`})]})]},e.url||e.name))}),t.count>r.length&&(0,x.jsxs)(`p`,{className:`muted`,children:[`and `,t.count-r.length,` more.`]}),(0,x.jsxs)(`p`,{className:`muted`,children:[`From your LinkedIn export, imported `,t.imported.slice(0,10),`. A warm introduction beats a cold apply.`]})]})}function R_({onDone:e}){let[t,n]=(0,b.useState)(null),[r,i]=(0,b.useState)(``),[a,o]=(0,b.useState)(``),[s,c]=(0,b.useState)(`roles`),[l,u]=(0,b.useState)(null),[d,f]=(0,b.useState)(``),p=()=>$.linkedinStatus().then(n).catch(()=>n({imported:null}));(0,b.useEffect)(()=>{p()},[]);let m=s===`everyone`,h=async()=>{f(`preview`);try{u(await $.linkedinPreview(r.trim(),a||void 0,m))}catch(e){X({title:`Could not read the export`,description:e.message,tone:`danger`})}f(``)},g=async()=>{f(`import`);try{let t=await $.linkedinImport(r.trim(),{since:a||void 0,everyone:m});X({title:`LinkedIn export imported`,description:`${t.people.created} people created, ${t.people.recognised} already there, ${t.people.attached} put on job notes; ${t.counts.connections} connections indexed.`,tone:`success`}),u(null),e(),p()}catch(e){X({title:`Import failed`,description:e.message,tone:`danger`})}f(``)},_=t?.source?t.source.split(/[\\/]/).pop():``;return(0,x.jsx)(V,{children:(0,x.jsxs)(`div`,{className:`linkedin`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h3`,{className:`connections__title`,children:`Bring your LinkedIn history`}),(0,x.jsxs)(`p`,{className:`muted`,children:[`Request the larger archive at `,(0,x.jsx)(`a`,{href:`https://www.linkedin.com/mypreferences/d/download-my-data`,target:`_blank`,rel:`noreferrer`,children:`linkedin.com/mypreferences/d/download-my-data`}),`, download the zip when LinkedIn emails it (a partial in about ten minutes, the complete one within a day), and paste its path here. It is read in place and never copied. It writes, into this profile folder only: who you know at each company (shown on every job) and People notes for the recruiters and hiring managers who wrote.`]}),t?.imported&&t.counts&&(0,x.jsxs)(`p`,{className:`muted`,children:[`Last imported `,t.imported.slice(0,10),_?` from ${_}`:``,`: `,t.counts.connections,` connections, `,t.counts.threads,` conversations and `,t.counts.invitations,` invitations since `,t.since,`.`]})]}),(0,x.jsxs)(`div`,{className:`linkedin__form`,children:[(0,x.jsx)(Zp,{className:`linkedin__path`,size:`sm`,label:`Path to the export`,placeholder:`C:\\Users\\you\\Downloads\\Complete_LinkedInDataExport_2026-09-24.zip`,value:r,onChange:e=>i(e.target.value)}),(0,x.jsx)(Zp,{size:`sm`,type:`date`,label:`Since`,value:a,onChange:e=>o(e.target.value),description:`Default: 90 days ago`}),(0,x.jsxs)(J,{size:`sm`,label:`Write as People`,value:s,onValueChange:e=>c(e),children:[(0,x.jsx)(J.Item,{value:`roles`,children:`Recruiters and hiring managers`}),(0,x.jsx)(J.Item,{value:`everyone`,children:`Everyone who wrote`})]}),(0,x.jsx)(B,{size:`sm`,variant:`soft`,onClick:h,loading:d===`preview`,disabled:!r.trim()||d!==``,children:`Preview`}),(0,x.jsx)(B,{size:`sm`,tone:`primary`,onClick:g,loading:d===`import`,disabled:!r.trim()||d!==``,children:`Import`})]}),l&&(0,x.jsxs)(`div`,{className:`linkedin__preview`,children:[(0,x.jsxs)(`p`,{children:[(0,x.jsx)(`strong`,{children:l.self||`You`}),`, `,l.kind===`zip`?`zip`:`folder`,` with `,l.files.length,` files read. `,l.counts.connections,` connections; `,l.counts.threads,` conversations and `,l.counts.invitations,` invitations since `,l.since,`; `,l.counts.applications,` applications (`,l.applicationsSince,` since then); `,l.counts.savedJobs,` saved jobs (`,l.savedJobsSince,` since then).`]}),(0,x.jsxs)(`p`,{children:[`Would write `,(0,x.jsx)(`strong`,{children:l.people.chosen}),` `,m?`people who wrote`:`recruiters and hiring managers`,` of `,l.people.candidates,` senders (`,l.people.onJobNotes,` at companies on your job notes). `,l.warmPaths.jobsWithConnections,` companies on your job notes have connections`,l.warmPaths.top.length?`: ${l.warmPaths.top.slice(0,6).map(e=>`${e.company} (${e.count})`).join(`, `)}`:``,`.`]}),l.people.sample.length>0&&(0,x.jsx)(`ul`,{className:`people__list`,children:l.people.sample.slice(0,6).map(e=>(0,x.jsxs)(`li`,{className:`people__row`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`span`,{children:e.name}),` `,(0,x.jsx)(z,{size:`sm`,tone:j_[M_(e.role)],variant:`soft`,children:A_[M_(e.role)]}),(e.title||e.company)&&(0,x.jsx)(`div`,{className:`reasons__detail`,children:[e.title,e.company].filter(Boolean).join(` · `)})]}),(0,x.jsx)(`div`,{className:`pager__buttons`,children:(0,x.jsxs)(`span`,{className:`num muted`,children:[e.last,` · `,e.messages,` message`,e.messages===1?``:`s`]})})]},`${e.name}-${e.last}`))})]})]})})}function z_({job:e}){let[t,n]=(0,b.useState)(null),[r,i]=(0,b.useState)(``),[a,o]=(0,b.useState)(`auto`),[s,c]=(0,b.useState)(``),[l,u]=(0,b.useState)(!1),d=(0,b.useRef)(!1),f=(e,t)=>{n(e),t&&i(e.saved?.text??``)};(0,b.useEffect)(()=>{n(null),$.tailoredResume(e.id).then(e=>f(e,!0)).catch(e=>X({title:`Could not read the resume`,description:e.message,tone:`danger`}))},[e.id]),(0,b.useEffect)(()=>{if(!t?.running){d.current&&t&&(d.current=!1,f(t,!t.error),t.error||X({title:`Resume tailored`,description:`Saved into the note. Read the warnings, then print.`,tone:`success`}));return}d.current=!0;let r=setInterval(()=>$.tailoredResume(e.id).then(e=>n(e)).catch(()=>{}),2500);return()=>clearInterval(r)},[t?.running,e.id]);let p=async()=>{if(!t?.saved||window.confirm(`Tailor again? It replaces the version saved in this note.`))try{f(await $.writeTailoredResume(e.id,{emphasis:a,extra:s}),!1)}catch(e){X({title:`Could not start`,description:e.message,tone:`danger`})}},m=async()=>{u(!0);try{f(await $.saveTailoredResume(e.id,r),!0),X({title:`Saved`,description:`Checked against your resume of record again.`,tone:`success`})}catch(e){X({title:`Not saved`,description:e.message,tone:`danger`})}u(!1)};if(!t)return(0,x.jsx)(`div`,{className:`detail`,children:(0,x.jsx)(zg,{lines:6})});let h=t.saved,g=!!h&&r!==h.text,_=h?h.warnings.filter(e=>e.kind===`trace`||e.kind===`claim`||e.kind===`header`||e.kind===`date`).length:0;return(0,x.jsxs)(`div`,{className:`detail`,children:[(0,x.jsxs)(`div`,{className:`letter__options`,children:[(0,x.jsxs)(J,{size:`sm`,label:`Emphasis`,value:a,onValueChange:e=>o(e),disabled:t.running,children:[(0,x.jsx)(J.Item,{value:`auto`,children:`Let the posting decide`}),(0,x.jsx)(J.Item,{value:`design-systems`,children:`Design systems first`}),(0,x.jsx)(J.Item,{value:`ai-product`,children:`AI product surfaces first`})]}),(0,x.jsx)(Zp,{size:`sm`,label:`Anything to bring forward`,description:`Optional. A project, a tool, a role to lead with.`,value:s,onChange:e=>c(e.target.value),disabled:t.running})]}),(0,x.jsxs)(`div`,{className:`form__actions form__actions--start`,children:[(0,x.jsx)(B,{tone:`primary`,size:`sm`,onClick:p,disabled:t.running,leadingIcon:t.running?(0,x.jsx)(Bg,{size:`sm`}):(0,x.jsx)(H.Sparkles,{}),children:t.running?`Tailoring`:h?`Tailor again`:`Tailor my resume to this posting`}),h&&(0,x.jsx)(B,{asChild:!0,variant:`soft`,size:`sm`,trailingIcon:(0,x.jsx)(H.ExternalLink,{}),children:(0,x.jsx)(`a`,{href:$.resumePrintUrl(e.id),target:`_blank`,rel:`noopener noreferrer`,children:`Print / save as PDF`})}),g&&(0,x.jsx)(B,{variant:`soft`,tone:`primary`,size:`sm`,onClick:m,loading:l,children:`Save edits`})]}),t.running&&(0,x.jsx)(Bg,{showLabel:!0,label:`${t.runner} is reordering your resume for ${e.company}`,size:`sm`}),t.error&&!t.running&&(0,x.jsx)(Vg,{tone:`danger`,size:`sm`,icon:(0,x.jsx)(H.Warning,{}),title:t.errorKind===`auth`?`${t.runner} is signed out`:t.errorKind===`outdated`?`${t.runner} is out of date`:`The resume was not written`,description:t.error}),!h&&!t.running&&!t.error&&(0,x.jsx)(Vg,{size:`sm`,icon:(0,x.jsx)(H.File,{}),title:`Not tailored yet`,description:`Same jobs, dates and numbers as your resume of record. The summary, order and emphasis change for ${e.company}. Nothing is added.`}),h&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`letter__meta`,children:[(0,x.jsxs)(z,{tone:`neutral`,size:`sm`,children:[h.words,` words · `,h.bullets,` bullets`]}),_===0?(0,x.jsx)(z,{tone:`success`,size:`sm`,children:`Every line traces to your resume`}):(0,x.jsxs)(z,{tone:`danger`,size:`sm`,children:[_,` line`,_===1?``:`s`,` not on your resume`]}),h.warnings.length>_&&(0,x.jsxs)(z,{tone:`warning`,size:`sm`,children:[h.warnings.length-_,` style`]}),g&&(0,x.jsx)(z,{tone:`primary`,variant:`outline`,size:`sm`,children:`Unsaved edits`})]}),h.warnings.length>0&&(0,x.jsx)(`ul`,{className:`letter__warnings`,children:h.warnings.map(e=>(0,x.jsxs)(`li`,{children:[(0,x.jsx)(z,{tone:e.kind===`style`||e.kind===`length`?`warning`:`danger`,size:`sm`,children:e.kind}),(0,x.jsx)(`span`,{children:e.text})]},e.text))}),(0,x.jsxs)(Z,{defaultValue:`preview`,variant:`pill`,size:`sm`,children:[(0,x.jsxs)(Z.List,{"aria-label":`Resume view`,children:[(0,x.jsx)(Z.Trigger,{value:`preview`,children:`Preview`}),(0,x.jsx)(Z.Trigger,{value:`edit`,children:`Edit`})]}),(0,x.jsx)(Z.Content,{value:`preview`,children:(0,x.jsx)(`div`,{className:`resume-preview`,children:(0,x.jsx)(dg,{text:r})})}),(0,x.jsx)(Z.Content,{value:`edit`,children:(0,x.jsx)(Xp,{label:`Tailored resume (Markdown)`,rows:24,resize:`vertical`,font:`mono`,value:r,onChange:e=>i(e.target.value),description:`Keep the headings. Saving re-runs the trace check.`})})]})]}),(0,x.jsx)(`p`,{className:`muted`,children:`Saved under "Tailored resume" in the job note; the packet's Resume variant field points at it. The PDF you upload comes from the print view.`})]})}var B_=e=>e===`tekjobs`;function V_({label:e=`TekJobs`}){return(0,x.jsxs)(z,{tone:`primary`,variant:`solid`,size:`sm`,title:`Posted on TekJobs by the employer`,children:[(0,x.jsx)(`img`,{className:`posted__glyph`,src:t_.logo,alt:``,width:12,height:12}),e]})}function H_({onAdded:e,onOpen:t}){let[n,r]=(0,b.useState)(!1),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(null),u=i.split(/\s+/).map(e=>e.trim()).filter(e=>/^https?:\/\//i.test(e));return(0,x.jsxs)(W,{open:n,onOpenChange:e=>{r(e),e||(a(``),l(null))},size:`md`,children:[(0,x.jsx)(W.Trigger,{asChild:!0,children:(0,x.jsx)(B,{size:`sm`,variant:`soft`,leadingIcon:(0,x.jsx)(H.Plus,{}),children:`Add by link`})}),(0,x.jsxs)(W.Content,{children:[(0,x.jsx)(W.Title,{children:`Add postings by link`}),(0,x.jsx)(W.Description,{children:`One link per line. LinkedIn job pages, company careers pages, and Greenhouse, Lever or Ashby postings. Each is read once, scored like the scan does, and written as a note unless it is already here.`}),(0,x.jsx)(Xp,{label:`Links`,rows:5,value:i,onChange:e=>a(e.target.value),placeholder:`https://www.linkedin.com/jobs/view/…
@@ -8,8 +8,8 @@
8
8
  <link rel="icon" href="/brand/tekjobs-avatar-192.png" type="image/png" sizes="192x192" />
9
9
  <link rel="apple-touch-icon" href="/brand/tekjobs-avatar-192.png" />
10
10
  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@500;600&family=Hanken+Grotesk:wght@400;500;600&family=Azeret+Mono:wght@400;500&display=swap" data-zengin="fonts" />
11
- <script type="module" crossorigin src="/assets/index-COWTxQAI.js"></script>
12
- <link rel="stylesheet" crossorigin href="/assets/index-CSrneQ3x.css">
11
+ <script type="module" crossorigin src="/assets/index-Dt4Ynnmg.js"></script>
12
+ <link rel="stylesheet" crossorigin href="/assets/index-CR3ppGJT.css">
13
13
  </head>
14
14
  <body>
15
15
  <div id="root"></div>
@@ -69,6 +69,8 @@ const routes = [
69
69
  ['GET', /^\/api\/profile\/summary$/, () => store.profileSummary()],
70
70
  ['GET', /^\/api\/companies$/, () => store.companies()],
71
71
  ['GET', /^\/api\/feeds$/, () => store.feeds()],
72
+ ['GET', /^\/api\/companies\/find$/, (_, q) => store.findBoard({ slug: q.get('slug') || '', ats: q.get('ats') || '', name: q.get('name') || '' })],
73
+ ['POST', /^\/api\/companies\/move$/, async (_, __, req) => { const b = await readBody(req); return store.moveBoard({ name: b.name || '', slug: b.slug, from: b.from || '', to: b.to }); }],
72
74
  ['POST', /^\/api\/companies$/, async (_, __, req) => store.addCompany(await readBody(req))],
73
75
  ['POST', /^\/api\/jobs\/import$/, async (_, __, req) => { const b = await readBody(req); return store.importLinks(b.urls ?? b.url); }],
74
76
  ['POST', /^\/api\/jobs\/([^/]+)\/reveal$/, (m) => store.revealJob(decodeURIComponent(m[1]))],
@@ -55,6 +55,7 @@ export const TOOLS = [
55
55
  { name: 'import_resume', description: 'Import a resume file from a local path (PDF, DOCX, Markdown, text): copies it into Profile/ and extracts its text for the interview.', inputSchema: { type: 'object', properties: { path: { type: 'string' } }, required: ['path'] } },
56
56
  { name: 'add_job', description: 'Add postings the person found themselves, from links (LinkedIn job pages, a company careers page, a Greenhouse/Lever/Ashby posting). Each link is read once, scored with the current criteria, and written as a job note unless the scan already has it or a note with the same company and title exists. A LinkedIn link is opened as a signed-out visitor; if it names the company\'s own apply page on a known board, that page is imported and the LinkedIn link is recorded as where it was seen. Returns one result per link. Up to 25 links.', inputSchema: { type: 'object', properties: { urls: { type: 'array', items: { type: 'string' } } }, required: ['urls'] } },
57
57
  { name: 'attach_posting', description: 'Attach the real posting to a note that was created without one (from an application email or a pasted link with thin data). Reads the posting through its board when the link is Greenhouse/Lever/Ashby (including company pages with ?gh_jid= or ?ashby_jid=), replaces the note\'s posting facts, score, reasons and description, and keeps the status, notes, packet and drafts. The note name does not change.', inputSchema: { type: 'object', properties: { id: { type: 'string' }, url: { type: 'string' } }, required: ['id', 'url'] } },
58
+ { name: 'find_board', description: 'A board on the watchlist answers 404: ask every platform the scan can read for the same slug and report which answer with jobs, best first. With apply=true, move the watchlist row to the best one (its status clears and the next scan reads it there). Companies usually keep their slug when they change tracker; when nothing answers, the slug changed too and the careers page says the new one.', inputSchema: { type: 'object', properties: { slug: { type: 'string' }, ats: { type: 'string', description: 'the platform that failed, left out of the probe' }, name: { type: 'string' }, apply: { type: 'boolean' } }, required: ['slug'] } },
58
59
  { name: 'add_company', description: 'Append a board to the watchlist. ats is the platform (greenhouse, lever, ashby, workday, rippling, smartrecruiters, workable, bamboohr, breezy, personio, teamtailor, eightfold, atlassian, github, spotify, amazon); slug is the board token.', inputSchema: { type: 'object', properties: { name: { type: 'string' }, ats: { type: 'string' }, slug: { type: 'string' }, tier: { type: 'string' }, notes: { type: 'string' } }, required: ['name', 'ats', 'slug'] } },
59
60
  ];
60
61
 
@@ -93,6 +94,7 @@ export async function call(name, a = {}) {
93
94
  case 'set_criteria': return store.setCriteria(a.raw);
94
95
  case 'list_companies': return store.companies();
95
96
  case 'list_feeds': return store.feeds();
97
+ case 'find_board': { const r = await store.findBoard(a); if (a.apply && r.found[0]) return { ...r, moved: await store.moveBoard({ name: a.name || '', slug: a.slug, from: a.ats || '', to: r.found[0].ats }) }; return r; }
96
98
  case 'add_company': return store.addCompany(a);
97
99
  case 'add_job': return store.importLinks(a.urls);
98
100
  case 'attach_posting': return store.attachPosting(a.id, a.url);
@@ -969,6 +969,18 @@ export async function importLinks(urls) {
969
969
  return out;
970
970
  }
971
971
 
972
+ /** Where a board went: every platform that answers for the slug, the failed one left out. */
973
+ export async function findBoard({ slug, ats = '', name = '' }) {
974
+ if (!slug) throw Object.assign(new Error('slug is required'), { status: 400 });
975
+ const { probeBoard } = await import('../../scraper/find-board.mjs');
976
+ return probeBoard(slug, { name: name || slug, except: ats });
977
+ }
978
+ /** Move a watchlist row to the platform that answers; the next scan reads it there. */
979
+ export async function moveBoard({ name = '', slug, from = '', to }) {
980
+ const { moveCompany } = await import('../../scraper/find-board.mjs');
981
+ const r = moveCompany({ name, slug, from, to });
982
+ return { ...r, companies: companies() };
983
+ }
972
984
  export function addCompany({ name, ats, slug, tier = 'B', notes = '' }) {
973
985
  if (!name || !ats || !slug) throw Object.assign(new Error('name, ats and slug are required'), { status: 400 });
974
986
  if (loadCompanies().some((c) => c.ats === ats.toLowerCase() && c.slug === slug)) throw Object.assign(new Error('that board is already in the table'), { status: 409 });
package/cli.mjs CHANGED
@@ -41,6 +41,7 @@ const HELP = `tekjobs — a local job-search machine
41
41
  tekjobs up [--dev] [--port N] start the API (and with --dev, Vite) detached: they stay up until \`down\`
42
42
  tekjobs down stop what \`up\` started
43
43
  tekjobs ps what \`up\` has running
44
+ tekjobs board <slug> [--from ats] [--move] where a failed board answers now; --move rewrites the watchlist row
44
45
  tekjobs serve the app + API on http://127.0.0.1:8787, in this terminal
45
46
  tekjobs mcp the MCP server on stdio (Claude Code, Codex, Cursor, Claude Desktop)
46
47
 
@@ -171,6 +172,15 @@ async function main() {
171
172
  if (!s.dry) console.log(` Index: ${s.indexPath}. Job notes now show who you know at each company.`);
172
173
  return;
173
174
  }
175
+ if (cmd === 'board') {
176
+ const slug = rest.find((x) => !x.startsWith('--') && x !== opt('--from'));
177
+ if (!slug) return console.error('Usage: tekjobs board <slug> [--from <ats that failed>] [--move]');
178
+ const { probeBoard, moveCompany } = await import('./scraper/find-board.mjs');
179
+ const r = await probeBoard(slug, { except: opt('--from') || '' });
180
+ console.log(r.note);
181
+ if (rest.includes('--move') && r.found[0]) { const m = moveCompany({ slug, from: opt('--from') || '', to: r.found[0].ats }); console.log(m.moved ? `Moved ${m.row.name} to ${m.row.ats}; the next scan reads it there.` : `${m.row.name} already reads from ${m.row.ats}.`); }
182
+ return;
183
+ }
174
184
  if (cmd === 'up') return up();
175
185
  if (cmd === 'down') return down();
176
186
  if (cmd === 'ps') return ps();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timurtekb/tekjobs",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "A local-first job-search machine: watches hundreds of company job boards, scores every posting against your profile, and files matches into a folder of markdown notes you own. Bring your own LLM through MCP.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,51 @@
1
+ // Where did a board go? A company that answers 404 on the platform the watchlist names has usually moved its
2
+ // careers page to another tracker, often keeping the same slug (Amplitude, Hightouch and Outschool all went
3
+ // from Greenhouse to Ashby). This asks every platform the scan can read, with the same slug, and reports the
4
+ // ones that answer with jobs; `moveCompany` rewrites the row when the person says so.
5
+ import fs from 'node:fs';
6
+ import { P, loadCompanies } from './config.mjs';
7
+ import { fetchCompany } from './sources.mjs';
8
+
9
+ /** Platforms a slug alone identifies. Workday needs host/tenant/site; the career APIs are not per-company boards. */
10
+ export const PROBE_ATS = ['greenhouse', 'ashby', 'lever', 'workable', 'smartrecruiters', 'rippling', 'bamboohr', 'breezy', 'personio', 'teamtailor', 'eightfold'];
11
+ const ANY_TITLE = { titleTerms: {}, titleExclude: [] };
12
+
13
+ /**
14
+ * Every platform that answers for this slug, best first (most jobs). `except` is the platform that already
15
+ * failed, left out. `fetch` is the board fetcher, injectable so a test needs no network.
16
+ */
17
+ export async function probeBoard(slug, { name = slug, except = '', fetch = fetchCompany, platforms = PROBE_ATS } = {}) {
18
+ const tried = platforms.filter((p) => p !== except);
19
+ const results = await Promise.all(tried.map(async (ats) => {
20
+ try {
21
+ const r = await fetch({ name, ats, slug }, ANY_TITLE);
22
+ return { ats, ok: !!r.ok, jobs: r.ok ? (r.jobs || []).length : 0, error: r.ok ? '' : String(r.error || '') };
23
+ } catch (e) { return { ats, ok: false, jobs: 0, error: e.message }; }
24
+ }));
25
+ const found = results.filter((r) => r.ok && r.jobs > 0).sort((a, b) => b.jobs - a.jobs);
26
+ return { slug, except, tried, found, note: found.length ? `Answers on ${found.map((f) => `${f.ats} (${f.jobs} job${f.jobs === 1 ? '' : 's'})`).join(', ')}.` : `No platform answers for "${slug}". The company may have renamed its board; look at its careers page for the new slug.` };
27
+ }
28
+
29
+ /** Rewrite one watchlist row's platform in place; the status cell is cleared for the scan, the move is noted. */
30
+ export function moveCompany({ name, slug, from, to }, { today = new Date().toISOString().slice(0, 10) } = {}) {
31
+ if (!slug || !to) throw Object.assign(new Error('slug and to are required'), { status: 400 });
32
+ const row = loadCompanies().find((c) => c.slug === slug && (!from || c.ats === from) && (!name || c.name === name));
33
+ if (!row) throw Object.assign(new Error(`No row for ${from ? from + ':' : ''}${slug} on the watchlist`), { status: 404 });
34
+ if (row.ats === to) return { moved: false, row };
35
+ const md = fs.readFileSync(P.companies, 'utf8');
36
+ let moved = false;
37
+ const out = md.split(/\r?\n/).map((line) => {
38
+ if (moved || !line.trim().startsWith('|')) return line;
39
+ const cells = line.split('|').slice(1, -1).map((c) => c.trim());
40
+ if (cells.length < 3 || cells[0] !== row.name || cells[1].toLowerCase() !== row.ats || cells[2] !== row.slug) return line;
41
+ while (cells.length < 6) cells.push('');
42
+ cells[1] = to;
43
+ cells[4] = '';
44
+ cells[5] = [cells[5], `moved from ${row.ats} ${today}`].filter(Boolean).join('; ');
45
+ moved = true;
46
+ return `| ${cells.join(' | ')} |`;
47
+ });
48
+ if (!moved) throw Object.assign(new Error(`Could not find the row for ${row.name} in ${P.companies}`), { status: 500 });
49
+ fs.writeFileSync(P.companies, out.join('\n'));
50
+ return { moved: true, row: { ...row, ats: to, status: '', notes: [row.notes, `moved from ${row.ats} ${today}`].filter(Boolean).join('; ') } };
51
+ }
@@ -105,7 +105,7 @@
105
105
  | DoorDash | greenhouse | doordashusa | C | | |
106
106
  | Lyft | greenhouse | lyft | C | | |
107
107
  | Roblox | greenhouse | roblox | C | | |
108
- | Amplitude | greenhouse | amplitude | C | | |
108
+ | Amplitude | ashby | amplitude | C | | moved to ashby 2026-10-07 |
109
109
  | Mixpanel | greenhouse | mixpanel | C | | |
110
110
  | Lattice | greenhouse | lattice | C | | |
111
111
  | Carta | greenhouse | carta | C | | |
@@ -197,7 +197,7 @@
197
197
  | GitLab | greenhouse | gitlab | A | | |
198
198
  | Headway | ashby | headway | B | | |
199
199
  | Hex | ashby | hex | A | | |
200
- | Hightouch | greenhouse | hightouch | B | | |
200
+ | Hightouch | ashby | hightouch | B | | moved to ashby 2026-10-07 |
201
201
  | Honeycomb | greenhouse | honeycomb | B | | |
202
202
  | Included Health | lever | includedhealth | B | | |
203
203
  | Inngest | ashby | inngest | B | | |
@@ -224,7 +224,7 @@
224
224
  | Orum | ashby | orum | B | | |
225
225
  | Oscar | greenhouse | oscar | B | | |
226
226
  | Otter | greenhouse | otter | B | | |
227
- | Outschool | greenhouse | outschool | B | | |
227
+ | Outschool | ashby | outschool | B | | moved to ashby 2026-10-07 |
228
228
  | Parloa | greenhouse | parloa | B | | |
229
229
  | Payoneer | greenhouse | payoneer | B | | |
230
230
  | Peloton | greenhouse | peloton | B | | |