.login-page{min-height:100vh;display:flex;flex-direction:column}.back-link{margin-left:auto;font-size:calc(12px + var(--ui-font-increase, 2px));text-decoration:none}.login-main{width:100%;flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);align-items:center;gap:100px;padding:65px 56px 75px;max-width:1200px}.login-context h1{font-size:44px;line-height:1.2}.login-context .intro{font-size:calc(16px + var(--ui-font-increase, 2px));max-width:420px}.route-sketch{max-width:410px;margin:25px 0}.route-sketch svg{width:100%;height:auto}.sketch-guide{fill:none;stroke:#bccdc0;stroke-width:1.5;stroke-dasharray:5 6}.sketch-route{fill:none;stroke:#36847a;stroke-width:4;stroke-linecap:round}.route-sketch g{fill:#edf0ed;stroke:#af4599;stroke-width:3}.watch-note{font-size:calc(13px + var(--ui-font-increase, 2px));color:var(--muted);line-height:1.8}.watch-note a{display:block;text-decoration:none;font-weight:600}.login-card{background:white;border:1px solid var(--line);border-radius:7px;padding:35px;box-shadow:0 12px 32px #20332708}.login-card h2{font-size:30px;margin-bottom:9px}.card-intro{color:var(--muted);line-height:1.6;margin:0 0 23px}.connection-note{background:#f1f5f2;border:1px solid #d2ded6;border-radius:4px;padding:13px 15px;margin-bottom:25px;font-size:calc(12px + var(--ui-font-increase, 2px));line-height:1.65}.connection-note strong,.connection-note span{display:block}.connection-note strong{margin-bottom:3px}.connection-note span{color:var(--muted)}#loginForm>label:not(.remember-option){display:block;font-size:calc(12px + var(--ui-font-increase, 2px));font-weight:600;margin-bottom:8px}#login-username,#login-password{width:100%;height:44px;background:#fcfdfc;border:1px solid #b6c5ba;border-radius:4px;padding:11px 12px;font-size:calc(14px + var(--ui-font-increase, 2px))}#login-username{margin-bottom:20px}#login-password{padding-right:66px}.password-field{position:relative}.password-field button{position:absolute;right:6px;top:6px;height:32px;padding:0 9px;border:0;border-radius:3px;background:transparent;color:var(--green);font-size:calc(12px + var(--ui-font-increase, 2px));font-weight:600;cursor:pointer}.password-field button:hover{background:#eaf1ed}.remember-option{display:flex;align-items:center;gap:8px;margin:18px 0 23px;font-size:calc(12px + var(--ui-font-increase, 2px));color:#52685c}.remember-option input{width:16px;height:16px;margin:0;accent-color:var(--green)}.submit-login{width:100%;height:44px}.submit-login:disabled{opacity:.5;cursor:not-allowed}.guest-link{border-top:1px solid #e1e8e3;margin-top:25px;padding-top:22px;text-align:center;font-size:calc(12px + var(--ui-font-increase, 2px))}.guest-link span{display:block;color:var(--muted);margin-bottom:10px}.guest-link a{text-decoration:none;font-weight:600}@media(max-width:950px){.login-main{gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,400px);padding:45px 32px 50px}.login-context h1{font-size:36px}.login-card{padding:28px}}@media(max-width:700px){.login-main{display:flex;flex-direction:column;gap:30px;padding:32px 24px 40px;max-width:1200px}.login-context{width:100%}.login-context h1{font-size:32px;margin-bottom:15px}.login-context .intro{font-size:calc(14px + var(--ui-font-increase, 2px));margin-bottom:0}.route-sketch,.watch-note{display:none}.login-card{width:100%;padding:25px}.back-link{font-size:calc(11px + var(--ui-font-increase, 2px))}.login-page nav{display:none}}

.login-error{padding:12px 14px;border:1px solid #dfbcbc;background:#fff5f3;color:#943e35;border-radius:4px;font-size:calc(13px + var(--ui-font-increase, 2px));line-height:1.6;overflow-wrap:anywhere}.signed-in{line-height:1.8;margin-bottom:22px}

.login-context h1{color:#123c32;letter-spacing:-1.8px}.login-context h1 em{color:#0c5948}.login-context .intro{color:#365b4c;text-shadow:none}.login-page .eyebrow{color:#174b3d}
@media(max-width:700px){.login-context,.login-card{max-width:440px}.login-page .topbar{gap:16px}}

.login-context h1{font-size:clamp(40px,4.3vw,56px);line-height:1.02;letter-spacing:-2px;font-weight:850}.login-features{padding-left:20px;margin:24px 0;color:#365b4c;font-size:calc(14px + var(--ui-font-increase, 2px));line-height:1.7}.login-features li+li{margin-top:12px}.login-features strong{color:#163c33}
@media(max-width:700px){.login-context h1{font-size:44px;letter-spacing:-1.6px}.login-features{font-size:calc(13px + var(--ui-font-increase, 2px));margin:20px 0 0}}

@media(max-width:380px){.login-context h1{font-size:40px}}

/* Keep the public competition link clear over the forest background. */
.login-context .watch-note{display:block;width:fit-content;max-width:100%;margin:28px 0 0;padding:18px 20px;background:#f6f9f3;border:1px solid #d5e1d6;border-radius:7px;color:#163c33}
.watch-note p{margin:0 0 12px;font-size:calc(16px + var(--ui-font-increase, 2px));font-weight:700;line-height:1.4}.watch-note a.button{display:inline-flex;min-height:44px;font-size:calc(14px + var(--ui-font-increase, 2px));font-weight:700;color:#fff}

.signup-info{font-size:calc(14px + var(--ui-font-increase, 2px));line-height:1.7;color:#365b4c}.signup-info p{margin:0 0 18px}.signup-create{width:100%;text-align:center;line-height:1.5}.signup-info .signup-note{font-size:calc(12px + var(--ui-font-increase, 2px));margin-top:10px;color:var(--muted)}.account-switch{font-size:calc(13px + var(--ui-font-increase, 2px));line-height:1.7;margin:22px 0 0;color:#365b4c}.account-switch a{color:#145c48;font-weight:700;text-underline-offset:3px}
