/* =====================================================================
   Деловойс · оболочка кабинета v8
   По образцу Dashboard Shell (ObsidianUI): одна поверхность, боковая панель
   с плавающей подсветкой и скользящей «таблеткой», шапка со статусом,
   вкладки, стеклянные меню. Цвета — палитра Деловойса.
   Подключается последним и перекрывает прежние темы.
   ===================================================================== */
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/dv-manrope-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/dv-manrope-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:200 900;font-display:swap;src:url(/dv-unbounded-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:200 900;font-display:swap;src:url(/dv-unbounded-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(/dv-jetbrains-mono-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(/dv-jetbrains-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  /* палитра оболочки: Palladian, Oatmeal, Abyssal, Blue Fantastic, Truffle, Burning Flame */
  --ds-bg:#FAF7F1;
  --ds-sidebar:var(--ds-bg);
  --ds-panel:var(--ds-bg);
  --ds-control:#FFFFFF;
  --ds-muted:#EFE9DE;
  --ds-muted-hover:#E7DFD1;
  --ds-border:#E6DFD2;
  --ds-border-strong:#D3C9B7;
  --ds-fg:#1B2632;
  --ds-text-muted:#4A5563;
  --ds-text-subtle:#857E71;
  --ds-icon:#2C3B4D;
  --ds-hover:rgb(27 38 50 / .05);
  --ds-accent:#A35139;
  --ds-accent-hover:#B15E44;
  --ds-accent-fg:#FFF8EC;
  --ds-flame:#FFB162;
  --ds-success:#2F6B57;
  --ds-warning:#C27B12;
  --ds-danger:#B4392A;
  --ds-danger-solid:#B4392A;
  --ds-danger-solid-hover:#9C2F22;
  --ds-ring:#9A9182;
  --ds-control-shadow:0 0 0 1px rgb(27 38 50 / .09), 0 1px 2px rgb(27 38 50 / .06);
  --ds-accent-shadow:0 2px 4px rgb(163 81 57 / .24), 0 0 0 1px #8C432F, inset 0 4px 6px rgb(255 255 255 / .18),
    inset 0 0 0 1px rgb(255 255 255 / .14), inset 0 -8px 14px rgb(0 0 0 / .14);
  --ds-menu:rgb(255 252 246 / .82);
  --ds-menu-highlight:rgb(27 38 50 / .06);
  --ds-menu-shadow:0 0 0 1px rgb(27 38 50 / .08), 0 2px 4px rgb(27 38 50 / .04), 0 12px 32px -6px rgb(27 38 50 / .18);
  --ds-ease:cubic-bezier(.25,1,.5,1);
  --ds-font:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --ds-head:'Unbounded','Manrope',sans-serif;
  --ds-mono:'JetBrains Mono',ui-monospace,monospace;
  --sbw:232px;

  /* прежние переменные кабинета — к той же палитре, чтобы разделы совпали с оболочкой */
  --page:var(--ds-bg); --shell:var(--ds-bg); --bg:var(--ds-bg); --sunk:var(--ds-muted);
  --card:#FFFFFF; --line:var(--ds-border); --line-2:#EEE8DD;
  --ink:var(--ds-fg); --ink-2:var(--ds-text-muted); --muted:var(--ds-text-subtle);
  --brand:var(--ds-fg); --brand2:#2C3B4D;
  --od:var(--ds-danger); --att:var(--ds-warning); --ok:var(--ds-success);
  --f:var(--ds-font); --m:var(--ds-mono); --logo:var(--ds-font);
  --r:12px; --r-s:8px; --r-xs:6px;
}

/* ---------- основа ---------- */
html{background:var(--ds-bg)}
body{background:var(--ds-bg)!important;padding:0!important;font-family:var(--ds-font);font-size:14px;color:var(--ds-fg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.mono,.num,.code,.tnum{font-family:var(--ds-mono);font-variant-numeric:tabular-nums}
::selection{background:rgb(255 177 98 / .35)}
:focus-visible{outline:2px solid var(--ds-ring);outline-offset:1px}

/* тонкая полоса прокрутки: видна, только пока указатель или фокус внутри области */
.ds-scroll::-webkit-scrollbar,html::-webkit-scrollbar{width:4px;height:4px}
.ds-scroll::-webkit-scrollbar-track,.ds-scroll::-webkit-scrollbar-corner,html::-webkit-scrollbar-track{background:transparent}
.ds-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:transparent;border:0}
.ds-scroll:is(:hover,:focus-within)::-webkit-scrollbar-thumb,html::-webkit-scrollbar-thumb{background:var(--ds-border-strong);border-radius:999px;border:0}
.ds-scroll::-webkit-scrollbar-button,html::-webkit-scrollbar-button{display:none;width:0;height:0}
@supports not selector(::-webkit-scrollbar){
  .ds-scroll{scrollbar-width:thin;scrollbar-color:transparent transparent}
  .ds-scroll:is(:hover,:focus-within){scrollbar-color:var(--ds-border-strong) transparent}
}

/* ---------- каркас ---------- */
#app.ds{display:grid;grid-template-columns:var(--sbw) minmax(0,1fr);min-height:100dvh;max-width:none;margin:0;
  background:var(--ds-bg);border-radius:0;box-shadow:none;padding:0}
#app.ds[data-resizing]{cursor:col-resize;user-select:none}
#app.ds[data-resizing] *{cursor:col-resize!important}
#app.ds > #mtabs,#sheet{display:none!important}

/* ---------- боковая панель ---------- */
#app.ds > aside.ds-side{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:0;padding:0;margin:0;
  background:var(--ds-sidebar);color:var(--ds-fg);border-right:1px solid var(--ds-border);overflow:visible;min-width:0;z-index:20}
.ds-sbody{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
.ds-brand{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:12px;border-bottom:1px solid var(--ds-border);background:var(--ds-panel);min-height:57px}
.ds-brand .bt{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.ds-brand .brand-link{display:inline-flex;line-height:0;border-radius:6px;width:max-content;transition:opacity .15s}
.ds-brand .brand-link:hover{opacity:.72}
.ds-brand .brand-img{width:118px!important;height:auto;display:block}
.ds-brand .bd{display:block;font-size:12px;line-height:1;color:var(--ds-text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.ds-list{position:relative}
.ds-sec{display:flex;flex-direction:column;gap:4px;padding:12px}
.ds-sec + .ds-sec{border-top:1px solid var(--ds-border)}
.ds-sec-t{display:block;padding:4px 0;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:1px;line-height:1;color:var(--ds-text-subtle)}
.ds-sec ul{list-style:none;display:flex;flex-direction:column;gap:1px;margin:0;padding:0}
.ds-item{position:relative;display:flex;align-items:center;gap:8px;width:100%;height:32px;padding:0 8px;border-radius:8px;
  font:500 14px/1 var(--ds-font);color:var(--ds-text-muted);text-align:left;cursor:pointer;user-select:none;outline:none;
  background:none;border:0;text-decoration:none;
  transition:color .15s var(--ds-ease),scale .15s var(--ds-ease)}
.ds-item:hover,.ds-item[aria-current]{color:var(--ds-fg)}
.ds-item:active{scale:.98;transition-duration:.075s}
.ds-item:focus-visible{box-shadow:0 0 0 2px var(--ds-ring)}
.ds-quiet .ds-item{color:var(--ds-text-subtle)}
.ds-quiet .ds-item:hover,.ds-quiet .ds-item[aria-current]{color:var(--ds-fg)}
.ds-item > svg{position:relative;width:16px;height:16px;flex:none;color:var(--ds-icon);opacity:1}
.ds-item .lb{position:relative;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-dot{position:relative;display:grid;place-items:center;width:16px;height:16px;flex:none}
.ds-dot i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.ds-cnt{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;height:16px;min-width:24px;padding:0 4px;
  border-radius:5px;border:.5px solid var(--ds-border-strong);background:var(--ds-muted);
  font:400 11px/1 var(--ds-mono);font-variant-numeric:tabular-nums;color:var(--ds-text-muted)}
.ds-cnt.hot{color:#fff;background:var(--ds-accent);border-color:var(--ds-accent)}
/* одна подсветка на список: скользит за указателем */
.ds-hl{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;border-radius:8px;background:var(--ds-hover);opacity:0;
  transition:opacity .15s ease-out;will-change:transform}
.ds-hl.on{opacity:1;transition-duration:.12s}
/* «таблетка» выбранного пункта: переезжает к новому пункту */
.ds-pill{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;border-radius:8px;background:var(--ds-control);
  box-shadow:var(--ds-control-shadow);opacity:0;will-change:transform}
.ds-pill.on{opacity:1}
.ds-foot{flex-shrink:0;border-top:1px solid var(--ds-border);background:var(--ds-panel);padding:16px}
.ds-usage{display:flex;flex-direction:column;gap:8px}
.ds-usage .r{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;line-height:1}
.ds-usage .r b{font-weight:600}
.ds-usage .r span{font-family:var(--ds-mono);font-size:11.5px;color:var(--ds-text-subtle)}
.ds-bar{height:6px;border-radius:999px;background:var(--ds-muted);overflow:hidden}
.ds-bar i{display:block;height:100%;border-radius:999px;background:var(--ds-accent);transition:width .5s var(--ds-ease)}
.ds-usage small{font-size:11px;line-height:1;color:var(--ds-text-subtle)}
/* край для изменения ширины */
.ds-rz{position:absolute;top:0;bottom:0;right:-4px;width:8px;z-index:10;cursor:col-resize;touch-action:none;user-select:none;outline:none}
.ds-rz span{position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);transition:background-color .15s}
.ds-rz:hover span{background:var(--ds-border-strong)}
.ds-rz:active span,#app.ds[data-resizing] .ds-rz span{background:var(--ds-ring)}
.ds-rz:focus-visible span{width:2px;background:var(--ds-ring)}

/* ---------- шапка ---------- */
#app.ds > .ds-mainwrap{display:flex;flex-direction:column;min-width:0;min-height:100dvh}
#mtop.ds-head{position:sticky;top:0;z-index:15;display:block;background:color-mix(in oklab,var(--ds-bg) 88%,transparent);
  -webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--ds-border);padding:0;color:var(--ds-fg)}
.ds-hrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;min-height:58px}
.ds-hl-left{display:flex;align-items:center;gap:8px;min-width:0}
.ds-title{margin:0;font:500 15.5px/1.15 var(--ds-head);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ds-fg)}
.ds-status{display:inline-flex;align-items:center;gap:4px;flex:none;padding:3px 6px 3px 3px;border-radius:6px;
  border:1px solid var(--ds-border-strong);background:var(--ds-muted);font-size:12px;line-height:1;color:var(--ds-fg);white-space:nowrap}
.ds-status .d{position:relative;display:flex;align-items:center;justify-content:center;width:12px;height:12px;color:var(--ds-success)}
.ds-status .d::before{content:'';position:absolute;inset:0;border-radius:50%;background:currentColor;opacity:.25}
.ds-status .d::after{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.ds-status.warning .d{color:var(--ds-warning)}
.ds-status.neutral .d{color:var(--ds-text-subtle)}
.ds-status.live .d::before{animation:dsPulse 1.6s var(--ds-ease) infinite}
@keyframes dsPulse{0%{transform:scale(.6);opacity:.45}70%{transform:scale(1.6);opacity:0}100%{opacity:0}}
.ds-hact{display:flex;align-items:center;gap:8px;flex:none}
.ds-menu-btn{display:none!important}
.ds-tabs{padding:0 12px 10px}
.ds-tabs:empty{display:none}

/* ---------- кнопки ---------- */
.ds-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;white-space:nowrap;
  height:30px;padding:0 9px;border-radius:6px;border:0;font:500 12.5px/1 var(--ds-font);cursor:pointer;user-select:none;outline:none;
  background:var(--ds-control);color:var(--ds-fg);box-shadow:var(--ds-control-shadow);text-decoration:none;
  transition:background-color .15s var(--ds-ease),color .15s var(--ds-ease),box-shadow .15s var(--ds-ease),scale .15s var(--ds-ease)}
.ds-btn:hover,.ds-btn[aria-expanded="true"]{background:var(--ds-muted)}
.ds-btn:active{scale:.97;transition-duration:.075s}
.ds-btn:focus-visible{box-shadow:var(--ds-control-shadow),0 0 0 2px var(--ds-ring)}
.ds-btn:disabled{opacity:.5;pointer-events:none}
.ds-btn svg{width:16px;height:16px;flex:none;pointer-events:none}
.ds-btn.sm svg{width:13px;height:13px}
.ds-btn.md{height:32px;padding:0 10px;font-size:13.5px}
.ds-btn.icon{width:30px;padding:0}
.ds-btn.primary{background:var(--ds-accent);color:var(--ds-accent-fg);box-shadow:var(--ds-accent-shadow)}
.ds-btn.primary:hover{background:var(--ds-accent-hover)}
.ds-btn.muted{background:var(--ds-muted)}
.ds-btn.muted:hover{background:var(--ds-muted-hover)}
.ds-btn.ghost{background:none;box-shadow:none;color:var(--ds-text-subtle)}
.ds-btn.ghost:hover{background:var(--ds-muted);color:var(--ds-fg)}
.ds-btn.danger{background:var(--ds-danger-solid);color:#fff;box-shadow:0 1px 2px rgb(0 0 0/.16),inset 0 1px 0 rgb(255 255 255/.16),0 0 0 1px rgb(0 0 0/.08)}
.ds-btn.danger:hover{background:var(--ds-danger-solid-hover)}
.ds-btn .ndot{position:absolute;right:6px;top:6px;width:6px;height:6px;border-radius:50%;background:var(--ds-danger);box-shadow:0 0 0 2px var(--ds-control)}
.ds-ava{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:var(--ds-flame);
  color:#3A1A0D;font:700 9.5px/1 var(--ds-font);letter-spacing:.02em}
.ds-prof{gap:6px;padding:0 7px 0 5px;font-weight:400}
.ds-prof .nm{max-width:160px;overflow:hidden;text-overflow:ellipsis}
.ds-rec{color:#fff;background:var(--ds-fg);box-shadow:0 0 0 1px #000}
.ds-rec:hover{background:#2C3B4D}
.ds-rec .rd{width:8px;height:8px;border-radius:50%;background:#E5484D;animation:recblink 1.2s infinite}

/* прежние кнопки разделов — в тот же язык */
#main .btn-d,#main .xbtn.dark,#login .btn-d,#pwdlg .btn-d{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;
  background:var(--ds-accent);color:var(--ds-accent-fg);box-shadow:var(--ds-accent-shadow);font:600 13px/1 var(--ds-font);border:0;
  transition:background-color .15s var(--ds-ease),scale .15s var(--ds-ease)}
#main .btn-d:hover,#main .xbtn.dark:hover,#login .btn-d:hover,#pwdlg .btn-d:hover{background:var(--ds-accent-hover)}
#main .btn-d:active,#main .ctrl:active,#main .xbtn:active{scale:.97;transition-duration:.075s}
#main .ctrl,#main .xbtn.soft,#main .xbtn.light,#main .btn-g,#pwdlg .ctrl{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:6px;border:0;
  background:var(--ds-control);color:var(--ds-fg);box-shadow:var(--ds-control-shadow);font:500 12.5px/1 var(--ds-font);
  transition:background-color .15s var(--ds-ease),scale .15s var(--ds-ease)}
#main .ctrl:hover,#main .xbtn.soft:hover,#main .btn-g:hover{background:var(--ds-muted)}
#main .ctrl select{font:inherit;color:inherit;background:none;border:0;outline:0;cursor:pointer;height:100%}
#main .xbtn svg,#main .btn-d svg{width:15px;height:15px}
#main .inp,#pwdlg .inp,#login .inp{height:32px;padding:0 10px;border:0;border-radius:6px;background:var(--ds-control);box-shadow:var(--ds-control-shadow);
  font:400 13px var(--ds-font);color:var(--ds-fg);outline:none}
#login .inp,#pwdlg .inp{height:42px;font-size:15px}
#main .inp:focus,#pwdlg .inp:focus,#login .inp:focus{box-shadow:var(--ds-control-shadow),0 0 0 2px var(--ds-ring)}
#main .inp::placeholder{color:var(--ds-text-subtle)}
#main .xlink{color:var(--ds-accent)}
#main .search,#main .top .acts .search{display:none!important}   /* поиск — в шапке */

/* ---------- содержимое ---------- */
#app.ds main#main{display:block;background:none;border:0;border-radius:0;box-shadow:none;margin:0;max-width:none;min-width:0;
  padding:16px 20px 40px;flex:1;min-height:0}
#main .top{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 14px}
#main .top h1{font:500 21px/1.2 var(--ds-head);letter-spacing:-.015em;color:var(--ds-fg)}
#main .top .hi{font-size:11.5px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--ds-text-subtle);margin-bottom:6px}
#main .top .hi a{color:var(--ds-accent)!important}
#main .top .sub{font-size:13px;color:var(--ds-text-muted);margin-top:4px}
/* в разделах из меню заголовок уже в шапке — в теле остаётся только пояснение */
#app.ds[data-list] #main .top h1,#app.ds[data-list] #main .top .hi{display:none}
#app.ds[data-list] #main .top .sub{margin-top:0}
#app.ds[data-list] #main > .bigback{display:none}
#main .bigback{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 10px 0 8px;margin:0 0 14px;border-radius:6px;border:0;
  background:var(--ds-control);box-shadow:var(--ds-control-shadow);color:var(--ds-fg);font:500 12.5px/1 var(--ds-font);width:auto}
#main .bigback:hover{background:var(--ds-muted)}
#main .bigback .ar{font-size:14px;color:var(--ds-text-subtle)}
#main .bigback .tx{font-weight:600}
#main .bigback .to{color:var(--ds-text-subtle);font-weight:400}
#main .filters{gap:8px;margin-bottom:14px}
#main .card,#main .xcard{background:#FFFFFF;border:1px solid var(--ds-border);border-radius:12px;box-shadow:none}
#main .fchip{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 4px 0 9px;border-radius:6px;background:var(--ds-muted);
  box-shadow:inset 0 0 0 1px var(--ds-border-strong);font-size:12px}
#main .fchip button{width:20px;height:20px;border-radius:4px;color:var(--ds-text-subtle)}
#main .fchip button:hover{background:var(--ds-muted-hover);color:var(--ds-fg)}

/* статусы: точка и подпись, как в образце */
.pill{display:inline-flex;align-items:center;gap:6px;height:auto;padding:0;border-radius:0;background:none!important;
  font:500 12px/1.2 var(--ds-font);color:var(--ds-text-muted)!important;white-space:nowrap}
.pill::before{content:'';width:6px;height:6px;border-radius:50%;flex:none;background:var(--pc,var(--ds-text-subtle))}
.p-dp,.p-gd{--pc:var(--ds-accent)} .p-att{--pc:var(--ds-warning)} .p-od{--pc:var(--ds-danger)} .p-ok{--pc:var(--ds-success)} .p-st{--pc:#B5AE9F}

/* ---------- вкладки (сегменты) ---------- */
.seg.ds-list{display:flex!important;flex-wrap:wrap;align-items:center;gap:4px;background:none!important;padding:0!important;border-radius:0;box-shadow:none;width:auto;overflow:visible}
.seg.ds-list > .ds-hl,.seg.ds-list > .ds-pill{border-radius:6px}
.seg.ds-list > .ds-pill{background:var(--ds-muted);box-shadow:var(--ds-control-shadow)}
.seg.ds-list > button{position:relative;display:inline-grid;grid-auto-flow:column;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:6px;
  background:none!important;box-shadow:none!important;border:0;font:400 12.5px/1 var(--ds-font);color:var(--ds-text-subtle);cursor:pointer;user-select:none;
  transition:color .2s var(--ds-ease),scale .2s var(--ds-ease)}
.seg.ds-list > button:hover,.seg.ds-list > button.on{color:var(--ds-fg)}
.seg.ds-list > button.on{font-weight:600}
.seg.ds-list > button:active{scale:.97;transition-duration:.075s}
.seg.ds-list > button .n{font:400 11px/1 var(--ds-mono);color:var(--ds-text-subtle);margin:0}
.ds-tabs .seg.ds-list{flex-wrap:wrap}

/* ---------- таблицы ---------- */
#main table{border-collapse:collapse;font-size:13.5px}
#main thead th{padding:10px 12px;font:400 12px/1.2 var(--ds-font);text-transform:none;letter-spacing:0;color:var(--ds-text-subtle);
  background:none;border-bottom:1px solid var(--ds-border);text-align:left;white-space:nowrap}
#main thead th .ds-sort{display:inline-flex;align-items:center;gap:4px;margin:0 -6px;padding:4px 6px;border-radius:6px;cursor:pointer;
  transition:background-color .15s,color .15s}
#main thead th .ds-sort:hover{background:var(--ds-muted);color:var(--ds-fg)}
#main thead th .ds-sort.on{color:var(--ds-fg)}
#main thead th .ds-sort svg{width:12px;height:12px;opacity:.6}
#main thead th .ds-sort.on svg{opacity:1}
#main tbody td{padding:10px 12px;border-top:0;border-bottom:1px solid var(--ds-border);vertical-align:middle}
#main tbody tr:last-child td{border-bottom:0}
#main tbody tr{transition:background-color .2s}
#main tbody tr:hover{background:var(--ds-hover)}
#main .tdt{font-weight:600;line-height:1.3}
#main .tsub{color:var(--ds-text-subtle);font-size:12px}
#main .code{font-size:11px;color:var(--ds-text-subtle)}
/* выбор строк */
#main tr.ds-sel{background:color-mix(in oklab,var(--ds-accent) 9%,transparent)!important}
#main td.ds-cbc,#main th.ds-cbc{position:relative;width:40px;padding-right:0}
#main td.ds-cbc::before{content:'';position:absolute;top:4px;bottom:4px;left:0;width:2px;border-radius:999px;background:var(--ds-accent);
  transform:scaleY(0);transition:transform .2s var(--ds-ease)}
