/* ═══════════════════════════════════════════════════════════════════════════
   Техника: полосы «в цифрах» и карточка единицы (Раиль 14.10.2026, вариант А).
   Карточка: сверху вкладки и период, на «Основном» четыре плашки «сейчас и за
   период», под ними фото и характеристики; история — во вкладках.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Парк и аккумуляторы в одну строку: парк шире. */
.eqp-stripes{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,6fr);gap:10px;align-items:stretch}
.eqp-stripes.one{grid-template-columns:1fr}
.eqp-stripes>.tblock{margin:0;height:100%}
/* Колонки поровну (table-layout:fixed): по содержимому первая забирала полстроки, а у
   аккумуляторов последние колонки уходили за край. Подпись переносится, число — нет. */
/* Подписи в одну строку в обеих полосах — тогда шапки одной высоты (Раиль 14.10.2026). */
.eqp-stripes .tbl.stripe{table-layout:fixed;width:100%}
.eqp-stripes .tbl.stripe thead th{white-space:nowrap;line-height:1.2;vertical-align:bottom;padding:6px 4px;font-size:9px;letter-spacing:.02em}
/* Общее правило «первый столбец не уже 200 px и липкий» здесь не нужно: в полосе все столбцы равноправны. */
.eqp-stripes .tblock table.stripe thead th:first-child,.eqp-stripes .tblock table.stripe tbody td:first-child{min-width:0;position:static}
.eqp-stripes .tbl.stripe tbody td{padding:6px 6px;font-size:15px}
/* Рядом обе полосы помещаются в одну строку подписей от 1400 px; уже — друг под другом. */
@media (max-width:1400px){.eqp-stripes{grid-template-columns:1fr}}

/* ── Карточка ── */
/* Окно постоянного размера (Раиль 14.10.2026): на всех вкладках стоит на одном месте, а не
   прыгает по высоте; лишнее листается внутри. Ширина меньше общей .wide — в 1180 px у
   характеристик и плашек было слишком много воздуха. */
.modal.ecd-modal{max-width:min(980px,96vw);height:min(680px,90vh);max-height:90vh;
  display:flex;flex-direction:column;overflow:hidden}
.ecd-shell{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.ecd-head{padding:10px 16px;gap:12px}
.ecd-head h2{white-space:nowrap}
.ecd-perslot{margin-left:auto;min-width:0}
.ecd-perslot .mrpick{flex-wrap:nowrap;margin:0}
.ecd-title .ecd-perslot{margin-left:auto}
.ecd-inv{font-size:13px;font-weight:500;color:var(--text-2);margin-left:4px}
.ecd-scroll{overflow:auto;padding:0 16px 16px;min-height:0;flex:1 1 auto}
.ecd-title{display:flex;align-items:center;gap:8px;margin-bottom:2px;flex-wrap:wrap}
.ecd-title h2{margin:0;font-size:16px}
.ecd-title span{font-size:13px;color:var(--text-2)}

/* Вкладки и период — одной строкой, при прокрутке карточки остаются сверху. */
.ecd-nav{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--hair-2);margin-bottom:12px;
  position:sticky;top:0;z-index:2;background:var(--surface-2)}
.ecd-scroll .ecd-nav{margin:0 -16px 12px;padding:0 16px}
.ecd-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1 1 auto;min-width:0}
.ecd-tabs::-webkit-scrollbar{display:none}
.ecd-tab{appearance:none;border:0;background:none;cursor:pointer;height:40px;padding:0 9px;font:inherit;font-size:13px;
  color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;flex:none}
.ecd-tab:hover{color:var(--text-1)}
.ecd-tab.active{color:var(--text-1);font-weight:600;border-bottom-color:var(--text-1)}
.ecd-tab i{font-style:normal;font-size:11px;font-weight:500;color:var(--text-3);margin-left:4px}
.ecd-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Плашки «сейчас и за период»: подпись, число, пояснение. */
.ecd-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--edge);
  border-radius:var(--radius-card);overflow:hidden;margin-bottom:10px;background:var(--surface-2)}
.ecd-tile{padding:7px 11px 8px;min-width:0}
.ecd-tile+.ecd-tile{border-left:1px solid var(--hair-2)}
.ecd-tile .l{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-2)}
.ecd-tile .v{font-size:17px;font-weight:700;margin-top:3px;white-space:nowrap;font-variant-numeric:tabular-nums;
  overflow:hidden;text-overflow:ellipsis}
