/* ═══════════════════════════════════════════════════════════════════════════════════════
   themes.css — токени + 10 тем + шрифти для ВСЬОГО мініаппа (власник 2026-10-01, MIGRATION §7).
   Перенесено 1:1 з reports.html (найповніший набір); копії в settings/vault/meet_summaries видалено.
   Підключається у <head> КОЖНОЇ сторінки ПЕРЕД її <style>. Страж: tests/test_ui_guard.py —
   селектори body[data-theme=…] дозволені лише тут.
   Структура: (1) @import шрифтів; (2) :root токени; (3) теми base-набору premium/casino/matrix;
   (4) теми v2; (5) теми в канбані (#kb); (6) сторінкові адаптації (settings/vault/meet).
   Токени тем (DESIGN_SYSTEM §1): --pop-bg — непрозорий фон попапів/дроплистів (ocean .94, BUGLOG #044);
   --title-fg — колір заголовка сторінки/віджета (.rtitle/.settings-title/.ttl), у base не задано →
   компонент бере свій fallback (currentColor / --blue).
   Елементні правила заскоуплені класом body сторінки: .pg-reports / .pg-settings / .pg-vault / .pg-meet —
   щоб правила на спільні класи (.sec/.chip/.item/.ctrl/.md/.ttl…) не перетікали між сторінками (піксельний паритет).
   ═══════════════════════════════════════════════════════════════════════════════════════ */
/* шрифти тем (Rajdhani — casino; IBM Plex Mono/JetBrains Mono/Fira Code/Fraunces/Orbitron/Manrope — теми v2) */
@import url("https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600;700&family=JetBrains+Mono:wght@400;600;700&family=Fira+Code:wght@400;600;700&family=Fraunces:wght@500;600;700&family=Orbitron:wght@500;700&family=Manrope:wght@400;600;700&display=swap");

