/* Оформление в цвете морской волны — то же, что в прототипе. */
:root{
  --bg:#e5eded; --surface:#fff; --surface-2:#f2f8f8; --surface-3:#e4f0ef;
  --ink:#0c1d1f; --ink-2:#37585a; --muted:#6f9091; --line:#d2e2e0; --line-2:#b2cbc9;
  --brand:#0f6b6b; --brand-2:#15908b; --accent:#12a89c;
  --nav-bg:#08383e; --nav-1:#0e5259; --nav-2:#146a72; --nav-3:#1b8189;
  --ok:#1f7a53; --ok-bg:#dcf0e6; --bad:#ab3f3c; --bad-bg:#fae8e6;
  --info-bg:#def0ef; --focus:#1a9e97; --warn:#8a6414; --warn-bg:#f9f0d8;
  --shadow:0 1px 2px rgba(9,40,45,.07),0 4px 14px rgba(9,40,45,.06);
  --shadow-lg:0 10px 40px rgba(9,40,45,.20);
  --r:6px;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#061316; --surface:#0f2226; --surface-2:#152e33; --surface-3:#1c3c41;
    --ink:#dfeceb; --ink-2:#9fbebb; --muted:#6c8d8b; --line:#1e3c40; --line-2:#2f5459;
    --brand:#2aa19a; --brand-2:#3fbcb2; --accent:#4bd0bd;
    --nav-bg:#04141a; --nav-1:#082530; --nav-2:#0d3845; --nav-3:#124b5b;
    --ok:#46c189; --ok-bg:#0b2f23; --bad:#dd827a; --bad-bg:#341a18;
    --info-bg:#0f2a2c; --focus:#47c3b8; --warn:#d0a75c; --warn-bg:#2d2614;
    --shadow:0 1px 2px rgba(0,0,0,.45),0 4px 14px rgba(0,0,0,.35);
    --shadow-lg:0 10px 40px rgba(0,0,0,.6);
  }
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
     font-size:13.5px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-radius:3px}

/* ---------- СТРАНИЦА ВХОДА ---------- */
.login-page{display:grid;place-items:center;padding:24px}
.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
            box-shadow:var(--shadow-lg);padding:28px;width:min(400px,100%)}
.login-brand{margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.login-brand b{display:block;font-size:18px;font-weight:600;letter-spacing:-.01em}
.login-brand span{display:block;font-size:10.5px;text-transform:uppercase;
                  letter-spacing:.11em;color:var(--muted);margin-top:4px}
.login-error{background:var(--bad-bg);color:var(--bad);border-radius:4px;
             padding:9px 12px;font-size:12.5px;margin-bottom:16px}
.login-note{font-size:11.5px;color:var(--muted);line-height:1.5;margin:18px 0 0;
            padding-top:14px;border-top:1px solid var(--line)}

.f{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.f label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;
         color:var(--muted);font-weight:600}
.f input{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;
         padding:9px 10px;font-size:14px;width:100%}
.f input:focus{background:var(--surface);border-color:var(--focus);outline:none;
               box-shadow:0 0 0 2px var(--surface-3)}

.btn-primary{width:100%;background:var(--brand);border:1px solid var(--brand);color:#fff;
             border-radius:var(--r);padding:10px;font-size:14px;font-weight:500;
             cursor:pointer;margin-top:4px}
.btn-primary:hover{background:var(--brand-2);border-color:var(--brand-2)}
.btn-ghost{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
           padding:5px 11px;font-size:12px;cursor:pointer;color:var(--ink-2)}
.btn-ghost:hover{border-color:var(--line-2);color:var(--ink)}

/* ---------- КАРКАС ПРОГРАММЫ ---------- */
.app{display:grid;grid-template-columns:232px 1fr;height:100%;overflow:hidden}
.nav{background:var(--nav-bg);color:#fff;display:flex;flex-direction:column;overflow-y:auto}
.brand{padding:18px 16px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.brand b{display:block;font-size:14px;font-weight:600;color:#fff}
.brand span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.11em;
            color:rgba(255,255,255,.55);margin-top:3px}

.main{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.top{display:flex;align-items:center;gap:12px;background:var(--surface);
     border-bottom:1px solid var(--line);padding:10px 20px;flex:none}
.crumb b{font-size:14px;font-weight:600}
.top-sp{flex:1}
.who{font-size:12.5px;color:var(--ink-2);text-decoration:none}
.who:hover{color:var(--ink);text-decoration:underline}
.work{flex:1;overflow:auto;padding:20px}
.wrap{max-width:1100px;margin:0 auto}

h2.sec{font-size:15px;font-weight:600;margin:0 0 3px;text-wrap:balance}
p.sec{font-size:12.5px;color:var(--ink-2);margin:0 0 18px;max-width:66ch}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
      padding:12px 14px;box-shadow:var(--shadow)}
.tile .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;
         color:var(--muted);font-weight:600}
.tile .v{font-family:var(--mono);font-size:19px;font-weight:600;margin-top:5px}
.tile .v.small{font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.3}
.tile .s{font-size:11px;color:var(--muted);margin-top:3px}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
       box-shadow:var(--shadow);margin-bottom:16px}
.panel-hd{padding:12px 16px;border-bottom:1px solid var(--line)}
.panel-hd h3{margin:0;font-size:13px;font-weight:600}
.panel-bd{padding:16px}
.done-list{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-2);line-height:1.7}
.done-list li{margin-bottom:5px}

