.app-button[data-v-29ed48b3]{align-items:center;border:1.5px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);justify-content:center;letter-spacing:.02em;line-height:1;padding:9px var(--space-4);transition:transform .1s ease,background-color .15s ease,border-color .15s ease,opacity .15s ease}.app-button[data-v-29ed48b3]:active:not(:disabled){transform:translateY(1px)}.app-button[data-v-29ed48b3]:disabled{cursor:not-allowed;opacity:.55}.app-button--primary[data-v-29ed48b3]{background:var(--color-primary);border-color:var(--color-primary);color:#fdf8ee}.app-button--primary[data-v-29ed48b3]:hover:not(:disabled){background:var(--color-primary-strong);border-color:var(--color-primary-strong)}.app-button--secondary[data-v-29ed48b3]{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.app-button--secondary[data-v-29ed48b3]:hover:not(:disabled){background:var(--color-surface-muted)}.app-button--ghost[data-v-29ed48b3]{background:transparent;border-color:transparent;color:var(--color-text-muted)}.app-button--ghost[data-v-29ed48b3]:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.app-button__spinner[data-v-29ed48b3]{animation:spin-29ed48b3 .6s linear infinite;border:2px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:currentcolor;height:13px;width:13px}@keyframes spin-29ed48b3{to{transform:rotate(1turn)}}
