/* Map workspace uses the simulator's shared palette and typography. */
#map-page>h1{margin-bottom:12px}
.map-intro{margin:0 0 24px;color:var(--muted);max-width:850px}
.map-controls{display:grid;grid-template-columns:minmax(180px,1fr) minmax(200px,1fr) minmax(240px,1.3fr);gap:24px;align-items:end;margin-bottom:20px}
.map-controls label{margin:0 0 8px}
.map-day-control{align-self:center}
.map-day-control input{width:100%;accent-color:var(--primary)}
#map-date{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,370px);gap:24px;align-items:start}
.map-surface{position:relative;min-width:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#dbe8ec}
#country-map{height:640px;width:100%;background:#dbe8ec;z-index:0;font:inherit}
.map-viewport-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.map-viewport-controls button{background:var(--surface);min-height:40px;padding:8px 14px}
.map-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted);margin:12px 0}
.map-legend span{display:inline-flex;align-items:center;gap:6px}
.map-swatch{display:inline-block;width:16px;height:12px;border:1px solid #588e7c;background:#dcebe2;border-radius:2px}
.map-swatch.selected{background:#5e9c86;border-color:#134b43}
.map-country-label{color:#20332e;white-space:nowrap;font-size:12px;font-weight:500;line-height:16px;text-shadow:0 1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff;pointer-events:none}
.map-country-label>span{display:block;width:max-content;transform:translate(-50%,-50%)}
#country-map .leaflet-control-attribution{font-size:11px;line-height:18px;background:#fffefae8;color:var(--muted);max-width:100%;white-space:normal}
#country-map .leaflet-control-zoom a{color:var(--primary);background:var(--surface);text-decoration:none}
#country-map .leaflet-interactive:focus-visible{outline:3px solid #20332e;outline-offset:2px}
.map-details{min-width:0}
.map-country-heading{display:flex;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:12px}
.map-country-heading h2{font-size:26px;line-height:32px}
#map-faction-count{color:var(--muted);font-size:14px}
.map-faction{border:1px solid var(--border);border-radius:12px;background:#fffefa;padding:20px;margin-bottom:16px}
.map-faction h3{font-size:16px;font-weight:600;overflow-wrap:anywhere}
.map-cooperation{margin-top:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.map-cooperation>span{display:block;font-size:14px;color:var(--muted)}
.map-cooperation strong{display:block;font-size:32px;font-weight:500;line-height:44px;font-variant-numeric:tabular-nums;color:var(--primary)}
.map-cooperation small{font-size:14px;font-weight:400;color:var(--muted)}
.map-cooperation meter{display:block;width:100%;height:12px;accent-color:var(--primary)}
.map-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px;margin:16px 0 0}
.map-scores dt{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.map-scores dd{margin:2px 0 0;font-size:21px;font-weight:500;font-variant-numeric:tabular-nums}
.map-scale{font-size:13px;color:var(--muted);line-height:1.7;margin-top:16px}
#map-snapshot-status{margin:0 0 20px;padding:12px 16px;background:var(--surface-low);border-radius:8px;font-size:14px}
#map-snapshot-status.map-stale{background:#fff1cf;color:#604900}
#map-load-status:empty{display:none}
#map-load-status{position:absolute;top:16px;left:60px;background:#fffefa;padding:10px 16px;border-radius:8px;z-index:400}
#map-load-error{padding:16px;background:#fff1cf;color:#604900}
#map-load-error p{margin:0 0 12px}
@media(max-width:1150px){.map-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.map-day-control{grid-column:1/-1}.map-workspace{grid-template-columns:minmax(0,1fr)}#map-factions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.map-faction{margin:0}#country-map{height:520px}.map-details{margin-top:4px}}
@media(max-width:600px){.map-controls{grid-template-columns:1fr;gap:16px}.map-day-control{grid-column:auto}.map-workspace{gap:16px}#map-factions{grid-template-columns:1fr}#country-map{height:400px}.map-faction{padding:18px}.map-scale{font-size:13px}.map-country-heading{flex-wrap:wrap}.map-controls select{font-size:16px}.map-scores dt{font-size:13px}}
