.ds-button{border-radius:var(--ds-radius-md);min-height:40px;font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;transition:background-color .16s,border-color .16s,transform .12s;display:inline-flex}.ds-button:active:not(:disabled){transform:translateY(1px)}.ds-button:disabled{cursor:not-allowed;opacity:.55}.ds-button--primary{background:var(--ds-primary);color:var(--ds-on-primary)}.ds-button--primary:hover:not(:disabled){background:var(--ds-primary-hover)}.ds-button--secondary{background:var(--ds-surface);color:var(--ds-text);border-color:var(--ds-border)}.ds-button--secondary:hover:not(:disabled),.ds-button--ghost:hover:not(:disabled){background:var(--ds-surface-soft)}.ds-button--ghost{color:var(--ds-text);background:0 0}.ds-button--danger{background:var(--ds-danger);color:var(--ds-on-danger)}.ds-button--sm{min-height:32px;padding:0 12px;font-size:14px}.ds-button--lg{min-height:48px;padding:0 24px;font-size:18px}.ds-icon-button{width:40px;padding:0}.ds-icon-button.ds-button--sm{width:32px}.ds-icon-button.ds-button--lg{width:48px}.ds-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite ds-spin}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-badge{background:var(--ds-surface-soft);min-height:24px;color:var(--ds-text);border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.ds-badge--brand{background:var(--ds-primary);color:var(--ds-on-primary)}.ds-badge--success{background:color-mix(in srgb,var(--ds-success) 15%,var(--ds-surface));color:var(--ds-success)}.ds-badge--danger{background:color-mix(in srgb,var(--ds-danger) 15%,var(--ds-surface));color:var(--ds-danger)}.ds-badge--warning{background:color-mix(in srgb,var(--ds-warning) 15%,var(--ds-surface));color:var(--ds-warning)}.ds-field{gap:6px;display:grid}.ds-label{font-size:14px;font-weight:700}.ds-hint,.ds-error{color:var(--ds-text-muted);font-size:12px}.ds-error{color:var(--ds-danger)}.ds-input{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);width:100%;min-height:42px;color:var(--ds-text);font:inherit;padding:8px 12px}.ds-input[aria-invalid=true]{border-color:var(--ds-danger)}.ds-textarea{resize:vertical;min-height:100px}.ds-choice,.ds-switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.ds-choice-input{width:18px;height:18px;accent-color:var(--ds-primary)}.ds-switch-input{opacity:0;position:absolute}.ds-switch-track{background:var(--ds-disabled);border-radius:999px;width:42px;height:24px;padding:3px;transition:background .16s}.ds-switch-track span{background:var(--ds-surface);border-radius:50%;width:18px;height:18px;transition:transform .16s;display:block}.ds-switch-input:checked+.ds-switch-track{background:var(--ds-primary)}.ds-switch-input:checked+.ds-switch-track span{transform:translate(18px)}.ds-switch-input:focus-visible+.ds-switch-track{outline:3px solid var(--ds-focus);outline-offset:3px}.ds-card{border-radius:var(--ds-radius-lg);background:var(--ds-surface);padding:24px}.ds-card--outlined{border:1px solid var(--ds-border)}.ds-card--elevated{box-shadow:var(--ds-shadow-md)}.ds-card--accent{border-left:4px solid var(--ds-accent);box-shadow:var(--ds-shadow-sm)}.ds-alert{border:1px solid var(--ds-border);border-left:4px solid var(--ds-primary);border-radius:var(--ds-radius-md);background:var(--ds-surface-soft);padding:14px 16px}.ds-alert--success{border-left-color:var(--ds-success)}.ds-alert--warning{border-left-color:var(--ds-warning)}.ds-alert--danger{border-left-color:var(--ds-danger)}.ds-avatar{background:var(--ds-primary);color:var(--ds-on-primary);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.ds-avatar img{object-fit:cover;width:100%;height:100%}.ds-avatar--sm{width:32px;height:32px;font-size:12px}.ds-avatar--md{width:44px;height:44px}.ds-avatar--lg{width:64px;height:64px;font-size:20px}.ds-divider{background:var(--ds-border);border:0}.ds-divider--horizontal{width:100%;height:1px}.ds-divider--vertical{width:1px;height:32px}@media (prefers-reduced-motion:reduce){.ds-button,.ds-spinner,.ds-switch-track,.ds-switch-track span{transition:none;animation:none}}