.ecd-tile .s{font-size:11.5px;color:var(--text-2);margin-top:1px;min-height:15px}
.ecd .loss{color:var(--loss)}
.ecd .gain{color:var(--gain)}
.ecd .mid{color:var(--mid)}
.ecd .dim{color:var(--text-3);font-weight:500}
.ecd-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:1px}

/* Фото слева, характеристики справа — одной высоты. Значение стоит сразу за названием,
   а не у правого края: так глаз не ведёт строку через пустоту. */
.ecd-main .tbl col.c-k{width:180px}
.ecd .ecd-main .tbl thead th.r,.ecd .ecd-main .tbl tbody td.v{text-align:left}
.ecd-main{display:grid;grid-template-columns:300px minmax(0,1fr);gap:10px;align-items:stretch}
.ecd-shotwrap{position:relative;min-height:230px}
.ecd-shot{position:absolute;inset:0;display:grid;place-items:center;border:1px solid var(--edge);
  border-radius:var(--radius-card);overflow:hidden;background:var(--surface-2)}
.ecd-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box;background:#fff}
/* Значение характеристики в одну строку: на телефоне пустая полоса единицы измерения
   уходила на вторую строку, а серийный номер рвался посередине. */
.ecd .ecd-main .tbl tbody td.v{white-space:nowrap}
.ecd-shot svg{width:62%;height:auto;stroke:var(--text-2);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.btn.ecd-cam{position:absolute;right:6px;bottom:6px;z-index:1;height:27px;padding:0 9px;font-size:12px}

/* Таблица в рамке: внешний контур даёт обёртка (у голой таблицы сайт гасит края). */
.ecd-tw{border:1px solid var(--edge);border-radius:var(--radius-card);overflow:auto;background:var(--surface-2);min-width:0}
.ecd-tw>.tbl{margin:0}
/* Многострочные ячейки (замечания осмотра) — по верху, иначе дата съезжала к низу строки. */
.ecd .tbl tbody td{vertical-align:top}
.ecd .tbl td.nw{white-space:nowrap}
.ecd .tbl td.wrap{white-space:normal}
.ecd .tbl td small{display:block;font-size:10.5px;color:var(--text-3);margin-top:2px;font-weight:400;line-height:1.3}
.ecd .tbl tr.ecd-plan td{background:color-mix(in srgb,var(--mid) 9%,transparent);--col-stick:color-mix(in srgb,var(--mid) 9%,var(--surface-2))}
.ecd .tbl tr.ecd-late td{background:color-mix(in srgb,var(--loss) 7%,transparent);--col-stick:color-mix(in srgb,var(--loss) 7%,var(--surface-2))}

.ecd-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.ecd-acts select.inp{width:auto;max-width:100%;min-width:0}
.btn.ecd-warn{color:var(--loss)}
.ecd-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;min-height:29px}
.ecd-sum{margin-left:auto;font-size:12.5px;color:var(--text-2)}
.ecd-sum.left{margin-left:0}
.ecd-sum b{color:var(--text-1)}
.ecd .eqp-empty{border:1px dashed var(--hair-2);border-radius:var(--radius-card);padding:14px}

/* Осмотры: повторяющееся замечание, замечания столбиком, снимки. */
.ecd-note{border:1px solid var(--edge);border-left:3px solid var(--mid);border-radius:var(--radius-card);
  padding:7px 10px;margin-bottom:8px;font-size:12.5px;line-height:1.4}
.ecd-note b{color:var(--mid)}
.ecd-rem{margin:0;padding:0;list-style:none}
.ecd-rem li+li{margin-top:4px;padding-top:4px;border-top:1px solid var(--hair)}
.ecd-rem li span{display:block;font-size:10.5px;color:var(--text-3)}
.ecd-thumbs{display:flex;gap:4px}
.ecd-thumb{width:40px;height:53px;border:1px solid var(--hair-2);border-radius:4px;overflow:hidden;padding:0;
  cursor:zoom-in;background:var(--surface-3);flex:none}
.ecd-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ecd-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* АКБ: что стоит и чем заменить — слева, все подходящие аккумуляторы — справа. */
.ecd-akb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:10px;align-items:start}
.btn.ecd-off{height:23px;padding:0 8px;margin-left:6px;font-size:11.5px}

