*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  /* Фон тёплый, а не холодно-серый: разница в пару процентов,
     но экран перестаёт выглядеть «компьютерным» */
  --bg:#F4F3F1;
  --card:#FFFFFF;
  --field:#F3F2F0;
  --navy:#000000;--navy2:#3C3C43;
  --g0:#FAF9F8;--g1:#F1F0EE;--g2:#E8E7E4;--g3:#DEDDDA;
  --txt:#15161A;--txt2:#5C5F66;--txt3:#8E9199;
  /* Основной интерактив чёрный. Синий акцент — самый частый
     признак шаблона, поэтому он остаётся только в данных */
  --ink:#16171B;--ink-soft:#2A2C31;
  --accent:#16171B;--accent-bg:#F1F0EE;--accent-brd:#16171B;
  --link:#5B5BD6;
  /* Электрический акцент — единственный хроматический цвет интерфейса.
     Как лайм у Linear, но подобран под светлый фон: на белом лайм
     нечитаем, контраст около единицы. */
  --iris:#5B5BD6;--iris-soft:rgba(91,91,214,.10);

  /* Разделение поверхностей — границами, а не тенями */
  --hair:rgba(16,17,20,.07);
  --hair-2:rgba(16,17,20,.12);
  --inset:inset 0 0 0 1px rgba(16,17,20,.07);
  --inset-2:inset 0 0 0 1px rgba(16,17,20,.11);

  /* Три радиуса на всю систему */
  --r-btn:6px;--r-card:12px;--r-pill:9999px;
  --green:#12A150;--gbg:#E9F8EF;--gbrd:#12A150;
  --yellow:#E08700;--ybg:#FEF4E6;--ybrd:#E08700;
  --blue:#0A72F0;--bbg:#EAF2FE;--bbrd:#0A72F0;
  --orange:#E08700;--obg:#FEF4E6;--obrd:#E08700;
  --red:#E5484D;--rbg:#FDECEC;--rbrd:#E5484D;
  --r:6px;--rc:12px;--rs:12px;
  --sh:none;
  --sh2:0 4px 32px rgba(8,9,10,.12);
  --ease:cubic-bezier(.32,.72,0,1);
  --sb:env(safe-area-inset-bottom,0px);
}
html,body{height:100%;background:var(--bg);font-size:16px;line-height:1.5;font-weight:400;overscroll-behavior-y:none;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',Roboto,sans-serif;
  color:var(--txt);-webkit-font-smoothing:antialiased;
  /* альтернативные глифы и моноширинные цифры — характер шрифта */
  font-feature-settings:'cv01' on,'ss03' on,'zero' on,'tnum' on;
  letter-spacing:-.011em}
.app{max-width:480px;margin:0 auto;background:var(--bg)}

.sync-dot{width:8px;height:8px;border-radius:50%;background:#4CAF50;display:inline-block;margin-left:6px;vertical-align:middle}
.sync-dot.off{background:#ff9800}
.content{padding:calc(60px + env(safe-area-inset-top,0px)) 16px calc(92px + var(--sb));display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.sec-lbl{font-size:13px;font-weight:510;color:var(--txt2);letter-spacing:-.1px;padding:0 4px;margin-bottom:-2px}
/* Cards */
.chv{font-size:17px;color:var(--txt3);transition:transform .2s;flex-shrink:0}
.chv.open{transform:rotate(180deg)}
select{width:100%;padding:11px 34px 11px 13px;font-size:15px;border:0.5px solid rgba(203,213,225,.7);border-radius:6px;background:rgba(255,255,255,.75) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--txt);margin-bottom:12px;-webkit-appearance:none;font-family:inherit}
.copy-btn:active{transform:scale(.98);background:rgba(219,234,254,.9)}
.del-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:13px;border:0.5px solid rgba(220,38,38,.22);border-radius:12px;background:rgba(254,242,242,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--red);font-size:15px;font-weight:510;cursor:pointer;margin-top:8px;letter-spacing:-.2px;transition:all .18s;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
.del-btn:active{transform:scale(.98);background:rgba(254,226,226,.85)}
.add-btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:15px;border:0.5px solid rgba(255,255,255,.9);border-radius:12px;background:rgba(255,255,255,.62);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);color:var(--accent);font-size:17px;font-weight:510;cursor:pointer;width:100%;box-shadow:0 2px 12px rgba(15,23,42,.06),inset 0 1px 0 rgba(255,255,255,.95);letter-spacing:-.2px;transition:transform .15s}
.add-btn:active{transform:scale(.98)}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 24px;color:var(--txt3)}
.empty i{font-size:34px;color:var(--g3);margin-bottom:12px}
/* Table tab - details/summary */
details{margin-bottom:10px;border-radius:12px;overflow:hidden;box-shadow:var(--sh)}
details summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;gap:10px;padding:13px 14px}
details summary::-webkit-details-marker{display:none}
/* Modal */
.modal-bg{display:flex;position:fixed;inset:0;background:rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:100;align-items:flex-end;justify-content:center;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s ease,visibility .22s}
.modal-bg.open{opacity:1;visibility:visible;pointer-events:auto}
.modal{background:var(--card);border-radius:12px 12px 0 0;width:100%;max-width:480px;padding:10px 20px calc(22px + var(--sb));box-shadow:0 -8px 40px rgba(0,0,0,.12);
  transform:translateY(100%);transition:transform .34s var(--ease)}
