.toast-stack{right:calc(var(--space-4) + env(safe-area-inset-right,0px));bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));gap:var(--space-2);z-index:var(--z-toast);width:min(380px, calc(100vw - 2 * var(--space-4)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast-stack__region{gap:var(--space-2);flex-direction:column;display:flex}.toast-stack__region:empty{display:none}.toast{--toast-color:var(--color-info);align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);background:var(--surface-elevated);border:1px solid var(--border-hover);border-left:3px solid var(--toast-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);pointer-events:auto;animation:toast-in var(--transition-slow) var(--reward-ease) forwards;display:flex}.toast--success{--toast-color:var(--color-success)}.toast--error{--toast-color:var(--color-error)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.toast__icon{color:var(--toast-color);flex-shrink:0;margin-top:3px;line-height:0}.toast__text{overflow-wrap:anywhere;flex-direction:column;flex:1;align-self:center;gap:2px;min-width:0;display:flex}.toast__message{font-size:var(--text-sm);color:var(--text-primary)}.toast__detail{font-size:var(--text-xs);color:var(--text-secondary)}.toast__action{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-brand);min-height:32px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast);flex-shrink:0;align-self:center}.toast__close{color:var(--text-muted);border-radius:var(--radius-sm);width:32px;height:32px;transition:color var(--transition-fast), background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (hover:hover){.toast__close:hover{color:var(--text-primary);background:var(--surface)}.toast__action:hover{background:var(--color-brand-muted)}}.toast__close:active,.toast__action:active{background:var(--surface-hover)}.toast__close:focus-visible,.toast__action:focus-visible{outline:2px solid var(--color-brand);outline-offset:1px}@media (pointer:coarse){.toast__close{width:var(--tap-min);height:var(--tap-min);margin:calc(var(--space-2) * -1) 0}.toast__action{min-height:var(--tap-min);margin:calc(var(--space-2) * -1) 0}}@media (width<=767px){.toast-stack{left:calc(var(--space-3) + env(safe-area-inset-left,0px));right:calc(var(--space-3) + env(safe-area-inset-right,0px));bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));width:auto}body:has(.bottom-nav) .toast-stack{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + var(--space-3))}}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--font-medium);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);-webkit-tap-highlight-color:transparent;border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--accent-action-bg);border-color:var(--accent-action-bg);color:var(--accent-action-fg)}.btn--secondary{border-color:var(--border-strong);color:var(--text-primary);background:0 0}.btn--ghost{color:var(--text-secondary);background:0 0}.btn--danger{border-color:var(--color-error);color:var(--color-error);background:0 0}.btn--link{color:var(--color-brand);background:0 0;border:none;min-height:0;padding:0}@media (hover:hover){.btn--primary:hover:not(:disabled){background:var(--accent-action-bg-hover);border-color:var(--accent-action-bg-hover)}.btn--secondary:hover:not(:disabled){background:var(--surface);border-color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface);color:var(--text-primary)}.btn--danger:hover:not(:disabled){background:var(--color-error);color:var(--background)}.btn--link:hover:not(:disabled){color:var(--color-brand-hover)}}.btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.btn--small{padding:0 var(--space-3);font-size:var(--text-xs);min-height:34px}.btn--medium{padding:0 var(--space-4);font-size:var(--text-sm);min-height:40px}.btn--large{padding:0 var(--space-6);font-size:var(--text-base);min-height:48px}@media (pointer:coarse){.btn--small,.btn--medium{min-height:var(--tap-min)}}.btn--primary:active:not(:disabled),.btn--secondary:active:not(:disabled),.btn--ghost:active:not(:disabled),.btn--danger:active:not(:disabled){transform:translateY(1px)}.btn--full{width:100%}.btn__icon{line-height:0;display:inline-flex}.btn__icon svg{width:1.1em;height:1.1em}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface) 0%, var(--surface-elevated) 50%, var(--surface) 100%);background-size:200% 100%;width:100%;height:.9em;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton--card{border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.skeleton-lines{gap:var(--space-2);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
