/* Принятая оболочка приложения; гарнитуры и цвета берутся из style.css. */
@import './onboarding.css';
.lab-absence-types { display:flex; gap:8px; margin:0 0 16px; }
.lab-absence-types button { flex:1; min-width:0; min-height:44px; padding:10px; border:1px solid var(--line-2); border-radius:var(--radius); background:var(--surface); color:var(--ink); font:500 var(--fs-14)/1.25 var(--sans); cursor:pointer; }
.lab-absence-types button[aria-pressed="true"] { border-color:var(--olive); color:var(--olive); background:var(--olive-bg); }
.lab-sick-today { margin-bottom:20px; }
.lab-sick-today p { margin:8px 0 14px; color:var(--ink-2); font:400 var(--fs-14)/1.4 var(--sans); }
.lab-absence-error { color:var(--alarm); font:400 var(--fs-14)/1.4 var(--sans); }
.lab-page input[aria-invalid="true"] { border-color:var(--alarm); }
/* Поля дат — общий .field (Э3); подсказка формата встаёт на место значения. */
.date-input { position:relative; display:block; min-width:0; }
.date-hint { display:none; position:absolute; left:13px; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--ink-3); font:400 var(--fs-16)/1 var(--mono); }
/* Chromium и Safari на Mac пишут формат в пустом поле сами; iPhone — нет. */
@supports (-webkit-touch-callout:none) { input[data-empty] + .date-hint { display:block; } }
.lab-absence-types button:focus-visible { outline:2px solid var(--olive); outline-offset:3px; }
/* Оболочка: шапка .lab-top, нижняя навигация .lab-nav, меню «Ещё». Палитра и
   типографика таблицы, дня и шторок наследуются из style.css. */
.lab-top { display:flex; align-items:center; gap:10px; flex:none; min-height:58px; padding:8px 14px; border-bottom:1px solid var(--line); background:var(--bg); }
.lab-brand { position:relative; width:112px; height:28px; flex:none; }
.lab-brand img { position:absolute; width:100%; height:100%; object-fit:contain; object-position:left center; }
.lab-logo-dark { display:none; }
.dark .lab-logo-dark { display:block; }
.dark .lab-logo-light { display:none; }
.lab-top svg,.lab-nav svg,.lab-menu svg,.lab-week-arrows svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.lab-top button,.lab-nav button,.lab-menu button,.lab-week-arrows button { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:0; background:none; color:var(--ink); font:500 var(--fs-11)/1 var(--disp); text-transform:uppercase; letter-spacing:.12em; cursor:pointer; min-height:44px; min-width:44px; padding:8px; border-radius:var(--radius); }
.lab-top button[aria-expanded="true"] { background:var(--olive-bg); color:var(--olive); }
.lab-top-b { justify-content:space-between; }
.lab-top-b .lab-brand { width:108px; }
.lab-top-b .lab-status { padding:5px 7px; }
.lab-top-end { display:flex; align-items:center; gap:6px; min-width:0; margin-left:auto; margin-right:-7px; }
.lab-top-b .lab-status + .lab-top-end { margin-left:0; }
.lab-top-end:empty { display:none; }
/* Имя цели важнее названия точки: сжимается выбор точки, а не кнопка. */
.lab-who { flex:none; max-width:9.5rem; padding:8px 9px; }
.lab-who span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Примерка: ochre, как у снятой полосы, — предупреждение, а не акцент.
   Текст остаётся цвета ink: тонкая подпись на подкраске обязана читаться. */
.lab-top .lab-who.acting { background:color-mix(in srgb, var(--ochre) 24%, var(--bg)); color:var(--ink); }
.lab-who.acting svg { color:var(--ochre); }
.lab-point { position:relative; display:flex; align-items:center; min-width:0; }
.lab-point select { appearance:none; -webkit-appearance:none; min-width:0; max-width:11rem; min-height:44px; padding:0 28px 0 10px;
  border:1px solid var(--line-2); border-radius:var(--radius); background:var(--bg); color:var(--ink);
  font:500 var(--fs-11)/1 var(--disp); text-transform:uppercase; letter-spacing:.12em; text-overflow:ellipsis; cursor:pointer; }
