/* publish-site.css — styles specific to the generated Programme Overview and
   Technical Programme pages. Layered on top of the site's own styles.css
   (variables like --accent/--success/--muted/--surface/--shadow are defined there). */

/* ---- shared ---- */
.grid-status, .result-count { color: var(--muted); font-size: 14px; }
.grid-generated { color: var(--muted); font-size: 12px; margin-top: 18px; }

/* ---- day tabs ---- */
.day-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.day-tab {
  border: 1px solid rgba(3,59,111,0.15); background: var(--surface); color: var(--accent);
  border-radius: 999px; padding: 8px 16px; font-family: var(--ff-sans); font-weight: 600;
  font-size: 13px; cursor: pointer;
}
.day-tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ---- overview grid ---- */
.grid-scroll { overflow-x: auto; border: 1px solid rgba(10,15,30,0.08); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.sched-grid { display: flex; min-width: max-content; }
.time-axis { width: 56px; flex-shrink: 0; position: sticky; left: 0; background: var(--surface); z-index: 2; }
.time-axis-header, .room-col-header { height: 34px; display: flex; align-items: center; justify-content: center; border-bottom: 2px solid rgba(10,15,30,0.1); font-size: 12px; font-weight: 700; color: var(--accent); position: sticky; top: 0; background: var(--surface); z-index: 3; }
.time-axis-body { position: relative; }
.time-label { position: absolute; right: 6px; font-size: 10px; color: var(--muted); transform: translateY(-50%); }
.hour-line { position: absolute; left: 0; right: 0; border-top: 1px solid rgba(10,15,30,0.08); }
.room-columns { display: flex; }
.room-col { width: 170px; flex-shrink: 0; border-left: 1px solid rgba(10,15,30,0.08); }
.room-col-body { position: relative; }
.chip {
  position: absolute; left: 3px; right: 3px; border-radius: 6px; padding: 4px 6px;
  color: #fff; font-size: 11px; line-height: 1.25; overflow: hidden; cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2); text-decoration: none; display: block;
}
.chip:hover, .chip:focus { filter: brightness(1.08); text-decoration: none; color: #fff; }
.chip .chip-time { display: block; font-size: 9px; opacity: 0.85; }
.chip .chip-room { display: block; font-size: 9px; opacity: 0.85; }

/* ---- detailed listing / filters ---- */
.filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 8px; }
.filters input, .filters select {
  font-family: var(--ff-sans); font-size: 14px; padding: 8px 10px; border-radius: 8px;
  border: 1px solid rgba(10,15,30,0.15); background: var(--surface); color: var(--muted);
}
.filters input[type="search"] { flex: 1 1 240px; min-width: 200px; }

.entry-card { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px 20px; margin-bottom: 16px; scroll-margin-top: 90px; }
.entry-card h3 { margin: 0 0 4px; color: var(--accent); font-size: 18px; }
.entry-meta { color: var(--muted); font-size: 13px; margin-bottom: 8px; }
/* Session/event type is color-only, no text label (2026-09-24, on request):
   a small dot wherever there's no enclosing .meta-session to carry the color
   as a side accent instead (active search results; a bare event card). */
.entry-badge, .session-tag-badge {
  display: inline-block; width: 9px; height: 9px; border-radius: 2px;
  margin-right: 6px; vertical-align: middle;
}
.paper-authors { font-size: 13px; color: var(--muted); }
.paper-card .paper-title-main { margin: 0 0 4px; }
.paper-time { font-size: 12px; font-weight: 700; color: var(--accent); margin-bottom: 2px; }
.session-tag { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(10,15,30,0.06); font-size: 12px; color: var(--muted); }
.paper-abstract { font-size: 13px; color: var(--muted); font-style: italic; margin-top: 4px; }
.abstract-toggle { margin-top: 4px; }
.abstract-toggle summary {
  color: var(--accent); font-size: 13px; font-weight: 600; cursor: pointer;
  list-style: none; display: inline-block;
}
.abstract-toggle summary::-webkit-details-marker { display: none; }
.abstract-toggle summary:hover { text-decoration: underline; }
.abstract-toggle[open] summary { margin-bottom: 4px; }
.abstract-toggle[open] summary::after { content: none; }
.speaker-block { font-size: 13px; color: var(--muted); margin-top: 6px; }

/* ---- grouped browsing: a named meta-session (workshop, grand-challenge
   block, or any plain session/event) of contributions or named
   sub-sessions ---- */
.meta-session {
  border-left: 4px solid var(--accent);
  padding-left: 16px;
  margin: 28px 0 20px;
}
.meta-session:first-child { margin-top: 0; }
.group-heading {
  color: var(--accent); font-size: 20px; margin: 28px 0 10px; padding-bottom: 6px;
  border-bottom: 2px solid rgba(3,59,111,0.15); scroll-margin-top: 90px;
}
.group-heading:first-child { margin-top: 0; }
.subsession-heading {
  font-weight: 700; color: var(--muted); font-size: 14px; margin: 16px 0 6px; scroll-margin-top: 90px;
}
.grouped-paper {
  background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 10px 16px; margin-bottom: 8px;
}
.grouped-paper .paper-title { font-weight: 700; color: var(--muted); }

@media (max-width: 640px) {
  .room-col { width: 130px; }
}
