.af-spinner{color:currentColor;width:1.25rem;height:1.25rem;animation:.8s linear infinite af-spin;display:inline-flex}.af-spinner svg{width:100%;height:100%}.af-spinner__track{stroke:currentColor;stroke-width:3px;opacity:.2}.af-spinner__arc{stroke:currentColor;stroke-width:3px;stroke-linecap:round}@keyframes af-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.af-spinner{animation-duration:2.4s!important;animation-iteration-count:infinite!important}}
.af-button{--btn-bg:var(--af-color-bg-surface);--btn-bg-hover:var(--af-color-bg-surface);--btn-bg-pressed:var(--af-color-bg-surface);--btn-fg:var(--af-color-text);--btn-shadow:var(--af-shadow-raised-sm);--btn-shadow-hover:var(--af-shadow-raised);--btn-shadow-pressed:var(--af-shadow-pressed);justify-content:center;align-items:center;gap:var(--af-space-2);min-height:var(--af-control-md);min-width:var(--af-target-min);padding:0 var(--af-space-5);border-radius:var(--af-radius-md);background:var(--btn-bg);box-shadow:var(--btn-shadow);color:var(--btn-fg);font:inherit;font-family:var(--af-font-display);font-weight:var(--af-weight-semibold);font-size:var(--af-text-sm);letter-spacing:var(--af-tracking-tight);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background-color var(--af-duration-fast) var(--af-ease-out), box-shadow var(--af-duration-base) var(--af-ease-out), transform var(--af-duration-fast) var(--af-ease-out);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.af-button--lg{min-height:var(--af-control-lg);padding:0 var(--af-space-6);font-size:var(--af-text-md)}.af-button--full{width:100%;display:flex}.af-button[data-hovered]{background:var(--btn-bg-hover);box-shadow:var(--btn-shadow-hover)}.af-button[data-pressed]{background:var(--btn-bg-pressed);box-shadow:var(--btn-shadow-pressed);transform:translateY(1px)}.af-button[data-focus-visible]{outline:var(--af-focus-width) solid var(--af-color-focus-ring);outline-offset:var(--af-focus-offset)}.af-button[data-disabled]:not([data-pending]){background:var(--af-color-bg-disabled);box-shadow:none;color:var(--af-color-text-disabled);cursor:not-allowed;transform:none}.af-button[data-pending]{cursor:progress}.af-button__label{align-items:center;display:inline-flex}.af-button--primary{--btn-bg:var(--af-color-primary-solid);--btn-bg-hover:var(--af-color-primary-solid-hover);--btn-bg-pressed:var(--af-color-primary-solid-pressed);--btn-fg:var(--af-color-on-primary);--btn-shadow:var(--af-shadow-accent);--btn-shadow-hover:var(--af-shadow-accent)}.af-button--accent{--btn-bg:var(--af-color-accent-solid);--btn-bg-hover:var(--af-color-accent-solid-hover);--btn-bg-pressed:var(--af-color-accent-solid-pressed);--btn-fg:var(--af-color-on-accent)}.af-button--danger{--btn-bg:var(--af-color-danger-solid);--btn-bg-hover:var(--af-color-danger-solid);--btn-bg-pressed:var(--af-color-danger-solid);--btn-fg:var(--af-color-on-danger)}.af-button--ghost{--btn-bg:transparent;--btn-bg-hover:var(--af-color-bg-hover);--btn-bg-pressed:var(--af-color-bg-pressed);--btn-fg:var(--af-color-primary-text);--btn-shadow:none;--btn-shadow-hover:none;--btn-shadow-pressed:none}.af-button__spinner{width:1.125rem;height:1.125rem}@media (forced-colors:active){.af-button{border-color:buttontext}}
