/* ── Training module ── */
.fchip-row{display:flex;gap:6px;flex-wrap:wrap;}

/* GAA Skills resource strip */
.gaa-skills-strip{display:flex;align-items:center;gap:8px;background:var(--surf);border:1px solid var(--bdr);
  border-radius:10px;padding:9px 12px;margin-bottom:12px;}
.gaa-skills-strip [data-lucide]{width:14px;height:14px;color:var(--muted);flex-shrink:0;}
.gaa-skills-strip>span{font-size:13px;font-weight:600;color:var(--muted);flex:1;}
.gaa-skills-link{font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;text-decoration:none;white-space:nowrap;}
.gaa-skills-link--football{background:rgba(22,163,74,.12);color:var(--green);border:1px solid rgba(22,163,74,.3);}
.gaa-skills-link--hurling{background:rgba(37,99,235,.1);color:#1d4ed8;border:1px solid rgba(37,99,235,.25);}

.train-card{background:var(--surf);border-radius:14px;
  padding:12px 14px;margin-bottom:10px;box-shadow:0 2px 12px rgba(0,0,0,.07);}
.train-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.train-card-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.train-sport-badge{font-size:11px;font-weight:800;padding:3px 8px;border-radius:20px;
  font-family:-apple-system,'Roboto Condensed',sans-serif;letter-spacing:.3px;}
.train-sport-football{background:rgba(22,163,74,.12);color:var(--green);border:1px solid rgba(22,163,74,.3);}
.train-sport-hurling{background:rgba(37,99,235,.1);color:#1d4ed8;border:1px solid rgba(37,99,235,.25);}
.train-date{font-size:13px;font-weight:700;color:var(--cream);}
.train-time{font-size:12px;color:var(--muted);font-family:-apple-system,'Roboto Condensed',sans-serif;}
.train-edit-btn{flex-shrink:0;}
.train-loc{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-bottom:7px;}
.train-loc [data-lucide]{width:12px;height:12px;flex-shrink:0;}
.train-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap;}
.train-meta-item{display:flex;align-items:center;gap:4px;}
.train-meta-item [data-lucide]{width:12px;height:12px;}
.train-meta-item strong{color:var(--cream);}
.train-meta-sep{color:var(--bdr);}

/* Training modal */
.train-modal{padding:0;display:flex;flex-direction:column;max-height:88vh;width:100%;max-width:520px;border-radius:20px;}
.train-modal-hd{display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 12px;border-bottom:1px solid var(--bdr);flex-shrink:0;}
.train-modal-title{font-family:-apple-system,'Roboto Condensed',sans-serif;font-size:17px;font-weight:800;color:var(--cream);}
.modal-x-btn{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:8px;display:flex;align-items:center;justify-content:center;}
.modal-x-btn:hover{background:var(--surf2);color:var(--cream);}
.modal-x-btn [data-lucide]{width:18px;height:18px;}
.train-modal-body{flex:1;overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:14px 18px;display:flex;flex-direction:column;gap:14px;min-height:0;}
.train-modal-footer{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--bdr);flex-shrink:0;flex-wrap:wrap;}
@media(max-width:600px){
  .overlay:not(#confirmModal){align-items:flex-end!important;}
  .train-modal{width:100%;max-width:100%;border-radius:20px 20px 0 0;max-height:90vh;}
}
.train-form-row{display:flex;flex-direction:column;gap:6px;}
.train-form-lbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
.train-form-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px;}

/* Checkboxes */
.train-check-list{display:flex;flex-direction:column;gap:4px;border:1px solid var(--bdr);border-radius:10px;padding:6px;}
.train-att-list{max-height:340px;overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
.train-check-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;
  transition:background .12s;user-select:none;}
.train-check-row:hover{background:var(--surf2);}
.train-check{width:16px;height:16px;flex-shrink:0;cursor:pointer;accent-color:var(--green);}
.train-check-label{font-size:13px;font-weight:600;color:var(--cream);}
.train-player-row{border-bottom:1px solid var(--bdr);}
.train-player-row:last-child{border-bottom:none;}
.train-player-row--on{background:rgba(22,163,74,.06);}
.train-player-name{flex:1;font-size:13px;font-weight:600;color:var(--cream);}
.train-player-pos{font-size:11px;color:var(--muted);font-family:-apple-system,'Roboto Condensed',sans-serif;margin-left:auto;flex-shrink:0;}

