/********************************************************
 * PLAYER CARDS · BASE
 ********************************************************/

.pc-card{
  --pc-accent-rgb: 120,255,210;
  --pc-accent-strong: .10;
  --pc-accent-soft: .04;
  --pc-accent-border: .12;
  --pc-accent-glow: .06;

  container-type: inline-size;
  container-name: pc-card;
  border: 1px solid rgba(var(--pc-accent-rgb), var(--pc-accent-border)) !important;
  border-radius: 16px !important;
  background:
    radial-gradient(circle at top left, rgba(var(--pc-accent-rgb), .07), transparent 34%),
    linear-gradient(180deg, rgba(13,18,22,.96) 0%, rgba(10,14,18,.94) 100%) !important;
  box-shadow:
    0 10px 28px rgba(0,0,0,.28),
    0 0 0 1px rgba(var(--pc-accent-rgb), .03) inset,
    0 0 18px rgba(var(--pc-accent-rgb), var(--pc-accent-glow));
  overflow: hidden;
  position: relative;
}

.pc-card::before{
  content:"";
  position:absolute;
  top:0;
  left:18px;
  right:18px;
  height:1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(var(--pc-accent-rgb), .24),
    transparent
  );
  pointer-events:none;
  z-index:2;
}

.pc-card-header{
  background:
    radial-gradient(circle at top left, rgba(var(--pc-accent-rgb), var(--pc-accent-strong)), transparent 45%),
    linear-gradient(180deg, rgba(19,25,30,.98), rgba(14,18,22,.96)) !important;
  border-bottom: 1px solid rgba(var(--pc-accent-rgb), .14) !important;
  padding: 10px 14px !important;
  overflow: visible !important;
}

.pc-card-body{
  background:
    radial-gradient(circle at top left, rgba(var(--pc-accent-rgb), var(--pc-accent-soft)), transparent 42%),
    transparent !important;
  padding: 10px 14px 12px 14px !important;
}

/********************************************************
 * PLAYER CARDS · STATUS TONES
 ********************************************************/

.pc-card.pc-status-neutral{
  --pc-accent-rgb: 120,255,210;
  --pc-accent-strong: .10;
  --pc-accent-soft: .04;
  --pc-accent-border: .12;
  --pc-accent-glow: .06;
}

.pc-card.pc-status-follow{
  --pc-accent-rgb: 57,255,20;
  --pc-accent-strong: .18;
  --pc-accent-soft: .08;
  --pc-accent-border: .18;
  --pc-accent-glow: .10;
}

.pc-card.pc-status-maybe{
  --pc-accent-rgb: 255,193,7;
  --pc-accent-strong: .16;
  --pc-accent-soft: .07;
  --pc-accent-border: .17;
  --pc-accent-glow: .09;
}

.pc-card.pc-status-no{
  --pc-accent-rgb: 220,53,69;
  --pc-accent-strong: .16;
  --pc-accent-soft: .07;
  --pc-accent-border: .17;
  --pc-accent-glow: .09;
}

/********************************************************
 * PLAYER CARDS · HEADER
 ********************************************************/

.pc-header{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:10px;
  width:100%;
  min-width:0;
  overflow:visible;
}

.pc-header > *{
  min-width:0;
  flex-shrink:1;
}

.pc-avatar-stack{
  position:relative;
  width:68px;
  height:64px;
  flex:0 0 68px;
  overflow:visible;
}

.pc-avatar-img,
.pc-avatar-fallback{
  position:absolute;
  top:5px;
  left:7px;
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  display:block;
  border:1.5px solid rgba(255,255,255,.22);
  box-shadow:
    0 4px 12px rgba(0,0,0,.22),
    0 0 0 1px rgba(0,0,0,.12) inset;
}

.pc-avatar-fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:20px;
  color:#EFFFF6;
  background: linear-gradient(135deg,#014735 0%,#04795a 100%);
}

.pc-badge{
  position:absolute;
  z-index:4;
  pointer-events:none;
}

.pc-badge-flag{
  right:1px;
  bottom:6px;
}

.pc-mini-flag{
  width:18px;
  height:18px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid #06BE84;
  background:#023e2f;
}

.pc-badge-dorsal{
  top:-1px;
  left:0;
  padding:2px 7px;
  border-radius:999px;
  background:#025740;
  border:2px solid #06BE84;
  box-shadow:0 1px 4px rgba(0,0,0,.3);
  color:#EFFFF6;
  font-weight:900;
  font-size:10px;
  line-height:1;
}

.pc-badge-pos{
  left:0;
  bottom:4px;
}

