/* ===== Экраны системы: стили окон (22.09.2026) =====
   Холст экрана 1440×900 - окно ноутбука. Палитра и шрифты - как у дашборда 11а
   («командный центр»): тёмный фон, изумруд, жёлтый только для «требует внимания».
   Имена классов не пересекаются с оболочкой редактора (.btn, .row, .box, .search, .logo… заняты ею).
   Иконки - маской в ::before, чтобы кнопка и пункт меню оставались одной надписью
   (редактор двигает надписи и повторяющиеся блоки, а не произвольные контейнеры). */

@page { size: 1440px 900px; margin: 0 }
:root{
  --bg:#020806; --deep:#04120C; --deep2:#0C3227;
  --em:#12B076; --em-soft:#3BD9A4; --em-dim:#0A7A51;
  --yellow:#F9EE45; --yellow2:#E8CC2E;
  --white:#F4FFF9; --ink:#07301F; --text:#EAF7F0; --dim:#A9CDBE; --dim2:#69937E;
  --red:#FF9A8A; --blue:#8CCBFF;
  --line:rgba(59,217,164,.13); --line2:rgba(59,217,164,.26);
}
*{box-sizing:border-box; margin:0; padding:0}
body{background:var(--bg); font-family:'Onest',system-ui,sans-serif; color:var(--text)}
.slide{position:relative; width:1440px; height:900px; overflow:hidden; background:#030B08;
  page-break-after:always; font:400 14px/1.4 'Onest',system-ui,sans-serif; color:var(--text)}
.slide:last-child{page-break-after:auto}