/* ── Телефон ── */
@media (max-width:720px){
  .modal.ecd-modal{height:100%;max-height:100%}
  .ecd-head{flex-wrap:wrap;padding:10px 12px}
  .ecd-head .ecd-perslot{order:3;width:100%;margin-left:0;overflow-x:auto}
  .ecd-scroll{padding:0 10px 12px}
  .ecd-scroll .ecd-nav{margin:0 -10px 10px;padding:0 10px}
  .ecd-nav{flex-direction:column;align-items:stretch;gap:0}
  .ecd-tabs{border-bottom:1px solid var(--hair-2)}
  .ecd-tiles{grid-template-columns:1fr 1fr}
  .ecd-tile:nth-child(3){border-left:0}
  .ecd-tile:nth-child(n+3){border-top:1px solid var(--hair-2)}
  .ecd-tile .v{font-size:16px}
  .ecd-main{grid-template-columns:1fr}
  .ecd-shotwrap{min-height:210px}
  .ecd-akb{grid-template-columns:1fr}
  /* Широкие таблицы на телефоне становятся карточками: рамку несёт каждая карточка. */
  .ecd-tw:has(>.tbl.wide-cols){border:0;background:none;overflow:visible}
  .cards-sm .ecd-tw>.tbl.wide-cols{padding:0}
}

/* ── Затраты и ремонты по месяцам, карточка затраты, состояние (Горбовский 14.10.2026) ── */
.ecd .tbl tr.ecd-open{cursor:pointer}
.ecd .tbl tr.ecd-open:hover td{background:var(--surface-head);--col-stick:var(--surface-head)}
.ecd-state{display:inline-grid;grid-template-columns:repeat(4,104px);gap:4px;margin-right:6px}
.ecd-state .pill-row-btn{height:29px;justify-content:center;padding:0 6px}
.ecd-state .pill-row-btn.s-working{color:var(--gain)}
.ecd-state .pill-row-btn.s-down{color:var(--loss)}
.ecd-state .pill-row-btn:disabled{opacity:.45;cursor:default}
.ecd-state .pill-row-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ecd-deleted{margin-top:8px}
.ecd-rcard .ecd-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-1);margin:2px 0 10px}
.ecd-hist{margin-top:14px}
.ecd-hist h3{font-size:13px;font-weight:600;margin:0 0 6px;color:var(--text-1)}
.ecd-hist .tbl td{line-height:1.45}
.ecd-hist .hint{font-size:12.5px;color:var(--text-2)}
.modal-foot .ecd-footl{margin-right:auto;display:flex;gap:6px;align-items:center;min-width:0}
.ecd-footl .inp.ecd-reason{width:300px;max-width:100%}
.hint.ecd-warnmsg{color:var(--text-1);background:color-mix(in srgb,var(--mid) 10%,transparent);
  border-left:3px solid var(--mid);border-radius:4px;padding:7px 10px;font-size:12.5px;line-height:1.45}
@media (max-width:640px){
  .modal-foot .ecd-footl{width:100%;flex-wrap:wrap}
  .ecd-footl .inp.ecd-reason{width:100%}
}

/* ── Сетка ТО: очередь малое/большое (Раиль 14.10.2026) ── */
.ecd .tbl tr.ecd-queue td{background:color-mix(in srgb,var(--mid) 4%,transparent);--col-stick:color-mix(in srgb,var(--mid) 4%,var(--surface-2))}
.ecd-tonote{font-size:12.5px;color:var(--text-2);margin:-2px 0 8px;line-height:1.45}
.ecd-tonote b{color:var(--text-1)}
.eqp-nextto .tbl td small{display:block;font-size:10.5px;color:var(--text-3);margin-top:2px;font-weight:400}
.eqp-nextto .tbl td small.mid{color:var(--mid);font-weight:600}
.eqp-nextto .tblock table thead th:first-child,.eqp-nextto table thead th:first-child{min-width:0}

/* ── Таблица по месяцам (Затраты, Ремонты): все линии прорисованы — и в свёрнутых месяцах, и у последней
   строки; шапка по центру; строка месяца — со стрелкой, лёгкий тон отличает её от шапки и записей;
   записи обычным весом (Раиль 14.10.2026). ── */
