/* Новый дизайн (v2) рабочих страниц: подключается сервером на russmann.ru (или по /v2/on) после app.css, m.css, mr.css и т. д.
   Логику страниц не трогает: перекрашивает токены app.css в палитру дизайн-системы (ds.css), выравнивает размеры и добавляет
   оболочку из v2.js (.v2-top, .v2-bnav, .v2-cmdk). Свои классы — только с префиксом v2-. */

/* ---------- 1. Токены: палитра дизайн-системы поверх токенов app.css ---------- */
:root{
  --paper:#F4F3EF; --panel:#FFFFFF; --ink:#171D20; --muted:#5E686C; --line:#E3E0D8; --grid:#EEECE6; --hover:#F6F5F1;
  --accent:#1F5F86; --accent-ink:#FFFFFF; --accent-soft:#E4EEF4; --sel:#D9782A; --plan:#98A3A7;
  --brand:#C42647; --brand-deep:#8E1D35;
  --side:#161D20; --side-ink:#D3DADC; --side-muted:#8A979B; --side-hi:rgba(255,255,255,.06);
  --c1:#2A78D6; --c2:#EB6834; --c3:#6250D6;
  --rent:#1F7A4D; --idle:#B8322A; --own:#7E868C; --repair:#9A6400; --nolease:#6A5A93; --mop:#98A39E;
  --tl-g:#1F7A4D; --tl-y:#9A6400; --tl-r:#B8322A;
  --r:14px; --r-sm:8px;
  --sh:0 1px 2px rgba(23,29,32,.05); --sh-lg:0 18px 50px rgba(15,20,22,.22);
  --v2-surface-2:#FAF9F6; --v2-surface-3:#EFEDE7; --v2-ok-soft:#E3F2E9; --v2-warn-soft:#FCF0D6; --v2-bad-soft:#FBE6E3; --v2-info-soft:#E6EEF8; --v2-info:#2D64A8;
  --v2-hero-a:#8E1D35; --v2-hero-b:#C42647;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0E1315; --panel:#161D20; --ink:#E7ECEB; --muted:#A3AEAD; --line:#2A353A; --grid:#222C30; --hover:#1B2428;
  --accent:#73B6DD; --accent-ink:#08161E; --accent-soft:#17303D; --sel:#F0A04F; --plan:#55666B; --brand:#E8607A; --brand-deep:#F08EA0;
  --side:#0A0E10; --side-ink:#D3DADC; --side-muted:#7F8B8F; --side-hi:rgba(255,255,255,.06);
  --c1:#3987E5; --c2:#D95926; --c3:#9085E9;
  --rent:#5CC08E; --idle:#EF7B6C; --own:#8E979C; --repair:#E3AC4C; --nolease:#9C8BC9; --mop:#6E7B76;
  --tl-g:#5CC08E; --tl-y:#E3AC4C; --tl-r:#EF7B6C;
  --sh:none; --sh-lg:0 18px 50px rgba(0,0,0,.6);
  --v2-surface-2:#1A2226; --v2-surface-3:#202A2E; --v2-ok-soft:#173226; --v2-warn-soft:#33281A; --v2-bad-soft:#3A1E1B; --v2-info-soft:#18283C; --v2-info:#7DB0EA;
  --v2-hero-a:#6E1427; --v2-hero-b:#A8304B;
}}
:root[data-theme="dark"]{
  --paper:#0E1315; --panel:#161D20; --ink:#E7ECEB; --muted:#A3AEAD; --line:#2A353A; --grid:#222C30; --hover:#1B2428;
  --accent:#73B6DD; --accent-ink:#08161E; --accent-soft:#17303D; --sel:#F0A04F; --plan:#55666B; --brand:#E8607A; --brand-deep:#F08EA0;
  --side:#0A0E10; --side-ink:#D3DADC; --side-muted:#7F8B8F; --side-hi:rgba(255,255,255,.06);
  --c1:#3987E5; --c2:#D95926; --c3:#9085E9;
  --rent:#5CC08E; --idle:#EF7B6C; --own:#8E979C; --repair:#E3AC4C; --nolease:#9C8BC9; --mop:#6E7B76;
  --tl-g:#5CC08E; --tl-y:#E3AC4C; --tl-r:#EF7B6C;
  --sh:none; --sh-lg:0 18px 50px rgba(0,0,0,.6);
  --v2-surface-2:#1A2226; --v2-surface-3:#202A2E; --v2-ok-soft:#173226; --v2-warn-soft:#33281A; --v2-bad-soft:#3A1E1B; --v2-info-soft:#18283C; --v2-info:#7DB0EA;
  --v2-hero-a:#6E1427; --v2-hero-b:#A8304B;
}
@media (prefers-reduced-motion:reduce){html.v2 *{animation:none!important;transition:none!important}}

/* ---------- 2. Типографика: минимум 12 px, без мелкого капса ---------- */
html.v2 body{font-size:14px;line-height:1.5}
html.v2 h2{font-size:24px;font-weight:650;letter-spacing:-.02em}
html.v2 .note{font-size:13px}
html.v2 th{font-size:12px;text-transform:none;letter-spacing:.01em;font-weight:600;color:var(--muted)}
html.v2 .tile small,html.v2 .kpi small,html.v2 h4.cap,html.v2 .inspector h4,html.v2 .nav h3,html.v2 .pfg,html.v2 .ngroup h6{font-size:12px;text-transform:none;letter-spacing:.01em}
html.v2 .pill,html.v2 .prio,html.v2 .mst,html.v2 .nnew,html.v2 .nbadge{font-size:12px}
html.v2 td .sub,html.v2 .plist .a,html.v2 th.rn,html.v2 td.rn{font-size:12px}