#main tr.ds-sel td.ds-cbc::before{transform:scaleY(1)}
.ds-cb{position:relative;display:inline-grid;place-items:center;width:16px;height:16px;vertical-align:middle}
.ds-cb input{grid-area:1/1;appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;border-radius:5px;cursor:pointer;outline:none;
  background:var(--ds-control);box-shadow:0 0 0 1px var(--ds-border-strong),0 1px 2px rgb(0 0 0/.06);
  transition:background-color .2s var(--ds-ease),box-shadow .2s var(--ds-ease),scale .2s var(--ds-ease)}
.ds-cb input:not(:checked):not(:indeterminate):hover{box-shadow:0 0 0 1px var(--ds-ring),0 1px 2px rgb(0 0 0/.06)}
.ds-cb input:active{scale:.85;transition-duration:.075s}
.ds-cb input:focus-visible{box-shadow:0 0 0 1px var(--ds-border-strong),0 0 0 3px var(--ds-ring)}
.ds-cb input:checked,.ds-cb input:indeterminate{background:var(--ds-accent);box-shadow:0 0 0 1px var(--ds-accent),inset 0 1px 0 rgb(255 255 255/.2)}
.ds-cb svg{grid-area:1/1;width:16px;height:16px;pointer-events:none;color:var(--ds-accent-fg);opacity:0;transform:scale(.75);
  transition:opacity .2s cubic-bezier(.34,1.56,.64,1),transform .2s cubic-bezier(.34,1.56,.64,1)}
