.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-full);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);letter-spacing:.01em;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-spring), border-color var(--duration-fast) var(--ease-standard);border:1px solid #0000;display:inline-flex;position:relative}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:not(:disabled):active{transform:scale(.97)}.btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--font-size-xs)}.btn--md{height:40px;padding:0 var(--space-5);font-size:var(--font-size-sm)}.btn--lg{height:48px;padding:0 var(--space-6);font-size:var(--font-size-base)}.btn--block{width:100%}.btn--primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-glow-soft)}.btn--primary:not(:disabled):hover{background:var(--color-primary-hover);box-shadow:var(--shadow-glow-primary)}.btn--primary:not(:disabled):active{background:var(--color-primary-active)}.btn--tonal{background:var(--color-primary-container);color:var(--color-on-primary-container)}.btn--tonal:not(:disabled):hover{background:var(--color-primary-fixed);box-shadow:var(--shadow-1)}.btn--ghost{color:var(--color-primary);background:0 0}.btn--ghost:not(:disabled):hover{background:var(--color-primary-container)}.btn--loading .btn__label,.btn--loading .btn__icon{visibility:hidden}.btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.72s linear infinite btn-spin;position:absolute}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn__icon{justify-content:center;align-items:center;display:inline-flex}.btn__label{align-items:center;display:inline-flex}
