.vd-planner { margin-top:30px; }
.vd-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:16px; }
.vd-heading > span { color:var(--site-muted); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.vd-choices { min-width:0; margin:0; padding:0; border:0; }
.vd-choices legend { margin-bottom:15px; padding:0; font-size:16px; font-weight:700; line-height:1.5; }
.vd-choice-grid { display:grid; grid-template-columns:repeat(var(--vd-columns,3),minmax(0,1fr)); gap:12px; }
.vd-choice { position:relative; display:grid; grid-template-columns:16px minmax(0,1fr); align-content:start; align-items:start; gap:10px; padding:17px; border:1px solid var(--site-line); background:var(--site-surface); cursor:pointer; }
.vd-choice:has(input:checked) { border-color:var(--site-accent); box-shadow:inset 0 0 0 1px var(--site-accent); }
.vd-choice:focus-within { outline:2px solid var(--site-accent); outline-offset:3px; }
.vd-choice input { margin:3px 0 0; width:15px; height:15px; accent-color:var(--site-accent); }
.vd-choice strong { display:block; color:var(--site-ink); font:500 20px/1.2 Georgia,serif; }
.vd-choice small { display:block; margin-top:8px; color:var(--site-muted); font-size:12px; line-height:1.55; }
.vd-choice-map { display:grid; grid-template-columns:minmax(0,65fr) minmax(0,35fr); gap:18px; align-items:stretch; }
.vd-choice-map > aside { min-height:260px; }
.vd-gateway-panel { position:relative; min-width:0; min-height:260px; overflow:hidden; border:1px solid var(--site-line); background:var(--site-surface); }
.vd-gateway-map { position:absolute; inset:0; display:block; width:100%; height:100%; }
.vd-gateway-land { fill:light-dark(#e9ede7,#293a3c); stroke:var(--site-surface); stroke-width:1; }
.vd-gateway-focus { fill:light-dark(#d7e2d9,#3b5250); stroke:var(--site-muted); stroke-width:.7; }
.vd-map-city { fill:var(--site-accent); stroke:var(--site-surface); stroke-width:2; }
.vd-map-wonder { fill:light-dark(#b77935,#edb873); stroke:var(--site-surface); stroke-width:2; }
.vd-map-label { fill:var(--site-ink); stroke:var(--site-surface); stroke-width:3px; paint-order:stroke; stroke-linejoin:round; font:600 12px Arial,sans-serif; }
.vd-map-north { fill:var(--site-muted); font:700 10px Arial,sans-serif; }
.vd-choice-map .vd-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
#great-wall-guide .vd-choice-map { grid-template-columns:1fr; }
#great-wall-guide .vd-choice-grid { grid-template-columns:repeat(4,minmax(200px,1fr)); overflow-x:auto; padding:3px 3px 7px; }
#great-wall-guide .gw-map-panel { height:340px !important; }
.vd-tactics { margin-top:30px; padding-top:22px; border-top:1px solid var(--site-line); }
.vd-panel[hidden] { display:none !important; }
.vd-panel + .vd-panel { margin-top:26px; }
.vd-enhanced .vd-panel { margin-top:0; }
.vd-panel-title { color:var(--site-accent); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin:0 0 15px; }
.vd-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 28px; }
.vd-step { min-width:0; border-top:1px solid var(--site-line); padding-top:14px; }
.vd-step p { color:var(--site-muted); font-size:13px; line-height:1.65; margin:8px 0 0; }
.vd-links { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:10px; }
.vd-links a { color:var(--site-accent); font-size:11px; text-decoration:underline; text-underline-offset:3px; }
.vd-note { margin:20px 0 0; padding:12px 15px; border-left:2px solid var(--site-accent); color:var(--site-muted); font-size:12px; line-height:1.65; }
.vd-more { margin-top:32px; border-top:1px solid var(--site-line); padding-top:17px; }
.vd-more > summary { color:var(--site-accent); font-size:13px; font-weight:700; cursor:pointer; }
.vd-more > section:first-of-type { margin-top:20px !important; }
.vd-tactics .gw-section { margin-top:0 !important; padding-top:0 !important; border-top:0 !important; }
.vd-status { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:850px) {
  .vd-choice-map { grid-template-columns:1fr; }
  .vd-choice-map > aside { height:260px !important; }
}
@media(max-width:680px) {
  .vd-choice-grid,.vd-choice-map .vd-choice-grid,.vd-steps { grid-template-columns:1fr; }
  .vd-heading { align-items:flex-start; flex-direction:column; gap:6px; }
  .vd-choice { padding:15px; }
}
