/* Planning controls and readable route hierarchy; retain the established map palette. */
#planner{margin-bottom:16px;padding:14px 16px;background:#252338;border:1px solid #59536e;border-radius:12px}
#planner h2{font:800 23px/1.25 Nunito,system-ui;margin:0;color:#f2eee6;letter-spacing:0;text-transform:none;text-shadow:none}
.plan-intro{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:10px}
.plan-eyebrow{color:var(--green);font:800 11px/1.5 Nunito;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:4px}
.plan-intro p,.plan-note{color:#c3bed4;font:600 13px/1.6 Nunito;margin:6px 0}
.plan-controls{display:flex;gap:16px;align-items:end;flex-wrap:wrap}
.plan-key-field{display:flex;gap:6px;align-items:end}.plan-key-field label{width:68px}.plan-key-field button{padding:10px!important}
.plan-mode-field{flex:1}.plan-modes{white-space:nowrap}
.plan-evidence{font:600 12px/1.5 Nunito;color:#b9b2cc;margin-top:10px}.plan-evidence.warn{color:var(--yellow)}
.plan-limit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0}
.plan-label{display:block;color:#cbc6de;font:800 12px/1.5 Nunito;margin-bottom:6px}
#planner input,#planner select{width:100%;min-height:42px;background:#191827;color:var(--text);border:1px solid #655e7d;border-radius:8px;padding:8px;font:700 14px Nunito}
.plan-modes{display:flex;gap:8px}
#planner button{font:800 13px/1.3 Nunito;cursor:pointer;border:1px solid #676079;border-radius:9px;background:#343047;color:var(--text);padding:10px 14px;min-height:42px;box-shadow:none;text-shadow:none}
#planner button[aria-pressed=true]{background:#214337;border-color:var(--green);color:#a4f6cf}
#planner button:hover{border-color:#c9c1ff}
#planner :focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
#planner details{border-top:1px solid #494356;margin-top:10px;padding-top:8px}
#planner summary{cursor:pointer;font:800 14px/1.6 Nunito;min-height:32px}
.plan-party{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0}
.plan-caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.plan-cohort{margin-top:10px;padding:8px 10px;border-left:3px solid var(--green);background:#1c1b2c;font:700 12px/1.5 Nunito;color:#d0cadf}
.plan-cohort.warn{border-color:var(--yellow)}
.plan-cohort.note{border-color:#80b5ec;font-weight:400}
.plan-cohort.note summary{font-weight:700;cursor:pointer}
.plan-cohort.note p{margin:6px 0 0}
.plan-brief{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.plan-card{padding:14px;border:1px solid #4e485f;border-radius:10px;background:#201e30;min-width:0}
.plan-card h3{font:800 14px/1.5 Nunito;margin:0 0 6px;text-transform:none;text-shadow:none;color:var(--text);background:none;box-shadow:none;padding:0}
.plan-card p,.plan-card li{font:600 13px/1.6 Nunito;color:#ccc6dc}
.plan-card ul{padding-left:19px;margin:8px 0}.plan-card li+li{margin-top:8px}
.plan-card a{color:#a9dcff}.plan-card .plan-pull{min-height:30px!important;padding:4px 8px!important;margin-right:5px;font-size:12px!important}
.plan-source{font-size:11px!important;color:#a7a0ba!important;margin-top:10px}
.plan-status{font:700 13px/1.5 Nunito;color:var(--green)}
.plan-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
#app[aria-busy=true]{opacity:.65;pointer-events:none}
/* Lower visual noise outside the map, without changing the pull colors. */
.top .hero h2{font-family:Nunito,system-ui;font-weight:900;text-shadow:none;letter-spacing:0}
.top .mods button{border-width:1px;box-shadow:none;min-height:40px}
.srcgroup>summary{padding:8px;cursor:pointer;font-weight:800}
.srcgroup[open]>div{padding:8px}.stepbar{flex-wrap:wrap}
#app .hero .mods{flex-wrap:wrap;overflow:visible;gap:8px;padding:0}
#app .hero .mods .mod{min-height:42px;box-shadow:none;border-width:1px;font-size:12px;letter-spacing:.3px}
/* Map and following tables share document flow. Making just the first grid
   item sticky causes it to paint over the later rows while scrolling. */
@media(max-width:700px){#planner{padding:12px;margin-bottom:14px}.plan-controls{gap:10px}.plan-modes{gap:6px}.plan-party{grid-template-columns:1fr 1fr}.plan-caps{grid-template-columns:1fr 1fr}.plan-brief{grid-template-columns:1fr}.plan-note{font-size:12px}.plan-intro h2{font-size:18px!important}#plan-edit-group{min-height:36px!important;padding:7px 10px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-width:420px){.plan-limit-fields{grid-template-columns:1fr}}

.plan-spec-label{margin-top:8px}#planner select:disabled{opacity:.5}
.plan-coverage{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.plan-chip{padding:4px 8px;border-radius:6px;background:#203c32;color:#b0edd1;font:700 12px/1.5 Nunito}
.plan-kit-heading{font:800 14px Nunito;margin:14px 0 6px;color:var(--text);text-shadow:none;text-transform:none}
#planner .plan-chip{background:#203c32;border:1px solid #3d755d;color:#b0edd1;text-align:left;padding:6px 9px;font-size:12px;min-height:44px}.plan-chip small{display:block;font-size:10px;font-weight:600;line-height:1.5;color:#bdcfca}
#planner .plan-chip.potential{background:transparent;border-color:#777088;color:#e0d8ed}.plan-chip.potential small{color:#c2b8d3}
.plan-talents h3{font:800 14px Nunito;margin:16px 0 6px;color:var(--text);text-transform:none;text-shadow:none}
.plan-talent{border-bottom:1px solid #484254;padding:10px 0}.plan-talent label,.plan-tool{display:flex;gap:10px;align-items:start;cursor:pointer;font:700 13px/1.5 Nunito}
#planner input[type=checkbox]{width:18px;min-height:18px;height:18px;flex-shrink:0;margin:2px 0;accent-color:#77dbad}
.plan-tool small,.plan-talent small{display:block;font:600 12px/1.5 Nunito;color:#b9b2cc}.plan-talent-detail{margin:4px 0 0 28px;font:600 12px/1.5 Nunito;color:#bbb5cd}.plan-talent-detail p{margin:3px 0}.plan-talent-detail a{font-size:11px;color:#a9dcff}
#planner .plan-pull{min-height:28px;padding:3px 7px;margin:2px 1px}.plan-tool-list{display:grid;gap:12px;margin:14px 0}
.plan-status:empty{display:none}.plan-status:not(:empty){margin-top:8px}
.talent-player h3{font:800 14px/1.5 Nunito;margin:14px 0 4px;color:var(--text);text-shadow:none;text-transform:none}
.talent-build{padding:12px;margin:8px 0;border:1px solid #504961;border-radius:9px;background:#211f31}
.talent-build-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font:700 13px/1.5 Nunito}
.talent-build .plan-source{margin:6px 0}.talent-tools{font:600 12px/1.6 Nunito;color:#c7e7d9;margin:6px 0}
.talent-links{display:flex;gap:14px;flex-wrap:wrap;font:700 12px/1.5 Nunito}.talent-links a{color:#a9dcff}
.talent-status{font:700 12px/1.6 Nunito;color:var(--green)}.talent-status textarea{width:100%;box-sizing:border-box;overflow-wrap:anywhere;background:var(--panel2);color:var(--text);min-height:90px}
