[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) * 8);--button-sm-padding-x:calc(var(--ui-base-spacing) * 3);--button-sm-padding-y:calc(var(--ui-base-spacing) * 1.5);--button-sm-font-size:var(--ui-text-sm);--button-sm-gap:calc(var(--ui-base-spacing) * 1.5);--button-md-height:calc(var(--ui-base-spacing) * 10);--button-md-padding-x:calc(var(--ui-base-spacing) * 4);--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) * 12);--button-lg-padding-x:calc(var(--ui-base-spacing) * 6);--button-lg-padding-y:calc(var(--ui-base-spacing) * 2.5);--button-lg-font-size:var(--ui-text-lg);--button-lg-gap:calc(var(--ui-base-spacing) * 2.5);--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) * 8);--button-icon-md-size:calc(var(--ui-base-spacing) * 10);--button-icon-lg-size:calc(var(--ui-base-spacing) * 12)}.button{--_color:var(--button-color-primary);--_foreground:var(--button-color-primary-foreground);justify-content:center;align-items: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;display:inline-flex}.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:#0000}.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:#0000}.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);box-shadow:none;border-color:#0000;text-decoration: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{align-items:center;gap:inherit;display:inline-flex}.button__content--hidden{visibility:hidden}.button--loading .button__content:not(.button__content--hidden){opacity:var(--button-opacity-loading)}.button__loader{justify-content:center;align-items:center;display:inline-flex}.button--icon .button__loader{display:flex;position:absolute;inset:0}[data-theme]{--spinner-sm-size:calc(var(--ui-base-spacing) * 4);--spinner-md-size:calc(var(--ui-base-spacing) * 6);--spinner-lg-size:calc(var(--ui-base-spacing) * 8);--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{width:var(--spinner-default-size);height:var(--spinner-default-size);display:inline-block;position:relative}.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{border-radius:var(--spinner-border-radius);border-style:solid;position:absolute;inset:0}.spinner__track{border-width:var(--spinner-default-border-width);opacity:.25;border-color:currentColor}.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);animation:spinner-rotate var(--spinner-duration) var(--spinner-timing) infinite;border-color:currentColor #0000 #0000}.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{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
