/* Новый вид для тестовых аккаунтов Садмин и Радмин (body.tester); с 0.3.75 «Классика» Садмина — у всех сотрудников
   (body.employee-ui; стили body.neo-* по-прежнему только у тестеров). Остальные роли файл не затрагивает:
   каждое правило начинается с body.tester или body:is(.tester,.employee-ui). Стили выбираются кнопкой-палитрой (tester-shell.js):
   «Классика» — как у всех; body.neo + neo-<стиль> + neo-layout-<side|top|rail> — новые.
   Только оформление и компоновка: разметка, данные и расчёты прежние. Основа — фирменный синий #4f6bff. */

/* ---- Кнопка и меню выбора стиля (во всех стилях тестеров) ---- */
body.tester #theme{display:none}
body:is(.tester,.employee-ui) .neo-style{position:relative}
body:is(.tester,.employee-ui) .neo-style-button{display:inline-flex;align-items:center;gap:6px;padding:6px 9px}
body:is(.tester,.employee-ui) .neo-swatch{display:inline-block;width:18px;height:18px;border-radius:50%;flex:none;background:linear-gradient(135deg,#4f6bff 50%,#7c5cff 50%)}
body:is(.tester,.employee-ui) .neo-style-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;display:grid;gap:2px;width:290px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 18px 50px #0006}
body:is(.tester,.employee-ui) .neo-style-menu[hidden]{display:none}
body:is(.tester,.employee-ui) .neo-style-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;border-radius:10px;background:transparent;box-shadow:none;text-align:left;white-space:normal}
body:is(.tester,.employee-ui) .neo-style-menu button:hover{background:var(--hover)}
body:is(.tester,.employee-ui) .neo-style-menu button[aria-checked=true]{background:var(--hover)}
body:is(.tester,.employee-ui) .neo-style-menu button[aria-checked=true]::after{content:"✓";margin-left:auto;color:var(--accent);font-weight:700}
body:is(.tester,.employee-ui) .neo-style-menu span{display:grid;gap:1px;min-width:0}
body:is(.tester,.employee-ui) .neo-style-menu small{color:var(--muted);font-size:11px}
body:is(.tester,.employee-ui) .neo-style-menu .neo-swatch{width:30px;height:30px}
body:is(.tester,.employee-ui) .neo-swatch-classic-light{background:linear-gradient(135deg,#fff 50%,#4f6bff 50%);box-shadow:inset 0 0 0 1px #0002}
body:is(.tester,.employee-ui) .neo-swatch-classic-dark{background:linear-gradient(135deg,#1d1e23 50%,#4f6bff 50%)}
body:is(.tester,.employee-ui) .neo-swatch-neon{background:linear-gradient(135deg,#0d1330 50%,#4f6bff 50%)}
body:is(.tester,.employee-ui) .neo-swatch-aurora{background:linear-gradient(135deg,#eef2ff 50%,#4f6bff 50%,#8b5cf6)}
body:is(.tester,.employee-ui) .neo-swatch-glass{background:linear-gradient(135deg,#3b2a6e 50%,#6b84ff 50%)}
body:is(.tester,.employee-ui) .neo-swatch-coal{background:linear-gradient(135deg,#0b0b0d 50%,#4f6bff 50%)}
/* Значки меню и кнопка «Достижения» — только в новых стилях */
body:is(.tester,.employee-ui):not(.neo) :is(.neo-nav-icon,.neo-nav-caption,.neo-ach-toggle){display:none}

/* ---- Токены стилей ---- */
body:is(.tester,.employee-ui).neo-neon{--bg:#0b1024;--surface:#121a36;--stripe:#18213f;--fg:#e9edff;--muted:#93a0c8;--border:#24305a;--accent:#5b78ff;--hover:#1c2750;--green:#3ddc97;--red:#ff7b8a;--shadow:0 8px 24px #02061a80;--tx-soft:#18224a;--neo-head:#0e1530;--neo-tile:linear-gradient(135deg,#4f6bff,#3046d6);--neo-glow:0 0 0 1px #4f6bff55,0 6px 18px #4f6bff40}
body:is(.tester,.employee-ui).neo-aurora{--bg:#f3f5ff;--surface:#fff;--stripe:#f6f7fe;--fg:#161b33;--muted:#69708f;--border:#e2e6f5;--accent:#4f6bff;--hover:#eef1ff;--green:#087c59;--red:#c23b49;--shadow:0 6px 20px #2a3a8a12;--tx-soft:#eef1ff;--neo-head:#eef1ff;--neo-tile:linear-gradient(135deg,#4f6bff,#8b5cf6);--neo-glow:0 6px 16px #4f6bff40}
body:is(.tester,.employee-ui).neo-glass{--bg:#1d1640;--surface:#2a2156;--stripe:#31285f;--fg:#f1eeff;--muted:#b3abd8;--border:#3f3576;--accent:#7d93ff;--hover:#372d6b;--green:#5fe0b0;--red:#ff8fa3;--shadow:0 10px 30px #0b062880;--tx-soft:#352b68;--neo-head:#251d4d;--neo-tile:linear-gradient(135deg,#5b78ff,#8b5cf6);--neo-glow:0 6px 18px #5b78ff50}
body:is(.tester,.employee-ui).neo-coal{--bg:#09090b;--surface:#131316;--stripe:#18181c;--fg:#ececf1;--muted:#8d8f9c;--border:#24252b;--accent:#5b78ff;--hover:#1c1d24;--green:#4bd69a;--red:#ff7b86;--shadow:none;--tx-soft:#161827;--neo-head:#131316;--neo-tile:#4f6bff;--neo-glow:none}
body:is(.tester,.employee-ui).neo{background:var(--bg)}
body:is(.tester,.employee-ui).neo-neon{background:radial-gradient(800px 500px at 0 -10%,#4f6bff22,transparent 70%),var(--bg);background-attachment:fixed}
body:is(.tester,.employee-ui).neo-glass{background:radial-gradient(900px 600px at 10% -10%,#7c5cff55,transparent 70%),radial-gradient(800px 600px at 100% 100%,#4f6bff33,transparent 70%),var(--bg);background-attachment:fixed}
body:is(.tester,.employee-ui).neo-aurora{background:radial-gradient(900px 500px at 100% -10%,#dfe5ff,transparent 70%),var(--bg);background-attachment:fixed}

/* ---- Общая основа новых стилей: плотнее, ровные рамки, ничего не вылезает ---- */
body:is(.tester,.employee-ui).neo .topbar{min-height:52px;padding:8px 16px;gap:8px}
body:is(.tester,.employee-ui).neo .main{padding:14px 16px;gap:12px}
body:is(.tester,.employee-ui).neo :is(.title-row h1,.shift-page-heading h1){font-size:20px}
body:is(.tester,.employee-ui).neo :is(button,input){padding:6px 10px;border-radius:8px}
body:is(.tester,.employee-ui).neo select{padding-top:6px;padding-bottom:6px;border-radius:8px}
body:is(.tester,.employee-ui).neo .rm-sums{column-gap:12px}
body:is(.tester,.employee-ui).neo .panel,body:is(.tester,.employee-ui).neo .metrics,body:is(.tester,.employee-ui).neo .ts-metric,body:is(.tester,.employee-ui).neo .rm-tile,body:is(.tester,.employee-ui).neo .rm-cab-card,body:is(.tester,.employee-ui).neo .personal-sidebar-card{border-radius:12px;border-color:var(--border)}
body:is(.tester,.employee-ui).neo .primary{background:var(--accent);border-color:var(--accent);color:#fff}
body:is(.tester,.employee-ui).neo .nav-button{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;color:var(--muted);min-width:0}
body:is(.tester,.employee-ui).neo .nav-button:hover{background:var(--hover);color:var(--fg)}
body:is(.tester,.employee-ui).neo .nav-button.active{background:var(--accent);color:#fff;box-shadow:var(--neo-glow)}
body:is(.tester,.employee-ui).neo .neo-nav-icon{width:17px;height:17px}
body:is(.tester,.employee-ui).neo .neo-nav-caption{margin:0 0 4px;padding:0 10px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
body:is(.tester,.employee-ui).neo th{background:var(--neo-head);padding-top:7px;padding-bottom:7px;font-size:11px;text-transform:uppercase;letter-spacing:.03em}
body:is(.tester,.employee-ui).neo tbody th{background:var(--tx-soft);color:var(--fg);text-transform:none;letter-spacing:0}
body:is(.tester,.employee-ui).neo td{padding-top:5px;padding-bottom:5px}
body:is(.tester,.employee-ui).neo .badge{border-radius:999px;padding:2px 9px;font-weight:600}
body:is(.tester,.employee-ui).neo [role=tab][aria-selected=true]{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
body:is(.tester,.employee-ui).neo progress::-webkit-progress-bar{background:var(--stripe);border-radius:99px}
body:is(.tester,.employee-ui).neo progress::-webkit-progress-value{background:var(--accent);border-radius:99px}
body:is(.tester,.employee-ui).neo progress::-moz-progress-bar{background:var(--accent);border-radius:99px}
body:is(.tester,.employee-ui).neo dialog{border-radius:14px}

/* Плитки: главная — синяя, остальные — спокойные карточки с цветным значком. Числа не вылезают: сжимаются шрифтом. */
body:is(.tester,.employee-ui).neo .metrics{gap:10px;background:transparent;border:0;box-shadow:none}
body:is(.tester,.employee-ui).neo .metrics .metric{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px 12px;min-width:0;overflow:hidden}
body:is(.tester,.employee-ui).neo .metrics .metric:first-child{background:var(--neo-tile);border-color:transparent;color:#fff}
body:is(.tester,.employee-ui).neo .metrics .metric:first-child *{color:#fff!important}
body:is(.tester,.employee-ui).neo .metrics .metric:first-child .rm-metric-icon{background:#ffffff2e}
body:is(.tester,.employee-ui).neo .metrics .metric strong{font-size:clamp(15px,1.45vw,19px);white-space:nowrap}
body:is(.tester,.employee-ui).neo .metrics .metric span{white-space:normal;line-height:1.25}
body:is(.tester,.employee-ui).neo .rm-metric-icon{width:30px;height:30px}
body:is(.tester,.employee-ui).neo .ts-metrics{gap:10px}
body:is(.tester,.employee-ui).neo .ts-metric{padding:10px 12px;gap:10px;min-width:0;overflow:hidden}
body:is(.tester,.employee-ui).neo .ts-metric.pay{background:var(--neo-tile);border-color:transparent}
body:is(.tester,.employee-ui).neo .ts-metric.pay *{color:#fff!important}
body:is(.tester,.employee-ui).neo .ts-metric.pay>.ts-metric-side{border-left-color:#ffffff44}
body:is(.tester,.employee-ui).neo .ts-metric strong{font-size:clamp(15px,1.45vw,19px)}
body:is(.tester,.employee-ui).neo .ts-metric-main,body:is(.tester,.employee-ui).neo .ts-metric>div{min-width:0}
body:is(.tester,.employee-ui).neo .ts-metric span{line-height:1.25}
body:is(.tester,.employee-ui).neo .ts-metric>.ts-metric-side{min-width:0;padding-left:10px}
body:is(.tester,.employee-ui).neo .ts-metric-side b{font-size:clamp(14px,1.3vw,17px);white-space:nowrap}
body:is(.tester,.employee-ui).neo .ts-parts{display:grid;gap:1px;font-size:11px}
body:is(.tester,.employee-ui).neo .rm-tile{padding:10px 12px;min-width:0;overflow:hidden}
body:is(.tester,.employee-ui).neo .rm-tiles>.rm-tile:first-child{background:var(--neo-tile);border-color:transparent}
body:is(.tester,.employee-ui).neo .rm-tiles>.rm-tile:first-child *{color:#fff!important}
body:is(.tester,.employee-ui).neo .rm-tile strong{font-size:clamp(15px,1.45vw,19px)}
body:is(.tester,.employee-ui).neo .rm-attention-row{padding:4px 0}
body:is(.tester,.employee-ui).neo .rm-attention-row button{padding:5px 10px;font-size:12px}
body:is(.tester,.employee-ui).neo .analytics-bar{rx:4px}
body:is(.tester,.employee-ui).neo .analytics-line{stroke-width:2.4;stroke-linecap:round}

/* ---- Компоновка «меню слева» (Неон): узкое плотное меню ---- */
@media(min-width:721px){
 body:is(.tester,.employee-ui).neo-layout-side .layout{grid-template-columns:196px minmax(0,1fr)}
 body:is(.tester,.employee-ui).neo-layout-side .sidebar{padding:12px 10px;gap:10px;background:var(--surface)}
 body:is(.tester,.employee-ui).neo-layout-side .sidebar-navigation{gap:12px}
 body:is(.tester,.employee-ui).neo-layout-side .neo-ach-toggle{display:none}
}

/* ---- Компоновка «меню сверху» (Аврора, Уголь): разделы строкой над экраном ---- */
@media(min-width:721px){
 body:is(.tester,.employee-ui).neo-layout-top .layout,body:is(.tester,.employee-ui).neo-layout-top .layout.menu-hidden{display:block}
 body:is(.tester,.employee-ui).neo-layout-top .sidebar,body:is(.tester,.employee-ui).neo-layout-top .layout.menu-hidden .sidebar{display:flex;flex-direction:row;align-items:center;gap:14px;position:sticky;top:0;z-index:8;height:auto;padding:6px 16px;border-right:0;border-bottom:1px solid var(--border);background:var(--surface)}
 body:is(.tester,.employee-ui).neo-layout-top .menu-toggle{display:none}
 body:is(.tester,.employee-ui).neo-layout-top .sidebar .brand{font-size:18px;padding:0}
 body:is(.tester,.employee-ui).neo-layout-top .sidebar-navigation{display:flex;flex-direction:row;align-items:center;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
 body:is(.tester,.employee-ui).neo-layout-top .sidebar nav{display:flex;flex-direction:row;gap:2px;margin:0;padding:0;border:0}
 body:is(.tester,.employee-ui).neo-layout-top .sidebar-tools{margin:0 0 0 auto!important;padding:0 0 0 8px!important;border:0!important;border-left:1px solid var(--border)!important}
 body:is(.tester,.employee-ui).neo-layout-top .nav-button{white-space:nowrap;width:auto}
 body:is(.tester,.employee-ui).neo-layout-top .neo-nav-caption,body:is(.tester,.employee-ui).neo-layout-top .sidebar-bottom{display:none}
 body:is(.tester,.employee-ui).neo-layout-top .topbar{position:static}
 body:is(.tester,.employee-ui).neo-layout-top .main{max-width:1680px;margin:0 auto}
}

/* ---- Компоновка «значки» (Стекло): узкая полоса, подписи — во всплывающей подсказке ---- */
@media(min-width:721px){
 body:is(.tester,.employee-ui).neo-layout-rail .layout,body:is(.tester,.employee-ui).neo-layout-rail .layout.menu-hidden{grid-template-columns:68px minmax(0,1fr)}
 body:is(.tester,.employee-ui).neo-layout-rail .layout.menu-hidden .sidebar{display:flex}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar{padding:12px 8px;gap:12px;align-items:center;background:color-mix(in srgb,var(--surface) 80%,transparent)}
 body:is(.tester,.employee-ui).neo-layout-rail .menu-toggle,body:is(.tester,.employee-ui).neo-layout-rail .neo-nav-caption{display:none}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar-heading{justify-content:center}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar .brand{font-size:11px;padding:0}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar-navigation{align-items:center;gap:10px}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar nav{display:grid;gap:4px;justify-items:center}
 body:is(.tester,.employee-ui).neo-layout-rail .nav-button{width:46px;height:42px;padding:0;justify-content:center;font-size:0;gap:0}
 body:is(.tester,.employee-ui).neo-layout-rail .nav-button .neo-nav-icon{width:20px;height:20px}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar-tools{border-top:1px solid var(--border);padding-top:10px}
 body:is(.tester,.employee-ui).neo-layout-rail .sidebar-bottom{font-size:9px;text-align:center}
 body:is(.tester,.employee-ui).neo-layout-rail .panel,body:is(.tester,.employee-ui).neo-layout-rail .metrics .metric:not(:first-child),body:is(.tester,.employee-ui).neo-layout-rail .ts-metric:not(.pay){background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}

/* «Мои достижения» в компоновках сверху/значки — окно по кнопке «Достижения» */
@media(min-width:721px){
 body:is(.tester,.employee-ui):is(.neo-layout-top,.neo-layout-rail) [data-personal-sidebar]{display:none}
 body:is(.tester,.employee-ui).neo-ach-open:is(.neo-layout-top,.neo-layout-rail) [data-personal-sidebar]{display:block;position:fixed;right:16px;top:60px;z-index:30;width:300px;max-height:calc(100dvh - 80px);overflow:auto;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 18px 50px #0006}
 body:is(.tester,.employee-ui).neo-ach-open .neo-ach-toggle{background:var(--hover);color:var(--fg)}
}
@media(max-width:720px){body:is(.tester,.employee-ui).neo .neo-ach-toggle{display:none}}

/* ---- Уголь: самый плотный ---- */
body:is(.tester,.employee-ui).neo-coal .main{padding:10px 14px;gap:10px}
body:is(.tester,.employee-ui).neo-coal .metrics .metric,body:is(.tester,.employee-ui).neo-coal .ts-metric{padding:8px 10px}
body:is(.tester,.employee-ui).neo-coal .metrics .metric:not(:first-child){border-left:3px solid var(--accent)}
body:is(.tester,.employee-ui).neo-coal td{padding-top:4px;padding-bottom:4px}

/* ---- Телефон ---- */
@media(max-width:720px){
 body:is(.tester,.employee-ui).neo .main{padding:10px}
 body:is(.tester,.employee-ui).neo .metrics,body:is(.tester,.employee-ui).neo .ts-metrics{gap:8px}
 body:is(.tester,.employee-ui).neo .metrics .metric strong,body:is(.tester,.employee-ui).neo .ts-metric strong{font-size:16px}
 body:is(.tester,.employee-ui).neo .neo-style-menu{position:fixed;left:8px;right:8px;top:auto;width:auto}
}

/* Подписи и суммы не обрезаются многоточием: переносятся; таблицы листаются внутри своей рамки */
body:is(.tester,.employee-ui).neo :is(.ts-metric,.metric,.rm-tile) span{white-space:normal;overflow:visible;text-overflow:clip}
body:is(.tester,.employee-ui).neo .ts-table-wrap{overflow-x:auto}
body:is(.tester,.employee-ui).neo .personal-sidebar-card :is(b,strong){white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}

/* =====================================================================
   0.3.66 — у каждого стиля своя раскладка главных экранов (ПК от 1100 px; уже — обычная колонка).
   Блоки те же и с теми же кнопками, меняется только их место. Владелец сравнивает и выбирает.
   ===================================================================== */

/* «Мои смены» сотрудника: без колонок «Сотрудник» (всегда он сам) и «Общая НД» — зачёркнуты владельцем.
   Полные данные смены — по нажатию на строку, как раньше. */
body:is(.tester,.employee-ui).neo .ts-table :is(th,td):is(:nth-child(2),:nth-child(6)){display:none}
body:is(.tester,.employee-ui).neo .ts-side[open]>summary,body:is(.tester,.employee-ui).neo .ts-side>summary{min-width:0}

@media(min-width:1100px){
 /* Блоки «Моей смены» становятся клетками одной сетки */
 body:is(.tester,.employee-ui).neo .tester-shift{display:grid;gap:12px;align-items:start}
 body:is(.tester,.employee-ui).neo :is(.ts-top,.ts-metrics,.ts-bottom){display:contents}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-head{grid-area:head}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-current{grid-area:cur;margin:0}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-plans{grid-area:plans;margin:0}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-metric.pay{grid-area:pay}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-metric:nth-child(2){grid-area:m1}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-metric:nth-child(3){grid-area:m2}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-metric:nth-child(4){grid-area:m3}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-shifts{grid-area:shifts;min-width:0;margin:0}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-side:nth-child(1){grid-area:s1}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-side:nth-child(2){grid-area:s2}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-side:nth-child(3){grid-area:s3}
 body:is(.tester,.employee-ui).neo .tester-shift .ts-side{margin:0;min-width:0}
 body:is(.tester,.employee-ui).neo .tester-shift .shift-pause-phone{display:none}

 /* Неон — «Пульт»: смена слева, деньги посередине, планы справа; таблица и справа колонка рейтингов */
 body:is(.tester,.employee-ui).neo-neon .tester-shift{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-areas:
  "head head head head head head" "cur cur pay m1 plans plans" "cur cur m2 m3 plans plans"
  "shifts shifts shifts shifts s2 s2" "shifts shifts shifts shifts s3 s3" "shifts shifts shifts shifts s1 s1"}
 body:is(.tester,.employee-ui).neo-neon .tester-shift .ts-metric{display:flex;flex-direction:column;align-items:stretch;justify-content:center;align-self:stretch;gap:8px}
 body:is(.tester,.employee-ui).neo-neon .tester-shift .ts-metric>*{width:100%}
 body:is(.tester,.employee-ui).neo-neon .tester-shift .ts-metric>.ts-metric-side{border-left:0;border-top:1px solid color-mix(in srgb,currentColor 20%,transparent);padding:8px 0 0;margin:0}
 body:is(.tester,.employee-ui).neo-neon .tester-shift .ts-plans{align-self:stretch}

 /* Аврора — «Лента с колонкой»: работа слева, справа колонка «К выплате → рейтинги → акции» */
 body:is(.tester,.employee-ui).neo-aurora .tester-shift{grid-template-columns:repeat(3,minmax(0,1fr)) 340px;grid-template-areas:
  "head head head head" "cur cur cur pay" "plans plans plans s2" "m1 m2 m3 s3" "shifts shifts shifts s1"}
 body:is(.tester,.employee-ui).neo-aurora .tester-shift .ts-metric.pay{display:flex;flex-direction:column;align-items:stretch;gap:8px}
 body:is(.tester,.employee-ui).neo-aurora .tester-shift .ts-metric.pay>*{width:100%}
 body:is(.tester,.employee-ui).neo-aurora .tester-shift .ts-metric.pay>.ts-metric-side{border-left:0;border-top:1px solid #ffffff44;padding:8px 0 0;margin:0}

 /* Стекло — «Сначала деньги»: четыре плитки сверху, под ними смена и планы, таблица на всю ширину */
 body:is(.tester,.employee-ui).neo-glass .tester-shift{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:
  "head head head head head head head head head head head head"
  "pay pay pay m1 m1 m1 m2 m2 m2 m3 m3 m3"
  "cur cur cur cur cur cur cur plans plans plans plans plans"
  "shifts shifts shifts shifts shifts shifts shifts shifts shifts shifts shifts shifts"
  "s1 s1 s1 s1 s2 s2 s2 s2 s3 s3 s3 s3"}

 /* Уголь — «Всё на одном экране»: смена и плитки 2×2 рядом, планы с рейтингами строкой, таблица ниже */
 body:is(.tester,.employee-ui).neo-coal .tester-shift{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:
  "head head head head" "cur cur pay m1" "cur cur m2 m3" "plans plans s2 s3" "shifts shifts shifts shifts" "s1 s1 s1 s1"}
 body:is(.tester,.employee-ui).neo-coal .tester-shift .ts-metric{align-self:stretch}

 /* «Смены» руководителя: те же блоки, своя расстановка в каждом стиле */
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts){display:grid;gap:12px;align-items:start}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>*{margin:0;min-width:0}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>.shift-page-heading{grid-area:head}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>.metrics{grid-area:metrics}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>.team-insights{grid-area:cab}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>.rm-journal-head{grid-area:jhead}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>.admin-shifts{grid-area:journal}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts)>:not(.shift-page-heading,.metrics,.team-insights,.rm-journal-head,.admin-shifts){grid-column:1/-1}
 body:is(.tester,.employee-ui).neo #content:has(> .admin-shifts) .team-forecasts{grid-template-columns:minmax(0,1fr)}

 /* Неон — журнал слева, кабинеты колонкой справа */
 body:is(.tester,.employee-ui).neo-neon #content:has(> .admin-shifts){grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"head head" "metrics metrics" "jhead cab" "journal cab"}
 /* Аврора — цифры колонкой слева (как сводка), журнал справа */
 body:is(.tester,.employee-ui).neo-aurora #content:has(> .admin-shifts){grid-template-columns:270px minmax(0,1fr);grid-template-areas:"head head" "metrics jhead" "metrics journal" "cab journal"}
 body:is(.tester,.employee-ui).neo-aurora #content:has(> .admin-shifts)>.metrics{grid-template-columns:minmax(0,1fr)}
 /* Стекло — журнал сразу под заголовком, цифры и кабинеты ниже */
 body:is(.tester,.employee-ui).neo-glass #content:has(> .admin-shifts){grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"head head" "jhead jhead" "journal journal" "metrics cab"}
 body:is(.tester,.employee-ui).neo-glass #content:has(> .admin-shifts)>.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 /* Уголь — плитки 2×2 рядом с кабинетом, журнал на всю ширину */
 body:is(.tester,.employee-ui).neo-coal #content:has(> .admin-shifts){grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"head head" "metrics cab" "jhead jhead" "journal journal"}
 body:is(.tester,.employee-ui).neo-coal #content:has(> .admin-shifts)>.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Узкий ПК (1100–1279 px) с боковым меню: «Неону» мало места на шесть колонок — смена и плитки 2×2, планы и рейтинги ниже */
@media(min-width:1100px) and (max-width:1279px){
 body:is(.tester,.employee-ui).neo-neon .tester-shift{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:
  "head head head head" "cur cur pay m1" "cur cur m2 m3" "plans plans s2 s3" "shifts shifts shifts shifts" "s1 s1 s1 s1"}
}
/* «Мой уровень» в «Обзоре»: длинное название уровня переносится внутри карточки */
body:is(.tester,.employee-ui).neo .tm-level *{min-width:0;overflow-wrap:anywhere}
body:is(.tester,.employee-ui).neo .tm-level{overflow:hidden}

/* =====================================================================
   0.3.67 — тема «Админская» (пока делается для Садмина): меню сверху как у «Авроры»,
   «Моя смена» — от «Неона», три колонки одинаковой ширины. Цвета — как у «Неона».
   ===================================================================== */
body:is(.tester,.employee-ui).neo-admin{--bg:#0b1024;--surface:#121a36;--stripe:#18213f;--fg:#e9edff;--muted:#93a0c8;--border:#24305a;--accent:#5b78ff;--hover:#1c2750;--green:#3ddc97;--red:#ff7b8a;--shadow:0 8px 24px #02061a80;--tx-soft:#18224a;--neo-head:#0e1530;--neo-tile:linear-gradient(135deg,#4f6bff,#3046d6);--neo-glow:0 0 0 1px #4f6bff55,0 6px 18px #4f6bff40;background:radial-gradient(800px 500px at 0 -10%,#4f6bff22,transparent 70%),var(--bg);background-attachment:fixed}
body:is(.tester,.employee-ui) .neo-swatch-admin{background:linear-gradient(135deg,#0b1024 50%,#4f6bff 50%);box-shadow:inset 0 0 0 2px #4f6bff}

/* Убрано по скрину владельца: «Выполнено / Не выполнено», заголовок «Мои смены», нижний ползунок таблицы */
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-metric:nth-child(4){display:none}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-shifts-head{display:none}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-table-wrap{scrollbar-width:none}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-table-wrap::-webkit-scrollbar{display:none}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-table :is(th,td){padding-left:7px;padding-right:7px;font-size:12.5px}
/* Суммы целиком, без многоточия; заголовки переносятся; сокращается только комментарий */
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-table td{white-space:nowrap}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-table th{white-space:normal;line-height:1.2}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-table .ts-comment{max-width:140px;overflow:hidden;text-overflow:ellipsis}

/* Текущая смена и карточка кабинета ужаты до высоты денежной колонки */
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-current{padding:12px 14px;gap:10px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-current .ts-ops{gap:6px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-current .ts-ops button{height:40px;padding:4px 6px;font-size:13px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-current .ts-main button{min-height:38px;padding:6px 10px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-current .ts-transfers{padding-top:6px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-current .transfer-counter-desktop{padding:0;border:0;background:transparent;box-shadow:none}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-plans{padding:12px 14px;gap:8px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-plans .ts-plan{padding:8px 0;gap:10px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .ts-plans .ts-plan-line strong{font-size:18px}

@media(min-width:1100px){
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:
  "head head head" "cur pay plans" "cur m1 plans" "cur m2 plans" "shifts shifts s2" "shifts shifts s3" "shifts shifts s1"}
 /* Таблица целиком помещается в две колонки только от 1280 px; уже — на всю ширину, рейтинги под ней */
 @media(max-width:1279px){body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift{grid-template-areas:"head head head" "cur pay plans" "cur m1 plans" "cur m2 plans" "shifts shifts shifts" "s2 s3 s1"}}
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-current,body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-plans{align-self:stretch}
 /* «Общий доход / KPI» — продолжение карточки «К выплате» (стрелка на скрине) */
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-metric.pay{border-bottom-left-radius:0;border-bottom-right-radius:0}
 body:is(.tester,.employee-ui).neo-admin .tester-shift .ts-metric:nth-child(2){margin-top:-12px;border-top:1px solid #ffffff33;border-top-left-radius:0;border-top-right-radius:0;background:linear-gradient(135deg,#3f5cf0,#3046d6);border-color:transparent}
 body:is(.tester,.employee-ui).neo-admin .tester-shift .ts-metric:nth-child(2) *{color:#fff!important}
 body:is(.tester,.employee-ui).neo-admin .tester-shift .ts-metric:nth-child(2)>.ts-metric-side{border-left-color:#ffffff44}
}

/* «Мотивация» Садмина в «Админской»: без «Мой уровень» (крупного) и «Недавних достижений»; перестановка по скрину */
body:is(.tester,.employee-ui).neo-admin :is(.tm-recent,.tp-level){display:none}
@media(min-width:1100px){
 body:is(.tester,.employee-ui).neo-admin div:has(> .tester-motivation){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;grid-template-areas:"top top" "notes hist" "cabs rating" "ach rules"}
 body:is(.tester,.employee-ui).neo-admin :is(.tester-motivation,.neo-merged-progress,.tester-progress,.tm-cols,.tp-cols){display:contents}
 body:is(.tester,.employee-ui).neo-admin .tm-top{grid-area:top;margin:0}
 body:is(.tester,.employee-ui).neo-admin .tm-notes{grid-area:notes;margin:0}
 body:is(.tester,.employee-ui).neo-admin .tp-history{grid-area:hist;margin:0;align-self:stretch;min-width:0}
 body:is(.tester,.employee-ui).neo-admin .tm-cabinets{grid-area:cabs;margin:0}
 body:is(.tester,.employee-ui).neo-admin .tm-rating{grid-area:rating;margin:0;align-self:stretch;min-width:0}
 body:is(.tester,.employee-ui).neo-admin .tp-ach{grid-area:ach;margin:0;min-width:0}
 body:is(.tester,.employee-ui).neo-admin .tp-rules{grid-area:rules;margin:0;min-width:0}
 body:is(.tester,.employee-ui).neo-admin .tp-ach .achievement-badges{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
body:is(.tester,.employee-ui).neo-admin .ts-table,body:is(.tester,.employee-ui).neo-admin .ts-table :is(th,td){min-width:0}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) #shifts-table.ts-table{width:100%;min-width:0}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) #shifts-table.ts-table th{white-space:normal}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) #shifts-table.ts-table td:is(.comment,.ts-comment){min-width:0;width:auto;max-width:140px;overflow:hidden;text-overflow:ellipsis}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .panel:has(>#shifts-table.ts-table){width:auto}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) #shifts-table.ts-table :is(th,td){padding-left:5px;padding-right:5px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) #shifts-table.ts-table td:is(.comment,.ts-comment){max-width:96px}
body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) #shifts-table.ts-table .badge{padding:2px 7px}

/* =====================================================================
   0.3.68 — «Моя смена» Садмина (владелец, скрины 4–5): блоки как в «Админской» и в «Классике»,
   без пустоты внутри денежных плиток; без «Мои смены» и «Выполнено / Не выполнено» (в обеих).
   ===================================================================== */
@media(min-width:1100px){
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift{display:grid;gap:12px;align-items:start}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) :is(.ts-top,.ts-metrics,.ts-bottom){display:contents}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-head{grid-area:head}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-current{grid-area:cur;margin:0}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-plans{grid-area:plans;margin:0}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric.pay{grid-area:pay}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric:nth-child(2){grid-area:m1}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric:nth-child(3){grid-area:m2}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-shifts{grid-area:shifts;min-width:0;margin:0}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-side:nth-child(1){grid-area:s1}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-side:nth-child(2){grid-area:s2}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-side:nth-child(3){grid-area:s3}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-side{margin:0;min-width:0}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .shift-pause-phone{display:none}
 /* Денежная колонка уже: подписи и суммы прижаты друг к другу, без пустых полос (красные рамки на скрине 5) */
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift{grid-template-columns:minmax(0,1.15fr) minmax(0,.8fr) minmax(0,1fr)}
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-metric{justify-content:flex-start;gap:14px}
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-metric>.ts-metric-main{flex:0 1 auto}
 body:is(.tester,.employee-ui):is(.neo-admin,.employee-ui:not(.neo)) .tester-shift .ts-metric>.ts-metric-side{margin-left:0;flex:0 1 auto;min-width:0;padding-left:14px}
}
/* Шестая строка рейтингов — своё место вне пятёрки */
body:is(.tester,.employee-ui) .ts-rank-mine{border-top:1px dashed var(--border);margin-top:4px;padding-top:6px}
body:is(.tester,.employee-ui) .ps-goal-percent{color:var(--fg)}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-metric span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-metric strong{font-size:clamp(15px,1.45vw,21px)}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-metric-side b{font-size:clamp(14px,1.3vw,18px)}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-current .ts-main button{min-width:0;white-space:normal}
body:is(.tester,.employee-ui) .ts-transfers .transfer-counter-desktop h3{flex:0 0 160px;min-width:0}

/* =====================================================================
   0.3.69 — «Классика» Садмина (владелец, скрины 2–5): все столбцы таблицы смен на месте,
   «Акции / Рейтинг XP / Топ» — строкой внизу, светло-синяя — «К выплате», один общий «Расход»,
   кнопки − и + вдвое меньше, меню слева или сверху — кнопкой у логотипа.
   ===================================================================== */
@media(min-width:1100px){
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift{grid-template-areas:"head head head" "cur pay plans" "cur m1 plans" "cur m2 plans" "shifts shifts shifts" "s1 s2 s3"}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-side{align-self:stretch}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric:nth-child(2){margin-top:-12px;border-top-left-radius:0;border-top-right-radius:0}
}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric.pay{background:linear-gradient(135deg,#3f5cf0,#3046d6);border-color:transparent}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric.pay *{color:#fff!important}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric.pay>.ts-metric-side{border-left-color:#ffffff44}
body:is(.tester,.employee-ui) .ts-expense-total{display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers:has(.ts-expense-total){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:4px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers .transfer-counter-desktop{grid-column:1;min-width:0}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers .transfer-counter-total{display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers .ts-expense-total{display:block;grid-column:2;grid-row:1/span 2;margin:0;white-space:nowrap;color:var(--muted);font-size:13px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers .ts-expense-total strong{color:var(--fg);font-size:17px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers .transfer-counter-controls{gap:6px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers [data-transfer-delta]{width:20px;min-width:20px;height:19px;min-height:19px;padding:0;font-size:13px;line-height:1;border-radius:5px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers output{font-size:15px;min-width:18px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-transfers .transfer-counter-desktop h3{flex-basis:150px}
/* Кнопка «меню слева / сверху» — только в «Классике» */
body:is(.tester,.employee-ui) .classic-menu-switch{display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .classic-menu-switch{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;margin-left:auto}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .classic-menu-switch .cms-top{display:none}
body:is(.tester,.employee-ui).employee-ui.neo-layout-top:not(.neo) .classic-menu-switch .cms-top{display:inline}
body:is(.tester,.employee-ui).employee-ui.neo-layout-top:not(.neo) .classic-menu-switch .cms-side{display:none}
@media(min-width:721px){body:is(.tester,.employee-ui).neo-layout-top:not(.neo) .neo-ach-toggle{display:inline-flex}}
@media(max-width:720px){body:is(.tester,.employee-ui) .classic-menu-switch{display:none!important}}

/* 0.3.72 — «Классика» Садмина (владелец): «Обновить» убрана — цифры смены обновляются сами после нажатий;
   выбор кабинета и месяца — в синей обводке. */
body:is(.tester,.employee-ui).employee-ui:not(.neo) .topbar .topbar-refresh{display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .topbar .filters select{border-color:#4f6bff;box-shadow:0 0 0 1px #4f6bff55}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .topbar .filters select:focus-visible{box-shadow:0 0 0 3px #4f6bff66}
/* Мини-график «К выплате по дням» — только «Классика» Садмина; подпись «DubaiTXT · веб-версия» убрана, остаётся номер версии */
body:is(.tester,.employee-ui) .ts-pay-chart{display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-pay-chart{display:block;flex:0 0 auto;height:56px;margin:auto -4px -4px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-pay-chart svg{display:block;width:100%;height:100%}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-pay-chart .line{stroke:#4f6bff;stroke-width:2;stroke-linejoin:round}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-pay-chart rect:hover{fill:#4f6bff22}
body:is(.tester,.employee-ui) .sidebar-bottom{font-size:0}
body:is(.tester,.employee-ui) .sidebar-bottom br{display:none}
body:is(.tester,.employee-ui) .sidebar-bottom #site-version{font-size:12px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-current:has(.ts-pay-chart){display:flex;flex-direction:column}
@media(min-width:1100px){
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric.pay{align-self:end}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-metric:nth-child(2){align-self:start}
}
/* Шапка «Классики» Садмина чуть ниже (владелец: «шапку уже чутка»): 70 → ~54 px */
body:is(.tester,.employee-ui).employee-ui:not(.neo) .topbar{padding-top:8px;padding-bottom:8px;min-height:54px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .topbar :is(select,button){min-height:36px;padding-top:5px;padding-bottom:5px}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .topbar select{height:36px}
/* 0.3.74 — «Классика» Садмина: без заголовка «Моя смена»; «Цель на месяц» и «Задания» — в шапке (только на «Моей смене») */
body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-head h1{display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift .ts-head:not(:has(.ts-head-actions)){display:none}
body:is(.tester,.employee-ui) .ts-topbar-actions{display:flex;align-items:center;gap:8px;margin:0}
body:is(.tester,.employee-ui):not(:has(.tester-shift)) .ts-topbar-actions,body:is(.tester,.employee-ui).neo .ts-topbar-actions{display:none}
@media(min-width:1100px){body:is(.tester,.employee-ui).employee-ui:not(.neo) .tester-shift{grid-template-areas:"cur pay plans" "cur m1 plans" "cur m2 plans" "shifts shifts shifts" "s1 s2 s3"}}
body:is(.tester,.employee-ui) .ts-topbar-actions button{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;font-size:14px;font-weight:600;white-space:nowrap;border-color:#4f6bff;box-shadow:0 0 0 1px #4f6bff55}
body:is(.tester,.employee-ui) .ts-topbar-actions button .ti{width:16px;height:16px;flex:none}
/* 0.3.75 — у сотрудников без столбца «Сотрудник» (в «Моей смене» все смены свои); комментарий забирает свободную ширину */
body:is(.tester,.employee-ui).employee-ui:not(.neo) #shifts-table.ts-table :is(th,td):nth-child(2){display:none}
body:is(.tester,.employee-ui).employee-ui:not(.neo) #shifts-table.ts-table td:is(.comment,.ts-comment){width:30%;max-width:0}
body:is(.tester,.employee-ui).employee-ui:not(.neo) #shifts-table.ts-table th:last-child{width:30%}
/* Шапка «Текущей смены» в узкой колонке «Классики»: статус кабинета остаётся справа в одной строке (как и было до 0.3.75) */
@media(min-width:721px) and (max-width:1599px){
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-current-head{gap:6px;flex-wrap:nowrap}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-current-head h2{font-size:13px;letter-spacing:0;white-space:nowrap}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-current-head :is(.ts-live,.ts-cabinet-state){gap:5px;padding:3px 8px;font-size:11px;white-space:nowrap}
 body:is(.tester,.employee-ui).employee-ui:not(.neo) .ts-current-head .ts-start{font-size:12px;white-space:nowrap}
}
/* 0.3.76 — «Мой график» сотрудника (владелец: «сделай компактнее чтобы не вылезало и все было на одном окне без ползунков») */
body:is(.tester,.employee-ui).employee-ui .schedule-dialog{width:min(1120px,calc(100vw - 24px))}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .dialog-body{overflow-x:hidden}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .footnote{margin:4px 0}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .schedule-weekdays{margin-bottom:4px}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog :is(.schedule-weekdays,.schedule-month-grid){gap:4px}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .schedule-day{padding:3px;gap:3px}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .schedule-day>[data-calendar-day]{font-size:11px;padding:2px 4px;min-height:0}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .schedule-day>[data-calendar-shift]{font-size:11px;padding:2px 5px;min-height:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
body:is(.tester,.employee-ui).employee-ui .schedule-dialog .schedule-day small{font-size:10px}
body:is(.tester,.employee-ui).employee-ui #schedule-results{border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-top:10px}
body:is(.tester,.employee-ui).employee-ui #schedule-results table{min-width:0;width:100%;font-size:12.5px}
body:is(.tester,.employee-ui).employee-ui #schedule-results :is(th,td){padding:5px 8px;white-space:nowrap;min-width:0}
body:is(.tester,.employee-ui).employee-ui #schedule-results td.wide-comment{min-width:0;max-width:200px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:720px){body:is(.tester,.employee-ui).employee-ui #schedule-results :is(th,td){padding:4px 5px;font-size:11.5px}}
@media(max-width:720px){
 body:is(.tester,.employee-ui).employee-ui #schedule-results :is(th,td):first-child{display:none}
 body:is(.tester,.employee-ui).employee-ui #schedule-results :is(th,td){white-space:normal;word-break:normal;overflow-wrap:anywhere}
 body:is(.tester,.employee-ui).employee-ui #schedule-results td.wide-comment{max-width:none}
}
