/* ============================================================================
   SSM PERFORMANCE — LISTA ZAWODNIKÓW (S3)
   Widok Kafelki / Lista. Zakres: #app .sp*
   Tokeny i komponenty bazowe (hero, KPI, badge, ring, select, dropdown,
   tabela, paginacja) pochodzą z css/staff-ds.css / js/30-staff-ui-kit.js.
   ============================================================================ */

#app .sp{display:flex;flex-direction:column;gap:18px;max-width:1560px;margin:0 auto;}

/* ---------- HERO ---------- */
#app .sp-hero{padding:28px 32px;}
#app .sp-hero .ss-h1{font-size:32px;margin-top:8px;}
#app .sp-hero-count{font-family:var(--ss-font-head);font-size:17px;font-weight:600;color:var(--ss-gold-2);margin-top:4px;}

/* ---------- KPI ---------- */
#app .sp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
#app .sp-kpis .ss-kpi{min-height:96px;align-items:flex-start;}
#app .sp-kpis .ss-kpi-label{white-space:normal;line-height:1.3;}
#app .sp-kpis .ss-kpi-foot{line-height:1.3;}
#app .sp-kpis [data-sp-kpi-status]:focus-visible{outline:2px solid rgba(var(--ss-gold-rgb),.6);outline-offset:2px;}

/* ---------- PANEL / NARZĘDZIA ---------- */
#app .sp-panel{padding:20px;}
#app .sp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
#app .sp-toolbar > .ss-search{flex:1 1 320px;max-width:560px;}
#app .sp-toolbar > .ss-search .ss-input{height:42px;padding-right:14px;}
#app .sp-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
#app .sp-toolbar-right .ss-btn{height:42px;}
#app .sp-mode .ss-tab{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;}
#app .sp-mode .ss-tab .ss-i{width:15px;height:15px;}
#app .sp-mode .ss-tab.is-active{background:rgba(var(--ss-gold-rgb),.16);color:var(--ss-gold-2);box-shadow:inset 0 0 0 1px rgba(var(--ss-gold-rgb),.35);}

#app .sp-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 18px;}
#app .sp-filters .ss-select{width:auto;min-width:150px;max-width:240px;flex:0 1 auto;height:38px;font-size:13px;}
#app .sp-clear{display:inline-flex;align-items:center;gap:6px;font-size:13px;}
#app .sp-clear.hidden{display:none;}

/* ---------- SIATKA KART ---------- */
#app .sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;}

#app .sp-card{
  position:relative;display:flex;flex-direction:column;min-width:0;cursor:pointer;
  container-type:inline-size;
  background:linear-gradient(180deg, var(--ss-surface-2) 0%, var(--ss-surface) 60%);
  border:1px solid var(--ss-border);border-radius:var(--ss-r-lg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  transition:border-color var(--ss-dur) var(--ss-ease), transform var(--ss-dur) var(--ss-ease), box-shadow var(--ss-dur) var(--ss-ease);
}
#app .sp-card:hover, #app .sp-card:focus-visible{
  border-color:rgba(var(--ss-gold-rgb),.38);transform:translateY(-2px);outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), var(--ss-shadow), 0 0 0 1px rgba(var(--ss-gold-rgb),.08);
}
#app .sp-card:focus-visible{box-shadow:0 0 0 3px rgba(var(--ss-gold-rgb),.35);}

/* zdjęcie */
#app .sp-media{
  position:relative;height:214px;overflow:hidden;border-radius:calc(var(--ss-r-lg) - 1px) calc(var(--ss-r-lg) - 1px) 0 0;
  background:radial-gradient(120% 90% at 30% 10%, #1b2a45 0%, #0b1220 70%);
}
#app .sp-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% 18%;}
#app .sp-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(7,11,20,0) 30%, rgba(7,11,20,.55) 62%, rgba(7,11,20,.82) 100%),
    linear-gradient(180deg, rgba(7,11,20,.35) 0%, rgba(7,11,20,0) 26%, rgba(7,11,20,0) 58%, var(--ss-surface-2) 100%);
}
#app .sp-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding-right:38%;color:rgba(255,255,255,.16);}
#app .sp-ph .ss-i{width:58px;height:58px;stroke-width:1.2;}
#app .sp-ph b{font-family:var(--ss-font-head);font-size:20px;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.28);}

#app .sp-media-top{position:absolute;top:12px;left:12px;right:56px;z-index:2;display:flex;}
#app .sp-media-top .ss-badge{background:rgba(6,10,19,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

#app .sp-ready{position:absolute;right:12px;top:52px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;width:104px;}
#app .sp-ready .ss-ring{background:rgba(6,10,19,.72);border-radius:50%;box-shadow:0 0 0 4px rgba(6,10,19,.3);}
#app .sp-ready-note{font-size:10.5px;font-weight:600;color:var(--ss-text-2);background:rgba(6,10,19,.7);padding:2px 8px;border-radius:999px;}
#app .sp-trend{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;}
#app .sp-trend .trend-spark svg{width:96px;height:28px;display:block;}
#app .sp-trend-label{font-size:10.5px;color:var(--ss-text-2);text-shadow:0 1px 2px rgba(0,0,0,.6);}
#app .sp-trend-empty{font-size:10.5px;line-height:1.3;color:var(--ss-text-2);text-align:center;background:rgba(6,10,19,.62);padding:3px 7px;border-radius:8px;}

