/* =================================================================
   Раздел «Команда» (14.10.2026): сотрудник до минуты. Только токены.
   Слева список людей, справа плашки, смены, разбор смены по часам.
   ================================================================= */
.tm-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.tm-top .subtabs{margin:0}
.tm-top .mrpick{margin:0 0 0 auto}
.tm-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:start}
.tm-side{position:sticky;top:64px;display:flex;flex-direction:column;max-height:calc(100vh - 100px);overflow:hidden;margin:0}
.tm-search{padding:10px;border-bottom:1px solid var(--hair)}
.tm-search input{width:100%;height:32px;border:1px solid var(--hair-2);border-radius:var(--radius-ctrl);padding:0 10px;
  font:inherit;font-size:13px;background:var(--surface-2);color:var(--text-1)}
.tm-search input:focus{outline:0;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-glow)}
.tm-list{overflow-y:auto;overscroll-behavior:contain}
.tm-pr{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px 7px 10px;cursor:pointer;
  border-top:1px solid var(--hair);border-left:3px solid transparent}
.tm-pr:first-child{border-top:0}
.tm-pr:hover{background:var(--surface-3)}
.tm-pr:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-line)}
.tm-pr.active{border-left-color:var(--accent-line);background:var(--surface-3)}
.tm-pr-n{flex:1;min-width:0;font-size:13px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-pr.active .tm-pr-n{font-weight:600}
.tm-pr-n small{display:block;font-size:11px;color:var(--text-3);font-weight:400;overflow:hidden;text-overflow:ellipsis}
.tm-cnt{flex:none;min-width:26px;padding:0 6px;line-height:19px;text-align:center;font-size:11.5px;font-weight:600;
  color:var(--text-2);border:1px solid var(--hair-2);border-radius:var(--radius-chip);font-variant-numeric:tabular-nums}
.tm-empty{padding:16px;color:var(--text-3);font-size:13px}
.tm-empty.big{padding:24px}

.tm-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.tm-main>.card{margin:0}
.tm-head{padding:12px 16px}
.tm-head h2{margin:0;font-size:18px;font-weight:700}
.tm-sub{margin-top:3px;font-size:12.5px;color:var(--text-2)}
.tm-warn{margin-left:10px;color:var(--mid);font-weight:600}
.tm-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--edge);border-radius:var(--radius-card);
  background:var(--surface-2);overflow:hidden}
.tm-tiles.c6{grid-template-columns:repeat(6,minmax(0,1fr))}
.tm-tile{padding:8px 12px;min-width:0}
.tm-tile+.tm-tile{border-left:1px solid var(--hair-2)}
.tm-tile .l{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-2)}
.tm-tile .v{font-size:17px;font-weight:700;margin-top:3px;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-1)}
.tm-tile .s{font-size:11.5px;color:var(--text-2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.tm-card{padding:0 0 12px}
.tm-card-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:12px 16px 8px}
.tm-card-h h3{margin:0;font-size:15px;font-weight:700;color:var(--text-1)}
.tm-card-h>span{font-size:12.5px;color:var(--text-2)}
.tm-card-h .tm-sw{margin-left:auto;display:flex;gap:6px}
.tm-tw{margin:0 16px;border:1px solid var(--edge);border-radius:var(--radius-ctrl);overflow:auto}
.tm-tw.narrow{max-width:520px}
.tm-tbl{margin:0;width:100%}
.tm-tbl td,.tm-tbl th{padding-left:8px;padding-right:8px}
.tm-tbl td.k{font-size:12.5px;line-height:1.3}
.tm-tbl thead th{text-align:center;white-space:normal;line-height:1.2;vertical-align:bottom}
.tm-tbl tbody tr{cursor:default}
.tm-tbl tbody tr[data-day]{cursor:pointer}
.tm-tbl tbody tr[data-day]:hover td{background:var(--surface-3);--col-stick:var(--surface-3)}
.tm-tbl tbody tr.sel td{background:color-mix(in srgb,var(--accent) 9%,var(--surface-2));--col-stick:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}
.tm-tbl td small{display:block;font-size:10.5px;color:var(--text-3);font-weight:400}
.tm-tbl td.nw{white-space:nowrap}
.tm-tbl .dim{color:var(--text-3)}
.tm-tbl td.strong{font-weight:700}
.tm-view .tm-tbl thead th:first-child{min-width:0}

.tm-facts{display:flex;flex-wrap:wrap;gap:8px 22px;padding:0 16px 10px;font-size:12.5px}
.tm-facts span{color:var(--text-2);margin-right:6px}
.tm-facts b{color:var(--text-1);font-weight:600}
.tm-lbl{padding:8px 16px 6px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.tm-hint{padding:6px 16px 0;font-size:11.5px;color:var(--text-3)}
.btn.tm-more{margin:8px 16px 0;height:28px;font-size:12.5px}

/* Сетка «вид работы × час»: насыщенность клетки — сколько операций за час. */
.tm-hw{margin:0 16px;overflow-x:auto;border:1px solid var(--edge);border-radius:var(--radius-ctrl)}
.tm-hours{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
.tm-hours th,.tm-hours td{border:1px solid var(--hair);padding:0;height:30px;text-align:center;min-width:30px}
.tm-hours thead th{background:var(--surface-head);font-size:11px;font-weight:600;color:var(--text-2);height:26px}
.tm-hours th.lab{text-align:left;padding:0 10px;white-space:nowrap;font-weight:600;color:var(--text-1);background:var(--surface-2);
  position:sticky;left:0;z-index:1;min-width:120px}
.tm-hours thead th.lab{background:var(--surface-head)}
.tm-hours td.hc{background:color-mix(in srgb,var(--accent) var(--a,0%),var(--surface-2));color:var(--text-1);font-weight:600}
.tm-hours td.hc.brk{background:repeating-linear-gradient(135deg,var(--surface-3) 0 4px,var(--surface-2) 4px 8px)}
.tm-hours td.hc.off{background:var(--surface-4)}
.tm-hours .tot{font-weight:700;padding:0 8px;background:var(--surface-3)}
.tm-hours tr.sum th,.tm-hours tr.sum td{border-top:2px solid var(--hair-2);font-weight:700}
.tm-hours tr.clickable{cursor:pointer}
.tm-hours tr.clickable:hover th.lab{color:var(--accent);text-decoration:underline}
.tm-hours tr>:first-child{border-left:0}
.tm-hours tr>:last-child{border-right:0}
.tm-hours thead tr>*{border-top:0}
.tm-hours tbody tr:last-child>*{border-bottom:0}

.tm-chart{margin:0 16px;height:220px}
.tm-opsbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;margin:0 0 12px}
.tm-daylab{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2)}
.tm-day{width:auto}
.tm-kinds{display:flex;gap:6px;flex-wrap:wrap}
.tm-pn{margin-left:6px;color:var(--text-3);font-weight:500}

@media (max-width:1100px){.tm-grid{grid-template-columns:240px minmax(0,1fr)}}
@media (max-width:760px){
  .tm-grid{grid-template-columns:1fr}
  .tm-side{position:static;max-height:320px}
  .tm-tile+.tm-tile{border-left:0}
  .tm-tiles,.tm-tiles.c6{grid-template-columns:1fr 1fr}
  .tm-tile:nth-child(odd){border-right:1px solid var(--hair-2)}
  .tm-tile:nth-child(n+3){border-top:1px solid var(--hair-2)}
}

/* ── Доработка 14.10.2026: плашки смены, деньги, дисциплина, выбор дня, операции часа ── */
.tm-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tm-head-l{flex:1;min-width:0}
.tm-head .tm-sub+.tm-sub{margin-top:2px;color:var(--text-1)}
.tm-pad{padding:0 16px 4px}
.tm-tiles.c7{grid-template-columns:repeat(7,minmax(0,1fr))}
.tm-tile .v.loss,.tm-tbl td.loss{color:var(--loss)}
.tm-tile .v.mid{color:var(--mid)}
.tm-shift-tiles .tm-tile .v{font-size:16px}
.tm-tbl td small.late{color:var(--loss);font-weight:600}
.tm-tbl tr.total td{background:var(--surface-3);--col-stick:var(--surface-3)}
.tm-hours td.hc.pick{cursor:pointer}
.tm-hours td.hc.pick:hover{outline:2px solid var(--accent-line);outline-offset:-2px}
.tm-ops-h{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;margin:12px 16px 6px;padding:6px 10px;
  font-size:13px;font-weight:600;color:var(--text-1);border:1px solid var(--edge);border-radius:var(--radius-ctrl);cursor:pointer}
.tm-ops-h:hover{background:var(--surface-3)}
.tm-ops-h:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}
.tm-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}
.tm-ops-h.open .tm-chev{transform:rotate(45deg)}
.tm-ops-h+.btn.tm-more{margin:0 16px 8px}
@media (max-width:1300px){.tm-tiles.c7{grid-template-columns:repeat(4,minmax(0,1fr))}.tm-tiles.c7 .tm-tile:nth-child(5){border-left:0}
  .tm-tiles.c7 .tm-tile:nth-child(n+5){border-top:1px solid var(--hair-2)}}
