.banner{display:flex;align-items:center;justify-content:center;gap:var(--space-banner-gap);width:100%;padding:var(--space-banner-padding-y) var(--space-banner-padding-x);min-height:auto;border-bottom:1px solid;font-family:var(--font-body-family);transition:all var(--foundation-duration-fast) var(--foundation-ease-out);margin:0;position:relative;z-index:40}.banner--sticky{position:-webkit-sticky;position:sticky;top:0;z-index:40}.banner--default{background-color:var(--surface-page);color:var(--text-default);border-bottom-color:var(--border-subtle)}.banner--info{background-color:var(--surface-info-subtle);color:var(--text-info);border-bottom-color:var(--border-info-subtle)}.banner--success{background-color:var(--surface-success-subtle);color:var(--text-success);border-bottom-color:var(--border-success-subtle)}.banner--warning{background-color:var(--surface-warning-subtle);color:var(--text-warning);border-bottom-color:var(--border-warning-subtle)}.banner--error{background-color:var(--surface-error-subtle);color:var(--text-error);border-bottom-color:var(--border-error-subtle)}.banner--accent{background-color:var(--surface-accent-subtle);color:var(--text-accent);border-bottom-color:var(--border-accent-subtle)}.banner--default.banner--muted{background-color:var(--surface-hover);color:var(--text-strong);border-bottom-color:var(--border-default)}.banner--info.banner--muted{background-color:var(--surface-info-muted);color:var(--text-info-strong);border-bottom-color:var(--border-info)}.banner--success.banner--muted{background-color:var(--surface-success-muted);color:var(--text-success-strong);border-bottom-color:var(--border-success)}.banner--warning.banner--muted{background-color:var(--surface-warning-muted);color:var(--text-warning-strong);border-bottom-color:var(--border-warning)}.banner--error.banner--muted{background-color:var(--surface-error-muted);color:var(--text-error-strong);border-bottom-color:var(--border-error)}.banner--accent.banner--muted{background-color:var(--surface-accent-muted);color:var(--text-accent-strong);border-bottom-color:var(--border-accent)}.banner--default.banner--vibrant{background-color:var(--surface-inverse);color:var(--text-inverse);border-bottom-color:var(--border-inverse)}.banner--info.banner--vibrant{background-color:var(--surface-info);color:var(--text-on-info);border-bottom-color:var(--border-info)}.banner--success.banner--vibrant{background-color:var(--surface-success);color:var(--text-on-success);border-bottom-color:var(--border-success)}.banner--warning.banner--vibrant{background-color:var(--surface-warning);color:var(--text-on-warning);border-bottom-color:var(--border-warning)}.banner--error.banner--vibrant{background-color:var(--surface-error);color:var(--text-on-error);border-bottom-color:var(--border-error)}.banner--accent.banner--vibrant{background-color:var(--surface-accent);color:var(--text-on-accent);border-bottom-color:var(--border-accent)}.banner__content{gap:var(--space-banner-gap);flex:1 1}.banner__content,.banner__icon{display:flex;align-items:center;justify-content:center}.banner__icon{flex-shrink:0;width:var(--size-banner-icon);height:var(--size-banner-icon)}.banner--default .banner__icon{color:var(--icon-default)}.banner--info .banner__icon{color:var(--icon-info)}.banner--success .banner__icon{color:var(--icon-success)}.banner--warning .banner__icon{color:var(--icon-warning)}.banner--error .banner__icon{color:var(--icon-error)}.banner--accent .banner__icon{color:var(--icon-accent)}.banner--muted .banner__icon,.banner--vibrant .banner__icon{color:currentColor}.banner__message{margin:0;line-height:var(--foundation-leading-normal);font-size:.9375rem;letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.banner__actions{display:flex;align-items:center;gap:var(--space-banner-gap);margin-left:auto;flex-shrink:0}.banner__action{flex-shrink:0;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;padding:8px 16px;min-height:auto;height:auto;white-space:nowrap}.banner__waitlist{display:flex;align-items:center;gap:var(--foundation-space-2);margin-left:var(--foundation-space-4);flex-wrap:wrap;justify-content:center}.banner__waitlist-input{width:11rem;min-width:10rem}.banner__waitlist-button{white-space:nowrap}.banner__success-message{margin-left:var(--foundation-space-4);text-align:center}@media (max-width:768px){.banner{flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--foundation-space-2);padding:var(--foundation-space-3) var(--foundation-space-4);min-height:auto}.banner__content{flex:1 1 auto;min-width:0;justify-content:center}.banner__message{white-space:normal;overflow:visible;text-overflow:clip;font-size:.875rem}.banner__actions{margin-left:0;flex-shrink:0;flex-wrap:wrap;justify-content:center}.banner__action{padding:8px 16px;font-size:.75rem;min-width:auto}.banner__waitlist{margin-left:0;width:100%;justify-content:center}.banner__waitlist-input{flex:1 1;min-width:10rem}.banner__success-message{margin-left:0;width:100%}}@media (max-width:640px){.banner{flex-direction:column;padding:var(--foundation-space-3);gap:var(--foundation-space-3)}.banner__content{width:100%;flex-direction:column}.banner__message{font-size:.875rem;width:100%}.banner__icon{width:20px;height:20px}.banner__actions{width:100%;justify-content:center}.banner__action{flex:1 1;min-width:100px}.banner__waitlist{flex-direction:column;width:100%;gap:var(--foundation-space-2)}.banner__waitlist-button,.banner__waitlist-input{width:100%}}@media (prefers-reduced-motion:reduce){.banner{transition:none}}@media (prefers-contrast:more){.banner{outline:1px solid currentColor;outline-offset:-1px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--foundation-space-2);padding:var(--foundation-space-2) var(--foundation-space-4);border:1px solid transparent;border-radius:var(--radius-button);cursor:pointer;transition:all var(--foundation-duration-fast) var(--foundation-easing-ease-out);outline:none;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.btn .btn-text,.btn [class*=text-label-]{color:inherit!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn .icon,.btn [class*=icon-],.btn svg{color:inherit}.btn-sm{padding:var(--foundation-space-1) var(--foundation-space-2);height:var(--control-height-sm)}.btn-md{padding:var(--foundation-space-2) var(--foundation-space-4);height:var(--control-height-md)}.btn-lg{padding:var(--foundation-space-3) var(--foundation-space-4);height:var(--control-height-lg)}.btn-xl{padding:var(--foundation-space-4) var(--foundation-space-6);height:var(--control-height-xl)}.btn-full-width{width:100%}.btn-brand{background-color:var(--surface-button-brand);color:var(--text-button-brand);border-color:var(--border-button-brand)}.btn-brand:hover:not(:disabled){background-color:var(--surface-button-brand-hover);border-color:var(--border-button-brand-hover)}.btn-brand:active:not(:disabled){background-color:var(--surface-button-brand-active)}.btn-brand:focus-visible{outline:2px solid var(--border-button-brand-focus);outline-offset:2px}.btn-brand:disabled{background-color:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-primary{background-color:var(--interactive-primary);color:var(--text-button-primary);border-color:var(--border-button-primary)}.btn-primary:hover:not(:disabled){background-color:var(--surface-button-primary-hover);border-color:var(--interactive-primary-active)}.btn-primary:active:not(:disabled){background-color:var(--surface-button-primary-active)}.btn-primary:focus-visible{outline:2px solid var(--border-button-primary-focus);outline-offset:2px}.btn-primary:disabled{background-color:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-secondary{background-color:var(--surface-button-secondary);color:var(--text-button-secondary);border-color:var(--border-button-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-button-secondary-hover);border-color:var(--border-button-secondary-hover)}.btn-secondary:active:not(:disabled){background-color:var(--surface-button-secondary-active)}.btn-secondary:focus-visible{outline:2px solid var(--border-button-secondary-focus);outline-offset:2px}.btn-secondary:disabled{background-color:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-accent{background-color:var(--surface-button-accent);color:var(--text-button-accent);border-color:var(--border-button-accent)}.btn-accent:hover:not(:disabled){background-color:var(--surface-button-accent-hover)}.btn-accent:active:not(:disabled){background-color:var(--surface-button-accent-active)}.btn-accent:focus-visible{outline:2px solid var(--border-button-accent-focus);outline-offset:2px}.btn-accent:disabled{background-color:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-ghost{background-color:transparent;color:var(--text-default);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--surface-elevated)}.btn-ghost:focus-visible{background-color:var(--surface-sunken)}.btn-ghost:disabled{background-color:transparent;border-color:transparent;color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-outline{background-color:transparent;color:var(--interactive-primary);border:1px solid var(--interactive-primary)}.btn-outline:hover:not(:disabled){background-color:var(--surface-elevated);border-color:var(--interactive-primary)}.btn-outline:active:not(:disabled){background-color:var(--surface-sunken)}.btn-outline:focus-visible{outline:2px solid var(--interactive-primary);outline-offset:2px}.btn-outline:disabled{background-color:transparent;border-color:var(--border-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-raised{background-color:var(--surface-raised);color:var(--text-default);border-color:transparent}.btn-raised:hover:not(:disabled){background-color:var(--surface-elevated)}.btn-raised:active:not(:disabled){background-color:var(--surface-sunken)}.btn-raised:focus-visible{outline:2px solid var(--interactive-primary);outline-offset:2px}.btn-raised:disabled{background-color:var(--surface-raised);border-color:transparent;color:var(--text-disabled);cursor:not-allowed;opacity:1}.btn-secondary-glass{background-color:var(--surface-button-secondary-glass);color:var(--text-button-secondary-glass);border-color:var(--border-button-secondary-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn-secondary-glass:hover:not(:disabled){background-color:var(--surface-button-secondary-glass-hover);border-color:var(--border-button-secondary-glass-hover)}.btn-secondary-glass:active:not(:disabled){background-color:var(--surface-button-secondary-glass-active);border-color:var(--border-button-secondary-glass-active)}.btn-secondary-glass:focus-visible{outline:2px solid var(--border-button-secondary-glass-focus);outline-offset:2px}.btn-secondary-glass:disabled{background-color:color-mix(in srgb,var(--neutral-1400) 5%,transparent);border-color:var(--border-button-secondary-glass-disabled);color:var(--text-button-secondary-glass-disabled);cursor:not-allowed;opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none}.btn-ghost-glass{background-color:var(--surface-button-ghost-glass);color:var(--text-button-ghost-glass);border-color:var(--border-button-ghost-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn-ghost-glass:hover:not(:disabled){background-color:var(--surface-button-ghost-glass-hover);border-color:var(--border-button-ghost-glass-hover)}.btn-ghost-glass:active:not(:disabled){background-color:var(--surface-button-ghost-glass-active);border-color:var(--border-button-ghost-glass-active)}.btn-ghost-glass:focus-visible{outline:2px solid var(--border-button-ghost-glass-focus);outline-offset:2px}.btn-ghost-glass:disabled{background-color:transparent;border-color:transparent;color:var(--text-button-ghost-glass-disabled);cursor:not-allowed;opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none}.btn-accent-glass{background-color:var(--surface-button-accent-glass);color:var(--text-button-accent-glass);border-color:var(--border-button-accent-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn-accent-glass:hover:not(:disabled){background-color:var(--surface-button-accent-glass-hover);border-color:var(--border-button-accent-glass-hover)}.btn-accent-glass:active:not(:disabled){background-color:var(--surface-button-accent-glass-active);border-color:var(--border-button-accent-glass-active)}.btn-accent-glass:focus-visible{outline:2px solid var(--border-button-accent-glass-focus);outline-offset:2px}.btn-accent-glass:disabled{background-color:color-mix(in srgb,var(--interactive-accent) 5%,transparent);border-color:var(--border-button-accent-glass-disabled);color:var(--text-button-accent-glass-disabled);cursor:not-allowed;opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none}.btn-destructive{background-color:var(--surface-button-destructive);color:var(--always-white);border-color:var(--border-button-destructive)}.btn-destructive:hover:not(:disabled){background-color:var(--surface-button-destructive-hover)}.btn-destructive:disabled{background-color:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:1}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.btn-spinner{display:flex;align-items:center;justify-content:center;margin-right:.25rem}.clean-auth-form .btn-lg,.form-row .btn-lg{min-height:48px}.clean-auth-form .btn-md,.form-row .btn-md{min-height:40px}.clean-auth-form .btn-sm,.form-row .btn-sm{min-height:32px}.btn:not(:disabled):not(.pointer-events-none){transition:background-color var(--foundation-duration-fast) var(--foundation-easing-ease-out),border-color var(--foundation-duration-fast) var(--foundation-easing-ease-out),color var(--foundation-duration-fast) var(--foundation-easing-ease-out),transform .12s var(--foundation-easing-standard),box-shadow var(--foundation-duration-fast) var(--foundation-easing-ease-out)}.btn:not(:disabled):hover{transform:none}.btn:not(:disabled):active,.btn:not(:disabled):hover:active{transform:scale(.99)}.btn.pointer-events-none,.btn:disabled{transform:none!important}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0;width:auto;height:auto;padding:0;margin:0;border:1px solid transparent;border-radius:var(--radius-button);background:transparent;color:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--foundation-duration-fast) var(--foundation-easing-ease-out),border-color var(--foundation-duration-fast) var(--foundation-easing-ease-out),transform .12s var(--foundation-easing-standard),box-shadow var(--foundation-duration-fast) var(--foundation-easing-ease-out)}.icon-btn--xxs{width:20px;height:20px;padding:2px}.icon-btn--xs,.icon-btn--xxs{border-radius:var(--radius-xs)}.icon-btn--xs{width:24px;height:24px;padding:4px}.icon-btn--sm{width:var(--control-height-sm);height:var(--control-height-sm);padding:6px}.icon-btn--md{width:var(--control-height-md);height:var(--control-height-md);padding:8px}.icon-btn--lg{width:var(--control-height-lg);height:var(--control-height-lg);padding:12px}.icon-btn--xl{width:var(--control-height-xl);height:var(--control-height-xl);padding:16px}.icon-btn__icon{display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.icon-btn .icon{margin:0!important;transform:none!important;vertical-align:middle!important}.icon-btn--primary{background-color:var(--interactive-primary);border-color:var(--border-button-primary);color:var(--text-button-primary)}.icon-btn--primary:hover:not(:disabled){background-color:var(--surface-button-primary-hover);border-color:var(--interactive-primary-active)}.icon-btn--primary:active:not(:disabled){background-color:var(--surface-button-primary-active)}.icon-btn--secondary{background-color:var(--surface-button-secondary);border-color:var(--border-button-secondary);color:var(--text-button-secondary)}.icon-btn--secondary:hover:not(:disabled){background-color:var(--surface-button-secondary-hover);border-color:var(--border-button-secondary-hover)}.icon-btn--secondary:active:not(:disabled){background-color:var(--surface-button-secondary-active)}.icon-btn--accent{background-color:var(--surface-button-accent);border-color:var(--border-button-accent);color:var(--always-white)}.icon-btn--accent:hover:not(:disabled){background-color:var(--surface-button-accent-hover)}.icon-btn--accent:active:not(:disabled){background-color:var(--surface-button-accent-active)}.icon-btn--ghost{background-color:transparent;border-color:transparent;color:var(--text-button-secondary)}.icon-btn--ghost:hover:not(:disabled){background-color:var(--surface-raised)}.icon-btn--ghost:active:not(:disabled){background-color:var(--surface-sunken)}.icon-btn--destructive{background-color:var(--surface-button-destructive);border-color:var(--border-button-destructive);color:var(--always-white)}.icon-btn--destructive:hover:not(:disabled){background-color:var(--surface-button-destructive-hover)}.icon-btn--destructive:active:not(:disabled){background-color:var(--interactive-destructive-active)}.icon-btn--secondary-glass{background-color:var(--surface-button-secondary-glass);border-color:var(--border-button-secondary-glass);color:var(--text-button-secondary-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.icon-btn--secondary-glass:hover:not(:disabled){background-color:var(--surface-button-secondary-glass-hover);border-color:var(--border-button-secondary-glass-hover)}.icon-btn--secondary-glass:active:not(:disabled){background-color:var(--surface-button-secondary-glass-active);border-color:var(--border-button-secondary-glass-active)}.icon-btn--ghost-glass{background-color:var(--surface-button-ghost-glass);border-color:var(--border-button-ghost-glass);color:var(--text-button-ghost-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.icon-btn--ghost-glass:hover:not(:disabled){background-color:var(--surface-button-ghost-glass-hover);border-color:var(--border-button-ghost-glass-hover)}.icon-btn--ghost-glass:active:not(:disabled){background-color:var(--surface-button-ghost-glass-active);border-color:var(--border-button-ghost-glass-active)}.icon-btn--raised{background-color:var(--surface-raised);border-color:transparent;color:var(--text-button-secondary)}.icon-btn--raised:hover:not(:disabled){background-color:var(--surface-elevated)}.icon-btn--raised.icon-btn--selected,.icon-btn--raised:active:not(:disabled){background-color:var(--surface-sunken)}.icon-btn--raised.icon-btn--selected{color:var(--text-primary)}.icon-btn--accent-glass{background-color:var(--surface-button-accent-glass);border-color:var(--border-button-accent-glass);color:var(--text-button-accent-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.icon-btn--accent-glass:hover:not(:disabled){background-color:var(--surface-button-accent-glass-hover);border-color:var(--border-button-accent-glass-hover)}.icon-btn--accent-glass:active:not(:disabled){background-color:var(--surface-button-accent-glass-active);border-color:var(--border-button-accent-glass-active)}.icon-btn:not(:disabled):hover{transform:none}.icon-btn:not(:disabled):active,.icon-btn:not(:disabled):hover:active{transform:scale(.97)}.icon-btn--selected{cursor:default}.icon-btn--selected,.icon-btn--selected:hover,.icon-btn--selected:hover:not(:disabled){background-color:var(--surface-accent-muted);color:var(--text-accent);transform:none!important}.icon-btn--selected:active,.icon-btn--selected:active:not(:disabled){background-color:var(--surface-accent-muted);transform:none!important}.icon-btn--active{cursor:default}.icon-btn--active,.icon-btn--active:hover,.icon-btn--active:hover:not(:disabled){background-color:var(--surface-accent-muted);color:var(--text-accent);transform:none!important}.icon-btn--active:active,.icon-btn--active:active:not(:disabled){background-color:var(--surface-accent-muted);transform:none!important}.icon-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.icon-btn:focus-visible{outline:2px solid var(--border-button-secondary-focus);outline-offset:2px}.icon-btn__spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.icon-btn--loading .icon-btn__icon{opacity:0}