.opposition-panel{margin-top:30px;padding-top:10px;border-top:1px solid var(--line)}
.opposition-panel h4{font-size:15px;margin:22px 0 10px}
.opposition-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.opposition-cards strong{font-size:22px;overflow-wrap:anywhere}
.opposition-chart{max-width:1000px;border:1px solid var(--line);background:#060b11;padding:8px;margin:15px 0}
.opposition-chart svg{width:100%;height:auto;display:block}
.opposition-chart text{fill:var(--muted);font:12px 'JetBrains Mono',monospace}
.opposition-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:13px}
.opposition-legend span{display:flex;align-items:center;gap:7px;overflow-wrap:anywhere;min-width:0}
.opposition-legend svg{width:32px;height:10px;flex:none}
.opposition-compare{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:20px 0}
.opposition-search{position:relative;max-width:400px;flex:1 1 240px;min-width:0}
.opposition-search label{display:block}
.opposition-suggestions{position:absolute;top:100%;left:0;right:0;z-index:30;margin-top:6px;padding:5px;background:#101923;border:1px solid var(--line,var(--border));border-radius:6px;box-shadow:0 12px 30px #0009;max-height:290px;overflow-y:auto}
.opposition-suggestions[hidden]{display:none}
.opposition-option{display:grid;gap:3px;min-height:44px;align-content:center;padding:7px 10px;border-radius:4px;cursor:pointer;overflow-wrap:anywhere}
.opposition-option strong{color:#fff;font-size:14px}
.opposition-option small{color:var(--muted2,var(--muted));font-size:12px}
.opposition-option:hover,.opposition-option[aria-selected=true]{background:#243449}
.opposition-compare input{display:block;width:100%;min-width:0;box-sizing:border-box;margin-top:6px;padding:10px 12px;border:1px solid var(--line,var(--border));border-radius:6px;background:#0f151d;color:inherit;font:inherit}
.opposition-selection{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 0}
.opposition-selection p{margin:0;overflow-wrap:anywhere}
.opposition-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 20px}
.opposition-members:empty{display:none}
.opposition-member{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;border:1px solid var(--line,var(--border));border-left:3px solid var(--opposition-color);border-radius:6px;padding:10px 12px}
.opposition-member strong{color:var(--opposition-color);overflow-wrap:anywhere;font-size:13px}
.opposition-member .status{grid-column:1/-1;font-size:12px;margin:0;overflow-wrap:anywhere}
.opposition-panel .opposition-member button,.opposition-panel .opposition-selection button{margin:0;min-height:38px}
.opposition-panel button:focus-visible,.opposition-panel input:focus-visible{outline:2px solid var(--sky,#38bdf8);outline-offset:3px}
[data-op-report] .opposition-result>h4:first-child{border-left:3px solid var(--opposition-color);padding-left:10px}
.opposition-result{margin-bottom:25px;min-width:0}
.opposition-unknown{color:var(--amber)}
@media(max-width:900px){.opposition-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.opposition-cards strong{font-size:19px}.opposition-chart{padding:0}.opposition-chart text{font-size:14px}.opposition-compare button{flex:1;font-size:13px;padding:10px 8px;min-height:44px}.opposition-cards{gap:8px}.opposition-members{grid-template-columns:1fr}.opposition-legend{gap:10px}.opposition-panel .opposition-member button,.opposition-panel .opposition-selection button{min-height:44px}}

.opposition-progress{max-width:1000px;margin:16px 0;padding:14px 16px;border:1px solid var(--line,var(--border));border-left:3px solid var(--sky,#38bdf8);border-radius:6px;background:#0c1824;overflow-wrap:anywhere}
.opposition-progress[hidden]{display:none}
.opposition-progress .status{display:flex;align-items:center;gap:10px;margin:0;font-weight:600;color:#e5edf6}
.opposition-progress .note{margin:8px 0 0}
.opposition-progress ul{padding-left:18px;margin:10px 0 0;font-size:13px;color:var(--muted)}
.opposition-progress ul:empty{display:none}
.opposition-progress li+li{margin-top:8px}
.opposition-progress progress{display:block;width:min(100%,400px);height:7px;margin-top:6px;accent-color:var(--sky,#38bdf8)}
.opposition-progress[data-updating=true] .status:before{content:'';width:14px;height:14px;flex:none;border:2px solid #38bdf840;border-top-color:#38bdf8;border-radius:50%;animation:opposition-spin 1s linear infinite}
@keyframes opposition-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.opposition-progress[data-updating=true] .status:before{animation:none}}