/* ---------- 3. Базовые элементы ---------- */
html.v2 .pane{border-radius:16px;box-shadow:var(--sh)}
html.v2 .btn{min-height:36px;padding:0 14px;border-radius:8px;font-weight:550;justify-content:center}
html.v2 .btn.sm{min-height:30px;padding:0 10px;font-size:13px;border-radius:7px}
html.v2 .btn.pri{box-shadow:0 1px 2px color-mix(in srgb,var(--accent) 30%,transparent)}
html.v2 .chipbtn{min-height:32px;padding:0 12px;font-size:13px;display:inline-flex;align-items:center;gap:6px}
html.v2 .seg{border-radius:8px;padding:2px;gap:2px;background:var(--v2-surface-3);border:0}
html.v2 .seg button{font-size:12.5px;padding:4px 10px;border-radius:6px;background:transparent;border:0!important;font-weight:550}
html.v2 .seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--line)}
html.v2 .field{font-size:13px;gap:6px}
html.v2 .field input,html.v2 .field select,html.v2 .field textarea{min-height:36px;padding:7px 12px;font-size:14px}
html.v2 .field textarea{min-height:80px}
html.v2 .tool{min-height:32px;border-radius:8px}
html.v2 .tile{border-radius:14px;padding:14px 16px;gap:4px}
html.v2 .tile b{font-size:24px;font-weight:650;letter-spacing:-.02em}
html.v2 .tile span{font-size:13px}
html.v2 .tile.warn::before,html.v2 .tile.tl-g::before,html.v2 .tile.tl-y::before,html.v2 .tile.tl-r::before{width:3px}
html.v2 .cards{gap:10px}
html.v2 .section{padding:16px 18px;gap:10px}
html.v2 .section h3{font-size:16px;font-weight:650}
html.v2 .page{gap:14px}
html.v2 .cols2{gap:14px}
html.v2 .cols2.masonry{column-gap:14px} html.v2 .cols2.masonry>.pane{margin-bottom:14px}
html.v2 .box,html.v2 .lease{border-radius:12px;background:var(--v2-surface-2)}
html.v2 .empty-state{padding:56px 16px;font-size:15px}
html.v2 .toast{border-radius:12px;padding:12px 18px}
html.v2 .pill{padding:3px 9px}
html.v2 .prio-high{background:var(--v2-bad-soft);color:var(--idle)}
html.v2 .bad,html.v2 .exp{color:var(--idle)}
html.v2 .soon{color:var(--repair)}

/* ---------- 4. Таблицы ---------- */
html.v2 .tablewrap{border-radius:14px}
html.v2 .pane .tablewrap{border-radius:10px}
html.v2 table{font-size:13.5px}
html.v2 th,html.v2 td{padding:9px 12px}
html.v2 table.compact th,html.v2 table.compact td{padding:6px 10px}
html.v2 th{background:var(--v2-surface-2)}
html.v2 thead.floating th{background:var(--v2-surface-2)}
html.v2 tbody tr:hover td{background:var(--hover)}
html.v2 tbody tr.click:hover td{background:var(--accent-soft)}
html.v2 tfoot td{background:var(--v2-surface-2)}
html.v2 .ttbar input{min-height:34px;font-size:13.5px;border-radius:8px;padding:0 12px}

/* ---------- 5. Окна ---------- */
html.v2 .drawer{background:rgba(10,14,16,.45);backdrop-filter:blur(2px)}
html.v2 .drawer>.dbody{padding:22px 24px}
html.v2 .drawer>.dbody>.dhead{margin:-22px -24px 0;padding:20px 24px 14px;top:-22px}
@media (min-width:900px){html.v2 body:not(.fmode):not(.dmode) .drawer>.dbody{border-radius:22px}}
html.v2 .drawer.center>.dbody{border-radius:22px}
html.v2 .dhead h2{font-size:20px}
html.v2 .cfm-box{border-radius:20px;padding:22px 24px}

/* ---------- 6. Вкладки внутри разделов ---------- */
html.v2 #view .tabs a{padding:10px 12px 12px;font-size:14px}
html.v2 #view .tabs a[aria-current="page"]::after{height:2px}