@media (max-width:760px){.tm-tiles.c7{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.tm-chev{transition:none}}

/* ── Правки 14.10.2026 (вечер) ── */
/* Пояснение в плашке переносится, а не обрезается многоточием («оклад 8 000 ₽, премия …»). */
.tm-tile .s{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}
/* Сетка по часам: линии и в шапке с часами; строка «Всего» заметнее. */
.tm-view .tm-hours thead th{border:1px solid var(--hair-2);border-top:0;background:var(--surface-head)}
.tm-view .tm-hours thead tr>:first-child{border-left:0}
.tm-view .tm-hours thead tr>:last-child{border-right:0}
.tm-view .tm-hours tbody th,.tm-view .tm-hours tbody td{border:1px solid var(--hair-2)}
.tm-view .tm-hours tbody tr>:first-child{border-left:0}
.tm-view .tm-hours tbody tr>:last-child{border-right:0}
.tm-view .tm-hours tbody tr:last-child>*{border-bottom:0}
.tm-view .tm-hours tr.sum th,.tm-view .tm-hours tr.sum td{background:var(--surface-3);font-weight:800;font-size:13px;border-top:2px solid var(--edge)}
.tm-view .tm-hours tr.sum td.hc.brk{background:repeating-linear-gradient(135deg,var(--surface-4) 0 4px,var(--surface-3) 4px 8px)}
.tm-view .tm-hours .tot{font-weight:800}
/* Таблицы с прокруткой внутри рамки, шапка на месте. */
.tm-tw.tm-scroll7{max-height:372px;overflow:auto}
.tm-tw.tm-scroll10{max-height:430px;overflow:auto}
.tm-scroll7 thead th,.tm-scroll10 thead th{position:sticky;top:0;z-index:2;background:var(--surface-head)}
.tm-scroll7 thead th:first-child,.tm-scroll10 thead th:first-child{z-index:3}

/* ── Правки 14.10.2026 (ночь) ── */
/* Список слева листается до последнего человека: занимает остаток высоты колонки. */
.tm-side .tm-list{flex:1 1 auto;min-height:0}
.tm-dayf{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--hair);font-size:12.5px;color:var(--text-1);
  background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}
.tm-dayf span{flex:1;font-weight:600}
.tm-clear{all:unset;cursor:pointer;font-size:12.5px;color:var(--accent);padding:2px 6px;border-radius:5px}
.tm-clear:hover{background:var(--surface-3)}
.tm-clear:focus-visible{outline:2px solid var(--accent-line)}
/* Плашка с подробностями — нажимается, подробности окошком. */
.tm-tile.has-info{cursor:pointer}
.tm-tiles>.tm-tile+.tm-tile{border-left:1px solid var(--hair-2)}
.tm-tile.has-info:hover{background:var(--surface-3)}
.tm-tile.has-info:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px}
.tm-tile.has-info .l::after{content:"";display:inline-block;width:5px;height:5px;margin:0 0 2px 6px;border-right:1.4px solid var(--text-3);
  border-bottom:1.4px solid var(--text-3);transform:rotate(-45deg)}
.tm-tile .s.loss{color:var(--loss);font-weight:600}
.tm-info-modal{max-width:560px;width:calc(100vw - 32px)}
.tm-info-t{width:100%}
.tm-info-t td{padding:8px 10px}
.tm-info-t td.v{text-align:right;font-weight:600;white-space:nowrap}
/* Часы без работы — заливка цветом (отдыхал), чтобы видно сразу. */
.tm-view .tm-hours td.hc.brk{background:color-mix(in srgb,var(--mid) 16%,var(--surface-2))}
.tm-view .tm-hours tr.sum td.hc.brk{background:color-mix(in srgb,var(--mid) 22%,var(--surface-3))}
/* Перерывы: итоги подвалом таблицы, каждый своей строкой с линией. */
.tm-brkw tfoot td{border-top:1px solid var(--hair-2);background:var(--surface-3);font-weight:700;padding-top:8px;padding-bottom:8px}
.tm-brkw tfoot tr:first-child td{border-top:2px solid var(--edge)}

