/* ============================================================
   components.css — Arrow Dynamic Archery
   Reusable interactive components: scoring keyboard, group
   cards, ends table, lane grid, schedule queue, archer
   switcher, equipment combo widget, plan panel, session
   checkboxes, live scoreboard rows.
   Load BEFORE styles.css (styles.css contains responsive
   overrides for these components).
   ============================================================ */


/* ── SESSION CHECKBOXES ── */
.session-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:7px;margin-top:0.6rem;}
.session-card{background:var(--dark3);border:2px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;}
.session-card:hover{border-color:var(--teal-light);}
.session-card.sel{border-color:var(--teal-light);background:rgba(78,205,196,0.07);}
.chk-box{width:18px;height:18px;border-radius:4px;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;}
.session-card.sel .chk-box{background:var(--teal-light);border-color:var(--teal-light);color:var(--teal);}

/* ── LANE GRID ── */
.lanes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:0.75rem;}
.lane-card{background:var(--dark3);border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.lane-card-hdr{background:var(--teal-mid);padding:7px 14px;display:flex;align-items:center;justify-content:space-between;}
.lane-card-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--teal-light);}
.lane-card-count{font-size:0.7rem;color:rgba(78,205,196,0.6);}
.lane-slot{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);}
.lane-slot:last-child{border-bottom:none;}
.lane-pos-label{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;width:24px;text-align:center;flex-shrink:0;}
.lane-sel{flex:1;background:var(--dark2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 8px;font-family:'DM Sans',sans-serif;font-size:0.82rem;outline:none;}
.lane-sel:focus{border-color:var(--teal-light);}
.lane-sel option{background:var(--dark2);}

/* ── SCORING MODE ── */
.score-mode-wrap{display:flex;gap:10px;margin-bottom:1.2rem;flex-wrap:wrap;}
.score-mode-btn{flex:1;min-width:140px;padding:1rem;border-radius:12px;border:2px solid var(--border);background:var(--dark2);color:var(--text);cursor:pointer;text-align:left;font-family:'DM Sans',sans-serif;transition:border-color 0.15s;}
.score-mode-btn:hover{border-color:var(--teal-light);}
.score-mode-btn.active{border-color:var(--teal-light);background:rgba(78,205,196,0.07);}
.smb-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--teal-light);margin-bottom:3px;}
.smb-desc{font-size:0.75rem;color:var(--muted);line-height:1.4;}

/* ── GROUP CARDS ── */
.grp-card{background:var(--dark2);border:2px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:10px;}
.grp-card-hdr{background:var(--teal-mid);padding:8px 14px;display:flex;align-items:center;justify-content:space-between;}
.grp-card-title{font-family:'Bebas Neue',sans-serif;font-size:1.15rem;letter-spacing:1px;color:var(--teal-light);}
.grp-card-sub{font-size:0.72rem;color:rgba(78,205,196,0.7);}
.grp-archer-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.1s;}
.grp-archer-row:last-child{border-bottom:none;}
.grp-archer-row:hover{background:rgba(78,205,196,0.03);}
.pos-badge{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;flex-shrink:0;}
.grp-archer-info{flex:1;min-width:0;}
.grp-archer-name{font-weight:700;font-size:0.95rem;}
.grp-archer-meta{font-size:0.7rem;color:var(--muted);margin-top:1px;}
.grp-archer-score{text-align:right;margin-right:8px;flex-shrink:0;}
.grp-archer-total{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;color:var(--teal-light);line-height:1;}
.grp-archer-ends{font-size:0.68rem;color:var(--muted);}
.grp-score-btn{background:var(--teal-light);color:var(--teal);border:none;border-radius:7px;padding:7px 14px;font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.grp-score-btn:active{opacity:0.8;}
.grp-score-btn.done{background:var(--dark3);color:var(--green);border:1px solid rgba(82,217,139,0.3);}
.unassigned-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:0.5rem;}
.unassigned-pick{background:var(--dark2);border:2px solid var(--border);border-radius:10px;padding:0.9rem;cursor:pointer;text-align:center;transition:border-color 0.15s;}
.unassigned-pick:hover{border-color:var(--teal-light);}