/* ---------- 7. Боковое меню ---------- */
@media (min-width:961px){html.v2 .shell .app{grid-template-columns:248px minmax(0,1fr)}}
html.v2 .side .tabs{padding:6px 8px 12px}
html.v2 .side-brand{padding:14px 14px 10px;border-bottom:0}
html.v2 .side-brand img{border-radius:9px}
html.v2 .ngroup{padding-top:6px}
html.v2 .ngroup h6{display:flex;align-items:center;gap:6px;padding:8px 10px 4px;margin:0;color:var(--side-muted);font-weight:550;cursor:pointer;user-select:none;border-radius:6px}
html.v2 .ngroup h6:hover{color:var(--side-ink)}
html.v2 .ngroup h6::after{content:"";margin-left:auto;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);opacity:.6;transition:transform .15s}
html.v2 .ngroup.v2-closed h6::after{transform:rotate(-45deg)}
html.v2 .ngroup.v2-closed a:not([aria-current="page"]){display:none}
html.v2 .side .tabs a{min-height:36px;padding:0 10px;font-size:14px;border-radius:8px}
html.v2 .side .tabs a[aria-current="page"]::before{left:-8px;top:8px;bottom:8px}
html.v2 .side .userbox{padding:12px 14px}
.v2-find{display:flex;align-items:center;gap:8px;min-height:34px;margin:0 10px 4px;padding:0 10px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:var(--side-muted);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.v2-find:hover{color:var(--side-ink);border-color:rgba(255,255,255,.18)}
.v2-find kbd{margin-left:auto;font:600 11px/1 var(--f-code);border:1px solid rgba(255,255,255,.14);border-radius:5px;padding:3px 5px;color:var(--side-muted)}
.v2-ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 8. Шапка страницы (v2.js) и полоса показателей ---------- */
html.v2 .main{padding:0 28px 32px;gap:16px}
.v2-top{position:sticky;top:0;z-index:12;display:flex;align-items:center;gap:10px;min-height:60px;margin:0 -28px;padding:10px 28px;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--grid)}
.v2-crumbs{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;font-size:13px;color:var(--muted)}
.v2-crumbs b{font-size:16px;color:var(--ink);font-weight:650;overflow:hidden;text-overflow:ellipsis}
.v2-acts{display:flex;align-items:center;gap:6px;flex:none}
.v2-ibtn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:9px;border:1px solid transparent;background:none;color:var(--muted);cursor:pointer}
.v2-ibtn:hover{background:var(--hover);color:var(--ink);border-color:var(--line)}
.v2-ibtn[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.v2-chipbtn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap}
.v2-chipbtn:hover{border-color:color-mix(in srgb,var(--muted) 45%,var(--line))}
.v2-chipbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
/* свежесть данных — индикатор в шапке */
html.v2 .v2-top .asof{margin:0;flex:none;max-width:44%;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:999px;background:var(--v2-ok-soft);color:var(--rent);font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;position:relative}
html.v2 .v2-top .asof::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 22%,transparent)}
html.v2 .v2-top .asof b{color:inherit}
html.v2 .v2-top .asof>span:not(:first-child){display:none}
html.v2 .v2-top .asof.warn{background:var(--v2-bad-soft);color:var(--idle)}
html.v2 .v2-top .asof.v2-open{position:absolute;right:28px;top:56px;max-width:min(560px,90vw);white-space:normal;flex-wrap:wrap;border-radius:14px;padding:12px 14px;box-shadow:var(--sh-lg);background:var(--panel);color:var(--ink);font-weight:500;border:1px solid var(--line)}
html.v2 .v2-top .asof.v2-open>span{display:inline!important}
html.v2 .v2-top .asof.v2-open::before{display:none}
/* полоса показателей: отдельные карточки; на рабочих разделах — только выбор месяца (раскрывается кнопкой «Показатели») */
html.v2 .kpis{position:static;background:none;border:0;box-shadow:none;gap:8px;overflow:visible;border-radius:0}
html.v2 .kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:9.5em;max-width:17em;gap:6px}
html.v2 .kpi:first-child,html.v2 .kpi{border-left:1px solid var(--line)}
html.v2 .kpi b{font-size:18px;font-weight:650;letter-spacing:-.02em}
html.v2 .kpi small{color:var(--muted);line-height:1.35}
html.v2 .kpi .kdir{color:var(--muted);font-weight:500}
html.v2 .kpi.period{background:var(--panel);max-width:none}
html.v2 .kpi.kclick:hover{background:var(--hover);border-color:color-mix(in srgb,var(--muted) 35%,var(--line))}
html.v2 .kpi.warn{box-shadow:inset 3px 0 0 var(--idle)}
html.v2 .kpi.tl-g,html.v2 .kpi.tl-y,html.v2 .kpi.tl-r{box-shadow:inset 3px 0 0 var(--tlc)}
html.v2 .kpi.period select{min-height:30px;border-radius:7px}
html.v2 body.v2-lean:not(.v2-kpi) .kpis .kpi:not(.period){display:none}
html.v2 body.v2-lean:not(.v2-kpi) .kpis .kpi.period{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 12px}
html.v2 body.v2-lean:not(.v2-kpi) .kpis .kpi.period>small{display:none}
html.v2 .fback{border-radius:12px}

/* ---------- 9. Поиск по разделам (Ctrl K) ---------- */
.v2-cmdk-wrap{position:fixed;inset:0;z-index:80;background:rgba(10,14,16,.45);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;animation:fadeIn .15s ease}
.v2-cmdk{width:min(600px,100%);background:var(--panel);color:var(--ink);border-radius:20px;box-shadow:var(--sh-lg);overflow:hidden;border:1px solid var(--line)}
.v2-cmdk .q{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--grid)}
.v2-cmdk .q input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:18px;color:var(--ink);outline:none}
.v2-cmdk .res{max-height:min(420px,60vh);overflow:auto;padding:6px}
.v2-cmdk .gt{font-size:12px;color:var(--muted);font-weight:600;padding:10px 12px 4px}
.v2-cmdk a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:14px}
.v2-cmdk a .ic{width:18px;height:18px;opacity:.75}
.v2-cmdk a[aria-selected="true"],.v2-cmdk a:hover{background:var(--accent-soft)}
.v2-cmdk a span{margin-left:auto;font-size:12px;color:var(--muted)}
.v2-cmdk .none{padding:24px;text-align:center;color:var(--muted)}

