/* UPPETIT — веб-кабинет. Трек UI (18.10): адаптивный каркас, неразрывные числа, подсказки «?».
   Брейкпоинты: ≤1023 — сайдбар уезжает в меню (бургер), ≤719 — телефон (таблицы → карточки/скролл).
   Правила: суммы — .num/.r (nowrap, tabular), пояснения — макрос ui.hint (кружок «?»), шрифт не мельче 12px. */
:root{
  --bg:#f3f4f7; --surface:#ffffff; --surface2:#f7f8fa; --ink:#121826; --ink2:#374151; --muted:#667085; --line:#e4e7ec; --line2:#eef0f3;
  --brand:#0f766e; --brand-ink:#ffffff; --brand-soft:#e6f4f2;
  --hov-row:rgba(15,118,110,.06); --hov-cell-bg:#d9efeb; --hov-ring:rgba(15,118,110,.85); --hov-col:rgba(15,118,110,.62); --hov-row-bg:#eef6f5;
  --ok:#15803d; --ok-soft:#eaf7ee; --ok-line:#bfe5cb;
  --warn:#b45309; --warn-soft:#fff6e6; --warn-line:#f6d9a6;
  --mut:#475569; --mut-soft:#f1f4f8; --mut-line:#d9e0ea;
  --blue:#1d4ed8; --blue-soft:#e8f0fe; --blue-line:#cfdcfb;
  --danger:#b91c1c; --danger-soft:#fdecec; --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
  --radius:14px; --side:236px; --pad:28px; --top:56px; --pbh:0px;
  --font: ui-sans-serif, "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px); --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px);
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0d1117; --surface:#151a22; --surface2:#11161d; --ink:#e6e9ef; --ink2:#c3c9d4; --muted:#8b95a7; --line:#262d39; --line2:#1d232d;
  --brand:#2dd4bf; --brand-ink:#04211e; --brand-soft:#0f2a28;
  --hov-row:rgba(45,212,191,.07); --hov-cell-bg:#173b37; --hov-ring:rgba(45,212,191,.8); --hov-col:rgba(45,212,191,.6); --hov-row-bg:#14211f;
  --ok:#4ade80; --ok-soft:#10261a; --ok-line:#1f4a31; --warn:#fbbf24; --warn-soft:#2a2010; --warn-line:#5a4314;
  --mut:#a3b1c6; --mut-soft:#1a212c; --mut-line:#2c3646; --blue:#93b4ff; --blue-soft:#16233f; --blue-line:#24365e;
  --danger:#f87171; --danger-soft:#2a1416; --shadow:none;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.hidden{display:none!important}
h1,h2,h3{text-wrap:balance}
img{max-width:100%}

/* ---------- каркас ---------- */
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh;min-height:100dvh}
.side{position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 12px}
.logo{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;text-decoration:none}
.logo .mark{width:34px;height:34px;border-radius:10px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;letter-spacing:-.04em;flex:none}
.logo b{display:block;font-size:15px;letter-spacing:-.01em}.logo span{font-size:12px;color:var(--muted)}
.nav a{display:flex;align-items:center;gap:11px;min-height:40px;padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--ink2);font-weight:550;margin-bottom:2px}
.nav a:hover{background:var(--surface2)}
.nav a.on{background:var(--brand-soft);color:var(--brand)}
.nav svg{width:18px;height:18px;flex:none}
/* подразделы в меню (владелец 20.10): под разделом, открыт у текущего; стрелка — заглянуть в другой (открыт один).
   Линия «дерева» — под иконкой раздела, текст подразделов — по тексту раздела; отметка текущего — на самой линии. */
.nav-row{display:flex;align-items:center;border-radius:10px;margin-bottom:2px}
.nav-row > a{flex:1 1 auto;min-width:0;margin-bottom:0}
.nav-row.on{background:var(--brand-soft)}
.nav .nav-row.on > a{background:transparent}
.nav-tog{flex:none;width:34px;height:34px;margin-right:3px;display:grid;place-items:center;border:0;border-radius:8px;
  background:transparent;color:var(--muted);cursor:pointer}
.nav-row.on .nav-tog{color:var(--brand)}
.nav-tog svg{width:16px;height:16px;transition:transform .18s ease}
.nav-g.open .nav-tog svg{transform:rotate(180deg)}
.nav-sub{display:flex;flex-direction:column;margin:4px 0 8px 21px;padding-left:10px;border-left:1px solid var(--line)}
.nav .nav-sub a{display:block;position:relative;min-height:0;padding:6px 4px 6px 10px;line-height:18px;margin-bottom:1px;border-radius:8px;
  font-size:13px;font-weight:500;color:var(--ink2)}
.nav .nav-sub a.on{background:transparent;color:var(--brand);font-weight:600}
.nav .nav-sub a.cur{color:var(--brand)}
.nav .nav-sub a.cur::before{content:"";position:absolute;left:-11px;top:5px;bottom:5px;width:2px;border-radius:2px;background:var(--brand)}
.sec-h[id]{scroll-margin-top:16px}
.side .me{margin-top:auto;border-top:1px solid var(--line);padding:14px 8px 0;display:flex;align-items:center;gap:10px}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);display:grid;place-items:center;font-weight:700;color:var(--brand);text-decoration:none;flex:none}
.me .who{flex:1;min-width:0}.me .who b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me .who span{font-size:12px;color:var(--muted)}
.iconbtn{border:1px solid var(--line);background:transparent;border-radius:10px;width:40px;height:40px;display:grid;place-items:center;cursor:pointer;color:var(--muted);flex:none}
.iconbtn:hover{color:var(--danger);border-color:var(--danger)}
.iconbtn svg{width:18px;height:18px}
.main{padding:24px var(--pad) 48px;min-width:0}
.page{max-width:1680px}
.topbar,.scrim{display:none}

.entsw{margin:2px 4px 14px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:6px;background:var(--surface2)}
.entsw-h{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:2px 8px 4px;font-weight:700}
.entsw a{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:36px;padding:6px 9px;border-radius:8px;text-decoration:none;color:var(--ink2);font-weight:600;font-size:13.5px}
.entsw a.on{background:var(--brand);color:var(--brand-ink)}
.entsw a:not(.on):hover{background:var(--surface)}
.entsw .cnt{display:flex;gap:3px}.entsw .dotc{min-width:20px;height:20px;padding:0 5px}
.entsw a.on .dotc{background:rgba(255,255,255,.22)!important;color:inherit!important}

/* заголовок страницы */
.head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;margin-bottom:18px;flex-wrap:wrap}
.head > div:first-child{min-width:0;flex:1 1 380px}
.head h1{margin:0;font-size:26px;letter-spacing:-.02em;line-height:1.2;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}
.head p{margin:4px 0 0;color:var(--muted)}
.head .acts,.head .toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.sub-ent{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}

