.auth-modal{max-width:440px;position:relative}.auth-header-centered{padding:var(--sp-7) var(--sp-6) var(--sp-5);text-align:center}.auth-title{color:var(--stg-ink);font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:-.01em;margin-bottom:var(--sp-2)}.auth-subtitle{color:var(--stg-ink-3);font-size:15px}.auth-body{overflow-y:auto;padding:0 var(--sp-6) var(--sp-6)}.auth-form{display:flex;flex-direction:column;gap:var(--sp-4)}.auth-btn-full{margin-top:var(--sp-2);width:100%}.auth-divider{align-items:center;display:flex;margin:var(--sp-5) 0;text-align:center}.auth-divider:after,.auth-divider:before{border-bottom:1px solid var(--stg-border);content:"";flex:1}.auth-divider span{color:var(--stg-ink-4);font-size:13px;font-weight:500;padding:0 16px;text-transform:uppercase}.social-btn-row{display:flex;gap:var(--sp-3)}.social-btn{align-items:center;background:transparent;border:1px solid var(--stg-border);border-radius:var(--stg-r-lg);color:var(--stg-ink);cursor:pointer;display:flex;flex:1;height:48px;justify-content:center;transition:background var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease)}.social-btn:hover{background:var(--stg-paper-deep);border-color:var(--stg-border-strong)}.social-btn svg{height:20px;width:20px}.auth-footer-switch{color:var(--stg-ink-3);font-size:14px;margin-top:var(--sp-6);text-align:center}.auth-footer-switch a{color:var(--stg-ink);font-weight:600;text-decoration:none}.auth-footer-switch a:hover{text-decoration:underline}.auth-gate-section.hidden{display:none!important}.auth-gate-subtitle{color:var(--stg-ink);font-family:var(--font-display);font-size:20px;font-weight:400;margin-bottom:var(--sp-4)}.auth-gate-hint{color:var(--stg-ink-3);font-size:12px;margin-top:4px}.auth-gate-hint code{background:var(--stg-paper-deep);border-radius:4px;font-family:var(--font-mono);font-size:11px;padding:1px 4px}#authGateModal .modal-btn.primary,.auth-gate-panel .modal-btn.primary{background:var(--stg-accent);border:none;border-radius:var(--stg-r-pill);color:var(--stg-accent-ink);cursor:pointer;font-family:var(--font-display);font-size:17px}#authGateModal .modal-btn.secondary,.auth-gate-panel .modal-btn.secondary{background:transparent;border:1px solid var(--stg-border);border-radius:var(--stg-r-pill);color:var(--stg-ink-2);cursor:pointer}#authGateModal .modal-input,.auth-gate-panel .modal-input{background:var(--stg-paper-deep);border:2px solid transparent;border-radius:var(--stg-r-lg);color:var(--stg-ink);font-family:var(--font-ui);font-size:15px}#authGateModal .modal-input:focus-visible,.auth-gate-panel .modal-input:focus-visible{border-color:var(--stg-ink);outline:none}#authGateModal .modal-title,.auth-gate-panel .modal-title{color:var(--stg-ink);font-family:var(--font-display);font-weight:400}.auth-gate-section{background:none;border:none;padding:0}.auth-gate-section--divider{border-top:1px solid var(--stg-border);margin-top:var(--sp-5);padding-top:var(--sp-5)}.auth-gate-dev-details{color:var(--stg-ink-3);font-size:13px;margin:var(--sp-4) var(--sp-6)}.auth-gate-preview-note{color:var(--stg-ink-3);font-size:12px;margin-bottom:var(--sp-3)}.auth-gate-quick-logins{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--sp-3)}.auth-gate-quick-btn{border-radius:var(--stg-r-pill);font-size:12px;padding:4px 10px}.auth-gate-quick-role{background:var(--stg-pop-lime);border-radius:var(--stg-r-pill);color:var(--stg-ink);font-size:10px;padding:1px 6px}.auth-gate-error{background:var(--stg-pop-peach);border-radius:var(--stg-r-lg);color:var(--stg-ink);font-size:14px;margin:0 var(--sp-6) var(--sp-4);padding:10px 14px}.auth-gate-error.hidden{display:none!important}.auth-gate-label{color:var(--stg-ink-4);display:block;font-size:11px;font-weight:600;letter-spacing:.1em;margin-bottom:6px;text-transform:uppercase}.auth-gate-input{background:var(--stg-paper-deep);border:2px solid transparent;border-radius:var(--stg-r-lg);color:var(--stg-ink);display:block;font-family:var(--font-ui);font-size:15px;margin-bottom:var(--sp-3);outline:none;padding:12px 16px;transition:border-color var(--dur-2) var(--ease);width:100%}.auth-gate-input:focus-visible{border-color:var(--stg-ink)}.auth-gate-input::placeholder{color:var(--stg-ink-4)}.auth-gate-fullwidth{width:100%}.auth-page-shell{background:var(--stg-paper-2);display:flex;flex-direction:column;min-height:calc(100vh - var(--nav-h, 68px))}.auth-page-top{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:980px;padding:var(--sp-6) var(--sp-6) var(--sp-4);width:100%}.auth-page-logo{color:var(--stg-ink);font-family:var(--font-display);font-size:22px;letter-spacing:-.02em;text-decoration:none}.auth-page-back{color:var(--stg-ink-3);font-size:14px;font-weight:500;text-decoration:none}.auth-page-back:hover{color:var(--stg-ink);text-decoration:underline}.auth-page-main{align-items:flex-start;display:flex;flex:1;justify-content:center;padding:var(--sp-4) var(--sp-6) var(--sp-8)}.auth-page-card{background:var(--stg-paper);border-radius:var(--stg-r-xl);box-shadow:0 16px 36px rgba(0,0,0,.08),0 0 0 1px var(--stg-border);max-width:460px;overflow:hidden;width:100%}.auth-page-alerts{padding:0 var(--sp-6) var(--sp-3)}.auth-page-alerts:has(.error-banner.hidden):has(.success-banner.hidden),.auth-page-alerts:not(:has(.error-banner:not(.hidden))):not(:has(.success-banner:not(.hidden))){padding-bottom:0;padding-top:0}.auth-page-alerts .error-banner,.auth-page-alerts .success-banner{border-radius:12px;margin:0 0 var(--sp-3)}.success-banner{background:var(--stg-pop-lime,#c8e6a0);border-radius:12px;color:var(--stg-ink);font-size:14px;padding:12px 16px}.success-banner.hidden{display:none!important}#page-auth .error-banner{border-radius:12px;margin-left:0;margin-right:0}#page-auth .auth-header-centered{padding-bottom:var(--sp-4)}#page-auth .auth-body{display:flex;flex-direction:column;gap:var(--sp-4);overflow:visible}#page-auth .input-group--flush{margin:0}#page-auth .text-input.is-invalid{background:#fff6f1;border-color:#c2410c}#page-auth .text-input.is-valid{border-color:#3d6b2e}#page-auth .field-msg{color:var(--stg-ink-3);font-size:13px;line-height:1.4;margin:0;min-height:1.15em}#page-auth .field-msg.is-error{background:rgba(194,65,12,.1);border-radius:8px;color:#9b2c1a;padding:6px 10px}#page-auth .field-msg.is-ok{color:#2f5d22}#page-auth .field-msg.is-pending{color:var(--stg-ink-4);font-style:italic}#page-auth .auth-password-field{position:relative}#page-auth .auth-password-field .text-input{padding-right:4.25rem}#page-auth .auth-password-toggle{background:transparent;border:0;color:var(--stg-ink-3,#6b6b5f);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;margin:0;padding:4px 8px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}#page-auth .auth-password-toggle:focus-visible,#page-auth .auth-password-toggle:hover{color:var(--stg-ink,#161a14)}#page-auth .auth-forgot-link{text-decoration:underline;text-underline-offset:3px}@media (max-width:640px){.auth-page-top{padding:var(--sp-5) var(--sp-4) var(--sp-3)}.auth-page-main{align-items:flex-start;padding:var(--sp-3) var(--sp-4) var(--sp-6)}.auth-page-card{box-shadow:0 10px 24px rgba(0,0,0,.07),0 0 0 1px var(--stg-border)}}.modal-actions{padding:var(--sp-4) var(--sp-6)}