:root{color-scheme:light;--ink:#071333;--muted:#33486b;--blue:#0069ed;--line:rgba(71,117,162,.21)}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#edf7fc;font-size:16px;line-height:1.45}a{color:#0751ab;text-underline-offset:3px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #0071ec;outline-offset:4px}.skip-link{position:fixed;top:-70px;left:16px;z-index:10;padding:10px;background:white}.skip-link:focus{top:12px}
.auth-scene{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 16% 36%,rgba(255,255,255,.95),transparent 48%),radial-gradient(ellipse at 78% 35%,#cbeafb80,transparent 55%),url('/assets/auth-landscape-v1.png') center bottom/cover no-repeat,url('/assets/auth-landscape-v1.svg') center bottom/cover no-repeat,linear-gradient(120deg,#f8fcff,#dff3fd);z-index:-1}.auth-page{max-width:1440px;margin:auto;padding:28px 52px 16px;min-height:100svh}.auth-header{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:84px}.auth-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#071333;flex-shrink:0}.brand-emblem{display:block;width:94px;height:78px;overflow:hidden}.brand-emblem img{width:240px;height:80px;max-width:none;object-fit:contain;object-position:left center;transform:translateY(-1px)}.brand-word{font-size:35px;font-weight:800;font-style:italic;letter-spacing:-1.6px;line-height:1}.brand-word>span{color:#f77c0a}.brand-word small{display:block;font-size:14px;letter-spacing:0;margin:5px 0 0 3px}.auth-header nav{display:flex;align-items:center;gap:30px}.auth-header nav a{text-decoration:none;font-size:15px}.auth-header nav a:first-child{color:var(--ink)}.auth-header nav span,.browse-link span{font-size:25px;vertical-align:middle;margin-right:7px}.header-action{border:1px solid #4886be;border-radius:14px;padding:10px 18px;background:#ffffff80}.header-action:hover{background:white}
.auth-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);align-items:start;gap:64px;margin:64px auto 0;max-width:1220px}.journey{display:flex;flex-direction:column;min-width:0}.journey h1{font-size:clamp(40px,4.25vw,62px);font-weight:800;line-height:1.06;letter-spacing:-2px;margin:0 0 16px}.journey-copy p{font-size:24px;line-height:1.35;margin:0 0 20px;color:var(--muted)}.route-pill{display:flex;align-items:center;justify-content:center;gap:13px;width:max-content;max-width:100%;padding:12px 18px;border:1px solid #c8e6f5;border-radius:40px;background:linear-gradient(110deg,#effbffbe,#d9f2ffb3);box-shadow:inset 0 1px 2px white;color:var(--ink);font-size:16px;font-weight:600;white-space:nowrap;backdrop-filter:blur(12px)}.route-arrow{font-size:25px;color:#0875da;line-height:1;margin:0 3px}.pin{width:13px;height:17px;background:#0978df;border-radius:60% 60% 60% 0;transform:rotate(-45deg);position:relative;flex-shrink:0}.pin:after{content:'';position:absolute;width:5px;height:5px;background:#e8f8ff;border-radius:50%;left:4px;top:4px}.cooperative-mark{display:block;width:90%;max-width:535px;height:auto;object-fit:contain;margin:22px 0 0}.journey-bus{display:block;width:100%;height:auto;aspect-ratio:1000/650;object-fit:contain;filter:drop-shadow(0 13px 8px #18446d33);margin:-3px 0 0}.cooperative-caption{display:none}.glass-card{padding:40px 36px 0;background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(245,251,255,.68) 70%,rgba(255,244,232,.78));border:1px solid #ffffffed;border-radius:24px;box-shadow:inset 0 1px 2px #fff,0 16px 50px #3d88ba1f,0 2px 5px #5d88ab0a;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.glass-card h2{font-size:36px;line-height:1.15;letter-spacing:-1.2px;margin:0 0 8px;font-weight:800}.form-intro{font-size:19px;color:var(--muted);margin:0 0 26px}.field{margin-bottom:20px}.field label{display:block;font-weight:600;margin-bottom:7px}.field>input,.input-shell{width:100%;border:1px solid var(--line);border-radius:12px;background:#ffffffb0;min-height:52px}.field>input{padding:13px 14px;color:var(--ink)}.input-shell{display:flex;align-items:center;gap:12px;padding-left:14px;transition:border-color .18s,box-shadow .18s}.input-shell>svg{width:21px;height:23px;fill:none;stroke:#5b6c82;stroke-width:1.5;flex-shrink:0}.input-shell input{border:0;outline:0;background:transparent;min-width:0;width:100%;height:50px;color:var(--ink);padding:10px 0;font-size:16px}.input-shell input::placeholder{color:#74859a}.input-shell:focus-within,.field>input:focus{outline:0;border-color:#0080ef;box-shadow:0 0 0 3px #0099ee1a,0 2px 9px #1387c71f}.field>input[aria-invalid=true],.input-shell:has([aria-invalid=true]){border-color:#b42424}.password-toggle{border:0;background:transparent;align-self:stretch;width:48px;flex-shrink:0;display:grid;place-items:center;color:#55657a;border-radius:10px}.password-toggle:hover{background:#e2f1fb}.password-toggle svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.5}.password-toggle[aria-pressed=true]{color:#0069ed;background:#e5f4ff}.remember{display:flex;align-items:center;gap:10px;font-size:14px;min-height:26px;margin:-4px 0 20px;cursor:pointer}.remember input{width:19px;height:19px;margin:0;accent-color:var(--blue)}.submit-button{display:flex;justify-content:center;align-items:center;gap:14px;min-height:54px;width:100%;border:0;border-radius:13px;background:linear-gradient(180deg,#007bff,#0054d6);color:#fff;font-weight:600;font-size:19px;box-shadow:inset 0 1px 1px #ffffff55,0 4px 10px #0564bd18;transition:transform .18s,box-shadow .18s}.submit-button>span:last-child{font-size:27px;font-weight:400}.submit-button:hover{box-shadow:0 7px 20px #0061d32b;transform:translateY(-1px)}.submit-button:active{transform:translateY(1px)}.submit-button:disabled{opacity:.75;cursor:wait;transform:none}.account-prompt{border-top:1px solid var(--line);padding:22px 0;margin:26px 0 0;text-align:center;font-size:14px}.account-prompt a{font-weight:600;margin-left:4px}.browse-link{display:block;text-align:center;text-decoration:none;border-top:1px solid var(--line);margin:0 -36px;padding:13px 12px;font-size:14px;border-radius:0 0 24px 24px}.browse-link:hover{background:#fff8}.auth-footer{text-align:center;font-size:13px;color:#30425c;margin:4px 0 0}.password-help{font-size:13px;color:var(--muted);margin:-10px 0 16px}.form-notice{background:#fff1ef;border:1px solid #e5b2a9;border-radius:12px;padding:12px;font-size:14px;color:#8b2317;margin-bottom:20px}.form-notice ul{padding-left:18px;margin:5px 0 0}.form-notice.success{color:#19572e;background:#effbee;border-color:#b2d7b3}
@media(min-width:1500px){.auth-grid{margin-top:85px}}
@media(max-width:1100px) and (min-width:761px){.auth-page{padding:22px 32px 16px}.auth-grid{gap:30px;margin-top:48px;grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr)}.journey h1{font-size:44px}.journey-copy p{font-size:20px}.route-pill{font-size:12px;gap:9px;padding:10px 13px}.glass-card{padding:30px 25px 0}.glass-card h2{font-size:31px}.browse-link{margin:0 -25px}.brand-word{font-size:29px}.auth-header nav{gap:16px}}
@media(max-width:760px){.auth-page{max-width:480px;padding:24px 16px 16px}.auth-scene{background-position:center bottom;background-size:auto 100%;background-attachment:scroll}.auth-header{min-height:65px;justify-content:center}.auth-header nav{display:none}.auth-brand{gap:7px}.brand-emblem{width:78px;height:65px}.brand-emblem img{width:195px;height:65px;transform:translateY(0)}.brand-word{font-size:30px;letter-spacing:-1.5px}.brand-word small{font-size:12px}.auth-grid{display:flex;flex-direction:column;gap:20px;margin-top:10px}.journey{width:100%;align-items:center}.journey-copy,.cooperative-mark{display:none}.journey-bus{order:0;width:100%;max-width:350px;margin:0;height:196px;aspect-ratio:auto;object-fit:contain;filter:drop-shadow(0 7px 5px #244f6f26)}.cooperative-caption{order:1;display:block;font-size:11px;font-weight:700;text-transform:uppercase;text-align:center;margin:-2px 0 9px}.route-pill{order:2;font-size:12px;gap:9px;width:100%;padding:9px 10px}.route-arrow{font-size:22px;margin:0}.pin{width:11px;height:14px}.pin:after{width:4px;height:4px;left:3px;top:3px}.glass-card{width:100%;padding:26px 24px 0;border-radius:22px}.glass-card h2{font-size:30px}.form-intro{font-size:15px;margin-bottom:24px}.field{margin-bottom:19px}.field label{font-size:14px}.field>input,.input-shell{min-height:47px}.input-shell input{height:46px}.remember{margin-bottom:17px;font-size:13px}.submit-button{min-height:49px;font-size:17px}.account-prompt{font-size:12px;padding:18px 0;margin-top:22px}.browse-link{margin:0 -24px;font-size:13px;padding:12px;border-radius:0 0 22px 22px}.auth-footer{margin:16px 0 0;font-size:11px}}
@media(max-width:360px){.auth-page{padding-left:12px;padding-right:12px}.route-pill{font-size:10px;gap:8px}.glass-card{padding:24px 20px 0}.browse-link{margin:0 -20px}.brand-word{font-size:28px}.journey-bus{height:180px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.calendar-icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;vertical-align:middle;margin-right:7px}
/* TranspoLink: Apple-style typography and account icon */
body {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Text",
        "SF Pro Display",
        system-ui,
        "Segoe UI",
        Roboto,
        "Helvetica Neue",
        Arial,
        sans-serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

button,
input,
select,
textarea {
    font-family: inherit;
}

.journey h1,
.glass-card h2 {
    font-weight: 800;
    letter-spacing: -0.035em;
}

.brand-word {
    font-weight: 800;
}

.brand-word small,
.field label,
.route-pill,
.account-prompt a {
    font-weight: 600;
}

.auth-header nav a,
.submit-button {
    font-weight: 700;
}

.journey-copy p,
.form-intro {
    font-weight: 400;
    letter-spacing: -0.015em;
}

.header-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
}

.header-action .account-icon {
    display: block;
    width: 21px;
    height: 21px;
    flex: 0 0 21px;
    fill: currentColor;
    stroke: none;
}