/* ---------- элементы ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}
.card.pad{padding:18px 20px}.card.pad h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;text-decoration:none;font-weight:600;white-space:nowrap;line-height:1.2}
.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.primary:hover{filter:brightness(1.07);color:var(--brand-ink)}
.btn:disabled,.btn[disabled],.btn.primary:disabled{background:var(--surface2);border-color:var(--line);color:var(--muted);cursor:not-allowed;filter:none}
.btn:disabled:hover{border-color:var(--line);color:var(--muted)}
.btn.sm{min-height:32px;padding:0 11px;font-size:13px;border-radius:8px}
.btn.xs{min-height:28px;padding:0 9px;font-size:12.5px;border-radius:7px}
.btn.danger:hover{border-color:var(--danger);color:var(--danger)}
.btn svg{width:15px;height:15px}
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px;flex-wrap:wrap;max-width:100%}
.seg a,.seg button{border:0;background:transparent;padding:7px 13px;border-radius:9px;cursor:pointer;font-weight:600;color:var(--ink2);display:flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap}
.seg a.on,.seg button.on{background:var(--brand);color:var(--brand-ink)}
.seg a.on .dotc{background:rgba(255,255,255,.22)!important;color:inherit!important}
.seg.sm a{padding:5px 10px;font-size:13px}
.dotc{min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:12px;font-weight:700;display:inline-grid;place-items:center}
.d-ok{background:var(--ok-soft);color:var(--ok)}.d-warn{background:var(--warn-soft);color:var(--warn)}.d-mut{background:var(--mut-soft);color:var(--mut)}.d-new{background:var(--blue-soft);color:var(--blue)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-weight:600;font-size:13px;color:var(--ink2)}
.input,.select{height:40px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:0 12px;outline:none}
.input{width:100%}
.input:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.select.sm,.input.sm{height:34px;font-size:13px;border-radius:8px;padding:0 9px}
input[type=date]{min-width:0}
input[type=date]::-webkit-date-and-time-value{text-align:left}
.alert{padding:10px 14px;border-radius:10px;margin-bottom:14px;font-weight:550}
.alert.err{background:var(--danger-soft);color:var(--danger)} .alert.ok{background:var(--ok-soft);color:var(--ok)}
.alert.warn{background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--ink);border-radius:12px;padding:9px 14px;margin:8px 0 12px;font-weight:500}
.alert.info{background:var(--surface);border:1px solid var(--line);color:var(--ink2);font-weight:500;padding:8px 14px}
.alert ul{margin:6px 0 0 18px;padding:0}
a.pulse{display:block;text-decoration:none;font-weight:700;animation:pulsebg 2s ease-in-out infinite}
@keyframes pulsebg{50%{filter:brightness(.95)}}
.muted{color:var(--muted)}
.tiny{font-size:12px;color:var(--muted);line-height:1.4}
.bad{color:var(--danger)}
.ok-c{color:var(--ok)}
.empty{padding:10px 2px;color:var(--muted)}
.card.empty,.card .empty{padding:16px 20px}
.foot{margin-top:24px;color:var(--muted);font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.nw{white-space:nowrap}
@media (max-width:719px){.lg-only{display:none}}
.r{text-align:right}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);margin:1px 2px 1px 0;white-space:nowrap}
.pill.ok{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok)}.pill.warn{border-color:var(--warn-line);background:var(--warn-soft);color:var(--warn)}
.tbl .pill{white-space:normal}
.st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.st-ok{background:var(--ok-soft);color:var(--ok)} .st-bad{background:var(--danger-soft);color:var(--danger)} .st-due{background:var(--warn-soft);color:var(--warn)}
.st-mut{background:var(--mut-soft);color:var(--mut)} .st-sub{background:var(--warn-soft);color:var(--warn)}
.entchip{display:inline-block;font-size:12px;font-weight:700;color:var(--ink2);background:var(--surface2);border:1px solid var(--line);border-radius:6px;padding:0 6px;margin-left:6px;vertical-align:1px;white-space:nowrap}
.src-tag{font-size:12px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 4px;white-space:nowrap}
.src-tag.own{color:var(--ok);border-color:var(--ok-line)}
.reqflag{color:var(--warn);font-weight:800;margin-left:6px;white-space:nowrap}
.newcp{display:inline-block;padding:1px 7px;border-radius:999px;background:#fff1e6;color:#b45309;font-size:12px;font-weight:700;vertical-align:middle;white-space:nowrap}
.freshtag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:700;background:var(--blue-soft);color:var(--blue);vertical-align:middle}
.exp{color:var(--brand);font-weight:650}
.linkbtn{border:0;background:none;color:var(--brand);font-weight:700;cursor:pointer;padding:0;font-size:13px}
.linkbtn:hover{text-decoration:underline}
.back{display:inline-flex;align-items:center;min-height:32px;margin-bottom:4px;color:var(--brand);font-weight:700;text-decoration:none}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.search{position:relative;flex:1 1 280px;max-width:560px}
.search svg{position:absolute;left:12px;top:11px;width:17px;height:17px;color:var(--muted)}
.search .input{padding-left:38px}
.pager{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.refresh{display:flex;align-items:center;gap:8px;margin:2px 0 6px;flex-wrap:wrap}
.legend{display:flex;align-items:center;gap:6px 10px;margin:4px 0 10px;flex-wrap:wrap}
.sd{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px}
.s-iiko{background:#3b82f6}.s-app{background:#a855f7}.s-bank{background:var(--brand)}.s-est{background:#f59e0b}
.dfmark{background:#fff7e0;border:1px solid #fde68a;border-radius:5px;padding:0 6px}
.lg{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px}

/* ---------- подсказка «?» (ui.hint) ---------- */
.qh{display:inline-flex;vertical-align:middle;line-height:1}
button.q{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;padding:0;margin:0 0 0 2px;border-radius:50%;border:1px solid var(--line);
  background:var(--surface2);color:var(--muted);font:700 12px/1 var(--font);cursor:help;flex:none;text-transform:none;letter-spacing:0}
button.q::after{content:"";position:absolute;inset:-10px}
button.q:hover,button.q[aria-expanded=true],button.q:focus-visible{color:var(--brand);border-color:var(--brand);background:var(--brand-soft);outline:none}
.hintpop{position:fixed;z-index:200;left:8px;top:8px;width:max-content;max-width:min(380px,calc(100vw - 16px));max-height:min(70vh,520px);overflow:auto;
  background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(16,24,40,.18);
  padding:12px 16px 13px;font-size:13.5px;line-height:1.55;font-weight:400;text-align:left;white-space:normal;text-transform:none;letter-spacing:0;
  overflow-wrap:break-word;text-wrap:pretty;overscroll-behavior:contain}
.hintpop .hint-t{font-weight:750;font-size:14px;line-height:1.35;margin:0 0 6px;color:var(--ink);text-wrap:balance}
.hintpop p{margin:0 0 7px}.hintpop > :last-child,.hintpop p:last-child,.hintpop ul:last-child{margin-bottom:0}
.hintpop ul{margin:2px 0 7px;padding-left:18px}.hintpop li{margin:3px 0}.hintpop li::marker{color:var(--muted)}
.hintpop b{font-weight:700}.hintpop .num{font-weight:700}
.hintpop .hp-x{display:none;position:absolute;top:8px;right:8px;width:36px;height:36px;border:0;background:var(--surface2);border-radius:10px;color:var(--ink2);
  font:500 22px/1 var(--font);cursor:pointer;place-items:center;padding:0}
/* телефон: лист снизу экрана (app.js ставит .sheet при ширине < 720px) */
.hintpop.sheet{left:0!important;right:0;top:auto!important;bottom:0;width:auto;max-width:none;max-height:min(72vh,600px);max-height:min(72dvh,600px);
  border-radius:18px 18px 0 0;border-width:1px 0 0;padding:18px 18px calc(20px + var(--sab));font-size:15px;line-height:1.55;box-shadow:0 -14px 44px rgba(16,24,40,.24)}
.hintpop.sheet .hp-x{display:grid}
.hintpop.sheet .hint-t{font-size:16.5px;margin-right:44px;min-height:28px}
.hintpop.sheet:not(.has-t) > :nth-child(2){margin-right:44px}
.hintpop table{width:100%;border-collapse:collapse;margin-bottom:8px}
.hintpop th{font-size:12px;color:var(--muted);text-align:right;padding:3px 6px;border-bottom:1px solid var(--line);font-weight:700}
.hintpop td{padding:4px 6px;text-align:right;border-bottom:1px solid var(--line2);white-space:nowrap}
.hintpop td:first-child,.hintpop th:first-child{text-align:left;white-space:normal}
.hintpop tr.sum td{font-weight:800}.hintpop .neg{color:var(--danger)}.hintpop .why{margin:4px 0;color:var(--ink2)}.hintpop .pop-h{font-weight:800;margin-bottom:8px}
.hintpop .tiny{font-size:12px}

/* ---------- плавная навигация (data-soft): полоска сверху, старое содержимое приглушено, если ответ дольше 0,14 с ---------- */
.softbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:300;background:var(--brand);opacity:0;pointer-events:none;border-radius:0 2px 2px 0}
.softbar.run{opacity:1;width:82%;transition:width 6s cubic-bezier(.08,.7,.2,1),opacity .1s}
.softbar.done{opacity:0;width:100%;transition:width .18s ease,opacity .25s .12s}
body.soft-busy [data-soft-region]{opacity:.55;transition:opacity .15s;pointer-events:none}
@media (prefers-reduced-motion:reduce){.softbar.run,.softbar.done{transition:none}}

/* ---------- плитки ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px;margin:16px 0;align-items:start}
.kpi{padding:16px 18px;position:relative;overflow:hidden;text-align:left;min-width:0}
a.kpi{text-decoration:none;color:inherit;display:block;cursor:pointer;transition:border-color .1s}
a.kpi:hover{border-color:var(--brand)}
.kpi .lbl{display:flex;align-items:center;gap:6px 8px;font-weight:650;color:var(--ink2);flex-wrap:wrap}
.kpi .num{display:block;font-size:clamp(24px,1.9vw,32px);font-weight:800;letter-spacing:-.02em;margin:6px 0 2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .num.sm{font-size:clamp(20px,1.6vw,26px)}
.kpi .sub{color:var(--muted);font-size:12.5px}
.kpi::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--line)}
.kpi.ok::after{background:var(--ok)}.kpi.warn::after{background:var(--warn)}.kpi.muted::after{background:var(--mut)}.kpi.all::after{background:var(--brand)}.kpi.new::after{background:#3b82f6}
.kpi.ok .num{color:var(--ok)}.kpi.warn .num{color:var(--warn)}.kpi.muted .num{color:var(--mut)}.kpi.new .num{color:var(--blue)}
.badge-ic{width:22px;height:22px;border-radius:7px;display:inline-grid;place-items:center;font-size:12px;font-weight:800;flex:none}
.ic-ok{background:var(--ok-soft);color:var(--ok)}.ic-warn{background:var(--warn-soft);color:var(--warn)}.ic-muted{background:var(--mut-soft);color:var(--mut)}.ic-all{background:var(--brand-soft);color:var(--brand)}.ic-new{background:var(--blue-soft);color:var(--blue)}
.fbars{margin-top:8px;display:grid;gap:5px}
.fb{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13.5px}
.fb > span{min-width:0}
.fb b{font-variant-numeric:tabular-nums;white-space:nowrap}
.fb.muted b{font-weight:600}
.gchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* ---------- заголовки секций ---------- */
.sec-h{display:flex;align-items:center;gap:6px 10px;margin:24px 0 10px;font-size:16px;font-weight:750;letter-spacing:-.01em;flex-wrap:wrap}
.sec-h .n{color:var(--muted);font-weight:650}
.sec-h .upl,.sec-h .end{margin-left:auto}
.sec-h .hint{font-weight:500;color:var(--muted);font-size:13px}
.sec-h.sm{font-size:14px;font-weight:700;margin:18px 0 8px}

