:root{--ka-control-transform-transition:transform 180ms ease-out;--ka-control-transition:var(--ka-control-transform-transition),box-shadow 180ms ease-out,background-color 180ms ease-out,opacity 180ms ease-out,border-color 180ms ease-out,color 180ms ease-out;--ka-control-focus-ring:2px solid var(--primary-500)}.ka-control{position:relative;-webkit-tap-highlight-color:transparent;transition:var(--ka-control-transition)}.ka-control:focus-visible{outline:var(--ka-control-focus-ring);outline-offset:2px}.ka-control:active:not(:disabled):not([aria-disabled=true]){box-shadow:var(--shadow-xs);transform:scale(.98)}.ka-control:disabled,.ka-control[aria-disabled=true]{cursor:not-allowed;opacity:.5;transition:none}.ka-button{position:relative;display:inline-flex;min-width:0;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1px solid transparent;border-radius:var(--radius-full);color:var(--text-primary);font:inherit;font-size:.875rem;font-weight:600;line-height:1.25;text-align:center;text-decoration:none;white-space:normal;box-shadow:var(--shadow-xs);cursor:pointer}.ka-button--sm{min-height:36px;padding:8px 16px;font-size:.8125rem}.ka-button--md{min-height:44px;padding:12px 20px}.ka-button--lg{min-height:52px;padding:12px 24px;font-size:1rem}.ka-button--primary{background:var(--primary-600);color:#fff}.ka-button--primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--primary-700);color:#fff;box-shadow:var(--shadow-md);transform:translateY(-1px)}.ka-button--secondary{border-color:var(--border-color-light);background:var(--bg-secondary);color:var(--text-primary)}.ka-button--secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--border-color-dark);background:var(--gray-200);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.ka-button--outline{border-color:var(--border-color-dark);background:var(--bg-primary);color:var(--text-primary)}.ka-button--outline:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--primary-300);background:var(--primary-50);color:var(--primary-800);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.ka-button--ghost{background:transparent;color:var(--text-secondary);box-shadow:none}.ka-button--ghost:hover:not(:disabled):not([aria-disabled=true]){background:var(--gray-100);color:var(--text-primary);transform:translateY(-1px)}.ka-button--destructive{background:var(--error-600);color:#fff}.ka-button--destructive .ka-button__icon,.ka-button--destructive .ka-button__label,.ka-button--primary .ka-button__icon,.ka-button--primary .ka-button__label{color:#fff}.ka-button--destructive:hover:not(:disabled):not([aria-disabled=true]){background:#b91c1c;color:#fff;box-shadow:var(--shadow-md);transform:translateY(-1px)}.ka-button--link{min-height:44px;padding:8px;background:transparent;color:var(--primary-700);box-shadow:none}.ka-button--link:hover:not(:disabled):not([aria-disabled=true]){color:var(--primary-800);text-decoration:underline;text-underline-offset:3px}.ka-button:disabled,.ka-button[aria-disabled=true]{border-color:var(--border-color-light);background:var(--gray-200);color:var(--gray-700);box-shadow:none;transform:none}.ka-button__icon,.ka-button__label{display:inline-flex;min-width:0;align-items:center;justify-content:center}.ka-button__icon>svg,.ka-button__spinner{width:20px;height:20px;flex:0 0 20px;stroke-width:1.75}.ka-button--sm .ka-button__icon>svg{width:16px;height:16px;flex-basis:16px}.ka-control__icon--right{transition:var(--ka-control-transform-transition)}.ka-button--has-right-icon:hover:not(:disabled):not([aria-disabled=true]) .ka-control__icon--right{transform:translateX(3px)}.ka-button--loading .ka-button__icon,.ka-button--loading .ka-button__label{visibility:hidden}.ka-button__spinner{position:absolute;top:50%;left:50%;margin:-10px 0 0 -10px;animation:ka-button-spin .8s linear infinite}@keyframes ka-button-spin{to{transform:rotate(1turn)}}@media (max-width:640px){.ka-button--sm{min-height:44px}}@media (prefers-reduced-motion:reduce){.ka-control,.ka-control__icon--right,.ka-control__spinner{animation-duration:.01ms;transition-duration:.01ms}}@media (pointer:coarse){.ka-control--compact-hit:before{content:"";position:absolute;z-index:1;inset:-4px;background:transparent}}