/* menu akcji (poza .sp-media, żeby lista nie była ucinana) */
#app .sp-menu{position:absolute;top:10px;right:10px;z-index:5;}
#app .sp-menu .ss-icon-btn{width:34px;height:34px;background:rgba(6,10,19,.62);border-color:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
#app .sp-menu .ss-icon-btn:hover{border-color:rgba(var(--ss-gold-rgb),.45);color:var(--ss-text);}
#app .sp-menu .ss-dropdown{min-width:220px;}

/* dane zawodnika */
#app .sp-body{flex:1;padding:12px 16px 14px;margin-top:-18px;position:relative;z-index:1;}
#app .sp-name{
  font-family:var(--ss-font-head);font-size:17px;font-weight:600;line-height:1.25;color:var(--ss-text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;
}
#app .sp-club{display:flex;align-items:center;gap:8px;margin-top:7px;min-width:0;}
#app .sp-club img{width:22px;height:22px;object-fit:contain;flex-shrink:0;}
#app .sp-club-ph{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--ss-text-3);}
#app .sp-club-ph .ss-i{width:16px;height:16px;}
#app .sp-club-name{font-size:13.5px;color:var(--ss-text);line-height:1.3;min-width:0;overflow-wrap:anywhere;}
#app .sp-flag{font-size:16px;line-height:1;flex-shrink:0;}
#app .sp-meta{font-size:12.5px;color:var(--ss-text-3);margin-top:5px;line-height:1.35;}
#app .sp-nat{color:var(--ss-text-3);}

/* dolny pasek: daty + profil */
#app .sp-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ss-border);margin-top:auto;}
#app .sp-bar.no-tests{grid-template-columns:repeat(3,minmax(0,1fr));}
#app .sp-bar-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-width:0;padding:10px 4px;text-align:center;
}
#app .sp-bar-cell + .sp-bar-cell{border-left:1px solid var(--ss-border);}
#app .sp-bar-ico{display:flex;color:var(--ss-text-3);}
#app .sp-bar-ico .ss-i{width:15px;height:15px;}
#app .sp-bar-txt{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;}
#app .sp-bar-label{font-size:10.5px;color:var(--ss-text-3);letter-spacing:.02em;}
#app .sp-bar-value{font-size:12.5px;font-weight:600;color:var(--ss-text);font-variant-numeric:tabular-nums;white-space:nowrap;}
#app .sp-bar-cell.is-empty .sp-bar-value{color:var(--ss-text-3);font-weight:500;}
#app .sp-bar-open{
  font:inherit;background:transparent;border:0;border-left:1px solid var(--ss-border);cursor:pointer;color:var(--ss-gold);
  border-radius:0 0 calc(var(--ss-r-lg) - 1px) 0;transition:background var(--ss-dur) var(--ss-ease);
}
#app .sp-bar-open .sp-bar-ico, #app .sp-bar-open .sp-bar-label, #app .sp-bar-open .sp-bar-value{color:var(--ss-gold);}
#app .sp-bar-open .sp-bar-value .ss-i{width:15px;height:15px;}
#app .sp-bar-open:hover, #app .sp-bar-open:focus-visible{background:rgba(var(--ss-gold-rgb),.08);outline:none;}

/* szersze karty: ikona obok tekstu (jak na referencji) */
@container (min-width:300px){
  #app .sp-bar-cell{flex-direction:row;gap:7px;padding:11px 6px;}
  #app .sp-bar-txt{align-items:flex-start;}
}

/* ---------- PAGINACJA ---------- */
#app .sp-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;}
#app .sp-pagination:empty{display:none;}
#app .sp-pagination .ss-pager{margin-top:0;flex:1 1 auto;}
#app .sp-pagination .ss-select{width:auto;min-width:130px;height:36px;font-size:13px;}

/* ---------- LISTA (tabela) ---------- */
#app .sp-table-wrap{overflow:visible;}
#app table.ss-table.sp-table td{vertical-align:middle;padding:11px 10px;}
#app table.ss-table.sp-table th{padding:10px;white-space:normal;line-height:1.3;}
#app table.ss-table.sp-table th.sp-th-sort{white-space:nowrap;}
#app .sp-table td.sp-col-status .ss-status{white-space:nowrap;}
#app .sp-td-player{display:flex;align-items:center;gap:10px;font-weight:500;}
#app .sp-td-club{display:flex;align-items:center;gap:8px;}
#app .sp-td-club img{width:20px;height:20px;object-fit:contain;flex-shrink:0;}
#app .sp-td-date{white-space:nowrap;color:var(--ss-text-2);font-variant-numeric:tabular-nums;}
#app .sp-th-sort{cursor:pointer;user-select:none;white-space:nowrap;}
#app .sp-th-sort.is-active{color:var(--ss-gold);}
#app .sp-td-menu{width:44px;text-align:right;}
#app .sp-td-menu .ss-icon-btn{width:32px;height:32px;}
#app .sp-table .trend-spark svg{width:72px;height:24px;display:block;}
#app .sp-table tbody tr:last-child .ss-dropdown,
#app .sp-table tbody tr:nth-last-child(2) .ss-dropdown{top:auto;bottom:calc(100% + 8px);}

