/* Стили стенда поверх app.css (прототип): ссылки вместо кнопок в левой панели и вкладках, ряды форм. */
body{margin:0;}
.rail a,.rail .nolink{display:block;text-align:left;padding:7px 8px;border-radius:5px;color:var(--ink-2);
  font-size:13px;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:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px;}
.row .field{margin-bottom:0;}
.row .grow{flex:1;min-width:220px;}
form.inl{display:inline;margin:0;}
.chkline{display:flex;align-items:center;gap:7px;margin:4px 0 8px;font-size:13px;color:var(--ink-2);}
.sect .sub{color:var(--muted);}
/* S1 (D-348): прилипание работает (overflow:hidden делал .app контейнером прокрутки); .work - контейнер для @container на любой странице. */
.app{overflow:clip;}
.work{container-type:inline-size;}
@media (min-width:901px){.app-body{grid-template-columns:184px 1fr;}}
/* узкое окно: меню рабочих мест - полоса над вкладками */
@media (max-width:900px){
  .app-body{grid-template-columns:minmax(0,1fr);min-height:0;}
  .rail{display:flex;overflow-x:auto;gap:4px;padding:6px 10px;border-right:0;border-bottom:1px solid var(--line);}
  .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(--faint);}
/* Печатные формы: при печати браузером остаются только документ, без панели, рельса и вкладок. */
@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{border:0;box-shadow:none;overflow:visible !important;}
  .app-body{display:block;}
  .doc{border:0 !important;padding:0 !important;max-width:none !important;}
}
/* Стационар P6 */
#dis-confirm { max-width: min(480px, calc(100vw - 32px)); padding: 16px 20px; }
#dis-confirm .dlg-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
#dis-confirm .btn { min-height: 48px; min-width: 44px; }
#stay-unmarked a { min-height: 44px; display: inline-flex; align-items: center; }
#stay-back { min-height: 44px; display: inline-flex; align-items: center; }
/* панель получаса справа от сетки (шаг 4) */
.slot.sel { box-shadow: inset 0 0 0 2px var(--accent-line); }
#slot-panel { padding: 8px 12px; }
#slot-panel h3 { margin: 0 0 8px; }
#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: 8px; padding: 0 12px; 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: 12px; font-weight: 600; color: var(--accent-ink); border: 1px solid var(--accent-line); border-radius: 999px; padding: 2px 8px; }
.it { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 2px 8px; border-left: 4px solid transparent; border-radius: 4px; }
.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-size: 12px; font-weight: 600; border: 1px solid var(--warn-line); border-radius: 999px; padding: 2px 8px; 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; }
#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: 8px 12px; }
.obsbar form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; }
#obs-offline { margin: 6px 0 0; color: var(--crit); font-size: 13px; }
#obs-offline[hidden] { display: none; }
/* доска стационара (шаг 5): карточка целиком — ссылка */
.board { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.stay-card { display: flex; flex-direction: column; gap: 4px; box-sizing: border-box; min-height: 96px; padding: 10px 12px; border: 1px solid var(--line); border-left: 4px solid var(--line); border-radius: 8px; 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: 16px; }
.stay-card .sc-badges { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.stay-card .sc-by { color: var(--muted); font-size: 12px; }
#stay-board-sum { font-weight: 600; color: var(--ink-2); }

/* плашки на счёте ресепшена (UC-MED-05): подсвечена — есть что смотреть; серая — раздел ещё не работает */
.plaques{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin:8px 0;}
.plq{border:1px solid var(--line-2);border-radius:6px;padding:5px 10px;font-size:13px;color:var(--faint);background:var(--surface);}
.plq summary{cursor:pointer;}
.plq.on{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:6px;background:var(--surface);margin-bottom:14px;}
.cal{display:grid;min-width:max-content;width:100%;}
.cal-corner,.cal-head{border-bottom:1px solid var(--line-2);background:var(--sunken);padding:6px 8px;}
.cal-head{border-left:1px solid var(--line);}
.cal-head .hint{margin:2px 0 4px;}
.cal-act{margin:4px 0 0;display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
.cal-wd .inp{width:84px;padding:3px 4px;}
.cal-wd select.inp{width:auto;max-width:130px;}
.cal-axis{position:relative;}
.cal-axis span{position:absolute;right:4px;font-size:11px;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:4px;padding:2px 4px;font-size:12px;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);}
.cal-block .mini{padding:1px 6px;}
/* P1 «Направить» */
.tiles{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;}
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:10px;min-height:44px;padding:8px 14px;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;}
/* Экран приёма врача (D-347, шаг 1): шапка в две строки, строка действий, две колонки по ширине рабочей области, счёт справа. */
.rec{container-type:inline-size;display:flex;flex-direction:column;gap:12px;}
.rec .btn,.rec .chipb,.rec .menu button,.rec .menu a,.rec summary.btn{min-height:44px;}
.rec .inp{min-height:44px;}
.vh{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;align-items:flex-start;}
.vh-who{display:flex;flex-direction:column;gap:4px;min-width:0;}
.vh-l1{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;}
.vh-l1 h2{margin:0;font-size:22px;}
.vh-sp{color:var(--ink-2);font-size:15px;}
.vh-l2{display:flex;flex-wrap:wrap;color:var(--ink-2);font-size:13.5px;}
.vh-l2>span:not(:last-child)::after{content:"·";margin:0 8px;color:var(--faint);}
.vh #qpanel{display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
.acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-block:10px;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:10px;padding:6px;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 12px;border-radius:6px;font:inherit;font-size:14px;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:10px;padding:12px;display:flex;flex-direction:column;gap:10px;}
.panel[hidden]{display:none;}
.panel .field{margin-bottom:0;}
.frow{display:flex;flex-wrap:wrap;gap:10px;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:6px;font-size:13.5px;}
.cols{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;}
.cols-main,.cols-side{display:flex;flex-direction:column;gap:12px;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:12px;}
.card.rc{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:10px;}
.rc .ch{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;justify-content:space-between;}
.rc .ch h3{margin:0;font-size:16px;}
.rc .field{margin-bottom:0;}
.rc p{margin:0;}
.stack{display:flex;flex-direction:column;gap:10px;}
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
@container (max-width:600px){.g2{grid-template-columns:minmax(0,1fr);}}
.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chipb{border:1px solid var(--line-2);border-radius:999px;background:var(--sunken);padding:0 14px;font:inherit;font-size:13.5px;color:var(--ink);cursor:pointer;}
.chipb:hover{border-color:var(--accent-line);background:var(--accent-soft);}
.prev{border:1px solid var(--warn-line);background:var(--warn-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;}
.isec{border:1px solid var(--line);border-radius:8px;padding:4px 10px;display:flex;flex-direction:column;gap:6px;}
.sec-h{display:flex;justify-content:space-between;gap:8px;padding:6px 0;font-size:13px;}
.ln{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:4px 10px;align-items:center;padding:6px 0;border-top:1px solid var(--line);}
.ln-s{text-align:right;}
.ln-sub,.ln-w{grid-column:1/-1;margin-top:-2px;}
.ln-w summary{cursor:pointer;font-size:12.5px;color:var(--muted);}
.mk summary{cursor:pointer;font-size:12.5px;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:10px;padding-top:10px;border-top:2px solid var(--line-2);}
.tot form{margin:0;}
.amt{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;}
.btn.big{min-height:52px;font-size:16px;padding:0 22px;}
.bfold{border:1px solid var(--line);border-radius:8px;padding:0 12px;}
.bfold>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;}
.bfold .in{padding-bottom:12px;display:flex;flex-direction:column;gap:10px;}
.bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;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:10px;padding:0;border-bottom:0;font-size:inherit;line-height:inherit;margin-bottom:12px;}
/* S1: обычная .btn - как .btn.sec; .btn.dang, .err, .tab.cur */
.btn:not(.pri):not(.sec):not(:disabled){background:var(--surface);color:var(--ink-2);border-color:var(--line-2);}
.btn.dang:not(.pri):not(:disabled){border-color:var(--crit-line);color:var(--crit);}
.err{color:var(--crit);}
.tab.cur{background:var(--ink);color:var(--ground);border-color:var(--ink);font-weight:600;}
/* S1: широкая таблица на узком окне прокручивается внутри себя */
@media (max-width:900px){.tbl{display:block;overflow-x:auto;max-width:100%;}.tbl>tbody{display:table;width:100%;}.banner>div{min-width:0;}}
/* S1: цели на планшете - 44 px */
@media (pointer:coarse){
  .btn,.mini,.inp,.tab,.chipb,summary,.menu a,.menu button,.rail a{min-height:44px;}
}
.hits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.hit{padding:8px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;}
.hit:first-child{border-top:0;}
.hit-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline;}
.hit-p{font-variant-numeric:tabular-nums;white-space:nowrap;}
.hit-f{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;}
.hit-f form{display:flex;flex-wrap:wrap;gap:6px;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;}
