@layer spiral;@layer spiral{.sp-theme{color-scheme:light;--sp-surface:#fcfcf9;--sp-surface-shade:#ebebe8;--sp-surface-raised:#ffffff;--sp-surface-hover:#dfdfdd;--sp-row-hover:#ebebe8;--sp-line:#ebebe8;--sp-line-raised:#ebebe8;--sp-edge:#dfdfdd;--sp-control-border:#d4d4d2;--sp-ink:#171716;--sp-ink-body:#3c3c3a;--sp-ink-muted:#646462;--sp-ink-faint:#bebebb;--sp-error-ink:#c42b2e;--sp-accent:#1d0fed;--sp-accent-ink:var(--sp-accent);--sp-accent-soft:color-mix(in srgb,var(--sp-accent) 10%,transparent);--sp-on-accent:#ffffff;--sp-focus-ring:var(--sp-accent);--sp-inverted:#171716;--sp-inverted-ink:#ffffff;--sp-overlay:rgba(23,23,22,0.28);--sp-status-ok:#17b65a;--sp-status-warn:#f27332;--sp-status-error:#e43134;--sp-status-idle:#bebebb;--sp-chart-1:var(--sp-accent);--sp-chart-1-pair:#8b83f6;--sp-chart-2:#a8460f;--sp-chart-3:#0b7538;--sp-chart-4:#dd317e;--sp-chart-5:#16808f;--sp-chart-6:#8731dd;--sp-chart-muted:#d4d4d2;--sp-chart-track:#ebebe8;--sp-font-display:"Acid Grotesk",Inter,ui-sans-serif,system-ui,sans-serif;--sp-font-sans:Inter,ui-sans-serif,system-ui,sans-serif;--sp-font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sp-text-caption:12px;--sp-text-small:13px;--sp-text-body:14px;--sp-text-heading:18px;--sp-text-title:24px;--sp-text-figure:32px;--sp-radius:2px;--sp-radius-pill:999px;--sp-shadow-float:0 8px 16px rgba(0,0,0,0.08);--sp-shadow-dialog:0 0 72px rgba(0,0,0,0.12);--sp-space-1:4px;--sp-space-2:8px;--sp-space-3:12px;--sp-space-4:16px;--sp-space-5:24px;--sp-space-6:32px;--sp-control-height:32px;--sp-control-height-sm:28px;--sp-row-height:36px;--sp-duration:160ms;--sp-ease:cubic-bezier(0.2,0,0,1)}.sp-theme[data-appearance=dark]{color-scheme:dark;--sp-surface:#171716;--sp-surface-shade:#2b2b29;--sp-surface-raised:#2b2b29;--sp-surface-hover:#3c3c3a;--sp-row-hover:rgba(43,43,41,0.55);--sp-line:#2b2b29;--sp-line-raised:#3c3c3a;--sp-edge:#3c3c3a;--sp-control-border:#3c3c3a;--sp-ink:#ffffff;--sp-ink-body:#d4d4d2;--sp-ink-muted:#bebebb;--sp-ink-faint:#646462;--sp-error-ink:#f26a6b;--sp-accent:#6e5cff;--sp-accent-ink:#a5a0f8;--sp-accent-soft:color-mix(in srgb,var(--sp-accent) 16%,transparent);--sp-inverted:#fcfcf9;--sp-inverted-ink:#171716;--sp-overlay:rgba(0,0,0,0.56);--sp-status-idle:#646462;--sp-chart-1-pair:#a5a0f8;--sp-chart-2:#c8612b;--sp-chart-3:#17b65a;--sp-chart-5:#2cb9d1;--sp-chart-6:#c45ad6;--sp-chart-muted:#3c3c3a;--sp-chart-track:#2b2b29;--sp-shadow-float:0 8px 16px rgba(0,0,0,0.4);--sp-shadow-dialog:0 0 72px rgba(0,0,0,0.6)}.sp-theme[data-density=compact]{--sp-control-height:28px;--sp-control-height-sm:24px;--sp-row-height:30px}.sp-theme{background:var(--sp-surface);color:var(--sp-ink-body);font-family:var(--sp-font-sans);font-size:var(--sp-text-body);line-height:1.45;-webkit-font-smoothing:antialiased}.sp-theme ::selection{background:var(--sp-accent);color:var(--sp-on-accent)}}@layer spiral{.sp-theme :where([class^=sp-],[class*=" sp-"]),.sp-theme :where([class^=sp-],[class*=" sp-"]):after,.sp-theme :where([class^=sp-],[class*=" sp-"]):before{box-sizing:border-box}.sp-glyph{width:16px;height:16px;flex:none;fill:currentColor}.sp-theme :where(button,a,[role=tab],[role=checkbox],[role=radio],[role=switch],[tabindex]):not(.sp-menu-item):focus-visible{outline:2px solid var(--sp-focus-ring);outline-offset:2px}@keyframes sp-spin{to{transform:rotate(1turn)}}@keyframes sp-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(340%)}}@keyframes sp-rise{0%{opacity:0;transform:translateY(4px)}}@keyframes sp-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.sp-theme *,.sp-theme :after,.sp-theme :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}@layer spiral{.sp-button{width:fit-content;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--sp-control-height);padding:0 14px;border:1px solid transparent;border-radius:var(--sp-radius-pill);background:transparent;color:var(--sp-ink);font:500 14px/1.1 var(--sp-font-display);white-space:nowrap;text-decoration:none;cursor:pointer;transition:transform .12s var(--sp-ease),background-color var(--sp-duration) var(--sp-ease),border-color var(--sp-duration) var(--sp-ease),color var(--sp-duration) var(--sp-ease)}.sp-button[data-size=sm]{min-height:var(--sp-control-height-sm);padding:0 10px;font-size:13px}.sp-button:active:not(:disabled){transform:scale(.97)}.sp-button>.sp-glyph,.sp-button>svg{flex:none}.sp-button[data-variant=primary]{border-color:var(--sp-inverted);background:var(--sp-inverted);color:var(--sp-inverted-ink)}.sp-button[data-variant=primary]:hover:not(:disabled){border-color:color-mix(in srgb,var(--sp-inverted) 82%,var(--sp-surface));background:color-mix(in srgb,var(--sp-inverted) 82%,var(--sp-surface))}.sp-button[data-variant=secondary]{border-color:var(--sp-control-border);background:var(--sp-surface)}.sp-button[data-variant=secondary]:hover:not(:disabled){border-color:var(--sp-ink)}.sp-button[data-variant=ghost]{color:var(--sp-ink-body)}.sp-button[data-variant=ghost]:hover:not(:disabled){background:var(--sp-row-hover);color:var(--sp-ink)}.sp-button[data-variant=danger]{border-color:var(--sp-status-error);color:var(--sp-error-ink)}.sp-button[data-variant=danger]:hover:not(:disabled){background:var(--sp-status-error);color:#ffffff}.sp-button:disabled{border-color:var(--sp-edge);background:transparent;color:var(--sp-ink-faint);cursor:not-allowed}.sp-button[data-loading]{cursor:progress}.sp-button[data-loading][data-variant=primary]{border-color:var(--sp-inverted);background:var(--sp-inverted);color:var(--sp-inverted-ink)}.sp-icon-button{display:inline-grid;place-items:center;width:var(--sp-control-height);height:var(--sp-control-height);flex:none;padding:0;border:0;border-radius:var(--sp-radius);background:transparent;color:var(--sp-ink-muted);cursor:pointer;transition:transform .12s var(--sp-ease),background-color var(--sp-duration) var(--sp-ease),color var(--sp-duration) var(--sp-ease)}.sp-icon-button[data-size=sm]{width:var(--sp-control-height-sm);height:var(--sp-control-height-sm)}.sp-icon-button>svg{width:18px;height:18px;fill:currentColor}.sp-icon-button[data-size=sm]>svg{width:16px;height:16px}.sp-icon-button:hover:not(:disabled),.sp-icon-button[data-state=open]{background:var(--sp-row-hover);color:var(--sp-ink)}.sp-icon-button:active:not(:disabled){transform:scale(.97)}.sp-icon-button:disabled{color:var(--sp-ink-faint);cursor:not-allowed}.sp-field{display:flex;flex-direction:column;gap:6px;min-width:0}.sp-field-label{color:var(--sp-ink);font-size:var(--sp-text-small);font-weight:500}.sp-field-hint{margin:0;color:var(--sp-ink-muted);font-size:var(--sp-text-caption);line-height:1.35}.sp-field-hint[data-error]{color:var(--sp-error-ink)}.sp-input{width:100%;height:var(--sp-control-height);padding:0 10px;border:1px solid var(--sp-edge);border-radius:var(--sp-radius);background:var(--sp-surface-raised);color:var(--sp-ink);font:400 var(--sp-text-body) /1.2 var(--sp-font-sans);transition:border-color var(--sp-duration) var(--sp-ease)}.sp-input[data-mono]{font-family:var(--sp-font-mono);font-size:var(--sp-text-small)}}@layer spiral{.sp-input::placeholder{color:var(--sp-ink-muted)}.sp-input:hover:not(:disabled){border-color:var(--sp-control-border)}.sp-input[data-state=open],.sp-theme .sp-input:focus-visible{outline:none;border-color:var(--sp-ink)}.sp-input[aria-invalid=true]{border-color:var(--sp-status-error)}.sp-input:disabled{border-color:var(--sp-edge);background:var(--sp-surface-shade);color:var(--sp-ink-muted);cursor:not-allowed}textarea.sp-input{height:auto;min-height:72px;padding:8px 10px;line-height:1.45;resize:vertical}.sp-native-select,.sp-select-trigger{position:relative;display:flex;align-items:center}.sp-native-select>select{padding-right:32px;appearance:none;cursor:pointer}.sp-native-select>.sp-glyph{position:absolute;right:8px;color:var(--sp-ink-muted);pointer-events:none}.sp-select-trigger{justify-content:space-between;gap:8px;text-align:left;cursor:pointer}.sp-select-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-select-icon,.sp-select-trigger[data-placeholder]{color:var(--sp-ink-muted)}.sp-select-icon{display:inline-flex;margin-right:-2px}.sp-search{display:flex;align-items:center;gap:8px;width:280px;max-width:100%;height:var(--sp-control-height);padding:0 4px 0 10px;border:1px solid var(--sp-control-border);border-radius:var(--sp-radius);background:var(--sp-surface-shade);color:var(--sp-ink-muted);transition:border-color var(--sp-duration) var(--sp-ease)}.sp-search:focus-within{border-color:var(--sp-ink)}.sp-search>input{flex:1;min-width:0;height:100%;padding:0;border:0;background:none;color:var(--sp-ink);font:400 var(--sp-text-body) /1 var(--sp-font-sans);outline:none}.sp-search>input::placeholder{color:var(--sp-ink-muted)}.sp-search>input::-webkit-search-cancel-button{display:none}.sp-search>.sp-kbd{margin-right:2px}.sp-search-clear{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:var(--sp-radius);background:none;color:var(--sp-ink-muted);cursor:pointer}.sp-search-clear:hover{background:var(--sp-surface-hover);color:var(--sp-ink)}.sp-choice{display:inline-flex;align-items:center;gap:8px;color:var(--sp-ink);font-size:var(--sp-text-body);cursor:pointer}.sp-choice[data-disabled]{opacity:.45;cursor:not-allowed}.sp-checkbox{display:inline-grid;place-items:center;width:16px;height:16px;flex:none;padding:0;border:1px solid var(--sp-control-border);border-radius:var(--sp-radius);background:var(--sp-surface-raised);color:var(--sp-inverted-ink);cursor:pointer}.sp-checkbox:disabled{cursor:not-allowed}.sp-checkbox[data-state=checked],.sp-checkbox[data-state=indeterminate]{border-color:var(--sp-inverted);background:var(--sp-inverted)}.sp-checkbox-indicator{display:grid;place-items:center}.sp-checkbox-indicator>.sp-glyph{width:14px;height:14px}.sp-checkbox-mixed{width:8px;height:2px;background:var(--sp-inverted-ink)}.sp-menu,.sp-popover{z-index:50;min-width:200px;max-height:var(--radix-dropdown-menu-content-available-height,60vh);overflow-y:auto;padding:4px;border:1px solid var(--sp-control-border);border-radius:var(--sp-radius);background:var(--sp-surface-raised);box-shadow:var(--sp-shadow-float);color:var(--sp-ink);animation:sp-rise var(--sp-duration) var(--sp-ease)}.sp-popover{min-width:0;padding:12px}.sp-select-content{min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height)}.sp-menu-item{display:flex;align-items:center;gap:10px;height:var(--sp-control-height);padding:0 8px;border-radius:var(--sp-radius);font-size:var(--sp-text-body);white-space:nowrap;outline:none;cursor:pointer;user-select:none}.sp-menu-item>svg{width:16px;height:16px;flex:none;fill:currentColor;color:var(--sp-ink-muted)}}@layer spiral{}@layer spiral{.sp-menu:has(.sp-menu-item>svg) .sp-menu-item:not(:has(>svg)){padding-left:34px}.sp-menu-item[data-highlighted]{background:var(--sp-surface-hover)}.sp-menu-item[data-tone=danger],.sp-menu-item[data-tone=danger]>svg{color:var(--sp-error-ink)}.sp-menu-item[data-disabled]{color:var(--sp-ink-muted);cursor:default}.sp-menu-label-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sp-menu-hint{color:var(--sp-ink-muted);font:400 var(--sp-text-caption) /1 var(--sp-font-mono)}.sp-menu-check{display:inline-flex;margin-left:auto}.sp-menu-check>.sp-glyph{color:var(--sp-ink)}.sp-menu-separator{height:1px;margin:4px -4px;background:var(--sp-line-raised)}.sp-menu-group-label{padding:8px 8px 4px;color:var(--sp-ink-muted);font:400 var(--sp-text-caption) /1.2 var(--sp-font-mono);letter-spacing:.03em;text-transform:uppercase}.sp-kbd{justify-content:center;min-width:20px;height:20px;padding:0 4px;border:1px solid var(--sp-control-border);border-radius:var(--sp-radius);background:var(--sp-surface);font:400 var(--sp-text-caption) /1 var(--sp-font-mono)}.sp-chip,.sp-kbd{width:fit-content;display:inline-flex;align-items:center;color:var(--sp-ink-body)}.sp-chip{gap:6px;height:var(--sp-control-height-sm);padding:0 10px;border:1px dashed var(--sp-control-border);border-radius:var(--sp-radius-pill);background:transparent;font:500 var(--sp-text-small) /1 var(--sp-font-sans);white-space:nowrap;cursor:pointer;transition:border-color var(--sp-duration) var(--sp-ease),background-color var(--sp-duration) var(--sp-ease)}.sp-chip:hover,.sp-chip[data-state=open]{border-color:var(--sp-ink-muted)}.sp-chip>.sp-glyph{width:14px;height:14px;color:var(--sp-ink-muted)}.sp-chip[data-set]{border-style:solid;border-color:var(--sp-edge);background:var(--sp-surface-shade);color:var(--sp-ink-body)}.sp-chip>b{color:var(--sp-ink);font-weight:500}.sp-spinner{display:inline-block;width:16px;height:16px;flex:none;border-radius:var(--sp-radius-pill);background:conic-gradient(from 0deg,transparent 0deg,currentColor 300deg,transparent 1turn);-webkit-mask:radial-gradient(circle,transparent 5.5px,#000 6px);mask:radial-gradient(circle,transparent 5.5px,#000 6px);color:var(--sp-accent);animation:sp-spin .9s linear infinite}.sp-spinner[data-size=sm]{width:14px;height:14px;-webkit-mask:radial-gradient(circle,transparent 4.5px,#000 5px);mask:radial-gradient(circle,transparent 4.5px,#000 5px)}.sp-button .sp-spinner{color:inherit}.sp-skeleton{display:block;width:100%;height:12px;border-radius:var(--sp-radius);background:var(--sp-surface-shade)}.sp-status{width:fit-content;display:inline-flex;align-items:center;gap:8px;color:var(--sp-ink-body);font-size:var(--sp-text-small);white-space:nowrap}.sp-status:before{content:"";width:8px;height:8px;flex:none;border-radius:var(--sp-radius-pill);background:var(--sp-status-idle)}.sp-status[data-tone=ok]:before{background:var(--sp-status-ok)}.sp-status[data-tone=warn]:before{background:var(--sp-status-warn)}.sp-status[data-tone=error]:before{background:var(--sp-status-error)}.sp-status[data-tone=live]:before{background:var(--sp-accent);box-shadow:0 0 0 3px var(--sp-accent-soft)}.sp-description-list{display:grid;grid-template-columns:minmax(96px,max-content) minmax(0,1fr);margin:0;font-size:var(--sp-text-small)}.sp-description-item{display:contents}.sp-description-item>dd,.sp-description-item>dt{padding:8px 0;border-bottom:1px solid var(--sp-line)}.sp-description-item>dt{padding-right:16px;color:var(--sp-ink-muted)}.sp-description-item>dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--sp-ink)}.sp-description-item>dd[data-mono]{font-family:var(--sp-font-mono);color:var(--sp-ink-body)}.sp-description-item>dd[data-empty],.sp-empty-state{color:var(--sp-ink-muted)}.sp-empty-state{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:100%;padding:32px 24px;text-align:center}.sp-empty-state-icon{display:inline-flex;margin-bottom:2px;color:var(--sp-ink-muted)}.sp-empty-state-icon>svg{width:18px;height:18px;fill:currentColor}.sp-empty-state-title{color:var(--sp-ink);font:500 var(--sp-text-body) /1.3 var(--sp-font-display)}.sp-empty-state>p{max-width:25rem;margin:0;font-size:var(--sp-text-small);line-height:1.45}.sp-empty-state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}.sp-empty-state[data-compact]{align-items:flex-start;min-height:0;padding:16px 12px;text-align:left}.sp-empty-state[data-compact]>p{font-size:var(--sp-text-caption)}.sp-empty-state[data-compact] .sp-empty-state-actions{justify-content:flex-start}.sp-empty-state[data-framed]{gap:12px;padding:56px 24px;overflow:hidden;border:1px dashed var(--sp-control-border);border-radius:var(--sp-radius)}.sp-empty-state[data-framed]>.sp-empty-state-title{font-size:var(--sp-text-heading)}.sp-dot-field{position:absolute;inset:0;background-image:radial-gradient(circle at center,var(--sp-control-border) 1px,transparent 1.4px);background-size:16px 16px;-webkit-mask-image:radial-gradient(ellipse 50% 70% at 50% 0,#000 0 30%,transparent 75%);mask-image:radial-gradient(ellipse 50% 70% at 50% 0,#000 0 30%,transparent 75%)}.sp-empty-state>:not(.sp-dot-field){position:relative}.sp-callout{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:12px 14px;border:1px solid var(--sp-edge);border-radius:var(--sp-radius);background:var(--sp-surface-raised);color:var(--sp-ink-body);font-size:var(--sp-text-small);line-height:1.45}.sp-callout-icon{margin-top:2px;color:var(--sp-ink-muted)}.sp-callout[data-tone=error] .sp-callout-icon{color:var(--sp-status-error)}.sp-callout-content{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.sp-callout-title{color:var(--sp-ink);font-size:var(--sp-text-body);font-weight:500;overflow-wrap:anywhere}.sp-callout-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;overflow-wrap:anywhere}.sp-callout-body>p{margin:0}}@layer spiral{}@layer spiral{}@layer spiral{.sp-callout-body>:is(button,.sp-button):not(:first-child){margin-top:2px}}