/* Analysis */
.an-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.an-sum-item{background:var(--surf);border:1px solid var(--bdr);border-radius:12px;
  padding:12px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.an-sum-val{font-size:28px;font-weight:800;color:var(--green);font-family:-apple-system,'Roboto Condensed',sans-serif;line-height:1;}
.an-sum-lbl{font-size:11px;color:var(--muted);margin-top:4px;font-weight:600;}
.an-section-title{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;}
.an-coach-list{background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:6px;margin-bottom:4px;}
.an-coach-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;}
.an-coach-row:hover{background:var(--surf2);}
.an-coach-name{font-size:13px;font-weight:700;color:var(--cream);flex:1;}
.an-coach-cnt{font-size:12px;color:var(--muted);font-family:-apple-system,'Roboto Condensed',sans-serif;flex-shrink:0;min-width:40px;text-align:right;}
.an-bar-wrap{width:80px;height:6px;background:var(--bdr);border-radius:3px;overflow:hidden;flex-shrink:0;}
.an-bar{height:100%;background:var(--green);border-radius:3px;transition:width .3s;}
.an-table-wrap{border:1px solid var(--bdr);border-radius:12px;overflow:hidden;overflow-x:auto;}
.an-table{width:100%;border-collapse:collapse;min-width:320px;}
.an-table thead th{background:var(--surf2);padding:7px 8px;font-size:11px;font-weight:800;color:var(--green);
  border-bottom:1px solid var(--bdr);text-align:left;font-family:-apple-system,'Roboto Condensed',sans-serif;}
.an-table tbody tr{border-bottom:1px solid var(--bdr);}
.an-table tbody tr:last-child{border-bottom:none;}
.an-table tbody tr:hover{background:rgba(22,163,74,.03);}
.an-row--zero td{color:var(--muted)!important;opacity:.5;}
.an-table td{padding:7px 8px;font-size:13px;vertical-align:middle;}
.an-rank{font-weight:700;color:var(--muted);font-size:12px;width:28px;}
.an-pname{font-weight:700;color:var(--cream);}
.an-ppos{font-size:11px;color:var(--muted);font-family:-apple-system,'Roboto Condensed',sans-serif;}
.an-cnt{font-weight:800;color:var(--cream);}
.an-cnt-total{font-weight:400;color:var(--muted);font-size:11px;}
.an-pct-wrap{display:flex;align-items:center;gap:6px;}
.an-pct-bar{height:6px;min-width:2px;background:var(--green);border-radius:3px;transition:width .3s;}
.an-pct-lbl{font-size:11px;font-weight:700;color:var(--muted);min-width:32px;}

/* ── Location row with GPS button ── */
.tr-loc-row{display:flex;gap:8px;align-items:center;}
.tr-loc-row .mis-input{flex:1;}
.tr-gps-btn{flex-shrink:0;width:38px;height:38px;border:1px solid var(--bdr);border-radius:10px;
  background:var(--surf2);cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--muted);transition:all .15s;}
.tr-gps-btn:hover{background:var(--green);border-color:var(--green);color:#fff;}
.tr-gps-btn [data-lucide]{width:16px;height:16px;}

/* ── Picker summary buttons ── */
.tr-picker-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;
  border:1px solid var(--bdr);border-radius:12px;background:var(--surf);cursor:pointer;
  font-size:14px;font-weight:600;color:var(--cream);text-align:left;
  transition:border-color .15s,background .15s;font-family:-apple-system,sans-serif;}
.tr-picker-btn:hover{border-color:var(--green);background:rgba(22,163,74,.04);}
.tr-picker-btn [data-lucide]{width:16px;height:16px;color:var(--muted);flex-shrink:0;}
.tr-picker-chevron{margin-left:auto;color:var(--muted);}
.tr-picker-btn--active{border-color:var(--green);background:rgba(22,163,74,.05);}
.tr-picker-btn--active [data-lucide]:first-child{color:var(--green);}

/* ── Picker bottom sheets ── */
.tr-picker-sheet{width:100%;max-width:520px;margin:0 auto;background:var(--surf);
  border-radius:20px 20px 0 0;display:flex;flex-direction:column;
  max-height:78vh;padding-bottom:env(safe-area-inset-bottom,12px);}
.tr-picker-sheet-hd{display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 12px;border-bottom:1px solid var(--bdr);flex-shrink:0;}
.tr-picker-sheet-hd>span{font-size:16px;font-weight:800;color:var(--cream);}
.tr-picker-sheet-controls{padding:12px 14px;display:flex;flex-direction:column;gap:8px;
  border-bottom:1px solid var(--bdr);flex-shrink:0;}
.tr-picker-sheet-list{flex:1;overflow-y:scroll;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;padding:8px 14px 8px;}

