:root{font-family:Inter,"Segoe UI","Noto Sans JP",Meiryo,sans-serif;color:#e8edeb;background:#101512;font-synthesis:none;--muted:#93a099;--border:#2d3931;--accent:#c0f5ce;--panel:#191f1b}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 76% 0%,#243c2a40,transparent 55%);min-height:100vh}button,input,select,textarea{font:inherit}button,a,input,summary,select,textarea{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}input:focus,select:focus,textarea:focus{outline:2px solid #92cba3;outline-offset:2px}[hidden]{display:none!important}.shell{max-width:1260px;margin:auto;padding:0 48px}.masthead{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:15px;letter-spacing:2px}.brand b{font-weight:700}.brand small{display:block;font-size:9px;letter-spacing:2.2px;color:var(--muted);margin-top:5px}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #749680;border-radius:12px;font-size:28px;color:var(--accent)}.top-actions{display:flex;gap:24px;align-items:center}.clock{font-size:12px;color:#b6c2bb;font-variant-numeric:tabular-nums}.mode-control select{font-size:11px;color:var(--accent);background:#233028;border:1px solid #45634e;border-radius:7px;padding:10px}.intro{padding:46px 0 34px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:9px;margin:0 0 15px}.dot{height:6px;width:6px;display:inline-block;background:var(--accent);border-radius:50%}h1{font-size:36px;font-weight:600;letter-spacing:1px;margin:0 0 16px}h1 span{color:var(--accent)}.intro>p:last-child{font-size:13px;color:var(--muted);margin:0;line-height:1.8}.workspace{display:grid;grid-template-columns:350px 1fr;gap:30px;align-items:start}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px}.search-panel{padding:26px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}h2{font-size:18px;font-weight:600;margin:0}.panel-title h2{font-size:15px}.section-number{font-size:9px;letter-spacing:1px;color:#7a8980}.station-fields{position:relative;display:grid;gap:12px}.station-input{background:#111713;border:1px solid #344039;padding:13px 16px 10px;border-radius:9px;display:block}.station-input>span{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.station-input small{font-size:8px;margin-left:6px;letter-spacing:1px;color:#6d7f73}.station-input input{width:100%;padding:0;background:transparent;border:0;border-radius:2px;color:#f2f7f3;font-size:19px;font-weight:600;line-height:1.6}.swap{position:absolute;right:16px;top:68px;z-index:1;width:30px;height:30px;background:#28382d;color:var(--accent);border:1px solid #4a6252;border-radius:50%;font-size:19px}.presets{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.presets button{font-size:11px;color:#c5d3ca;background:#232c26;border:1px solid #36423a;border-radius:6px;padding:7px 10px}.presets button:hover{background:#344238}.divider{height:1px;background:var(--border);margin:24px 0}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{font-size:11px;color:#aebbaf}.number-field{display:flex;align-items:center;margin-top:9px;background:#121814;border:1px solid #354238;border-radius:7px;padding:0 12px;gap:6px}.number-field input{min-width:0;width:100%;border:0;background:none;color:#e8eee9;padding:11px 0;font-size:16px}.number-field span{color:#8fa394;font-size:11px}.advanced{margin:20px 0;color:var(--muted);font-size:11px}.advanced summary{cursor:pointer;padding:5px 0}.advanced label{display:block;margin-top:15px}.advanced input,.advanced select{display:block;width:100%;margin-top:9px;background:#121814;border:1px solid #354238;border-radius:6px;color:#d7e2da;padding:10px;font-size:11px}.advanced p{font-size:10px;line-height:1.6}.primary{width:100%;background:var(--accent);color:#182b1e;border:0;border-radius:8px;padding:15px 18px;display:flex;justify-content:space-between;font-size:13px;font-weight:700}.primary:hover{background:#d5ffde}.primary:disabled{opacity:.55;cursor:wait}.search-note{color:#788c7e;font-size:10px;line-height:1.9;margin:16px 0 0}.results-heading{display:flex;justify-content:space-between;align-items:center;padding:6px 0 20px;gap:12px}.results-heading .eyebrow{font-size:9px;margin-bottom:8px}.results-heading h2{font-size:20px}.update{text-align:right}.update small{display:block;font-size:9px;color:#84958a;margin-top:9px}.badge{font-size:10px;border:1px solid #455a4c;color:var(--accent);padding:5px 9px;border-radius:20px;white-space:nowrap}.empty{display:grid;place-items:center;text-align:center;min-height:363px;padding:36px}.empty-icon{display:grid;place-items:center;font-size:40px;border:1px solid #425648;color:#aac8b3;border-radius:50%;width:74px;height:74px;margin-bottom:8px}.empty h3{font-size:16px;font-weight:500;margin-bottom:0}.empty p{font-size:12px;line-height:2;color:var(--muted)}.notice{padding:13px 18px;background:#292b1c;border:1px solid #595d37;border-radius:9px;margin:0 0 24px;color:#deddae;font-size:12px;line-height:1.8}.route{margin-bottom:14px;overflow:hidden}.route.best{border-color:#6f9479}.leave-home{background:#26392c;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--accent);font-size:12px}.leave-home strong{font-size:17px;letter-spacing:.5px}.leave-home small{font-size:10px;color:#aac5b2}.route-body{padding:20px 22px}.route-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.journey-times{display:flex;align-items:center;gap:13px;font-variant-numeric:tabular-nums}.journey-times strong{font-size:30px;letter-spacing:-1px;font-weight:550}.journey-times .arrow{color:#6a8172;font-size:18px}.duration{font-size:15px;font-weight:600;text-align:right}.duration small{font-size:10px;font-weight:400;color:var(--muted);display:block;margin-top:7px}.route-line{display:flex;align-items:center;gap:8px;margin:17px 0 0;flex-wrap:wrap;font-size:11px;color:#c9d5cd}.line-tag{display:inline-flex;align-items:center;gap:6px}.line-tag::before{content:"";width:5px;height:12px;background:var(--line-color,#528cff);border-radius:2px}.line-arrow{font-size:11px;color:#718878}.route details{border-top:1px solid var(--border);margin-top:18px;padding-top:13px}.route summary{font-size:10px;color:#93a79a;cursor:pointer}.leg{margin:16px 0 0;border-left:2px solid var(--line-color,#536158);padding-left:15px}.leg h3{font-size:12px;font-weight:500;margin:0 0 8px}.leg p{font-size:11px;color:var(--muted);margin:5px 0;line-height:1.8}.warnings{font-size:10px;color:#82978a;line-height:1.9;padding:4px 4px 0}.warnings p{margin:4px 0}.integration{margin-top:32px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:linear-gradient(110deg,#1d2a21,#191f1b)}.integration .eyebrow{font-size:9px;margin-bottom:10px}.integration h2{font-size:16px}.integration p:not(.eyebrow){font-size:11px;color:var(--muted);line-height:1.8;margin:10px 0 0}.secondary{background:transparent;border:1px solid #506456;color:#c8dbce;padding:12px 17px;font-size:11px;border-radius:7px;white-space:nowrap}.secondary span{margin-left:18px}#integration-content{width:100%;border-top:1px solid var(--border);padding-top:22px}#integration-content label{display:block;margin-top:12px}textarea{width:100%;resize:vertical;background:#111713;border:1px solid #3e4e43;color:#b4cebd;border-radius:6px;padding:12px;margin-top:10px;line-height:1.7;font-size:12px}.text-button{color:var(--accent);background:none;border:0;padding:10px 0;font-size:11px}footer{padding:30px 0 28px;display:flex;justify-content:space-between;gap:20px;color:#718277;font-size:9px;line-height:2}footer>span:last-child{text-align:right}footer a{text-decoration:underline;text-underline-offset:3px}.footer-dot{padding:0 10px;color:#4d6054}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body.embed .intro,body.embed .integration,body.embed .masthead,body.embed .search-panel{display:none}body.embed .shell{max-width:760px;padding:20px}body.embed .workspace{display:block}body.embed footer{padding-bottom:0}body.embed footer>span:first-child{display:none}body.embed footer>span:last-child{text-align:left}
@media(min-width:1400px){.intro{padding-top:60px}.workspace{gap:38px}.shell{max-width:1320px}.search-panel{padding:30px}.workspace{grid-template-columns:370px 1fr}}
@media(max-width:850px){.shell{padding:0 24px}.workspace{grid-template-columns:300px 1fr;gap:20px}.search-panel{padding:20px}.journey-times{gap:8px}.journey-times strong{font-size:25px}.clock{display:none}.route-body{padding:18px}.leave-home{padding:12px 18px}.leave-home small{display:none}.results-heading{align-items:start}.results-heading h2{font-size:17px}}
@media(max-width:650px){.shell{padding:0 20px}.masthead{height:82px}.brand{font-size:12px;gap:9px;letter-spacing:1px}.brand small{font-size:7px;letter-spacing:1.4px}.brand-icon{width:34px;height:34px;font-size:24px}.mode-control select{font-size:10px;padding:8px;max-width:126px}.intro{padding:32px 0 26px}h1{font-size:27px;letter-spacing:0}.intro>p:last-child{font-size:11px}.workspace{grid-template-columns:1fr;gap:26px}.search-panel{padding:22px}.results-heading{align-items:center}.route-body{padding:21px}.journey-times strong{font-size:31px}.leave-home small{display:inline}.integration{padding:24px;gap:18px}.integration .secondary{width:100%}footer{flex-direction:column;gap:8px}footer>span:last-child{text-align:left}.empty{min-height:280px}.search-note br{display:none}.integration{margin-top:25px}}
body.panel-embed .intro,body.panel-embed .integration,body.panel-embed .brand,body.panel-embed .clock{display:none}body.panel-embed .shell{padding:0 20px}body.panel-embed .masthead{height:66px;justify-content:flex-end;margin-bottom:18px}body.panel-embed .workspace{gap:20px}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s ease}.route{animation:appear .25s ease-out}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