.ecd .tbl thead th{text-align:center}
.ecd-tw>.ecd-mt{table-layout:fixed;width:100%;border-collapse:collapse}
.ecd-tw>.ecd-mt>thead>tr>th,.ecd-tw>.ecd-mt>tbody>tr>td{border:1px solid var(--hair-2)}
.ecd-tw>.ecd-mt>thead>tr>th{border-top:0}
.ecd-tw>.ecd-mt>*>tr>:first-child{border-left:0}
.ecd-tw>.ecd-mt>*>tr>:last-child{border-right:0}
.ecd-tw>.ecd-mt>tbody:last-child>tr:last-child>td{border-bottom:0}
.ecd-mt td.v{font-weight:500}
.ecd-mt tr.total td{font-weight:700}
.ecd-mt tr.ecd-mh{cursor:pointer}
.ecd-mt tr.ecd-mh td{background:color-mix(in srgb,var(--accent) 5%,var(--surface-2));
  --col-stick:color-mix(in srgb,var(--accent) 5%,var(--surface-2));padding-top:7px;padding-bottom:7px}
.ecd-mt tr.ecd-mh:hover td{background:color-mix(in srgb,var(--accent) 9%,var(--surface-2));--col-stick:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}
.ecd-mt tr.ecd-mh td b{font-weight:650;color:var(--text-1)}
.ecd-mbtn{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-1);white-space:nowrap}
.ecd-mbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ecd-mt-t{font-weight:650}
.ecd-mt-s{font-size:12px;color:var(--text-2);font-weight:400}
.ecd-chev{width:7px;height:7px;border-right:1.6px solid var(--text-2);border-bottom:1.6px solid var(--text-2);
  transform:rotate(-45deg);transition:transform .15s ease;flex:none;margin:0 2px 2px 0}
.ecd-mon.open .ecd-chev{transform:rotate(45deg)}
.ecd-mt tbody.ecd-mon:not(.open) tr.ecd-r{display:none}
@media (prefers-reduced-motion:reduce){.ecd-chev{transition:none}}
.ecd-akbpick{margin:0 0 10px}

/* ── Плитка витрины: таблица во всю ширину плитки, без своей рамки — «таблица в таблице» не нужна
   (Раиль 14.10.2026). Внутренние линии того же тона, что край плитки, поэтому толщина везде одна.
   Строки делят высоту поровну, значение шире подписи — «Не работает» в одну строку. ── */
.eqp-tile table{margin:0;width:100%;border:0;border-top:1px solid var(--edge,var(--hair-2));border-radius:0;
  border-collapse:separate;border-spacing:0;overflow:hidden;table-layout:fixed}
.eqp-tile table>tbody>tr{height:33.333%}
.eqp-tile.r4 table>tbody>tr{height:25%}
/* Строки ниже прежних 42 px (Раиль 22.10.2026: «в две строчки ничего нет, сделай компактнее»);
   на телефоне 390 px всё по-прежнему в одну строку. */
.eqp-tile table>tbody>tr>td{border-top:1px solid var(--edge,var(--hair-2));border-left:1px solid var(--edge,var(--hair-2));
  padding:3px 10px;height:29px;box-sizing:border-box}