@media (max-width:900px){
  .app{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .nav{flex-direction:row;overflow-x:auto;align-items:center;padding:0 8px}
  .brand,.nav-note{display:none}
  .nav-list{display:flex;padding:6px 0;gap:2px}
  .nav-btn{white-space:nowrap;border-radius:4px;padding:7px 11px}
  .work{padding:14px 16px}
}

/* ═══════════════ ЭКРАНЫ ДДС ═══════════════ */

.wrap.wide{max-width:none}
a.nav-btn{text-decoration:none}
.nav-locked{opacity:.3;cursor:not-allowed}
.small{font-size:11.5px}
.mono{font-family:var(--mono);font-size:11.5px}
.dim{color:var(--muted)}
.neg,.out{color:var(--bad)}
.in{color:var(--ok)}
.sp{flex:1}

.msg{padding:10px 14px;border-radius:var(--r);font-size:12.5px;margin-bottom:16px;line-height:1.5}
.msg-ok{background:var(--ok-bg);color:var(--ok)}
.msg-bad{background:var(--bad-bg);color:var(--bad)}
.msg-info{background:var(--info-bg);color:var(--ink-2)}
.flash{padding:8px 20px;font-size:12.5px;border-bottom:1px solid var(--line)}
.flash-ok{background:var(--ok-bg);color:var(--ok)}

.panel-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.panel-hd .dim{font-size:11.5px}

/* ---------- Формы ---------- */
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 14px}
.fgrid .f{margin-bottom:0}
.f.span2{grid-column:span 2}
.f.span3{grid-column:1/-1}
.f.ro input{background:transparent;border-style:dashed;color:var(--muted)}
.f select,.f textarea{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;
                      padding:8px 9px;font-size:13px;width:100%}
.f select:focus,.f textarea:focus{background:var(--surface);border-color:var(--focus);outline:none;
                                  box-shadow:0 0 0 2px var(--surface-3)}
.f select:disabled,.f input:disabled{opacity:.5;cursor:not-allowed}
.f .hint{font-size:11px;color:var(--muted);line-height:1.4}
.f label .req{color:var(--bad)}
.num-input{font-family:var(--mono);text-align:right}
fieldset.grp{border:0;margin:0 0 18px;padding:0;min-width:0}
fieldset.grp>legend{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;font-weight:600;
                    color:var(--accent);padding:0 0 8px;width:100%;
                    border-bottom:1px solid var(--line);margin-bottom:12px}

.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface-2)}
.seg button{background:none;border:0;padding:7px 15px;cursor:pointer;font-size:12.5px;color:var(--ink-2)}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--brand);color:#fff;font-weight:500}
.seg.money button[aria-pressed="true"][data-op="Приход"]{background:var(--ok)}
.seg.money button[aria-pressed="true"][data-op="Расход"]{background:var(--bad)}

.btn{display:inline-block;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
     padding:7px 13px;cursor:pointer;font-size:12.5px;color:var(--ink);text-decoration:none}
.btn:hover{border-color:var(--line-2);background:var(--surface-3)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:500}
.btn.pri:hover{background:var(--brand-2);border-color:var(--brand-2)}
.btn.sm{padding:4px 10px;font-size:11.5px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}

.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}
.filters .f{min-width:140px;margin-bottom:0}
.filters .f select,.filters .f input{padding:5px 8px;font-size:12px}

/* ---------- Две колонки формы ---------- */
.form-2col{display:grid;grid-template-columns:1fr 280px;gap:18px;align-items:start}
.checker{position:sticky;top:0;display:flex;flex-direction:column;gap:12px}
.check-card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.check-card h4{margin:0;padding:9px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;
               color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);font-weight:600}
.check-bd{padding:11px 12px;font-size:11.5px;line-height:1.5}
.chain{list-style:none;margin:0;padding:11px 12px 6px;font-size:11.5px}
.chain li{display:flex;gap:7px;padding:3px 0;align-items:baseline}
.chain .k{color:var(--muted);flex:none;width:72px;font-size:10.5px;text-transform:uppercase}
.chain .v{color:var(--ink);font-weight:500;min-width:0;overflow-wrap:anywhere}
.chain .v.empty{color:var(--muted);font-weight:400;font-style:italic}
.verdict{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;font-size:12px;line-height:1.45}
.verdict.ok{background:var(--ok-bg);color:var(--ok)}
.verdict.wait{background:var(--info-bg);color:var(--ink-2)}
.verdict b{font-weight:600}

/* ---------- Поиск контрагента ---------- */
.ac{position:relative}
.ac-list{position:absolute;top:100%;left:0;right:0;z-index:20;margin-top:3px;max-height:260px;overflow:auto;
         background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-lg)}
.ac-item{display:block;width:100%;text-align:left;background:none;border:0;padding:7px 11px;cursor:pointer;
         font-size:12.5px;border-bottom:1px solid var(--line)}
.ac-item:hover,.ac-item:focus{background:var(--surface-2)}
.ac-item b{display:block;font-weight:500}
.ac-item span{font-size:11px;color:var(--muted)}
.ac-empty{padding:9px 11px;font-size:12px;color:var(--muted)}

/* ---------- Таблицы ---------- */
.tscroll{overflow:auto;border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:12.5px}
th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
thead th{background:var(--surface-2);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;
         color:var(--muted);font-weight:600;position:sticky;top:0;z-index:2;
         border-bottom:1px solid var(--line-2)}
tbody tr:hover{background:var(--surface-2)}
td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px}
td.wrap{white-space:normal;min-width:160px;max-width:280px}

.pill{display:inline-block;padding:1px 7px;border-radius:20px;font-size:10.5px;font-weight:600;white-space:nowrap}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.neutral{background:var(--surface-3);color:var(--ink-2)}