/* ── Правки 14.10.2026 (вечер) ── */
/* Окошки шире, заголовок переносится, таблица операций — во всю ширину. */
.tm-info-modal.wide{max-width:860px}
.tm-info-modal .modal-head h2{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}
.tm-info-t td.k{white-space:normal}
.tm-hire{margin-left:10px;color:var(--text-2)}
.tm-hire::before{content:"";display:inline-block;width:1px;height:11px;margin-right:10px;background:var(--hair-2);vertical-align:-1px}
/* Сетка часов: работа — зелёный по насыщенности, перерыв — латунь, вне смены — серая штриховка. */
.tm-view .tm-hours td.hc{background:color-mix(in srgb,var(--gain) var(--a,0%),var(--surface-2))}
.tm-view .tm-hours td.hc.brk{background:color-mix(in srgb,var(--mid) 30%,var(--surface-2))}
.tm-view .tm-hours tr.sum td.hc.brk{background:color-mix(in srgb,var(--mid) 36%,var(--surface-3))}
.tm-view .tm-hours td.hc.off,.tm-view .tm-hours tr.sum td.hc.off{background:repeating-linear-gradient(135deg,var(--surface-4) 0 3px,var(--surface-2) 3px 7px)}
.tm-view .tm-hours tr.sum td.hc.lt{background:color-mix(in srgb,var(--lc,transparent) var(--la,0%),var(--surface-3))}
.tm-legend{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.tm-legend span{display:inline-flex;align-items:center;gap:6px}
.tm-legend .lg{display:inline-block;width:16px;height:12px;border:1px solid var(--hair-2);border-radius:2px}
.tm-legend .lg.work{background:linear-gradient(90deg,color-mix(in srgb,var(--gain) 15%,var(--surface-2)),color-mix(in srgb,var(--gain) 60%,var(--surface-2)))}
.tm-legend .lg.brk{background:color-mix(in srgb,var(--mid) 30%,var(--surface-2))}
.tm-legend .lg.off{background:repeating-linear-gradient(135deg,var(--surface-4) 0 3px,var(--surface-2) 3px 7px)}
.tm-legend .lg.lo{background:color-mix(in srgb,var(--gain) 30%,var(--surface-3))}
.tm-legend .lg.md{background:color-mix(in srgb,var(--mid) 40%,var(--surface-3))}
.tm-legend .lg.hi{background:color-mix(in srgb,var(--loss) 50%,var(--surface-3))}
.tm-peaks{padding:0 16px 10px;font-size:13px;color:var(--text-1);line-height:1.5}
.tm-peaks>span:first-child{color:var(--text-2)}
.tm-view .tm-hours tr.clickable th.lab{cursor:pointer}
.tm-view .tm-hours tr.clickable{cursor:default}
.tm-view .tm-load tr.clickable{cursor:pointer}
/* Перерывы: обе итоговые строки одного цвета, одна линия сверху. */
.tm-brkw tfoot td,.tm-brkw tfoot tr:first-child td{background:var(--surface-3);border-top:1px solid var(--hair-2);font-weight:700}
.tm-brkw tfoot tr:first-child td{border-top:2px solid var(--edge)}
/* Таблица операций: итог внизу. */
.tm-opst tfoot td{position:sticky;bottom:0;background:var(--surface-3);border-top:2px solid var(--edge);font-weight:700}
/* Девять плашек периода. */
.tm-tiles.c9{grid-template-columns:repeat(9,minmax(0,1fr))}
.tm-tiles.c8{grid-template-columns:repeat(8,minmax(0,1fr))}
@media (max-width:1400px){.tm-tiles.c9,.tm-tiles.c8{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tm-tiles.c9>.tm-tile:nth-child(6),.tm-tiles.c8>.tm-tile:nth-child(6){border-left:0}
  .tm-tiles.c9>.tm-tile:nth-child(n+6),.tm-tiles.c8>.tm-tile:nth-child(n+6){border-top:1px solid var(--hair-2)}}
@media (max-width:760px){.tm-tiles.c9,.tm-tiles.c8{grid-template-columns:1fr 1fr}
  .tm-tiles.c9>.tm-tile:nth-child(odd),.tm-tiles.c8>.tm-tile:nth-child(odd){border-left:0}
  .tm-tiles.c9>.tm-tile:nth-child(n+3),.tm-tiles.c8>.tm-tile:nth-child(n+3){border-top:1px solid var(--hair-2)}}
/* Девять плашек: подпись в одну строку, иначе числа в ряду стоят на разной высоте. */
.tm-tiles.c9 .tm-tile,.tm-tiles.c8 .tm-tile{padding:8px 10px}
.tm-tiles.c9 .tm-tile .l,.tm-tiles.c8 .tm-tile .l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Галочка «есть подробности» — в углу плашки, чтобы не съедать место у подписи. */
.tm-tiles.c9 .tm-tile.has-info,.tm-tiles.c8 .tm-tile.has-info{position:relative}
.tm-tiles.c9 .tm-tile.has-info .l,.tm-tiles.c8 .tm-tile.has-info .l{padding-right:10px}
.tm-tiles.c9 .tm-tile.has-info .l::after,.tm-tiles.c8 .tm-tile.has-info .l::after{position:absolute;right:9px;top:13px;margin:0}
.tm-view .tm-brkw table.tm-tbl tfoot td{background:var(--surface-3)}
/* Итог таблицы операций прилипает к низу рамки и лежит поверх строк (первый столбец строк тоже липкий). */
.tm-view .tm-tw table.tm-opst tfoot td{position:sticky;bottom:0;z-index:4;padding:9px 11px;background:var(--surface-3);border-top:2px solid var(--edge);font-weight:700}
.tm-info-modal table.tm-opst tfoot td{position:sticky;bottom:0;z-index:4;padding:9px 11px;background:var(--surface-3);border-top:2px solid var(--edge);font-weight:700}
.tm-dayf .tm-dayn{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:var(--text-1);background:var(--surface-3);
  border:1px solid var(--hair-2);border-radius:5px;padding:1px 7px}
.tm-info-t td.k{white-space:nowrap}
.tm-info-t td.v{white-space:normal}
@media (max-width:760px){
  .tm-view .tm-head{flex-direction:column;align-items:stretch;gap:10px}
  .tm-hire,.tm-warn{display:block;margin-left:0;margin-top:2px}
  .tm-hire::before{display:none}
}

/* ── Правки 14.10.2026 (поздний вечер) ── */
/* Итоги плашками вместо текста через запятую. */
.tm-chips{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:4px}
.tm-chip{display:inline-flex;align-items:baseline;gap:5px;padding:3px 9px;border:1px solid var(--hair-2);border-radius:6px;
  background:var(--surface-3);font-size:12.5px;color:var(--text-2);white-space:nowrap}
.tm-chip b{font-size:13.5px;font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}
.tm-peaks{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 16px 12px}
.tm-peaks>span:first-child{color:var(--text-2);font-size:12.5px;margin-right:4px}
/* Цвет вида работы: точка у названия, заливка клеток. */
.tm-kc{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--kc);margin-right:7px;vertical-align:0}
.tm-view .tm-hours td.hc.kc{background:color-mix(in srgb,var(--kc,transparent) var(--a,0%),var(--surface-2))}
.tm-kinds{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tm-kinds-hint{font-size:12px;color:var(--text-3);margin-left:6px}
/* Фильтр по ролям над таблицей людей. */
.tm-rolef{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.tm-kleg{padding:0 16px 8px}
/* Таблица людей: столбец роли и сортировка по заголовкам. */
.tm-view .tm-people td.role,.tm-view .tm-people th.role{text-align:left;padding:0 10px;white-space:nowrap;font-size:12px;color:var(--text-1);
  max-width:190px;overflow:hidden;text-overflow:ellipsis;background:var(--surface-2)}
.tm-view .tm-people td.role.dim{color:var(--text-3)}
.tm-view .tm-hours th.sortable{cursor:pointer;user-select:none}
.tm-view .tm-hours th.sortable:hover{color:var(--accent)}
/* Строки смен: оплачено, а работы нет — бордовая полоса и тон; дыра в выгрузке — латунная подпись. */
.tm-view .tm-tbl tbody tr.warn>td{background:color-mix(in srgb,var(--loss) 7%,var(--surface-2))}
.tm-view .tm-tbl tbody tr.warn>td:first-child{box-shadow:inset 3px 0 0 var(--loss)}
.tm-tbl td small.gapn{color:var(--mid);font-weight:600;white-space:normal;max-width:220px}
.tm-note{margin:0 16px 12px;padding:9px 12px;border-radius:8px;font-size:13px;line-height:1.45;border:1px solid var(--hair-2)}
.tm-note.mid{background:color-mix(in srgb,var(--mid) 9%,var(--surface-2));border-color:color-mix(in srgb,var(--mid) 35%,var(--hair-2))}
.tm-note.loss{background:color-mix(in srgb,var(--loss) 7%,var(--surface-2));border-color:color-mix(in srgb,var(--loss) 30%,var(--hair-2))}
/* Пояснение под сеткой: строки не слипаются при переносе, отступ от таблицы. */
.tm-hint.tm-legend{row-gap:9px;margin-top:8px}
/* График по месяцам: что показать и период. */
.tm-mctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.tm-msel{min-width:240px;max-width:320px}
.tm-dash{color:var(--text-3)}
@media (max-width:760px){.tm-mctl{margin-left:0;width:100%}.tm-msel{min-width:0;flex:1 1 100%;max-width:none}}
/* Липкая шапка таблиц с прокруткой: в Safari над ней оставалась щель в 1 px, сквозь которую при прокрутке видно
   строки (Раиль 14.10.2026). Поднимаем шапку на 1 px под рамку и закрываем верх тенью цвета шапки;
   вертикальные линии рисуем тенью — у липких ячеек слитые границы пропадают. */
.tm-view .tm-tw.tm-scroll7 thead th,.tm-view .tm-tw.tm-scroll10 thead th{top:-1px;
  box-shadow:0 -2px 0 var(--surface-head),inset -1px 0 0 var(--hair-2),inset 0 -1px 0 var(--hair-2)}
.tm-view .tm-tw.tm-scroll7 thead th:last-child,.tm-view .tm-tw.tm-scroll10 thead th:last-child{box-shadow:0 -2px 0 var(--surface-head),inset 0 -1px 0 var(--hair-2)}
.tm-info-modal .tm-tw.tm-scroll10 thead th{top:-1px;box-shadow:0 -2px 0 var(--surface-head),inset -1px 0 0 var(--hair-2),inset 0 -1px 0 var(--hair-2)}
/* Итоговые строки — целиком цвета шапки: первую ячейку общий стиль сайта красит так с !important,
   остальные были светлее, и строка выглядела двухцветной (Раиль 14.10.2026). */
.tm-view .tm-brkw table.tm-tbl tfoot td,.tm-view .tm-tw table.tm-opst tfoot td,.tm-info-modal table.tm-opst tfoot td{background:var(--surface-head,var(--surface-3))}
/* Таблица перерывов не липнет к пояснению над ней (Раиль: «на два миллиметра ниже»). */
.tm-view .tm-tw.tm-brkw{margin-top:14px}
.tm-view .tm-hours thead th.tot{white-space:nowrap}
/* Столбцы «Сотрудник» и «Роль» одной заливкой (Раиль 14.10.2026: роль была белой, фамилия — серой). */
.tm-view .tm-hours tbody th.lab,.tm-view .tm-people tbody td.role{background:var(--surface-3)}
.tm-view .tm-hours tbody tr.sum th.lab,.tm-view .tm-people tbody tr.sum td.role{background:var(--surface-3)}

/* ── Правки 15.10.2026 ── */
/* Шапка «Роль» — как остальные заголовки (была белой). */
.tm-view .tm-people thead th.role{background:var(--surface-head)}
/* Свёртка «Загрузки склада по часам». */
.tm-fold-h{cursor:pointer;user-select:none}
.tm-fold-h:hover h3{color:var(--accent)}
.tm-fold-h:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px}
.tm-fold-ic{display:inline-block;width:7px;height:7px;margin:0 9px 2px 1px;border-right:1.6px solid var(--text-2);border-bottom:1.6px solid var(--text-2);transform:rotate(45deg);transition:transform .15s}
.tm-fold-h.closed .tm-fold-ic{transform:rotate(-45deg)}
.tm-fold-t{margin-left:auto;font-size:12px;color:var(--text-3)}
.tm-fold-h.closed{border-bottom:0}
/* «Все операции» — отдельно от видов. */
.tm-kinds .tm-all{margin-right:6px}
/* График по месяцам: несколько показателей галочками. */
.tm-mpick{position:relative}
.tm-view button.tm-msel{min-width:260px;max-width:380px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;padding-right:28px;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.tm-mpop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:320px;max-height:420px;overflow:auto;background:var(--surface-2);
  border:1px solid var(--edge);border-radius:var(--radius-card);padding:8px 0;box-shadow:0 12px 30px -12px rgba(0,0,0,.28)}
.tm-mpop-h{font-size:11.5px;color:var(--text-3);padding:2px 14px 6px}
.tm-mpop-g{font-size:11px;font-weight:700;color:var(--text-2);padding:8px 14px 4px;border-top:1px solid var(--hair)}
.tm-mpop label{display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:13px;color:var(--text-1);cursor:pointer}
.tm-mpop label:hover{background:var(--surface-3)}
.tm-mpop label.off{color:var(--text-3);cursor:default}
.tm-mpop label i{width:12px;height:3px;border-radius:2px;flex:0 0 auto}
.tm-mpop input{accent-color:var(--accent)}
@media (max-width:760px){.tm-mpick{flex:1 1 100%}.tm-view button.tm-msel{min-width:0;max-width:none;width:100%}.tm-mpop{left:0;right:auto;width:min(320px,100%)}}
.tm-view .tm-people td.role small.tm-shiftd{display:block;font-size:11px;color:var(--mid);line-height:1.2}
/* Подписи в девяти плашках: «Начислено» не обрезается. */
.tm-tiles.c9 .tm-tile .l,.tm-tiles.c8 .tm-tile .l{letter-spacing:.02em}

/* ── Правки 15.10.2026 (день) ── */
/* Список с галочками — в стиле выпадающих списков сайта. */
.tm-mp .tm-mp-btn{min-width:240px;max-width:380px}
.tm-mp-pop{min-width:300px;display:flex;flex-direction:column;padding:4px}
.tm-mp-pop .tm-mp-q{margin:2px 2px 6px;height:30px;padding:0 10px;border:1px solid var(--hair-2);border-radius:var(--radius-ctrl);
  background:var(--surface-2);color:var(--text-1);font:12.5px inherit}
.tm-mp-pop .tm-mp-q:focus{outline:1px solid var(--accent);border-color:var(--accent)}
.tm-mp-list{overflow:auto;min-height:0;flex:1 1 auto}
.tm-mp-pop .tm-mp-opt{gap:8px;padding-right:10px}
.tm-mp-pop .tm-mp-opt span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}
.tm-mp-pop .tm-mp-opt b{font-weight:600;color:var(--text-3);font-variant-numeric:tabular-nums}
.tm-mp-pop .tm-mp-c{width:12px;height:3px;border-radius:2px;flex:0 0 auto}
.tm-mp-pop .tm-mp-all{color:var(--accent);font-weight:600;border-bottom:1px solid var(--hair);border-radius:0;margin-bottom:2px}
.tm-mp-h{font-size:11px;color:var(--text-3);padding:2px 10px 4px}
.tm-mp-g{font-size:11px;font-weight:700;color:var(--text-2);padding:8px 10px 3px}
.tm-mp-none{font-size:12.5px;color:var(--text-3);padding:8px 10px}
.tm-rolef{padding:0 16px 10px}
@media (max-width:760px){.tm-mp{width:100%}.tm-mp .tm-mp-btn{min-width:0;max-width:none;width:100%}}
/* Шапка сотрудника — в масштабе меню сайта, без лишнего воздуха. */
.tm-view .tm-head{padding:9px 14px}
.tm-view .tm-head h2{font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.tm-view .tm-head .tm-sub{font-size:12px;margin-top:2px}
/* Меньше воздуха между меню сайта и списком сотрудников (Раиль 15.10.2026). */
@media (min-width:761px){#content.tm-view{padding-left:10px}}

/* Кнопка и меню списка с галочками — как у выпадающих списков сайта (.xsel-btn / .xsel-pop / .xsel-opt). */
.tm-mp{position:relative;display:inline-flex;vertical-align:middle}
.tm-mp-btn{height:29px;padding:0 26px 0 10px;font:12.5px/1 inherit;color:var(--text-1);background:var(--surface-2);
  border:1px solid var(--hair-2);border-radius:var(--radius-ctrl);cursor:pointer;display:inline-flex;align-items:center;
  white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;text-align:left}
.tm-mp-btn::after{content:"";position:absolute;right:10px;top:50%;width:6px;height:6px;border-right:1.4px solid var(--text-3);
  border-bottom:1.4px solid var(--text-3);transform:translateY(-70%) rotate(45deg)}
.tm-mp-btn:hover{border-color:var(--text-3)}
.tm-mp.open .tm-mp-btn{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}
.tm-mp-btn:focus-visible{outline:2px solid var(--accent-line)}
.tm-mp-pop{position:fixed;z-index:2400;overflow:hidden;background:var(--surface-2);border:1px solid var(--hair-2);
  border-radius:var(--radius-card);box-shadow:var(--shadow-ambient)}
.tm-mp-opt{min-height:27px;padding:0 10px 0 23px;border-radius:var(--radius-chip);font-size:12.5px;color:var(--text-1);
  display:flex;align-items:center;white-space:nowrap;cursor:pointer;position:relative}
.tm-mp-opt:hover{background:var(--surface-3)}
.tm-mp-opt.off{color:var(--text-3);cursor:default}
.tm-mp-opt.on{font-weight:600}
.tm-mp-opt.on::before{content:"";position:absolute;left:8px;top:50%;width:4px;height:8px;border-right:1.6px solid var(--accent);
  border-bottom:1.6px solid var(--accent);transform:translateY(-62%) rotate(42deg)}
.tm-mp-opt.tm-mp-all::before{display:none}
/* Семь плашек дисциплины: подпись в одну строку, галочка в углу — как у девяти плашек сверху. */
.tm-tiles.c7 .tm-tile{padding:8px 10px}
.tm-tiles.c7 .tm-tile .l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em}
.tm-tiles.c7 .tm-tile.has-info{position:relative}
.tm-tiles.c7 .tm-tile.has-info .l{padding-right:10px}
.tm-tiles.c7 .tm-tile.has-info .l::after{position:absolute;right:9px;top:13px;margin:0}
.tm-tbl td small.tm-rpay{display:inline;color:var(--text-2);font-weight:600;margin-left:4px;font-size:11.5px}
.tm-legend .lg.idle{background:var(--surface-2)}
/* Семь плашек дисциплины: подпись может уйти на вторую строку, высота подписи одинаковая — числа на одной линии. */
.tm-tiles.c7 .tm-tile .l{white-space:normal;overflow:visible;text-overflow:clip;min-height:2.5em;line-height:1.25}
/* Подпись последнего месяца и значение у крайней точки — внутри рамки (Раиль 15.10.2026). */
.tm-view .chart-wrap.tm-chart{padding-right:28px;box-sizing:border-box}
/* Плашки смены и дисциплины — ниже, без лишнего воздуха (Раиль 15.10.2026). */
.tm-view .tm-shift-tiles .tm-tile,.tm-view .tm-tiles.c7 .tm-tile{padding:5px 10px 6px}
.tm-view .tm-shift-tiles .tm-tile .v,.tm-view .tm-tiles.c7 .tm-tile .v{font-size:15px;margin-top:1px;line-height:1.25}
.tm-view .tm-shift-tiles .tm-tile .s{font-size:11px;margin-top:0;line-height:1.2}
.tm-view .tm-tiles.c7 .tm-tile .l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:0;line-height:1.3;
  font-size:9.5px;letter-spacing:.01em}
.tm-view .tm-tiles.c7 .tm-tile.has-info .l::after{top:9px}
.tm-view .tm-shift-tiles .tm-tile.has-info{position:relative}
.tm-view .tm-shift-tiles .tm-tile.has-info .l{padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-view .tm-shift-tiles .tm-tile.has-info .l::after{position:absolute;right:9px;top:9px;margin:0}
.tm-note.idle{background:color-mix(in srgb,var(--accent) 5%,var(--surface-2));border-color:color-mix(in srgb,var(--accent) 22%,var(--hair-2))}
.tm-view .tm-shift-tiles .tm-tile .s{white-space:nowrap;font-size:10.5px;overflow:visible}
.tm-view .tm-tiles.c9 .tm-tile .l,.tm-view .tm-tiles.c8 .tm-tile .l{font-size:9.5px;letter-spacing:.01em}
/* Отклонение от смены по графику: минус — красным, плюс — обычным цветом. */
.tm-dev-neg{color:var(--loss);font-weight:700}
.tm-mctl .mrpick.tm-mpick-per{margin:0;gap:8px}
/* Роли столбиком в одну высоту строки (Раиль 15.10.2026: «через запятую не помещается»). */
.tm-view .tm-people td.role{line-height:1.15;padding-top:2px;padding-bottom:2px}
.tm-view .tm-people td.role .tm-rl{display:block;font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
.tm-view .tm-people td.role .tm-rl+.tm-rl{font-size:11px;color:var(--text-2)}
.tm-chart{height:250px}
/* Прокрутка внутри таблицы или списка не уводит страницу, когда дошли до края (Раиль 15.10.2026). */
.tm-view .tm-tw.tm-scroll7,.tm-view .tm-tw.tm-scroll10,.tm-view .tm-side .tm-list,.tm-mp-list,.tm-info-modal .tm-tw{overscroll-behavior-y:contain}

/* ── График и переработки (15.10.2026) ── */
.tm-srange{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2);margin-left:8px}
.tm-srange input{height:28px;padding:0 8px;font-size:12.5px;width:auto}
.tm-otot{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;margin:10px 16px 2px;padding:9px 12px;border:1px solid var(--hair-2);
  border-radius:8px;background:var(--surface-3);font-size:13px;color:var(--text-2)}
.tm-otot b{color:var(--text-1);font-variant-numeric:tabular-nums}
.tm-otot .pay{margin-left:auto}
.tm-otot .pay b{color:var(--accent)}
.tm-sched{border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums;width:100%}
.tm-sched th,.tm-sched td{border:1px solid var(--hair-2);text-align:center;padding:0;min-width:30px;height:34px}
.tm-sched thead th{background:var(--surface-head);font-weight:600;color:var(--text-2);height:34px;line-height:1.1}
.tm-sched thead th b{display:block;font-size:12px;color:var(--text-1)}
.tm-sched thead th small{display:block;font-size:10px;font-weight:500}
.tm-sched thead th.we small,.tm-sched thead th.we b{color:var(--loss)}
.tm-sched th.nm{text-align:left;padding:2px 10px;white-space:nowrap;background:var(--surface-3);font-weight:600;color:var(--text-1);min-width:170px;cursor:pointer}
.tm-sched thead th.nm{cursor:default;background:var(--surface-head)}
.tm-sched th.nm small{display:block;font-size:10.5px;font-weight:400;color:var(--text-2)}
.tm-sched td.off{background:var(--surface-2)}
.tm-sched td.pl{position:relative;background:linear-gradient(to top,color-mix(in srgb,var(--accent) 22%,var(--surface-2)) var(--f,50%),var(--surface-2) var(--f,50%));line-height:1.05}
.tm-sched td.pl b{display:block;font-size:12.5px;color:var(--text-1)}
.tm-sched td.pl i{display:block;font-style:normal;font-size:10px;font-weight:600;color:var(--text-2)}
.tm-sched td.pl i.neg{color:var(--loss)}
.tm-sched td.pl i.q{color:var(--text-3)}
.tm-sched td.pl.long{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--loss) 75%,transparent)}
.tm-sched td.tt,.tm-sched th.tt{padding:2px 8px;white-space:nowrap;background:var(--surface-3);font-weight:700;min-width:58px}
.tm-sched thead th.tt{background:var(--surface-head);font-size:10.5px}
.tm-sched td.tt small{display:block;font-size:10px;font-weight:500;color:var(--text-2)}
.tm-sched td.tt.neg{color:var(--loss)}
.tm-sched tr.sum td,.tm-sched tr.sum th{background:var(--surface-3);font-weight:700;height:26px}
.tm-sched tr.sum td.tt{background:var(--surface-3)}
.tm-schedw{overflow-x:auto}
.tm-view .tm-tw.tm-schedw{margin:0 16px 4px}
.tm-legend .lg.pl{background:linear-gradient(to top,color-mix(in srgb,var(--accent) 22%,var(--surface-2)) 50%,var(--surface-2) 50%)}
.tm-legend .lg.long{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--loss) 75%,transparent)}
.tm-wdavg{display:flex;flex-wrap:wrap;gap:4px 14px;padding:4px 16px}
.tm-schedbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tm-schedbar .tm-pdf{margin-left:auto}
.tm-print-host{position:fixed;left:-12000px;top:0}
.tm-print{width:1100px;background:#fff;color:#111;padding:6px;font:400 11px/1.35 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
.tm-print h1{font-size:16px;margin:0 0 4px}
.tm-print .sub{font-size:11px;color:#444;margin-bottom:4px}
.tm-print .tm-sched th,.tm-print .tm-sched td{border-color:#999;height:26px;min-width:0;font-size:9.5px}
.tm-print .tm-sched th.nm{min-width:120px;background:#f2f2f2 !important;color:#111}
.tm-print .tm-sched thead th{background:#eee !important;color:#111}
.tm-print .tm-sched td.pl{background:linear-gradient(to top,#dfe6f3 var(--f,50%),#fff var(--f,50%))}
.tm-print .tm-sched td.tt,.tm-print .tm-sched tr.sum td,.tm-print .tm-sched tr.sum th{background:#f2f2f2 !important;color:#111}
.tm-print .tm-sched td.pl.long{box-shadow:inset 0 0 0 2px #b04a40}
.tm-view .tm-sched td.pl{background:linear-gradient(to top,color-mix(in srgb,var(--accent) 34%,var(--surface-2)) var(--f,50%),var(--surface-2) var(--f,50%))}
.tm-legend .lg.pl{background:linear-gradient(to top,color-mix(in srgb,var(--accent) 34%,var(--surface-2)) 50%,var(--surface-2) 50%)}
.tm-view .tm-sched td.oth,.tm-print .tm-sched td.oth{background:repeating-linear-gradient(135deg,var(--surface-3) 0 3px,var(--surface-2) 3px 7px);color:var(--text-3)}
.tm-sched td.oth b{font-size:11px;font-weight:500;color:var(--text-3)}
.tm-legend .lg.oth{background:repeating-linear-gradient(135deg,var(--surface-4) 0 3px,var(--surface-2) 3px 7px)}
/* PDF: лист шире таблицы — html2pdf ужимает его в ширину страницы, ничего не обрезается. */
.tm-print{width:1700px}
.tm-print .tm-sched{width:100%;table-layout:auto}
.tm-print .tm-sched td.tt,.tm-print .tm-sched th.tt{min-width:60px}
.tm-print{width:1060px}
.tm-print .tm-sched{table-layout:fixed}
.tm-print .tm-sched th.nm{width:150px;min-width:0}
.tm-print .tm-sched th,.tm-print .tm-sched td{font-size:9px;height:24px}
.tm-print .tm-sched thead th small{font-size:7.5px}
.tm-print .tm-sched td.pl i{font-size:8px}
.tm-print .tm-ptot{width:100%;border-collapse:collapse;margin-top:12px;font-size:10.5px;page-break-inside:auto}
.tm-print .tm-ptot th,.tm-print .tm-ptot td{border:1px solid #999;padding:4px 6px;text-align:right;color:#111}
.tm-print .tm-ptot th{background:#eee !important;font-size:9.5px}
.tm-print .tm-ptot td:first-child,.tm-print .tm-ptot td:nth-child(2),.tm-print .tm-ptot th:first-child,.tm-print .tm-ptot th:nth-child(2){text-align:left}
.tm-print .tm-ptot tfoot td{background:#f2f2f2 !important;font-weight:700}
.tm-print .tm-ptot td:first-child{--col-stick:#fff}
.tm-print .tm-ptot th:first-child{--col-stick:#eee}
.tm-print .tm-ptot tfoot td:first-child{background:#f2f2f2 !important}
.tm-print .sign{display:flex;justify-content:space-between;margin-top:22px;font-size:11px}

/* ── Отпускные и сверка зарплаты (15.10.2026) ── */
.tm-htiles{display:flex;gap:8px;margin-left:auto;align-items:stretch}
.tm-ht{display:flex;flex-direction:column;justify-content:center;min-width:110px;padding:5px 11px;border:1px solid var(--hair-2);border-radius:8px;background:var(--surface-2)}
.tm-ht span{font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-2)}
.tm-ht b{font-size:14px;font-weight:700;color:var(--text-1);white-space:nowrap}
.tm-ht small{font-size:10.5px;color:var(--text-2);white-space:nowrap}
.tm-ht-out{border:1.5px solid var(--accent);cursor:pointer}
.tm-ht-out:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}
.tm-ht-out:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}
.tm-view .tm-head{align-items:center}
@media (max-width:760px){.tm-htiles{margin-left:0;flex-wrap:wrap}.tm-ht{flex:1 1 30%;min-width:0}}
.tm-comp .tm-chips{margin:0 0 10px}
.tm-chip-warn{border-color:color-mix(in srgb,var(--loss) 40%,var(--hair-2));color:var(--loss)}
.tm-chip-warn b{color:var(--loss)}
.tm-comp-chart{margin:0 0 12px;height:200px}
.tm-comp .tm-tw{margin:0}
.tm-comp tr.tm-comp-next td{background:color-mix(in srgb,var(--accent) 6%,var(--surface-2));font-weight:600}
.tm-recon{padding:0 0 12px}
.tm-recon .tm-hint{padding:0 16px}
.tm-recon-chips{padding:0 16px 10px;margin:0}
.tm-rc-loss{border-color:color-mix(in srgb,var(--loss) 40%,var(--hair-2))}
.tm-rc-loss b{color:var(--loss)}
.tm-rc-mid{border-color:color-mix(in srgb,var(--mid) 45%,var(--hair-2))}
.tm-rc-mid b{color:var(--mid)}
.tm-rc-tag{display:inline-block;padding:1px 7px;border-radius:5px;font-size:11.5px;font-weight:700}
.tm-rc-tag.loss{color:var(--loss);background:color-mix(in srgb,var(--loss) 10%,transparent)}
.tm-rc-tag.mid{color:var(--mid);background:color-mix(in srgb,var(--mid) 13%,transparent)}
.tm-view .tm-recon-t tr.rc-no_pay>td:first-child{box-shadow:inset 3px 0 0 var(--loss)}
.tm-view .tm-recon-t tr.rc-no_base>td:first-child{box-shadow:inset 3px 0 0 var(--mid)}
/* Пока грузится новый экран — прежний приглушён, без белой вспышки. */
#content.tm-view{transition:opacity .18s ease}
#content.tm-view.tm-busy{opacity:.55;pointer-events:none}
/* Итог переработок плашками; «К оплате» — синим и крупнее. */
.tm-view .tm-ototw{padding-top:10px}
.tm-view .tm-otiles .tm-tile .v.pay,.tm-view .tm-otiles .tm-tile .s.pay{color:var(--accent)}
.tm-view .tm-otiles .tm-tile:last-child{background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}
.tm-view .tm-otiles .tm-tile:last-child .v{font-size:18px;font-weight:800}
.tm-view .tm-otiles .tm-tile .s.pay{font-weight:600}
/* Компактно (Раиль 15.10.2026): в плашках шапки подпись и значение в одну строку. */
.tm-ht{flex-direction:row;align-items:baseline;gap:8px;min-width:0;padding:6px 12px}
.tm-ht span{font-size:10px}
.tm-ht b{font-size:13.5px}
/* Итог переработок: пояснение («2 ч × 500 ₽») справа от суммы, а не под ней. */
.tm-view .tm-otiles .tm-tile{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;padding:6px 10px}
.tm-view .tm-otiles .tm-tile .l{flex:1 0 100%}
.tm-view .tm-otiles .tm-tile .v{margin-top:1px;font-size:15px}
.tm-view .tm-otiles .tm-tile:last-child .v{font-size:16px}
.tm-view .tm-otiles .tm-tile .s{margin:0;font-size:11px}

/* Отпускные (Раиль 15.10.2026): столбики по месяцам своей разметкой — подпись «ожидается» вертикально внутри полого
   столбика, увольнение и приём тонкой линией в своём месяце. */
.tm-cbars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin:0 0 12px;padding:8px 8px 0;border:1px solid var(--hair-2);border-radius:8px;background:var(--surface-2)}
.tm-cbars .c{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.tm-cbars .a{position:relative;height:150px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--hair)}
.tm-cbars .b{position:relative;display:flex;align-items:center;justify-content:center;width:72%;max-width:40px;border-radius:5px 5px 0 0}
.tm-cbars .b.paid{background:var(--accent)}
.tm-cbars .b.next{border:1.5px dashed var(--accent);border-bottom:0;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.tm-cbars .b.miss{border:1.5px dashed var(--loss);border-bottom:0;background:color-mix(in srgb,var(--loss) 6%,var(--surface))}
.tm-cbars .b em{writing-mode:vertical-rl;transform:rotate(180deg);font-style:normal;font-size:11px;font-weight:650;white-space:nowrap;color:var(--accent)}
.tm-cbars .b.miss em{color:var(--loss)}
.tm-cbars .s{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:100%;height:100%}
.tm-cbars .v{margin-bottom:3px;font-size:10.5px;font-weight:700;color:var(--text-1);white-space:nowrap;font-variant-numeric:tabular-nums}
.tm-cbars .m{padding:4px 0 6px;text-align:center;font-size:11px;color:var(--text-2);white-space:nowrap}
.tm-cbars .c.now .m{color:var(--text-1);font-weight:700}
.tm-cbars .mv{position:absolute;top:0;bottom:0;width:0;border-left:1.5px dashed var(--text-2);z-index:1}
.tm-cbars .mv.fire{border-left-color:var(--loss)}
.tm-cbars .mv em{position:absolute;top:2px;left:3px;writing-mode:vertical-rl;transform:rotate(180deg);font-style:normal;font-size:10.5px;font-weight:650;white-space:nowrap;color:var(--text-2)}
.tm-cbars .mv.fire em{color:var(--loss)}
.tm-comp tr.tm-comp-miss td{color:var(--loss)}
.tm-comp tr.tm-comp-mv td{color:var(--text-2);font-style:normal}
@media (max-width:760px){.tm-cbars{gap:2px;padding:6px 4px 0}.tm-cbars .a{height:120px}.tm-cbars .v{font-size:9px}.tm-cbars .m{font-size:9.5px}}

/* Кнопки-переключатели (Раиль 15.10.2026): сортировка списка сотрудников и «подряд по графику» во вкладке «Графики». */
.tm-seg{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--hair-2);border-radius:8px;background:var(--surface-2)}
.tm-seg-b{appearance:none;border:0;background:transparent;padding:5px 10px;border-radius:6px;font:inherit;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap}
.tm-seg-b small{font-size:11px;font-weight:700;color:var(--text-3);margin-left:2px}
.tm-seg-b:hover{color:var(--text-1);background:color-mix(in srgb,var(--text-1) 5%,transparent)}
.tm-seg-b.on{background:var(--surface);color:var(--text-1);box-shadow:0 0 0 1px var(--hair-2)}
.tm-seg-b.on small{color:var(--accent)}
.tm-seg-b:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}
.tm-side .tm-lsort{display:flex;margin:0 10px 8px}
.tm-side .tm-lsort .tm-seg-b{flex:1 1 0;padding:4px 6px}
.tm-ssearch{width:220px;max-width:100%}
.tm-sumlab{font-size:12px;font-weight:700;color:var(--text-2);margin:0 0 6px}
.tm-sched td.pl.nc b{color:var(--text-3)}
.tm-view .tm-norms td{padding:3px 10px;vertical-align:middle}
.tm-norms td.v{text-align:right}
.tm-view .tm-norms input.tm-nh{width:64px;height:24px;min-height:0;text-align:right;padding:2px 6px;font-size:12.5px}
.tm-norms input.tm-ns{width:16px;height:16px;accent-color:var(--accent)}
.tm-norms td small{display:inline-block;margin-left:8px;font-size:10.5px;color:var(--text-3)}
.tm-nbar{display:flex;align-items:center;gap:12px;margin-top:10px}
@media (max-width:760px){.tm-ssearch{width:100%}.tm-seg{flex-wrap:wrap}}

/* Сверка зарплаты: у каждой причины свой цвет из палитры сайта (Раиль 15.10.2026) —
   был, не начислено — бордо; выход не поставлен — синий; сборка без выхода — латунь; оплачен без отметок — слива. */
.tm-recon .c-pay{--rc:var(--s4)}
.tm-recon .c-rule{--rc:var(--s1)}
.tm-recon .c-base{--rc:var(--s2)}
.tm-recon .c-marks{--rc:var(--s7)}
.tm-recon .tm-rc-tag{color:var(--rc);background:transparent;border:1px solid var(--rc);padding:0 6px}
.tm-recon .tm-rc-chip{cursor:pointer;font:inherit;font-size:12px;border:1px solid color-mix(in srgb,var(--rc) 55%,var(--hair-2));background:transparent}
.tm-recon .tm-rc-chip b{color:var(--rc)}
.tm-recon .tm-rc-chip:hover{border-color:var(--rc)}
.tm-recon .tm-rc-chip.on{background:transparent;border:2px solid var(--rc);padding:0 9px;color:var(--text-1)}
.tm-recon .tm-rc-chip:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}
.tm-view .tm-recon-t tr.rc-row>td:first-child{box-shadow:inset 3px 0 0 var(--rc)}
.tm-view .tm-recon-t th.sortable{cursor:pointer;user-select:none}
.tm-view .tm-recon-t th.sortable:hover{color:var(--text-1)}

/* Две неподвижные колонки (Раиль 15.10.2026): список слева не двигается, правая часть листается сама. */
@media (min-width:761px){
  .tm-view .tm-grid.tm-fixed{align-items:stretch;overflow:hidden}
  .tm-view .tm-grid.tm-fixed .tm-side{position:static;top:auto;max-height:none;height:100%}
  .tm-view .tm-grid.tm-fixed .tm-main{height:100%;overflow-y:auto;overscroll-behavior-y:contain;padding:0 4px 12px 0;scrollbar-gutter:stable}
  .tm-view .tm-grid.tm-fixed .tm-main>*{flex-shrink:0}
}

/* Итого: плюс — доплатить (зелёным), минус — переплатили (красным). Сетка графика компактнее (Раиль 15.10.2026). */
.tm-tile .v.gain,.tm-tile .s.gain{color:var(--gain)}
.tm-view .tm-sched td.tt.gain{color:var(--gain)}
.tm-view .tm-sched td.tt.loss{color:var(--loss)}
.tm-view .tm-sched th.nm{min-width:0;width:150px;max-width:150px;padding:2px 8px}
.tm-view .tm-sched th.nm small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-view .tm-sched td.tt,.tm-view .tm-sched th.tt{min-width:0;padding:2px 6px}
.tm-view .tm-sched thead th.tt{font-size:10px;line-height:1.15;white-space:normal}
/* Операции по часам: строки ниже — роли в одну строку через запятую. */
.tm-view .tm-people th,.tm-view .tm-people td{height:22px}
.tm-view .tm-people thead th{height:24px}
.tm-view .tm-people td.role{padding-top:0;padding-bottom:0;max-width:240px;overflow:hidden;text-overflow:ellipsis}
.tm-view .tm-people td.role .tm-rl{display:inline;font-size:11.5px}
.tm-view .tm-people td.role .tm-rl+.tm-rl{font-size:11.5px;color:var(--text-2)}
.tm-view .tm-people td.role .tm-rl+.tm-rl::before{content:", "}
.tm-view .tm-people td.role small.tm-shiftd{display:inline;margin-left:6px}
.tm-view .tm-people th.lab{padding:0 8px}
.tm-view .tm-sched th.nm{width:168px;max-width:168px}
.tm-view .tm-sched td.pl,.tm-view .tm-sched td.off,.tm-view .tm-sched td.oth,.tm-view .tm-sched thead th:not(.nm):not(.tt),.tm-view .tm-sched tr.sum td:not(.tt){min-width:27px}
.tm-view .tm-sched .tt.last{border-right:2px solid var(--edge)}
.tm-view .tm-sched thead th.tt{min-width:50px;white-space:nowrap}

/* Сетка «Графиков»: границы тонкие и тёмные — серая рамка терялась на серой заливке (Раиль 15.10.2026). */
.tm-view .tm-sched{--grid-line:color-mix(in srgb,var(--text-1) 72%,transparent)}
.tm-view .tm-sched th,.tm-view .tm-sched td{border:1px solid var(--grid-line)}
.tm-view .tm-sched .tt.last{border-right:2px solid var(--text-1)}

/* Колесо в любом месте правой колонки листает её (Раиль 15.10.2026: «нужно прицелиться в ползунок»): таблица внутри
   долистала до края — дальше едет вся колонка. Наружу прокрутка не уходит: колонка сама держит свой край. */
@media (min-width:761px){
  .tm-view .tm-grid.tm-fixed .tm-main .tm-tw.tm-scroll7,.tm-view .tm-grid.tm-fixed .tm-main .tm-tw.tm-scroll10{overscroll-behavior-y:auto}
}

/* ── Карточка сотрудника блоками (Раиль 15.10.2026): номер, название, свёрнутый блок — главная цифра ── */
.tm-view .tm-blk{padding:0}
.tm-view .tm-blk:not(.closed){padding-bottom:12px}
.tm-bh{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;user-select:none;min-height:44px}
.tm-bh:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px;border-radius:var(--radius-card)}
.tm-bh .tm-no{flex:0 0 auto;width:22px;height:22px;border-radius:7px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;line-height:22px;text-align:center}
.tm-bh h3{margin:0;font-size:15px;font-weight:700;color:var(--text-1);white-space:nowrap}
.tm-bh .tm-bsum{min-width:0;font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-bh .tm-bsum b{color:var(--text-1);font-weight:700}
.tm-bh .tm-bsum .gain{color:var(--gain);font-weight:700}.tm-bh .tm-bsum .loss{color:var(--loss);font-weight:700}
.tm-bh .tm-bx{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;min-width:0;font-size:12.5px;color:var(--text-2)}
.tm-bh .tm-bx>span{font-size:12.5px;color:var(--text-2)}
.tm-bh .tm-bch{flex:0 0 auto;margin-left:auto;width:8px;height:8px;border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transform:rotate(45deg);margin-top:-4px;transition:transform .15s ease}
.tm-blk.closed .tm-bh .tm-bch{transform:rotate(-45deg);margin-top:0}
.tm-blk.closed .tm-bb,.tm-blk.closed .tm-bh .tm-bx{display:none}
.tm-blk:not(.closed) .tm-bh .tm-bsum{display:none}
.tm-blk.wait .tm-bh h3{color:var(--text-2)}.tm-blk.wait .tm-no{background:var(--text-3)}
.tm-view .tm-bin{padding:0;margin:0;border:0;box-shadow:none;background:transparent}
.tm-view .tm-bin>.tm-tiles.tm-bt,.tm-view .tm-bin .tm-bt{margin:0 16px 10px}
.tm-btool{appearance:none;font:inherit;font-size:11.5px;font-weight:600;padding:3px 9px;border:1px solid var(--hair-2);background:var(--surface-2);color:var(--text-2);border-radius:6px;cursor:pointer}
.tm-btool:hover{color:var(--text-1);border-color:var(--text-3)}
.tm-blk[data-blk="who"] .tm-bh .tm-bx{margin-left:auto}
.tm-blk[data-blk="who"] .tm-bh .tm-bch{margin-left:6px}
.tm-blk[data-blk="who"] .tm-bin.tm-head{padding:0 14px 2px}
.tm-blk[data-blk="shift"] .tm-bin>.tm-card-h{display:none}
@media (prefers-reduced-motion:reduce){.tm-bh .tm-bch{transition:none}}

/* Пауза без задач — спокойный сиреневый вместо коричневого (Раиль 15.10.2026: «безвкусный»). */
.tm-view .tm-hours td.hc.brk{background:color-mix(in srgb,var(--s5) 24%,var(--surface-2))}
.tm-view .tm-hours tr.sum td.hc.brk{background:color-mix(in srgb,var(--s5) 30%,var(--surface-3))}
.tm-legend .lg.brk{background:color-mix(in srgb,var(--s5) 24%,var(--surface-2))}

/* Таблицы «Команды» — тонкие тёмные линии везде, как в сетке графика (Раиль 15.10.2026). */
.tm-view{--grid-line:color-mix(in srgb,var(--text-1) 72%,transparent)}
.tm-view .tm-tbl th,.tm-view .tm-tbl td,.tm-view .tm-hours th,.tm-view .tm-hours td,.tm-view .tm-hours tbody th,.tm-view .tm-hours tbody td,.tm-view .tm-hours thead th{border-color:var(--grid-line)}
.tm-view .tm-tw{border-color:var(--grid-line)}

/* Полторашка в сетке: подряд идущие смены 36 ч+ — одной жирной рамкой, между днями тонкая линия. */
.tm-view .tm-sched td.pl.long{box-shadow:none}
.tm-view .tm-sched td.pl.lr{--lw:2.5px;--lc:color-mix(in srgb,var(--loss) 85%,transparent);box-shadow:inset 0 var(--lw) 0 0 var(--lc),inset 0 calc(-1 * var(--lw)) 0 0 var(--lc)}
.tm-view .tm-sched td.pl.lr.ls{box-shadow:inset 0 var(--lw) 0 0 var(--lc),inset 0 calc(-1 * var(--lw)) 0 0 var(--lc),inset var(--lw) 0 0 0 var(--lc)}
.tm-view .tm-sched td.pl.lr.le{box-shadow:inset 0 var(--lw) 0 0 var(--lc),inset 0 calc(-1 * var(--lw)) 0 0 var(--lc),inset calc(-1 * var(--lw)) 0 0 0 var(--lc)}
.tm-view .tm-sched td.pl.lr.ls.le{box-shadow:inset 0 0 0 var(--lw) var(--lc)}
.tm-top .tm-btools{display:flex;gap:6px;margin-left:auto}
.tm-top .tm-btools+.mrpick{margin-left:6px}
.tm-cmv{display:flex;gap:6px 18px;flex-wrap:wrap;margin:-4px 0 12px;font-size:12.5px;color:var(--text-1)}
.tm-cmv span{display:inline-flex;align-items:center;gap:7px}
.tm-cmv i{display:inline-block;width:0;height:14px;border-left:1.5px dashed var(--text-2)}
.tm-cmv .fire{color:var(--loss)}.tm-cmv .fire i{border-left-color:var(--loss)}

/* Рейтинг (Раиль 15.10.2026): место, индекс полоской, части — цветом только слабые, награда синим. */
.tm-rmon{font-size:13px;font-weight:700;color:var(--text-1);margin-right:4px}
.tm-rtop{padding:12px 16px}
.tm-rtop .tm-tiles{margin:0}
.tm-view .tm-rt td,.tm-view .tm-rt th{padding:4px 8px}
.tm-view .tm-rt td.k small{display:block;font-size:11px;color:var(--text-2);font-weight:400;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.tm-view .tm-rt tbody tr{cursor:pointer}
.tm-view .tm-rt tbody tr:hover>td{background:var(--surface-3)}
.tm-view .tm-rt tr.off>td{color:var(--text-3)}
.tm-view .tm-rt td.loss{color:var(--loss);font-weight:700}
.tm-view .tm-rt td.mid{color:var(--mid);font-weight:700}
.tm-view .tm-rt td.tm-ri{position:relative;min-width:70px}
.tm-view .tm-rt td.tm-ri b{position:relative;z-index:1}
.tm-view .tm-rt td.tm-ri i{position:absolute;left:0;bottom:0;height:3px;width:var(--w);background:var(--accent);opacity:.75}
.tm-view .tm-rt .pay,.tm-rmod .pay{color:var(--accent)}
.tm-rmod .tm-bt{margin:0 0 10px}
.tm-rmod tr.weak td{box-shadow:inset 0 -1px 0 var(--loss)}
.tm-rmod td.loss{color:var(--loss)}.tm-rmod td.mid{color:var(--mid)}
.tm-rk .tm-bt{margin:0 16px 10px}

/* Карточка сотрудника компактнее (Раиль 16.10.2026: «все плашки максимально по высоте уменьшить, меньше скролла»). */
.tm-main .tm-blk .tm-bh{padding:6px 12px;min-height:36px}
.tm-main .tm-blk .tm-bh h3{font-size:14.5px}
.tm-main .tm-blk:not(.closed){padding-bottom:8px}
.tm-main .tm-blk .tm-tile{padding:4px 10px}
.tm-main .tm-blk .tm-tile .v{display:inline-block;font-size:15px;margin-top:0;vertical-align:baseline}
.tm-main .tm-blk .tm-tile .s{display:inline-block;margin:0 0 0 6px;font-size:11px;vertical-align:baseline}
.tm-main .tm-blk .tm-tile .l{font-size:9.5px;line-height:1.2}
.tm-main .tm-bin .tm-bt,.tm-main .tm-rk .tm-bt{margin:0 12px 6px}
.tm-main .tm-blk .tm-card-h{padding:4px 12px 4px}
.tm-main .tm-blk .tm-pad{padding:0 12px 2px}
.tm-main .tm-blk .tm-tw{margin:0 12px}
.tm-main .tm-blk .tm-ototw{padding-top:6px}
/* Блок 1: ФИО и должность одной строкой */
.tm-blk[data-blk="who"] .tm-bin.tm-head{padding:0 12px 6px;gap:10px}
.tm-blk[data-blk="who"] .tm-head-l{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}
.tm-blk[data-blk="who"] .tm-head-l h2{font-size:15px;white-space:nowrap}
.tm-blk[data-blk="who"] .tm-head-l .tm-sub{margin:0;font-size:12.5px;color:var(--text-2)}
.tm-blk[data-blk="who"] .tm-ht{padding:4px 10px}
/* Блок 2: сетка без лишнего воздуха, по прошедшему дню — переход к смене */
.tm-blk[data-blk="plan"] .tm-legend{margin:4px 0 0;padding:0}
.tm-blk[data-blk="plan"] .tm-sched td,.tm-blk[data-blk="plan"] .tm-sched th{height:30px}
.tm-sched td.pl.go{cursor:pointer}
.tm-sched td.pl.go:hover{outline:2px solid var(--accent-line);outline-offset:-2px}
.tm-blk[data-blk="who"] .tm-bb{display:none}
.tm-blk[data-blk="who"]:not(.closed){padding-bottom:0}
.tm-blk[data-blk="who"] .tm-bh{flex-wrap:nowrap}
.tm-blk[data-blk="who"] .tm-bh .tm-bx{flex:1 1 auto;margin-left:6px;min-width:0}
.tm-blk[data-blk="who"] .tm-bx .tm-head{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;width:100%;padding:0;min-width:0}
.tm-blk[data-blk="who"] .tm-bx .tm-head-l{flex:1 1 auto;display:flex;align-items:baseline;gap:10px;min-width:0;overflow:hidden}
.tm-blk[data-blk="who"] .tm-bx .tm-head-l h2{margin:0;font-size:15px;font-weight:700;color:var(--text-1);white-space:nowrap}
.tm-blk[data-blk="who"] .tm-bx .tm-head-l .tm-sub{margin:0;font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-blk[data-blk="who"] .tm-bx .tm-htiles{margin-left:auto;flex:0 0 auto}
.tm-blk[data-blk="who"] .tm-bx .tm-daylab{flex:0 0 auto;white-space:nowrap}
@media (max-width:1200px){.tm-blk[data-blk="who"] .tm-bh{flex-wrap:wrap}.tm-blk[data-blk="who"] .tm-bx .tm-head{flex-wrap:wrap}}
.tm-blk[data-blk="who"] .tm-bh h3{font-size:15px}
.tm-blk[data-blk="who"] .tm-bx .tm-head-l{display:block}
.tm-blk[data-blk="who"] .tm-bx .tm-sub{display:block}
.tm-blk[data-blk="who"] .tm-bx .tm-sub .tm-warn{margin-left:8px}
.tm-main .tm-blk .tm-tile .s{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* «Не по графику» — рядом с «Выгрузить PDF», синий контур без заливки (Раиль 16.10.2026). */
.tm-schedbar .tm-offbtn{margin-left:auto;background:transparent;border:1.5px solid var(--accent);color:var(--accent);font-weight:600}
.tm-schedbar .tm-offbtn:hover{border-color:var(--accent-line);color:var(--accent-line)}
.tm-schedbar .tm-offbtn+.tm-pdf{margin-left:0}
.tm-offm .tm-tiles{margin:0 0 10px}
.tm-view .tm-offt tbody tr,.tm-offt tbody tr{cursor:pointer}
.tm-offt tbody tr:hover>td{background:var(--surface-3)}
.tm-offt td small{display:block;font-size:11px;color:var(--text-2)}
.tm-offt td{white-space:nowrap;padding-top:5px;padding-bottom:5px}
/* Блок 8 на телефоне (19.10.2026): переключатель, показатели и период — строкой под заголовком, а не узким столбцом справа. */
@media (max-width:760px){
  .tm-blk[data-blk="months"] .tm-bh{flex-wrap:wrap}
  .tm-blk[data-blk="months"] .tm-bh .tm-bx{order:5;flex:1 1 100%}
  .tm-blk[data-blk="months"] .tm-mmode{flex:1 1 100%}
  .tm-blk[data-blk="months"] .tm-mmode .tm-seg-b{flex:1 1 0}
  .tm-blk[data-blk="months"] .tm-mctl .tm-mp{flex:1 1 100%}
  .tm-blk[data-blk="months"] .tm-mctl .tm-mp-btn{width:100%}
}

/* Роли смены (19.10.2026): справа от таблицы пауз — кем работал и за что начислено; там было пусто. */
.tm-brkrow{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-top:14px}
.tm-view .tm-brkrow>.tm-tw.tm-brkw{margin-top:0;flex:0 1 520px;min-width:0}
.tm-roles{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.tm-roles-l{font-size:12px;color:var(--text-3)}
.tm-role{display:flex;flex-direction:column;gap:2px;min-width:0;padding:6px 12px;
  border:1px solid var(--hair-2);border-left:3px solid var(--accent);border-radius:var(--radius-card,10px);background:var(--surface-2)}
.tm-role b{font-size:13px;font-weight:650;color:var(--text-1);line-height:1.25}
.tm-role small{font-size:12px;color:var(--text-2);line-height:1.25;white-space:nowrap}
.tm-role.piece{border-left-color:var(--hair-2)}
@media (max-width:720px){.tm-roles{flex:1 1 100%}.tm-role{align-self:stretch}}