/* ---------- 10. Телефон: нижняя панель, компактная шапка ---------- */
.v2-bnav{display:none}
@media (max-width:960px){
  html.v2 body.shell .mbar{display:none}
  html.v2 .main{padding:0 16px 96px;gap:12px}
  .v2-top{margin:0 -16px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;min-height:56px}
  .v2-crumbs .v2-grp{display:none}
  html.v2 .v2-top .asof{max-width:38%}
  html.v2 .v2-top .asof.v2-open{right:12px;left:12px;top:52px}
  .v2-bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .v2-bnav a,.v2-bnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;padding:4px 2px;border:0;background:none;color:var(--muted);font:inherit;font-size:11.5px;font-weight:550;text-decoration:none;cursor:pointer;border-radius:12px;position:relative}
  .v2-bnav .ico{display:grid;place-items:center;width:54px;height:30px;border-radius:15px;position:relative}
  .v2-bnav .ico .v2-ic{width:23px;height:23px}
  .v2-bnav [aria-current="page"]{color:var(--brand)}
  .v2-bnav [aria-current="page"] .ico{background:color-mix(in srgb,var(--brand) 14%,transparent)}
  .v2-bnav .bd{position:absolute;top:-3px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;border:2px solid var(--panel)}
  /* показатели на телефоне: лента карточек, раскрывается кнопкой */
  html.v2 .kpis{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px}
  html.v2 .kpis::-webkit-scrollbar{display:none}
  html.v2 .kpi{flex:0 0 auto;min-width:min(62vw,240px);max-width:none;scroll-snap-align:start;border-top:1px solid var(--line)!important}
  html.v2 .kpi.period{min-width:min(86vw,340px)}
  html.v2 body.v2-lean:not(.v2-kpi) .kpis{overflow:visible}
  html.v2 body.v2-lean:not(.v2-kpi) .kpis .kpi.period{flex:1 1 auto;min-width:0}
  html.v2 .side{width:288px}
  html.v2 .btn{min-height:42px} html.v2 .btn.sm{min-height:34px}
  html.v2 .chipbtn{min-height:36px}
  html.v2 .field input,html.v2 .field select{min-height:44px;font-size:16px}
  html.v2 h2{font-size:21px}
}
/* приложения учредителя и директора, кабинет бухгалтера — своя оболочка */
html.v2 body:is(.fmode,.dmode,.bmode) .v2-top,html.v2 body:is(.fmode,.dmode,.bmode) .v2-bnav{display:none!important}
html.v2 body:is(.fmode,.dmode) .main{padding:0}

/* ---------- 11. Учредитель и директор (/f, /d): герой — цвета бренда ТКФ ---------- */
html.v2 body.fmode{--f-wine:var(--v2-hero-a);--f-wine2:var(--v2-hero-b);--f-r:20px}
html.v2 .fhero{border-radius:22px;background:linear-gradient(140deg,var(--v2-hero-a),var(--v2-hero-b))}

/* ---------- 12. Мобильные кабинеты /m и /a ---------- */
html.v2 body.mob{background:var(--paper)}
html.v2 .mtop{background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--grid)}
html.v2 .mtitle b{font-size:18px;font-weight:650}
html.v2 .mcard{border-radius:16px;padding:14px 16px}
html.v2 .mcard .tx{font-size:16px}
html.v2 .mst{background:var(--grid);color:var(--ink)}
html.v2 .mst.st-new{background:var(--v2-warn-soft);color:var(--repair)}
html.v2 .mst.st-approval{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand)}
html.v2 .mst.st-work,html.v2 .mst.st-fixed{background:var(--accent-soft);color:var(--accent)}
html.v2 .mst.st-review{background:color-mix(in srgb,var(--c3) 16%,transparent);color:var(--c3)}
html.v2 .mst.st-done{background:var(--v2-ok-soft);color:var(--rent)}
html.v2 .mbanner{border-radius:14px}
html.v2 .mfab{background:var(--accent);color:var(--accent-ink);border-radius:26px;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 40%,transparent)}
html.v2 .mico{border-radius:12px}

/* ---------- 13. Показания /mr ---------- */
html.v2 .mrtop{background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--grid)}
html.v2 .mrtop b{font-size:18px}
html.v2 .mrbig{border-radius:14px;min-height:56px}
html.v2 .mrlist>button{border-radius:14px;min-height:60px}
html.v2 .mrcard{border-radius:18px}
html.v2 .mrsearch{border-radius:10px;min-height:48px}

/* ---------- 14. Пост охраны ---------- */
html.v2 .gtop{background:var(--side);box-shadow:none;border-bottom:1px solid rgba(255,255,255,.06)}
html.v2 .gnet{background:var(--brand)}
html.v2 .gsearch input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}

