/* Стили стенда поверх app.css (прототип): ссылки вместо кнопок в левой панели и вкладках, ряды форм. */
body{margin:0;}
.rail a,.rail .nolink{display:block;text-align:left;padding:var(--s2) var(--s2);border-radius:var(--r-sm);color:var(--ink-2);
  font-size:var(--fs-13);margin-bottom:1px;text-decoration:none;}
.rail a:hover{background:var(--line);}
.rail a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;}
.rail .nolink.on{font-weight:600;}
a.tab{text-decoration:none;display:inline-block;}
a.mini{text-decoration:none;}
.app-bar form{margin:0;}
.row{display:flex;gap:var(--s2);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--s3);}
.row .field{margin-bottom:0;}
/* P19 шаг 4: строка периода (шаблон periodbar) */
.pform{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:flex-end;margin:0;}
.pform .field{margin-bottom:0;}
.pbar-act{margin:0 0 0 auto;}
/* P19 шаг 5: выручка за период — плитки, сетка разрезов, вкладки без скрипта */
.rtiles{display:flex;flex-wrap:wrap;gap:var(--s3);margin:0 0 var(--s3);}
.rtile{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:var(--s2) var(--s3);background:var(--surface);min-width:150px;}
.rtile .hint{display:block;}
@media (max-width:600px){.rtiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}.rtile{min-width:0;}}
.rtile b{font-size:var(--fs-17);}
.rtile.main b{font-size:var(--fs-24);}
.revgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s3);}
.revcuts:has(#rev-tab-nom:checked) .revp:not(#rev-p-nom),
.revcuts:has(#rev-tab-pat:checked) .revp:not(#rev-p-pat),
.revcuts:has(#rev-tab-adm:checked) .revp:not(#rev-p-adm),
.revcuts:has(#rev-tab-asst:checked) .revp:not(#rev-p-asst){display:none;}
/* P19 волна Г (D-UI-2, Н8, Н9): «По врачам» карточками ≤600 px (подписи по номеру ячейки, разметка прежняя); плашка незакрытой смены — текст и ссылка одним потоком */
@media (max-width:600px){
  #rev-doctors-wrap{overflow-x:visible;}
  #rev-doctors,#rev-doctors>tbody,#rev-doctors tr,#rev-doctors td{display:block;width:auto;}
  #rev-doctors{overflow:visible;max-width:100%;}
  #rev-doctors tr:has(>th){display:none;}
  #rev-doctors tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s2) var(--s3);margin-bottom:var(--s2);}
  #rev-doctors td{border:0;padding:var(--s1) 0;white-space:normal;}
  #rev-doctors td:first-child{overflow-wrap:anywhere;}
  #rev-doctors td:first-child{font-weight:600;}
  #rev-doctors td:nth-child(2)::before{content:"Принято визитов: ";color:var(--muted);font-size:var(--fs-12);}
  #rev-doctors td:nth-child(3)::before{content:"Первичных: ";color:var(--muted);font-size:var(--fs-12);}
  #rev-doctors td:nth-child(4)::before{content:"Повторных: ";color:var(--muted);font-size:var(--fs-12);}
  #rev-doctors td:nth-child(5){font-weight:600;}
  #rev-doctors td:nth-child(5)::before{content:"Выручка: ";color:var(--muted);font-size:var(--fs-12);font-weight:400;}
  #rev-doctors td:nth-child(6)::before{content:"Счетов: ";color:var(--muted);font-size:var(--fs-12);}
  #rev-doctors td:nth-child(7)::before{content:"Средний чек: ";color:var(--muted);font-size:var(--fs-12);}
  #rev-rest td:nth-child(2),#rev-rest td:nth-child(3),#rev-rest td:nth-child(4),#rev-rest td:nth-child(6),#rev-rest td:nth-child(7){display:none;}
}
#rev-notes .banner{display:block;}
#rev-notes .banner a{white-space:nowrap;}
.row .grow{flex:1;min-width:220px;}
form.inl{display:inline;margin:0;}
.chkline{display:flex;align-items:center;gap:var(--s2);margin:var(--s1) 0 var(--s2);font-size:var(--fs-13);color:var(--ink-2);}
.chkline label{font-weight:400;}
.chkline label.cap{font-weight:600;}  /* подпись выбора «К врачу» — как у остальных подписей (Д-14) */
.sect .sub{color:var(--muted);}
/* S1 (D-348): прилипание работает (overflow:hidden делал .app контейнером прокрутки); .work - контейнер для @container на любой странице. */
.app{overflow:clip;}
.work{container-type:inline-size;}
/* узкое окно: меню рабочих мест - полоса над вкладками */
@media (max-width:900px){
  .app-body{grid-template-columns:minmax(0,1fr);min-height:0;}
  .rail{display:flex;overflow-x:auto;gap:var(--s1);padding:var(--s1) var(--s2);border-right:0;border-bottom:1px solid var(--line);
    -webkit-mask-image:linear-gradient(to right,black calc(100% - var(--s5)),transparent);mask-image:linear-gradient(to right,black calc(100% - var(--s5)),transparent);}
  .rail a,.rail .nolink{white-space:nowrap;margin-bottom:0;flex:none;}
  .rail .cap,.rail .gap,.rail .rail-why{display:none;}
}
#who select{max-width:none;}
.rail .nolink.off{color:var(--muted);}
/* Печатные формы: при печати браузером остаются только документ, без панели, рельса и вкладок. */
@media print{
  .app-bar,.rail,.tabs,.bar,.noprint{display:none !important;}
  .tbl{display:table !important;overflow:visible !important;}
  .tbl>tbody{display:table-row-group !important;width:auto !important;}
  .app{overflow:visible !important;}
  .app-body{display:block;min-height:0;}
  .doc{border:0 !important;padding:0 !important;max-width:none !important;}
}
/* Стационар P6 */
#stay-unmarked a { min-height: 44px; display: inline-flex; align-items: center; }
@media (pointer:coarse),(max-width:600px){#stay-back{min-height:var(--h-tap);display:inline-flex;align-items:center;}}
/* панель получаса справа от сетки (шаг 4) */
.slot.sel { box-shadow: inset 0 0 0 2px var(--accent-line); }
#slot-panel { padding: var(--s2) var(--s3); }
#slot-panel h3 { margin: 0 0 var(--s2); }
#slot-panel summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 600; }
/* сетка дежурного (шаг 3): свёртки пустых получасов, текущий получас, цвет статуса, нижняя панель наблюдения */
.gap > summary { min-height: 44px; display: flex; align-items: center; gap: var(--s2); padding: 0 var(--s3); cursor: pointer; color: var(--muted); list-style: none; border-bottom: 1px solid var(--line); }
.gap > summary::-webkit-details-marker { display: none; }
.gap > summary::before { content: "▸"; }
.gap[open] > summary::before { content: "▾"; }
.slot.now { background: var(--accent-soft); }
.now-tag { font-size: var(--fs-12); font-weight: 600; color: var(--accent-ink); border: 1px solid var(--accent-line); border-radius: var(--r-pill); padding: 2px var(--s2); }
.it { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s3); padding: 2px var(--s2); border-left: 4px solid transparent; border-radius: var(--r-sm); }
.it.st-done { background: var(--ok-soft); border-left-color: var(--ok); }
.it.st-no { background: var(--crit-soft); border-left-color: var(--crit); }
.it.st-due { background: var(--warn-soft); border-left-color: var(--warn); }
.it.st-late { background: var(--crit-soft); border-left-color: var(--crit); }
.st-badge { font-weight: 600; border: 1px solid var(--warn-line); padding: 2px var(--s2); color: var(--warn); }
.st-late .st-badge { border-color: var(--crit); color: var(--crit); }
#stay-days { position: sticky; top: 0; z-index: 3; background: var(--ground); margin: 0; }
.markbox .btn{width:100%;}
#stay-now { font-weight: 600; color: var(--ink-2); }
#stay-obs { display: contents; }
.obsbar { position: sticky; bottom: 0; z-index: 3; background: var(--surface); border-top: 1px solid var(--line-2); padding: var(--s2) var(--s3); }
.obsbar form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s2) var(--s3); }
#obs-offline { margin: var(--s1) 0 0; color: var(--crit); font-size: var(--fs-13); }
#obs-offline[hidden] { display: none; }
/* доска стационара (шаг 5): карточка целиком — ссылка */
.board { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--s3); }
.stay-card { display: flex; flex-direction: column; gap: var(--s1); box-sizing: border-box; min-height: 96px; padding: var(--s2) var(--s3); border: 1px solid var(--line); border-left: 4px solid var(--line); border-radius: var(--r-md); background: var(--surface); color: inherit; text-decoration: none; }
.stay-card.st-late { border-left-color: var(--crit); background: var(--crit-soft); }
.stay-card.st-due { border-left-color: var(--warn); background: var(--warn-soft); }
.stay-card .sc-l1 { font-size: var(--fs-15); }
.stay-card .sc-badges { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s1); }
.stay-card .sc-by { color: var(--muted); font-size: var(--fs-12); }
#stay-board-sum { font-weight: 600; color: var(--ink-2); }

