[data-theme]{--button-color-primary: var(--ui-primary);--button-color-primary-foreground: var(--ui-primary-foreground);--button-color-secondary: var(--ui-secondary);--button-color-secondary-foreground: var(--ui-secondary-foreground);--button-color-accent: var(--ui-accent);--button-color-accent-foreground: var(--ui-accent-foreground);--button-color-success: var(--ui-success);--button-color-success-foreground: var(--ui-success-foreground);--button-color-danger: var(--ui-danger);--button-color-danger-foreground: var(--ui-danger-foreground);--button-color-warning: var(--ui-warning);--button-color-warning-foreground: var(--ui-warning-foreground);--button-color-info: var(--ui-info);--button-color-info-foreground: var(--ui-info-foreground);--button-color-neutral: var(--ui-neutral);--button-color-neutral-foreground: var(--ui-neutral-foreground);--button-mix-hover: var(--ui-hover-mix);--button-mix-hover-amount: var(--ui-hover-amount);--button-mix-active: var(--ui-hover-mix);--button-mix-active-amount: var(--ui-active-amount);--button-secondary-text: var(--ui-surface-foreground);--button-disabled-bg: color-mix(in oklch, var(--ui-neutral), transparent 80%);--button-disabled-text: color-mix(in oklch, var(--ui-surface-foreground), transparent 50%);--button-disabled-border: var(--ui-border);--button-sm-height: calc(var(--ui-base-spacing) * 4);--button-sm-padding-x: calc(var(--ui-base-spacing) * 1.5);--button-sm-padding-y: calc(var(--ui-base-spacing) * .75);--button-sm-font-size: var(--ui-text-sm);--button-sm-gap: calc(var(--ui-base-spacing) * .75);--button-md-height: calc(var(--ui-base-spacing) * 5);--button-md-padding-x: calc(var(--ui-base-spacing) * 2);--button-md-padding-y: var(--ui-base-spacing);--button-md-font-size: var(--ui-text-base);--button-md-gap: var(--ui-base-spacing);--button-lg-height: calc(var(--ui-base-spacing) * 6);--button-lg-padding-x: calc(var(--ui-base-spacing) * 3);--button-lg-padding-y: calc(var(--ui-base-spacing) * 1.25);--button-lg-font-size: var(--ui-text-lg);--button-lg-gap: calc(var(--ui-base-spacing) * 1.25);--button-font-family: var(--ui-font-sans);--button-font-weight: var(--ui-weight-medium);--button-line-height: var(--ui-leading-tight);--button-border-width: var(--ui-border-width);--button-border-radius: var(--ui-base-radius);--button-shadow: var(--ui-depth);--button-shadow-hover: var(--ui-depth);--button-shadow-active: var(--ui-depth);--button-shadow-disabled: none;--button-focus-ring-width: var(--ui-ring-width);--button-focus-ring-offset: var(--ui-ring-offset);--button-transition: var(--ui-base-duration) var(--ui-base-easing);--button-opacity-disabled: .6;--button-opacity-loading: .7;--button-soft-text-mix-amount: 10%;--button-outline-hover-alpha: 92%;--button-outline-active-alpha: 85%;--button-ghost-hover-alpha: 90%;--button-ghost-active-alpha: 82%;--button-soft-bg-alpha: 85%;--button-soft-hover-alpha: 78%;--button-soft-active-alpha: 70%;--button-dash-hover-alpha: 92%;--button-dash-active-alpha: 85%;--button-cursor-default: pointer;--button-cursor-disabled: not-allowed;--button-icon-sm-size: calc(var(--ui-base-spacing) * 4);--button-icon-md-size: calc(var(--ui-base-spacing) * 5);--button-icon-lg-size: calc(var(--ui-base-spacing) * 6)}.button{--_color: var(--button-color-primary);--_foreground: var(--button-color-primary-foreground);display:inline-flex;align-items:center;justify-content:center;gap:var(--button-md-gap);font-family:var(--button-font-family);font-weight:var(--button-font-weight);line-height:var(--button-line-height);border-style:solid;border-width:var(--button-border-width);border-radius:var(--button-border-radius);cursor:var(--button-cursor-default);transition:background-color var(--button-transition),border-color var(--button-transition),color var(--button-transition),box-shadow var(--button-transition),opacity var(--button-transition);text-decoration:none}.button:focus-visible{outline:var(--button-focus-ring-width) solid color-mix(in oklch,var(--_color),transparent 70%);outline-offset:var(--button-focus-ring-offset)}.button:disabled,.button[aria-disabled=true]{cursor:var(--button-cursor-disabled);opacity:var(--button-opacity-disabled);box-shadow:var(--button-shadow-disabled);pointer-events:none}.button--primary{--_color: var(--button-color-primary);--_foreground: var(--button-color-primary-foreground)}.button--secondary{--_color: var(--button-color-secondary);--_foreground: var(--button-color-secondary-foreground)}.button--accent{--_color: var(--button-color-accent);--_foreground: var(--button-color-accent-foreground)}.button--success{--_color: var(--button-color-success);--_foreground: var(--button-color-success-foreground)}.button--danger{--_color: var(--button-color-danger);--_foreground: var(--button-color-danger-foreground)}.button--warning{--_color: var(--button-color-warning);--_foreground: var(--button-color-warning-foreground)}.button--info{--_color: var(--button-color-info);--_foreground: var(--button-color-info-foreground)}.button--neutral{--_color: var(--button-color-neutral);--_foreground: var(--button-color-neutral-foreground)}.button--sm{height:var(--button-sm-height);padding:var(--button-sm-padding-y) var(--button-sm-padding-x);font-size:var(--button-sm-font-size);gap:var(--button-sm-gap)}.button--md{height:var(--button-md-height);padding:var(--button-md-padding-y) var(--button-md-padding-x);font-size:var(--button-md-font-size);gap:var(--button-md-gap)}.button--lg{height:var(--button-lg-height);padding:var(--button-lg-padding-y) var(--button-lg-padding-x);font-size:var(--button-lg-font-size);gap:var(--button-lg-gap)}.button--icon.button--sm{width:var(--button-icon-sm-size);height:var(--button-icon-sm-size);padding:0}.button--icon.button--md{width:var(--button-icon-md-size);height:var(--button-icon-md-size);padding:0}.button--icon.button--lg{width:var(--button-icon-lg-size);height:var(--button-icon-lg-size);padding:0}.button--filled{background-color:var(--_color);color:var(--_foreground);border-color:var(--_color);box-shadow:var(--button-shadow)}.button--filled:hover:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount));border-color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount));box-shadow:var(--button-shadow-hover)}.button--filled:active:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount));border-color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount));box-shadow:var(--button-shadow-active)}.button--filled:disabled,.button--filled[aria-disabled=true]{background-color:var(--button-disabled-bg);color:var(--button-disabled-text);border-color:var(--button-disabled-border)}.button--outline{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--_color);border-color:var(--_color)}.button--outline.button--secondary{color:var(--button-secondary-text);border-color:color-mix(in oklch,var(--_color),transparent 50%)}.button--outline:hover:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-outline-hover-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount));border-color:color-mix(in oklch,var(--_color),var(--button-mix-hover) 10%)}.button--outline:active:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-outline-active-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount));border-color:color-mix(in oklch,var(--_color),var(--button-mix-active) 20%)}.button--outline:disabled,.button--outline[aria-disabled=true]{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--button-disabled-text);border-color:var(--button-disabled-border)}.button--ghost{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--_color);border-color:transparent}.button--ghost.button--secondary{color:var(--button-secondary-text)}.button--ghost:hover:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-ghost-hover-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount))}.button--ghost:active:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-ghost-active-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount))}.button--ghost:disabled,.button--ghost[aria-disabled=true]{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--button-disabled-text)}.button--soft{background-color:color-mix(in oklch,var(--_color),transparent var(--button-soft-bg-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-soft-text-mix-amount));border-color:transparent}.button--soft:hover:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-soft-hover-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount))}.button--soft:active:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-soft-active-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount))}.button--soft:disabled,.button--soft[aria-disabled=true]{background-color:var(--button-disabled-bg);color:var(--button-disabled-text)}.button--link{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--_color);border-color:transparent;text-decoration:none;box-shadow:none}.button--link.button--secondary{color:var(--button-secondary-text)}.button--link:hover:not(:disabled):not([aria-disabled=true]){color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount));text-decoration:underline}.button--link:active:not(:disabled):not([aria-disabled=true]){color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount))}.button--link:disabled,.button--link[aria-disabled=true]{color:var(--button-disabled-text)}.button--dash{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--_color);border-color:color-mix(in oklch,var(--_color),transparent 40%);border-style:dashed}.button--dash.button--secondary{color:var(--button-secondary-text)}.button--dash:hover:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-dash-hover-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-hover) var(--button-mix-hover-amount));border-color:color-mix(in oklch,var(--_color),transparent 20%)}.button--dash:active:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in oklch,var(--_color),transparent var(--button-dash-active-alpha));color:color-mix(in oklch,var(--_color),var(--button-mix-active) var(--button-mix-active-amount));border-color:var(--_color)}.button--dash:disabled,.button--dash[aria-disabled=true]{background-color:color-mix(in oklch,var(--_color),transparent 100%);color:var(--button-disabled-text);border-color:var(--button-disabled-border)}.button--full-width{width:100%}.button--loading{position:relative}.button__content{display:inline-flex;align-items:center;gap:inherit}.button__content--hidden{visibility:hidden}.button--loading .button__content:not(.button__content--hidden){opacity:var(--button-opacity-loading)}.button__loader{display:inline-flex;align-items:center;justify-content:center}.button--icon .button__loader{position:absolute;inset:0;display:flex}[data-theme]{--spinner-sm-size: calc(var(--ui-base-spacing) * 2);--spinner-md-size: calc(var(--ui-base-spacing) * 3);--spinner-lg-size: calc(var(--ui-base-spacing) * 4);--spinner-default-size: 1em;--spinner-sm-border-width: calc(var(--ui-border-width) * 2);--spinner-md-border-width: calc(var(--ui-border-width) * 3);--spinner-lg-border-width: calc(var(--ui-border-width) * 4);--spinner-default-border-width: .125em;--spinner-border-radius: 9999px;--spinner-track-color: var(--ui-border);--spinner-color-primary: var(--ui-primary);--spinner-color-secondary: var(--ui-secondary);--spinner-color-accent: var(--ui-accent);--spinner-color-success: var(--ui-success);--spinner-color-warning: var(--ui-warning);--spinner-color-danger: var(--ui-danger);--spinner-color-info: var(--ui-info);--spinner-color-neutral: var(--ui-neutral);--spinner-duration: calc(var(--ui-base-duration) * 4);--spinner-reduced-motion-duration: 2s;--spinner-timing: linear}.spinner{position:relative;display:inline-block;width:var(--spinner-default-size);height:var(--spinner-default-size)}.spinner--sm{width:var(--spinner-sm-size);height:var(--spinner-sm-size)}.spinner--md{width:var(--spinner-md-size);height:var(--spinner-md-size)}.spinner--lg{width:var(--spinner-lg-size);height:var(--spinner-lg-size)}.spinner__track,.spinner__indicator{position:absolute;inset:0;border-style:solid;border-radius:var(--spinner-border-radius)}.spinner__track{border-width:var(--spinner-default-border-width);border-color:currentColor;opacity:.25}.spinner--sm .spinner__track,.spinner--md .spinner__track,.spinner--lg .spinner__track{opacity:1;border-color:var(--spinner-track-color)}.spinner--sm .spinner__track{border-width:var(--spinner-sm-border-width)}.spinner--md .spinner__track{border-width:var(--spinner-md-border-width)}.spinner--lg .spinner__track{border-width:var(--spinner-lg-border-width)}.spinner__indicator{border-width:var(--spinner-default-border-width);border-color:transparent;border-top-color:currentColor;animation:spinner-rotate var(--spinner-duration) var(--spinner-timing) infinite}.spinner--sm .spinner__indicator,.spinner--md .spinner__indicator,.spinner--lg .spinner__indicator{border-top-color:currentColor}.spinner--sm .spinner__indicator{border-width:var(--spinner-sm-border-width)}.spinner--md .spinner__indicator{border-width:var(--spinner-md-border-width)}.spinner--lg .spinner__indicator{border-width:var(--spinner-lg-border-width)}.spinner--primary .spinner__indicator{border-top-color:var(--spinner-color-primary)}.spinner--secondary .spinner__indicator{border-top-color:var(--spinner-color-secondary)}.spinner--accent .spinner__indicator{border-top-color:var(--spinner-color-accent)}.spinner--success .spinner__indicator{border-top-color:var(--spinner-color-success)}.spinner--warning .spinner__indicator{border-top-color:var(--spinner-color-warning)}.spinner--danger .spinner__indicator{border-top-color:var(--spinner-color-danger)}.spinner--info .spinner__indicator{border-top-color:var(--spinner-color-info)}.spinner--neutral .spinner__indicator{border-top-color:var(--spinner-color-neutral)}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner__indicator{animation-duration:var(--spinner-reduced-motion-duration)}}.spinner__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