.eqp-tile table>tbody>tr>td:first-child{border-left:0;width:44%}
.eqp-tile table>tbody>tr:first-child>td{border-top:0}
.eqp-tile table>tbody>tr:last-child{height:33.333%}
.eqp-tile.r4 table>tbody>tr:last-child{height:25%}
.eqp-tile td .eqp-dot{white-space:nowrap}
/* «Потрачено»: без заливки, только контур; цифры тоном контура (красный, жёлтый) или обычные. */
.eqp-spend,.eqp-spend.hi,.eqp-spend.md{background:none;border:1px solid var(--hair-2);padding:0 6px;border-radius:5px;font-weight:620;color:var(--text-1)}
.eqp-spend.hi{border-color:color-mix(in srgb,var(--loss) 70%,transparent);color:var(--loss);font-weight:680}
.eqp-spend.md{border-color:color-mix(in srgb,var(--mid) 75%,transparent);color:var(--mid)}
/* Точка состояния держится рядом со словом, а не отдельной строкой над ним. */
.eqp-tile td .eqp-dot{flex-wrap:nowrap;align-items:baseline}
.eqp-tile td .eqp-dot i{flex:none}
/* Телефон: записи месяца — карточками «подпись — значение», заголовок месяца остаётся строкой. */
@media (max-width:720px){
  .ecd-mt,.ecd-mt>tbody,.ecd-mt>tbody>tr,.ecd-mt>tbody>tr>td{display:block;width:auto}
  .ecd-mt>colgroup,.ecd-mt>thead{display:none}
  .ecd-mt tbody.ecd-mon:not(.open) tr.ecd-r{display:none}
  .ecd-mt tr.ecd-mh{display:flex;align-items:center;gap:10px;padding:9px 10px;border-top:1px solid var(--hair-2);
    background:color-mix(in srgb,var(--accent) 5%,var(--surface-2))}
  .ecd-tw>.ecd-mt>tbody>tr.ecd-mh>td{display:block;border:0;padding:0;background:none;width:auto}
  .ecd-tw>.ecd-mt>tbody>tr.ecd-mh>td:empty{display:none}
  .ecd-tw>.ecd-mt>tbody>tr.ecd-mh>td.ecd-mh-first{flex:1 1 auto}
  .ecd-tw>.ecd-mt>tbody>tr.ecd-r>td,.ecd-tw>.ecd-mt>tbody>tr.total>td{border:0;border-top:1px solid var(--hair)}
  .ecd-tw>.ecd-mt>tbody>tr.ecd-r>td:first-child,.ecd-tw>.ecd-mt>tbody>tr.total>td:first-child{border-top:0}
  .ecd-mt tr.ecd-r,.ecd-mt tr.total{margin:6px 8px;border:1px solid var(--hair-2);border-radius:8px;overflow:hidden}
  .ecd-mt tr.ecd-r>td,.ecd-mt tr.total>td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    position:static;border:0;border-top:1px solid var(--hair);padding:6px 10px;text-align:right;white-space:normal}
  .ecd-mt tr.ecd-r>td:first-child,.ecd-mt tr.total>td:first-child{border-top:0}
  .ecd-mt tr.ecd-r>td::before,.ecd-mt tr.total>td::before{content:attr(data-h);flex:none;font-size:10px;font-weight:700;
    letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);text-align:left}
  .ecd-mt tr.total>td:empty,.ecd-mt tr.total>td:has(.cellv:empty){display:none}
  .ecd-mt tr.total>td:first-child::before{content:none}
  .ecd-mt td .cellv{min-width:0;overflow-wrap:anywhere}
  .ecd-mt-s{font-size:12px}
  .ecd-state{grid-template-columns:repeat(2,1fr);width:100%;margin-right:0}
}