/* ---------- RESPONSYWNOŚĆ ---------- */
/* Lista: kolumny znikają stopniowo (zmierzone minimalne szerokości), zamiast
   poziomego scrolla. Od 960 px wiersz staje się kompaktowym blokiem. */
@media (max-width:1500px){ #app .sp-table .sp-col-trend{display:none;} }
@media (max-width:1365px){ #app .sp-table .sp-col-pos{display:none;} }
@media (max-width:1270px){ #app .sp-table .sp-col-test, #app .sp-table .sp-col-age{display:none;} }
@media (max-width:1180px){ #app .sp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:1160px){ #app .sp-table .sp-col-gps{display:none;} }
@media (max-width:1080px){ #app .sp-table .sp-col-club{display:none;} }
#app table.ss-table.sp-arch th{white-space:normal;line-height:1.3;}
/* byli zawodnicy: pozycja i wiek znikają na węższych ekranach */
@media (max-width:1080px){ #app .sp-arch th:nth-child(4), #app .sp-arch td:nth-child(4), #app .sp-arch th:nth-child(5), #app .sp-arch td:nth-child(5){display:none;} }
@media (max-width:860px){ #app .sp-arch th:nth-child(3), #app .sp-arch td:nth-child(3){display:none;} }
@media (max-width:960px){
  #app .sp-table thead{display:none;}
  #app .sp-table, #app .sp-table tbody{display:block;}
  #app .sp-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"player ready menu" "status report report";align-items:center;column-gap:8px;row-gap:6px;padding:10px 12px;border-bottom:1px solid var(--ss-border);}
  #app .sp-table tbody tr:last-child{border-bottom:0;}
  #app table.ss-table.sp-table td{display:block;padding:0;border:0;}
  #app table.ss-table.sp-table td.sp-col-club, #app table.ss-table.sp-table td.sp-col-pos, #app table.ss-table.sp-table td.sp-col-age,
  #app table.ss-table.sp-table td.sp-col-gps, #app table.ss-table.sp-table td.sp-col-test, #app table.ss-table.sp-table td.sp-col-trend{display:none;}
  #app .sp-table td.sp-col-player{grid-area:player;min-width:0;}
  #app .sp-table td.sp-col-ready{grid-area:ready;}
  #app .sp-table td.sp-col-menu{grid-area:menu;width:auto;}
  #app .sp-table td.sp-col-status{grid-area:status;}
  #app .sp-table td.sp-col-report{grid-area:report;justify-self:end;font-size:12px;}
  #app .sp-td-player span{overflow-wrap:break-word;}
  /* globalny mobilny układ tabel (index.html + data-label z js/22-pwa.js) nie
     dotyczy tej listy — ma własny układ blokowy */
  #app .sp-table tbody tr{margin:0;border-radius:0;background:transparent;border:0;border-bottom:1px solid var(--ss-border);}
  #app .sp-table td::before{content:none;display:none;}
  #app table.ss-table.sp-table td{text-align:left;justify-content:flex-start;}
  #app table.ss-table.sp-table td.sp-col-menu, #app table.ss-table.sp-table td.sp-col-report{text-align:right;}
}
@media (max-width:767px){
  #app .sp{gap:14px;}
  #app .sp-hero{padding:22px 18px;}
  #app .sp-hero .ss-h1{font-size:26px;}
  #app .sp-kpis{gap:10px;}
  #app .sp-kpis .ss-kpi{flex-direction:column;gap:10px;min-height:0;}
  #app .sp-panel{padding:14px;}
  #app .sp-toolbar > .ss-search{flex:1 1 100%;max-width:none;}
  #app .sp-toolbar-right{width:100%;justify-content:space-between;}
  #app .sp-toolbar-right .ss-btn{flex:1 1 auto;}
  #app .sp-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  #app .sp-filters .ss-select{width:100%;max-width:none;min-width:0;}
  #app .sp-clear{grid-column:1 / -1;justify-self:start;}
  #app .sp-grid{grid-template-columns:minmax(0,1fr);gap:14px;}
  #app .sp-media{height:230px;}
  #app .sp-pagination{flex-direction:column;align-items:stretch;}
  #app .sp-pagination .ss-pager{justify-content:center;}
  #app .sp-pagination .ss-select{width:100%;}
}
/* telefon: filtry jeden pod drugim, żeby natywne selekty nie ucinały etykiet */
@media (max-width:520px){
  #app .sp-filters{grid-template-columns:minmax(0,1fr);gap:8px;}
}
