.team-builder-app .hero h1{margin:0;font-size:clamp(2rem,4vw,4rem)}
.tb-grid{display:grid;grid-template-columns:minmax(280px,390px) 1fr;gap:20px;align-items:start}.tb-panel{position:sticky;top:14px}.tb-panel h2{font-size:1.05rem;margin:18px 0 10px}.tb-panel h2:first-child{margin-top:0}.small{font-size:.88rem}.file-row{display:grid;grid-template-columns:1fr;gap:7px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}.file-row input{font-size:.9rem}.file-row strong{font-size:.83rem;color:#9ee493}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.settings-grid input,#opponentSearch{width:100%;box-sizing:border-box}.selection-actions{display:flex;gap:8px;margin:10px 0}.selection-actions button,.primary-action{cursor:pointer}.primary-action{width:100%;margin-top:14px;padding:13px 16px;border-radius:14px;border:0;font-weight:800}.primary-action:disabled{opacity:.55;cursor:not-allowed}.opponent-list{height:360px;overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:8px;background:rgba(0,0,0,.18)}.empty-list{display:flex;align-items:center;justify-content:center;color:var(--muted,#8ea0b8);text-align:center}.opp-item{display:flex;gap:8px;align-items:flex-start;padding:7px 6px;border-radius:10px}.opp-item:hover{background:rgba(255,255,255,.06)}.opp-item input{margin-top:3px}.tb-results{display:grid;gap:16px}.output-stack{display:grid;gap:16px}.result-block h2{margin-top:0}.team-list{display:grid;gap:12px}.team-card{border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:14px;background:rgba(0,0,0,.14)}.team-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.score-pill{font-size:.8rem;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.1)}.mon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.mon-card{padding:10px;border-radius:12px;background:rgba(255,255,255,.06)}.mon-card strong{display:block}.mon-card span{font-size:.86rem;color:var(--muted,#8ea0b8)}.rank-table{width:100%;border-collapse:collapse;font-size:.92rem}.rank-table th,.rank-table td{padding:8px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}.covered-list{font-size:.86rem;color:var(--muted,#8ea0b8)}.warn{border-left:4px solid #ffcc66;padding:10px 12px;background:rgba(255,204,102,.1);border-radius:12px}.ok{border-left:4px solid #9ee493;padding:10px 12px;background:rgba(158,228,147,.08);border-radius:12px}@media(max-width:900px){.tb-grid{grid-template-columns:1fr}.tb-panel{position:static}.opponent-list{height:280px}}
/* v116 fixes */
.opp-item{justify-content:flex-start;text-align:left;width:100%;box-sizing:border-box}.opp-item span{display:block;text-align:left;line-height:1.25}.move-codes{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:rgba(158,228,147,.12);color:#9ee493;font-size:.78em;font-weight:800;white-space:nowrap}.mon-card strong .move-codes,.rank-table strong .move-codes{vertical-align:middle}.rank-table td:nth-child(2){text-align:left}.team-title,.mon-card{text-align:left}

/* v117 opponent list alignment fix */
.opponent-list{
  padding:8px;
}
.opp-item{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:100% !important;
  box-sizing:border-box !important;
  text-align:left !important;
  cursor:pointer;
  min-height:34px;
}
.opp-item input[type="checkbox"]{
  flex:0 0 auto !important;
  margin:0 !important;
  width:16px;
  height:16px;
}
.opp-item span{
  flex:1 1 auto !important;
  min-width:0 !important;
  display:block !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1.25 !important;
}

/* v118 source selection buttons */
.tb-source-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.tb-source-buttons button{border:0;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}.inner-output{margin-top:12px}.mon-card small{display:block;margin-top:4px;color:var(--muted,#8ea0b8);font-size:.78rem}

/* v121 change team button */
.change-team-btn{
  margin-top:12px;
  border:0;
  border-radius:12px;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer;
}
.change-team-btn:hover{filter:brightness(1.08)}
