/* ─────────────────────────────────────────────────────────────────────────
   Wuji — glass.css: Liquid Glass поверх базовой разметки (01.10.2026).
   Синий мягкий фон, стеклянные карточки и капсулы, заголовок в шапке
   рядом с кнопками, плавающее меню и кнопка Захвата. Логику не трогает —
   подключается последним, после motion.css.
   ───────────────────────────────────────────────────────────────────────── */
:root{
  --bg:#e6edf6; --ink:#0b1424; --ink-2:rgba(11,20,36,.58); --ink-3:rgba(11,20,36,.34);
  --hair:rgba(11,20,36,.08); --rule:rgba(11,20,36,.14); --fill:rgba(255,255,255,.5);
  --red:#e5352b; --red-ink:#fff; --acc:#0a66f0; --acc-ink:#fff; --ok:#1d9a5b; --warn:#e8901a;
  --gl:rgba(255,255,255,.46); --gl-strong:rgba(255,255,255,.7); --gl-b:rgba(255,255,255,.75); --gl-hi:rgba(255,255,255,.95);
  --gl-sh:0 10px 30px rgba(24,60,130,.12); --blur:blur(26px) saturate(185%);
  --head:58px; --r:24px; --side:16px;
  --b1:oklch(0.74 0.15 240); --b2:oklch(0.70 0.16 262); --b3:oklch(0.82 0.11 210); --b4:oklch(0.78 0.11 280);
}
:root[data-theme="dark"]{
  --bg:#050a15; --ink:#eef3fb; --ink-2:rgba(238,243,251,.62); --ink-3:rgba(238,243,251,.34);
  --hair:rgba(255,255,255,.08); --rule:rgba(255,255,255,.16); --fill:rgba(255,255,255,.07);
  --red:#ff5247; --red-ink:#fff; --acc:#3d8bff; --ok:#3ccf83; --warn:#ffb23f;
  --gl:rgba(255,255,255,.075); --gl-strong:rgba(28,40,66,.82); --gl-b:rgba(255,255,255,.15); --gl-hi:rgba(255,255,255,.22);
  --gl-sh:0 12px 34px rgba(0,0,0,.45);
  --b1:oklch(0.36 0.14 250); --b2:oklch(0.32 0.15 275); --b3:oklch(0.38 0.10 220); --b4:oklch(0.28 0.10 295);
}
html,body{background:var(--bg)}
body{font:15px/1.38 -apple-system,BlinkMacSystemFont,"SF Pro Text","Golos Text","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:-10%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(42% 32% at 12% 8%, var(--b1), transparent 70%),
    radial-gradient(40% 34% at 92% 22%, var(--b2), transparent 70%),
    radial-gradient(46% 36% at 20% 62%, var(--b3), transparent 72%),
    radial-gradient(44% 34% at 88% 88%, var(--b4), transparent 72%),
    var(--bg)}
#scroll{padding-top:calc(var(--head) + var(--top) + 10px)}
/* светлая тема: холодный светлый фон без пятен (вариант 3, Рубен 01.10) */
:root:not([data-theme="dark"]) body::before{background:
  radial-gradient(80% 38% at 30% 0%,rgba(100,150,235,.38),transparent 70%),
  radial-gradient(70% 35% at 100% 100%,rgba(120,140,235,.25),transparent 70%),
  linear-gradient(180deg,#e6edf6 0%,#eff3f9 100%)}   /* + синие оттенки, вариант 2 (Рубен 01.10) */

/* общая «стеклянная» поверхность */
.blk,.two-col,.kvs,.stats,.chart,.msg,.cf,.office,details.fold,details.dayfold,.mb.rep,.note-p,.rep-h,.tmap{
  background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  border:1px solid var(--gl-b);box-shadow:inset 0 1px 0 var(--gl-hi),var(--gl-sh);border-radius:var(--r)}

/* ── Шапка: стекло, крупный заголовок рядом с кнопками ── */
.navbar{background:transparent;border-bottom:0;padding:var(--top) var(--side) 0;gap:10px;height:calc(var(--head) + var(--top))}
.navbar::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(var(--bg) 0%, color-mix(in srgb, var(--bg) 70%, transparent) 55%, transparent 100%)}
#navtitle{font-size:28px;font-weight:700;letter-spacing:-.025em;text-transform:none;color:var(--ink);line-height:1.1;flex:none;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#navaux{flex:1;min-width:0;text-align:right;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.navbtn{flex:none;width:42px;height:42px;border-radius:21px;display:grid;place-items:center;color:var(--ink);
  background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--gl-b);box-shadow:inset 0 1px 0 var(--gl-hi),0 4px 14px rgba(24,60,130,.10)}
.navbtn .ms{font-size:22px}
.navbtn:active{transform:scale(.94)}
.navbar .back{width:42px;height:42px;margin:0;border-radius:21px;background:var(--gl);border:1px solid var(--gl-b);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:inset 0 1px 0 var(--gl-hi)}
.navbar .bar{left:var(--side);right:var(--side);bottom:0;height:3px;border-radius:2px}
.navbar .bar::after{background:var(--acc)}
.navbar.msg #navaux,.navbar.jobhead #navaux{text-align:left;font-size:14px;line-height:18px;color:var(--ink)}
.navbar.msg,.navbar.jobhead{padding-bottom:8px}
.navbar.msg .navbtn,.navbar.jobhead .navbtn{display:none}
.on-capture .navbtn{display:none}

/* ── Блоки ── */
.blk{margin:0 var(--side) 12px;padding:18px 18px 16px;border-bottom:1px solid var(--gl-b)}
.blk.thin{border-bottom:1px solid var(--gl-b)}
.big{font-size:46px;font-weight:700;letter-spacing:-.035em;line-height:1;margin-top:6px}
.big small{font-size:28px}
.big.mid{font-size:32px} .big.mid small{font-size:22px}
.two-col{margin:0 var(--side) 12px;border-bottom:1px solid var(--gl-b);gap:0;overflow:hidden}
.two-col>*{padding:16px 18px 14px}
.two-col>*:first-child{border-right:1px solid var(--hair)}
.two-col .big.mid{font-size:30px;letter-spacing:-.03em}
.stats{margin:14px 0 0;border-top:0;background:var(--fill);box-shadow:none;border-radius:16px;-webkit-backdrop-filter:none;backdrop-filter:none}
.stats>div{border-right:1px solid var(--hair);padding:10px 12px}
.blk .stats{border:0}
.cap{font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink-2)}
.cap.ink{color:var(--ink)}
.n{letter-spacing:-.02em}
.ruler,.ruler.top{height:0;background:none;margin-top:10px}
.sh{padding:16px calc(var(--side) + 6px) 8px}
.sh .cap.ink{font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2)}
.title{display:none}

