
/* Sessionize Tight Schedule */
.sts-schedule{ max-width:100%; }

/* Controls */
.sts-controls{
  display:flex;
  gap:0.5rem;
  justify-content:flex-end;
  margin: 0 0 0.6rem;
  flex-wrap: wrap;
}
.sts-btn{
  appearance:none;
  border:1px solid rgba(0,0,0,0.22);
  background: #EBC507;
  border-radius: 999px;
  padding: 0.35rem 0.7rem;
  font-size: 0.85rem;
  cursor:pointer;
}
.sts-btn:hover{ background: rgba(0,0,0,0.06); }
.sts-btn:focus{ outline: 2px solid currentColor; outline-offset: 2px; }

/* Grid of day columns */
.sts-grid{
  display:grid;
  gap:0.75rem;
  align-items:start;
  grid-auto-flow:column;
  grid-auto-columns:minmax(260px, 1fr);
  overflow-x:auto;
  padding-bottom:0.25rem;
  scroll-snap-type:x mandatory;
}

.sts-daycol{
  scroll-snap-align:start;
  border:1px solid rgba(0,0,0,0.10);
  border-radius:12px;
  padding:0.6rem 0.6rem 0.7rem;
  background: rgba(0,0,0,0.01);
  min-width:260px;
}

.sts-day{
  margin:0 0 0.55rem;
  font-size:1.05rem;
  line-height:1.2;
}

.sts-day-block{
  display:grid;
  gap:0.45rem;
}

/* Time-slot accordion */
.sts-slot{
  border:1px solid rgba(0,0,0,0.12);
  border-radius:10px;
  padding:0;
  overflow:hidden;
  background: rgba(0,0,0,0.02);
}

.sts-slot-summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  padding:0.55rem 0.7rem;
  font-weight:400;
}
.sts-slot-summary::-webkit-details-marker{ display:none; }

.sts-time{
  font-size:0.95rem;
  white-space:nowrap;
}

.sts-count{
  font-size:0.82rem;
  opacity:0.7;
  padding:0.1rem 0.45rem;
  border-radius:999px;
  border:1px solid rgba(0,0,0,0.16);
}

.sts-items{
  margin:0;
  padding:0.35rem 0.7rem 0.65rem;
  list-style:none;
  display:grid;
  gap:0.45rem;
}

.sts-item{ display:block; }
.sts-title{
  font-size:0.92rem;
  line-height:1.25;
  font-weight:600;
}
.sts-room{
  flex:0 0 auto;
  font-size:0.80rem;
  line-height:1;
  padding:0.35rem 0.55rem;
  border-radius:999px;
  border:1px solid rgba(0,0,0,0.22);
  background: rgba(0,0,0,0.06);
  white-space:nowrap;
}
.sts-desc{
  display:none; /* printed in separate print window */
}

/* Mobile */
@media (max-width:600px){
  .sts-controls{ justify-content:space-between; }
  .sts-grid{
    gap:0.6rem;
    grid-auto-columns:minmax(240px, 1fr);
  }
  .sts-daycol{ min-width:240px; }
    .sts-room{ white-space:normal; }
}




.sts-speaker-line{
  font-size: 0.8rem;
  font-style: italic;
  opacity: 0.75;
  margin-top: 0.2rem;
  margin-bottom: 0.35rem;
  line-height: 1.3;
}


/* Session row layout: left (title + speakers) stacked, right (room pill) */
.sts-itemrow{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:0.75rem;
}

.sts-left{
  min-width: 0;
}

.sts-title{
  display:block;
}

.sts-speaker-line{
  font-size: 0.8rem;
  font-style: italic;
  opacity: 0.75;
  margin-top: 0.2rem;
  margin-bottom: 0.35rem;
  line-height: 1.3;
}

.sts-right{
  flex: 0 0 auto;
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
}

@media (max-width:600px){
  .sts-itemrow{
    flex-direction: column;
    gap: 0.35rem;
  }
  .sts-right{
    justify-content:flex-start;
  }
}


/* Title + speakers stack on left, room pill on right */
.sts-itemrow{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:0.75rem;
}

.sts-left{ min-width: 0; }
.sts-right{ flex: 0 0 auto; display:flex; justify-content:flex-end; }

@media (max-width:600px){
  .sts-itemrow{ flex-direction: column; gap: 0.35rem; }
  .sts-right{ justify-content:flex-start; }
}


/* Force controls to the right (Astra-safe) */
.sts-controls{
  justify-content: flex-end !important;
}


/* Expand/collapse indicator on time blocks */
.sts-time::before{
  content: "+";
  display: inline-block;
  width: 1.1em;
  text-align: center;
  margin-right: 0.25rem;
  font-weight: 600;
  opacity: 0.85;
}

details[open] .sts-time::before{
  content: "-";
}
