/* assets/css/stream.css
   Stream Cards Pro – v1.0.0
*/

/* -------------------------
   Container
------------------------- */
.vsc-container{
  width:100%;
  max-width:100%;
  margin:0;
  padding:16px;
  box-sizing:border-box;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
}

/* -------------------------
   Category bar
------------------------- */
.vsc-cat-bar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}
.vsc-cat-btn{
  border:1px solid #e5e7eb;
  background:#f9fafb;
  color:#374151;
  padding:6px 12px;
  border-radius:999px;
  font-size:11px;
  cursor:pointer;
}
.vsc-cat-btn:hover{
  background:#eef4ff;
  border-color:#3b82f6;
  color:#1d4ed8;
}
.vsc-cat-active{
  background:#3b82f6;
  color:#fff;
  border-color:#3b82f6;
}

/* -------------------------
   List + spacing between cards
------------------------- */
.vsc-grid{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:14px;                 /* main spacing */
}

/* Fallback spacing (some WP themes break gap) */
.vsc-card{
  margin:0 0 14px 0;
}
.vsc-card:last-child{
  margin-bottom:0;
}

/* -------------------------
   Card
------------------------- */
.vsc-card{
  width:100%;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:16px;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(15,23,42,.08);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.vsc-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 38px rgba(15,23,42,.12);
  border-color:#c7d2fe;
}

/* -------------------------
   Match row: Left | Center | Right
------------------------- */
.vsc-match-row{
  width:100%;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
}

/* Stable wrapping on both sides */
.vsc-side{ min-width:0; }

.vsc-left{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  column-gap:8px;
  min-width:0;
  text-align:left;
}
.vsc-right{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  column-gap:8px;
  min-width:0;
  text-align:right;
}

/* Logos */
.vsc-team-logo2{
  width:46px;
  height:46px;
  border-radius:999px;
  object-fit:contain;
  background:#fff;
}

/* Team names (wrap, no dots) */
.vsc-team-name2{
  font-size:16px;
  font-weight:600;
  color:#0f172a;
  line-height:1.15;

  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;

  display:block !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;

  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* Center: time + status */
.vsc-center{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
.vsc-time-text{
  font-size:11px;
  font-weight:600;
  color:#4b5563;
}
.vsc-pill{
  padding:5px 12px;
  font-size:11px;
  font-weight:600;
  border-radius:999px;
  line-height:1;
  box-shadow:none;
}
.vsc-pill-green{ background:#10b981; color:#fff; }
.vsc-pill-red{ background:#ef4444; color:#fff; }
.vsc-pill-gray{ background:#6b7280; color:#fff; }

/* League bar */
.vsc-league-pill{
  margin-top:12px;
  background:#eef4ff;
  padding:10px 12px;
  border-radius:14px;
  text-align:center;
  font-size:9px;
  font-weight:600;
  letter-spacing:.06em;
  color:#3b5bdb;
  text-transform:uppercase;
}

/* Loader */
.vsc-loader{
  text-align:center;
  padding:24px;
  font-size:12px;
  color:#6b7280;
}
.vsc-loading-spinner{
  border:3px solid #f3f4f6;
  border-top:3px solid #3b82f6;
  border-radius:50%;
  width:28px;
  height:28px;
  animation:spin 1s linear infinite;
  margin:0 auto 12px;
}
@keyframes spin{ 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }

/* Modal */
.vsc-modal-back{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.7);
  display:none;
  z-index:9998;
}
.vsc-modal{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  padding:22px;
  border-radius:16px;
  width:90%;
  max-width:360px;
  display:none;
  z-index:9999;
  box-shadow:0 20px 45px rgba(15,23,42,.30);
}
.vsc-modal-title{
  text-align:center;
  font-size:16px;
  font-weight:700;
  margin-bottom:16px;
}
.vsc-links{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.vsc-stream-link{
  background:#10b981;
  color:#fff;
  text-align:center;
  padding:12px;
  border-radius:8px;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
}
.vsc-stream-link:hover{ background:#059669; }
.vsc-close{
  position:absolute;
  top:10px;
  right:10px;
  width:28px;
  height:28px;
  border-radius:50%;
  border:none;
  background:#ef4444;
  color:#fff;
  font-size:16px;
  cursor:pointer;
}

/* Stream page minimal styles (reuses your earlier hero classes) */
.vsc-stream{
  background:#fff;
  max-width:1000px;
  margin:1.5rem auto;
  box-shadow:0 3px 12px rgba(0,0,0,.08);
  border-radius:12px;
  overflow:hidden;
}
.vsc-back{
  display:inline-block;
  margin:1rem;
  padding:.5rem 1rem;
  background:#3b82f6;
  color:#fff;
  border-radius:8px;
  text-decoration:none;
  font-weight:600;
  font-size:.9rem;
}
.vsc-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.2rem;
  background:#f8fafc;
  border-top:1px solid #e2e8f0;
}
.vsc-team-logo-container{
  width:80px;
  height:80px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.vsc-match-title{
  font-size:1.2rem;
  margin:0 0 .4rem 0;
  font-weight:700;
  color:#1f2937;
  text-align:center;
}
.vsc-match-info{
  display:flex;
  justify-content:center;
  gap:.6rem;
  font-size:.9rem;
  color:#6b7280;
}
.vsc-league-name{
  font-weight:600;
  color:#3b82f6;
}
.vsc-kickoff-time{
  font-weight:600;
  color:#ef4444;
}
.vsc-live-badge{
  font-size:.8rem;
}

/* =========================
   MOBILE – Perfect small & wrap
========================= */
@media (max-width:720px){

  .vsc-container{ padding:12px; }

  .vsc-grid{ gap:12px; }

  .vsc-card{
    padding:14px;
    border-radius:16px;
    margin-bottom:12px;
  }
  .vsc-card:last-child{ margin-bottom:0; }

  /* shrink logo */
  .vsc-team-logo2{
    width:30px;
    height:30px;
  }

  /* FORCE wrap to 2 lines (no dots) */
  .vsc-team-name2{
    font-size:11px;
    font-weight:500;
    line-height:1.2;
  }

  /* make center smaller */
  .vsc-center{ gap:3px; }
  .vsc-time-text{
    font-size:9px;
    font-weight:500;
  }
  .vsc-pill{
    font-size:9px;
    font-weight:600;
    padding:3px 8px;
  }

  .vsc-league-pill{
    font-size:8px;
    padding:8px 10px;
    margin-top:10px;
    letter-spacing:.05em;
  }

  /* stream hero mobile */
  .vsc-hero{
    flex-direction:column;
    gap:.8rem;
    padding:1rem;
  }
  .vsc-team-logo-container{ width:70px; height:70px; }
  .vsc-match-title{ font-size:1.05rem; }
  .vsc-match-info{ font-size:.85rem; }
}