:root{
  /* шкала розмірів DESIGN_SYSTEM §2.1 (власник 2026-10-04) — єдине джерело; JS-дзеркало UIIcon.SIZES (icons.js), сверка — tests/test_ui_guard.py.
     іконки: chip 14 · q 15 · doc/btn 16 · sheet/menu 18 · form 20 · hd 22 · row 24 · tour 26 · act 27; аватар 28; тап 28 / панель дій 34; ряд шапки 28 */
  --ui-ic-chip:14px; --ui-ic-q:15px; --ui-ic-doc:16px; --ui-ic-sheet:18px; --ui-ic-form:20px; --ui-ic-hd:22px; --ui-ic-row:24px;
  --ui-ic-tour:26px; --ui-ic-act:27px; --ui-av:28px; --ui-tap:28px; --ui-tap-act:34px; --ui-hd-row:28px; --ui-fs-sec:15px; --ui-fs-num:18px;
  --bg:var(--tg-theme-bg-color,#1c1c1e); --card:var(--tg-theme-secondary-bg-color,#2c2c2e);
  --card2:rgba(255,255,255,.06); --text:var(--tg-theme-text-color,#f2f2f7); --muted:var(--tg-theme-hint-color,#8e8e93);
  --blue:var(--tg-theme-button-color,#2481cc); --green:#30d158; --red:#ff453a; --orange:#ff9f0a; --yellow:#ffd60a; --purple:#bf5af2;
  /* семантика віджетів (статуси/KPI/бейджі/графіки): --sblue = «синій статусу» (published/In Progress),
     --cyan = key_update, --reject = reject. Базові теми (base/premium/casino/matrix) успадковують ці
     значення = старі хардкоди; теми v2 перевизначають на свою палітру */
  --sblue:#5e8cf4; --cyan:#40c8e0; --reject:#ff6b52;
  --line:rgba(255,255,255,.09);
  /* токени тем: непрозорий фон попапів (ocean перевизначає на rgba(19,38,66,.94)); --title-fg у base не задано */
  --pop-bg:var(--card);
  --pop-glass:var(--pop-bg);   /* фон плаваючих списків кита (UIPop/UIDate/UISelect); ocean — «скло» як у меню #menu (власник 2026-10-05) */
}

/* ───── Елементні правила /reports (скоуп .pg-reports: ці класи є й на інших сторінках — .sec/.chip/.item/.md…,
   там діють лише їхні власні секції нижче). Змінні тем, body::before/::after та заголовки — спільні. ───── */
/* ── свічення/тіні елементів звітів у неонових темах (були розкидані по reports.html) ── */
body[data-theme="matrix"].pg-reports .kpi7-rev .rvb,body[data-theme="premium"].pg-reports .kpi7-rev .rvb,body[data-theme="casino"].pg-reports .kpi7-rev .rvb{text-shadow:0 0 8px currentColor}
  body[data-theme="matrix"].pg-reports .kc.rev .kv,body[data-theme="premium"].pg-reports .kc.rev .kv,body[data-theme="casino"].pg-reports .kc.rev .kv{text-shadow:0 0 8px currentColor}
  body[data-theme="matrix"].pg-reports .kr-big,body[data-theme="premium"].pg-reports .kr-big,body[data-theme="casino"].pg-reports .kr-big{text-shadow:0 0 8px currentColor}
  body[data-theme="premium"].pg-reports .astatus .ac2,body[data-theme="casino"].pg-reports .astatus .ac2{text-shadow:0 0 5px currentColor}
  body[data-theme="premium"].pg-reports .em-img{box-shadow:0 0 26px #00e5ff3a}
  body[data-theme="casino"].pg-reports .em-img{box-shadow:0 0 26px #ffd24a4d}

/* ───── СТИЛЬ: Premium (neon-on-dark, сетка, градиенты) ───── */
body[data-theme="premium"]{
  --bg:#07070c; --card:#11121c; --card2:#ffffff0a; --text:#e9ecff; --muted:#8b90b5;
  --blue:#00e5ff; --green:#00e5ff; --red:#ff4d9d; --orange:#ffb13d; --yellow:#ffb13d; --purple:#9b6bff; --line:#ffffff14;
  font-family:-apple-system,"Inter","Segoe UI",Roboto,sans-serif;
}
/* єдиний фон без обрізків (власник 2026-09-17): декор — фіксований шар на весь екран, як у casino/matrix */
body[data-theme="premium"]::before{content:"";position:fixed;inset:0;z-index:-1;background:
  linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px) var(--bg);background-size:30px 30px}
body[data-theme="premium"].pg-reports .rtitle,body[data-theme="premium"].pg-settings .settings-title,body[data-theme="premium"].pg-meet .ttl{background:linear-gradient(90deg,#fff,#00e5ff);
  -webkit-background-clip:text;background-clip:text;color:transparent}
body[data-theme="premium"].pg-reports .rtitle .cnt{-webkit-text-fill-color:var(--muted)}
body[data-theme="premium"].pg-reports .chip.on,body[data-theme="premium"].pg-reports .tchip.on,body[data-theme="premium"].pg-reports .cw-chip.on,body[data-theme="premium"].pg-reports .cwp-mi.on{background:#00e5ff1c;border-color:#00e5ff;color:#e9ecff}
body[data-theme="premium"].pg-reports .sec{text-transform:uppercase;letter-spacing:.6px}
body[data-theme="premium"].pg-reports .item:active,body[data-theme="premium"].pg-reports .prow:active{box-shadow:0 6px 20px #00e5ff1c}

/* ───── СТИЛЬ: Casino (Vegas neon, золото, свечения) ───── */
body[data-theme="casino"]{
  --bg:#0a0512; --card:#150a22; --card2:#ffffff10; --text:#fdeecb; --muted:#9a86b5;
  --blue:#2ad8ff; --green:#ffd24a; --red:#ff3b6b; --orange:#ff9d2e; --yellow:#ffd24a; --purple:#b15cff; --line:#ffd24a40; --title-fg:#f7eecf;
  font-family:"Rajdhani",-apple-system,"Segoe UI",sans-serif;
}
body[data-theme="casino"]::before{content:"";position:fixed;inset:0;z-index:-1;background:
  radial-gradient(45% 40% at 15% 10%,#ff3b6b22,transparent 60%),
  radial-gradient(45% 40% at 85% 15%,#b15cff22,transparent 60%),
  radial-gradient(60% 50% at 50% 110%,#ffd24a1f,transparent 60%),var(--bg);}
body[data-theme="casino"].pg-reports .rtitle,body[data-theme="casino"].pg-settings .settings-title,body[data-theme="casino"].pg-meet .ttl{text-transform:uppercase;letter-spacing:1px;
  text-shadow:0 0 2px #ffffff88,0 0 8px var(--yellow),0 0 16px #ff9d2e88}
body[data-theme="casino"].pg-reports .sec{text-transform:uppercase;letter-spacing:.6px}
body[data-theme="casino"].pg-reports .chip.on,body[data-theme="casino"].pg-reports .tchip.on,body[data-theme="casino"].pg-reports .cw-chip.on,body[data-theme="casino"].pg-reports .cwp-mi.on{background:#ffd24a22;border-color:var(--yellow);color:#fdeecb}
body[data-theme="casino"].pg-reports .item,body[data-theme="casino"].pg-reports .prow,body[data-theme="casino"].pg-reports .schip{box-shadow:inset 0 0 12px #00000066}
body[data-theme="casino"].pg-reports .schip b,body[data-theme="casino"].pg-reports .item .tid,body[data-theme="casino"].pg-reports .prow .ct{text-shadow:0 0 6px currentColor}

/* ───── СТИЛЬ: Matrix (terminal / CRT, фосфор-зелёный, скан-лайны) ───── */
body[data-theme="matrix"]{
  --bg:#05080a; --card:#0a0f0c; --card2:rgba(54,249,160,.07); --text:#7cf9c0; --muted:#2f9d6e;
  --blue:#36f9a0; --green:#36f9a0; --red:#ff5d5d; --orange:#b9f73d; --yellow:#d4ff5a; --purple:#36f9a0; --line:rgba(54,249,160,.20); --title-fg:var(--green);
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,"Roboto Mono",monospace;
}
body[data-theme="matrix"]::before{content:"";position:fixed;inset:0;z-index:-1;
  background:var(--mx-grad, radial-gradient(60% 45% at 50% 0%,rgba(54,249,160,.14),transparent 70%)),var(--bg);}
body[data-theme="matrix"]::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;
  background:repeating-linear-gradient(0deg,#0000 0 2px,#00000026 2px 3px);mix-blend-mode:multiply}
body[data-theme="matrix"].pg-reports .rtitle,body[data-theme="matrix"].pg-settings .settings-title,body[data-theme="matrix"].pg-meet .ttl{text-transform:lowercase;letter-spacing:.3px}
body[data-theme="matrix"].pg-reports .rtitle::before,body[data-theme="matrix"].pg-meet .ttl::before{content:"$ ";color:var(--muted)}
@keyframes blink{50%{opacity:0}}
/* «курсор ввода» теперь на активном фильтре-чипе (critical/high/… по всем отчётам) */
body[data-theme="matrix"].pg-reports .schip.on::after{content:"█";margin-left:3px;color:var(--green);animation:blink 1s step-end infinite}
body[data-theme="matrix"].pg-reports .sec{text-transform:uppercase;letter-spacing:.5px;color:var(--green)}
body[data-theme="matrix"].pg-reports .sec::before{content:"── ";color:var(--muted)}
body[data-theme="matrix"].pg-reports .chip,body[data-theme="matrix"].pg-reports .tchip,
body[data-theme="matrix"].pg-reports .schip,body[data-theme="matrix"].pg-reports .item,body[data-theme="matrix"].pg-reports .prow,
body[data-theme="matrix"].pg-reports .rchart,body[data-theme="matrix"].pg-reports .astatus,body[data-theme="matrix"].pg-reports .arow,
body[data-theme="matrix"].pg-reports .usel-trigger,body[data-theme="matrix"].pg-reports .usel-panel{border-radius:4px}
body[data-theme="matrix"].pg-reports .chip.on,body[data-theme="matrix"].pg-reports .tchip.on,body[data-theme="matrix"].pg-reports .schip.on,body[data-theme="matrix"].pg-reports .cw-chip.on,body[data-theme="matrix"].pg-reports .cwp-mi.on{background:rgba(54,249,160,.14);border-color:var(--green);color:var(--green)}
body[data-theme="matrix"].pg-reports .schip b,body[data-theme="matrix"].pg-reports .item .tid,body[data-theme="matrix"].pg-reports .prow .ct,
body[data-theme="matrix"].pg-reports .astatus .ac2,body[data-theme="matrix"].pg-reports .arow .am .rv{text-shadow:0 0 6px currentColor}
body[data-theme="matrix"].pg-reports .item:active,body[data-theme="matrix"].pg-reports .prow:active,body[data-theme="matrix"].pg-reports .arow:active{background:rgba(54,249,160,.10)}

/* ───── СТИЛІ v2 (власник 2026-09-16): Solarized / Dracula / Gruvbox / Paper / Cyberpunk / Ocean Glass.
   Кожна тема покриває той самий набір правил, що premium: змінні, шрифт, фон body + #kb, акцент .on-чипів, .rtitle ───── */
body[data-theme="solarized"]{ --bg:#002b36; --card:#073642; --card2:rgba(238,232,213,.06); --text:#eee8d5; --muted:#93a1a1; --line:#0d4a5a; --blue:#b58900; --green:#859900; --red:#dc322f; --orange:#cb4b16; --yellow:#b58900; --purple:#6c71c4; --sblue:var(--blue); --cyan:#2aa198; --reject:var(--orange); --title-fg:#b58900; font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace; background:var(--bg); }
body[data-theme="solarized"].pg-reports .chip.on,body[data-theme="solarized"].pg-reports .tchip.on,body[data-theme="solarized"].pg-reports .schip.on{background:#b5890022;border-color:#b58900;color:var(--text)}
body[data-theme="dracula"]{ --bg:#282a36; --card:#343746; --card2:rgba(248,248,242,.06); --text:#f8f8f2; --muted:#a6a8b8; --line:#44475a; --blue:#bd93f9; --green:#50fa7b; --red:#ff5555; --orange:#ffb86c; --yellow:#f1fa8c; --purple:#ff79c6; --sblue:var(--blue); --cyan:#8be9fd; --reject:var(--orange); --title-fg:#bd93f9; font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace; background:var(--bg); }
body[data-theme="dracula"].pg-reports .chip.on,body[data-theme="dracula"].pg-reports .tchip.on,body[data-theme="dracula"].pg-reports .schip.on{background:#bd93f922;border-color:#bd93f9;color:var(--text)}
body[data-theme="gruvbox"]{ --bg:#282828; --card:#3c3836; --card2:rgba(235,219,178,.06); --text:#ebdbb2; --muted:#a89984; --line:#504945; --blue:#fe8019; --green:#b8bb26; --red:#fb4934; --orange:#fe8019; --yellow:#fabd2f; --purple:#d3869b; --sblue:var(--blue); --cyan:#8ec07c; --reject:var(--orange); --title-fg:#fe8019; font-family:"Fira Code",ui-monospace,Menlo,Consolas,monospace; background:var(--bg); }
body[data-theme="gruvbox"].pg-reports .chip.on,body[data-theme="gruvbox"].pg-reports .tchip.on,body[data-theme="gruvbox"].pg-reports .schip.on{background:#fe801922;border-color:#fe8019;color:var(--text)}
body[data-theme="paper"]{ --bg:#f6f1e7; --card:#ffffff; --card2:rgba(43,38,32,.05); --text:#2b2620; --muted:#7a7167; --line:#e4dccb; --blue:#c2410c; --green:#2f6f4e; --red:#9f1239; --orange:#c2410c; --yellow:#b7791f; --purple:#6d28d9; --sblue:var(--blue); --cyan:#0e7490; --reject:var(--orange); --title-fg:#c2410c; font-family:"Inter",-apple-system,"Segoe UI",Roboto,system-ui,sans-serif; background:var(--bg); }
body[data-theme="paper"].pg-reports .rtitle,body[data-theme="paper"].pg-reports .pg-hd,body[data-theme="paper"].pg-reports .sec,body[data-theme="paper"].pg-reports h1,body[data-theme="paper"].pg-reports h2,body[data-theme="paper"].pg-reports h3,body[data-theme="paper"].pg-reports .kpi7-rev .rvb,body[data-theme="paper"].pg-reports .kc .kv,body[data-theme="paper"].pg-reports .kr-big,body[data-theme="paper"].pg-reports .ab-v,body[data-theme="paper"].pg-reports .schip b,body[data-theme="paper"].pg-reports #kb-root .chip b{font-family:"Fraunces",Georgia,"Times New Roman",serif}
body[data-theme="paper"].pg-reports .chip.on,body[data-theme="paper"].pg-reports .tchip.on,body[data-theme="paper"].pg-reports .schip.on{background:#c2410c22;border-color:#c2410c;color:var(--text)}
body[data-theme="cyber"]{ --bg:#0a0a0a; --card:#161616; --card2:rgba(255,255,255,.05); --text:#f2f2f2; --muted:#8a8a8a; --line:#2a2a2a; --blue:#f9e000; --green:#00f0ff; --red:#ff003c; --orange:#f9e000; --yellow:#f9e000; --purple:#ff003c; --sblue:var(--blue); --cyan:#fff176; --reject:var(--orange); --title-fg:#f9e000; font-family:-apple-system,"Segoe UI",Roboto,system-ui,sans-serif; background:var(--bg); }
body[data-theme="cyber"].pg-reports .rtitle,body[data-theme="cyber"].pg-reports .pg-hd,body[data-theme="cyber"].pg-reports .sec,body[data-theme="cyber"].pg-reports h1,body[data-theme="cyber"].pg-reports h2,body[data-theme="cyber"].pg-reports h3,body[data-theme="cyber"].pg-reports .kpi7-rev .rvb,body[data-theme="cyber"].pg-reports .kc .kv,body[data-theme="cyber"].pg-reports .kr-big,body[data-theme="cyber"].pg-reports .ab-v,body[data-theme="cyber"].pg-reports .schip b,body[data-theme="cyber"].pg-reports #kb-root .chip b{font-family:"Orbitron",-apple-system,"Segoe UI",Roboto,sans-serif}
body[data-theme="cyber"].pg-reports .chip.on,body[data-theme="cyber"].pg-reports .tchip.on,body[data-theme="cyber"].pg-reports .schip.on,body[data-theme="cyber"].pg-reports .cw-chip.on,body[data-theme="cyber"].pg-reports .cwp-mi.on{background:#f9e00022;border-color:#f9e000;color:var(--text)}
body[data-theme="ocean"]{ --bg:#0b1a2e; --card:rgba(255,255,255,.07); --card2:rgba(255,255,255,.05); --text:#e8f1ff; --muted:#9fb3cc; --line:rgba(255,255,255,.14); --blue:#7dc4e8; --green:#6ee7b7; --red:#f87171; --orange:#fbbf24; --yellow:#fbbf24; --purple:#a78bfa; --sblue:var(--blue); --cyan:#99f6e4; --reject:var(--orange); --pop-bg:rgba(19,38,66,.94); --title-fg:#7dc4e8; font-family:"Manrope",-apple-system,"Segoe UI",Roboto,system-ui,sans-serif; --pop-glass:rgba(255,255,255,.07); }
body[data-theme="ocean"]::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(70% 55% at 20% 0%,#1e3a8a66,transparent 65%),#0b1a2e}
body[data-theme="ocean"].pg-reports .chip.on,body[data-theme="ocean"].pg-reports .tchip.on,body[data-theme="ocean"].pg-reports .schip.on,body[data-theme="ocean"].pg-reports .cw-chip.on,body[data-theme="ocean"].pg-reports .cwp-mi.on{background:#7dc4e822;border-color:#7dc4e8;color:var(--text)}   /* + чип періоду/пункт меню: білий на бірюзі зливався (власник 2026-09-21) */
/* Paper (світла): темний текст на світлих заливках — перекриття захардкоджених темних/білих кольорів базових правил */
body[data-theme="paper"].pg-reports .tabcap,body[data-theme="paper"].pg-reports #kb-root .top{background:rgba(255,255,255,.9);box-shadow:0 8px 28px rgba(43,38,32,.18)}
body[data-theme="paper"].pg-reports .hm-dd,body[data-theme="paper"].pg-reports #kb-root .menu,body[data-theme="paper"].pg-reports #kb-root .dd-list{box-shadow:0 8px 24px rgba(43,38,32,.18)}
body[data-theme="paper"].pg-reports #kb-root .dd-list .mi:hover,body[data-theme="paper"].pg-reports #menu .ctx .mi:hover{background:rgba(43,38,32,.07)}
body[data-theme="paper"].pg-reports #kb-root .dd-list .mi:active{background:rgba(43,38,32,.14)}
body[data-theme="paper"].pg-reports .badge{background:color-mix(in srgb,currentColor 14%,#fff)!important;filter:brightness(.72) saturate(1.15)}
body[data-theme="paper"].pg-reports .badge.seg:not(.on){background:transparent!important}
/* Paper: чипи-назви цілей у панелі канбана (.pgk-l, inline color:<стан>) — той самий прийом, що бейджі:
   світла заливка відтінку + затемнений текст, інакше світлий колір стану не читається на світлому (власник 2026-09-16) */
body[data-theme="paper"].pg-reports .kb-panel .pgk-l{background:color-mix(in srgb,currentColor 22%,#fff)!important;filter:brightness(.72) saturate(1.15)}
body[data-theme="paper"].pg-reports #kb-root .chip.blue b{color:#1d4ed8} body[data-theme="paper"].pg-reports .ab-b.keyup .ab-v{color:#0e7490}
body[data-theme="paper"].pg-reports .kpi7-rev .rvb,body[data-theme="paper"].pg-reports .kc.rev .kv,body[data-theme="paper"].pg-reports .kr-big{text-shadow:none}
body[data-theme="paper"].pg-reports #kb-root .chip.on{background:#c2410c1a}
body[data-theme="paper"].pg-reports #kb-root .bb-chip.on,body[data-theme="paper"].pg-reports #kb-root .fchip.on,body[data-theme="paper"].pg-reports #kb-root .bb-scope button.on{background:#c2410c1a;color:var(--text)}
/* Cyberpunk: прямі кути, ліва кромка карток задач акцентом */
body[data-theme="cyber"].pg-reports .wgt.dash,body[data-theme="cyber"].pg-reports .chip,body[data-theme="cyber"].pg-reports .tchip,body[data-theme="cyber"].pg-reports .schip,body[data-theme="cyber"].pg-reports .prow,body[data-theme="cyber"].pg-reports .ab-b,body[data-theme="cyber"].pg-reports .pgk-t,body[data-theme="cyber"].pg-reports .kb-panel .pgk-t,body[data-theme="cyber"].pg-reports .badge,body[data-theme="cyber"].pg-reports .hm-dd,body[data-theme="cyber"].pg-reports .hm-i,body[data-theme="cyber"].pg-reports .usel-trigger,body[data-theme="cyber"].pg-reports .usel-panel{border-radius:3px}
body[data-theme="cyber"].pg-reports .item,body[data-theme="cyber"].pg-reports #kb-root .kitem{border-left:3px solid var(--blue);padding-left:6px}
body[data-theme="cyber"].pg-reports .sec{text-transform:uppercase;letter-spacing:.8px}
/* Ocean Glass: скляні картки */
body[data-theme="ocean"].pg-reports .wgt.dash,body[data-theme="ocean"].pg-reports .prow,body[data-theme="ocean"].pg-reports .chip,body[data-theme="ocean"].pg-reports .tchip,body[data-theme="ocean"].pg-reports .schip,body[data-theme="ocean"].pg-reports .ab-b,body[data-theme="ocean"].pg-reports .hm-dd,body[data-theme="ocean"].pg-reports .usel-panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="ocean"].pg-reports .tabcap,body[data-theme="ocean"].pg-reports #kb-root .top{background:rgba(11,26,46,.7)}
/* календар в ocean — те саме «стекло», що у дроплистів (.usel-panel: --card + blur), без прозорого фону (власник 2026-09-17) */
body[data-theme="ocean"].pg-reports #menu,body[data-theme="ocean"].pg-reports #kb-root .menu{background:rgba(255,255,255,.07);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* попапи — щільний фон (≥.92): напівпрозоре скло просвічувало картки під календарем/мультивибором (BUGLOG #044) */
body[data-theme="ocean"].pg-reports #calpop,body[data-theme="ocean"].pg-reports #ampop{background:var(--pop-bg);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="ocean"].pg-reports #fv-copyman{background:var(--pop-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="matrix"].pg-reports .paintfab{display:flex;box-shadow:0 0 14px #0007,0 0 10px var(--green)}

/* ───── теми звітів у канбані: оверлей #kb непрозорий і перекриває декор body — дублюємо
   фон-декор на #kb; акценти .on — під колір теми (як .chip.on/.tchip.on у звітах) ───── */
body[data-theme="premium"].pg-reports #kb{background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:30px 30px}
body[data-theme="casino"].pg-reports #kb{background:radial-gradient(45% 40% at 15% 10%,#ff3b6b22,transparent 60%),
  radial-gradient(45% 40% at 85% 15%,#b15cff22,transparent 60%),
  radial-gradient(60% 50% at 50% 110%,#ffd24a1f,transparent 60%),var(--bg)}
body[data-theme="matrix"].pg-reports #kb{background:var(--mx-grad,radial-gradient(60% 45% at 50% 0%,rgba(54,249,160,.14),transparent 70%)),var(--bg)}
body[data-theme="premium"].pg-reports #kb-root .chip.on,body[data-theme="premium"].pg-reports #kb-root .fchip.on,
body[data-theme="premium"].pg-reports #kb-root .bb-chip.on,body[data-theme="premium"].pg-reports #kb-root .bb-scope button.on{background:#00e5ff1c;border-color:#00e5ff}
body[data-theme="casino"].pg-reports #kb-root .chip.on,body[data-theme="casino"].pg-reports #kb-root .fchip.on,
body[data-theme="casino"].pg-reports #kb-root .bb-chip.on,body[data-theme="casino"].pg-reports #kb-root .bb-scope button.on{background:#ffd24a22;border-color:var(--yellow);color:#fdeecb}
body[data-theme="matrix"].pg-reports #kb-root .chip.on,body[data-theme="matrix"].pg-reports #kb-root .fchip.on,
body[data-theme="matrix"].pg-reports #kb-root .bb-chip.on,body[data-theme="matrix"].pg-reports #kb-root .bb-scope button.on{background:rgba(54,249,160,.14);border-color:var(--green);color:var(--green)}
/* casino/matrix: свічення цифр-лічильників (як .schip b у звітах) */
body[data-theme="casino"].pg-reports #kb-root .chip b,
body[data-theme="matrix"].pg-reports #kb-root .chip b{text-shadow:0 0 6px currentColor}
/* matrix: термінальні прямі кути на хромі канбана */
body[data-theme="matrix"].pg-reports #kb-root .kcol,body[data-theme="matrix"].pg-reports #kb-root .chip,
body[data-theme="matrix"].pg-reports #kb-root .fchip,
body[data-theme="matrix"].pg-reports #kb-root .bb-chip,body[data-theme="matrix"].pg-reports #kb-root .bb-scope,
body[data-theme="matrix"].pg-reports #kb-root .menu,body[data-theme="matrix"].pg-reports #kb-root .dd-list,
body[data-theme="matrix"].pg-reports #kb-root .badge,body[data-theme="matrix"].pg-reports #kb-root .inp,
body[data-theme="matrix"].pg-reports #kb-root .modal{border-radius:4px}
/* ───── теми v2 у канбані: фон-декор #kb + акценти .on (дубль правил звітів) ───── */
body[data-theme="solarized"].pg-reports #kb{background:var(--bg)}
body[data-theme="solarized"].pg-reports #kb-root .chip.on,body[data-theme="solarized"].pg-reports #kb-root .fchip.on,body[data-theme="solarized"].pg-reports #kb-root .bb-chip.on,body[data-theme="solarized"].pg-reports #kb-root .bb-scope button.on{background:#b5890022;border-color:#b58900}
body[data-theme="dracula"].pg-reports #kb{background:var(--bg)}
body[data-theme="dracula"].pg-reports #kb-root .chip.on,body[data-theme="dracula"].pg-reports #kb-root .fchip.on,body[data-theme="dracula"].pg-reports #kb-root .bb-chip.on,body[data-theme="dracula"].pg-reports #kb-root .bb-scope button.on{background:#bd93f922;border-color:#bd93f9}
body[data-theme="gruvbox"].pg-reports #kb{background:var(--bg)}
body[data-theme="gruvbox"].pg-reports #kb-root .chip.on,body[data-theme="gruvbox"].pg-reports #kb-root .fchip.on,body[data-theme="gruvbox"].pg-reports #kb-root .bb-chip.on,body[data-theme="gruvbox"].pg-reports #kb-root .bb-scope button.on{background:#fe801922;border-color:#fe8019}
body[data-theme="paper"].pg-reports #kb{background:var(--bg)}
body[data-theme="paper"].pg-reports #kb-root .chip.on,body[data-theme="paper"].pg-reports #kb-root .fchip.on,body[data-theme="paper"].pg-reports #kb-root .bb-chip.on,body[data-theme="paper"].pg-reports #kb-root .bb-scope button.on{background:#c2410c22;border-color:#c2410c}
body[data-theme="cyber"].pg-reports #kb{background:var(--bg)}
body[data-theme="cyber"].pg-reports #kb-root .chip.on,body[data-theme="cyber"].pg-reports #kb-root .fchip.on,body[data-theme="cyber"].pg-reports #kb-root .bb-chip.on,body[data-theme="cyber"].pg-reports #kb-root .bb-scope button.on{background:#f9e00022;border-color:#f9e000}
body[data-theme="ocean"].pg-reports #kb{background:radial-gradient(70% 55% at 20% 0%,#1e3a8a66,transparent 65%),#0b1a2e}
body[data-theme="ocean"].pg-reports #kb-root .chip.on,body[data-theme="ocean"].pg-reports #kb-root .fchip.on,body[data-theme="ocean"].pg-reports #kb-root .bb-chip.on,body[data-theme="ocean"].pg-reports #kb-root .bb-scope button.on{background:#7dc4e822;border-color:#7dc4e8}
body[data-theme="cyber"].pg-reports #kb-root .kcol,body[data-theme="cyber"].pg-reports #kb-root .chip,body[data-theme="cyber"].pg-reports #kb-root .fchip,body[data-theme="cyber"].pg-reports #kb-root .bb-chip,body[data-theme="cyber"].pg-reports #kb-root .bb-scope,body[data-theme="cyber"].pg-reports #kb-root .menu,body[data-theme="cyber"].pg-reports #kb-root .dd-list,body[data-theme="cyber"].pg-reports #kb-root .badge,body[data-theme="cyber"].pg-reports #kb-root .inp,body[data-theme="cyber"].pg-reports #kb-root .modal,body[data-theme="cyber"].pg-reports #kb-root .kitem.sel{border-radius:3px}
body[data-theme="ocean"].pg-reports #kb-root .kcol,body[data-theme="ocean"].pg-reports #kb-root .bb-chip,body[data-theme="ocean"].pg-reports #kb-root .fchip,body[data-theme="ocean"].pg-reports #kb-root .chip{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* ───── Сторінкові адаптації (були в settings.html / vault.html / meet_summaries.html) ───── */
/* /settings (скоуп .pg-settings) */
body[data-theme="ocean"].pg-settings #set-dd { background: rgba(11,26,46,.85); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
/* (.settings-title = .rtitle у reports — спільні правила заголовка вище; тут лише унікальні селектори сторінки) */
body[data-theme="matrix"].pg-settings .back-btn,body[data-theme="matrix"].pg-settings .user-card,body[data-theme="matrix"].pg-settings .pl-wrap,body[data-theme="matrix"].pg-settings .status-menu,body[data-theme="matrix"].pg-settings .set-row input,body[data-theme="matrix"].pg-settings .set-row select,body[data-theme="matrix"].pg-settings .pl-inp,body[data-theme="matrix"].pg-settings .invite-link{border-radius:4px}
body[data-theme="paper"].pg-settings .settings-title,body[data-theme="paper"].pg-settings .set-group-h,body[data-theme="paper"].pg-settings .dept-name{font-family:"Fraunces",Georgia,"Times New Roman",serif}
body[data-theme="cyber"].pg-settings .settings-title,body[data-theme="cyber"].pg-settings .set-group-h{font-family:"Orbitron",-apple-system,"Segoe UI",Roboto,sans-serif}
body[data-theme="cyber"].pg-settings .back-btn,body[data-theme="cyber"].pg-settings .ubar-btn,body[data-theme="cyber"].pg-settings .user-card,body[data-theme="cyber"].pg-settings .pl-wrap,body[data-theme="cyber"].pg-settings .status-menu,body[data-theme="cyber"].pg-settings .mp-chip,body[data-theme="cyber"].pg-settings .mp-btn,body[data-theme="cyber"].pg-settings .set-row input,body[data-theme="cyber"].pg-settings .set-row select,body[data-theme="cyber"].pg-settings .pl-inp,body[data-theme="cyber"].pg-settings .invite-link,body[data-theme="cyber"].pg-settings .u-role,body[data-theme="cyber"].pg-settings .pl-badge{border-radius:3px}
body[data-theme="cyber"].pg-settings .user-card,body[data-theme="cyber"].pg-settings .pl-wrap{border-left:3px solid var(--blue)}
/* Paper (світла): світлі тіні; бейджі-заливки — темний текст на світлій заливці (як у reports) */
body[data-theme="paper"].pg-settings,body[data-theme="paper"].pg-meet{--shd:0 8px 24px rgba(43,38,32,.18)}   /* vault має свій --shd і paper його не змінював */
body[data-theme="paper"].pg-settings .u-perm-chip,body[data-theme="paper"].pg-settings .mp-alias,body[data-theme="paper"].pg-settings .mp-team,body[data-theme="paper"].pg-settings .ubar-btn.on,body[data-theme="paper"].pg-settings .mp-chip.on,body[data-theme="paper"].pg-settings .u-role.u-super,body[data-theme="paper"].pg-settings .u-disable,body[data-theme="paper"].pg-settings .mp-btn.dng{background:color-mix(in srgb,currentColor 14%,#fff)!important;filter:brightness(.72) saturate(1.15)}
body[data-theme="paper"].pg-settings .ubar-invite,body[data-theme="paper"].pg-settings .pl-save,body[data-theme="paper"].pg-settings .mp-btn.pri,body[data-theme="paper"].pg-settings .u-del,body[data-theme="paper"].pg-settings .u-restore{color:#fff!important}
/* Ocean Glass: скляні картки/панелі/попапи (rgba(255,255,255,.07) + blur, як у reports) */
body[data-theme="ocean"].pg-settings .user-card,body[data-theme="ocean"].pg-settings .pl-wrap,body[data-theme="ocean"].pg-settings .invite-link,body[data-theme="ocean"].pg-settings .back-btn,body[data-theme="ocean"].pg-settings .set-grid-btn,body[data-theme="ocean"].pg-settings .ubar-btn,body[data-theme="ocean"].pg-settings .mp-chip,body[data-theme="ocean"].pg-settings .mp-btn{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="ocean"].pg-settings .status-menu,body[data-theme="ocean"].pg-settings .mp-card{background:rgba(255,255,255,.07);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="ocean"].pg-settings .settings-head,body[data-theme="ocean"].pg-settings .sg-bar{background:rgba(11,26,46,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
/* Ocean Glass: шторка структури — скло (власник 2026-09-26); пункти — той самий glass-шар, що картки */
body[data-theme="ocean"].pg-settings .sg-side{background:rgba(11,26,46,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-right:none;box-shadow:none}   /* = колір/скло шапки .settings-head */
body[data-theme="ocean"].pg-settings .sg-item{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
body[data-theme="ocean"].pg-settings .sg-item.active{background:rgba(94,234,212,.16);border-color:var(--blue)}
/* /vault + /reports (fin): менеджер копіювання — непрозорий у ocean (blur поверх --pop-bg) */
body[data-theme="ocean"] #copyman{background:var(--pop-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* /meet/summaries (скоуп .pg-meet) */
/* (.ttl = .rtitle у reports — спільні правила заголовка вище; тут лише унікальні селектори сторінки) */
body[data-theme="matrix"].pg-meet .hsel-trigger,body[data-theme="matrix"].pg-meet .hsel-panel,body[data-theme="matrix"].pg-meet .back,body[data-theme="matrix"].pg-meet .chip,body[data-theme="matrix"].pg-meet .md,body[data-theme="matrix"].pg-meet .trow,body[data-theme="matrix"].pg-meet .ded-rail,body[data-theme="matrix"].pg-meet .stchip{border-radius:4px}
body[data-theme="paper"].pg-meet .ttl,body[data-theme="paper"].pg-meet .mtitle,body[data-theme="paper"].pg-meet .sec,body[data-theme="paper"].pg-meet .md h1,body[data-theme="paper"].pg-meet .md h2,body[data-theme="paper"].pg-meet .md h3{font-family:"Fraunces",Georgia,"Times New Roman",serif}
body[data-theme="cyber"].pg-meet .ttl,body[data-theme="cyber"].pg-meet .mtitle,body[data-theme="cyber"].pg-meet .sec{font-family:"Orbitron",-apple-system,"Segoe UI",Roboto,sans-serif}
body[data-theme="cyber"].pg-meet .back,body[data-theme="cyber"].pg-meet .hsel-trigger,body[data-theme="cyber"].pg-meet .hsel-panel,body[data-theme="cyber"].pg-meet .chip,body[data-theme="cyber"].pg-meet .md,body[data-theme="cyber"].pg-meet .dbtn,body[data-theme="cyber"].pg-meet .badge,body[data-theme="cyber"].pg-meet .tbtn,body[data-theme="cyber"].pg-meet .upanel,body[data-theme="cyber"].pg-meet .ded-rail,body[data-theme="cyber"].pg-meet .stchip{border-radius:3px}
body[data-theme="cyber"].pg-meet .trow{border-radius:3px;border-left:3px solid var(--blue)}
body[data-theme="cyber"].pg-meet .sec{text-transform:uppercase;letter-spacing:.8px}
body[data-theme="matrix"].pg-meet .chip.on{background:rgba(54,249,160,.14);border-color:var(--green);color:var(--green)}
/* Paper (світла): бейджі/чипи — темний текст на світлій заливці (як у reports) */
body[data-theme="paper"].pg-meet .badge{background:color-mix(in srgb,currentColor 14%,#fff)!important;filter:brightness(.72) saturate(1.15)}
body[data-theme="paper"].pg-meet .chip.on{background:#c2410c22;border-color:#c2410c;color:var(--text)}
/* Ocean Glass: скляні панелі/картки/дропдауни (rgba(255,255,255,.07) + blur, як у reports) */
body[data-theme="ocean"].pg-meet .back,body[data-theme="ocean"].pg-meet .hsel-trigger,body[data-theme="ocean"].pg-meet .chip,body[data-theme="ocean"].pg-meet .md,body[data-theme="ocean"].pg-meet .trow,body[data-theme="ocean"].pg-meet .dbtn,body[data-theme="ocean"].pg-meet .ded-rail{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="ocean"].pg-meet .dcard{background:rgba(255,255,255,.07);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* дропдауни ocean — щільний фон (≥.92), інакше рядки під панеллю просвічували (BUGLOG #044) */
body[data-theme="ocean"].pg-meet .hsel-panel,body[data-theme="ocean"].pg-meet .upanel{background:#132642;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-theme="ocean"].pg-meet .ctrl{background:rgba(11,26,46,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
/* ── компонент: тонований чип дії `.uichip-t` (власник 2026-10-04, варіант 3; DESIGN_SYSTEM §6) ──
   «+ Оплата»/«+ Сервіс» у шапці «Фінанси», «+ Оплата» у формі «нова задача». Однаково на <span> і <button>.
   Свої копії цього стилю не малювати — лише цей клас. */
.uichip-t{height:22px;padding:0 8px 0 5px;gap:3px;text-transform:uppercase;letter-spacing:.04em;border:0;border-radius:6px;background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue);display:inline-flex;align-items:center;font-family:inherit;font-size:11.5px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer}
/* ── компоненти борда/картки (винесено з екрана «Сейф» 2026-10-04, DESIGN_SYSTEM §0/§11; вид — як борд «Фінанси», компактно §2).
   Загальні: будь-який модуль/борд бере ці класи, своїх копій не малювати. ── */
.uihd{display:flex;align-items:center;gap:6px;min-height:var(--ui-hd-row);padding:0 0 4px}                        /* шапка модуля — лише ui/head.js (UIHead): [←] · .uittl · after · дії */
.uihd-n{flex:0 0 auto;font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}   /* лічильник за заголовком шапки (UIHead after), «в роботі 40» — власник 2026-10-05 */
.uihd-n b{color:var(--text)}
.uihd-act{flex:none;display:inline-flex;align-items:center;gap:6px}                                    /* дії шапки: чипи/стопка/doc — однаковий зазор 6px */
.uittl{flex:1;min-width:0;font-size:14px;line-height:22px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uibanner{margin:4px 0;background:color-mix(in srgb,var(--orange) 14%,transparent);color:var(--orange);border-radius:8px;padding:5px 8px;font-size:11.5px}
.uisearch{width:100%;height:34px;box-sizing:border-box;margin:0 0 4px;background:transparent;border:0;border-bottom:1px solid transparent;border-radius:0;padding:0 4px;color:var(--text);font-family:inherit;font-size:12.5px;outline:none}
.uisearch:focus{border-bottom-color:var(--blue)}   /* лінія лише у фокусі — роздільник між шапкою і списком прибрано (власник 2026-10-10) */
.uisearch::placeholder{color:var(--muted)}
.uiseg{display:flex;gap:4px;margin-bottom:6px}                                                       /* чипи-фільтри/сегменти (як вкладки «Фінансів») */
.uiseg>span{flex:1;text-align:center;font-size:11px;padding:2px 9px;border-radius:6px;color:var(--muted);cursor:pointer;user-select:none;-webkit-user-select:none;white-space:nowrap}
.uiseg>span.on{background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue);font-weight:600}
.uiseg.fit{display:inline-flex;margin:0;flex:0 0 auto}                                                 /* у рядку форми — по ширині змісту */
.uiseg.fit>span{flex:0 0 auto}
.uiseg.ic>span{display:inline-flex;align-items:center;gap:4px;font-size:14px;line-height:var(--ui-ic-hd);padding:3px 7px}   /* іконки 22 = як «←»/дока в шапці (власник 2026-10-04) */                      /* сегмент іконок із лічильником: іконка набору 16 + число (шапка «Діда», D2, 2026-10-04) */
.uisec{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:9px 3px 3px;font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.uisec>span:first-child{display:inline-flex;align-items:center;gap:4px}
.uili{display:flex;align-items:center;gap:8px;padding:4px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent);cursor:pointer}   /* лінія між рядками тихіша за --line (≈4%): власник 2026-10-10, мокап DpxTEtSuTwqRa3dZ6nLNXv варіант B */   /* рядок списку L1: іконка · назва/підрядок · бейдж */
.uili:active{opacity:.7}
.uili-ic{flex:0 0 32px;width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:11.5px}
.uili-bd{flex:1;min-width:0}
.uili-n{font-weight:600;font-size:12.5px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}   /* назви НЕ обрізаємо — переносимо (власник 2026-10-11, «тайтлы не сокращаем», удруге після шапки) */
.uili-s{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uili.wrap{align-items:flex-start;padding:6px 0;cursor:default;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}   /* рядок I1 без картки: текст переноситься, дії праворуч на рівні назви («Дід», 2026-10-04) */
.uili.wrap:active{opacity:1}
.uili.wrap .uili-n{font-weight:400;white-space:normal;overflow:visible;overflow-wrap:anywhere}
.uili.wrap .uili-s{white-space:normal;margin-top:2px}
.uili-s b{color:var(--text);font-weight:500}
.uili-n i{font-style:normal;font-weight:500;color:var(--muted)}   /* наступні частини імені «стара | нова» — приглушено (мокап «Додатки» v4, власник 2026-10-08) */
.uifix{display:flex;flex-direction:column;min-height:0}   /* нерухома шапка екрана (власник 2026-10-08, перший — «Додатки»): висоту ставить UIScroll.fix(el) */
.uifix.in{height:100%}                                                 /* у контейнері з власною висотою (шторка #appsheet-body) */
.uifix-top{flex:0 0 auto}                                              /* шапка UIHead + фільтр + пошук — на місці */
.uifix-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:10px}   /* крутиться лише список; правий відступ — під крапки UIScroll (right 4px, 4px), щоб не лягали на шеврони рядків (власник 2026-10-11) */
.uili-s .r{color:var(--red);font-weight:600}
.uili-act{flex:none;display:inline-flex;align-items:center;gap:4px;margin-top:-4px}
.uili-act>.uiic-btn{min-width:var(--ui-tap);min-height:var(--ui-tap);width:var(--ui-tap);height:var(--ui-tap)}
.uibadge{flex:none;font-size:10.5px;line-height:16px;padding:0 6px;border-radius:6px;font-weight:600;white-space:nowrap;background:var(--card2);color:var(--muted)}
.uibadge.w{background:color-mix(in srgb,var(--orange) 16%,transparent);color:var(--orange)}
.uibadge.r{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}
.uibadge.g{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}
.uibadge.tap{cursor:pointer}
.uibadge.off{opacity:.55;text-decoration:line-through}
.uilog{display:flex;gap:8px;padding:4px 2px;border-bottom:1px solid var(--line);font-size:11.5px}   /* рядок журналу: час · подія */
.uilog-t{flex:0 0 auto;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.uilinks{display:flex;gap:14px;justify-content:flex-end;margin:6px 3px 0;font-size:11.5px}            /* текстові дії під секцією */
.uilinks>span{color:var(--muted);cursor:pointer}
.uilinks>span.r{color:var(--red)}
.uiinfo{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 8px;border-radius:8px;background:color-mix(in srgb,var(--blue) 12%,transparent);font-size:12px}
.uiinfo b{color:var(--blue)}
.uinote{margin:6px 3px 0;font-size:10.5px;line-height:1.4;color:var(--muted)}
.uipre{color:var(--muted);white-space:pre-line}
.uimd{margin:5px 0 2px;font-size:12px;line-height:1.5;word-break:break-word}                            /* текст маркдауну (саммері мітів, порт meet_summaries .md 2026-10-04) */
.uimd h1,.uimd h2,.uimd h3{font-size:var(--ui-fs-sec);margin:14px 0 4px;font-weight:700}   /* заголовки як оглавлення (власник 2026-10-04) */
.uimd h1:first-child,.uimd h2:first-child,.uimd h3:first-child,.uimd p:first-child{margin-top:0}
.uimd p{margin:5px 0}
.uimd ul,.uimd ol{margin:3px 0 5px;padding-left:17px}
.uimd li{margin:1.5px 0}
.uimd code{background:var(--card2);border-radius:4px;padding:0 3px;font-size:11px}
.uimd .uiic{vertical-align:-3px;margin-right:3px;color:var(--blue)}   /* емодзі тексту → іконки акцентом теми */
/* чат «питання → відповідь» (власник 2026-10-19, перший — «Аналітик», мокап VFmxd9rWxeoQRwpTfjyuf5 v2): стрічка .uichat,
   питання праворуч .uichat-q (тинт акценту 8%), відповідь .uichat-a (тиха заливка --card2) по висоті тексту; «думаю» — .uichat-wait;
   заливки тихіші, «копіювати»/час під відповіддю прибрано — власник 2026-10-19 після стенду */
.uichat{display:flex;flex-direction:column;gap:8px;padding:6px 0;-webkit-user-select:none;user-select:none}   /* виділяється лише текст повідомлень, не порожнє поле стрічки (власник 2026-10-19: виділення заливало весь екран) */
.uichat-q,.uichat-a,.uichat .uibanner-t{-webkit-user-select:text;user-select:text}
.uichat-q{align-self:flex-end;max-width:84%;background:color-mix(in srgb,var(--blue) 8%,transparent);border-radius:12px 12px 4px 12px;padding:6px 9px;font-size:12.5px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}
.uichat-a{min-width:0;max-width:100%;overflow:hidden;background:var(--card2);border-radius:12px;padding:7px 10px}
.uichat-a>.uimd{margin:0;padding:0;max-width:none;font-size:12.5px;line-height:1.45}   /* лист редактора ui/mdedit.js (.uimd: 15px, padding-bottom 90px) у чаті не потрібен — картка по висоті тексту */
.uichat-a>.uimd>*:last-child{margin-bottom:0}
.uichat-wait{color:var(--muted);font-size:11.5px;padding:2px 2px;animation:uichatw 1.4s ease-in-out infinite}
@keyframes uichatw{0%,100%{opacity:.45}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.uichat-wait{animation:none}}
/* ряд вводу з іконкою відправки (власник 2026-10-19, «Аналітик»): поле без рамки на картці, праворуч — лише іконка send без підкладки */
.uisend{display:flex;align-items:flex-end;gap:4px;background:var(--card);border-radius:12px;padding:3px 3px 3px 10px;margin:4px 0 6px}
.uisend>textarea{flex:1;min-width:0;max-height:96px;margin:0;padding:6px 0;background:transparent;border:0;outline:none;resize:none;color:var(--text);font-family:inherit;font-size:12.5px;line-height:1.4}
.uisend>textarea::placeholder{color:var(--muted)}
.uisend>.uiic-btn[disabled]{opacity:.4;pointer-events:none}
/* банер-рядок з іконками (власник 2026-10-19, попередження «довга сесія» «Аналітика»): іконка warn · текст · дія-іконка праворуч */
.uibanner.row{display:flex;align-items:flex-start;gap:6px;color:var(--text)}
.uibanner.row>.uiic{flex:none;color:var(--orange);margin-top:1px}
.uibanner.row>.uibanner-t{flex:1;min-width:0}
.uibanner.row>.uiic-btn{flex:none;color:var(--orange);margin:-4px -4px -4px 0}
.uifix-bot{flex:0 0 auto}                                              /* нижній ряд нерухомого екрана (поле вводу чату) — під .uifix-body, на місці */
.uisec.lg{font-size:var(--ui-fs-sec);font-weight:700;letter-spacing:0;text-transform:none;color:var(--text);margin:14px 2px 4px}   /* заголовок розділу борда як оглавлення */
.uisec.lg.ul{margin-top:0;padding-bottom:2px;border-bottom:2px solid var(--line);color:var(--blue)}   /* назва розділу — акцентом теми (власник 2026-10-11); лічильник праворуч — як текст */
.uisec.lg.ul>span:last-child{color:var(--muted);font-size:13px;font-weight:600}   /* лічильник — менший, сірим як назва «КАНБАН» у шапці (власник 2026-10-11) */   /* заголовок розділу підкреслений як рядки .uili, лише товще; відступ між розділами ≈4px (18 → 12 → 8 → 4, власник 2026-10-10 «ще зменш») */
.uisec.tap>span:last-child{display:inline-flex;align-items:center;gap:6px}   /* лічильник + шеврон згортання */
.uisec.tap .uiic.chev{color:var(--muted);transition:transform .2s}
.uisec.tap.off .uiic.chev{transform:rotate(-90deg)}                        /* розділ згорнуто — шеврон убік (список «Доків», 2026-10-10) */
.uisub>.uili, .uiacc-det>div>.uili {padding-left:calc(2px + var(--ui-ic-doc) + 4px)}   /* рядки-підпункти — текст рівно під НАЗВОЮ розділу: відступ заголовка 2px + іконка doc + gap 4 (власник 2026-10-11) */
.uisec.lg .uiic{color:var(--blue)}                                                       /* іконка набору замість емодзі в тексті саммері */
.uisec.hd{font-size:14px;line-height:22px;font-weight:600;letter-spacing:.08em;color:var(--muted);margin:16px 2px 4px}   /* заголовок розділу шрифтом шапки (.uittl), відступ зверху — відділяє блоки (власник 2026-10-05) */
.uisec-dd{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}   /* компактний дроплист праворуч у заголовку розділу (період графіка) */
.uisec-dd:active{opacity:.7}
.uitr{display:grid;grid-template-columns:minmax(0,1fr) 72px 46px 58px;column-gap:8px;align-items:center;min-height:32px;padding:0 6px;border-bottom:1px solid var(--line);font-size:12.5px}   /* рядок-таблиця: назва · дата · дні · дії (власник 2026-10-05, статуси профілю) */
.uitr-n{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--c,var(--text));font-weight:600}
.uitr-n small{font-size:10.5px;color:var(--muted);font-weight:500;margin-left:4px}
.uitr-d{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.uitr-v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.uitr-v.red{color:var(--red)}
.uitr-a{display:flex;justify-content:flex-end;align-items:center;gap:4px}   /* align-items — різновисокі дії (тумблер .uisw 16 + іконки 32) на одному центрі, 2026-10-08 */
.uitr.tap{cursor:pointer;-webkit-tap-highlight-color:transparent}   /* увесь рядок — дія (власник 2026-10-05: тап по рядку статусу = календар) */
.uitr.tap:active{opacity:.75}
.uitr.on{background:color-mix(in srgb,var(--c,var(--blue)) 16%,transparent);border-radius:7px;border-bottom-color:transparent}   /* поточний — фонова заливка кольором статусу */
/* .uitr.g5 — 5 колонок «код · головне · два числа · дії (тумблер .uisw + 2 іконки)»; .uitr.h — рядок підписів колонок над рядками
   (9.5px капсом muted, без висоти рядка). Перший — гео-рядки «UAC · трекінг» (власник 2026-10-08, мокап варіант A) */
.uitr.g5{grid-template-columns:28px minmax(0,1fr) 46px 46px 102px;column-gap:6px}
.uitr.h{min-height:0;padding-top:2px;padding-bottom:3px;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.uitr.h>.uitr-d,.uitr.h>.uitr-v{font-weight:700;color:var(--muted)}
/* .uisw — тумблер увімк./вимк. 30×16 (власник 2026-10-08, мокап UAC варіант A): <button class="uisw on" role="switch" aria-checked>;
   .on — заливка --green, кружок праворуч; .busy — запит іде (приглушено, без тапів). Поки лише UAC; копії в ⚙️ — при переїзді налаштувань */
.uisw{position:relative;flex:none;width:30px;height:16px;padding:0;margin:0;border:0;border-radius:8px;background:var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}
.uisw::after{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--muted);transition:left .15s,background .15s}
.uisw.on{background:var(--green)}
.uisw.on::after{left:16px;background:#fff}
.uisw.busy{opacity:.5;pointer-events:none}
/* .uisw2 — список-тумблери у 2 стовпчики (власник 2026-10-09, ⚙️ хаба «Графік»): пункт = назва + .uisw, тап по пункту — перемикач;
   назва НЕ скорочується — шрифт зменшується під ширину стовпчика (container query: 7cqi, 9–12.5px) */
.uisw2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
.uisw2-it{display:flex;align-items:center;gap:6px;min-width:0;min-height:34px;border-bottom:1px solid var(--line);cursor:pointer;container-type:inline-size;-webkit-tap-highlight-color:transparent}
.uisw2-it:active{opacity:.75}
.uisw2-n{flex:1 1 auto;min-width:0;white-space:nowrap;font-size:clamp(9px,7cqi,12.5px);font-weight:600;color:var(--text)}
.uisw:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
@media (prefers-reduced-motion:reduce){.uisw,.uisw::after{transition:none}}
/* стан «зайнято» (власник 2026-10-12, «АІ формат» доків — «нажал и не понятно работает»): .uibusy — область під довгою операцією
   (тьмяніє, тапи не проходять), .uispin — кільце-спінер 18px акцентом (у кнопці шапки .uiic-btn.busy крутиться сама іконка);
   додати клас на старті, зняти в finally — результат/помилка показуються як звичайно */
.uibusy{position:relative;pointer-events:none}
.uibusy::after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 55%,transparent);border-radius:inherit}
.uispin{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--blue);animation:uispin .8s linear infinite;z-index:1}
.uiic-btn.busy svg{animation:uispin 1s linear infinite}
@keyframes uispin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.uispin,.uiic-btn.busy svg{animation-duration:2.4s}}
.uicard{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:2px 10px;margin:6px 0}   /* картка групи L2: шапка + рядки (задачі людини в «Саммері», 2026-10-04) */
.uicard-hd{display:flex;align-items:center;gap:6px;font-weight:700;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line)}
.uicard-hd>.n{margin-left:auto;color:var(--muted);font-weight:600}
.uicard-hd>.uiic{flex:none;color:var(--blue)}                                                      /* іконка розділу в шапці картки акцентом (список «Доків», 2026-10-10) */
.uicard.warn .uicard-hd{color:var(--yellow)}
.uicard>.uili:last-child{border-bottom:0}
.uisec.tap{cursor:pointer}                                                                                /* заголовок секції-перемикача (згорнуто/розгорнуто) */
.uisec .uiic{flex:none}
.uibar{display:flex;gap:6px;margin-top:10px}
.uibtn{flex:1;text-align:center;padding:8px 0;border:0;border-radius:9px;font-family:inherit;font-weight:700;font-size:12.5px;background:var(--card2);color:var(--text);cursor:pointer}
.uibtn.pri{background:var(--blue);color:#fff}
.uibtn.red{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.uibtn.grn{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}
.uibtn.sq{flex:0 0 46px}
/* .uiseg.lock — сегмент лише для читання */
.uiseg.lock>span{cursor:default}
.uiseg.acc>span{color:var(--blue)}   /* сегмент-іконка завжди акцентом теми (як .uiic-btn у шапці), .on — ще й підложка; 2026-10-06, «Капи»: фільтр партнерок */
/* .uiseg>span.dd — сегмент-дроплист: текст вибраного (ellipsis) + шеврон; тап — UIPop зі списком (власник 2026-10-08, фільтр баєрів UAC) */
.uiseg>span.dd{display:inline-flex;align-items:center;gap:3px;min-width:0;max-width:170px}
.uiseg>span.dd>i{font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis}
.uiseg>span.dd>.uiic{flex:none}
.uibtn:active{opacity:.7}
.uibtn[disabled]{opacity:.5;cursor:default}
.uitotp{display:inline-flex;align-items:center;gap:8px}                                              /* код 2FA з кільцем-відліком */
.uitotp-ring{width:20px;height:20px;flex:none}
.uitotp-code{font-family:ui-monospace,Menlo,monospace;font-size:17px;font-weight:700;letter-spacing:3px}
/* іконки ui/icons.js (стиль «B», власник 2026-10-04): SVG 24×24, stroke currentColor 2.2, round; кнопка — лише іконка */
.uiic{flex:none;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.uiic.acc{color:var(--blue)}
.uihd .uiic-btn:not(.acc):not(.red),.uisheet-h .uiic-btn:not(.acc):not(.red),.uiwhd .uiic-btn:not(.acc):not(.red){color:var(--muted)}   /* + .uiwhd (шапка віджета: сервери, пуші) — випадала з правила, іконка дока лишалась синьою (власник 2026-10-12) */   /* кнопки шапки — тьмяні сірі за замовчуванням (власник 2026-10-11); .acc/.red — як є */
.uiic-btn{flex:none;min-width:32px;min-height:32px;padding:0;margin:0;border:0;background:none;color:var(--blue);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}
.uiic-btn:active{opacity:.55}
.uihd .uiic-btn{min-width:var(--ui-tap);min-height:var(--ui-tap);width:var(--ui-tap);height:var(--ui-tap)}             /* back/doc/✎ шапки — одна тап-зона 28, svg 22 */
/* .uittl.fit — заголовок по ширині тексту, дія одразу за ним; .uihd-sp — розпірка до правих дій (власник 2026-10-04, ✎ картки Сейфу) */
.uittl.fit{flex:0 1 auto}
.uittl2{flex:0 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.15}                          /* шапка H3: kicker над заголовком (UIHead kicker/titleClick, «Саммері» 2026-10-04) */
.uittl2-k{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.uittl2-v{display:flex;align-items:center;gap:4px;min-width:0;font-size:var(--ui-fs-sec);font-weight:700;color:var(--text)}
.uittl2.tap{flex:1 1 auto;cursor:pointer;-webkit-tap-highlight-color:transparent}   /* уся шапка — тригер списку (власник 2026-10-05) */
.uittl2.tap:active{opacity:.7}
.uittl2.tap+.uihd-sp{flex:0 0 0}
.uittl2-t{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uittl2-c{flex:none;display:inline-flex;color:var(--muted)}
.uittl.tap{display:inline-flex;align-items:center;gap:4px;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:normal;overflow:visible;line-height:1.2}   /* UIHead titleClick без kicker (перейменування дока, 2026-10-10); назву НЕ обрізати — переносити (власник) */
.uittl.tap>.uittl2-t{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.uittl.tap:active{opacity:.7}
.uipop-it{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:7px;cursor:pointer}             /* пункт списку UIPop: назва ellipsis · дрібно праворуч */
.uipop-it:active{background:var(--card2)}
.uipop-it.on{background:var(--card2);color:var(--blue);font-weight:600}
.uipop-it.danger{color:var(--red)}
.uipop-it.ok{color:var(--green)}                                                                     /* відновлювальна дія в меню (Повернути з архіву) — зеленим (власник 2026-10-10) */                                                                 /* небезпечна дія в меню (В архів/Видалити) — червоним, іконка успадковує (власник 2026-10-10) */
.uipop-n{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uipop-s{flex:none;font-size:10.5px;color:var(--muted)}
/* текст-кнопка в шапці (головна шапка «КАНБАН», власник 2026-10-04): без рамки/фону/іконки; KT1 — як .uittl (приглушений капс), .acc — KT2 акцентом */
.uihd-txt{background:none;border:0;padding:0 4px;font:inherit;font-size:17px;line-height:22px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.uihd-txt.acc{color:var(--blue)}
.uihd-txt:active{opacity:.6}
.uihd-sp{flex:1}
/* повноекранний екран поверх мініаппа (власник 2026-10-10, перший — «Доки»): шапка UIHead + тіло, що крутиться; тема — токени */
.uisrch{position:relative;margin:0 0 4px}                                                          /* пошук з іконкою: обгортка .uisrch > svg.uiic + input.uisearch */
.uisrch>input{margin:0;padding-left:28px}
.uisrch>.uiic{position:absolute;left:4px;top:50%;transform:translateY(-50%);color:var(--blue);pointer-events:none}
.uiic-btn.red{color:var(--red)}
.uiic-btn.grn{color:var(--green)}
.uiic-btn.mut{color:var(--muted)}
.uiic-btn.warn{color:var(--orange)}   /* архівація у вікні підтвердження — помаранчевий check (власник 2026-10-04) */
.uiic-btn.acc{color:var(--blue)}
.uidlg-row.ic{justify-content:space-between;align-items:center}                                     /* UIDialog.confirm C1: ✕ ліворуч, дія праворуч (2026-10-04) */
.uidlg-row.ic>.uidlg-ib{width:var(--ui-tap-act);height:var(--ui-tap-act);min-width:var(--ui-tap-act);min-height:var(--ui-tap-act);border-radius:9px}
/* .uiact — панель дій під формою (власник 2026-10-04, варіант P1): кошик ліворуч, дискета праворуч, іконки без рамок; лише кит */
.uiact{display:flex;align-items:center;gap:6px;margin-top:8px}
.uiact>.uiact-sp{flex:1}
.uiact-t{font-size:11px;color:var(--muted);white-space:nowrap}   /* підпис біля дії панелі (напр. «синк 21:00» біля ↻), 2026-10-05 */
.uiact>.uiic-btn{width:var(--ui-tap-act);height:var(--ui-tap-act);min-width:var(--ui-tap-act);min-height:var(--ui-tap-act)}   /* +5px до іконок шапки (власник 2026-10-04) */
.uisheet-ttl>.uiic{margin-right:6px;vertical-align:-3px}
/* ── inline-акордеон списку + числа-метрики (винесено з віджета «Навантаження сервера» reports.html .srv-* 1:1, 2026-10-04,
   модуль «Монітор серверів» servers/ui/servers.js; DESIGN_SYSTEM §3 «деталі — лише inline-акордеон», §11).
   Цільний список: плоскі full-width ряди, розділені хейрлайном var(--line); деталь ВИЇЖДЖАЄ під рядом (grid-template-rows
   0fr→1fr, анімується; overflow:hidden на grid-дитяті кліпує контент; висота .uiacc-chart фіксована → Chart.js міряє canvas
   коректно навіть у згорнутому стані). Свої копії не малювати. ── */
.uiacc{border-bottom:1px solid var(--line)}
.uiacc:last-child{border-bottom:none}
.uiacc-hd{display:flex;align-items:center;gap:8px;padding:4px 2px;cursor:pointer}
.uiacc-hd:active{opacity:.7}
.uiacc-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--text)}
.uiacc-det{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}
.uiacc-det.open{grid-template-rows:1fr}
.uiacc-det>div{overflow:hidden;min-width:0;min-height:0;padding:0 2px}
.uiacc-det .uiacc-chart:last-child{margin-bottom:9px}
.uiacc-lbl{font-size:10.5px;font-weight:700;color:var(--muted);margin:7px 0 3px}   /* підпис секції деталі */
.uiacc-chart{height:148px}                                                          /* графік у деталі (з .rchart-wrap) — нижчий за дефолтні 178px */
.rchart-wrap.lg{height:260px}   /* графік борда (не в розкривашці): вище — видно статуси з малими числами (власник 2026-10-06, «Фарм статус») */
.uimt{flex:0 0 auto;display:flex;align-items:baseline;gap:5px;font-size:13px;white-space:nowrap}   /* числа ряду «CPU n% · RAM n%» */
.uimt b{font-weight:700;color:var(--text)}
/* .uimtg — сітка-таблиця метрик K1 (власник 2026-10-04, «Монітор серверів»): назва minmax(0,1fr) з ellipsis + 3 рівні колонки чисел
   праворуч, tabular-nums; підписи колонок один раз рядком .uimtg-h; у ряду .uimt — display:contents (числа = клітинки сітки) */
.uimtg{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,50px);column-gap:6px;align-items:center}
.uistats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px;column-gap:8px;padding:4px 2px 8px}   /* блоки-цифри (база); формат у ките — .uistats.cells (власник 2026-10-06: одна рамка, однакові розділювачі) */
.uistat{display:flex;flex-direction:column;gap:2px;min-width:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.uistat:active{opacity:.7}
.uistat-n{font-size:24px;font-weight:800;line-height:1;color:var(--c,var(--text));font-variant-numeric:tabular-nums;white-space:nowrap}   /* --c — колір статусу */
.uistat-n small{font-size:12px;font-weight:600;color:var(--muted)}
.uistat-l{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uistat-w{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:var(--red)}
.uistat-n .uistat-w{margin-left:6px;vertical-align:top}   /* алерт праворуч від цифри (власник 2026-10-05) */
.uistat-s{font-size:10.5px;color:var(--muted)}
.uistats.cells{gap:0;padding:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card2)}   /* D (власник 2026-10-05): одна рамка, комірки з тонкими розділювачами */
.uistats.cells .uistat{padding:5px 8px;box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)}   /* розділювачі тінню — крайні ховає overflow рамки */
.uistats.cells .uistat-n{font-size:18px;line-height:1.15}
.uistats.cells .uistat.on{background:color-mix(in srgb,var(--c,var(--blue)) 14%,transparent)}
.uistat.nl{grid-column-start:1}   /* комірка з нового рядка сітки (початок розділу) */
/* «рядок» — компактні блоки-цифри під графіками (власник 2026-10-09, мокап графіків v2): та сама рамка .uistats.cells, цифра й
   підпис в один рядок (~26px замість ~44px); .w2 — 2 колонки, коли є підрядок («56 апок»), щоб підпис не обрізався.
   .uistat.off — лінія графіка вимкнена (без підсвітки); .uistat.st — блок без лінії (human, «інші») */
.uistats.cells.sm .uistat{flex-direction:row;align-items:baseline;gap:5px;padding:4px 7px;min-width:0}
.uistats.cells.sm .uistat-n{font-size:13.5px;line-height:1.25}
.uistats.cells.sm .uistat-l{font-size:9.5px;letter-spacing:.04em;flex:1 1 auto;min-width:0}
.uistats.cells.sm .uistat-s{font-size:9.5px;white-space:nowrap}
.uistats.cells.sm.w2{grid-template-columns:repeat(2,minmax(0,1fr))}
.uistats.cells .uistat.st{cursor:default}
.uistats.cells .uistat.st:active{opacity:1}
/* .uistat.act — комірка-дія в рамці блоків (власник 2026-10-09, «апки за період» у «АСО — дохід», мокап B): іконка + підпис акцентом,
   тап = дія (не вкл/викл лінії); .full — рядок на всю ширину, коли вільної комірки в сітці нема */
.uistats.cells .uistat.act{flex-direction:row;align-items:center;gap:6px;cursor:pointer;color:var(--blue)}
.uistats.cells .uistat.act .uistat-l{color:var(--blue);font-size:10px;letter-spacing:.06em}
.uistats.cells .uistat.act.full{grid-column:1/-1}
.uimtg-h{padding:0 2px 2px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:right}
.uimtg>.uimt[id]{display:contents}
.uimtg .uimt b{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
/* .uiheat — теплові смуги G3 (власник 2026-10-04, «Монітор серверів»): рядок = підпис · смуга N клітинок · значення;
   клітинка = максимум за відрізок, рівні .l0 <40 (темно-зелений) · .l1 40–70 · .l2 70–поріг · .l3 ≥ поріг; .nn — немає даних.
   Вісь .uiheat-ax під смугами (у колонці смуги); тап/hover по клітинці — пузир #uihint (UIHint.show) */
.uiheat{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;gap:4px 6px;align-items:center;font-size:10.5px;color:var(--muted);margin:6px 0 8px}
.uiheat-l{font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.uiheat-bar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(1px,.5vw,2px);min-width:0}
.uiheat-bar>i{height:12px;border-radius:2px;background:color-mix(in srgb,var(--line) 70%,transparent);cursor:pointer}
.uiheat-bar>i.l0{background:color-mix(in srgb,var(--green) 28%,var(--bg))}
.uiheat-bar>i.l1{background:color-mix(in srgb,var(--green) 70%,var(--bg))}
.uiheat-bar>i.l2{background:var(--yellow)}
.uiheat-bar>i.l3{background:var(--red)}
.uiheat-bar>i:hover{outline:1px solid var(--text);outline-offset:0}
.uiheat-v{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text);font-weight:600}
.uiheat-v span{color:var(--muted);font-weight:400}
.uiheat-ax{grid-column:2;display:flex;justify-content:space-between;font-size:10px}
.uimt b.nn{color:var(--muted)}
.uimt .lb{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.uimt i{font-style:normal;color:var(--muted);font-size:10px}
.uimt.lg b{font-size:var(--ui-fs-num);font-weight:800;line-height:1}   /* крупне число рядка списку (дні за статусом у «Додатки», власник 2026-10-08); підпис <i> — як у .uimt */
/* .uiprog — тонка смуга заповнення (власник 2026-10-06, «Капи», мокап варіант C): 54×4, radius 2, фон --card2; заповнення —
   <i> з інлайн width:N% і background за даними (як кольори в «Моніторі серверів»/«Консолях»). .uimt.val — фіксована колонка
   значення праворуч (62px, tabular-nums) — щоб смуги в списку стояли рівною колонкою */
.uiprog{flex:none;width:54px;height:4px;border-radius:2px;background:var(--card2);overflow:hidden}
.uiprog>i{display:block;height:100%;border-radius:2px}
.uimt.val{flex:0 0 62px;justify-content:flex-end;font-variant-numeric:tabular-nums}
/* ── рамка віджета борда W2 (власник 2026-10-04): без рамки й фону-картки; віджети стек-борда (#body.wgrid > .wcell) розділені
   лінією 1px var(--line), в останнього лінії немає; ряди-акордеони всередині — ще тонша лінія (--line 60%). Лише грид стек-бордів:
   канбан-панель (.kb-panel) і вбудовані борди (без .wgrid) не зачіпає; режим редагування .wcell.em перебиває рамку своєю. ── */
.wgrid>.wcell{padding:4px 0 10px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.wgrid>.wcell:not(.em):last-child{margin-bottom:0;border-bottom:0}   /* :not(.em) — не зрізати низ пунктиру режиму редагування (BUGLOG) */
body.pg-reports .wgrid .wgt.dash,body.pg-reports .em-ghost .wgt.dash{background:none;border:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none}
.wgrid .wgt.dash>.dash-pad,.em-ghost .wgt.dash>.dash-pad{padding:0}
.wgrid .wgt .uiacc:not(:last-child){border-bottom-color:color-mix(in srgb,var(--line) 60%,transparent)}
/* шапка віджета (перенесено з reports.html .cw-hd): ряд флекс; .uiwhd — компонент W2: [іконка 22] НАЗВА [.uihd-sp] [doc 22],
   ряд 28px, назва 14px 600 капсом muted line-height 22 — усе на одному центрі по вертикалі */
.cw-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cw-hd .dseclbl{margin-bottom:0}
.uiwhd{min-height:var(--ui-hd-row);margin-bottom:4px;flex-wrap:wrap;row-gap:4px}   /* дії не влазять поруч (~375) → переносяться рядком нижче, праворуч */
.uiwhd .uiwhd-t{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;white-space:nowrap;font-size:14px;font-weight:600;line-height:var(--ui-ic-hd);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.uiwhd-t>.uiic{width:var(--ui-ic-hd);height:var(--ui-ic-hd)}
.uiwhd-ic{flex:none;width:var(--ui-ic-hd);height:var(--ui-ic-hd);display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1;letter-spacing:0}   /* емодзі-іконка віджета, той самий центр */
.uiwhd-n{overflow:hidden;text-overflow:ellipsis}   /* назву не рвемо посеред слова — лише … */
.uiwhd .uiic-btn{min-width:var(--ui-tap);min-height:var(--ui-tap);width:var(--ui-tap);height:var(--ui-tap)}
/* режим редагування стек-борда (власник 2026-10-04): тягнути за ВЕСЬ віджет, вміст не інтерактивний; тулбар .em-bar — кошик .uiic-btn.red 24 */
.wcell.em{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.wcell.em>:not(.em-bar){pointer-events:none}
.em-ghost>.em-bar{display:none}
.em-bar>.uiic-btn{min-width:var(--ui-ic-row);min-height:var(--ui-ic-row);width:var(--ui-ic-row);height:var(--ui-ic-row)}
/* ── компонент: пейджер списку «‹ 3/7 ›» `.uipager` (2026-10-04, перенесено 1:1 з reports.html .dom-pager; де: push.express) ── */
.uipager{display:flex;align-items:center;justify-content:center;gap:10px;padding:5px 0 1px;font-size:11px;color:var(--muted)}
.uipager button{background:var(--card2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:2px 9px;cursor:pointer;font-size:12px}
.uipager button:disabled{opacity:.35;cursor:default}
/* підсвітка пункту під курсором у ВСІХ дроплистах (власник 2026-10-04): ≡ меню/теми шапки (.hm-i), UISelect, UserPick;
   еталон — .dd-list .mi канбану (rgba білого .09). Лише на пристроях із курсором; на тачі — :active як було */
@media (hover:hover) and (pointer:fine){
  .hm-i:hover,#uisel-dd .uisel-it:not(.dis):hover,#upick .uo:hover,.uipop-it:hover{background:color-mix(in srgb,var(--text) 9%,transparent)}
  .uili:hover{background:color-mix(in srgb,var(--text) 7%,transparent);border-radius:6px}   /* рядки списків L1 теж (власник 2026-10-10, «Доки») */
  .uihd .uiic-btn:not(.acc):not(.red):hover,.uisheet-h .uiic-btn:not(.acc):not(.red):hover,.uiwhd .uiic-btn:not(.acc):not(.red):hover{color:var(--blue)}   /* кнопки шапки: тьмяні сірі, під курсором — колір теми, як .uihd-txt «Канбан»; селектор не слабший за дефолтний (власник 2026-10-11) */
  .uihd .uichip-t:hover,.uisheet-h .uichip-t:hover{background:color-mix(in srgb,var(--blue) 24%,transparent)}   /* чип — трохи насиченіший, без сірої області */
  .uihd-txt:hover,.uihd-txt.acc:hover{color:var(--blue)}   /* текст-кнопка шапки («Канбан»): під курсором — колір теми (власник 2026-10-04) */
}
/* головна шапка /reports (власник 2026-10-04): відступи зверху = знизу; рядки під шапкою (#userbar/#statsbar) — відступ лише коли не порожні */
.pg-reports .themebar~#userbar:not(:empty),.pg-reports .themebar~#statsbar:not(:empty){margin-top:7px}
.pg-reports .userbar:empty{margin-bottom:0}

/* ⚙️ Налаштування → Логи: журнал подій — прокрутка UIScroll (крапки всередині блока, власник 2026-10-04) */
.set-log{max-height:62vh;overflow:auto}
/* .uichips + .uichip-x — чипи-значення з × (прибрати значення в 1 тап; власник 2026-10-21, мокап «Закриття гео» v2
   KkfTcatMFENVRLXaFoJgX9): тон --orange (закрите/увага), .b — тон --blue (вибране у формі), .busy — блідий на час запису,
   тапи не приймає; кнопка × — 18px, іконка close розміру chip. Де: «Закриття гео» (країни апки, вибрані апки) */
.uichips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.uichip-x{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:600;line-height:18px;padding:1px 1px 1px 7px;border-radius:999px;background:color-mix(in srgb,var(--orange) 16%,transparent);color:var(--orange);white-space:nowrap}
.uichip-x.b{background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue)}
.uichip-x>button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.uichip-x>button:hover{background:color-mix(in srgb,currentColor 18%,transparent)}
.uichip-x.busy{opacity:.45;pointer-events:none}
