
:root{--bg:#081122;--bg2:#0d1830;--panel:#102042;--panel2:#14274f;--text:#f5f8ff;--muted:#a7b4d4;--line:#243860;--accent:#8da2ff;--accent2:#72c8ff;--shadow:0 24px 60px rgba(0,0,0,.32);--success:#1fbf8f;--danger:#ff6c6c;--warn:#f7b955;--mapLight:url('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png');--mapDark:url('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png');}
body[data-theme="light"]{--bg:#f5f7fb;--bg2:#ffffff;--panel:#ffffff;--panel2:#f4f7ff;--text:#0d1a34;--muted:#52627f;--line:#d7e0f0;--accent:#5f70ff;--accent2:#2ea9ff;--shadow:0 12px 30px rgba(25,53,110,.12)}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at top, rgba(91,124,255,.18), transparent 24%),linear-gradient(180deg,var(--bg),var(--bg2));color:var(--text);min-height:100vh}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.wrap{max-width:1380px;margin:0 auto;padding:0 24px}
.topbar{position:sticky;top:0;z-index:20;backdrop-filter:blur(16px);background:rgba(8,17,34,.78);border-bottom:1px solid rgba(255,255,255,.06)}body[data-theme="light"] .topbar{background:rgba(255,255,255,.88);border-color:rgba(13,26,52,.08)}
.topbar .inner{display:flex;align-items:center;justify-content:space-between;gap:18px;height:78px}
.brand{display:flex;align-items:center;gap:14px;min-width:240px}.brand-badge{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#9e84ff);font-weight:900}.brand h1{margin:0;font-size:1.5rem}.brand p{margin:2px 0 0;font-size:.92rem;color:var(--muted)}
.nav{display:flex;flex-wrap:wrap;gap:10px}.nav a{padding:12px 16px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.02);font-weight:700}.nav a.active,.nav a:hover{border-color:var(--accent);box-shadow:0 0 0 3px rgba(141,162,255,.15)}
.tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.selectWrap{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03)}.selectWrap label{font-size:.86rem;color:var(--muted);font-weight:700}.selectWrap select{appearance:none;background:transparent;border:none;color:var(--text);font-weight:800;padding-right:8px}.selectWrap select:focus{outline:none}
main{padding:28px 0 48px}.hero{padding-top:12px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:22px}.panel{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.hero-copy{padding:34px}.hero-copy .kicker,.kicker{display:inline-block;padding:8px 12px;border-radius:999px;background:rgba(141,162,255,.12);color:#b7c3ff;font-weight:800;font-size:.82rem;letter-spacing:.02em}.hero-copy h2{font-size:3.3rem;line-height:1.02;max-width:13ch;margin:16px 0 16px}.lead{font-size:1.13rem;line-height:1.65;color:var(--muted);max-width:65ch}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:999px;font-weight:800;border:1px solid var(--line);cursor:pointer;background:transparent;color:var(--text)}.btn.primary{background:linear-gradient(135deg,var(--accent),#9e84ff);border:none;color:white}.btn.soft{background:rgba(255,255,255,.04)}
.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}.metric{padding:16px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}.metric strong{display:block;font-size:1.4rem}.metric span{display:block;color:var(--muted);margin-top:3px}
.hero-side{overflow:hidden;position:relative}.hero-photo{height:100%;min-height:420px;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.25)),linear-gradient(135deg,#102a57,#18386f) center/cover no-repeat}.hero-shell{display:grid;grid-template-rows:auto 1fr;gap:18px;padding:22px;height:100%}.hero-map-card{padding:18px;background:rgba(255,255,255,.05);border-radius:22px;border:1px solid rgba(255,255,255,.08)}.hero-map-card h3{margin:0 0 10px;font-size:1.35rem}.mini-list{display:grid;gap:12px}.mini-item{display:flex;gap:12px;padding:12px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}.mini-item strong{display:block}.section{margin-top:28px}.section h3{font-size:1.8rem;margin:0 0 10px}.sub{margin:0 0 18px;color:var(--muted);line-height:1.6}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cluster-card,.trust-card,.culture-card,.setup-card,.day-card,.stop-card,.detail-card{padding:20px;border-radius:24px;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);box-shadow:var(--shadow)}
.cluster-card .chips,.day-card .chips,.setup-card .chips,.stop-card .chips,.detail-card .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);font-weight:700;font-size:.85rem;color:var(--muted)}.chip.primary{background:rgba(141,162,255,.18);color:#d6ddff;border-color:rgba(141,162,255,.3)}
.cluster-card h4,.trust-card h4,.culture-card h4,.setup-card h4{margin:8px 0 10px;font-size:1.2rem}.cluster-card p,.trust-card p,.culture-card p,.setup-card p{margin:0;color:var(--muted);line-height:1.6}
.home-split{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.story-panel{overflow:hidden}.story-banner{padding:22px 24px;border-bottom:1px solid var(--line)}.story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;padding:22px}.culture-illo{height:144px;border-radius:22px;background:radial-gradient(circle at 24% 20%, rgba(255,255,255,.2), transparent 24%),linear-gradient(135deg,#1d356d,#233b73 65%,#19264d);position:relative;overflow:hidden}.culture-illo svg{position:absolute;inset:0;width:100%;height:100%}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:8px}.field label{font-weight:800;color:var(--muted)}.field select,.field input{width:100%;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);font:inherit}.field select:focus,.field input:focus{outline:2px solid rgba(141,162,255,.35);outline-offset:1px}
.rangeWrap{display:flex;align-items:center;gap:12px}.rangeWrap input[type=range]{flex:1}.rangeValue{min-width:62px;font-size:1.55rem;font-weight:900}.planner-grid{display:grid;grid-template-columns:320px minmax(0,1.18fr) 420px;gap:22px;align-items:start}.planner-left{position:sticky;top:98px;padding:18px}.planner-main{display:grid;gap:18px;grid-template-rows:auto minmax(0,1fr)}.map-panel{padding:16px}.map-shell{height:500px;border-radius:22px;overflow:hidden;border:1px solid var(--line)}#plannerMap,#entryMap{height:100%;width:100%}.selection-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stop-card{padding:0;overflow:hidden}.stop-photo{height:148px;background:#dde3f6}.stop-body{padding:18px}.stop-card h4{margin:10px 0 8px;font-size:1.15rem}.stop-card p{margin:0;color:var(--muted);line-height:1.55}.small{font-size:.92rem;color:var(--muted)}
.itinerary-panel{padding:18px;position:sticky;top:98px;max-height:calc(100vh - 118px);overflow:auto}.day-card{margin-bottom:14px}.day-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.day-head h4{margin:0;font-size:1.2rem}.day-city{color:var(--muted);font-weight:800}.stop-line{display:grid;gap:10px;margin-top:12px}.stop-row{padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);cursor:pointer}.stop-row:hover{border-color:var(--accent)}.stop-row strong{display:block;margin-bottom:6px}.transport-box{margin:12px 0;padding:14px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}.transport-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.transport-alt{margin-top:8px;color:var(--muted);font-size:.92rem;line-height:1.6}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.result-card{padding:22px}.status{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-weight:800}.status.ok{background:rgba(31,191,143,.16);color:#6af4c5}.status.warn{background:rgba(247,185,85,.18);color:#ffd27a}.status.bad{background:rgba(255,108,108,.18);color:#ffb2b2}
.result-card h3{margin:14px 0 10px;font-size:1.6rem}.basis-box{padding:16px;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);margin-top:14px;line-height:1.65;color:var(--muted)}
.setup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.setup-art{height:180px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#eff4ff,#dfe8ff)}.setup-art.phone{display:grid;place-items:center;color:#123}.phone-mock{width:240px;height:152px;border-radius:28px;background:#fff;box-shadow:0 20px 44px rgba(16,32,66,.18);padding:14px;display:grid;gap:10px}.pay-row{display:flex;align-items:center;gap:12px}.pay-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:white;font-weight:900}.icon-weixin{background:#2ad65e}.icon-ali{background:#197bff}.screen-line{height:10px;border-radius:999px;background:#dde6ff}.screen-line.short{width:60%}.link-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--accent2);text-decoration:underline}
.culture-columns{display:grid;grid-template-columns:320px 1fr;gap:18px}.cluster-list{display:grid;gap:14px}.cluster-pill{padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-weight:800;cursor:pointer}.cluster-pill.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(141,162,255,.16)}.culture-detail{padding:22px}.phrase-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.phrase-card{padding:16px;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}.phrase-card strong{font-size:1.15rem}.illus-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.detail-layout{display:grid;grid-template-columns:1fr 360px;gap:18px}.hero-photo-big{height:360px;border-radius:28px;background:#d7e0f0 center/cover no-repeat;border:1px solid var(--line)}.detail-main{padding:24px}.detail-main h2{font-size:2.2rem;margin:0 0 10px}.detail-main .meta{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:18px}.detail-block{padding:20px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.footer{padding:24px 0 36px}.footer .panel{padding:18px}
.leaflet-popup-content-wrapper{border-radius:18px;background:#102042;color:#fff}.leaflet-popup-tip{background:#102042}.popup-card{width:240px}.popup-card img{width:100%;height:112px;object-fit:cover;border-radius:12px;margin-bottom:8px}.popup-card strong{display:block;font-size:1rem}.popup-card p{margin:6px 0 10px;font-size:.92rem;line-height:1.45;color:#d4dcf7}.popup-card a{font-weight:800;color:#9ccfff;text-decoration:underline}
body[data-theme="light"] .leaflet-popup-content-wrapper{background:#fff;color:#102042}body[data-theme="light"] .leaflet-popup-tip{background:#fff}body[data-theme="light"] .popup-card p{color:#46567a}
.hidden{display:none !important}
@media (max-width:1180px){.planner-grid,.entry-grid,.home-split,.detail-layout,.detail-grid,.culture-columns,.hero-grid{grid-template-columns:1fr}.planner-left,.itinerary-panel{position:static;top:auto;max-height:none}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3,.selection-strip,.setup-grid,.phrase-grid,.illus-strip{grid-template-columns:1fr 1fr}}
@media (max-width:780px){.wrap{padding:0 16px}.topbar .inner{height:auto;padding:16px 0;flex-direction:column;align-items:stretch}.nav,.tools{justify-content:space-between}.metric-row,.grid-3,.grid-4,.selection-strip,.setup-grid,.story-grid,.phrase-grid,.illus-strip{grid-template-columns:1fr}.hero-copy h2{font-size:2.3rem}.planner-grid{gap:14px}.map-shell{height:340px}}


/* v8 overrides */
.selectWrap{background:var(--panel);padding:8px 12px;border-radius:16px;border:1px solid var(--line);min-height:48px}
.selectWrap select,.field select,.field input{background:var(--bg);border:1px solid var(--line);border-radius:14px;color:var(--text)}
.selectWrap select{padding:8px 12px;min-width:120px;font-weight:800}
.selectWrap label{white-space:nowrap}
.field select{padding-right:34px}
option{background:var(--panel);color:var(--text)}
.rangeWrap input[type=range]{accent-color:var(--accent)}
.kicker{line-height:1.2}
.footer{padding-bottom:36px}
.footer-rich{padding:22px 24px}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px;align-items:start}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:10px}.footer-brand p{margin:4px 0 0;color:var(--muted)}
.footer-links{display:grid;gap:10px}.footer-links a{color:var(--accent2);text-decoration:underline;font-weight:700}
.hero-map-card{background:rgba(255,255,255,.04)}
.day-card h5{margin:0}
.plan-summary{padding:16px 18px;border-radius:20px;border:1px solid var(--line);background:rgba(255,255,255,.04)}
.plan-summary strong{display:block;margin-bottom:8px}
.plan-summary .chips{margin-top:10px}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.result-item{padding:14px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.result-item strong{display:block;font-size:.9rem;color:var(--muted);margin-bottom:6px}
.source-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.policy-basis-list{padding-left:18px;color:var(--muted);line-height:1.7;margin:10px 0 0}
.topbar .inner{flex-wrap:wrap;height:auto;padding:12px 0}.nav{flex:1 1 480px}.tools{margin-left:auto}
.brand{flex:1 1 260px}
.panel img{border-radius:18px}
.basis-box a{word-break:break-word}
@media (max-width: 1240px){
  .planner-grid{grid-template-columns:300px minmax(0,1fr);}
  .itinerary-panel{position:static;max-height:none;grid-column:1 / -1}
  .selection-strip{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 980px){
  .hero-grid,.home-split,.entry-grid,.culture-columns,.setup-grid,.info-grid{grid-template-columns:1fr}
  .planner-grid{grid-template-columns:1fr}
  .planner-left,.itinerary-panel{position:static;top:auto;max-height:none}
  .selection-strip,.grid-3,.grid-4{grid-template-columns:1fr}
  .topbar .inner{align-items:flex-start}
  .nav{order:3;flex:1 1 100%}
  .tools{order:2;justify-content:flex-start}
  .hero-copy h2{font-size:2.5rem}
  .metric-row{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .wrap{padding:0 16px}
  .form-grid{grid-template-columns:1fr}
  .metric-row{grid-template-columns:1fr 1fr}
  .result-grid{grid-template-columns:1fr}
  .topbar .inner{gap:10px}
  .brand h1{font-size:1.25rem}
  .hero-copy{padding:24px}
  .hero-copy h2{font-size:2.05rem}
  .tools{width:100%}
  .selectWrap{flex:1 1 calc(50% - 8px)}
  .selectWrap select{width:100%;min-width:0}
}


/* v9 overrides */
.topbar{position:sticky;top:0;z-index:1000;background:linear-gradient(180deg, rgba(6,15,41,.96), rgba(6,15,41,.92));backdrop-filter:blur(10px)}
.topbar .inner{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;align-items:center;gap:18px;padding:12px 0}
.brand{min-width:0}.brand h1{font-size:1.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand p{font-size:.98rem;line-height:1.25;margin-top:2px}
.nav{display:flex;gap:10px;flex-wrap:nowrap;overflow:auto;padding-bottom:2px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{white-space:nowrap;font-size:.96rem;padding:12px 16px}
.tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;justify-self:end;width:100%;max-width:300px}.selectWrap{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.selectWrap label{font-size:.9rem;font-weight:700;color:var(--muted)}.selectWrap select{flex:1;min-width:0;padding:10px 14px;font-weight:800;background:var(--bg)!important}
#clusterGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.cluster-card.full-card{display:flex;flex-direction:column;overflow:hidden}.cluster-photo{height:164px;background:#d9e3ff center/cover no-repeat;border-bottom:1px solid var(--line)}.cluster-card-body{padding:18px;display:flex;flex-direction:column;gap:12px;flex:1}.cluster-card-body p{margin:0;line-height:1.6;color:var(--muted)}
.home-split{align-items:stretch}.trust-card.rich{min-height:168px;display:flex;flex-direction:column;justify-content:space-between}.portal-links .footer-links.compact{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.story-panel{height:100%}.story-grid{align-content:start}.story-grid .culture-card{display:flex;flex-direction:column;gap:10px}.story-grid .culture-card p{margin:0;color:var(--muted)}
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.photo-real-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:22px;overflow:hidden}.real-photo{height:180px;background:#dfe7ff center/cover no-repeat}.photo-caption{padding:14px 16px;display:flex;flex-direction:column;gap:4px}.photo-caption span{color:var(--muted);font-size:.92rem}
.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.guide-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:24px;overflow:hidden}.guide-photo{height:190px;background:#dfe7ff center/cover no-repeat}.guide-body{padding:18px}.guide-body h4{margin:0 0 10px;font-size:1.18rem}.guide-body p{margin:0;color:var(--muted);line-height:1.6}.guide-note{padding:18px;border-radius:20px}.panel-flat{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.city-label{background:rgba(16,32,66,.92);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:4px 10px;box-shadow:none}.city-label:before{display:none}
.culture-columns{grid-template-columns:280px 1fr}.culture-detail{min-width:0}.phrase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.phrase-card{min-width:0;overflow:hidden}.phrase-card strong{display:block;word-break:break-word}.phrase-card .chip{word-break:break-word}
.selection-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
.footer-rich{padding:24px}
@media (max-width:1260px){.topbar .inner{grid-template-columns:240px minmax(0,1fr) 280px}.nav a{padding:11px 14px;font-size:.92rem}.photo-strip,.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1040px){.topbar .inner{grid-template-columns:1fr;gap:12px}.nav{order:2}.tools{order:3;justify-self:stretch;max-width:none}.brand{order:1}.culture-columns{grid-template-columns:1fr}.photo-strip,.guide-grid,#clusterGrid,.selection-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.nav a{padding:10px 12px;font-size:.9rem}.tools{grid-template-columns:1fr}.photo-strip,.guide-grid,#clusterGrid,.selection-strip,.phrase-grid{grid-template-columns:1fr}.cluster-photo{height:180px}}


/* v10 overrides */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.plan-summary .chips{display:flex;flex-wrap:wrap;gap:8px}
.plan-summary .chip{max-width:100%;white-space:normal;line-height:1.2}
#bufferBox .chips{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#bufferBox .chip{display:flex;align-items:flex-start;gap:8px;white-space:normal;line-height:1.35;padding:10px 12px}
#bufferBox input[type=radio]{margin-top:2px;accent-color:var(--accent);flex:0 0 auto}
.culture-detail h3,.culture-detail h2,.culture-detail .lead{line-height:1.2}
.culture-detail .phrase-card{display:flex;flex-direction:column;gap:10px;min-height:164px}
.popup-card p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.popup-card a{display:inline-block;margin-top:2px}
.selection-strip .stop-card{min-width:0}
.selection-strip .stop-card h4{line-height:1.25;word-break:break-word}
.selection-strip .stop-card p{word-break:break-word}
.selection-strip{align-items:stretch}
.reset-map-btn{background:linear-gradient(135deg,var(--accent),#9e84ff);color:#fff;border:none;border-radius:14px;padding:10px 12px;font-weight:800;cursor:pointer;box-shadow:var(--shadow)}
.leaflet-control.custom-reset{background:transparent;border:none;box-shadow:none}
.footer-links a{word-break:break-word}
@media (max-width:860px){#bufferBox .chips{grid-template-columns:1fr}}

/* v10-plus refinements */
.hero-map-card{padding:0;overflow:hidden;min-height:340px;position:relative}
.hero-carousel{position:relative;height:100%;min-height:340px}
.hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .55s ease;display:block}
.hero-slide.active{opacity:1;pointer-events:auto}
.hero-slide-media{position:absolute;inset:0;background:#18305f center/cover no-repeat}
.hero-slide-overlay{position:absolute;inset:auto 18px 18px 18px;padding:18px 20px;border-radius:24px;background:linear-gradient(180deg,rgba(7,17,34,.14),rgba(7,17,34,.78));backdrop-filter:blur(6px);color:#fff}
.hero-slide-overlay h3{margin:10px 0 8px;font-size:1.65rem}
.hero-slide-overlay p{margin:0;max-width:52ch;line-height:1.55;color:#dfe7ff}
.hero-dots{position:absolute;right:16px;bottom:16px;display:flex;gap:8px;z-index:3}
.hero-dot{width:12px;height:12px;border-radius:999px;border:none;background:rgba(255,255,255,.35);cursor:pointer}
.hero-dot.active{width:32px;background:#fff}

.plan-summary{display:grid;gap:10px}
.summary-lines{display:grid;gap:8px;margin-top:8px}
.summary-row{display:grid;grid-template-columns:minmax(118px,.95fr) minmax(0,1.7fr);gap:14px;align-items:start;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}
.summary-row span{color:var(--muted);font-weight:700;min-width:0;line-height:1.35;white-space:normal}
.summary-row b{font-size:.95rem;text-align:left;line-height:1.45;flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}

.stop-row{padding:16px;border-radius:20px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);display:grid;gap:8px;cursor:pointer}
.stop-line{display:grid;gap:12px}
.stop-row strong{line-height:1.35}
.tag-row{display:flex;flex-wrap:wrap;gap:8px}
.day-card{display:grid;gap:14px}
.transport-box{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.transport-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.transport-alt{color:var(--muted);line-height:1.55;font-size:.93rem;margin-top:8px}

body.map-focus{overflow:hidden}
.map-panel.focus-mode{position:fixed;inset:28px;z-index:60;padding:16px;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.55);background:linear-gradient(180deg,var(--panel),var(--panel2))}
.map-panel.focus-mode .map-shell{height:calc(100vh - 110px)}
body.map-focus::before{content:'';position:fixed;inset:0;background:rgba(4,10,22,.55);z-index:50}
body.map-focus .map-panel{z-index:60}
.popup-photo{height:122px;border-radius:12px;margin-bottom:10px;background-position:center;background-size:cover}

.phrase-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.photo-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.photo-real-card{display:block;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.real-photo{height:180px;background:#cbd5f0 center/cover no-repeat}
.photo-caption{padding:14px 16px;display:grid;gap:6px}
.photo-caption span{color:var(--muted);font-size:.92rem}
.culture-stats{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 16px}
.stat-chip{padding:10px 14px;border-radius:999px;background:rgba(141,162,255,.16);border:1px solid rgba(141,162,255,.28);font-weight:800;color:#d7e0ff}
.culture-filters{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 18px}
.culture-filter{padding:11px 16px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);font-weight:800;cursor:pointer}
.culture-filter.active{background:linear-gradient(135deg,var(--accent),#9e84ff);border-color:transparent;color:#fff}
.culture-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.culture-item-card{display:flex;flex-direction:column;overflow:hidden;border-radius:24px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);min-height:100%}
.culture-item-photo{height:180px;background:#cdd7f0 center/cover no-repeat}
.culture-item-body{padding:16px 18px;display:grid;gap:10px;align-content:start}
.culture-item-body h4{margin:0;font-size:1.15rem;line-height:1.35}
.culture-item-body p{margin:0;color:var(--muted);line-height:1.55;font-size:.94rem}

.footer-links{display:grid;gap:10px}
.footer-links a{text-decoration:underline;text-decoration-color:rgba(156,207,255,.45);text-underline-offset:4px}
.footer-links.compact{display:flex;flex-wrap:wrap;gap:12px}

@media (max-width:1040px){
  .summary-row{flex-direction:column;gap:6px}
  .summary-row b{text-align:left}
  .map-panel.focus-mode{inset:18px}
}
@media (max-width:780px){
  .hero-slide-overlay h3{font-size:1.3rem}
  .hero-slide-overlay{inset:auto 12px 12px 12px}
  .map-panel.focus-mode{inset:10px;padding:10px}
  .map-panel.focus-mode .map-shell{height:calc(100vh - 80px)}
}


/* refined update */
.hero-feature{position:relative;min-height:320px}
.hero-hint-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid rgba(255,255,255,.06)}
.hero-thumb-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:0 16px 16px}
.hero-thumb{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:18px;overflow:hidden;cursor:pointer;text-align:left;color:var(--text)}
.hero-thumb.active{border-color:rgba(141,162,255,.55);box-shadow:0 14px 24px rgba(0,0,0,.18)}
.hero-thumb-media{height:72px;background:#cbd5f0 center/cover no-repeat}
.hero-thumb-copy{padding:10px 12px;display:grid;gap:4px}
.hero-thumb-copy strong{font-size:.92rem;line-height:1.25}
.hero-thumb-copy span{font-size:.82rem;color:var(--muted)}
.hero-arrow{position:absolute;top:16px;width:42px;height:42px;border-radius:999px;border:none;background:rgba(7,17,34,.68);backdrop-filter:blur(6px);color:#fff;font-size:28px;line-height:1;cursor:pointer;z-index:3}
.hero-arrow:hover{background:rgba(15,33,66,.88)}
.hero-arrow-prev{left:16px}
.hero-arrow-next{right:16px}
.story-grid{grid-template-columns:repeat(3,1fr)}
.story-photo-card .culture-illo{min-height:180px}
.detail-nav{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.detail-nav .btn{padding:11px 16px}
.entry-prep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.map-panel.focus-inline{box-shadow:0 20px 48px rgba(0,0,0,.24);border-color:rgba(141,162,255,.28)}
.map-panel.focus-inline .map-shell{height:620px}
.day-card.active-day,.stop-row.active-stop{border-color:var(--accent);box-shadow:0 0 0 1px rgba(141,162,255,.35)}
.custom-reset{margin-top:8px;margin-right:8px}
#plannerMap .leaflet-top.leaflet-right{z-index:500}
.hero-map-card .hero-dots{position:static}
.hero-map-card .small{display:block;margin-top:4px}
.detail-main .lead{max-width:none}
.detail-card .link-row{gap:12px}
@media (max-width:1100px){
  .entry-prep-grid{grid-template-columns:1fr}
  .hero-thumb-row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:780px){
  .hero-thumb-row{grid-template-columns:1fr 1fr}
  .hero-arrow{top:12px;width:36px;height:36px;font-size:22px}
  .map-panel.focus-inline .map-shell{height:520px}
  .detail-nav{flex-direction:column}
}


/* v10 polished */
.hero-feature{overflow:hidden;border-radius:22px}
.hero-slide{display:block;position:relative;min-height:320px}
.hero-slide-media{height:320px;background:#cad4ef center/cover no-repeat;transition:transform .45s ease, filter .45s ease}
.hero-slide:hover .hero-slide-media{transform:scale(1.02);filter:saturate(1.02)}
.hero-slide-overlay{position:absolute;left:18px;right:18px;bottom:18px;padding:18px 20px;border-radius:22px;background:linear-gradient(180deg,rgba(7,17,34,.16),rgba(7,17,34,.68));backdrop-filter:blur(10px);display:grid;gap:8px}
.hero-slide-overlay h3{margin:0;font-size:2rem}
.hero-slide-overlay p{margin:0;color:#eef3ff;max-width:34ch;line-height:1.45}
.hero-hint-row{padding-top:16px}
.hero-thumb-row{grid-template-columns:repeat(5,minmax(0,1fr))}
.hero-map-card .hero-dots{display:flex;gap:8px;align-items:center}
.hero-dot{width:12px;height:12px;border:none;border-radius:999px;background:rgba(255,255,255,.22);cursor:pointer;transition:all .25s ease}
.hero-dot.active{width:28px;background:linear-gradient(135deg,var(--accent),#b59cff)}
.hero-arrow{display:none!important}

.detail-root-transition{opacity:1;transform:translateY(0);transition:opacity .28s ease, transform .28s ease}
.detail-root-transition.switching{opacity:0;transform:translateY(10px)}
.hero-photo-big{height:340px;border-radius:24px;background:#d9e2f7 center/cover no-repeat;margin-bottom:14px}
.detail-block{padding:18px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}

.map-focus-backdrop{position:fixed;inset:0;background:rgba(5,10,24,.48);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:55}
.map-focus-backdrop.show{opacity:1;pointer-events:auto}
.map-panel.focus-floating{position:fixed;top:108px;left:50%;transform:translateX(-50%);width:min(1060px,calc(100vw - 120px));z-index:60;box-shadow:0 34px 80px rgba(0,0,0,.42);border-color:rgba(141,162,255,.42)}
.map-panel.focus-floating .map-shell{height:min(72vh,740px)}
.map-panel.focus-floating .leaflet-popup-content-wrapper{box-shadow:0 26px 46px rgba(0,0,0,.32)}
#plannerMap .leaflet-control.custom-reset{z-index:800}

.entry-prep-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.entry-prep-grid .detail-block{height:100%}

.setup-grid.nine-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.guide-card{padding:0;overflow:hidden}
.guide-photo{height:184px;background:#dae3f8 center/cover no-repeat}
.guide-body{padding:18px;display:grid;gap:10px}
.guide-body h4{margin:0;font-size:1.12rem}
.guide-body p{margin:0;color:var(--muted);line-height:1.55}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) 320px;gap:22px;align-items:start}
.page-hero-side{display:grid;gap:16px}
.page-hero-side .detail-block{min-height:160px}

@media (max-width:1100px){
  .map-panel.focus-floating{width:calc(100vw - 56px)}
  .setup-grid.nine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-hero-grid{grid-template-columns:1fr}
}
@media (max-width:780px){
  .hero-slide-media{height:250px}
  .hero-slide-overlay h3{font-size:1.55rem}
  .map-panel.focus-floating{top:92px;width:calc(100vw - 20px)}
  .map-panel.focus-floating .map-shell{height:60vh}
  .setup-grid.nine-grid{grid-template-columns:1fr}
  .entry-prep-grid{grid-template-columns:1fr}
}


/* v10 fix2 */
.hero-thumb-row{display:flex;gap:10px;overflow-x:auto;padding:0 16px 16px;scrollbar-width:thin}
.hero-thumb{min-width:140px;flex:0 0 140px}
.hero-thumb-row::-webkit-scrollbar{height:8px}
.hero-thumb-row::-webkit-scrollbar-thumb{background:rgba(141,162,255,.35);border-radius:999px}
.detail-stage{animation:detailFade .28s ease both}
@keyframes detailFade{from{opacity:.18;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.detail-root-transition.switching{opacity:1;transform:none}
.planner-grid.has-inline-focus .map-panel.focus-inline{position:sticky;top:92px;z-index:8;box-shadow:0 28px 60px rgba(0,0,0,.34);border-color:rgba(141,162,255,.42)}
.planner-grid.has-inline-focus .map-panel.focus-inline .map-shell{height:680px}
body.map-focus-inline{overflow:auto}
.map-focus-backdrop{display:none!important}
@media (max-width:1100px){.planner-grid.has-inline-focus .map-panel.focus-inline .map-shell{height:560px}}
@media (max-width:780px){.hero-thumb{min-width:120px;flex-basis:120px}.planner-grid.has-inline-focus .map-panel.focus-inline .map-shell{height:460px}}


/* carousel behavior fix */
.hero-carousel{position:relative;min-height:320px;height:320px}
.hero-slide{position:absolute!important;inset:0;opacity:0;pointer-events:none;transition:opacity .55s ease;display:block;min-height:320px}
.hero-slide.active{opacity:1;pointer-events:auto}
.hero-slide-media{position:absolute;inset:0;height:auto}
.hero-feature{overflow:hidden;border-radius:22px;min-height:320px}

/* v10 fix3 */
.hero-map-card{padding:16px;display:grid;gap:14px}
.simple-hero .hero-stage{display:block;position:relative;min-height:320px;border-radius:22px;overflow:hidden}
.simple-hero .hero-stage-media{position:absolute;inset:0;background:#cad4ef center/cover no-repeat;transition:transform .55s ease, filter .55s ease}
.simple-hero .hero-stage:hover .hero-stage-media{transform:scale(1.02);filter:saturate(1.04)}
.simple-hero .hero-stage-overlay{position:absolute;left:18px;right:18px;bottom:18px;padding:18px 20px;border-radius:22px;background:linear-gradient(180deg,rgba(7,17,34,.16),rgba(7,17,34,.72));backdrop-filter:blur(10px);display:grid;gap:8px}
.simple-hero .hero-stage-overlay h3{margin:0;font-size:2rem;line-height:1.05}
.simple-hero .hero-stage-overlay p{margin:0;color:#eef3ff;max-width:34ch;line-height:1.45}
.hero-thumb-row.stable-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;overflow:visible;padding:0}
.hero-thumb-row.stable-grid .hero-thumb{min-width:0;flex:auto}
.hero-thumb-row.stable-grid .hero-thumb-media{height:82px}
.hero-thumb-row.stable-grid .hero-thumb-copy{padding:10px 10px 12px;gap:2px}
.hero-thumb-row.stable-grid .hero-thumb-copy strong{font-size:.92rem}
.hero-thumb-row.stable-grid .hero-thumb-copy span{font-size:.82rem}
.hero-hint-row{padding:0 2px 2px}
.btn-inline{background:none;border:none;padding:0;color:#8fd0ff;font:inherit;cursor:pointer}
.btn-inline:hover{text-decoration:underline}

.planner-grid.focus-stop-mode{grid-template-columns:300px minmax(640px,1.3fr) 420px}
.planner-grid.focus-stop-mode .map-panel{position:sticky;top:92px;z-index:6;box-shadow:0 24px 56px rgba(0,0,0,.34);border-color:rgba(141,162,255,.38);transform:translateY(-2px)}
.planner-grid.focus-stop-mode .map-shell{height:min(72vh,760px)}
.planner-grid.focus-stop-mode .itinerary-panel{position:sticky;top:92px;z-index:5}
.planner-grid.focus-stop-mode .planner-left{position:sticky;top:92px}
.stop-row.active-stop,.day-card.active-day{border-color:rgba(141,162,255,.45);box-shadow:0 0 0 1px rgba(141,162,255,.28)}
.map-focus-backdrop{display:none!important}

#detailRoot{min-height:420px}
#detailRoot.switching{opacity:.6}
.detail-stage,.detail-layout{will-change:opacity,transform}
.detail-layout{animation:detailFadeV3 .28s ease both}
@keyframes detailFadeV3{from{opacity:.15;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

@media (max-width:1320px){
  .planner-grid.focus-stop-mode{grid-template-columns:280px minmax(560px,1fr) 360px}
}
@media (max-width:1180px){
  .hero-thumb-row.stable-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .planner-grid.focus-stop-mode{grid-template-columns:1fr}
  .planner-grid.focus-stop-mode .itinerary-panel,.planner-grid.focus-stop-mode .planner-left,.planner-grid.focus-stop-mode .map-panel{position:static;top:auto}
  .planner-grid.focus-stop-mode .map-shell{height:620px}
}
@media (max-width:780px){
  .simple-hero .hero-stage{min-height:260px}
  .simple-hero .hero-stage-overlay h3{font-size:1.55rem}
  .hero-thumb-row.stable-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .planner-grid.focus-stop-mode .map-shell{height:480px}
}

/* v10 fix4 */
.hero-feature.smooth-hero{position:relative;overflow:hidden;border-radius:22px;min-height:336px}
.hero-slide-stack{position:relative;min-height:336px}
.hero-stack-slide{position:absolute;inset:0;display:block;opacity:0;pointer-events:none;transition:opacity .75s ease, transform .75s ease}
.hero-stack-slide.active{opacity:1;pointer-events:auto;z-index:2}
.hero-stack-slide .hero-stage-media{height:336px;background:#cad4ef center/cover no-repeat;transform:scale(1.03);transition:transform 1.2s ease}
.hero-stack-slide.active .hero-stage-media{transform:scale(1)}
.hero-dots-floating{position:absolute;right:18px;bottom:18px;z-index:4;display:flex;gap:8px}
.hero-hint-row.compact-top{padding-top:14px;padding-bottom:10px}
.hero-thumb-row.static-thumb-row{display:flex;gap:12px;padding:0 16px 16px;overflow-x:auto}
.hero-thumb.static{min-width:148px;flex:0 0 148px}
.hero-thumb.static.active{border-color:rgba(141,162,255,.55);box-shadow:0 16px 28px rgba(0,0,0,.18)}
.hero-thumb-row.static-thumb-row::-webkit-scrollbar{height:8px}
.hero-thumb-row.static-thumb-row::-webkit-scrollbar-thumb{background:rgba(141,162,255,.35);border-radius:999px}

.planner-grid.has-inline-focus{grid-template-columns:320px minmax(0,1.2fr) 420px;align-items:start}
.planner-grid.has-inline-focus .map-panel.focus-inline{position:sticky;top:92px;z-index:6;box-shadow:0 28px 60px rgba(0,0,0,.34);border-color:rgba(141,162,255,.42);transform:translateY(-2px)}
.planner-grid.has-inline-focus .map-panel.focus-inline .map-shell{height:min(72vh,760px)}
.planner-grid.has-inline-focus .itinerary-panel{position:sticky;top:92px;z-index:5}
.planner-grid.has-inline-focus .planner-left{position:sticky;top:92px}

.detail-root-transition{transition:opacity .22s ease, transform .22s ease}
.detail-root-transition.switching{opacity:.78;transform:translateY(4px)}
.hero-photo-big{min-height:360px;background:#d7dff2 center/cover no-repeat;border-radius:24px;overflow:hidden}

@media (max-width:1180px){
  .planner-grid.has-inline-focus{grid-template-columns:300px minmax(0,1fr) 360px}
}
@media (max-width:780px){
  .hero-stack-slide .hero-stage-media{height:300px}
  .hero-slide-stack,.hero-feature.smooth-hero{min-height:300px}
  .planner-grid.has-inline-focus{grid-template-columns:1fr}
  .planner-grid.has-inline-focus .itinerary-panel,.planner-grid.has-inline-focus .planner-left,.planner-grid.has-inline-focus .map-panel.focus-inline{position:static;top:auto}
  .planner-grid.has-inline-focus .map-panel.focus-inline .map-shell{height:520px}
}

.city-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.city-choice{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.04);cursor:pointer}
.city-choice.active{border-color:rgba(141,162,255,.55);background:rgba(141,162,255,.12)}
.city-choice input{accent-color:var(--accent)}
.hero-stack-slide{transition:opacity .75s cubic-bezier(.22,.61,.36,1), transform .75s cubic-bezier(.22,.61,.36,1); transform:scale(1.02)}
.hero-stack-slide.active{transform:scale(1)}
.hero-stage-overlay{transition:opacity .6s ease, transform .6s ease; transform:translateY(8px); opacity:.82}
.hero-stack-slide.active .hero-stage-overlay{transform:translateY(0); opacity:1}
.real-photo,.culture-item-photo,.hero-stage-media,.hero-thumb-media,.stop-photo,.cluster-photo,.culture-illo,.popup-photo,.hero-slide-media,.hero-thumb-media,.hero-stage-media,.hero-thumb-media,.hero-stage-media{will-change:background-image;transition:background-image .2s linear, transform .25s ease, opacity .25s ease}
@media (max-width:900px){.city-choice-grid{grid-template-columns:1fr}}

.hero-grid{align-items:stretch}.hero-copy{display:flex;flex-direction:column;justify-content:space-between}.hero-map-card{min-height:640px}.hero-story-grid,.story-grid{margin-top:22px}.hero-feature{min-height:300px}.hero-slide-stack{position:relative;height:380px}.hero-stack-slide{position:absolute;inset:0;opacity:0;transform:scale(1.02);transition:opacity .65s ease, transform .85s ease;pointer-events:none}.hero-stack-slide.active{opacity:1;transform:scale(1);pointer-events:auto}.wiki-bg,.stop-photo,.cluster-photo,.culture-illo,.guide-photo,.culture-item-photo,.real-photo,.hero-stage-media,.hero-thumb-media,.hero-photo-big,.popup-photo{transition:background-image .2s linear, opacity .25s ease; background-repeat:no-repeat;} .city-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.city-choice{border:1px solid var(--line);padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.02);display:flex;align-items:center;gap:10px}.city-choice.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(141,162,255,.12)} .guide-photo,.stop-photo,.culture-item-photo,.real-photo,.cluster-photo,.culture-illo{background-color:#dfe7ff;background-size:cover;background-position:center;} .hero-map-card{display:flex;flex-direction:column;gap:16px}.hero-metric-list{margin-top:0} @media (min-width: 1100px){.hero-grid{grid-template-columns:1.2fr 1fr}}
/* User patch */
.selectWrap label{display:none !important}
.selectWrap{min-width:132px;justify-content:center}
.selectWrap select{font-weight:800;padding-right:18px}
.hero-copy h2{max-width:10ch}
.hero-actions{margin-top:20px}
.hero-shell{display:grid;gap:16px}
.hero-map-card.clean{padding:18px 18px 10px}
.hero-feature.clean{min-height:380px;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.hero-stage-media{height:380px}
.hero-stage-overlay{left:20px;right:20px;bottom:20px}
.hero-reco-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:6px 0 0}
.hero-reco-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reco-card{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);min-height:100%}
.reco-photo{height:120px;background:#cfd8f6 center/cover no-repeat}
.reco-body{padding:12px 14px;display:grid;gap:8px}
.reco-body h4{margin:0;font-size:1rem;line-height:1.25}
.reco-body p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}
.hero-thumb-row,.mini-list,.hero-hint-row.compact-top{display:none !important}
.buffer-row-inline{display:flex;gap:10px;flex-wrap:wrap}
.buffer-row-inline .chip{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;padding:10px 14px}
.buffer-row-inline .chip input{margin:0}
.buffer-row-inline .chip span{white-space:nowrap}
.entry-grid .result-title, .entry-grid .result-copy{word-break:break-word}
.setup-icon-photo{height:150px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(141,162,255,.16),rgba(114,200,255,.08));}
.setup-icon{width:86px;height:86px;border-radius:24px;display:grid;place-items:center;font-size:42px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.setup-icon.dual{display:flex;gap:8px;width:auto;padding:0 18px}
.setup-icon.dual span{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:rgba(255,255,255,.12)}
.culture-library{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.culture-item-card{min-height:430px}
.culture-item-photo{height:180px}
.cluster-list .cluster-pill{white-space:nowrap}
@media (max-width:1180px){
  .hero-grid{grid-template-columns:1fr}
  .hero-reco-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .hero-reco-grid{grid-template-columns:1fr}
}


/* v10_iter polish */
.btn,.chip,.selectWrap select{white-space:nowrap}
.topbar .inner{align-items:center}
.tools{max-width:220px}
.selectWrap{padding:8px 10px;border-radius:18px;min-width:94px}
.selectWrap select{padding:10px 12px 10px 14px;text-align:center}
.home-hero-grid{grid-template-columns:1.05fr .95fr;align-items:stretch}
.hero-carousel-panel{padding:18px}
.hero-map-card.clean{min-height:520px;padding:0;overflow:hidden}
.hero-feature-plain{height:100%;display:grid;grid-template-rows:1fr auto;gap:0}
.hero-stage-media{height:100%;min-height:360px}
.hero-stage-overlay{position:absolute;left:22px;right:22px;bottom:22px;background:linear-gradient(180deg,rgba(8,14,28,.18),rgba(8,14,28,.66));backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.10);border-radius:28px;padding:20px 22px}
.portal-points{padding:18px 0 4px;display:grid !important;gap:12px}
.portal-points .mini-item{min-height:92px}
.recommend-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.reco-card{min-height:320px}
.reco-photo{height:180px;background:#dfe7ff center/cover no-repeat}
.reco-body{padding:16px 16px 18px}
.reco-body h4{margin:10px 0 8px;font-size:1.2rem;line-height:1.25}
.reco-body p{margin:0;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.selection-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.stop-card{min-height:360px}
.stop-photo{height:180px;background:#dfe7ff center/cover no-repeat}
.stop-body{display:flex;flex-direction:column;gap:10px;height:calc(100% - 180px)}
.stop-body h4{font-size:1.25rem;line-height:1.28;min-height:3.2em}
.stop-body p{line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.stop-body .link-row{margin-top:auto}
.city-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.city-choice{min-height:56px}
.guide-grid.nine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.setup-icon-photo{height:128px;display:grid;place-items:center;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02))}
.setup-icon.svg{width:104px;height:104px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.04));display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.setup-icon.svg svg{width:72px;height:72px;display:block}
.setup-icon.svg.wide{width:146px}
.guide-body h4{font-size:1.22rem}
.guide-body p{min-height:5.4em}
.culture-library{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.culture-item-card{min-height:400px}
.culture-item-photo{height:180px;background:#dfe7ff center/cover no-repeat}
.culture-item-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:10px}
.culture-item-body h4{font-size:1.18rem;line-height:1.26;min-height:3em}
.culture-item-body p{line-height:1.58;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.photo-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
.photo-real-card{min-height:280px}
.real-photo{height:180px}
.phrase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.phrase-card{min-height:160px}
.detail-layout{grid-template-columns:minmax(0,1fr) 340px}
.hero-photo-big{height:420px;min-height:420px;margin-bottom:16px}
.detail-main{padding:22px 24px}
.hero-copy h2{max-width:9ch}
@media (max-width:1280px){.recommend-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.culture-library,.photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1040px){.home-hero-grid{grid-template-columns:1fr}.recommend-grid,.guide-grid.nine-grid,.culture-library,.city-choice-grid,.photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.tools{max-width:none}}
@media (max-width:760px){.recommend-grid,.guide-grid.nine-grid,.culture-library,.city-choice-grid,.photo-strip,.phrase-grid,.selection-strip{grid-template-columns:1fr}.hero-map-card.clean{min-height:420px}.hero-stage-media{min-height:280px}.hero-copy h2{font-size:2.8rem}}


/* smoothgo refresh */
.sg-hero-stack{position:relative;height:100%;min-height:520px;overflow:hidden;border-radius:24px;background:rgba(255,255,255,.03)}
.sg-hero-slide{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;opacity:0;pointer-events:none;transition:opacity .45s ease}
.sg-hero-slide.active{opacity:1;pointer-events:auto}
.sg-hero-media{min-height:340px;background:#dfe7ff center/contain no-repeat}
.sg-hero-copy{padding:20px 22px 22px;display:grid;gap:10px;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.04))}
.sg-hero-copy h3{margin:0;font-size:1.9rem;line-height:1.12}
.sg-hero-copy p{margin:0;color:var(--muted);line-height:1.65}
.sg-cluster-card,.sg-reco-card,.sg-nearby-card{display:flex;flex-direction:column;overflow:hidden}
.sg-card-media,.sg-reco-media,.sg-detail-media,.sg-nearby-card .sg-reco-media{height:220px;background:#dfe7ff center/cover no-repeat;border-bottom:1px solid rgba(255,255,255,.06)}
.sg-card-copy,.sg-reco-copy{padding:18px;display:grid;gap:10px;align-content:start}
.sg-card-copy h4,.sg-reco-copy h4{margin:0;font-size:1.24rem;line-height:1.25}
.sg-card-copy p,.sg-reco-copy p{margin:0;color:var(--muted);line-height:1.62}
.sg-reco-card{min-height:100%;border-radius:24px;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);box-shadow:var(--shadow)}
.sg-reco-media{height:190px}
.sg-reco-copy p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sg-phrase-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.sg-phrase-card{min-height:0;padding:18px 18px 16px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.phrase-head-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.phrase-head-row strong{font-size:1.2rem;line-height:1.2}
.sg-culture-library{grid-template-columns:repeat(3,minmax(0,1fr))}
.sg-culture-note{min-height:100%;padding:0}
.sg-culture-note .culture-item-body{padding:18px;gap:10px}
.sg-culture-note .culture-item-body h4{margin:0;font-size:1.16rem;line-height:1.3}
.sg-culture-note .culture-item-body p{display:block;overflow:visible}
.sg-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}
.sg-detail-hero{overflow:hidden;padding:0}
.sg-detail-media{height:420px;background-size:cover}
.sg-detail-main{padding:22px 24px 24px;display:grid;gap:12px}
.sg-detail-main h2{margin:0;font-size:2.2rem;line-height:1.08}
.sg-detail-main p{margin:0;color:var(--muted);line-height:1.68}
.sg-nearby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.sg-nearby-card{border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.sg-visit-card{padding:20px;border-radius:24px;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);box-shadow:var(--shadow);display:grid;gap:14px}
.sg-buffer-day{border-color:rgba(114,200,255,.38);background:linear-gradient(180deg,rgba(15,37,70,.9),rgba(16,32,66,.96))}
.theme-light .sg-buffer-day,
body[data-theme="light"] .sg-buffer-day{
  border-color:rgba(46,169,255,.28);
  background:linear-gradient(180deg,#eef6ff,#f8fbff);
  box-shadow:0 12px 30px rgba(25,53,110,.10);
}
.hero-carousel-panel{padding:0;background:transparent;border:none;box-shadow:none}
.hero-map-card.clean{padding:0;overflow:hidden;min-height:520px}
.selection-strip .stop-card{overflow:hidden}
.selection-strip .stop-photo{background-size:cover;background-position:center}
.selection-strip .stop-body{gap:12px}
@media (max-width:1180px){.sg-detail-layout{grid-template-columns:1fr}.sg-culture-library,.sg-phrase-grid,.sg-nearby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.sg-phrase-grid,.sg-culture-library,.sg-nearby-grid{grid-template-columns:1fr}.sg-hero-stack{min-height:420px}.sg-hero-media{min-height:250px}.sg-hero-copy h3{font-size:1.45rem}.sg-detail-media{height:280px}}

/* smoothgo image fidelity refresh */
.sg-card-media,
.sg-reco-media,
.sg-detail-media,
.selection-strip .stop-photo,
.popup-photo,
.stop-card .stop-photo,
.sg-nearby-card .stop-photo{
  background-size: contain !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.sg-card-media,
.sg-reco-media,
.sg-detail-media,
.selection-strip .stop-photo,
.stop-card .stop-photo,
.sg-nearby-card .stop-photo,
.popup-photo{
  background-color:#dfe7ff !important;
}
.popup-card strong{display:block;margin-top:4px}
.popup-card p{margin:8px 0 10px;line-height:1.55}


/* smoothgo v13 engine + layout refresh */
.planner-grid{grid-template-columns:300px minmax(0,1fr) 380px;gap:20px;align-items:start}
.map-shell{height:520px;border-radius:24px}
.itinerary-panel{padding:18px 18px 6px}
.plan-summary .summary-lines{display:grid;gap:10px}
.summary-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.summary-row span{color:var(--muted)}
.summary-row b{text-align:right}
.sg-hero-media,
.sg-card-media,
.sg-reco-media,
.sg-detail-media,
.selection-strip .stop-photo,
.popup-photo,
.stop-card .stop-photo,
.sg-nearby-card .stop-photo{
  background-size:cover !important;
  background-position:var(--photo-position, center center) !important;
  background-repeat:no-repeat !important;
}
.sg-hero-stack{display:grid;min-height:560px}
.sg-hero-slide{grid-template-rows:minmax(360px,1fr) auto}
.sg-hero-media{min-height:380px}
.sg-detail-hero{border-radius:24px;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);box-shadow:var(--shadow)}
.sg-detail-media{height:460px;border-bottom:1px solid rgba(255,255,255,.07)}
.sg-detail-main{background:transparent}
.selection-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
.selection-strip .stop-card,.sg-nearby-card,.sg-reco-card,.sg-cluster-card{border-radius:24px}
.stop-photo{height:172px}
.popup-photo{height:132px;border-radius:14px}
.transport-inline{margin:6px 12px 6px 18px;padding:12px 14px;border-left:2px solid rgba(141,162,255,.34);background:rgba(255,255,255,.03);border-radius:16px}
.transport-inline-empty{margin-left:0;border-left:none}
.transport-inline .transport-row strong{font-size:.95rem}
.transport-inline .transport-alt{margin-top:6px}
.day-card{padding:18px;border-radius:22px}
.stop-line{gap:12px}
.stop-row{padding:14px 15px}
.stop-row strong{font-size:1.02rem}
.visit-status{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);font-weight:800}
.visit-status.required{background:rgba(141,162,255,.18);border-color:rgba(141,162,255,.34);color:#dbe2ff}
.visit-meta{display:grid;gap:10px}
.visit-row{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07)}
.visit-row span{color:var(--muted);font-size:.92rem}
.visit-row strong{text-align:right;word-break:break-word}
.sg-visit-card .link-row{margin-top:0}
@media (max-width:1280px){
  .planner-grid{grid-template-columns:290px minmax(0,1fr);}
  .itinerary-panel{grid-column:1 / -1;position:static;max-height:none}
}
@media (max-width:760px){
  .sg-hero-stack{min-height:460px}
  .sg-hero-slide{grid-template-rows:minmax(250px,1fr) auto}
  .sg-hero-media{min-height:260px}
  .sg-detail-media{height:300px}
  .selection-strip{grid-template-columns:1fr}
}


/* v13 report-aligned refinements */
.home-hero{padding-bottom:22px}
.home-hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);align-items:stretch;gap:18px}
.hero-copy-balanced{display:grid;align-content:start;gap:18px}
.home-story-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.home-story-points .mini-item{min-height:96px;align-items:flex-start}
.hero-carousel-panel{padding:0;overflow:hidden}
.hero-carousel-panel .hero-map-card.clean{min-height:100%;height:100%}
.section-head-inline{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:8px 12px;border-radius:999px;background:rgba(141,162,255,.18);border:1px solid rgba(141,162,255,.32);font-weight:800;color:#dce5ff}
.recommend-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.sg-reco-card{display:grid;grid-template-rows:190px auto}
.sg-reco-copy{min-height:184px}
.sg-phrase-card{display:grid;align-content:start;gap:12px;min-height:190px}
.sg-phrase-card .phrase-title{font-size:1.18rem;line-height:1.38;word-break:break-word}
.sg-phrase-card .phrase-chip{width:max-content;max-width:100%;white-space:normal;line-height:1.28}
.sg-phrase-card .small{margin:0;line-height:1.62}
.planner-left{display:grid;align-content:start;gap:16px}
.plan-summary{padding:16px 18px;border-radius:20px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);display:grid;gap:12px}
.plan-summary .summary-kicker{font-size:.82rem;font-weight:800;color:var(--soft);letter-spacing:.02em;text-transform:uppercase}
.plan-summary strong{line-height:1.3}
.plan-summary .summary-lines{margin-top:0}
.plan-summary .summary-row{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
#themeWrap{display:flex;flex-wrap:wrap;gap:10px}
#themeWrap .btn{border-radius:999px;padding:11px 16px}

.stop-tooltip{background:rgba(10,22,46,.94);border:1px solid rgba(141,162,255,.28);border-radius:14px;box-shadow:0 16px 28px rgba(0,0,0,.22);color:#eef4ff;padding:0}
.stop-tooltip:before{display:none}
.map-stop-tip{display:grid;gap:2px;padding:8px 10px}
.map-stop-tip strong{font-size:.9rem;line-height:1.25}
.map-stop-tip span{font-size:.78rem;color:#c4d2f8}
.stop-row.active-stop,.selection-strip .stop-card.active-stop{border-color:rgba(141,162,255,.4);box-shadow:0 0 0 1px rgba(141,162,255,.28)}
@media (max-width:1180px){
  .home-story-points,.recommend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .home-hero-grid,.home-story-points,.recommend-grid{grid-template-columns:1fr}
}


/* v13.5 base-aligned iteration */
.home-hero-grid{grid-template-columns:minmax(0,1fr) minmax(460px,.96fr);gap:22px}
.hero-copy-balanced{padding:30px 30px 28px;gap:16px}
.hero-copy h2{max-width:14.5ch;font-size:clamp(3.05rem,4.15vw,4.3rem);line-height:1.03}
.hero-copy .lead{max-width:36ch}
.metric-row{margin-top:20px}
.home-story-points{margin-top:2px}
.hero-dots,.hero-dots-floating{display:none !important}
.hero-carousel-panel .hero-map-card.clean{min-height:100%}
.sg-hero-stack{min-height:560px}
.sg-hero-slide{grid-template-rows:minmax(390px,1fr) auto}
.sg-hero-media{min-height:390px}

.setup-page{padding:34px 24px 28px}
.setup-page .kicker{margin-top:4px}
.setup-page h2{margin-top:18px !important}

#themeWrap{display:grid;grid-template-columns:1fr;gap:10px}
#themeWrap .btn{width:100%;justify-content:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#themeWrap .btn.primary{color:#fff}

.culture-columns{grid-template-columns:300px minmax(0,1fr)}
.cluster-list .cluster-pill{white-space:normal !important;overflow-wrap:anywhere;word-break:break-word;line-height:1.35;text-align:center;display:flex;align-items:center;justify-content:center;min-height:72px;padding:14px 16px}
.culture-detail{min-width:0;overflow:hidden}

.recommend-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.sg-reco-card{min-height:0}
.section-head-inline .count-pill{display:none}

@media (max-width:960px){
  .home-hero-grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  .planner-left{padding:16px}
  .planner-left .form-grid{grid-template-columns:1fr}
  .planner-left .field{min-width:0}
  .planner-left .field label{font-size:.9rem;line-height:1.25;white-space:nowrap}
  .planner-left .field select,
  .planner-left .field input{font-size:1rem;padding:13px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .planner-left .rangeWrap{align-items:center}
  .planner-left .rangeValue{min-width:4.6ch;font-size:1.3rem}
  #themeWrap .btn{font-size:.95rem;padding:12px 14px}
  #bufferBox .chips{grid-template-columns:1fr}
  #bufferBox .chip{width:100%;justify-content:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}


/* V14.0 refinements on top of the aligned base */
@media (max-width:768px){
  .planner-left .form-grid{grid-template-columns:1fr !important;gap:12px}
  .planner-left .field{width:100%;min-width:0}
  .planner-left .field label{white-space:normal;line-height:1.25}
  .planner-left .field select,.planner-left .field input{width:100%;max-width:100%;font-size:.98rem;padding:14px 14px}
}
.hero-inline-points{display:flex;flex-wrap:wrap;gap:10px}
.hero-inline-points .chip{padding:10px 14px}
.stop-popup-lite .leaflet-popup-content-wrapper{border-radius:18px}
.stop-popup-lite .leaflet-popup-content{margin:10px 12px}
.popup-card.compact{display:grid !important;grid-template-columns:64px 1fr;gap:12px;align-items:start;width:228px}
.popup-photo-thumb{width:64px;height:64px;object-fit:cover;border-radius:12px;border:1px solid rgba(255,255,255,.08);display:block}
.popup-copy{display:grid;gap:4px;min-width:0}
.popup-copy strong{font-size:.98rem;line-height:1.2}
.popup-copy span{font-size:.82rem;color:var(--soft)}
.popup-copy p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stop-card{cursor:pointer}
.visit-status,.sg-visit-status{width:fit-content;max-width:100%;align-self:flex-start;white-space:normal;line-height:1.35;padding:10px 16px}
.setup-page{padding:42px 24px 28px}
.setup-page .kicker{margin-top:12px;display:inline-flex}
.setup-page h2{margin-top:18px !important}
.culture-stage{position:relative;display:grid;gap:0;overflow:hidden;border-radius:26px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);margin-top:18px}
.culture-stage-media{min-height:340px;background:#dfe7ff center/cover no-repeat}
.culture-stage-body{padding:18px 18px 20px;display:grid;gap:12px}
.culture-stage-body h3{margin:0;font-size:1.5rem;line-height:1.2}
.culture-stage-actions{display:flex;flex-wrap:wrap;gap:10px}
.culture-stage-nav{position:absolute;top:16px;z-index:2;width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(7,20,45,.58);color:#fff;font-size:1.7rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.culture-stage-nav.prev{left:16px}.culture-stage-nav.next{right:16px}
.culture-stage:focus-visible{outline:2px solid rgba(141,162,255,.4);outline-offset:3px}
@media (max-width:760px){
  .culture-stage-media{min-height:250px}
  .culture-stage-nav{top:12px;width:38px;height:38px}
}


/* V14.1 iterative refinements */
.planner-left .form-grid{grid-template-columns:1fr;gap:12px}
.planner-left .field{min-width:0;width:100%}
.planner-left .field label{white-space:nowrap;line-height:1.2}
.planner-left .field select,.planner-left .field input{width:100%;max-width:100%;font-size:.96rem;padding:14px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#themeWrap .btn{justify-content:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:768px){
  .planner-left{padding:18px}
  .planner-left .form-grid{grid-template-columns:1fr !important;gap:12px}
  .planner-left .field label{white-space:nowrap;font-size:.92rem}
  .planner-left .field select,.planner-left .field input{font-size:.95rem;padding:14px 12px}
  #themeWrap{grid-template-columns:1fr;gap:10px}
  #themeWrap .btn{width:100%}
}
.stop-popup-lite .leaflet-popup-content-wrapper{border-radius:18px}
.stop-popup-lite .leaflet-popup-content{margin:12px 14px}
.popup-card.compact{display:grid!important;grid-template-columns:76px 1fr;gap:12px;align-items:start;width:268px}
.popup-photo-thumb{width:76px;height:76px;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.10);display:block}
.popup-copy strong{font-size:1rem;line-height:1.2}
.popup-copy span{font-size:.84rem}
.popup-copy p{font-size:.86rem;-webkit-line-clamp:3}
.visit-status,.sg-visit-status{display:inline-flex;width:auto!important;max-width:max-content!important;align-self:flex-start;white-space:nowrap!important;line-height:1.2;padding:10px 14px;border-radius:999px}
.culture-stage-nav{top:auto;bottom:16px;width:34px;height:34px;font-size:1.25rem;background:rgba(7,20,45,.52);backdrop-filter:blur(8px);border-color:rgba(255,255,255,.14)}
.culture-stage-nav.prev{left:16px}.culture-stage-nav.next{right:16px}
.culture-stage-media{min-height:360px}


/* v14.2 targeted fixes */
.culture-stage-nav{display:none !important}
.popup-card.compact{width:296px;display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:start}
.popup-card.compact .popup-copy{display:grid;gap:6px}
.popup-photo-thumb{width:96px !important;height:96px !important;border-radius:16px}
.popup-card.compact strong{font-size:1.16rem;line-height:1.15}
.popup-card.compact span{color:#c7d4f3;font-weight:700;font-size:.95rem}
.popup-card.compact p{margin:0;color:#dbe5ff;line-height:1.45;font-size:.95rem}
.popup-more-link{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:#9fd3ff;text-decoration:underline;text-underline-offset:2px}
.sg-detail-layout{grid-template-columns:minmax(0,1fr) 320px !important;gap:18px}
.sg-visit-card{align-self:start;gap:12px !important;padding:18px !important}
.sg-visit-top{display:grid;gap:10px;padding:12px 0 2px}
.sg-visit-note{margin:0;color:var(--muted);line-height:1.55}
.sg-visit-link-top{margin:0 0 2px}
.sg-reliable-note{margin-top:0 !important;padding:16px 18px !important}
.visit-meta{gap:8px !important}
.visit-row{padding:14px 14px !important}
@media (max-width:1180px){
  .sg-detail-layout{grid-template-columns:1fr !important}
}


/* V14.3 overflow fix */
.city-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.city-choice{min-width:0;justify-content:center;text-align:center;padding:12px 10px;line-height:1.2;white-space:normal;word-break:break-word;overflow-wrap:anywhere;hyphens:auto;}
.city-choice input{display:none;}
@media (max-width:760px){
  .city-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:10px;}
  .city-choice{font-size:.9rem;min-height:68px;padding:10px 8px;border-radius:16px;}
}
@media (max-width:420px){
  .city-choice{font-size:.84rem;min-height:74px;padding:10px 6px;}
}


/* v14.5 image registry + recovery visibility */
.day-head-copy{display:flex;flex-direction:column;gap:4px}
.day-head-meta{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.sg-recovery-chip{box-shadow:0 0 0 1px rgba(125,211,252,.25) inset}
.theme-light .sg-recovery-chip,
body[data-theme="light"] .sg-recovery-chip{
  background:rgba(46,169,255,.12);
  border-color:rgba(46,169,255,.24);
  color:#1d5f93;
  box-shadow:0 0 0 1px rgba(46,169,255,.18) inset;
}
.popup-meta-row{margin:8px 0 2px}
.chip.subtle{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1)}
[data-photo-source="real"]{box-shadow:inset 0 0 0 1px rgba(111,227,176,.18)}


/* V15.0.2 planner map focus card fix */
.map-panel{position:relative}
.map-focus-card{position:absolute;left:18px;bottom:18px;z-index:850;width:min(560px,calc(100% - 36px));border-radius:26px;overflow:hidden;background:linear-gradient(180deg,rgba(9,22,48,.96),rgba(14,31,66,.98));border:1px solid rgba(255,255,255,.1);box-shadow:0 26px 56px rgba(0,0,0,.42);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .24s ease,transform .24s ease}
.map-focus-card.show{opacity:1;transform:translateY(0);pointer-events:auto}
.map-focus-close{position:absolute;top:14px;right:14px;z-index:3;width:36px;height:36px;border:none;border-radius:999px;background:rgba(7,20,45,.68);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.22)}
.map-focus-media-wrap{height:180px;background:#dfe7ff;overflow:hidden}
.map-focus-media{display:block;width:100%;height:100%;object-fit:cover}
.map-focus-body{display:grid;gap:12px;padding:18px 20px 20px}
.map-focus-body h4{margin:0;font-size:1.55rem;line-height:1.15}
.map-focus-body p{margin:0;color:#e3ebff;line-height:1.56;font-size:1rem}
.map-focus-metrics{gap:8px}
.map-focus-status{display:grid;gap:4px;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.map-focus-status strong{font-size:1rem;line-height:1.2}
.map-focus-status span{color:#cad8f8;line-height:1.5}
.map-focus-status.walkin strong{color:#5df2b8}
.map-focus-status.booking strong{color:#ffd780}
.map-focus-link{font-size:1rem;font-weight:800}
@media (max-width:980px){
  .map-focus-card{left:12px;right:12px;bottom:12px;width:auto;border-radius:24px}
  .map-focus-media-wrap{height:158px}
  .map-focus-body{padding:16px 16px 18px;gap:10px}
  .map-focus-body h4{font-size:1.32rem}
}
@media (max-width:640px){
  .map-focus-card{left:10px;right:10px;bottom:10px;border-radius:22px}
  .map-focus-media-wrap{height:140px}
  .map-focus-body p{font-size:.95rem}
  .map-focus-close{width:32px;height:32px;font-size:1.3rem}
}


/* V15.0.6 planner layout + summary stability */
.planner-grid{grid-template-columns:320px minmax(760px,1.45fr) 420px !important;gap:22px !important;align-items:start !important}
.planner-left{position:sticky;top:92px;max-height:calc(100vh - 112px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.planner-main{position:sticky;top:92px;height:calc(100vh - 112px);display:grid;grid-template-rows:minmax(440px,1fr) minmax(250px,.72fr);gap:18px;align-self:start;min-height:0}
.map-panel{display:grid;min-height:0;padding:14px 14px 12px}
.map-shell{height:100% !important;min-height:560px;border-radius:26px}
.selected-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0}
.selected-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.selection-strip-wrap{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}
.selection-strip{grid-template-columns:repeat(2,minmax(0,1fr)) !important;align-content:start}
.itinerary-panel{position:sticky;top:92px;height:calc(100vh - 112px);max-height:none !important;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:12px}
.plan-summary{gap:14px}
.plan-summary .summary-lines{display:grid;gap:10px}
.plan-summary .summary-row{display:grid;grid-template-columns:minmax(112px,.88fr) minmax(0,1.55fr);gap:14px;align-items:start;padding:11px 12px;border-radius:16px}
.plan-summary .summary-row span{min-width:0;white-space:normal;line-height:1.35;color:var(--muted)}
.plan-summary .summary-row b{min-width:0;text-align:left;line-height:1.5;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.plan-summary .summary-note{margin-top:-2px;color:var(--soft);line-height:1.55}
.map-focus-card{width:min(500px,calc(100% - 30px));left:15px;bottom:15px;border-radius:24px}
.map-focus-media-wrap{height:168px}
.map-focus-body{gap:10px;padding:16px 18px 18px}
.map-focus-body h4{font-size:1.42rem}
@media (max-width:1450px){
  .planner-grid{grid-template-columns:300px minmax(0,1.28fr) 390px !important}
}
@media (max-width:1180px){
  .planner-grid{grid-template-columns:1fr !important}
  .planner-left,.planner-main,.itinerary-panel{position:static;top:auto;height:auto;max-height:none}
  .planner-main{grid-template-rows:auto auto}
  .map-shell{height:620px !important;min-height:620px}
  .selection-strip-wrap{overflow:visible;max-height:none}
  .selection-strip{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media (max-width:760px){
  .map-shell{height:480px !important;min-height:480px}
  .selection-strip{grid-template-columns:1fr !important}
  .plan-summary .summary-row{grid-template-columns:1fr}
}


/* V15.0.6 theme-aware planner map overlays */
body{
  --map-focus-bg:linear-gradient(180deg,rgba(9,22,48,.96),rgba(14,31,66,.98));
  --map-focus-border:rgba(255,255,255,.10);
  --map-focus-shadow:0 26px 56px rgba(0,0,0,.42);
  --map-focus-text:#f5f8ff;
  --map-focus-muted:#e3ebff;
  --map-focus-soft:#cad8f8;
  --map-focus-surface:rgba(255,255,255,.04);
  --map-focus-surface-border:rgba(255,255,255,.08);
  --map-focus-chip-bg:rgba(255,255,255,.06);
  --map-focus-chip-border:rgba(255,255,255,.12);
  --map-focus-close-bg:rgba(7,20,45,.68);
  --map-focus-close-color:#fff;
  --map-focus-walkin:#5df2b8;
  --map-focus-booking:#ffd780;
}
body[data-theme="light"]{
  --map-focus-bg:linear-gradient(180deg,#ffffff,#f5f8ff);
  --map-focus-border:rgba(95,112,255,.18);
  --map-focus-shadow:0 22px 44px rgba(25,53,110,.18);
  --map-focus-text:#0d1a34;
  --map-focus-muted:#415273;
  --map-focus-soft:#5b6b8b;
  --map-focus-surface:rgba(95,112,255,.07);
  --map-focus-surface-border:rgba(95,112,255,.16);
  --map-focus-chip-bg:rgba(95,112,255,.08);
  --map-focus-chip-border:rgba(95,112,255,.18);
  --map-focus-close-bg:rgba(13,26,52,.74);
  --map-focus-close-color:#fff;
  --map-focus-walkin:#147a5b;
  --map-focus-booking:#96620d;
}
.map-focus-card{
  background:var(--map-focus-bg);
  border-color:var(--map-focus-border);
  box-shadow:var(--map-focus-shadow);
  color:var(--map-focus-text);
}
.map-focus-close{
  background:var(--map-focus-close-bg);
  color:var(--map-focus-close-color);
}
.map-focus-body h4{color:var(--map-focus-text)}
.map-focus-body p{color:var(--map-focus-muted)}
.map-focus-card .chip{
  background:var(--map-focus-chip-bg);
  border-color:var(--map-focus-chip-border);
  color:var(--map-focus-soft);
}
.map-focus-card .chip.primary{
  background:rgba(141,162,255,.16);
  border-color:rgba(141,162,255,.28);
  color:#dbe2ff;
}
body[data-theme="light"] .map-focus-card .chip.primary{
  background:rgba(95,112,255,.12);
  border-color:rgba(95,112,255,.24);
  color:#4050b8;
}
.map-focus-status{
  background:var(--map-focus-surface);
  border-color:var(--map-focus-surface-border);
}
.map-focus-status span{color:var(--map-focus-soft)}
.map-focus-status.walkin strong{color:var(--map-focus-walkin)}
.map-focus-status.booking strong{color:var(--map-focus-booking)}
.map-focus-link{color:var(--accent2)}
body[data-theme="light"].map-focus::before{background:rgba(239,244,255,.62)}
body[data-theme="light"] .map-focus-backdrop{background:rgba(239,244,255,.58)}
body[data-theme="light"] .stop-tooltip{
  background:rgba(255,255,255,.96);
  border-color:rgba(95,112,255,.22);
  box-shadow:0 16px 32px rgba(25,53,110,.16);
  color:var(--text);
}
body[data-theme="light"] .map-stop-tip span{color:var(--muted)}
body[data-theme="light"] .popup-card.compact span,
body[data-theme="light"] .popup-copy span{color:var(--muted)}
body[data-theme="light"] .popup-card.compact p,
body[data-theme="light"] .popup-copy p{color:var(--muted)}
body[data-theme="light"] .popup-more-link{color:var(--accent2)}
body[data-theme="light"] .popup-photo-thumb{border-color:rgba(13,26,52,.12)}


/* V15.0.6 viewport-safe planner map focus card */
.map-focus-card{
  max-height:calc(100vh - 130px);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}


/* V15.0.6 device adaptive shell + mobile app navigation */
:root{
  --mobile-tab-height:76px;
  --mobile-safe-bottom:env(safe-area-inset-bottom,0px);
}
body[data-layout="mobile"]{
  padding-bottom:calc(var(--mobile-tab-height) + var(--mobile-safe-bottom));
}

@media (max-width:1180px){
  .topbar .inner{
    display:grid !important;
    grid-template-columns:minmax(220px,1fr) minmax(260px,auto);
    grid-template-areas:"brand tools" "nav nav";
    height:auto !important;
    align-items:center !important;
    gap:12px !important;
    padding:12px 24px !important;
  }
  .brand{grid-area:brand;min-width:0}
  .nav{
    grid-area:nav;
    flex-wrap:nowrap !important;
    overflow-x:auto;
    overflow-y:hidden;
    justify-content:flex-start !important;
    width:100%;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .nav::-webkit-scrollbar{display:none}
  .tools{
    grid-area:tools;
    justify-self:end;
    width:auto;
    max-width:320px;
  }
  .hero-grid,.home-hero-grid,.home-split,.entry-grid,.detail-layout,.sg-detail-layout,.culture-columns,.planner-grid{
    grid-template-columns:1fr !important;
  }
  .home-story-points,.recommend-grid,.grid-3,.grid-4,.setup-grid,.info-grid,.entry-prep-grid,.phrase-grid,.illus-strip,.footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .planner-left,.planner-main,.itinerary-panel{
    position:static !important;
    top:auto !important;
    height:auto !important;
    max-height:none !important;
  }
  .planner-main{grid-template-rows:auto auto !important}
  .planner-grid{gap:18px !important}
  .hero-copy h2{font-size:clamp(2.45rem,5.2vw,3.4rem) !important;max-width:16ch}
  .hero-photo,.hero-map-card.clean,.sg-hero-stack{min-height:420px}
}

@media (max-width:760px){
  html{
    overflow-x:hidden;
    overflow-y:auto;
    scroll-padding-bottom:calc(var(--mobile-tab-height) + var(--mobile-safe-bottom));
  }
  body{
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  main{
    padding-top:18px !important;
    padding-bottom:calc(42px + var(--mobile-tab-height) + var(--mobile-safe-bottom)) !important;
  }
  .wrap{padding-left:16px !important;padding-right:16px !important}
  .topbar{
    z-index:1100;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .topbar .inner{
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas:"brand tools" !important;
    gap:10px !important;
    padding:10px 16px !important;
  }
  .brand{gap:10px}
  .brand-badge{width:34px;height:34px;border-radius:12px}
  .brand h1{font-size:1rem !important;line-height:1.1;max-width:15ch}
  .brand p{display:none}
  .tools{
    display:flex !important;
    grid-template-columns:none !important;
    gap:6px !important;
    width:auto !important;
    max-width:none !important;
  }
  .selectWrap{
    min-height:38px;
    padding:5px 8px !important;
    border-radius:14px !important;
  }
  .selectWrap label{display:none}
  .selectWrap select{
    width:auto !important;
    max-width:88px;
    min-width:0 !important;
    padding:6px 2px !important;
    font-size:.82rem;
  }
  .nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1200;
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:6px !important;
    width:100%;
    padding:8px 10px calc(8px + var(--mobile-safe-bottom)) !important;
    border:1px solid var(--line);
    border-right:0;
    border-bottom:0;
    border-left:0;
    border-radius:24px 24px 0 0;
    background:linear-gradient(180deg,rgba(8,17,34,.96),rgba(8,17,34,.92));
    box-shadow:0 -16px 38px rgba(0,0,0,.36);
    backdrop-filter:blur(18px);
    overflow:hidden;
  }
  body[data-theme="light"] .nav{
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,250,255,.94));
    box-shadow:0 18px 38px rgba(25,53,110,.18);
  }
  .nav a{
    min-width:0;
    min-height:50px;
    padding:8px 4px !important;
    border:0 !important;
    border-radius:17px !important;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:normal !important;
    line-height:1.12;
    font-size:.76rem !important;
    background:transparent;
  }
  .nav a.active{
    background:rgba(141,162,255,.20);
    box-shadow:0 0 0 1px rgba(141,162,255,.25) inset;
  }
  body[data-theme="light"] .nav a.active{
    background:rgba(95,112,255,.12);
  }

  .hero-grid,.home-hero-grid,.home-split,.entry-grid,.detail-layout,.detail-grid,.sg-detail-layout,.culture-columns,.planner-grid,
  .home-story-points,.recommend-grid,.grid-3,.grid-4,.setup-grid,.info-grid,.entry-prep-grid,.phrase-grid,.illus-strip,.story-grid,.footer-grid,.result-grid{
    grid-template-columns:1fr !important;
  }
  .section{margin-top:22px}
  .section h3{font-size:1.45rem;line-height:1.2}
  .sub,.lead{font-size:1rem;line-height:1.58}
  .panel,.cluster-card,.trust-card,.culture-card,.setup-card,.day-card,.stop-card,.detail-card{
    border-radius:22px;
  }
  .hero-copy,.detail-main,.result-card,.culture-detail,.setup-card,.cluster-card,.trust-card,.culture-card,.detail-card{
    padding:18px !important;
  }
  .hero-copy h2{
    font-size:2.12rem !important;
    line-height:1.06 !important;
    max-width:13.5ch;
  }
  .hero-actions,.link-row{gap:10px}
  .hero-actions .btn,.link-row .btn,.btn{
    width:100%;
    min-height:46px;
    padding:12px 16px;
  }
  .metric-row{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px}
  .metric{padding:14px;border-radius:16px}
  .metric strong{font-size:1.18rem}
  .hero-photo,.hero-map-card.clean,.sg-hero-stack{min-height:340px}
  .sg-hero-slide{grid-template-rows:minmax(220px,1fr) auto}
  .sg-reco-card,.reco-card,.cluster-card.full-card,.culture-item-card{min-height:0}
  .sg-reco-media,.reco-photo,.cluster-photo,.culture-item-photo{height:170px}
  .sg-reco-copy,.reco-body,.cluster-card-body,.culture-item-body{padding:16px}
  .chips,.tag-row{gap:7px}
  .chip{
    max-width:100%;
    white-space:normal !important;
    overflow-wrap:anywhere;
    line-height:1.25;
    padding:8px 10px;
  }
  .visit-status,.sg-visit-status{
    max-width:100% !important;
    white-space:normal !important;
  }
  body[data-page="planner"] .planner-grid{
    display:flex !important;
    flex-direction:column;
    gap:16px !important;
    align-items:stretch !important;
  }
  body[data-page="planner"] .planner-main{
    order:1;
    display:flex !important;
    flex-direction:column;
    gap:14px !important;
    min-height:0 !important;
  }
  body[data-page="planner"] .planner-left{
    order:2;
  }
  body[data-page="planner"] .itinerary-panel{
    order:3;
  }
  body[data-page="planner"] .planner-left,
  body[data-page="planner"] .planner-main,
  body[data-page="planner"] .itinerary-panel,
  body[data-page="planner"] .selection-strip-wrap{
    position:static !important;
    top:auto !important;
    align-self:stretch !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    overscroll-behavior:auto !important;
    scrollbar-gutter:auto !important;
  }
  .planner-left{padding:16px !important}
  .planner-left .form-grid{grid-template-columns:1fr !important}
  .planner-left .field label{white-space:normal !important}
  .planner-left .field select,.planner-left .field input{
    min-height:46px;
    white-space:normal;
  }
  #themeWrap{grid-template-columns:1fr !important}
  .planner-main{gap:14px !important}
  .map-panel{padding:10px !important}
  .map-shell{
    height:min(60vh,460px) !important;
    min-height:320px !important;
    border-radius:20px;
  }
  .selection-strip-wrap{overflow:visible !important;max-height:none !important;padding-right:0}
  .selection-strip{grid-template-columns:1fr !important}
  .stop-photo{height:170px}
  .stop-body{height:auto !important;padding:16px !important}
  .stop-body h4{min-height:0}
  .itinerary-panel{padding:16px !important}
  .day-head{align-items:flex-start;flex-direction:column}
  .transport-row{display:grid;gap:8px}
  .transport-box,.transport-inline{padding:12px;border-radius:16px}
  .map-focus-card{
    left:10px !important;
    right:10px !important;
    width:auto !important;
    max-height:min(calc(100vh - 132px - var(--mobile-tab-height) - var(--mobile-safe-bottom)), calc(100% - 20px));
  }
  .map-focus-media-wrap{height:132px}
  .map-focus-body{padding:14px;gap:9px}
  body[data-page="planner"] #plannerMap,
  body[data-page="entry"] #entryMap{
    touch-action:pan-y !important;
  }
  .footer{padding-bottom:calc(26px + var(--mobile-tab-height) + var(--mobile-safe-bottom))}
}

@media (max-width:420px){
  .wrap{padding-left:14px !important;padding-right:14px !important}
  .topbar .inner{padding-left:14px !important;padding-right:14px !important}
  .brand h1{max-width:12ch}
  .tools{gap:5px !important}
  .selectWrap select{max-width:78px;font-size:.78rem}
  .nav{left:0;right:0;border-radius:22px 22px 0 0}
  .nav a{font-size:.72rem !important;min-height:48px}
  .hero-copy h2{font-size:1.95rem !important}
  .metric-row{grid-template-columns:1fr !important}
  .map-shell{height:min(58vh,430px) !important;min-height:300px !important}
}

@media (hover:none) and (pointer:coarse){
  .btn,.nav a,.stop-row,.stop-card,.cluster-card,.sg-reco-card,.city-choice,.selectWrap select,.field select,.field input{
    min-height:44px;
  }
  .nav a:hover,.stop-row:hover{
    box-shadow:none;
  }
}


/* Planner mobile prototype lab */
.mobile-prototype-page{
  padding-bottom:48px;
  overflow-x:hidden;
}
.prototype-lab{
  margin-top:28px;
}
.prototype-lab-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.prototype-lab-head h2{
  margin:8px 0 0;
  font-size:clamp(1.8rem,3vw,2.6rem);
  line-height:1.1;
}
.prototype-tabs{
  display:flex;
  gap:8px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}
.prototype-tabs button{
  border:0;
  border-radius:13px;
  padding:10px 14px;
  min-height:42px;
  color:var(--muted);
  background:transparent;
  font-weight:900;
  cursor:pointer;
}
.prototype-tabs button.active{
  color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  box-shadow:0 12px 26px rgba(95,112,255,.25);
}
body[data-theme="light"] .prototype-tabs button.active{
  color:#0d1a34;
}
.prototype-stage{
  display:grid;
  grid-template-columns:minmax(360px,430px) minmax(260px,1fr);
  gap:22px;
  align-items:start;
  min-width:0;
}
.prototype-phone{
  width:100%;
  max-width:430px;
  min-width:0;
  min-height:760px;
  margin:0 auto;
  border:1px solid rgba(255,255,255,.12);
  border-radius:34px;
  background:#07142b;
  box-shadow:0 28px 70px rgba(0,0,0,.34);
  overflow:hidden;
  position:relative;
}
body[data-theme="light"] .prototype-phone{
  background:#eef4ff;
  border-color:rgba(95,112,255,.18);
  box-shadow:0 24px 60px rgba(25,53,110,.18);
}
.prototype-phone-status{
  height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px;
  color:#dfe8ff;
  background:rgba(255,255,255,.05);
  font-size:.82rem;
  font-weight:900;
}
body[data-theme="light"] .prototype-phone-status{
  color:#1c2a48;
  background:rgba(255,255,255,.72);
}
.prototype-root{
  height:716px;
  min-width:0;
}
.prototype-notes{
  padding:22px;
  position:sticky;
  top:100px;
}
.prototype-notes h3{
  margin:8px 0 10px;
  font-size:1.45rem;
}
.prototype-notes p{
  color:var(--muted);
  line-height:1.7;
  margin:0;
}
.prototype-note-list{
  display:grid;
  gap:10px;
  margin-top:18px;
}
.prototype-note-list div{
  display:grid;
  gap:5px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.04);
}
.prototype-note-list span{
  color:var(--muted);
  line-height:1.45;
}
.mp-screen{
  height:100%;
  position:relative;
  overflow:hidden;
  min-width:0;
  color:#eef4ff;
  background:linear-gradient(180deg,#10214b,#091833);
}
.mp-config-first{
  overflow-y:auto;
  overflow-x:hidden;
  padding-bottom:92px;
}
body[data-theme="light"] .mp-screen{
  color:#10203f;
  background:linear-gradient(180deg,#f7faff,#e9f0ff);
}
.mp-screen h3{
  margin:0;
  font-size:1.08rem;
  line-height:1.25;
}
.mp-screen p{
  margin:0;
  color:#b9c8ea;
  line-height:1.55;
}
body[data-theme="light"] .mp-screen p{
  color:#50617f;
}
.mp-app-head,.mp-map-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px;
  min-width:0;
}
.mp-app-head strong,.mp-map-head strong,.mp-floating-summary strong{
  min-width:0;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.mp-app-head span,.mp-map-head span,.mp-floating-summary span{
  display:block;
  margin-bottom:4px;
  color:#91a6d5;
  font-size:.78rem;
  font-weight:900;
}
body[data-theme="light"] .mp-app-head span,
body[data-theme="light"] .mp-map-head span,
body[data-theme="light"] .mp-floating-summary span{
  color:#65769a;
}
.mp-app-head button,.mp-map-head button,.mp-floating-summary button,.mp-map-actions button,.mp-bottom-tools button{
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  min-height:38px;
  padding:9px 13px;
  color:#eef4ff;
  background:rgba(255,255,255,.08);
  font-weight:900;
  cursor:pointer;
}
body[data-theme="light"] .mp-app-head button,
body[data-theme="light"] .mp-map-head button,
body[data-theme="light"] .mp-floating-summary button,
body[data-theme="light"] .mp-map-actions button,
body[data-theme="light"] .mp-bottom-tools button{
  color:#17284b;
  background:rgba(255,255,255,.78);
  border-color:rgba(95,112,255,.18);
}
.mp-copy{
  padding:0 16px 14px;
  display:grid;
  gap:8px;
}
.mp-form{
  display:grid;
  gap:12px;
  padding:0 16px 16px;
  min-width:0;
}
.mp-form.compact{
  padding:0;
}
.mp-form label,.mp-fieldset{
  display:grid;
  gap:7px;
  min-width:0;
}
.mp-form label span,.mp-fieldset > span{
  color:#aebfe3;
  font-size:.82rem;
  font-weight:900;
}
body[data-theme="light"] .mp-form label span,
body[data-theme="light"] .mp-fieldset > span{
  color:#556889;
}
.mp-form select{
  width:100%;
  min-height:46px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:0 13px;
  color:#fff;
  background:#0a1733;
  font-weight:800;
}
body[data-theme="light"] .mp-form select{
  color:#10203f;
  background:#fff;
  border-color:rgba(95,112,255,.18);
}
.mp-range{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  min-width:0;
}
.mp-range input{
  min-width:0;
}
.mp-range strong{
  min-width:44px;
  text-align:right;
}
.mp-choice-row,.mp-toggle-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.mp-toggle-row{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.mp-choice-row button,.mp-toggle-row button{
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  min-height:40px;
  color:#dce7ff;
  background:rgba(255,255,255,.06);
  font-weight:900;
  cursor:pointer;
}
.mp-choice-row button.active,.mp-toggle-row button.active{
  color:#fff;
  background:linear-gradient(135deg,#7c8cff,#36d6b7);
}
body[data-theme="light"] .mp-choice-row button,
body[data-theme="light"] .mp-toggle-row button{
  color:#263656;
  background:#fff;
  border-color:rgba(95,112,255,.16);
}
body[data-theme="light"] .mp-choice-row button.active,
body[data-theme="light"] .mp-toggle-row button.active{
  color:#10203f;
}
.mp-full-action{
  width:calc(100% - 32px);
  margin:0 16px 16px;
}
.mp-summary-card{
  margin:0 16px 16px;
  padding:14px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}
body[data-theme="light"] .mp-summary-card{
  background:#fff;
  border-color:rgba(95,112,255,.18);
}
.mp-map{
  position:relative;
  min-height:330px;
  margin:0 16px 16px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  overflow:hidden;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(145deg,#102a4a,#081121 56%,#15375f);
  background-size:36px 36px,36px 36px,auto;
}
body[data-theme="light"] .mp-map{
  border-color:rgba(95,112,255,.18);
  background:
    linear-gradient(rgba(36,61,105,.07) 1px, transparent 1px),
    linear-gradient(90deg,rgba(36,61,105,.07) 1px, transparent 1px),
    linear-gradient(145deg,#e8f2ff,#cfe2f7 56%,#edf7f2);
  background-size:36px 36px,36px 36px,auto;
}
.mp-map.large{
  min-height:520px;
}
.mp-map.medium{
  min-height:300px;
}
.mp-map.full{
  min-height:100%;
  margin:0;
  border:0;
  border-radius:0;
}
.mp-map-line{
  position:absolute;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#8ca0ff,#36d6b7);
  transform-origin:left center;
  opacity:.9;
}
.mp-map-line.one{
  left:100px;
  top:180px;
  width:150px;
  transform:rotate(26deg);
}
.mp-map-line.two{
  left:210px;
  top:260px;
  width:120px;
  transform:rotate(-18deg);
}
.mp-pin{
  position:absolute;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:16px 16px 16px 4px;
  color:#fff;
  background:linear-gradient(135deg,#3aa7ff,#7c8cff);
  border:2px solid rgba(255,255,255,.85);
  box-shadow:0 12px 26px rgba(0,0,0,.28);
  transform:rotate(-45deg);
  font-weight:900;
}
.mp-pin::first-letter{
  transform:rotate(45deg);
}
.mp-pin.p1{left:82px;top:150px}
.mp-pin.p2{left:228px;top:228px}
.mp-pin.p3{left:315px;top:190px}
.mp-pin{
  line-height:38px;
  text-align:center;
}
.mp-map-chip{
  position:absolute;
  left:16px;
  right:16px;
  padding:10px 12px;
  border-radius:999px;
  color:#eaf1ff;
  background:rgba(5,12,27,.72);
  border:1px solid rgba(255,255,255,.1);
  font-size:.84rem;
  font-weight:900;
}
.mp-map-chip.top{top:14px}
.mp-map-chip.bottom{bottom:14px}
body[data-theme="light"] .mp-map-chip{
  color:#17284b;
  background:rgba(255,255,255,.82);
  border-color:rgba(95,112,255,.18);
}
.mp-bottom-tools{
  position:absolute;
  left:16px;
  right:16px;
  bottom:18px;
  z-index:6;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:rgba(5,12,27,.76);
  backdrop-filter:blur(14px);
}
.mp-bottom-tools button.active{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
}
.mp-drawer{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:8;
  max-height:72%;
  overflow:auto;
  padding:12px 16px 18px;
  border-radius:26px 26px 0 0;
  background:#0e1d3d;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 -20px 44px rgba(0,0,0,.35);
  transform:translateY(104%);
  transition:transform .22s ease;
}
.mp-drawer.open{
  transform:translateY(0);
}
body[data-theme="light"] .mp-drawer{
  color:#10203f;
  background:#f7faff;
  border-color:rgba(95,112,255,.18);
}
.mp-drawer i{
  display:block;
  width:42px;
  height:5px;
  margin:0 auto 12px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
}
body[data-theme="light"] .mp-drawer i{
  background:rgba(95,112,255,.24);
}
.mp-drawer h3{
  margin:0 42px 14px 0;
}
.mp-drawer-close{
  position:absolute;
  top:12px;
  right:14px;
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.1);
  cursor:pointer;
}
body[data-theme="light"] .mp-drawer-close{
  color:#10203f;
  background:rgba(95,112,255,.12);
}
.mp-stop{
  display:grid;
  grid-template-columns:104px 1fr;
  gap:12px;
  padding:10px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;
  background:rgba(255,255,255,.05);
}
body[data-theme="light"] .mp-stop{
  background:#fff;
  border-color:rgba(95,112,255,.16);
}
.mp-stop img{
  width:100%;
  height:92px;
  object-fit:cover;
  border-radius:14px;
}
.mp-stop span{
  color:#96aadb;
  font-size:.76rem;
  font-weight:900;
}
body[data-theme="light"] .mp-stop span{
  color:#637799;
}
.mp-stop h4{
  margin:4px 0 6px;
  font-size:.95rem;
}
.mp-stop p{
  font-size:.82rem;
}
.mp-tags{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:8px;
}
.mp-tags em{
  padding:5px 7px;
  border-radius:999px;
  color:#dfe9ff;
  background:rgba(255,255,255,.08);
  font-size:.72rem;
  font-style:normal;
}
body[data-theme="light"] .mp-tags em{
  color:#50617f;
  background:rgba(95,112,255,.1);
}
.mp-itinerary{
  display:grid;
  gap:10px;
}
.mp-itinerary section{
  padding:12px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:17px;
  background:rgba(255,255,255,.05);
}
body[data-theme="light"] .mp-itinerary section{
  background:#fff;
  border-color:rgba(95,112,255,.16);
}
.mp-itinerary h4{
  margin:0 0 9px;
}
.mp-itinerary p{
  display:flex;
  gap:9px;
  align-items:flex-start;
  margin-top:7px;
  font-size:.86rem;
}
.mp-itinerary b{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:999px;
  background:rgba(124,140,255,.22);
}
.mp-steps,.mp-result{
  overflow:auto;
  padding-bottom:18px;
  overflow-x:hidden;
}
.mp-result > h3{
  margin:16px 16px 10px;
}
.mp-stop-strip{
  display:grid;
  gap:10px;
  margin:0 16px;
}
.mp-map-first{
  min-height:100%;
}
.mp-floating-summary{
  position:absolute;
  top:14px;
  left:14px;
  right:14px;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  background:rgba(5,12,27,.72);
  backdrop-filter:blur(14px);
}
body[data-theme="light"] .mp-floating-summary{
  background:rgba(255,255,255,.82);
  border-color:rgba(95,112,255,.18);
}
.mp-map-actions{
  position:absolute;
  left:16px;
  right:16px;
  bottom:172px;
  z-index:4;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.mp-map-actions button{
  background:rgba(5,12,27,.74);
  backdrop-filter:blur(14px);
}
.mp-mini-stops{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:4;
  display:grid;
  gap:8px;
}
.mp-mini-stops .mp-stop{
  grid-template-columns:72px 1fr;
  padding:8px;
  background:rgba(5,12,27,.76);
  backdrop-filter:blur(12px);
}
body[data-theme="light"] .mp-mini-stops .mp-stop{
  background:rgba(255,255,255,.84);
}
.mp-mini-stops .mp-stop img{
  height:64px;
}
.mp-mini-stops .mp-stop:nth-child(n+3),
.mp-mini-stops .mp-tags{
  display:none;
}

@media (max-width:980px){
  .prototype-stage{
    grid-template-columns:1fr;
  }
  .prototype-notes{
    position:static;
  }
}
@media (max-width:760px){
  body[data-page="planner-prototype"] .topbar,
  body[data-page="planner-prototype"] .footer{
    display:none !important;
  }
  body[data-page="planner-prototype"],
  body[data-page="planner-prototype"] .mobile-prototype-page,
  body[data-page="planner-prototype"] .prototype-lab,
  body[data-page="planner-prototype"] .prototype-stage,
  body[data-page="planner-prototype"] .prototype-phone{
    width:100vw;
    max-width:100vw;
    overflow-x:hidden;
  }
  body[data-page="planner-prototype"] .wrap{
    max-width:100%;
  }
  body[data-page="planner-prototype"] main{
    padding-top:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    padding-bottom:0 !important;
  }
  body[data-page="planner-prototype"] #themeSelect{
    max-width:70px;
  }
  .prototype-lab{
    margin-top:0;
  }
  .prototype-lab-head{
    align-items:stretch;
    flex-direction:column;
    padding:0 16px;
  }
  .prototype-stage{
    display:block;
  }
  .prototype-tabs{
    overflow-x:auto;
    scrollbar-width:none;
  }
  .prototype-tabs::-webkit-scrollbar{
    display:none;
  }
  .prototype-tabs button{
    flex:0 0 auto;
    white-space:nowrap;
  }
  .prototype-phone{
    width:100vw !important;
    max-width:100vw !important;
    min-height:calc(100vh - 188px);
    border-right:0;
    border-left:0;
    border-radius:24px 24px 0 0;
  }
  .prototype-root,
  .mp-screen{
    width:100vw;
    max-width:100vw;
  }
  .prototype-phone-status{
    justify-content:flex-start;
  }
  #prototypeStatusLabel{
    display:none;
  }
  .mp-app-head{
    align-items:flex-start;
    flex-direction:column;
    justify-content:flex-start;
  }
  .mp-form,.mp-copy,.mp-app-head{
    width:100vw;
    max-width:100vw;
  }
  .mp-choice-row,.mp-toggle-row,.mp-range,.mp-form select{
    width:100%;
    max-width:calc(100vw - 32px);
  }
  .mp-full-action{
    width:calc(100vw - 32px);
  }
  .prototype-root{
    height:calc(100vh - 182px);
    min-height:640px;
  }
  .prototype-notes{
    display:none;
  }
}
@media (max-width:480px){
  .prototype-root{
    min-height:600px;
  }
  .mp-map.large{
    min-height:500px;
  }
  .mp-map-actions{
    bottom:160px;
  }
  .mp-choice-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* Planner mobile web redesign */
.mobile-planner-chrome,
.mobile-planner-nav,
.mobile-map-summary,
.mobile-focus-handle,
.mobile-focus-actions{
  display:none;
}
.stop-photo{
  width:100%;
  object-fit:cover;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}

@media (max-width:760px){
  body[data-page="planner"]{
    --planner-mobile-nav-height:74px;
    --mobile-tab-height:var(--planner-mobile-nav-height);
    background:#f3f6fb !important;
    color:#10203f;
  }
  body[data-page="planner"] .topbar{
    background:rgba(255,255,255,.98) !important;
    border-color:rgba(18,37,70,.08) !important;
    color:#10203f;
    box-shadow:0 8px 22px rgba(25,53,110,.08);
  }
  body[data-page="planner"] .topbar .inner{
    grid-template-columns:minmax(0,1fr) 96px !important;
    overflow:hidden;
  }
  body[data-page="planner"] .topbar .nav{
    display:none !important;
  }
  body[data-page="planner"] .topbar .tools .selectWrap:nth-child(2){
    display:none !important;
  }
  body[data-page="planner"] .topbar .tools{
    width:96px !important;
    min-width:0;
    max-width:96px !important;
    margin-left:0 !important;
    overflow:hidden;
    justify-content:flex-end;
  }
  body[data-page="planner"] .topbar .selectWrap{
    min-width:0 !important;
    max-width:96px !important;
  }
  body[data-page="planner"] .brand{
    min-width:0 !important;
  }
  body[data-page="planner"] .brand-badge{
    background:linear-gradient(135deg,#1c7dff,#35b8ff);
    color:#fff;
  }
  body[data-page="planner"] .selectWrap{
    background:#f6f8fc !important;
    border-color:rgba(18,37,70,.1) !important;
  }
  body[data-page="planner"] .selectWrap select{
    color:#10203f !important;
    background:transparent !important;
  }
  body[data-page="planner"] main{
    padding-top:8px !important;
    padding-bottom:calc(24px + var(--planner-mobile-nav-height) + var(--mobile-safe-bottom)) !important;
  }
  body[data-page="planner"] .section{
    margin-top:8px;
  }
  body[data-page="planner"] .planner-grid{
    display:block !important;
  }
  body[data-page="planner"] .mobile-planner-chrome{
    display:grid;
    gap:10px;
    position:sticky;
    top:58px;
    z-index:900;
    margin:0 0 12px;
  }
  .mobile-planner-context,
  .mobile-planner-filters,
  .mobile-planner-modes{
    background:rgba(255,255,255,.96);
    border:1px solid rgba(18,37,70,.08);
    box-shadow:0 10px 28px rgba(25,53,110,.09);
  }
  .mobile-planner-context{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-width:0;
    width:100%;
    max-width:100%;
    padding:11px 12px;
    border-radius:18px;
  }
  .mobile-planner-context > div{
    min-width:0;
    overflow:hidden;
  }
  .mobile-planner-context strong{
    display:block;
    color:#10203f;
    font-size:1rem;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-planner-context span{
    display:block;
    margin-top:3px;
    color:#66748f;
    font-size:.78rem;
    font-weight:800;
    line-height:1.3;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-planner-context button,
  .mobile-planner-filters button,
  .mobile-planner-modes button,
  .mobile-planner-nav button{
    border:0;
    color:#34415b;
    background:transparent;
    font-weight:900;
    cursor:pointer;
  }
  .mobile-planner-context button{
    flex:0 0 auto;
    min-height:36px;
    padding:0 12px;
    border-radius:999px;
    background:#edf4ff;
    color:#176eff;
  }
  .mobile-planner-filters{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:8px;
    border-radius:16px;
    scrollbar-width:none;
  }
  .mobile-planner-filters::-webkit-scrollbar{
    display:none;
  }
  .mobile-planner-filters button{
    flex:0 0 auto;
    min-height:36px;
    padding:0 12px;
    border-radius:999px;
    background:#f3f6fb;
    border:1px solid rgba(18,37,70,.08);
    font-size:.82rem;
    white-space:nowrap;
  }
  .mobile-planner-filters button.active,
  .mobile-planner-modes button.active,
  .mobile-planner-nav button.active{
    background:#176eff;
    color:#fff;
    box-shadow:0 8px 18px rgba(23,110,255,.22);
  }
  .mobile-planner-modes{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    padding:6px;
    border-radius:16px;
  }
  .mobile-planner-modes button{
    min-height:36px;
    border-radius:12px;
  }
  body[data-mobile-planner-view="config"] .mobile-planner-filters,
  body[data-mobile-planner-view="config"] .mobile-planner-modes,
  body[data-mobile-planner-view="config"] .mobile-planner-context button,
  body[data-mobile-planner-generated="false"] .mobile-planner-filters,
  body[data-mobile-planner-generated="false"] .mobile-planner-modes{
    display:none;
  }

  body[data-page="planner"] .planner-left,
  body[data-page="planner"] .planner-main,
  body[data-page="planner"] .itinerary-panel{
    position:static !important;
    top:auto !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
  }
  body[data-page="planner"] .planner-left,
  body[data-page="planner"] .selected-panel,
  body[data-page="planner"] .itinerary-panel{
    background:#fff !important;
    border:1px solid rgba(18,37,70,.08) !important;
    box-shadow:0 14px 32px rgba(25,53,110,.1) !important;
    color:#10203f;
  }
  body[data-mobile-planner-view="config"] .planner-main,
  body[data-mobile-planner-view="config"] .itinerary-panel,
  body[data-mobile-planner-view="map"] .planner-left,
  body[data-mobile-planner-view="map"] .selected-panel,
  body[data-mobile-planner-view="map"] .itinerary-panel,
  body[data-mobile-planner-view="list"] .planner-left,
  body[data-mobile-planner-view="list"] .map-panel,
  body[data-mobile-planner-view="list"] .itinerary-panel,
  body[data-mobile-planner-view="itinerary"] .planner-left,
  body[data-mobile-planner-view="itinerary"] .planner-main{
    display:none !important;
  }
  body[data-mobile-planner-view="list"] .planner-main{
    display:block !important;
  }
  body[data-mobile-planner-view="list"] .selected-panel,
  body[data-mobile-planner-view="itinerary"] .itinerary-panel{
    display:grid !important;
  }

  body[data-page="planner"] .planner-left{
    padding:16px !important;
    border-radius:22px;
  }
  body[data-page="planner"] .planner-left .kicker{
    background:#edf4ff;
    color:#176eff;
  }
  body[data-page="planner"] .planner-left .sub,
  body[data-page="planner"] .planner-left .small{
    color:#66748f !important;
  }
  body[data-page="planner"] .planner-left .form-grid{
    grid-template-columns:1fr !important;
    gap:11px;
  }
  body[data-page="planner"] .planner-left .field label{
    color:#66748f;
    font-size:.82rem;
  }
  body[data-page="planner"] .planner-left .field select,
  body[data-page="planner"] .planner-left .field input{
    min-height:48px;
    border-radius:15px;
    background:#f7f9fd !important;
    border-color:rgba(18,37,70,.09) !important;
    color:#10203f !important;
  }
  body[data-page="planner"] #themeWrap{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px;
  }
  body[data-page="planner"] .planner-left .btn{
    width:100%;
    border-radius:16px;
    color:#10203f;
    border-color:rgba(18,37,70,.1);
    background:#fff;
  }
  body[data-page="planner"] .planner-left .btn.primary{
    background:linear-gradient(180deg,#ffd93b,#ffc400);
    color:#1b2438;
    box-shadow:0 12px 22px rgba(255,196,0,.22);
  }
  body[data-page="planner"] #checkBtn,
  body[data-page="planner"] .planner-left > .detail-block:last-child{
    display:none !important;
  }
  body[data-mobile-planner-generated="false"] .planner-left .plan-summary{
    display:none;
  }
  body[data-page="planner"] .plan-summary,
  body[data-page="planner"] .detail-block,
  body[data-page="planner"] #bufferBox{
    background:#f7f9fd !important;
    border-color:rgba(18,37,70,.08) !important;
  }

  body[data-page="planner"] .map-panel{
    width:calc(100vw - 0px);
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:#dbeaf8 !important;
    position:relative;
    overflow:hidden;
  }
  body[data-page="planner"] .map-shell{
    height:clamp(430px, calc(100dvh - 238px), 640px) !important;
    min-height:430px !important;
    border:0 !important;
    border-radius:0 !important;
  }
  body[data-page="planner"][data-mobile-planner-view="map"] #plannerMap{
    touch-action:none !important;
  }
  body[data-page="planner"]:not([data-mobile-planner-view="map"]) #plannerMap{
    touch-action:pan-y !important;
  }
  body[data-page="planner"] .leaflet-control-zoom{
    display:none;
  }
  body[data-page="planner"] .reset-map-btn{
    min-height:38px;
    border-radius:999px;
    padding:8px 12px;
    background:#176eff;
    color:#fff;
    box-shadow:0 10px 22px rgba(23,110,255,.28);
  }
  body[data-page="planner"] .mobile-map-summary{
    display:block;
    position:absolute;
    left:12px;
    right:12px;
    bottom:calc(var(--planner-mobile-nav-height) + var(--mobile-safe-bottom) + 10px);
    z-index:800;
    padding:12px 14px;
    border-radius:18px;
    background:rgba(255,255,255,.94);
    border:1px solid rgba(18,37,70,.08);
    box-shadow:0 16px 38px rgba(25,53,110,.18);
    color:#10203f;
  }
  body[data-page="planner"] .mobile-map-summary strong{
    display:block;
    font-size:.98rem;
    line-height:1.2;
  }
  body[data-page="planner"] .mobile-map-summary span{
    display:block;
    margin-top:4px;
    color:#66748f;
    font-size:.82rem;
    font-weight:800;
  }
  body[data-mobile-planner-view="list"] .mobile-map-summary,
  body[data-mobile-planner-view="itinerary"] .mobile-map-summary,
  body[data-mobile-planner-view="config"] .mobile-map-summary{
    display:none;
  }

  body[data-page="planner"] .selected-panel{
    padding:14px;
    border-radius:22px;
  }
  body[data-page="planner"] .selected-panel-head h3{
    margin:0;
    color:#10203f;
    font-size:1.1rem;
  }
  body[data-page="planner"] .selection-strip-wrap{
    overflow:visible !important;
    padding:0 !important;
  }
  body[data-page="planner"] .selection-strip{
    display:grid;
    grid-template-columns:1fr !important;
    gap:10px;
  }
  body[data-page="planner"] .selection-strip .stop-card{
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    min-height:128px;
    border-radius:18px;
    border:1px solid rgba(18,37,70,.08);
    background:#fff;
    box-shadow:none;
  }
  body[data-page="planner"] .selection-strip .stop-photo{
    height:100%;
    min-height:128px;
    border-radius:0;
  }
  body[data-page="planner"] .selection-strip .stop-body{
    padding:12px !important;
  }
  body[data-page="planner"] .selection-strip .stop-body h4{
    margin:6px 0 5px;
    color:#10203f;
    font-size:.98rem;
    line-height:1.28;
  }
  body[data-page="planner"] .selection-strip .stop-body p{
    color:#66748f;
    font-size:.82rem;
    line-height:1.42;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  body[data-page="planner"] .selection-strip .chip,
  body[data-page="planner"] .itinerary-panel .chip{
    background:#f0f5ff;
    border-color:rgba(23,110,255,.12);
    color:#4d617d;
    font-size:.72rem;
    padding:5px 7px;
  }
  body[data-page="planner"] .selection-strip .chip.primary,
  body[data-page="planner"] .itinerary-panel .chip.primary{
    background:#e9f2ff;
    color:#176eff;
  }
  .mobile-empty-state{
    padding:18px;
    border-radius:18px;
    color:#66748f;
    background:#f7f9fd;
    border:1px dashed rgba(18,37,70,.14);
    line-height:1.55;
  }

  body[data-page="planner"] .itinerary-panel{
    padding:14px !important;
    border-radius:22px;
  }
  body[data-page="planner"] .day-card{
    padding:13px;
    border-radius:18px;
    background:#fff !important;
    border:1px solid rgba(18,37,70,.08);
    box-shadow:none;
    color:#10203f;
  }
  body[data-page="planner"] .day-head{
    flex-direction:row;
    align-items:center;
    margin-bottom:8px;
  }
  body[data-page="planner"] .day-head h4{
    color:#10203f;
    font-size:1rem;
  }
  body[data-page="planner"] .day-city,
  body[data-page="planner"] .transport-alt{
    color:#66748f;
  }
  body[data-page="planner"] .stop-row{
    position:relative;
    padding:11px 74px 11px 12px;
    border-radius:15px;
    background:#f7f9fd;
    border-color:rgba(18,37,70,.08);
    color:#10203f;
  }
  body[data-page="planner"] .stop-row::after{
    content:"看地图";
    position:absolute;
    top:11px;
    right:12px;
    padding:5px 8px;
    border-radius:999px;
    color:#176eff;
    background:#e9f2ff;
    font-size:.72rem;
    font-weight:900;
  }
  body[data-page="planner"] .stop-row .small{
    color:#66748f !important;
  }
  body[data-page="planner"] .transport-box,
  body[data-page="planner"] .transport-inline{
    background:#f7f9fd;
    border-color:rgba(18,37,70,.08);
    color:#10203f;
  }

  body[data-page="planner"] .mobile-planner-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1250;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
    padding:8px 10px calc(8px + var(--mobile-safe-bottom));
    background:rgba(255,255,255,.98);
    border-top:1px solid rgba(18,37,70,.08);
    box-shadow:0 -12px 34px rgba(25,53,110,.16);
  }
  .mobile-planner-nav button{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    min-height:54px;
    border-radius:16px;
    font-size:.75rem;
  }
  .mobile-planner-nav span{
    font-size:1rem;
    line-height:1;
  }

  body[data-page="planner"] .map-focus-backdrop{
    display:block !important;
    z-index:1260;
    background:rgba(9,20,38,.28);
    backdrop-filter:none;
  }
  body[data-page="planner"] .map-focus-card{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:calc(var(--planner-mobile-nav-height) + var(--mobile-safe-bottom)) !important;
    z-index:1270;
    width:auto !important;
    max-height:min(68dvh,560px) !important;
    border-radius:24px 24px 0 0 !important;
    background:#fff !important;
    border:1px solid rgba(18,37,70,.08) !important;
    box-shadow:0 -18px 42px rgba(25,53,110,.22) !important;
    color:#10203f !important;
    transform:translateY(100%);
  }
  body[data-page="planner"] .map-focus-card.show{
    opacity:1;
    transform:translateY(0);
  }
  body[data-page="planner"] .mobile-focus-handle{
    display:block;
    width:42px;
    height:5px;
    margin:10px auto 8px;
    border-radius:999px;
    background:#d7dfeb;
  }
  body[data-page="planner"] .map-focus-close{
    top:10px;
    right:12px;
    background:#eef3fb;
    color:#10203f;
    box-shadow:none;
  }
  body[data-page="planner"] .map-focus-media-wrap{
    height:142px;
  }
  body[data-page="planner"] .map-focus-body{
    padding:13px 15px 16px;
  }
  body[data-page="planner"] .map-focus-body h4{
    color:#10203f;
    font-size:1.2rem;
  }
  body[data-page="planner"] .map-focus-body p,
  body[data-page="planner"] .map-focus-status span{
    color:#66748f;
  }
  body[data-page="planner"] .map-focus-card .chip{
    background:#f0f5ff;
    border-color:rgba(23,110,255,.12);
    color:#4d617d;
  }
  body[data-page="planner"] .map-focus-card .chip.primary{
    background:#e9f2ff;
    border-color:rgba(23,110,255,.14);
    color:#176eff;
  }
  body[data-page="planner"] .map-focus-status{
    background:#f7f9fd;
    border-color:rgba(18,37,70,.08);
  }
  body[data-page="planner"] .mobile-focus-actions{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:10px;
    margin-top:2px;
  }
  .mobile-focus-actions button{
    min-height:42px;
    border:0;
    border-radius:14px;
    font-weight:900;
    cursor:pointer;
  }
  .mobile-focus-secondary{
    color:#176eff;
    background:#e9f2ff;
  }
  .mobile-focus-primary{
    color:#1b2438;
    background:linear-gradient(180deg,#ffd93b,#ffc400);
  }
}


/* Planner mobile theme sync */
@media (max-width:760px){
  body[data-page="planner"]{
    --planner-mobile-bg:#071225;
    --planner-mobile-topbar:rgba(10,20,39,.98);
    --planner-mobile-surface:#101b31;
    --planner-mobile-surface-2:#162641;
    --planner-mobile-soft:#0b1528;
    --planner-mobile-text:#f5f8ff;
    --planner-mobile-muted:#a9bad8;
    --planner-mobile-border:rgba(255,255,255,.1);
    --planner-mobile-shadow:0 14px 34px rgba(0,0,0,.34);
    --planner-mobile-overlay:rgba(0,0,0,.38);
    --planner-mobile-chip:#172641;
    --planner-mobile-chip-text:#c7d6f2;
    --planner-mobile-blue:#2f7dff;
    --planner-mobile-blue-soft:rgba(47,125,255,.16);
  }
  body[data-page="planner"][data-theme="light"]{
    --planner-mobile-bg:#f3f6fb;
    --planner-mobile-topbar:rgba(255,255,255,.98);
    --planner-mobile-surface:#fff;
    --planner-mobile-surface-2:#f7f9fd;
    --planner-mobile-soft:#edf4ff;
    --planner-mobile-text:#10203f;
    --planner-mobile-muted:#66748f;
    --planner-mobile-border:rgba(18,37,70,.08);
    --planner-mobile-shadow:0 14px 32px rgba(25,53,110,.1);
    --planner-mobile-overlay:rgba(9,20,38,.24);
    --planner-mobile-chip:#f0f5ff;
    --planner-mobile-chip-text:#4d617d;
    --planner-mobile-blue:#176eff;
    --planner-mobile-blue-soft:#e9f2ff;
  }
  body[data-page="planner"]{
    background:var(--planner-mobile-bg) !important;
    color:var(--planner-mobile-text) !important;
  }
  body[data-page="planner"] .topbar{
    background:var(--planner-mobile-topbar) !important;
    border-color:var(--planner-mobile-border) !important;
    color:var(--planner-mobile-text) !important;
    box-shadow:0 8px 22px rgba(0,0,0,.12);
  }
  body[data-page="planner"] .selectWrap,
  body[data-page="planner"] .mobile-planner-context,
  body[data-page="planner"] .mobile-planner-filters,
  body[data-page="planner"] .mobile-planner-modes,
  body[data-page="planner"] .planner-left,
  body[data-page="planner"] .selected-panel,
  body[data-page="planner"] .itinerary-panel,
  body[data-page="planner"] .mobile-planner-nav,
  body[data-page="planner"] .mobile-map-summary,
  body[data-page="planner"] .map-focus-card{
    background:var(--planner-mobile-surface) !important;
    border-color:var(--planner-mobile-border) !important;
    color:var(--planner-mobile-text) !important;
  }
  body[data-page="planner"] .planner-left,
  body[data-page="planner"] .selected-panel,
  body[data-page="planner"] .itinerary-panel,
  body[data-page="planner"] .mobile-map-summary{
    box-shadow:var(--planner-mobile-shadow) !important;
  }
  body[data-page="planner"] .selectWrap select,
  body[data-page="planner"] .mobile-planner-context strong,
  body[data-page="planner"] .selected-panel-head h3,
  body[data-page="planner"] .selection-strip .stop-body h4,
  body[data-page="planner"] .day-head h4,
  body[data-page="planner"] .map-focus-body h4{
    color:var(--planner-mobile-text) !important;
  }
  body[data-page="planner"] .mobile-planner-context span,
  body[data-page="planner"] .planner-left .sub,
  body[data-page="planner"] .planner-left .small,
  body[data-page="planner"] .planner-left .field label,
  body[data-page="planner"] .mobile-map-summary span,
  body[data-page="planner"] .selection-strip .stop-body p,
  body[data-page="planner"] .day-city,
  body[data-page="planner"] .transport-alt,
  body[data-page="planner"] .stop-row .small,
  body[data-page="planner"] .map-focus-body p,
  body[data-page="planner"] .map-focus-status span{
    color:var(--planner-mobile-muted) !important;
  }
  body[data-page="planner"] .planner-left .field select,
  body[data-page="planner"] .planner-left .field input,
  body[data-page="planner"] .plan-summary,
  body[data-page="planner"] .detail-block,
  body[data-page="planner"] #bufferBox,
  body[data-page="planner"] .day-card,
  body[data-page="planner"] .stop-row,
  body[data-page="planner"] .transport-box,
  body[data-page="planner"] .transport-inline,
  body[data-page="planner"] .map-focus-status,
  body[data-page="planner"] .mobile-empty-state{
    background:var(--planner-mobile-surface-2) !important;
    border-color:var(--planner-mobile-border) !important;
    color:var(--planner-mobile-text) !important;
  }
  body[data-page="planner"] .mobile-planner-context button,
  body[data-page="planner"] .planner-left .kicker,
  body[data-page="planner"] .selection-strip .chip.primary,
  body[data-page="planner"] .itinerary-panel .chip.primary,
  body[data-page="planner"] .map-focus-card .chip.primary,
  body[data-page="planner"] .mobile-focus-secondary,
  body[data-page="planner"] .stop-row::after{
    background:var(--planner-mobile-blue-soft) !important;
    color:var(--planner-mobile-blue) !important;
    border-color:color-mix(in srgb,var(--planner-mobile-blue) 18%,transparent) !important;
  }
  body[data-page="planner"] .mobile-planner-filters button,
  body[data-page="planner"] .selection-strip .chip,
  body[data-page="planner"] .itinerary-panel .chip,
  body[data-page="planner"] .map-focus-card .chip{
    background:var(--planner-mobile-chip) !important;
    border-color:var(--planner-mobile-border) !important;
    color:var(--planner-mobile-chip-text) !important;
  }
  body[data-page="planner"] .mobile-planner-context button,
  body[data-page="planner"] .mobile-planner-filters button,
  body[data-page="planner"] .mobile-planner-modes button,
  body[data-page="planner"] .mobile-planner-nav button{
    color:var(--planner-mobile-muted);
  }
  body[data-page="planner"] .mobile-planner-filters button.active,
  body[data-page="planner"] .mobile-planner-modes button.active,
  body[data-page="planner"] .mobile-planner-nav button.active,
  body[data-page="planner"] .reset-map-btn{
    background:var(--planner-mobile-blue) !important;
    color:#fff !important;
  }
  body[data-page="planner"] .map-panel{
    background:var(--planner-mobile-bg) !important;
  }
  body[data-page="planner"] .map-focus-backdrop{
    background:var(--planner-mobile-overlay) !important;
  }
  body[data-page="planner"] .map-focus-card{
    box-shadow:0 -18px 42px rgba(0,0,0,.28) !important;
  }
  body[data-page="planner"] .mobile-focus-handle{
    background:color-mix(in srgb,var(--planner-mobile-muted) 32%,transparent) !important;
  }
  body[data-page="planner"] .map-focus-close{
    display:none !important;
  }
}

/* Auth, home anchors, and planner manual edits */
.metric{
  display:block;
  color:var(--text);
  text-decoration:none;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.metric:hover{
  transform:translateY(-2px);
  border-color:rgba(141,162,255,.28);
  background:rgba(141,162,255,.08);
}
.home-info-band{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  box-shadow:var(--shadow);
}
.home-info-band .sub{margin-bottom:0}
.auth-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--text);
  text-decoration:none;
  font-weight:800;
  background:rgba(255,255,255,.04);
}
.auth-page{padding-top:36px}
.auth-layout{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:22px;
  align-items:start;
}
.auth-copy,.auth-card{padding:26px}
.auth-forms{display:grid;gap:18px}
.auth-form{display:grid;gap:14px;margin-top:16px}
.auth-form label{
  display:grid;
  gap:8px;
  color:var(--muted);
  font-weight:800;
}
.auth-form input,.planner-edit-body select{
  width:100%;
  min-height:46px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--text);
  font:inherit;
  font-weight:700;
}
.auth-google{width:100%;margin-top:10px}
.auth-account{margin-top:18px}
.auth-account-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}
.auth-account-row strong,.auth-account-row span{display:block}
.auth-notice{
  padding:14px 16px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(141,162,255,.1);
  color:var(--text);
  font-weight:800;
}
.auth-notice[data-tone="error"]{background:rgba(255,99,99,.12);border-color:rgba(255,99,99,.28)}
.auth-notice[data-tone="success"]{background:rgba(44,210,133,.12);border-color:rgba(44,210,133,.28)}
.auth-notice[data-tone="warn"]{background:rgba(255,196,64,.14);border-color:rgba(255,196,64,.3)}
.candidate-pool{
  margin-top:18px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,var(--panel),var(--panel2));
}
.candidate-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.candidate-head h4{margin:0 0 5px;font-size:1.1rem}
.candidate-head p{margin:0;color:var(--muted);line-height:1.5}
.candidate-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.candidate-card{
  display:grid;
  gap:12px;
  padding:14px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
}
.candidate-card span{
  display:block;
  color:var(--muted);
  font-size:.84rem;
  font-weight:800;
}
.candidate-card strong{display:block;margin-top:4px}
.candidate-card p{
  margin:8px 0 0;
  color:var(--muted);
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.candidate-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.candidate-actions button{
  min-height:38px;
  border:1px solid var(--line);
  border-radius:13px;
  background:rgba(255,255,255,.05);
  color:var(--text);
  font-weight:900;
  cursor:pointer;
}
.candidate-actions button:last-child{
  border:none;
  color:white;
  background:linear-gradient(135deg,var(--accent),#9e84ff);
}
.planner-edit-layer{
  position:fixed;
  inset:0;
  z-index:1800;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.planner-edit-layer.show{display:flex}
.planner-edit-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,12,28,.54);
  backdrop-filter:blur(10px);
}
.planner-edit-dialog{
  position:relative;
  z-index:1;
  width:min(560px,100%);
  max-height:min(760px,calc(100dvh - 48px));
  overflow:auto;
  padding:24px;
  border-radius:26px;
  border:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  color:var(--text);
  box-shadow:0 26px 80px rgba(0,0,0,.46);
}
.planner-edit-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.planner-edit-head h3{margin:10px 0 0;font-size:1.45rem}
.planner-edit-close{
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.05);
  color:var(--text);
  font-size:1.4rem;
  cursor:pointer;
}
.planner-edit-body{display:grid;gap:14px}
.planner-edit-body label{
  display:grid;
  gap:8px;
  color:var(--muted);
  font-weight:900;
}
.planner-edit-note,.planner-edit-target,.planner-edit-fixed,.planner-edit-preview{
  padding:14px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
}
.planner-edit-note strong,.planner-edit-note span,.planner-edit-target span,.planner-edit-target strong,.planner-edit-fixed strong,.planner-edit-fixed span{
  display:block;
}
.planner-edit-note span,.planner-edit-target span,.planner-edit-fixed span,.planner-edit-preview p{
  color:var(--muted);
  line-height:1.55;
}
.planner-edit-note.warn{color:var(--accent2)}
.planner-edit-preview p{margin:8px 0 0}
.planner-edit-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:4px;
}
.planner-edit-actions .btn[disabled]{opacity:.45;cursor:not-allowed}

@media (max-width:1180px){
  .auth-layout{grid-template-columns:1fr}
  .candidate-grid{grid-template-columns:1fr}
}

@media (max-width:760px){
  .home-info-band{
    display:grid;
    padding:18px;
  }
  .auth-page{
    padding-top:18px;
    padding-bottom:calc(96px + env(safe-area-inset-bottom));
  }
  .auth-copy,.auth-card{padding:20px}
  .auth-account-row{align-items:flex-start;flex-direction:column}
  body[data-page="planner"] .candidate-pool{
    background:var(--planner-mobile-surface) !important;
    border-color:var(--planner-mobile-border) !important;
    color:var(--planner-mobile-text) !important;
    box-shadow:var(--planner-mobile-shadow) !important;
  }
  body[data-page="planner"] .candidate-head p,
  body[data-page="planner"] .candidate-card span,
  body[data-page="planner"] .candidate-card p{
    color:var(--planner-mobile-muted) !important;
  }
  body[data-page="planner"] .candidate-card{
    background:var(--planner-mobile-surface-2) !important;
    border-color:var(--planner-mobile-border) !important;
  }
  .planner-edit-layer{
    align-items:flex-end;
    padding:0;
  }
  .planner-edit-backdrop{
    background:var(--planner-mobile-overlay,rgba(5,12,28,.45));
    backdrop-filter:none;
  }
  .planner-edit-dialog{
    width:100%;
    max-height:82dvh;
    border-radius:24px 24px 0 0;
    border-left:0;
    border-right:0;
    border-bottom:0;
    background:var(--planner-mobile-surface,var(--panel)) !important;
    color:var(--planner-mobile-text,var(--text)) !important;
    padding:20px 18px calc(20px + env(safe-area-inset-bottom));
  }
  .planner-edit-body select,
  .planner-edit-note,
  .planner-edit-target,
  .planner-edit-fixed,
  .planner-edit-preview{
    background:var(--planner-mobile-surface-2,rgba(255,255,255,.04)) !important;
    border-color:var(--planner-mobile-border,var(--line)) !important;
    color:var(--planner-mobile-text,var(--text)) !important;
  }
  .planner-edit-actions{display:grid;grid-template-columns:1fr 1fr}
}

/* Current UX fixes: auth header, merged login, entry map row, setup tool icons */
@media (min-width:761px){
  .topbar .tools{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-end !important;
    width:auto !important;
    max-width:none !important;
    margin-left:auto;
  }
  .topbar .tools .selectWrap,
  .topbar .tools .auth-badge{
    flex:0 0 auto;
  }
}
.auth-badge{
  white-space:nowrap;
}
.auth-switch{
  margin:16px 0 0;
  color:var(--muted);
  font-weight:800;
  text-align:center;
}
.auth-switch button{
  border:0;
  padding:0;
  margin-left:6px;
  background:transparent;
  color:var(--accent2);
  font:inherit;
  font-weight:900;
  text-decoration:underline;
  cursor:pointer;
}
.auth-form[hidden]{
  display:none !important;
}
.entry-map-panel{
  margin-top:18px;
  padding:18px;
}
.entry-map-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.entry-map-head h3{
  margin:8px 0 0;
  font-size:1.35rem;
}
.entry-map-head p{
  max-width:520px;
  margin:0;
  text-align:right;
}
.entry-map-shell{
  height:360px;
  border-radius:22px;
}
.policy-live-status{
  margin-bottom:10px;
  color:var(--accent2);
  font-weight:900;
}
.policy-source-link{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  text-decoration:none;
}
.policy-source-link small{
  color:var(--muted);
  font-size:.78rem;
  font-weight:800;
}
.policy-source-link.ok{
  border-color:rgba(44,210,133,.24);
}
.policy-source-link.warn{
  border-color:rgba(255,196,64,.26);
}
.guide-card.setup-tool-card{
  padding:0;
  overflow:hidden;
}
.setup-tool-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px 18px 0;
}
.setup-tool-icon{
  width:50px;
  height:50px;
  border-radius:16px;
  display:grid;
  place-items:center;
  color:#dfe8ff;
  background:rgba(141,162,255,.14);
  border:1px solid rgba(141,162,255,.26);
}
.setup-tool-icon svg{
  width:26px;
  height:26px;
}
.setup-tool-label{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,255,255,.05);
  border:1px solid var(--line);
  font-size:.82rem;
  font-weight:900;
}
.setup-tool-weixin .setup-tool-icon{color:#73f0a1;background:rgba(50,209,121,.13);border-color:rgba(50,209,121,.25)}
.setup-tool-alipay .setup-tool-icon{color:#8bc2ff;background:rgba(47,134,255,.13);border-color:rgba(47,134,255,.25)}
.setup-tool-rail .setup-tool-icon,.setup-tool-metro .setup-tool-icon{color:#9fe0ff;background:rgba(72,183,232,.12);border-color:rgba(72,183,232,.24)}
.setup-tool-flight .setup-tool-icon{color:#ffd28a;background:rgba(255,184,84,.12);border-color:rgba(255,184,84,.24)}
.setup-tool-map .setup-tool-icon{color:#9cefd6;background:rgba(57,211,168,.12);border-color:rgba(57,211,168,.24)}
.setup-tool-hotel .setup-tool-icon{color:#c9b8ff;background:rgba(154,126,255,.12);border-color:rgba(154,126,255,.24)}
.setup-tool-compare .setup-tool-icon{color:#ffb8cf;background:rgba(255,120,166,.12);border-color:rgba(255,120,166,.24)}
.setup-tool-fallback .setup-tool-icon{color:#f6e7a5;background:rgba(236,206,102,.12);border-color:rgba(236,206,102,.24)}
body[data-theme="light"] .policy-source-link,
body[data-theme="light"] .setup-tool-label{
  background:rgba(13,26,52,.04);
}
body[data-theme="light"] .setup-tool-icon{
  color:#425aa8;
}
@media (max-width:760px){
  .topbar .tools .auth-badge{
    display:none;
  }
  .entry-map-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .entry-map-head p{
    max-width:none;
    text-align:left;
  }
  .entry-map-shell{
    height:min(58vh,430px) !important;
    min-height:300px !important;
  }
  .setup-tool-head{
    padding:15px 16px 0;
  }
}

/* Follow-up auth and entry map fixes */
@media (min-width:1181px){
  .topbar .inner{
    grid-template-columns:260px minmax(420px,1fr) max-content !important;
  }
  .topbar .tools{
    display:flex !important;
    flex-flow:row nowrap !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:10px !important;
    width:max-content !important;
    max-width:none !important;
  }
  .topbar .tools .selectWrap,
  .topbar .tools .auth-badge{
    width:auto !important;
    min-width:94px;
  }
}
.auth-layout{
  align-items:stretch;
}
.auth-copy,
.auth-card{
  height:100%;
}
.auth-forms{
  align-self:stretch;
}
.auth-switch a{
  color:var(--accent2);
  font-weight:900;
  text-decoration:underline;
}
.auth-switch a:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:4px;
  border-radius:8px;
}
.entry-map-shell{
  background:#dce8f5;
}
body[data-theme="dark"] .entry-map-shell{
  background:#18335d;
}
body[data-theme="dark"] #entryMap .leaflet-tile-pane{
  filter:brightness(.78) saturate(.95) contrast(1.08);
}
