/* Shared dialog fixes, with separate layouts for the two journeys. */
[hidden]{display:none!important}
#map-shell,#discover,.place-card{scroll-margin-top:88px}
#location-status:empty{display:none}
.contact-modal label,.contact-modal input,.contact-modal select,.contact-modal textarea{min-width:0;max-width:100%;box-sizing:border-box}
.contact-modal .form-row{gap:20px;align-items:start}
.contact-modal .form-row label{display:flex;flex-direction:column;gap:9px;margin:0}
.contact-modal .form-row input{width:100%;height:52px;margin:0}
.contact-modal .form-row{margin:20px 0}
.contact-modal input,.contact-modal select,.contact-modal textarea,.translator-modal textarea{font-size:16px}
.contact-unavailable{border-left:3px solid var(--ink);background:#eff3ee;padding:16px 18px;margin-bottom:24px}
.contact-unavailable p{margin:8px 0 0;font-size:13px}
.onboard-primary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.onboard-primary button{display:flex;align-items:center;justify-content:flex-start;gap:12px;text-align:start;padding:18px;border-radius:10px;background:#fff;color:var(--ink);font-weight:600;min-height:64px;overflow-wrap:anywhere}
.onboard-primary button:first-child{background:var(--ink);color:white}
.onboard-primary span{font-size:25px}
.view-switch{display:flex;background:#eceee7;padding:4px;border-radius:10px;gap:4px;max-width:360px;margin:0 0 18px}
.view-switch button{flex:1;min-height:45px;padding:8px 16px;border-radius:7px;font-size:14px;font-weight:600}
.view-switch [aria-pressed=true]{background:white;box-shadow:0 2px 7px #173f3614}
.map-shell{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:22px}
.map-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.map-toolbar .button{gap:8px;padding:11px 15px;font-size:13px}
.map-toolbar label{flex:1;min-width:160px;display:flex;flex-direction:column;gap:4px;font-size:11px}
.map-toolbar select{width:100%;min-width:0;max-width:100%;font-size:14px;padding:10px;background:#f8f9f5;border:1px solid var(--line);border-radius:7px}
.map-layout{position:relative}
#tour-map{height:490px;background:#e4ede8}
.map-status{margin:0;padding:11px 16px;font-size:12px;line-height:1.6;min-height:42px}
.map-status.failed{background:#fff1e2;color:#7a3619}
.map-meta{padding:0 16px 16px}
.map-meta p{font-size:12px;line-height:1.65;margin:7px 0}
.map-meta details{border-top:1px solid var(--line);padding-top:7px}
.map-meta summary{font-size:12px;cursor:pointer;padding:7px 0}
.map-actions{display:flex;flex-wrap:wrap;gap:16px;padding:0 16px}
.maplibregl-ctrl-attrib{font-size:10px!important;line-height:15px!important;padding:3px 6px!important;background:#ffffffed!important}
.maplibregl-ctrl-attrib a{text-decoration:underline}
.maplibregl-ctrl-group button{width:42px!important;height:42px!important}
.jeju-marker{width:44px;height:44px;display:grid;place-items:center;background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:50%;font-size:29px;box-shadow:0 2px 8px #173f3640;font-weight:700;line-height:1;cursor:pointer}
.jeju-marker.chosen{background:var(--ink);color:white;font-size:17px;border-color:white;box-shadow:0 0 0 2px var(--ink),0 3px 10px #173f3650;z-index:2}
.jeju-marker.region-west{border-color:#9e6a39;color:#9e6a39}.jeju-marker.region-east{border-color:#3d6f89;color:#3d6f89}
.jeju-marker.port-marker{background:#a85b32;color:white;border-color:#fff;font-size:24px;border-radius:9px;z-index:3}
.jeju-marker.start-marker{background:#2c6ed5;color:white;border-color:white;z-index:4;font-size:20px}
.map-card{padding:18px;border-top:1px solid var(--line);background:#fff}
.map-card-head{display:flex;gap:16px;margin-bottom:12px;align-items:center}
.map-card-head>img,.map-card-head>.photo-missing{width:104px;height:95px;object-fit:cover;border-radius:8px;flex-shrink:0}
.map-card h3{font-size:20px;margin-bottom:7px}.map-card p{font-size:13px;line-height:1.7;margin-bottom:12px}
.map-card .warning{font-size:12px;padding:12px}.map-card .two-buttons{gap:8px}.map-card .button{padding:11px;font-size:12px;gap:8px}
.map-card .place-meta{display:block;font-size:12px}.map-card .text-button{font-size:12px}
.map-card-head .photo-missing{padding:8px}.map-card-head .photo-missing small{display:none}.map-card-head .photo-missing strong{font-size:10px}
.map-placeholder{padding:22px 18px;font-size:14px;background:#f4f6ef;margin:0}
.card-map-button{font-size:12px;min-height:44px;text-decoration:underline;padding:6px 0;text-align:start}
.trip-item{flex-wrap:wrap;gap:12px}.trip-item>div:not(.order-buttons){flex:1;min-width:0}.order-buttons{display:flex;flex-shrink:0;gap:4px}
.order-buttons button{width:44px;min-height:44px;border:1px solid var(--line);border-radius:7px;font-size:19px}
.order-buttons button:disabled{opacity:.3;cursor:default}
.route-legs{margin:16px 0;border:1px solid var(--line);border-radius:9px;padding:12px 16px}
.route-legs summary{padding:8px 0;cursor:pointer;font-weight:600}.route-legs p{font-size:12px;line-height:1.6;margin:8px 0}
.route-legs a{display:block;padding:12px 0;font-size:13px;border-top:1px solid var(--line);line-height:1.6}
.translator-modal{max-width:650px}.translator-modal .modal-body{padding-top:35px}
.translator-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:#edf0e9;border-radius:9px;margin:22px 0}
.translator-modes button{min-height:48px;border-radius:6px;font-size:12px;padding:8px;overflow-wrap:anywhere}
.translator-modes [aria-pressed=true]{background:white;font-weight:700;box-shadow:0 1px 6px #173f3614}
.translation-languages{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;font-weight:600;margin-bottom:14px}
.translator-modal label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}
.translator-modal textarea{display:block;width:100%;min-width:0;resize:vertical;padding:14px;border:1px solid #b8c7bd;border-radius:10px;line-height:1.7;background:#fafcf8}
.translation-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.translation-tools small{font-size:11px}
.translation-note{font-size:12px;line-height:1.65;margin-top:10px;color:var(--muted)}
.translation-status{font-size:13px;padding:8px 0;min-height:22px}
.translation-paste{border-top:1px solid var(--line);padding:16px 0;margin-top:24px}.translation-paste summary{font-size:13px;cursor:pointer;line-height:1.6}.translation-paste textarea{margin-top:14px}
.quick-phrase-details{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.quick-phrase-details summary{cursor:pointer;font-weight:600;min-height:44px}
.quick-phrase-details .driver-grid{margin-top:8px}.quick-phrase-details .driver-grid button{min-height:62px;padding:12px}.quick-phrase-details .driver-grid strong{font-size:13px}
.result-original{font-size:14px;line-height:1.8;border-bottom:1px solid var(--line);padding-bottom:16px;white-space:pre-wrap;overflow-wrap:anywhere}
.result-label{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.5px;margin:12px 0}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.result-actions .button{margin:0;gap:8px;padding:12px}
.korean-text{white-space:pre-wrap;overflow-wrap:anywhere}
.korean-modal.large-result{max-width:1000px;width:96vw;min-height:85dvh}.large-result .korean-text{font-size:clamp(30px,5vw,64px);line-height:1.6}.large-result .result-original{font-size:18px}
@media(min-width:960px){.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px}.map-card{height:490px;overflow-y:auto;border-top:0;border-left:1px solid var(--line)}.map-placeholder{border-left:1px solid var(--line)}.map-card-head{display:block}.map-card-head>img,.map-card-head>.photo-missing{width:100%;height:145px;margin-bottom:14px}}
@media(max-width:700px){
 .contact-modal .form-row{grid-template-columns:minmax(0,1fr);gap:20px}.contact-modal .form-row label{width:100%}
 .onboard-welcome{padding:20px 16px}.onboard-welcome h1{margin-bottom:10px}.onboard-primary{margin-top:16px;gap:8px}.onboard-primary button{padding:13px 10px;font-size:13px;gap:8px;min-height:62px}
 .onboard-primary span{font-size:22px}.onboard-welcome .map-intro{font-size:12px;margin-bottom:15px}
 .onboard-discover .guide-heading{margin-bottom:12px}.view-switch{max-width:none;margin-bottom:14px}
 #tour-map{height:390px}.map-toolbar{padding:12px;gap:8px}.map-toolbar>button{width:100%}.map-toolbar label{width:100%;flex-basis:100%}
 .map-card{padding:16px}.map-card h3{font-size:18px}.map-card-head{gap:12px}.map-card-head>img,.map-card-head>.photo-missing{width:88px;height:88px}
 .maplibregl-ctrl-attrib{max-width:280px}.trip-item .order-buttons{margin-left:auto}.trip-item>div:not(.order-buttons){flex-basis:calc(100% - 50px)}
 .translator-modal .modal-body{padding:34px 20px 24px}.translator-modal h2{font-size:26px}.translator-modes{margin:16px 0}
 .translator-modal .translation-note{font-size:12px}.is-onboard .result-actions .button{font-size:12px}.is-onboard .large-result .korean-text{font-size:36px}
 .is-onboard.modal-open .guide-bottom-nav,.is-previsit.modal-open .booking-bar{visibility:hidden}
 .onboard-grid .place-photo{height:190px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.map-place-select{display:flex;flex-direction:column;gap:6px;font-size:12px;padding:12px 16px}.map-place-select select{width:100%;min-width:0;padding:11px;border:1px solid var(--line);border-radius:7px;background:white;font-size:14px}.cluster-marker{border-style:double;border-width:4px;font-size:16px;background:#f1f5e8}