.ds-cb svg path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .2s ease-out .075s}
.ds-cb input:checked + svg{opacity:1;transform:scale(1)}
.ds-cb input:checked + svg path{stroke-dashoffset:0}
.ds-cb i{grid-area:1/1;width:8px;height:1.75px;border-radius:999px;background:var(--ds-accent-fg);transform:scaleX(0);pointer-events:none;transition:transform .2s var(--ds-ease)}
.ds-cb input:indeterminate ~ i{transform:scaleX(1)}

/* итоги под таблицей: тонкие разделители через просвет */
.ds-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:14px 0 0;background:var(--ds-border);
  border-top:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border);font-size:12px;line-height:1}
.ds-stats div{display:flex;flex-direction:row-reverse;align-items:center;justify-content:flex-end;gap:8px;padding:12px;background:var(--ds-bg)}
.ds-stats dt{color:var(--ds-text-subtle)}
.ds-stats dd{margin:0;font-family:var(--ds-mono);font-variant-numeric:tabular-nums;color:var(--ds-fg)}

/* ---------- слои: меню, всплывающие окна, диалог, плавающая панель ---------- */
.ds-layer{position:fixed;z-index:200;min-width:160px;padding:4px;border-radius:10px;background:var(--ds-menu);color:var(--ds-fg);
  box-shadow:var(--ds-menu-shadow);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);outline:none;
  max-height:min(70vh,520px);overflow-y:auto;overscroll-behavior:contain}
