html.ban-open,html.ban-open body{overflow:hidden!important}
.ban-app,.ban-app *{box-sizing:border-box}
.ban-app{--line:#d8d8dd;--blue:#0a84ff;position:fixed;inset:0;z-index:2147483000;background:#fff;color:#111;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.35;text-align:left;-webkit-font-smoothing:antialiased}
.ban-app button,.ban-app a,.ban-app textarea{font:inherit}
.ban-view{display:none;position:absolute;inset:0;background:#fff;min-height:0}.ban-view.is-active{display:flex;flex-direction:column;min-height:0}
.ban-topbar{height:calc(92px + env(safe-area-inset-top));padding:calc(18px + env(safe-area-inset-top)) 18px 10px;display:grid;grid-template-columns:52px 1fr 52px;align-items:end;border-bottom:1px solid transparent;background:#fff}
.ban-topbar h1{margin:0;text-align:center;font-size:24px;line-height:44px;font-weight:800}.ban-icon-btn{border:0;background:transparent;font-size:35px;color:var(--blue);height:44px}.ban-top-spacer{display:block}
.ban-main{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior-y:contain;padding-bottom:96px}.ban-favorites{border-top:1px solid var(--line)}
.ban-favorite{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:9px 17px;display:flex;align-items:center;gap:10px;text-align:left;color:#111;text-decoration:none}.ban-favorite:active{background:#efeff4}.ban-fav-text{min-width:0;flex:1;display:flex;flex-direction:column}.ban-fav-text strong{font-size:24px;line-height:1.18;font-weight:800}.ban-fav-text span{font-size:18px;line-height:1.3;margin-top:2px}.ban-fav-text small{font-size:15px;color:#666;margin-top:2px}.ban-fav-text em{font-size:11px;color:#999;font-style:normal;margin-top:4px}.ban-favorite.is-archived{opacity:.58}.ban-chev{font-size:38px;color:#c7c7cc;font-weight:300}
.ban-search-card{width:100%;border:0;border-bottom:1px solid var(--line);background:#f5f5fa;padding:8px 16px;display:grid;grid-template-columns:62px 1fr 24px;gap:8px;align-items:center;text-align:left;color:#111}.ban-search-icon{font-size:55px;line-height:1;color:#666;font-weight:200}.ban-search-card strong{display:block;font-size:25px}.ban-search-card small{display:block;font-size:16px}
.ban-bottom-nav{position:absolute;left:0;right:0;bottom:0;height:calc(70px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(248,248,250,.96);border-top:1px solid #ddd;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}.ban-bottom-nav button{height:70px;border:0;background:transparent;color:var(--blue);font-size:26px}.ban-bottom-nav button:last-child{font-size:22px}
.ban-notice{position:sticky;top:5px;margin:0 auto;z-index:4;width:max-content;max-width:90%;background:#222;color:#fff;padding:8px 12px;border-radius:9px}

.ban-detail-header{height:calc(92px + env(safe-area-inset-top));padding:calc(18px + env(safe-area-inset-top)) 12px 10px;display:grid;grid-template-columns:95px 1fr 95px;align-items:end;background:#fff;border-bottom:1px solid #eee}.ban-detail-header h2{font-size:23px;line-height:44px;margin:0;text-align:center;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ban-back{height:44px;border:0;background:transparent;color:var(--blue);font-size:22px;text-align:left;padding:0}.ban-detail-header-space{display:block}
.ban-detail-main{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior-y:contain;padding:22px 18px calc(138px + env(safe-area-inset-bottom))}.ban-current-time{font-size:20px;color:#8e8e93;font-weight:600;padding-bottom:10px;border-bottom:1px solid #ddd}.ban-loading{padding:30px 4px;color:#777;display:flex;align-items:center;gap:10px}
.ban-loading[hidden],.ban-error[hidden],.ban-notice[hidden]{display:none!important}.ban-spinner{width:22px;height:22px;border:3px solid #ddd;border-top-color:#555;border-radius:50%;animation:ban-spin 1s linear infinite}@keyframes ban-spin{to{transform:rotate(360deg)}}
.ban-arrival{padding:9px 3px 14px;border-bottom:1px solid #ddd}.ban-arrival-time{color:#8e8e93;font-size:18px;margin-bottom:2px}.ban-arrival-headline,.ban-arrival-status{font-size:28px;line-height:1.12;font-weight:850;letter-spacing:-.02em}.ban-arrival-route{font-size:19px;color:#777;margin-top:6px}.ban-arrival-meta{font-size:17px;color:#999;margin-top:1px}.ban-error{margin-top:22px;padding:16px;border-radius:10px;background:#fff3f3;color:#9b1c1c;font-weight:600}.ban-detail-note{font-size:13px;color:#999;margin:14px 3px 0}
.ban-detail-footer{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;min-height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(248,248,250,.97);border-top:1px solid #ddd}.ban-footer-btn,.ban-footer-link{border:0;background:transparent;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:19px;text-decoration:none}.ban-footer-link{border-left:1px solid #ddd}

.ban-sheet{border:0;border-radius:18px 18px 0 0;padding:0;width:min(720px,100%);max-width:none;margin:auto 0 0;max-height:88vh}.ban-sheet::backdrop{background:rgba(0,0,0,.3)}.ban-sheet-inner{padding:22px 18px calc(25px + env(safe-area-inset-bottom));overflow:auto;max-height:88vh;position:relative}.ban-sheet h2{font-size:25px;margin:0 45px 12px 0}.ban-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:50%;border:0;background:#eee;color:#666;font-size:25px}.ban-primary,.ban-action,.ban-secondary,.ban-danger{display:block;width:100%;padding:13px 14px;border:0;border-radius:11px;text-align:center;text-decoration:none;margin:10px 0;font-weight:700}.ban-primary{color:#fff}.ban-primary.kanachu{background:#1c7b46}.ban-primary.yokohama{background:#1769aa}.ban-action{background:#0a84ff;color:#fff}.ban-secondary{background:#e9e9ed;color:#111}.ban-danger{background:#fff0f0;color:#bd1e1e}.ban-muted,.ban-version{color:#777;font-size:14px}.ban-sheet label{display:block;margin-top:12px}.ban-sheet textarea{display:block;width:100%;margin-top:6px;border:1px solid #ccc;border-radius:8px;padding:8px}
.ban-edit-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid #ddd;padding:9px 0}.ban-edit-row>div:first-child{flex:1;min-width:0}.ban-edit-row strong,.ban-edit-row small{display:block}.ban-edit-row small{color:#777;margin-top:2px}.ban-edit-actions{display:flex;gap:4px}.ban-edit-actions button{border:0;background:#eee;border-radius:7px;padding:7px 8px;color:#222}
@media(min-width:700px){.ban-app{left:50%;right:auto;width:520px;transform:translateX(-50%);box-shadow:0 0 30px rgba(0,0,0,.15)}.ban-arrival-headline,.ban-arrival-status{font-size:26px}}
/* v0.3.2: JavaScriptが動かなくても通常リンクで使えるサーバー描画フォールバック */
.ban-search-card{text-decoration:none}
.ban-bottom-nav a{height:70px;border:0;background:transparent;color:var(--blue);font-size:26px;display:flex;align-items:center;justify-content:center;text-decoration:none}
.ban-back{text-decoration:none;display:flex;align-items:center}
.ban-server-mode .ban-detail-view{display:flex;flex-direction:column}

/* v0.3.5: iOS standalone/PWA がバックグラウンド復帰した際のスクロール固着対策 */
.ban-app.ban-scroll-repair .ban-main,.ban-app.ban-scroll-repair .ban-detail-main,.ban-app.ban-scroll-repair .ban-sheet-inner{-webkit-overflow-scrolling:auto!important;overflow-y:hidden!important}


/* v0.4.0: 五十音バス停検索・お気に入り追加 */
.ban-search-view{background:#fff}
.ban-search-main{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior-y:contain;padding-bottom:calc(36px + env(safe-area-inset-bottom))}
.ban-search-subtitle{padding:9px 18px;color:#666;font-size:15px;min-height:10px;border-bottom:1px solid #eee}
.ban-search-subtitle:empty{display:none}
.ban-search-list{border-top:1px solid var(--line)}
.ban-search-row{width:100%;min-height:62px;border:0;border-bottom:1px solid var(--line);background:#fff;padding:9px 17px;display:flex;align-items:center;gap:10px;text-align:left;color:#111}
.ban-search-row:active{background:#efeff4}.ban-search-row.is-disabled{opacity:.45}
.ban-search-row-text{min-width:0;flex:1}.ban-search-row-text strong{display:block;font-size:23px;line-height:1.2}.ban-search-row-text small{display:block;color:#777;font-size:14px;margin-top:3px}
.ban-search-preview{padding:0 18px 40px}.ban-search-preview:empty{display:none}.ban-preview-now{font-size:20px;color:#8e8e93;font-weight:600;padding:18px 3px 10px;border-bottom:1px solid #ddd}
.ban-search-message{padding:22px 4px;font-size:17px;line-height:1.65}.ban-search-message strong{display:block;font-size:20px;margin-bottom:8px}.ban-search-message p{color:#555}
.ban-add-favorite{margin-top:18px!important}
.ban-scroll-repair .ban-search-main{-webkit-overflow-scrolling:auto!important;overflow-y:hidden!important}