/* ── «Аналитика» (Раиль 14.10.2026) ── */
/* Строки в одну линию: название и номер не переносятся, длинное обрезается многоточием. */
.eqp-one .tbl{table-layout:fixed;width:100%}
.eqp-one .tbl thead th:first-child{min-width:0;width:auto}
/* Точность выше общих правил сайта (.tbl:has(colgroup) td.k и .cards-sm .tbl.wide-cols td переносят строки). */
.eqp-view .eqp-one .tbl.tbl tbody td,.eqp-view .eqp-one .tbl.tbl tbody td.k{white-space:nowrap}
.eqp-view .eqp-one .tbl.tbl tbody td.k{overflow:hidden;text-overflow:ellipsis}
.eqp-one .tbl td .dim{color:var(--text-3);font-weight:500}
.eqp-one .tbl td .mid{color:var(--mid);font-weight:600}
.eqp-one .tbl col:first-child{width:auto}
/* График: выбор техники и показателя над полотном. */
.eqp-trend-ctl{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.eqp-trend-ctl select.inp{width:auto;min-width:180px;max-width:100%}
.eqp-trend-sum{font-size:12.5px;color:var(--text-2);margin:0 0 4px}
.eqp-trend-sum b{color:var(--text-1)}
/* Сворачиваемый блок: шеврон в шапке, свёрнутый — только шапка. */
.eqp-fold>.tblock-head{cursor:pointer;user-select:none}
.eqp-fold>.tblock-head:hover{background:var(--surface-head)}
.eqp-fold>.tblock-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.eqp-fold.closed>:not(.tblock-head){display:none}
.eqp-fold-chev{width:7px;height:7px;border-right:1.6px solid var(--text-2);border-bottom:1.6px solid var(--text-2);
  transform:rotate(45deg);transition:transform .15s ease;flex:none;margin:0 10px 3px 2px;display:inline-block}
.eqp-fold.closed .eqp-fold-chev{transform:rotate(-45deg);margin-bottom:0}
@media (prefers-reduced-motion:reduce){.eqp-fold-chev{transition:none}}
/* «Показать все» под длинными таблицами «Осмотров». */
.btn.eqc-more{margin:8px 0 0;height:28px;font-size:12.5px}
/* Скрытые «Показать все» строки не должны проявляться там, где строки таблиц стали карточками (телефон). */
.eqp-view .tbl tbody tr[hidden]{display:none}
/* АКБ техники: строки по центру фото. Выбор месяца в «Ближайших ТО». */
.ecd .ecd-akbtbl .tbl tbody td{vertical-align:middle}
.eqp-tomonth{width:auto;min-width:200px;margin:0 0 8px}
.eqp-nextto .tblock-body,.eqp-nextto>div:not(.tblock-head){padding-top:0}
.eqp-nextto select.eqp-tomonth,.eqp-nextto .xsel{margin:8px 10px}

/* ═══ Телефон, 20.10.2026 (Раиль, снимки с айфона) ══════════════════════════════════════════════
   Карточка помещается в экран без прокрутки: месяц в строке заголовка, снимок ниже, строки плотнее.
   Строки характеристик не «выбираются» касанием — на телефоне касание считается наведением, и
   подсветка залипала серым. Плитки витрины: строки по 28 px вместо 44, ТО одной строкой «14.02.27 М». */
@media (max-width:720px){
  .ecd-head{flex-wrap:nowrap;gap:8px;padding:8px 10px 8px 12px}
  .ecd-head h2{min-width:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ecd-head .ecd-perslot{order:0;width:auto;margin-left:auto;flex:none;overflow:visible}
  .ecd-head .mrpick label{display:none}
  .ecd-head .mrpick .xsel-btn,.ecd-head .mrpick select{height:30px;font-size:13px}
  .ecd-tab{height:36px}
  .ecd-scroll .ecd-nav{margin-bottom:8px}
  .ecd-tile{padding:5px 10px 6px}
  .ecd-tile .v{font-size:15px;margin-top:1px}
  .ecd-tiles{margin-bottom:8px}
  .ecd-shotwrap{min-height:0;height:150px}
  .ecd-shotwrap .eqp-card-shot{height:100%;aspect-ratio:auto}
  .ecd .ecd-main .tbl td,.ecd .ecd-main .tbl th{padding-top:3px;padding-bottom:3px;line-height:1.25}
  .ecd-acts{margin-top:8px;gap:5px}
  .ecd-state .pill-row-btn{height:30px}

  .eqp-tile table>tbody>tr,.eqp-tile table>tbody>tr:last-child{height:auto}
  .eqp-tile table>tbody>tr>td{height:28px;padding:3px 8px}
  .eqp-tile-h{padding:7px 9px 6px}
}
@media (hover:none){
  .ecd .tbl tbody tr:not(.ecd-open):not(.clickable):hover,
  .eqp-tile tr:hover{background:transparent}
  .ecd .tbl tbody tr:not(.ecd-open):not(.clickable):not(.ecd-plan):not(.ecd-late):hover>td{background:transparent;--col-stick:var(--surface-2)}
  .eqp-tile:hover{transform:none}
}
/* Вид ТО у даты — буквой в кружке: М — малое, Б — большое. */
.eqp-to{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:4px;border-radius:50%;
  border:1px solid currentColor;font-size:9px;font-weight:750;font-style:normal;line-height:1;vertical-align:1px}
/* Исправление 20.10.2026: общее правило телефона растягивает выбор периода на 100 % строки — в заголовке
   карточки он раздулся до 444 px и вытолкнул название и крестик за край (из карточки было не выйти).
   Здесь выбор месяца — по своему содержимому, крестик никогда не сжимается. */
@media (max-width:720px){
  .ecd-head .ecd-perslot{flex:0 1 auto;min-width:0;max-width:52%}
  .ecd-head .field-row.mrpick{flex:0 1 auto;width:auto;min-width:0}
  .ecd-head .mrpick>.xsel{flex:0 1 auto;min-width:0}
  .ecd-head h2{flex:1 1 auto;min-width:72px}
  .ecd-head .modal-close{flex:0 0 40px}
}
@media (max-width:720px){
  /* В заголовке карточки на телефоне — только «Месяц»: отрезок «с … по …» в строку с названием и крестиком
     не помещается и наезжал на крестик. Отрезок остаётся на компьютере. */
  .ecd-head .mrpick>*:not(.mrpick-month){display:none}
  .ecd-head .ecd-perslot{overflow:hidden}
  .ecd-head h2 .ecd-inv{font-size:12px}
}
@media (max-width:720px){
  .ecd-head .ecd-perslot{flex:0 0 auto;max-width:none}
  .ecd .ecd-main .tbl tbody td.v{white-space:normal;overflow-wrap:anywhere}
}
