/* Public stream schedule — occurrence data comes from /streams */
.public-stream-schedule {
  margin-bottom: 16px;
}

.stream-schedule-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}

.stream-timezone-control {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:.8rem;
  font-weight:700;
}

.stream-timezone-picker {
  position:relative;
  width:270px;
}

.stream-timezone-picker input {
  width:100%;
  min-height:38px;
  border:1px solid #4a5361;
  border-radius:8px;
  background:#11151a;
  color:var(--text);
  padding:7px 9px;
  font:inherit;
  box-sizing:border-box;
}

.stream-timezone-picker > small {
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.72rem;
}

.stream-timezone-results {
  position:absolute;
  z-index:50;
  top:42px;
  left:0;
  right:0;
  max-height:280px;
  overflow-y:auto;
  border:1px solid #4a5361;
  border-radius:8px;
  background:#11151a;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
}

.stream-timezone-results button {
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid #252b33;
  background:transparent;
  color:var(--text);
  padding:9px 10px;
  text-align:left;
  font:inherit;
  cursor:pointer;
}

.stream-timezone-results button:hover,
.stream-timezone-results button:focus {
  background:#202731;
}

.stream-timezone-empty {
  display:block;
  padding:10px;
  color:var(--muted);
}

.stream-featured {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr);
  overflow:hidden;
  border:1px solid #356ca8;
  border-radius:16px;
  background:linear-gradient(180deg,#1b2b40 0%,#19222e 100%);
}

.stream-featured:has(.stream-featured-media) { grid-template-columns:minmax(220px,.7fr) minmax(0,1.45fr) minmax(250px,.75fr); }
.stream-featured-media { min-height:100%; background:#0b1016; }
.stream-featured-media img { display:block; width:100%; height:100%; min-height:220px; object-fit:cover; }

.stream-featured-main {
  min-width:0;
  padding:20px;
}

.stream-featured-side {
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:9px;
  padding:20px;
  border-left:1px solid #35506f;
  background:rgba(9,17,27,.3);
}

.stream-featured h3 {
  margin:3px 0 8px;
  font-size:clamp(1.35rem,3vw,2rem);
}

.stream-featured-game {
  margin:0 0 12px;
  color:#82bcff;
  font-weight:900;
}

.stream-featured-description {
  margin:0;
  max-width:700px;
  color:var(--muted);
}

.stream-featured-time {
  font-size:1.1rem;
  font-weight:900;
}

.stream-featured-countdown {
  color:#9acbff;
  font-size:1rem;
  font-weight:900;
}

.stream-schedule-badges,
.stream-featured-actions {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}

.stream-schedule-badge {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  border:1px solid #486887;
  border-radius:999px;
  background:#172433;
  padding:4px 9px;
  font-size:.72rem;
  font-weight:900;
}

.stream-schedule-badge--prizes {
  border-color:#39714b;
  background:rgba(21,59,36,.45);
  color:#9ee4b3;
}

.stream-featured-actions a {
  display:inline-flex;
  align-items:center;
  min-height:36px;
  border:1px solid #3c5877;
  border-radius:9px;
  background:#172433;
  padding:7px 11px;
  color:var(--text);
  font-size:.84rem;
  font-weight:800;
  text-decoration:none;
}

.stream-featured-actions a:hover {
  border-color:#668db7;
  background:#1d3044;
}

.stream-upcoming {
  margin-top:10px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--panel);
  overflow:hidden;
}

.stream-upcoming-head {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:11px 14px;
  border-bottom:1px solid var(--border);
}

.stream-upcoming-head strong {
  font-size:.9rem;
}

.stream-upcoming-head span {
  color:var(--muted);
  font-size:.78rem;
}

.stream-upcoming-list {
  display:flex;
  flex-direction:column;
}

.stream-upcoming-row {
  display:grid;
  grid-template-columns:minmax(170px,.9fr) minmax(0,1fr) 190px;
  align-items:center;
  gap:12px;
  min-height:58px;
  padding:10px 14px;
  border-top:1px solid #353c46;
}

.stream-upcoming-row:first-child {
  border-top:0;
}

.stream-upcoming-when strong,
.stream-upcoming-when span,
.stream-upcoming-game strong,
.stream-upcoming-game span {
  display:block;
}

.stream-upcoming-when span,
.stream-upcoming-game span {
  color:var(--muted);
  font-size:.76rem;
}

.stream-upcoming-row .stream-schedule-badges {
  margin-top:0;
  justify-content:flex-end;
}

@media (max-width:760px) {
  .stream-schedule-toolbar {
    align-items:flex-start;
    flex-direction:column;
  }

  .stream-timezone-control {
    width:100%;
    align-items:flex-start;
    flex-direction:column;
  }

  .stream-timezone-picker {
    width:100%;
  }

  .stream-featured,
  .stream-featured:has(.stream-featured-media) {
    grid-template-columns:1fr;
  }

  .stream-featured-media img { min-height:0; aspect-ratio:16/9; }

  .stream-featured-side {
    border-left:0;
    border-top:1px solid #35506f;
  }

  .stream-upcoming-row {
    grid-template-columns:1fr;
    gap:5px;
  }

  .stream-upcoming-row .stream-schedule-badges {
    justify-content:flex-start;
  }
}
