/* ============================================================
   FEROCIA — Page-specific styles
   ------------------------------------------------------------
   Extracted verbatim from the <style> block that used to live inside
   admin.html. Rules are byte-for-byte identical and in their original
   order; only the container changed.

   ⚠️  ORDER MATTERS. These files must stay linked in this sequence,
   after design-tokens.css / tournament.css / app.css / country-codes.css:

       admin-layout.css  →  admin-components.css
                         →  admin-pages.css
                         →  admin-ftc.css

   Later rules of equal specificity override earlier ones, so
   reordering the <link> tags would change how the app looks.

   Covers: podium, standings table, player profile (page and shared
   classes), competition tab, admin tab (notes and attachments),
   bulk import, match hub.
   ============================================================ */

/* ── PODIUM (ladder standings — matches players.html exactly) ─ */
  /* Podium: two side by side when all, full width when filtered */
  .podium-row { display:grid; grid-template-columns:1fr 1fr; gap:0; border-bottom:0.5px solid var(--divider-color); }
  .podium-row.single { grid-template-columns:1fr; }
  .podium-half { padding:20px 20px 0; }
  .podium-half:first-child:not(:only-child) { border-right:0.5px solid var(--divider-color); }
  .podium-eyebrow { font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--text); margin-bottom:14px; display:flex; align-items:center; gap:8px; }
  .podium-eyebrow::after { content:''; flex:1; height:1px; background:var(--divider-color); }
  .podium-eyebrow svg { flex-shrink:0; }
  .podium { display:flex; justify-content:center; align-items:flex-end; gap:24px; margin-bottom:0; }
  .podium-slot { display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; max-width:160px; }
  .podium-avatar { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Inter',sans-serif; font-size:18px; color:white; position:relative; letter-spacing:1px; }
  .podium-avatar.gold-first { width:62px; height:62px; font-size:20px; }
  .podium-avatar.gold   { background:#FFD700; color:#7a5a00; }
  .podium-avatar.silver { background:#C0C0C0; color:#444; }
  .podium-avatar.bronze { background:#CD7F32; color:#fff; }
  .podium-crown { position:absolute; top:-13px; font-size:14px; }
  .podium-name  { font-size:12px; font-weight:800; text-align:center; line-height:1.3; color:var(--text); white-space:nowrap; }
  .podium-pts   { font-family:'Inter',sans-serif; font-size:18px; font-weight:800; color:var(--blue); }
  .podium-bar   { width:100%; border-radius:7px 7px 0 0; display:flex; align-items:center; justify-content:center; font-size:20px; }
  .podium-bar.gold   { background:rgba(255,215,0,0.1); border:1.5px solid rgba(255,215,0,0.3); border-bottom:none; height:64px; }
  .podium-bar.silver { background:rgba(192,192,192,0.1); border:1.5px solid rgba(192,192,192,0.3); border-bottom:none; height:46px; }
  .podium-bar.bronze { background:rgba(205,127,50,0.1); border:1.5px solid rgba(205,127,50,0.25); border-bottom:none; height:34px; }

  /* ── STANDINGS TABLE (matches players.html exactly) ──── */
  .rank-num { font-family:'Inter',sans-serif; font-size:22px; color:var(--text-muted); min-width:32px; display:inline-block; text-align:center; }
  .rank-num.top1 { color:#c8920a; }
  .rank-num.top2 { color:#888; }
  .rank-num.top3 { color:#9e6229; }
  .player-cell { display:flex; align-items:center; gap:10px; }
  .player-initials { width:32px; height:32px; border-radius:50%; background:var(--blue-pale); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; flex-shrink:0; }
  .player-initials.top1 { background:rgba(255,215,0,0.15); color:#9a6e00; }
  .player-initials.top2 { background:rgba(192,192,192,0.2); color:#555; }
  .player-initials.top3 { background:rgba(205,127,50,0.15); color:#7a3d00; }
  .player-name { font-size:13px; font-weight:700; color:var(--text); }
  .player-sub  { font-size:11px; font-weight:600; color:var(--text-muted); margin-top:1px; }
  .points-display { font-family:'Inter',sans-serif; font-size:24px; font-weight:800; color:var(--blue); }
  /* Trend column */
  .trend-up   { display:flex; align-items:center; gap:4px; color:var(--teal); font-size:11px; font-weight:700; justify-content:center; }
  .trend-dn   { display:flex; align-items:center; gap:4px; color:var(--orange); font-size:11px; font-weight:700; justify-content:center; }
  .trend-fire { display:flex; align-items:center; gap:4px; color:var(--orange); font-size:11px; font-weight:700; justify-content:center; }
  .trend-neu  { color:var(--text-muted); font-size:11px; font-weight:600; text-align:center; }
  /* Momentum watch */
  .mom-item   { display:flex; align-items:center; gap:8px; }
  .mom-icon   { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .mom-text   { font-size:12px; font-weight:700; color:var(--text); }
  .mom-sub    { font-size:11px; font-weight:600; color:var(--text-muted); }
  .mom-divider{ width:1px; height:28px; background:var(--divider-color); flex-shrink:0; }
  /* ── PLAYER PROFILE (shared classes still used by the Player Profile
     page — admin-player-profile.js — and by the Players table's
     "view profile" button). The old modal's own classes were removed
     along with its dead code. ── */
  .ppm-active{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--teal-dark);background:rgba(36,188,150,0.12);padding:3px 10px;border-radius:99px;border:1px solid rgba(36,188,150,0.3);}
  .ppm-inactive{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#b0bbd6;background:rgba(176,187,214,0.15);padding:3px 10px;border-radius:99px;border:1px solid rgba(176,187,214,0.3);}
  .ppm-snap-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
  .ppm-snap-card{text-align:center;padding:14px 8px;border-radius:10px;background:white;border:0.5px solid var(--divider-color);}
  .ppm-snap-val{font-size:24px;font-weight:800;color:var(--text);line-height:1;}
  .ppm-snap-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:4px;}
  .ppm-pill-w{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:99px;font-size:11px;font-weight:800;background:rgba(36,188,150,0.15);color:var(--teal-dark);}
  .ppm-pill-l{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:99px;font-size:11px;font-weight:800;background:rgba(242,96,36,0.12);color:var(--orange);}
  .ppm-career-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
  .ppm-career-card{background:white;border-radius:10px;border:0.5px solid var(--divider-color);padding:10px 14px;text-align:center;}
  .ppm-career-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;}
  .ppm-career-val{font-size:18px;font-weight:800;color:var(--text);line-height:1.1;}
  .ppm-tl-item{display:flex;gap:14px;padding:10px 0;border-bottom:0.5px solid #f4f5f8;align-items:flex-start;}
  .ppm-tl-item:last-child{border-bottom:none;}
  .ppm-tl-date{font-size:10px;font-weight:700;color:var(--text-muted);width:48px;flex-shrink:0;padding-top:2px;}
  .ppm-tl-text{font-size:12px;font-weight:600;color:var(--text);line-height:1.5;}
  .ppm-tl-ctx{font-size:10px;font-weight:600;color:var(--text-muted);}

  /* ── Player Profile (full page) ─────────────────────────────────── */
  .pp-page-box{background:white;border-radius:16px;border:0.5px solid var(--divider-color);box-shadow:0 1px 4px rgba(23,76,204,0.05);padding:24px 28px 32px;}
  .pp-top-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;}
  .pp-crumb{font-size:11px;font-weight:700;color:var(--text-muted);display:flex;align-items:center;gap:6px;margin-bottom:0;}
  .pp-crumb a{color:var(--blue);cursor:pointer;text-decoration:none;}
  .pp-crumb a:hover{text-decoration:underline;}
  .pp-crumb-sep{color:#c5d0e8;}
  .pp-crumb-current{color:var(--text);}
  .pp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px;flex-wrap:wrap;background:white;border:0.5px solid var(--divider-color);border-radius:16px;padding:22px 26px;box-shadow:0 1px 4px rgba(23,76,204,0.05);}
  .pp-id{display:flex;align-items:flex-start;gap:18px;}
  .pp-av{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:white;border:3px solid white;flex-shrink:0;box-shadow:0 4px 14px rgba(23,76,204,0.18);}
  .pp-name{font-size:26px;font-weight:800;color:var(--text);line-height:1.1;margin:8px 0 6px;}
  .pp-rank{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
  .pp-rank-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .pp-rank-lbl{font-size:11px;font-weight:700;color:var(--purple);line-height:1.3;}
  .pp-rank-num{font-family:'Inter',sans-serif;font-size:20px;color:var(--purple);line-height:1.1;}
  .pp-meta-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .pp-meta{font-size:11px;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:5px;}
  .pp-actions-col{display:flex;flex-direction:column;align-items:flex-end;gap:14px;flex-shrink:0;}
  .pp-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;height:34px;}
  .pp-btn{display:inline-flex;align-items:center;gap:6px;padding:0 16px;height:34px;border-radius:99px;font-size:11px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;white-space:nowrap;box-sizing:border-box;outline:none;}
  .pp-btn-outline{background:white;border:0.5px solid #c5d6f5;color:var(--blue);}
  .pp-btn-outline:hover{background:#f4f7ff;}
  .pp-stats-box{display:flex;background:white;border:0.5px solid var(--divider-color);border-radius:12px;width:100%;}
  .pp-stat-mini{display:flex;align-items:center;gap:10px;padding:12px 18px;flex:1;}
  .pp-stat-mini-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .pp-stat-mini-val{font-size:22px;font-weight:800;color:var(--text);font-family:'Inter',sans-serif;line-height:1;}
  .pp-stat-mini-lbl{font-size:9px;font-weight:700;color:var(--text-muted);margin-top:2px;white-space:nowrap;letter-spacing:.3px;text-transform:uppercase;}
  .pp-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--divider-color);margin-bottom:20px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;}
  .pp-tab{padding:10px 16px;font-size:12px;font-weight:700;color:var(--text-muted);border-bottom:3px solid transparent;margin-bottom:-1.5px;background:none;border-top:none;border-left:none;border-right:none;font-family:'Inter',sans-serif;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;outline:none;}
  .pp-tab.pp-tab-on{color:var(--blue);border-bottom-color:var(--blue);}
  .pp-tab-soon{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:#b0bbd6;background:var(--bg);padding:1px 6px;border-radius:99px;}
  .pp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:stretch;}
  .pp-card{background:white;border:0.5px solid var(--divider-color);border-radius:12px;box-shadow:0 1px 4px rgba(23,76,204,0.05);display:flex;flex-direction:column;}
  .pp-card-body{display:flex;flex-direction:column;flex:1;padding:16px;}
  .pp-card-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;}
  .pp-card-title{font-size:11px;font-weight:800;color:var(--text);}
  .pp-form-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px;}
  .pp-form-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;}
  .pp-form-w{background:rgba(36,188,150,0.15);color:var(--teal-dark);}
  .pp-form-l{background:rgba(242,96,36,0.15);color:var(--orange-dark);}
  .pp-streak-banner{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:rgba(242,96,36,0.06);border:0.5px solid rgba(242,96,36,0.2);margin-bottom:12px;}
  .pp-streak-banner.pp-streak-good{background:rgba(36,188,150,0.07);border-color:rgba(36,188,150,0.25);}
  .pp-empty{font-size:12px;font-weight:600;color:var(--text-muted);padding:8px 0;}
  .pp-quick-row{display:flex;align-items:center;justify-content:flex-start;padding:8px 0;gap:10px;}
  .pp-quick-lbl{font-size:11px;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-shrink:0;width:100px;}
  .pp-quick-val{font-size:12px;font-weight:700;color:var(--text);text-align:left;flex:1;}
  .pp-pill-verified{font-size:9px;font-weight:800;text-transform:uppercase;padding:2px 8px;border-radius:99px;background:rgba(36,188,150,0.15);color:var(--teal-dark);}
  .pp-pill-unverified{font-size:9px;font-weight:800;text-transform:uppercase;padding:2px 8px;border-radius:99px;background:rgba(242,96,36,0.15);color:var(--orange-dark);}
  .pp-link{font-size:11px;font-weight:700;color:var(--blue);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px;}
  .pp-link:hover{text-decoration:underline;}
  .pp-soon-card{background:white;border:0.5px dashed #c5d6f5;border-radius:14px;padding:60px 24px;text-align:center;}
  .pp-soon-icon{width:56px;height:56px;border-radius:50%;background:#e8f0ff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
  .pp-soon-title{font-size:16px;font-weight:800;color:var(--text);margin-bottom:6px;}
  .pp-soon-text{font-size:12px;font-weight:600;color:var(--text-muted);max-width:340px;margin:0 auto;}

  /* ── Competition tab ──────────────────────────────────────────── */
  .pp-section-gap{margin-bottom:32px;}
  .pp-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
  .pp-kpi-card{background:white;border:1px solid var(--divider-color);border-radius:16px;padding:20px;box-shadow:var(--shadow-medium);}
  .pp-kpi-lbl{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
  .pp-form-dot-lg{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:white;flex-shrink:0;}
  .pp-form-w-lg{background:var(--teal);}
  .pp-form-l-lg{background:var(--orange);}
  .pp-kpi-val{font-size:28px;font-weight:800;color:var(--text);line-height:1;font-family:'Inter',sans-serif;}
  .pp-kpi-sub{font-size:11px;font-weight:600;color:var(--text-muted);margin-top:6px;}
  .pp-kpi-trend{font-size:11px;font-weight:700;color:var(--teal);margin-top:4px;}
  .pp-perf-card{background:white;border:1px solid var(--divider-color);border-radius:16px;padding:24px;box-shadow:var(--shadow-medium);}
  .pp-perf-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:16px;}
  .pp-perf-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:0.5px solid #f4f5f8;}
  .pp-perf-row:last-child{border-bottom:none;}
  .pp-perf-lbl{font-size:13px;font-weight:600;color:var(--text-muted);}
  .pp-perf-val{font-size:13px;font-weight:700;color:var(--text);text-align:right;}
  .pp-perf-val-empty{font-size:12px;font-weight:600;color:#c5d0e8;font-style:italic;}
  .pp-2col{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .hist-row:hover{background:#f8faff;}
  .hist-row-selected{background:#e8f0ff !important;}
  .pp-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:stretch;}
  .pp-3col .pp-perf-card{display:flex;flex-direction:column;}
  @media (max-width:900px){ .pp-2col{grid-template-columns:1fr;} .pp-3col{grid-template-columns:1fr;} .pp-kpi-row{grid-template-columns:1fr 1fr;} }
  .pp-match-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:0.5px solid #f4f5f8;}
  .pp-match-row:last-child{border-bottom:none;}
  .pp-match-info{flex:1;min-width:0;}
  .pp-match-opp{font-size:13px;font-weight:700;color:var(--text);}
  .pp-match-comp{font-size:11px;font-weight:600;color:var(--text-muted);margin-top:2px;}
  .pp-match-score{font-size:14px;font-weight:800;text-align:right;flex-shrink:0;}
  .pp-match-date{font-size:10px;font-weight:600;color:var(--text-muted);text-align:right;flex-shrink:0;width:60px;}
  .pp-timeline-table{width:100%;border-collapse:collapse;}
  .pp-timeline-table th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--divider-color);}
  .pp-timeline-table td{font-size:12px;font-weight:600;color:var(--text);padding:10px;border-bottom:0.5px solid #f4f5f8;}
  .pp-badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
  .pp-badge-card{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--divider-color);border-radius:12px;padding:12px 16px;font-size:12px;font-weight:700;color:var(--text);}
  .pp-insight-card{background:var(--primary-light);border:1px solid rgba(23,76,204,0.15);border-radius:16px;padding:24px;}
  .pp-insight-item{display:flex;align-items:flex-start;gap:10px;font-size:13px;font-weight:600;color:var(--text);padding:8px 0;}

  /* ── Admin tab: Internal Notes ────────────────────────────────────── */
  .pp-note-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:99px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:white;}
  .pp-note-general{background:var(--text-muted);}
  .pp-note-positive{background:var(--teal);}
  .pp-note-warning{background:var(--orange);}
  .pp-note-incident{background:var(--danger);}
  .pp-note-suspension{background:#7f1d1d;}
  .pp-note-followup{background:var(--blue);}
  .pp-note-row{border:1px solid var(--divider-color);border-left-width:4px;border-radius:10px;padding:12px 14px;margin-bottom:10px;}
  .pp-note-row:last-child{margin-bottom:0;}
  .pp-note-accent-general{border-left-color:var(--text-muted);}
  .pp-note-accent-positive{border-left-color:var(--teal);}
  .pp-note-accent-warning{border-left-color:var(--orange);}
  .pp-note-accent-incident{border-left-color:var(--danger);}
  .pp-note-accent-suspension{border-left-color:#7f1d1d;}
  .pp-note-accent-followup{border-left-color:var(--blue);}
  .pp-note-meta{font-size:10px;font-weight:600;color:var(--text-muted);margin-left:8px;}
  .pp-note-content{font-size:12px;font-weight:500;color:var(--text);margin-top:8px;line-height:1.5;}
  .pp-note-form{background:#f8f9ff;border:1px solid var(--divider-color);border-radius:12px;padding:14px;margin-bottom:14px;}

  /* ── Admin tab: Private Attachments ───────────────────────────────── */
  .pp-attach-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:0.5px solid #f4f5f8;}
  .pp-attach-row:last-child{border-bottom:none;}
  .pp-attach-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:9px;font-weight:800;color:white;text-transform:uppercase;}
  .pp-attach-icon-pdf{background:var(--danger);}
  .pp-attach-icon-jpg,.pp-attach-icon-png{background:var(--blue);}
  .pp-attach-icon-docx{background:var(--blue);}
  .pp-attach-name{font-size:12px;font-weight:700;color:var(--text);}
  .pp-attach-meta{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:2px;}
  .pp-attach-actions{display:flex;gap:6px;flex-shrink:0;}
  .pp-attach-btn{width:28px;height:28px;border-radius:6px;border:0.5px solid var(--divider-color);background:white;cursor:pointer;display:flex;align-items:center;justify-content:center;outline:none;}
  .pp-attach-btn:hover{background:#f4f7ff;}
  .pp-attach-btn-danger:hover{background:#fef2f2;border-color:#fca5a5;}
  .pp-upload-btn{display:flex;align-items:center;gap:5px;padding:6px 14px;border:1px solid var(--blue);border-radius:99px;background:white;color:var(--blue);font-size:11px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;outline:none;}
  .pp-search-wrap{position:relative;width:260px;}
  .pp-search-input{width:100%;padding:8px 12px 8px 32px;border:0.5px solid var(--divider-color);border-radius:99px;font-size:12px;font-family:'Inter',sans-serif;outline:none;}
  .pp-search-input:focus{border-color:var(--blue);}
  .pp-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#b0bbd6;}
  .pp-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:white;border:0.5px solid var(--divider-color);border-radius:10px;box-shadow:0 8px 24px rgba(8,15,46,.12);max-height:280px;overflow-y:auto;z-index:50;display:none;}
  .pp-search-row{padding:9px 12px;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:8px;}
  .pp-search-row:hover{background:#f4f7ff;}
  @media (max-width: 1100px){ .pp-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width: 720px){ .pp-grid{grid-template-columns:1fr;} }
  .ppm-profile-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:0.5px solid var(--divider-color);background:white;color:var(--blue);cursor:pointer;transition:all .15s;outline:none;}
  .ppm-profile-btn:hover{background:#e8f0ff;border-color:#c5d6f5;}
  /* ── BULK IMPORT ─────────────────────────────────────────── */
  .import-section{background:white;border:0.5px solid var(--divider-color);border-radius:12px;padding:18px 20px;margin-bottom:24px;max-width:1100px;}
  .import-section-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin-bottom:4px;display:flex;align-items:center;gap:6px;}
  .import-section-sub{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:14px;}
  .import-drop-zone{border:1.5px dashed #c5d6f5;border-radius:10px;padding:28px;text-align:center;cursor:pointer;background:#f8f9ff;transition:all .15s;}
  .import-drop-zone:hover,.import-drop-zone.drag-over{border-color:var(--blue);background:#e8f0ff;}
  .import-drop-zone-icon{width:40px;height:40px;border-radius:10px;background:#e8f0ff;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;}
  .import-drop-text{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px;}
  .import-drop-sub{font-size:11px;font-weight:600;color:var(--text-muted);}
  .import-preview{margin-top:16px;}
  .import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
  .import-sum-card{border-radius:8px;padding:12px 14px;border:0.5px solid var(--divider-color);}
  .import-sum-val{font-size:22px;font-weight:800;line-height:1;margin-bottom:3px;font-family:'Inter',sans-serif;}
  .import-sum-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);}
  .import-table{width:100%;border-collapse:collapse;font-size:12px;}
  .import-table th{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:8px 10px;text-align:left;background:#f8f9ff;border-bottom:0.5px solid var(--divider-color);}
  .import-table td{padding:9px 10px;border-bottom:0.5px solid #f4f5f8;font-weight:600;color:var(--text);vertical-align:middle;}
  .import-table tr:last-child td{border-bottom:none;}
  .import-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:700;}
  .import-b-new{background:rgba(36,188,150,0.1);color:var(--teal-dark);}
  .import-b-dup{background:#fff8e6;color:var(--amber);}
  .import-b-err{background:#fee2e2;color:#e53935;}
  /* ── MATCH HUB ─────────────────────────────────────────── */
  .mh-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px;}
  .mh-card{background:var(--white);border-radius:10px;padding:16px 18px 14px;border:0.5px solid var(--divider-color);border-top:3px solid transparent;box-shadow:0 1px 4px rgba(23,76,204,0.06);}
  .mh-card.mh-c-blue{border-top-color:var(--blue);}
  .mh-card.mh-c-green{border-top-color:var(--teal);}
  .mh-card.mh-c-orange{border-top-color:var(--orange);}
  .mh-card.mh-c-purple{border-top-color:var(--purple);}
  .mh-card-lbl{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text);margin-bottom:6px;}
  .mh-card-val{font-family:'Inter',sans-serif;font-size:40px;color:var(--text);line-height:1;margin-bottom:6px;}
  .mh-card-sub{font-size:11px;font-weight:600;}
  .mh-tbl-wrap{background:white;border:0.5px solid var(--divider-color);border-radius:12px;overflow:hidden;}
  .mh-tbl-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:0.5px solid var(--divider-color);}
  .mh-tbl-title{font-size:13px;font-weight:800;color:var(--text);}
  .mh-filter-row{display:flex;gap:6px;flex-wrap:wrap;}
  .mh-filter{padding:5px 12px;border-radius:99px;border:0.5px solid var(--divider-color);background:white;font-family:'Inter',sans-serif;font-size:10px;font-weight:700;color:var(--text-muted);cursor:pointer;}
  .mh-filter.mh-on{background:#e8f0ff;color:var(--blue);border-color:#c5d6f5;}
  .mh-type-filter{padding:5px 12px;border-radius:99px;border:0.5px solid var(--divider-color);background:white;font-family:'Inter',sans-serif;font-size:10px;font-weight:700;color:var(--text-muted);cursor:pointer;}
  .mh-type-filter.mh-on{background:#e8f0ff;color:var(--blue);border-color:#c5d6f5;}
  .mh-table{width:100%;border-collapse:collapse;}
  .mh-table th{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:10px 14px;text-align:left;background:#f8f9ff;border-bottom:0.5px solid var(--divider-color);}
  .mh-table td{font-size:12px;font-weight:600;color:var(--text);padding:12px 14px;border-bottom:0.5px solid #f4f5f8;vertical-align:middle;}
  .mh-table tr:last-child td{border-bottom:none;}
  .mh-table tr:hover td{background:#fafbff;}
  .mh-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;font-size:10px;font-weight:700;}
  .mh-b-friendly{background:rgba(36,188,150,0.1);color:var(--teal-dark);}
  .mh-b-training{background:#e8f0ff;color:var(--blue);}
  .mh-b-challenge{background:rgba(242,96,36,0.08);color:var(--orange);}
  .mh-b-rating{background:rgba(123,47,190,0.08);color:var(--purple);}
  .mh-b-dna{background:rgba(123,47,190,0.08);color:var(--purple);}
  .mh-b-pending{background:#fff8e6;color:var(--amber);}
  .mh-b-complete{background:rgba(36,188,150,0.1);color:var(--teal-dark);}
  .mh-action{padding:4px 12px;border:0.5px solid var(--divider-color);border-radius:99px;background:white;font-family:'Inter',sans-serif;font-size:10px;font-weight:700;color:var(--blue);cursor:pointer;}
  /* Log Match Modal */
  #log-match-modal{z-index:400;}
  .lm-shell{background:white;border-radius:16px;width:88vw;max-width:680px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(8,15,46,.35);overflow:hidden;}
  .lm-top{padding:20px 24px;border-bottom:0.5px solid var(--divider-color);display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0;}
  .lm-title{font-size:16px;font-weight:800;color:var(--text);margin-bottom:2px;}
  .lm-sub{font-size:11px;font-weight:600;color:var(--text-muted);}
  .lm-x{width:30px;height:30px;border-radius:8px;border:0.5px solid var(--divider-color);background:white;color:#e53935;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .lm-body{flex:1;overflow-y:auto;}
  .lm-sec{padding:18px 24px;border-bottom:0.5px solid var(--bg);}
  .lm-sec:last-child{border-bottom:none;}
  .lm-sec-lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:12px;display:flex;align-items:center;gap:6px;}
  .lm-input{width:100%;padding:9px 12px;border:0.5px solid var(--divider-color);border-radius:8px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;color:var(--text);outline:none;background:white;}
  .lm-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,76,204,0.08);}
  .lm-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .lm-flbl{font-size:10px;font-weight:700;color:var(--text-muted);margin-bottom:5px;}
  .lm-opt{font-size:9px;font-weight:700;color:#b0bbd6;background:var(--bg);padding:1px 6px;border-radius:99px;margin-left:4px;}
  .lm-pill-grp{display:flex;gap:6px;flex-wrap:wrap;}
  .lm-pill{padding:7px 16px;border-radius:99px;border:0.5px solid var(--divider-color);background:white;font-family:'Inter',sans-serif;font-size:11px;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .12s;}
  .lm-pill:hover{border-color:#c5d6f5;color:var(--blue);}
  .lm-pill.lm-on{background:#e8f0ff;color:var(--blue);border-color:var(--blue);}
  .lm-teams{display:grid;grid-template-columns:1fr 40px 1fr;gap:0;align-items:start;}
  .lm-team{border-radius:10px;padding:14px;border:0.5px solid var(--divider-color);}
  .lm-team-a{background:#f8f9ff;}
  .lm-team-b{background:#f0fdf8;border-color:rgba(36,188,150,0.2);}
  .lm-team-lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;}
  .lm-team-lbl-a{color:var(--blue);}
  .lm-team-lbl-b{color:var(--teal-dark);}
  .lm-vs{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#b0bbd6;padding-top:14px;}
  .lm-pfield{margin-bottom:8px;}
  .lm-player-results{position:absolute;top:100%;left:0;right:0;background:white;border:1px solid var(--divider-color);border-radius:8px;box-shadow:0 8px 24px rgba(8,15,46,.12);max-height:180px;overflow-y:auto;z-index:30;margin-top:2px;}
  .lm-player-result-row{padding:9px 12px;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;}
  .lm-player-result-row:hover{background:#f4f7ff;}
  .lm-player-result-empty{padding:9px 12px;font-size:12px;color:var(--text-muted);}
  .lm-pfield:last-child{margin-bottom:0;}
  .lm-score-row{display:grid;grid-template-columns:80px 1fr auto 1fr;gap:8px;align-items:center;margin-bottom:8px;}
  .lm-score-lbl{font-size:10px;font-weight:700;color:var(--text-muted);white-space:nowrap;}
  .lm-score-sep{text-align:center;font-size:12px;font-weight:800;color:#b0bbd6;}
  .lm-score-inp{text-align:center;font-size:16px;font-weight:800;}
  .lm-add-game{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:0.5px dashed #c5d6f5;border-radius:99px;background:none;font-family:'Inter',sans-serif;font-size:10px;font-weight:700;color:var(--blue);cursor:pointer;margin-top:4px;}
  .lm-purpose-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .lm-purpose{padding:12px;border-radius:10px;border:0.5px solid var(--divider-color);cursor:pointer;display:flex;align-items:flex-start;gap:10px;transition:all .12s;}
  .lm-purpose:hover{border-color:#c5d6f5;}
  .lm-purpose.lm-on{border-color:var(--blue);background:#e8f0ff;}
  .lm-purpose-icon{width:30px;height:30px;border-radius:8px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s;}
  .lm-purpose.lm-on .lm-purpose-icon{background:var(--blue);}
  .lm-purpose-title{font-size:11px;font-weight:800;color:var(--text);}
  .lm-purpose-desc{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:2px;line-height:1.4;}
  .lm-data-list{display:flex;flex-direction:column;gap:6px;}
  .lm-data-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:0.5px solid var(--divider-color);border-radius:8px;cursor:pointer;transition:all .12s;}
  .lm-data-row:hover{border-color:#c5d6f5;}
  .lm-data-row.lm-on{border-color:var(--blue);background:#f4f7ff;}
  .lm-chk{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--divider-color);flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px;background:white;transition:all .12s;}
  .lm-data-row.lm-on .lm-chk{background:var(--blue);border-color:var(--blue);}
  .lm-data-title{font-size:12px;font-weight:700;color:var(--text);}
  .lm-data-sub{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:1px;line-height:1.4;}
  .lm-preview{background:rgba(36,188,150,0.06);border:0.5px solid rgba(36,188,150,0.2);border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:10px;}
  .lm-preview-text{font-size:12px;font-weight:700;color:var(--text);}
  .lm-preview-sub{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:2px;}
  .lm-footer{padding:14px 24px;border-top:0.5px solid var(--divider-color);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:white;}
  /* View Match Modal */
  #view-match-modal{z-index:410;}
  .vm-shell{background:#f8f9ff;border-radius:16px;width:92vw;max-width:740px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(8,15,46,.3);position:relative;}
  .vm-hdr{padding:20px 24px 16px;border-bottom:0.5px solid var(--divider-color);background:white;position:relative;flex-shrink:0;}
  .vm-hdr-top{display:flex;align-items:flex-start;gap:12px;}
  .vm-hdr-icon{width:42px;height:42px;border-radius:10px;background:#e8f0ff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .vm-eyebrow{font-size:16px;font-weight:800;color:var(--text);letter-spacing:.3px;}
  .vm-title{font-size:12px;font-weight:600;color:var(--text-muted);margin-top:2px;}
  .vm-x{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:8px;border:0.5px solid var(--divider-color);background:white;color:#e53935;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;}
  .vm-body{overflow-y:scroll;padding:20px 24px;display:block;flex-shrink:1;min-height:0;}
  .vm-footer{padding:14px 24px;border-top:0.5px solid var(--divider-color);background:white;flex-shrink:0;}
  .vm-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f8f9ff;border-radius:10px;border:0.5px solid var(--divider-color);}
  .vm-type-pill{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:4px 12px;border-radius:99px;background:#e8f0ff;color:var(--blue);}
  .vm-date{font-size:11px;font-weight:700;color:var(--text-muted);display:flex;align-items:center;gap:5px;}
  .vm-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;}
  .vm-team{border-radius:10px;padding:14px;border:0.5px solid var(--divider-color);text-align:center;}
  .vm-team-win{background:rgba(36,188,150,0.06);border-color:rgba(36,188,150,0.3);}
  .vm-team-loss{background:#f8f9ff;}
  .vm-team-name{font-size:13px;font-weight:800;color:var(--text);line-height:1.4;margin-bottom:6px;}
  .vm-win-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--teal);background:rgba(36,188,150,0.12);padding:3px 10px;border-radius:99px;}
  .vm-vs{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#b0bbd6;}
  .vm-scores-lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;}
  .vm-scores-row{display:flex;gap:6px;flex-wrap:wrap;}
  .vm-score-pill{display:inline-flex;flex-direction:column;align-items:center;padding:8px 14px;border-radius:10px;background:#f8f9ff;border:0.5px solid var(--divider-color);min-width:72px;}
  .vm-score-game-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:3px;}
  .vm-score-val{font-size:18px;font-weight:800;color:var(--text);font-family:'Inter',sans-serif;}
  .vm-score-val-win{color:var(--teal);}
  .vm-divider{height:0.5px;background:var(--divider-color);}
  .vm-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .vm-detail{background:#f8f9ff;border-radius:10px;padding:12px 14px;border:0.5px solid var(--divider-color);}
  .vm-detail-lbl{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;}
  .vm-notes{background:#f8f9ff;border-radius:10px;padding:12px 14px;border:0.5px solid var(--divider-color);}
  .vm-notes-text{font-size:12px;font-weight:600;color:var(--text);line-height:1.6;}
  .vm-footer{padding:14px 24px;border-top:0.5px solid var(--divider-color);display:flex;justify-content:flex-end;}
  .lm-footer-hint{font-size:10px;font-weight:600;color:var(--text-muted);}
  .lm-btn-cancel{padding:9px 20px;border:0.5px solid var(--divider-color);border-radius:99px;background:white;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;}
  .lm-btn-save{padding:9px 20px;border:none;border-radius:99px;background:linear-gradient(180deg,#2456d3,var(--blue));color:white;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
