.planner-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
.planner-form>*{min-width:0}.planner-form select{width:100%}
#plannerStatus{grid-column:1/-1;line-height:1.7;font-size:.86rem}
.recommendation-map-wrap{position:relative;margin:14px 0 10px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#b9d9e5}
#recommendationMap{width:100%;height:auto;aspect-ratio:900/460;display:block}
.recommendation-land{fill:#eee8dc;stroke:#ab997e;stroke-width:.65;vector-effect:non-scaling-stroke}
.recommendation-land.available{fill:#c8874c;cursor:pointer}
.recommendation-land.available:hover,.recommendation-land.available:focus,.recommendation-land.selected{fill:#875425;stroke:#fff;stroke-width:2;outline:none}
.recommendation-marker{fill:#875425;stroke:#fff;stroke-width:1.5;pointer-events:none}
.recommendation-map-tools{position:absolute;top:8px;right:8px;display:flex;gap:5px}
.recommendation-map-tools button{width:36px;height:36px;min-height:36px;padding:0;background:var(--paper);border:1px solid var(--border);border-radius:4px;color:var(--accent-dark);font:700 20px sans-serif}
.map-key{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--muted)}
.map-key::before{content:'';width:12px;height:12px;background:#c8874c;display:inline-block}
#smallMapRegions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
#smallMapRegions button,.recommended-place{font:inherit;font-size:.84rem;border:1px solid var(--border);border-radius:5px;padding:9px 13px;background:var(--paper);color:var(--ink);min-height:42px;cursor:pointer}
#recommendedCourses{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
#recommendedSelection{font-size:1.1rem;margin-top:18px}
.recommended-place:hover,#smallMapRegions [aria-pressed=true]{border-color:var(--accent);background:#ead7c3}
@media(max-width:600px){.planner-form{grid-template-columns:1fr 1fr}.planner-form>div:first-child{grid-column:1/-1}.recommendation-map-tools button{width:32px;height:32px;min-height:32px}.recommended-place{font-size:.78rem;padding:8px 10px}}
