/* schedule.css — центральный компонент расписания: shell, sticky-табы дней,
   чипы фильтров дисциплин, список событий с inline-раскрытием.
   Зависит от tokens.css.
*/

.schedule-shell{
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01));
  border:1px solid var(--ink-faint);
  border-radius:var(--r-lg);
  /* B2 fix: overflow:clip вместо overflow:hidden — клиппинг сохраняется,
     но не создаётся scroll container, из-за которого position:sticky
     на .sched-top переставал работать. */
  overflow:clip;
}

.sched-top{
  /* Под компрессированный nav (.is-scrolled height 56px) — приклеиваемся
     ровно к его нижней границе. На странице с обычным nav (64px) под ним
     будет полоска 8px — это намеренно, видно что табы пришли из расписания. */
  position:sticky; top:56px; z-index:30;
  background:linear-gradient(180deg, rgba(11,26,48,.96), rgba(11,26,48,.92));
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ink-faint);
}

/* Day tabs */
.day-tabs{
  display:flex; gap:6px; overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:14px 14px 12px;
  scrollbar-width:thin; scrollbar-color:var(--ink-faint) transparent;
}
.day-tabs::-webkit-scrollbar{ height:6px; }
.day-tabs::-webkit-scrollbar-thumb{ background:var(--ink-faint); border-radius:4px; }
.day-tab{
  appearance:none; border:1px solid var(--ink-faint);
  background:rgba(255,255,255,.02); color:var(--ink-dim);
  border-radius:var(--r-md);
  padding:10px 16px;
  display:flex; flex-direction:column; align-items:flex-start; gap:2px;
  cursor:pointer; scroll-snap-align:start;
  min-width:120px; min-height:56px;
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.day-tab .d-num{ font-family:"JetBrains Mono", monospace; font-size:10px; letter-spacing:.18em; color:var(--ink-mute); }
.day-tab .d-date{ font-size:14px; font-weight:600; letter-spacing:-.01em; }
.day-tab .d-name{ font-size:11px; color:var(--ink-mute); }
.day-tab:hover{ background:var(--ink-ghost); color:var(--ink); }
.day-tab.is-active{
  background:linear-gradient(180deg, rgba(36,119,189,.45), rgba(28,129,215,.85));
  border-color:rgba(78,164,230,.6); color:#fff;
  box-shadow:0 6px 22px rgba(28,129,215,.30), inset 0 0 0 1px rgba(255,255,255,.12);
}
.day-tab.is-active .d-num, .day-tab.is-active .d-name{ color:rgba(255,255,255,.85); }

/* Chip filters */
.chip-row{
  display:flex; gap:8px; overflow-x:auto;
  padding:0 14px 14px;
  scrollbar-width:none;
}
.chip-row::-webkit-scrollbar{ display:none; }
.chip{
  appearance:none; border:1px solid var(--ink-faint);
  background:rgba(255,255,255,.02); color:var(--ink-dim);
  border-radius:var(--r-pill);
  padding:7px 14px; font-size:12px; font-weight:600;
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  white-space:nowrap; min-height:34px;
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.chip .dot{ width:8px; height:8px; border-radius:50%; }
.chip.is-all .dot{ display:none; }
.chip.is-cup .dot       { background:var(--blue); }
.chip.is-challenge .dot { background:var(--blue-2); }
.chip.is-dressage .dot  { background:var(--green); }
.chip.is-ceremony .dot  { background:var(--gold); }
.chip:hover{ background:var(--ink-ghost); color:var(--ink); }
.chip.is-on{ color:#fff; background:rgba(36,119,189,.22); border-color:rgba(78,164,230,.55); }
.chip.is-all.is-on{ background:rgba(255,255,255,.10); border-color:var(--ink-faint); color:#fff; }

/* Events list */
.events{
  display:flex; flex-direction:column;
  padding:8px 14px 18px;
}
.event{
  position:relative;
  display:grid; grid-template-columns:100px 1fr auto; gap:18px;
  padding:18px 14px 18px 18px;
  border-bottom:1px solid var(--ink-ghost);
  cursor:pointer;
  transition:background .2s var(--ease);
}
.event:last-child{ border-bottom:0; }
.event:hover{ background:rgba(255,255,255,.02); }
.event::before{
  content:""; position:absolute; left:0; top:14px; bottom:14px; width:3px; border-radius:3px;
  background:var(--blue-2);
}
.event.is-cup::before        { background:var(--blue); }
.event.is-challenge::before  { background:var(--blue-2); }
.event.is-dressage::before   { background:var(--green); }
.event.is-ceremony::before   { background:var(--gold); }
.event.is-rest::before       { background:var(--ink-faint); }

.event.is-rest{ background:rgba(255,255,255,.015); }
.event.is-rest:hover{ background:rgba(255,255,255,.03); }

.event .time{
  font-family:"JetBrains Mono", monospace;
  font-size:var(--t-time); font-weight:500;
  color:var(--ink); letter-spacing:.02em;
  line-height:1.05;
}
.event .time small{
  display:block;
  font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-mute);
  margin-top:6px; font-family:"Inter", sans-serif;
}
.event .time .all-day{
  font-family:"Inter", sans-serif;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-mute); font-weight:500; line-height:1.2;
}
.event .body{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.event .discipline-tag{
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  display:inline-flex; align-items:center; gap:8px; color:var(--ink-mute);
}
.event .discipline-tag .dt-dot{ width:7px; height:7px; border-radius:50%; }
.event.is-cup       .discipline-tag .dt-dot{ background:var(--blue); }
.event.is-challenge .discipline-tag .dt-dot{ background:var(--blue-2); }
.event.is-dressage  .discipline-tag .dt-dot{ background:var(--green); }
.event.is-ceremony  .discipline-tag .dt-dot{ background:var(--gold); }
.event.is-rest      .discipline-tag .dt-dot{ background:var(--ink-faint); }
.event .title{
  font-size:16px; font-weight:600; letter-spacing:-.005em; line-height:1.3;
}
.event .desc{
  font-size:13px; color:var(--ink-dim); line-height:1.5;
}
.event .right{
  display:flex; flex-direction:column; align-items:flex-end; gap:6px;
}
.event .category{
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-mute); font-family:"JetBrains Mono", monospace;
}
.event .toggle{
  width:28px; height:28px; border-radius:50%;
  border:1px solid var(--ink-faint); background:rgba(255,255,255,.04);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform .25s var(--ease), background .2s var(--ease);
}
.event.is-open .toggle{ transform:rotate(180deg); background:rgba(78,164,230,.18); border-color:rgba(78,164,230,.55); }

.event .details{
  grid-column:1 / -1;
  max-height:0; overflow:hidden; opacity:0;
  transition:max-height .35s var(--ease), opacity .25s var(--ease), margin-top .35s var(--ease);
  color:var(--ink-dim); font-size:13.5px; line-height:1.6;
  margin-top:0;
}
.event.is-open .details{ max-height:400px; opacity:1; margin-top:10px; }
.event .details .specs{
  display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:8px;
  font-family:"JetBrains Mono", monospace; font-size:11.5px; color:var(--ink-mute);
  letter-spacing:.06em;
}
.event .details .specs span b{ color:var(--ink-dim); font-weight:500; }

.empty-day{
  padding:48px 22px; text-align:center; color:var(--ink-mute); font-size:14px;
}

@media (max-width:680px){
  .event{ grid-template-columns:80px 1fr; padding:14px 12px 14px 16px; }
  .event .right{ grid-column:2; flex-direction:row; align-items:center; justify-content:space-between; gap:12px; }
  .event .time{ font-size:22px; }
  .event .title{ font-size:15px; }
}
