/* Layout contract: fixed app chrome, one scroll region per working panel. */
:root{font-family:Pretendard,"Noto Sans KR","Malgun Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#f5f7f8;--line:#dce3e1;--shadow:0 6px 20px #173f300a}
.app-header{background:#fff}.brand-mark{transform:none}.app-shell{padding-top:16px}
.data-health{border-color:transparent;background:transparent;border-radius:8px;margin-bottom:12px}
.data-health:not([open]):not(.warning){background:transparent;border-color:transparent}
.data-health summary{min-height:44px;padding:4px 8px;gap:12px}
.data-health summary>span:nth-child(2){display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}
.data-health summary small{font-size:15px;margin:0}.data-health summary>b{font-size:16px}
.data-health-body p,.data-health-body dl>div{font-size:16px}
.date-tab{transition:background-color 140ms,color 140ms,border-color 140ms}
.date-tab strong{font-size:17px}.date-tab span{font-size:15px}
.date-tab.active{background:#174c3a;color:#fff;border-color:#174c3a;box-shadow:none}
.date-tab.active strong{color:#fff}
.purpose-section{border:0;background:transparent;padding:6px 0 10px}
.purpose-section>strong{display:none}.purpose-chip{min-height:40px}
.section-header h1{font-size:32px}.calendar-hint,.recommend-lead{font-size:17px;line-height:1.6}
.recommend-results{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px}
#recommendForm{grid-template-columns:repeat(3,minmax(0,1fr))}
#recommendForm .recommend-location{grid-column:1/3}
#recommendForm .recommend-submit{grid-column:3}
.recommend-results>.route-option:only-of-type{grid-column:1/-1}
.route-option{border-color:#cad7cf;box-shadow:none}.route-option>header{padding:16px 18px;background:#174c3a}
.route-option header span,.route-option-stats span{font-size:16px}.route-option-stats b{font-size:19px}
.route-option ol{padding:6px 18px}.route-option li{padding:16px 0;gap:12px}
.route-option li time,.route-option li small,.route-option-note{font-size:17px}
.route-option li strong{font-size:21px;line-height:1.5}.route-option li small{white-space:normal;overflow-wrap:anywhere}
.route-option-actions button{font-size:17px}.route-option-note{padding:12px 18px;line-height:1.6}
@media(max-width:759px){#recommendForm .recommend-location,#recommendForm .recommend-submit{grid-column:1/-1}.data-health summary>span:nth-child(2){display:block}.data-health summary small{margin-top:3px}.section-header h1{font-size:28px}}
.explore-summary{overflow-wrap:anywhere}.explore-card button{min-width:0;max-width:100%}.explore-toolbar select{max-width:100%}
.explore-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.explore-toolbar p{color:#53615a;font-size:18px}.explore-toolbar label{white-space:nowrap}.explore-toolbar select{border:1px solid #b7c9be;border-radius:8px;padding:8px;background:#fff}
#eventList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;background:transparent;border:0}.explore-card{display:flex;flex-direction:column;min-width:0;border:1px solid #cad7cf;background:white;border-radius:16px;padding:22px}.explore-host{margin:0;color:#157a4d;font-weight:750}.explore-card h2{margin:8px 0;font-size:24px}.explore-card h2 button{border:0;background:none;text-align:left;padding:0;font-weight:800;overflow-wrap:anywhere}.explore-summary{line-height:1.65;font-size:20px}.explore-card dl{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;margin-top:auto;font-size:18px}.explore-card dt{color:#53615a}.explore-card dd{margin:0;overflow-wrap:anywhere}.explore-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.explore-actions button{border:1px solid #afc5b7;border-radius:9px;background:white;padding:10px}.explore-actions button:last-child{background:#d9ff57}
#recommendForm{padding:24px;background:#fff;border:1px solid #b7c9be;border-top:4px solid #157a4d;border-radius:16px;gap:16px}.recommend-form-title{font-size:25px;margin:24px 0 12px}.recommend-form label span{font-size:17px}.recommend-submit{font-size:20px!important;min-height:52px}.route-cases{padding-top:24px;border-top:1px solid #cad7cf;margin-top:32px}.case-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.case-choice{padding:18px}.case-choice span{font-size:18px}.case-choice small{font-size:17px}.case-actions{position:sticky;bottom:80px;background:#fff;padding:10px;border:1px solid #c5d4ca;border-radius:12px;z-index:2}
@media(max-width:759px){#eventList{grid-template-columns:1fr}.explore-toolbar{align-items:stretch;flex-direction:column;gap:8px}.explore-card{padding:18px}#recommendForm{padding:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.recommend-location,.recommend-submit{grid-column:1/-1}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-choice{padding:14px}.case-choice strong{font-size:20px}.case-actions{bottom:78px}}
.preview-price{display:block;margin-top:7px;font-size:18px;color:#53615a}
body.route-active #routeView .map-card{z-index:0}body.route-active>footer{visibility:hidden}
:root{font-size:19px;--muted:#53615a}
body{line-height:1.55}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #2764ed;outline-offset:3px}
button,input,select{min-height:44px}input[type=checkbox]{min-height:20px}input,select{font-size:18px!important}
.large-text .preview-description,.large-text .decision-summary,.large-text .dialog-body p,.large-text .list-row p{font-size:21px!important;line-height:1.7!important}
.large-text .map-list-event h2,.large-text .decision-main strong,.large-text .list-row h2{font-size:24px!important;line-height:1.45!important}
.decision-card{padding:18px}.decision-meta{flex-wrap:wrap;row-gap:6px}.decision-stack{gap:16px}.decision-card+.decision-card{margin-top:14px}.timeline-slot{padding-block:14px}.decision-add{min-height:48px}.list-row{padding-block:18px}.list-row>div{min-width:0}.list-row h2{overflow-wrap:anywhere}.list-row time{font-size:18px}.section-header{gap:12px}.section-header h1{line-height:1.3}.nav-item{min-height:48px;font-size:16px}
.toast{white-space:normal;text-align:center;width:max-content;line-height:1.5}.event-dialog{max-height:calc(100dvh - 32px);overscroll-behavior:contain;scrollbar-gutter:stable}.event-dialog .dialog-close{position:sticky;top:12px;display:block;margin:12px 12px -48px auto;width:44px;height:44px;z-index:10}.dialog-body{padding-top:54px}.dialog-body dl{grid-template-columns:88px minmax(0,1fr);gap:12px}.dialog-body dd{overflow-wrap:anywhere}.dialog-actions{gap:10px}.dialog-actions>*{min-height:48px}.dialog-body small{font-size:16px}body:has(dialog[open]){overflow:hidden}
.map-browser{min-height:0;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior:contain;overflow-x:hidden}.map-search{display:block;position:sticky;top:0;z-index:2;background:#fff;padding:12px 0;font-size:18px;font-weight:700}.map-search input{width:100%;display:block;margin-top:8px;padding:12px;border:1px solid #b7c9be;border-radius:10px}.map-list-event{padding:22px 0;border-top:1px solid #dce5df}.map-list-event h2{margin:8px 0;overflow-wrap:anywhere}.map-list-event time{font-weight:750;color:#157a4d}.map-list-event small{display:block;line-height:1.5;color:#53615a;margin:10px 0}.map-list-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.map-list-actions button{min-height:46px;padding:8px 4px;border:1px solid #b7c9be;border-radius:9px;background:#fff;font-size:17px}.map-list-actions [data-map-select]{background:#d9ff57!important}.map-list-actions button:last-child:not([data-map-select]){background:#fff}.map-list-count{font-size:17px;color:#53615a}.map-list-close,#mapListToggle{display:none}
.venue-events article{grid-template-columns:minmax(0,1fr) 44px}.venue-event-main strong{white-space:normal;font-size:18px;line-height:1.45}.venue-event-main small,.map-popup time{font-size:16px}.venue-popup .venue-event-add{width:44px;height:44px;min-height:44px}.venue-hover-tooltip{max-height:65dvh;overflow:hidden}.route-sheet-toggle{min-height:66px}.route-sheet-toggle strong{font-size:19px}.route-sheet-toggle small{font-size:16px}
@media(min-width:1000px){
 body.route-active #routeView.active{--sidebar:clamp(410px,32vw,490px);display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr)}
 body.route-active #routeView .section-header,body.route-active #routeView .map-route-summary,body.route-active #routeView .map-route-controls,body.route-active #routeView .map-browser{position:relative;inset:auto;width:auto;grid-column:1;margin:0;box-shadow:none;min-width:0}
 body.route-active #routeView .section-header{grid-row:1;padding:18px 20px}
 body.route-active #routeView .map-route-summary{grid-row:2;margin:0 20px 12px}
 body.route-active #routeView .map-route-controls{grid-row:3;margin:0 20px 8px;gap:8px}
 body.route-active #routeView .map-browser{grid-row:4;padding:0 20px 20px;overflow-y:auto}
 body.route-active #routeView .map-card{position:relative;inset:auto;grid-column:2;grid-row:1/5;min-width:0;min-height:0}
 body.route-active #routeView .map-legend{left:calc(var(--sidebar) + 20px)}
 body.route-active #routeView .route-sheet{left:calc(var(--sidebar) + 16px)}
 .decision-card+.decision-card{margin-top:0}
}
@media(max-width:999px){
 body.route-active #routeView.active{display:flex;flex-direction:column}
 body.route-active #routeView .section-header{position:relative;inset:auto;margin:0;padding:10px 12px;border:0;border-radius:0;box-shadow:none;flex-shrink:0}
 body.route-active #routeView .section-header h1{font-size:21px}
 body.route-active #routeView .section-header .text-button{font-size:16px;min-height:44px}
 body.route-active #routeView .map-route-summary,body.route-active #routeView .map-legend{display:none}
 body.route-active #routeView .map-route-controls{position:relative;inset:auto;margin:0;padding:0 12px 10px;gap:8px;flex-shrink:0;background:white}
 body.route-active #routeView .map-route-controls label{box-shadow:none;min-width:0}
 body.route-active #routeView .map-card{position:relative;inset:auto;flex:1;min-height:0}
 #mapListToggle{display:block;position:absolute;top:145px;left:12px;z-index:610;padding:10px 16px;border:1px solid #b5c9bd;border-radius:12px;background:white;color:#173f30;font-weight:750;box-shadow:0 3px 12px #0002}
 body.route-active #routeView .map-browser{display:none;position:absolute;inset:0;z-index:700;width:100%;background:#fff;padding:0 16px 24px;overflow-y:auto}
 body.route-active #routeView.list-open .map-browser{display:block}
 .map-list-close{display:block;position:sticky;top:0;z-index:4;margin:8px 0 4px auto;padding:10px 16px;border:1px solid #b7c9be;border-radius:10px;background:#fff;font-weight:750}
 .map-browser .map-search{top:60px}
 body.route-active #routeView.list-open .route-sheet{visibility:hidden}
 .route-sheet.open{max-height:60dvh}.route-sheet-body{max-height:calc(60dvh - 66px)}
 .event-dialog{margin:auto auto 0;border-radius:20px 20px 0 0}.venue-hover-tooltip{display:none}
}
@media(max-width:420px){.map-header-actions{gap:4px}.map-list-actions{gap:6px}.dialog-body{padding-inline:18px}.decision-card{padding:14px}.timeline-slot{grid-template-columns:62px minmax(0,1fr)}.language-control select{max-width:118px!important;width:118px;padding-inline:6px}.app-header{padding-inline:10px}.plan-counter{padding-inline:7px}}