.pc-pos-pill{
  min-width:30px;
  height:18px;
  padding:0 7px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#023e2f;
  border:2px solid #06BE84;
  color:#EFFFF6;
  font-weight:900;
  font-size:10px;
  line-height:1;
  white-space:nowrap;
}

.pc-name-block{
  min-width:0;
  flex:1 1 280px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.pc-player-name{
  color:#fff;
  font-size:1.08rem;
  font-weight:900;
  line-height:1.04;
  letter-spacing:.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pc-player-subtitle{
  margin-top:3px;
  color:#d9fff0;
  opacity:.88;
  font-size:.82rem;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pc-head-slot{
  min-width:0;
  flex:0 1 auto;
  display:flex;
  align-items:center;
}

.pc-meta-block{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.pc-meta-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.pc-meta-icon{
  width:38px;
  height:38px;
  border-radius:50%;
  object-fit:cover;
  display:block;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 1px 3px rgba(0,0,0,.28);
  flex:0 0 38px;
}

.pc-league-stack{
  position:relative;
  width:38px;
  height:38px;
  flex:0 0 38px;
}

.pc-age-overlay{
  position:absolute;
  right:-2px;
  bottom:-2px;
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid #025740;
  background:#012b22;
  box-shadow:0 1px 3px rgba(0,0,0,.35);
}

.pc-meta-text{
  color:#fff;
  font-weight:800;
  font-size:.84rem;
  line-height:1.05;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:180px;
}

.pc-meta-subtext{
  margin-top:2px;
  color:#ddfff1;
  opacity:.82;
  font-size:.72rem;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:180px;
}

.pc-header img{
  display:block;
}

.pc-header [title]{
  cursor:help;
}

.pc-card.pc-compact .pc-text{
  display:none !important;
}

.pc-card.pc-compact .pc-head-slot{
  flex:0 0 auto;
}

.pc-card.pc-compact .pc-meta-block{
  gap:6px;
}

.pc-card.pc-compact .pc-meta-icon,
.pc-card.pc-compact .pc-league-stack{
  width:36px;
  height:36px;
  flex:0 0 36px;
}

.pc-card.pc-compact .pc-age-overlay{
  width:17px;
  height:17px;
}

.pc-card.pc-compact .pc-header{
  gap:8px;
}

.pc-card.pc-compact .pc-name-block{
  flex:1 1 auto;
  min-width:0;
}

.pc-card.pc-ultra-compact .pc-avatar-stack{
  width:60px;
  height:58px;
  flex:0 0 60px;
}

.pc-card.pc-ultra-compact .pc-avatar-img,
.pc-card.pc-ultra-compact .pc-avatar-fallback{
  top:5px;
  left:6px;
  width:46px;
  height:46px;
}

.pc-card.pc-ultra-compact .pc-badge-dorsal{
  font-size:9px;
  padding:2px 6px;
}

.pc-card.pc-ultra-compact .pc-pos-pill{
  min-width:28px;
  height:17px;
  font-size:9px;
  padding:0 6px;
}

.pc-card.pc-ultra-compact .pc-mini-flag{
  width:17px;
  height:17px;
}

.pc-card.pc-ultra-compact .pc-player-name{
  font-size:.98rem;
}

.pc-card.pc-ultra-compact .pc-player-subtitle{
  font-size:.77rem;
}

.pc-card.pc-ultra-compact .pc-header{
  gap:7px;
}

/********************************************************
 * PLAYER CARDS · MAIN LAYOUT
 ********************************************************/

.pc-main{
  display:grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(340px, 1fr);
  gap:10px;
  align-items:stretch;
  width:100%;
}

.pc-card.pc-has-field .pc-main{
  grid-template-columns: minmax(0, 1.03fr) minmax(340px, .96fr);
}

.pc-col{
  min-width:0;
}

.pc-surface{
  background:
    linear-gradient(180deg, rgba(var(--pc-accent-rgb), .035), rgba(255,255,255,.02));
  border:1px solid rgba(var(--pc-accent-rgb), .10);
  border-radius:14px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 4px 12px rgba(0,0,0,.14);
}

/********************************************************
 * PLAYER CARDS · MATCH BLOCK
 ********************************************************/

.pc-col-match{
  display:flex;
  flex-direction:column;
  gap:8px;
  height:100%;
}

.pc-match-wrap{
  position:relative;
  width:100%;
  padding:14px 12px 12px 12px;
  overflow:visible;
}

.pc-match-row{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:58px;
  margin-top:2px;
  margin-bottom:2px;
}

.pc-match-team{
  flex:1 1 0;
  min-width:0;
  display:flex;
  align-items:center;
  min-height:2.65em;
  max-height:2.65em;
}

.pc-match-team-left{
  justify-content:flex-end;
  text-align:right;
  padding-right:4px;
}

.pc-match-team-right{
  justify-content:flex-start;
  text-align:left;
  padding-left:4px;
}

.pc-team-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
  word-break:break-word;
  width:100%;
  color:#F3FFF8;
  font-weight:800;
  line-height:1.08;
  font-size:clamp(11px, 1.45cqw, 15px);
}

.pc-match-shield{
  width:38px;
  height:38px;
  flex:0 0 auto;
  border-radius:50%;
  object-fit:cover;
}

.pc-match-vs{
  flex:0 0 auto;
  min-width:22px;
  text-align:center;
  color:#bfffe1;
  font-size:11px;
  font-weight:900;
  letter-spacing:.05em;
  opacity:.88;
}

.pc-match-chips{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  max-width:92%;
  overflow:hidden;
  z-index:2;
}

.pc-match-chips-top{ top:-6px; }
.pc-match-chips-bottom{ bottom:-6px; }

.pc-match-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:2px 9px;
  font-size:10px;
  font-weight:900;
  line-height:1;
  color:#EFFFF6;
  background:
    linear-gradient(180deg, rgba(3,87,64,.94), rgba(2,60,45,.94));
  border:1px solid rgba(6,190,132,.56);
  border-radius:999px;
  box-shadow:
    0 4px 10px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.03);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ========================================================
   PLAYER CARDS · PILLS / INFO
   ======================================================== */

.pc-col-info{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  justify-content:flex-start;
  height:100%;
}

.pc-pills-row{
  --pill-h: 36px;
  --pill-pad-x: 10px;
  --pill-gap: 8px;
  --ico: 14px;
  --dot: 14px;
  --inner-pill-pad-x: 5px;
  --inner-pill-radius: 8px;
  --pills-scale: 1;

  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:space-between;
  gap:var(--pill-gap);
  width:100%;
  min-width:0;
  overflow:hidden;
  transform:scale(var(--pills-scale));
  transform-origin:left center;
}

.pc-pills-row .pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  height:var(--pill-h);
  padding:0 var(--pill-pad-x);
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.04));
  color:#EFFFF6;
  white-space:nowrap;
  min-width:0;
  flex:1 1 0;
  overflow:hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.02);
}