.bal-tbl tr.ent td{font-weight:600;background:var(--surface-2)}
.bal-tbl td.acc{padding-left:30px;color:var(--ink-2)}
/* Итоговая строка таблицы — в любой таблице, не только в остатках */
tr.tot td{font-weight:700;background:var(--surface-3);border-top:2px solid var(--line-2)}

@media (max-width:900px){
  .form-2col{grid-template-columns:1fr}
  .checker{position:static}
  .f.span2{grid-column:span 1}
}

/* ═══════════════ ВЕЧЕРНЕЕ ОФОРМЛЕНИЕ ПО ВЫБОРУ ═══════════════
   Медиа-запрос выше слушает настройку системы. Эти два блока
   нужны, когда человек выбрал оформление сам, кнопкой в шапке. */
:root[data-theme="dark"]{
  --bg:#061316; --surface:#0f2226; --surface-2:#152e33; --surface-3:#1c3c41;
  --ink:#dfeceb; --ink-2:#9fbebb; --muted:#6c8d8b; --line:#1e3c40; --line-2:#2f5459;
  --brand:#2aa19a; --brand-2:#3fbcb2; --accent:#4bd0bd;
    --nav-bg:#04141a; --nav-1:#082530; --nav-2:#0d3845; --nav-3:#124b5b;
  --ok:#46c189; --ok-bg:#0b2f23; --bad:#dd827a; --bad-bg:#341a18;
  --info-bg:#0f2a2c; --focus:#47c3b8; --warn:#d0a75c; --warn-bg:#2d2614;
  --shadow:0 1px 2px rgba(0,0,0,.45),0 4px 14px rgba(0,0,0,.35);
  --shadow-lg:0 10px 40px rgba(0,0,0,.6);
}
:root[data-theme="light"]{
  --bg:#e5eded; --surface:#fff; --surface-2:#f2f8f8; --surface-3:#e4f0ef;
  --ink:#0c1d1f; --ink-2:#37585a; --muted:#6f9091; --line:#d2e2e0; --line-2:#b2cbc9;
  --brand:#0f6b6b; --brand-2:#15908b; --accent:#12a89c;
  --nav-bg:#08383e; --nav-1:#0e5259; --nav-2:#146a72; --nav-3:#1b8189;
  --ok:#1f7a53; --ok-bg:#dcf0e6; --bad:#ab3f3c; --bad-bg:#fae8e6;
  --info-bg:#def0ef; --focus:#1a9e97;
  --shadow:0 1px 2px rgba(9,40,45,.07),0 4px 14px rgba(9,40,45,.06);
  --shadow-lg:0 10px 40px rgba(9,40,45,.20);
}

/* ═══════════════ ЦИФРЫ ═══════════════
   У шрифта IBM Plex Mono ноль нарисован с точкой внутри — в учётной
   программе это сбивает. Поэтому числа набираем обычным шрифтом
   с одинаковой шириной цифр: колонки выравниваются, ноль чистый. */
td.num, th.num, .tile .v, .mono, .num-input, .money {
  font-family: var(--sans);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "zero" 0;
}


/* ═══════════════ ПЛИТКИ РАЗДЕЛОВ ═══════════════ */
.blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.block{display:block;background:var(--surface);border:1px solid var(--line);
       border-left:3px solid var(--accent);border-radius:var(--r);padding:16px 18px;
       box-shadow:var(--shadow);text-decoration:none;color:inherit}
.block:hover{border-color:var(--line-2);border-left-color:var(--brand);box-shadow:var(--shadow-lg)}
.block b{display:block;font-size:15px;font-weight:600;margin-bottom:5px}
.block span{display:block;font-size:12px;color:var(--ink-2);line-height:1.5}
.block .links{margin-top:10px;font-size:11.5px;color:var(--muted)}
.block.soon{border-left-color:var(--line-2);opacity:.65}
.block.soon:hover{box-shadow:var(--shadow)}

.icon-btn{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
          min-width:32px;height:30px;cursor:pointer;color:var(--ink-2);padding:0 8px}
.icon-btn:hover{border-color:var(--line-2);color:var(--ink)}

/* ---------- Справочники: список слева ---------- */
.ro-wrap{border:0;margin:0;padding:0;min-width:0}

/* ---------- Справочник: путь к папке и плитки папок ---------- */
.dir-path{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:12px;
          color:var(--muted);margin-bottom:6px}
.dir-path a{color:var(--ink-2);text-decoration:none}
.dir-path a:hover{text-decoration:underline}
.dir-path b{color:var(--ink);font-weight:500}
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;padding:12px}
.folder{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);
        display:flex;flex-direction:column}
.folder:hover{border-color:var(--line-2)}
.folder.off{opacity:.6}
.folder-open{display:grid;grid-template-columns:22px 1fr;column-gap:8px;row-gap:2px;
             padding:10px 12px;text-decoration:none;color:var(--ink)}
.folder-open b{font-size:13px;font-weight:600}
.folder-open .small{grid-column:2}
.folder-ic{grid-row:span 2;width:20px;height:15px;margin-top:2px;border-radius:2px;
           background:var(--brand);opacity:.75;position:relative}
.folder-ic::before{content:"";position:absolute;left:0;top:-3px;width:9px;height:4px;
                   border-radius:2px 2px 0 0;background:inherit}
.folder-tools{display:flex;gap:6px;padding:0 12px 10px 42px;flex-wrap:wrap}
.folder-edit{padding:10px 12px}
.dict-lay{display:grid;grid-template-columns:238px 1fr;gap:16px;align-items:start}
.dict-list{list-style:none;margin:0;padding:5px;background:var(--surface);
           border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.dict-list a{display:flex;padding:6px 9px;border-radius:4px;font-size:12.5px;
             text-decoration:none;color:var(--ink-2);gap:8px;align-items:baseline}
.dict-list a:hover{background:var(--surface-2)}
.dict-list a[aria-current="true"]{background:var(--brand);color:#fff;font-weight:500}
.dict-list .n{margin-left:auto;font-size:10.5px;opacity:.7}

/* ---------- Повторяемые строки: банки, контакты ---------- */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);
      background:var(--surface-2);border-radius:20px;padding:4px 11px;font-size:12px;cursor:pointer}