/* ── Training session view sheet ── */
.trv-meta{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-bottom:6px;}
.trv-section-hd{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:12px 0 8px;}
.trv-player-grid{display:flex;flex-wrap:wrap;gap:6px;}
.trv-player-chip{font-size:13px;font-weight:600;color:var(--cream);background:var(--bg);border:1px solid var(--bdr);border-radius:20px;padding:4px 10px;}
.trv-player-chip--coach{background:rgba(21,128,61,.08);border-color:rgba(21,128,61,.2);color:var(--green);}
.trv-player-chip--absent{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.25);color:#b91c1c;}
.trv-empty{font-size:13px;color:var(--muted);}
.train-card{cursor:pointer;transition:transform .1s,box-shadow .1s;}
.train-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.10);}
.train-card:active{transform:scale(.98);box-shadow:0 1px 3px rgba(0,0,0,.06);}

/* ── Training select mode ── */
.train-card--sel{border-color:var(--green);background:rgba(21,128,61,.04);}
.train-sel-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--bdr);background:var(--surf2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.train-sel-check--on{background:var(--green);border-color:var(--green);color:#fff;}
.train-sel-check [data-lucide]{width:13px;height:13px;}
.train-delete-bar{position:fixed;bottom:72px;left:50%;transform:translateX(-50%);background:var(--surf);border:1.5px solid var(--bdr);border-radius:14px;box-shadow:0 4px 20px rgba(0,0,0,.12);display:flex;align-items:center;gap:8px;padding:10px 14px;z-index:200;max-width:420px;width:calc(100% - 28px);}
.tdb-count{font-size:13px;font-weight:700;color:var(--cream);flex:1;}
.tdb-del-btn{background:var(--red);color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;}
.tdb-del-btn:disabled{opacity:.4;}
.tdb-del-btn:not(:disabled):active{opacity:.85;}

/* ── Training tab segmented control ── */
.train-tab-seg{display:flex;background:var(--bg);border:1px solid var(--bdr);border-radius:12px;padding:3px;gap:3px;margin-bottom:12px;}
.train-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border:none;border-radius:9px;background:none;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s;}
.train-tab-btn [data-lucide]{width:14px;height:14px;}
.train-tab-btn.on{background:var(--surf);color:var(--green);box-shadow:0 1px 4px rgba(0,0,0,.08);}

/* ── Training analysis ── */

/* Time range chips */
.ta-range-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.ta-range-chip{font-size:12px;font-weight:600;color:var(--muted);padding:4px 10px;border-radius:20px;cursor:pointer;background:none;border:1px solid var(--bdr);transition:all .15s;}
.ta-range-chip.on{background:var(--cream);color:var(--bg);border-color:var(--cream);}

/* Section tabs (Attendance / Drills) */
.ta-section-tabs{display:flex;gap:6px;margin-bottom:14px;background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:4px;}
.ta-section-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:700;color:var(--muted);padding:7px 10px;border-radius:9px;border:none;background:transparent;cursor:pointer;transition:all .15s;}
.ta-section-tab.on{background:var(--bg);color:var(--cream);box-shadow:0 1px 4px rgba(0,0,0,.1);}

/* Tappable player row */
.ta-player-row--tap{cursor:pointer;transition:background .12s;}
.ta-player-row--tap:hover{background:var(--surf2);}
.ta-player-chevron{width:14px;height:14px;color:var(--muted);flex-shrink:0;}