/* плашки на счёте ресепшена (UC-MED-05): подсвечена — есть что смотреть; серая — раздел ещё не работает */
.plaques{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:flex-start;margin:var(--s2) 0;}
.plq{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:var(--s1) var(--s2);font-size:var(--fs-13);color:var(--muted);background:var(--surface);}
.plq summary{cursor:pointer;}
.plq.on{--tbl-bg:var(--ok-soft);border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok);font-weight:600;}
.plq.off{opacity:.7;}
/* Календарь записи на /reception (D-217): колонки врачей, ось времени, блоки записей и блокировок. 15 минут = 20 px. */
.cal-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm);background-color:var(--surface);margin-bottom:var(--s3);}
.cal{display:grid;min-width:max-content;width:100%;}
.cal-corner,.cal-head{border-bottom:1px solid var(--line-2);background:var(--sunken);padding:var(--s1) var(--s2);}
.cal-head{border-left:1px solid var(--line);}
.cal-head .hint{margin:2px 0 var(--s1);}
.cal-act{margin:var(--s1) 0 0;display:flex;gap:var(--s1);flex-wrap:wrap;align-items:center;}
.cal-wd .inp{width:84px;padding:var(--s1) var(--s1);}
.cal-wd select.inp{width:auto;max-width:130px;}
/* В1: колонка времени закреплена слева при прокрутке календаря (D-UI-15) */
.cal-axis{position:sticky;left:0;z-index:2;background-color:var(--surface);}
.cal-axis span{position:absolute;right:4px;font-size:var(--fs-11);color:var(--muted);transform:translateY(-6px);}
.cal-col{position:relative;border-left:1px solid var(--line);background-color:var(--shell);
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(var(--line-2) 1px,transparent 1px);
  background-size:100% 20px,100% 80px;}