.lab-point select:focus-visible { outline:2px solid var(--olive); outline-offset:2px; }
.lab-top .lab-point svg { position:absolute; right:8px; width:14px; height:14px; pointer-events:none; color:var(--ink-2); }
.lab-week-context { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:17px 14px 6px; }
.lab-week-context h1 { margin:0; font:600 var(--fs-25)/1 var(--disp); text-transform:uppercase; letter-spacing:.005em; }
.lab-week-context .lab-status { margin-top:7px; }
.lab-week-context-b { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; padding:12px 12px 10px; }
.lab-week-context-b > div:first-child { min-width:0; }
.lab-week-context-b h1 { overflow-wrap:normal; }
.lab-week-context-b > .lab-week-arrows:last-child { grid-column:2; }
.lab-deadline { display:block; margin-top:5px; color:var(--ink-2); font:400 var(--fs-11)/1.45 var(--mono); }
.lab-context-label { display:block; margin-top:5px; font:400 var(--fs-14)/1.4 var(--sans); color:var(--ink-2); }
.lab-week-arrows { display:flex; gap:0; }
.lab-week-arrows button { border:1px solid var(--line); min-width:44px; width:44px; padding:8px; border-radius:0; }
.lab-week-arrows button:nth-last-child(2) { border-radius:var(--radius) 0 0 var(--radius); }
.lab-week-arrows button:last-child { margin-left:-1px; border-radius:0 var(--radius) var(--radius) 0; }
.lab-week-arrows .lab-today { width:auto; padding:8px 9px; margin-right:6px; border-radius:var(--radius); letter-spacing:.08em; }
.lab-week-arrows button:disabled { color:var(--ink-2); cursor:default; opacity:var(--dim); }
.lab-status { display:inline-flex; align-items:center; color:var(--ink-2); font:500 var(--fs-9)/1.2 var(--mono); text-transform:uppercase; letter-spacing:.13em; padding:5px 9px; background:var(--sunken); border-radius:var(--radius); }
.lab-status.published { color:var(--olive); background:var(--olive-bg); }
.lab-status-line { padding:3px 14px 0; }
.lab-department { flex:1; min-width:0; }
.lab-department select { width:100%; min-height:44px; border:0; border-radius:var(--radius); padding:8px 25px 8px 0; color:var(--ink); background:transparent; font:500 var(--fs-14)/1.25 var(--sans); cursor:pointer; }
.lab-department option { color:var(--ink); background:var(--bg); }
.lab-department-in-grid { position:relative; display:flex; align-items:center; gap:3px; min-height:44px; width:100%; padding:3px 2px 3px 7px; }
.lab-department-in-grid [data-lab-department-label] { min-width:0; font:500 var(--fs-11)/1.2 var(--disp); text-transform:uppercase; letter-spacing:.12em; color:var(--ink); white-space:normal; overflow-wrap:anywhere; }
.lab-department-in-grid svg { width:12px; height:12px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; }
.lab-department-in-grid select { position:absolute; inset:0; height:100%; width:100%; opacity:0; padding:0; }
.lab-department-in-grid:focus-within { outline:2px solid var(--olive); outline-offset:-2px; }
.lab-nav { display:flex; justify-content:space-around; align-items:stretch; border-top:1px solid var(--line-2); padding:5px 6px max(7px,env(safe-area-inset-bottom)); flex:none; background:var(--bg); }
.lab-nav button { min-width:0; flex:1; flex-direction:column; gap:4px; min-height:57px; color:var(--ink-2); padding:5px 2px; }
.lab-nav button[aria-current="page"],.lab-nav button[aria-expanded="true"] { background:var(--olive-bg); color:var(--olive); }
.lab-nav svg { width:22px; height:22px; }
/* Набор на телефоне (input-mode.js, data-typing): над клавиатурой вместо
   разделов — «Готово»; своей панели над цифровой клавиатурой iPhone в
   Telegram не даёт. Отступ safe-area клавиатура и так закрывает. */