.pill-label{
  display:none !important;
}

.pill-icons{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
}

.seg-dot{
  width:var(--dot);
  height:var(--dot);
  border-radius:50%;
  flex:0 0 auto;
}

.foot-ico,
.body-ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  flex:0 1 auto;
  padding:2px var(--inner-pill-pad-x);
  border-radius:var(--inner-pill-radius);
  box-sizing:border-box;
}

.pill-ico-img{
  height:var(--ico);
  max-width:16px;
  display:block;
}

.pill-ico-group{
  display:flex;
  gap:4px;
  align-items:center;
  justify-content:center;
  min-width:0;
}

.pc-card.pc-pills-ultra .pc-pills-row{
  --pill-h: 30px;
  --pill-pad-x: 7px;
  --pill-gap: 6px;
  --ico: 12px;
  --dot: 12px;
  --inner-pill-pad-x: 4px;
  --inner-pill-radius: 7px;
}

.pc-card.pc-pills-wrap .pc-pills-row{
  flex-wrap:wrap;
  row-gap:6px;
  justify-content:flex-start;
  transform:none !important;
}

.pc-card.pc-pills-wrap .pc-pills-row .pill{
  flex:0 0 auto;
}

/********************************************************
 * PLAYER CARDS · NOTES
 ********************************************************/

.pc-notes{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding:10px 12px 10px 12px;
  margin-top:2px;
  contain:inline-size;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:0;
}

.pc-box-title{
  margin-bottom:5px;
  color:#dfffee;
  font-weight:800;
  font-size:.79rem;
  line-height:1;
  opacity:.92;
}

.pc-notes-preview{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal !important;
  color:#EFFFF6;
  opacity:.92;
  font-size:.87rem;
  line-height:1.20;
  min-height:3.50em;
  cursor:help;
}

.pc-notes-empty{
  color:#EFFFF6;
  opacity:.82;
  font-size:.87rem;
  line-height:1.20;
  min-height:3.50em;
}

.pc-pop-card{
  width:min(520px,80vw);
  background:#0E1413 !important;
  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:12px !important;
  box-shadow:0 8px 24px rgba(0,0,0,.45);
}