.cal-work{position:absolute;left:0;right:0;background:var(--surface);opacity:.85;}
.cal-appt,.cal-block{position:absolute;box-sizing:border-box;overflow:hidden;border-radius:var(--r-sm);padding:2px var(--s1);font-size:var(--fs-12);line-height:1.25;}
.cal-appt{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--ink);}
.cal-appt.arrived{background:var(--ok-soft);border-color:var(--ok-line);}
.cal-appt a{color:inherit;text-decoration:none;display:block;height:100%;}
.cal-appt[data-drag]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;}
.cal-appt.dragging{opacity:.8;z-index:5;cursor:grabbing;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.cal-appt.cal-off{opacity:.35;}
.cal-block{background:repeating-linear-gradient(135deg,var(--sunken) 0 6px,var(--line) 6px 12px);border:1px solid var(--line-2);color:var(--ink-2);}
/* P1 «Направить» */
.tiles{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0 0 var(--s3);}
fieldset.tiles{border:0;padding:0;}
.tile-in{position:absolute;opacity:0;width:1px;height:1px;}
.tile{display:block;border:1px solid var(--line-2);border-radius:var(--r-md);min-height:44px;padding:var(--s2) var(--s3);cursor:pointer;box-sizing:border-box;}
.tile small{display:block;color:var(--muted);}
.tile-in:checked+.tile{border-color:var(--accent);background:var(--accent-soft);font-weight:600;}
.tile-in:focus-visible+.tile{outline:2px solid var(--accent);outline-offset:2px;}
.tile.em{border-color:var(--crit-line);color:var(--crit);}
.tile-in:checked+.tile.em{background:var(--crit-soft);border-color:var(--crit);}
.tile-in:disabled+.tile{opacity:.5;}
/* P1 поиск */
.hsearch form{margin:0;}
.sres .own{margin-top:var(--s2);}
.sres .pet{display:flex;flex-wrap:wrap;gap:var(--s1);justify-content:space-between;align-items:center;padding-left:var(--s3);}
#hq-refer:not(:empty){border-top:1px solid var(--line-2);padding-top:var(--s2);margin-top:var(--s2);}
/* P1 главная ресепшена */
@container not (min-width:780px){.cols>.first-narrow{order:-1;}}
/* P1 карточка и новый клиент */
.petl{padding:var(--s1) 0;border-top:1px solid var(--line);}
#card-more .menu a{min-height:44px;}
#client-acts,#reg-submit{align-items:center;}
/* Экран приёма врача (D-347, шаг 1): шапка в две строки, строка действий, две колонки по ширине рабочей области, счёт справа. */
.rec{container-type:inline-size;display:flex;flex-direction:column;gap:var(--s3);}
.rec .chipb{min-height:var(--h-tap);}
.vh{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);justify-content:space-between;align-items:flex-start;}
.vh-who{display:flex;flex-direction:column;gap:var(--s1);min-width:0;}
.vh-l1{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s2);}
.vh-l1 h2{margin:0;font-size:var(--fs-20);}
.vh-sp{color:var(--ink-2);font-size:var(--fs-15);}
.vh-l2{display:flex;flex-wrap:wrap;color:var(--ink-2);font-size:var(--fs-13);}
.vh-l2>span:not(:last-child)::after{content:"·";margin:0 var(--s2);color:var(--muted);}
.vh #qpanel{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s1);}
.acts{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;padding-block:var(--s2);border-block:1px solid var(--line);}
.acts .sp{flex:1;}
.acts a.btn{text-decoration:none;}
.more{position:relative;}
.more>summary{list-style:none;cursor:pointer;}
.more>summary::-webkit-details-marker{display:none;}
.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:5;min-width:260px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:var(--s1);box-shadow:0 8px 24px rgb(0 0 0 / .14);display:flex;flex-direction:column;}
.menu button,.menu a{display:flex;align-items:center;text-align:left;border:0;background:none;padding:0 var(--s3);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-13);color:var(--ink);cursor:pointer;text-decoration:none;}
.menu button:hover,.menu a:hover{background:var(--sunken);}
.panel{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-md);padding:var(--s3);display:flex;flex-direction:column;gap:var(--s2);}
.panel[hidden]{display:none;}
.panel .field{margin-bottom:0;}
.frow{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:flex-end;}
.frow .field{margin-bottom:0;}
.frow .grow{flex:1 1 200px;}
.frow .w{width:120px;}
.refs{display:flex;flex-direction:column;gap:var(--s1);font-size:var(--fs-13);}
.cols{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s4);align-items:start;}
.cols-main,.cols-side{display:flex;flex-direction:column;gap:var(--s3);min-width:0;}
@container (min-width:780px){
  .cols{grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);}
  .cols-side{position:sticky;top:8px;max-height:calc(100vh - 16px);overflow:auto;}
  .bar.narrow{display:none !important;}
}
.exw{display:flex;flex-direction:column;gap:var(--s3);}
.card.rc{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);border-radius:var(--r-md);}
#rec-callbacks-go{display:block;font-weight:600;}
@media (pointer:coarse){#rec-callbacks-go{min-height:44px;display:flex;align-items:center;}}
.rc .ch{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);align-items:baseline;justify-content:space-between;}
.rc .ch h3{margin:0;font-size:var(--fs-15);}
.rc .field{margin-bottom:0;}
.rc p{margin:0;}
.stack{display:flex;flex-direction:column;gap:var(--s2);}
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2);}
@container (max-width:600px){.g2{grid-template-columns:minmax(0,1fr);}}
@container not (min-width:780px){#lab-orders tr:first-child{display:none;} #lab-orders tr{display:block;padding:var(--s2) 0;border-bottom:1px solid var(--line);} #lab-orders td{display:inline-block;border:0;padding:2px var(--s1);}}
.chips{display:flex;flex-wrap:wrap;gap:var(--s1);}
.chipb{border:1px solid var(--line-2);background:var(--sunken);padding:0 var(--s3);font-family:inherit;color:var(--ink);cursor:pointer;}
.chipb:hover{border-color:var(--accent-line);background:var(--accent-soft);}
.chipb.crit{border-color:var(--crit-line);background:var(--crit-soft);color:var(--crit);font-weight:600;}
.prev{border:1px solid var(--warn-line);background:var(--warn-soft);border-radius:var(--r-md);padding:var(--s2) var(--s3);display:flex;flex-direction:column;gap:var(--s1);}
.isec{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s1) var(--s2);display:flex;flex-direction:column;gap:var(--s1);}
.sec-h{display:flex;justify-content:space-between;gap:var(--s2);padding:var(--s1) 0;font-size:var(--fs-13);}
.ln{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--s1) var(--s2);align-items:center;padding:var(--s1) 0;border-top:1px solid var(--line);}
.ln-s{text-align:right;}
.ln-sub,.ln-w{grid-column:1/-1;margin-top:calc(-1*var(--s1));}
.ln-w summary{cursor:pointer;font-size:var(--fs-13);color:var(--muted);}
.mk summary{cursor:pointer;font-size:var(--fs-13);color:var(--muted);min-height:32px;display:flex;align-items:center;}
.tot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2);padding-top:var(--s2);border-top:2px solid var(--line-2);}
.tot form{margin:0;}
.amt{font-size:var(--fs-20);font-weight:700;font-variant-numeric:tabular-nums;}
.btn.big{font-size:var(--fs-15);padding:0 var(--s5);}
.bfold{border:1px solid var(--line);border-radius:var(--r-md);padding:0 var(--s3);}
.bfold>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;}
.bfold .in{padding-bottom:var(--s3);display:flex;flex-direction:column;gap:var(--s2);}
.bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2) var(--s4);background:var(--surface);border-top:1px solid var(--line-2);box-shadow:0 -6px 16px rgb(0 0 0 / .06);}
/* S1: .row внутри .card - обычный .row (в app.css там сетка 64 px боковой панели прототипа) */
.card .row{display:flex;gap:var(--s2);padding:0;border-bottom:0;font-size:inherit;line-height:inherit;margin-bottom:var(--s3);}
/* P7 волна Г (Н7): строки очереди - сетка: текст, сумма (по правому краю), кнопка; у всех строк группы колонки одинаковы */
section[id^="qg-"] .row{display:grid;grid-template-columns:minmax(0,1fr) 11ch 7.5rem;align-items:center;column-gap:var(--s2);}
section[id^="qg-"] .row>:first-child{min-width:0;overflow-wrap:break-word;}
section[id^="qg-"] .row>:only-child{grid-column:1/-1;}
section[id^="qg-"] .row>b.mn{text-align:right;white-space:nowrap;}
section[id^="qg-"] .row>a.mini{justify-self:start;white-space:nowrap;}
@media (max-width:600px){section[id^="qg-"] .row{grid-template-columns:minmax(0,1fr) auto auto;}}
/* S1 (D-UI-4): обычная .btn = .btn.sec и .btn.dang — в app.css; .err */
.err{color:var(--crit);}
/* S1: широкая таблица на узком окне прокручивается внутри себя */
/* Волна В1 (D-UI-15): широкая таблица прокручивается внутри себя на любой ширине; .tscroll — своя прокрутка; карточный вид (.exp-tbl, #debtors, …) перебивает как раньше */
.tbl{display:block;overflow-x:auto;max-width:100%;}.tbl>tbody{display:table;width:100%;}
.tscroll>.tbl{display:table;overflow:visible;max-width:none;}.tscroll>.tbl>tbody{display:table-row-group;width:auto;}
.banner>div{min-width:0;}
/* Д-2: последний столбец (действие) таблицы основной колонки прилипает к правому краю её рамки — «Открыть» видна без прокрутки; только в табличном виде (карточный вид — при контейнере уже 780 px) */
@container (min-width:780px){:where(.cols-main) .tbl:not(.exp-tbl) :is(td,th):last-child{position:sticky;right:0;z-index:1;background:var(--tbl-bg,var(--surface));box-shadow:inset 1px 0 0 var(--line-2);}
:where(.cols-main) .tbl:not(.exp-tbl) :is(td,th).act:last-child{background:linear-gradient(to right,color-mix(in srgb,var(--ink) 14%,transparent),transparent 8px),var(--tbl-bg,var(--surface));}}
/* Правило 14 (Д-21): строка полей и кнопок — низы на одной линии, если над полем подпись, иначе середины; текст, флажок и ссылка строки — по середине высоты поля */
.row:not(:has(.field)),.pform:not(:has(.field)),.frow:not(:has(.field)){align-items:center;}
:is(.row,.pform,.frow)>:is(.pseg,.seg,h1,h2,h3,h4){margin-top:0;margin-bottom:0;}
:is(.row,.pform,.frow)>:is(.chkline,.hint,a:not(.btn,.mini)){display:flex;align-items:center;min-height:var(--h-ctl);margin:0;}
@media (max-width:600px){:is(.row,.pform,.frow)>:is(.chkline,.hint,a:not(.btn,.mini)){min-height:var(--h-tap);}}
/* поле, обёрнутое в подпись: нижний отступ подписи не уводит низ поля выше низа кнопки */
:is(.row,.pform,.frow) .field label:has(>.inp){margin-bottom:0;}
/* P19 шаг 4: обёртка широкой таблицы — единственная прокрутка вбок на любой ширине */
.tscroll{overflow-x:auto;max-width:100%;background-color:var(--tbl-bg,var(--surface));}
#vet-journal th{white-space:normal;}
#vet-journal tr>:first-child{position:sticky;left:0;z-index:1;background:var(--surface);}
/* S1: цели на планшете - 44 px */
@media (pointer:coarse){
  .btn,.mini,.inp,.tab,.chipb,summary,.menu a,.menu button,.rail a,.pseg a{min-height:44px;}
}
.hits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.hit{padding:var(--s2) 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:var(--s1);}
.hit:first-child{border-top:0;}
.hit-h{display:flex;justify-content:space-between;gap:var(--s2);align-items:baseline;}
.hit-p{font-variant-numeric:tabular-nums;white-space:nowrap;}
.hit-f{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);align-items:center;}
.hit-f form{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:stretch;margin:0;}
.hit-f .inp{width:auto;max-width:100%;}
.hit-f input[name=qty]{width:5.5em;}
.hit-f input[name=note]{width:10em;}
/* DS-3 */
#dq td:last-child{white-space:nowrap;}
#dq td:last-child .more{display:inline-block;margin-left:var(--s2);}
.dup-cand{margin-top:var(--s2);}
/* Волна А1: меню и окна (D-UI-9) */
.menu form{display:flex;flex-direction:column;align-items:stretch;gap:var(--s2);padding:var(--s2);margin:0;}
.menu form .inp{width:100%;box-sizing:border-box;}
.menu :is(a,button){justify-content:flex-start;min-height:var(--h-ctl);color:var(--ink);font-weight:400;}
.menu :is(a,button).btn.btn.btn,.menu :is(a,button).mini.mini.mini{justify-content:flex-start;border:0;background:none;color:var(--ink);font-weight:400;}
.menu :is(a,button).dang,.menu :is(a,button).btn.btn.btn.dang,.menu :is(a,button).mini.mini.mini.dang{color:var(--crit);}
.menu :is(a,button):hover,.menu :is(a,button).btn.btn.btn:hover,.menu :is(a,button).mini.mini.mini:hover{background:var(--sunken);filter:none;}
.menu :is(a,button)[aria-current],.menu :is(a,button).btn.btn.btn[aria-current],.menu :is(a,button).mini.mini.mini[aria-current]{background:var(--accent-soft);font-weight:600;}
@media (max-width:600px),(pointer:coarse){.menu :is(a,button){min-height:var(--h-tap);}}
dialog{padding:var(--s4);width:min(480px,calc(100vw - 32px));max-width:none;}
dialog h3{margin:0 0 var(--s3);font-size:var(--fs-15);font-weight:600;line-height:1.25;}
dialog p{margin:0 0 var(--s3);}
.dlg-btns{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:flex-end;margin-top:var(--s3);}
.dlg-btns .btn{min-height:var(--h-tap);}
/* Ш1 шапка страницы (D-UI-26) */
.ph{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-bottom:var(--s3);}
.ph>h2{margin:0;}
.ph>.sp{flex:1;}
.vh-l1 h2 a{color:inherit;text-decoration:none;}
.vh-l1 h2 a:hover{text-decoration:underline;}
.vh-l1 .bdg{background:var(--sunken);color:var(--ink-2);border-color:var(--line-2);font-weight:600;}
/* Р1 ресепшен (D-UI-31) */
#rec-now .tbl :is(td,th),#rec-done .tbl :is(td,th){padding-left:var(--s2);padding-right:var(--s2);}
@container (min-width:1040px){#rec-cols{grid-template-columns:minmax(0,1fr) 320px;}}