/* ---------- каркас окна ---------- */
.app{position:absolute; inset:0; display:flex;
  background:radial-gradient(ellipse 70% 55% at 78% -12%, rgba(18,176,118,.13), rgba(3,11,8,0) 62%), #030B08}
.sb{width:232px; flex:none; display:flex; flex-direction:column; padding:18px 12px 14px;
  background:rgba(2,12,9,.94); border-right:1px solid var(--line)}
.brand{display:flex; align-items:center; gap:10px; padding:2px 8px 16px}
.bm{width:34px; height:34px; flex:none; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#3BD9A4 0%,#12B076 55%,#0A7A51 100%); color:#02140C; font:800 15px 'Tektur',sans-serif}
.bw{display:flex; flex-direction:column; gap:3px; min-width:0}
.bt{font:700 15px/1.05 'Tektur',sans-serif; color:var(--white)}
.bs{font:500 9.5px 'JetBrains Mono',monospace; letter-spacing:.16em; text-transform:uppercase; color:var(--em-soft)}
.menu{display:flex; flex-direction:column; gap:2px}
.mg{font:500 9.5px 'JetBrains Mono',monospace; letter-spacing:.18em; text-transform:uppercase; color:#4F7A66; padding:13px 10px 5px}
.mi{display:flex; align-items:center; gap:10px; height:35px; padding:0 10px; border-radius:10px;
  color:var(--dim); font:500 13.5px 'Onest',sans-serif; white-space:nowrap}
.mi::before{content:""; width:17px; height:17px; flex:none; background:currentColor; opacity:.9;
  -webkit-mask:var(--ico) center/contain no-repeat; mask:var(--ico) center/contain no-repeat}
.mi b{margin-left:auto; font:600 10.5px 'JetBrains Mono',monospace; color:#02140C; background:var(--em-soft);
  border-radius:999px; padding:1px 7px}
.mi b.y{background:var(--yellow)}
.mi.on{background:rgba(18,176,118,.17); color:var(--white); box-shadow:inset 3px 0 0 var(--em-soft)}
.me{margin-top:auto; display:flex; align-items:center; gap:10px; padding:12px 8px 0; border-top:1px solid var(--line)}
.mw{display:flex; flex-direction:column; gap:1px; min-width:0}
.mn{font:600 13px 'Onest'; color:var(--text)}
.mr{font:500 10px 'JetBrains Mono',monospace; letter-spacing:.1em; text-transform:uppercase; color:var(--dim2)}

.main{flex:1; min-width:0; display:flex; flex-direction:column}
.topb{height:72px; flex:none; display:flex; align-items:center; gap:12px; padding:0 24px;
  border-bottom:1px solid var(--line); background:rgba(2,12,9,.55)}
.tw{display:flex; flex-direction:column; gap:3px; min-width:0; margin-right:auto}
h1.ttl{font:700 23px/1.1 'Tektur',sans-serif; color:var(--white); letter-spacing:-.005em; white-space:nowrap}
.crumb{font:500 10.5px 'JetBrains Mono',monospace; letter-spacing:.13em; text-transform:uppercase; color:var(--dim2); white-space:nowrap}
.srch{width:300px; height:38px; display:flex; align-items:center; gap:9px; padding:0 12px; border-radius:10px;
  border:1px solid var(--line2); background:#030F0B; color:#5E8C77; font-size:13px; white-space:nowrap; overflow:hidden}
.srch::before{content:""; width:15px; height:15px; flex:none; background:#5E8C77;
  -webkit-mask:var(--i-search) center/contain no-repeat; mask:var(--i-search) center/contain no-repeat}
.acts{display:flex; gap:8px; align-items:center}
.bell{width:38px; height:38px; border-radius:10px; border:1px solid var(--line2); position:relative; flex:none;
  display:flex; align-items:center; justify-content:center; font:700 10px 'JetBrains Mono',monospace; color:#02140C}
.bell::before{content:""; position:absolute; inset:10px; background:var(--dim);
  -webkit-mask:var(--i-bell) center/contain no-repeat; mask:var(--i-bell) center/contain no-repeat}
.demo{height:24px; display:inline-flex; align-items:center; padding:0 9px; border-radius:999px; flex:none;
  border:1px dashed rgba(249,238,69,.45); color:#E9DD6A; font:500 10px 'JetBrains Mono',monospace; letter-spacing:.08em; white-space:nowrap}

.ava{width:32px; height:32px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#1C5E47,#0C3227); border:1px solid rgba(59,217,164,.35);
  color:var(--em-soft); font:700 12px 'Tektur',sans-serif}
.ava.sm{width:26px; height:26px; font-size:10px}
.ava.lg{width:52px; height:52px; font-size:18px}
.ava.y{background:linear-gradient(135deg,#5A5418,#2A2808); border-color:rgba(249,238,69,.5); color:var(--yellow)}

/* ---------- рабочая область: колонки и панели ---------- */
.ws{flex:1; min-height:0; display:flex; gap:14px; padding:16px 24px 20px; overflow:hidden}
.ws.wrap{flex-wrap:wrap; align-content:flex-start}
.colm{display:flex; flex-direction:column; gap:14px; min-width:0; min-height:0}
.pnl{position:relative; display:flex; flex-direction:column; gap:10px; min-width:0; min-height:0; overflow:hidden;
  padding:14px 16px; border-radius:16px; border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(12,50,39,.46) 0%, rgba(5,22,16,.70) 100%)}
.pnl.hot{border-color:rgba(249,238,69,.38); background:linear-gradient(180deg, rgba(60,56,14,.30) 0%, rgba(5,22,16,.72) 100%)}
.ph{display:flex; align-items:center; gap:10px; min-height:24px}
.pt{font:600 14.5px 'Onest'; color:var(--white); white-space:nowrap}
.pm{font:500 10px 'JetBrains Mono',monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--dim2); white-space:nowrap}
.pr{margin-left:auto; display:flex; gap:6px; align-items:center}
.lbl2{font:500 10px 'JetBrains Mono',monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--dim2)}
.txt{font-size:13.5px; color:var(--text); line-height:1.45}
.mut{font-size:12.5px; color:var(--dim2); line-height:1.4}
.big{font:700 34px/1 'Tektur',sans-serif; color:var(--white)}
.hr{height:1px; background:var(--line); flex:none}
.grow{flex:1; min-height:0}

/* ---------- кнопки и поля ---------- */
.bn{height:36px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 14px; flex:none;
  border-radius:10px; border:1px solid var(--line2); background:rgba(12,50,39,.62); color:var(--text);
  font:600 13px 'Onest',sans-serif; white-space:nowrap}
.bn.p{background:linear-gradient(180deg,#19C283,#12A06C); border-color:transparent; color:#02140C}
.bn.y{background:linear-gradient(180deg,var(--yellow),var(--yellow2)); border-color:transparent; color:var(--ink)}
.bn.g{background:transparent}
.bn.r{background:transparent; border-color:rgba(255,154,138,.35); color:var(--red)}
.bn.s{height:28px; padding:0 10px; font-size:12px; border-radius:8px}
.bn.w{width:100%}
.bn[class*=" i-"]::before{content:""; width:15px; height:15px; flex:none; background:currentColor;
  -webkit-mask:var(--ico) center/contain no-repeat; mask:var(--ico) center/contain no-repeat}
.fld{height:38px; display:flex; align-items:center; padding:0 12px; border-radius:10px; border:1px solid var(--line2);
  background:#030F0B; color:var(--text); font-size:13.5px; white-space:nowrap; overflow:hidden}
.fld.ph0{color:#5E8C77}
.fld.area{height:auto; min-height:76px; align-items:flex-start; padding:10px 12px; white-space:normal; line-height:1.45}
.dd{height:38px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 12px; border-radius:10px;
  border:1px solid var(--line2); background:#030F0B; color:var(--text); font-size:13.5px; white-space:nowrap}
.dd::after{content:"▾"; color:var(--dim2); font-size:12px}
.fl{display:flex; flex-direction:column; gap:6px}
.tgl{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text)}
.tgl::before{content:""; width:34px; height:20px; flex:none; border-radius:999px;
  background:radial-gradient(circle at 24px 10px, #02140C 0 6px, transparent 6.5px), var(--em)}
.tgl.off::before{background:radial-gradient(circle at 10px 10px, #5E8C77 0 6px, transparent 6.5px), #0C241B}
.cb{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text)}
.cb::before{content:"✓"; width:18px; height:18px; flex:none; border-radius:5px; display:flex; align-items:center; justify-content:center;
  background:var(--em); color:#02140C; font:800 12px/1 'Onest'}
.cb.off::before{content:""; background:transparent; border:1.5px solid #3C6655}
.rad{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text)}
.rad::before{content:""; width:18px; height:18px; flex:none; border-radius:50%; border:1.5px solid #3C6655}
.rad.on::before{border:5px solid var(--em); background:#02140C}

/* ---------- метки и оценки ---------- */
.tag{height:22px; display:inline-flex; align-items:center; gap:5px; padding:0 9px; border-radius:999px; flex:none;
  font:600 11.5px 'Onest'; white-space:nowrap; background:rgba(59,217,164,.14); color:var(--em-soft)}
.tag.w{background:rgba(249,238,69,.15); color:var(--yellow)}
.tag.r{background:rgba(255,154,138,.15); color:var(--red)}
.tag.b{background:rgba(140,203,255,.14); color:var(--blue)}
.tag.m{background:rgba(169,205,190,.10); color:var(--dim)}
.sc{width:22px; height:22px; flex:none; border-radius:6px; display:inline-flex; align-items:center; justify-content:center;
  font:800 12px 'Tektur',sans-serif; background:#0C3227; color:var(--dim)}
.sc.a{background:var(--em-soft); color:#02140C}
.sc.b{background:rgba(59,217,164,.28); color:var(--em-soft)}
.sc.c{background:rgba(169,205,190,.12); color:var(--dim)}
.sc.d{background:rgba(105,147,126,.10); color:var(--dim2)}
.tabs{display:flex; gap:4px; padding:3px; border-radius:11px; background:#03100B; border:1px solid var(--line); flex:none}
.tab{height:30px; display:flex; align-items:center; gap:6px; padding:0 12px; border-radius:8px; color:var(--dim);
  font:500 12.5px 'Onest'; white-space:nowrap}
.tab.on{background:rgba(18,176,118,.2); color:var(--white)}
.tab.on2{color:var(--yellow)}
.fltr{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.chipf{height:30px; display:inline-flex; align-items:center; gap:6px; padding:0 11px; border-radius:999px;
  border:1px solid var(--line2); color:var(--dim); font:500 12.5px 'Onest'; white-space:nowrap}
.chipf.on{border-color:var(--em-soft); color:var(--white); background:rgba(18,176,118,.14)}

/* ---------- таблицы: строка = блок, ячейки c1..c9 разные, поэтому не считаются повторами ---------- */
.tbl{display:flex; flex-direction:column; min-height:0}
.tbl > div{display:grid; grid-template-columns:var(--cols); align-items:center; gap:12px; padding:0 10px}
.th{height:34px; border-bottom:1px solid var(--line)}
.th > div{font:500 9.5px 'JetBrains Mono',monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--dim2); white-space:nowrap}
.tr{min-height:46px; border-bottom:1px solid rgba(59,217,164,.07)}
.tr > div{font-size:13px; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0}
.tr.act{background:rgba(18,176,118,.10); border-radius:10px}
.mono{font-family:'JetBrains Mono',monospace !important; font-size:12px !important; color:var(--dim) !important}
.rt{text-align:right}
.dimc{color:var(--dim2) !important}

/* ---------- цифры ---------- */
.kpis{display:flex; gap:14px}
.kpi{flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; padding:14px 16px; border-radius:14px;
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(12,50,39,.5), rgba(5,22,16,.7))}
.kpi.hot{border-color:rgba(249,238,69,.4)}
.kl{font:500 9.5px 'JetBrains Mono',monospace; letter-spacing:.15em; text-transform:uppercase; color:var(--dim2); white-space:nowrap}
.kv{font:700 30px/1 'Tektur',sans-serif; color:var(--white); white-space:nowrap}
.kv.y{color:var(--yellow)}
.kv.e{color:var(--em-soft)}
.ks{font-size:12px; color:var(--dim2); white-space:nowrap}
.pbar{height:8px; border-radius:999px; background:#0B231A; overflow:hidden; flex:none}
.pbar i{display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#12B076,#3BD9A4)}
.pbar.y i{background:linear-gradient(90deg,#E8CC2E,#F9EE45)}
.bars{display:flex; align-items:flex-end; gap:10px; height:120px; padding-top:8px}
.bar{flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:5px; height:100%;
  font:500 10px 'JetBrains Mono',monospace; color:var(--dim2)}
.bar i{display:block; width:100%; border-radius:6px 6px 2px 2px; background:linear-gradient(180deg,#3BD9A4,#12B076)}

/* ---------- лента дел ---------- */
.task{display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:12px; border:1px solid rgba(59,217,164,.10);
  background:rgba(3,15,11,.55)}
.task.hot{border-color:rgba(249,238,69,.32); background:rgba(40,38,10,.35)}
.tki{width:34px; height:34px; flex:none; border-radius:10px; display:flex; align-items:center; justify-content:center;
  font-size:16px; background:rgba(18,176,118,.15)}
.task.hot .tki{background:rgba(249,238,69,.14)}
.tkb{flex:1; min-width:0; display:flex; flex-direction:column; gap:3px}
.tkt{font:600 13.5px 'Onest'; color:var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tks{font-size:12.5px; color:var(--dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tkm{font:500 11px 'JetBrains Mono',monospace; color:var(--dim2); white-space:nowrap; flex:none}
.tkm.y{color:var(--yellow)}

/* ---------- воронка (канбан) ---------- */
.kb{flex:1; display:flex; gap:12px; min-width:0; min-height:0}
.kc{flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; padding:10px; border-radius:14px;
  background:rgba(3,15,11,.6); border:1px solid var(--line)}
.kh{display:flex; align-items:baseline; gap:8px; padding:2px 4px 6px; border-bottom:2px solid var(--em-dim)}
.kh.y{border-color:var(--yellow2)}
.kt{font:600 13px 'Onest'; color:var(--white); white-space:nowrap}
.kn{font:600 11px 'JetBrains Mono',monospace; color:var(--em-soft)}
.ksum{margin-left:auto; font:500 10.5px 'JetBrains Mono',monospace; color:var(--dim2); white-space:nowrap}
.lc{display:flex; flex-direction:column; gap:6px; padding:10px; border-radius:11px; background:rgba(12,50,39,.5);
  border:1px solid rgba(59,217,164,.12)}
.lc.hot{border-color:rgba(249,238,69,.4)}
.lct{display:flex; align-items:center; gap:7px}
.lcn{font:600 13px 'Onest'; color:var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.lcs{font-size:11.5px; line-height:1.35; color:var(--dim2); overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical}
.lcm{display:flex; align-items:center; gap:6px}
.lcw{margin-left:auto; font:500 10.5px 'JetBrains Mono',monospace; color:var(--dim2)}
.lcw.y{color:var(--yellow)}

/* ---------- переписка ---------- */
.cli{display:flex; gap:10px; align-items:center; padding:9px 10px; border-radius:12px}
.cli.on{background:rgba(18,176,118,.14)}
.cli .cb{flex:none}
.clb{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.cln{font:600 13px 'Onest'; color:var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.cls{font-size:12px; color:var(--dim2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.clm{display:flex; flex-direction:column; align-items:flex-end; gap:4px; flex:none}
.clt{font:500 10.5px 'JetBrains Mono',monospace; color:var(--dim2)}
.clu{min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--em-soft); color:#02140C;
  font:700 10.5px/20px 'JetBrains Mono',monospace; text-align:center}
.clu.y{background:var(--yellow)}
.txt.sum{font-size:12px; line-height:1.4; color:var(--dim2)}
.chan{font:600 10px 'JetBrains Mono',monospace; letter-spacing:.06em; color:var(--blue); white-space:nowrap}
.chan.mx{color:#C9A7FF}
.chan.ig{color:#FF9FC6}
.chan.vc{color:#7FA8F5}
.feed{flex:1; min-height:0; display:flex; flex-direction:column; justify-content:flex-end; gap:10px; padding:4px 2px; overflow:hidden}
.day{align-self:center; font:500 10px 'JetBrains Mono',monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--dim2);
  padding:3px 10px; border-radius:999px; background:rgba(3,15,11,.8)}
.msg{max-width:78%; padding:9px 12px 8px; border-radius:14px; font-size:13.5px; line-height:1.45; color:var(--text)}
.msg.in{align-self:flex-start; background:#0D2A20; border-top-left-radius:4px}
.msg.out{align-self:flex-end; background:#12583F; border-top-right-radius:4px; color:#F4FFF9}
.msg.sys{align-self:center; max-width:90%; background:rgba(249,238,69,.10); color:#EEE38A; font-size:12.5px; border-radius:10px}
.mt{font:500 10px 'JetBrains Mono',monospace; color:var(--dim2); margin-top:-6px}
.mt.o{align-self:flex-end}
.npk{display:flex; flex-direction:column; gap:8px; padding:11px 12px; border-radius:14px;
  border:1px solid rgba(59,217,164,.30); background:linear-gradient(180deg, rgba(18,176,118,.12), rgba(3,15,11,.6))}
.npk-h{display:flex; align-items:center; gap:8px}
.npt{font:600 12.5px 'Onest'; color:var(--em-soft)}
.npt::before{content:"✦ "}
.vars{display:flex; gap:8px}
.var{flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; padding:9px 10px; border-radius:11px;
  background:rgba(3,15,11,.75); border:1px solid rgba(59,217,164,.14)}
.var.on{border-color:var(--em-soft)}
.vk{font:500 9.5px 'JetBrains Mono',monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--em-soft)}
.vt{font-size:12px; line-height:1.4; color:var(--text)}
.inbar{display:flex; gap:8px; align-items:center}
.inbar .fld{flex:1}

/* ---------- профиль человека ---------- */
.kv2{display:flex; justify-content:space-between; gap:12px; font-size:13px}
.k2{color:var(--dim2); white-space:nowrap}
.v2{color:var(--text); text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tl{display:flex; flex-direction:column; gap:7px}
.tli{display:flex; gap:10px; align-items:baseline; font-size:12.5px; color:var(--text)}
.tld{font:500 10.5px 'JetBrains Mono',monospace; color:var(--dim2); width:64px; flex:none}
.plan{display:flex; flex-direction:column; gap:6px; padding:10px 12px; border-radius:12px; background:rgba(3,15,11,.7);
  border:1px dashed rgba(59,217,164,.28)}

/* ---------- карта системы ---------- */
.mapc{flex:1; min-width:0; display:flex; flex-direction:column; gap:10px; padding:12px; border-radius:16px;
  background:rgba(3,15,11,.62); border:1px solid var(--line)}
.maph{display:flex; flex-direction:column; gap:4px; padding:4px 6px 8px; border-bottom:2px solid var(--em-dim)}
.mapt{font:700 16px 'Tektur',sans-serif; color:var(--white)}
.maps{font-size:12px; color:var(--dim2)}
.wc{display:flex; flex-direction:column; gap:6px; padding:12px 13px; border-radius:13px;
  background:linear-gradient(180deg, rgba(12,50,39,.55), rgba(5,22,16,.75)); border:1px solid rgba(59,217,164,.16)}
.wct{display:flex; align-items:center; gap:8px}
.wcn{font:600 14.5px 'Onest'; color:var(--white)}
.wcd{font-size:12.5px; line-height:1.45; color:var(--dim)}

/* ---------- стикер «сюда функция» ---------- */
.stk{padding:12px 14px; border-radius:4px 14px 14px 14px; background:linear-gradient(180deg,#FFF59A,#F2E25C); color:#2A2600;
  font:500 13px/1.45 'Onest',sans-serif; box-shadow:0 10px 30px rgba(0,0,0,.45); max-width:320px}

/* ---------- телефон ---------- */
.phone{width:356px; height:760px; flex:none; border-radius:44px; padding:14px; background:#0A0F0D;
  border:1px solid #2B3A34; box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 0 0 2px #151D1A}
.scr{position:relative; width:100%; height:100%; border-radius:32px; overflow:hidden; display:flex; flex-direction:column;
  background:radial-gradient(ellipse 90% 40% at 70% -5%, rgba(18,176,118,.18), rgba(3,11,8,0) 60%), #030B08}
.stb{height:40px; flex:none; display:flex; align-items:center; justify-content:space-between; padding:0 22px;
  font:600 12.5px 'Onest'; color:var(--white)}
.phh{display:flex; align-items:center; gap:10px; padding:4px 16px 10px; border-bottom:1px solid var(--line)}
.pht{font:700 18px 'Tektur',sans-serif; color:var(--white)}
.phb{flex:1; min-height:0; display:flex; flex-direction:column; gap:9px; padding:12px 12px; overflow:hidden}
.tabbar{height:60px; flex:none; display:flex; justify-content:space-around; align-items:center; border-top:1px solid var(--line);
  background:rgba(2,12,9,.9)}
.tbi{display:flex; flex-direction:column; align-items:center; gap:3px; font:500 10px 'Onest'; color:var(--dim2)}
.tbi::before{content:""; width:20px; height:20px; background:currentColor;
  -webkit-mask:var(--ico) center/contain no-repeat; mask:var(--ico) center/contain no-repeat}
.tbi.on{color:var(--em-soft)}

/* ---------- экран без меню (вход) ---------- */
.solo{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:60px;
  background:radial-gradient(ellipse 60% 55% at 50% 0%, rgba(18,176,118,.20), rgba(3,11,8,0) 65%),
    linear-gradient(rgba(59,217,164,.045) 1px, transparent 1px) 0 0/64px 64px,
    linear-gradient(90deg, rgba(59,217,164,.045) 1px, transparent 1px) 0 0/64px 64px, #030B08}
.card-in{width:420px; display:flex; flex-direction:column; gap:14px; padding:30px 32px; border-radius:22px;
  border:1px solid var(--line2); background:linear-gradient(180deg, rgba(12,50,39,.65), rgba(5,22,16,.88));
  box-shadow:0 30px 80px rgba(0,0,0,.5)}
.h2x{font:700 26px/1.15 'Tektur',sans-serif; color:var(--white)}

/* ---------- иконки (маски) ---------- */
.slide{
  --i-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7.5'/%3E%3Cline x1='21' y1='21' x2='16.4' y2='16.4'/%3E%3C/svg%3E");
  --i-bell:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E");
}
.i-today{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E")}
.i-leads{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='5' height='18' rx='1.5'/%3E%3Crect x='10' y='3' width='5' height='12' rx='1.5'/%3E%3Crect x='17' y='3' width='5' height='8' rx='1.5'/%3E%3C/svg%3E")}
.i-chat{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L3 21l1.9-6.2A8 8 0 1 1 21 12z'/%3E%3C/svg%3E")}
.i-pay{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2.5'/%3E%3Cline x1='2' y1='10' x2='22' y2='10'/%3E%3Cline x1='6' y1='15' x2='10' y2='15'/%3E%3C/svg%3E")}
.i-stud{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 9 12 4 2 9l10 5 10-5z'/%3E%3Cpath d='M6 11.5v5c3.5 3 8.5 3 12 0v-5'/%3E%3C/svg%3E")}
.i-book{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4h6a4 4 0 0 1 4 4v13a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 4h-6a4 4 0 0 0-4 4v13a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E")}
.i-send{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='22' y1='2' x2='11' y2='13'/%3E%3Cpolygon points='22 2 15 22 11 13 2 9 22 2'/%3E%3C/svg%3E")}
.i-bot{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='8' width='16' height='12' rx='3'/%3E%3Cpath d='M12 8V4'/%3E%3Ccircle cx='12' cy='3' r='1'/%3E%3Cpath d='M9 13v2M15 13v2'/%3E%3C/svg%3E")}
.i-dash{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='20' x2='12' y2='10'/%3E%3Cline x1='18' y1='20' x2='18' y2='4'/%3E%3Cline x1='6' y1='20' x2='6' y2='15'/%3E%3C/svg%3E")}
.i-tag{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L2 12V2h10l8.6 8.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7' cy='7' r='1.2'/%3E%3C/svg%3E")}
.i-team{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.9'/%3E%3Cpath d='M16 3.1a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E")}
.i-plug{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2v6M15 2v6'/%3E%3Cpath d='M6 8h12v4a6 6 0 0 1-12 0z'/%3E%3Cpath d='M12 18v4'/%3E%3C/svg%3E")}
.i-plus{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")}
.i-link{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7'/%3E%3C/svg%3E")}
.i-clock{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpolyline points='12 6.5 12 12 15.5 14'/%3E%3C/svg%3E")}
.i-spark{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2l2.3 6.2L21 10l-6.7 1.8L12 18l-2.3-6.2L3 10l6.7-1.8z'/%3E%3Cpath d='M19 15l.9 2.4 2.1.6-2.1.6L19 21l-.9-2.4-2.1-.6 2.1-.6z'/%3E%3C/svg%3E")}
.i-filter{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='22 3 2 3 10 12.5 10 19 14 21 14 12.5 22 3'/%3E%3C/svg%3E")}
.i-lock{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='11' width='17' height='11' rx='2.5'/%3E%3Cpath d='M7.5 11V7a4.5 4.5 0 0 1 9 0v4'/%3E%3C/svg%3E")}
.i-map{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1.5'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1.5'/%3E%3C/svg%3E")}
.i-attach{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.4 11.1l-9.2 9.2a6 6 0 0 1-8.5-8.5l9.2-9.2a4 4 0 0 1 5.7 5.7l-9.2 9.2a2 2 0 0 1-2.8-2.8l8.5-8.5'/%3E%3C/svg%3E")}
.i-copy{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='12' height='12' rx='2.5'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E")}
.i-check{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}
.i-play{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpolygon points='6 3 20 12 6 21 6 3'/%3E%3C/svg%3E")}
.i-user{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")}

/* ---------- поверх правил оболочки ----------
   Оболочка ставит всем надписям text-wrap:balance, а это сбрасывает и nowrap (text-wrap - часть white-space).
   Надписи, которые должны быть в одну строку, возвращаем явно. */
.slide :is(.mi,.ttl,.crumb,.srch,.demo,.pt,.pm,.bn,.dd,.tag,.tab,.chipf,.kl,.kv,.ks,.tkt,.tks,.tkm,.lcn,.lcw,.cln,.cls,.clt,.chan,.k2,.v2,.ksum,.kn,.tld,.mn,.mr,.bt,.bs,.mg,.vk)[data-ed],
.slide .fld:not(.area)[data-ed], .slide .th > [data-ed], .slide .tr > [data-ed]{ white-space:nowrap }
.slide *::before, .slide *::after{ box-sizing:border-box }
.rad.on::before{ border-width:5.5px }
/* печать: оболочка красит страницу белым, а лист PDF на долю пикселя выше экрана - внизу была белая нитка.
   Фон страницы тёмный, как у экранов (правило «тёмный PDF: фон до края») */
/* фон страницы при печати тёмный. Белую нитку внизу листа (Chrome делает лист 675,12 pt вместо 675) CSS не закрасить -
   её срезает _tests/pdf_crop.py после печати */
@media print{ html, body{ background:#030B08 !important } }
