/* Линейка времени — одна сетка для всех расписаний (владелец 14.11; раскладка — apps/sport/setka.py,
   разметка — portal/_setka.html). Колонки — дни/залы/дорожки, строки — шаг сетки (10 мин, у бассейна 15),
   долгий пустой промежуток — строкой «перерыв». На телефоне — тот же набор блоков списком. */
.lt-obertka{overflow-x:auto;margin:8px 0 6px;}
.lt{display:grid;column-gap:4px;position:relative;}
.lt-ugol{grid-column:1;grid-row:1;position:sticky;left:0;z-index:4;background:var(--surface,#fff);}
.lt-shapka{grid-row:1;text-align:center;font-weight:600;font-size:12.5px;padding:4px 2px 6px;
  border-bottom:1px solid var(--line,#e3e6ec);}
.lt-shapka span{display:block;font-weight:400;font-size:11.5px;color:var(--ink-3,#6b7280);}
.lt-shapka a{color:inherit;}
.lt-segodnya{color:var(--brand,#1d4ed8);}
.lt-fon{grid-row:2 / -1;border-radius:6px;background:var(--bg,#f7f8fa);}
.lt-fon.lt-segodnya{background:color-mix(in srgb,var(--brand,#1d4ed8) 7%,var(--bg,#f7f8fa));}
.lt-vremya{grid-column:1;font-size:10.5px;color:var(--ink-3,#6b7280);line-height:1;text-align:right;
  padding-right:4px;transform:translateY(-5px);position:sticky;left:0;z-index:3;background:var(--surface,#fff);}
.lt-liniya{grid-column:2 / -1;border-top:1px dotted color-mix(in srgb,var(--line,#e3e6ec) 70%,transparent);z-index:1;pointer-events:none;}
.lt-liniya.lt-chas{border-top:1px solid var(--line,#e3e6ec);}
.lt-razryv{grid-column:1 / -1;align-self:stretch;display:flex;align-items:center;justify-content:center;
  font-size:11.5px;color:var(--ink-3,#6b7280);background:var(--surface,#fff);z-index:2;
  border-top:1px dashed var(--line,#e3e6ec);border-bottom:1px dashed var(--line,#e3e6ec);}
.lt-blok{position:relative;z-index:2;align-self:stretch;box-sizing:border-box;overflow:hidden;
  border-radius:6px;padding:2px 5px;font-size:11px;line-height:1.25;
  background:var(--lt-fon,#e8efff);border:1px solid var(--lt-kant,#9db4e8);border-left-width:3px;color:var(--ink,#111827);}
.lt-blok b{font-weight:600;}
.lt-blok a{color:inherit;}
.lt-blok .lt-tsifra{font-weight:600;white-space:nowrap;}
.lt-blok .muted,.lt-sp-blok .muted{color:var(--ink-3,#6b7280);}
/* Чужое на экране «своего» (тренер — чужие группы, аренда — занятия других): бледно. */
.lt-blok.lt-chuzhoe,.lt-sp-blok.lt-chuzhoe{opacity:.65;}
/* Фоновый блок (окно брони стола): под остальными, во всю ширину колонки. */
.lt-blok.lt-pod{z-index:1;border-style:dashed;border-left-width:1px;color:var(--ink-3,#6b7280);}
.lt-okno{--lt-fon:#eef8fb;--lt-kant:#9fd3e3;}
.lt-bron{--lt-fon:#d9f5e6;--lt-kant:#12b76a;}
.lt-bron-zhdyot{--lt-fon:#fff1d6;--lt-kant:#f79009;}
/* Свободная клетка, по которой можно щёлкнуть (бассейн: «+» — окно на это время). */
.lt-pusto{z-index:2;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1;
  color:transparent;cursor:pointer;border-radius:4px;user-select:none;}
.lt-pusto:hover,.lt-pusto:focus{color:#2e7d32;background:#e3efe3;}
.lt-pusto.lt-vybrano{color:#1a3d7c;background:#dbe6fb;outline:2px solid #1a3d7c;outline-offset:-2px;}
.lt-seychas{grid-row:auto;z-index:3;border-top:2px solid #d92d20;height:0;align-self:start;pointer-events:none;}
.lt-legenda{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;margin:4px 0 0;color:var(--ink-2,#374151);}
.lt-legenda span[class^="lt-"]::before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;
  margin-right:5px;background:var(--lt-fon);border:1px solid var(--lt-kant);border-left-width:3px;}

/* Цвет по виду занятия — служебные расписания (решение 14.11). */
.lt-gz{--lt-fon:#e6efff;--lt-kant:#4d7bd6;}
.lt-platno{--lt-fon:#e4f5ea;--lt-kant:#2f9a5b;}
.lt-usluga{--lt-fon:#e2f5f6;--lt-kant:#2a9aa3;}
.lt-plavanie{--lt-fon:#e3f3fc;--lt-kant:#3b9bd4;}
.lt-meropr{--lt-fon:#f2e8fb;--lt-kant:#8b4fc4;}
.lt-arenda{--lt-fon:#fdeedd;--lt-kant:#c2621d;
  background:repeating-linear-gradient(135deg,rgba(214,110,40,.22) 0 5px,rgba(214,110,40,.07) 5px 10px);}
.lt-sluzh{--lt-fon:#eef0f3;--lt-kant:#98a2b3;color:#344054;
  background:repeating-linear-gradient(135deg,#e4e7ec 0 5px,#f2f4f7 5px 10px);}
.lt-legenda .lt-arenda,.lt-legenda .lt-sluzh{background:none;}
.lt-legenda .lt-arenda::before{background:repeating-linear-gradient(135deg,rgba(214,110,40,.35) 0 3px,rgba(214,110,40,.1) 3px 6px);}
.lt-legenda .lt-sluzh::before{background:repeating-linear-gradient(135deg,#d0d5dd 0 3px,#f2f4f7 3px 6px);}

/* Свободные места — экраны записи для клиентов (свободное плавание, бронь). */
.lt-svobodno{--lt-fon:#e6f6ec;--lt-kant:#2f9a5b;}
.lt-malo{--lt-fon:#fff4e0;--lt-kant:#d08a00;}
.lt-net{--lt-fon:#fdecec;--lt-kant:#c23b3b;}

/* Кабинет семьи: у каждого ребёнка свой цвет. */
.lt-ch0{--lt-fon:#e6efff;--lt-kant:#4d7bd6;}
.lt-ch1{--lt-fon:#e4f5ea;--lt-kant:#2f9a5b;}
.lt-ch2{--lt-fon:#f2e8fb;--lt-kant:#8b4fc4;}
.lt-ch3{--lt-fon:#fdeedd;--lt-kant:#c2621d;}
.lt-ch4{--lt-fon:#e2f5f6;--lt-kant:#2a9aa3;}
.lt-ch5{--lt-fon:#fbe7ef;--lt-kant:#c23b74;}

/* Телефон: список по колонкам. */
.lt-spisok{display:none;}
.lt-spisok section{margin:0 0 10px;}
.lt-spisok h4{margin:0 0 4px;font-size:13.5px;}
.lt-spisok h4 span{font-weight:400;color:var(--ink-3,#6b7280);}
.lt-sp-blok{border-radius:6px;padding:5px 8px;margin:0 0 4px;font-size:13px;line-height:1.3;
  background:var(--lt-fon,#e8efff);border:1px solid var(--lt-kant,#9db4e8);border-left-width:3px;}
@media (max-width:700px){
  .lt-obertka{display:none;}
  .lt-spisok{display:block;}
}
@media print{
  .lt-obertka{overflow:visible;}
  .lt{min-width:0 !important;}
}
