:root{--fg:#111;--bg:#fff;--page:#f2f4f7;--muted:#4a4a4a;--line:#8a8a8a;--line-soft:#d6dbe1;--surface:#eef1f5;--accent:#0a4f96;--accent-soft:#e6eef8;--accent-fg:#fff;--from:#0a7a3d;--to:#b3261e;--warn-bg:#fff3cd;--warn-fg:#5c3c00;--error:#b00020;--tabs-height:64px;color:var(--fg);background:var(--page);font-family:system-ui,Hiragino Sans,BIZ UDPGothic,Meiryo,sans-serif;font-size:18px;line-height:1.6}:root[data-text=large]{font-size:24px}*{box-sizing:border-box}body{background:var(--page);margin:0}h1{margin:0;font-size:1.25rem}h2{margin:1.25rem 0 .75rem;font-size:1.25rem}p{margin:.25rem 0}a{color:var(--accent)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #e8a400}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.error{color:var(--error);font-weight:700}.empty{background:var(--warn-bg);color:var(--warn-fg);border-radius:8px;padding:.75rem 1rem}.app{max-width:42rem;padding:0 1rem calc(var(--tabs-height) + 1.5rem + env(safe-area-inset-bottom));margin:0 auto}.app-header{padding:.75rem 0 .25rem}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.header-actions{gap:.5rem;margin-left:auto;display:flex}.header-menu{position:relative}.header-menu summary{cursor:pointer;align-items:center;min-height:44px;padding:0 .75rem;list-style:none;display:inline-flex}.header-menu summary::-webkit-details-marker{display:none}.header-menu[open] summary{background:var(--accent-soft)}.header-menu ul{z-index:20;border:1px solid var(--line-soft);background:var(--bg);border-radius:10px;width:max-content;max-width:calc(100vw - 2rem);margin:.25rem 0 0;padding:.25rem 0;list-style:none;position:absolute;right:0;box-shadow:0 4px 16px #00000026}.header-menu a{min-height:48px;color:var(--fg);flex-direction:column;justify-content:center;padding:.25rem 1rem;font-weight:700;text-decoration:none;display:flex}.header-menu li+li a{border-top:1px solid var(--line-soft)}.header-menu-note{color:var(--muted);font-size:.8rem;font-weight:400}.notice{color:var(--muted);font-size:.85rem}.text-size{flex-shrink:0;min-height:44px;padding:0 .75rem}main{padding-top:.5rem}.bottom-tabs{z-index:10;min-height:var(--tabs-height);padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-tabs a{min-height:var(--tabs-height);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.1rem;font-size:.8rem;font-weight:700;text-decoration:none;display:flex}.bottom-tabs a[aria-current=page]{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.tab-icon{font-size:1.3rem;line-height:1}.tab-label{white-space:nowrap}.button-primary{background:var(--accent);width:100%;min-height:52px;color:var(--accent-fg);border:none;border-radius:10px;padding:.5rem 1rem;font-size:1.15rem;font-weight:700}.button-primary:disabled{background:var(--line)}.button-secondary{border:2px solid var(--accent);background:var(--bg);min-height:48px;color:var(--accent);border-radius:10px;padding:.25rem 1rem;font-weight:700}.link-button{min-height:44px;color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.search-card{background:var(--bg);border-radius:14px;flex-direction:column;gap:.75rem;padding:.75rem;display:flex;box-shadow:0 1px 4px #00000026}.od{align-items:center;gap:.5rem;display:flex}.od-rows{border:1px solid var(--line-soft);border-radius:10px;flex-direction:column;flex:1;min-width:0;display:flex}.od-row{min-height:60px;color:var(--fg);text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;padding:.25rem .75rem;display:flex}.od-row+.od-row{border-top:1px solid var(--line-soft)}.od-row-single{border:1px solid var(--line-soft);border-radius:10px;width:100%}.od-mark{border-radius:50%;flex-shrink:0;width:14px;height:14px}.od-mark-from{background:var(--from)}.od-mark-to{border:3px solid var(--to)}.od-label{width:2.6em;color:var(--muted);flex-shrink:0;font-size:.9rem}.od-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.15rem;font-weight:700;overflow:hidden}.od-empty{color:var(--muted);font-weight:400}.od-swap{border:1px solid var(--line-soft);background:var(--bg);width:48px;height:48px;color:var(--accent);border-radius:50%;flex-shrink:0;font-size:1.4rem}.od-swap:disabled{color:var(--line)}.when-line{border:1px solid var(--line-soft);background:var(--bg);min-height:52px;color:var(--fg);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.25rem .75rem;font-weight:700;display:flex}.when-change{color:var(--accent);flex-shrink:0}.when{border:1px solid var(--line-soft);border-radius:10px;margin:0;padding:.75rem}.when legend{padding:0 .25rem;font-weight:700}.when-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.when-row label{flex-direction:column;min-width:0;display:flex}.when input[type=date],.when input[type=time],.date-field input{border:2px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--fg);border-radius:8px;padding:.4rem}.mode{flex-direction:column;margin-top:.5rem;display:flex}.mode label{align-items:center;gap:.5rem;min-height:44px;display:flex}.mode input{width:1.4rem;height:1.4rem}.when-actions{grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem;display:grid}.history{margin-top:1rem}.history-title{color:var(--muted);margin:0 0 .4rem;font-size:1rem}.history ul{background:var(--bg);border-radius:14px;margin:0;padding:0;list-style:none;overflow:hidden;box-shadow:0 1px 4px #00000026}.history li{display:flex}.history li+li{border-top:1px solid var(--line-soft)}.history-item{min-width:0;min-height:56px;color:var(--fg);text-align:left;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:.5rem;padding:0 .75rem;font-weight:700;display:flex}.history-remove{border:none;border-left:1px solid var(--line-soft);width:48px;color:var(--muted);background:0 0;flex-shrink:0;font-size:1.2rem}.history-note{font-size:.85rem}.stop-select{z-index:30;background:var(--page);flex-direction:column;display:flex;position:fixed;inset:0}.stop-select-head{background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.back{width:48px;height:48px;color:var(--accent);background:0 0;border:none;flex-shrink:0;font-size:1.5rem;font-weight:700}.stop-select-head input{border:2px solid var(--accent);background:var(--bg);min-width:0;min-height:48px;color:var(--fg);border-radius:10px;flex:1;padding:.5rem}.stop-select-body{flex:1;width:100%;max-width:42rem;margin:0 auto;padding:.75rem 1rem 2rem;overflow-y:auto}.select-heading{color:var(--muted);margin:1rem 0 .4rem;font-size:.95rem}.select-list{background:var(--bg);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden;box-shadow:0 1px 3px #0000001f}.select-list li+li{border-top:1px solid var(--line-soft)}.select-list button{width:100%;min-height:52px;color:var(--fg);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;padding:.25rem .75rem;font-weight:700;display:flex}.select-list .muted{flex-shrink:0;font-size:.85rem;font-weight:400}.select-hint,.select-note{color:var(--muted);font-size:.85rem}.select-place .place-brt,.place-brt{background:var(--accent-soft);border-radius:8px;margin:.25rem 0 .5rem;padding:.4rem .6rem;font-size:.95rem}.sentence-card{background:var(--bg);border:2px solid var(--accent);border-radius:12px;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.sentence-card .select-heading{margin-top:0}.sentence-card dl{grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:0;display:grid}.sentence-card dt{color:var(--muted)}.sentence-card dd{margin:0;font-weight:700}.route-group{margin-bottom:.4rem}.route-group summary{background:var(--bg);min-height:48px;color:var(--accent);cursor:pointer;border-radius:10px;align-items:center;padding:0 .75rem;font-weight:700;display:flex}.route-group[open] summary{margin-bottom:.25rem}.suspended{background:var(--warn-bg);color:var(--warn-fg);border-radius:4px;margin-left:.5rem;padding:0 .4rem;font-size:.85rem;font-weight:700;display:inline-block}.results h2{margin-bottom:.25rem}.return-last{background:var(--bg);border:2px solid var(--fg);border-radius:12px;margin:.75rem 0;padding:.6rem .9rem;font-weight:700}.return-last-label{font-size:.9rem;display:block}.time-big{font-variant-numeric:tabular-nums;font-size:1.5rem}.paging{border:2px solid var(--accent);background:var(--bg);width:100%;min-height:48px;color:var(--accent);border-radius:10px;margin:.25rem 0 .75rem;font-weight:700}.paging:disabled{border:1px dashed var(--line);color:var(--muted);font-weight:400}.result-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.result-item{background:var(--bg);border-radius:14px;box-shadow:0 1px 4px #00000026}.result-item>summary{cursor:pointer;flex-direction:column;gap:.1rem;padding:.6rem .9rem;list-style:none;display:flex}.result-item>summary::-webkit-details-marker{display:none}.result-item>summary:after{content:"詳しく見る ›";color:var(--accent);align-self:flex-end;font-size:.85rem}.result-item[open]>summary:after{content:"閉じる"}.result-meta{color:var(--muted)}.result-badge{background:var(--warn-bg);color:var(--warn-fg);border-radius:4px;align-self:flex-start;padding:0 .5rem;font-size:.85rem;font-weight:700}.result-item .journey{border:none;border-top:1px solid var(--line-soft);border-radius:0;margin:0}.result-item .journey-head{display:none}.journey{padding:.5rem .9rem .75rem}.journey-head{margin:0 0 .5rem;font-size:1.1rem}.journey-meta{color:var(--muted);font-size:1rem;font-weight:400;display:block}.warning{background:var(--warn-bg);color:var(--warn-fg);border-left:6px solid #c77700;border-radius:4px;margin:.5rem 0;padding:.5rem .75rem;font-weight:700}.warning p{margin:.15rem 0}.legs{margin:0;padding:0;list-style:none}.leg{border-left:6px solid var(--accent);margin:.5rem 0;padding:.25rem 0 .25rem .75rem}.leg-walk{border-left-style:dotted}.leg-route{font-weight:700}.transfer{background:var(--surface);border-radius:4px;margin-bottom:.5rem;padding:.25rem .5rem;font-weight:700}.tag{border:1px solid var(--fg);text-align:center;border-radius:4px;min-width:4em;margin-right:.25rem;padding:0 .4rem;font-size:.9rem;display:inline-block}.stop-list{margin:.25rem 0;padding-left:1.5rem}details summary{cursor:pointer}.legs details summary{min-height:44px;color:var(--accent);align-items:center;display:flex}.page-links{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin:.5rem 0;display:flex}.date-field{flex-direction:column;max-width:14rem;margin:.75rem 0;display:flex}.timetable h3,.route-direction h3{margin:1.25rem 0 .5rem;font-size:1.15rem}.timetable table{border-collapse:collapse;background:var(--bg);font-variant-numeric:tabular-nums;width:100%}.timetable th,.timetable td{border:1px solid var(--line);text-align:left;padding:.3rem .6rem}.timetable thead th{background:var(--surface)}.timetable tbody th{text-align:right;width:3.5em;font-size:1.2rem}.minute{min-width:2.2em;font-size:1.2rem;font-weight:700;display:inline-block}.link-list{padding:0;list-style:none}.link-list a{background:var(--bg);border-radius:12px;margin-bottom:.5rem;padding:.75rem;text-decoration:none;display:block;box-shadow:0 1px 3px #0000001f}.route-stops{margin:0;padding-left:2rem}.route-stops li{border-bottom:1px solid var(--line-soft);padding:.3rem 0}.route-stops a{min-height:32px;display:inline-block}.pattern-title{background:var(--fg);color:var(--bg);margin:1.5rem 0 .25rem;padding:.25rem .5rem;font-size:1.3rem}.pattern-note{font-size:.9rem}.alternatives{margin-top:1.5rem}.alternative{background:var(--bg);border-radius:14px;margin-bottom:.6rem;padding:.25rem .9rem;box-shadow:0 1px 4px #00000026}.alternative summary{color:var(--fg);flex-direction:column;align-items:flex-start;padding:.4rem 0;display:flex}.alternative-name{color:var(--accent);font-weight:700}.alternative dl{margin:.5rem 0}.alternative dt{font-weight:700}.alternative dd{margin:0 0 .5rem}.contacts{margin:.5rem 0;padding:0;list-style:none}.contacts li{margin:.4rem 0}.tel{border:2px solid var(--accent);font-variant-numeric:tabular-nums;border-radius:8px;min-height:44px;padding:.4rem .75rem;font-weight:700;text-decoration:none;display:inline-block}.source-line{color:var(--muted);font-size:.85rem}.source{background:var(--bg);border-top:2px solid var(--fg);margin-top:2.5rem;padding:1rem;font-size:.95rem}.source h2{margin-top:0;font-size:1.1rem}.source dl{grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:.75rem 0;display:grid}.source dt{font-weight:700}.source dd{margin:0}.source-note{color:var(--warn-fg);font-weight:700}.source-pdfs{margin:0;padding-left:1.25rem}.source-pdfs li{margin:.25rem 0}.print-only{display:none}@media print{:root,:root[data-text=large]{background:#fff;font-size:11pt}body{background:#fff}.no-print{display:none!important}.app{max-width:none;padding:0}.print-patterns{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:0 1.5rem;display:grid}.print-pattern,.timetable{break-inside:avoid}.pattern-title{-webkit-print-color-adjust:exact;print-color-adjust:exact}.source{break-inside:avoid;background:0 0;font-size:8.5pt}.print-only{word-break:break-all;display:inline}}.contact{border-bottom:1px solid var(--line-soft);margin-bottom:1.5rem;padding-bottom:1rem}.contact-link{align-items:center;text-decoration:none;display:inline-flex}.title-row h1{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.title-link{color:var(--fg);align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.title-icon{width:36px;height:36px}.title-sub{color:var(--muted);font-size:.85rem;font-weight:400}.route-source{font-size:.9rem}.leg-source{margin-top:.25rem}.sources-here{margin:1rem 0;font-size:.9rem}.sources-here ul{margin:.25rem 0;padding-left:1.25rem}.sources-here li{margin:.25rem 0}.from-here{justify-content:center;align-items:center;margin:.75rem 0;text-decoration:none;display:flex}.osm-credit{color:var(--muted);margin-top:.75rem;font-size:.8rem}.alternatives-brief{background:var(--bg);border-radius:14px;margin-top:1.5rem;padding:.75rem 1rem;box-shadow:0 1px 4px #00000026}.alternatives-brief h2{margin-top:0;font-size:1.1rem}.alternatives-brief ul{margin:0 0 .75rem;padding:0;list-style:none}.alternatives-brief li{border-bottom:1px solid var(--line-soft);flex-direction:column;align-items:flex-start;gap:.15rem;padding:.5rem 0;display:flex}.about h3{margin:1.25rem 0 .25rem;font-size:1.05rem}.about ul{padding-left:1.25rem}.about .source{margin-top:1.5rem}.mode-buttons{grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;display:grid}.mode-buttons button{font-size:.95rem}:root[data-text=large] .mode-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-buttons button,.day-buttons button{white-space:nowrap;border:2px solid var(--line-soft);background:var(--bg);min-height:48px;color:var(--fg);border-radius:10px;padding:0 .1rem;font-weight:700}.mode-buttons button[aria-pressed=true],.day-buttons button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.day-buttons{grid-template-columns:auto auto 1fr;gap:.4rem;margin-top:.6rem;display:grid}.day-buttons button{padding:0 .9rem}.day-buttons input,.time-field input{border:2px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--fg);border-radius:8px;padding:.4rem}.time-field{flex-direction:column;margin-top:.6rem;display:flex}.first-last{color:var(--muted);margin:-.25rem 0 .4rem}.first-last strong{color:var(--fg);font-size:1.1rem}a.history-item{text-decoration:none}.chat{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.msg{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px;max-width:85%;padding:.65rem .9rem}.msg.bot{background:var(--bg);border-top-left-radius:4px}.msg.me{background:var(--accent);color:var(--accent-fg);border-top-right-radius:4px;justify-self:end}.chat-slot{margin-top:.75rem}.choices{flex-wrap:wrap;gap:.5rem;display:flex}.choice{border:2px solid var(--accent);background:var(--bg);min-height:48px;color:var(--accent);border-radius:999px;align-items:center;padding:.25rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.choice.sub{border-color:var(--line);color:var(--muted)}.composer{gap:.5rem;display:grid}.composer textarea{border:2px solid var(--line);width:100%;min-height:8rem;font:inherit;resize:vertical;border-radius:14px;padding:.75rem}.composer .row{justify-content:flex-end;display:flex}.composer-send{width:auto;min-width:8rem}.contact-note{margin-top:1.5rem;font-size:.9rem}.ai-entry{border:1px solid var(--line-soft);background:var(--bg);min-height:48px;color:var(--accent);border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem 1rem;font-weight:700;text-decoration:none;display:flex}.ai-card{background:var(--bg);border-radius:12px;gap:.75rem;margin-top:1rem;padding:1rem;display:grid}.ai-card h3{margin:0}.ai-card label{gap:.25rem;font-weight:700;display:grid}.ai-card fieldset{border:none;gap:.5rem;margin:0;padding:0;display:grid}.ai-card legend{margin-bottom:.5rem;padding:0;font-weight:700}.ai-card input,.ai-card select,.ai-draft{border:2px solid var(--line);background:var(--bg);width:100%;min-height:48px;font:inherit;border-radius:10px;padding:.5rem .75rem;font-weight:400}.ai-row{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;display:grid}.ai-card .choice[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.ai-draft{resize:vertical;min-height:10rem}.ai-attached summary{min-height:44px;color:var(--accent);cursor:pointer;padding:.5rem 0;font-weight:700}.ai-attached pre{background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;max-height:20rem;padding:.75rem;font-size:.8rem;overflow:auto}.ai-go{gap:.5rem;display:grid}.ai-go .button-secondary{width:100%}.ai-open{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.ai-open a{align-items:center;min-height:44px;display:inline-flex}.ai-example{border-left:4px solid var(--accent);background:var(--accent-soft);padding:.75rem 1rem}