/* ---------- таблицы ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:12px;font-weight:700;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:bottom}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--line2);vertical-align:top;font-variant-numeric:tabular-nums}
.tbl tr:last-child td{border-bottom:0}
.tbl td.r,.tbl th.r,table.mini .r{text-align:right;white-space:nowrap}
.tbl td.r .tiny,.tbl td.r small{display:block;white-space:normal;max-width:260px;margin-left:auto}
.tbl tr.tot td{font-weight:700;border-top:2px solid var(--line)}
.tbl td.bad{color:var(--danger)}
.tbl .b{font-weight:800}
table.mini{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
table.mini th{font-size:12px;color:var(--muted);text-align:left;padding:4px 8px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
table.mini td{padding:5px 8px;border-bottom:1px dashed var(--line2)}
.xs{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;overscroll-behavior-x:contain;
  background:linear-gradient(to left,var(--surface) 30%,transparent) right / 28px 100% no-repeat local,
    radial-gradient(farthest-side at 100% 50%,rgba(16,24,40,.16),transparent) right / 10px 100% no-repeat scroll}   /* тень справа — «есть ещё колонки» */
.xs > table{min-width:100%}
.cardtbl{padding:4px 8px}

/* сетка-таблица из div (.ctable/.crow) */
.ctable{overflow:hidden}
.crow{display:grid;gap:0 14px;align-items:center;padding:9px 16px;font-size:13.5px;min-width:0}
.crow > *{min-width:0}
.chead{font-size:12px;color:var(--muted);font-weight:700;border-bottom:1px solid var(--line);background:var(--surface2);padding-top:8px;padding-bottom:8px}
.chead > div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow .r{text-align:right;justify-self:end;white-space:nowrap}
.crow .r .tiny{display:block}
.crow .num{font-weight:700}
a.crow.link{color:inherit;text-decoration:none;border-bottom:1px solid var(--line2)}a.crow.link:hover{background:var(--surface2)}
.ctable > .crow:not(.chead) + .crow,.ctable > .crow:not(.chead) + details{border-top:1px solid var(--line2)}
.chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 8px;font-size:12px;font-weight:600;white-space:nowrap;margin-top:1px}
.chips > span{white-space:nowrap}
.sdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--line)}