/* ── Строки: подряд идущие собираются в одну стеклянную группу ── */
:is(.ln,.truck,.emp,.job,.empty){margin:0 var(--side);background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  border:1px solid var(--gl-b);border-top:0;border-bottom:1px solid var(--hair);width:auto}
:is(.ln,.truck,.emp,.job,.empty):not(:is(.ln,.truck,.emp,.job,.empty) + :is(.ln,.truck,.emp,.job,.empty)){border-top:1px solid var(--gl-b);border-radius:var(--r) var(--r) 0 0;box-shadow:inset 0 1px 0 var(--gl-hi)}
:is(.ln,.truck,.emp,.job,.empty):not(:has(+ :is(.ln,.truck,.emp,.job,.empty))){border-bottom:1px solid var(--gl-b);border-radius:0 0 var(--r) var(--r);margin-bottom:12px}
:is(.ln,.truck,.emp,.job,.empty):not(:is(.ln,.truck,.emp,.job,.empty) + :is(.ln,.truck,.emp,.job,.empty)):not(:has(+ :is(.ln,.truck,.emp,.job,.empty))){border-radius:var(--r)}
.ln{padding:0 16px;min-height:52px}
.ln.stack{padding:12px 16px}
.ln .t{font-size:16px;font-weight:500;letter-spacing:-.01em}
.ln .s{font-size:13px}
.ln .v{font-size:16px}
.ln .d{font-size:12px;letter-spacing:0;font-weight:600}
.ln.act:active,.truck:active{background:var(--gl-strong)}
.truck{padding:0 16px;min-height:54px}
.empty{padding:14px 16px}
.job{padding:14px 16px}
.job .bar{height:6px;border-radius:3px;background:var(--hair)}
.job .bar i{border-radius:3px;background:var(--acc)}
.sq{width:9px;height:9px;border-radius:50%}
.sq.g{background:var(--ok)} .sq.a{background:var(--warn)} .sq.r{background:var(--red)}
.tick{width:26px;height:26px;border-radius:13px;border:2px solid var(--ink-3)}
.tick:active,.tick.on{background:var(--acc);border-color:var(--acc);color:#fff}
.tag.g{color:var(--ok)}

/* отчёты */
.rep-h{margin:0 var(--side) 0;padding:14px 18px 10px;border-radius:var(--r) var(--r) 0 0;border-bottom:1px solid var(--hair);font-size:13px;letter-spacing:.04em}
.kvs{margin:0 var(--side) 12px;border-radius:0 0 var(--r) var(--r);border-top:0;overflow:hidden}
.kvs:not(.rep-h + .kvs){border-radius:var(--r);border-top:1px solid var(--gl-b)}
.kv{border-bottom:1px solid var(--hair);padding:10px 12px 12px 16px}
.kv:nth-child(2n){border-left:1px solid var(--hair)}
.kv .cap{letter-spacing:0}
.kv.h3{border-bottom:1px solid var(--hair)}
.kv.head{background:var(--fill);border-bottom:1px solid var(--hair)}
.note-p{margin:0 var(--side) 12px;padding:12px 16px}
.mb.rep{margin:0 var(--side) 12px;padding:14px 16px}
.mb.rep th,.msg .mb th{letter-spacing:.02em;border-bottom:1px solid var(--rule)}
.mb.rep blockquote,.msg .mb blockquote{border-left:0;border-radius:14px;background:var(--fill)}
.mb.rep pre,.msg .mb pre{border-radius:12px}
.chart{margin:0 var(--side) 12px;padding:14px 16px 8px}
.chart text{font-family:inherit}

/* ── Лента «Пульс» ── */
.day{padding:16px 0 8px}
.day .cap{border:1px solid var(--gl-b);border-radius:14px;padding:5px 12px;background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.sw{margin:10px var(--side) 0;border-radius:var(--r)}
.sw .msg{background:var(--gl-strong)}
.msg{padding:14px 16px;border-radius:var(--r)}
.msg.pinned{border:1.5px solid color-mix(in srgb, var(--acc) 45%, var(--gl-b))}
.msg.read{border-color:var(--gl-b);color:var(--ink-2);opacity:.85}
.msg.alert{border-color:color-mix(in srgb, var(--red) 55%, transparent);border-left-width:1px;box-shadow:inset 0 1px 0 var(--gl-hi),0 0 0 3px color-mix(in srgb, var(--red) 14%, transparent),var(--gl-sh)}
.msg header{border-bottom:1px solid var(--hair)}
.msg .mini{border-radius:17px;border:1px solid var(--gl-b);background:var(--fill);text-transform:none;letter-spacing:0;font-size:13px}
.msg .mb a{color:var(--acc)}
.sw-l,.sw-r{border-radius:var(--r);text-transform:none;letter-spacing:0;font-size:13px}
.sw-l{background:var(--acc);color:#fff}
details.dayfold{margin:14px var(--side) 0;border-top:1px solid var(--gl-b);padding:0 0 4px}
details.dayfold .sw{margin-left:10px;margin-right:10px}
details.fold{margin:0 var(--side) 12px}
details.fold summary{padding:14px 16px}

/* ── Кнопки ── */
.btn{height:50px;border-radius:25px;background:var(--acc);color:var(--acc-ink);font-size:15px;font-weight:600;letter-spacing:-.005em;text-transform:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 20px color-mix(in srgb, var(--acc) 30%, transparent)}
.btn.ghost{background:var(--gl);color:var(--ink);border:1px solid var(--gl-b);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:inset 0 1px 0 var(--gl-hi),0 6px 16px rgba(24,60,130,.08)}
.btn.red{background:var(--red);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 20px color-mix(in srgb, var(--red) 30%, transparent)}
.btn.two{height:58px;border-radius:22px}
.btn.two span{text-transform:none;letter-spacing:0;font-size:15px}
.btn.two small{font-size:12px}
.row{padding:4px var(--side) 12px;gap:10px}
.go{padding:16px var(--side) 0}
.seg{border:0;border-radius:14px;background:var(--fill);padding:3px;gap:2px}
.seg button{border:0;border-radius:11px;height:34px;font-size:13px;letter-spacing:0}
.seg button[aria-pressed="true"]{background:var(--gl-strong);color:var(--acc);box-shadow:0 2px 8px rgba(24,60,130,.14),inset 0 1px 0 var(--gl-hi)}
:root[data-theme="dark"] .seg button[aria-pressed="true"]{background:rgba(255,255,255,.18);color:#fff}
.seg.tall button{height:40px}
.x{border-radius:16px}

/* ── Нижнее меню: те же пять пунктов (Рубен, 01.10), вид — плавающая стеклянная капсула ── */
.tabbar{left:var(--side);right:var(--side);bottom:calc(10px + var(--bot) * .6);height:64px;padding:0 6px;border-top:0;border-radius:32px;gap:0;
  justify-content:space-around;align-items:center;background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  border:1px solid var(--gl-b);box-shadow:inset 0 1px 0 var(--gl-hi),0 12px 34px rgba(24,60,130,.18)}
.tab{height:54px;width:auto;flex:1;max-width:76px;border-top:0;margin:0;border-radius:27px;padding:0;justify-content:center;gap:2px;color:var(--ink-2)}
.tab span{font-size:10.5px;letter-spacing:0;text-transform:none;font-weight:600}
.tab[aria-selected="true"]{color:var(--acc);background:var(--gl-strong);border-top-color:transparent;box-shadow:inset 0 1px 0 var(--gl-hi),0 2px 10px rgba(24,60,130,.12)}
:root[data-theme="dark"] .tab[aria-selected="true"]{background:rgba(255,255,255,.16);color:#fff}
.tab[data-tab="pulse"],.tab[data-tab="pulse"][aria-selected="true"]{color:var(--red);border-top-color:transparent}
.tab .badge{top:4px;border-radius:9px}
#scroll{padding-bottom:calc(100px + var(--bot))}
@media (display-mode: standalone) and (max-width: 899px){
  .tabbar{height:64px;padding-bottom:0;bottom:max(10px, calc(var(--bot) - 10px))}
  #scroll{padding-bottom:calc(96px + var(--bot))}
}

/* ── Окна и меню ── */
.scrim{background:rgba(8,20,45,.28);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.sheet{left:10px;right:10px;border:1px solid var(--gl-b);border-radius:30px;background:var(--gl-strong);-webkit-backdrop-filter:blur(34px) saturate(190%);backdrop-filter:blur(34px) saturate(190%);
  box-shadow:inset 0 1px 0 var(--gl-hi),0 24px 60px rgba(10,30,70,.28)}
.sheet.bottom{left:10px;right:10px;bottom:calc(10px + var(--bot) * .5);border:1px solid var(--gl-b);border-radius:34px;padding-top:18px}
.sheet h3{text-transform:none;letter-spacing:-.01em;font-size:20px;font-weight:700;border-bottom:0!important;padding-bottom:4px}
.sheet :is(.ln,.truck,.emp,.job,.empty){background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border-left:0;border-right:0;margin-left:0;margin-right:0;border-radius:0!important}
.sheet :is(.blk,.two-col,.kvs,.chart,.note-p,.mb.rep,.rep-h){background:var(--fill);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.sheet.full{border-radius:0;left:0;right:0;border:0}
.scrim.full{background:var(--bg)}
.tile{border-radius:22px;border:1px solid var(--gl-b);background:var(--gl);box-shadow:inset 0 1px 0 var(--gl-hi)}
.sheet .tile{background:color-mix(in srgb, var(--acc) 8%, transparent);border-color:color-mix(in srgb, var(--acc) 14%, transparent);box-shadow:none}
.tile:active{background:var(--acc);color:#fff}
.tile span:last-of-type{text-transform:none;letter-spacing:0;font-size:12px}
.tile b{border-radius:10px}
.field{border-bottom:1px solid var(--hair)}
.field label{text-transform:none;letter-spacing:0;font-size:12.5px}
.field input,.field textarea{font-family:inherit}

/* ── Захват ── */
.cap-dock{left:10px;right:10px;bottom:calc(10px + var(--bot) * .5);border:1px solid var(--gl-b);border-radius:34px;background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:inset 0 1px 0 var(--gl-hi),var(--gl-sh);padding:18px 0 14px}
.cap-clear,.cap-write{border-radius:24px;border:1px solid var(--gl-b);background:var(--fill)}
.micbig{background:var(--acc);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 10px 30px color-mix(in srgb, var(--acc) 40%, transparent)}
.micbig.on,.micbig.speak{background:var(--red)}
.cap-dlg .q,.dlg .q{border:0;border-radius:20px 20px 6px 20px;background:var(--acc);color:#fff;padding:10px 14px}
.cap-dlg .a,.dlg .a{border-left:0;border-radius:20px 20px 20px 6px;background:var(--gl);border:1px solid var(--gl-b);padding:10px 14px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.cap-dlg .a.live{border-color:color-mix(in srgb, var(--red) 50%, transparent)}
.composer{background:transparent;border-top:0}
.composer textarea{border-bottom:1px solid var(--rule);font-family:inherit}
.composer .mic,.composer .send{border-radius:24px;border:1px solid var(--gl-b)}
.composer .send{background:var(--acc);color:#fff}

/* ── Загрузка и вход ── */
#loader,#login{background:transparent}
#loader::before,#login::before{content:"";position:absolute;inset:0;z-index:-1;background:inherit}
#loader{background:var(--bg)}
#login{background:var(--bg)}
#loader .w,#login .w{font-weight:700;letter-spacing:-.03em}
#loader .l{border-radius:2px}
#loader .l::after{background:var(--acc)}
#login a{color:var(--acc)}
#jobbar{left:var(--side);right:var(--side);width:auto;border-radius:18px;background:var(--acc);top:calc(var(--head) + var(--top) + 2px)}
.cf{margin:0 var(--side) 12px;border-left:1px solid color-mix(in srgb, var(--red) 55%, transparent)}
.office{margin:0 var(--side) 12px;padding:12px 16px}
.tmap{margin:0 0 12px;border-radius:20px;overflow:hidden}

/* ── Десктоп: стеклянная панель слева ── */
@media (min-width:900px) and (min-height:560px){
  :root{--side:20px}
  .tabbar{top:14px;bottom:14px;left:14px;right:auto;width:212px;height:auto;border-radius:30px;padding:16px 10px;justify-content:flex-start;align-items:stretch;gap:4px}
  .tab,.tab:first-child{flex:none;max-width:none;height:46px;border-radius:23px;padding:0 16px;border-left:0;justify-content:flex-start;gap:12px}
  .tab span:not(.ms){font-size:15px}
  #scroll,.navbar{left:240px}
  .sheet:not(.bottom){left:calc(240px + max(0px, (100vw - 240px - 760px) / 2))}
  .sheet:not(.bottom),.sheet.bottom{border-radius:30px}
  .cap-dock{left:250px}
  .blk,.ln,.sh,.row,.chart,.msg{padding-left:18px;padding-right:18px}
  .sw,.msg{margin-left:var(--side);margin-right:var(--side)}
  .sw .msg{margin:0}
}
@media (prefers-reduced-transparency:reduce){
  :root{--gl:rgba(255,255,255,.94);--gl-strong:#fff}
  :root[data-theme="dark"]{--gl:rgba(22,30,48,.96);--gl-strong:#1b2438}
}

/* ── Единые отступы (Рубен 01.10): поля 16 px, шаг между блоками 12 px, внутри карточек 16 px,
   заголовки секций — по краю текста в карточках; от шапки до контента меньше ── */
#scroll{padding-top:calc(var(--head) + var(--top) + 2px)}
.blk,.two-col,.kvs,.chart,.note-p,.mb.rep,.cf,.office,details.fold,.stats{margin-bottom:12px}
.blk{padding:16px}
.two-col>*{padding:16px}
.msg{padding:14px 16px}
.ln,.truck,.empty,.job,.emp,.ln.stack{padding-left:16px;padding-right:16px}
.chart{padding:14px 16px 8px}
.note-p,.mb.rep{padding:14px 16px}
.sh{padding:14px calc(var(--side) + 16px) 8px}
.sh:first-child{padding-top:4px}
.row{padding:0 var(--side);margin:0 0 12px;gap:10px}
.row.one{padding:0 var(--side)}
.go{padding:12px 0 0}
.ruler,.ruler.top{display:none}
.day{padding:4px 0 12px}
.sw{margin:0 var(--side) 12px}
details.dayfold{margin:0 var(--side) 12px;padding:0 0 4px}
details.dayfold summary{padding:14px 16px}
details.dayfold .sw{margin:0 10px 10px}
details.fold summary{padding:14px 16px}
#view>:first-child{margin-top:0}
.sheet .row{padding:0 16px}
@media (min-width:900px) and (min-height:560px){
  .blk,.ln,.row,.chart,.msg,.truck{padding-left:16px;padding-right:16px}
  .row{padding:0 var(--side)}
  .sh{padding-left:calc(var(--side) + 16px);padding-right:calc(var(--side) + 16px)}
  .sw{margin:0 var(--side) 12px}
}
/* окна и меню — мягче: iOS-кривая шторки */
.sheet{transition:opacity .32s ease,transform .45s cubic-bezier(.32,.72,0,1)}
.scrim{transition:opacity .32s ease}


/* ── Палитра D «голубой день» + шрифт Manrope (Рубен 01.10) ── */
:root:not([data-theme="dark"]){--bg:#e3f0f8;--acc:#0284c7;--ink:#0b2536;--ink-2:rgba(11,37,54,.6);--ink-3:rgba(11,37,54,.34);--hair:rgba(11,37,54,.08);--rule:rgba(11,37,54,.14);
  --gl:rgba(255,255,255,.55);--gl-strong:rgba(255,255,255,.82);--gl-sh:0 10px 30px rgba(10,80,130,.12)}
:root:not([data-theme="dark"]) body::before{background:
  radial-gradient(80% 40% at 30% 0%,rgba(14,165,233,.30),transparent 70%),
  radial-gradient(70% 35% at 100% 100%,rgba(56,189,248,.22),transparent 70%),
  linear-gradient(180deg,#e3f0f8 0%,#eef5fa 100%)}
:root[data-theme="dark"]{--acc:#38bdf8}
body,button,input,textarea,select,.chart text{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Golos Text",sans-serif}
#navtitle{letter-spacing:-.03em;font-weight:700}
.big{font-weight:700}

/* ── Чёткие блоки (Рубен 01.10: «блоки сливаются»): карточки плотнее, с контуром и тенью,
   между разными блоками больше воздуха, заголовки секций заметнее ── */
:root:not([data-theme="dark"]){--gl:rgba(255,255,255,.78);--gl-strong:rgba(255,255,255,.92);--gl-b:rgba(11,37,54,.09);
  --card-sh:0 1px 2px rgba(11,37,54,.06),0 8px 24px rgba(10,80,130,.10)}
:root[data-theme="dark"]{--gl:rgba(255,255,255,.085);--gl-b:rgba(255,255,255,.14);--card-sh:0 1px 0 rgba(255,255,255,.04),0 10px 28px rgba(0,0,0,.45)}
.blk,.two-col,.kvs,.chart,.msg,.cf,.office,details.fold,details.dayfold,.mb.rep,.note-p,.wx{box-shadow:inset 0 1px 0 var(--gl-hi),var(--card-sh)}
:is(.ln,.truck,.emp,.job,.empty):not(:has(+ :is(.ln,.truck,.emp,.job,.empty))){box-shadow:var(--card-sh);margin-bottom:16px}
.blk,.two-col,.kvs,.chart,.note-p,.mb.rep,.cf,.office,details.fold,.wx{margin-bottom:16px}
.sh{padding-top:18px}
.sh .cap.ink{color:var(--ink);opacity:.72;font-size:12.5px;letter-spacing:.06em}
.row{margin-bottom:16px}
/* вложенное внутри карточки — своим оттенком, не цветом родителя */
.msg .mb blockquote,.mb.rep blockquote{background:color-mix(in srgb, var(--acc) 9%, transparent);border:1px solid color-mix(in srgb, var(--acc) 16%, transparent)}
.msg .mb pre,.mb.rep pre{background:color-mix(in srgb, var(--ink) 6%, transparent)}
.msg .mb table,.mb.rep table{background:color-mix(in srgb, var(--acc) 5%, transparent);border-radius:12px;overflow:hidden}
.msg .mb th,.msg .mb td,.mb.rep th,.mb.rep td{padding-left:8px}
.stats{background:color-mix(in srgb, var(--acc) 7%, transparent);border:1px solid color-mix(in srgb, var(--acc) 12%, transparent)}
.two-col>*:first-child{border-right:1px solid var(--rule)}

/* ── Кошелёк: баланс, цифры и кнопки — одним блоком ── */
.wallet{display:flex;flex-direction:column}
.wallet-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.wallet-share{width:36px;height:36px;border-radius:18px;display:grid;place-items:center;color:var(--acc);background:color-mix(in srgb, var(--acc) 10%, transparent)}
.wallet-share .ms{font-size:18px}
.wallet-go{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.wallet-go .btn{height:46px}
.wallet-go .btn.ghost{background:color-mix(in srgb, var(--acc) 8%, transparent);border-color:color-mix(in srgb, var(--acc) 14%, transparent);box-shadow:none}

/* ── Погода: один блок, вид — по погоде ── */
.wx{position:relative;overflow:hidden;margin:0 var(--side) 16px;border-radius:var(--r);padding:16px;border:1px solid var(--gl-b);color:var(--ink);isolation:isolate}
.wx::before{content:"";position:absolute;inset:0;z-index:-2}
.wx-sun::before{background:linear-gradient(160deg,#ffe7a8 0%,#bfe3ff 70%)}
.wx-cloud::before{background:linear-gradient(160deg,#dfe9f3 0%,#c7d8ea 100%)}
.wx-rain::before{background:linear-gradient(160deg,#b9cde3 0%,#93acc8 100%)}
.wx-storm::before{background:linear-gradient(160deg,#8b9bb8 0%,#5b6a87 100%)}
.wx-snow::before{background:linear-gradient(160deg,#f3f8ff 0%,#d6e6f7 100%)}
.wx-fog::before{background:linear-gradient(160deg,#e6eaee 0%,#cdd5dd 100%)}
.wx-night::before,.wx-night-cloud::before{background:linear-gradient(160deg,#1d2b55 0%,#0e1733 100%)}
.wx-night,.wx-night-cloud,.wx-storm{color:#f2f6ff}
.wx-night .cap,.wx-night-cloud .cap,.wx-storm .cap{color:rgba(242,246,255,.7)}
:root[data-theme="dark"] .wx::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(5,10,21,.45)}
:root[data-theme="dark"] .wx{color:#f2f6ff}
:root[data-theme="dark"] .wx .cap{color:rgba(242,246,255,.7)}
.wx-art{position:absolute;right:-6px;top:-4px;width:170px;height:120px;z-index:-1;color:#fff;pointer-events:none}
.wx-art .wx-orb{fill:#ffc94a;filter:drop-shadow(0 0 12px rgba(255,190,60,.6))}
.wx-art .wx-ray{stroke:#ffc94a;stroke-width:3;stroke-linecap:round;transform-box:view-box}
.wx-sun .wx-art{animation:wx-spin 60s linear infinite;transform-origin:120px 44px}
.wx-art .wx-moon{fill:#f4e7b8;filter:drop-shadow(0 0 10px rgba(244,231,184,.5))}
.wx-art .wx-star{fill:#fff;animation:wx-tw 3s ease-in-out infinite}
.wx-art .wx-drop{stroke:#e9f3ff;stroke-width:2.2;stroke-linecap:round;animation:wx-fall 1.1s linear infinite}
.wx-art .wx-flake{fill:#fff;animation:wx-snow 2.6s linear infinite}
.wx-art .wx-fog{stroke:#fff;stroke-width:6;stroke-linecap:round;opacity:.7;animation:wx-drift 6s ease-in-out infinite alternate}
.wx-art .wx-bolt{fill:#ffd84a;animation:wx-flash 4s ease-in-out infinite}
.wx-cloud .wx-art,.wx-rain .wx-art,.wx-snow .wx-art,.wx-storm .wx-art,.wx-night-cloud .wx-art{color:rgba(255,255,255,.95)}
.wx-storm .wx-art,.wx-night-cloud .wx-art{color:rgba(200,210,230,.85)}
@keyframes wx-spin{to{transform:rotate(360deg)}}
@keyframes wx-tw{50%{opacity:.3}}
@keyframes wx-fall{from{transform:translateY(-6px);opacity:0}30%{opacity:1}to{transform:translateY(14px);opacity:0}}
@keyframes wx-snow{from{transform:translate(0,-6px);opacity:0}30%{opacity:1}to{transform:translate(4px,16px);opacity:0}}
@keyframes wx-drift{to{transform:translateX(10px)}}
@keyframes wx-flash{0%,86%,100%{opacity:.25}88%,92%{opacity:1}}
@media (prefers-reduced-motion:reduce){.wx-art,.wx-art *{animation:none!important}}
.wx-now{position:relative}
.wx-t{font-size:56px;font-weight:700;letter-spacing:-.04em;line-height:1;margin:6px 0 4px}
.wx-c{font-size:15px;font-weight:600}
.wx-chart{display:block;width:100%;height:auto;margin:12px 0 4px;overflow:visible}
.wx-chart text{font:600 11px "Manrope",-apple-system,sans-serif;fill:currentColor;opacity:.7}
.wx-chart text.lab{opacity:1;font-size:12px}
.wx-days{margin-top:8px;border-radius:16px;background:rgba(255,255,255,.42);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.wx-night .wx-days,.wx-night-cloud .wx-days,.wx-storm .wx-days,:root[data-theme="dark"] .wx-days{background:rgba(255,255,255,.1)}
.wx-d{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:10px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.45)}
.wx-d:first-child{border-top:0}
.wx-d .t{font-size:15px;font-weight:600}
.wx-d .s{grid-column:1;font-size:12.5px;opacity:.72}
.wx-d .v{grid-column:2;grid-row:1/3;align-self:center;font-size:15px;font-weight:700}
/* правки после проверки: капсула меню плотнее (сквозь неё не просвечивают кнопки), отступ у таблиц справа, снег виден на светлом */
.tabbar{background:var(--gl-strong)}
.msg .mb td:last-child,.msg .mb th:last-child,.mb.rep td:last-child,.mb.rep th:last-child{padding-right:8px}
.wx-art .wx-flake{fill:#8fb0d8}
.wx-snow .wx-art{color:rgba(170,195,225,.9)}
/* журнал — внутри карточки своего кошелька (Рубен 01.10) */
.wallet-log{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px}
.wallet-log-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px}
.wallet-log-h .cap.ink{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;opacity:.72}
.wallet :is(.ln,.empty){background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none!important;border:0;border-top:1px solid var(--hair);
  margin:0!important;border-radius:0!important;padding-left:0;padding-right:0}
.wallet .ln:first-of-type{border-top:0}
.wallet .ln{grid-template-columns:44px minmax(0,1fr) auto;min-height:48px}
.wallet .x{margin-right:-6px}
.wallet-log{border-top:0;padding-top:4px}

/* ── Шторки «Все записи» и «Отправить» (Рубен 01.10) ── */
.grab{width:38px;height:5px;border-radius:3px;background:var(--ink-3);margin:-6px auto 12px;opacity:.6}
.sh-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:0 18px 12px}
.sh-title{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.sh-sub{font-size:13px;color:var(--ink-2);margin-top:3px}
.sh-close{flex:none;width:34px;height:34px;border-radius:17px;display:grid;place-items:center;background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink-2)}
.sh-close .ms{font-size:18px}
.sh-opts{display:flex;flex-direction:column;gap:8px;padding:2px 14px 4px}
.sh-opt{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:20px;background:color-mix(in srgb, var(--acc) 7%, transparent);border:1px solid color-mix(in srgb, var(--acc) 12%, transparent);text-align:left;color:var(--ink)}
.sh-opt:active{transform:scale(.98);background:color-mix(in srgb, var(--acc) 14%, transparent)}
.sh-opt>.ms:last-child{color:var(--ink-3);font-size:18px}
.sh-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--acc);color:#fff}
.sh-ic .ms{font-size:20px}
.sh-tx b{display:block;font-size:16px;font-weight:600}
.sh-tx small{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.en-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 14px 6px}
.en-sum>div{border-radius:16px;padding:10px 12px;background:color-mix(in srgb, var(--acc) 7%, transparent);border:1px solid color-mix(in srgb, var(--acc) 12%, transparent);min-width:0}
.en-sum b{display:block;font-size:16px;font-weight:700;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.en-list{padding:0 14px 6px}
.en-day{display:flex;justify-content:space-between;padding:14px 4px 6px;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.en-grp{border-radius:18px;background:color-mix(in srgb, var(--ink) 4%, transparent);border:1px solid var(--hair);overflow:hidden}
.en-row{display:grid;grid-template-columns:minmax(0,1fr) auto 30px;align-items:center;gap:8px;min-height:48px;padding:0 6px 0 14px;border-top:1px solid var(--hair)}
.en-row:first-child{border-top:0}
.en-n{font-size:15.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.en-v{font-size:15.5px;font-weight:600}
.en-v.ok,.en-sum .ok{color:var(--ok)}
.en-x{width:30px;height:30px;border-radius:15px;display:grid;place-items:center;color:var(--ink-3)}
.en-x:active{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent)}
.en-x .ms{font-size:16px}
.sheet.bottom:has(.en-list){max-height:86vh}
/* меньше пустоты внизу: последний блок — в 12 px над капсулой меню (Рубен 01.10) */
#scroll{padding-bottom:calc(86px + var(--bot) * .6)}
#view>:last-child{margin-bottom:0!important}
@media (display-mode: standalone) and (max-width: 899px){#scroll{padding-bottom:calc(86px + max(0px, var(--bot) - 20px))}}
@media (min-width:900px) and (min-height:560px){#scroll{padding-bottom:24px}}

/* ── Разделы одной карточкой (СЕМИКС, 01.10): заголовок, строки и кнопки внутри общего блока ── */
.grp{margin:0 var(--side) 16px;padding:14px 16px;border-radius:var(--r);background:var(--gl);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  border:1px solid var(--gl-b);box-shadow:inset 0 1px 0 var(--gl-hi),var(--card-sh)}
.grp>.sh{padding:2px 0 8px}
.grp :is(.ln,.truck,.empty,.job),.wallet :is(.ln,.empty){background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none!important;border:0;
  border-top:1px solid var(--hair);margin:0!important;border-radius:0!important;padding-left:0;padding-right:0}
.grp>.sh + :is(.ln,.truck,.empty,.job){border-top:0}
.grp .two-col{margin:-14px -16px 0;background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
.grp .row{padding:0;margin:12px 0 0}
.grp .row + .row{margin-top:8px}
.grp .ln.stack{padding-top:12px;padding-bottom:12px}
.grp .truck{min-height:52px}
.grp .btn.ghost{background:color-mix(in srgb, var(--acc) 8%, transparent);border-color:color-mix(in srgb, var(--acc) 14%, transparent);box-shadow:none}
.grp .seg{background:color-mix(in srgb, var(--ink) 6%, transparent)}
/* шапка: стеклянная подложка, контент под заголовком не читается сквозь него */
.navbar::before{background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  -webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
/* шапка без заливки: только размытие контента под ней, плавно сходит на нет — фон остаётся единым (01.10) */
.navbar::before{background:transparent;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  -webkit-mask-image:linear-gradient(#000 0%,#000 55%,transparent 100%);mask-image:linear-gradient(#000 0%,#000 55%,transparent 100%)}
/* верх экрана — ровный цвет фона (совпадает со строкой состояния iPhone в PWA), свечения ниже;
   шапка плотная в цвет фона и плавно уходит вниз — без размытия и без шва (01.10) */
:root:not([data-theme="dark"]) body::before{background:
  linear-gradient(180deg,var(--bg) 0,var(--bg) 110px,transparent 280px),
  radial-gradient(80% 40% at 30% 14%,rgba(14,165,233,.28),transparent 70%),
  radial-gradient(70% 35% at 100% 100%,rgba(56,189,248,.22),transparent 70%),
  linear-gradient(180deg,#e3f0f8 0%,#eef5fa 100%)}
:root[data-theme="dark"] body::before{background:
  linear-gradient(180deg,var(--bg) 0,var(--bg) 110px,transparent 280px),
  radial-gradient(42% 32% at 12% 14%, var(--b1), transparent 70%),
  radial-gradient(40% 34% at 92% 26%, var(--b2), transparent 70%),
  radial-gradient(46% 36% at 20% 62%, var(--b3), transparent 72%),
  radial-gradient(44% 34% at 88% 88%, var(--b4), transparent 72%),
  var(--bg)}
.navbar::before{background:linear-gradient(var(--bg) 0%,var(--bg) 72%,color-mix(in srgb, var(--bg) 0%, transparent) 100%);
  -webkit-backdrop-filter:none;backdrop-filter:none;-webkit-mask-image:none;mask-image:none;bottom:-14px}
/* PWA на телефоне: шапка выше (Рубен 01.10) */
@media (display-mode: standalone) and (max-width: 899px){:root{--head:44px}.navbar{align-items:center}}
.sheet .go{padding:14px 20px 0}
/* PWA iOS: приложение под строкой состояния (black-translucent), под часами — синяя полоса;
   затемнение окна ложится и на неё (Рубен 01.10) */
.sbar{display:none}
@media (display-mode: standalone){
  :root{--top:env(safe-area-inset-top, 0px)}
  .sbar{display:block;position:fixed;left:0;right:0;top:0;height:env(safe-area-inset-top, 0px);z-index:25;background:#0c4a6e}
  :root[data-theme="dark"] .sbar{background:#050a15}
}
/* iOS 26: Safari и PWA красят верх экрана по фону страницы и закреплённым элементам у края, theme-color не слушают.
   Поэтому при открытом окне темнеют фон страницы и полоска у самого верха (над затемнением) (01.10) */
:root{--dimc:#a6b2bf}
:root[data-theme="dark"]{--dimc:#060d1c}
.sbar{display:block;position:fixed;left:0;right:0;top:0;height:max(env(safe-area-inset-top, 0px),2px);z-index:45;background:var(--bg);pointer-events:none;transition:background-color .32s ease}
html.sheet-on,html.sheet-on body{background:var(--dimc)!important;transition:background-color .32s ease}
html.sheet-on .sbar{background:var(--dimc)}
@media (display-mode: standalone){
  :root:not([data-theme="dark"]) .sbar{background:#0c4a6e}
  :root:not([data-theme="dark"]).sheet-on .sbar{background:#0b3b5c}
}
.sbar{height:env(safe-area-inset-top, 0px)}
/* фон за окном — сплошной, в цвет верха экрана (строки состояния), без затемнения (Рубен 01.10) */
.scrim,.scrim.full{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}
html.sheet-on,html.sheet-on body{background:var(--bg)!important}
html.sheet-on .sbar{background:var(--bg)}
.sheet{box-shadow:inset 0 1px 0 var(--gl-hi),0 18px 50px rgba(10,60,110,.18);border-color:rgba(11,37,54,.08)}
.navbar::before{bottom:-2px;background:linear-gradient(var(--bg) 0%,var(--bg) 62%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}   /* растушёвка шапки заканчивается выше (01.10) */
/* шапка прокручивается с контентом — подложка не нужна */
.navbar::before{display:none}
.navbar{will-change:transform}
.navbar.msg,.navbar.jobhead{background:var(--gl-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);transition:background-color .2s ease}

/* ── Палитра «графит + синий» (Рубен 01.10): холодный серый фон, глубокое синее свечение, акцент — синий (не голубой) ── */
:root:not([data-theme="dark"]){--bg:#eceef2;--acc:#2f4fd1;--ink:#14171f;--ink-2:rgba(20,23,31,.6);--ink-3:rgba(20,23,31,.34);--hair:rgba(20,23,31,.08);--rule:rgba(20,23,31,.14);
  --gl-sh:0 10px 30px rgba(20,30,60,.10);--card-sh:0 1px 2px rgba(20,23,31,.06),0 8px 24px rgba(20,30,70,.10);--dimc:#eceef2}
:root:not([data-theme="dark"]) body::before{background:
  linear-gradient(180deg,var(--bg) 0,var(--bg) 90px,transparent 260px),
  radial-gradient(70% 42% at 12% 14%,rgba(47,79,209,.22),transparent 70%),
  radial-gradient(60% 40% at 100% 52%,rgba(71,85,105,.20),transparent 70%),
  radial-gradient(70% 42% at 20% 100%,rgba(47,79,209,.16),transparent 70%),
  linear-gradient(180deg,#eceef2 0%,#e6e9ef 55%,#e9ebf0 100%)}
:root[data-theme="dark"]{--acc:#6d86ff}
/* верхняя растушёвка, как была до прокручиваемой шапки: контент и уезжающая шапка уходят под неё (01.10) */
body::after{content:"";position:fixed;left:0;right:0;top:0;height:calc(max(var(--top),0px) + 34px);z-index:21;pointer-events:none;
  background:linear-gradient(var(--bg) 0%,var(--bg) 45%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}
.sheet-on body::after{z-index:39}
/* графит + синий: градиент заметнее (Рубен 01.10 — «почему сплошной») */
:root:not([data-theme="dark"]) body::before{background:
  linear-gradient(180deg,var(--bg) 0,var(--bg) 80px,transparent 220px),
  radial-gradient(75% 45% at 8% 18%,rgba(47,79,209,.40),transparent 70%),
  radial-gradient(65% 45% at 105% 50%,rgba(51,65,85,.34),transparent 70%),
  radial-gradient(80% 45% at 25% 105%,rgba(47,79,209,.34),transparent 70%),
  linear-gradient(180deg,#eceef2 0%,#e1e5ee 50%,#d9dfec 100%)}
.navbar{z-index:22}   /* заголовок над верхней растушёвкой */
/* шапка снова зафиксирована, но ниже ростом и выше на экране (Рубен 01.10) */
:root{--head:46px}
@media (display-mode: standalone) and (max-width: 899px){:root{--head:42px}}
.navbar{transform:none!important;align-items:center}
.navbar::before{display:block;bottom:-16px;background:linear-gradient(var(--bg) 0%,var(--bg) 68%,color-mix(in srgb, var(--bg) 0%, transparent) 100%);-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-mask-image:none;mask-image:none}
body::after{display:none}
#navtitle{font-size:26px}
#scroll{padding-top:calc(var(--head) + var(--top) + 6px)}
/* заголовок ещё выше, растушёвка длиннее и мягче (01.10) */
:root{--head:40px}
@media (display-mode: standalone) and (max-width: 899px){:root{--head:36px}}
.navbar::before{bottom:-30px;background:linear-gradient(var(--bg) 0%,var(--bg) 50%,color-mix(in srgb, var(--bg) 70%, transparent) 70%,color-mix(in srgb, var(--bg) 30%, transparent) 86%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}
#scroll{padding-top:calc(var(--head) + var(--top) + 10px)}
.navbar::before{bottom:-6px;background:linear-gradient(var(--bg) 0%,var(--bg) 55%,color-mix(in srgb, var(--bg) 60%, transparent) 78%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}   /* конец растушёвки — сразу под заголовком (01.10) */

.navbar::before{bottom:-16px;background:linear-gradient(color-mix(in srgb, var(--bg) 100%, transparent) 0%,color-mix(in srgb, var(--bg) 100%, transparent) 42%,color-mix(in srgb, var(--bg) 97%, transparent) 50%,color-mix(in srgb, var(--bg) 91%, transparent) 56%,color-mix(in srgb, var(--bg) 82%, transparent) 62%,color-mix(in srgb, var(--bg) 69%, transparent) 68%,color-mix(in srgb, var(--bg) 54%, transparent) 74%,color-mix(in srgb, var(--bg) 39%, transparent) 80%,color-mix(in srgb, var(--bg) 24%, transparent) 86%,color-mix(in srgb, var(--bg) 11%, transparent) 92%,color-mix(in srgb, var(--bg) 3%, transparent) 97%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}   /* растушёвка с плавной кривой, без резкого края (01.10) */
/* PWA: заголовок вплотную под строкой состояния (Рубен 01.10, скрин) */
@media (display-mode: standalone) and (max-width: 899px){
  :root{--head:34px}
  .navbar{align-items:flex-start;padding-top:calc(var(--top) + 0px)}
  #navtitle{line-height:1}
  #navaux{align-self:center}
  .navbar::before{bottom:-12px}
}
/* PWA: заголовок — как было, поднята растушёвка: заканчивается сразу под заголовком (01.10) */
@media (display-mode: standalone) and (max-width: 899px){
  :root{--head:36px}
  .navbar{align-items:center;padding-top:var(--top)}
  #navtitle{line-height:1.1}
}
.navbar::before{bottom:0}
/* PWA — верх как в мини-аппе Telegram (Рубен 01.10): та же высота шапки (40) и та же зона над заголовком,
   что Telegram отводит под свои кнопки (content-safe-area − 10 ≈ 34 px), растушёвка на всю высоту */
@media (display-mode: standalone) and (max-width: 899px){
  :root{--head:40px;--top:calc(env(safe-area-inset-top, 0px) + 34px)}
  .navbar{align-items:center;padding-top:var(--top)}
  .navbar::before{bottom:0}
}

/* PWA: строка состояния iOS — уже сплошная, поэтому растушёвка начинается сразу под ней и тянется на всю шапку, как в мини-аппе (01.10) */
@media (display-mode: standalone) and (max-width: 899px){.navbar::before{bottom:-10px;background:linear-gradient(color-mix(in srgb, var(--bg) 90%, transparent) 0%,color-mix(in srgb, var(--bg) 86%, transparent) 12%,color-mix(in srgb, var(--bg) 79%, transparent) 24%,color-mix(in srgb, var(--bg) 70%, transparent) 36%,color-mix(in srgb, var(--bg) 60%, transparent) 48%,color-mix(in srgb, var(--bg) 48%, transparent) 60%,color-mix(in srgb, var(--bg) 36%, transparent) 70%,color-mix(in srgb, var(--bg) 24%, transparent) 80%,color-mix(in srgb, var(--bg) 14%, transparent) 88%,color-mix(in srgb, var(--bg) 5%, transparent) 95%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}}
/* PWA: заголовок в самый верх, сразу под строкой состояния; растушёвка прежняя мягкая (01.10) */
@media (display-mode: standalone) and (max-width: 899px){
  :root{--top:env(safe-area-inset-top, 0px);--head:44px}
  .navbar{align-items:flex-start;padding-top:calc(var(--top) + 2px)}
  #navtitle{line-height:1.05}
  #navaux{margin-top:8px}
  .navbar::before{bottom:-26px}
}

/* PWA: у верха заголовка растушёвка плотнее (01.10) */
@media (display-mode: standalone) and (max-width: 899px){.navbar::before{background:linear-gradient(color-mix(in srgb, var(--bg) 100%, transparent) 0%,color-mix(in srgb, var(--bg) 97%, transparent) 14%,color-mix(in srgb, var(--bg) 90%, transparent) 26%,color-mix(in srgb, var(--bg) 80%, transparent) 38%,color-mix(in srgb, var(--bg) 67%, transparent) 50%,color-mix(in srgb, var(--bg) 53%, transparent) 61%,color-mix(in srgb, var(--bg) 39%, transparent) 71%,color-mix(in srgb, var(--bg) 26%, transparent) 80%,color-mix(in srgb, var(--bg) 15%, transparent) 88%,color-mix(in srgb, var(--bg) 6%, transparent) 95%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}}
@media (display-mode: standalone) and (max-width: 899px){.navbar::before{bottom:-10px}}   /* растушёвка выше: конец ближе к заголовку (01.10) */

/* растушёвка ещё выше — конец ровно по низу шапки; в мини-аппе та же кривая и та же граница (01.10) */
.navbar::before{bottom:0;background:linear-gradient(color-mix(in srgb, var(--bg) 100%, transparent) 0%,color-mix(in srgb, var(--bg) 97%, transparent) 14%,color-mix(in srgb, var(--bg) 90%, transparent) 26%,color-mix(in srgb, var(--bg) 80%, transparent) 38%,color-mix(in srgb, var(--bg) 67%, transparent) 50%,color-mix(in srgb, var(--bg) 53%, transparent) 61%,color-mix(in srgb, var(--bg) 39%, transparent) 71%,color-mix(in srgb, var(--bg) 26%, transparent) 80%,color-mix(in srgb, var(--bg) 15%, transparent) 88%,color-mix(in srgb, var(--bg) 6%, transparent) 95%,color-mix(in srgb, var(--bg) 0%, transparent) 100%)}
@media (display-mode: standalone) and (max-width: 899px){.navbar::before{bottom:0}}

/* ── Единые окна (01.10): поля 18 px везде, заголовок с крестиком, строки и кнопки по тем же краям ── */
.sheet{padding:18px 0 18px}
.sheet.bottom{padding:14px 0 calc(16px + var(--bot) * .4)}
.sheet .sh-head{padding:0 18px 12px}
.sheet .body{padding:0 18px}
.sheet .go{padding:16px 18px 0}
.sheet .msg{padding:0 18px!important;background:transparent!important;box-shadow:none!important;border:0!important}
.sheet :is(.ln,.truck,.empty){padding-left:18px!important;padding-right:18px!important;border-top:1px solid var(--hair)}
.sheet .sh-head + div > :is(.ln,.truck,.empty):first-child,.sheet .grab + div > .ln:first-child{border-top:0}
.sheet .tiles{padding:0 18px}
.sheet .tmap{margin:0 18px 12px;border-radius:18px}
.sheet .field:last-child{border-bottom:0}
.sheet .note{margin:10px 18px 0}
.sheet h3{display:none}

/* ── Заголовок и подпись справа — на одной базовой линии, на всех страницах ── */
.navbar{align-items:baseline}
.navbar .back,.navbar .navbtn{align-self:center}
.navbar{padding-top:calc(var(--top) + 6px)}
@media (display-mode: standalone) and (max-width: 899px){.navbar{align-items:baseline;padding-top:calc(var(--top) + 2px)} #navaux{margin-top:0}}
.navbar.msg,.navbar.jobhead{align-items:flex-end}
/* правки после обхода всех экранов (01.10) */
.navbar{padding-top:max(calc(var(--top) + 6px), 10px)}
@media (display-mode: standalone) and (max-width: 899px){.navbar{padding-top:max(calc(var(--top) + 2px), 6px)}}
.sheet :is(.ln,.truck,.emp,.job,.empty){box-shadow:none!important;margin:0!important;background:transparent!important;border-radius:0!important;
  border-left:0!important;border-right:0!important;border-bottom:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;width:100%}
.sheet .seg{background:color-mix(in srgb, var(--ink) 7%, transparent)}
#view>button:is(.ln,.truck){width:calc(100% - 2 * var(--side))}
#view>.stats{margin:0 var(--side) 16px}
#view>.kvs{margin-left:var(--side);margin-right:var(--side)}
/* внутри единого блока — подзаголовки секций с отступом и линией сверху */
.grp>.sh:not(:first-child){margin-top:14px;padding-top:14px;border-top:1px solid var(--rule)}
.grp>.row + .sh{margin-top:16px}
.grab{display:none!important}   /* «ручка» в шторках убрана (Рубен 01.10) */
.sheet.bottom{padding-top:18px}
/* кнопка «Назад» меньше и по центру строки заголовка (01.10) */
.navbar .back{width:30px;height:30px;border-radius:15px;margin:0 8px 0 -2px;align-self:flex-start;margin-top:0;flex:none}
.navbar .back .ms{font-size:18px}
#navtitle{line-height:30px}
.navbar .back{margin-top:3px}
/* «Назад» — ростом с заглавную букву заголовка (кап-высота Manrope 26 px ≈ 19 px), центр — по центру букв (01.10) */
.navbar .back{width:20px;height:20px;border-radius:10px;margin:6px 10px 0 0;padding:0;border-width:1px}
.navbar .back .ms{font-size:14px}
.navbar .back{margin-right:0}
.navbar .back{width:28px;height:28px;border-radius:14px;margin:2px -4px 0 -4px}.navbar .back .ms{font-size:18px}   /* больше, центр на том же месте (01.10) */

/* ── Новая задача: чипы, поля даты/времени, «Подробнее» (01.10) ── */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{height:34px;padding:0 14px;border-radius:17px;font-size:14px;font-weight:600;background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink);border:1px solid transparent;white-space:nowrap}
.chip.on{background:var(--acc);color:#fff}
.chip:active{transform:scale(.96)}
.f-in{width:100%;margin-top:8px;height:42px;border-radius:12px;border:1px solid var(--hair)!important;background:color-mix(in srgb, var(--ink) 4%, transparent)!important;padding:0 12px!important;font:500 16px "Manrope",-apple-system,sans-serif!important;color:var(--ink)}
.two-f{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.two-f label{margin-bottom:0}
details.more-f{border-bottom:1px solid var(--hair)}
details.more-f summary{list-style:none;display:flex;align-items:center;gap:6px;padding:14px 0;font-size:14px;font-weight:700;color:var(--acc);cursor:pointer}
details.more-f summary::-webkit-details-marker{display:none}
details.more-f summary .ms{transition:transform .2s ease}
details.more-f[open] summary .ms{transform:rotate(90deg)}
details.more-f .field:last-child{border-bottom:0}
.task-f textarea{font-size:16px!important}
.sheet:has(.task-f){overflow-y:auto}
.chip.wide{flex:1 1 100%;height:42px;border-radius:21px;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:2px}   /* «Дата» — широкой кнопкой снизу (01.10) */
#view>.sh,#view>details>.sh{padding-top:4px}   /* меньше воздуха между блоком и следующим подзаголовком — везде (01.10) */
.task-f .chips{justify-content:center}.task-f details.more-f summary{justify-content:center}.task-f .field>label{text-align:center}   /* кнопки в новой задаче — по центру (01.10) */
.task-f .two-f label{text-align:center}
/* за окном — тот же градиентный фон приложения: подложка прозрачная, прячется только содержимое страницы (02.10) */
.scrim,.scrim.full{background:transparent}
#scroll,.navbar,.tabbar{transition:opacity .25s ease}
html.sheet-on #scroll,html.sheet-on .navbar,html.sheet-on .tabbar{opacity:0}
html.sheet-on .navbar,html.sheet-on .tabbar{pointer-events:none}
.scrim,.scrim.full{background:var(--bg)}   /* за любым окном — сплошной цвет верха, без полосы у строки состояния (Рубен 02.10) */
.sheet,.sheet.bottom{box-shadow:inset 0 1px 0 var(--gl-hi),0 1px 3px rgba(20,23,31,.06)!important;border:1px solid rgba(20,23,31,.08)}   /* без большой тени: фон вокруг окна не темнеет и совпадает с верхом (02.10) */
/* транзакция: крупная сумма, дата и тип в одну строку (02.10) */
.tx-amt{font-size:34px!important;font-weight:700!important;letter-spacing:-.02em}
.tx-f .two-f .seg{margin-top:8px;height:42px}
.tx-f .two-f .seg button{height:36px}
/* VPN: график внутри блока «Поступления за день», столбики нажимаются (02.10) */
.fv-chart{margin-top:14px}
.fv-chart svg{display:block;width:100%;height:auto;overflow:visible}
.fv-chart text{font:600 10px "Manrope",-apple-system,sans-serif;fill:var(--ink-2)}
.fv-bar{cursor:pointer}
.fv-bar .b{fill:color-mix(in srgb, var(--ink) 78%, transparent);transition:fill .2s ease}
.fv-bar.last .b{fill:var(--red)}
.fv-bar.sel .b{fill:var(--acc)}
.fv-tip rect{fill:var(--ink)}
.fv-tip text{fill:var(--bg);font-size:11px;font-weight:700}
.fv-chart{margin-top:-10px}   /* график ближе к сумме (02.10) */
/* «Отправить»: выбор периода (02.10) */
.shp{padding:0 16px 12px}
.shp .chips{justify-content:center}
.shp-range{margin-top:10px}
.shp-range .cap{display:block;text-align:center}
.two-f>div{min-width:0}.f-in{min-width:0;max-width:100%;box-sizing:border-box}.shp{padding:0 18px 12px}
.grp>.blk{margin:0;padding:0;background:transparent;border:0;box-shadow:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
#view>:nth-last-child(1 of :not(.ruler,[hidden],#b-tasks,.title)){margin-bottom:0!important}   /* отступ до меню одинаковый: скрытые элементы в конце не мешают (02.10) */
/* верх фона ровный ровно на высоту шапки (в Telegram шапка выше — под его кнопки), без полосы над заголовком (02.10) */
:root:not([data-theme="dark"]) body::before{background:
  linear-gradient(180deg,var(--bg) 0,var(--bg) calc(max(var(--top),0px) + var(--head)),transparent calc(max(var(--top),0px) + var(--head) + 150px)),
  radial-gradient(75% 45% at 8% 30%,rgba(47,79,209,.40),transparent 70%),
  radial-gradient(65% 45% at 105% 55%,rgba(51,65,85,.34),transparent 70%),
  radial-gradient(80% 45% at 25% 105%,rgba(47,79,209,.34),transparent 70%),
  linear-gradient(180deg,#eceef2 0%,#e1e5ee 50%,#d9dfec 100%)}
.grp :is(.truck,button.ln),.wallet button.ln{width:100%;box-sizing:border-box}.truck .st{justify-self:end;text-align:right}   /* статус/скорость самосвала — всегда справа (02.10) */

/* мини-апп: над заголовком сплошной фон (зона кнопок Telegram), растушёвка — по высоте заголовка, как в PWA (02.10) */
@media not all and (display-mode: standalone){.navbar::before{bottom:-4px;background:linear-gradient(var(--bg) 0,var(--bg) max(var(--top),0px),color-mix(in srgb, var(--bg) 100%, transparent) calc(max(var(--top),0px) + 0px),color-mix(in srgb, var(--bg) 95%, transparent) calc(max(var(--top),0px) + 6px),color-mix(in srgb, var(--bg) 86%, transparent) calc(max(var(--top),0px) + 12px),color-mix(in srgb, var(--bg) 74%, transparent) calc(max(var(--top),0px) + 18px),color-mix(in srgb, var(--bg) 57%, transparent) calc(max(var(--top),0px) + 24px),color-mix(in srgb, var(--bg) 40%, transparent) calc(max(var(--top),0px) + 30px),color-mix(in srgb, var(--bg) 22%, transparent) calc(max(var(--top),0px) + 36px),color-mix(in srgb, var(--bg) 8%, transparent) calc(max(var(--top),0px) + 42px),transparent 100%)}}
/* Пульс: «Архив» — одна раскрывашка, внутри дни (02.10) */
details.archfold{margin:0 var(--side) 16px}
details.archfold summary{padding:14px 16px}
details.archfold .arch-in{padding:0 10px 4px}
details.archfold details.dayfold{margin:0 0 10px;box-shadow:none;background:color-mix(in srgb, var(--ink) 4%, transparent);border:1px solid var(--hair);-webkit-backdrop-filter:none;backdrop-filter:none}
details.archfold details.dayfold summary{padding:12px 14px}
details.archfold details.dayfold .sw{margin:0 8px 8px}
details.fold summary .ms{transform:none}
details.fold[open]>summary .ms{transform:rotate(180deg)}
details.archfold>summary .cap:nth-child(2){margin-left:auto;margin-right:10px}

/* ── Уведомления-баннеры как в iOS (02.10) ── */
#banner{position:fixed;left:50%;top:calc(max(var(--top),0px) + 8px);z-index:90;display:flex;align-items:center;gap:10px;max-width:min(92vw,420px);
  padding:10px 16px 10px 10px;border-radius:24px;background:var(--gl-strong);-webkit-backdrop-filter:blur(30px) saturate(190%);backdrop-filter:blur(30px) saturate(190%);
  border:1px solid var(--gl-b);box-shadow:inset 0 1px 0 var(--gl-hi),0 10px 30px rgba(20,23,31,.18);color:var(--ink);
  transform:translate(-50%,-140%) scale(.92);opacity:0;pointer-events:none;
  transition:transform .5s cubic-bezier(.2,1.25,.35,1),opacity .25s ease}
#banner.on{transform:translate(-50%,0) scale(1);opacity:1;pointer-events:auto}
#banner .bn-ic{flex:none;width:28px;height:28px;border-radius:14px;display:grid;place-items:center;color:#fff;background:var(--ok)}
#banner .bn-ic .ms{font-size:17px}
#banner.err .bn-ic{background:var(--red)}
#banner.wait .bn-ic{background:var(--acc)}
#banner .bn-t{font-size:14.5px;font-weight:600;line-height:1.3;letter-spacing:-.005em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bn-spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:bnspin .8s linear infinite}
@keyframes bnspin{to{transform:rotate(360deg)}}
:root[data-theme="dark"] #banner{box-shadow:inset 0 1px 0 var(--gl-hi),0 10px 30px rgba(0,0,0,.5)}
@media (prefers-reduced-motion:reduce){#banner{transition:opacity .2s ease}}
#banner{width:max-content}
details.fold:not([open])>summary .ms{transform:none}details.fold[open]>summary .ms{transform:rotate(180deg)}   /* стрелка — по состоянию своей раскрывашки, а не родителя (02.10) */
#banner,:root[data-theme="dark"] #banner{box-shadow:inset 0 1px 0 var(--gl-hi)!important}   /* без тени за плашкой (02.10) */
.set-theme{padding:0 18px 14px;display:flex;flex-direction:column;gap:8px}.set-theme .cap{text-align:left}
