.team-opponent-panel { margin:18px 0; padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.team-opponent-panel > summary { min-height:44px; cursor:pointer; font-size:16px; font-weight:800; color:var(--ink); }
.team-opponent-panel > summary small { margin-left:12px; font-size:11px; font-weight:500; color:var(--muted); }
.team-opponent-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.team-opponent-toolbar button,.team-opponent-controls button { min-height:44px; font-size:12px; }
.team-opponent-toolbar span { margin-left:auto; color:var(--muted); font-size:12px; }
.team-opponent-controls { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:16px 0 10px; }
.team-opponent-controls label { display:flex; flex-direction:column; gap:5px; font-size:12px; }
.team-opponent-controls select { min-height:40px; }
#teamOpponentStatus { margin:10px 0; font-size:12px; color:var(--muted); }
.team-opponent-table-wrap { overflow:auto; }
.team-opponent-table { width:100%; border-collapse:separate; border-spacing:4px; table-layout:fixed; }
.team-opponent-table th:first-child { width:170px; }
.team-opponent-table th { padding:6px; font-size:12px; font-weight:700; vertical-align:middle; }
.team-opponent-table th img { display:block; width:36px; height:36px; object-fit:contain; margin:0 auto 4px; }
.team-opponent-table tbody th { text-align:left; }
.team-opponent-table tbody th img { float:left; margin:0 8px 0 0; }
.team-opponent-table th span { overflow-wrap:anywhere; }
.team-opponent-table th small { display:block; margin-top:4px; font-size:10px; font-weight:500; color:var(--muted); }
.team-opponent-table small.is-threat { color:var(--danger); font-weight:700; }
.opponent-matchup { display:grid; place-items:center; width:100%; min-height:48px; padding:5px; color:var(--ink); background:var(--soft); border:1px solid var(--line); border-radius:8px; }
.opponent-matchup:hover:not(:disabled) { border-color:var(--accent); color:var(--ink); background:var(--soft); transform:none; }
.opponent-matchup .team-matchup-cell { min-width:34px; }
.opponent-empty-cell { color:var(--muted); font-size:15px; }
#teamOpponentMobile { display:none; }
.team-opponent-panel [hidden] { display:none !important; }
.team-opponent-note { font-size:12px; color:var(--muted); line-height:1.5; }
.team-opponent-energy { margin:12px 0; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.team-opponent-energy summary { min-height:32px; cursor:pointer; font-size:12px; font-weight:700; }
.team-opponent-energy p { margin:8px 0; font-size:12px; color:var(--muted); }
.team-opponent-energy-fields { display:flex; flex-wrap:wrap; gap:12px; }
.team-opponent-energy-fields label { display:grid; gap:6px; font-size:12px; font-weight:700; }
.team-opponent-energy-fields input { max-width:110px; min-height:44px; color:var(--ink); }
.team-opponent-panel > .team-trio { width:100%; max-width:none; margin:16px 0; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--soft); box-shadow:none; }
.team-trio > .team-trio-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 10px; padding:0; border:0; border-radius:0; background:transparent; color:var(--ink); box-shadow:none; }
.team-trio h3 { margin:0; font-size:16px; }
.team-trio-head span { font-size:12px; color:var(--muted); }
.team-trio-picker { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.team-trio .team-trio-member { position:relative; display:flex; align-items:center; flex-direction:column; justify-content:center; gap:4px; min-width:0; min-height:80px; padding:8px; font-size:12px; line-height:1.35; color:var(--ink); background:var(--panel); }
.team-trio-member span { overflow-wrap:anywhere; }
.team-trio-member img { width:32px; height:32px; object-fit:contain; }
.team-trio-member b { position:absolute; top:6px; right:8px; color:var(--accent); }
.team-trio .team-trio-member[aria-pressed="true"] { color:var(--ink); border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--panel)); }
.team-trio-metrics { display:flex; flex-wrap:wrap; gap:8px 20px; font-size:12px; margin-top:12px; }
.team-trio-metrics strong { color:var(--accent); font-size:16px; margin-right:4px; }
.team-trio-conditions { color:var(--muted); font-size:11px; margin:10px 0 0; }
.team-trio p { margin:10px 0; color:var(--muted); font-size:12px; line-height:1.5; }
.team-trio-gaps strong { color:var(--danger); }
.team-trio details { margin-top:12px; border-top:1px solid var(--line); padding-top:8px; }
.team-trio summary { min-height:36px; cursor:pointer; font-size:12px; font-weight:700; }
.team-trio .team-trio-suggestion { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 12px; width:100%; margin:8px 0; padding:12px; color:var(--ink); background:var(--panel); text-align:left; }
.team-trio-suggestion strong { font-size:12px; line-height:1.5; }
.team-trio-suggestion span { grid-column:1; font-size:12px; color:var(--muted); }
.team-trio-suggestion b { grid-column:2; grid-row:1/3; align-self:center; color:var(--accent); font-size:12px; }
.team-trio-suggestion .team-coverage-lineup { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.team-coverage-lineup > span { grid-column:auto; display:grid; justify-items:center; align-content:start; gap:4px; text-align:center; }
.team-coverage-lineup img { width:36px; height:36px; object-fit:contain; }
.team-coverage-lineup strong { overflow-wrap:anywhere; }
.opponent-matchup.is-in-trio { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 5%,var(--soft)); }
.opponent-trio-column b { color:var(--accent); }
#teamOpponentShareStatus { flex-basis:100%; font-size:12px; color:var(--accent); }
#teamOpponentShareStatus:empty { display:none; }
#teamTrioFarmResults { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:8px; margin-top:8px; }
#teamTrioFarmResults > p { grid-column:1/-1; }
@media(min-width:760px) { #teamTrioFarmResults { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1100px) { #teamTrioFarmResults { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.team-farm-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:8px 0; }
.team-farm-controls button,#teamTrioFarmFilter { min-height:44px; font-size:12px; }
#teamTrioFarmStatus { font-size:12px; color:var(--muted); }
.team-trio .team-farm-help { margin-top:10px; }
.team-trio .team-farm-help summary { color:var(--muted); font-size:11px; }
.team-trio .team-farm-group { padding:0; margin:0; border:1px solid var(--line); border-radius:8px; background:var(--panel); overflow:hidden; min-width:0; width:100%; max-width:none; }
.team-farm-group-head { display:grid; gap:6px; padding:10px; border-bottom:1px solid var(--line); }
.team-farm-opponent { display:flex; align-items:center; justify-content:center; gap:8px; }
.team-farm-opponent > img { width:40px; height:40px; object-fit:contain; }
.team-farm-opponent > div { display:grid; gap:4px; min-width:0; }
.team-farm-opponent b { font-size:12px; }
.team-farm-opponent div > span:not(.team-farm-hp) { font-size:11px; color:var(--muted); }
.team-farm-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:8px; align-items:stretch; }
.team-farm-choice { display:flex; flex-direction:column; gap:8px; padding:8px; min-width:0; border:1px solid var(--line); border-radius:7px; background:var(--panel); color:var(--ink); text-align:left; font:inherit; cursor:pointer; box-shadow:none; }
.team-farm-choice:hover,.team-farm-choice.is-selected { border-color:var(--accent); background:var(--soft); }
.team-farm-choice:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.team-farm-choice > .team-farm-badge { font-size:12px; line-height:16px; min-height:32px; }
.team-farm-choice-action { margin-top:auto; font-size:11px; color:var(--accent); text-align:center; }
.team-farm-cost { display:flex; align-items:center; justify-content:center; gap:4px; color:var(--muted); font-size:11px; }
.team-farm-detail-resources { display:grid; gap:10px; margin-top:10px; }
.team-farm-detail-resources .team-farm-moves { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.team-farm-detail-resources .team-farm-moves > span { grid-column:1/-1; }
.team-farm-choice .team-farm-person { grid-template-rows:40px 34px; }
.team-farm-choice .team-farm-stats { grid-template-columns:minmax(0,1fr); gap:8px; }
.team-farm-choice .team-farm-stats > div { grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:4px; }
.team-farm-choice .team-farm-stats > div > span:first-child { min-height:20px; }
.team-farm-choice .team-farm-stats .team-farm-hp { grid-column:1/-1; max-width:none; }
.team-farm-choice .team-farm-card-foot { min-height:30px; font-size:11px; }
.team-farm-moves { display:grid; gap:6px; border-top:1px solid var(--line); padding-top:8px; }
.team-farm-moves > span { color:var(--muted); font-size:11px; }
.team-farm-ready-move { display:grid; gap:2px; min-width:0; }
.team-farm-ready-move > b { font-size:11px; color:var(--muted); }
.team-farm-ready-move.is-ready > b { color:var(--good); }
.team-farm-moves .meta-move-pill { display:flex; align-items:flex-start; gap:4px; width:100%; max-width:100%; min-width:0; height:auto; min-height:24px; padding:2px 0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--ink); font-size:11px; font-weight:600; line-height:14px; }
.team-farm-moves .meta-move-pill::before { content:''; flex:0 0 14px; width:14px; height:14px; border-radius:3px; background:var(--move-type) var(--move-icon) center/11px 11px no-repeat; }
.team-farm-moves .meta-move-pill span { white-space:normal; overflow-wrap:anywhere; }
.team-farm-detail-title { display:flex; align-items:center; gap:6px; margin-top:10px; font-size:12px; }
.team-farm-detail-title img { width:28px; height:28px; object-fit:contain; }
.team-farm-detail-title > span { color:var(--muted); font-size:11px; }
.team-farm-battle { width:100%; margin:4px 0; }
.team-farm-loss-context { display:flex; align-items:center; gap:5px; min-width:0; color:var(--muted); font-size:11px; }
.team-farm-loss-context img { width:24px; height:24px; object-fit:contain; opacity:.6; filter:grayscale(.5); }
.team-farm-loss-context b { color:var(--danger); font-size:11px; }
.team-farm-badge { font-size:14px; line-height:1.4; color:var(--muted); }
.is-safe .team-farm-badge { color:var(--good); }
.is-risk .team-farm-badge,.is-charged .team-farm-badge { color:var(--warn); }
.is-failed .team-farm-badge { color:var(--danger); }
.team-farm-pair { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr); align-items:start; gap:8px; }
.team-farm-person { display:grid; grid-template-rows:40px 34px auto; gap:4px; justify-items:center; text-align:center; min-width:0; }
.team-farm-person img { width:40px; height:40px; object-fit:contain; }
.team-farm-person > b { align-self:center; font-size:12px; line-height:17px; overflow-wrap:anywhere; }
.team-farm-entry-hp { display:grid; gap:4px; width:100%; max-width:90px; font-size:11px; color:var(--muted); }
.team-farm-pair > .team-farm-vs { margin-top:14px; }
.team-farm-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:8px 0 0; border-top:1px solid var(--line); }
.team-farm-stats > div { display:grid; align-content:start; gap:4px; min-width:0; }
.team-farm-stats > div > span:first-child { display:flex; align-items:center; gap:3px; color:var(--muted); font-size:11px; font-weight:500; }
.team-farm-stats b { color:var(--ink); font-size:16px; line-height:1.1; font-weight:700; }
.team-farm-icon { width:12px; height:12px; flex-shrink:0; vertical-align:middle; }
.team-farm-icon.is-energy { color:var(--warn); }
.team-farm-icon.is-shield { color:#8c60bf; }
.team-farm-hp { display:block; height:4px; background:var(--line); border-radius:3px; overflow:hidden; width:100%; max-width:90px; }
.team-farm-hp > span { display:block; height:100%; border-radius:inherit; }
.team-farm-card-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:11px; font-weight:500; color:var(--muted); }
.team-farm-card-foot > span:first-child { display:flex; align-items:center; gap:4px; }
.team-farm-card-foot b { color:var(--ink); }
.team-farm-chevron { font-size:18px; line-height:12px; }
.team-farm-route[open] > summary .team-farm-chevron { transform:rotate(180deg); }
.team-farm-route-body { padding:0 12px 12px; border-top:1px solid var(--line); }
.team-farm-route-body button { min-height:44px; font-size:12px; }
.team-farm-timeline { margin:12px 0; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.team-farm-timeline-head { display:flex; justify-content:space-between; gap:8px; margin-bottom:6px; font-size:11px; }
.team-farm-timeline-head span { color:var(--muted); }
.team-farm-lane { display:grid; grid-template-columns:28px minmax(0,1fr) 34px; align-items:center; gap:8px; margin:7px 0; font-size:10px; }
.team-farm-lane > img { width:28px; height:28px; object-fit:contain; }
.team-farm-lane-hp { display:grid; gap:4px; font-weight:700; text-align:right; }
.team-farm-track { position:relative; height:25px; border-bottom:1px solid var(--line); }
.team-farm-event { position:absolute; top:8px; height:9px; max-width:100%; border-right:2px solid var(--soft); background:var(--accent); border-radius:2px; }
.team-farm-lane.is-opponent .team-farm-event { background:var(--muted); }
.team-farm-track .team-farm-event.is-charge { display:grid; place-items:center; top:1px; width:20px !important; height:23px; margin-left:-10px; z-index:1; border:0; background:var(--panel); border-radius:50%; box-shadow:0 0 0 1px var(--line); }
.team-farm-event .team-farm-icon { width:15px; height:15px; }
.team-farm-track .team-farm-event.is-shielded { border:1px solid #8c60bf; }
.team-farm-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; font-size:11px; color:var(--muted); }
.team-farm-legend span { display:flex; align-items:center; gap:3px; }
.team-farm-legend .team-farm-icon { width:10px; height:10px; }
.team-farm-charge-list { display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:8px; font-size:10px; color:var(--muted); }
.team-farm-next > summary { min-height:44px; }
.team-farm-next-controls { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.team-farm-next-controls:empty { display:none; }
.team-farm-next-controls button { flex:1; }
.team-farm-next-pair { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr); align-items:start; gap:8px; margin-top:6px; }
.team-farm-next-farmer,.team-farm-group .team-farm-next-enemy { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:40px 44px 20px; gap:4px; justify-items:center; text-align:center; min-width:0; }
.team-farm-next-farmer img,.team-farm-next-enemy img { width:40px; height:40px; object-fit:contain; }
.team-farm-next-farmer b { align-self:center; font-size:12px; line-height:17px; overflow-wrap:anywhere; }
.team-farm-next-farmer > span,.team-farm-next-enemy > span:not(.team-farm-sr) { display:flex; align-items:center; gap:3px; color:var(--muted); font-size:11px; }
.team-farm-vs { font-size:11px; color:var(--muted); text-align:center; font-weight:600; }
.team-farm-next-pair > .team-farm-vs { margin-top:14px; }
.team-farm-next-enemy select { width:100%; min-width:0; max-width:100%; min-height:44px; font-size:12px; padding:5px; }
.team-farm-next-result { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:10px 0 0; }
.team-farm-result-card { display:grid; gap:6px; padding:10px; border:1px solid var(--line); border-radius:7px; }
.team-farm-result-card > span { color:var(--muted); font-size:11px; }
.team-farm-outcome { display:flex; align-items:center; gap:6px; }
.team-farm-outcome b { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; font-size:18px; background:color-mix(in srgb,var(--muted) 10%,transparent); }
.team-farm-outcome strong { font-size:14px; }
.team-farm-result-card.is-win .team-farm-outcome { color:var(--good); }
.team-farm-result-card.is-loss .team-farm-outcome { color:var(--danger); }
.team-farm-result-card.is-draw .team-farm-outcome { color:var(--muted); }
.team-farm-result-card .team-farm-stats { grid-template-columns:minmax(0,1fr); gap:8px; padding-top:8px; }
.team-farm-result-card .team-farm-stats > div { grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:4px; }
.team-farm-result-card .team-farm-stats b { font-size:16px; }
.team-farm-result-card .team-farm-stats .team-farm-hp { grid-column:1/-1; max-width:none; }
.team-farm-next-status { display:block; font-size:12px; color:var(--muted); }
.team-farm-route-actions { display:grid; gap:6px; margin-top:10px; }
.team-farm-group .team-farm-conditions { margin:6px 0 0; padding:0; border:0; }
.team-farm-conditions summary { display:flex; align-items:center; min-height:44px; color:var(--muted); font-size:11px; font-weight:500; }
.team-farm-conditions summary::before { content:'ⓘ'; margin-right:5px; }
.team-farm-conditions summary::after { content:'⌄'; margin-left:auto; }
.team-farm-conditions[open] summary::after { transform:rotate(180deg); }
.team-farm-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:600px) {
  .team-farm-choices { gap:6px; padding:6px; }
  .team-farm-choice { padding:7px; gap:6px; }
  .team-farm-pair { gap:5px; }
  .team-farm-stats { gap:6px; }
  .team-farm-lane { grid-template-columns:24px minmax(0,1fr) 28px; gap:5px; }
  .team-farm-lane > img { width:24px; height:24px; }
  .team-farm-next-pair { gap:5px; }
}
@media(max-width:900px) {
  .team-opponent-panel { padding:10px; }
  .team-opponent-panel > summary small { display:block; margin:4px 0 0; }
  .team-opponent-toolbar { gap:6px; }
  .team-opponent-toolbar span { flex-basis:100%; margin:0; }
  .team-opponent-table-wrap { display:none; }
  #teamOpponentMobile { display:block; }
  .opponent-mobile-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:14px 0 10px; }
  .opponent-mobile-head > div { min-width:0; text-align:center; }
  .opponent-mobile-head img { display:block; width:42px; height:42px; object-fit:contain; margin:auto; }
  .opponent-mobile-head strong { display:block; font-size:14px; }
  .opponent-mobile-head small { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
  .opponent-mobile-head button { min-width:44px; min-height:44px; }
  .opponent-mobile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .opponent-matchup.is-mobile { gap:5px; min-height:116px; }
  .opponent-matchup.is-mobile img { width:32px; height:32px; object-fit:contain; }
  .opponent-matchup.is-mobile strong { font-size:12px; text-align:center; overflow-wrap:anywhere; }
  .opponent-matchup.is-mobile small { font-size:11px; color:var(--muted); }
  #teamOpponentMobile > p { font-size:12px; }
  .team-opponent-controls { gap:8px; }
  .team-opponent-panel > .team-trio { padding:10px; }
  .team-trio-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
