.roster-panel [hidden]{display:none!important}.portal-roster .guide-hero{padding:18px 20px;min-height:0}.portal-roster .guide-hero h1{font-size:clamp(1.45rem,4vw,2rem)}
.roster-panel{background:#fff;border:1px solid #d4deec;border-radius:16px;padding:20px;margin:0 0 18px;color:#21344f}.roster-panel h2{font-size:1.25rem;margin:0 0 12px}.roster-panel h3{font-size:1.06rem;margin:12px 0 8px}.roster-panel p{line-height:1.7;margin:8px 0 12px;overflow-wrap:anywhere;line-break:strict}.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.roster-heading small{font-size:.875rem;color:#56708d}.roster-beta{background:#e6edff;color:#2456a0;border-radius:20px;padding:3px 12px;white-space:nowrap;font-size:.875rem}
.roster-panel button,.roster-panel input,.roster-panel select{font:inherit;max-width:100%;min-width:0}.roster-panel button{border:1px solid #bfcee4;border-radius:9px;padding:9px 13px;background:#f2f6fe;color:#204f90;cursor:pointer;min-height:44px}.roster-panel button:hover{background:#e4edfc}.roster-panel button:disabled{opacity:.55;cursor:wait}.roster-panel button.roster-primary,.roster-upload{background:#245eb5;color:#fff;border-color:#245eb5}.roster-panel input:not([type=checkbox]):not([type=file]),.roster-panel select{border:1px solid #b9c9df;border-radius:8px;background:#fff;color:#21344f;padding:9px;min-height:44px;width:100%}.roster-panel input[type=checkbox]{width:19px;height:19px;vertical-align:middle}.roster-panel label{font-size:.875rem;line-height:1.5;display:block}.roster-panel :focus-visible{outline:3px solid #e39c26;outline-offset:3px}.roster-upload{display:block!important;padding:14px;border-radius:12px;font-weight:700;font-size:1rem!important}.roster-upload input{display:block;margin-top:8px;width:100%}.roster-note{font-size:.875rem;color:#526780}.roster-help{border-top:1px solid #e0e7f2;margin-top:16px;padding-top:12px}.roster-panel summary{cursor:pointer;font-size:.9375rem;font-weight:650;line-height:1.6}.roster-empty{color:#526780;background:#f4f7fc;padding:16px;border-radius:10px}.roster-manual{display:flex;align-items:end;gap:8px;margin:10px 0}.roster-manual label{flex:1}.roster-options{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.roster-options>label:first-child{flex:1;min-width:210px}
.roster-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.roster-candidate{border:1px solid #d5deec;border-radius:12px;padding:10px;min-width:0;background:#f8faff}.roster-candidate img{width:76px;height:76px;object-fit:contain;display:block;margin:0 auto 7px;border-radius:8px}.roster-candidate select,.roster-candidate input{font-size:.875rem!important;margin:4px 0}.roster-candidate p{font-size:.875rem;margin:4px 0}.roster-uncertain{color:#87591a}.roster-photo{border-bottom:1px solid #e0e7f2;padding:12px 0}.roster-photo>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.roster-photo canvas{display:block;max-width:100%;height:auto;cursor:crosshair;touch-action:manipulation;margin:12px auto}.roster-grid-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px}.roster-grid-settings button{grid-column:1/-1}
.owned-row{border-top:1px solid #e0e7f2;padding:14px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.owned-identity{display:flex;gap:10px;align-items:center;min-width:0}.owned-identity strong{font-size:1rem;line-height:1.6;overflow-wrap:anywhere}.owned-identity small{display:block;font-size:.875rem;color:#526780}.owned-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:8px}.owned-controls select{padding:8px 5px}.owned-row .buddy-mark{flex:0 0 48px;width:48px;height:48px}.owned-row .remove-pair{font-size:.875rem;padding:5px 9px;align-self:center}.roster-ranking{border:1px solid #d4deec;border-radius:13px;margin:12px 0;padding:15px;border-left:4px solid #3170bd}.roster-rank-top{display:flex;gap:10px;align-items:center}.roster-rank-number{font-size:1.35rem;font-weight:800;color:#275bab;white-space:nowrap}.roster-rank-top h3{margin:0;font-size:1rem;line-height:1.6}.roster-rank-top .buddy-mark{flex:0 0 44px;width:44px;height:44px}.roster-rank-target{font-weight:750;background:#edf3ff;border-radius:8px;padding:8px 10px}.roster-ranking dl{margin:8px 0}.roster-ranking dt{font-size:.875rem;font-weight:750;color:#3c5d8c;margin-top:10px}.roster-ranking dd{margin:4px 0;line-height:1.75}.roster-ranking details{padding-top:6px}.roster-source{display:flex;gap:12px;flex-wrap:wrap;font-size:.875rem}.roster-wait-item{border-top:1px solid #e1e7f0;padding:10px 0}.roster-wait-item p{font-size:.875rem}
@media(max-width:640px){.roster-panel{padding:14px;border-radius:12px}.roster-candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.roster-ranking{padding:12px}.roster-panel .roster-primary{width:100%}.owned-controls{gap:6px}.portal-roster .guide-hero{padding:14px}.roster-heading{align-items:start}.roster-panel p{line-height:1.65}.roster-options{gap:10px}}

.candidate-levels{display:grid;grid-template-columns:1fr 1fr;gap:6px}.roster-mode-label{margin:10px 0}.roster-conflict{grid-column:1/-1;background:#fff5df;color:#704914;border-left:3px solid #c78e25;padding:10px;font-size:.875rem}.roster-photo>label{margin-top:10px}

.photo-overview{margin-top:.65rem}.photo-overview img{display:block;width:min(100%,360px);height:auto;margin:.6rem auto 0;border:1px solid var(--line);border-radius:.4rem}

.roster-capture-steps{margin:10px 0;padding-left:1.5em;line-height:1.65}.roster-capture-steps li+li{margin-top:4px}

.roster-options>label:not(#spare-label){flex:1 1 220px}.roster-options #spare-label{flex-basis:100%}.roster-rank-target{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap}.roster-priority-label{font-size:.875rem;border-radius:6px;padding:3px 8px;color:#254d86;background:#dce9ff}.roster-priority-label.priority-2{color:#65551a;background:#f5edce}.roster-priority-label.priority-3{color:#526176;background:#e5eaf2}.roster-reasons{padding-left:1.2em;margin:0}.roster-reasons li+li{margin-top:8px}.roster-ranking dd,.roster-reasons li{overflow-wrap:anywhere;line-break:strict}.roster-priority-reason{font-weight:650}

.candy-stock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.candy-stock label,.candy-dedicated-row label{display:flex;flex-direction:column;gap:6px;font-weight:700;min-width:0}
.candy-stock input,.candy-dedicated-row input{width:100%;box-sizing:border-box;min-width:0;font:inherit;font-size:16px;padding:10px;border:1px solid #bac9dd;border-radius:8px;background:white}
.candy-stock input[aria-invalid="true"],.candy-dedicated-row input[aria-invalid="true"]{border:2px solid #b32945}
.candy-dedicated-row{padding:14px 0;border-bottom:1px solid #dee6f0}.candy-dedicated-row>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.candy-options{display:flex;flex-direction:column;gap:10px;margin-top:16px}.candy-options label{display:flex;align-items:baseline;gap:8px}
.candy-allocation{padding:18px;border:1px solid #c9d9eb;border-left:5px solid #3b738d;border-radius:12px;margin:16px 0;background:#fbfdff}
.candy-allocation h3 span{display:block}.candy-step{font-weight:800;color:#32607d;white-space:nowrap}
.candy-spending{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.candy-spending li{padding:6px 10px;background:#eaf2fb;border-radius:6px}.candy-spending b{margin-left:8px;white-space:nowrap}
.candy-balances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.candy-balances>div{border-bottom:1px solid #dce5ef;padding:8px 0}.candy-balances dd{margin:4px 0}
@media(max-width:640px){.candy-stock{grid-template-columns:repeat(2,minmax(0,1fr))}.candy-allocation{padding:12px}.candy-balances{grid-template-columns:1fr}}

.team-members{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.team-members>div{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.team-members strong{font-size:1rem}.team-members small{font-size:.875rem;line-height:1.5;color:#596b80}.team-members img{width:48px;height:48px}.team-members strong,.team-members small{overflow-wrap:anywhere}#tower-settings[hidden]{display:none}

.candidate-name{font-size:1rem;font-weight:700;line-height:1.5;overflow-wrap:anywhere;margin:.35rem 0 .75rem}
.roster-draft{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;background:#eef5ff;border:1px solid #c9d9ed;border-radius:10px}.roster-draft label{display:flex;align-items:center;gap:8px;font-weight:700;flex:1 1 220px}.roster-draft-help{margin-top:10px}
.roster-draft-conflict{margin:10px 0;padding:12px;border:2px solid #a84573;border-radius:10px;background:#fff4f8}.roster-draft-conflict p{margin:0 0 10px}.roster-draft-conflict div{display:flex;gap:8px;flex-wrap:wrap}.roster-draft-conflict button{min-height:44px;flex:1 1 220px}
.roster-review-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}.roster-review-actions a{padding:8px 0}.roster-held-item{border-top:1px solid #e1e7f0;padding:12px 0}.roster-panel :is(.roster-wait-item,.roster-held-item,.candy-dedicated-row) .buddy-name-link{display:inline-flex;gap:8px;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere}.roster-panel :is(.roster-wait-item,.roster-held-item,.candy-dedicated-row) .buddy-mark{flex:0 0 40px;width:40px;height:40px}
