/* =====================================================
   Course Schedule Plugin — v3.0 UI
   ===================================================== */

:root {
  --cs-blue:#0071dc; --cs-blue-dark:#005bb5; --cs-blue-pale:#eaf3ff;
  --cs-yellow:#ffc221; --cs-yellow-dark:#e5ab0e; --cs-yellow-pale:#fffbf0;
  --cs-bg:#f4f6f9; --cs-bg2:#edf0f4;
  --cs-text-h:#111827; --cs-text-b:#374151; --cs-text-s:#6b7280; --cs-text-m:#9ca3af;
  --cs-border:#e5e7eb; --cs-border2:#d1d5db;
  --cs-success:#16a34a; --cs-success-bg:#f0fdf4;
  --cs-r4:4px; --cs-r6:6px; --cs-r8:8px; --cs-r12:12px; --cs-r16:16px;
}

/* ── FONTS ── */
.cs-page-header, .cs-page-wrap {
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing:antialiased;
  color:var(--cs-text-b);
  box-sizing:border-box;
}
.cs-page-header *, .cs-page-wrap * { box-sizing:border-box; }
.cs-page-wrap a { color:inherit; text-decoration:none; }

/* ── PAGE HEADER ── */
.cs-page-header {
  background:#fff;
  border-bottom:3px solid var(--cs-yellow);
  padding:2rem 0 1.75rem;
}
.cs-header-inner {
  max-width:1400px; margin:0 auto; padding:0 1.5rem;
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap;
}
.cs-header-left h1 {
  font-size:clamp(1.4rem,2.5vw,1.9rem); font-weight:700;
  color:var(--cs-text-h); letter-spacing:-.025em; line-height:1.2;
  margin:0 0 .3rem;
}
.cs-header-left p { font-size:.875rem; color:var(--cs-text-s); margin:0; }
.cs-header-stats { display:flex; gap:1.5rem; flex-wrap:wrap; align-items:center; }
.cs-h-stat { text-align:center; }
.cs-h-stat strong { display:block; font-size:1.35rem; font-weight:700; color:var(--cs-text-h); line-height:1.1; }
.cs-h-stat span { font-size:.7rem; color:var(--cs-text-m); text-transform:uppercase; letter-spacing:.07em; }
.cs-h-stat-div { width:1px; background:var(--cs-border); align-self:stretch; min-height:2rem; }

/* ── PAGE WRAP ── */
.cs-page-wrap { max-width:1400px; margin:0 auto; padding:1.75rem 1.5rem 4rem; }

/* ── FILTER CARD ── */
.cs-filter-card {
  background:#fff; border-radius:var(--cs-r16);
  border:1px solid var(--cs-border); padding:1.5rem 1.75rem; margin-bottom:1.5rem;
}

/* search row */
.cs-search-row {
  display:grid; grid-template-columns:1fr auto; gap:.75rem;
  align-items:center; margin-bottom:1.25rem;
}
.cs-s-wrap { position:relative; }
.cs-s-wrap .cs-s-ico {
  position:absolute; left:13px; top:50%; transform:translateY(-50%);
  color:var(--cs-text-m); pointer-events:none;
}
.cs-s-wrap input {
  width:100%; padding:10px 12px 10px 40px;
  border:1.5px solid var(--cs-border); border-radius:var(--cs-r8);
  font:inherit; font-size:.9rem; color:var(--cs-text-h); background:#fff;
  outline:none; transition:border .15s,box-shadow .15s;
}
.cs-s-wrap input::placeholder { color:var(--cs-text-m); }
.cs-s-wrap input:focus { border-color:var(--cs-blue); box-shadow:0 0 0 3px rgba(0,113,220,.1); }

/* === TRITEC: реорганизация раскладки фильтра (см. schedule-filter-form.php)
   1) поиск во всю ширину + кнопка "Найти"
   2) 6 полей в общей grid-сетке
   3) чекбоксы + периоды + сброс — та же сетка, периоды начинаются
      точно под датами благодаря ЯВНОМУ (не auto) присвоению колонок
      каждому полю по id/классу — устойчиво к тому, что вендора может
      не быть в разметке вовсе (просто пустует своя колонка, остальные
      поля не сдвигаются).

   Единые размеры шрифта на весь блок (раньше "плясали" — разные .62/.68/
   .72/.75/.78/.8/.9/1rem в разных местах):
   - подписи полей (НАПРАВЛЕНИЕ/ДАТА НАЧАЛА/...): .7rem — везде одинаково
   - текст в полях/кнопках/чипах: .875rem — везде одинаково
   === */

.cs-filter-grid {
  display:grid !important;
  grid-template-columns:1.3fr 1.3fr .85fr .85fr .85fr .85fr;
  gap:.75rem; align-items:stretch; margin-bottom:1rem;
}
.cs-filter-grid > .cs-fld {
  display:flex; flex-direction:column;
}
.cs-filter-grid > .cs-fld > label { font-size:.7rem; }

/* Явные позиции колонок — независимо от того, в каком порядке элементы
   реально идут в DOM и есть ли среди них вендор. */
#cs-ms-fld           { grid-column:1; position:relative; }
#cs-ms-fld-vendor     { grid-column:2; position:relative; }
.cs-fld-date-from     { grid-column:3; }
.cs-fld-date-to       { grid-column:4; }
.cs-fld-format        { grid-column:5; }
.cs-fld-city          { grid-column:6; }

/* Единая высота и размер текста всех контролов — раньше select/input/
   кнопка мультиселекта отличались по факту, несмотря на общее правило:
   добавляю ID-селекторы для триггеров (надёжнее вложенного класса). */
.cs-filter-grid select,
.cs-filter-grid .cs-fp-inp,
#cs-ms-trigger,
#cs-ms-trigger-vendor {
  box-sizing:border-box !important; font-size:.875rem !important;
}
.cs-ms-placeholder { font-size:.875rem; }

/* row 3 — та же сетка: чекбоксы под направление+вендор, периоды под
   датами и занимают 3 колонки (иначе 5 чипов не помещались — отсюда
   "пустой" обрезанный Сбросить даты), кнопка сброса — узкая, в
   последней колонке. */
.cs-filter-grid-3 { align-items:center; padding-top:1.1rem; border-top:1px solid var(--cs-border); margin-bottom:0; }