.chip input{width:13px;height:13px;accent-color:var(--brand);margin:0;cursor:pointer}
.rep-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;
         padding:10px;border:1px solid var(--line);border-radius:var(--r);
         margin-bottom:8px;background:var(--surface-2)}
.rep-row .f{margin-bottom:0}

.ac-new{background:var(--info-bg);color:var(--brand-2);font-weight:500;
        display:block;text-decoration:none;border-bottom:1px solid var(--line)}
.ac-new:hover{background:var(--surface-3)}

@media (max-width:900px){.dict-lay{grid-template-columns:1fr}}

/* ---------- Панели настройки под таблицей ---------- */
.setup{border-bottom:1px solid var(--line);background:var(--surface-2)}

/* ---------- Фильтры под шапкой таблицы ---------- */
thead tr.colfilter th{top:29px;z-index:2;padding:4px 6px;text-transform:none;
                      letter-spacing:0;font-weight:400}
thead tr.colfilter select,thead tr.colfilter input{
  width:100%;min-width:86px;max-width:220px;background:var(--surface);
  border:1px solid var(--line);border-radius:3px;padding:3px 6px;
  font-size:11.5px;color:var(--ink)}
thead tr.colfilter .dim{font-size:10.5px}

/* ---------- Раскрытие компаний в остатках ---------- */
.tw{background:none;border:0;cursor:pointer;color:var(--muted);width:16px;
    padding:0;margin-right:6px;font-size:11px}