.ta-summary{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.ta-stat{flex:1;min-width:100px;background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;}
.ta-stat-val{font-family:-apple-system,'Roboto Condensed',sans-serif;font-size:24px;font-weight:800;color:var(--green);line-height:1;}
.ta-stat-lbl{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.ta-sort-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.ta-sort-lbl{font-size:12px;color:var(--muted);font-weight:600;}
.ta-sort-chip{font-size:12px;font-weight:600;color:var(--muted);padding:4px 10px;border-radius:20px;cursor:pointer;background:none;border:1px solid var(--bdr);transition:all .15s;}
.ta-sort-chip.on{background:var(--green);color:#fff;border-color:var(--green);}
.ta-player-list{display:flex;flex-direction:column;gap:6px;}
.ta-player-row{background:var(--surf);border:1px solid var(--bdr);border-radius:11px;padding:10px 12px;display:flex;align-items:center;gap:10px;}
.ta-player-rank{font-size:11px;font-weight:800;color:var(--muted);min-width:18px;text-align:right;}
.ta-player-info{flex:1;min-width:0;}
.ta-player-name{font-size:13px;font-weight:700;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ta-player-sub{font-size:11px;color:var(--muted);margin-top:1px;}
.ta-player-bar-wrap{width:80px;flex-shrink:0;}
.ta-bar-bg{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;}
.ta-bar-fill{height:100%;border-radius:3px;background:var(--green);transition:width .3s;}
.ta-bar-fill--med{background:#f59e0b;}
.ta-bar-fill--low{background:var(--red);}
.ta-player-pct{font-size:12px;font-weight:800;color:var(--green);min-width:32px;text-align:right;}
.ta-player-pct--med{color:#f59e0b;}
.ta-player-pct--low{color:var(--red);}
.ta-streak{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--green);background:rgba(22,163,74,.1);border-radius:8px;padding:2px 6px;margin-left:4px;}
.ta-no-data{text-align:center;padding:32px 16px;color:var(--muted);font-size:14px;}

/* At-Risk panel */
.ta-atrisk{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);border-radius:12px;padding:12px 14px;margin-bottom:14px;}
.ta-atrisk-hd{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#b45309;margin-bottom:8px;}
.ta-atrisk-list{display:flex;flex-wrap:wrap;gap:6px;}
.ta-atrisk-chip{font-size:11px;font-weight:600;background:rgba(245,158,11,.15);color:#92400e;padding:3px 8px;border-radius:20px;}

/* Session trend chart */
.ta-trend{background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:14px;margin-bottom:14px;}
.ta-trend-hd{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:10px;}
.ta-trend-chart{display:flex;align-items:flex-end;gap:3px;height:48px;}
.ta-trend-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;}
.ta-trend-bar{width:100%;border-radius:3px 3px 0 0;background:var(--green);min-height:3px;transition:height .3s;}
.ta-trend-bar--low{background:#f59e0b;}
.ta-trend-bar--rain{background:#60a5fa;}
.ta-trend-bar--heavy-rain{background:#3b82f6;}
.ta-trend-bar--windy{background:#f59e0b;}
.ta-trend-lbl{font-size:9px;color:var(--muted);white-space:nowrap;}

/* Traffic light */
.ta-ready-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block;margin-right:3px;}
.ta-ready-dot--green{background:var(--green);}
.ta-ready-dot--amber{background:#f59e0b;}
.ta-ready-dot--red{background:var(--red);}

/* Recent form badge */
.ta-recent{font-size:10px;font-weight:700;color:var(--muted);background:var(--bg);border-radius:5px;padding:1px 5px;margin-left:4px;white-space:nowrap;}

/* Dual-sport pills */
.ta-sport-pills{display:flex;gap:4px;margin-top:2px;}
.ta-sport-badge-fb{font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;background:rgba(22,163,74,.1);color:var(--green);}
.ta-sport-badge-hu{font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;background:rgba(79,70,229,.1);color:#4338ca;}

/* Shortlists */
.ta-shortlists{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.ta-shortlist{background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:12px 14px;}
.ta-shortlist-hd{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;}
.ta-shortlist-item{font-size:12px;font-weight:600;color:var(--cream);display:flex;align-items:center;gap:5px;padding:2px 0;}
.ta-shortlist-pct{font-size:10px;font-weight:700;color:var(--muted);margin-left:auto;}

/* Heatmap */
.ta-heatmap-section{margin-top:14px;}
.ta-heatmap-toggle{width:100%;background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;}
.ta-heatmap{background:var(--surf);border:1px solid var(--bdr);border-top:none;border-radius:0 0 12px 12px;padding:14px;overflow:hidden;}
.ta-heatmap-scroll{overflow-x:auto;padding-bottom:4px;}
.ta-heatmap-dates{display:flex;gap:3px;padding-left:82px;margin-bottom:3px;}
.ta-heatmap-date{width:14px;font-size:8px;color:var(--muted);text-align:center;flex-shrink:0;}
.ta-heatmap-row{display:flex;align-items:center;gap:3px;margin-bottom:3px;}
.ta-heatmap-name{font-size:10px;font-weight:600;color:var(--muted);width:78px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ta-heatmap-cell{width:14px;height:14px;border-radius:3px;flex-shrink:0;}
.ta-heatmap-cell--on{background:var(--green);}
.ta-heatmap-cell--off{background:var(--bg);}

/* ── Player analysis sheet (pas-*) ── */
.pas-sheet{display:flex;flex-direction:column;max-height:88vh;}
.pas-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px;}
.pas-stats-row{display:flex;gap:10px;margin-bottom:14px;}
.pas-stat{flex:1;background:var(--surf);border:1px solid var(--bdr);border-radius:12px;padding:12px 10px;text-align:center;display:flex;flex-direction:column;gap:2px;}
.pas-stat-val{font-family:-apple-system,'Roboto Condensed',sans-serif;font-size:22px;font-weight:800;color:var(--green);line-height:1;}
.pas-stat-lbl{font-size:10px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.pas-mini-chart{display:flex;align-items:flex-end;gap:3px;height:32px;margin-bottom:14px;padding:0 2px;}
.pas-mini-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;}
.pas-mini-bar{width:100%;border-radius:3px 3px 0 0;min-height:3px;}
.pas-mini-bar--on{background:var(--green);}
.pas-mini-bar--off{background:var(--bdr);}
.pas-mini-lbl{font-size:8px;color:var(--muted);white-space:nowrap;}
.pas-sessions-hd{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;}
.pas-sessions-list{display:flex;flex-direction:column;gap:4px;}
.pas-session-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;background:var(--bg);border:1px solid var(--bdr);}
.pas-session-row--on{background:rgba(22,163,74,.05);border-color:rgba(22,163,74,.25);}
.pas-session-icon{font-size:13px;font-weight:800;min-width:16px;text-align:center;color:var(--muted);}
.pas-session-icon--on{color:var(--green);}
.pas-session-info{flex:1;min-width:0;}
.pas-session-date{font-size:12px;font-weight:600;color:var(--cream);display:block;}
.pas-session-loc{font-size:11px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pas-session-sport{font-size:14px;flex-shrink:0;}

/* ── Drill performance section ── */
.ta-drills-section{display:flex;flex-direction:column;gap:0;}
.ta-drill-list{display:flex;flex-direction:column;gap:6px;}
.ta-drill-row{background:var(--surf);border:1px solid var(--bdr);border-radius:11px;padding:11px 13px;display:flex;align-items:center;gap:12px;}
.ta-drill-info{flex:1;min-width:0;}
.ta-drill-name{font-size:13px;font-weight:700;color:var(--cream);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ta-drill-meta{display:flex;gap:5px;flex-wrap:wrap;}
.ta-drill-phase{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;border:1px solid;}
.ta-drill-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0;min-width:90px;}
.ta-drill-rating-row{display:flex;align-items:center;gap:4px;}
.ta-drill-stars{font-size:12px;color:#f59e0b;letter-spacing:1px;}
.ta-drill-avg{font-size:11px;font-weight:700;color:var(--cream);}
.ta-drill-no-rating{font-size:11px;color:var(--muted);}
.ta-drill-usage-row{display:flex;align-items:center;gap:6px;}
.ta-drill-bar-bg{width:56px;height:5px;background:var(--bdr);border-radius:3px;overflow:hidden;}
.ta-drill-bar-fill{height:100%;background:var(--green);border-radius:3px;}
.ta-drill-usage-cnt{font-size:11px;font-weight:700;color:var(--muted);min-width:20px;text-align:right;}
.ta-drills-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px;}
.ta-no-data{padding:24px;text-align:center;color:var(--muted);font-size:13px;}

/* Weather line on session cards */
.train-weather{font-size:11px;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:4px;}
.train-card-note{font-size:11px;color:var(--muted);margin-top:4px;font-style:italic;white-space:pre-wrap;word-break:break-word;}
.tr-notes-textarea{width:100%;resize:vertical;min-height:72px;font-family:inherit;font-size:14px;}
.trv-notes{display:flex;align-items:flex-start;gap:6px;font-size:13px;color:var(--muted);margin-bottom:6px;white-space:pre-wrap;word-break:break-word;}

/* ── Score panel: match selector + mode toggle row ── */
.sdp-top-row{display:flex;gap:8px;align-items:stretch;}
.sdp-top-row .sdp-match-sel{flex:1.25;}
.sdp-top-row .sdp-mode-seg{flex:1;margin-top:0;}
.sdp-match-sel{display:flex;background:var(--surf2);border:1px solid var(--bdr);border-radius:12px;padding:3px;gap:3px;}
.sdp-ms-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 6px;border:none;border-radius:9px;background:transparent;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s;font-family:-apple-system,sans-serif;}
.sdp-ms-btn--on{background:var(--surf);color:var(--cream);box-shadow:0 0 0 1px var(--bdr);}

/* ── Attendance Analysis (aa-*) ── */
.aa-player-list{display:flex;flex-direction:column;gap:6px;}
.aa-player-row{background:var(--surf);border:1px solid var(--bdr);border-radius:11px;padding:10px 12px;display:flex;align-items:flex-start;gap:10px;}
.aa-player-rank{font-size:11px;font-weight:800;color:var(--muted);min-width:18px;text-align:right;padding-top:2px;}
.aa-player-info{flex:1;min-width:0;}
.aa-player-name{font-size:13px;font-weight:700;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;}
.aa-player-bars{display:flex;flex-direction:column;gap:4px;margin-bottom:4px;}
.aa-bar-row{display:flex;align-items:center;gap:7px;}
.aa-bar-lbl{font-size:10px;font-weight:700;color:var(--muted);width:48px;flex-shrink:0;}
.aa-bar{flex:1;height:6px;background:var(--bg);border-radius:3px;overflow:hidden;}
.aa-bar-pct{font-size:11px;font-weight:800;color:var(--muted);min-width:32px;text-align:right;}
.aa-bar-fill-match{height:100%;border-radius:3px;background:#3b82f6;transition:width .3s;}
.aa-player-sub{font-size:10px;color:var(--muted);}
.aa-heatmap-cell--match{background:#3b82f6;}

/* Plan icon button in session card meta row */
.train-plan-icon-btn{background:none;border:none;cursor:pointer;padding:0;color:var(--muted);display:inline-flex;align-items:center;line-height:1;}
.train-plan-icon-btn [data-lucide]{width:13px;height:13px;}
.train-plan-icon-btn:active{color:var(--green);}
.train-plan-icon-btn--ready{color:#16a34a;font-weight:600;}
.train-status-planned{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;background:#fef3c7;color:#92400e;flex-shrink:0;}
.train-status-done{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;background:#dcfce7;color:#166534;flex-shrink:0;}

/* Session done toggle button in view sheet header */
.trv-done-btn{color:var(--muted);}
.trv-done-btn--on{color:#16a34a !important;}

/* Plan ready toggle button in plan view sheet header */
.plan-ready-btn{color:var(--muted);}
.plan-ready-btn--on{color:#16a34a !important;}

/* Attendance sheet tab bar */
.tr-att-tabs{margin:0 16px 8px;width:calc(100% - 32px);}

/* "View Session Plan" button in session detail sheet */
.trv-plan-btns{display:flex;gap:8px;margin-bottom:14px;}
.trv-view-plan-btn{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:12px;background:#ede9fe;color:#5b21b6;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;font-family:-apple-system,sans-serif;}
.trv-view-plan-btn:active{background:#ddd6fe;}
.trv-edit-plan-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;background:var(--surf);color:var(--cream);border:1px solid var(--bdr);border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;font-family:-apple-system,sans-serif;white-space:nowrap;}
.trv-edit-plan-btn:active{background:var(--dim);}

/* Jobs row in plan view sheet */
.trv-jobs-row{display:flex;gap:8px;margin-bottom:12px;}
.trv-job-chip{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;background:var(--bg);border:1px solid var(--bdr);border-radius:8px;}
.trv-job-chip--on{background:#f0fdf4;border-color:#86efac;}
.trv-job-icon{width:15px;height:15px;color:var(--muted);flex-shrink:0;}
.trv-job-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.trv-job-name{font-size:11px;font-weight:600;color:var(--green);text-align:center;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.trv-job-empty{font-size:11px;color:var(--muted);}

/* Plan section in view sheet */
.trv-plan-section{border-bottom:1px solid var(--bdr);margin-bottom:14px;padding-bottom:14px;}
.trv-plan-gear{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px;}
.trv-station-block{border-left:3px solid #e2e8f0;margin:8px 0;padding:8px 10px;border-radius:0 8px 8px 0;background:var(--surf2);}
.trv-station-block--warmup{border-left-color:#16a34a;}
.trv-station-block--wall{border-left-color:#2563eb;}
.trv-station-block--goal{border-left-color:#d97706;}
.trv-station-block--centre{border-left-color:#7c3aed;}
.trv-station-block--extra{border-left-color:#0891b2;background:#f0f9ff;}
.trv-station-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.trv-station-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);}
.trv-station-phase{font-size:10px;font-weight:600;color:#5b21b6;background:#ede9fe;padding:1px 6px;border-radius:8px;}
.trv-station-coach{font-size:11px;font-weight:600;color:var(--green);background:var(--dim);padding:1px 7px;border-radius:8px;}
.trv-station-drill{display:flex;align-items:center;gap:4px;background:transparent;border:none;padding:0;font-size:14px;font-weight:700;color:var(--cream);cursor:pointer;text-align:left;font-family:-apple-system,sans-serif;}
.trv-station-drill:active{color:var(--green);}
.trv-lc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.trv-lc-chip{background:#ede9fe;color:#5b21b6;border:none;padding:4px 10px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;font-family:-apple-system,sans-serif;}
.trv-station-block--finish{border-left-color:#64748b;}
.trv-station-duration{font-size:10px;color:var(--muted);margin-left:auto;}
.trv-station-static{font-size:13px;color:var(--muted);}

/* ── Drill Rating Sheet ── */
.drs-drill-row {
  padding: 12px 0;
  border-bottom: 1px solid var(--bdr);
}
.drs-drill-row:last-child { border-bottom: none; }
.drs-drill-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--cream);
  margin-bottom: 8px;
}
.star-rating {
  display: flex;
  gap: 4px;
  margin-bottom: 8px;
}
.star-btn {
  font-size: 28px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 2px;
  color: #d1d5db;
  line-height: 1;
  transition: color .1s, transform .1s;
}
.star-btn--on {
  color: #f59e0b;
}
.star-btn:active { transform: scale(1.2); }
.drs-note-input {
  width: 100%;
  font-size: 13px;
  padding: 7px 10px;
  border: 1px solid var(--bdr);
  border-radius: 8px;
  background: var(--bg);
  color: var(--cream);
  box-sizing: border-box;
  font-family: -apple-system, sans-serif;
}
.drs-note-input:focus { outline: none; border-color: var(--green); }

/* ── Coach notes on a drill in the session view ── */
.trv-drill-notes {
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.4;
  white-space: pre-wrap;
}

/* ── Inline drill rating (view sheet) ── */
.trv-drill-rate-wrap {
  margin-top: 8px;
  padding: 8px 0 4px;
  border-top: 1px solid var(--bdr);
}
.trv-drill-rate-wrap--done {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.trv-rate-mine {
  font-size: 18px;
  letter-spacing: 1px;
  color: #f59e0b;
}
.trv-rate-note {
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
}
.trv-rate-agg {
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
  margin-top: 4px;
}
.trv-drill-rate-wrap--done .trv-rate-agg { margin-top: 0; }

/* ── Player Info Sheet (pip) ── */
.pip-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--bdr);
}
.pip-name {
  font-size: 17px;
  font-weight: 700;
  color: var(--cream);
}
.pip-close {
  background: var(--bg);
  border: 1px solid var(--bdr);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  cursor: pointer;
  font-size: 16px;
  line-height: 28px;
  text-align: center;
  color: var(--muted);
}
.pip-stats {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--bdr);
}
.pip-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px 8px;
  border-right: 1px solid var(--bdr);
  gap: 2px;
}
.pip-stat:last-child { border-right: none; }
.pip-stat-val {
  font-size: 20px;
  font-weight: 700;
  color: var(--cream);
  line-height: 1.1;
}
.pip-stat-val--good { color: #16a34a; }
.pip-stat-val--ok   { color: #d97706; }
.pip-stat-val--low  { color: #dc2626; }
.pip-stat-lbl {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
}
.pip-stat-sub {
  font-size: 10px;
  color: var(--muted);
}
.pip-notes {
  padding: 12px 16px;
  font-size: 13px;
  color: var(--muted);
  font-style: italic;
}
.pip-details{padding:10px 16px;display:flex;flex-direction:column;gap:7px;border-bottom:1px solid var(--bdr);}
.pip-detail-row{display:flex;align-items:center;justify-content:space-between;}
.pip-detail-lbl{font-size:12px;color:var(--muted);font-weight:500;}
.pip-detail-val{font-size:12px;font-weight:700;color:var(--cream);}
/* Make player chips tappable */
.trv-player-chip {
  cursor: pointer;
  font-family: -apple-system, sans-serif;
}
.trv-player-chip:active { opacity: .7; }

/* ── Add Drill form ── */
.ad-gear-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
.ad-gear-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  color:var(--cream);background:var(--bg);border:1px solid var(--bdr);border-radius:20px;
  padding:5px 10px;cursor:pointer;user-select:none;transition:all .12s;}
.ad-gear-chip:has(input:checked){background:rgba(22,163,74,.12);border-color:rgba(22,163,74,.4);color:var(--green);}
.ad-gear-chip input{display:none;}
.ad-img-upload-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;font-weight:600;
  color:var(--green);padding:7px 12px;border:1px solid rgba(22,163,74,.35);border-radius:8px;
  background:rgba(22,163,74,.06);transition:background .12s;}
.ad-img-upload-btn:hover{background:rgba(22,163,74,.12);}
/* Custom drills list in settings */
.ad-drill-row{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 0;border-bottom:1px solid var(--bdr);}
.ad-drill-row:last-child{border-bottom:none;}
.ad-drill-info{display:flex;flex-direction:column;gap:2px;min-width:0;}
.ad-drill-name{font-size:13px;font-weight:700;color:var(--cream);}
.ad-drill-meta{font-size:11px;color:var(--muted);}

/* ── Session list: section headers ── */
.train-section-hd{
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding:12px 16px 4px;
}
.train-section-hd--past{opacity:.7;}

/* ── Today highlight ── */
.train-card--today{border-color:rgba(22,163,74,.45);background:rgba(22,163,74,.06);}
.train-today-badge{
  display:inline-flex;align-items:center;font-size:10px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--green);
  background:rgba(22,163,74,.12);border:1px solid rgba(22,163,74,.3);
  border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle;
}

/* ── Card action row ── */
.train-card-actions{
  display:flex;align-items:center;gap:6px;padding:8px 12px 10px;
  border-top:1px solid var(--bdr);margin-top:4px;flex-wrap:wrap;
}
.train-action-btn{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  padding:6px 11px;border-radius:8px;border:1px solid var(--bdr);cursor:pointer;
  background:transparent;color:var(--cream);transition:background .12s,opacity .12s;
  white-space:nowrap;
}
.train-action-btn:active{opacity:.7;}
.train-action-btn--attend{border-color:rgba(22,163,74,.4);color:var(--green);}
.train-action-btn--attend:hover{background:rgba(22,163,74,.1);}
.train-action-btn--plan{border-color:rgba(99,102,241,.45);color:#818cf8;}
.train-action-btn--plan:hover{background:rgba(99,102,241,.1);}
.train-action-btn--addplan{border-color:rgba(251,191,36,.4);color:#fbbf24;}
.train-action-btn--addplan:hover{background:rgba(251,191,36,.08);}
.train-action-btn--settings,.train-action-btn--edit{margin-left:auto;padding:6px 9px;color:var(--muted);}
.train-action-btn--settings:hover,.train-action-btn--edit:hover{color:var(--cream);background:var(--surf2);}

/* ── Plan duration badge on card ── */
.train-plan-duration{
  font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;
  padding:2px 7px;border:1px solid var(--bdr);border-radius:20px;margin-left:4px;
}

/* ── Plan view: total session time ── */
.trv-total-time{
  display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);
  padding:6px 14px 8px;border-bottom:1px solid var(--bdr);
}
.trv-total-time strong{color:var(--cream);font-weight:700;}

/* ── Plan view: Station 4 teal accent ── */
.trv-station-block--extra .trv-station-name{color:#22d3ee;}
.trv-station-block--extra{border-left-color:#0891b2;}

/* ── Plan view: theme tag ── */
.trv-theme-tag{
  display:inline-flex;align-items:center;font-size:10px;font-weight:700;
  padding:2px 7px;border-radius:20px;border:1px solid;letter-spacing:.03em;
  margin-left:4px;
}

/* ── Plan view: setup coach ── */
.trv-setup-coach{
  display:flex;align-items:center;gap:4px;
  font-size:11px;color:var(--muted);padding:3px 0 2px;
}

/* ── Plan view: match notes ── */
.trv-match-notes{
  font-size:12px;color:var(--cream);background:rgba(255,255,255,.04);
  border:1px solid var(--bdr);border-radius:7px;padding:7px 10px;
  margin-top:6px;white-space:pre-wrap;line-height:1.5;
}

/* ── Plan view: floating coach ── */
.trv-floating-coach{
  display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);
  padding:5px 14px;border-bottom:1px solid var(--bdr);
}
.trv-floating-coach strong{color:var(--cream);}

/* ── Plan view: gear notes ── */
.trv-gear-notes{
  font-size:12px;color:var(--muted);font-style:italic;margin-left:4px;
}

/* ── Plan view: share row ── */
.trv-share-row{
  display:flex;gap:8px;margin-top:8px;
}
.trv-share-opt{
  flex:1;display:flex;align-items:center;justify-content:center;gap:5px;
  padding:10px 6px;font-size:12px;font-weight:700;
  color:var(--cream);background:rgba(255,255,255,.06);
  border:1px solid var(--bdr);border-radius:12px;cursor:pointer;
  transition:background .12s;white-space:nowrap;
}
.trv-share-opt:hover{background:rgba(255,255,255,.12);}
.trv-share-opt:active{opacity:.7;}