/* ---------- 15. Вход и главная ---------- */
html.v2 .login form{border-radius:22px;padding:32px;box-shadow:var(--sh-lg)}
html.v2 .login .btn.pri{min-height:44px}

/* ---------- 16. Светофор собираемости: зелёная сумма долга читается как «долг — это хорошо» ----------
   при хорошей собираемости число обычного цвета, о хорошем говорит полоска слева; жёлтый и красный остаются на числе */
html.v2 .tile.tl-g b,html.v2 .kpi.tl-g b{color:var(--ink)}
/* свежесть 1С на телефоне — только дата */
@media (max-width:960px){html.v2 .v2-top .asof:not(.v2-open)>span:first-child{font-size:0}html.v2 .v2-top .asof:not(.v2-open)>span:first-child b{font-size:12px}}

/* ---------- 17. Главная (home.html) в новом дизайне: светлая «бумага», фото справа в рамке, двери-карточки ---------- */
html.v2 body:has(.hero){background:var(--paper);color:var(--ink)}
html.v2 .hero{min-height:100svh;color:var(--ink)}
html.v2 .hero::before{inset:24px 24px 24px 54%;border-radius:28px;transform:none;animation:none;box-shadow:var(--sh-lg)}
html.v2 .hero::after{inset:24px 24px 24px 54%;border-radius:28px;background:linear-gradient(180deg,transparent 55%,rgba(10,14,16,.55))}
html.v2 .hero header,html.v2 .hero main,html.v2 .hero footer{max-width:54%;box-sizing:border-box}
html.v2 .hero header{padding-top:24px}
html.v2 .hero .badge{border-radius:16px;background:var(--v2-hero-a);box-shadow:none}
html.v2 .hero .addr{display:none}
html.v2 .hero main{justify-content:center;padding-top:40px;padding-bottom:40px}
html.v2 .hero .eyebrow{color:var(--brand);opacity:1;letter-spacing:.12em;font-weight:600}
html.v2 .hero h1{font-size:clamp(34px,4.4vw,60px);letter-spacing:-.03em;color:var(--ink)}
html.v2 .hero .lead{color:var(--muted);opacity:1;font-size:17px;margin:18px 0 30px}
html.v2 .hero .doors{grid-template-columns:minmax(0,1fr);gap:10px;max-width:560px}
html.v2 .hero .door{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:18px 20px;border-radius:16px;background:var(--panel);border:1px solid var(--line);color:var(--ink);backdrop-filter:none;box-shadow:var(--sh)}
html.v2 .hero .door b{font-size:18px;flex:1 1 100%}
html.v2 .hero .door span{color:var(--muted);opacity:1}
html.v2 .hero .door:hover,html.v2 .hero .door:focus-visible{transform:translateY(-2px);background:var(--panel);border-color:color-mix(in srgb,var(--muted) 40%,var(--line));box-shadow:0 8px 24px rgba(0,0,0,.08)}
html.v2 .hero .door.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
html.v2 .hero .door.pri span{color:color-mix(in srgb,var(--accent-ink) 82%,transparent)}
html.v2 .hero .door.pri:hover{background:color-mix(in srgb,var(--accent) 90%,#000);border-color:var(--accent)}
html.v2 .hero .door.lead{background:var(--panel);color:var(--ink);border-color:var(--line)}
html.v2 .hero .door.lead b{color:var(--brand)}
html.v2 .hero .facts{border-top-color:var(--line);color:var(--muted);max-width:560px}
html.v2 .hero .facts i{color:var(--ink)}
html.v2 .hero footer{color:var(--muted);opacity:1}
@media (max-width:900px){
  html.v2 .hero::before,html.v2 .hero::after{inset:152px 16px auto 16px;height:240px;border-radius:22px}
  html.v2 .hero header,html.v2 .hero main,html.v2 .hero footer{max-width:none}
  html.v2 .hero header{padding-top:16px}
  html.v2 .hero main{padding-top:300px}
}
@media (max-width:640px){
  html.v2 .hero::before,html.v2 .hero::after{top:96px;height:200px}
  html.v2 .hero main{padding-top:220px}
  html.v2 .hero .doors{max-width:none}
}

/* ---------- 18. Вход сотрудников и клиентов ---------- */
html.v2 body:has(main.login){background:radial-gradient(1200px 600px at 100% 0%,color-mix(in srgb,var(--brand) 10%,transparent),transparent 60%),radial-gradient(900px 500px at 0% 100%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 60%),var(--paper)}
html.v2 .login form{border:1px solid var(--line);gap:16px}
html.v2 .login h1{font-size:24px;letter-spacing:-.02em}
html.v2 .login .field input{min-height:46px;font-size:16px;border-radius:10px}
html.v2 .login .btn.pri{min-height:48px;font-size:15px;border-radius:12px}

/* ---------- 19. Шапка дашборда: месяц, направление и НДС — чипами (v2.js), полоса «Сводка за месяц» скрыта ---------- */
html.v2 body.v2-ctxon .kpis .kpi.period{display:none!important}
.v2-ctx{display:flex;align-items:center;gap:6px;flex:none}
.v2-mon{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel);overflow:hidden}
.v2-mon button{border:0;background:none;color:var(--muted);width:30px;height:32px;font:inherit;font-size:16px;cursor:pointer}
.v2-mon button:hover:not(:disabled){color:var(--ink);background:var(--hover)}
.v2-mon button:disabled{opacity:.35;cursor:default}
.v2-sel{appearance:none;-webkit-appearance:none;border:1px solid var(--line);border-radius:999px;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C9599' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 10px center/14px;color:var(--ink);font:inherit;font-size:13px;font-weight:550;min-height:32px;padding:0 30px 0 12px;max-width:220px;cursor:pointer}
.v2-mon .v2-sel{border:0;border-radius:0;min-height:32px;padding:0 26px 0 4px;background-position:right 6px center}
.v2-sel:hover{border-color:color-mix(in srgb,var(--muted) 45%,var(--line))}
.v2-ctx .seg{flex:none}
/* показатели — карточки как в витрине */
html.v2 .kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:10px}
html.v2 .kpi{max-width:none;min-width:0;padding:14px 16px;border-radius:16px;justify-content:flex-start}
html.v2 .kpi small{font-size:12.5px;order:0}
html.v2 .kpi b{font-size:22px;order:1;margin-top:auto}
/* карточки направлений «Командного пункта» */
html.v2 .cards:has(>.tile.click){grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
html.v2 .tile.click{padding:18px 20px;gap:6px;border-radius:16px;min-height:170px}
html.v2 .tile.click small{font-size:13px;font-weight:600;color:var(--muted)}
html.v2 .tile.click b{font-size:28px;letter-spacing:-.025em;margin:2px 0 2px}
html.v2 .tile.click>span:not(.sub){font-size:13px;line-height:1.45}
html.v2 .tile.click .sub{margin-top:auto!important;padding-top:10px;border-top:1px solid var(--grid);color:var(--accent);font-weight:600;font-size:13px}
html.v2 .tile.click:hover{box-shadow:0 8px 24px rgba(0,0,0,.07)}
html.v2 .dirtabs .chipbtn{min-height:34px}
@media (max-width:960px){
  .v2-top{flex-wrap:wrap;row-gap:8px}
  .v2-ctx{order:5;flex:1 1 100%;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px}
  .v2-ctx::-webkit-scrollbar{display:none}
  html.v2 .kpis{display:flex}
  html.v2 .kpi{min-width:min(46vw,200px)}
  html.v2 .tile.click{min-height:0}
}

/* ---------- 20. Разделы в виде витрины (v2-views.js): шапка, фильтры, выдвижная панель ---------- */
.v2-head{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin:6px 0 2px}
.v2-head .t{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:4px}
.v2-head h1{margin:0;font-size:28px;font-weight:650;letter-spacing:-.02em;line-height:1.2}
.v2-sum{margin:0;color:var(--muted);font-size:14px}
.v2-hacts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html.v2 .v2-hacts .btn.v2-quiet{background:transparent;border-color:transparent;color:var(--muted)}
html.v2 .v2-hacts .btn.v2-quiet:hover{background:var(--hover);color:var(--ink)}
.v2-info{position:relative}
.v2-info>summary{list-style:none}
.v2-info>summary::-webkit-details-marker{display:none}
.v2-pop{position:absolute;right:0;top:42px;z-index:20;width:min(520px,86vw);background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-lg);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.v2-pop .note{margin:0!important}
.v2-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--grid)}
.v2-search{position:relative;flex:1 1 260px;min-width:0;display:flex}
.v2-search .v2-ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.v2-search input{width:100%;min-height:36px;padding:0 12px 0 36px!important;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit;font-size:14px}
.v2-search input:focus{outline:none;border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.v2-chips{display:flex;gap:6px;flex-wrap:wrap}
.v2-chips .chipbtn{white-space:nowrap}
.v2-filters select.v2-sel{width:auto}
html.v2 .v2-tcardwrap{border-radius:16px;overflow:hidden}
html.v2 .v2-tcardwrap>.tablewrap{border:0;border-radius:0}
html.v2 .v2-tlist>p.note{display:none}
/* выдвижная панель справа */
.v2-scrim{position:fixed;inset:0;z-index:28;background:rgba(10,14,16,.42);backdrop-filter:blur(2px);display:flex;justify-content:flex-end;animation:fadeIn .15s ease}
.v2-panel{width:min(980px,100%);height:100%;background:var(--paper);box-shadow:var(--sh-lg);display:flex;flex-direction:column;animation:slideIn .22s ease;border-radius:22px 0 0 22px;overflow:hidden}
.v2-ptop{display:flex;align-items:center;gap:6px;min-height:56px;padding:8px 12px 8px 22px;background:var(--panel);border-bottom:1px solid var(--grid)}
.v2-ptitle{flex:1;min-width:0;font-weight:650;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-pbody{flex:1;overflow:auto;padding:18px 22px 32px}
body.v2-locked{overflow:hidden}
/* карточка арендатора (страница и панель) */
html.v2 .v2-tcard .tenant-head h2{font-size:26px;margin:4px 0 2px}
html.v2 .v2-pbody .tenant-head>div:first-child>a.note{display:none}
html.v2 .v2-tcard .cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
html.v2 .v2-tcard>div.soon{border-radius:12px;background:var(--v2-warn-soft);border-left:0!important}
/* таблица арендаторов на телефоне — список карточек: имя, долг на конец, МАП и срок договора */
@media (max-width:760px){
  html.v2 table.v2-rows{min-width:0!important}
  html.v2 table.v2-rows thead{display:none}
  html.v2 table.v2-rows tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:12px 14px;border-bottom:1px solid var(--grid)}
  html.v2 table.v2-rows tbody td{display:none;padding:0!important;border:0!important;background:none!important}
  /* колонки: 1 — №, 2 — арендатор, 5 — МАП, 9 — долг на конец, 10 — договор до */
  html.v2 table.v2-rows tbody td:nth-child(2){display:block;grid-column:1;grid-row:1/3}
  html.v2 table.v2-rows tbody td:nth-child(9){display:block;grid-column:2;grid-row:1;font-weight:650;text-align:right}
  html.v2 table.v2-rows tbody td:nth-child(5){display:block;grid-column:2;grid-row:2;text-align:right;font-size:12.5px;color:var(--muted)}
  html.v2 table.v2-rows tbody td:nth-child(5)::before{content:"МАП "}
  html.v2 table.v2-rows tbody td:nth-child(10){display:block;grid-column:1/-1;font-size:12.5px;color:var(--muted)}
  html.v2 table.v2-rows tbody td:nth-child(10)::before{content:"Договор до "}
  html.v2 table.v2-rows tfoot{display:none}
  html.v2 table.v2-rows tfoot tr{display:flex;flex-wrap:wrap;gap:4px 12px;padding:10px 14px}
  html.v2 table.v2-rows tfoot td{padding:0!important;border:0!important}
  .v2-head h1{font-size:22px}
  .v2-panel{border-radius:0}
  .v2-pbody{padding:14px 16px 32px}
  .v2-filters{padding:10px 12px}
  .v2-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex:1 1 100%}
}
html.v2 .v2-tcardwrap .ttbar{display:none}
/* поручения: вкладки-виды, меню «Ещё», строки-карточки на телефоне */
.v2-tabs{display:flex!important;flex-wrap:nowrap!important;gap:2px!important;overflow-x:auto;scrollbar-width:none;padding:0 10px;border-bottom:1px solid var(--grid);box-shadow:none}
.v2-tabs::-webkit-scrollbar{display:none}
html.v2 .v2-tabs .chipbtn{border:0;background:none;border-radius:0;min-height:44px;padding:0 12px;color:var(--muted);font-size:14px;font-weight:500;position:relative;white-space:nowrap}
html.v2 .v2-tabs .chipbtn:hover{color:var(--ink)}
html.v2 .v2-tabs .chipbtn[aria-pressed="true"]{background:none;color:var(--ink);font-weight:600}
html.v2 .v2-tabs .chipbtn[aria-pressed="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:2px 2px 0 0;background:var(--brand)}
.v2-n{font-style:normal;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--v2-surface-3);color:var(--ink);font-size:11.5px;font-weight:650}
.v2-n.hot{background:var(--brand);color:#fff}
.v2-more{position:relative}
.v2-more>summary{list-style:none}
.v2-more>summary::-webkit-details-marker{display:none}
.v2-menu{width:280px;padding:6px}
html.v2 .v2-menu .btn{width:100%;justify-content:flex-start;border:0;background:none;white-space:normal;text-align:left}
html.v2 .v2-menu .btn:hover{background:var(--hover)}
html.v2 .v2-olist .bulkbar{padding:8px 14px;background:var(--accent-soft);margin:0!important}
html.v2 .v2-olist>.pane>p.note{display:none}
@media (max-width:760px){
  html.v2 table.v2-orows{min-width:0!important}
  html.v2 table.v2-orows thead{display:none}
  html.v2 table.v2-orows tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;padding:12px 14px;border-bottom:1px solid var(--grid);align-items:start}
  html.v2 table.v2-orows tbody td{display:none;padding:0!important;border:0!important;background:none!important}
  html.v2 table.v2-orows tbody td:has(>input[type=checkbox]){display:block;grid-column:1;grid-row:1/4}
  html.v2 table.v2-orows tbody td[data-c=txt]{display:block;grid-column:2;grid-row:1;font-weight:550}
  html.v2 table.v2-orows tbody td[data-c=st]{display:block;grid-column:3;grid-row:1}
  html.v2 table.v2-orows tbody td[data-c=who]{display:block;grid-column:2/4;grid-row:2;font-size:12.5px;color:var(--muted)}
  html.v2 table.v2-orows tbody td[data-c=due]{display:block;grid-column:2/4;grid-row:3;font-size:12.5px}
  html.v2 table.v2-orows tbody td[data-c=due]::before{content:"срок ";color:var(--muted)}
  html.v2 table.v2-orows tbody td[data-c=due] .sub{display:inline;margin-left:6px}
  html.v2 .v2-olist .bulkbar{gap:6px}
}
html.v2 .v2-tcardwrap.section{padding:0;gap:0}
/* коммуналка: вкладки ресурсов в одну строку с прокруткой, тип клиентов — сегментом */
html.v2 #view .tabs.v2-utabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0!important}
html.v2 #view .tabs.v2-utabs::-webkit-scrollbar{display:none}
.v2-seg{display:inline-flex!important;flex-wrap:nowrap!important;gap:2px!important;padding:3px;border-radius:9px;background:var(--v2-surface-3);overflow-x:auto;scrollbar-width:none;max-width:100%;align-self:flex-start;margin:4px 0 2px!important}
html.v2 .v2-seg .chipbtn{border:0;background:none;border-radius:7px;min-height:30px;color:var(--muted);font-weight:550;white-space:nowrap}
html.v2 .v2-seg .chipbtn[aria-pressed="true"]{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--line)}
.v2-sum .pill{vertical-align:1px}