.tw:hover{color:var(--ink)}
.pill.warn{background:var(--warn-bg,#f9f0d8);color:var(--warn,#8a6414)}

/* Две даты «с» и «по» в одной ячейке фильтра */
thead tr.colfilter .range{display:flex;gap:3px}
thead tr.colfilter .range input{min-width:0;flex:1;font-size:10.5px;padding:3px 4px}

/* ═══════════════ СВОРАЧИВАНИЕ БЛОКОВ НА СТРАНИЦЕ ═══════════════

   Треугольник нарисован рамками, а не символом шрифта: таких знаков
   в шрифте нет, и на их месте появлялись пустые квадраты.           */

.caret{display:block;width:0;height:0;
       border-top:5px solid currentColor;
       border-left:4.5px solid transparent;
       border-right:4.5px solid transparent;
       transition:transform .14s ease}
[aria-expanded="false"] .caret{transform:rotate(-90deg)}
@media (prefers-reduced-motion:reduce){.caret{transition:none}}

.panel-hd h3{margin:0}
.panel-toggle{display:inline-flex;align-items:center;gap:9px;background:none;border:0;
              padding:2px 0;cursor:pointer;font:inherit;font-size:13px;font-weight:600;
              color:var(--ink);text-align:left}
.panel-toggle .caret{color:var(--brand-2)}
.panel-toggle:hover,.panel-toggle:hover .caret{color:var(--accent)}
.panel-hd{background:var(--info-bg);border-bottom:1px solid var(--line-2)}
.panel.collapsed .panel-hd{background:var(--surface-2);border-bottom:0}
.panel.collapsed .panel-toggle{color:var(--ink-2)}
.panel.collapsed .panel-toggle .caret{color:var(--muted)}
.panel.collapsed{box-shadow:none;border-style:dashed}

/* ═══════════════ ЛЕВОЕ МЕНЮ ═══════════════

   Всё выровнено по левому краю. Каждый следующий уровень светлее
   предыдущего — по оттенку сразу видно, насколько глубоко вы зашли. */

.nav{background:var(--nav-bg)}
.nav-list{list-style:none;margin:0;padding:0}
.nav-list.lvl-0{padding:8px 0;flex:1}
.nav-node{margin:0}
.nav-line{display:flex;align-items:stretch}

/* Треугольник — слева от названия, одной ширины у всех строк,
   чтобы названия стояли ровным столбцом */
.nav-caret{display:flex;align-items:center;justify-content:center;flex:none;
           width:22px;background:none;border:0;padding:0;cursor:pointer;
           color:rgba(255,255,255,.5)}
.nav-caret:hover{color:var(--accent)}
.nav-caret-empty{cursor:default}

.nav-btn{display:block;flex:1;min-width:0;background:none;border:0;
         padding:8px 14px 8px 0;text-align:left;text-decoration:none;
         color:rgba(255,255,255,.75);font-size:12.5px}
.nav-btn:hover{color:#fff}
.nav-locked{opacity:.3;cursor:default}

/* Верхний уровень: заглавными, чуть разреженно */
.lvl-0 > .nav-node > .nav-line .nav-btn{
  text-transform:uppercase;letter-spacing:.09em;font-size:11.5px;font-weight:600;
  color:rgba(255,255,255,.66);padding-top:10px;padding-bottom:10px}
.lvl-0 > .nav-node > .nav-line .nav-btn:hover{color:#fff}
.lvl-0 > .nav-node.branch-open > .nav-line .nav-btn{color:#fff}

/* Открытая ветка светлее — и сама строка, и всё, что внутри */
.lvl-0 > .nav-node.branch-open > .nav-line{background:var(--nav-1)}
.nav-kids > .nav-list.lvl-1{background:var(--nav-1)}
.nav-kids > .nav-list.lvl-2{background:var(--nav-2)}
.nav-kids > .nav-list.lvl-3{background:var(--nav-3)}

/* Вложенная открытая группа — на оттенок светлее своего уровня */
.lvl-1 > .nav-node.branch-open > .nav-line{background:var(--nav-2)}
.lvl-2 > .nav-node.branch-open > .nav-line{background:var(--nav-3)}

/* Отступ вложенных уровней, чтобы иерархия читалась */
.lvl-1 .nav-caret{width:30px}
.lvl-2 .nav-caret{width:42px}
.lvl-3 .nav-caret{width:54px}
/* Папки справочника вкладываются глубже — отступ растёт дальше, тон уже нет */
.nav-kids > .nav-list.lvl-4,.nav-kids > .nav-list.lvl-5,.nav-kids > .nav-list.lvl-6{background:var(--nav-3)}
.lvl-3 > .nav-node.branch-open > .nav-line,.lvl-4 > .nav-node.branch-open > .nav-line,
.lvl-5 > .nav-node.branch-open > .nav-line{background:var(--nav-3)}
.lvl-4 .nav-caret{width:66px}
.lvl-5 .nav-caret{width:78px}
.lvl-6 .nav-caret{width:90px}

/* Наведение и подсветка открытой страницы — на всю строку целиком,
   вместе с местом под треугольник. Иначе строка выглядит двухцветной. */
.nav-line:hover{background:rgba(255,255,255,.07)}
.nav-line-locked:hover{background:none}
.nav-line-current,
.nav-line-current:hover{background:rgba(255,255,255,.20);
                        box-shadow:inset 3px 0 0 var(--accent)}
.nav-line-current .nav-btn{color:#fff;font-weight:600}
.nav-line-current .nav-caret{color:rgba(255,255,255,.8)}

.brand{padding:18px 16px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.nav-note{padding:12px 16px 16px;font-size:11px;color:rgba(255,255,255,.38);
          border-top:1px solid rgba(255,255,255,.1);line-height:1.5}

/* ---------- Раскрытие компании в остатках ---------- */
.tw{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;
    cursor:pointer;width:18px;height:18px;padding:0;margin-right:6px;vertical-align:middle;
    color:var(--brand-2)}
.tw:hover{color:var(--accent)}


/* ═══════════════ ОТЧЁТ ДДС ═══════════════

   Первая колонка и шапка закреплены: при прокрутке вправо на сотню
   колонок видно, какая это строка, а при прокрутке вниз — какой месяц.
   Месяцы отделены друг от друга линией — три клетки Факт / План /
   Отклонение читаются как одна группа.                              */

.rep-scroll{overflow:auto;max-height:calc(100vh - 300px);border:1px solid var(--line);
            border-radius:var(--r);background:var(--surface)}
table.rep{font-size:12px;border-collapse:separate;border-spacing:0;width:auto;min-width:100%}
table.rep th,table.rep td{border-bottom:1px solid var(--line);padding:5px 9px}
table.rep thead th{position:sticky;z-index:3;background:var(--surface-2)}
table.rep thead tr:first-child th{top:0}
table.rep thead tr:last-child th{top:30px}
table.rep th.name,table.rep td.name{
  position:sticky;left:0;z-index:2;background:var(--surface);
  min-width:330px;max-width:330px;white-space:normal;border-right:1px solid var(--line-2)}
table.rep thead th.name{z-index:4;background:var(--surface-2)}
table.rep tbody tr:hover td,table.rep tbody tr:hover td.name{background:var(--surface-2)}
table.rep td.mgroup,table.rep th.mgroup{border-left:1px solid var(--line-2)}
table.rep th.mhead{text-align:center;font-size:10.5px;letter-spacing:.06em}
table.rep .lvl-0 td.name{font-weight:700;font-size:12.5px}
table.rep .lvl-0 td{background:var(--surface-3);border-bottom:1px solid var(--line-2)}
table.rep .lvl-1 td.name{font-weight:600}
table.rep .lvl-2 td.name{padding-left:26px}
table.rep .lvl-3 td.name{padding-left:42px;color:var(--ink-2)}
table.rep .lvl-4 td.name{padding-left:58px;color:var(--ink-2);font-style:italic}
table.rep .rowtype-check td{background:var(--info-bg);font-weight:600}
table.rep .rowtype-total td{background:var(--surface-3);font-weight:700;
                            border-top:2px solid var(--line-2)}
table.rep .hidden-row td.name{opacity:.55;font-style:italic}

/* Клетка, из которой раскрывается список операций */
.cell-drill{color:inherit;text-decoration:underline;text-decoration-style:dotted;
            text-underline-offset:2px;text-decoration-color:var(--line-2)}
.cell-drill:hover{color:var(--brand-2);text-decoration-color:var(--brand-2)}
.dev-pos{color:var(--ok)}
.dev-neg{color:var(--bad)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}

/* Треугольник раскрытия внутри отчёта — того же вида, что в меню */
.rep .tw{color:var(--muted)}
.rep .tw:hover{color:var(--ink)}
.rep .tw-leaf{display:inline-block;width:18px;margin-right:6px}

/* ═══════════════ ПАНЕЛЬ РАСШИФРОВКИ ═══════════════ */

.drawer-bg{position:fixed;inset:0;background:rgba(10,20,26,.45);z-index:50;border:0;padding:0}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(680px,100%);z-index:51;
        background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);
        display:flex;flex-direction:column}
.drawer-hd{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;gap:10px;
           align-items:flex-start}
.drawer-hd h3{margin:0 0 2px;font-size:13.5px;font-weight:600}
.drawer-hd p{margin:0;font-size:11.5px;color:var(--muted)}
.drawer-bd{flex:1;overflow:auto}
.drawer-note{padding:14px 18px;font-size:11.5px;color:var(--muted);
             border-top:1px solid var(--line);line-height:1.5}

/* ═══════════════ ПОЯСНЕНИЯ ═══════════════ */

.note{background:var(--info-bg);border-left:2px solid var(--brand-2);padding:10px 13px;
      border-radius:0 var(--r) var(--r) 0;font-size:12px;color:var(--ink-2);
      line-height:1.5;margin-bottom:16px}
.note b{color:var(--ink)}
.note.warn{border-left-color:var(--warn);background:var(--warn-bg)}
.note.bad{border-left-color:var(--bad);background:var(--bad-bg)}

/* ═══════════════ АВАНСОВЫЕ ОТЧЁТЫ ═══════════════ */

.adv-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:1px;
         background:var(--line);border:1px solid var(--line);border-radius:var(--r);
         overflow:hidden;margin-bottom:14px}
.adv-sum div{background:var(--surface-2);padding:10px 12px}
.adv-sum .k{font-size:10px;text-transform:uppercase;letter-spacing:.07em;
            color:var(--muted);font-weight:600}
.adv-sum .v{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:3px}
.adv-sum div.hl{background:var(--info-bg)}
.adv-doc{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;cursor:pointer;
         white-space:nowrap}
.adv-doc input{width:14px;height:14px;accent-color:var(--brand);margin:0;cursor:pointer}
tr.adv-off td{opacity:.42}
.ck-box{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}

/* Печать состояния документа — как штамп на бумаге */
.stamp{display:inline-block;border:1.5px solid var(--ok);color:var(--ok);border-radius:4px;
       padding:1px 8px;font-size:10.5px;font-weight:700;text-transform:uppercase;
       letter-spacing:.06em;white-space:nowrap}
.stamp.wait{border-color:var(--warn);color:var(--warn)}
.stamp.draft{border-color:var(--muted);color:var(--muted)}

/* ═══════════════ РОЛИ И ПРАВА ═══════════════ */

.perm-tbl td:first-child{white-space:normal;min-width:190px}
.perm-tbl td.ck,.perm-tbl th.ck{text-align:center;width:74px}
.perm-tbl input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}
.scope-tags{display:flex;gap:5px;flex-wrap:wrap}
.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.role-card{display:block;border:1px solid var(--line);border-radius:var(--r);padding:12px;
           background:var(--surface);cursor:pointer;text-align:left;text-decoration:none;
           color:inherit}
.role-card:hover{border-color:var(--line-2)}
.role-card[aria-current="true"]{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.role-card b{display:block;font-size:13px;margin-bottom:3px}
.role-card span{font-size:11.5px;color:var(--muted);line-height:1.45;display:block}

/* ═══════════════ ПЛАНОВЫЕ СУММЫ ═══════════════ */

.plan-tbl input{width:100%;min-width:82px;background:var(--surface-2);border:1px solid var(--line);
                border-radius:3px;padding:3px 6px;font-size:11.5px;text-align:right;
                font-variant-numeric:tabular-nums}
.plan-tbl input:focus{background:var(--surface);border-color:var(--focus);outline:none}
.plan-tbl td.name{white-space:normal;min-width:240px;max-width:300px;position:sticky;left:0;
                  background:var(--surface);border-right:1px solid var(--line-2);z-index:1}
.plan-tbl tbody tr:hover td.name{background:var(--surface-2)}

@media (max-width:900px){
  table.rep th.name,table.rep td.name{min-width:220px;max-width:220px}
  .drawer{width:100%}
}

/* Переключатель из ссылок — работает и без JavaScript */
.seg a{display:inline-block;padding:7px 15px;font-size:12.5px;color:var(--ink-2);text-decoration:none}
.seg a+a{border-left:1px solid var(--line)}
.seg a[aria-pressed="true"]{background:var(--brand);color:#fff;font-weight:500}

/* Небольшой выпадающий список прямо в шапке блока */
select.pick{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
            padding:5px 9px;font-size:12px;color:var(--ink)}
select.pick:focus{background:var(--surface);border-color:var(--focus);outline:none}

/* ═══════════════ ДЕЙСТВИЯ НАД СТРОКОЙ ТАБЛИЦЫ ═══════════════

   Шестерёнка в конце строки: нажали — выпало меню «Редактировать /
   Удалить». Сделано на <details>, поэтому работает и без JavaScript;
   скрипт только закрывает меню при щелчке мимо и по Esc.           */

.btn.danger{border-color:var(--bad);color:var(--bad)}
.btn.danger:hover{background:var(--bad-bg);border-color:var(--bad)}

/* Столбец с шестерёнкой прижат к правому краю и не уезжает при
   горизонтальной прокрутке: строк много, колонок тоже. */
th.rowact,td.rowact{position:sticky;right:0;z-index:1;width:46px;padding:2px 6px;
                    background:var(--surface);border-left:1px solid var(--line-2);
                    text-align:center}
thead th.rowact{z-index:3;background:var(--surface-2)}
tbody tr:hover td.rowact{background:var(--surface-2)}

.rowmenu{position:relative;display:inline-block}
.rowmenu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;
                 justify-content:center;width:26px;height:24px;border-radius:4px;
                 border:1px solid transparent;color:var(--muted)}
.rowmenu>summary::-webkit-details-marker{display:none}
.rowmenu>summary:hover{color:var(--brand-2);border-color:var(--line);background:var(--surface-2)}
.rowmenu[open]>summary{color:var(--brand);border-color:var(--line-2);background:var(--surface-3)}
.rowmenu>summary svg{width:15px;height:15px;display:block}

.rowmenu-pop{position:absolute;right:0;top:calc(100% + 3px);z-index:40;min-width:186px;
             background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);
             box-shadow:var(--shadow-lg);padding:4px;text-align:left}
.rowmenu-pop button,.rowmenu-pop a{display:block;width:100%;background:none;border:0;
             padding:7px 10px;border-radius:4px;font:inherit;font-size:12.5px;
             text-align:left;text-decoration:none;color:var(--ink);cursor:pointer;
             white-space:nowrap}
.rowmenu-pop button:hover,.rowmenu-pop a:hover{background:var(--surface-2)}
.rowmenu-pop .sep{height:1px;background:var(--line);margin:4px 2px}
.rowmenu-pop .del{color:var(--bad)}
.rowmenu-pop .del:hover{background:var(--bad-bg)}
.rowmenu-pop .why{display:block;padding:6px 10px;font-size:11px;color:var(--muted);
                  line-height:1.4;white-space:normal}

/* ---------- ОКНО ПЕЧАТИ ---------- */
.pdlg{border:0;padding:0;border-radius:var(--r);box-shadow:var(--shadow-lg);
      width:min(1180px,calc(100vw - 32px));height:calc(100vh - 40px);max-height:none;
      background:var(--bg);color:var(--ink);overflow:hidden}
.pdlg[open]{display:flex;flex-direction:column}
.pdlg::backdrop{background:rgba(10,20,26,.5)}
.pdlg-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;
         background:var(--surface);border-bottom:1px solid var(--line)}
.pdlg-title{font-size:13.5px;font-weight:600;margin-right:auto;min-width:0}
.pdlg-frame{flex:1;width:100%;border:0;background:var(--bg)}
td.docno{font-family:var(--mono);font-size:12px;white-space:nowrap}

/* ═══════════════ СЧЕТА НА ОПЛАТУ ═══════════════ */
/* Таблица с вертикальными линиями от шапки вниз */
table.lines th,table.lines td{border-right:1px solid var(--line)}
table.lines th:last-child,table.lines td:last-child{border-right:0}
.audit-tbl td.wrap{max-width:320px}
/* Части счёта */
.part{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);
      padding:10px 12px 12px;margin-bottom:10px}
.part-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px}
.part .f{margin-bottom:0}
.dropzone{display:block;border:2px dashed var(--line-2);border-radius:var(--r);padding:16px;
          text-align:center;color:var(--muted);cursor:pointer;font-size:12.5px}
