:root{--red:#e5194f;--red-d:#c3103f;--blue:#0b5cad;--blue-d:#08417c;--ink:#141b2d;--muted:#5d6782;--line:#e3e7ef;--bg:#f5f7fb;--card:#fff;--radius:14px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
header.top{background:var(--blue-d);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(0,0,0,.15)}
header.top .wrap{display:flex;align-items:center;gap:18px;min-height:64px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;letter-spacing:.3px;font-size:19px}.brand:hover{text-decoration:none}
.brand img{width:44px;height:44px}
nav.main{display:flex;gap:4px;flex-wrap:wrap;flex:1}
nav.main a,.navbtn{color:#dfe8f6;padding:8px 11px;border-radius:8px;font-weight:600;font-size:15px;background:none;border:0;cursor:pointer;font-family:inherit}
nav.main a:hover,nav.main a.on,.navbtn:hover{background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.userbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.userbox img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid #fff}
#navtoggle{display:none}
@media (max-width:860px){#navtoggle{display:block;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:6px 10px;font-size:18px}
 nav.main,.userbox{display:none;width:100%;flex-direction:column;padding-bottom:12px}
 body.nav-open nav.main,body.nav-open .userbox{display:flex}}
.hero{background:linear-gradient(120deg,var(--blue-d),var(--blue) 55%,var(--red));color:#fff;padding:56px 0}
.hero .wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center}
.hero h1{font-size:44px;line-height:1.1;margin:0 0 12px}.hero p{font-size:18px;opacity:.93;margin:0 0 22px;max-width:560px}
.hero img{max-width:300px;margin-left:auto;filter:drop-shadow(0 10px 30px rgba(0,0,0,.35))}
@media (max-width:760px){.hero .wrap{grid-template-columns:1fr}.hero img{max-width:180px;margin:0 auto}.hero h1{font-size:32px}}
main{padding:30px 0 60px}
h1.page{font-size:30px;margin:0 0 6px}.sub{color:var(--muted);margin:0 0 24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.card h2,.card h3{margin-top:0}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.cols{display:grid;grid-template-columns:2fr 1fr;gap:22px}@media (max-width:860px){.cols{grid-template-columns:1fr}}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;color:inherit}
.tile:hover{text-decoration:none;box-shadow:0 6px 22px rgba(11,92,173,.13)}
.tile .img{aspect-ratio:16/9;background:#dbe4f3 center/cover no-repeat;display:flex;align-items:center;justify-content:center}
.tile .img.ph{background:linear-gradient(135deg,var(--blue),var(--red))}.tile .img.ph img{width:70px;opacity:.9}
.tile .body{padding:14px 16px}.tile h3{margin:0 0 4px;font-size:17px}
.meta{color:var(--muted);font-size:14px}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;background:#e9effa;color:var(--blue-d)}
.pill.red{background:#fde7ed;color:var(--red-d)}.pill.green{background:#e3f6ea;color:#17703a}.pill.gray{background:#eceef3;color:#566}
.btn{display:inline-block;background:var(--red);color:#fff;border:0;border-radius:10px;padding:10px 18px;font-weight:700;font-size:15px;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--red-d);text-decoration:none}.btn.blue{background:var(--blue)}.btn.blue:hover{background:var(--blue-d)}
.btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--line)}.btn.small{padding:6px 12px;font-size:13px}.btn.light{background:#fff;color:var(--blue-d)}
form.inline{display:inline}
label{display:block;font-weight:600;font-size:14px;margin:0 0 5px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=url],input[type=search],select,textarea{width:100%;padding:10px 12px;border:1px solid #cfd6e4;border-radius:10px;font:inherit;background:#fff}
textarea{min-height:110px}
.field{margin-bottom:14px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:600px){.row2,.row3{grid-template-columns:1fr}}
.err{color:var(--red-d);font-size:13px;margin-top:4px}
.flash{background:#e3f6ea;border:1px solid #b5e3c5;color:#17572f;padding:12px 16px;border-radius:10px;margin-bottom:20px}
.flash.bad{background:#fde7ed;border-color:#f5bccb;color:#8a0f30}
table.t{width:100%;border-collapse:collapse;font-size:15px}
table.t th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:8px;border-bottom:2px solid var(--line)}
table.t td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.tscroll{overflow-x:auto}
.corner{font-weight:700;border-radius:8px;padding:6px 10px;display:inline-block}
.corner.red{background:#fde7ed;color:var(--red-d)}.corner.blue{background:#e4eefb;color:var(--blue-d)}
.vs{color:var(--muted);font-weight:800;font-size:12px}
.bout{display:grid;grid-template-columns:54px 1fr 30px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.bout .num{font-weight:800;font-size:20px;color:var(--blue-d);text-align:center}
@media (max-width:640px){.bout{grid-template-columns:40px 1fr}.bout .vs{display:none}.bout>*:nth-child(n+3){grid-column:2}}
.win::after{content:" 🏆"}
.avatar{border-radius:50%;object-fit:cover}
.post{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.post:last-child{border:0}
.post img.avatar{width:42px;height:42px;flex:none}
.post .img{margin-top:8px;border-radius:10px;max-height:380px;object-fit:cover}
.stats{display:flex;gap:28px;flex-wrap:wrap;margin-top:22px}.stats b{display:block;font-size:28px}
.profile-head{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.profile-head img{width:110px;height:110px}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.photos img{aspect-ratio:1;object-fit:cover;border-radius:10px;width:100%}
footer{background:var(--ink);color:#aab3c8;padding:30px 0;font-size:14px}footer a{color:#fff}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.pager a,.pager span{padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
@media print{header.top,footer,.noprint{display:none!important}body{background:#fff}.card{border:0;padding:0}}
/* social */
.social{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.sbtn{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:4px 12px;font-family:inherit;font-weight:600;font-size:13px;line-height:1.4;cursor:pointer}
.sbtn:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}.sbtn.on{background:#fde7ed;border-color:#f5bccb;color:var(--red-d)}
.comments{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.comment{display:flex;gap:10px;padding:8px 0}.comment img.avatar{width:32px;height:32px;flex:none}
.comment .cb{background:#f1f4f9;border-radius:12px;padding:8px 12px;display:inline-block;max-width:100%;white-space:pre-line;word-wrap:break-word}
.replies{margin-left:42px;border-left:2px solid var(--line);padding-left:10px}
.cform{display:flex;gap:8px;margin-top:6px}.cform input{flex:1}
.linkbtn{background:none;border:0;padding:0;color:var(--muted);font-family:inherit;font-weight:600;font-size:12px;cursor:pointer}.linkbtn:hover{color:var(--blue)}
.mention{font-weight:700}
.shared{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px;background:#fafbfd}
.badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:99px;background:var(--red);color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center;margin-left:2px}
.iconlink{position:relative;color:#fff;font-size:19px;padding:6px 8px;border-radius:8px}.iconlink:hover{background:rgba(255,255,255,.12);text-decoration:none}
.iconlink .badge{position:absolute;top:-2px;right:-4px}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.notif{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.notif.unread{background:#f3f7fe;margin:0 -20px;padding:12px 20px}
.thread{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto;padding:6px 2px}
.bubble{max-width:75%;padding:9px 13px;border-radius:16px;background:#eef2f8;white-space:pre-line;word-wrap:break-word}
.bubble.me{align-self:flex-end;background:var(--blue);color:#fff}.bubble .meta{font-size:11px}.bubble.me .meta{color:#d6e4f7}
details.inline-menu summary{list-style:none;cursor:pointer}details.inline-menu summary::-webkit-details-marker{display:none}

@media (min-width:861px) and (max-width:1240px){nav.main a{padding:8px 7px;font-size:14px}.brand{font-size:17px}}
.brand{white-space:nowrap}
nav.main{flex-wrap:nowrap}@media (max-width:860px){nav.main{flex-wrap:wrap}}
nav.main a{white-space:nowrap}
/* brackets & rings */
.bracketbox{margin:10px 0 22px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.bracket{display:flex;gap:22px;overflow-x:auto;padding:12px 2px}
.bround{display:flex;flex-direction:column;min-width:200px;flex:1}
.bround-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b);margin-bottom:8px;text-align:center}
.bround-m{display:flex;flex-direction:column;justify-content:space-around;flex:1;gap:12px}
.bmatch{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.bmatch.bye{border-style:dashed;background:#f8fafc}
.bslot{display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:4px solid transparent;font-size:14px}
.bslot+.bslot{border-top:1px solid var(--line)}
.bslot.red{border-left-color:#e11d48}.bslot.blue{border-left-color:#1d4ed8}
.bslot.won{font-weight:700;background:#f0fdf4}.bslot.lost{color:#94a3b8}
.bseed{font-size:11px;font-weight:700;min-width:16px;color:#64748b}
.bname{flex:1;line-height:1.2}.bname small{display:block;font-size:11px;font-weight:400;color:#64748b}.bname.muted{color:#94a3b8;font-style:italic}
.bwin{font-size:11px;background:#16a34a;color:#fff;border-radius:4px;padding:1px 5px}
.bref{font-size:11px;color:#64748b;padding:3px 10px;background:#f8fafc;border-top:1px solid var(--line)}
.seedform{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin:10px 0}
.seedform input{width:56px;padding:4px 6px;margin-right:6px}.seedform .actions{grid-column:1/-1}
.ringgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.ringcol h2{margin-top:0}
.rrow{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.rrow>b{min-width:22px;font-size:18px}
.corner.small{font-size:12px;padding:2px 8px}
.conflict{background:#fff7ed;outline:2px solid #fb923c;border-radius:8px}
.movef{margin-top:6px;gap:6px}.movef input{width:58px;padding:3px 6px}.movef label{font-size:12px}
@media print{.bracket{overflow:visible}.ringpage{page-break-after:always}.ringpage:last-child{page-break-after:auto}}

/* large brackets (16+ slots) */
.bracket.compact{gap:14px}
.bracket.compact .bround{min-width:168px}
.bracket.compact .bround-m{gap:5px}
.bracket.compact .bmatch{border-radius:7px}
.bracket.compact .bslot{padding:2px 7px;font-size:12px;gap:6px;line-height:1.35}
.bracket.compact .bslot small{display:none}
.bracket.compact .bref{font-size:10px;padding:1px 7px}
.bracket.compact .bmatch.bye{opacity:.85}
@media print{@page{size:landscape;margin:10mm}.bracket.compact{zoom:.62;gap:8px}.bracket.compact .bmatch{box-shadow:none;break-inside:avoid}.seedtable{break-before:page}}
.bracket.compact .bname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.bref .swapf{float:right}.bswap{border:0;background:none;color:#1d4ed8;font:inherit;font-size:inherit;cursor:pointer;padding:0}.bswap:hover{text-decoration:underline}
.swapf{margin-left:4px}

/* bracket winner picker (host/mods/admins) */
.bmatch.haspick{display:flex;align-items:stretch}
.bmatch.haspick .bslots{flex:1;min-width:0}
.bpick{display:flex;align-items:center;padding:0 4px;background:#f8fafc;border-right:1px solid var(--line)}
.bpick select{width:auto;padding:2px 2px;font-size:12px;border-radius:6px;min-width:52px;height:auto}
.bpick select:disabled{opacity:.45;cursor:not-allowed}
.bracket.compact .bpick{padding:0 2px}.bracket.compact .bpick select{font-size:11px;min-width:44px;padding:1px}
.bracket.compact .bround{min-width:190px}
@media (max-width:640px){.bpick select{font-size:11px;min-width:42px}}
@media print{.bpick{display:none!important}.bmatch.haspick{display:block}}
.bracketbox{scroll-margin-top:110px}

/* update6: land on the same bout after an action */
.bout,.rrow,.bmatch,#boutsheet{scroll-margin-top:110px}
@keyframes boutflash{0%,30%{box-shadow:0 0 0 3px #f5b301;background-color:#fff7d6}100%{box-shadow:0 0 0 0 transparent}}
.bout:target,.rrow:target,.bmatch:target{animation:boutflash 2.2s ease-out}
@media print{.bout:target,.rrow:target,.bmatch:target{animation:none}}

/* update7: drag-and-drop fight card */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fslot{min-width:0}
.fcard[data-drag]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:box-shadow .15s,transform .15s,outline-color .15s;outline:2px solid transparent;outline-offset:2px}
.fcard[data-drag]:focus-visible{outline-color:var(--blue-d)}
.fcard.empty{opacity:.75;border:1px dashed currentColor}
.fc-dragging .fcard.fc-target{outline:2px dashed #94a3b8}
.fcard.fc-target.fc-comparable{outline:2px solid #16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.15)}
.fcard.fc-target.fc-replace{outline:2px dashed #dc2626}
.fcard.fc-target.fc-replace.fc-comparable{outline-style:solid}
.fcard.fc-hover{transform:scale(1.06);box-shadow:0 4px 14px rgba(0,0,0,.18)}
.fcard.fc-target.fc-replace.fc-hover::after{content:" ⇆ Replace";font-size:11px;font-weight:800;color:#dc2626}
.fcard.fc-target:not(.fc-replace).fc-hover::after{content:" ⇄ Swap";font-size:11px;font-weight:800;color:#16a34a}
.fcard.fc-source,.fcard.fc-picked{opacity:.55;outline:2px solid var(--blue-d)}
.fcard.pending{opacity:.6}
.fc-ghost{position:fixed;left:0;top:0;z-index:100;pointer-events:none;opacity:.9;box-shadow:0 10px 24px rgba(0,0,0,.25);transform-origin:0 0}
@keyframes fcsnap{0%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}100%{transform:none}}
.fcard.snap{animation:fcsnap .35s}
.bout.has-mismatch{background:linear-gradient(90deg,#fff7e6,transparent 60%);box-shadow:inset 4px 0 0 #f59e0b}
.bout.has-review:not(.has-mismatch){box-shadow:inset 4px 0 0 #a78bfa}
.fcwarns{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.fcwarn{position:relative}
.fcwarn summary{list-style:none;cursor:pointer;font-weight:700;font-size:12px;border-radius:999px;padding:2px 8px;display:inline-block}
.fcwarn summary::-webkit-details-marker{display:none}
.fcwarn.mismatch summary{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}
.fcwarn.review summary{background:#ede9fe;color:#5b21b6;border:1px solid #a78bfa}
.fcwarn ul{display:none;position:absolute;right:0;z-index:30;min-width:260px;max-width:340px;margin:4px 0 0;padding:8px 10px 8px 24px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 20px rgba(0,0,0,.12);color:#1f2937;font-size:12px;text-align:left}
.fcwarn[open] ul{display:block}
.fc-tools{gap:6px;align-items:center}
.fc-save{font-size:12px;font-weight:700;min-width:84px;text-align:right}
.fc-save.saving{color:#b45309}.fc-save.saved,.fc-save.idle{color:#15803d}.fc-save.failed{color:#b91c1c}
.fc-pools{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.fc-pool{border:1px dashed var(--line);border-radius:12px;padding:10px}
.fc-pool h3{margin:0 0 8px;font-size:14px}
.fc-list{display:flex;flex-wrap:wrap;gap:6px}
.fcard.avail{display:inline-flex;flex-direction:column;background:#f1f5f9;border-radius:8px;padding:6px 10px;font-weight:700;font-size:13px}
.fcard.avail small{font-weight:500;color:#64748b;font-size:11px}
.fcard.unavail{background:#fef2f2;color:#7f1d1d}
.fc-disclaimer{font-size:12px;margin-top:10px}
#fc-reason{border:none;border-radius:14px;padding:18px;max-width:420px;width:92vw;box-shadow:0 20px 50px rgba(0,0,0,.3)}
#fc-reason::backdrop{background:rgba(15,23,42,.45)}
@media (max-width:640px){.fc-pools{grid-template-columns:1fr}.fcwarn ul{left:0;right:auto}.fc-tools{flex-wrap:wrap}}
@media print{.fc-pools,.fc-tools,.fc-help,.fc-disclaimer,.fcwarns{display:none!important}.bout.has-mismatch,.bout.has-review{background:none;box-shadow:none}}

/* update8: staging area, empty slots, Stage buttons */
.fc-staging{border:2px dashed #cbd5e1;border-radius:14px;padding:10px 12px;margin:0 0 14px;background:#f8fafc;transition:background .15s,border-color .15s}
.fc-staging h3{margin:0 0 4px;font-size:15px}
.fc-staging .fc-zone-hint{margin:0 0 8px;font-size:12px}
.fc-staging.fc-target{border-color:#f59e0b;background:#fffbeb}
.fc-staging.fc-hover{border-style:solid;background:#fef3c7;box-shadow:0 0 0 4px rgba(245,158,11,.2)}
.fc-staging .fc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.fc-staged{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:5px}
.fc-staged.is-staged{border-color:#fcd34d}
.fc-staged .fcard.avail{width:100%;box-sizing:border-box}
.fc-staged-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px}
.pill.orange{background:#ffedd5;color:#9a3412}
.fc-staged-actions{display:flex;flex-wrap:wrap;gap:4px}
.fc-reason-inline{font-size:12px;padding:3px 6px;width:auto}
.fc-assign{display:flex;gap:4px;flex-wrap:wrap}
.fc-assign select{font-size:12px;padding:4px 6px;flex:1;min-width:0}
.fslot{position:relative}
.fc-stage{margin-left:6px;font-size:11px;font-weight:700;border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:999px;padding:2px 8px;cursor:pointer;vertical-align:middle}
.fc-stage:hover,.fc-stage:focus-visible{border-color:#f59e0b;color:#92400e;background:#fffbeb}
.fcard.empty{font-style:italic;font-weight:600;opacity:.8;background:repeating-linear-gradient(135deg,#f8fafc 0 8px,#f1f5f9 8px 16px)!important;color:#64748b!important;border:1px dashed #94a3b8}
.fc-dragging .fcard.empty.fc-target{outline:2px solid #16a34a;opacity:1}
.fcard.fc-target.empty.fc-hover::after{content:" ← Assign";font-size:11px;font-weight:800;color:#16a34a}
.fcard.fc-target.fc-replace.fc-hover::after{content:" ⇆ Replace?"}
.fcard.fc-target:not(.fc-replace):not(.empty).fc-hover::after{content:""}
.fc-choices{flex-wrap:wrap}
@media (max-width:640px){.fc-staging .fc-list{grid-template-columns:1fr}}
.fc-assign[hidden]{display:none}
.fc-staged{min-width:0}.fc-staged select{max-width:100%}
/* update 9: tournament brackets share the fight-card editing */
.bslot .bname.fcard{flex:1;min-width:0;border-radius:6px;padding:2px 4px;margin:-2px 0}
.bslot .bname.fcard.empty{border:1px dashed #94a3b8;color:#64748b;font-style:italic;opacity:1}
.bslot .fc-stage{font-size:11px;padding:1px 6px}
.bwarn{font-size:11.5px;color:#9a3412;background:#fff7ed;border-top:1px solid #fed7aa;padding:3px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbye{padding:4px 8px;border-top:1px solid var(--line)}
.bbye .btn{font-size:12px;padding:3px 8px;white-space:normal}
.alert.warn{background:#fff7ed;border:1px solid #fdba74;color:#7c2d12}
.bnotice{font-size:13.5px}
.imp-table{font-size:12.5px;border-collapse:collapse;width:100%}
.imp-table td,.imp-table th{border:1px solid var(--line);padding:3px 6px;text-align:left;vertical-align:top}
.imp-table tr.bad{background:#fef2f2}.imp-table tr.dupe{background:#fff7ed}
.imp-table .err{color:#b91c1c;font-weight:600}.imp-table .wrn{color:#9a3412}
.imp-wrap{overflow-x:auto;max-width:100%}
.imp-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.cols>*{min-width:0} /* u9: keep wide bracket trees scrolling inside their card on phones */
/* u10: members advanced search, boxer cards, weight-class directory, Find Opponent */
.flash.warn{background:#fff7e6;border-color:#f5c26b;color:#7a4b00}
.search-card{padding:14px 16px}.adv summary{cursor:pointer;font-weight:700;color:var(--blue-d);margin:4px 0 10px}
.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 14px}
.filters .range{display:flex;gap:6px;align-items:center}.filters .range input{min-width:0}
.bcard .bc-head{display:flex;gap:12px;align-items:center}.bcard .bc-head .avatar{width:52px;height:52px;flex:none}
.bcard h3 a{color:inherit}
.bc-facts{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 8px;font-size:14px}.bc-facts b{color:var(--muted);font-weight:600;margin-right:3px}
.bc-actions{margin-top:10px}.avail{margin-top:2px}
.wc-link{text-decoration:none}.wc-link:hover{background:var(--blue);color:#fff;text-decoration:none}.wc-n{background:#fff;color:var(--blue-d);border-radius:99px;padding:0 6px;margin-left:3px}
.table-wrap{overflow-x:auto;padding:0}.dir{width:100%;border-collapse:collapse}.dir th,.dir td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}
@media (max-width:700px){.dir thead{display:none}.dir tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.dir td{display:flex;justify-content:space-between;border:0;padding:4px 12px}.dir td[data-l]::before{content:attr(data-l);color:var(--muted);font-weight:600;margin-right:10px}}
.opp-subject{display:flex;gap:16px;align-items:center}.opp-subject .avatar{width:72px;height:72px;flex:none}
.disclaimer{margin-bottom:18px}
.opp-group{margin-top:22px}.opp-group h2{display:flex;gap:8px;align-items:center}
.bcard.opp.best{border-top:4px solid #17703a}.bcard.opp.possible{border-top:4px solid #f59e0b}.bcard.opp.other{border-top:4px solid var(--red)}
.warn-list{list-style:none;padding:0;margin:8px 0 0;font-size:13px;color:#566}.warn-list li{margin:2px 0}.warn-list li.mis{color:var(--red-d)}
.stage-form{display:flex;gap:6px;margin-top:8px}.stage-form select{flex:1;min-width:0}
.btn.find-opp{font-size:16px;padding:11px 20px}
@media (max-width:600px){.opp-subject{align-items:flex-start}.profile-head .actions .find-opp{width:100%;text-align:center}}