.lab-nav .lab-done { display:none; }
html[data-input="touch"][data-typing] .lab-nav { justify-content:flex-end; padding-bottom:5px; }
html[data-input="touch"][data-typing] .lab-nav > :not(.lab-done) { display:none; }
html[data-input="touch"][data-typing] .lab-nav .lab-done { display:inline-flex; flex:none; flex-direction:row; min-height:44px; padding:8px 20px; color:var(--olive); font-size:var(--fs-13); }
.lab-menu { flex:none; max-height:60dvh; overflow:auto; padding:8px 14px 14px; background:var(--surface); border-bottom:1px solid var(--line-2); }
html[data-lab-variant="b"] .lab-menu { position:absolute; z-index:21; inset:auto 0 var(--preview-nav-h,68px); max-height:70%; border-top:1px solid var(--line-2); border-bottom:0; border-radius:var(--radius) var(--radius) 0 0; }
.lab-menu-backdrop { position:absolute; z-index:20; inset:0 0 var(--preview-nav-h,68px); width:100%; border:0; border-radius:0; background:var(--veil-menu); cursor:pointer; }
.lab-menu-title { display:flex; align-items:center; justify-content:space-between; }
.lab-menu-title b { font:600 var(--fs-16)/1.2 var(--disp); text-transform:uppercase; }
.lab-menu-title button { color:var(--ink-2); }
.lab-menu-group { display:grid; grid-template-columns:1fr; padding:10px 0; border-top:1px solid var(--line); }
.lab-menu-group > span { font:500 var(--fs-11)/1 var(--disp); text-transform:uppercase; letter-spacing:.15em; color:var(--ink-2); margin:0 8px 4px; }
.lab-menu-group button { justify-content:flex-start; font:500 var(--fs-14)/1.25 var(--sans); text-transform:none; letter-spacing:normal; }
.lab-menu .lab-version { width:100%; justify-content:flex-start; border-top:1px solid var(--line); border-radius:0; color:var(--ink-2); font:400 var(--fs-13)/1.25 var(--sans); text-transform:none; letter-spacing:normal; }
.lab-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg { margin-top:0; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-row { gap:1px; margin-bottom:1px; }
/* Имя 88 px — только телефонная ширина: с 900 px колонку держит @media style.css
   (160 px). До 0.37.0 правило оболочки перебивало её и на 1280 px («Заболотны/й»). */
@media(max-width:899px) { html[data-lab-variant]:not([data-lab-variant="current"]) .wg-row { grid-template-columns:88px repeat(7,minmax(0,1fr)); } }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-row > span,
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-row > .wg-name > span { padding:4px 5px 4px 8px; white-space:normal; overflow-wrap:anywhere; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg .m { min-height:49px; padding:2px 0; }
/* Плашка «Опубликовать» в оболочке: поля как у шапки недели, углы как у её кнопок. */
html[data-lab-variant]:not([data-lab-variant="current"]) .publish-bar { margin:0 12px 10px; border-radius:var(--radius); }
/* Подсказка (карточка 21) вернулась в оболочку: в дне — по краю вариантов и
   с зазором до них, над таблицей — по краю плашки «Опубликовать». */
html[data-lab-variant]:not([data-lab-variant="current"]) .day > .aside.tip { margin:0 0 12px; border-radius:var(--radius); }
html[data-lab-variant]:not([data-lab-variant="current"]) .scroll > .aside.tip { margin:0 12px 10px; border-radius:var(--radius); }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-head { position:sticky; top:0; z-index:2; background:var(--bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:5px 0; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-head .wg-date { min-height:44px; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-dept { padding:0 8px; margin:19px 0 6px; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-tot { margin-bottom:5px; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-tot i { padding:3px 0; }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg-dept.lab-dept-summary { display:grid; align-items:center; padding:0; margin:12px 0 4px; }
html[data-lab-variant]:not([data-lab-variant="current"]) .lab-dept-summary > span { min-width:0; }
html[data-lab-variant]:not([data-lab-variant="current"]) .lab-dept-summary > span b { color:var(--ink); }
html[data-lab-variant]:not([data-lab-variant="current"]) .wg [hidden] { display:none; }
html[data-lab-variant]:not([data-lab-variant="current"]) .strip { position:static; flex:none; }
html[data-lab-variant]:not([data-lab-variant="current"]) .strip button { min-height:61px; }
.lab-daydock { flex:none; background:var(--surface); border-top:1px solid var(--line-2); }
.lab-daydock-caption { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:24px; padding:3px 10px; color:var(--ink-2); font:400 var(--fs-9)/1.35 var(--mono); }
.lab-daydock-caption button { min-height:44px; padding:6px 10px; background:transparent; color:var(--ink); border:1px solid var(--line-2); border-radius:var(--radius); font:400 var(--fs-11)/1 var(--mono); cursor:pointer; }
.lab-page { padding:8px 14px 24px; max-width:680px; margin:0 auto; }
.lab-page-heading { display:flex; align-items:center; gap:8px; min-height:44px; margin:0 0 18px; }
.lab-page-heading h1 { flex:1; order:2; min-width:0; margin:0; font:600 var(--fs-25)/1.2 var(--disp); text-transform:uppercase; letter-spacing:.005em; overflow-wrap:anywhere; }
.lab-page-heading svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.lab-page-heading .arrow { flex:none; }
html[data-lab-variant]:not([data-lab-variant="current"]) button { transition:background-color 120ms ease-out, color 120ms ease-out, border-color 120ms ease-out; }
html[data-lab-variant]:not([data-lab-variant="current"]) button:active:not(:disabled):not([aria-disabled="true"]) { filter:brightness(.92); }
@media(prefers-reduced-motion:reduce) {
  html[data-lab-variant]:not([data-lab-variant="current"]) button { transition:none; }
}
html[data-lab-variant="b"] .lab-daydock .strip button { padding:5px 0 4px; min-height:60px; }
@media(max-width:359px) {
  .lab-week-context-b > div:first-child { grid-column:1; }
  .lab-week-context-b > .lab-week-arrows:last-child { grid-column:2; grid-row:1; align-self:center; }
  .lab-week-context { padding-left:10px; padding-right:10px; }
  .lab-top-b { gap:5px; padding-left:10px; padding-right:7px; }
  .lab-top-b .lab-brand { width:91px; }
  .lab-top-b .lab-status { padding:5px; }
  .lab-who { max-width:7.5rem; }
  .lab-point select { max-width:8.5rem; }
  .lab-work { gap:3px; padding-left:8px; padding-right:6px; }
  .lab-work button { padding:5px; }
  .lab-work button svg { display:none; }
  .lab-department select { padding-right:12px; }
  html[data-lab-variant]:not([data-lab-variant="current"]) .wg-row { grid-template-columns:82px repeat(7,minmax(0,1fr)); }
}
@media(hover:hover) { .lab-top button:hover,.lab-nav button:hover,.lab-work button:hover,.lab-menu button:hover { background:var(--sunken); } }
html[data-lab-variant]:not([data-lab-variant="current"]) ::selection { color:var(--on-ink); background:var(--olive); }
html[data-lab-variant]:not([data-lab-variant="current"]) * { scrollbar-width:thin; scrollbar-color:var(--line-2) transparent; }
html[data-lab-variant="b"] .wg .wg-head > span { padding:0; }

/* Панель оператора — страница оболочки из общих элементов (Э11, 0.38.0):
   строки .row, кнопки .wide и .link, поля .field, вкладки [role="tablist"],
   свёрнутая на телефоне «Область» .fold, JSON — pre (style.css). Своё — только
   сводка: цифры — данные, поэтому моноширинные (канон «цифры данных»). */
.lab-page[data-page="operator"] { max-width:760px; }
.op-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 12px; margin:0 0 10px; padding:10px 0;
  border-block:1px solid var(--line); }
.op-summary > div { min-width:0; }
.op-summary dt { font:500 var(--fs-11)/1.25 var(--disp); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); overflow-wrap:anywhere; }
.op-summary dd { margin:4px 0 0; font:500 var(--fs-20)/1 var(--mono); font-variant-numeric:tabular-nums; color:var(--ink); }
.op-summary dd + dd { margin-top:3px; font:400 var(--fs-11)/1.3 var(--sans); color:var(--ink-2); }
.op-summary .warn dd:first-of-type { color:var(--alarm); }
@media(min-width:600px) { .op-summary { grid-template-columns:repeat(5,minmax(0,1fr)); } }