.dropzone:hover,.dropzone.over{border-color:var(--focus);background:var(--info-bg);color:var(--ink-2)}
.file-list{list-style:none;margin:8px 0 0;padding:0;font-size:12.5px}
.file-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0;
              border-bottom:1px solid var(--line)}
.del-file{display:inline-flex;gap:5px;align-items:center;color:var(--bad);margin-left:auto}
.check-bd .kv{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:12px}
.check-bd .kv span{color:var(--muted)}
.check-bd .kv.neg span,.check-bd .kv.neg b{color:var(--bad)}
.money{font-variant-numeric:tabular-nums;white-space:nowrap}
fieldset.ro-wrap[disabled] input,fieldset.ro-wrap[disabled] select{opacity:.8}

/* ---------- Реестр счетов ---------- */
.breg-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:10px 12px;
          border-bottom:1px solid var(--line)}
.breg-bar .btn.on{background:var(--brand);border-color:var(--brand);color:#fff}
.breg-tot{display:flex;gap:18px;flex-wrap:wrap;padding:8px 12px;font-size:12px;color:var(--ink-2);
          border-bottom:1px solid var(--line)}
.breg-tot b{color:var(--ink);font-variant-numeric:tabular-nums}
.breg-wrap{overflow:auto;max-height:calc(100vh - 250px)}
table.breg{table-layout:fixed;border-collapse:separate;border-spacing:0;width:auto;font-size:12.5px}
table.breg th,table.breg td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
                            border-right:1px solid var(--line);border-bottom:1px solid var(--line);
                            padding:6px 8px}