/* ── ACTIVE SCORING ── */
.flow-crumb{display:flex;align-items:center;gap:8px;margin-bottom:0.8rem;font-size:0.78rem;color:var(--muted);flex-wrap:wrap;}
.flow-crumb-back{background:none;border:none;color:var(--teal-light);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.78rem;font-weight:600;padding:0;text-decoration:underline;}
.flow-crumb-sep{color:var(--border);}
.flow-crumb-cur{color:var(--text);font-weight:600;}
.score-hdr{background:linear-gradient(135deg,var(--dark2),var(--dark3));border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;margin-bottom:0.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.score-hdr-name{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:2px;color:#4ECDC4;line-height:1;}
.score-hdr-sub{font-size:0.75rem;color:#B2BEC3;margin-top:2px;}
.score-hdr-lane{display:inline-block;margin-top:5px;font-family:'DM Mono',monospace;font-size:0.8rem;padding:3px 10px;border-radius:12px;border:1px solid transparent;}
.target-badge{display:inline-flex;align-items:center;gap:5px;font-family:'DM Mono',monospace;font-size:0.78rem;padding:3px 10px;border-radius:12px;margin-top:5px;background:rgba(245,200,66,0.15);border:1px solid rgba(245,200,66,0.4);color:#F5C842;font-weight:600;}
.score-hdr-total{font-family:'Bebas Neue',sans-serif;font-size:3.2rem;color:#FFF;line-height:1;text-align:right;text-shadow:0 0 20px rgba(78,205,196,0.3);}
.score-hdr-total small{font-size:1rem;color:#7AA8BA;font-family:'DM Mono',monospace;}
.score-hdr-end{font-size:0.78rem;color:#B2BEC3;text-align:right;font-weight:600;}
.next-archer-strip{background:var(--dark2);border:1px solid var(--border);border-radius:10px;padding:0.9rem 1.1rem;margin-bottom:0.8rem;display:flex;align-items:center;justify-content:space-between;gap:0.8rem;flex-wrap:wrap;}
.nas-label{font-size:0.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:3px;}
.nas-name{font-weight:700;font-size:1rem;}
.nas-meta{font-size:0.72rem;color:var(--muted);}
.btn-next-archer{background:var(--teal-light);color:var(--teal);border:none;border-radius:8px;padding:9px 20px;font-family:'DM Sans',sans-serif;font-size:0.9rem;font-weight:700;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.end-done-wrap{background:rgba(82,217,139,0.07);border:1px solid rgba(82,217,139,0.25);border-radius:10px;padding:1rem 1.2rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.end-done-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--green);}
.end-done-arrows{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
.end-arrow-chip{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1.2rem;border:1px solid var(--border);background:var(--dark3);}
.end-done-total{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--green);line-height:1;text-align:right;}
.end-done-total small{font-size:0.75rem;color:var(--muted);font-family:'DM Mono',monospace;}

/* ── ROUND COMPLETE ── */
.round-complete-card{background:linear-gradient(135deg,rgba(78,205,196,0.08),rgba(26,74,90,0.35));border:2px solid rgba(78,205,196,0.3);border-radius:14px;padding:1.8rem 1.4rem;margin-bottom:1rem;text-align:center;animation:rcSlide 0.45s ease;}
@keyframes rcSlide{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.rc-emoji{font-size:3rem;margin-bottom:0.6rem;display:block;line-height:1;}
.rc-headline{font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:2px;margin-bottom:0.5rem;line-height:1;}
.rc-message{font-size:0.92rem;color:var(--muted);margin-bottom:1.2rem;line-height:1.55;max-width:360px;margin-left:auto;margin-right:auto;}
.rc-scores{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:1rem;padding:0.8rem;background:rgba(0,0,0,0.2);border-radius:10px;}
.rc-score-item{display:flex;flex-direction:column;gap:3px;}
.rc-score-val{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;line-height:1;}
.rc-score-lbl{font-size:0.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;}
.rc-target-row{font-size:0.82rem;color:var(--muted);padding:0.5rem 1rem;background:rgba(0,0,0,0.15);border-radius:8px;display:inline-block;margin-top:0.5rem;}

/* ── ENDS TABLE ── */
.ends-table{width:100%;border-collapse:collapse;margin-bottom:1rem;}
.ends-table th{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;padding:4px 8px;border-bottom:1px solid var(--border);text-align:center;font-family:'DM Sans',sans-serif;}
.ends-table th:first-child{text-align:left;}
.ends-table td{padding:6px 8px;text-align:center;border-bottom:1px solid rgba(30,61,77,0.4);font-family:'DM Mono',monospace;font-size:0.92rem;font-weight:600;color:var(--text);}
.ends-table td:first-child{text-align:left;font-size:0.78rem;color:var(--text);font-weight:700;}
.ends-table tr.cur-end td{background:rgba(78,205,196,0.08);}
.ends-table tr.cur-end td:first-child{color:var(--teal-light);font-weight:700;}
.ends-table tr:last-child td{border-bottom:none;}
/* ── Traditional archery zone colors ── */
.av-x,.av-10{background:#4A3800;color:#FFD700!important;border-radius:3px;padding:1px 4px;font-weight:900;font-size:0.95rem;}
.av-9{background:#3D2E00;color:#E8C200!important;border-radius:3px;padding:1px 4px;font-weight:800;font-size:0.9rem;}
.av-87{background:#3D0808;color:#FF6B6B!important;border-radius:3px;padding:1px 4px;font-weight:800;}
.av-65{background:#08204A;color:#7BA7F0!important;border-radius:3px;padding:1px 4px;font-weight:700;}
.av-43{background:#111111;color:#B0B0B0!important;border-radius:3px;padding:1px 4px;font-weight:700;}
.av-21{background:#D8D8D8;color:#1A1A1A!important;border-radius:3px;padding:1px 4px;font-weight:700;}
.av-m{color:rgba(100,120,130,0.55)!important;font-weight:400;font-style:italic;}
.av-n{color:var(--muted);font-weight:600;}
.av-emp{color:rgba(122,168,186,0.2)!important;font-weight:400;}
.av-n{color:#ECEFF1!important;font-weight:600;}
.esub{color:#FFF!important;font-weight:800;font-size:0.95rem;border-left:1px solid var(--border);}
.esub.perfect{color:#4ECDC4!important;}
.esub.high{color:#FF4757!important;}
.erun{color:#B2BEC3!important;font-weight:600;}
.arrow-cell{cursor:pointer;border-radius:5px;transition:background 0.1s;}
.arrow-cell:hover{background:rgba(78,205,196,0.18)!important;outline:1px solid rgba(78,205,196,0.5);}
.arrow-cell.hi{background:rgba(78,205,196,0.28)!important;outline:2px solid var(--teal-light);}

/* ── KEYBOARD ── */
.keyboard-wrap{background:var(--dark2);border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:1rem;}
.key-hint{font-size:0.85rem;color:#ECEFF1;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:0.75rem;font-family:'DM Sans',sans-serif;font-weight:700;}
.key-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
.score-btn{height:68px;border-radius:10px;border:2px solid #2F4F6A;background:#1A3547;color:#ECEFF1;font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;transition:transform 0.08s,opacity 0.08s;}
.score-btn:active{opacity:0.75;transform:scale(0.95);}
/* ── Score buttons: traditional archery zones ── */
.score-btn.bx,.score-btn.b10{background:#4A3800;border-color:#FFD700;color:#FFD700;}
.score-btn.b9{background:#3D2E00;border-color:#E8C200;color:#E8C200;}
.score-btn.b87{background:#3D0808;border-color:#CC2200;color:#FF7070;}
.score-btn.b65{background:#08204A;border-color:#2255AA;color:#7BA7F0;}
.score-btn.b43{background:#111111;border-color:#444444;color:#BBBBBB;}
.score-btn.b21{background:#D0D0D0;border-color:#999999;color:#111111;}
.score-btn.bm{background:#1C2B35;border-color:#556068;color:#8AABB8;}
.score-btn.bundo{grid-column:span 6;height:46px;font-family:'DM Sans',sans-serif;font-size:0.9rem;font-weight:700;background:#3D1A1E;border-color:#FF4757;color:#FF6B81;}

/* ── EDIT ARROW SHEET ── */
.edit-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.72);z-index:500;align-items:flex-end;justify-content:center;}
.edit-bg.open{display:flex;}
.edit-sheet{background:var(--dark2);border:1px solid var(--border);border-radius:16px 16px 0 0;padding:1.2rem 1rem calc(2rem + env(safe-area-inset-bottom));width:100%;max-width:500px;}
.es-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--teal-light);margin-bottom:3px;}
.es-sub{font-size:0.75rem;color:var(--muted);margin-bottom:0.9rem;}
.es-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;}
.es-btn{height:56px;border-radius:9px;border:2px solid #2F4F6A;background:#1A3547;color:#ECEFF1;font-family:'Bebas Neue',sans-serif;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.es-btn:active{opacity:0.7;transform:scale(0.95);}
.es-btn.bx,.es-btn.b10{background:#4A3800;border-color:#FFD700;color:#FFD700;}
.es-btn.b9{background:#3D2E00;border-color:#E8C200;color:#E8C200;}
.es-btn.b87{background:#3D0808;border-color:#CC2200;color:#FF7070;}
.es-btn.b65{background:#08204A;border-color:#2255AA;color:#7BA7F0;}
.es-btn.b43{background:#111111;border-color:#444444;color:#BBBBBB;}
.es-btn.b21{background:#D0D0D0;border-color:#999999;color:#111111;}
.es-btn.bm{background:#1C2B35;border-color:#556068;color:#8AABB8;}
.es-btn.bdel{grid-column:span 3;height:42px;font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:700;background:#3D1A1E;border-color:#FF4757;color:#FF6B81;}
.es-btn.bcancel{grid-column:span 3;height:42px;font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:700;background:var(--dark3);border-color:#2F4F6A;color:#B2BEC3;}

/* ── LIVE SCOREBOARD ── */
.live-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap;}
.live-logo{height:56px;width:56px;}
.live-title{font-family:'Bebas Neue',sans-serif;font-size:1.7rem;letter-spacing:3px;color:var(--teal-light);line-height:1;}
.live-sub{font-size:0.7rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;}
.live-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(232,72,85,0.12);border:1px solid rgba(232,72,85,0.3);color:var(--red);font-size:0.7rem;font-weight:700;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:1px;}
.live-dot{width:7px;height:7px;background:var(--red);border-radius:50%;animation:blink 1.2s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.3}}
.vt-wrap{display:flex;gap:6px;margin-bottom:1rem;flex-wrap:wrap;}
.vt-btn{padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--dark3);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:600;cursor:pointer;}
.vt-btn.active{background:rgba(78,205,196,0.1);border-color:rgba(78,205,196,0.3);color:var(--teal-light);}
.sb-lanes{display:flex;flex-direction:column;gap:12px;}
.sb-lane-grp{background:var(--dark2);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.sb-lane-grp-hdr{background:var(--teal-mid);padding:7px 14px;display:flex;align-items:center;justify-content:space-between;}
.sb-lane-grp-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--teal-light);}
.sb-lane-grp-ranks{font-size:0.7rem;color:rgba(78,205,196,0.6);}
.sb-row{display:grid;grid-template-columns:28px 26px 1fr 50px 50px 55px 65px 20px;align-items:center;gap:0.5rem;padding:0.7rem 1rem;border-bottom:1px solid var(--border);cursor:pointer;}
.sb-row:last-of-type{border-bottom:none;}
.sb-row:hover{background:rgba(255,255,255,0.02);}
.sb-rank{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;color:var(--muted);text-align:center;}
.sb-rank.r1{color:var(--teal-light);}
.sb-pos{font-family:'Bebas Neue',sans-serif;font-size:0.95rem;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;}
.sb-ident{min-width:0;}
.sb-rname{font-weight:700;font-size:0.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-rmeta{font-size:0.67rem;color:var(--muted);}
.sb-stat{text-align:center;}
.sb-stat-v{font-family:'DM Mono',monospace;font-size:0.82rem;font-weight:700;}
.sb-stat-l{font-size:0.56rem;color:var(--muted);text-transform:uppercase;margin-top:1px;}
.sb-tot-col{text-align:right;}
.sb-tot-v{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;line-height:1;}
.sb-tot-mx{font-size:0.6rem;color:var(--muted);font-family:'DM Mono',monospace;}
.sb-chev{color:var(--muted);font-size:0.7rem;text-align:center;transition:transform 0.2s;}
.sb-prog{height:2px;background:var(--dark3);}
.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--teal-mid),var(--teal-light));transition:width 0.5s;}
.sb-det{border-top:1px solid var(--border);padding:0.8rem 1rem 1rem;background:rgba(0,0,0,0.15);display:none;}
.detail-tbl{width:100%;border-collapse:collapse;font-family:'DM Mono',monospace;font-size:0.76rem;}
.detail-tbl th{text-align:center;padding:3px 4px;color:var(--muted);font-size:0.6rem;text-transform:uppercase;border-bottom:1px solid var(--border);font-family:'DM Sans',sans-serif;font-weight:600;}
.detail-tbl th:first-child{text-align:left;}
.detail-tbl td{text-align:center;padding:4px 4px;border-bottom:1px solid rgba(30,61,77,0.4);color:var(--muted);}
.detail-tbl td:first-child{text-align:left;font-size:0.67rem;}
.detail-tbl tr:last-child td{border-bottom:none;}
.dt-sub{font-weight:700;color:var(--text)!important;border-left:1px solid var(--border);}
.dt-sub.perfect{color:var(--teal-light)!important;}
.dt-sub.high{color:var(--red)!important;}
.dt-run{font-weight:600;color:var(--text)!important;}
.det-stats{display:flex;gap:1rem;flex-wrap:wrap;margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--border);}
.dst-i{display:flex;flex-direction:column;gap:2px;}
.dst-v{font-family:'DM Mono',monospace;font-size:0.95rem;font-weight:700;}
.dst-l{font-size:0.58rem;color:var(--muted);text-transform:uppercase;}
.stand-tbl{width:100%;border-collapse:collapse;}
.stand-tbl th{font-size:0.65rem;color:var(--muted);text-transform:uppercase;padding:6px 10px;border-bottom:1px solid var(--border);text-align:center;font-family:'DM Sans',sans-serif;}
.stand-tbl th:nth-child(2){text-align:left;}
.stand-tbl td{padding:8px 10px;text-align:center;border-bottom:1px solid rgba(30,61,77,0.4);font-family:'DM Mono',monospace;font-size:0.82rem;}
.stand-tbl td:nth-child(2){text-align:left;}
.stand-tbl tr:last-child td{border-bottom:none;}
.stand-tbl tr:hover td{background:rgba(255,255,255,0.02);}


/* ── SCHEDULE QUEUE ── */
.sched-queue-item{background:var(--dark2);border:1px solid var(--border);border-radius:10px;padding:0.9rem 1rem;margin-bottom:0.7rem;display:flex;align-items:flex-start;gap:0.8rem;flex-wrap:wrap;}
.sched-queue-left{flex:1;min-width:0;}
.sched-queue-name{font-family:'Bebas Neue',sans-serif;font-size:1.15rem;letter-spacing:1.5px;color:var(--text);line-height:1.1;}
.sched-queue-meta{font-size:0.72rem;color:var(--muted);margin-top:3px;}
.sched-queue-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;flex-wrap:wrap;}
.sched-date-chip{font-size:0.72rem;padding:2px 8px;border-radius:20px;font-weight:600;background:rgba(78,205,196,0.1);color:var(--teal-light);border:1px solid rgba(78,205,196,0.25);white-space:nowrap;}
.sched-group-chip{font-size:0.72rem;padding:2px 8px;border-radius:20px;font-weight:600;background:rgba(180,142,245,0.12);color:var(--purple);border:1px solid rgba(180,142,245,0.25);white-space:nowrap;}
.sched-overdue{background:rgba(232,72,85,0.08);border-color:rgba(232,72,85,0.3);}
.sched-overdue .sched-queue-name{color:var(--red);}
.sched-today{background:rgba(245,200,66,0.07);border-color:rgba(245,200,66,0.3);}
.sched-empty-queue{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:0.85rem;border:2px dashed var(--border);border-radius:10px;}
.sched-archer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-top:0.5rem;}
.sched-archer-chip{background:var(--dark3);border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:0.8rem;display:flex;align-items:center;gap:6px;transition:border-color 0.15s,background 0.15s;}
.sched-archer-chip.sel{background:rgba(78,205,196,0.12);border-color:var(--teal-light);}
.sched-archer-chip .chk{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--muted);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.65rem;}
.sched-archer-chip.sel .chk{background:var(--teal-light);border-color:var(--teal-light);color:var(--teal);}
.sched-form-section{margin-top:1rem;padding-top:0.8rem;border-top:1px solid var(--border);}


/* ── ARCHER SWITCHER BAR ── */
.archer-switcher{
  display:flex;gap:6px;overflow-x:auto;padding:8px 0;margin-bottom:0.6rem;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.archer-switcher::-webkit-scrollbar{display:none;}
.asw-chip{
  flex-shrink:0;background:var(--dark3);border:1.5px solid var(--border);
  border-radius:10px;padding:6px 10px;cursor:pointer;text-align:center;
  min-width:80px;transition:border-color 0.15s,background 0.15s;
  -webkit-tap-highlight-color:transparent;
}
.asw-chip.active{
  background:rgba(78,205,196,0.12);border-color:var(--teal-light);
}
.asw-chip.done{ border-color:var(--green); }
.asw-chip-name{font-size:0.72rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px;}
.asw-chip-score{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;line-height:1;color:var(--teal-light);}
.asw-chip.done .asw-chip-score{color:var(--green);}
.asw-chip.active .asw-chip-name{color:var(--teal-light);}
.asw-chip-end{font-size:0.6rem;color:var(--muted);}

/* ── CUSTOM GROUPS ── */
.cgrp-card{
  background:var(--dark2);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;margin-bottom:10px;
}
.cgrp-hdr{
  padding:10px 14px;display:flex;align-items:center;
  justify-content:space-between;gap:8px;flex-wrap:wrap;
}
.cgrp-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--teal-light);}
.cgrp-meta{font-size:0.72rem;color:var(--muted);}
.cgrp-actions{display:flex;gap:6px;align-items:center;}
.cgrp-archer-rows{padding:0 10px 10px;}
.cgrp-empty{text-align:center;padding:1.5rem;color:var(--muted);font-size:0.82rem;
  border:2px dashed var(--border);border-radius:10px;}
.new-group-form{background:var(--dark2);border:1px solid var(--teal-light);
  border-radius:10px;padding:1rem;margin-bottom:1rem;}
.new-group-form .card-title{color:var(--teal-light);margin-bottom:0.8rem;}
.cgrp-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:0.5rem;}
.cgrp-pick-chip{
  background:var(--dark3);border:1.5px solid var(--border);border-radius:8px;
  padding:7px 10px;cursor:pointer;display:flex;align-items:center;gap:7px;
  transition:border-color 0.15s,background 0.15s;font-size:0.8rem;
}
.cgrp-pick-chip.sel{background:rgba(78,205,196,0.12);border-color:var(--teal-light);}
.cgrp-pick-chk{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--muted);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.65rem;}
.cgrp-pick-chip.sel .cgrp-pick-chk{background:var(--teal-light);border-color:var(--teal-light);color:var(--teal);}


/* ── SCORING: Stable keyboard on mobile ───────────────────────── */
/* sc-active is always a flex column so the keyboard never jumps   */
#sc-active {
  display: flex;
  flex-direction: column;
}
.sc-scroll-area {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.sc-keyboard-area {
  flex-shrink: 0;
}

@media (max-width: 640px) {
  #view-scoring {
    padding: 0 !important;
  }
  #sc-select {
    padding: 1rem;
  }
  #sc-active {
    height: calc(100dvh - 56px);
    overflow: hidden;
  }
  .sc-scroll-area {
    padding: 0.75rem 1rem 0.5rem;
  }
  .sc-keyboard-area {
    background: var(--dark2);
    border-top: 1px solid var(--border);
    padding: 0.5rem 0.75rem 0.75rem;
  }
  .keyboard-wrap {
    margin-bottom: 0;
    border: none;
    border-radius: 0;
    padding: 0;
    background: transparent;
  }
  .sc-keyboard-area > div[style*="flex-wrap"] {
    padding-top: 6px;
  }
}

/* ── EQUIPMENT BRAND/MODEL COMBO ── */
.eq-combo-wrap{display:flex;flex-direction:column;gap:4px;}
.eq-combo-row{display:flex;gap:6px;align-items:center;}
.eq-brand-sel,.eq-model-sel{flex:1;padding:8px 10px;background:var(--dark3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:0.82rem;cursor:pointer;min-width:0;}
.eq-brand-sel:focus,.eq-model-sel:focus{outline:none;border-color:var(--teal-light);}
.eq-manual-toggle{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:none;color:var(--muted);font-size:0.72rem;cursor:pointer;white-space:nowrap;flex-shrink:0;line-height:1;}
.eq-manual-toggle:hover,.eq-manual-toggle.active{border-color:var(--teal-light);color:var(--teal-light);}
.eq-manual-inputs{display:flex;gap:6px;margin-top:4px;}
.eq-manual-input{flex:1;padding:8px 10px;background:var(--dark3);border:1px solid var(--teal-light);border-radius:8px;color:var(--text);font-size:0.82rem;}
.eq-manual-input:focus{outline:none;}
.eq-manual-hint{font-size:0.7rem;color:var(--teal-light);margin-top:2px;}


/* ── Training plan slide panel ── */
.plan-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);
  z-index:400;display:none;align-items:stretch;justify-content:flex-end;}
.plan-panel-overlay.open{display:flex;}
.plan-panel{background:var(--dark2);width:min(560px,100vw);
  display:flex;flex-direction:column;height:100vh;overflow:hidden;
  border-left:1px solid var(--border);}
.plan-panel-header{display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.2rem;border-bottom:1px solid var(--border);flex-shrink:0;
  background:var(--dark);}
.plan-panel-header h3{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;
  letter-spacing:1px;color:var(--teal-light);margin:0;}
.plan-panel-body{flex:1;overflow-y:auto;padding:1.2rem;}
.plan-panel-footer{display:flex;gap:10px;padding:1rem 1.2rem;
  border-top:1px solid var(--border);background:var(--dark);flex-shrink:0;}
.plan-panel-footer .btn{flex:1;padding:12px;font-size:0.9rem;}