.ds-button{justify-content:center;align-items:center;gap:var(--ds-space-8);font-family:var(--ds-font-sans);font-weight:var(--ds-font-weight-medium);border-radius:var(--ds-radius-md);cursor:pointer;white-space:nowrap;transition:background-color var(--ds-duration-fast) var(--ds-ease-standard), border-color var(--ds-duration-fast) var(--ds-ease-standard), color var(--ds-duration-fast) var(--ds-ease-standard), opacity var(--ds-duration-fast) var(--ds-ease-standard);border:1px solid #0000;display:inline-flex;position:relative}.ds-button:disabled{opacity:.5;cursor:not-allowed}.ds-button:focus-visible{outline:2px solid var(--ds-color-primary);outline-offset:2px}.ds-button--sm{height:2rem;padding:0 var(--ds-space-12);font-size:var(--ds-text-body-s-size)}.ds-button--md{height:2.5rem;padding:0 var(--ds-space-16);font-size:var(--ds-text-body-m-size)}.ds-button--lg{height:3rem;padding:0 var(--ds-space-24);font-size:var(--ds-text-body-l-size)}.ds-button--primary{background:var(--ds-color-primary);color:var(--ds-color-primary-on)}.ds-button--primary:hover:not(:disabled){background:var(--ds-color-primary-hover)}.ds-button--primary:active:not(:disabled){background:var(--ds-color-primary-active)}.ds-button--secondary{background:var(--ds-color-secondary);color:var(--ds-color-secondary-on)}.ds-button--secondary:hover:not(:disabled){background:var(--ds-color-secondary-hover)}.ds-button--secondary:active:not(:disabled){background:var(--ds-color-secondary-active)}.ds-button--outline{color:var(--ds-color-text-primary);border-color:var(--ds-color-border);background:0 0}.ds-button--outline:hover:not(:disabled){background:var(--ds-color-surface)}.ds-button--ghost{color:var(--ds-color-text-primary);background:0 0}.ds-button--ghost:hover:not(:disabled){background:var(--ds-color-surface)}.ds-button--danger{background:var(--ds-color-error);color:var(--ds-color-error-on)}.ds-button--danger:hover:not(:disabled){background:var(--ds-color-error-hover)}.ds-button--danger:active:not(:disabled){background:var(--ds-color-error-active)}.ds-button--loading .ds-button__label,.ds-button--loading .ds-button__icon{visibility:hidden}.ds-button--loading:after{content:"";border:2px solid;border-top-color:#0000;border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite ds-button-spin;position:absolute}@keyframes ds-button-spin{to{transform:rotate(360deg)}}
.ds-badge{align-items:center;gap:var(--ds-space-4);height:1.375rem;padding:0 var(--ds-space-8);border-radius:var(--ds-radius-pill);font-family:var(--ds-font-sans);font-size:var(--ds-text-caption-size);font-weight:var(--ds-text-caption-weight);white-space:nowrap;line-height:1;display:inline-flex}.ds-badge--primary{background:var(--ds-color-primary-subtle);color:var(--ds-color-primary)}.ds-badge--secondary{background:var(--ds-color-secondary-subtle);color:var(--ds-color-secondary)}.ds-badge--success{background:var(--ds-color-success-subtle);color:var(--ds-color-success)}.ds-badge--warning{background:var(--ds-color-warning-subtle);color:var(--ds-color-warning)}.ds-badge--error{background:var(--ds-color-error-subtle);color:var(--ds-color-error)}.ds-badge--info{background:var(--ds-color-info-subtle);color:var(--ds-color-info)}.ds-badge--neutral{background:var(--ds-color-surface);color:var(--ds-color-text-secondary)}
.ds-avatar{border-radius:var(--ds-radius-pill);background:var(--ds-color-elevated-surface);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.ds-avatar--xs{width:1.5rem;height:1.5rem}.ds-avatar--sm{width:2rem;height:2rem}.ds-avatar--md{width:2.5rem;height:2.5rem}.ds-avatar--lg{width:3rem;height:3rem}.ds-avatar--xl{width:4rem;height:4rem}.ds-avatar__image{object-fit:cover;width:100%;height:100%}.ds-avatar__fallback{width:100%;height:100%;font-family:var(--ds-font-sans);font-weight:var(--ds-font-weight-medium);color:var(--ds-color-text-secondary);text-transform:uppercase;justify-content:center;align-items:center;display:flex}.ds-avatar--xs .ds-avatar__fallback{font-size:var(--ds-text-caption-size)}.ds-avatar--sm .ds-avatar__fallback{font-size:var(--ds-text-body-s-size)}.ds-avatar--md .ds-avatar__fallback{font-size:var(--ds-text-body-m-size)}.ds-avatar--lg .ds-avatar__fallback{font-size:var(--ds-text-heading-s-size)}.ds-avatar--xl .ds-avatar__fallback{font-size:var(--ds-text-heading-m-size)}
.ds-tooltip{max-width:16rem;padding:var(--ds-space-4) var(--ds-space-8);border-radius:var(--ds-radius-sm);background:var(--ds-color-text-primary);color:var(--ds-color-background);font-family:var(--ds-font-sans);font-size:var(--ds-text-caption-size);font-weight:var(--ds-text-caption-weight);line-height:var(--ds-text-caption-line-height);box-shadow:var(--ds-shadow-md);z-index:50;animation:ds-tooltip-in var(--ds-duration-fast) var(--ds-ease-entrance)}.ds-tooltip__arrow{fill:var(--ds-color-text-primary)}@keyframes ds-tooltip-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.ds-card{border-radius:var(--ds-radius-lg);background:var(--ds-color-surface);border:1px solid var(--ds-color-border);box-shadow:var(--ds-shadow-xs);transition:transform var(--ds-duration-normal) var(--ds-ease-entrance), box-shadow var(--ds-duration-normal) var(--ds-ease-entrance);flex-direction:column;display:flex}.ds-card--padding-none{padding:0}.ds-card--padding-sm{padding:var(--ds-space-16)}.ds-card--padding-md{padding:var(--ds-space-24)}.ds-card--padding-lg{padding:var(--ds-space-32)}.ds-card--interactive{cursor:pointer}.ds-card--interactive:hover{box-shadow:var(--ds-shadow-md);transform:translateY(-2px)}.ds-card__header{gap:var(--ds-space-4);margin-bottom:var(--ds-space-16);flex-direction:column;display:flex}.ds-card__title{font-family:var(--ds-font-sans);font-size:var(--ds-text-heading-s-size);font-weight:var(--ds-text-heading-s-weight);line-height:var(--ds-text-heading-s-line-height);color:var(--ds-color-text-primary);margin:0}.ds-card__description{font-family:var(--ds-font-sans);font-size:var(--ds-text-body-s-size);line-height:var(--ds-text-body-s-line-height);color:var(--ds-color-text-secondary);margin:0}.ds-card__content{flex:1}.ds-card__footer{align-items:center;gap:var(--ds-space-8);margin-top:var(--ds-space-16);padding-top:var(--ds-space-16);border-top:1px solid var(--ds-color-divider);display:flex}
.ds-input-group{gap:var(--ds-space-4);flex-direction:column;display:flex}.ds-input-group--disabled{opacity:.5}.ds-input-group__label{font-family:var(--ds-font-sans);font-size:var(--ds-text-label-size);font-weight:var(--ds-text-label-weight);color:var(--ds-color-text-primary)}.ds-input-group__helper{font-family:var(--ds-font-sans);font-size:var(--ds-text-caption-size);color:var(--ds-color-text-tertiary);margin:0}.ds-input-group__helper--error{color:var(--ds-color-error)}.ds-input{align-items:center;gap:var(--ds-space-8);border-radius:var(--ds-radius-md);border:1px solid var(--ds-color-border);background:var(--ds-color-surface);transition:border-color var(--ds-duration-fast) var(--ds-ease-standard), box-shadow var(--ds-duration-fast) var(--ds-ease-standard);display:flex}.ds-input:focus-within{border-color:var(--ds-color-primary);box-shadow:0 0 0 3px var(--ds-color-primary-subtle)}.ds-input--invalid{border-color:var(--ds-color-error)}.ds-input--invalid:focus-within{box-shadow:0 0 0 3px var(--ds-color-error-subtle)}.ds-input--sm{height:2rem;padding:0 var(--ds-space-12)}.ds-input--md{height:2.5rem;padding:0 var(--ds-space-16)}.ds-input--lg{height:3rem;padding:0 var(--ds-space-20)}.ds-input__field{min-width:0;height:100%;font-family:var(--ds-font-sans);font-size:var(--ds-text-body-m-size);color:var(--ds-color-text-primary);background:0 0;border:none;outline:none;flex:1}.ds-input__field::placeholder{color:var(--ds-color-text-tertiary)}.ds-input__field:disabled{cursor:not-allowed}.ds-input__icon{color:var(--ds-color-text-tertiary);flex-shrink:0;align-items:center;display:flex}
.ds-checkbox{align-items:center;gap:var(--ds-space-8);display:inline-flex}.ds-checkbox__control{border-radius:var(--ds-radius-xs);border:1px solid var(--ds-color-border);background:var(--ds-color-surface);cursor:pointer;width:1.125rem;height:1.125rem;transition:background-color var(--ds-duration-fast) var(--ds-ease-standard), border-color var(--ds-duration-fast) var(--ds-ease-standard);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ds-checkbox__control:focus-visible{outline:2px solid var(--ds-color-primary);outline-offset:2px}.ds-checkbox__control:disabled{opacity:.5;cursor:not-allowed}.ds-checkbox__control[data-state=checked],.ds-checkbox__control[data-state=indeterminate]{background:var(--ds-color-primary);border-color:var(--ds-color-primary)}.ds-checkbox__indicator{width:100%;height:100%;color:var(--ds-color-primary-on);justify-content:center;align-items:center;display:flex}.ds-checkbox__icon{width:.75rem;height:.75rem;display:none}.ds-checkbox__control[data-state=checked] .ds-checkbox__icon--check,.ds-checkbox__control[data-state=indeterminate] .ds-checkbox__icon--dash{display:block}.ds-checkbox__label{font-family:var(--ds-font-sans);font-size:var(--ds-text-body-m-size);color:var(--ds-color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}
.ds-radio-group{gap:var(--ds-space-12);flex-direction:column;display:flex}.ds-radio-item{align-items:center;gap:var(--ds-space-8);display:inline-flex}.ds-radio-item__control{border-radius:var(--ds-radius-pill);border:1px solid var(--ds-color-border);background:var(--ds-color-surface);cursor:pointer;width:1.125rem;height:1.125rem;transition:border-color var(--ds-duration-fast) var(--ds-ease-standard);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ds-radio-item__control:focus-visible{outline:2px solid var(--ds-color-primary);outline-offset:2px}.ds-radio-item__control:disabled{opacity:.5;cursor:not-allowed}.ds-radio-item__control[data-state=checked]{border-color:var(--ds-color-primary)}.ds-radio-item__indicator{border-radius:var(--ds-radius-pill);background:var(--ds-color-primary);width:.625rem;height:.625rem}.ds-radio-item__label{font-family:var(--ds-font-sans);font-size:var(--ds-text-body-m-size);color:var(--ds-color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}
.ds-switch{align-items:center;gap:var(--ds-space-8);display:inline-flex}.ds-switch__control{border-radius:var(--ds-radius-pill);background:var(--ds-color-border);cursor:pointer;width:2.25rem;height:1.25rem;transition:background-color var(--ds-duration-fast) var(--ds-ease-standard);border:none;padding:2px;position:relative}.ds-switch__control:focus-visible{outline:2px solid var(--ds-color-primary);outline-offset:2px}.ds-switch__control:disabled{opacity:.5;cursor:not-allowed}.ds-switch__control[data-state=checked]{background:var(--ds-color-primary)}.ds-switch__thumb{border-radius:var(--ds-radius-pill);background:var(--ds-color-white);width:1rem;height:1rem;box-shadow:var(--ds-shadow-xs);transition:transform var(--ds-duration-fast) var(--ds-ease-standard);will-change:transform;display:block;transform:translate(0)}.ds-switch__control[data-state=checked] .ds-switch__thumb{transform:translate(1rem)}.ds-switch__label{font-family:var(--ds-font-sans);font-size:var(--ds-text-body-m-size);color:var(--ds-color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}
.ds-modal__overlay{z-index:100;animation:ds-modal-overlay-in var(--ds-duration-normal) var(--ds-ease-entrance);background:#00000080;position:fixed;inset:0}.ds-modal__overlay[data-state=closed]{animation:ds-modal-overlay-out var(--ds-duration-fast) var(--ds-ease-exit)}.ds-modal__content{width:calc(100vw - var(--ds-space-32));max-height:calc(100vh - var(--ds-space-32));border-radius:var(--ds-radius-xl);background:var(--ds-color-elevated-surface);border:1px solid var(--ds-color-border);box-shadow:var(--ds-shadow-xl);padding:var(--ds-space-24);z-index:101;animation:ds-modal-content-in var(--ds-duration-normal) var(--ds-ease-entrance);position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.ds-modal__content[data-state=closed]{animation:ds-modal-content-out var(--ds-duration-fast) var(--ds-ease-exit)}.ds-modal__content:focus-visible{outline:none}.ds-modal__content--sm{max-width:24rem}.ds-modal__content--md{max-width:32rem}.ds-modal__content--lg{max-width:48rem}.ds-modal__close{top:var(--ds-space-16);right:var(--ds-space-16);border-radius:var(--ds-radius-sm);width:1.75rem;height:1.75rem;color:var(--ds-color-text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.ds-modal__close:hover{background:var(--ds-color-surface);color:var(--ds-color-text-primary)}.ds-modal__close:focus-visible{outline:2px solid var(--ds-color-primary);outline-offset:2px}.ds-modal__header{gap:var(--ds-space-4);margin-bottom:var(--ds-space-16);padding-right:var(--ds-space-24);flex-direction:column;display:flex}.ds-modal__title{font-family:var(--ds-font-sans);font-size:var(--ds-text-heading-m-size);font-weight:var(--ds-text-heading-m-weight);line-height:var(--ds-text-heading-m-line-height);color:var(--ds-color-text-primary);margin:0}.ds-modal__description{font-family:var(--ds-font-sans);font-size:var(--ds-text-body-m-size);line-height:var(--ds-text-body-m-line-height);color:var(--ds-color-text-secondary);margin:0}.ds-modal__body{font-family:var(--ds-font-sans);color:var(--ds-color-text-primary)}.ds-modal__footer{justify-content:flex-end;align-items:center;gap:var(--ds-space-8);margin-top:var(--ds-space-24);display:flex}@keyframes ds-modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes ds-modal-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes ds-modal-content-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ds-modal-content-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.96)}}
.ds-toast-viewport{bottom:var(--ds-space-24);right:var(--ds-space-24);gap:var(--ds-space-8);width:24rem;max-width:calc(100vw - var(--ds-space-32));z-index:200;outline:none;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;position:fixed}.ds-toast{align-items:flex-start;gap:var(--ds-space-12);padding:var(--ds-space-16);border-radius:var(--ds-radius-lg);background:var(--ds-color-elevated-surface);border:1px solid var(--ds-color-border);box-shadow:var(--ds-shadow-lg);border-left:3px solid var(--ds-color-border);display:flex;position:relative}.ds-toast--success{border-left-color:var(--ds-color-success)}.ds-toast--warning{border-left-color:var(--ds-color-warning)}.ds-toast--error{border-left-color:var(--ds-color-error)}.ds-toast[data-state=open]{animation:ds-toast-in var(--ds-duration-normal) var(--ds-ease-entrance)}.ds-toast[data-state=closed]{animation:ds-toast-out var(--ds-duration-fast) var(--ds-ease-exit)}.ds-toast[data-swipe=move]{transform:translateX(var(--radix-toast-swipe-move-x))}.ds-toast[data-swipe=end]{animation:ds-toast-swipe-out var(--ds-duration-fast) var(--ds-ease-exit)}.ds-toast__body{gap:var(--ds-space-4);flex-direction:column;flex:1;min-width:0;display:flex}.ds-toast__title{font-family:var(--ds-font-sans);font-size:var(--ds-text-label-size);font-weight:var(--ds-text-label-weight);color:var(--ds-color-text-primary);margin:0}.ds-toast__description{font-family:var(--ds-font-sans);font-size:var(--ds-text-body-s-size);color:var(--ds-color-text-secondary);margin:0}.ds-toast__action{color:var(--ds-color-primary);font-family:var(--ds-font-sans);font-size:var(--ds-text-label-size);font-weight:var(--ds-text-label-weight);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0}.ds-toast__action:hover{text-decoration:underline}.ds-toast__close{width:1.5rem;height:1.5rem;color:var(--ds-color-text-tertiary);cursor:pointer;border-radius:var(--ds-radius-xs);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ds-toast__close:hover{background:var(--ds-color-surface);color:var(--ds-color-text-primary)}@keyframes ds-toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes ds-toast-out{0%{opacity:1}to{opacity:0}}@keyframes ds-toast-swipe-out{0%{transform:translateX(var(--radix-toast-swipe-end-x))}to{transform:translate(100%)}}
.ds-tabs{flex-direction:column;display:flex}.ds-tabs__list{gap:var(--ds-space-4);border-bottom:1px solid var(--ds-color-divider);display:flex}.ds-tabs__trigger{padding:var(--ds-space-12) var(--ds-space-4);font-family:var(--ds-font-sans);font-size:var(--ds-text-body-m-size);font-weight:var(--ds-font-weight-medium);color:var(--ds-color-text-tertiary);cursor:pointer;transition:color var(--ds-duration-fast) var(--ds-ease-standard), border-color var(--ds-duration-fast) var(--ds-ease-standard);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;position:relative}.ds-tabs__trigger+.ds-tabs__trigger{margin-left:var(--ds-space-16)}.ds-tabs__trigger:hover{color:var(--ds-color-text-primary)}.ds-tabs__trigger:focus-visible{outline:2px solid var(--ds-color-primary);outline-offset:2px}.ds-tabs__trigger[data-state=active]{color:var(--ds-color-text-primary);border-bottom-color:var(--ds-color-primary)}.ds-tabs__trigger:disabled{opacity:.5;cursor:not-allowed}.ds-tabs__content{padding-top:var(--ds-space-16)}.ds-tabs__content:focus-visible{outline:none}
.ds-dropdown__content{min-width:12rem;padding:var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--ds-color-elevated-surface);border:1px solid var(--ds-color-border);box-shadow:var(--ds-shadow-md);z-index:100;animation:ds-dropdown-in var(--ds-duration-fast) var(--ds-ease-entrance)}.ds-dropdown__content[data-state=closed]{animation:ds-dropdown-out var(--ds-duration-ultra-fast) var(--ds-ease-exit)}.ds-dropdown__item{align-items:center;gap:var(--ds-space-8);padding:var(--ds-space-8) var(--ds-space-12);border-radius:var(--ds-radius-sm);font-family:var(--ds-font-sans);font-size:var(--ds-text-body-s-size);color:var(--ds-color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex}.ds-dropdown__item[data-highlighted]{background:var(--ds-color-surface)}.ds-dropdown__item[data-disabled]{color:var(--ds-color-text-disabled);cursor:not-allowed}.ds-dropdown__separator{height:1px;margin:var(--ds-space-4) 0;background:var(--ds-color-divider)}.ds-dropdown__label{padding:var(--ds-space-8) var(--ds-space-12) var(--ds-space-4);font-family:var(--ds-font-sans);font-size:var(--ds-text-overline-size);font-weight:var(--ds-text-overline-weight);letter-spacing:var(--ds-text-overline-tracking);text-transform:uppercase;color:var(--ds-color-text-tertiary)}@keyframes ds-dropdown-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ds-dropdown-out{0%{opacity:1}to{opacity:0}}
