/* ---------- Pitch surface --------------------------------------------------- */
.pitch-wrap {
    --team-primary:#1b4db3;
    --team-secondary:#f2c200;
    --grass-a:#1a7a3a;
    --grass-b:#136a30;
    --line:rgba(255,255,255,.78);
    --surround:#0b2440;
    --gold:#f2c200;
    --pitch-aspect:1.544;
    position:relative;
    width:100%;
    max-width:1100px;
    margin:0 auto;
    border-radius:18px;
    background:linear-gradient(180deg,#082043,#061a37 60%,#06142e);
    border:2px solid var(--gold);
    box-shadow:0 20px 60px -22px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.04);
    padding:14px;
    aspect-ratio:var(--pitch-aspect);
    isolation:isolate;
}
.pitch-wrap.pitch-netball { --grass-a:#8b4a1f; --grass-b:#6c3617; }
.pitch-wrap.pitch-volleyball { --grass-a:#174a9b; --grass-b:#0e2f66; --line:rgba(255,255,255,.9); }
.pitch-wrap.pitch-kho-kho { --grass-a:#d6c48b; --grass-b:#b7a267; --line:rgba(40,24,10,.85); }

.pitch-svg {
    position:absolute;
    inset:14px;
    width:calc(100% - 28px);
    height:calc(100% - 28px);
    border-radius:10px;
    display:block;
    pointer-events:none;
}

.pitch-players {
    position:absolute;
    inset:14px;
    width:calc(100% - 28px);
    height:calc(100% - 28px);
    z-index:2;
}

/* ---------- Player chip ----------------------------------------------------- */
.pp {
    position:absolute;
    transform:translate(-50%,-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    width:68px;
    gap:4px;
    user-select:none;
    touch-action:none;
}
.pp-shirt {
    position:relative;
    width:46px;
    height:46px;
    border-radius:50%;
    background:var(--team-primary);
    border:2px solid var(--gold);
    overflow:visible;
    box-shadow:0 6px 14px -6px rgba(0,0,0,.6), 0 0 0 2px rgba(0,0,0,.25);
}
.pp-shirt img { width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }
.pp-initials {
    display:flex;align-items:center;justify-content:center;
    width:100%;height:100%;border-radius:50%;
    color:#fff; font:800 15px/1 'Inter',system-ui,-apple-system,sans-serif;
    letter-spacing:.3px;
    background:linear-gradient(180deg,var(--team-primary),color-mix(in oklab, var(--team-primary) 70%, #000));
}
.pp-no {
    position:absolute; top:-6px; right:-8px;
    min-width:22px; height:22px; padding:0 5px;
    display:flex;align-items:center;justify-content:center;
    background:var(--gold); color:#0a1a3b;
    font:800 12px/1 'Inter',system-ui,sans-serif;
    border-radius:11px;
    border:2px solid #0a1a3b;
    box-shadow:0 2px 6px rgba(0,0,0,.4);
}
.pp-cap {
    position:absolute; bottom:-6px; left:-6px;
    width:20px; height:20px;
    display:flex;align-items:center;justify-content:center;
    background:#ffd54d; color:#1b1b1b;
    border:2px solid #0a1a3b; border-radius:50%;
    font:900 11px/1 'Inter',system-ui,sans-serif;
    box-shadow:0 2px 6px rgba(0,0,0,.5);
}
.pp.no-licence .pp-shirt { border-color:#e55; filter:saturate(.5); }
.pp.no-licence::after {
    content:'!'; position:absolute; top:-10px; left:-6px; z-index:3;
    width:18px;height:18px;border-radius:50%;background:#e03a3a;color:#fff;
    display:flex;align-items:center;justify-content:center;
    font:900 11px/1 'Inter',sans-serif; border:2px solid #0a1a3b;
}
.pp-foot {
    display:flex;flex-direction:column;align-items:center;line-height:1;
    text-align:center;
}
.pp-pos {
    display:inline-block;padding:1px 6px;
    background:rgba(0,0,0,.55); color:#fff;
    font:800 9px/1.4 'Inter',sans-serif;letter-spacing:1px;
    border-radius:4px; text-transform:uppercase;
}
.pp-name {
    margin-top:3px;color:#fff; max-width:84px;
    font:700 11px/1.1 'Inter',sans-serif;
    text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.6);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ---------- Editor layout --------------------------------------------------- */
.lineup-grid {
    display:grid;
    grid-template-columns: minmax(0, 1fr);
    gap:24px;
}
@media (min-width: 992px) {
    .lineup-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
}
.lineup-side {
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:14px;
    padding:16px;
}
.lineup-head {
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
    margin-bottom:10px;
}
.lineup-head h2 { margin:0; font-weight:800; }
.formation-badge {
    display:inline-flex;align-items:center;gap:6px;
    padding:4px 10px;background:#0b2a6f;color:#fff;border-radius:999px;
    font:800 12px/1.4 'Inter',sans-serif;letter-spacing:1px;
}

.squad-list {
    display:flex;flex-direction:column;gap:6px;
    max-height:620px; overflow:auto;
    padding-right:4px;
}
.squad-row {
    display:flex;align-items:center;gap:10px;
    padding:6px 8px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;
    cursor:grab; transition: box-shadow .15s, transform .15s;
}
.squad-row:hover { box-shadow:0 2px 10px rgba(0,0,0,.08); }
.squad-row[data-slot="start"] { border-left:4px solid #0b2a6f; }
.squad-row[data-slot="bench"] { border-left:4px solid #94a3b8; }
.squad-row[data-slot="off"]   { border-left:4px solid transparent; opacity:.65; }
.squad-row.is-cap { background:linear-gradient(90deg,#fff8dc,#fff); }
.squad-row .no {
    display:inline-flex;align-items:center;justify-content:center;
    width:28px;height:28px;border-radius:50%;background:#0b2a6f;color:#fff;
    font:800 11px/1 'Inter',sans-serif;flex-shrink:0;
}
.squad-row .nm { flex:1; min-width:0; }
.squad-row .nm b { display:block; font-size:13px; }
.squad-row .nm small { color:#64748b; font-size:11px; }
.squad-row select { padding:4px 6px; border:1px solid #cbd5e1; border-radius:6px; font-size:12px; min-width:70px; }
.squad-row button {
    border:1px solid #cbd5e1; background:#fff; border-radius:6px;
    padding:4px 8px; font-size:11px; cursor:pointer;
}
.squad-row button.on { background:#0b2a6f; color:#fff; border-color:#0b2a6f; }
.squad-row .cap-btn.on { background:#f2c200; color:#1b1b1b; border-color:#c89900; }

.lineup-actions {
    display:flex;flex-wrap:wrap;gap:8px;
    margin-top:14px;align-items:center;justify-content:flex-end;
}
.lineup-count {
    margin-right:auto;font-weight:600;color:#334155;
}
.lineup-count .ok { color:#0a7f3a; }
.lineup-count .bad { color:#b42318; }

/* ---------- Read-only team sheet (admin / public) -------------------------- */
.sheet {
    background:linear-gradient(180deg,#0b2a6f,#071a46);
    color:#fff;
    border-radius:16px;
    padding:16px;
    border:1px solid rgba(255,255,255,.06);
}
.sheet-head {
    display:flex;align-items:center;gap:12px;
    margin-bottom:12px;
}
.sheet-head .badge-dot {
    width:44px;height:44px;border-radius:12px;
    background:var(--team-primary,#1b4db3);
    display:flex;align-items:center;justify-content:center;
    color:#fff; font:800 16px/1 'Inter',sans-serif;
    border:2px solid var(--team-secondary,#f2c200);
}
.sheet-head h3 { margin:0; font-weight:800; color:#fff !important; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.sheet-head .meta { font-size:12px; opacity:.75; }
.sheet-bench {
    margin-top:14px;background:rgba(0,0,0,.25);border-radius:10px;padding:10px;
}
.sheet-bench h5 { font-size:12px; letter-spacing:1.2px; text-transform:uppercase; opacity:.7; margin:0 0 8px; }
.sheet-bench ul { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px; }
.sheet-bench li {
    display:inline-flex; align-items:center; gap:6px;
    background:rgba(255,255,255,.08); padding:4px 10px; border-radius:999px;
    font-size:12px;
}
.sheet-bench li b { color:var(--team-secondary,#f2c200); }

.lineup-dual {
    display:grid;gap:18px;grid-template-columns:1fr;
}
@media (min-width: 1180px) {
    .lineup-dual { grid-template-columns: 1fr 1fr; }
}

/* ---------- Public hero over match ---------------------------------------- */
.match-strip {
    background:linear-gradient(135deg,#071a46,#0b2a6f);color:#fff;
    border-radius:18px;padding:18px 20px;margin-bottom:18px;
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    border:1px solid rgba(255,255,255,.08);
}
.match-strip .side { display:flex; align-items:center; gap:12px; }
.match-strip .side b { font-size:1.2rem; }
.match-strip .vs { font:900 14px/1 'Inter',sans-serif; letter-spacing:3px; opacity:.65; }

/* ---------- Mobile tuning --------------------------------------------------- */
@media (max-width: 640px) {
    .pitch-wrap { padding:8px; border-radius:12px; }
    .pitch-svg, .pitch-players { inset:8px; width:calc(100% - 16px); height:calc(100% - 16px); }
    .pp { width:48px; }
    .pp-shirt { width:34px; height:34px; }
    .pp-initials { font-size:12px; }
    .pp-no { min-width:16px; height:16px; font-size:9px; top:-4px; right:-6px; }
    .pp-cap { width:14px; height:14px; font-size:9px; bottom:-4px; left:-4px; }
    .pp-name { font-size:10px; max-width:64px; }
    .pp-pos { font-size:8px; padding:1px 4px; }
    .lineup-grid { gap:14px; }
    .squad-list { max-height:360px; }
}

/* ---------- Line-up view modes: photos (default) / numbers / no field --------- */
.pitch-modes{position:absolute;top:-1px;right:10px;transform:translateY(-50%);z-index:6;display:flex;gap:2px;background:#0a1a3b;border:2px solid var(--gold);border-radius:99px;padding:2px}
.pitch-modes button{border:0;background:transparent;color:#cfe0ff;font:700 11px/1 'Inter',sans-serif;padding:6px 10px;border-radius:99px;cursor:pointer;white-space:nowrap}
.pitch-modes button.on{background:var(--gold);color:#0a1a3b}
.pp-row{display:contents}
.pp-bignum{display:none}
/* photos: bigger photo circles with a white name tag, like a broadcast graphic */
.pitch-wrap[data-mode=photos] .pp{width:96px}
.pitch-wrap[data-mode=photos] .pp-shirt{width:58px;height:58px;border:3px solid #fff}
.pitch-wrap[data-mode=photos] .pp-name{background:#fff;color:#0a1a3b;text-shadow:none;padding:2px 8px;border-radius:3px;font-weight:800;text-transform:uppercase;font-size:11px;max-width:96px}
/* numbers: the registered shirt number is the marker */
.pitch-wrap[data-mode=numbers] .pp-shirt{width:52px;height:52px;background:var(--team-primary);border:3px solid #fff}
.pitch-wrap[data-mode=numbers] .pp-shirt img,.pitch-wrap[data-mode=numbers] .pp-initials,.pitch-wrap[data-mode=numbers] .pp-no{display:none}
.pitch-wrap[data-mode=numbers] .pp-bignum{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font:900 24px/1 'Inter',sans-serif}
.pitch-wrap[data-mode=numbers] .pp-name{background:#fff;color:#0a1a3b;text-shadow:none;padding:2px 8px;border-radius:3px;font-weight:800;text-transform:uppercase;font-size:11px}
/* no field: clean cards in rows by line, goalkeeper first */
.pitch-wrap[data-mode=plain]{aspect-ratio:auto;background:#fff;border:2px solid #d7deea;box-shadow:none;padding:18px 12px 12px}
.pitch-wrap[data-mode=plain] .pitch-svg{display:none}
.pitch-wrap[data-mode=plain] .pitch-players{position:static;width:auto;height:auto;display:flex;flex-direction:column;gap:18px;padding-top:6px}
.pitch-wrap[data-mode=plain] .pp-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.pitch-wrap[data-mode=plain] .pp{position:static;transform:none;width:100px}
.pitch-wrap[data-mode=plain] .pp-shirt{width:60px;height:60px;border:3px solid var(--team-primary)}
.pitch-wrap[data-mode=plain] .pp-name{color:#0a1a3b;text-shadow:none;font-weight:800}
.pitch-wrap[data-mode=plain] .pp-pos{background:var(--team-primary)}
@media (max-width:640px){
  .pitch-wrap[data-mode=photos] .pp{width:60px}.pitch-wrap[data-mode=photos] .pp-shirt{width:38px;height:38px;border-width:2px}.pitch-wrap[data-mode=photos] .pp-name{font-size:9px;padding:1px 4px;max-width:62px}
  .pitch-wrap[data-mode=numbers] .pp-shirt{width:36px;height:36px}.pitch-wrap[data-mode=numbers] .pp-bignum{font-size:17px}.pitch-wrap[data-mode=numbers] .pp-name{font-size:9px;padding:1px 4px}
  .pitch-wrap[data-mode=plain] .pp{width:70px}.pitch-wrap[data-mode=plain] .pp-shirt{width:44px;height:44px}
  .pitch-modes button{padding:5px 7px;font-size:10px}
}
@media print{.pitch-modes{display:none}}

/* ---------- Display options (photo / name / jersey no. / position) ------------- */
.pitch-opts{position:absolute;left:10px;bottom:-1px;transform:translateY(50%);z-index:6;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#0a1a3b;border:2px solid var(--gold);border-radius:99px;padding:5px 12px;color:#cfe0ff;font:700 11px/1 'Inter',sans-serif}
.pitch-opts label{display:flex;gap:4px;align-items:center;cursor:pointer;margin:0;white-space:nowrap}
.pitch-opts .po-lbl{color:var(--gold)}
.pitch-opts .po-orient{border:0;background:var(--gold);color:#0a1a3b;font:800 11px/1 'Inter',sans-serif;padding:5px 10px;border-radius:99px;cursor:pointer}
.pitch-wrap[data-pos="0"] .pp-pos{display:none}
.pitch-wrap[data-pos="1"] .pp-pos{display:inline-block}
.pitch-wrap[data-name="0"] .pp-name{display:none}
.pitch-wrap[data-no="0"] .pp-no,.pitch-wrap[data-no="0"] .pp-bignum{display:none!important}
.pitch-wrap[data-photo="0"] .pp-shirt img{display:none}
.pitch-wrap[data-photo="0"][data-no="1"]:not([data-mode=numbers]) .pp-bignum{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font:900 20px/1 'Inter',sans-serif}
.pitch-wrap[data-mode=numbers][data-photo="0"] .pp-shirt img{display:none}
.pitch-wrap{margin-bottom:34px}
/* ---------- Orientation: landscape (default) or upright ------------------------ */
.pitch-svg.pitch-v{display:none}
.pitch-wrap[data-orient=v] .pitch-svg.pitch-h{display:none}
.pitch-wrap[data-orient=v] .pitch-svg.pitch-v{display:block}
.pitch-wrap[data-orient=v]{aspect-ratio:var(--pitch-aspect-v);max-width:620px}
.pitch-wrap[data-orient=v] .pp{left:calc(100% - var(--py))!important;top:var(--px)!important}
.pitch-wrap[data-mode=plain]{margin-bottom:34px}
.pitch-wrap[data-mode=plain][data-orient=v]{aspect-ratio:auto;max-width:1100px}
.pitch-wrap[data-mode=plain] .pitch-svg.pitch-v,.pitch-wrap[data-mode=plain] .pitch-svg.pitch-h{display:none}
.pitch-wrap[data-mode=plain][data-orient=v] .pp{left:auto!important;top:auto!important}
@media (max-width:640px){.pitch-opts{gap:6px;padding:5px 8px;font-size:10px}.pitch-wrap[data-orient=v]{max-width:100%}}
@media print{.pitch-opts{display:none}}

/* ---------- Field themes (picked from the Theme menu; remembered per browser) ---------- */
.pitch-wrap[data-theme=night]{--grass-a:#0e2a3a;--grass-b:#0a1f2c;--line:rgba(127,227,255,.88);background:linear-gradient(180deg,#02070d,#050d18)}
.pitch-wrap[data-theme=team]{--grass-a:color-mix(in srgb,var(--team-primary) 62%,#000);--grass-b:color-mix(in srgb,var(--team-primary) 45%,#000);--line:rgba(255,255,255,.9)}
.pitch-wrap[data-theme=chalk]{--grass-a:#262b33;--grass-b:#1d2128;--line:rgba(255,255,255,.88);background:linear-gradient(180deg,#14171c,#0e1115)}
.pitch-wrap[data-theme=light]{--grass-a:#f1f4f9;--grass-b:#e3e9f2;--line:rgba(60,80,120,.85);background:#fff;border-color:#cfd8e6;box-shadow:0 10px 30px -18px rgba(15,42,92,.35)}
.pitch-wrap[data-theme=sunrise]{--grass-a:#c2571a;--grass-b:#9b3f0e;--line:rgba(255,241,208,.92);background:linear-gradient(180deg,#3b1204,#2a0c03)}
.pitch-wrap[data-theme=royal]{--grass-a:#0f2a5c;--grass-b:#0a1f45;--line:rgba(242,194,0,.92)}
.pitch-wrap[data-theme=light] .pitch-modes button,.pitch-wrap[data-theme=light] .pitch-opts{color:#0f2a5c}
.po-theme{display:inline-flex;align-items:center;gap:4px;margin:0}
.po-theme select{font-size:12px;padding:2px 4px;border-radius:6px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:inherit}
.po-theme select option{color:#111}

/* ---------- Printing the normal line-ups page (Ctrl+P): keep colours, drop the admin chrome ---------- */
@media print {
    @page { size: A4 landscape; margin: 6mm; }
    html, body, .sheet, .sheet *, .pitch-wrap, .pitch-wrap * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .adm-side, .adm-top, .no-print, .btn, form, header.d-flex { display: none !important; }
    .adm { display: block !important; }
    .adm-content, .admin-page { padding: 0 !important; margin: 0 !important; }
    .lineup-dual { display: block !important; }
    .sheet { break-after: page; page-break-after: always; break-inside: avoid; margin: 0 0 6mm; }
    .pitch-wrap { box-shadow: none !important; max-width: 180mm; margin-bottom: 4mm !important; }
    .pitch-modes, .pitch-opts { display: none !important; }
}

/* ---------- Moving players in the line-up editor ---------- */
.lineup-grid:not([data-locked="1"]) .pp{cursor:grab}
.lineup-grid:not([data-locked="1"]) .pp:focus-visible{outline:3px solid #ffd24a;outline-offset:3px;border-radius:8px}
.pp.dragging{cursor:grabbing!important;z-index:20;filter:drop-shadow(0 8px 10px rgba(0,0,0,.45))}
.lineup-tip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;border:1px dashed #9db4e8;border-radius:8px;background:#eef3ff;color:#16306b;font-size:13px}
.lineup-tip > span:first-of-type{flex:1 1 220px}
.lineup-dirty{background:#b45309;color:#fff;font-weight:700;font-size:11px;padding:3px 9px;border-radius:99px}
#lineup-save.pulse{animation:lineupPulse 1.4s ease-in-out infinite}
@keyframes lineupPulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.55)}50%{box-shadow:0 0 0 7px rgba(37,99,235,0)}}
@media (prefers-reduced-motion:reduce){#lineup-save.pulse{animation:none}}

/* =====================================================================================
   Fluid line-up sizing: everything on the pitch scales with the width of the pitch itself
   (container query units), so photos, names, numbers and positions stay readable and never
   crowd each other on a phone, a laptop, a projector or a printed page.
   ===================================================================================== */
.pitch-wrap { container-type: inline-size; }
.pitch-players { --s: clamp(26px, 6.3cqw, 70px); --fs: clamp(8px, 1.5cqw, 12.5px); }
.pitch-wrap[data-orient=v] .pitch-players { --s: clamp(26px, 9.6cqw, 62px); --fs: clamp(8px, 2.3cqw, 12px); }
.pitch-wrap[data-mode=plain] .pitch-players { --s: clamp(46px, 9.5cqw, 86px); --fs: clamp(10px, 1.8cqw, 13px); }
.pitch-wrap .pp { width: calc(var(--s) * 1.75); gap: calc(var(--s) * .07); }
.pitch-wrap[data-mode] .pp { width: calc(var(--s) * 1.75); }
.pitch-wrap[data-mode] .pp-shirt { width: var(--s); height: var(--s); border-width: max(2px, calc(var(--s) * .05)); }
.pitch-wrap[data-mode=plain] .pp-shirt { border-color: var(--team-primary); }
.pitch-wrap[data-mode] .pp-initials { font-size: calc(var(--s) * .32); }
.pitch-wrap[data-mode=numbers] .pp-bignum,
.pitch-wrap[data-photo="0"][data-no="1"]:not([data-mode=numbers]) .pp-bignum { font-size: calc(var(--s) * .45); }
.pitch-wrap[data-mode] .pp-no { min-width: calc(var(--s) * .42); height: calc(var(--s) * .42); font-size: calc(var(--s) * .23); top: calc(var(--s) * -.08); right: calc(var(--s) * -.14); padding: 0 calc(var(--s) * .07); border-width: max(1.5px, calc(var(--s) * .035)); }
.pitch-wrap[data-mode] .pp-cap { width: calc(var(--s) * .36); height: calc(var(--s) * .36); font-size: calc(var(--s) * .2); bottom: calc(var(--s) * -.06); left: calc(var(--s) * -.08); }
.pitch-wrap[data-mode] .pp-name { font-size: var(--fs); max-width: calc(var(--s) * 1.75); padding: .12em .5em; line-height: 1.15; border-radius: 3px; }
.pitch-wrap[data-mode] .pp-pos { font-size: calc(var(--fs) * .78); padding: .1em .55em; letter-spacing: .06em; }
.pitch-wrap[data-mode] .pp-foot { gap: calc(var(--fs) * .2); }
.pitch-wrap[data-mode] .pp-name { margin-top: 0; }
/* a little breathing room: soft shadow behind the name tag so it reads on any field colour */
.pitch-wrap[data-mode] .pp-name { box-shadow: 0 1px 3px rgba(0,0,0,.35); }
/* the toolbar adapts to the width too */
.pitch-modes button { font-size: clamp(10px, 1.6cqw, 12px); }
@container (max-width: 640px) {
    .pitch-opts { gap: 6px; padding: 5px 9px; font-size: 10px; left: 6px; right: 6px; border-radius: 14px; justify-content: center; }
    .pitch-opts .po-theme { display: none; }
}
@container (max-width: 420px) { .pitch-opts .po-lbl { display: none; } }

/* team sheet tidy-up */
.sheet { padding: clamp(10px, 2.2vw, 18px); }
.sheet-head .sheet-badge { width: 52px; height: 52px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; }
.sheet-head h3 { font-size: clamp(1.05rem, 2.4vw, 1.4rem); line-height: 1.1; }
.sheet-head .meta { font-size: 12.5px; opacity: .85; line-height: 1.6; }
.sheet-bench h5 span { opacity: .6; font-weight: 600; }
.sheet-bench ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.sheet-bench li { border-radius: 10px; padding: 5px 10px; font-size: 12.5px; min-width: 0; }
.sheet-bench li .bn { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet-bench li small { opacity: .65; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.sheet-bench li b { min-width: 1.6em; text-align: center; background: var(--team-secondary,#f2c200); color: #0a1a3b; border-radius: 99px; padding: 1px 6px; font-size: 11px; }
@media (min-width: 1500px) { .lineup-dual { grid-template-columns: 1fr 1fr; } }

/* "Print" buttons on the public line-up card */
.lineup-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; justify-content: flex-end; }
.lineup-tools a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; border: 1.5px solid #0b2a6f; color: #0b2a6f; font: 700 12.5px/1 'Inter', system-ui, sans-serif; text-decoration: none; background: #fff; }
.lineup-tools a:hover { background: #0b2a6f; color: #fff; }