.ds-layer .ds-list > .ds-hl{border-radius:6px;background:var(--ds-menu-highlight)}
.ds-mi{position:relative;display:flex;align-items:center;gap:8px;width:100%;height:32px;padding:0 10px;border-radius:6px;border:0;background:none;
  font:400 12.5px/1 var(--ds-font);color:var(--ds-text-muted);text-align:left;cursor:pointer;user-select:none;outline:none;text-decoration:none;
  transition:color .15s var(--ds-ease),scale .15s var(--ds-ease)}
.ds-mi:hover,.ds-mi:focus{color:var(--ds-fg)}
.ds-mi:active{scale:.97;transition-duration:.075s}
.ds-mi svg{position:relative;width:16px;height:16px;flex:none}
.ds-mi .lb{position:relative;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-mi .cnt{position:relative;font:400 11px/1 var(--ds-mono);color:var(--ds-text-subtle)}
.ds-mi.danger,.ds-mi.danger:hover,.ds-mi.danger:focus{color:var(--ds-danger)}
.ds-ml{padding:10px 10px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;line-height:1;color:var(--ds-text-subtle)}
.ds-msub{padding:0 10px 10px;font-size:12px;color:var(--ds-text-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-msep{height:1px;margin:4px -4px;background:var(--ds-border)}
.ds-note{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 10px;border-radius:6px;border:0;background:none;text-align:left;cursor:pointer;
  outline:none;transition:scale .15s var(--ds-ease)}
.ds-note:active{scale:.98;transition-duration:.075s}
.ds-note .d{position:relative;width:6px;height:6px;margin-top:5px;border-radius:50%;flex:none;background:var(--c,var(--ds-accent))}
.ds-note .t{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0}
.ds-note b{font-size:12.5px;font-weight:600;line-height:1.3;color:var(--ds-fg)}
.ds-note span{font-size:11.5px;line-height:1.3;color:var(--ds-text-subtle)}
.ds-empty-n{padding:14px 10px;font-size:12.5px;color:var(--ds-text-subtle)}
/* палитра поиска */
.ds-pal{width:min(560px,calc(100vw - 32px));padding:6px;max-height:none;overflow:visible}
.ds-pal .ds-sbox{position:relative}
.ds-pal .ds-sbox svg{position:absolute;left:10px;top:50%;width:14px;height:14px;transform:translateY(-50%);color:var(--ds-text-subtle)}
.ds-pal input{width:100%;height:38px;padding:0 10px 0 32px;border:0;border-radius:6px;background:var(--ds-control);box-shadow:var(--ds-control-shadow);
  font:400 14px var(--ds-font);color:var(--ds-fg);outline:none}
.ds-pal input:focus{box-shadow:var(--ds-control-shadow),0 0 0 2px var(--ds-ring)}
.ds-pal .ds-pr{max-height:min(56vh,420px);overflow-y:auto;margin-top:6px}
.ds-pal .ds-mi{height:36px}
.ds-pal .ds-mi .tp{position:relative;width:74px;flex:none;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ds-text-subtle)}
.ds-pal .ds-mi.sel{color:var(--ds-fg)}
.ds-pal .ptip{padding:8px 10px 4px;font-size:11px;color:var(--ds-text-subtle)}
/* затемнение под диалогом */
.ds-ov{position:fixed;inset:0;z-index:190;background:rgb(27 38 50 / .22);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.ds-ov.clear{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.ds-dwrap{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;pointer-events:none}
.ds-dlg{pointer-events:auto;display:flex;flex-direction:column;gap:16px;width:100%;max-width:400px;padding:16px;border-radius:12px;
  background:var(--ds-bg);color:var(--ds-fg);box-shadow:var(--ds-menu-shadow);outline:none}
.ds-dlg h2{margin:0;font:600 14px/1.35 var(--ds-font)}
.ds-dlg p{margin:6px 0 0;font-size:12.5px;line-height:1.55;color:var(--ds-text-muted);white-space:pre-line}
.ds-dlg .acts{display:flex;justify-content:flex-end;gap:8px}
/* плавающая панель выбора и уведомления */
#dsFloat{position:fixed;left:0;right:0;bottom:12px;z-index:150;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 12px;pointer-events:none}
.ds-fbar{pointer-events:auto;display:flex;align-items:center;gap:4px;max-width:100%;overflow-x:auto;padding:4px;border-radius:12px;
  background:var(--ds-menu);color:var(--ds-fg);box-shadow:var(--ds-menu-shadow);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%)}
.ds-fbar .tx{padding:0 8px;font-size:12.5px;white-space:nowrap}
.ds-fbar .ds-roll{position:relative;display:inline-flex;overflow:hidden;vertical-align:bottom;font-weight:600;font-family:var(--ds-mono)}
.ds-fbar .div{width:1px;height:16px;margin:0 2px;flex:none;background:var(--ds-border-strong)}
.ds-fbar .ds-btn.dng{color:var(--ds-danger)}

/* ---------- выезжающее меню на телефоне ---------- */
#dsDrawer{position:fixed;inset:0;z-index:180}
#dsDrawer .bk{position:absolute;inset:0;background:rgb(27 38 50 / .4)}
#dsDrawer .pn{position:absolute;top:0;bottom:0;left:0;width:272px;max-width:85%;display:flex;flex-direction:column;
  background:var(--ds-sidebar);border-right:1px solid var(--ds-border);box-shadow:0 16px 40px rgb(27 38 50 / .35)}
#dsDrawer .ds-brand{padding-top:calc(12px + env(safe-area-inset-top))}
#dsDrawer .ds-foot{padding-bottom:calc(16px + env(safe-area-inset-bottom))}

/* ---------- телефон ---------- */
@media (max-width:899px){
  #app.ds{grid-template-columns:minmax(0,1fr)}
  #app.ds > aside.ds-side{display:none!important}
  .ds-menu-btn{display:inline-flex!important}
  .ds-hrow{padding:calc(10px + env(safe-area-inset-top)) 12px 10px;min-height:52px}
  .ds-title{font-size:14.5px}
  .ds-prof .nm,.ds-hact .ds-rlab{display:none}
  .ds-tabs{padding:0 8px 8px;overflow-x:auto}
  .ds-tabs .seg.ds-list{flex-wrap:nowrap;width:max-content}
  #app.ds main#main{padding:12px 12px calc(28px + env(safe-area-inset-bottom))}
  #main .top{align-items:stretch}
  .ds-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .recbar{bottom:calc(16px + env(safe-area-inset-bottom))!important}
}
@media (max-width:1100px){ .ds-prof .nm{display:none} }

/* ---------- меньше движения ---------- */
@media (prefers-reduced-motion:reduce){
  .ds-hl,.ds-item,.ds-btn,.seg.ds-list > button,.ds-mi,.ds-cb input,.ds-cb svg,.ds-cb svg path,.ds-cb i,#main td.ds-cbc::before,.ds-bar i{transition:none!important}
  .ds-status.live .d::before{animation:none}
}

/* ---------- печать итогов ---------- */
@media print{
  #app.ds{display:block!important}
  #app.ds > aside.ds-side,#mtop.ds-head,#dsFloat,#dsDrawer,.ds-layer{display:none!important}
  #app.ds main#main{padding:0!important}
}
.ds-layer:focus,.ds-dlg:focus{outline:none}
@media (max-width:480px){
  .ds-status{padding:3px;gap:0;font-size:0}        /* на узком экране от статуса остаётся точка */
  .ds-hact{gap:6px}
}

/* Содержательные итоги по стенограмме, включая печать. */
.sum-meeting-title{font-size:22px;line-height:1.35;margin:24px 0 8px}
.sum-topic{margin:0 0 22px}.sum-topic h4{font-size:16px;line-height:1.5;margin:0 0 8px}
.sum-topic p,.sum-sec>p{line-height:1.75}.sum-proof q{display:block;margin:8px 0;white-space:pre-line}
.sum-meeting-divider{border:0;border-top:1px solid var(--line,#ddd);margin:36px 0}
@media print{.sum-meeting-title,.sum-topic h4{break-after:avoid}.sum-topic{break-inside:auto}.sum-meeting-divider{break-before:page}}

@media print{body.printing #prog,body.printing #progdone,body.printing .sum-proof{display:none!important}}