.cs-filter-grid-3 .cs-checkboxes {
  grid-column:1 / 3;
  display:flex; flex-wrap:nowrap; align-items:center; gap:.75rem;
  margin-left:.35rem; padding:.6rem .9rem;
  background:var(--cs-bg); border-radius:var(--cs-r8);
}
.cs-filter-grid-3 .cs-cb-label {
  font-size:.8rem; gap:.4rem; line-height:1; white-space:nowrap;
  display:flex; align-items:center;
}
.cs-filter-grid-3 .cs-cb-box { width:17px; height:17px; flex-shrink:0; }
.cs-filter-grid-3 .cs-tag-ok, .cs-filter-grid-3 .cs-tag-sale { font-size:.68rem; padding:1px 8px; line-height:1.4; }

.cs-filter-grid-3 .cs-quick-dates {
  grid-column:3 / 6;
  display:flex; align-items:center; gap:.4rem; flex-wrap:nowrap;
  overflow-x:auto; -ms-overflow-style:none; scrollbar-width:none;
}
.cs-filter-grid-3 .cs-quick-dates::-webkit-scrollbar { display:none; }
.cs-filter-grid-3 .cs-qchip { padding:5px 10px; font-size:.75rem; white-space:nowrap; flex-shrink:0; }
.cs-filter-grid-3 .cs-period-label { flex-shrink:0; font-size:.75rem; }

.cs-filter-grid-3 .cs-filter-actions {
  grid-column:6;
  display:flex; justify-content:flex-end;
}

/* Кнопка "Сбросить все" — прежде слишком выделялась (жирный шрифт,
   крупные отступы). Уменьшена, лёгкий тёплый акцент вместо кричащего. */
#cs-btn-reset.cs-btn-ghost {
  padding:7px 14px; font-size:.8rem; font-weight:600;
  background:#fef2f2; border-color:#fca5a5; color:#b91c1c;
}
#cs-btn-reset.cs-btn-ghost:hover {
  background:#fee2e2; border-color:#f87171; color:#991b1b;
}

/* На узких экранах — сетка в один столбец, всё друг под другом */
@media (max-width:900px) {
  .cs-filter-grid, .cs-filter-grid-3 { grid-template-columns:1fr 1fr; }
  #cs-ms-fld, #cs-ms-fld-vendor, .cs-filter-grid-3 .cs-checkboxes { grid-column:1 / 3; }
  .cs-fld-date-from, .cs-fld-format { grid-column:1; }
  .cs-fld-date-to, .cs-fld-city { grid-column:2; }
  .cs-filter-grid-3 .cs-quick-dates, .cs-filter-grid-3 .cs-filter-actions { grid-column:1 / 3; }
}
@media (max-width:560px) {
  .cs-filter-grid, .cs-filter-grid-3 { grid-template-columns:1fr; }
  #cs-ms-fld, #cs-ms-fld-vendor, .cs-fld-date-from, .cs-fld-date-to, .cs-fld-format, .cs-fld-city,
  .cs-filter-grid-3 .cs-checkboxes, .cs-filter-grid-3 .cs-quick-dates, .cs-filter-grid-3 .cs-filter-actions {
    grid-column:1;
  }
}
/* === /TRITEC === */

/* filter row */
.cs-filter-row {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:.75rem; margin-bottom:1rem;
}
.cs-fld > label {
  display:block; font-size:.7rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.07em;
  color:var(--cs-text-m); margin-bottom:.4rem;
}
.cs-fld select, .cs-fld .cs-fp-inp {
  width:100%; padding:9px 30px 9px 11px;
  border:1.5px solid var(--cs-border); border-radius:var(--cs-r8);
  font:inherit; font-size:.875rem; color:var(--cs-text-h); background:#fff;
  outline:none; transition:border .15s,box-shadow .15s; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 9px center;
}
.cs-fld select:focus, .cs-fld .cs-fp-inp:focus { border-color:var(--cs-blue); box-shadow:0 0 0 3px rgba(0,113,220,.1); }
.cs-fld .cs-fp-inp {
  cursor:text;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='1.8'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}

/* ── MULTI-SELECT ── */
.cs-ms-wrap { position:relative; }
.cs-ms-trigger {
  width:100%; padding:9px 30px 9px 11px;
  border:1.5px solid var(--cs-border); border-radius:var(--cs-r8);
  font:inherit; font-size:.875rem; color:var(--cs-text-h); background:#fff;
  outline:none; cursor:pointer; text-align:left;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 9px center;
  display:flex; align-items:center; overflow:hidden;
  transition:border .15s,box-shadow .15s; min-height:40px;
}
.cs-ms-trigger.open, .cs-ms-trigger:focus-visible { border-color:var(--cs-blue); box-shadow:0 0 0 3px rgba(0,113,220,.1); }
/* === TRITEC: явный нейтральный hover — страховка, чтобы точно не было
   жёлтого фона на наведении, откуда бы он ни протекал === */
