.spinner{width:var(--size-icon-md);height:var(--size-icon-md);flex:none}.spinner--neutral{color:var(--icon-primary)}.spinner--brand{color:var(--icon-brand)}.spinner--on-brand{color:var(--icon-on-brand)}.spinner--inverse{color:var(--icon-inverse)}.spinner__track{stroke:currentColor;opacity:.25}.spinner__arc{stroke:currentColor;transform-origin:50%;animation:spinner-rotate var(--duration-slower) var(--easing-linear) infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner__arc{animation:spinner-pulse var(--duration-slower) ease-in-out infinite alternate}@keyframes spinner-pulse{0%{opacity:.4}to{opacity:1}}}.btn{width:100%;min-height:var(--size-control-lg);justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-lg);border:var(--border-width-strong) solid transparent;border-radius:var(--radius-lg);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--duration-fast) var(--easing-standard), background-color var(--duration-fast) var(--easing-standard);background:0 0;display:inline-flex}.btn:active:not(:disabled):not([aria-busy]){transform:scale(.97)}.btn[aria-busy]{cursor:default}.btn:disabled{cursor:not-allowed}.btn--primary{background:var(--bg-brand);color:var(--text-on-brand);border-color:var(--bg-brand);box-shadow:var(--elev-boton)}.btn--primary:active:not(:disabled){background:var(--bg-brand-pressed);border-color:var(--bg-brand-pressed)}.btn--primary:disabled{background:var(--bg-disabled);border-color:var(--bg-disabled);color:var(--text-disabled);box-shadow:none}.btn--secondary{background:var(--bg-surface);color:var(--text-brand);border-color:var(--border-brand)}.btn--secondary:active:not(:disabled){background:var(--bg-brand-subtle)}.btn--secondary:disabled{color:var(--text-disabled);border-color:var(--border-default)}.btn--text{color:var(--text-brand)}.btn--text:active:not(:disabled){background:var(--bg-brand-subtle)}.btn--text:disabled{color:var(--text-disabled)}.btn--on-dark{background:var(--bg-accent);color:var(--text-on-accent);border-color:var(--bg-accent)}.btn--on-dark:active:not(:disabled){background:var(--bg-accent-pressed);border-color:var(--bg-accent-pressed)}.btn--on-dark:disabled{background:var(--bg-disabled);border-color:var(--bg-disabled);color:var(--text-disabled)}.btn--secondary-on-dark{color:var(--text-on-brand);border-color:var(--border-on-brand)}.btn--secondary-on-dark:active:not(:disabled){background:var(--bg-brand-pressed)}.btn--secondary-on-dark:disabled{opacity:.5}.btn--shine{position:relative;overflow:hidden}.btn--shine:after{content:"";width:40%;animation:btn-shine 3.6s var(--easing-standard) infinite;pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff47,#0000);position:absolute;inset:0 auto 0 0;transform:translate(-120%)}@keyframes btn-shine{0%,70%{transform:translate(-120%)}to{transform:translate(320%)}}@media (prefers-reduced-motion:reduce){.btn--shine:after{display:none}}@media (hover:hover){.btn--primary:hover:not(:disabled){background:var(--bg-brand-hover);border-color:var(--bg-brand-hover)}}@media (prefers-reduced-motion:reduce){.btn:active:not(:disabled):not([aria-busy]){transform:none}}
