/* Shared hierarchy and touch targets; Raku keeps its large beveled controls. */
.home-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 4px}
.home-shortcuts button{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;min-height:54px;padding:7px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-align:left}
.home-shortcuts button:only-child{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start}
.home-shortcuts strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.home-shortcuts .icon{width:16px;height:16px}.shortcut-label{font-size:10px;color:var(--muted)}
body[data-text-size=large] .home-shortcuts strong{font-size:15px}
.help-content{padding:0 20px 20px;line-height:1.7}.help-content h3{margin:22px 0 6px;font-size:17px}.help-content p{margin:0;font-size:15px}.help-content .real-highway-course{margin:10px 0;display:block;width:100%}
.confirm-help{display:flex;align-items:center;justify-content:center;gap:7px;background:transparent;color:var(--muted);border:0;min-height:44px;font-size:13px;width:100%;padding:8px}.confirm-help .icon{width:16px;height:16px}
#routeConfirmPanel .confirm-scroll{padding-bottom:4px}#routeConfirmPanel .confirm-actions{flex:none}
#routeConfirmPanel #confirmAddress{line-height:1.5;margin:4px 0 8px}
body:not(.raku) #routeConfirmPanel #confirmName{margin:8px 0 0}
body:not(.raku) #routeConfirmPanel .confirm-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
body:not(.raku) #routeConfirmPanel .confirm-actions button{min-height:52px;margin:0}body:not(.raku) #routeConfirmPanel .rehearsal-start{padding:10px 16px}
body:not(.raku) .route-sheet-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:0 12px 5px}
body:not(.raku) .route-sheet-handle{grid-column:1/-1;min-height:24px;font-size:0}.route-sheet-handle i{width:36px;height:4px}
body:not(.raku) .route-sheet-header>.panel-title{min-width:0;margin:0;gap:8px}
body:not(.raku) .route-sheet-header .icon-button{width:44px;height:44px}
.route-title-copy{min-width:0;flex:1}.route-title-copy small{display:block;color:var(--muted);font-size:10px;line-height:1.3}.route-title-copy h2{margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.raku) .route-sheet-header h2{font-size:16px}
body:not(.raku) .route-sheet-tools{gap:4px;align-self:center}.route-sheet-tools button{min-height:44px}
body:not(.raku) .route-sheet-tools button{width:44px;height:44px;min-height:44px;flex:none;font-size:0;padding:4px}
body:not(.raku) .route-sheet-tools button::after{display:block;font-size:12px;font-weight:700;line-height:1.4}
body:not(.raku) .route-sheet-tools [data-sheet-up]::after{content:'一覧\A 拡大';white-space:pre}
body:not(.raku) #routePanel[data-sheet-state=full] [data-sheet-up]::after{content:'一覧\A 全画面'}
body:not(.raku) .route-sheet-tools [data-sheet-down]::after{content:'地図\A 拡大';white-space:pre}
body:not(.raku) #routePanel[data-sheet-state=full] [data-sheet-down]::after{content:'通常\A 表示'}
body:not(.raku) #routePanel[data-sheet-state=map] [data-sheet-up]::after{content:'一覧\A 戻す'}
body:not(.raku) #routePanel .search-conditions{margin:0 0 4px}
body:not(.raku) #routePanel .search-conditions>summary{min-height:44px;display:flex;align-items:center;gap:6px;font-size:13px}
body:not(.raku) #routePanel .search-conditions>summary::before{content:'▸'}body:not(.raku) #routePanel .search-conditions[open]>summary::before{content:'▾'}
body:not(.raku) #routePanel #routeSearchStatus{margin:0 0 5px;line-height:1.4}
body:not(.raku) #routeChoices .route-result-select{padding-top:9px;padding-bottom:9px;gap:5px 8px}
body:not(.raku) #routeChoices .route-result-metrics>strong{font-size:25px}
body[data-text-size=large]:not(.raku) #routeChoices .route-result-metrics>strong{font-size:28px}
@media(max-width:600px) and (orientation:portrait){body:not(.raku) #app #routePanel[data-sheet-state=half]{max-height:60dvh}}
/* Fewer persistent controls leaves space for the route and junction view. */
#app[data-mode=navigation] .map-controls .appearance-controls{display:none!important}
#app:not([data-mode=navigation]) #navControls{display:none!important}
#app[data-mode=navigation] #navControls:not([hidden]){display:flex;flex-direction:column;gap:6px}
#app[data-mode=navigation] .map-controls .desktop-settings{display:none}
#app[data-mode=navigation] .map-controls button[data-action=repeat]{color:var(--ink)}
#app[data-mode=navigation] .guidance-copy h1{font-weight:800}
.settings-category-menu{display:grid;gap:10px;padding:4px 0 12px}
.settings-category-menu button{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:78px;padding:14px 16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;text-align:left}
.settings-category-menu strong{display:block;font-size:19px;margin-bottom:5px}.settings-category-menu small{display:block;color:var(--muted);font-size:13px;line-height:1.5}
.settings-category-menu button>span:last-child{font-size:26px;color:var(--muted)}
.settings-category-back{min-height:44px;padding:8px 12px;margin:0 0 12px;font-size:15px}.settings-category-title{font-size:22px!important;margin:4px 0 16px!important}
.settings-category[hidden],.settings-category-menu[hidden],.settings-category-back[hidden],.settings-category-title[hidden]{display:none!important}
.settings-category .setting-link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px}
body.raku #rakuRouteConditionsDialog{background:var(--surface);color:var(--ink);max-height:calc(100dvh - 24px);overflow:auto}
body.raku .raku-condition-switch{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:14px;min-height:64px;padding:12px;margin:10px 0;border:1px solid var(--line);border-radius:8px;font-size:18px;font-weight:700;line-height:1.5}
body.raku .raku-condition-switch input{appearance:none;flex:none;width:50px;height:30px;min-height:30px;border-radius:20px;background:#a4acb7;position:relative;border:1px solid #647082;cursor:pointer}
body.raku .raku-condition-switch input::after{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0004}
body.raku .raku-condition-switch input:checked{background:#254f7e}body.raku .raku-condition-switch input:checked::after{left:23px}
body.raku #app[data-mode=navigation] .map-controls .appearance-controls{display:none!important}
body.raku #app[data-mode=navigation] #navControls:not([hidden]){display:flex!important;flex-direction:column}
body.raku #app[data-mode=navigation] .map-controls #voiceButton,body.raku #app[data-mode=navigation] .map-controls [data-action=repeat]{color:#fff;white-space:pre-line;font-size:15px}
body.raku .confirm-help{min-height:44px;font-size:13px;margin-top:6px}body.raku .route-title-copy small{color:inherit;font-size:12px}body.raku .route-title-copy h2{font-size:19px!important}
@media(max-width:350px){body.raku .raku-condition-switch{font-size:16px;padding:10px;gap:8px}body.raku #app[data-mode=navigation] .map-controls{gap:4px}}
@media(orientation:landscape) and (max-height:520px){body.raku #app[data-mode=navigation] #navControls:not([hidden]){display:contents!important}body.raku #app[data-mode=navigation] .map-controls .appearance-controls{display:none!important}.settings-category-menu{grid-template-columns:repeat(2,minmax(0,1fr))}}
#app[data-mode=navigation] #navControls:not([hidden]){display:flex!important;padding:0;background:none;box-shadow:none;border-radius:0}
@media(max-height:730px) and (orientation:portrait){body.raku #app[data-mode=navigation] .map-controls .zoom-group{display:none!important}}
body.raku #app[data-mode=navigation] .map-controls .control-group.appearance-controls{display:none!important}
@media(max-height:730px) and (orientation:portrait){body.raku #app[data-mode=navigation] .map-controls .control-group.zoom-group{display:none!important}}
@media(max-height:730px) and (orientation:portrait){
 body:not(.raku) #app[data-mode=navigation] .map-controls{display:grid;grid-template-columns:44px 44px;width:94px;gap:6px;bottom:calc(130px + var(--safe-bottom))}
 body:not(.raku) #app[data-mode=navigation] #navControls:not([hidden]){display:contents!important}
 body:not(.raku) #app[data-mode=navigation] .map-controls .round-button,body:not(.raku) #app[data-mode=navigation] .map-controls #speedMeter,body:not(.raku) #app[data-mode=navigation] .map-controls #speedLimitBadge{width:44px;height:44px;min-height:44px}
 body:not(.raku) #app[data-mode=navigation] .locate-button{grid-column:2}
}
@media(orientation:landscape) and (max-height:520px){
 body:not(.raku) #app[data-mode=navigation] .map-controls{top:12px;bottom:auto;right:10px;display:grid;grid-template-columns:44px 44px;width:94px;gap:6px}
 body:not(.raku) #app[data-mode=navigation] #navControls:not([hidden]){display:contents!important}
 body:not(.raku) #app[data-mode=navigation] .map-controls .round-button,body:not(.raku) #app[data-mode=navigation] .map-controls #speedMeter,body:not(.raku) #app[data-mode=navigation] .map-controls #speedLimitBadge{width:44px;height:44px;min-height:44px}
 body:not(.raku) #app[data-mode=navigation] .locate-button{grid-column:2}
 body:not(.raku) #app[data-mode=navigation] .guidance-stack{left:10px;right:116px;width:auto}
}
body.raku #app[data-mode=navigation] .map-controls [data-action=repeat]{line-height:1.15}

/* Manual update controls share results without interrupting an active trip. */
.menu-update-block[hidden]{display:none!important}
.raku-menu-bottom .check-update-button,.menu-update-status{grid-column:1/-1}
.menu-update-status{margin:0 20px 16px;line-height:1.5;overflow-wrap:anywhere}
.raku-menu-bottom .menu-update-status{margin:0;font-size:16px}
@media(max-height:650px) and (orientation:portrait){
 body.raku .raku-menu .raku-app-name,body.raku .raku-search small,body.raku .raku-menu-list .icon,body.raku .raku-menu-list button>span:last-child{display:none}
 body.raku .raku-menu-body{padding:8px;gap:8px}
 body.raku .raku-search{min-height:64px}
 body.raku .raku-menu-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:8px}
 body.raku .raku-menu-list button{min-height:60px;font-size:20px;line-height:1.2;padding:6px;overflow-wrap:anywhere}
 body.raku .raku-menu-bottom{gap:8px}
}
