.login-body { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; background: radial-gradient(circle at 15% 10%, #dff0e9 0, transparent 35%), var(--canvas); }
.login-shell { width: min(480px, 100%); }
.login-card { padding: clamp(1.6rem, 5vw, 2.6rem); border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 20px 60px #173b3614; }
.login-logo { display: block; width: 170px; height: auto; margin-bottom: 2rem; }
.login-card h1 { margin-bottom: .8rem; font-size: clamp(1.9rem, 6vw, 2.6rem); }
.login-card label { display: block; margin: 1.5rem 0 .45rem; font-size: .83rem; font-weight: 750; }
.login-card input { width: 100%; padding: .78rem .85rem; border: 1px solid #cbd8d4; border-radius: 8px; color: var(--ink); font: inherit; }
.login-card input:focus { outline: 3px solid #a8d8c766; border-color: var(--green); }
.login-card button { width: 100%; margin-top: .8rem; }
.login-card button.secondary { background: transparent; color: var(--green); border: 1px solid var(--green); }
.login-card button.account-switch { display: block; width: auto; min-height: 0; margin: .7rem auto 0; padding: .15rem .3rem; border: 0; border-radius: 3px; color: var(--muted); background: transparent; font-size: .76rem; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.login-card button.account-switch:hover, .login-card button.account-switch:focus-visible { color: var(--green); background: transparent; }
.code-sent-to { margin: 1.2rem 0 0; color: var(--muted); font-size: .82rem; }
#sign-in-code { letter-spacing: .24em; text-align: center; font-size: 1.3rem; font-weight: 800; }
.auth-status { margin-top: 1.3rem; padding: .8rem .9rem; border-radius: 8px; color: #6b531e; background: #fbf5e9; font-size: .82rem; }
.auth-status.ready { color: var(--green); background: var(--green-soft); }
.auth-status.error { color: #8e3d3d; background: #f9eaea; }
.privacy-note { margin: 1rem 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.prototype-link { display: block; text-align: center; font-size: .8rem; font-weight: 700; }
.portal-invitation{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 1.5rem;padding:.85rem 1rem;border:1px solid #d8e5df;border-radius:12px;background:#f7faf8}.portal-invitation div{display:grid;gap:.22rem}.portal-invitation strong{font-size:.82rem;color:var(--ink)}.portal-invitation span{color:var(--muted);font-size:.72rem;line-height:1.4}.portal-invitation a{flex:0 0 auto;color:var(--green);font-size:.76rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}.application-card{text-align:left}.application-card .login-logo{margin-bottom:1.5rem}.application-card h1{margin-top:.4rem}.application-card .application-copy{margin:1rem 0;color:var(--muted);line-height:1.65}.application-card .application-status{padding:1rem;border-radius:12px;background:#f7faf8;border:1px solid #d8e5df}.application-card .application-actions{display:flex;align-items:center;gap:.8rem;margin-top:1.4rem}.application-card .application-actions a{display:inline-flex;padding:.72rem 1rem;border-radius:9px;font-size:.8rem;font-weight:800}.application-card .application-actions .primary-link{background:var(--green);color:#fff}.application-card .application-actions .secondary-link{color:var(--green);border:1px solid var(--green)}@media(max-width:520px){.portal-invitation{align-items:flex-start;flex-direction:column}.application-card .application-actions{align-items:stretch;flex-direction:column}.application-card .application-actions a{justify-content:center}}
.returning-account,.account-chooser{margin-top:1.1rem;padding:1rem;border:1px solid #d8e5df;border-radius:13px;background:#f9fbfa}.returning-account p{margin:0 0 .3rem;color:var(--muted);font-size:.78rem}.returning-account>strong{display:block;overflow-wrap:anywhere;color:var(--ink);font-size:1rem}.returning-account button,.account-chooser button{width:100%;margin-top:.75rem}.account-chooser h2{margin:0 0 .7rem;font-size:1.15rem}.account-choice{display:block;width:100%;margin:.45rem 0!important;padding:.7rem .8rem!important;border:1px solid #d4e1dc!important;background:#fff!important;color:var(--ink)!important;text-align:left}.account-choice strong,.account-choice span{display:block}.account-choice span{margin-top:.15rem;color:var(--muted);font-size:.72rem}