.cs-ms-trigger:hover { background:#fff; border-color:var(--cs-border2); }
.cs-ms-placeholder { color:var(--cs-text-m); font-size:.875rem; }
/* === TRITEC: было var(--cs-yellow) — заменено на синий, в тон остальной
   палитре мультиселекта (граница/чекбокс/фокус уже синие) === */
.cs-ms-count { background:var(--cs-blue); color:#fff; font-size:.7rem; font-weight:700; padding:1px 7px; border-radius:40px; margin-left:6px; flex-shrink:0; }
.cs-ms-dropdown {
  position:absolute; top:calc(100% + 5px); left:0; right:0;
  background:#fff; border:1.5px solid var(--cs-border); border-radius:var(--cs-r12);
  box-shadow:0 8px 24px rgba(0,0,0,.1); z-index:300; overflow:hidden; display:none;
}
.cs-ms-dropdown.open { display:block; }
.cs-ms-search-wrap { padding:.6rem .75rem; border-bottom:1px solid var(--cs-border); }
.cs-ms-search-wrap input {
  width:100%; padding:6px 10px; border:1.5px solid var(--cs-border);
  border-radius:var(--cs-r6); font:inherit; font-size:.8rem; outline:none; color:var(--cs-text-h);
}
.cs-ms-search-wrap input:focus { border-color:var(--cs-blue); }
.cs-ms-list { max-height:220px; overflow-y:auto; padding:.35rem 0; }
.cs-ms-item {
  display:flex; align-items:center; gap:.6rem; padding:.45rem .75rem;
  cursor:pointer; font-size:.875rem; color:var(--cs-text-b);
  transition:background .1s; user-select:none;
}
.cs-ms-item:hover { background:var(--cs-bg); }
.cs-ms-cb {
  width:16px; height:16px; border-radius:3px; border:1.5px solid var(--cs-border2);
  background:#fff; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .12s;
}
.cs-ms-item.checked .cs-ms-cb { background:var(--cs-blue); border-color:var(--cs-blue); }
.cs-ms-item.checked .cs-ms-cb svg { opacity:1; }
.cs-ms-cb svg { opacity:0; transition:opacity .1s; }
.cs-ms-footer { padding:.5rem .75rem; border-top:1px solid var(--cs-border); display:flex; justify-content:space-between; align-items:center; gap:.5rem; }
.cs-ms-footer-count { font-size:.75rem; color:var(--cs-text-m); }
.cs-ms-clear-btn { font-size:.75rem; color:var(--cs-blue); cursor:pointer; background:none; border:none; font:inherit; padding:0; }
.cs-ms-clear-btn:hover { text-decoration:underline; }
/* === TRITEC: теги выбранных значений — обычный поток (не absolute):
   при выборе значения вся grid-строка со всеми фильтрами естественно
   уезжает вниз (а не тег наслаивается на строку поиска сверху). */
.cs-ms-tags {
  display:flex; gap:.3rem; flex-wrap:wrap; margin-top:.4rem;
}
/* === /TRITEC === */
.cs-ms-tag {
  display:inline-flex; align-items:center; gap:.25rem;
  background:var(--cs-blue-pale); color:var(--cs-blue-dark);
  font-size:.7rem; font-weight:500; padding:2px 8px 2px 7px; border-radius:40px;
}
.cs-ms-tag button { background:none; border:none; cursor:pointer; color:var(--cs-blue); padding:0; line-height:1; font-size:14px; display:flex; align-items:center; }
.cs-ms-tag button:hover { color:#003f7a; }

/* ── CHIPS + PRICE ROW ── */
.cs-chips-price-row {
  display:flex; align-items:center; flex-wrap:wrap;
  gap:.75rem 1.5rem; margin-bottom:1.1rem;
}
.cs-quick-dates { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; flex:1; min-width:0; }
.cs-period-label { font-size:.75rem; color:var(--cs-text-m); white-space:nowrap; flex-shrink:0; }
.cs-qchip {
  padding:5px 13px; border-radius:40px; border:1.5px solid var(--cs-border);
  font:inherit; font-size:.78rem; font-weight:500; color:var(--cs-text-s);
  background:#fff; cursor:pointer; transition:all .13s; line-height:1.3;
}
.cs-qchip:hover { border-color:var(--cs-blue); color:var(--cs-blue); background:var(--cs-blue-pale); }
.cs-qchip.is-active { border-color:var(--cs-blue); color:var(--cs-blue); background:var(--cs-blue-pale); font-weight:600; }

/* price filter */
.cs-price-filter { display:flex; align-items:center; gap:.4rem; flex-shrink:0; }
.cs-price-inp {
  width:90px; padding:5px 8px;
  border:1.5px solid var(--cs-border); border-radius:var(--cs-r6);
  font:inherit; font-size:.8rem; color:var(--cs-text-h); background:#fff;
  outline:none; transition:border .15s;
  -moz-appearance:textfield;
}
.cs-price-inp::-webkit-inner-spin-button, .cs-price-inp::-webkit-outer-spin-button { -webkit-appearance:none; }
.cs-price-inp:focus { border-color:var(--cs-blue); }
.cs-price-sep { font-size:.8rem; color:var(--cs-text-m); }

/* ── FILTER BOTTOM ── */
.cs-filter-bottom {
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap; padding-top:1.1rem; border-top:1px solid var(--cs-border);
}
.cs-checkboxes { display:flex; gap:1.25rem; flex-wrap:wrap; }
.cs-cb-label {
  display:flex; align-items:center; gap:.5rem;
  font-size:.875rem; color:var(--cs-text-s); cursor:pointer; user-select:none;
}
.cs-cb-label input[type=checkbox] { display:none; }
.cs-cb-box {
  width:17px; height:17px; border-radius:4px; border:1.5px solid var(--cs-border2);
  background:#fff; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .13s;
}
.cs-cb-box svg { opacity:0; transition:opacity .1s; }
.cs-cb-label input:checked ~ .cs-cb-box { background:var(--cs-blue); border-color:var(--cs-blue); }
.cs-cb-label input:checked ~ .cs-cb-box svg { opacity:1; }
.cs-tag-ok { background:var(--cs-success-bg); color:var(--cs-success); border-radius:40px; padding:1px 8px; font-size:.68rem; font-weight:700; }
.cs-tag-sale { background:var(--cs-yellow-pale); color:#854d0e; border-radius:40px; padding:1px 8px; font-size:.68rem; font-weight:700; }
.cs-filter-actions { display:flex; gap:.5rem; }

/* buttons */
.cs-btn {
  display:inline-flex; align-items:center; gap:.4rem;
  padding:9px 1.3rem; border-radius:var(--cs-r8);
  font:inherit; font-size:.875rem; font-weight:600;
  cursor:pointer; transition:all .14s; border:none; white-space:nowrap; line-height:1;
}
.cs-btn-yellow { background:var(--cs-yellow); color:#1a202c; border:1.5px solid var(--cs-yellow); }
.cs-btn-yellow:hover { background:var(--cs-yellow-dark); border-color:var(--cs-yellow-dark); }
.cs-btn-yellow:active { transform:scale(.98); }
.cs-btn-ghost { background:#fff; color:var(--cs-text-s); border:1.5px solid var(--cs-border); }
.cs-btn-ghost:hover { border-color:var(--cs-border2); color:var(--cs-text-h); }

/* ── FORMAT BADGE ── */
.cs-fmt {
  display:inline-flex; align-items:center; gap:.3rem;
  padding:3px 9px; border-radius:40px; font-size:.72rem; font-weight:600;
  position:relative; cursor:default; white-space:nowrap;
}
.cs-fmt.och { background:#eaf3ff; color:#004fa3; }
.cs-fmt.dis { background:#f0fdf4; color:#15803d; }
.cs-fmt:hover .cs-fmt-tip { opacity:1; visibility:visible; transform:translateY(0); }
.cs-fmt-tip {
  position:absolute; bottom:calc(100% + 7px); left:0; transform:translateY(5px);
  background:#111827; color:#fff; font-size:.75rem; line-height:1.55;
  border-radius:var(--cs-r8); padding:.8rem 1rem; width:220px;
  opacity:0; visibility:hidden; transition:all .17s; z-index:60; pointer-events:none; font-weight:400;
}
.cs-fmt-tip::after { content:''; position:absolute; top:100%; left:18px; border:5px solid transparent; border-top-color:#111827; }

/* city + format combined */
.cs-city-fmt-sep { margin-top:5px; }

/* ── RESULTS BAR ── */
.cs-results-bar {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:.875rem; flex-wrap:wrap; gap:.75rem;
}
.cs-results-left {
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
}
.cs-results-text { font-size:.875rem; color:var(--cs-text-s); }
.cs-results-text strong { color:var(--cs-text-h); font-weight:700; }
.cs-sort-row { display:flex; align-items:center; gap:.5rem; }
.cs-sort-row label { font-size:.78rem; color:var(--cs-text-m); white-space:nowrap; }
.cs-sort-row select {
  padding:6px 26px 6px 9px; border:1.5px solid var(--cs-border); border-radius:var(--cs-r6);
  font:inherit; font-size:.8rem; color:var(--cs-text-h); background:#fff;
  outline:none; cursor:pointer; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 7px center;
}
.cs-sort-row select:focus { border-color:var(--cs-blue); }

/* ── TABLE ── */
.cs-tbl-wrap { background:#fff; border-radius:var(--cs-r16); border:1px solid var(--cs-border); overflow:hidden; }
/* No horizontal scroll */
.cs-tbl-scroll { overflow-x:visible; width:100%; }

table.cs-ct {
  width:100%; border-collapse:collapse;
  table-layout:fixed;
}
table.cs-ct thead tr { background:var(--cs-bg); }
table.cs-ct thead th {
  padding:10px 14px; text-align:left;
  font-size:.68rem; font-weight:700; color:var(--cs-text-m);
  text-transform:uppercase; letter-spacing:.08em;
  border-bottom:1.5px solid var(--cs-border);
  white-space:nowrap;
  /* No vertical borders */
  border-left:none; border-right:none;
}
table.cs-ct tbody tr {
  border-bottom:1px solid var(--cs-border);
  transition:background .1s;
  /* Remove vertical borders, keep only yellow left accent on hover */
  border-left:none; border-right:none;
}
table.cs-ct tbody tr:last-child { border-bottom:none; }
table.cs-ct tbody tr:hover { background:var(--cs-yellow-pale); }

table.cs-ct td {
  padding:13px 14px; vertical-align:top;
  font-size:.875rem; text-align:left;
  /* No vertical cell borders */
  border-left:none; border-right:none;
}

/* Column widths */
.cs-td-thumb  { width:72px; }
.cs-td-name   { width:45%; }
.cs-td-date   { width:130px; }
.cs-td-city   { width:150px; }
.cs-td-price  { width:120px; }
.cs-td-action { width:100px; }

/* Thumbnail */
.cs-thumb-wrap {
  width:56px; height:56px; border-radius:var(--cs-r8);
  background:var(--cs-bg2); display:flex; align-items:center; justify-content:center;
  flex-shrink:0; overflow:hidden;
}
.cs-thumb-wrap img { width:56px; height:56px; object-fit:cover; border-radius:var(--cs-r8); }
.cs-thumb-wrap svg { color:var(--cs-text-m); }

/* Course name */
.cs-ct-name { display:block; font-size:.9rem; font-weight:600; color:var(--cs-text-h); line-height:1.4; transition:color .13s; }
.cs-ct-name:hover { color:var(--cs-blue-dark); }

/* === TRITEC: код курса перед названием (render_courses() в schedule.php) === */
.cs-ct-code { color:var(--cs-text-m); font-weight:500; font-size:.72rem; margin-right:2px; }
/* === /TRITEC === */

.cs-ct-cat {
  display:flex; align-items:center; gap:5px;
  font-size:.73rem; color:var(--cs-text-m); margin-top:4px;
}
.cs-ct-cat svg { flex-shrink:0; }
.cs-ct-edit { font-size:.72rem; font-style:italic; color:#555; display:block; margin-top:3px; }

/* Иконка "Редактировать расписание" в основной таблице (админ/редактор) */
table.cs-ct .cs-edit-date-icon {
  all:unset;
  box-sizing:border-box;
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:var(--cs-r6);
  color:var(--cs-text-m); background:var(--cs-bg2);
  cursor:pointer; vertical-align:middle; margin-left:4px;
  line-height:1; font-family:'Inter', system-ui, -apple-system, sans-serif;
  transition:background-color .15s, color .15s;
}
table.cs-ct .cs-edit-date-icon:hover { background:var(--cs-blue-pale); color:var(--cs-blue-dark); }
table.cs-ct .cs-edit-date-icon i { font-size:13px; }
/* Date */
.cs-d-main { font-weight:600; color:var(--cs-text-h); font-size:.875rem; }

/* Статус курса — лёгкая плашка, без сильного визуального веса */
.cs-status-pill {
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.68rem; font-weight:600; padding:2px 8px; border-radius:20px;
  margin-top:6px;
}
.cs-status-confirmed { background:var(--cs-success-bg); color:var(--cs-success); }
.cs-status-pending   { background:var(--cs-bg2); color:var(--cs-text-s); }

/* City */
.cs-c-name { color:var(--cs-text-b); font-size:.875rem; font-weight:500; }
.cs-c-online { color:var(--cs-text-m); font-size:.78rem; font-style:italic; }
.cs-c-note { font-size:.7rem; color:var(--cs-text-m); margin-top:3px; font-style:italic; line-height:1.4; }

/* Price */
.cs-p-val { font-weight:600; font-size:.82rem; color:inherit; }
/* Strikethrough old price — smaller */
.cs-p-val del, .cs-p-val .woocommerce-Price-amount:first-child { font-size:.82rem !important; font-weight:500 !important; color:inherit; }
.cs-disc-pill {
  display:inline-flex; align-items:center; gap:.2rem;
  background:var(--cs-yellow); color:#78350f;
  font-size:.68rem; font-weight:700; padding:2px 7px; border-radius:40px; margin-top:4px;
}

/* Action button */
.cs-course-link {
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.82rem; font-weight:600; color:var(--cs-blue);
  border-bottom:1.5px solid rgba(0,113,220,.25); padding-bottom:1px;
  transition:color .13s,border-color .13s; white-space:nowrap;
}
.cs-course-link:hover { color:var(--cs-blue-dark); border-color:var(--cs-blue-dark); }
.cs-course-link svg { flex-shrink:0; transition:transform .13s; }
.cs-course-link:hover svg { transform:translateX(2px); }

/* empty state */
.cs-empty-state { padding:3.5rem 2rem; text-align:center; color:var(--cs-text-m); }
.cs-empty-state svg { margin:0 auto .875rem; opacity:.3; display:block; }
.cs-empty-state h3 { font-size:1rem; font-weight:600; color:var(--cs-text-s); margin-bottom:.35rem; }
.cs-empty-state p { font-size:.85rem; margin:0; }

/* load more */
.cs-load-more-area { text-align:center; padding:1.5rem 0 .25rem; }
.cs-btn-load {
  background:#fff; color:var(--cs-blue); border:1.5px solid var(--cs-border);
  border-radius:var(--cs-r8); padding:9px 1.6rem;
  font:inherit; font-size:.875rem; font-weight:600;
  cursor:pointer; transition:all .13s; display:inline-flex; align-items:center; gap:.45rem;
}
.cs-btn-load:hover { border-color:var(--cs-blue); background:var(--cs-blue-pale); }
.cs-btn-load:disabled { opacity:.6; cursor:not-allowed; }

/* pdf strip */
.cs-pdf-strip {
  background:#fff; border-radius:var(--cs-r16); border:1px solid var(--cs-border);
  padding:1.1rem 1.5rem; margin-top:1.25rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
.cs-pdf-text strong { font-size:.9rem; font-weight:600; color:var(--cs-text-h); display:block; margin-bottom:.15rem; }
.cs-pdf-text span { font-size:.8rem; color:var(--cs-text-s); }
.cs-btn-pdf {
  background:#fff; color:var(--cs-text-s); border:1.5px solid var(--cs-border);
  border-radius:var(--cs-r8); padding:8px 1.1rem; font:inherit; font-size:.82rem; font-weight:500;
  cursor:pointer; transition:all .13s; display:inline-flex; align-items:center; gap:.4rem;
}
.cs-btn-pdf:hover { color:#fff; background-color: #ac1919; border-color:#ac1919;}

/* ── SPINNER ── */
#cs-loading-spinner {
  position:fixed; top:50%; left:50%;
  transform:translate(-50%,-50%);
  text-align:center; display:none; z-index:9999;
  background:rgba(255,255,255,.8); padding:1rem; border-radius:50%;
}
.cs-spinner {
  border:4px solid rgba(0,0,0,.1);
  border-left-color:var(--cs-blue);
  border-radius:50%; width:36px; height:36px;
  animation:cs-spin .8s linear infinite;
}
@keyframes cs-spin { to { transform:rotate(360deg); } }

/* ── MODAL (edit date) ── */
#editDateModal {
  position:fixed; z-index:10000; left:0; top:0;
  width:100%; height:100%; overflow:auto;
  background-color:rgba(17,24,39,.55);
  backdrop-filter:blur(2px);
  display:none;
}
.cs-modal-content {
  background:#fff; margin:4% auto; border-radius:var(--cs-r16);
  width:96%; max-width:1180px; max-height:88vh;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  display:flex; flex-direction:column; overflow:hidden;
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  animation:cs-modal-in .18s ease-out;
}
@keyframes cs-modal-in {
  from { opacity:0; transform:translateY(10px) scale(.98); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}

/* Шапка модалки — с фирменным жёлтым подчёркиванием, как в шапке страницы */
.cs-modal-header {
  flex:0 0 auto; display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:1.1rem 1.5rem;
  border-bottom:3px solid var(--cs-yellow);
  background:#fff;
}
.cs-modal-title {
  margin:0; font-size:1.05rem; font-weight:700; color:var(--cs-text-h); letter-spacing:-.01em;
}
.cs-modal-close {
  flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:50%;
  font-size:22px; line-height:1; font-weight:400; cursor:pointer;
  color:var(--cs-text-m); transition:background-color .15s, color .15s;
}
.cs-modal-close:hover { background:var(--cs-bg2); color:var(--cs-text-h); }

/* Прокручиваемое тело */
.cs-modal-body {
  flex:1 1 auto; overflow-y:auto; padding:1.4rem 1.5rem 1.6rem;
}

#scheduleList h5 {
  font-size:.8rem; font-weight:600; color:var(--cs-text-s);
  margin:0 0 1rem; padding-bottom:.75rem; border-bottom:1px solid var(--cs-border);
}

/* ── СПИСОК ДАТ РАСПИСАНИЯ (настоящая таблица с выровненными колонками) ── */
table.cs-edit-tbl {
  width:100%; border-collapse:collapse; font-size:.82rem; color:var(--cs-text-b);
  table-layout:fixed;
}
table.cs-edit-tbl thead th {
  position:sticky; top:0; z-index:1;
  background:var(--cs-bg);
  text-align:left; padding:9px 10px; font-size:.68rem; font-weight:700;
  color:var(--cs-text-s); text-transform:uppercase; letter-spacing:.05em;
  border-bottom:1.5px solid var(--cs-border2); white-space:nowrap;
}
table.cs-edit-tbl thead th:first-child { width:34px; }
table.cs-edit-tbl thead th:last-child { width:240px; }

table.cs-edit-tbl tbody tr { transition:background-color .12s; }
table.cs-edit-tbl tbody tr:hover { background:var(--cs-bg); }
table.cs-edit-tbl tbody tr.cs-editing-row { background:var(--cs-blue-pale); }
table.cs-edit-tbl td {
  padding:9px 10px; border-bottom:1px solid var(--cs-border);
  vertical-align:middle; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
table.cs-edit-tbl tbody tr:last-child td { border-bottom:none; }
table.cs-edit-tbl td:first-child { color:var(--cs-text-m); font-size:.72rem; }
table.cs-edit-tbl td.editable-date { color:var(--cs-text-h); font-weight:500; }

/* Статус — точка + текст, без плашки */
.cs-confirmed-badge { display:inline-flex; align-items:center; gap:6px; font-weight:400; background:none !important; padding:0 !important; }
.cs-confirmed-badge::before {
  content:""; width:7px; height:7px; border-radius:50%; flex:0 0 auto;
}
.cs-confirmed-yes { color:var(--cs-text-b); }
.cs-confirmed-yes::before { background:var(--cs-success); }
.cs-confirmed-no  { color:var(--cs-text-m); }
.cs-confirmed-no::before { background:var(--cs-border2); }

/* Кнопки действий — прозрачные, проявляются при наведении на строку */
table.cs-edit-tbl td:last-child { text-align:right; overflow:visible; }
table.cs-edit-tbl .cs-control-buttons {
  display:inline-flex; gap:2px; opacity:0; transition:opacity .12s;
}
table.cs-edit-tbl tbody tr:hover .cs-control-buttons,
table.cs-edit-tbl tbody tr.cs-editing-row .cs-control-buttons { opacity:1; }
@media (hover:none) {
  table.cs-edit-tbl .cs-control-buttons { opacity:1; }
}

/* Инпуты/селекты, которые JS подставляет в ячейки при редактировании/добавлении */
table.cs-edit-tbl .date-input,
table.cs-edit-tbl .date-start-input,
table.cs-edit-tbl .date-finish-input,
table.cs-edit-tbl .city-input,
table.cs-edit-tbl .format-input,
table.cs-edit-tbl .discount-input {
  width:100%; min-width:90px; padding:4px 7px;
  border:1px solid var(--cs-border2); border-radius:var(--cs-r6);
  font:inherit; font-size:.78rem; color:var(--cs-text-b); background:#fff;
}
table.cs-edit-tbl .date-input:focus,
table.cs-edit-tbl .date-start-input:focus,
table.cs-edit-tbl .date-finish-input:focus,
table.cs-edit-tbl .city-input:focus,
table.cs-edit-tbl .format-input:focus,
table.cs-edit-tbl .discount-input:focus { outline:none; border-color:var(--cs-blue); }
table.cs-edit-tbl .confirmed-input { width:15px; height:15px; cursor:pointer; }

/* Кнопка добавления даты — компактная, без давления на интерфейс */
#editDateModal #addScheduleRow {
  all:unset;
  box-sizing:border-box;
  position:sticky; bottom:0; left:0; z-index:2;
  margin-top:.7rem;
  background:#fff; color:var(--cs-blue); border:1.5px dashed var(--cs-border2);
  border-radius:var(--cs-r6); padding:8px 15px;
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  font-size:.82rem; font-weight:600; line-height:1; cursor:pointer;
  text-transform:none; letter-spacing:normal; text-decoration:none;
  box-shadow:none; text-shadow:none; -webkit-appearance:none; appearance:none;
  transition:background-color .15s, border-color .15s;
  display:inline-flex; align-items:center; gap:.35rem;
  width:auto;
}

#editDateModal #addScheduleRow:hover { border-color:var(--cs-blue); background:var(--cs-blue-pale); }

@media (max-width:640px) {
  .cs-modal-content { margin:0; width:100%; max-width:100%; height:100%; max-height:100%; border-radius:0; }
  table.cs-edit-tbl { table-layout:auto; }
  table.cs-edit-tbl .cs-control-buttons { opacity:1; }
  #editDateModal #addScheduleRow { width:100%; justify-content:center; }
}

/* ── ADMIN EDIT BUTTONS ──
   Специально с усиленной специфичностью и явным сбросом свойств —
   тема сайта нередко задаёт свои базовые стили на 'button'/'.button'
   (шрифт, паддинги, текст в верхнем регистре, тени, border-radius),
   и без явного сброса они просачиваются поверх наших. */
.cs-control-buttons { display:flex; gap:6px; }
.cs-editing-row { background-color:var(--cs-blue-pale) !important; }

/* Редактировать / Удалить — теперь с подписью, чуть крупнее */
#editDateModal .cs-control-buttons .cs-delete-button,
#editDateModal .cs-control-buttons .cs-edit-button {
  all:unset;
  box-sizing:border-box;
  display:inline-flex; align-items:center; justify-content:center; gap:.35rem;
  height:30px; padding:0 12px; border-radius:var(--cs-r6);
  cursor:pointer; font-size:13px; line-height:1;
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  font-weight:500; text-transform:none; letter-spacing:normal; text-decoration:none;
  box-shadow:none; text-shadow:none; -webkit-appearance:none; appearance:none;
  white-space:nowrap;
  transition:background-color .15s, color .15s;
}
#editDateModal .cs-control-buttons .cs-edit-button {
  background-color:var(--cs-blue-pale); color:var(--cs-blue-dark);
}
#editDateModal .cs-control-buttons .cs-edit-button:hover { background-color:#d5e9ff; }
#editDateModal .cs-control-buttons .cs-edit-button.cs-is-editing {
  background-color:var(--cs-success-bg); color:var(--cs-success);
}
#editDateModal .cs-control-buttons .cs-edit-button.cs-is-editing:hover { background-color:#dcfce7; }
#editDateModal .cs-control-buttons .cs-delete-button {
  background-color:#fee2e2; color:#b91c1c;
}
#editDateModal .cs-control-buttons .cs-delete-button:hover { background-color:#fecaca; }

/* Записать / Отменить (только при добавлении новой даты) — тоже чуть крупнее */
#editDateModal .cs-control-buttons .cs-save-button,
#editDateModal .cs-control-buttons .cs-cancel-button {
  all:unset;
  box-sizing:border-box;
  display:inline-flex; align-items:center; justify-content:center; gap:.35rem;
  padding:0 12px; font-size:12px; border-radius:var(--cs-r6);
  cursor:pointer; font-weight:500; height:30px; line-height:1;
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  text-transform:none; letter-spacing:normal; text-decoration:none;
  box-shadow:none; text-shadow:none; -webkit-appearance:none; appearance:none;
  transition:background-color .15s; white-space:nowrap;
}
#editDateModal .cs-control-buttons .cs-save-button {
  background-color:var(--cs-success-bg); color:var(--cs-success);
}
#editDateModal .cs-control-buttons .cs-save-button:hover { background-color:#dcfce7; }
#editDateModal .cs-control-buttons .cs-cancel-button {
  background-color:var(--cs-bg2); color:var(--cs-text-s);
}
#editDateModal .cs-control-buttons .cs-cancel-button:hover { background-color:var(--cs-border); }

/* ── flatpickr ── */
.flatpickr-month { overflow:inherit !important; }
.flatpickr-calendar { font-family:'Inter',sans-serif !important; border-radius:var(--cs-r12) !important; box-shadow:0 8px 28px rgba(0,0,0,.12) !important; border:1px solid var(--cs-border) !important; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background:var(--cs-blue) !important; border-color:var(--cs-blue) !important; }
.flatpickr-day:hover { background:var(--cs-blue-pale) !important; }
.flatpickr-month { background:var(--cs-bg) !important; border-radius:var(--cs-r12) var(--cs-r12) 0 0 !important; }

/* ── RESPONSIVE ── */
@media(max-width:900px) {
  .cs-page-wrap { padding:1.25rem 1rem 3rem; }
  .cs-filter-card { padding:1.25rem; }
  .cs-search-row { grid-template-columns:1fr; }
  .cs-filter-row { grid-template-columns:1fr 1fr; }
  .cs-filter-bottom { flex-direction:column; align-items:stretch; }
  .cs-filter-actions .cs-btn { flex:1; justify-content:center; }
  .cs-header-inner { flex-direction:column; align-items:flex-start; gap:1rem; }
  table.cs-ct { table-layout:auto; }
  .cs-tbl-scroll { overflow-x:auto; }
  .cs-td-city, .cs-td-date { width:auto; }
  .cs-chips-price-row { flex-direction:column; align-items:flex-start; gap:.6rem; }
}
@media(max-width:600px) {
  .cs-filter-row { grid-template-columns:1fr; }
  .cs-header-stats { gap:1rem; }
  .cs-price-inp { width:70px; }
}

/* ── SCHEDULE TABLE → MOBILE CARDS ──
   Ниже определённой ширины 6 колонок физически не помещаются в таблицу —
   вместо сжатия/горизонтального скролла превращаем каждую строку в
   отдельную карточку. */
@media(max-width:640px) {
  .cs-tbl-scroll { overflow-x:visible; }
  table.cs-ct, table.cs-ct thead, table.cs-ct tbody { display:block; width:100%; }
  table.cs-ct thead { display:none; }
  table.cs-ct tr {
    display:block; border:1px solid var(--cs-border); border-radius:var(--cs-r12);
    padding:1rem; margin-bottom:.75rem; overflow:hidden;
  }
  table.cs-ct tr:hover { background:#fff; }
  table.cs-ct tr:last-child { margin-bottom:0; }
  table.cs-ct td { display:block; width:auto !important; padding:0; border:none; }

  table.cs-ct td.cs-td-thumb { float:left; margin-right:12px; }
  table.cs-ct td.cs-td-name { overflow:hidden; } /* обтекает миниатюру слева, как в исходной строке */
  table.cs-ct td.cs-td-date { clear:both; margin-top:.75rem; }

  table.cs-ct td.cs-td-city {
    display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
    margin-top:.75rem; padding-top:.75rem; border-top:1px solid var(--cs-border);
  }
  table.cs-ct td.cs-td-city .cs-city-fmt-sep { text-align:right; margin-top:0; }

  table.cs-ct td.cs-td-price {
    display:flex; align-items:center; justify-content:space-between;
    margin-top:.6rem;
  }
  table.cs-ct td.cs-td-price::before {
    content:"Цена"; font-size:.66rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.05em; color:var(--cs-text-m);
  }
  table.cs-ct td.cs-td-price .cs-p-val { text-align:right; }

  table.cs-ct td.cs-td-action { margin-top:.85rem; }
  table.cs-ct td.cs-td-action .cs-course-link {
    display:flex; justify-content:center; width:100%;
    background:var(--cs-blue); color:#fff; border:none;
    border-radius:var(--cs-r8); padding:.65rem; font-weight:600;
  }
  table.cs-ct td.cs-td-action .cs-course-link:hover { background:var(--cs-blue-dark); color:#fff; }
  table.cs-ct td.cs-td-action .cs-course-link svg { color:#fff; }
}

/* ── PRICE RANGE SLIDER ── */
.cs-price-filter { display:flex; align-items:flex-start; gap:.6rem; flex-direction:column; flex-shrink:0; }
.cs-price-filter .cs-period-label { margin-bottom:0; }
.cs-price-range-wrap { display:flex; flex-direction:column; gap:.5rem; min-width:220px; }
.cs-price-inputs { display:flex; align-items:center; gap:.4rem; }

.cs-range-slider { position:relative; height:20px; display:flex; align-items:center; }
.cs-range-track {
  position:absolute; left:0; right:0; height:4px;
  background:var(--cs-border2); border-radius:4px; pointer-events:none;
}
.cs-range-fill {
  position:absolute; height:4px;
  background:var(--cs-blue); border-radius:4px;
}
.cs-range-input {
  position:absolute; width:100%;
  -webkit-appearance:none; appearance:none;
  background:transparent; pointer-events:none;
  height:4px; outline:none; margin:0;
}
.cs-range-input::-webkit-slider-thumb {
  -webkit-appearance:none; appearance:none;
  width:18px; height:18px; border-radius:50%;
  background:#fff; border:2px solid var(--cs-blue);
  box-shadow:0 1px 4px rgba(0,0,0,.15);
  pointer-events:all; cursor:pointer; transition:transform .1s;
}
.cs-range-input::-webkit-slider-thumb:hover { transform:scale(1.15); }
.cs-range-input::-moz-range-thumb {
  width:18px; height:18px; border-radius:50%;
  background:#fff; border:2px solid var(--cs-blue);
  box-shadow:0 1px 4px rgba(0,0,0,.15);
  pointer-events:all; cursor:pointer;
}

/* ── РАСПИСАНИЕ ОДНОГО КУРСА (шорткод [courseSchedule], страница курса) ──
   .cs-status-pill / .cs-fmt (build_format_badge) уже стилизованы выше —
   переиспользуются здесь один в один для единого визуального языка. */
.cs-single-schedule { margin:2rem 0; }
.cs-single-sched-title {
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  font-size:1.15rem; font-weight:700; color:var(--cs-text-h);
  margin:0 0 1rem;
}
.cs-single-sched-empty { color:var(--cs-text-s); font-size:.9rem; margin-bottom:1rem; }
.cs-single-sched-form { display:flex; justify-content:center; }

.cs-single-sched-wrap {
  background:#fff; border-radius:var(--cs-r16);
  overflow:hidden;
}
table.cs-single-sched-tbl {
  width:100%; border-collapse:collapse; table-layout:fixed;
  font-family:'Inter', system-ui, -apple-system, sans-serif; font-size:.85rem;
  text-align:left;
}
table.cs-single-sched-tbl th:nth-child(1), table.cs-single-sched-tbl td:nth-child(1) { width:36%; }
table.cs-single-sched-tbl th:nth-child(2), table.cs-single-sched-tbl td:nth-child(2) { width:32%; }
table.cs-single-sched-tbl th:nth-child(3), table.cs-single-sched-tbl td:nth-child(3) { width:32%; }
table.cs-single-sched-tbl thead tr { background:var(--cs-bg); }
table.cs-single-sched-tbl thead th {
  padding:10px 14px; text-align:left;
  font-size:.68rem; font-weight:700; color:var(--cs-text-m);
  text-transform:uppercase; letter-spacing:.08em;
  border-bottom:1.5px solid var(--cs-border); white-space:nowrap;
}
table.cs-single-sched-tbl tbody tr { border-bottom:1px solid var(--cs-border); transition:background .1s; }
table.cs-single-sched-tbl tbody tr:last-child { border-bottom:none; }
table.cs-single-sched-tbl tbody tr:hover { background:var(--cs-yellow-pale); }
table.cs-single-sched-tbl td { padding:13px 14px; vertical-align:top; text-align:left; color:var(--cs-text-b); }
table.cs-single-sched-tbl td:first-child { font-weight:600; color:var(--cs-text-h); }
table.cs-single-sched-tbl .cs-status-pill { margin-top:6px; }
table.cs-single-sched-tbl .cs-d-main { font-weight:600; color:var(--cs-text-h); }
.cs-single-sched-fmt { margin-top:6px; }
.cs-single-sched-fmt:empty { display:none; }

/* Старая цена + скидка — отдельной, более мелкой строкой над ценой/кнопкой */
.cs-single-sched-old-row { margin-bottom:3px; }
.cs-single-sched-note { font-size:.7rem; color:var(--cs-text-m); margin-top:3px; font-style:italic; line-height:1.4; }
.cs-single-sched-old { color:var(--cs-text-m); text-decoration:line-through; font-size:.72rem; }
.cs-single-sched-disc {
  display:inline-flex; align-items:center;
  font-size:.62rem; font-weight:700; color:#b45309; background:#fffbeb;
  padding:1px 6px; border-radius:20px;
}
.cs-single-sched-final { font-size:.95rem; color:var(--cs-text-h); }

/* Цена (обычная или итоговая со скидкой) + кнопка "Записаться" — всегда
   в одну строку рядом друг с другом. Старая цена/скидка вынесена в
   отдельный .cs-single-sched-old-row строкой выше и в этот ряд не
   попадает, поэтому кнопка больше не "уезжает" вниз при скидке. */
.cs-single-sched-price-row {
  display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between;
  gap:6px 12px;
}
.cs-single-sched-price { flex:1 0 auto; min-width:0; white-space:normal; }

/* Кнопка "Записаться" рядом с ценой — открывает существующую модалку
   ElementsKit (классы/data-атрибуты ниже оставлены как у оригинальной
   кнопки на сайте, чтобы её JS-обработчик сработал). Стили — с явным
   сбросом и высокой специфичностью, чтобы глобальные стили темы/
   ElementsKit (много !important в таких плагинах) не перекрывали вид. */
table.cs-single-sched-tbl .cs-single-sched-enroll {
  all:unset;
  box-sizing:border-box;
  display:inline-flex; align-items:center; gap:.35rem;
  padding:6px 14px; border-radius:var(--cs-r6);
  background:var(--cs-blue); color:#fff !important;
  font-family:'Inter', system-ui, -apple-system, sans-serif !important;
  font-size:.78rem !important; font-weight:600 !important; line-height:1.2 !important;
  text-transform:none !important; letter-spacing:normal !important; text-decoration:none !important;
  text-shadow:none !important; box-shadow:none !important;
  -webkit-appearance:none; appearance:none; cursor:pointer; white-space:nowrap;
  transition:background-color .15s;
}
table.cs-single-sched-tbl .cs-single-sched-enroll:hover { background:var(--cs-blue-dark); color:#fff !important; }
table.cs-single-sched-tbl .cs-single-sched-enroll i { font-size:.85rem; color:#fff !important; }

@media(max-width:640px) {
  table.cs-single-sched-tbl, table.cs-single-sched-tbl thead, table.cs-single-sched-tbl tbody { display:block; width:100%; }
  table.cs-single-sched-tbl thead { display:none; }
  table.cs-single-sched-tbl tr {
    display:block; background:#fff; border:1px solid var(--cs-border); border-radius:var(--cs-r12);
    padding:1rem; margin-bottom:.75rem;
  }
  table.cs-single-sched-tbl tr:hover { background:#fff; }
  table.cs-single-sched-tbl tr:last-child { margin-bottom:0; }
  table.cs-single-sched-tbl td {
    display:flex; justify-content:space-between; align-items:flex-start; gap:1rem;
    padding:.4rem 0; border-bottom:1px dashed var(--cs-border);
  }
  table.cs-single-sched-tbl td:last-child { border-bottom:none; display:block; }
  table.cs-single-sched-tbl td::before {
    content:attr(data-label); flex:0 0 auto;
    font-size:.66rem; font-weight:700; color:var(--cs-text-m);
    text-transform:uppercase; letter-spacing:.05em; padding-top:2px;
  }
  table.cs-single-sched-tbl td:first-child { white-space:normal; text-align:left; }
  table.cs-single-sched-tbl .cs-single-sched-enroll { width:100%; justify-content:center; }
}

