.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);background:var(--ph-surface-container-lowest)}.login-hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:100vh;padding:clamp(2rem,5vw,3.5rem);color:#fff;overflow:hidden;background:radial-gradient(ellipse 55% 45% at 72% 18%,rgba(200,220,255,.12) 0,transparent 62%),linear-gradient(180deg,rgba(9,20,38,.2),rgba(9,20,38,.45) 42%,rgba(9,20,38,.88)),linear-gradient(165deg,#060f1f,#0a1a2e 42%,#0c2238 68%,#0a2a32)}.login-night-sky{position:absolute;top:clamp(1.25rem,4vw,2.5rem);right:clamp(1rem,6vw,3rem);width:min(240px,34vw);height:auto;pointer-events:none;z-index:0;opacity:.95}.login-night-sky-svg{display:block;width:100%;height:auto}.login-hero-skyline{inset:auto 0 0;width:100%;height:min(46vh,360px)}.login-hero-overlay,.login-hero-skyline{position:absolute;z-index:0;pointer-events:none}.login-hero-overlay{inset:0;background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(0,106,97,.2),transparent 60%),radial-gradient(ellipse 70% 40% at 80% 100%,rgba(0,106,97,.12),transparent 55%)}.login-hero-content{position:relative;z-index:1;max-width:34rem}.login-hero-title{margin:0 0 1rem;font-family:var(--font-display,Georgia,serif)!important;font-size:clamp(2rem,4vw,2.75rem);font-weight:400;font-style:italic;line-height:1.15;letter-spacing:-.02em;color:#fff}.login-hero-tagline{margin:0;max-width:38ch;font-size:.95rem;line-height:1.65;color:rgba(255,255,255,.78)}.login-hero-flow{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.15)}.login-page--single{grid-template-columns:1fr}.login-panel{align-items:center;padding:clamp(1.5rem,4vw,3rem);background:var(--ph-surface-container-lowest)}.login-panel,.login-panel-inner{display:flex;justify-content:center}.login-panel-inner{width:100%;max-width:420px;flex-direction:column;min-height:min(100vh,720px)}.login-panel-inner--wide{max-width:480px}.login-panel-toolbar{display:flex;justify-content:flex-end;margin-bottom:.75rem}.login-locale-switcher.locale-switcher--compact{border-color:var(--border);background:var(--surface)}.login-locale-switcher .locale-switcher-btn.active{background:var(--ph-secondary);color:#fff}.login-form-card{flex:1 1;display:flex;flex-direction:column;justify-content:center}.login-form-header h1{margin:0 0 .5rem;font-size:1.65rem;font-weight:700;letter-spacing:-.03em;color:var(--ph-text-main)}.login-form-header p{margin:0 0 2rem;font-size:.9375rem;line-height:1.55;color:var(--ph-text-muted)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-field label{display:block;margin-bottom:.5rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ph-text-muted)}.login-field-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.login-field-row label{margin-bottom:0}.login-forgot{border:none;background:none;padding:0;font-size:.8125rem;font-weight:500;color:var(--ph-secondary);cursor:pointer;text-decoration:none}.login-forgot:hover{text-decoration:underline}.login-forgot:disabled{cursor:not-allowed;opacity:.85}.login-hint{margin:-.25rem 0 .5rem;font-size:.8125rem;line-height:1.45;color:var(--text-secondary)}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:1rem;display:flex;color:var(--ph-outline);pointer-events:none}.login-input{width:100%;padding:.85rem 1rem .85rem 2.75rem;border:1px solid var(--ph-border-subtle);border-radius:var(--radius-md);background-color:var(--ph-surface-container-low);font:inherit;font-size:.9375rem;color:var(--ph-text-main);transition:var(--form-control-transition)}.login-input::placeholder{color:#94a3b8}.login-input:hover:not(:disabled):not([readonly]){border-color:var(--form-control-border-hover)}.login-input:focus{outline:none;border-color:var(--border-focus);background-color:var(--ph-surface-container-lowest);box-shadow:var(--form-control-focus-ring)}.login-input--password{padding-right:2.75rem}.login-input--plain{padding-left:1rem}.login-input--readonly{padding-left:2.75rem}.login-input-toggle{position:absolute;right:.75rem;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:var(--radius);background:transparent;color:var(--ph-outline);cursor:pointer}.login-input-toggle:hover{color:var(--ph-text-muted);background:rgba(15,23,42,.04)}.login-remember{display:flex;align-items:center;gap:.6rem;font-size:.875rem;color:var(--ph-text-muted);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.login-remember input{width:1rem;height:1rem;accent-color:var(--ph-secondary)}.login-alert{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;border-radius:var(--radius);border:1px solid rgba(186,26,26,.25);background:var(--ph-error-container);color:var(--ph-on-error-container);font-size:.875rem;line-height:1.45;animation:status-alert-in .22s ease}.login-alert--success{border-color:var(--success-border);background:var(--success-bg);color:#065f46}.login-alert--info{border-color:rgba(0,106,97,.25);background:rgba(0,106,97,.08);color:var(--ph-text-main)}.login-alert--warning{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning)}.check-email-steps{margin-bottom:1.25rem;padding:1rem 1.1rem;border:1px solid var(--ph-border-subtle);border-radius:var(--radius-md);background:var(--ph-surface-container-low)}.check-email-steps ol{margin:0;padding-left:1.2rem;font-size:.875rem;line-height:1.6;color:var(--ph-text-muted)}.check-email-steps li+li{margin-top:.35rem}.check-email-login-link{flex:1 1;min-width:140px;text-align:center;text-decoration:none}.verify-email-login{text-decoration:none}.login-submit{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.25rem;padding:.9rem 1.25rem;border:none;border-radius:var(--radius-md);background:var(--ph-secondary);color:var(--ph-on-secondary);font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}.login-submit:hover:not(:disabled){background:#005850}.login-submit:active:not(:disabled){transform:translateY(1px)}.login-submit:disabled{opacity:.72;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:1rem;margin:1.5rem 0;color:var(--ph-outline);font-size:.75rem;font-weight:600;letter-spacing:.08em}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--ph-border-subtle)}.login-sso{align-items:center;gap:.6rem;width:100%;padding:.85rem 1.25rem;border:1px solid var(--ph-border-subtle);border-radius:var(--radius-md);background:var(--ph-surface-container-lowest);color:var(--ph-text-main);font:inherit;font-size:.9375rem;font-weight:600;cursor:not-allowed;opacity:.72}.login-footer-links,.login-sso{display:flex;justify-content:center}.login-footer-links{flex-wrap:wrap;gap:.35rem 1.25rem;margin-top:2rem}.login-footer-links a{font-size:.8125rem;color:var(--ph-text-muted);text-decoration:none}.login-footer-links a:hover{color:var(--ph-secondary);text-decoration:underline}.login-copyright{margin:2rem 0 0;text-align:right;font-size:.72rem;color:#94a3b8}.login-loading{margin:0;text-align:center;color:var(--ph-text-muted)}.login-hints{margin-top:1.75rem;padding-top:1.25rem;border-top:1px dashed var(--ph-border-subtle)}.login-hints-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ph-text-muted);margin:0 0 .65rem}.login-hints-list{margin:0;padding:0;list-style:none}.login-hints-list li{margin-bottom:.35rem}.login-hint-btn{width:100%;padding:.45rem .55rem;border:1px solid var(--ph-border-subtle);border-radius:var(--radius);background:var(--ph-surface-container-low);font:inherit;font-size:.8125rem;color:var(--ph-text-muted);text-align:left;cursor:pointer}.login-hint-btn:hover{border-color:var(--ph-secondary);background:rgba(0,106,97,.06)}.login-hint-btn strong,.login-hint-btn:hover{color:var(--ph-text-main)}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem 2.25rem}.login-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.login-brand h1,.login-form-header h1{margin:0}.login-brand p{margin:.15rem 0 0;font-size:.8125rem;color:var(--muted)}.login-hints-list li:last-child{margin-bottom:0}.billing-signup-plan-note{margin-bottom:1.25rem;padding:.85rem 1rem;border-radius:var(--radius-sm);background:var(--info-bg);border:1px solid var(--info-border);font-size:.8125rem;line-height:1.45;color:var(--info-text)}.billing-signup-plan-note strong{display:block;margin-bottom:.35rem;font-size:.875rem}.billing-signup-plan-note p{margin:0 0 .65rem}.billing-signup-steps{margin:0;padding-left:1.15rem;font-size:.78rem}.billing-signup-steps li+li{margin-top:.2rem}.auth-path-cards{display:grid;grid-template-columns:1fr 1fr;grid-gap:.65rem;gap:.65rem;margin-bottom:1.5rem}.auth-path-card{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .85rem;border:1px solid var(--ph-border-subtle);border-radius:var(--radius-md);background:var(--ph-surface-container-low);font-size:.8125rem;color:var(--ph-text-muted);text-decoration:none}.auth-path-card strong{font-size:.875rem;color:var(--ph-text-main)}.auth-path-card--active{border-color:var(--ph-secondary);background:rgba(0,106,97,.06)}.auth-path-card--link:hover{border-color:var(--ph-secondary);background:rgba(0,106,97,.08);text-decoration:none}.auth-signup-banner{display:flex;align-items:center;gap:.65rem;margin-bottom:1.5rem;padding:.85rem 1rem;border:1px solid rgba(0,106,97,.25);border-radius:var(--radius-md);background:rgba(0,106,97,.06);color:var(--ph-text-main);text-decoration:none;transition:border-color .15s ease,background .15s ease}.auth-signup-banner:hover{border-color:var(--ph-secondary);background:rgba(0,106,97,.1);text-decoration:none}.auth-signup-banner-copy{flex:1 1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.auth-signup-banner-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ph-secondary)}.auth-signup-banner-text{font-size:.875rem;font-weight:500;color:var(--ph-text-main)}.auth-signup-banner svg{flex-shrink:0;color:var(--ph-secondary)}.subscription-flow-preview{width:100%}.subscription-flow-preview-title{margin:0 0 .75rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ph-text-muted)}.login-hero .subscription-flow-preview-title{color:rgba(255,255,255,.65)}.subscription-flow-preview-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.5rem;gap:.5rem;list-style:none;margin:0;padding:0}.subscription-flow-preview-step{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}.subscription-flow-preview-dot{width:1.65rem;height:1.65rem;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.72rem;font-weight:700;border:2px solid var(--ph-border-subtle);background:var(--ph-surface-container-lowest);color:var(--ph-text-muted)}.subscription-flow-preview-step--active .subscription-flow-preview-dot{border-color:var(--ph-secondary);background:var(--ph-secondary);color:#fff}.subscription-flow-preview-step--done .subscription-flow-preview-dot{border-color:var(--ph-secondary);background:rgba(0,106,97,.12);color:var(--ph-secondary)}.login-hero .subscription-flow-preview-dot{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:rgba(255,255,255,.85)}.login-hero .subscription-flow-preview-step--active .subscription-flow-preview-dot,.login-hero .subscription-flow-preview-step--done .subscription-flow-preview-dot{border-color:var(--ph-secondary-fixed);background:rgba(0,106,97,.55);color:#fff}.subscription-flow-preview-label{font-size:.68rem;font-weight:600;color:var(--ph-text-main);line-height:1.2}.login-hero .subscription-flow-preview-label{color:rgba(255,255,255,.9)}.subscription-flow-preview-hint{font-size:.62rem;color:var(--ph-text-muted);line-height:1.25}.login-hero .subscription-flow-preview-hint{color:rgba(255,255,255,.62)}.subscription-flow-preview--compact .subscription-flow-preview-hint{display:none}.onboarding-kicker{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ph-secondary)}.onboarding-card .login-form-header p{margin-bottom:1.25rem}.onboarding-progress{height:4px;margin-bottom:1rem;border-radius:var(--radius-full);background:var(--ph-surface-container);overflow:hidden}.onboarding-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ph-secondary),#00897b);transition:width .25s ease}.onboarding-step-intro{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--ph-border-subtle)}.onboarding-step-intro h2{margin:0 0 .35rem;font-size:1.05rem;font-weight:600;letter-spacing:-.02em;color:var(--ph-text-main)}.onboarding-step-intro p{margin:0;font-size:.8125rem;line-height:1.5;color:var(--ph-text-muted)}.onboarding-form{display:flex;flex-direction:column;gap:1.1rem}.onboarding-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.1rem;gap:1.1rem}.onboarding-form-grid .login-field{margin:0}.onboarding-form-grid .login-field:nth-child(odd):last-child,.onboarding-form-grid .login-field:only-child{grid-column:1/-1}.onboarding-stepper{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 1.25rem;padding:0}.onboarding-stepper-item{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--ph-text-muted);background:var(--ph-surface-container-low);border:1px solid var(--ph-border-subtle)}.onboarding-stepper-item.active{color:var(--ph-secondary);border-color:rgba(0,106,97,.35);background:rgba(0,106,97,.08);font-weight:600}.onboarding-stepper-item.done{color:var(--ph-secondary)}.onboarding-stepper-num{width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:.68rem;font-weight:700;background:var(--ph-surface-container-lowest)}.onboarding-body .login-input,.onboarding-form .login-input{padding-left:1rem}.onboarding-form .login-input-wrap .login-input{padding-left:2.75rem}.onboarding-field-hint{margin:.35rem 0 0;font-size:.75rem;color:var(--ph-text-muted)}.login-field--invalid .login-input{border-color:rgba(186,26,26,.55);background:var(--ph-error-container)}.login-field--invalid .login-input:focus{border-color:var(--ph-error,#ba1a1a);box-shadow:var(--form-control-focus-ring-invalid)}.auth-field-error{margin:.35rem 0 0;font-size:.75rem;line-height:1.4;color:var(--ph-on-error-container,#93000a)}.onboarding-readonly{margin:0 0 .75rem;padding:.65rem .75rem;border-radius:var(--radius-sm);background:var(--ph-surface-container-low);font-size:.875rem;color:var(--ph-text-muted)}.onboarding-review{margin:0;display:flex;flex-direction:column;gap:.85rem}.onboarding-review div,.onboarding-review-item{padding:.85rem 1rem;border:1px solid var(--ph-border-subtle);border-radius:var(--radius-md);background:var(--ph-surface-container-low)}.onboarding-review-item--highlight{border-color:rgba(0,106,97,.3);background:rgba(0,106,97,.06)}.onboarding-review-primary{display:block;font-size:.9375rem;font-weight:600;color:var(--ph-text-main);line-height:1.35}.onboarding-review-secondary{display:block;margin-top:.15rem;font-size:.8125rem;color:var(--ph-text-muted);line-height:1.4}.onboarding-review-secondary code{font-size:.78rem;padding:.1rem .35rem;border-radius:var(--radius);background:rgba(15,23,42,.06)}.onboarding-review dt{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ph-text-muted);margin-bottom:.25rem}.onboarding-review dd{margin:0;font-size:.875rem;line-height:1.45}.onboarding-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.onboarding-btn-back{min-width:100px}.onboarding-actions .login-submit{flex:1 1;min-width:140px}.onboarding-footer{margin-top:1.25rem!important}.onboarding-legal-notice{margin:0 0 1rem;font-size:.8125rem;line-height:1.55;color:var(--ph-text-muted);text-align:center}.onboarding-legal-notice a{color:var(--ph-secondary);text-decoration:underline;text-underline-offset:2px}.onboarding-legal-notice a:hover{color:var(--ph-on-secondary-container)}@media (max-width:960px){.login-page{grid-template-columns:1fr}.login-hero{min-height:42vh;justify-content:flex-end;padding:2rem 1.5rem}.login-night-sky{width:min(180px,42vw);top:1rem;right:1rem}.login-hero-title{font-size:1.75rem}.login-hero-tagline{font-size:.875rem}.login-panel-inner{min-height:auto;padding-bottom:1rem}.login-copyright{text-align:center}}@media (max-width:520px){.login-form-header h1{font-size:1.4rem}.auth-path-cards,.onboarding-form-grid{grid-template-columns:1fr}.subscription-flow-preview-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}}.platform-invite-card .login-form-header p.platform-invite-lead{margin-bottom:1.25rem}.platform-invite-loading{margin:.5rem 0 1.5rem}.platform-invite-loading .loading-state{padding:1.25rem 0}.platform-invite-summary{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1.25rem;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid rgba(0,106,97,.22);background:linear-gradient(135deg,rgba(0,106,97,.07),rgba(0,106,97,.03))}.platform-invite-summary-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ph-secondary)}.platform-invite-summary-email{font-size:.9375rem;font-weight:600;color:var(--ph-text-main);word-break:break-word}.platform-invite-status{display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;margin-bottom:1.25rem;padding:1rem 1.1rem;border-radius:var(--radius-md);border:1px solid var(--ph-border-subtle);background:var(--ph-surface-container-low)}.platform-invite-status p{margin:0;font-size:.875rem;line-height:1.55;color:var(--ph-text-muted)}.platform-invite-status--error{border-color:rgba(186,26,26,.25);background:var(--ph-error-container,#ffdad6)}.platform-invite-status--error p{color:var(--ph-on-error-container,#93000a)}.platform-invite-form{margin-top:.15rem}.login-form-footer{margin:1.5rem 0 0;padding-top:1.25rem;border-top:1px solid var(--ph-border-subtle);text-align:center;font-size:.875rem}.login-form-footer a{color:var(--ph-secondary);font-weight:600;text-decoration:none}.login-form-footer a:hover{text-decoration:underline}