/* css/cv-badges.css — inline style moved out of index.html unchanged (was <style>). */

      .cv-badge-org { background:var(--accent-dim);  color:var(--accent); }
      .cv-badge-arb { background:var(--cv-badge-arb-bg); color:var(--cv-badge-arb-fg); }
      .cv-badge-esp { background:var(--cv-badge-esp-bg); color:var(--cv-badge-esp-fg); }
      .cv-badge     { font-size:11px;font-weight:700;letter-spacing:1px;border-radius:6px;padding:3px 8px;display:inline-block; }
      /* ── Competition type chip (icon + text) ── */
      .cv-type-chip { display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.4px;border-radius:6px;padding:3px 8px;vertical-align:top; }
      .cv-type-chip svg { width:13px;height:13px;flex-shrink:0; }
      .cv-type-aire  { background:var(--cv-type-aire-bg);  color:var(--cv-type-aire-fg); }
      .cv-type-fuego { background:var(--cv-type-fuego-bg); color:var(--cv-type-fuego-fg); }
      .cv-type-aahh  { background:var(--cv-type-aahh-bg);  color:var(--cv-type-aahh-fg); }
      .cv-type-plato { background:var(--cv-type-plato-bg); color:var(--cv-type-plato-fg); }
      /* ── Filter bar by type (fixed, outside the scroll) ── */
      /* ⛔ `.cv-filter-btn` WAS REMOVED on 2026-08-20: it was a THIRD filter family
         —rectangles with radius 6— doing the same job as `.chip`.
         Santi: "the only thing that is not the same is competitions". The bar stays
         only as a row: one line, and if they do not fit they scroll horizontally. */
      .cv-filter-bar { display:flex; gap:6px; padding:8px 12px; overflow-x:auto; scrollbar-width:none; }
      .cv-filter-bar::-webkit-scrollbar { display:none; }
      .cv-filter-bar .chip { flex:1 1 auto; text-align:center; }
      .cv-panel     { flex:1; overflow:hidden; display:flex; flex-direction:column; min-height:0; }
      .cv-panel-scroll { flex:1; overflow-y:auto; min-height:0; overscroll-behavior-y:none; -webkit-overflow-scrolling:touch; }
      .cv-item-inner:active { background: var(--card) !important; }
      /* ── Action buttons on the competition card ── */
      /* Incomplete-sealing notice: the results did not reach the shooters'
         history. Amber (it is not an organizer error, it is something that must be
         resolved) and with an explicit call to action. */
      .cv-sello-warn { display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 -12px;padding:10px 12px;
        border-top:1px solid #f59e0b;background:rgba(245,158,11,.12);color:var(--text);
        font-size:12px;line-height:1.45;cursor:pointer; }
      .cv-sello-warn svg { flex:0 0 auto;color:#f59e0b; }
      .cv-sello-warn > span:first-of-type { flex:1;min-width:0;font-weight:600; }
      .cv-sello-warn .cv-sello-cta { flex:0 0 auto;font-family:'Oswald',sans-serif;font-weight:700;
        font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:#f59e0b;
        border:1px solid #f59e0b;border-radius:6px;padding:5px 10px; }
      @media (pointer: coarse) { .cv-sello-warn .cv-sello-cta { padding:9px 12px; } }
      .cv-sello-warn:focus-visible { outline:2px solid var(--accent);outline-offset:-2px; }
      .cv-action-bar { display:flex;border-top:1px solid var(--border);margin:0 -12px; }
      .cv-action-btn { position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;background:none;border:none;border-right:1px solid var(--border);color:var(--muted);font-size:10px;font-family:'Oswald',sans-serif;letter-spacing:.3px;cursor:pointer;line-height:1; }
      .cv-action-btn:last-child { border-right:none; }
      .cv-action-btn:active { background:var(--hover-soft);color:var(--accent); }
      .cv-action-btn.cv-act-disabled { opacity:.3;pointer-events:none; }
      /* Numbered badge (step guide) at the corner of the action button. */
      .cv-step-badge { position:absolute;top:3px;left:5px;min-width:15px;height:15px;padding:0 3px;box-sizing:border-box;border-radius:999px;background:var(--accent);color:var(--accent-fg);font-family:'Oswald',sans-serif;font-size:9px;font-weight:700;line-height:15px;text-align:center; }
      /* 4×2 grid for the full bar of an active organizer (8 buttons) */
      .cv-action-bar-grid { display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);margin:0 -12px; }
      .cv-action-bar-grid .cv-action-btn { border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 4px;font-size:11px; }
      .cv-action-bar-grid .cv-action-btn:nth-child(4n) { border-right:none; }
      .cv-action-bar-grid .cv-action-btn:nth-last-child(-n+4) { border-bottom:none; }
      /* ── My purchases ── */
      /* `.mc-chip` left with the invoice-type filter (2026-08-13): it was its
         only user. A rule with no users does not bother today and confuses tomorrow. */
      .mc-card { background:var(--surface,#1a1a1a);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;cursor:pointer; }
      .mc-card:active { background:var(--hover-strong); }
      .mc-card-main { flex:1;min-width:0; }
      .mc-card-title { font-family:'Oswald',sans-serif;font-size:14px;font-weight:600;color:var(--text);letter-spacing:.02em;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
      .mc-card-meta { font-size:11px;color:var(--muted);margin-top:2px; }
      .mc-card-amount { font-family:'Oswald',sans-serif;font-size:16px;font-weight:700;color:#c8a84b;flex-shrink:0; }
      .mc-card-kind { display:inline-block;font-family:'Oswald',sans-serif;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:1px 6px;border-radius:6px;margin-right:6px;font-weight:600; }
      .mc-card-kind-cv { background:rgba(200,168,75,.15);color:#c8a84b; }
      .mc-card-plan { display:inline-block;font-family:'Oswald',sans-serif;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:1px 6px;border-radius:6px;margin-right:6px;font-weight:600;background:rgba(200,168,75,.10);color:#c8a84b;border:1px solid rgba(200,168,75,.35); }
      .fac-sticky-top { position:sticky;top:0;z-index:6;background:var(--bg);padding:10px 12px 8px;margin:0 -12px 8px;border-bottom:1px solid var(--border); }
      .fac-title { font-family:'Oswald',sans-serif;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-weight:600; }
      .fac-filters-row { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px; }
      .fac-filters-row:last-child { margin-bottom:0; }
      .fac-chips-inline { display:flex;flex-wrap:wrap;gap:6px; }
      .fac-pill { display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:6px 10px 6px 12px;font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:.04em;cursor:pointer;text-transform:none; }
      .fac-pill .fac-pill-lbl { color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.6px; }
      .fac-pill .fac-pill-val { color:var(--text);font-weight:600; }
      .fac-pill svg { opacity:.7; }
      .fac-pill.on { background:var(--accent);border-color:var(--accent); }
      .fac-pill.on .fac-pill-lbl, .fac-pill.on .fac-pill-val { color:var(--accent-fg); }
      .fac-pill:active { transform:scale(.97); }
      .fac-list-area { padding-bottom:12px; }
      .fac-sticky-bottom { position:sticky;bottom:0;z-index:6;background:var(--surface,#1a1a1a);border-top:1px solid var(--border-hi,rgba(200,168,75,.35));margin:0 -12px;padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.4); }
      /* ── Referee UI ── */
      /* ⛔ `.cv-btn-volver` removed on 2026-08-20 along with the bars that were the only ones to
         carry it: the «Back» lives in the header. And here there was ALSO a
         second definition —gold pill with radius 14— different from the one in
         css/main.css: two looks for the same button depending on the screen. */
      /* ── Results ── */
      .cv-res-card { display:flex;align-items:center;gap:10px;background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:8px;cursor:pointer; }
      .cv-res-card:active { opacity:.7; }
      .cv-res-card.done { border-color:#2ecc71; }
      .cv-res-card.partial { border-color:#f39c12; }
      .cv-res-card.np { opacity:.5;pointer-events:none;cursor:default; }
      .cv-res-pnum { width:30px;height:30px;border-radius:6px;background:var(--surface);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-size:14px;font-weight:700;color:var(--muted);flex-shrink:0; }
      .cv-res-card.done .cv-res-pnum { background:rgba(46,204,113,.15);color:#2ecc71; }
      .cv-res-card.partial .cv-res-pnum { background:rgba(243,156,18,.12);color:#f39c12; }
      .cv-res-name { font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
      .cv-res-prog { font-size:11px;color:var(--muted);margin-top:1px; }
      .cv-res-score { font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;color:var(--muted);margin-left:auto;flex-shrink:0; }
      .cv-res-card.done .cv-res-score { color:#2ecc71; }
      .cv-res-card.partial .cv-res-score { color:#f39c12; }
      /* AAHH shot grid */
      .cv-res-shots-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:11px;padding:14px 14px 6px; }
      .cv-res-shot { border:2px solid var(--border);border-radius:10px;padding:8px 4px;text-align:center;cursor:pointer;background:var(--card);transition:border-color .1s; }
      .cv-res-shot.focused { background:rgba(200,168,75,.1);border-bottom:3px solid #c0392b !important; }
      .cv-res-shot.entered { border-color:#555; }
      .cv-res-shot.discarded { border-color:#e57373;background:rgba(229,115,115,.1); }
      .cv-res-shot.discarded .cv-res-shot-val { color:#e57373; }
      .cv-res-shot-lbl { font-size:9px;color:#555;margin-bottom:2px; }
      .cv-res-shot-val { font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;color:var(--text);line-height:1; }
      .cv-res-shot.entered .cv-res-shot-val { color:var(--text); }
      .cv-res-picker-btn { width:58px;height:58px;border-radius:6px;background:var(--card);border:1.5px solid var(--border);color:var(--text);font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;cursor:pointer; }
      .cv-res-picker-btn:active { background:rgba(200,168,75,.2); }
      .cv-res-picker-clr { color:#e57373;border-color:#e57373; }
      .cv-btn-10c { color:var(--accent);border-color:var(--accent);background:rgba(200,168,75,.1);font-size:16px; }
      @keyframes cvEspPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }
      .cv-drag-handle { color:#555;font-size:20px;padding:8px 10px 8px 4px;cursor:grab;flex-shrink:0;touch-action:none;user-select:none;-webkit-user-select:none; }
      .cv-arb-puesto.cv-dragging { opacity:.35; }
      .cv-arb-puesto.cv-drag-above { border-top:2px solid var(--accent)!important; }
      .cv-arb-puesto.cv-drag-below { border-bottom:2px solid var(--accent)!important; }
      .cv-arb-puesto.cv-libre { opacity:.6;cursor:pointer; }
      .cv-arb-puesto.cv-libre:active { opacity:.9; }
      .cv-def-order-bar { display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(200,168,75,.12);border-radius:10px;margin-bottom:10px;font-size:13px;color:var(--accent); }
      /* ── Standings ── */
      .cv-clas-block { margin-bottom:28px; }
      .cv-clas-title { font-family:'Oswald',sans-serif;font-size:13px;font-weight:700;letter-spacing:.6px;color:var(--accent);padding:8px 0 6px;border-bottom:1px solid var(--border);margin-bottom:6px;text-transform:uppercase; }
      .cv-clas-tbl { width:100%;border-collapse:collapse;font-size:13px; }
      .cv-clas-tbl th { font-family:'Oswald',sans-serif;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:4px 5px;border-bottom:1px solid var(--border);white-space:nowrap; }
      .cv-clas-tbl td { padding:7px 5px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text); }
      .cv-clas-tied td { background:rgba(200,168,75,.07); }
      .cv-clas-pos { font-family:'Oswald',sans-serif;font-weight:700;color:var(--accent);width:26px;white-space:nowrap; }
      .cv-clas-name { font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
      .cv-clas-ctr { text-align:center;color:var(--text); }
      .cv-clas-pts { font-family:'Oswald',sans-serif;font-weight:700;text-align:center; }
      .cv-clas-mv-col { width:36px;text-align:right; }
      .cv-clas-mv-btn { background:none;border:none;color:var(--accent);font-size:14px;cursor:pointer;padding:1px 3px;line-height:1;opacity:.8; }
      .cv-clas-mv-btn:active { opacity:1; }
      /* Precision target grid */
      .cv-prec-fase-lbl { font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;padding:10px 14px 4px; }
      .cv-prec-diana-grid { display:grid;gap:7px;padding:4px 10px 10px; }
      .cv-prec-diana { border:2px solid var(--border);border-radius:10px;padding:6px 4px;text-align:center;cursor:pointer;background:var(--card); }
      .cv-prec-diana.locked { opacity:.35;cursor:not-allowed; }
      .cv-prec-diana.partial { border-color:#f39c12; }
      .cv-prec-diana.done { border-color:#2ecc71; }
      .cv-prec-diana.focused { background:rgba(200,168,75,.1);border-bottom:3px solid #c0392b !important; }
      .cv-prec-diana-lbl { font-size:9px;color:#555; }
      .cv-prec-diana-val { font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;color:var(--text); }
      .cv-prec-diana.done .cv-prec-diana-val { color:#2ecc71; }
      .cv-prec-diana.partial .cv-prec-diana-val { color:#f39c12; }
      .cv-prec-diana.focused .cv-prec-diana-val { color:var(--text); }
      /* Aire detail shot cells */
      .cv-aire-shot-cell { border:2px solid var(--border);border-radius:6px;padding:5px 3px;text-align:center;cursor:pointer;background:var(--card);min-width:46px;flex:1; }
      .cv-aire-shot-cell.entered { border-color:#7ec8c8; }
      .cv-aire-shot-cell.focused { background:rgba(200,168,75,.1);border-bottom:3px solid #c0392b !important; }
      .cv-aire-shot-lbl { font-size:9px;color:#555; }
      .cv-aire-shot-val { font-family:'Oswald',sans-serif;font-size:16px;font-weight:700;color:var(--text); }
      .cv-aire-shot-cell.entered .cv-aire-shot-val { color:#7ec8c8; }
      .cv-aire-shot-cell.focused .cv-aire-shot-val { color:var(--text); }
      /* Aire diana grid */
      .cv-res-dianas-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px 10px 6px; }
      .cv-res-diana { border:2px solid var(--border);border-radius:10px;padding:6px 4px;text-align:center;cursor:pointer;background:var(--card); }
      .cv-res-diana:active { opacity:.7; }
      .cv-res-diana.entered { border-color:#7ec8c8; }
      .cv-res-diana.focused { background:rgba(200,168,75,.1);border-bottom:3px solid #c0392b !important; }
      .cv-res-diana-lbl { font-size:9px;color:#555; }
      .cv-res-diana-val { font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;color:var(--text); }
      .cv-res-diana.entered .cv-res-diana-val { color:#7ec8c8; }
      .cv-res-diana.focused .cv-res-diana-val { color:var(--text); }
      /* Precision phase inputs */
      .cv-res-fase-row { display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border); }
      .cv-res-fase-lbl { font-family:'Oswald',sans-serif;font-size:14px;color:var(--muted);flex-shrink:0;width:60px; }
      .cv-res-fase-inp { flex:1;background:var(--card);border:1.5px solid var(--border);border-radius:6px;color:var(--text);font-size:20px;font-weight:700;padding:8px 12px;text-align:center; }
      .cv-res-fase-inp:focus { border-color:var(--accent);outline:none; }
      .cv-res-fase-max { font-size:11px;color:#555;flex-shrink:0; }
      /* Total summary in detail */
      .cv-res-summary { background:var(--card);border-radius:10px;padding:12px 14px;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px; }
      .cv-res-disc-lbl { font-size:11px;color:#e57373; }
    