/* ---------- 21. Кабинеты на телефоне: /a (арендатор), /m (заявки), /mr (показания), /b (бухгалтер) ---------- */
/* кабинет арендатора: сумма к оплате — герой-карточка, как в витрине */
html.v2 body.mob{--awine:var(--brand);--awine-bg:color-mix(in srgb,var(--brand) 14%,transparent)}
html.v2 .mblock{border-radius:16px;padding:14px 16px}
html.v2 .mblock.apay{position:relative;overflow:hidden;border:0;padding:20px;gap:8px;color:#fff;background:linear-gradient(140deg,var(--v2-hero-a),var(--v2-hero-b))}
html.v2 .mblock.apay::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
html.v2 .mblock.apay .mhint{color:rgba(255,255,255,.82)}
html.v2 .mblock.apay .asum{color:#fff;font-size:36px;font-weight:700;letter-spacing:-.03em}
html.v2 .mblock.apay .mlate{color:#fff;font-weight:600;background:rgba(0,0,0,.18);align-self:flex-start;border-radius:999px;padding:2px 10px}
html.v2 .mblock.apay .mbtn.brand{position:relative;z-index:1;background:#fff;border-color:#fff;color:var(--v2-hero-a);min-height:52px}
html.v2 .mblock.apay:not(.bad){background:var(--panel);color:var(--ink);border:1px solid var(--line)}
html.v2 .mblock.apay:not(.bad)::after{display:none}
html.v2 .mblock.apay:not(.bad) .mhint{color:var(--muted)} html.v2 .mblock.apay:not(.bad) .asum{color:var(--rent)}
html.v2 .mgroup{text-transform:none;letter-spacing:0;font-size:13px;margin:12px 2px 0}
html.v2 .mbtn{border-radius:12px}
html.v2 .mhello{font-size:18px;font-weight:600}
/* заявки сотрудника: нижняя панель — активный пункт подложкой, как в кабинете арендатора */
html.v2 .mtabs:not(.atabs){padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
html.v2 .mtabs:not(.atabs) button{border-radius:14px;min-height:54px}
html.v2 .mtabs:not(.atabs) button[aria-current="page"]{background:color-mix(in srgb,var(--brand) 12%,transparent)}
html.v2 .mtabs:not(.atabs) button[aria-current="page"]::before{display:none}
html.v2 .mcard{box-shadow:var(--sh)}
html.v2 .msheet .sb{border-radius:22px 22px 0 0}
html.v2 .mchips button[aria-pressed="true"],html.v2 .mdept[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
/* показания: «Ввести по QR» — внизу экрана, в зоне большого пальца */
html.v2 .mrmain{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
html.v2 .mrbtns:has(#mrTour){position:fixed;left:0;right:0;bottom:0;z-index:6;flex-direction:row;margin:0!important;padding:14px max(16px,calc((100vw - 560px) / 2)) calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--paper) 72%,transparent)}
html.v2 .mrbtns:has(#mrTour) #mrTour{flex:1 1 auto;width:auto;min-height:56px}
html.v2 .mrbtns:has(#mrTour) #mrNew{flex:0 0 auto;width:auto;min-height:56px;padding:0 16px}
html.v2 .mrprog{height:10px;border-radius:5px}
html.v2 .mrprog i{background:var(--accent)}
html.v2 .mrlist>button{box-shadow:var(--sh)}
html.v2 .mrin{border-radius:14px;min-height:72px;font-size:36px;font-weight:600}
/* кабинет бухгалтера (/b): вкладки — линией с подчёркиванием, без полосы прокрутки */
html.v2 .bpage>.row:first-child h2{font-size:26px}
html.v2 .bnav{gap:2px;scrollbar-width:none;padding:0;margin:4px 0 0;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--grid)}
html.v2 .bnav::-webkit-scrollbar{display:none}
html.v2 .bnav button{border:0;background:none;border-radius:0;min-height:46px;padding:0 12px;color:var(--muted);font-weight:500;position:relative}
html.v2 .bnav button:hover{color:var(--ink)}
html.v2 .bnav button[aria-current="page"]{background:none;color:var(--ink);font-weight:600}
html.v2 .bnav button[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:2px 2px 0 0;background:var(--brand)}
html.v2 .bnav button i{background:var(--brand)}
html.v2 .bdirs{display:inline-flex!important;flex-wrap:nowrap!important;gap:2px!important;padding:3px;border-radius:9px;background:var(--v2-surface-3);overflow-x:auto;scrollbar-width:none;max-width:100%;align-self:flex-start;margin:10px 0!important}
html.v2 .bdirs .chipbtn{border:0;background:none;border-radius:7px;min-height:30px;color:var(--muted);font-weight:550;white-space:nowrap}
html.v2 .bdirs .chipbtn[aria-pressed="true"]{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--line)}
html.v2 #bQ{min-height:36px;border-radius:8px!important;padding:0 12px!important;font-size:14px}
