:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--fs-xs:14px;--fs-sm:16px;--fs-md:18px;--fs-lg:22px;--fs-xl:26px;--fs-num:36px;--radius-sm:8px;--radius-md:12px;--radius-pill:999px;--bw:1px;--bw-strong:2px;--bar-w:4px;--tap:44px;--content-max:1100px;--gutter:16px}@media(min-width:720px){:root{--gutter:24px}}:root{--bg:#ffffff;--bg-panel:#f5f6f8;--text:#111111;--text-sub:#3a3a3a;--border:#c9cdd3;--accent:#0b5fff;--accent-text:#ffffff;--free-color:#0a7a3d;--free-bg:#e4f5ea;--discount-color:#0b4fbf;--discount-bg:#e5edfc;--normal-color:#595959;--normal-bg:#eceef1;--card-bg:#ffffff;--warn-bg:#fff6e0;--warn-border:#8a6d00;--warn-text:#5c4a00;--error-text:#8a1c1c;--line-toei-asakusa:#c9276b;--line-toei-oedo:#9b1868;--line-metro-ginza:#c76f00;--line-bus-toei:#0a7a3d;--line-bus-private:#0b4fbf;--map-muted:#c7cbd1;--map-label:#333333;--focus:#0b5fff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121316;--bg-panel:#1c1e22;--text:#f2f2f2;--text-sub:#c9cdd3;--border:#454952;--accent:#5b9dff;--accent-text:#0b1320;--free-color:#7fe3a8;--free-bg:#12351f;--discount-color:#9cc2ff;--discount-bg:#132a4d;--normal-color:#c9cdd3;--normal-bg:#2a2d33;--card-bg:#1a1c20;--warn-bg:#3a2f00;--warn-border:#e8c200;--warn-text:#ffe680;--error-text:#ff9c9c;--line-toei-asakusa:#ff6fa8;--line-toei-oedo:#e07fc6;--line-metro-ginza:#ffb14d;--line-bus-toei:#7fe3a8;--line-bus-private:#9cc2ff;--map-muted:#4a4e56;--map-label:#e6e6e6;--focus:#7fb2ff}}:root[data-theme=dark]{--bg:#121316;--bg-panel:#1c1e22;--text:#f2f2f2;--text-sub:#c9cdd3;--border:#454952;--accent:#5b9dff;--accent-text:#0b1320;--free-color:#7fe3a8;--free-bg:#12351f;--discount-color:#9cc2ff;--discount-bg:#132a4d;--normal-color:#c9cdd3;--normal-bg:#2a2d33;--card-bg:#1a1c20;--warn-bg:#3a2f00;--warn-border:#e8c200;--warn-text:#ffe680;--error-text:#ff9c9c;--line-toei-asakusa:#ff6fa8;--line-toei-oedo:#e07fc6;--line-metro-ginza:#ffb14d;--line-bus-toei:#7fe3a8;--line-bus-private:#9cc2ff;--map-muted:#4a4e56;--map-label:#e6e6e6;--focus:#7fb2ff}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:BIZ UDPGothic,BIZ UDゴシック,Hiragino Sans,Yu Gothic,sans-serif;font-size:var(--fs-md);line-height:1.7;padding-bottom:calc(var(--space-6) * 2)}a{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}header{border-bottom:var(--bw) solid var(--border);padding:var(--space-5) 0 var(--space-3)}header .page{position:relative;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.offline-notice,.disclaimer{width:min(calc(100% - var(--gutter) * 2),calc(var(--content-max) - var(--gutter) * 2));margin-inline:auto}main{max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter)}footer{max-width:var(--content-max);margin:var(--space-6) auto 0;padding:0 var(--gutter);color:var(--text-sub);font-size:var(--fs-sm);line-height:1.7}footer:before{content:"";display:block;border-top:var(--bw) solid var(--border);margin-bottom:var(--space-4)}header h1{font-size:var(--fs-xl);margin:0 0 var(--space-1)}.lead{margin:0 0 var(--space-4);color:var(--text-sub);font-size:var(--fs-sm)}main>.lead:first-child{margin-top:var(--space-4)}.page-title{font-size:var(--fs-xl);margin:var(--space-5) 0 var(--space-2);border-left:none;padding-left:0}.site-title{color:inherit;text-decoration:none}.title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.title-row h1{min-width:0;margin:0}.nowrap{white-space:nowrap}.theme-toggle{flex:none;background:var(--bg-panel);border:var(--bw) solid var(--border);color:var(--text);padding:var(--space-2) var(--space-3);font-size:var(--fs-sm);min-width:64px}.offline-notice{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--bw-strong) solid var(--warn-border);border-radius:var(--radius-sm);background:var(--warn-bg);color:var(--warn-text);font-size:var(--fs-sm);line-height:1.6}.disclaimer{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--warn-bg);border:var(--bw-strong) solid var(--warn-border);border-radius:var(--radius-sm);color:var(--warn-text);font-size:var(--fs-sm)}.disclaimer p{margin:0;line-height:1.6}@media(max-width:640px){.disclaimer{padding:var(--space-2) var(--space-3)}}section{margin-top:var(--space-5)}h2{font-size:var(--fs-lg);line-height:1.4;margin:0 0 var(--space-3);border-left:var(--bar-w) solid var(--accent);padding-left:var(--space-3)}.panel{background:var(--bg-panel);border:var(--bw) solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}label{display:block;font-size:var(--fs-sm);line-height:1.5;margin-bottom:var(--space-1);color:var(--text-sub)}.field{min-width:0}input[type=text],input[type=number],input[type=time],select{width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);font-size:var(--fs-md);border:var(--bw) solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:inherit}input:focus-visible,select:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button{min-height:var(--tap);padding:var(--space-2) var(--space-4);font-size:var(--fs-md);font-weight:700;border-radius:var(--radius-sm);border:var(--bw) solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;font-family:inherit}button:disabled{opacity:.55;cursor:default}button.secondary{background:var(--bg);color:var(--accent)}.link-btn{background:none;border:none;color:var(--accent);text-decoration:underline;padding:var(--space-2) 0;font:inherit;cursor:pointer}.link-btn.small{font-size:var(--fs-sm);color:var(--text-sub)}.settings-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4) var(--space-3);margin-bottom:var(--space-4)}.field-hint{font-size:var(--fs-sm);color:var(--text-sub);margin:var(--space-2) 0 0}.checkline{display:flex;align-items:center;gap:var(--space-3)}.checkline input{width:24px;height:24px;flex:none;margin:0}.checkline label{flex:1;display:flex;align-items:center;min-height:var(--tap);margin:0;padding:var(--space-2) 0;font-size:var(--fs-md);line-height:1.5;color:var(--text);cursor:pointer}.single-rider-note{font-size:var(--fs-sm);color:var(--text-sub);margin:var(--space-2) 0 0}.favorites{margin-bottom:var(--space-4)}.favorites[hidden]{display:none}.favorites-h{font-size:var(--fs-md);margin:0 0 var(--space-2)}.favorite-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.favorite-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.favorite-name{font-weight:700;flex:1 1 8em;min-width:0;overflow-wrap:anywhere}.favorite-item button{padding:var(--space-2) var(--space-3)}.favorite-add{margin-top:var(--space-2)}.favorite-add label{margin:var(--space-1) 0}.favorite-add-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.favorite-add-row input{flex:1 1 12em;min-width:0}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--space-3) var(--space-5);align-items:start}.label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--tap);margin-bottom:var(--space-1)}.label-row label{margin:0}.label-row button{padding:var(--space-1) var(--space-3);white-space:nowrap}.swap-btn{margin-top:calc(var(--tap) + var(--space-1))}@media(max-width:720px){.search-row{grid-template-columns:minmax(0,1fr)}.swap-btn{margin-top:0;width:100%}}.field-resolved{font-size:var(--fs-sm);margin-top:var(--space-2);color:var(--text-sub);min-height:1.4em}.field-resolved.ok{color:var(--free-color)}.field-resolved.err{color:var(--error-text)}.choices-lead{margin:var(--space-2) 0;font-size:var(--fs-md);font-weight:700;color:var(--text)}.choice-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.choice-btn{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:var(--bw-strong) solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);font:inherit;cursor:pointer}.choice-btn:hover{border-color:var(--accent)}.choice-name{display:block;font-size:var(--fs-md);font-weight:700}.choice-addr{display:block;font-size:var(--fs-sm);color:var(--text-sub)}.depart{margin-top:var(--space-4);display:grid;gap:var(--space-3)}.depart-custom{display:grid;grid-template-columns:repeat(auto-fit,minmax(10em,1fr));gap:var(--space-3)}.depart-custom[hidden]{display:none}.depart input[type=time]{min-height:var(--tap)}.search-actions{margin-top:var(--space-4);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.search-status{font-size:var(--fs-sm);color:var(--text-sub)}#results,#savedList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}#results{margin-top:var(--space-4)}@media(max-width:900px){#results,#savedList{grid-template-columns:minmax(0,1fr)}}.route-card{background:var(--card-bg);border:var(--bw-strong) solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.route-card.selected{border-color:var(--accent)}.route-card-select{display:block;width:100%;text-align:left;background:none;border:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;min-height:auto}.route-card .tag{display:inline-block;font-size:var(--fs-sm);font-weight:700;background:var(--accent);color:var(--accent-text);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);margin-bottom:var(--space-2)}.route-card .tag-sub{margin-left:var(--space-2);background:var(--free-bg);color:var(--free-color)}.route-card .headline{display:flex;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-2)}.route-card .time,.route-card .cost{font-size:var(--fs-num);font-weight:700;line-height:1.3}.route-card .cost{color:var(--accent)}.route-card .time small,.route-card .cost small{font-size:var(--fs-md);font-weight:400;color:var(--text-sub)}.route-card .saving{font-size:var(--fs-sm);color:var(--free-color);margin:var(--space-2) 0}.route-card .saving.none,.route-card .saving del{color:var(--text-sub)}.route-card .transfer-count{font-size:var(--fs-sm);color:var(--text-sub);margin-bottom:var(--space-3)}.legs{margin-top:var(--space-2);border-top:var(--bw) solid var(--border);padding-top:var(--space-1)}.legs summary{cursor:pointer;font-size:var(--fs-sm);font-weight:700;line-height:1.4;min-height:var(--tap);padding:var(--space-3) 0}.legs ul{margin:var(--space-2) 0 var(--space-1);padding-left:var(--space-5);display:grid;gap:var(--space-2)}.howto-list p{margin:var(--space-1) 0 0;line-height:1.6}.walk-links a{display:inline-flex;align-items:center;min-height:var(--tap);line-height:1.5;color:var(--accent);text-decoration:underline}.leg-row{display:flex;justify-content:space-between;gap:var(--space-2);align-items:flex-start;padding:var(--space-2) 0 var(--space-2) var(--space-3);border-left-width:var(--bar-w);border-left-style:solid;margin-top:var(--space-2);font-size:var(--fs-sm)}.leg-row.free{border-left-color:var(--free-color)}.leg-row.discount{border-left-color:var(--discount-color);border-left-style:dashed}.leg-row.normal{border-left-color:var(--normal-color);border-left-style:dotted}.leg-row .leg-main{flex:1}.leg-row .mode-tag{display:inline-block;font-size:var(--fs-xs);font-weight:700;border:var(--bw) solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-1);margin-right:var(--space-2);color:var(--text-sub)}.leg-row .reason{display:block;color:var(--text-sub);margin-top:var(--space-1)}.badge,.tl .fare-badge{font-size:var(--fs-xs);font-weight:700;line-height:1.4;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);white-space:nowrap}.badge.free,.tl .fare-badge.free{color:var(--free-color);background:var(--free-bg)}.badge.discount,.tl .fare-badge.discount{color:var(--discount-color);background:var(--discount-bg)}.badge.normal,.tl .fare-badge.normal{color:var(--normal-color);background:var(--normal-bg)}.tl{--lift:0%;--dot-y:19px;margin:var(--space-2) 0 var(--space-3);background:var(--bg);border:var(--bw) solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-2);text-align:left}:root[data-theme=dark] .tl{--lift:35%}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tl{--lift:35%}}.tl-row{display:grid;grid-template-columns:3em 26px minmax(0,1fr);column-gap:var(--space-2);align-items:stretch}.tl-time{text-align:right;font-size:var(--fs-xs);line-height:20px;color:var(--text-sub);padding-top:calc(var(--dot-y) - 10px);font-variant-numeric:tabular-nums;white-space:nowrap}.tl-rail{position:relative;min-height:100%}.tl-body{padding:var(--space-2) 0;min-width:0}.tl-name{font-weight:700;font-size:var(--fs-md);line-height:1.4;overflow-wrap:anywhere}.tl .transfer-note,.tl .exit-note,.tl .pole-note{display:block;font-size:var(--fs-sm);line-height:1.5;margin-top:var(--space-1);color:var(--text-sub)}.tl .exit-note,.tl .pole-note{max-width:22em;color:var(--text)}.tl .pole-note{font-weight:700}.accessibility-badge{margin-top:var(--space-1);font-weight:400;font-size:var(--fs-xs);line-height:1.4}.accessibility-badge.yes{color:var(--free-color)}.accessibility-badge.limited{color:var(--text-sub)}.accessibility-badge.unknown{color:var(--text-sub);opacity:.75}.tl-leg .tl-rail:before,.tl-station .tl-rail:before,.tl-station .tl-rail:after{content:"";position:absolute;left:50%;width:6px;margin-left:-3px;border-radius:3px}.tl-leg .tl-rail:before{top:0;bottom:0;background:color-mix(in srgb,var(--c),white var(--lift));box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 55%,var(--text))}.tl-station .tl-rail:before{top:0;height:var(--dot-y);background:color-mix(in srgb,var(--cu),white var(--lift));box-shadow:0 0 0 1px color-mix(in srgb,var(--cu) 55%,var(--text))}.tl-station .tl-rail:after{top:var(--dot-y);bottom:0;background:color-mix(in srgb,var(--cd),white var(--lift));box-shadow:0 0 0 1px color-mix(in srgb,var(--cd) 55%,var(--text))}.tl-station.u-none .tl-rail:before,.tl-station.d-none .tl-rail:after{display:none}.tl-leg.walk .tl-rail:before,.tl-station.u-walk .tl-rail:before,.tl-station.d-walk .tl-rail:after{width:0;margin-left:-1.5px;border-radius:0;background:none;box-shadow:none;border-left:3px dotted var(--text-sub)}.tl-dot{position:absolute;left:50%;top:calc(var(--dot-y) - 8px);width:16px;height:16px;margin-left:-8px;box-sizing:border-box;border-radius:50%;background:var(--bg);border:3px solid var(--text);z-index:1}.tl-leg .tl-body{padding:var(--space-1) 0 var(--space-2)}.tl-leg-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-1) var(--space-2)}.tl-leg-name{font-size:var(--fs-sm);font-weight:700;line-height:1.4;overflow-wrap:anywhere}.tl-leg.walk .tl-leg-name{font-weight:400;color:var(--text-sub)}.tl-meta{font-size:var(--fs-sm);color:var(--text-sub);margin-top:var(--space-1)}.tl-stops summary{cursor:pointer;min-height:var(--tap);padding:var(--space-3) 0;line-height:1.4;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.tl-stop-list{margin:0 0 var(--space-2);padding-left:var(--space-5);color:var(--text);line-height:1.6}.tl-stop-list li{margin:0}@media(max-width:480px){.tl{padding:var(--space-3) var(--space-2) var(--space-3) var(--space-1)}.tl-row{grid-template-columns:2.6em 24px minmax(0,1fr);column-gap:var(--space-1)}}.staff-btn,.save-btn{margin-top:var(--space-2);width:100%}.save-btn:disabled{opacity:1;color:var(--text-sub);cursor:default}.saved-title{font-size:var(--fs-md);margin:0 0 var(--space-1)}.saved-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.saved-actions button{flex:1 1 180px}.empty-hint{grid-column:1 / -1;color:var(--text-sub);font-size:var(--fs-sm);padding:var(--space-5);text-align:center;border:var(--bw) dashed var(--border);border-radius:var(--radius-sm)}.staff-dialog{width:min(720px,calc(100vw - var(--space-4) * 2));max-height:calc(100vh - var(--space-4) * 2);border:var(--bw-strong) solid var(--accent);border-radius:var(--radius-md);padding:var(--space-5);background:var(--bg-panel);color:var(--text)}.staff-dialog::backdrop{background:#0009}.staff-heading{font-size:var(--fs-lg);margin:0 0 var(--space-3)}.staff-cert{font-size:24px;font-weight:700;margin:0 0 var(--space-4);line-height:1.5}.staff-requests{margin:0;padding-left:1.4em;display:grid;gap:var(--space-4)}.staff-line{display:block;font-size:var(--fs-md);color:var(--text-sub)}.staff-text{display:block;font-size:28px;font-weight:700;line-height:1.45}.staff-foot{margin:var(--space-5) 0 0;font-size:var(--fs-md);color:var(--text-sub)}.staff-close{margin-top:var(--space-5);width:100%;min-height:52px;font-size:18px}.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 var(--space-5)}.footer-links a{display:inline-flex;align-items:center;min-height:var(--tap)}.back-link{margin:0 0 var(--space-3)}@media(max-width:480px){.title-row h1{font-size:var(--fs-lg)}}.back-link a{display:inline-flex;align-items:center;min-height:var(--tap)}.about section{margin-top:var(--space-5)}.about nav{margin-top:0}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}section[id]{scroll-margin-top:var(--space-4)}.install{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:var(--bw) solid var(--border)}.install p{margin:0 0 var(--space-3)}.install-btn{width:100%;max-width:360px}.install-steps{margin:0 0 var(--space-3)}.install-more summary{cursor:pointer;min-height:var(--tap);padding:var(--space-3) 0;font-weight:700;line-height:1.4}.install-status{margin:var(--space-2) 0 0;color:var(--free-color);font-weight:700}.install-status:empty{display:none}.footer-h{font-size:var(--fs-md);margin:0 0 var(--space-2);color:var(--text)}.footer-sub{font-size:var(--fs-sm);margin:var(--space-4) 0 var(--space-1);color:var(--text)}.footer-list{margin:0 0 var(--space-3);padding-left:var(--space-5)}.route-map{height:380px;margin-top:var(--space-2);border:var(--bw) solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-panel)}@media(max-width:480px){.route-map{height:340px}}.rm-marker span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-sizing:border-box;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1.5px #333;font:700 12px/1 sans-serif;color:#111}.rm-origin span{background:#0b5fff}.rm-dest span{background:#d6006b;border-radius:3px}.rm-station span{background:#fff;border:4px solid #111}.rm-pole span{background:#ffd400;border-radius:4px}.rm-other-pole span{background:#fff;border:2px solid #666;box-shadow:none;font-size:var(--fs-xs)}.rm-tip{font:700 14px/1.3 BIZ UDPGothic,sans-serif;color:#111;background:#fff;border:2px solid #333;border-radius:6px;padding:2px 6px;box-shadow:none}.rm-tip:before{display:none}.suggest-wrap{position:relative}.suggest{position:absolute;left:0;right:0;top:100%;z-index:20;list-style:none;margin:var(--space-1) 0 0;padding:0;max-height:min(24em,50vh);overflow-y:auto;background:var(--bg-panel);border:var(--bw-strong) solid var(--accent);border-radius:var(--radius-sm)}.suggest[hidden]{display:none}.suggest-item{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) var(--space-3);cursor:pointer}.suggest-item+.suggest-item{border-top:1px solid var(--border)}.suggest-item[aria-selected=true],.suggest-item:hover{background:var(--discount-bg)}.suggest-main{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.suggest-kind{font-size:var(--fs-sm);color:var(--text-sub);flex:none}.suggest-detail{flex:1 0 100%;font-size:var(--fs-sm);color:var(--text-sub);overflow-wrap:anywhere}.settings{margin:var(--space-4) 0}.settings>summary{list-style:none;cursor:pointer;min-height:var(--tap);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:var(--bw-strong) solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel);font-size:var(--fs-md);font-weight:700;line-height:1.5}.settings>summary::-webkit-details-marker{display:none}.settings>summary:before{content:"▶";font-size:var(--fs-sm);color:var(--accent);flex:none}.settings[open]>summary:before{content:"▼"}.settings[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.settings>.panel{border-top:none;border-top-left-radius:0;border-top-right-radius:0}
