/* Run planner (/plan). Layered on styles-brand.css tokens and styles.css (.panel, .button, .section-title). */
.plan-banner{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);border-radius:4px;padding:14px 18px;margin-bottom:24px;font-size:14px;color:var(--muted)}
.plan-banner strong{color:var(--text);font-weight:500}
.plan-banner .plan-actions{margin-top:12px}
.plan-banner.error{border-left-color:#e74c3c;color:#ff8a80}

.plan-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.plan-field label,.plan-label{font:11px var(--mono);letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.plan-input,.plan-select,.plan-textarea{width:100%;background:var(--raised);border:1px solid var(--line);border-radius:4px;color:var(--text);padding:10px 12px;font:14px var(--body)}
.plan-select{appearance:auto}
.plan-textarea{min-height:64px;resize:vertical}
.plan-input:focus-visible,.plan-select:focus-visible,.plan-textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.plan-hint{font-size:12px;color:var(--muted);margin:4px 0 0}
.plan-count{font:11px var(--mono);color:var(--muted)}

.plan-players{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.plan-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;margin-bottom:14px}
.plan-row>.button{align-self:flex-end}
.plan-row>.plan-field{flex:1;min-width:200px;margin-bottom:0}

.plan-actions{display:flex;flex-wrap:wrap;gap:10px}
.plan-actions .button{gap:10px;cursor:pointer;color:var(--text)}

.plan-checks{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.plan-check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.plan-check input{margin-top:4px;accent-color:var(--accent)}
.plan-check span small{display:block;color:var(--muted);font-size:12px}
.plan-targets{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.plan-targets li{display:flex;align-items:center;gap:8px;background:var(--raised);border:1px solid var(--line);border-radius:4px;padding:6px 6px 6px 12px;font-size:13px;max-width:100%}
.plan-targets li span{overflow-wrap:anywhere}
.plan-targets button{padding:2px 8px;font-size:12px}

.plan-encounter{scroll-margin-top:100px}
.plan-enc-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;align-items:baseline;margin-bottom:10px}
.plan-enc-head h2{font-size:20px}
.plan-enc-num{font:11px var(--mono);color:var(--accent);letter-spacing:1px;margin-right:8px}
.plan-enc-links{display:flex;gap:16px;font-size:13px}
.plan-enc-links a{color:var(--accent)}
.plan-enc-links a:hover{text-decoration:underline}
.plan-team{border-left:2px solid var(--line);padding-left:12px;margin:0 0 16px!important;font-size:13px!important}
.plan-enc-state{font:11px var(--mono);letter-spacing:.5px;padding:3px 8px;border-radius:3px;border:1px solid var(--line)}
.plan-enc-state.ready{color:var(--accent);border-color:var(--accent)}
.plan-enc-state.gaps{color:var(--gold);border-color:var(--gold)}

.plan-assign{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin-bottom:16px}
.plan-assign-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px;align-items:center}
.plan-assign-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-assign-row.unset .plan-select{border-color:var(--gold)}

.plan-roles{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.plan-role{border:1px solid var(--line);border-radius:4px;padding:8px 12px;background:var(--raised);font-size:13px}
.plan-role-top{display:flex;justify-content:space-between;gap:10px}
.plan-role-name{font-weight:500}
.plan-role-count{font:11px var(--mono);color:var(--muted);white-space:nowrap}
.plan-role-who{color:var(--muted);overflow-wrap:anywhere}
.plan-role.short{border-color:var(--gold)}
.plan-role.short .plan-role-count{color:var(--gold)}
.plan-role.over{border-color:#e74c3c}
.plan-role.over .plan-role-count{color:#ff8a80}
.plan-flag{font:10px var(--mono);letter-spacing:.5px;text-transform:uppercase;margin-left:6px}
.plan-unassigned{font-size:13px;color:var(--gold);margin:0 0 14px!important}
.plan-note-view{font-size:14px!important;color:var(--text)!important;white-space:pre-wrap;overflow-wrap:anywhere}

.plan-summary{width:100%;min-height:220px;font:12px/1.5 var(--mono);background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:12px;resize:vertical}
.plan-copied{font-size:13px;color:var(--accent);min-height:1.5em;margin-top:8px!important}

@media(max-width:800px){
 .plan-players{grid-template-columns:repeat(2,minmax(0,1fr))}
 .plan-assign{grid-template-columns:1fr}
}
@media(max-width:480px){
 .plan-players{grid-template-columns:1fr}
 .plan-assign-row{grid-template-columns:1fr;gap:4px}
 .plan-actions .button{flex:1 1 100%;justify-content:center}
}
.plan-beta-note{font-size:14px;color:var(--muted);margin:0 0 14px}
.plan-beta-note a{color:var(--accent);text-decoration:underline}
