.btn{--_btn-bg: transparent;--_btn-color: inherit;--_btn-border: transparent;--_btn-hover-bg: transparent;--_btn-hover-color: inherit;--_btn-hover-border: transparent;--_btn-active-bg: transparent;--_btn-active-color: inherit;--_btn-active-border: transparent;--_btn-shadow: none;--_btn-hover-shadow: none;--_btn-active-shadow: none;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);font-family:var(--font-primary);font-weight:var(--font-weight-medium);line-height:var(--leading-none);text-decoration:none;white-space:nowrap;cursor:pointer;user-select:none;border:var(--border-thin) solid var(--_btn-border);border-radius:var(--radius-md);background:var(--_btn-bg);color:var(--_btn-color);box-shadow:var(--_btn-shadow);position:relative;overflow:hidden;isolation:isolate;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 40%);pointer-events:none;z-index:1;border-radius:inherit}.btn__label,.btn__icon,.btn__trailing,.btn__spinner,.btn__badge{position:relative;z-index:2}.btn:active{transform:scale(.97);box-shadow:var(--_btn-active-shadow);background-color:var(--_btn-active-bg);color:var(--_btn-active-color);border-color:var(--_btn-active-border)}@media(hover:hover){.btn:hover{background-color:var(--_btn-hover-bg);color:var(--_btn-hover-color);border-color:var(--_btn-hover-border);box-shadow:var(--_btn-hover-shadow)}}.btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.btn--elevated{will-change:transform,box-shadow}@media(hover:hover){.btn--elevated:hover{transform:translateY(-1px)}}.btn--elevated:active{transform:translateY(0) scale(.97)}.btn--xs{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs);border-radius:var(--radius-sm);min-height:28px;gap:var(--spacing-1)}.btn--sm{padding:var(--spacing-1-5) var(--spacing-3);font-size:var(--text-sm);border-radius:var(--radius-sm);min-height:32px;gap:var(--spacing-1-5)}.btn--md{padding:var(--spacing-2-5) var(--spacing-5);font-size:var(--text-base);min-height:40px}.btn--lg{padding:var(--spacing-3-5) var(--spacing-7);font-size:var(--text-lg);min-height:48px}.btn--xl{padding:var(--spacing-4-5) var(--spacing-9);font-size:var(--text-xl);min-height:56px;border-radius:var(--radius-lg)}.btn--primary{--_btn-bg: var(--color-interactive-primary);--_btn-color: var(--color-text-inverse);--_btn-border: var(--color-interactive-primary);--_btn-hover-bg: var(--color-interactive-primary-hover);--_btn-hover-color: var(--color-text-inverse);--_btn-hover-border: var(--color-interactive-primary-hover);--_btn-active-bg: var(--color-interactive-primary-active);--_btn-active-color: var(--color-text-inverse);--_btn-active-border: var(--color-interactive-primary-active);--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--danger{--_btn-bg: var(--color-interactive-danger);--_btn-color: var(--color-text-inverse);--_btn-border: var(--color-interactive-danger);--_btn-hover-bg: var(--color-interactive-danger-hover);--_btn-hover-color: var(--color-text-inverse);--_btn-hover-border: var(--color-interactive-danger-hover);--_btn-active-bg: var(--color-interactive-danger-active);--_btn-active-color: var(--color-text-inverse);--_btn-active-border: var(--color-interactive-danger-active);--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--success{--_btn-bg: var(--color-feedback-success-icon);--_btn-color: var(--color-text-inverse);--_btn-border: var(--color-feedback-success-icon);--_btn-hover-bg: var(--color-success-600);--_btn-hover-color: var(--color-text-inverse);--_btn-hover-border: var(--color-success-600);--_btn-active-bg: var(--color-success-700);--_btn-active-color: var(--color-text-inverse);--_btn-active-border: var(--color-success-700);--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--warning{--_btn-bg: var(--color-feedback-warning-icon);--_btn-color: var(--color-black);--_btn-border: var(--color-feedback-warning-icon);--_btn-hover-bg: var(--color-warning-600);--_btn-hover-color: var(--color-black);--_btn-hover-border: var(--color-warning-600);--_btn-active-bg: var(--color-warning-700);--_btn-active-color: var(--color-black);--_btn-active-border: var(--color-warning-700);--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--info{--_btn-bg: var(--color-feedback-info-icon);--_btn-color: var(--color-text-inverse);--_btn-border: var(--color-feedback-info-icon);--_btn-hover-bg: var(--color-info-600);--_btn-hover-color: var(--color-text-inverse);--_btn-hover-border: var(--color-info-600);--_btn-active-bg: var(--color-info-700);--_btn-active-color: var(--color-text-inverse);--_btn-active-border: var(--color-info-700);--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--secondary{--_btn-bg: var(--color-interactive-secondary-hover);--_btn-color: var(--color-interactive-primary);--_btn-border: transparent;--_btn-hover-bg: var(--color-interactive-secondary-active);--_btn-hover-color: var(--color-interactive-primary);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-neutral-300);--_btn-active-color: var(--color-interactive-primary);--_btn-active-border: transparent}[data-theme=dark] .btn--secondary{--_btn-bg: var(--color-interactive-secondary-hover);--_btn-active-bg: var(--color-neutral-700)}.btn--outline{--_btn-bg: transparent;--_btn-color: var(--color-interactive-primary);--_btn-border: var(--color-interactive-primary);--_btn-hover-bg: var(--color-interactive-secondary-hover);--_btn-hover-color: var(--color-interactive-primary);--_btn-hover-border: var(--color-interactive-primary);--_btn-active-bg: var(--color-interactive-secondary-active);--_btn-active-color: var(--color-interactive-primary);--_btn-active-border: var(--color-interactive-primary)}.btn--ghost{--_btn-bg: transparent;--_btn-color: var(--color-text-primary);--_btn-border: transparent;--_btn-hover-bg: var(--color-interactive-ghost-hover);--_btn-hover-color: var(--color-interactive-primary);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-interactive-ghost-active);--_btn-active-color: var(--color-interactive-primary);--_btn-active-border: transparent}.btn--text{--_btn-bg: transparent;--_btn-color: var(--color-interactive-primary);--_btn-border: transparent;--_btn-hover-bg: var(--color-interactive-ghost-hover);--_btn-hover-color: var(--color-interactive-primary);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-interactive-ghost-active);--_btn-active-color: var(--color-interactive-primary);--_btn-active-border: transparent;padding-inline:var(--spacing-1);border-radius:var(--radius-sm)}.btn--link{--_btn-bg: transparent;--_btn-color: var(--color-text-link);--_btn-border: transparent;--_btn-hover-bg: transparent;--_btn-hover-color: var(--color-text-link-hover);--_btn-hover-border: transparent;--_btn-active-bg: transparent;--_btn-active-color: var(--color-text-link-active);--_btn-active-border: transparent;display:inline;padding:0;min-height:auto;height:auto;font-weight:var(--font-weight-regular);text-decoration:underline;text-underline-offset:2px;border-radius:0;gap:var(--spacing-1)}.btn--link:before{display:none}.btn--link:hover{text-decoration-thickness:2px}.btn--soft-primary{--_btn-bg: var(--color-primary-50);--_btn-color: var(--color-primary-700);--_btn-border: transparent;--_btn-hover-bg: var(--color-primary-100);--_btn-hover-color: var(--color-primary-700);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-primary-200);--_btn-active-color: var(--color-primary-700);--_btn-active-border: transparent}.btn--soft-danger{--_btn-bg: var(--color-feedback-error-bg);--_btn-color: var(--color-feedback-error-text);--_btn-border: transparent;--_btn-hover-bg: var(--color-error-100);--_btn-hover-color: var(--color-feedback-error-text);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-error-200);--_btn-active-color: var(--color-feedback-error-text);--_btn-active-border: transparent}.btn--soft-success{--_btn-bg: var(--color-feedback-success-bg);--_btn-color: var(--color-feedback-success-text);--_btn-border: transparent;--_btn-hover-bg: var(--color-success-100);--_btn-hover-color: var(--color-feedback-success-text);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-success-200);--_btn-active-color: var(--color-feedback-success-text);--_btn-active-border: transparent}.btn--soft-warning{--_btn-bg: var(--color-feedback-warning-bg);--_btn-color: var(--color-feedback-warning-text);--_btn-border: transparent;--_btn-hover-bg: var(--color-warning-100);--_btn-hover-color: var(--color-feedback-warning-text);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-warning-200);--_btn-active-color: var(--color-feedback-warning-text);--_btn-active-border: transparent}.btn--soft-info{--_btn-bg: var(--color-feedback-info-bg);--_btn-color: var(--color-feedback-info-text);--_btn-border: transparent;--_btn-hover-bg: var(--color-info-100);--_btn-hover-color: var(--color-feedback-info-text);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-info-200);--_btn-active-color: var(--color-feedback-info-text);--_btn-active-border: transparent}[data-theme=dark]{--_btn-soft-alpha: 20%;--_btn-soft-hover-alpha: 35%;--_btn-soft-active-alpha: 50%}[data-theme=dark] .btn--soft-primary{--_btn-bg: color-mix(in srgb, var(--color-primary-600) var(--_btn-soft-alpha), transparent);--_btn-color: var(--color-primary-200);--_btn-hover-bg: color-mix(in srgb, var(--color-primary-600) var(--_btn-soft-hover-alpha), transparent);--_btn-hover-color: var(--color-primary-200);--_btn-active-bg: color-mix(in srgb, var(--color-primary-600) var(--_btn-soft-active-alpha), transparent);--_btn-active-color: var(--color-primary-200)}[data-theme=dark] .btn--soft-danger{--_btn-bg: color-mix(in srgb, var(--color-error-600) var(--_btn-soft-alpha), transparent);--_btn-color: var(--color-error-200);--_btn-hover-bg: color-mix(in srgb, var(--color-error-600) var(--_btn-soft-hover-alpha), transparent);--_btn-hover-color: var(--color-error-200);--_btn-active-bg: color-mix(in srgb, var(--color-error-600) var(--_btn-soft-active-alpha), transparent);--_btn-active-color: var(--color-error-200)}[data-theme=dark] .btn--soft-success{--_btn-bg: color-mix(in srgb, var(--color-success-600) var(--_btn-soft-alpha), transparent);--_btn-color: var(--color-success-200);--_btn-hover-bg: color-mix(in srgb, var(--color-success-600) var(--_btn-soft-hover-alpha), transparent);--_btn-hover-color: var(--color-success-200);--_btn-active-bg: color-mix(in srgb, var(--color-success-600) var(--_btn-soft-active-alpha), transparent);--_btn-active-color: var(--color-success-200)}[data-theme=dark] .btn--soft-warning{--_btn-bg: color-mix(in srgb, var(--color-warning-600) var(--_btn-soft-alpha), transparent);--_btn-color: var(--color-warning-200);--_btn-hover-bg: color-mix(in srgb, var(--color-warning-600) var(--_btn-soft-hover-alpha), transparent);--_btn-hover-color: var(--color-warning-200);--_btn-active-bg: color-mix(in srgb, var(--color-warning-600) var(--_btn-soft-active-alpha), transparent);--_btn-active-color: var(--color-warning-200)}[data-theme=dark] .btn--soft-info{--_btn-bg: color-mix(in srgb, var(--color-info-600) var(--_btn-soft-alpha), transparent);--_btn-color: var(--color-info-200);--_btn-hover-bg: color-mix(in srgb, var(--color-info-600) var(--_btn-soft-hover-alpha), transparent);--_btn-hover-color: var(--color-info-200);--_btn-active-bg: color-mix(in srgb, var(--color-info-600) var(--_btn-soft-active-alpha), transparent);--_btn-active-color: var(--color-info-200)}.btn--glass{--_btn-bg: var(--color-surface-glass);--_btn-color: var(--color-text-primary);--_btn-border: var(--color-border-default);--_btn-hover-bg: var(--color-interactive-secondary-hover);--_btn-hover-color: var(--color-text-primary);--_btn-hover-border: var(--color-border-strong);--_btn-active-bg: var(--color-interactive-secondary-active);--_btn-active-color: var(--color-text-primary);--_btn-active-border: var(--color-border-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.btn--glass:before{display:none}.btn--gradient{--_btn-bg: var(--color-interactive-primary);--_btn-color: var(--color-text-inverse);--_btn-border: transparent;--_btn-hover-bg: var(--color-interactive-primary-hover);--_btn-hover-color: var(--color-text-inverse);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-interactive-primary-active);--_btn-active-color: var(--color-text-inverse);--_btn-active-border: transparent;--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--gradient:before{background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%)}.btn--gradient-secondary{--_btn-bg: var(--color-secondary-600);--_btn-color: var(--color-text-inverse);--_btn-border: transparent;--_btn-hover-bg: var(--color-secondary-700);--_btn-hover-color: var(--color-text-inverse);--_btn-hover-border: transparent;--_btn-active-bg: var(--color-secondary-800);--_btn-active-color: var(--color-text-inverse);--_btn-active-border: transparent;--_btn-shadow: var(--shadow-sm);--_btn-hover-shadow: var(--shadow-md);--_btn-active-shadow: var(--shadow-xs)}.btn--gradient-secondary:before{background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 50%)}.btn--pill{border-radius:var(--radius-full)}.btn--icon{padding:0;justify-content:center;flex-shrink:0;gap:0}.btn--icon.btn--xs{width:28px;height:28px}.btn--icon.btn--sm{width:32px;height:32px}.btn--icon.btn--md{width:40px;height:40px}.btn--icon.btn--lg{width:48px;height:48px}.btn--icon.btn--xl{width:56px;height:56px}.btn--icon.btn--pill{border-radius:var(--radius-full)}.btn--full{width:100%}.btn:disabled,.btn[aria-disabled=true],.btn--disabled{cursor:not-allowed;transform:none!important;opacity:var(--opacity-disabled);pointer-events:none;box-shadow:none!important}.btn:disabled:before,.btn[aria-disabled=true]:before{display:none}.btn--loading{pointer-events:none}.btn--loading .btn__label,.btn--loading .btn__icon,.btn--loading .btn__trailing{opacity:0}.btn__spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:4}.btn__spinner:after{content:"";width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn__icon,.btn__trailing{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25em;height:1.25em;padding:0 var(--spacing-1);font-size:.75em;font-weight:var(--font-weight-semibold);line-height:1;color:var(--color-text-inverse);background-color:var(--color-interactive-danger);border-radius:var(--radius-full);pointer-events:none}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md)}.btn-group .btn:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.btn-group .btn+.btn{border-left:none}.btn-group.btn-group--pill .btn:first-child{border-radius:var(--radius-full) 0 0 var(--radius-full)}.btn-group.btn-group--pill .btn:last-child{border-radius:0 var(--radius-full) var(--radius-full) 0}.btn--dropdown .btn__dropdown-chevron{display:inline-flex;align-items:center;margin-left:var(--spacing-1);transition:transform var(--duration-normal) var(--ease-out)}.btn--dropdown[aria-expanded=true] .btn__dropdown-chevron{transform:rotate(180deg)}[data-theme=high-contrast] .btn{outline-width:3px;outline-offset:3px;border-width:var(--border-thick)}[data-theme=high-contrast] .btn:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:3px}[data-theme=high-contrast] .btn--text,[data-theme=high-contrast] .btn--link{text-decoration:underline;text-decoration-thickness:2px}[data-theme=high-contrast] .btn:before{display:none}[data-theme=high-contrast] .btn--ghost{border-color:var(--color-border-default)}@media(prefers-reduced-motion:reduce){.btn{transition:none}.btn:active{transform:none}@media(hover:hover){.btn--elevated:hover{transform:none}}.btn__spinner:after{animation-duration:1.5s}.btn--glass{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(max-width:479px){.btn--xl{padding:var(--spacing-3-5) var(--spacing-7);font-size:var(--text-lg);min-height:48px}.btn--lg{padding:var(--spacing-2-5) var(--spacing-5);font-size:var(--text-base);min-height:40px}}@media print{.btn{box-shadow:none!important;transform:none!important}.btn:before{display:none}.btn--glass{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--color-white);color:var(--color-black);border-color:var(--color-black)}}
