:root{--ink:#071a33;--deep:#041326;--blue:#1b65a7;--gold:#d5aa57;--paper:#f6f4ef;--text:#334b64;--muted:#64778b;--line:#d7dee5;color-scheme:light;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--ink);background:var(--paper)}a{color:var(--blue);text-underline-offset:4px}button,input{font:inherit}button,a,input,summary{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #55a5d8}.hidden,[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;background:var(--gold);color:var(--deep);padding:12px;z-index:100}.skip-link:focus{top:12px}
.entry-header{min-height:96px;padding:20px clamp(24px,5.5vw,88px);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);background:#fff}.entry-brand{display:inline-flex;align-items:center;gap:14px;font-size:25px;letter-spacing:.13em;font-weight:700;text-decoration:none;color:var(--ink)}.brand-loop{display:block;position:relative;width:58px;aspect-ratio:1134/605;overflow:hidden;flex-shrink:0}.brand-loop img{position:absolute;width:110.58%;left:-5.73%;top:-62.15%}.back-home{font-size:14px;text-decoration:none}.eyebrow,.section-label{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.section-label{color:var(--blue)}
.login-page{background:var(--deep);min-height:100vh}.login-page .entry-header{background:var(--deep);border-color:#ffffff22}.login-page .entry-brand,.login-page .back-home{color:#fff}.login-layout{min-height:calc(100vh - 96px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(48px,7vw,112px);padding:64px clamp(24px,8vw,130px);background:radial-gradient(circle at 22% 40%,#153b65 0,var(--ink) 40%,var(--deep) 85%)}.login-intro{color:#fff}.eyebrow{color:#f1ddad}.login-intro h1{font-size:clamp(36px,4.6vw,66px);letter-spacing:-.045em;line-height:1.09;margin:26px 0}.login-intro p{color:#cad7e6;font-size:18px;line-height:1.7}.login-intro .system-name{font-size:12px;letter-spacing:.09em;text-transform:uppercase;margin-top:64px}.login-card{background:#fff;border-radius:16px;padding:clamp(28px,3.5vw,50px);box-shadow:0 20px 50px #0002;max-width:560px}.login-card h2,dialog h2{font-size:34px;letter-spacing:-.035em;margin:15px 0 20px}.login-card p,dialog p{line-height:1.65;color:var(--text)}label{display:block;font-size:14px;font-weight:700;margin:25px 0 9px}input{width:100%;border:1px solid #a7b6c7;border-radius:7px;padding:15px;color:var(--ink);background:#fff}.primary,.action{display:block;width:100%;border:0;border-radius:7px;padding:16px 18px;margin-top:16px;background:var(--ink);color:#fff;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}.primary:hover{background:#153b65}.primary:disabled{cursor:wait;opacity:.7}.secondary{background:#e9f0f6;color:var(--ink)}.access-note{border-top:1px solid var(--line);padding-top:23px;margin-top:28px}.login-card .privacy{font-size:12px;color:var(--muted);margin-top:26px}.notice{border:1px solid var(--line);background:#eff5fa;padding:14px;border-radius:7px;line-height:1.6}.notice.error{background:#fff3f3;border-color:#e0abab;color:#8c1d18}dialog{width:min(520px,calc(100% - 32px));border:0;border-radius:16px;padding:34px;color:var(--ink);box-shadow:0 24px 100px #0005}dialog::backdrop{background:#041326b8}
.header-actions{display:flex;align-items:center;gap:28px}.identity{text-align:right;font-size:13px;line-height:1.5}.identity strong{display:block}.identity span{color:var(--muted)}.menu{position:relative}.menu{padding:10px 0;margin:-10px 0}.menu-trigger{cursor:pointer;font:700 12px Arial,Helvetica,sans-serif;letter-spacing:.08em;background:none;border:0;color:var(--ink);padding:8px 0}.menu nav a:hover,.menu nav button:hover{background:#eff5fa;border-radius:5px}.menu nav{position:absolute;right:0;top:100%;z-index:10;background:#fff;padding:12px;box-shadow:0 8px 30px #071a3322;border:1px solid var(--line);border-radius:8px;width:230px}.menu nav a,.menu nav button{display:block;width:100%;padding:12px;text-align:left;background:none;border:0;color:var(--ink);text-decoration:none;font:inherit;font-size:14px;cursor:pointer}.welcome-main{max-width:1060px;margin:0 auto;padding:60px 32px 36px}.welcome-main h1{font-size:clamp(32px,4vw,48px);line-height:1.12;letter-spacing:-.04em;margin:16px 0}.welcome-intro{color:var(--muted);line-height:1.6;margin-bottom:36px}.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.route-card{min-height:156px;padding:26px 28px;border:1px solid #bfcbd7;border-radius:12px;display:flex;align-items:flex-start;gap:20px;background:#fff;color:var(--ink);text-decoration:none;transition:border-color .15s,box-shadow .15s}.route-card:hover{border-color:var(--blue);box-shadow:0 5px 20px #071a3312}.route-number{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border-radius:8px;background:#eaf1f7;color:var(--blue);font-size:13px;font-weight:700}.route-card h2{font-size:20px;line-height:1.3;margin:2px 0 9px;letter-spacing:-.025em}.route-card p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}.route-card .route-arrow{margin-left:auto;font-size:22px;color:var(--blue)}.route-card.upcoming{border-style:dashed;cursor:default}.route-card.upcoming:hover{box-shadow:none;border-color:#bfcbd7}.coming-soon{display:inline-block;color:var(--muted);font-size:11px;letter-spacing:.05em;text-transform:uppercase;margin-top:auto;padding-top:18px;font-weight:700}.route-card>div{flex:1;min-width:0;display:flex;flex-direction:column;align-self:stretch}.resume-card{display:flex;align-items:center;gap:20px;padding:22px 28px;margin-top:22px;border-radius:12px;background:#fff;color:var(--ink);border:1px solid #bfcbd7;text-decoration:none}.resume-card:hover{border-color:var(--blue);box-shadow:0 5px 20px #071a3312}.resume-card strong{font-size:18px}.resume-card small{display:block;color:var(--muted);line-height:1.5;margin-top:6px}.resume-card>span:last-child{margin-left:auto}.welcome-footer{display:flex;gap:25px;border-top:1px solid var(--line);padding:26px 0;margin-top:36px;font-size:13px}.welcome-footer a:last-child{margin-left:auto}.role-note{margin:20px 0;color:var(--muted);font-size:14px;line-height:1.6}.verify-page{background:var(--deep)!important}.verify-page main{background:#fff!important}.verify-page .entry-brand{margin-bottom:32px}.verify-page h1{font-size:29px}
@media(max-width:760px){.login-layout{grid-template-columns:1fr;padding:32px 24px;gap:28px}.login-intro h1{font-size:38px}.login-intro .system-name{display:none}.login-card{max-width:none}.login-intro p{font-size:16px}.entry-header{min-height:80px;padding:18px 24px}.entry-brand{font-size:22px}.brand-loop{width:48px}.route-grid{grid-template-columns:1fr}.welcome-main{padding:36px 22px 20px}.route-card{min-height:130px;padding:22px}.header-actions{gap:16px}.identity{max-width:170px;font-size:11px}.welcome-footer{gap:18px;flex-wrap:wrap}.welcome-footer a:last-child{margin-left:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}


.resume-card{align-items:flex-start;padding:26px 28px;box-shadow:none}.resume-card:hover{border-color:#bfcbd7;box-shadow:none}.restore-content{flex:1;min-width:0}.restore-content h2{font-size:20px;line-height:1.3;margin:2px 0 9px;letter-spacing:-.025em}.restore-content>p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}.restore-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.restore-choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:18px 40px 18px 18px;background:#fff;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--ink)}.restore-choice strong{font-size:15px}.restore-choice>span:not(.coming-soon){position:absolute;right:18px;top:18px;color:var(--blue)}a.restore-choice:hover{border-color:var(--blue);box-shadow:0 5px 20px #071a3312}.restore-choice.upcoming{border-style:dashed}.restore-choice .coming-soon{padding-top:14px}.welcome-footer a:last-child{margin-left:0}
@media(max-width:760px){.resume-card{padding:22px}.restore-options{grid-template-columns:1fr}}

.route-grid .route-card{position:relative;padding-top:44px}.route-limit{display:block;margin-top:auto;padding-top:18px;color:var(--blue);font-size:13px;font-weight:700;line-height:1.5}.route-card .route-availability{position:absolute;top:11px;right:14px;margin:0;padding:4px 9px;border-radius:5px;background:#eaf1f7;color:#315a7a;font-size:10px;line-height:1.4;letter-spacing:.04em}