table.breg thead th{position:sticky;top:0;z-index:3;text-transform:none;letter-spacing:0;
                    font-size:11px;color:var(--ink-2);height:34px}
table.breg th.filtered{background:var(--info-bg);color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
table.breg .thw{display:flex;align-items:center;gap:3px;min-width:0}
table.breg .thw span{flex:1;overflow:hidden;text-overflow:ellipsis}
table.breg th.num .thw span{text-align:right}
table.breg .rz{position:absolute;right:0;top:0;bottom:0;width:7px;cursor:col-resize;z-index:4}
table.breg .rz:hover,table.breg .rz.drag{background:var(--focus)}
table.breg th{position:sticky}
table.breg tbody tr{cursor:pointer}
table.breg tbody tr.stop td{color:var(--muted)}
table.breg tbody tr.partrow td{background:var(--surface-2);color:var(--ink-2);cursor:default}
table.breg tr.tot td{position:sticky;bottom:0;z-index:2}
table.breg td.act{padding:3px 2px;text-overflow:clip;text-align:center}
.fi{flex:none;border:0;background:none;padding:2px;cursor:pointer;color:var(--muted);opacity:.6;
    display:inline-grid;place-items:center;border-radius:3px}
.fi svg{width:11px;height:11px;display:block}
.fi:hover{opacity:1;background:var(--surface-3)}
.fi.on{opacity:1;color:#fff;background:var(--brand)}
.ib{border:0;background:none;padding:1px 3px;cursor:pointer;color:var(--ink-2);line-height:1;
    display:inline-grid;place-items:center;vertical-align:middle}
.ib svg{width:14px;height:14px}
.ib:hover{color:var(--brand-2)}
select.cellsel{width:100%;border:1px solid transparent;background:transparent;padding:1px 2px;
               font-size:12.5px;border-radius:3px;cursor:pointer;color:var(--ink)}
select.cellsel:hover,select.cellsel:focus{border-color:var(--line-2);background:var(--surface);outline:none}
select.cellsel.empty{color:var(--muted)}
.prio-mega{color:var(--bad);font-weight:700}
.prio-urg{color:var(--warn);font-weight:600}
.prio-stop{color:var(--muted);font-style:italic}
.overdue{color:var(--bad);font-weight:600}
/* Всплывающие окна реестра: фильтр колонки, меню строки, колонки */
.fpop{position:fixed;z-index:60;background:var(--surface);border:1px solid var(--line-2);
      border-radius:var(--r);box-shadow:var(--shadow-lg);padding:10px;width:290px;font-size:12.5px}
.fpop .vals{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:4px;
            padding:4px 6px;margin:6px 0}
.fpop .vals label{display:flex;gap:6px;align-items:center;padding:2px 0;cursor:pointer}
.fpop .vals label span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fpop .vals label em{font-style:normal;color:var(--muted);font-size:11px}
.fpop input[type=text],.fpop input[type=date],.fpop input[type=search]{width:100%;
      background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:5px 8px;font-size:12.5px}
.fpop .mode{display:flex;gap:4px;margin:6px 0 8px}
.fpop .f{margin-bottom:6px}
.fpop.menu{width:220px;padding:4px}
.fpop.menu a,.fpop.menu button{display:block;width:100%;background:none;border:0;padding:7px 10px;
      border-radius:4px;font:inherit;font-size:12.5px;text-align:left;text-decoration:none;color:var(--ink);cursor:pointer}
.fpop.menu a:hover,.fpop.menu button:hover{background:var(--surface-2)}
.fpop.menu .del{color:var(--bad)}
.fpop.menu .sep{height:1px;background:var(--line);margin:4px 2px}
.dlg{border:0;padding:0;border-radius:var(--r);box-shadow:var(--shadow-lg);background:var(--surface);
     color:var(--ink);width:min(560px,calc(100vw - 32px))}
.dlg::backdrop{background:rgba(10,20,26,.5)}
.dlg-hd{padding:12px 16px;border-bottom:1px solid var(--line);font-weight:600}
.dlg-bd{padding:14px 16px;max-height:70vh;overflow:auto}
.dlg-ft{padding:10px 16px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}
.colrow{display:flex;align-items:center;gap:8px;padding:4px 6px;border-bottom:1px solid var(--line);font-size:12.5px}
.colrow span{flex:1}
/* ---------- План на сегодня ---------- */
table.plan-day td{vertical-align:top;white-space:normal}
table.plan-day tr.billtop td{border-top:2px solid var(--line-2)}
table.plan-day td.nowrap{white-space:nowrap}
table.plan-day input.num-input{width:130px;background:var(--surface-2);border:1px solid var(--line);
      border-radius:4px;padding:4px 7px;font-size:12.5px}
/* ---------- Платёжный календарь ---------- */
.pv{display:grid;grid-template-columns:1.3fr 1fr 1.2fr .8fr;gap:12px}
.pbox{border:1px solid var(--line);border-radius:var(--r);padding:10px;background:var(--surface-2);min-height:80px}
.pbox h4{margin:0 0 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.pchip{display:flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--line);
       border-radius:4px;padding:3px 6px;margin-bottom:4px;font-size:12.5px}
.pchip span{flex:1}
.pbox details{background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:4px;font-size:12.5px}
.pbox summary{padding:4px 6px;cursor:pointer;display:flex;gap:6px;align-items:center}
.pbox summary span{flex:1}
.pbox .vals{max-height:200px;overflow:auto;padding:4px 8px;border-top:1px solid var(--line)}
.pbox .vals label{display:flex;gap:6px;align-items:center;padding:1px 0}
table.cal td.cell{cursor:pointer}
table.cal td.cell:hover{outline:1px solid var(--focus);outline-offset:-1px}
table.cal tr.bal td{background:var(--info-bg)}
table.cal tr.l0 td{font-weight:600;background:var(--surface-2)}
table.cal tr.l1 td{font-weight:600}
table.cal td.we,table.cal th.we{background:color-mix(in srgb,var(--surface-3) 70%,transparent)}
table.cal th.name,table.cal td.name{position:sticky;left:0;z-index:2;background:var(--surface);
      min-width:260px;max-width:320px;white-space:normal;border-right:1px solid var(--line-2)}
table.cal thead th.name{z-index:4;background:var(--surface-2)}
table.cal tr.bal td.name{background:var(--info-bg)}
table.cal tr.l0 td.name{background:var(--surface-2)}
@media (max-width:1000px){.pv{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.pv{grid-template-columns:1fr}}
.dlg input[type=text],.dlg input[type=date],.dlg input[type=search],.dlg select{
  background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:6px 8px;font-size:12.5px;color:var(--ink)}
.dlg .f input,.dlg .f select{width:100%}
.dlg .fl-in{flex:1;min-width:160px}
/* Ссылки в таблицах и вводе счетов читаются в обеих темах */
table.lines a,table.breg a,.plan-day a,.audit-tbl a,.dlg a{color:var(--brand-2)}
input.pick{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
           padding:5px 9px;font-size:12px;color:var(--ink);color-scheme:light dark}
input.pick:focus{background:var(--surface);border-color:var(--focus);outline:none}
input[type=date]{color-scheme:light dark}
table.rep.cal thead tr:last-child th,table.rep.cal thead tr:first-child th{top:0}
