.ds-button{--ds-control-h:var(--control-h-md);box-sizing:border-box;height:var(--ds-control-h);justify-content:center;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);border-radius:var(--r-panel);background:var(--raised);color:var(--text);font-family:var(--font);font-size:var(--fs-14);font-weight:var(--fw-semibold);line-height:var(--lh-tight);cursor:pointer;transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border:1px solid #0000;display:inline-flex}.ds-button--sm{--ds-control-h:var(--control-h-sm)}.ds-button--lg{--ds-control-h:var(--control-h-lg)}.ds-button--full{width:100%}.ds-button--primary{background:var(--action);color:var(--on-action)}.ds-button--primary:hover:not(:disabled){background:var(--action-hover)}.ds-button--secondary:hover:not(:disabled){background:var(--overlay)}.ds-button--ghost{color:var(--action-text);background:0 0}.ds-button--ghost:hover:not(:disabled){background:var(--raised)}.ds-button--danger{background:var(--st-danger-bg);color:var(--st-danger)}.ds-button--danger:hover:not(:disabled){border-color:var(--st-danger)}.ds-button:disabled{background:var(--raised);color:var(--muted);cursor:not-allowed}.ds-button-icon{width:var(--icon-md);height:var(--icon-md);stroke-width:var(--icon-stroke);flex-shrink:0}.ds-button--sm .ds-button-icon{width:var(--icon-sm);height:var(--icon-sm)}.ds-button--lg .ds-button-icon{width:var(--icon-lg);height:var(--icon-lg)}.ds-icon-button{width:max(var(--ds-control-h), var(--target-min));height:max(var(--ds-control-h), var(--target-min));min-width:var(--target-min);min-height:var(--target-min);flex-shrink:0;padding:0}.ds-kbd{padding:var(--sp-hair) var(--sp-1);border:1px solid var(--line-strong);border-radius:var(--r-chip);color:inherit;font-family:var(--font-mono);font-size:var(--fs-12);font-weight:var(--fw-regular);line-height:var(--lh-tight);align-items:center;display:inline-flex}.ds-kbd--on-action{border-color:var(--kbd-on-action)}.ds-spinner{box-sizing:border-box;width:var(--icon-md);height:var(--icon-md);border-radius:var(--r-pill);animation:ds-spin var(--dur-slow) linear infinite;border:2px solid;border-right-color:#0000;flex-shrink:0;display:inline-block}.ds-spinner--sm{width:var(--icon-sm);height:var(--icon-sm)}@keyframes ds-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ds-spinner{animation:none}}