/* ---------- ЭДО ---------- */
.tabs3{display:flex;gap:10px;margin:14px 0 12px;flex-wrap:wrap}
.tab3{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink2);font-weight:650;box-shadow:var(--shadow);flex-wrap:wrap}
.tab3 b{font-size:18px;font-variant-numeric:tabular-nums}.tab3 .tab-sub{color:var(--muted);font-weight:500;font-size:12.5px;white-space:nowrap}
.tab3.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft);color:var(--ink)}
.tab3.ok b{color:var(--ok)}.tab3.warn b{color:var(--warn)}.tab3.muted b{color:var(--mut)}
.dlist{padding:0;overflow:hidden}
.drow{display:grid;grid-template-columns:92px minmax(180px,1.1fr) minmax(160px,1.2fr) minmax(130px,1fr) minmax(110px,auto) minmax(180px,1.3fr) auto;gap:0 14px;align-items:center;padding:9px 16px;font-size:13.5px;border-bottom:1px solid var(--line2)}
.drow > *{min-width:0}
.drow:last-child{border-bottom:0}.drow:hover{background:var(--surface2)}
.drow .d-date{font-variant-numeric:tabular-nums;color:var(--ink2);font-weight:600;white-space:nowrap}
.drow .d-date .entchip{display:block;width:max-content;margin:2px 0 0}
.drow .d-amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.drow .d-acts{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.drow.pending .d-verdict{color:var(--muted)}
.pend{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--mut-soft);color:var(--mut);font-size:12px;font-weight:650}
.objtag{display:inline-block;vertical-align:middle;font-weight:650;font-size:12.5px;color:var(--ink2);background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:2px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border-radius:999px;padding:1px 8px;background:var(--surface2);border:1px solid var(--line);white-space:nowrap}
.mk-checked{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.mk-later{background:var(--blue-soft);color:var(--blue);border-color:var(--blue-line)}
.mk-question{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.mk-problem{background:var(--danger-soft);color:var(--danger);border-color:#f5c2c2}
.docpage{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;align-items:start;margin-top:12px}
.docpage .side-info{display:grid;gap:12px;min-width:0}
.preview{padding:12px;min-width:0}.pv-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}
.pv-page{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:6px;margin:0 0 10px;background:#fff}
.note{border-radius:12px;padding:11px 14px;font-size:13.5px;line-height:1.5;border:1px solid;min-width:0;overflow-wrap:anywhere}
.note h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.note.ok{background:var(--ok-soft);border-color:var(--ok-line)}.note.ok h4{color:var(--ok)}
.note.warn{background:var(--warn-soft);border-color:var(--warn-line)}.note.warn h4{color:var(--warn)}
.note.muted{background:var(--mut-soft);border-color:var(--mut-line)}.note.muted h4{color:var(--mut)}
.note.new{background:#f0f5ff;border-color:#cfdcfb}.note.new h4,.note.new .todo{color:var(--blue)}
.note.done{background:var(--surface2);border-color:var(--line2)}
.note.cp{background:var(--surface);border-color:var(--line)}.note.cp h4{color:var(--muted)}
.note.team{background:var(--surface);border-color:var(--line)}.note.team h4{color:var(--muted)}
.note .todo{display:flex;gap:7px;align-items:flex-start;margin-top:7px;font-weight:700}
.note.ok .todo{color:var(--ok)}.note.warn .todo{color:var(--warn)}.note.muted .todo{color:var(--mut)}
.note ul{margin:2px 0 0;padding-left:17px}.note li{margin:1px 0}
.tn{padding:5px 0;border-bottom:1px dashed var(--line2)}.tn:last-of-type{border-bottom:0}
.noteform{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;margin-top:8px}
.grp{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;border-radius:999px;padding:2px 9px;border:1px solid var(--line);
  text-decoration:none;white-space:nowrap;color:var(--ink2);background:var(--surface2)}
a.grp:hover{border-color:var(--brand);color:var(--brand)}
.grp.sel{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.grp-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.kind-sm{font-size:12.5px;color:var(--muted);font-weight:600}
dl.who{display:grid;grid-template-columns:130px minmax(0,1fr);gap:7px 14px;margin:2px 0 0;font-size:13.5px}
dl.who dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding-top:2px}
dl.who dd{margin:0;color:var(--ink);line-height:1.45;min-width:0;overflow-wrap:anywhere}
dl.who dd.lead{font-weight:750;font-size:14.5px}
dl.who dd.ok{color:var(--ok);font-weight:700}dl.who dd.bad{color:var(--danger);font-weight:700}
dl.who.sm{grid-template-columns:110px minmax(0,1fr);gap:4px 10px;font-size:13px;margin-bottom:6px}
dl.who.sm dd.lead{font-size:13.5px}
.attn{margin-top:10px;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:9px;padding:7px 10px;font-size:13px}
.ai{background:var(--brand-soft);border-radius:8px;padding:7px 10px;margin-bottom:7px;color:var(--ink);font-size:13px}

/* ---------- контрагенты ---------- */
.crow.cprow{grid-template-columns:minmax(240px,2fr) minmax(160px,1.4fr) minmax(150px,auto) minmax(170px,auto) minmax(80px,auto)}
.cprow .ell b{font-weight:700}
/* список контрагентов: цифры нейтральные (владелец v4 — «все цифры серым, тут не нужно цвета») */
.ctable.nostat .num{color:var(--ink2)}
.cpgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:16px;margin:14px 0;align-items:start}
.facts{display:grid;gap:5px}
.fact{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;color:var(--ink2);font-size:13px;overflow-wrap:anywhere}
.fact .fk{color:var(--muted);font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.04em;padding-top:1px}
.fact > span:only-child{grid-column:1/-1}
.scope{margin:-6px 0 10px}
.tree{padding:6px 14px}
.tnode>summary{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(70px,auto);align-items:center;gap:4px 14px;padding:10px 4px 10px 16px;cursor:pointer;list-style:none;border-bottom:1px solid var(--line2);position:relative}
.tnode>summary::-webkit-details-marker{display:none}
.tnode>summary::before{content:"▸";position:absolute;left:0;color:var(--muted)}
.tnode[open]>summary::before{content:"▾"}
.tnode>summary .tiny{white-space:nowrap;text-align:right}
.tnode.lvl2{margin-left:18px}.tnode.lvl2>summary{border-bottom:1px dashed var(--line2)}
.tnode .r{text-align:right;white-space:nowrap}
.tnode summary .objtag{justify-self:start}
.tnode>summary .pctpill{justify-self:start}
.shrow{display:grid;grid-template-columns:minmax(120px,240px) minmax(60px,1fr) 64px minmax(110px,auto) 76px;gap:12px;align-items:center;padding:7px 0 7px 22px}
.shrow .r{text-align:right;white-space:nowrap}
.bar{height:8px;background:var(--surface2);border-radius:99px;overflow:hidden;border:1px solid var(--line2)}.bar i{display:block;height:100%;background:var(--brand);border-radius:99px}
.pctpill{font-weight:800;font-size:12px;color:var(--brand);background:var(--brand-soft);border-radius:99px;padding:2px 8px;text-align:center;white-space:nowrap}
.months{display:flex;gap:8px;align-items:flex-end;height:150px;margin:6px 0 8px}
.mcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}.mcol span{font-size:12px;color:var(--muted)}
.mbars{flex:1;width:100%;display:flex;gap:3px;align-items:flex-end;justify-content:center}
.mbars i{display:block;width:42%;border-radius:4px 4px 0 0;min-height:2px}
.b-inv{background:#3b82f6}.b-bank{background:var(--brand)}
.mailrow{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line2);font-size:13px}
.mailrow:last-child{border-bottom:0}.mailrow .md{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}
.mailrow b{overflow-wrap:anywhere}
.mbox{font-size:12px;color:var(--muted);background:var(--surface2);border-radius:6px;padding:1px 6px;height:max-content;white-space:nowrap}
.forwhat{padding:8px 0;border-bottom:1px dashed var(--line2)}.forwhat:last-of-type{border-bottom:0}
.fw1{display:flex;gap:10px;justify-content:space-between;font-size:13.5px}.fwsum{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.fwbar{height:5px;background:var(--surface2);border-radius:3px;margin:5px 0 4px;overflow:hidden}.fwbar span{display:block;height:100%;background:var(--brand)}
.baltbl{padding:6px 18px}.balrow{padding:10px 0;border-bottom:1px solid var(--line2)}.balrow:last-child{border-bottom:0}
.balh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.balh > span:first-child{min-width:0}
.balsum{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:10px}
.balsum.warnc,.warnc{color:var(--warn)}
/* v5 (19.10): «в нашу пользу» — словом, серым, без цветов и минусов (аванс / переплата / депозит) */
.fav{color:var(--muted);white-space:nowrap}
.favbox{margin:0 0 16px}.favbox h3{margin:0 0 6px;display:flex;align-items:center;gap:6px}
.favrow,.actrow{padding:9px 0;border-bottom:1px solid var(--line2)}.favbox > :last-child{border-bottom:0}
.favh{display:flex;justify-content:space-between;align-items:baseline;gap:4px 10px;font-size:14px;flex-wrap:wrap}
.favh > b{min-width:0}
.favsum{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}
.actrow{font-size:13px;line-height:1.45}
.crow.ovrow{grid-template-columns:minmax(0,1fr) auto;align-items:start;row-gap:2px}.crow.ovrow .ell{white-space:normal}
.ovrow .ovtext{grid-column:1 / -1}

/* ---------- Финансы ---------- */
.accs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px;align-items:start}
.acc{padding:14px 16px;cursor:pointer;position:relative;display:block;min-height:44px}

.acc-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.acc-n{font-size:clamp(20px,1.6vw,24px);font-weight:800;letter-spacing:-.02em;margin:6px 0 2px;font-variant-numeric:tabular-nums;white-space:nowrap}
.acc-s{font-size:12.5px;color:var(--muted)}
.acc.stale .acc-n{color:var(--muted)}
.acc:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.acc.fit{border-color:var(--ok)} .acc.fit .acc-fit::before{content:" · хватит";color:var(--ok);font-weight:700}
.acc.nofit .acc-fit::before{content:" · не хватит";color:var(--danger);font-weight:700}
.acc-pick{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:13px;color:var(--ink2);font-weight:600}
.acc-pick input{width:18px;height:18px;margin:0;accent-color:var(--brand);flex:none}
.acc:has(input:checked) .acc-pick{color:var(--brand)}
.acc:has(input:checked) .acc-pick span::after{content:" ✓"}
.kpis.fin4{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.kpis.fin4 .num,.kpis.five .num.sm{font-size:clamp(20px,1.45vw,27px)}   /* сумма с копейками и «₽» влезает целиком */   /* та же сетка, что у счетов — края совпадают */
/* календарь и документы вне iiko: [✓][дата][получатель][что/документ][сумма][статус / реквизиты][назначение] */
.frow{grid-template-columns:28px 92px minmax(200px,1.7fr) minmax(130px,1fr) minmax(120px,auto) minmax(210px,1.3fr);column-gap:18px}
.frow .purp{grid-column:3 / -1;display:none;gap:8px;margin-top:6px}
.frow:has(.pick:checked){background:var(--brand-soft)}
.frow:has(.pick:checked) .purp{display:flex}
.frow .purp .input{height:34px;font-size:13px;flex:1;min-width:0}
.frow .purp .amt{flex:0 0 130px;text-align:right;font-variant-numeric:tabular-nums}
.frow.paid{opacity:.62}
.frow .pick,.pf-sup .pick,.pf-sup .pf-all,.pf-row .pick{width:18px;height:18px;margin:0;accent-color:var(--brand)}
.input.needfix{border-color:var(--warn);background:var(--warn-soft)}
.st-line{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}
/* накладные iiko: поставщик | накладных | просрочено | ближайший срок | не оплачено */
.irow{grid-template-columns:minmax(220px,1fr) 92px 104px 118px minmax(190px,auto)}
.isup{border-top:1px solid var(--line2)} .ctable > .chead + .isup{border-top:0}
.isup > summary{cursor:pointer;list-style:none} .isup > summary::-webkit-details-marker{display:none}
.isup > summary:hover,.isup[open] > summary{background:var(--surface2)}
.crow.inv{grid-template-columns:92px minmax(200px,1fr) 130px 150px 150px;font-size:13px;padding:6px 16px 6px 34px}
/* «По актам сверки» (владелец 19.10): две карточки рядом — «Мы должны» | «Переплаты — в нашу пользу»; узко — друг под другом */
.actpair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;margin-bottom:18px}
.acth{display:flex;justify-content:space-between;align-items:baseline;gap:6px 12px;flex-wrap:wrap;padding:12px 16px 10px;
  background:var(--surface2);border-bottom:1px solid var(--line)}
.acth b{font-size:14.5px}
.acth-sum{margin-left:auto;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.acth-sub{flex-basis:100%;color:var(--muted);font-weight:500}
.actpair .crow.ovrow{column-gap:12px}.actpair .ovrow .ell b{overflow-wrap:anywhere}
.actpair .ovtext{text-wrap:pretty}
@media (min-width:1100px){.actpair > .actcard{position:sticky;top:12px}}   /* короткая карточка едет рядом с длинной */
@media (max-width:1099px){.actpair{grid-template-columns:minmax(0,1fr)}}
.due-red{color:var(--danger)} .due-blue{color:var(--blue)} .due-grey{color:var(--ink2)} .due-green{color:var(--ok)}
/* ссылка «карточка» и пометки под поставщиком — нейтральные, не цвет статуса */
.isup .cardlnk{color:var(--muted);font-size:12px;font-weight:500;margin-left:6px;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
.isup .cardlnk:hover{color:var(--brand);text-decoration-color:currentColor}
.isup .nostat{color:var(--muted)}
.ilegend{display:flex;gap:6px 18px;flex-wrap:wrap;margin:4px 0 10px;font-size:13px}
.ilegend > span{white-space:nowrap}
.ilegend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:currentColor;margin-right:6px}
.oldtails{margin-top:12px} .oldtails summary{cursor:pointer;color:var(--muted);font-weight:600;padding:8px 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap;list-style:none}
.oldtails summary::-webkit-details-marker{display:none}.oldtails summary::before{content:"▸";color:var(--muted)}.oldtails[open] summary::before{content:"▾"}
.subline{margin:6px 2px;display:block}
/* оплата поставщикам (файл для банка) */
.pf-sup + .pf-sup{border-top:1px solid var(--line2)}
.pf-sup>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:24px minmax(220px,1.6fr) 84px minmax(130px,max-content) minmax(130px,auto) minmax(150px,1fr);gap:0 12px;align-items:center;padding:9px 16px}
.pf-sup>summary > *{min-width:0}
.pf-sup>summary::-webkit-details-marker{display:none}.pf-sup>summary:hover,.pf-sup[open]>summary{background:var(--surface2)}
.pf-row{display:grid;grid-template-columns:24px 24px 130px 92px minmax(140px,1fr) minmax(118px,max-content) 120px 120px minmax(190px,1.2fr);gap:0 10px;align-items:center;padding:6px 16px;font-size:13px;border-top:1px dashed var(--line2)}
.pf-row > *{min-width:0}
.pf-head{font-size:12px;color:var(--muted);font-weight:700;background:var(--surface2)}
.pf-row .r,.pf-sup .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pf-overdue{color:var(--danger);font-weight:700}.pf-soon{color:#2563eb;font-weight:700}.pf-later,.pf-nodue{color:var(--muted)}
.pf-dup{color:var(--danger);font-size:12px}.pf-off{opacity:.55}
.pf-acc{min-width:0;max-width:min(100%,440px)}
.pf-opts{display:flex;align-items:center;gap:8px;margin:12px 2px 0;color:var(--ink2)}
.pf-opts input{width:18px;height:18px;accent-color:var(--brand)}
/* липкая панель оплаты: фиксирована снизу, странице добавлен отступ на её высоту (app.js → --pbh) */
.paybar{position:fixed;left:var(--side);right:0;bottom:0;z-index:20;display:flex;gap:10px 16px;align-items:center;justify-content:flex-end;flex-wrap:wrap;
  padding:10px var(--pad) calc(10px + var(--sab));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(16,24,40,.08)}
.paybar .pb-sum{margin-right:auto;white-space:nowrap;font-size:14.5px}
.paybar .pb-sum b{font-variant-numeric:tabular-nums}
.paybar .pb-msg{flex:1 1 100%;order:9;font-size:12.5px;color:var(--warn);text-align:right}
.paybar .pb-msg:empty{display:none}
.paybar .pb-f{display:inline-flex;align-items:center;gap:8px;color:var(--muted);white-space:nowrap;margin:0}
.paybar .pb-f .input,.paybar .pb-f .select{width:auto}
.paybar .pb-note{color:var(--muted);font-size:13px}
body.has-paybar .main{padding-bottom:calc(var(--pbh) + 28px)}

/* ---------- PnL ---------- */
.pnlwrap{overflow:auto;padding:0;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
table.pnl{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
table.pnl th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--surface2);font-size:12px;color:var(--muted);text-align:right;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.pnl th.lbl,table.pnl td.lbl{text-align:left;position:-webkit-sticky;position:sticky;left:0;background:var(--surface);min-width:230px;max-width:300px;z-index:1;white-space:normal;border-right:1px solid var(--line2)}
table.pnl th.lbl{background:var(--surface2);z-index:3}
table.pnl td.lbl,table.pnl th.lbl{box-shadow:4px 0 6px -4px rgba(16,24,40,.18)}
.stick1 td:first-child,.stick1 th:first-child{position:-webkit-sticky;position:sticky;left:0;background:var(--surface);z-index:1;box-shadow:4px 0 6px -4px rgba(16,24,40,.15)}
table.pnl td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--line2);white-space:nowrap}
table.pnl td.tot,table.pnl th.tot{font-weight:800;background:var(--surface2)}
table.pnl tr.lv0 td{font-weight:800}
table.pnl tr.lv1 td.lbl{padding-left:22px}
table.pnl tr.lv2 td.lbl{padding-left:38px;color:var(--ink2)}
table.pnl tr.lv2 td{color:var(--ink2);font-size:12.5px}
table.pnl tr.grprow td{font-weight:700}
table.pnl tr.tot td,table.pnl tr.tot td.lbl{background:var(--surface2)}
table.pnl tr.net td,table.pnl tr.net td.lbl{background:var(--brand-soft);font-size:14px}
table.pnl tr.net2 td,table.pnl tr.net2 td.lbl{background:#f0f5ff;color:#1d4ed8}
table.pnl tr.pct td{color:var(--muted);font-style:italic;font-weight:500}
table.pnl td.df{background:#fff7e0!important}
table.pnl td.hasp{cursor:help}
table.pnl td .ukv{font-size:12px;color:#b45309;font-weight:600;line-height:1.1}
table.pnl td .pop{display:none}
@media (prefers-color-scheme: dark){table.pnl tr.net2 td,table.pnl tr.net2 td.lbl{background:#111a2c;color:#93b4ff}table.pnl td.df{background:#2e2310!important}.dfmark{background:#2e2310;border-color:#4a3714}}
.chk{display:grid;gap:16px;margin:16px 0;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));align-items:start}
.chk > *{min-width:0}.chk > .wide{grid-column:1 / -1}
.chk .stack{display:grid;gap:16px;align-content:start;min-width:0}
.chk .card.pad h3{margin-top:0}
.chk h3 + .tbl,.chk h3 + .xs{margin-top:2px}
.chk .blk + .blk{margin-top:18px}
.ent-h{display:flex;align-items:baseline;justify-content:space-between;gap:6px 12px;flex-wrap:wrap}

/* ---------- Зарплаты ---------- */
.sbar{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 12px}.sbar .pill{font-weight:600}
.kpis.six{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.kpis.six .num{font-size:clamp(20px,1.5vw,24px)}
.tsw{overflow:auto;padding:0;-webkit-overflow-scrolling:touch}
.ts{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
.ts th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface);font-size:12px;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.ts th:first-child{text-align:left}
.ts td{border-bottom:1px solid var(--line2);padding:7px 10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ts td.nm{position:-webkit-sticky;position:sticky;left:0;background:var(--surface);min-width:190px;padding-left:14px;border-right:1px solid var(--line2);white-space:normal}
.ts td.nm small,.ts td.r small{display:block;color:var(--muted);font-size:12px;font-weight:500}
.ts td.r{text-align:right}.ts .b{font-weight:800}
.ts tr.pr.warn td.nm{box-shadow:inset 4px 0 0 var(--warn)}.ts tr.pr.ok td.nm{box-shadow:inset 4px 0 0 var(--ok)}
.bal{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;align-items:start}
.bal .card h3{margin:0;padding:14px 18px 4px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:flex;align-items:center;gap:6px}
.bal .total{display:flex;justify-content:space-between;gap:10px;padding:10px 18px 14px;border-top:1px solid var(--line);font-weight:800}
.bal .total span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.unalloc{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin-top:14px;flex-wrap:wrap}
.unalloc .big{font-size:28px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.unalloc.ok{border-color:var(--ok-line)}
.issue{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:4px 16px;padding:10px 16px 10px 20px;margin-bottom:8px;position:relative;overflow:hidden}
.issue::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}
.issue.warn::before{background:var(--warn)}.issue.muted::before{background:var(--mut)}
.issue .k{font-weight:700}
/* форма выплат управляющего */
.pe-head{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:0 0 14px}
.pe-head .field{margin:0;flex:0 1 auto}
.pe-head .field .input{width:auto;min-width:160px}
.pe{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
.pe th{font-size:12px;color:var(--muted);font-weight:700;padding:8px 4px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;position:-webkit-sticky;position:sticky;top:0;background:var(--surface);z-index:1}
.pe td{border-bottom:1px solid var(--line2);padding:3px 3px;vertical-align:middle}
.pe input,.pe select{height:34px;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:0 6px;width:100%;font:inherit;color:inherit;min-width:0}
.pe input:focus,.pe select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.pe input:disabled,.pe select:disabled{background:var(--surface2);color:var(--ink2)}
.pe input.n{text-align:right;font-variant-numeric:tabular-nums;min-width:78px}
.pe input.nm{min-width:180px}
.pe input[type=date]{min-width:128px}
.pe td.calc{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;padding:3px 8px}
.pe tr.rm td{opacity:.45}
.pe tr.tot td{border-top:2px solid var(--line);font-weight:800}
.pe .neg{color:var(--danger)}
.pe-ctl{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;padding:12px 16px;margin-top:12px}
.pe-ctl > div:first-child{min-width:0;flex:1 1 280px}
.pe-ctl .big{font-size:24px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.pe-ctl.ok .big{color:var(--ok)}.pe-ctl.warn .big{color:var(--danger)}
#pectl{position:-webkit-sticky;position:sticky;bottom:calc(8px + var(--sab));z-index:15;box-shadow:0 -6px 24px rgba(16,24,40,.08)}
.pe-list td a{font-weight:700}
.pe-add{margin:8px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ---------- почта ---------- */
.mailgrid{display:grid;grid-template-columns:250px minmax(320px,460px);gap:16px;align-items:start}
.mailgrid.withmsg{grid-template-columns:230px minmax(300px,400px) minmax(0,1fr)}
.mfold{padding:8px 6px;min-width:0}
.mfold a{display:flex;align-items:center;gap:8px;min-height:34px;padding:6px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13.5px}
.mfold a:hover{background:var(--surface2)}.mfold a.on{background:var(--brand);color:var(--brand-ink)}
.mfold .fi{width:16px;text-align:center;opacity:.7}.mfold .fl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mfold .fu{font-size:12px;font-weight:700;background:var(--surface2);border-radius:10px;padding:0 7px;color:var(--ink2)}
.mfold a.on .fu{background:rgba(255,255,255,.25);color:#fff}
.mbox-h{font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--muted);padding:10px 10px 4px}
.mlist{padding:0;overflow:hidden}.msearch{display:flex;gap:8px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}
.msearch .input{flex:1}.mcount{padding:6px 14px}
.mrow{display:block;padding:9px 14px;border-bottom:1px solid var(--line2);color:var(--ink);text-decoration:none}
.mrow:hover{background:var(--surface2)}.mrow.on{background:#e8f3f1;box-shadow:inset 3px 0 0 var(--brand)}
.mr1{display:flex;gap:8px}.mfrom{flex:1;min-width:0;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mwhen{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.mr2{display:flex;gap:6px;font-size:13px;color:var(--ink2);margin-top:2px;min-width:0}.msubj{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mrow.unread .mfrom,.mrow.unread .msubj{font-weight:750;color:var(--ink)}
.mrow.unread{box-shadow:inset 3px 0 0 #3b82f6}
.mcp{font-size:12px;color:var(--brand);margin-top:3px;font-weight:600}
.mlist .pager{justify-content:center;padding:10px}
.mview{padding:0;overflow:hidden;position:sticky;top:16px;min-width:0}
.mvh{padding:14px 18px;border-bottom:1px solid var(--line)}.mvh h2{margin:6px 0 6px;font-size:19px;overflow-wrap:anywhere}
.mmeta{font-size:13px;margin-top:3px;overflow-wrap:anywhere}
.matts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.matt{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;text-decoration:none;color:var(--ink);background:var(--surface2);max-width:100%;overflow-wrap:anywhere}
.matt:hover{border-color:var(--brand)}
.mbody{width:100%;height:calc(100vh - 330px);height:calc(100dvh - 330px);min-height:420px;border:0;background:#fff;display:block}

/* ---------- админка, вход ---------- */
.grid2{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media (min-width:1440px){.grid2{grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr)}}
.checks{display:flex;flex-wrap:wrap;gap:8px 14px}.checks label{display:flex;gap:6px;align-items:center;font-weight:500;min-height:28px}
details.edit summary{cursor:pointer;color:var(--brand);font-weight:600;list-style:none;min-height:28px;display:flex;align-items:center}
details.edit[open]{background:var(--surface2);border-radius:10px;padding:10px;margin-top:6px}
.tmp{font:700 22px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;background:var(--surface2);border:1px dashed var(--line);border-radius:12px;padding:14px 18px;display:inline-block;user-select:all;overflow-wrap:anywhere}
.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:calc(24px + var(--sat)) 18px calc(24px + var(--sab));background:
  radial-gradient(1200px 600px at 20% -10%, rgba(15,118,110,.16), transparent 60%),
  radial-gradient(900px 500px at 110% 110%, rgba(15,118,110,.10), transparent 60%), var(--bg)}
.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:34px 30px 30px;box-shadow:0 20px 50px rgba(16,24,40,.08)}
.brand{display:flex;flex-direction:column;align-items:center;margin-bottom:26px}
.brand .b1{font-size:34px;font-weight:850;letter-spacing:.08em;color:var(--brand);line-height:1}
.brand .b2{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.remember{display:flex;gap:8px;align-items:center;margin:4px 0 18px;color:var(--ink2);min-height:32px}
.remember input{width:18px;height:18px}

/* ======================================================================
   ≤1279 — ноутбук со 125–150 %: колонки компактнее
   ====================================================================== */
@media (max-width:1279px){
  :root{--pad:22px}
  .drow{grid-template-columns:86px minmax(180px,1.4fr) minmax(130px,1fr) minmax(110px,.7fr) minmax(100px,auto) minmax(150px,1.2fr) auto}
  .mailgrid.withmsg{grid-template-columns:minmax(260px,360px) minmax(0,1fr)}.mailgrid.withmsg .mfold{display:none}
}

/* ======================================================================
   ≤1023 — сайдбар → выезжающее меню, верхняя панель с бургером
   ====================================================================== */
@media (max-width:1023px){
  :root{--pad:16px}
  .shell{display:block}
  .topbar{display:flex;align-items:center;gap:10px;position:-webkit-sticky;position:sticky;top:0;z-index:30;
    min-height:calc(var(--top) + var(--sat));padding:var(--sat) max(10px,var(--sar)) 0 max(10px,var(--sal));
    background:var(--surface);border-bottom:1px solid var(--line)}
  .topbar .burger{width:44px;height:44px;border:0;background:transparent;border-radius:10px;display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:none}
  .topbar .burger svg{width:24px;height:24px}
  .topbar .t-title{display:flex;align-items:center;gap:9px;font-weight:750;font-size:16px;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-decoration:none;color:var(--ink)}
  .topbar .t-title > span:last-child{overflow:hidden;text-overflow:ellipsis}
  .topbar .mark{width:30px;height:30px;border-radius:9px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
  .topbar .t-ent{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface2);
    font-weight:650;font-size:14px;color:var(--ink2);cursor:pointer;white-space:nowrap;max-width:46vw;overflow:hidden;text-overflow:ellipsis}
  .topbar .t-ent::after{content:"▾";font-size:12px;color:var(--muted)}
  .side{position:fixed;top:0;bottom:0;left:0;z-index:50;width:min(86vw,320px);height:auto;transform:translateX(-110%);transition:transform .22s ease,visibility 0s .22s;visibility:hidden;padding:calc(14px + var(--sat)) 12px calc(14px + var(--sab)) max(12px,var(--sal));overscroll-behavior:contain}
  body.nav-open .side{transform:none;visibility:visible;transition:transform .22s ease;box-shadow:0 0 40px rgba(0,0,0,.18)}
  body.nav-open{overflow:hidden}
  .scrim{display:block;position:fixed;inset:0;z-index:45;background:rgba(15,20,30,.38);opacity:0;pointer-events:none;transition:opacity .2s}
  body.nav-open .scrim{opacity:1;pointer-events:auto}
  .side .logo{padding-bottom:14px}
  .nav a{min-height:44px;font-size:15px}
  .nav .nav-sub a{padding:12px 10px;line-height:20px;font-size:15px}
  .nav .nav-sub a.cur::before{top:10px;bottom:10px}
  .nav-tog{width:44px;height:44px}
  .sec-h[id]{scroll-margin-top:calc(var(--top) + var(--sat) + 12px)}
  .entsw a{min-height:44px;font-size:15px}
  .main{padding:16px max(var(--pad),var(--sar)) 40px max(var(--pad),var(--sal))}
  .paybar{left:0;padding-left:max(var(--pad),var(--sal));padding-right:max(var(--pad),var(--sar))}
  .head h1{font-size:23px}
  .docpage{grid-template-columns:1fr}
  .mailgrid,.mailgrid.withmsg{grid-template-columns:1fr}
  .mfold,.mview{position:static;max-height:none}
  .mailgrid.withmsg .mlist{display:none}
  .mbody{height:70vh;height:70dvh;min-height:360px}
  /* iOS Safari зумит страницу при фокусе на поле с шрифтом < 16px */
  input:not([type=checkbox]):not([type=radio]),select,textarea,.input,.select,.input.sm,.select.sm,.pe input,.pe select{font-size:16px}
  .btn{min-height:42px}.btn.sm{min-height:40px;font-size:14px}.btn.xs{min-height:40px;font-size:13.5px;padding:0 12px}
  .card .btn{max-width:100%;white-space:normal;text-align:center}
  .input,.select{height:44px}.input.sm,.select.sm{height:40px}
  .seg a,.seg button{min-height:40px}.seg.sm a{min-height:40px;font-size:14px}
  .crow.cprow{grid-template-columns:minmax(200px,2fr) minmax(130px,auto) minmax(140px,auto)}.crow.cprow>:nth-child(2),.crow.cprow>:nth-child(5){display:none}
  .drow{grid-template-columns:minmax(0,1fr) auto;gap:3px 12px}
  .drow .d-cp{grid-column:1;grid-row:1}.drow .d-amt{grid-column:2;grid-row:1}
  .drow .d-doc{grid-column:1;grid-row:2;color:var(--ink2)}.drow .d-date{grid-column:2;grid-row:2;text-align:right;font-weight:500;font-size:13px}
  .drow .d-date .entchip{margin-left:auto}
  .drow .d-obj{grid-column:1/-1;grid-row:3}.drow .d-obj:empty{display:none}
  .drow .d-verdict{grid-column:1/-1;white-space:normal;color:var(--ink2);font-size:13px}
  .drow .d-acts{grid-column:1/-1;justify-content:flex-start;margin-top:4px}
}

/* ======================================================================
   ≤719 — телефон: таблицы → карточки или скролл внутри карточки
   ====================================================================== */
@media (max-width:719px){
  html,body{font-size:15px}
  :root{--pad:12px;--radius:12px}
  .main{padding-top:12px}
  .head{margin-bottom:12px}
  .head h1{font-size:21px}
  .head > div:first-child{flex-basis:100%}
  .head .acts,.head .toolbar,.head > .btn,.head > form,.head > .seg{width:100%}
  .head > .btn{justify-content:center}
  .sec-h{font-size:16px;margin:20px 0 8px}
  .card.pad{padding:14px}
  .tiny{font-size:12.5px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
  .kpis.fin4,.kpis.three{grid-template-columns:1fr}
  .kpis.six{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{padding:12px 14px}
  .kpi .num{font-size:22px}.kpi .num.sm{font-size:20px}.kpis.six .num{font-size:20px}
  .kpi .sub{font-size:12.5px}
  .accs{grid-template-columns:1fr;gap:8px}
  .acc{padding:10px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center}
  .acc-h{grid-column:1}.acc-n{grid-column:2;grid-row:1 / span 2;font-size:19px;margin:0;text-align:right}
  .acc-s{grid-column:1}.acc-pick{grid-column:1 / -1;margin-top:6px;padding-top:6px}
  .tabs3{gap:8px}.tab3{flex:1 1 30%;padding:6px 10px;gap:4px 6px;justify-content:center;text-align:center}
  .tab3 .badge-ic{display:none}
  .search{flex-basis:100%;max-width:none}
  .toolbar > .select{flex:1 1 45%;min-width:0}
  .seg{max-width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .seg::-webkit-scrollbar{display:none}
  .seg.wrap{flex-wrap:wrap}
  .noteform{grid-template-columns:1fr auto}.noteform .select{grid-column:1/-1}
  dl.who,dl.who.sm{grid-template-columns:1fr;gap:2px}
  dl.who dd{margin-bottom:6px}
  .fact{grid-template-columns:1fr;gap:0;margin-bottom:6px}
  .cpgrid,.chk{grid-template-columns:1fr}

  /* таблица → карточки (подпись: значение); подписи проставляет app.js из шапки */
  table.rt,table.rt > tbody,table.rt > tfoot,table.rt tr,table.rt td{display:block;width:100%}
  table.rt > thead,table.rt tr:has(> th){display:none}
  table.rt tr{padding:8px 2px;border-bottom:1px solid var(--line)}
  table.rt tr:last-child{border-bottom:0}
  table.rt td{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:2px 8px;padding:3px 0;border:0;text-align:right;white-space:normal}
  table.rt td::before{content:attr(data-label);color:var(--muted);font-size:13px;font-weight:500;text-align:left;flex:0 1 auto;margin-right:auto;padding-right:4px}
  table.rt.ts td.nm{position:static;min-width:0;max-width:none;border-right:0;box-shadow:none!important;padding-left:0}
  table.rt.ts tr.pr.warn{box-shadow:inset 3px 0 0 var(--warn);padding-left:10px}table.rt.ts tr.pr.ok{box-shadow:inset 3px 0 0 var(--ok);padding-left:10px}
  table.rt.ts td{padding:3px 0}
  .tsw:has(> table.rt){overflow:visible;padding:2px 14px}
  table.rt td:first-child{display:block;text-align:left;font-weight:700;padding-bottom:4px}
  table.rt td:first-child::before{display:none}
  table.rt td.r{white-space:nowrap}
  table.rt td.r .tiny,table.rt td.r small{display:inline;margin-left:6px}
  table.rt td:empty,table.rt td.e{display:none}
  table.rt td[colspan]{font-weight:500;color:var(--muted)}
  table.rt td:has(.pill){justify-content:flex-start}
  table.rt td:has(.pill)::before{flex-basis:100%;margin:0}
  table.rt tr.tot{background:var(--surface2);border-radius:10px;padding:8px 10px;margin-top:6px}
  .cardtbl{padding:2px 14px}

  /* div-таблицы */
  .chead{display:none}
  .crow{padding:10px 12px;font-size:14px}
  .frow{grid-template-columns:26px minmax(0,1fr) auto;gap:2px 10px;align-items:start}
  .frow > :nth-child(1){grid-column:1;grid-row:1 / span 3;padding-top:2px}
  .frow > :nth-child(3){grid-column:2;grid-row:1}
  .frow > :nth-child(5){grid-column:3;grid-row:1}
  .frow > :nth-child(4){grid-column:2;grid-row:2;font-size:13px}
  .frow > :nth-child(2){grid-column:3;grid-row:2;text-align:right;font-weight:500;font-size:13px;color:var(--ink2)}
  .frow > :nth-child(6){grid-column:2 / -1;grid-row:3;white-space:normal}
  .frow .purp{grid-column:1 / -1;grid-row:4;flex-wrap:wrap}
  .frow .purp .input:first-child{flex:1 1 100%}
  .frow .ell{white-space:normal}
  .frow .tiny.ell{white-space:nowrap}
  .irow{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:start}
  .irow > :nth-child(1){grid-column:1;grid-row:1;white-space:normal}
  .irow > :nth-child(5){grid-column:2;grid-row:1 / span 2}
  .irow > :nth-child(2),.irow > :nth-child(3),.irow > :nth-child(4){grid-column:1;font-size:13px;text-align:left;justify-self:start;font-weight:500}
  .irow > :nth-child(2){grid-row:2}.irow > :nth-child(3){grid-row:3}.irow > :nth-child(4){grid-row:4}
  .irow > [data-label]:not(:nth-child(1)):not(:nth-child(5))::before{content:attr(data-label) ": ";color:var(--muted)}
  .irow .chips{flex-direction:column;align-items:flex-end;gap:0}
  .crow.inv{grid-template-columns:auto minmax(0,1fr) auto;padding:7px 12px 7px 20px;gap:2px 10px;font-size:13px}
  .crow.inv > :nth-child(1){grid-column:1;grid-row:1}
  .crow.inv > :nth-child(2){grid-column:2;grid-row:1}
  .crow.inv > :nth-child(5){grid-column:3;grid-row:1}
  .crow.inv > :nth-child(4){grid-column:1 / 3;grid-row:2;font-size:12.5px}
  .crow.inv > :nth-child(3){grid-column:3;grid-row:2;font-size:12.5px;color:var(--muted);font-weight:500}
  .ctable.lv .crow{display:block}
  .ctable.lv .crow > :first-child{margin-bottom:4px;white-space:normal}
  .ctable.lv .crow > :not(:first-child){display:flex;justify-content:space-between;gap:12px;text-align:right;padding:2px 0}
  .ctable.lv .crow > :not(:first-child)::before{content:attr(data-label);color:var(--muted);font-weight:500;text-align:left}
  .ctable.lv .crow > :not(:first-child) .tiny{display:inline;margin-left:6px}
  .crow.chead{display:none!important}
  .crow.cprow{display:block}
  .crow.cprow > *{display:block}
  .crow.cprow > :nth-child(1){white-space:normal;margin-bottom:2px}
  .crow.cprow > :nth-child(2){font-size:13px;margin-bottom:4px}
  .crow.cprow > :nth-child(3),.crow.cprow > :nth-child(4){display:flex;justify-content:space-between;align-items:baseline;gap:10px;text-align:right}
  .crow.cprow > :nth-child(3)::before,.crow.cprow > :nth-child(4)::before{content:attr(data-label);color:var(--muted);font-weight:500;font-size:13px;margin-right:auto}
  .crow.cprow > :nth-child(3) .tiny,.crow.cprow > :nth-child(4) .tiny{margin-left:4px}
  .crow.cprow > :empty{display:none}
  .pf-sup>summary{grid-template-columns:24px minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;align-items:start}
  .pf-sup>summary > :nth-child(1){grid-column:1;grid-row:1 / span 2;padding-top:2px}
  .pf-sup>summary > :nth-child(2){grid-column:2;grid-row:1;white-space:normal}
  .pf-sup>summary > :nth-child(5){grid-column:3;grid-row:1}
  .pf-sup>summary > :nth-child(3){grid-column:3;grid-row:2;font-size:13px;color:var(--muted)}
  .pf-sup>summary > :nth-child(4){grid-column:2;grid-row:2;font-size:13px}
  .pf-sup>summary > :nth-child(6){grid-column:2 / -1;grid-row:3}
  .pf-sup>summary > :empty{display:none}
  .pf-row{grid-template-columns:24px minmax(0,1fr) auto;gap:2px 10px;padding:8px 12px;align-items:start}
  .pf-row.pf-head{display:none}
  .pf-row > :nth-child(1){display:none}
  .pf-row > :nth-child(2){grid-column:1;grid-row:1 / span 3;padding-top:2px}
  .pf-row > :nth-child(3){grid-column:2;grid-row:1}
  .pf-row > :nth-child(8){grid-column:3;grid-row:1}
  .pf-row > :nth-child(4){grid-column:2;grid-row:2;font-size:13px;color:var(--muted)}
  .pf-row > :nth-child(6){grid-column:3;grid-row:2;font-size:13px;text-align:right}
  .pf-row > :nth-child(5){grid-column:2;grid-row:3;font-size:13px}
  .pf-row > :nth-child(7){grid-column:3;grid-row:3;font-size:13px;color:var(--muted)}
  .pf-row > :nth-child(9){grid-column:2 / -1;grid-row:4}
  .pf-row > :empty{display:none}
  .tnode>summary{grid-template-columns:minmax(0,1fr) auto;padding-left:16px}
  .tnode>summary > :nth-child(3){grid-column:1 / -1;text-align:left}
  .tnode.lvl2{margin-left:8px}
  .tree{padding:4px 10px}
  .shrow{grid-template-columns:minmax(0,1fr) auto auto;padding-left:8px;gap:4px 10px}
  .shrow .bar{grid-column:1 / -1;grid-row:2}
  .shrow > :last-child{display:none}
  .months{gap:4px;height:120px}
  .baltbl{padding:4px 14px}
  .balsum{font-size:16px}
  .issue{grid-template-columns:1fr}

  /* липкая панель оплаты — 2 строки */
  .paybar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding-top:8px;padding-bottom:calc(8px + var(--sab))}
  .paybar .pb-sum{margin:0;font-size:14px;white-space:normal}
  .paybar .pb-hint{display:none}
  .paybar > .pb-note:only-child{grid-column:1 / -1}
  .paybar .pb-acc > span{display:none}
  .paybar .pb-f .input{height:40px;font-size:16px;max-width:148px;padding:0 8px}
  .paybar .pb-acc{grid-column:1}
  .paybar .pb-acc .select{width:100%;height:40px}
  .paybar .btn.primary{min-height:42px;padding:0 12px;white-space:normal;line-height:1.15;max-width:52vw}
  .paybar .pb-msg{grid-column:1 / -1;text-align:left;order:0}
  .paybar .pb-sum{grid-column:1;grid-row:1}
  .paybar .pb-f:not(.pb-acc){grid-column:2;grid-row:1}
  .paybar .pb-acc{grid-column:1;grid-row:2}
  .paybar .btn.primary{grid-column:2;grid-row:2}
  .paybar:not(:has(.pb-acc)) .btn.primary{grid-column:1 / -1;max-width:none}
  .paybar .pb-msg{grid-row:3}

  /* PnL — скролл с липкой шапкой и первой колонкой */
  .pnlwrap{max-height:72vh;max-height:72dvh;border-radius:12px}
  table.pnl{font-size:12.5px}
  table.pnl th.lbl,table.pnl td.lbl{min-width:150px;max-width:160px;font-size:12.5px}
  table.pnl tr.lv1 td.lbl{padding-left:14px}table.pnl tr.lv2 td.lbl{padding-left:22px}
  table.pnl td,table.pnl th{padding:6px 8px}
  /* люди / форма выплат */
  .ts td.nm{min-width:132px;max-width:150px}
  .pe-head .field{flex:1 1 45%}.pe-head .field .input{width:100%;min-width:0}
  .pe-head .btn{flex:1 1 100%}
  /* форма выплат на телефоне: строка сотрудника → карточка, поля в 2 колонки */
  .tsw.pewrap{overflow:visible;background:transparent;border:0;box-shadow:none}
  table.pe,table.pe > tbody,table.pe > tfoot{display:block;min-width:0}
  table.pe > thead{display:none}
  table.pe tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}
  table.pe td{display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:0;border:0;min-width:0}
  table.pe td::before{content:attr(data-label);font-size:12.5px;color:var(--muted);font-weight:600}
  table.pe td.wide,table.pe td:first-child{grid-column:1 / -1}
  table.pe td.calc{text-align:left;font-size:16px;padding:0}
  table.pe tbody td.calc{line-height:44px}
  table.pe tbody td.calc::before{line-height:1.3}
  table.pe td.calc:empty::after{content:"—";color:var(--muted);font-weight:500}
  table.pe input,table.pe select{height:44px;border-radius:9px;padding:0 10px}
  table.pe input.n,table.pe input.nm,table.pe input[type=date]{min-width:0}
  table.pe tfoot tr{background:var(--surface2)}
  table.pe tfoot td:empty,table.pe tfoot td.e{display:none}
  table.pe tfoot td:first-child{font-weight:800;display:block}
  table.pe tr.tot td{border-top:0}
  table.pe tfoot td:first-child::before{display:none}
  /* итог прибит к низу экрана во всю ширину (без щели, под которой видно поля); отступ под «полоску» iPhone */
  #pectl{bottom:0;margin:0 calc(-1 * var(--pad));border-radius:14px 14px 0 0;border-left:0;border-right:0;border-bottom:0;padding:10px var(--pad) calc(10px + var(--sab));gap:8px 10px}
  /* «Откуда взяли» и «Источник» — на всю ширину карточки, иначе адрес точки обрезается */
  table.pe tbody td:has(select[name=point]),table.pe tbody td:has(select[name=source]){grid-column:1 / -1}
  #pectl > div:first-child{flex:1 1 auto}
  #pectl .pe-why{display:none}
  #pectl .big{font-size:22px}
  #pectl .toolbar{width:100%;margin:0!important;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  #pectl .toolbar .btn{white-space:normal;line-height:1.15}
  .unalloc .big{font-size:24px}
  .auth-card{padding:28px 20px 24px}
}
@media (max-width:379px){.accs,.kpis{grid-template-columns:1fr}}
/* iOS Safari: клик по не-кнопкам доходит только с cursor:pointer; поле даты — ровная высота и выравнивание */
.scrim,table.pnl td.hasp{cursor:pointer}
@supports (-webkit-touch-callout:none){
  input[type=date]{-webkit-appearance:none;appearance:none;min-height:40px;display:block;line-height:1.2;padding-top:0;padding-bottom:0}
  input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}
  .pe input[type=date]{min-height:34px}
}
/* ---------- Долги между ИП (/debts) ---------- */
.dbt{margin-bottom:16px}
.dbt-h{display:flex;align-items:baseline;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;margin-bottom:12px}
.dbt-h h2{margin:0;font-size:18px;letter-spacing:-.01em}
.dbt-who{font-size:16px;font-weight:650}
.dbt-sub{display:flex;align-items:center;gap:6px;margin:18px 0 8px;font-weight:700;font-size:14px}
.dbt .ctable{border:1px solid var(--line);border-radius:12px;font-variant-numeric:tabular-nums}
.dbt-comp .crow,.dbt-months .crow{grid-template-columns:minmax(150px,.7fr) repeat(2,minmax(160px,1fr)) minmax(300px,1.2fr);column-gap:40px}
.dbt-tr .crow,.dbt-goods .crow,.dbt-cash .crow{column-gap:32px}
.dbt-tr .crow{grid-template-columns:100px minmax(170px,1fr) minmax(120px,auto) minmax(0,2.4fr)}
.dbt-goods .crow{grid-template-columns:minmax(120px,.8fr) minmax(170px,1fr) minmax(0,1.6fr) 90px minmax(120px,auto)}
.dbt-cash .crow{grid-template-columns:minmax(120px,.8fr) minmax(0,2fr) minmax(120px,auto)}
.crow.dbt-tot{font-weight:700;background:var(--surface2)}
.dbt-y{margin:12px 0 6px;color:var(--muted);font-weight:600;font-size:13px}
.dbt-quiet{color:var(--muted)}
.dbt-purp{white-space:normal;overflow-wrap:anywhere;color:var(--ink2)}
.dbt-more{margin-top:16px}
.dbt .oldtails summary > span{flex:1 1 0;min-width:0}
@media (max-width:719px){
  .dbt-h h2{font-size:17px}
  .dbt .ctable.lv .crow > :not(:first-child){justify-self:stretch;flex-wrap:wrap;align-items:baseline;column-gap:12px;white-space:normal}
  .dbt .ctable.lv .crow > :not(:first-child)::before{flex:0 1 auto;max-width:55%;margin-right:auto}
  .dbt .ctable.lv .crow > .r .tiny{display:block;flex-basis:100%;margin-left:0;text-align:right}
  .dbt .ctable.lv .crow > .dbt-purp,.dbt .ctable.lv .crow > .dbt-saldo{display:block;text-align:left}
  .dbt .ctable.lv .crow > .dbt-purp::before,.dbt .ctable.lv .crow > .dbt-saldo::before{display:block;margin-bottom:2px}
  .dbt .ctable.lv .crow > :empty{display:none}
}
@media (hover:none){.drow:hover,a.crow.link:hover,.mrow:hover{background:inherit}}

/* ---------- наведение мышью на таблицы (владелец 19.10: «при наведении на ячейку красиво менять цвет», все таблицы) ----------
   Клетка под курсором плавно (0,15 с) становится светло-бирюзовой с рамкой; строка — лёгкий тон поверх своей
   заливки (inset-тень). В матрицах (table[data-xh]: лист зп, PnL) — перекрестье контурами: строка и колонка
   обведены тонкими линиями, подпись строки — цветом и полоской слева, заголовок колонки — цветом и чертой снизу
   (app.js → .colh); заливки строк (зелёные/жёлтые) не мутнеют.
   Только мышь: на телефоне «залипающего» наведения нет. */
@media (hover:hover) and (pointer:fine){
  /* меню: подразделы (владелец 20.10) — строка раздела подсвечивается целиком, со стрелкой */
  .nav-row:not(.on):hover{background:var(--surface2)}
  .nav .nav-row > a:hover{background:transparent}
  .nav-tog:hover{color:var(--ink)}
  .nav .nav-sub a:hover{background:var(--surface2)}
  table :is(tbody,tfoot) tr > :is(td,th),table thead th{transition:box-shadow .15s ease,background-color .15s ease,color .15s ease}
  table :is(tbody,tfoot) tr:has(> td):hover > *{box-shadow:inset 0 0 0 999px var(--hov-row)}
  table :is(tbody,tfoot) tr:hover > td:hover{background-color:var(--hov-cell-bg);box-shadow:inset 0 0 0 2px var(--hov-ring)}
  table :is(tbody,tfoot) tr > td.sel,table :is(tbody,tfoot) tr:hover > td.sel{background-color:var(--hov-cell-bg);box-shadow:inset 0 0 0 2px var(--brand)}
  /* матрицы: строка и колонка — контуром, не заливкой (жёлтые/зелёные клетки не мутнеют, «Итого» не темнеет) */
  table[data-xh] :is(tbody,tfoot) tr:hover > *{box-shadow:inset 0 1px 0 var(--hov-col),inset 0 -1px 0 var(--hov-col)}
  table[data-xh] tbody tr:hover > :first-child{color:var(--brand);box-shadow:inset 3px 0 0 var(--brand),inset 0 1px 0 var(--hov-col),inset 0 -1px 0 var(--hov-col)}
  table[data-xh] td.colh{box-shadow:inset 1px 0 0 var(--hov-col),inset -1px 0 0 var(--hov-col)}
  table[data-xh] tr:last-child > td.colh{box-shadow:inset 1px 0 0 var(--hov-col),inset -1px 0 0 var(--hov-col),inset 0 -1px 0 var(--hov-col)}
  table[data-xh] th.colh{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand),inset 0 0 0 999px var(--hov-row)}
  table[data-xh] th.colh .tiny{color:var(--brand)}
  table[data-xh] :is(tbody,tfoot) tr:hover > td:hover{background-color:var(--hov-cell-bg);box-shadow:inset 0 0 0 2px var(--hov-ring)}
  .drow,a.crow.link,.ctable > .crow:not(.chead),.mrow{transition:background-color .15s ease}
  .drow:hover,a.crow.link:hover,.ctable > .crow:not(.chead):hover{background-color:var(--hov-row-bg)}
  .mrow:not(.on):hover{background-color:var(--hov-row-bg)}
  .pe-li{transition:box-shadow .15s ease}
  .pe-li:hover{box-shadow:inset 0 0 0 999px var(--hov-row)}
}
@media print{.side,.topbar,.paybar,.scrim{display:none!important}.shell{display:block}}
/* подраздел есть в меню слева — на ПК кнопка/ссылка в углу страницы не нужна (на телефоне меню спрятано — оставляем) */
@media (min-width:1024px){.nav-dup{display:none!important}}
/* (в конце файла — перекрывает .entsw/.logo/.nav выше) ноутбук с невысоким окном (2K при 150% с панелями браузера ≈ 840px): меню с открытыми подразделами помещается без прокрутки */
@media (min-width:1024px) and (max-height:940px){
  .side{padding-top:12px;padding-bottom:12px}
  .logo{padding-bottom:10px}
  .nav a{min-height:36px;padding-top:6px;padding-bottom:6px}
  .nav-tog{width:30px;height:30px}
  .entsw a{min-height:32px;padding-top:4px;padding-bottom:4px}
}