.pc-pop-card-body{
  padding:10px 12px !important;
  max-height:60vh;
  overflow:auto;
}

.pc-pop-title{
  margin-bottom:6px;
  color:#EFFFF6;
  font-size:.85rem;
  font-weight:800;
}

.pc-pop-body{
  white-space:pre-wrap;
  font-size:.92rem;
  line-height:1.25;
  color:#EFFFF6;
  opacity:.95;
}

/********************************************************
 * PLAYER CARDS · ACTIONS
 ********************************************************/

.pc-actions-row{
  margin-top:auto;
  padding-top:0;
  margin-bottom:0;
}

.pc-actions-row > [class*="col"]{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.pc-actions-row .pc-btn{
  min-height:30px;
  padding:5px 10px;
  border-radius:10px;
  font-size:.76rem;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  border:none;
  box-shadow:0 4px 10px rgba(0,0,0,.18);
}

.pc-actions-row .pc-btn.btn-primary{
  background:
    linear-gradient(180deg, rgba(6,190,132,.96), rgba(5,150,104,.96));
}

.pc-actions-row .pc-btn:disabled{
  opacity:.42;
  box-shadow:none;
}

/********************************************************
 * PLAYER CARDS · FIELD
 ********************************************************/

.pc-field-col{
  display:none;
}

.pc-card.pc-has-field .pc-field-col{
  display:none;
}

.pc-field{
  position:relative;
  width:100%;
  min-height:208px;
  height:100%;
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-template-rows:repeat(5, 1fr);
  gap:6px;
  padding:12px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(8,58,44,.96), rgba(7,46,35,.96)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 22px, rgba(255,255,255,.03) 22px 44px);
  border:1px solid rgba(6,190,132,.24);
}

.pc-field-midline{
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:2px;
  transform:translateX(-1px);
  background:rgba(233,255,247,.20);
}

.pc-field-cell{
  display:flex;
  align-items:center;
  justify-content:center;
}

.pc-field-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.46);
  opacity:.45;
}

.pc-field-node{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.pc-field-dot-selected{
  width:22px;
  height:22px;
  border-radius:50%;
  background:#06BE84;
  border:2px solid #E9FFF7;
  box-shadow:0 0 8px #06BE84, 0 0 14px #06BE84;
}

.pc-field-label{
  margin-top:4px;
  color:#EFFFF6;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
}

/********************************************************
 * PLAYER CARDS · RESPONSIVE / CONTAINER
 ********************************************************/

@container pc-card (min-width: 1020px){
  .pc-card.pc-has-field .pc-main{
    grid-template-columns: minmax(0, 1.02fr) minmax(330px, .90fr) minmax(220px, .46fr);
  }

  .pc-card.pc-has-field .pc-field-col{
    display:block;
  }
}

@container pc-card (max-width: 899px){
  .pc-main{
    grid-template-columns: 1fr;
    gap:10px;
  }

  .pc-col-info{
    order:2;
    height:auto;
  }

  .pc-col-match{
    order:1;
  }

  .pc-notes{
    flex:0 0 auto;
  }
}

@container pc-card (max-width: 620px){
  .pc-card.pc-compact .pc-player-name{
    font-size:.96rem;
  }

  .pc-card.pc-compact .pc-player-subtitle{
    font-size:.78rem;
  }

  .pc-match-row{
    min-height:54px;
    gap:6px;
  }

  .pc-match-shield{
    width:34px;
    height:34px;
  }

  .pc-team-text{
    font-size:11px;
  }

  .pc-match-vs{
    font-size:10px;
    min-width:20px;
  }

  .pc-pills-row{
    --pill-h:32px;
    --pill-pad-x:8px;
    --pill-gap:6px;
    --ico:14px;
    --dot:14px;
  }

  .pc-notes-preview,
  .pc-notes-empty{
    min-height:2.40em;
    -webkit-line-clamp:2;
  }
}

@media (max-width: 767.98px){
  .pc-card-header{
    padding:10px 12px !important;
  }

  .pc-card-body{
    padding:10px 12px 12px 12px !important;
  }

  .pc-main{
    grid-template-columns:1fr;
    gap:10px;
  }

  .pc-field-col{
    display:none !important;
  }

  .pc-actions-row .pc-btn{
    min-height:29px;
    font-size:.74rem;
  }
}





/********************************************************
 * PLAYER CARDS · MATCH BLOCK
 ********************************************************/

.pc-match-chips-top{
  top: -10px;
}

.pc-match-chips-bottom{
  bottom: -10px;
}

.pc-match-chip{
  min-height: 20px;
  padding: 2px 8px;
  font-size: 9px;
}