:root{--auth-space-sm:var(--space-2);--auth-space-md:var(--space-4);--auth-space-lg:var(--space-6);--auth-space-xl:var(--space-8);--auth-accent:var(--app-food-accent);--auth-error:var(--app-error)}.auth-page{background:var(--app-bg);min-height:100vh;color:var(--app-text-primary)}.auth-container{grid-template-columns:1fr;min-height:100vh;display:grid}@media (min-width:1024px){.auth-container{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}}.auth-form-zone{justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-8)var(--space-4);flex-direction:column;display:flex}.auth-home-link{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);color:var(--app-text-primary);font-weight:600;text-decoration:none;display:inline-flex}.auth-home-link .auth-brand-mark{background:var(--app-bg-ink);width:30px;height:30px;color:var(--app-accent-text)}@media (min-width:1024px){.auth-home-link{display:none}}.auth-card{background:var(--app-bg-elevated);border:1px solid var(--app-border);border-radius:var(--radius-2xl);width:100%;max-width:440px;box-shadow:var(--shadow-md);padding:var(--space-10)var(--space-8)}@media (max-width:480px){.auth-card{padding:var(--space-8)var(--space-5)}}.auth-card-header{margin-bottom:var(--space-8)}.auth-card-title{font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:-.02em;font-weight:600;line-height:1.15}.auth-card-subtitle{margin-top:var(--space-2);color:var(--app-text-muted)}.auth-error-alert{gap:var(--space-3);padding:var(--space-3)var(--space-4);margin-bottom:var(--space-6);background:var(--app-error-bg);border:1px solid var(--app-error-border);border-radius:var(--radius-lg);color:var(--app-error);font-size:var(--text-sm);align-items:flex-start;display:flex}.auth-error-alert-icon{flex-shrink:0;margin-top:1px}.auth-form{gap:var(--space-5);flex-direction:column;display:flex}.auth-input-group{gap:var(--space-2);flex-direction:column;display:flex}.auth-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--app-text-primary)}.auth-input-wrapper{align-items:center;display:flex;position:relative}.auth-input-icon{left:var(--space-4);color:var(--app-text-muted);pointer-events:none;display:inline-flex;position:absolute}.auth-input{width:100%;height:48px;padding:0 var(--space-4)0 calc(var(--space-4) + 26px);font:inherit;font-size:var(--text-base);color:var(--app-text-primary);background:var(--app-bg-elevated);border:1px solid var(--app-border-strong);border-radius:var(--radius-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-input::placeholder{color:var(--app-text-disabled)}.auth-input:hover{border-color:var(--app-text-muted)}.auth-input:focus{border-color:var(--app-text-primary);outline:none;box-shadow:0 0 0 3px #d7261e2e}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-input--with-action{padding-right:calc(var(--space-4) + 30px)}.auth-input--error{border-color:var(--app-error)}.auth-input--success{border-color:var(--app-success)}.auth-input-action{right:var(--space-2);border-radius:var(--radius-full);width:36px;height:36px;color:var(--app-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:absolute}.auth-input-action:hover{background:var(--app-bg-secondary);color:var(--app-text-primary)}.auth-input-message{font-size:var(--text-xs)}.auth-input-message--error{color:var(--app-error)}.auth-input-message--success{color:var(--app-success)}.auth-link{color:var(--app-text-secondary);font-size:var(--text-sm);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--app-border-strong);text-decoration-color:var(--app-border-strong)}.auth-link:hover{color:var(--app-text-primary);text-decoration-color:currentColor}.auth-forgot-link{margin-top:calc(-1*var(--space-2));align-self:flex-end}.auth-button{justify-content:center;align-items:center;gap:var(--space-2);width:100%;height:52px;padding:0 var(--space-6);font:inherit;font-size:var(--text-base);font-weight:var(--font-semibold);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.auth-button:active:not(:disabled){transform:scale(.98)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-button--primary{background:var(--app-bg-ink);color:var(--app-accent-text)}.auth-button--primary:hover:not(:disabled){background:var(--app-accent-hover)}.auth-button--secondary{background:var(--app-bg-elevated);color:var(--app-text-primary);border-color:var(--app-border-strong)}.auth-button--secondary:hover:not(:disabled){border-color:var(--app-text-primary)}.auth-button--success{background:var(--app-success);color:#fff}.auth-button-spinner{border-radius:var(--radius-full);border:2px solid #fffdf859;border-top-color:currentColor;width:18px;height:18px;animation:.8s linear infinite app-spin}.auth-footer{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--app-border);text-align:center}.auth-footer-text{font-size:var(--text-sm);color:var(--app-text-muted)}.auth-footer-link{margin-left:var(--space-1);color:var(--app-text-primary);font-weight:var(--font-semibold);text-underline-offset:3px;text-decoration:underline}.auth-password-rules{gap:var(--space-1)var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.auth-password-rule{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--app-text-muted);display:flex}.auth-password-rule--met{color:var(--app-success)}.auth-password-rule-icon{flex-shrink:0}.auth-role-selector{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.auth-role-option{align-items:flex-start;gap:var(--space-1);padding:var(--space-4);text-align:left;font:inherit;color:var(--app-text-primary);background:var(--app-bg-elevated);border:1px solid var(--app-border-strong);border-radius:var(--radius-xl);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);flex-direction:column;display:flex;position:relative}.auth-role-option:hover{border-color:var(--app-text-muted)}.auth-role-option--selected{border-color:var(--app-text-primary);box-shadow:inset 0 0 0 1px var(--app-text-primary);background:var(--app-bg)}.auth-role-option--selected:after{content:"";top:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);background:var(--app-food-accent);width:10px;height:10px;position:absolute}.auth-role-icon{width:24px;height:24px;margin-bottom:var(--space-2)}.auth-role-label{font-weight:var(--font-semibold)}.auth-role-description{font-size:var(--text-xs);color:var(--app-text-muted)}.auth-brand{display:none}@media (min-width:1024px){.auth-brand{justify-content:space-between;gap:var(--space-10);padding:var(--space-12);background:var(--app-bg-ink);color:var(--app-accent-text);flex-direction:column;display:flex;overflow:hidden}}.auth-brand-logo{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;display:inline-flex}.auth-brand-mark{border-radius:var(--radius-full);background:var(--app-accent-text);width:34px;height:34px;color:var(--app-bg-ink);justify-content:center;align-items:center;display:inline-flex}.auth-brand-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2.25rem,3.2vw,3.25rem);font-weight:600;line-height:1.05}.auth-brand-tagline{margin-top:var(--space-4);color:#fffdf8a6;max-width:26rem;font-size:var(--text-lg);line-height:1.5}.auth-menu-mock{width:min(100%,320px);padding:var(--space-6);background:var(--app-bg);color:#2b251d;border-radius:6px;align-self:flex-start;position:relative;transform:rotate(-3deg);box-shadow:0 30px 60px #00000073}.auth-menu-mock-name{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.06em;text-transform:uppercase;text-align:center;font-weight:600}.auth-menu-mock-section{margin:var(--space-4)0 var(--space-2);letter-spacing:.22em;color:#6b645a;font-size:11px;font-weight:600}.auth-menu-mock-row{align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-1);display:flex}.auth-menu-mock-row i{border-bottom:2px dotted #3b342b4d;flex:1}.auth-menu-mock-qr{padding:var(--space-2);color:var(--app-bg-ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;display:inline-flex;position:absolute;bottom:-18px;right:-18px;transform:rotate(6deg)}