.modal-bg.open .modal{transform:translateY(0)}
.modal h3{font-size:19px;font-weight:510;margin:6px 0 18px;letter-spacing:-.4px;text-align:center}
.modal input{width:100%;padding:13px 14px;font-size:17px;border:none;border-radius:var(--r);margin-bottom:12px;color:var(--txt);background:var(--field);font-family:inherit}
.modal input:focus,.modal select:focus{outline:none;border-color:var(--navy)}
.modal select{margin-bottom:16px}
.modal-btns{display:flex;gap:10px;margin-top:4px}
.modal-btns button{flex:1;padding:15px;border-radius:6px;border:none;font-size:17px;font-weight:510;cursor:pointer;background:var(--field);color:var(--txt);font-family:inherit;transition:transform .15s var(--ease)}
.modal-btns button.primary{background:var(--accent);color:#fff}
.toast{position:fixed;bottom:calc(96px + var(--sb));left:50%;transform:translateX(-50%) translateY(12px);background:rgba(17,17,20,.92);backdrop-filter:blur(16px);color:#fff;padding:12px 20px;border-radius:12px;font-size:15px;font-weight:400;opacity:0;transition:all .25s var(--ease);z-index:200;pointer-events:none;white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,.18)}

.tx-del:active{color:var(--red)}

.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* Fin section fields */
.fin-field{margin-bottom:11px}
.fin-field label{font-size:13px;font-weight:510;color:var(--txt3);display:block;margin-bottom:4px}
.fin-input{width:100%;padding:9px 12px;font-size:15px;border:1.5px solid var(--g3);border-radius:var(--r);background:#fff;color:var(--txt)}



#auth-screen{position:fixed;inset:0;z-index:5000;background:linear-gradient(180deg,#F5F8FE 0%,#E8EFFA 100%);display:flex;align-items:center;justify-content:center;padding:24px}
#auth-screen.hide{display:none!important}
.auth-card{width:100%;max-width:360px;background:var(--card);border-radius:var(--rs);padding:32px 26px 26px;box-shadow:0 8px 40px rgba(0,0,0,.08);text-align:center}
.auth-logo{height:30px;display:block;margin:0 auto 8px}
.auth-sub{font-size:15px;color:var(--txt3);margin-bottom:22px;letter-spacing:-.1px}
.auth-card input{width:100%;padding:14px 15px;font-size:17px;border:none;border-radius:var(--r);background:var(--field);color:var(--txt);margin-bottom:11px;font-family:inherit;-webkit-appearance:none}
.auth-card input:focus{outline:none;border-color:var(--accent);background:#fff}
.auth-err{font-size:13px;color:var(--red);min-height:18px;margin-bottom:6px;line-height:1.35}
.auth-btn{width:100%;padding:15px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:17px;font-weight:510;cursor:pointer;letter-spacing:-.2px;box-shadow:0 2px 10px rgba(37,99,235,.28);transition:transform .15s}
.auth-btn:active{transform:scale(.98)}
.auth-btn:disabled{opacity:.6;cursor:default}
.auth-links{display:flex;justify-content:space-between;margin-top:16px;font-size:13px;color:var(--accent);font-weight:510}
.auth-links span{cursor:pointer}
.avatar-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:15px;font-weight:510;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh);flex-shrink:0;transition:transform .15s var(--ease);font-family:inherit}
.avatar-btn:active{transform:scale(.93)}
.acc-modal{padding-top:10px}
.acc-head{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 18px;margin-bottom:6px}
.acc-av{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;font-size:24px;font-weight:510;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.acc-info{text-align:center;min-width:0;width:100%}
.acc-name{font-size:18px;font-weight:510;color:var(--txt);letter-spacing:-.3px}
.acc-mail{font-size:15px;color:var(--txt3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-row{display:flex;align-items:center;gap:11px;width:100%;padding:15px 16px;border:none;border-radius:6px;background:var(--field);font-size:17px;font-weight:400;cursor:pointer;font-family:inherit;margin-bottom:10px;color:var(--red)}
.acc-row:active{background:rgba(254,226,226,.85)}
.acc-close{width:100%;padding:15px;border:none;border-radius:6px;background:var(--field);color:var(--txt);font-size:17px;font-weight:510;cursor:pointer;font-family:inherit}


.task-add{display:flex;gap:7px;padding:11px 13px;border-bottom:0.5px solid var(--g2)}
.task-add input{flex:1;min-width:0;padding:11px 13px;font-size:15px;border:none;border-radius:6px;background:var(--field);color:var(--txt);font-family:inherit}
.task-add input:focus{outline:none;border-color:var(--accent)}
.task-add select{width:auto;flex-shrink:0;padding:10px 24px 10px 10px;font-size:13px;margin:0;border-radius:var(--r);border:none;background-color:var(--field)}
.task-plus{flex-shrink:0;width:36px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.task-plus:active{transform:scale(.94)}
.task-chk{width:20px;height:20px;min-width:20px;border:1.5px solid var(--g3);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:1px;transition:all .15s}
.task-chk.done{background:var(--green);border-color:var(--green)}
.task-chk.done::after{content:'✓';color:#fff;font-size:13px;font-weight:510}
.task-body{flex:1;min-width:0}
.task-txt{font-size:15px;color:var(--txt);line-height:1.35;letter-spacing:-.15px;word-break:break-word}
.task-txt.done{color:var(--txt3);text-decoration:line-through}
.task-who{display:inline-block;font-size:11px;font-weight:510;padding:2px 8px;border-radius:12px;margin-top:5px}
.task-del{background:none;border:none;color:var(--g3);cursor:pointer;font-size:17px;padding:0 2px;line-height:1;flex-shrink:0}
.task-del:active{color:var(--red)}
.task-empty{padding:22px 15px;text-align:center;color:var(--txt3);font-size:13px}
.fld-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}

.ph-block{margin-bottom:14px}
.ph-hd{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--txt3);margin-bottom:8px;letter-spacing:-.1px}
.ph-cnt{font-size:11px;font-weight:510;min-width:18px;height:18px;border-radius:6px;background:var(--g2);color:var(--txt3);display:flex;align-items:center;justify-content:center;padding:0 5px}
.ph-cnt.has{background:rgba(22,163,74,.15);color:#15803D}
.ph-strip{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ph-th{position:relative;width:62px;height:62px;border-radius:var(--r);overflow:hidden;cursor:pointer;flex-shrink:0;background:var(--field)}
.ph-th img{width:100%;height:100%;object-fit:cover;display:block}
.ph-x{position:absolute;top:2px;right:2px;width:19px;height:19px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.ph-add{width:62px;height:62px;border-radius:var(--r);background:var(--field);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:var(--accent)}
.ph-add i{font-size:22px}
.ph-add:active{background:rgba(239,246,255,.8)}
.ph-none{font-size:13px;color:var(--txt3);padding:4px 2px}
#ph-viewer{display:flex;position:fixed;inset:0;z-index:6000;background:rgba(0,0,0,.92);align-items:center;justify-content:center;padding:20px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .24s ease,visibility .24s}
#ph-viewer.open{opacity:1;visibility:visible;pointer-events:auto}
#ph-viewer img{transform:scale(.94);transition:transform .28s var(--ease)}
#ph-viewer.open img{transform:scale(1)}
#ph-viewer img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.ph-close{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:16px;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.18);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}

.sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-right:2px}
.sec-plus{width:34px;height:34px;border-radius:9999px;border:none;background:var(--accent);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(10,114,240,.28)}
.sec-plus:active{transform:scale(.92)}

.act-card{background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:0.5px solid rgba(255,255,255,.9);border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(15,23,42,.06),inset 0 1px 0 rgba(255,255,255,.9)}
.act-hd{display:flex;align-items:center;gap:8px;padding:13px 15px 12px;font-size:15px;font-weight:510;color:var(--txt);letter-spacing:-.2px;border-bottom:0.5px solid rgba(203,213,225,.45)}
.act-read{margin-left:auto;background:none;border:none;color:var(--accent);font-size:13px;font-weight:510;cursor:pointer;padding:2px 4px;font-family:inherit}
.act-av{width:26px;height:26px;border-radius:50%;color:#fff;font-size:13px;font-weight:510;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.act-body{flex:1;min-width:0}
.act-txt{font-size:13px;color:var(--txt2);line-height:1.4;letter-spacing:-.1px}
.act-txt b{color:var(--txt);font-weight:510}
.act-time{font-size:11px;color:var(--txt3);margin-top:2px}
.act-new{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:9px}
.act-empty{padding:24px 16px;text-align:center;color:var(--txt3);font-size:13px}
.mem-av{width:24px;height:24px;border-radius:50%;color:#fff;font-size:11px;font-weight:510;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mem-x{margin-left:auto;background:none;border:none;color:var(--g3);font-size:17px;cursor:pointer;padding:0 2px}

.bell-btn{position:relative;width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--sh);transition:transform .15s var(--ease)}
.bell-btn i{font-size:22px}
.bell-btn:active{transform:scale(.92)}
.bell-btn.has{color:var(--accent)}
.bell-dot{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;border-radius:9999px;background:#FF3B30;color:#fff;font-size:11px;font-weight:510;line-height:1;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.18);font-variant-numeric:tabular-nums;letter-spacing:-.2px;pointer-events:none}
.bell-dot.pop{animation:badgePop .4s var(--ease)}
@keyframes badgePop{0%{transform:scale(0);opacity:0}55%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
.bell-main{}
.bell-btn.has i{color:var(--accent)}
.bell-btn.has{animation:bellRing .6s ease}
@keyframes bellRing{0%,100%{transform:rotate(0)}15%{transform:rotate(11deg)}30%{transform:rotate(-9deg)}45%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}}
.jr-screen{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;
  transform:translateX(100%);visibility:hidden;
  transition:transform .3s var(--ease),visibility .3s}
.jr-screen.open{transform:translateX(0);visibility:visible}
.jr-head{display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 10px 10px;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:0.5px solid var(--g2);flex-shrink:0}
.jr-back{width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.jr-back i{font-size:24px}
.jr-title{flex:1;font-size:16px;font-weight:510;color:var(--txt);letter-spacing:-.3px;text-align:center}
.jr-read{background:none;border:none;color:var(--accent);font-size:15px;font-weight:400;cursor:pointer;font-family:inherit;flex-shrink:0;padding:6px 8px;min-width:36px}
.jr-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px calc(20px + env(safe-area-inset-bottom,0px))}
.jr-body #act-list{background:var(--card);border-radius:var(--rc);overflow:hidden;box-shadow:var(--sh)}

#views{position:relative}
html,body{overflow-x:hidden}
.app{max-width:480px;margin:0 auto;background:var(--bg)}



/* ── ОБЗОР ─────────────────────────────────────── */
.hero-lbl{font-size:13px;color:var(--txt3);letter-spacing:-.1px}
.hero-val{font-variant-numeric:tabular-nums;font-size:34px;font-weight:510;color:var(--txt);letter-spacing:-.8px;line-height:1.15;margin-top:5px}
.hero-row{display:flex;align-items:center;margin-top:15px;padding-top:14px;border-top:0.5px solid var(--g2)}
.hero-item{flex:1;min-width:0}
.hero-cap{font-size:13px;color:var(--txt3);letter-spacing:-.1px}
.hero-num{font-variant-numeric:tabular-nums;font-size:17px;font-weight:510;color:var(--txt);margin-top:3px;letter-spacing:-.3px}
.hero-div{width:0.5px;height:34px;background:var(--g2);margin:0 16px}
.stat-row{display:flex;gap:10px}
.stat-val{font-variant-numeric:tabular-nums;font-size:20px;font-weight:510;color:var(--txt);letter-spacing:-.4px;line-height:1.15}
.stat-lbl{font-size:11px;color:var(--txt3);margin-top:3px;letter-spacing:-.1px}
/* блоки списков */
.blk-hd{display:flex;align-items:center;gap:9px;padding:13px 15px 12px;font-size:15px;font-weight:510;color:var(--txt);letter-spacing:-.2px;border-bottom:0.5px solid var(--g2)}
.blk-badge{margin-left:auto;font-size:11px;font-weight:510;min-width:20px;height:20px;border-radius:6px;background:var(--g1);color:var(--txt3);display:flex;align-items:center;justify-content:center;padding:0 6px}
.blk-badge.red{background:var(--rbg);color:var(--red)}
.att-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.att-b{flex:1;min-width:0}
.att-n{font-size:15px;font-weight:510;color:var(--txt);letter-spacing:-.15px}
.att-w{font-size:13px;color:var(--txt3);margin-top:1px}
.att i{font-size:17px;color:var(--g3);flex-shrink:0}


.blk-add{margin-left:auto;width:28px;height:28px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cats{padding:12px 15px 6px}
.cat{margin-bottom:12px}
.cat-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.cat-n{font-size:13px;color:var(--txt);letter-spacing:-.1px}
.cat-v{font-size:13px;color:var(--txt2);font-weight:510}
.cat-bar{height:5px;background:var(--g1);border-radius:4px;overflow:hidden}
.cat-bar div{height:100%;background:var(--accent);border-radius:4px;transition:width .3s}
.cat-p{font-size:11px;color:var(--txt3);margin-top:3px}
.op-mon{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.4px;padding:11px 15px 6px;background:var(--g0);border-bottom:0.5px solid var(--g2)}
.mon-sum{display:flex;gap:9px;text-transform:none;letter-spacing:0;font-size:12px}
.mon-in{color:var(--green);font-weight:510}
.mon-ex{color:var(--txt2);font-weight:510}

/* Подзаголовки внутри месяца: поступления / расходы */
.op-grp{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:510;color:var(--txt2);padding:9px 15px 5px;letter-spacing:-.1px}
.op-grp i{font-size:14px;color:var(--txt3)}

/* Поиск и переключатели в операциях */
.fin-tools{padding:11px 15px 3px;border-bottom:0.5px solid var(--g2)}
.fin-tools .bk-chips{margin-top:9px;padding-bottom:9px}

/* Сворачиваемый заголовок блока */
.blk-fold{width:100%;background:none;border:none;border-bottom:0.5px solid var(--g2);cursor:pointer;font-family:inherit;text-align:left;justify-content:space-between}
.fold-r{display:flex;align-items:center;gap:9px}
.fold-sum{font-size:14px;font-weight:510;color:var(--txt2)}

/* Кнопка «показать более ранние» */
.op-more{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:none;border:none;border-top:0.5px solid var(--g2);color:var(--accent);font-size:14px;font-family:inherit;cursor:pointer}
.op-more i{font-size:16px}

/* Поступления слегка подсвечены, чтобы отличались с одного взгляда */
.op-in{background:linear-gradient(90deg,rgba(52,199,89,.06),transparent 60%)}
.op-d{width:22px;flex-shrink:0;font-size:15px;color:var(--txt3);text-align:center;font-variant-numeric:tabular-nums}
.op-b{flex:1;min-width:0}
.op-c{font-size:15px;color:var(--txt);letter-spacing:-.15px}
.op-m{font-size:13px;color:var(--txt3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op-a{font-size:15px;font-weight:510;flex-shrink:0;letter-spacing:-.2px;font-variant-numeric:tabular-nums}

.ws-lbl{font-size:13px;font-weight:510;color:var(--txt3);margin-bottom:7px;letter-spacing:-.1px}
.ws-hint{font-size:11px;color:var(--txt3);margin-top:7px;line-height:1.4}

.btn-wide{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:12px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:15px;font-weight:510;cursor:pointer;font-family:inherit}
.btn-wide:active{transform:scale(.99)}
.mem-av{width:28px;height:28px;border-radius:50%;color:#fff;font-size:13px;font-weight:510;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mem-b{flex:1;min-width:0}
.mem-n{font-size:13px;color:var(--txt);letter-spacing:-.1px}
.mem-e{font-size:11px;color:var(--txt3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mem-r{width:auto;flex-shrink:0;font-size:13px;padding:6px 20px 6px 8px;margin:0;border-radius:6px;border:none;background-color:var(--card)}
.mem-x{background:none;border:none;color:var(--g3);font-size:17px;cursor:pointer;padding:0 2px;flex-shrink:0}


/* ── ПОДРЯДЧИКИ ────────────────────────────────── */
.bk-tools{padding:11px 14px 12px;background:var(--card);border-bottom:0.5px solid var(--g2);flex-shrink:0}
.bk-search{display:flex;align-items:center;gap:8px;padding:11px 13px;background:var(--field);border-radius:6px}
.bk-search i{font-size:17px;color:var(--txt3);flex-shrink:0}
.bk-search input{flex:1;min-width:0;border:none;background:none;font-size:15px;color:var(--txt);font-family:inherit;padding:0}
.bk-search input:focus{outline:none}
.bk-chips{display:flex;gap:6px;margin-top:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.bk-chips::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;padding:7px 13px;border:none;border-radius:12px;background:var(--field);color:var(--txt2);font-size:13px;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .15s ease}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.sup-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.sup-b{flex:1;min-width:0}
.sup-n{font-size:16px;font-weight:510;color:var(--txt);letter-spacing:-.2px}
.sup-m{font-size:13px;color:var(--txt3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup i{font-size:17px;color:var(--g3);flex-shrink:0}
.sup-empty{padding:40px 20px;text-align:center;color:var(--txt3);font-size:15px;line-height:1.5}
.sup-form{padding:12px 14px 2px}
.qa-row{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.qa-row::-webkit-scrollbar{display:none}
.qa{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--card);border-radius:var(--r);color:var(--accent);font-size:15px;font-weight:510;text-decoration:none;white-space:nowrap;box-shadow:var(--sh)}
.qa i{font-size:17px}
.qa:active{background:var(--g0)}


/* ── ПОЛЯ ВВОДА ────────────────────────────────── */
.fld{display:block;position:relative;background:var(--field);border-radius:6px;padding:8px 13px 9px;margin-bottom:9px;transition:box-shadow .15s ease,background .15s ease}
.fld:focus-within{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--accent)}
.fld-l{display:block;font-size:11px;color:var(--txt3);letter-spacing:-.1px;margin-bottom:2px;pointer-events:none}
.fld-h{color:var(--g3);margin-left:5px}
.fld-i{display:block;width:100%;border:none;background:none;padding:0;font-size:15px;color:var(--txt);font-family:inherit;letter-spacing:-.2px;line-height:1.35;-webkit-appearance:none;min-height:20px}
.fld-i:focus{outline:none}
.fld-i::placeholder{color:var(--g3)}
.fld-s{background:none;padding-right:20px}
.fld::after{content:'';position:absolute;right:13px;top:50%;margin-top:-2px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--txt3);opacity:0;pointer-events:none}
.fld:has(.fld-s)::after{opacity:1}
.fld.ro{background:var(--g2)}
.fld.ro .fld-i{color:var(--txt2)}
.fld-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 9px}
input[type=date].fld-i{min-height:20px}


/* ── ШАПКА ─────────────────────────────────────── */
.info-stack{display:flex;flex-direction:column;gap:6px}
.glass-pill{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-radius:9999px;padding:5px 12px 5px 6px;width:132px;box-sizing:border-box;box-shadow:var(--sh)}
.glass-pill img{width:19px;height:19px;display:block;flex-shrink:0}
.glass-pill>span:last-child{font-size:13px;color:var(--txt2);letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cur-sym{width:19px;height:19px;border-radius:9999px;background:var(--accent);color:#fff;font-size:11px;font-weight:510;display:flex;align-items:center;justify-content:center;flex-shrink:0}


/* ── ВЕРХНИЙ НАВБАР ────────────────────────────── */
.hdr{position:fixed;top:0;left:0;right:0;max-width:480px;margin:0 auto;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:0.5px solid var(--g2)}
.hdr-inner{padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px}
.hdr-bar{display:flex;align-items:center;gap:8px;min-height:38px}
.hdr-bar h1{flex:1;min-width:0;display:flex;justify-content:center;align-items:center;margin:0}
.hdr-logo{height:21px;display:none}
.hdr.full .hdr-logo{display:block}
.hdr.full .hdr-name{display:none}
.hdr-name{font-size:17px;font-weight:510;color:var(--txt);letter-spacing:-.3px}
.hdr-acts{display:none;gap:6px;flex-shrink:0}
.hdr.full .hdr-acts{display:flex}
.hdr:not(.full) .avatar-btn{display:none}
.hdr-cols{display:none;justify-content:space-between;gap:10px;margin-top:10px}
.hdr.full .hdr-cols{display:flex}
/* курсы и время переехали в шапку: на телефоне показываем их
   только на «Обзоре», как было раньше */
.hdr .ov-top{display:none;margin-top:9px}
.hdr.full .ov-top{display:block}

.ov-top{padding:2px 0 0}
.ov-pills{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ov-pills .glass-pill{width:auto;background:var(--card);box-shadow:var(--sh);padding:8px 12px 8px 8px}

/* ── КАРТОЧКИ ──────────────────────────────────── */
.card-hd{padding:14px 16px;cursor:pointer;user-select:none;display:flex;align-items:flex-start;gap:12px}
.card-hd.col{display:block}
.hd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:13px}
.hd-main{flex:1;min-width:0}
.hd-title{font-size:16px;font-weight:510;color:var(--txt);letter-spacing:-.2px}
.hd-sub{font-size:13px;color:var(--txt3);margin-top:2px;letter-spacing:-.1px}
.hd-right{text-align:right;flex-shrink:0}
.hd-big{font-variant-numeric:tabular-nums;font-size:20px;font-weight:510;color:var(--txt);line-height:1.1;letter-spacing:-.3px}
.hd-cap{font-size:11px;color:var(--txt3);margin-top:2px}
.hd-foot{display:flex;justify-content:space-between;font-size:13px;padding-top:10px;border-top:0.5px solid var(--g2);letter-spacing:-.1px}
.pill{font-size:13px;padding:3px 11px;border-radius:12px;flex-shrink:0;align-self:center}
.pill-ok{background:var(--gbg);color:var(--green)}
/* шкала */
.stp{display:flex;align-items:center;margin-bottom:8px}
.stp-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--g3);background:var(--card);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.stp-dot.done{background:var(--accent);border-color:var(--accent)}
.stp-dot.done i{font-size:13px;color:#fff}
.stp-line{flex:1;height:1.5px;background:var(--g2)}
.stp-line.on{background:var(--accent)}
.stp-lbl{display:flex;justify-content:space-between;font-size:11px;color:var(--txt3);margin-bottom:2px}
.stp-lbl span{flex:1;text-align:center}
.stp-lbl span:first-child{text-align:left}
.stp-lbl span:last-child{text-align:right}
/* тело карточки */
.card-body{padding:14px 16px 16px;border-top:0.5px solid var(--g2)}
.inp{width:100%;padding:13px;font-size:15px;border:none;border-radius:6px;background:var(--field);color:var(--txt);font-family:inherit;margin-bottom:12px;-webkit-appearance:none;transition:box-shadow .15s ease,background .15s ease}
.inp:focus{outline:none;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--accent)}
select.inp{-webkit-appearance:none;background:var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%2394A3B8' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 9px center;padding-right:30px}
/* секции */
.sec-hd::-webkit-details-marker{display:none}
.btn-del{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:13px;border:none;border-radius:var(--r);background:var(--rbg);color:var(--red);font-size:15px;font-weight:510;cursor:pointer;margin-top:6px;font-family:inherit}

.fld-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}

.code-row{display:flex;align-items:center;gap:8px;padding:9px 12px;margin-bottom:12px;background:var(--field);border-radius:var(--r);cursor:pointer;transition:background .15s}
.code-row:active{background:var(--g1)}
.code-row.ok{background:var(--gbg);border-color:var(--gbrd)}
.code-txt{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--txt2);letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.code-row.ok .code-txt{color:var(--green)}
.code-row i{font-size:15px;color:var(--txt3);flex-shrink:0}
.code-row.ok i{color:var(--green)}
.inp.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.2px}
.fl-h{color:var(--g3);font-size:11px;margin-left:4px}

/* ── НИЖНЯЯ ПАНЕЛЬ ──────────────────────────────── */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:stretch;height:calc(56px + 16px + var(--sb));padding-bottom:calc(16px + var(--sb));background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:0.5px solid var(--g2)}
.tab{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;border:none;background:transparent;cursor:pointer;font-family:inherit;color:var(--txt3);-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;min-height:44px;transition:color .2s ease}
.tab i{font-size:22px;line-height:1;transition:transform .2s ease}
.tab span{font-size:10.5px;letter-spacing:-.1px;font-weight:400}
.tab.active{color:var(--accent)}
.tab.active span{font-weight:510}
.tab:active i{transform:scale(.9)}
.auth-inv{font-size:13px;color:var(--accent);background:var(--bbg);border:0.5px solid var(--bbrd);border-radius:6px;padding:10px 12px;margin-bottom:16px;line-height:1.4;text-align:left}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal::before{content:'';display:block;width:36px;height:4px;border-radius:4px;background:var(--g3);margin:0 auto 14px}
.modal-btns button:active{transform:scale(.97)}
.acc-row:active,.acc-close:active{background:var(--g2)}
.chip.on{background:var(--ink);color:#fff;font-weight:590}
.acc-sep{height:0.5px;background:var(--g2);margin:0 -20px 16px}
.jr-screen.dt{transform:translateX(100%);display:flex;visibility:hidden;transition:transform .32s var(--ease),visibility .32s}
.jr-screen.dt.open{transform:translateX(0);visibility:visible}
.dt-sec{margin-bottom:10px}
.dt-t{font-size:13px;font-weight:510;color:var(--txt3);letter-spacing:.2px;text-transform:uppercase;padding:0 4px 8px}
.hd-chv{font-size:22px;color:var(--g3);flex-shrink:0;align-self:center;margin-left:2px}
.mlbl{font-size:13px;color:var(--txt3);margin-bottom:6px;letter-spacing:-.1px}
.inp.mono,.fld-i.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.2px}


/* ══ ДИЗАЙН-СИСТЕМА: 3 УРОВНЯ ══════════════════════
   L1 hero  — главная цифра
   L2 card  — блок контента
   L3 row   — строка внутри блока
   ═══════════════════════════════════════════════════ */

/* L1 ─ Hero */
.hero,.dt-hero{
  background:var(--card);
  border-radius:var(--rc);
  box-shadow:var(--sh);
  padding:18px;
}
.dt-hero{padding:16px;margin-bottom:10px}

/* L2 ─ Card */
.card,.blk,.dt-box,.stat{
  background:var(--card);
  border-radius:var(--rc);
  box-shadow:var(--sh);
  overflow:hidden;
}
.card{margin-bottom:10px;cursor:pointer;transition:transform .12s var(--ease)}
.card:active{transform:scale(.985)}
.dt-box{padding:14px 15px 3px}
.stat{flex:1;padding:13px 14px;text-align:center}

/* L3 ─ Row */
.row,.sup,.op,.att,.act-row,.task-row,.mem{
  display:flex;
  align-items:center;
  gap:11px;
  padding:13px 15px;
  border-bottom:0.5px solid var(--g2);
  background:transparent;
}
.row:last-child,.sup:last-child,.op:last-child,.att:last-child,
.act-row:last-child,.task-row:last-child,.mem:last-child{border-bottom:none}

/* строки-ссылки */
.sup,.att,.op{cursor:pointer;transition:background .15s ease}
.sup:active,.att:active,.op:active{background:var(--g0)}

/* строки с вертикальным содержимым */
.act-row,.task-row{align-items:flex-start}

/* подрядчик — отдельная строка в своей карточке */
.sup{background:var(--card);border-radius:var(--rc);box-shadow:var(--sh);margin-bottom:8px;border-bottom:none}
.sup:active{transform:scale(.985)}

/* участник кабинета — компактная строка */
.mem{background:var(--field);border-radius:6px;margin-bottom:7px;padding:9px 10px;gap:9px;border-bottom:none}

/* подсветка новых записей журнала */
.act-row.new{background:var(--accent-bg)}

/* ── ОТКЛИК НА НАЖАТИЕ ─────────────────────────── */
.card,.sup,.att,.op,.acc-row,.acc-close,.btn-wide,.btn-del,.qa,.chip,.task-plus,.blk-add,.sec-plus,.code-row,.jr-back,.jr-read,.bell-btn,.avatar-btn,.tab,.modal-btns button{
  -webkit-tap-highlight-color:transparent;
  transition:transform .12s var(--ease),opacity .12s ease,background .15s ease;
}
.card:active,.sup:active{transform:scale(.985)}
.att:active,.op:active{background:var(--g0)}
.btn-wide:active,.btn-del:active,.modal-btns button:active,.task-plus:active,.blk-add:active,.sec-plus:active{transform:scale(.97)}
.qa:active,.chip:active{transform:scale(.96)}
.jr-back:active,.jr-read:active,.bell-btn:active,.avatar-btn:active{opacity:.55}
.fld-i,.inp{-webkit-tap-highlight-color:transparent}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.empty p{font-size:16px;color:var(--txt2);margin-bottom:4px}
.empty small{font-size:13px;color:var(--txt3);line-height:1.45;display:block;max-width:250px}
.empty-act{margin-top:16px;padding:11px 20px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:15px;font-weight:510;font-family:inherit;cursor:pointer}
.content>*{animation:rise .3s var(--ease) both}
.hdr,.tabs{animation:none!important}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.jr-body>*{animation:rise .3s var(--ease) both}
.tab{position:relative}
.tab-badge{position:absolute;top:2px;left:50%;margin-left:6px;min-width:17px;height:17px;border-radius:9999px;background:#FF3B30;color:#fff;font-size:10px;font-weight:510;line-height:1;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid #fff;font-variant-numeric:tabular-nums;pointer-events:none}
.ph-block.doc .ph-th,.ph-block.doc .ph-add{width:74px;height:96px}
.ph-block.doc .ph-th img{object-fit:cover}
.doc-hint{font-size:11px;color:var(--txt3);margin-top:6px}
.op-tags{display:flex;align-items:center;gap:6px;margin-top:3px;min-width:0}
.op-tag{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;font-size:11px;padding:2px 7px;border-radius:9999px;background:var(--g1);color:var(--txt3);letter-spacing:-.1px}
.op-tag.auto{background:var(--accent-bg);color:var(--accent)}
.op-tag i{font-size:11px}
.op-sub{font-size:13px;color:var(--txt3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fin-note{display:flex;gap:8px;align-items:flex-start;padding:11px 12px;background:var(--accent-bg);border-radius:6px;margin-bottom:16px;font-size:13px;color:var(--accent);line-height:1.4}
.fin-note i{font-size:16px;flex-shrink:0;margin-top:1px}
#upd-bar{position:fixed;left:16px;right:16px;bottom:calc(96px + var(--sb));max-width:448px;margin:0 auto;z-index:300;display:flex;align-items:center;gap:12px;padding:13px 14px;background:rgba(17,17,20,.94);backdrop-filter:blur(16px);color:#fff;border-radius:12px;font-size:15px;box-shadow:0 6px 24px rgba(0,0,0,.2);animation:rise .3s var(--ease)}
#upd-bar span{flex:1}
#upd-bar button{border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:510;padding:8px 14px;border-radius:6px;cursor:pointer;font-family:inherit;flex-shrink:0}
#auth-screen.checking .auth-card{opacity:0}
#auth-screen .auth-card{transition:opacity .2s ease}
#boot{position:fixed;inset:0;z-index:6000;background:var(--bg);display:flex;align-items:center;justify-content:center}
#boot.gone{opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
#boot .sp{width:26px;height:26px;border:2.5px solid var(--g2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══ ВЕРСИЯ ДЛЯ КОМПЬЮТЕРА ═══════════════════════ */
@media (min-width:900px){
  body{background:var(--bg)}

  .app{max-width:none;margin:0;padding-left:248px}

  /* навигация — боковая колонка */
  .tabs{
    top:0;left:0;right:auto;bottom:0;
    width:248px;height:100vh;
    flex-direction:column;align-items:stretch;
    padding:0 14px 18px;gap:4px;
    background:#fff;
    border-top:none;border-right:1px solid var(--g2);
    backdrop-filter:none;-webkit-backdrop-filter:none;
    overflow-y:auto;
  }

  /* логотип в шапке панели */
  .tabs::before{
    content:'';display:block;flex-shrink:0;
    height:82px;margin:0 -14px 14px;
    background:url('./logo.png?v=52') no-repeat 18px center;
    background-size:auto 40px;
    border-bottom:1px solid #F1F3F7;
  }

  .tab{
    flex:0 0 auto;flex-direction:row;justify-content:flex-start;
    gap:13px;padding:12px 14px;border-radius:12px;min-height:0;
    color:var(--txt2);font-weight:510;
    transition:background .15s ease,color .15s ease;
  }
  .tab i{font-size:21px;color:var(--txt3);transition:color .15s ease;font-weight:400}
  .tab span{font-size:14.5px;letter-spacing:-.1px}
  .tab:hover{background:var(--g1);color:var(--txt)}
  .tab:hover i{color:var(--txt2)}

  /* активный пункт — синяя заливка, как в макете */
  .tab.active{
    background:var(--ink);
    color:#fff;font-weight:590;
    box-shadow:0 6px 18px -6px rgba(20,20,24,.35);
  }
  .tab.active i{color:#fff}
  .tab.active:hover{background:var(--ink);color:#fff}

  .tab-badge{position:static;margin:0 0 0 auto;border:none}
  .tab.active .tab-badge{background:rgba(255,255,255,.28);color:#fff}



  /* верхняя панель — только над контентом */
  .hdr{left:248px;max-width:none;margin:0}
  .hdr-inner{padding:12px 32px;max-width:none;margin:0}
  /* одна строка: название вкладки, курсы, кнопки, аккаунт.
     hdr-bar растворяем, чтобы порядок задавался на общем уровне */
  .hdr-inner{display:flex;align-items:center;gap:16px;min-height:52px}
  .hdr-bar{display:contents}
  .hdr-bar h1{justify-content:flex-start;flex:0 0 auto;order:1}

  /* кнопки и аватар видны на любой вкладке, а не только на «Обзоре» */
  .hdr-acts{display:flex!important;order:3;margin-left:0}
  .hdr:not(.full) .avatar-btn{display:flex}
  .hdr .avatar-btn{order:4;margin-left:2px}

  /* курсы, дата и время — всегда в шапке */
  .hdr .ov-top{display:block!important;order:2;margin:0 0 0 auto}
  .hdr .ov-pills{display:flex;flex-wrap:nowrap;gap:7px}
  .hdr .glass-pill{padding:6px 11px;font-size:13px}

  /* внутри «Обзора» дубля уже нет */
  #view-o .ov-top{display:none}
  .avatar-btn{order:3}

  /* логотип в боковой колонке */

  /* контент шире и двухколоночный */
  .content{
    padding:96px 28px 40px;
    max-width:1280px;margin:0 auto;
    display:grid;grid-template-columns:minmax(340px,420px) 1fr;
    align-items:start;gap:20px;
  }
  .content>*{grid-column:1}

  /* список слева, деталь справа — только для юнит-экономики.
     В логистике таблице нужна вся ширина, поэтому там одна колонка,
     а карточка партии выезжает панелью поверх */
  #view-t{grid-template-columns:minmax(340px,440px) 1fr}
  #bl-t{grid-column:1}
  .sec-row{grid-column:1}

  #view-m{display:flex;flex-direction:column;gap:0;align-items:stretch}

  /* в логистике деталь выезжает поверх — сетка там одноколоночная */
  #view-m ~ .jr-screen.dt, body.logi .jr-screen.dt{
    position:fixed;inset:0;grid-column:auto;grid-row:auto;
    max-height:none;border-radius:0;box-shadow:none;
    display:flex;transform:translateX(100%);visibility:hidden;
    width:min(560px,100%);left:auto;right:0;
    box-shadow:-16px 0 48px -24px rgba(16,24,40,.28);
  }
  body.logi .jr-screen.dt.open{transform:translateX(0);visibility:visible}

  /* деталь встроена справа, а не поверх */
  .jr-screen.dt{
    position:sticky;top:76px;
    grid-column:2;grid-row:1 / span 40;
    transform:none;visibility:visible;display:none;
    max-height:calc(100vh - 100px);
    background:var(--card);border-radius:var(--rc);box-shadow:var(--sh);
    overflow:hidden;
  }
  .jr-screen.dt.open{display:flex}
  .jr-screen.dt .jr-head{background:var(--card);border-radius:var(--rc) var(--rc) 0 0;padding:14px 18px}
  .jr-screen.dt .jr-body{padding:16px 18px 20px;background:var(--card)}
  .jr-screen.dt .dt-box,.jr-screen.dt .dt-hero{box-shadow:none;background:var(--g0)}

  /* Обзор: плитки в ряд */
  #view-o{grid-template-columns:1fr 1fr;gap:16px 20px}
  #view-o .hero{grid-column:1 / -1}
  #view-o .stat-row{grid-column:1 / -1}
  #view-o .ov-top{grid-column:1 / -1}
  #view-o .ov-pills{grid-template-columns:repeat(4,1fr)}
  #view-o #ov-attention{grid-column:1}
  #view-o .blk{grid-column:2;grid-row:4}

  /* Финансы: разбивка и операции рядом */
  #view-f{grid-template-columns:1fr 1fr;gap:16px 20px}
  #view-f .hero{grid-column:1 / -1}
  #view-f #fin-cats{grid-column:1}
  #view-f .blk{grid-column:2;grid-row:2 / span 2}

  /* журнал и подрядчики — окном по центру */
  #journal,#book,#sup-card{
    left:50%;top:50%;transform:translate(-50%,-50%);
    width:min(720px,92vw);height:min(80vh,860px);
    border-radius:var(--rc);overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.18);
  }
  #journal.open,#book.open,#sup-card.open{display:flex}

  /* модалки по центру */
  .modal-bg{align-items:center}
  .modal{max-width:460px;border-radius:var(--rc);transform:scale(.96)}
  .modal-bg.open .modal{transform:scale(1)}
  .modal::before{display:none}

  /* курсор и наведение */
  .card:hover,.sup:hover{box-shadow:0 2px 10px rgba(0,0,0,.08)}
  .att:hover,.op:hover{background:var(--g0)}
  .tab:hover:not(.active){background:var(--g0)}
}

@media (min-width:1400px){
  .content{max-width:1440px}
  #view-m,#view-t{grid-template-columns:minmax(380px,480px) 1fr}
}

@media (min-width:900px){
  .card.sel{box-shadow:0 0 0 2px var(--accent);background:var(--accent-bg)}
}
@media (min-width:900px){
  .hdr-logo{display:none!important}
  .hdr.full .hdr-name{display:block}
}
.op-del{background:none;border:none;color:var(--g3);cursor:pointer;padding:6px 2px 6px 6px;font-size:17px;flex-shrink:0;line-height:1;transition:color .15s}
.op-del:active{color:var(--red)}

#upd-bar .upd-go{margin-left:auto;flex-shrink:0}
#upd-bar .upd-x{background:none;border:none;color:rgba(255,255,255,.55);font-size:22px;line-height:1;padding:0 2px;cursor:pointer;font-family:inherit;flex-shrink:0}

/* ══ ТОВАРЫ И СОСТАВ ПАРТИИ ══════════════════════ */

.blk-sub{font-size:12px;color:var(--txt3);font-weight:400;margin-left:2px}

/* строка товара в справочнике и в выборе */
.pr-row{display:flex;align-items:center;gap:11px;padding:11px 15px;border-bottom:0.5px solid var(--g2);cursor:pointer}
.pr-row:last-child{border-bottom:none}
.pr-row:active{background:var(--g0)}
.pr-off{opacity:.45;cursor:default}
.pr-th{width:38px;height:38px;border-radius:6px;object-fit:cover;flex-shrink:0;background:var(--g1)}
.pr-th-e{display:flex;align-items:center;justify-content:center;color:var(--txt3)}
.pr-th-e i{font-size:18px}
.pr-b{flex:1;min-width:0}
.pr-n{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-m{font-size:12px;color:var(--txt3);margin-top:2px}
.pr-r{text-align:right;flex-shrink:0}
.pr-p{font-size:14px}
.pr-c{font-size:11px;color:var(--txt3)}
.pr-new{font-size:11px;background:#E8F5E9;color:#2E7D32;padding:3px 9px;border-radius:12px}
.pr-chv{font-size:17px;color:var(--txt3);flex-shrink:0}

/* создание товара прямо из выбора */
.pick-new{width:100%;display:flex;align-items:center;gap:9px;padding:13px 15px;background:none;border:none;border-bottom:0.5px solid var(--g2);color:var(--accent);font-size:15px;font-family:inherit;cursor:pointer;text-align:left}
.pick-new i{font-size:18px}

/* карточка товара */
.pr-photo{margin:14px 15px;height:150px;border-radius:12px;background:var(--g1);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}
.pr-photo img{width:100%;height:100%;object-fit:cover}
.pr-photo-e{display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--txt3);font-size:13px}
.pr-photo-e i{font-size:26px}
.pr-used{font-size:12px;color:var(--txt3);padding:2px 17px 0}
.pr-acts{padding:16px 15px 30px;display:flex;flex-direction:column;gap:9px}
.pr-save{padding:14px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-size:16px;font-family:inherit;cursor:pointer}
.pr-del{padding:13px;border:none;border-radius:12px;background:none;color:var(--red);font-size:15px;font-family:inherit;cursor:pointer}

/* состав партии */
.dt-t-r{float:right;font-weight:400;color:var(--txt3);font-size:12px}
.it-box{padding:0}
.it-row{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:0.5px solid var(--g2);cursor:pointer}
.it-row:active{background:var(--g0)}
.it-b{flex:1;min-width:0}
.it-t{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.it-m{font-size:11px;color:var(--txt3);margin-top:2px}
.it-r{text-align:right;flex-shrink:0}
.it-s{font-size:14px}
.it-u{font-size:11px;color:var(--txt3);margin-top:2px}
.it-empty{padding:20px 15px;text-align:center;font-size:13px;color:var(--txt3);border-bottom:0.5px solid var(--g2)}
.it-add{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:13px;background:none;border:none;color:var(--accent);font-size:14px;font-family:inherit;cursor:pointer}
.it-add i{font-size:16px}

/* карточка позиции */
.it-hd{display:flex;align-items:center;gap:12px;padding:16px 15px 6px}
.it-hd .pr-th{width:52px;height:52px;border-radius:6px}
.it-n{font-size:17px}
.it-bc{font-size:12px;color:var(--txt3);margin-top:3px}
.it-hint{font-size:12px;color:var(--txt3);padding:9px 2px 2px}

/* поле только для чтения */
.fld-ro{display:flex;align-items:center;background:var(--g0);color:var(--txt2)}
.fld-note{font-size:11px;color:var(--txt3);margin-left:6px}
.fld-opt{font-size:11px;color:var(--txt3);font-weight:400}

/* пять вкладок — чуть теснее */
.tabs .tab span{font-size:10px}

/* панели поверх карточки партии: выбор товара и позиция
   открываются из неё, значит должны лежать выше */
#prod-card{z-index:420}
#picker{z-index:430}
#item-card{z-index:440}

.mhint{font-size:12px;color:var(--txt3);margin:-6px 0 14px}
.pr-link{margin:12px 15px 0;padding:13px 14px;background:#FFF8E1;border:0.5px solid #FFE082;border-radius:12px}
.pr-link-t{font-size:13px;color:#7B5800;margin-bottom:9px}
.pr-link-b{width:100%;padding:11px;border:none;border-radius:6px;background:#F0A500;color:#fff;font-size:14px;font-family:inherit;cursor:pointer}

/* анализ упаковки в карточке позиции */
.pk-box{margin:12px 15px 0;padding:13px 14px;background:var(--g0);border:0.5px solid var(--g2);border-radius:12px}
.pk-t{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:510;color:var(--txt2);margin-bottom:9px}
.pk-t i{font-size:15px;color:var(--txt3)}
.pk-r{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:var(--txt2)}
.pk-r b{font-weight:510;color:var(--txt)}
.pk-hl{border-top:0.5px solid var(--g2);margin-top:5px;padding-top:8px}
.pk-hl b{color:#7B5800}
.pk-n{font-size:12px;color:var(--txt3);margin-top:8px;line-height:1.4}
.pk-off{margin:12px 17px 0}

/* ══ СВОДКА ПАРТИИ ═══════════════════════════════ */

.bsum{background:var(--card);border-radius:12px;padding:18px 20px;margin-bottom:12px;
      box-shadow:var(--sh-1)}
.sm-1{font-size:16px;color:var(--txt2);letter-spacing:-.01em}
.sm-1 b{font-size:22px;font-weight:590;color:var(--txt);letter-spacing:-.025em}
.sm-2{font-size:15px;color:var(--txt2);margin-top:7px}
.sm-2 b{font-weight:590;font-size:17px}
.sm-good{color:#12A150}
.sm-bad{color:var(--red)}
.sm-note{color:var(--txt3);font-size:13px}
.sm-3{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--txt2);
      margin-top:12px;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap}
.sm-3 b{font-weight:590}
.sm-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.sm-4{font-size:12px;color:var(--txt3);margin-top:5px;letter-spacing:.01em}
.bsum b,.bsum .cur{font-variant-numeric:tabular-nums}

/* ── ЧТО НУЖНО СДЕЛАТЬ ─────────────────────────── */
.todo{background:var(--card);border-radius:12px;margin:10px 0;overflow:hidden;
      box-shadow:var(--sh-1)}
.todo-t{font-size:11px;color:var(--txt3);letter-spacing:.08em;text-transform:uppercase;
        padding:14px 18px 8px}
.todo-r{width:100%;display:flex;align-items:center;gap:12px;padding:11px 18px;
        background:none;border:none;border-top:1px solid var(--line);
        font-family:inherit;text-align:left;cursor:pointer;
        transition:background .12s ease}
.todo-r:hover{background:rgba(20,20,24,.02)}
.todo-r:active{background:rgba(20,20,24,.04)}
.todo-b{flex:1;min-width:0}
.todo-x{display:block;font-size:14px;color:var(--txt);font-weight:510;letter-spacing:-.01em}
.todo-s{display:block;font-size:12px;color:var(--txt3);margin-top:2px}
.todo-r i{font-size:17px;color:var(--txt3);flex-shrink:0}

/* полоса этапов отдельной карточкой */
.dt-stp{padding:14px 15px 10px}

/* сворачиваемые секции */
.fold-hd{width:100%;display:flex;align-items:center;gap:9px;padding:14px 15px;background:var(--card);border:none;border-radius:12px;box-shadow:var(--sh);font-family:inherit;cursor:pointer;text-align:left}
.fold-hd.on{border-radius:12px 12px 0 0}
.fold-ttl{font-size:15px;color:var(--txt);flex-shrink:0}
.fold-sm{font-size:12px;color:var(--txt3);flex:1;text-align:right}
.fold-ic{font-size:18px;color:var(--txt3);transition:transform .2s var(--ease);flex-shrink:0}
.fold-ic.open{transform:rotate(180deg)}
.fold-bd{border-radius:0 0 12px 12px;margin-top:0}

/* сравнение веса: справочник против накладной */
.wc{margin-top:12px;padding:12px 13px;background:var(--g0);border:0.5px solid var(--g2);border-radius:6px}
.wc-r{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:var(--txt2)}
.wc-r b{font-weight:510;color:var(--txt)}
.wc-hl{border-top:0.5px solid var(--g2);margin-top:5px;padding-top:8px}
.wc-ok b{color:#2E7D32}
.wc-warn b{color:#B26A00}
.wc-bad b{color:var(--red)}
.wc-n{font-size:12px;color:var(--txt3);margin-top:7px;line-height:1.4}

/* сверка счёта с разнесённым */
.bill{margin-top:9px;padding:11px 13px;background:var(--card);border-radius:12px;box-shadow:var(--sh)}
.bill-t{font-size:13px;font-weight:510;color:var(--txt2);margin-bottom:6px}
.bill-r{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--txt2)}
.bill-r b{font-weight:510;color:var(--txt)}
.bill-n{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:7px;padding-top:7px;border-top:0.5px solid var(--g2);color:var(--red)}
.bill-good{color:#2E7D32}
.bill-good i{font-size:14px}
.bill-b{margin-left:auto;padding:5px 11px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:12px;font-family:inherit;cursor:pointer}
.bill-ok .bill-r b{color:var(--txt)}

/* итог по позиции */
.it-total{margin-top:11px;padding-top:10px;border-top:0.5px solid var(--g2)}
.itt-r{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--txt2)}
.itt-r b{font-weight:510;color:var(--txt)}
.itt-hl b{color:#7B5800;font-size:15px}

/* ══ ЭКОНОМИКА ПО ТОВАРАМ ════════════════════════ */

/* итог по партии */
.bpt{background:var(--card);border-radius:12px;padding:15px 16px;margin-bottom:10px;box-shadow:var(--sh)}
.bpt-l{font-size:12px;color:var(--txt3)}
.bpt-v{font-size:28px;font-weight:510;letter-spacing:-.7px;margin-top:3px;color:#2E7D32}
.bpt-bad .bpt-v{color:var(--red)}
.bpt-r{display:flex;gap:16px;margin-top:9px;padding-top:9px;border-top:0.5px solid var(--g2);font-size:12px;color:var(--txt3)}
.bpt-n{font-size:12px;color:var(--txt3);margin-top:8px}
.bpt-empty .bpt-n{margin-top:5px}

/* переключатель товаров */
.itabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:9px;margin-bottom:2px;-webkit-overflow-scrolling:touch}
.itabs::-webkit-scrollbar{display:none}
.itab{flex-shrink:0;min-width:104px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 11px;background:var(--card);border:1.5px solid transparent;border-radius:12px;box-shadow:var(--sh);font-family:inherit;cursor:pointer}
.itab.on{border-color:var(--accent)}
.itab .pr-th{width:34px;height:34px;border-radius:6px}
.itab-n{font-size:12px;color:var(--txt);max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.itab-v{font-size:12px;font-weight:510}
.itab-good{color:#2E7D32}
.itab-bad{color:var(--red)}
.itab-none{color:var(--txt3);font-weight:400}

/* разбор прибыли */
.ipb{margin-top:12px;padding:13px 14px;background:var(--g0);border:0.5px solid var(--g2);border-radius:12px}
.ipb-r{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--txt2);padding:4px 0}
.ipb-r b{font-weight:510;color:var(--txt)}
.ipb-r i{font-style:normal;font-size:11px;color:var(--txt3);margin-left:6px}
.ipb-hl{font-weight:510}
.ipb-hl b{color:var(--txt)}
.ipb-sep{height:0.5px;background:var(--g2);margin:7px 0}
.ipb-tot{display:flex;justify-content:space-between;align-items:center;margin-top:9px;padding-top:9px;border-top:0.5px solid var(--g2);font-size:13px;color:var(--txt2)}
.ipb-tot b{font-size:20px;letter-spacing:-.4px;color:#2E7D32}
.ipb-bad .ipb-tot b{color:var(--red)}
.ipb-be{font-size:12px;color:var(--txt3);margin-top:8px}
.ipb-empty{font-size:13px;color:var(--txt3);text-align:center;padding:16px}
.ipb-est{color:#B26A00;line-height:1.4}

/* курсы партии — считаются из сумм сделки */
.rates{margin-top:11px;padding:11px 13px;background:var(--g0);border:0.5px solid var(--g2);border-radius:6px}
.rt-t{font-size:12px;color:var(--txt3);margin-bottom:7px}
.rt-r{display:flex;align-items:baseline;gap:8px;font-size:13px;color:var(--txt2);padding:3px 0}
.rt-r b{font-weight:510;color:var(--txt)}
.rt-r i{font-style:normal;font-size:11px;color:var(--txt3);margin-left:auto}
.itt-rate{font-size:12px;color:var(--txt3);margin-bottom:6px}

/* ══ ЛОГИСТИКА: СВОДКА И СПИСОК ══════════════════ */

/* три уровня глубины вместо одной тени на всё */
:root{
  /* Карточки держатся на границах. Тень — только у того,
     что действительно висит над поверхностью. */
  --sh-1:none;
  --sh-2:none;
  --sh-3:0 4px 32px rgba(8,9,10,.14), 0 0 0 1px rgba(16,17,20,.06);
  --line:rgba(16,24,40,.06);
  --ease-out:cubic-bezier(.2,.8,.2,1);
}

/* цифры одной ширины — колонка сумм перестаёт дрожать */
.bst-n,.brow-sum,.brow-q,.bst-s,.brow-note{font-variant-numeric:tabular-nums}

/* единица измерения мелкая и серая — читается число, не валюта */
.cur,.unit{color:var(--txt3);font-weight:400;font-size:.82em}

/* ── плитки сводки */
.bstats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}
.bst{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;
     padding:20px;background:var(--card);border:none;border-radius:12px;
     box-shadow:var(--sh-1);font-family:inherit;text-align:left}

.bst-i{position:absolute;top:18px;right:18px;color:var(--g3);opacity:.55}
.bst-i i{font-size:16px}
.bst-n{font-size:34px;font-weight:510;letter-spacing:-.02em;line-height:1.05}
.bst-t{font-size:11px;color:var(--txt2);letter-spacing:.02em}
.bst-s{font-size:11px;color:var(--txt3);letter-spacing:.02em;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

.bst:first-child{grid-column:1 / -1}
.bst-delayed .bst-n{color:var(--red)}
.bst-delayed .bst-i{color:var(--red);opacity:.4}

/* фильтры слева, кнопка создания справа — на одной линии */
.bl-tools{display:flex;align-items:center;gap:12px;padding:0 0 20px}
.bl-tools .bk-chips{flex:1;min-width:0}

/* на телефоне остаётся компактной: только знак плюс */
.new-batch{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;
  width:38px;height:38px;padding:0;border:none;border-radius:50%;
  background:var(--ink);color:#fff;
  font-size:14px;font-weight:590;font-family:inherit;cursor:pointer;white-space:nowrap;
  box-shadow:0 8px 20px -8px rgba(20,20,24,.45);
  transition:box-shadow .18s var(--ease-out),transform .12s var(--ease-out)}
.new-batch:hover{background:var(--ink-soft);box-shadow:0 10px 26px -8px rgba(20,20,24,.5)}
.new-batch:active{transform:scale(.98)}
.new-batch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.new-batch i{font-size:20px}
.new-batch span{display:none}

/* ── таблица партий */
.brows{background:var(--card);border-radius:12px;box-shadow:var(--sh-2);overflow:hidden}
.brows-hd{display:none}

.brow{display:grid;gap:4px 12px;padding:16px 20px;cursor:pointer;position:relative;
      grid-template-columns:1fr auto auto;
      grid-template-areas:"main sum menu" "st st st" "stage q q";
      align-items:center;
      animation:browIn .24s var(--ease-out) both;
      transition:background .12s ease}
@keyframes browIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* разделитель не доходит до краёв — так делают в печати */
.brow::after{content:'';position:absolute;left:20px;right:20px;bottom:0;height:1px;background:var(--line)}
.brow:last-child::after{display:none}
.brow:hover{background:rgba(16,24,40,.02)}
.brow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.brow.active{background:var(--accent-bg)}

.brow-main{grid-area:main;min-width:0}
.brow-t{font-size:15px;font-weight:510;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brow-r{font-size:11px;color:var(--txt3);letter-spacing:.02em;margin-top:3px;display:flex;align-items:center;gap:5px}
/* стрелка тоньше и светлее текста вокруг */
.arr{font-style:normal;color:var(--g3);font-size:12px;line-height:1}

.brow-st{grid-area:st;margin:6px 0 2px}
.brow-stage{grid-area:stage;display:flex;align-items:center;gap:8px;min-width:0}

/* статус — точка и текст; заливка только у того, что требует внимания */
.brow-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#5B6472;white-space:nowrap}
.brow-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.brow-badge-alert{background:rgba(198,40,40,.08);color:#C62828;padding:3px 9px;border-radius:6px;font-size:11px}

.brow-note{font-size:11px;color:var(--txt3);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brow-q{grid-area:q;font-size:12px;color:var(--txt2);text-align:right;white-space:nowrap}
.q-word{color:var(--txt3)}
.brow-sum{grid-area:sum;font-size:15px;white-space:nowrap;letter-spacing:-.01em}

.brow-menu{grid-area:menu;width:32px;height:32px;display:flex;align-items:center;justify-content:center;
           border:none;background:none;color:var(--txt3);cursor:pointer;border-radius:6px;font-family:inherit;
           opacity:.4;transition:opacity .12s ease,background .12s ease}
.brow:hover .brow-menu{opacity:1}
.brow-menu:hover{background:rgba(16,24,40,.05);color:var(--txt2)}
.brow-menu:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px}
.brow-menu i{font-size:18px}

/* шкала этапов: текущий сегмент чуть длиннее остальных */
.mst{display:flex;align-items:center;gap:5px}
.mst-d{flex:1;height:3px;border-radius:4px;background:var(--g2);display:block;
       transition:background .2s ease,flex-grow .2s var(--ease-out)}
.mst-d.done{background:var(--accent)}
/* текущий этап чуть длиннее прочих — заметно, но не кричит */
.mst-d.act{flex:1.35}

.brows-more{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;
            margin-top:12px;padding:16px;background:var(--card);border:none;border-radius:12px;
            box-shadow:var(--sh-1);color:var(--accent);font-size:14px;font-family:inherit;cursor:pointer;
            transition:box-shadow .18s var(--ease-out)}
.brows-more:hover{box-shadow:var(--sh-2)}
.brows-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.brows-more i{font-size:16px}

/* ── меню строки */
.rmenu{position:fixed;z-index:5000;min-width:216px;padding:6px;background:var(--card);
       border-radius:12px;box-shadow:var(--sh-3);
       opacity:0;transform:translateY(-6px) scale(.97);transform-origin:top right;
       transition:opacity .14s ease,transform .16s var(--ease-out)}
.rmenu.on{opacity:1;transform:translateY(0) scale(1)}
.rmenu button{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;
              background:none;border:none;border-radius:6px;color:var(--txt);
              font-size:14.5px;font-family:inherit;cursor:pointer;text-align:left}
.rmenu button:hover{background:rgba(16,24,40,.04)}
.rmenu button i{font-size:18px;color:var(--txt3)}
.rmenu-sep{height:1px;background:var(--line);margin:6px 10px}
.rmenu-del{color:var(--red)!important}
.rmenu-del i{color:var(--red)!important}

@media (min-width:900px){
  /* «Всего» шире прочих: главное занимает больше места */
  .bstats{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:12px;margin-bottom:32px}
  .bst:first-child{grid-column:auto}
  .bst{padding:20px}
  .bst-n{font-size:30px}
  .bst:first-child .bst-n{font-size:36px}

  /* на широком экране используем всю ширину: пустое поле справа
     выглядело как незаполненный шаблон */
  .content{max-width:none;margin:0;padding-left:32px;padding-right:32px}
  /* на компьютере кнопка получает подпись */
  .new-batch{width:auto;height:auto;border-radius:6px;
             padding:10px 16px;justify-content:flex-start}
  .new-batch span{display:inline}
  .new-batch i{font-size:17px}

  /* строка партии — одной линией */
  .brow{
    grid-template-columns:minmax(180px,1.4fr) minmax(120px,1fr) 200px 72px 140px 40px;
    grid-template-areas:"main st stage q sum menu";
    gap:20px;padding:16px 24px;
  }
  .brow::after{left:24px;right:24px}
  /* в таблице подпись «вида» лишняя — она в шапке столбца */
  .q-word{display:none}
  .brow-st{margin:0}
  .brow-stage{justify-content:flex-start}
  .brow-q{text-align:center}
  .brow-sum{text-align:right;font-size:15px}
  .brow:hover{background:var(--g0)}

  /* шапка таблицы */
  .brows{border-radius:12px}
  .brows-hd{display:grid;
    grid-template-columns:minmax(180px,1.4fr) minmax(120px,1fr) 200px 72px 140px 40px;
    gap:20px;padding:14px 24px 12px;border-bottom:1px solid var(--line);
    font-size:10px;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em}
  .brows-hd span:nth-child(4){text-align:center}
  .brows-hd span:nth-child(5){text-align:right}

}

/* дельта к прошлому месяцу — рядом с главной цифрой, но тише её */
.bst-delta{font-size:11px;font-weight:400;color:#2E7D32;letter-spacing:0;
           margin-left:8px;vertical-align:middle;white-space:nowrap}

/* порядок плиток задаётся из кода: задержки поднимаются, когда они есть */
.bstats{display:flex;flex-wrap:wrap}
.bst{flex:1 1 calc(50% - 6px);min-width:0}
.bst:first-child{flex:1 1 100%}

/* заголовок группы: список должен быть назван */
.brows-title{display:flex;align-items:baseline;gap:10px;padding:0 4px 12px}
.brows-title span:first-child{font-size:15px;font-weight:510;letter-spacing:-.01em;color:var(--txt)}
.brows-cnt{font-size:12px;color:var(--txt3);font-variant-numeric:tabular-nums}

/* смена фильтра — подмена содержимого, а не мигание */
#bl-m{transition:opacity .11s ease}
#bl-m.swap{opacity:0}

@media (min-width:900px){
  .bst{flex:1 1 0;min-width:0;padding:20px 18px}
  .bst:first-child{flex:2 1 0;padding:20px 24px}
  .bst-t,.bst-s{white-space:nowrap}
  /* в узких плитках сумма важнее слов вокруг неё */
  .bst:not(:first-child) .bst-pre{display:none}
  .bst-s{font-size:12px}
  .brows-title{padding:0 4px 14px}
  .brows-title span:first-child{font-size:16px}
}

/* ══ ТИПОГРАФИКА ПО РЕФЕРЕНСУ ════════════════════ */

/* заголовки крупнее и плотнее, значения — вес 600, а не 500 */
.hdr-name{font-size:19px;font-weight:590;letter-spacing:-.02em}
.blk-hd>span:first-child,.dt-t,.brows-title span:first-child{font-weight:590}
.bst-n,.bn-v,.bpt-v,.ov-big{font-weight:590;letter-spacing:-.025em}
.brow-t,.pr-n,.it-t{font-weight:590}

/* мелкие подписи — светлее и разреженнее */
.bst-t,.bst-s,.brow-r,.brow-note,.it-m,.pr-m,.bn-l,.bn-sub{
  font-weight:400;letter-spacing:.01em}

/* цифры одной ширины по всему приложению */
.bst-n,.bn-v,.brow-sum,.brow-q,.it-s,.it-u,.pr-p,.ipb-r b,.itt-r b,
.wc-r b,.bill-r b,.rt-r b,.mon-in,.mon-ex,.op-a,.hd-big{
  font-variant-numeric:tabular-nums}

/* ссылки-действия: тёмные, а не синие */
.it-add,.brows-more,.pick-new,.op-more{color:var(--txt);font-weight:510}
.it-add i,.brows-more i,.pick-new i,.op-more i{color:var(--txt3)}

/* поля ввода — без рамок, разделение фоном */
.fld-i,.inp{border-radius:12px}

/* иконки в шапке тоньше и спокойнее */
.bell-btn{background:var(--card);box-shadow:var(--sh)}
.bell-btn i{font-size:19px}

@media (min-width:900px){
  .hdr-name{font-size:20px}
  .brows-title span:first-child{font-size:17px;letter-spacing:-.02em}
}

/* ══════════════════════════════════════════════════
   BUTTON SYSTEM — тёмное матовое стекло
   Единая система вместо двенадцати разрозненных стилей.
   Базовый оттенок Deep Navy #1C1C28.
   ══════════════════════════════════════════════════ */

:root{
  --navy-btn:28,28,40;              /* Deep Navy в rgb для прозрачности */
  --btn-txt:#F5F5F7;                /* смягчённый белый, не чистый #FFF */
  --btn-r:12px;
  --btn-h:44px;

  /* стекло: полупрозрачная основа + блик изнутри + мягкая глубина */
  --glass-edge:inset 0 1px 0 rgba(255,255,255,.14);
  --glass-floor:inset 0 -1px 0 rgba(0,0,0,.18);
  --glass-lift:0 1px 2px rgba(var(--navy-btn),.18), 0 8px 20px -8px rgba(var(--navy-btn),.42);
  --glass-lift-hi:0 2px 4px rgba(var(--navy-btn),.20), 0 14px 28px -10px rgba(var(--navy-btn),.50);
  --glass-press:inset 0 2px 6px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.06);
}

/* ── PRIMARY ────────────────────────────────────── */
.btn-primary,
.new-batch,
.btn-wide,
.empty-act,
.pr-save,
.modal-btns button.primary,
.sec-plus,
.blk-add,
.task-plus,
.bill-b,
.pr-link-b{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:var(--btn-r);
  background:rgba(var(--navy-btn),.90);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--glass-edge),var(--glass-floor),var(--glass-lift);
  color:var(--btn-txt);
  font-family:inherit;font-size:15px;font-weight:590;letter-spacing:-.01em;
  cursor:pointer;
  transition:background .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .1s var(--ease-out);
}
.btn-primary:hover,
.new-batch:hover,
.btn-wide:hover,
.empty-act:hover,
.pr-save:hover,
.modal-btns button.primary:hover,
.sec-plus:hover,
.blk-add:hover,
.task-plus:hover,
.bill-b:hover,
.pr-link-b:hover{
  background:rgba(44,44,60,.92);
  box-shadow:var(--glass-edge),var(--glass-floor),var(--glass-lift-hi);
}
.btn-primary:active,
.new-batch:active,
.btn-wide:active,
.empty-act:active,
.pr-save:active,
.modal-btns button.primary:active,
.sec-plus:active,
.blk-add:active,
.task-plus:active,
.bill-b:active,
.pr-link-b:active{
  transform:translateY(1px) scale(.995);
  box-shadow:var(--glass-press);
  background:rgba(var(--navy-btn),.94);
}

/* ── SECONDARY: светлое стекло ──────────────────── */
.btn-secondary,
.modal-btns button:not(.primary),
.acc-close,
.jr-read,
.bell-btn,
.avatar-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid rgba(var(--navy-btn),.08);
  border-radius:var(--btn-r);
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(12px) saturate(160%);
  backdrop-filter:blur(12px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),
             0 1px 2px rgba(var(--navy-btn),.06),
             0 6px 16px -10px rgba(var(--navy-btn),.22);
  color:var(--txt);
  font-family:inherit;font-size:15px;font-weight:510;
  cursor:pointer;
  transition:background .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .1s var(--ease-out);
}
.btn-secondary:hover,
.modal-btns button:not(.primary):hover,
.acc-close:hover,
.jr-read:hover,
.bell-btn:hover,
.avatar-btn:hover{
  background:rgba(255,255,255,.92);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),
             0 2px 4px rgba(var(--navy-btn),.07),
             0 10px 22px -10px rgba(var(--navy-btn),.28);
}
.btn-secondary:active,
.modal-btns button:not(.primary):active,
.acc-close:active,
.jr-read:active{
  transform:translateY(1px) scale(.995);
  box-shadow:inset 0 2px 5px rgba(var(--navy-btn),.12);
}

/* ── GHOST: без фона, проявляется при наведении ─── */
.btn-ghost,
.it-add,
.brows-more,
.op-more,
.pick-new{
  border:1px solid transparent;
  background:transparent;
  box-shadow:none;
  color:var(--txt);
  font-weight:510;
  transition:background .16s ease,border-color .16s ease}
.btn-ghost:hover,
.it-add:hover,
.brows-more:hover,
.op-more:hover,
.pick-new:hover{
  background:rgba(var(--navy-btn),.04);
  border-color:rgba(var(--navy-btn),.06);
  box-shadow:none}
.btn-ghost:active,
.it-add:active,
.brows-more:active,
.op-more:active,
.pick-new:active{background:rgba(var(--navy-btn),.07)}

/* ── ICON: круглые, те же три уровня ────────────── */
.sec-plus,.task-plus,.blk-add{
  padding:0;border-radius:50%;font-size:0}
.sec-plus{width:36px;height:36px}
.blk-add{width:30px;height:30px}
.task-plus{width:38px;height:38px}
.sec-plus i,.task-plus i,.blk-add i{font-size:18px;font-weight:400}

.bell-btn,.avatar-btn{border-radius:50%}
.bell-btn i{font-size:19px;color:var(--txt2)}

/* ── DESTRUCTIVE: тот же материал, тревожный оттенок ── */
.btn-danger,
.btn-del,
.pr-del,
.rmenu-del{
  border:1px solid rgba(229,72,77,.16);
  border-radius:var(--btn-r);
  background:rgba(229,72,77,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
  color:#C6353A;
  font-family:inherit;font-weight:510;
  cursor:pointer;
  transition:background .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .1s var(--ease-out)}
.btn-danger:hover,
.btn-del:hover,
.pr-del:hover,
.rmenu-del:hover{
  background:rgba(229,72,77,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 6px 16px -10px rgba(229,72,77,.5)}
.btn-danger:active,
.btn-del:active,
.pr-del:active{transform:translateY(1px) scale(.995);background:rgba(229,72,77,.16)}

/* ── FOCUS: видимое кольцо, не перекрывающее текст ── */
.btn-primary:focus-visible,.new-batch:focus-visible,.btn-wide:focus-visible,
.empty-act:focus-visible,.pr-save:focus-visible,.modal-btns button:focus-visible,
.sec-plus:focus-visible,.blk-add:focus-visible,.task-plus:focus-visible,
.btn-secondary:focus-visible,.acc-close:focus-visible,.jr-read:focus-visible,
.bell-btn:focus-visible,.avatar-btn:focus-visible,
.btn-ghost:focus-visible,.it-add:focus-visible,.brows-more:focus-visible,
.btn-danger:focus-visible,.btn-del:focus-visible,.pr-del:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(var(--navy-btn),.55),var(--glass-lift)}

/* ── DISABLED: тише, но читаемо ─────────────────── */
.btn-primary:disabled,.new-batch:disabled,.btn-wide:disabled,
.pr-save:disabled,.modal-btns button:disabled,
.btn-secondary:disabled,.btn-danger:disabled,.btn-del:disabled{
  opacity:.45;cursor:default;
  box-shadow:var(--glass-edge),0 1px 2px rgba(var(--navy-btn),.10);
  transform:none}

/* на телефоне кнопка создания — круглая, подпись не влезает */
.new-batch{width:40px;height:40px;padding:0;border-radius:50%}
.new-batch span{display:none}
@media (min-width:900px){
  .new-batch{width:auto;height:auto;border-radius:var(--btn-r);padding:10px 18px}
  .new-batch span{display:inline}
}

/* ── РАЗМЕРЫ: сохраняем прежние пропорции ───────── */
.btn-wide,.pr-save{width:100%;height:auto;min-height:var(--btn-h);padding:13px 20px}
.empty-act{padding:12px 22px;min-height:42px}
.new-batch{min-height:40px}
.modal-btns button{min-height:46px;font-size:15px}
.bill-b{min-height:32px;padding:0 14px;font-size:12px;border-radius:6px}
.pr-link-b{width:100%;min-height:42px;font-size:14px}
.btn-del,.pr-del{width:100%;min-height:44px;padding:12px}
.rmenu-del{background:none;border:none;box-shadow:none;border-radius:6px}
.rmenu-del:hover{background:rgba(229,72,77,.09)}

/* иконки не тяжелее текста */
.btn-primary i,.new-batch i,.btn-wide i,.pr-save i,.btn-secondary i,
.btn-ghost i,.it-add i,.brows-more i{font-size:17px;font-weight:400;opacity:.9}

/* подсказки из истории поставок */
.hint-prev{display:flex;align-items:center;gap:8px;margin:0 15px 10px;padding:9px 12px;
  background:var(--g0);border:1px solid var(--border);border-radius:6px;
  font-size:12px;color:var(--txt2);line-height:1.4}
.hint-prev i{font-size:15px;color:var(--txt3);flex-shrink:0}
.fact-days{margin-top:9px;font-size:12px;color:var(--txt2)}

/* ── ДЕЙСТВИЯ ПО ПАРТИИ ─────────────────────────── */
.acts-row{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;-webkit-overflow-scrolling:touch}
.acts-row::-webkit-scrollbar{display:none}
.act-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:9px;
  padding:12px 16px;border:1px solid rgba(255,255,255,.10);border-radius:var(--btn-r);
  background:rgba(var(--navy-btn),.90);
  -webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--glass-edge),var(--glass-floor),var(--glass-lift);
  color:var(--btn-txt);font-family:inherit;font-size:14px;font-weight:590;
  cursor:pointer;white-space:nowrap;
  transition:background .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .1s var(--ease-out)}
.act-btn:hover{background:rgba(44,44,60,.92);box-shadow:var(--glass-edge),var(--glass-floor),var(--glass-lift-hi)}
.act-btn:active{transform:translateY(1px) scale(.995);box-shadow:var(--glass-press)}
.act-btn i{font-size:18px;font-weight:400;opacity:.9}

/* ── ЛЕНТА СОБЫТИЙ ──────────────────────────────── */
.evs{padding:2px 0}
.ev{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.ev:first-child{border-top:none}
.ev-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:5px;flex-shrink:0}
.ev-b{flex:1;min-width:0}
.ev-t{font-size:14px;font-weight:590;letter-spacing:-.01em}
.ev-d{font-size:12px;color:var(--txt2);margin-top:3px;line-height:1.4}
.ev-m{font-size:11px;color:var(--txt3);margin-top:3px}
.ev-undo{flex-shrink:0;padding:5px 11px;border:1px solid var(--border);border-radius:6px;
  background:none;color:var(--txt2);font-size:12px;font-family:inherit;cursor:pointer}
.ev-undo:hover{background:var(--g1);color:var(--txt)}
.ev-empty{font-size:13px;color:var(--txt3);line-height:1.45;padding:4px 0}

#action-card{z-index:450}

/* разделы, которые понадобятся позже */
.secs-more{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:6px;padding:13px;background:none;border:1px solid var(--line);
  border-radius:12px;color:var(--txt3);font-size:13px;font-family:inherit;cursor:pointer;
  transition:background .15s ease,color .15s ease}
.secs-more:hover{background:var(--g0);color:var(--txt2)}
.secs-more i{font-size:16px}

/* приёмка: сколько приехало против заказанного */
.fact-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line)}
.fact-row:first-child{border-top:none}
.fact-n{flex:1;min-width:0;font-size:14px}
.fact-n span{display:block;font-size:11px;color:var(--txt3);margin-top:2px}
.fact-i{width:110px;flex-shrink:0;text-align:right}
.q-fact{font-weight:590}
.it-m s{color:var(--txt3);opacity:.7}
.sm-short{color:var(--red)}

@media (min-width:900px){
  /* Панель товара встаёт рядом с карточкой партии, а не поверх неё:
     нажал другой товар — сменилось только правое, экран остался.
     Это устраняет «назад» при переходе между товарами. */
  body.logi.side #item-card{
    position:fixed;top:76px;bottom:20px;right:24px;left:auto;
    width:min(460px,42vw);
    border-radius:12px;
    box-shadow:var(--sh-3);
    transform:translateX(0) scale(.98);
    opacity:0;visibility:hidden;
    transition:opacity .2s var(--ease-out),transform .22s var(--ease-out),visibility .22s;
  }
  body.logi.side #item-card.open{
    transform:translateX(0) scale(1);
    opacity:1;visibility:visible;
  }
  /* карточка партии ужимается, освобождая место панели */
  body.logi.side .jr-screen.dt{
    width:min(560px,52vw);
    right:calc(min(460px,42vw) + 40px);
    box-shadow:-12px 0 40px -24px rgba(16,24,40,.22);
  }
  body.logi.side #item-card .jr-hd{border-radius:12px 12px 0 0}
}

/* ══════════════════════════════════════════════════
   ПРИНЦИПЫ LINEAR В СВЕТЛОЙ ТЕМЕ
   Границы вместо теней · лёгкие веса · три радиуса ·
   плотный трекинг · один хроматический акцент
   ══════════════════════════════════════════════════ */

/* ── ВЕСА: шкала заканчивается на 590, жирнее не бывает */
.bsum .sm-1 b,.bst-n,.brow-t,.pr-n,.it-t,.blk-hd>span:first-child,
.dt-t,.brows-title span:first-child,.hdr-name,.ev-t,.todo-x,
.bn-v,.bpt-v,.itt-hl b,.ipb-tot b,.sm-2 b{font-weight:590}
.tab.active,.chip.on,.new-batch,.act-btn,.pr-save,.btn-primary,
.modal-btns button.primary,.btn-wide{font-weight:510}
.brow-sum,.brow-q,.it-s,.pr-p,.ipb-r b,.bill-r b,.wc-r b{font-weight:400}

/* ── ТРЕКИНГ: плотный на крупном, обычный на мелком */
.bst-n,.sm-1 b{letter-spacing:-.022em}
.bsum,.brow-t,.hdr-name,.dt-t,.brows-title span:first-child{letter-spacing:-.012em}
.bst-t,.bst-s,.brow-r,.brow-note,.todo-s,.ev-m{letter-spacing:0}

/* ── ГРАНИЦЫ ВМЕСТО ТЕНЕЙ */
.bsum,.brows,.todo,.bst,.blk,.card,.dt-box,.evs,
.brows-more,.secs-more,.fold-hd,.fold-bd{
  box-shadow:var(--inset)}
.bst,.bsum,.todo,.brows{border-radius:var(--r-card)}
.fold-hd{border-radius:var(--r-card)}
.fold-hd.on{border-radius:var(--r-card) var(--r-card) 0 0}
.fold-bd{border-radius:0 0 var(--r-card) var(--r-card);box-shadow:var(--inset)}

/* разделители — волосяные */
.brow::after,.rmenu-sep,.ev,.bill-r,.ipb-r{border-color:var(--hair)}
.brow::after{background:var(--hair)}

/* ── РАДИУСЫ: только три значения */
.fld-i,.inp,.bk-search,.act-btn,.pr-save,.pr-del,.btn-primary,
.btn-danger,.modal-btns button,.bill-b,.empty-act,
.brows-more,.secs-more,.op-more,.it-add{border-radius:var(--r-btn)}
/* круглые остаются круглыми: иконочные и кнопка создания на телефоне */
.sec-plus,.blk-add,.task-plus,.bell-btn,.avatar-btn{border-radius:var(--r-pill)}
.new-batch{border-radius:var(--r-pill)}
@media (min-width:900px){ .new-batch{border-radius:var(--r-btn)} }
.chip,.brow-badge-alert,.pr-new,.bst-i,.tab-badge{border-radius:var(--r-pill)}
.rmenu,.modal,.jr-screen.dt,#item-card{border-radius:var(--r-card)}
.rmenu button{border-radius:var(--r-btn)}

/* ── ПОЛЯ: почти прозрачные, граница вместо заливки */
.fld-i,.inp{background:rgba(16,17,20,.02);border:1px solid var(--hair);box-shadow:none}
.fld-i:focus,.inp:focus{border-color:var(--iris);background:#fff;
  box-shadow:0 0 0 3px var(--iris-soft);outline:none}
.fld-ro{background:rgba(16,17,20,.03)}

/* ── АКЦЕНТ: один хроматический цвет, скупо */
.tab.active{background:var(--ink);box-shadow:none}
.chip.on{background:var(--ink);box-shadow:none}
.sm-dot,.brow-dot{box-shadow:0 0 0 3px rgba(16,17,20,.04)}
.it-add,.brows-more,.op-more,.pick-new{color:var(--txt2)}
.it-add i,.brows-more i{color:var(--txt3)}
.mst-d.done{background:var(--ink)}
.mst-d.act{background:var(--iris)!important}

/* ── КНОПКИ: компактнее, без стеклянных наворотов */
.new-batch,.act-btn,.pr-save,.btn-primary,.modal-btns button.primary,.btn-wide,
.empty-act,.sec-plus,.blk-add,.task-plus,.bill-b,.pr-link-b{
  background:var(--ink);border:1px solid rgba(255,255,255,.06);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:none;-webkit-backdrop-filter:none;
  font-size:14px}
.new-batch:hover,.act-btn:hover,.pr-save:hover,.btn-primary:hover,
.modal-btns button.primary:hover,.btn-wide:hover,.empty-act:hover,
.sec-plus:hover,.blk-add:hover,.task-plus:hover,.bill-b:hover,.pr-link-b:hover{
  background:#24262b;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)}
.new-batch:active,.act-btn:active,.pr-save:active{
  transform:none;background:#0f1011;box-shadow:inset 0 1px 3px rgba(0,0,0,.3)}
.btn-secondary,.bell-btn,.avatar-btn,.modal-btns button:not(.primary){
  background:#fff;border:1px solid var(--hair-2);box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none}
.btn-secondary:hover,.bell-btn:hover,.modal-btns button:not(.primary):hover{
  background:rgba(16,17,20,.03);box-shadow:none}

/* ── ПЛОТНОСТЬ: отступы по лестнице 8/12/24 */
.bst{padding:16px}
.bsum{padding:16px 20px}
.brow{padding:12px 20px}
.brows-hd{padding:10px 20px 8px}
.fold-hd{padding:12px 16px}
.todo-r{padding:10px 16px}
.rmenu button{padding:8px 10px;font-size:13.5px}
.acts-row{padding-bottom:12px}
.act-btn{padding:10px 14px}

/* ── ПЛАВАЮЩЕЕ: единственное, что имеет тень */
.rmenu{box-shadow:var(--sh-3)}
.modal{box-shadow:0 4px 32px rgba(8,9,10,.18)}
.jr-screen.dt,#item-card,#prod-card,#picker,#action-card{box-shadow:none}
@media (min-width:900px){
  body.logi .jr-screen.dt{box-shadow:-1px 0 0 var(--hair-2),var(--sh-3)}
  body.logi.side #item-card{box-shadow:var(--sh-3)}
  .tabs{border-right:1px solid var(--hair)}
}

/* ── МЕЛОЧИ */
.brows-hd{font-size:10px;letter-spacing:.06em}
.bst-i{background:none}
.q-word,.cur{font-weight:400}

/* ── ФОКУС: кольцо акцентным цветом, видно на любом фоне */
.new-batch:focus-visible,.act-btn:focus-visible,.pr-save:focus-visible,
.btn-primary:focus-visible,.modal-btns button:focus-visible,.btn-wide:focus-visible,
.empty-act:focus-visible,.sec-plus:focus-visible,.blk-add:focus-visible,
.task-plus:focus-visible,.btn-secondary:focus-visible,.bell-btn:focus-visible,
.avatar-btn:focus-visible,.btn-danger:focus-visible,.pr-del:focus-visible,
.brows-more:focus-visible,.it-add:focus-visible,.chip:focus-visible,
.brow:focus-visible,.todo-r:focus-visible,.fold-hd:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px #fff,0 0 0 4px var(--iris)}

/* ══ СВОД ПРАВИЛ LINEAR — финальная выверка ══════
   Всё, что ниже, приводит систему к семи «делай»
   и семи «не делай» из справочника. */

/* Базовый текст: 16px / 400 / 1.5 — читаемый размер, не мелкий */
body,.op-c,.fld-i,.inp,.rmenu button,.brow-t{font-size:15px}
.bsum .sm-1{font-size:16px;line-height:1.5}

/* Плотный трекинг обязателен на крупном */
.bst-n,.sm-1 b,.bsum .sm-2 b{letter-spacing:-.022em}

/* Поверхности разделяются волосяной границей, не тенью */
.blk,.card,.dt-box,.bsum,.brows,.todo,.bst,.evs,.acc-modal,
.bill,.wc,.rates,.ipb,.hint-prev,.pk-box{
  box-shadow:inset 0 0 0 1px var(--hair)}

/* Тень остаётся только у того, что физически висит над экраном */
.rmenu{box-shadow:0 4px 32px rgba(8,9,10,.16),inset 0 0 0 1px var(--hair)}
.modal{box-shadow:0 4px 32px rgba(8,9,10,.18)}
.toast{box-shadow:0 4px 32px rgba(8,9,10,.22)}
#boot{box-shadow:none}

/* Никаких хроматических цветов в теле текста */
.brow-note,.todo-s,.ev-m,.bst-s,.sm-note,.it-m,.pr-m,.fld-opt{color:var(--txt3)}
.brow-badge,.sm-3,.it-hint{color:var(--txt2)}

/* Единственное цветное — состояние данных, а не интерфейса */
.sm-good,.mon-in{color:#12A150}
.sm-bad,.sm-short,.brow-badge-alert,.bst-delayed .bst-n{color:#E5484D}

/* Отступы по лестнице 8 / 12 / 24 */
.content{gap:12px;padding-left:16px;padding-right:16px}
.dt-sec{margin-bottom:8px}
.acts-row{gap:8px}
.bstats{gap:8px}
@media (min-width:900px){
  .content{gap:12px;padding-left:24px;padding-right:24px}
  .bstats{gap:12px;margin-bottom:24px}
  .bl-tools{padding-bottom:16px}
}

/* Моноширинный — только для технических значений */
.mono,.fld-i.mono{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:14px;letter-spacing:-.013em}

/* на узком экране сводка компактнее: 16px там даёт лишнюю строку */
@media (max-width:520px){
  .bsum{padding:14px 16px}
  .bsum .sm-1{font-size:15px}
  .sm-1 b{font-size:20px}
  .sm-2{font-size:14px;margin-top:5px}
  .sm-2 b{font-size:16px}
  .sm-3{margin-top:10px;padding-top:10px;font-size:13px}
  .sm-4{font-size:11px}
}

/* ══ КОШЕЛЬКИ ════════════════════════════════════ */

/* свёрнутая строка: три равные колонки, цифры не скачут */
.wal-row{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:10px;
  padding:12px 16px;margin-bottom:12px;background:var(--card);
  border:none;border-radius:12px;box-shadow:inset 0 0 0 1px var(--hair);
  font-family:inherit;cursor:pointer;text-align:left}
.wal-row:hover{background:rgba(16,17,20,.02)}
.wal-i{min-width:0;display:flex;flex-direction:column;gap:1px}
.wal-t{font-size:11px;color:var(--txt3);white-space:nowrap}
.wal-v{font-size:15px;font-weight:510;letter-spacing:-.012em;
  font-variant-numeric:tabular-nums;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.wal-neg{color:#E5484D}
.wal-eq{font-size:10px;color:var(--txt3);white-space:nowrap;min-height:13px;
  font-variant-numeric:tabular-nums}
.wal-chv{font-size:17px;color:var(--txt3)}

/* карточки валют в панели */
.wcards{padding:14px 15px 0;display:flex;flex-direction:column;gap:8px}
.wcard{background:var(--card);border-radius:12px;box-shadow:inset 0 0 0 1px var(--hair);overflow:hidden}
.wcard.on{box-shadow:inset 0 0 0 1.5px var(--ink)}
.wcard-h{width:100%;display:flex;align-items:baseline;gap:12px;padding:14px 16px;
  background:none;border:none;font-family:inherit;cursor:pointer;text-align:left}
.wcard-t{font-size:13px;color:var(--txt2);flex:1}
.wcard-v{font-size:19px;font-weight:590;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.wc-eq{font-size:11px;color:var(--txt3);white-space:nowrap;font-variant-numeric:tabular-nums}

/* форма прямо под выбранным кошельком */
.wform{padding:0 16px 16px;border-top:1px solid var(--hair);margin-top:2px;padding-top:14px}
.wseg{display:flex;gap:6px;margin-bottom:12px}
.wseg-b{flex:1;padding:9px;background:none;border:none;border-radius:6px;
  box-shadow:inset 0 0 0 1px var(--hair);
  color:var(--txt2);font-size:13px;font-family:inherit;cursor:pointer}
.wseg-b.on{background:var(--ink);color:#F5F5F7;box-shadow:none;font-weight:510}
.wform-save{width:100%;margin-top:12px;min-height:42px}

/* лента движений по всем кошелькам */
.wmoves{background:var(--card);border-radius:12px;overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--hair)}
.wm{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--hair)}
.wm:first-child{border-top:none}
.wm-d{font-size:11px;color:var(--txt3);width:50px;flex-shrink:0}
.wm-b{flex:1;min-width:0}
.wm-n{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.wm-w{font-size:11px;color:var(--txt3)}
.wm-a{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.wm-in{color:#12A150}
.wm-x{width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  border:none;background:none;color:var(--txt3);border-radius:6px;cursor:pointer;flex-shrink:0}
.wm-x:hover{background:var(--g1);color:var(--txt2)}
.wm-x i{font-size:15px}
.wm-more{width:100%;padding:13px;background:none;border:none;border-top:1px solid var(--hair);
  color:var(--txt2);font-size:13px;font-family:inherit;cursor:pointer}
.wm-more:hover{background:rgba(16,17,20,.02)}

#wallet-card{z-index:460}

