/* ============================================================
   Perf-OS · единая дизайн-система портала производительность.online
   Бренд: navy #0B1929 · зелёный #0A5C39 · золото #F2E1B8
   Шрифт: IBM Plex Sans / IBM Plex Mono (css/fonts.css)
   Темы: светлая (по умолчанию) + тёмная (html[data-theme=dark])
   ============================================================ */

/* ---------- 0. Инвариант платформы: атрибут hidden всегда скрывает ----------
   Правило must-win против display:flex/grid в классах (.libcard, .chips и т.п.):
   без него JS-фильтры (tab-переключатели, чипы категорий, поиск) не скрывают
   карточки — баг фильтрации Библиотеки от 15.09.2026. Классовые !important
   (например, печать бланка поставщика) перебивают это правило поздним порядком. */
[hidden]{display:none !important}

/* ---------- 1. Токены ---------- */
:root{
  /* поверхности и текст */
  --pos-bg:#F6F8FB; --pos-surface:#FFFFFF; --pos-surface-2:#EDF1F7; --pos-surface-3:#E3E9F0;
  --pos-ink:#17263B; --pos-ink-2:#5B6B80; --pos-ink-3:#8A97A8;
  --pos-line:#D9E1EC; --pos-line-2:#C3D3E2;
  /* бренд */
  --pos-navy:#0B1929; --pos-navy-2:#0F2137; --pos-navy-3:#14283E; --pos-navy-4:#1B2E45;
  --pos-green:#0A5C39; --pos-green-h:#0C7A4B; --pos-green-soft:#E3F3EA;
  --pos-mint:#7BD3A8; --pos-mint-soft:#DFF3E8;
  --pos-gold:#F2E1B8; --pos-gold-deep:#B98A2F; --pos-gold-soft:#FBF3DC;
  --pos-blue:#1E50C8; --pos-blue-soft:#E8EFFF;
  /* семантика */
  --pos-ok:#0A5C39; --pos-ok-soft:#E3F3EA;
  --pos-warn:#B45309; --pos-warn-soft:#FDF0E0;
  --pos-danger:#B91C1C; --pos-danger-soft:#FBE9E9;
  /* форма */
  --pos-r:14px; --pos-r-s:9px; --pos-r-l:18px;
  --pos-sh-1:0 1px 2px rgba(11,25,41,.05), 0 2px 10px rgba(11,25,41,.06);
  --pos-sh-2:0 6px 18px rgba(11,25,41,.10), 0 2px 6px rgba(11,25,41,.07);
  --pos-font:'IBM Plex Sans',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --pos-mono:'IBM Plex Mono',ui-monospace,'SF Mono',Consolas,monospace;
}
html[data-theme="dark"]{
  --pos-bg:#0B1929; --pos-surface:#0F2137; --pos-surface-2:#14283E; --pos-surface-3:#1B3450;
  --pos-ink:#E8EEF6; --pos-ink-2:#A9B8C9; --pos-ink-3:#7E8EA0;
  --pos-line:#23364E; --pos-line-2:#2E445E;
  --pos-green:#35C48D; --pos-green-h:#4AD9A0; --pos-green-soft:rgba(53,196,141,.13);
  --pos-mint:#7BD3A8; --pos-mint-soft:rgba(123,211,168,.13);
  --pos-gold:#F2E1B8; --pos-gold-deep:#E4C77E; --pos-gold-soft:rgba(242,225,184,.11);
  --pos-blue:#7FA8FF; --pos-blue-soft:rgba(127,168,255,.13);
  --pos-ok:#35C48D; --pos-ok-soft:rgba(53,196,141,.13);
  --pos-warn:#E8A54B; --pos-warn-soft:rgba(232,165,75,.13);
  --pos-danger:#F07A6E; --pos-danger-soft:rgba(240,122,110,.13);
  --pos-sh-1:0 1px 2px rgba(0,0,0,.35), 0 2px 10px rgba(0,0,0,.30);
  --pos-sh-2:0 8px 24px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.35);
}

/* ---------- 2. База ---------- */
html[data-theme] body{background:var(--pos-bg);}
.pos-wrap{max-width:1180px;margin:0 auto;padding:0 20px;}
.pos-mono{font-family:var(--pos-mono);}
.pos-mut{color:var(--pos-ink-2);}
.pos-i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-0.12em;flex:none;}

/* ---------- 3. Шапка (всегда navy — бренд-якорь) ---------- */
.pos-head{position:sticky;top:0;z-index:900;background:linear-gradient(180deg,#0B1929 0%,#0D1E33 100%);border-bottom:1px solid rgba(123,211,168,.14);box-shadow:0 2px 14px rgba(4,10,18,.35);font-size:16px;}
.pos-head-in{max-width:1280px;margin:0 auto;padding:0 16px;height:62px;display:flex;align-items:center;gap:12px;}
.pos-brand{display:flex;align-items:center;gap:7px;text-decoration:none;color:#EDF3FA;flex:none;}
.pos-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#0C7A4B,#0A5C39);color:#EAF6EF;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;font-family:var(--pos-font);box-shadow:inset 0 0 0 1px rgba(123,211,168,.35);}
.pos-name{font-size:14px;font-weight:600;letter-spacing:0;white-space:nowrap;}
.pos-name b{color:#7BD3A8;font-weight:600;}
.pos-nav{display:flex;align-items:center;gap:3px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;}
.pos-nav::-webkit-scrollbar{display:none;}
.pos-nav-g{display:flex;align-items:center;gap:3px;padding:0 7px;}
.pos-nav-g + .pos-nav-g{border-left:1px solid rgba(195,211,226,.14);}
.pos-nav-gt{font-size:9.5px;text-transform:uppercase;letter-spacing:1px;color:#7E8EA0;margin-right:2px;white-space:nowrap;}
.pos-nav a{color:#C3D3E2;text-decoration:none;font-size:13.5px;padding:7px 6px;border-radius:8px;white-space:nowrap;transition:background .15s,color .15s;}
.pos-nav a:hover{background:rgba(123,211,168,.10);color:#EAF2FA;}
.pos-nav a.cur{background:rgba(123,211,168,.16);color:#7BD3A8;font-weight:600;}
.pos-nav a.pos-new{color:#F2E1B8;}
.pos-nav a.pos-new .pos-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#F2E1B8;margin-left:4px;vertical-align:2px;}
.pos-head-tools{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto;}
.pos-thbtn{width:32px;height:32px;border-radius:9px;border:1px solid rgba(195,211,226,.22);background:rgba(195,211,226,.07);color:#C3D3E2;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:all .15s;}
.pos-thbtn:hover{background:rgba(123,211,168,.14);color:#7BD3A8;border-color:rgba(123,211,168,.4);}
.pos-cta{display:inline-flex;align-items:center;gap:6px;background:var(--pos-green);color:#fff;text-decoration:none;font-size:13px;font-weight:600;padding:8px 12px;border-radius:9px;white-space:nowrap;transition:background .15s;box-shadow:0 2px 8px rgba(10,92,57,.4);}
.pos-cta:hover{background:var(--pos-green-h);color:#fff;}
.pos-burger{display:none;width:36px;height:36px;border-radius:9px;border:1px solid rgba(195,211,226,.22);background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
.pos-burger span{display:block;width:16px;height:2px;background:#C3D3E2;border-radius:2px;transition:all .2s;}
.pos-head.open .pos-burger span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.pos-head.open .pos-burger span:nth-child(2){opacity:0;}
.pos-head.open .pos-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.pos-userchip{display:inline-flex;align-items:center;gap:7px;color:#EAF2FA;text-decoration:none;font-size:13px;padding:6px 11px;border-radius:9px;background:rgba(123,211,168,.12);border:1px solid rgba(123,211,168,.3);white-space:nowrap;}
.pos-userchip b{color:#7BD3A8;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;}
@media (max-width:1360px){
  .pos-burger{display:flex;}
  .pos-nav{display:none;position:absolute;top:62px;left:0;right:0;background:#0D1E33;border-bottom:1px solid rgba(123,211,168,.16);flex-direction:column;align-items:stretch;padding:10px 16px 16px;box-shadow:0 16px 30px rgba(4,10,18,.5);}
  .pos-head.open .pos-nav{display:flex;}
  .pos-nav-g{flex-direction:column;align-items:stretch;border-left:none !important;padding:6px 0;}
  .pos-nav-gt{margin:6px 0 2px;}
  .pos-nav a{padding:10px 12px;font-size:14.5px;}
}
@media (max-width:640px){
  .pos-cta{display:none;}
  .pos-head-in{padding:0 12px;}
}

/* ---------- 4. Подвал (всегда navy) ---------- */
.pos-foot{background:#0B1929;color:#A9B8C9;margin-top:0;border-top:1px solid rgba(123,211,168,.16);}
.pos-foot-in{max-width:1180px;margin:0 auto;padding:44px 20px 30px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px;}
.pos-foot-brand p{font-size:13px;line-height:1.65;color:#8FA5B8;margin:12px 0 0;max-width:340px;}
.pos-foot-col{display:flex;flex-direction:column;gap:9px;}
.pos-foot-col h4{margin:0 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:#7BD3A8;font-weight:600;}
.pos-foot-col a{color:#C3D3E2;text-decoration:none;font-size:13.5px;}
.pos-foot-col a:hover{color:#F2E1B8;}
.pos-foot-bot{max-width:1180px;margin:0 auto;padding:16px 20px 26px;border-top:1px solid rgba(195,211,226,.12);display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#7E8EA0;flex-wrap:wrap;}
@media (max-width:860px){.pos-foot-in{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.pos-foot-in{grid-template-columns:1fr;}}

/* ---------- 5. Кнопки и контролы ---------- */
.pos-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:10px;padding:9px 16px;font-size:13.5px;font-weight:600;font-family:var(--pos-font);cursor:pointer;text-decoration:none;line-height:1.2;transition:all .15s;white-space:nowrap;}
.pos-btn--p{background:var(--pos-green);color:#fff;box-shadow:0 2px 8px rgba(10,92,57,.28);}
.pos-btn--p:hover{background:var(--pos-green-h);color:#fff;}
html[data-theme="dark"] .pos-btn--p{color:#06251A;box-shadow:0 2px 10px rgba(53,196,141,.25);}
.pos-btn--s{background:var(--pos-surface);color:var(--pos-ink);border-color:var(--pos-line-2);}
.pos-btn--s:hover{border-color:var(--pos-green);color:var(--pos-green);}
.pos-btn--g{background:transparent;color:var(--pos-ink-2);}
.pos-btn--g:hover{background:var(--pos-surface-2);color:var(--pos-ink);}
.pos-btn--gold{background:var(--pos-gold);color:#3D2E07;border-color:var(--pos-gold);}
.pos-btn--gold:hover{filter:brightness(1.04);}
.pos-btn--d{background:var(--pos-danger-soft);color:var(--pos-danger);border-color:transparent;}
.pos-btn--d:hover{background:var(--pos-danger);color:#fff;}
.pos-btn--sm{padding:5px 10px;font-size:12.5px;border-radius:8px;}
.pos-btn--lg{padding:12px 22px;font-size:15px;border-radius:12px;}
.pos-btn:disabled{opacity:.5;cursor:not-allowed;}

.pos-chip{display:inline-flex;align-items:center;gap:5px;background:var(--pos-surface-2);color:var(--pos-ink-2);border:1px solid var(--pos-line);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:500;}
.pos-chip--on{background:var(--pos-green-soft);color:var(--pos-green);border-color:transparent;font-weight:600;}
.pos-chip--gold{background:var(--pos-gold-soft);color:var(--pos-gold-deep);border-color:transparent;}
html[data-theme="dark"] .pos-btn--gold, html[data-theme="dark"] .pos-chip--gold{color:var(--pos-gold);}

.pos-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.3px;padding:3px 9px;border-radius:999px;background:var(--pos-surface-2);color:var(--pos-ink-2);}
.pos-badge--g{background:var(--pos-green-soft);color:var(--pos-green);}
.pos-badge--gold{background:var(--pos-gold-soft);color:var(--pos-gold-deep);}
.pos-badge--b{background:var(--pos-blue-soft);color:var(--pos-blue);}
.pos-badge--r{background:var(--pos-danger-soft);color:var(--pos-danger);}
.pos-badge--w{background:var(--pos-warn-soft);color:var(--pos-warn);}

.pos-input,.pos-select,.pos-textarea{width:100%;background:var(--pos-surface);color:var(--pos-ink);border:1px solid var(--pos-line-2);border-radius:10px;padding:9px 12px;font-size:13.5px;font-family:var(--pos-font);outline:none;transition:border .15s, box-shadow .15s;box-sizing:border-box;}
.pos-input:focus,.pos-select:focus,.pos-textarea:focus{border-color:var(--pos-green);box-shadow:0 0 0 3px var(--pos-green-soft);}
.pos-label{display:block;font-size:12px;font-weight:600;color:var(--pos-ink-2);margin:0 0 5px;letter-spacing:.2px;}
.pos-hint{font-size:11.5px;color:var(--pos-ink-3);margin-top:4px;line-height:1.5;}

/* ---------- 6. Карточки, секции, баннеры ---------- */
.pos-card{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r);box-shadow:var(--pos-sh-1);padding:20px;}
.pos-card--hover{transition:all .18s;}
.pos-card--hover:hover{box-shadow:var(--pos-sh-2);transform:translateY(-2px);border-color:var(--pos-line-2);}
.pos-kpi{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r);padding:16px 18px;box-shadow:var(--pos-sh-1);}
.pos-kpi b{display:block;font-size:26px;font-weight:700;font-family:var(--pos-mono);color:var(--pos-ink);letter-spacing:-.5px;}
.pos-kpi span{font-size:12px;color:var(--pos-ink-2);line-height:1.45;display:block;margin-top:3px;}
.pos-kpi--green b{color:var(--pos-green);}
.pos-kpi--gold b{color:var(--pos-gold-deep);}
html[data-theme="dark"] .pos-kpi--gold b{color:var(--pos-gold);}

.pos-banner{display:flex;gap:10px;align-items:flex-start;background:var(--pos-surface);border:1px solid var(--pos-line);border-left:3px solid var(--pos-blue);border-radius:10px;padding:12px 15px;font-size:13px;line-height:1.6;color:var(--pos-ink-2);}
.pos-banner--ok{border-left-color:var(--pos-ok);background:linear-gradient(0deg,var(--pos-ok-soft),var(--pos-ok-soft)),var(--pos-surface);}
.pos-banner--warn{border-left-color:var(--pos-warn);background:linear-gradient(0deg,var(--pos-warn-soft),var(--pos-warn-soft)),var(--pos-surface);}
.pos-banner--gold{border-left-color:var(--pos-gold-deep);background:linear-gradient(0deg,var(--pos-gold-soft),var(--pos-gold-soft)),var(--pos-surface);}
.pos-banner b{color:var(--pos-ink);}

.pos-empty{text-align:center;padding:46px 24px;border:1.5px dashed var(--pos-line-2);border-radius:var(--pos-r-l);color:var(--pos-ink-2);background:var(--pos-surface);}
.pos-empty .pos-eico{width:52px;height:52px;margin:0 auto 14px;border-radius:14px;background:var(--pos-green-soft);color:var(--pos-green);display:flex;align-items:center;justify-content:center;font-size:24px;}
.pos-empty h3{margin:0 0 6px;font-size:16px;color:var(--pos-ink);}
.pos-empty p{margin:0 auto 16px;font-size:13px;max-width:420px;line-height:1.6;}

.pos-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--pos-navy-2);color:#E8EEF6;border:1px solid rgba(123,211,168,.35);border-radius:12px;padding:11px 18px;font-size:13px;box-shadow:0 10px 30px rgba(4,10,18,.45);opacity:0;pointer-events:none;transition:all .25s;z-index:2000;max-width:88vw;}
.pos-toast.on{opacity:1;transform:translateX(-50%) translateY(0);}
.pos-toast--gold{border-color:rgba(242,225,184,.4);}

.pos-sec{padding:54px 0;}
.pos-kicker{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:var(--pos-green);margin:0 0 10px;}
.pos-kicker::before{content:"";width:22px;height:2px;background:var(--pos-green);border-radius:2px;}
.pos-kicker--gold{color:var(--pos-gold-deep);}
.pos-kicker--gold::before{background:var(--pos-gold-deep);}
.pos-h2{font-size:clamp(24px,3.2vw,32px);line-height:1.18;letter-spacing:-.4px;margin:0 0 10px;color:var(--pos-ink);font-weight:700;}
.pos-sub{font-size:15px;line-height:1.65;color:var(--pos-ink-2);max-width:640px;margin:0 0 26px;}

/* ---------- 7. Таблицы, табы, степпер ---------- */
.pos-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r);overflow:hidden;}
.pos-table th{background:var(--pos-surface-2);color:var(--pos-ink-2);font-size:11px;text-transform:uppercase;letter-spacing:.8px;text-align:left;padding:10px 13px;border-bottom:1px solid var(--pos-line);font-weight:600;}
.pos-table td{padding:11px 13px;border-bottom:1px solid var(--pos-line);color:var(--pos-ink);}
.pos-table tr:last-child td{border-bottom:none;}
.pos-table tr:hover td{background:var(--pos-surface-2);}

.pos-tabs{display:flex;gap:4px;background:var(--pos-surface-2);border:1px solid var(--pos-line);border-radius:11px;padding:4px;width:max-content;max-width:100%;overflow-x:auto;}
.pos-tabs button{border:none;background:transparent;color:var(--pos-ink-2);font-size:13px;font-weight:600;font-family:var(--pos-font);padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .15s;}
.pos-tabs button.on{background:var(--pos-surface);color:var(--pos-ink);box-shadow:var(--pos-sh-1);}
.pos-tabs button:hover:not(.on){color:var(--pos-ink);}

.pos-stepper{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 22px;}
.pos-step{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;border:1px solid var(--pos-line);background:var(--pos-surface);font-size:12.5px;color:var(--pos-ink-2);font-weight:500;}
.pos-step i{width:20px;height:20px;border-radius:50%;background:var(--pos-surface-2);color:var(--pos-ink-2);display:flex;align-items:center;justify-content:center;font-size:11px;font-style:normal;font-family:var(--pos-mono);}
.pos-step.on{border-color:var(--pos-green);background:var(--pos-green-soft);color:var(--pos-green);font-weight:600;}
.pos-step.on i{background:var(--pos-green);color:#fff;}
.pos-step.done{border-color:transparent;background:var(--pos-surface-2);color:var(--pos-ink-2);}
.pos-step.done i{background:var(--pos-mint);color:#06251A;}

/* ---------- 8. Лендинг ---------- */
.pos-hero{position:relative;background:radial-gradient(1100px 480px at 78% -10%,rgba(123,211,168,.13),transparent 60%),radial-gradient(900px 420px at 12% 110%,rgba(242,225,184,.09),transparent 55%),linear-gradient(180deg,#0B1929 0%,#0D1F35 100%);color:#E8EEF6;overflow:hidden;}
.pos-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(123,211,168,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(123,211,168,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(720px 420px at 70% 18%,#000 30%,transparent 75%);pointer-events:none;}
.pos-hero-in{position:relative;max-width:1180px;margin:0 auto;padding:76px 20px 66px;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center;}
.pos-hero h1{font-size:clamp(30px,4.4vw,46px);line-height:1.12;letter-spacing:-.8px;margin:0 0 16px;font-weight:700;color:#F4F8FC;}
.pos-hero h1 em{font-style:normal;color:#7BD3A8;}
.pos-hero h1 u{text-decoration:none;color:#F2E1B8;}
.pos-hero .pos-hero-sub{font-size:16.5px;line-height:1.7;color:#A9B8C9;max-width:520px;margin:0 0 26px;}
.pos-hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.pos-hero-note{display:flex;gap:16px;margin-top:22px;font-size:12.5px;color:#7E8EA0;flex-wrap:wrap;}
.pos-hero-note span{display:inline-flex;gap:6px;align-items:center;}
.pos-hero-note .pos-i{color:#7BD3A8;}
.pos-hero-visual{position:relative;}
.pos-herocard{background:linear-gradient(180deg,#102540,#0D1E33);border:1px solid rgba(123,211,168,.22);border-radius:20px;padding:20px;box-shadow:0 30px 60px rgba(3,8,15,.55), inset 0 1px 0 rgba(195,211,226,.08);}
.pos-herocard .pos-hc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:11px;color:#7E8EA0;text-transform:uppercase;letter-spacing:1.2px;}
.pos-hc-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;background:rgba(195,211,226,.05);margin-bottom:7px;font-size:12.5px;color:#C3D3E2;}
.pos-hc-row b{color:#E8EEF6;font-weight:600;}
.pos-hc-bar{height:7px;border-radius:4px;background:rgba(195,211,226,.12);overflow:hidden;flex:1;}
.pos-hc-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#0C7A4B,#7BD3A8);}
.pos-hc-bar i.gd{background:linear-gradient(90deg,#B98A2F,#F2E1B8);}
.pos-hc-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;}
.pos-hc-kpi div{background:rgba(123,211,168,.09);border:1px solid rgba(123,211,168,.2);border-radius:10px;padding:9px 10px;font-size:11px;color:#A9B8C9;}
.pos-hc-kpi b{display:block;font-family:var(--pos-mono);font-size:16px;color:#7BD3A8;margin-bottom:2px;}

.pos-stats{background:#0B1929;border-top:1px solid rgba(123,211,168,.12);border-bottom:1px solid rgba(123,211,168,.12);}
.pos-stats-in{max-width:1180px;margin:0 auto;padding:30px 20px;display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.pos-stats b{display:block;font-family:var(--pos-mono);font-size:27px;font-weight:700;color:#7BD3A8;letter-spacing:-.5px;}
.pos-stats span{font-size:11.5px;color:#A9B8C9;line-height:1.4;display:block;margin-top:3px;}
@media (max-width:900px){.pos-stats-in{grid-template-columns:repeat(3,1fr);}}
@media (max-width:560px){.pos-stats-in{grid-template-columns:repeat(2,1fr);}}

.pos-grid{display:grid;gap:18px;}
.pos-grid--2{grid-template-columns:1fr 1fr;}
.pos-grid--3{grid-template-columns:repeat(3,1fr);}
.pos-grid--4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.pos-grid--3,.pos-grid--4{grid-template-columns:repeat(2,1fr);}.pos-hero-in{grid-template-columns:1fr;padding-top:54px;}}
@media (max-width:620px){.pos-grid--2,.pos-grid--3,.pos-grid--4{grid-template-columns:1fr;}}

.pos-feat{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r);padding:22px;box-shadow:var(--pos-sh-1);transition:all .18s;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;}
.pos-feat:hover{box-shadow:var(--pos-sh-2);transform:translateY(-2px);}
.pos-feat-ico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--pos-green-soft);color:var(--pos-green);}
.pos-feat-ico--gold{background:var(--pos-gold-soft);color:var(--pos-gold-deep);}
.pos-feat h3{margin:0;font-size:16.5px;color:var(--pos-ink);letter-spacing:-.2px;}
.pos-feat p{margin:0;font-size:13px;line-height:1.65;color:var(--pos-ink-2);flex:1;}
.pos-feat .pos-feat-go{font-size:12.5px;font-weight:600;color:var(--pos-green);display:inline-flex;align-items:center;gap:5px;}
.pos-feat-tag{font-size:10.5px;text-transform:uppercase;letter-spacing:1.1px;color:var(--pos-ink-3);font-weight:700;}

.pos-losscard{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r);overflow:hidden;box-shadow:var(--pos-sh-1);transition:all .18s;display:flex;flex-direction:column;text-decoration:none;color:inherit;}
.pos-losscard:hover{box-shadow:var(--pos-sh-2);transform:translateY(-2px);}
.pos-losscard img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
.pos-losscard div{padding:15px 17px 17px;}
.pos-losscard h3{margin:0 0 6px;font-size:15px;color:var(--pos-ink);}
.pos-losscard .pos-mono{font-size:11px;color:var(--pos-green);font-weight:600;}
.pos-losscard p{margin:0;font-size:12.5px;line-height:1.6;color:var(--pos-ink-2);}

.pos-ctaband{background:linear-gradient(120deg,#0C2B1D,#0B1929 65%);border-top:1px solid rgba(123,211,168,.2);}
.pos-ctaband-in{max-width:1180px;margin:0 auto;padding:46px 20px;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;}
.pos-ctaband h2{margin:0;font-size:clamp(20px,2.6vw,27px);color:#F4F8FC;letter-spacing:-.3px;}
.pos-ctaband p{margin:6px 0 0;font-size:13.5px;color:#A9B8C9;max-width:560px;line-height:1.6;}
.pos-ctaband .pos-hero-cta{flex:none;}

/* ---------- 9. Кабинет / авторизация / тарифы / новости / мастер ---------- */
.pos-pagehead{padding:34px 0 6px;}
.pos-pagehead h1{margin:0 0 6px;font-size:clamp(23px,3vw,30px);letter-spacing:-.4px;color:var(--pos-ink);}
.pos-pagehead p{margin:0;color:var(--pos-ink-2);font-size:14px;line-height:1.6;}

.pos-authwrap{min-height:calc(100vh - 300px);display:flex;align-items:center;justify-content:center;padding:34px 20px 64px;}
.pos-authcard{width:100%;max-width:410px;background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r-l);box-shadow:var(--pos-sh-2);padding:30px 28px;}
.pos-authcard h1{margin:0 0 4px;font-size:22px;letter-spacing:-.3px;color:var(--pos-ink);}
.pos-authcard .pos-sub{margin-bottom:20px;font-size:13px;}
.pos-authcard .pos-field{margin-bottom:14px;}
.pos-authalt{margin-top:14px;font-size:13px;color:var(--pos-ink-2);text-align:center;line-height:1.55;}
.pos-authalt + .pos-authalt{margin-top:10px;color:var(--pos-ink-2);font-size:12.5px;}
.pos-authalt a{color:var(--pos-green);font-weight:600;text-decoration:none;}
.pos-err{background:var(--pos-danger-soft);color:var(--pos-danger);border-radius:9px;padding:9px 13px;font-size:13px;margin-bottom:14px;display:none;}
.pos-err.on{display:block;}

.pos-dash-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;align-items:start;}
@media (max-width:900px){.pos-dash-grid{grid-template-columns:1fr;}}
.pos-proj-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--pos-line);border-radius:12px;background:var(--pos-surface);margin-bottom:10px;transition:all .15s;}
.pos-proj-item:hover{border-color:var(--pos-line-2);box-shadow:var(--pos-sh-1);}
.pos-proj-ic{width:38px;height:38px;border-radius:10px;background:var(--pos-green-soft);color:var(--pos-green);display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.pos-proj-ic--gold{background:var(--pos-gold-soft);color:var(--pos-gold-deep);}
.pos-proj-ic--blue{background:var(--pos-blue-soft);color:var(--pos-blue);}
.pos-proj-tt{flex:1;min-width:0;}
.pos-proj-tt b{display:block;font-size:14px;color:var(--pos-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pos-proj-tt span{font-size:11.5px;color:var(--pos-ink-3);}
.pos-price{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r-l);padding:26px;box-shadow:var(--pos-sh-1);display:flex;flex-direction:column;gap:14px;position:relative;}
.pos-price--hi{border-color:var(--pos-green);box-shadow:0 10px 34px rgba(10,92,57,.16);}
.pos-price--hi::after{content:"Рекомендуем";position:absolute;top:-11px;left:24px;background:var(--pos-green);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:4px 11px;border-radius:999px;}
.pos-price h3{margin:0;font-size:17px;color:var(--pos-ink);}
.pos-price .pos-pnum{font-family:var(--pos-mono);font-size:30px;font-weight:700;color:var(--pos-ink);letter-spacing:-1px;}
.pos-price .pos-pnum small{font-size:12px;color:var(--pos-ink-3);font-weight:400;letter-spacing:0;}
.pos-price ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--pos-ink-2);flex:1;}
.pos-price ul li{display:flex;gap:8px;align-items:flex-start;line-height:1.5;}
.pos-price ul li::before{content:"✓";color:var(--pos-green);font-weight:700;flex:none;}
.pos-newsitem{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--pos-line);text-decoration:none;color:inherit;align-items:baseline;}
.pos-newsitem:last-child{border-bottom:none;}
.pos-newsitem .pos-ndate{font-family:var(--pos-mono);font-size:11.5px;color:var(--pos-ink-3);flex:none;width:120px;}
.pos-newsitem h3{margin:0 0 4px;font-size:15.5px;color:var(--pos-ink);}
.pos-newsitem:hover h3{color:var(--pos-green);}
.pos-newsitem p{margin:0;font-size:13px;color:var(--pos-ink-2);line-height:1.6;}
.pos-wiz-stage{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r-l);box-shadow:var(--pos-sh-1);padding:26px;min-height:380px;}
.pos-archcard{border:1.5px solid var(--pos-line);border-radius:12px;padding:13px 15px;background:var(--pos-surface);cursor:pointer;transition:all .15s;font-size:12.5px;line-height:1.5;color:var(--pos-ink-2);}
.pos-archcard b{display:block;color:var(--pos-ink);font-size:13px;margin-bottom:3px;}
.pos-archcard small{color:var(--pos-ink-3);font-size:11px;}
.pos-archcard.on{border-color:var(--pos-green);background:var(--pos-green-soft);box-shadow:0 0 0 3px var(--pos-green-soft);}
.pos-archcard:hover{border-color:var(--pos-line-2);}
.pos-archcard.on:hover{border-color:var(--pos-green);}

/* ---------- 10. База типографики (страницы без старых css) ---------- */
body{margin:0;font-family:var(--pos-font);font-size:16px;line-height:1.6;color:var(--pos-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
button{font-family:var(--pos-font);}
input,textarea,select{font-family:var(--pos-font);}
:focus-visible{outline:2px solid var(--pos-green);outline-offset:2px;}

/* ---------- 10б. Библиотека методик (страница library) ---------- */
.lib-head .wrap,.lib-tools .wrap{max-width:1180px;margin:0 auto;padding:0 20px;}
.pband{background:var(--pos-navy-2);border-bottom:1px solid rgba(123,211,168,.14);}
.pband .pb-in{max-width:1180px;margin:0 auto;padding:10px 20px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.pband h1{margin:0;font-size:14px;font-weight:600;color:#EDF3FA;letter-spacing:.2px;}
.pband .pb-sub{font-size:11.5px;color:rgba(233,241,248,.55);font-family:var(--pos-mono);letter-spacing:.02em;}
.lib-head{padding:36px 0 4px;}
.lib-head h1{color:var(--pos-ink);font-size:27px;font-weight:750;letter-spacing:-.015em;margin:8px 0 10px;line-height:1.2;}
.lib-head .kicker{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--pos-green);font-weight:700;display:inline-flex;align-items:center;gap:8px;}
.lib-head .kicker::before{content:'';width:22px;height:2px;background:var(--pos-green);}
.lib-head p{max-width:780px;color:var(--pos-ink-2);font-size:14.5px;line-height:1.65;margin:0;}
.lib-tools{position:sticky;top:62px;z-index:60;background:var(--pos-bg);border-bottom:1px solid var(--pos-line);}
.lib-tools .wrap{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;}
.tabs{display:flex;gap:4px;background:var(--pos-surface-2);border:1px solid var(--pos-line);border-radius:11px;padding:4px;width:max-content;max-width:100%;}
.tabs button{border:none;background:transparent;color:var(--pos-ink-2);font-size:13px;font-weight:600;padding:7px 14px;border-radius:8px;cursor:pointer;font-family:var(--pos-font);transition:color .15s;}
.tabs button:hover{color:var(--pos-ink);}
.tabs button.on{background:var(--pos-surface);color:var(--pos-ink);box-shadow:var(--pos-sh-1);}
.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.chips button{border:1px solid var(--pos-line-2);background:var(--pos-surface);color:var(--pos-ink-2);border-radius:999px;padding:5px 12px;font:500 12.5px/1.3 var(--pos-font);cursor:pointer;transition:all .15s;}
.chips button:hover{border-color:var(--pos-green);color:var(--pos-green);}
.chips button.on{background:var(--pos-navy);border-color:var(--pos-navy);color:#fff;font-weight:600;}
html[data-theme="dark"] .chips button.on{background:var(--pos-navy-4);border-color:var(--pos-navy-4);}
.chips .cnt{font:500 10.5px/1 var(--pos-mono);color:var(--pos-ink-3);margin-left:4px;}
.chips button.on .cnt{color:rgba(255,255,255,.72);}
.libsearch{margin-left:auto;position:relative;}
.libsearch::before{content:'';position:absolute;left:11px;top:50%;width:14px;height:14px;transform:translateY(-50%);pointer-events:none;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A97A8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");}
.libsearch input{width:250px;padding:8px 12px 8px 33px;border:1px solid var(--pos-line-2);border-radius:10px;font:500 13.5px/1.3 var(--pos-font);background:var(--pos-surface);color:var(--pos-ink);outline:none;transition:all .15s;}
.libsearch input:focus{border-color:var(--pos-green);box-shadow:0 0 0 3px var(--pos-green-soft);}
.libsearch input::placeholder{color:var(--pos-ink-3);}
.libgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;padding:26px 0 56px;}
.noresult{background:var(--pos-surface);border:1.5px dashed var(--pos-line-2);border-radius:var(--pos-r-l);color:var(--pos-ink-2);padding:40px;text-align:center;margin:26px 0 56px;}
.libcard{background:var(--pos-surface);border:1px solid var(--pos-line);border-radius:var(--pos-r);box-shadow:var(--pos-sh-1);padding:18px;transition:all .18s;display:flex;flex-direction:column;gap:8px;scroll-margin-top:130px;}
.libcard:hover{box-shadow:var(--pos-sh-2);transform:translateY(-2px);border-color:var(--pos-line-2);}
.libcard h3{color:var(--pos-ink);font-size:16.5px;font-weight:650;letter-spacing:-.01em;margin:2px 0;line-height:1.3;}
.libcard .cat{font:600 10.5px/1.4 var(--pos-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--pos-ink-3);}
.libcard .ce{color:var(--pos-ink);font-size:13.5px;line-height:1.6;}
.libcard .idb{font:600 11px/1 var(--pos-mono);letter-spacing:.05em;padding:3px 8px;border-radius:6px;margin-right:8px;vertical-align:2px;background:var(--pos-surface-3);color:var(--pos-ink-2);white-space:nowrap;}
.idb.loss{background:var(--pos-danger-soft);color:var(--pos-danger);}
.idb.tool{background:var(--pos-blue-soft);color:var(--pos-blue);}
.idb.proc{background:var(--pos-green-soft);color:var(--pos-ok);}
.libcard details{border-top:1px dashed var(--pos-line);margin-top:auto;}
.libcard summary{cursor:pointer;list-style:none;padding:10px 2px 2px;font:600 12.5px/1.4 var(--pos-font);color:var(--pos-blue);}
.libcard summary::-webkit-details-marker{display:none;}
.libcard summary::before{content:'+';font:600 13px/1 var(--pos-mono);margin-right:6px;color:var(--pos-green);}
.libcard details[open] summary::before{content:'–';}
.libcard .dbody{color:var(--pos-ink-2);font-size:12.5px;line-height:1.65;padding:4px 2px 6px;}
.libcard .dbody ol{margin:6px 0;padding-left:20px;}
.libcard .dbody li{margin:4px 0;}
.libcard .dbody b{color:var(--pos-ink);}
.libcard .dbody p{margin:4px 0 8px;}
.libcard .src{border-left:3px solid var(--pos-green);background:var(--pos-green-soft);border-radius:0 8px 8px 0;padding:8px 12px;margin:8px 0;color:var(--pos-ink-2);font-size:12px;line-height:1.55;}
.libcard .rel{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0;}
.libcard .rel a{font:500 11px/1.3 var(--pos-font);padding:3px 9px;border-radius:999px;background:var(--pos-surface-2);border:1px solid var(--pos-line);color:var(--pos-ink-2);text-decoration:none;transition:all .15s;}
.libcard .rel a:hover{color:var(--pos-green);border-color:var(--pos-green);}
.libcard .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--pos-line);}
.libmeta{font:500 11px/1.4 var(--pos-mono);color:var(--pos-ink-3);}
.libcard .go{color:var(--pos-green);font-weight:600;font-size:12.5px;text-decoration:none;white-space:nowrap;}
.libcard .go::after{content:' \2192';}
.libcard .go:hover{text-decoration:underline;}
.limg{border-radius:10px;border:1px solid var(--pos-line);width:100%;background:#fff;}
@media(max-width:960px){
  .libsearch{margin-left:0;width:100%;}
  .libsearch input{width:100%;}
  .lib-tools{top:56px;}
  .lib-head h1{font-size:22px;}
  .libgrid{grid-template-columns:1fr;padding-top:18px;}
}

/* ---------- 11. Печать ---------- */
@media print{
  .pos-head,.pos-foot,.pos-thbtn,.pos-cta,.pos-burger{display:none !important;}
  .noprint{display:none !important;}
  body{background:#fff !important;}
}
/* ---------- 12. Скроллбар и выделение ---------- */
html[data-theme="dark"]{color-scheme:dark;}
::selection{background:rgba(123,211,168,.35);}

/* ===== 12. Мост legacy → Perf-OS (project.html / lss.html / suppliers.html) =====
   Тяжёлые страницы держат собственные :root-переменные. Селектор html[data-bridge]
   специфичнее :root и переопределяет эти переменные значениями токенов Perf-OS:
   единая палитра, IBM Plex и автоматическая тёмная тема — без правки разметки и логики. */
html[data-bridge]{
  --bg:var(--pos-bg); --bg-2:var(--pos-surface-2); --card:var(--pos-surface);
  --line:var(--pos-line); --line-2:var(--pos-line-2);
  --ink:var(--pos-ink); --ink-2:var(--pos-ink-2);
  --muted:var(--pos-ink-2); --muted-2:var(--pos-ink-3);
  --green:var(--pos-green); --green-soft:var(--pos-green-soft); --green-line:var(--pos-line-2); --green-ink:var(--pos-green);
  --blue:var(--pos-blue); --blue-soft:var(--pos-blue-soft); --blue-ink:var(--pos-blue);
  --ok:var(--pos-ok); --okbg:var(--pos-ok-soft);
  --bad:var(--pos-danger); --badbg:var(--pos-danger-soft);
  --red:var(--pos-danger); --red-soft:var(--pos-danger-soft);
  --warn:var(--pos-warn); --warnbg:var(--pos-warn-soft);
  --amber:var(--pos-warn); --amber-soft:var(--pos-warn-soft);
  --navy:var(--pos-navy); --navy-2:var(--pos-navy-2); --navy-3:var(--pos-navy-3);
  --violet:#7C3AED; --violet-soft:rgba(124,58,237,.12);
  --teal:#0E7490; --teal-soft:rgba(14,116,144,.12);
  --slate-soft:var(--pos-surface-2); --cat:var(--pos-surface-2);
  --shadow:var(--pos-sh-1); --shadow-lg:var(--pos-sh-2);
  --r:var(--pos-r); --r-sm:var(--pos-r-s);
  --sans:var(--pos-font); --mono:var(--pos-mono);
}
html[data-bridge] body{font-family:var(--pos-font);font-size:14px;line-height:1.5;}
/* заголовки: старые страницы задавали литеральные стеки — приводим к Plex */
html[data-bridge] h1,html[data-bridge] h2,html[data-bridge] h3,html[data-bridge] h4{font-family:var(--pos-font);}
/* sticky-офсеты внутренних панелей под новую шапку (62px) */
html[data-bridge] .pjh{top:62px;}
html[data-bridge] #pjnav,html[data-bridge] #pjaside{top:80px;}

/* --- бейдж повторения Академии (N карт ждут) --- */
.pos-acbadge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;margin-left:6px;border-radius:9px;background:var(--pos-green);color:var(--pos-bg);font-size:10.5px;font-weight:700;line-height:1;vertical-align:middle;flex:none;}
.pos-burger{position:relative;}
.pos-burger .pos-acbadge--dot{position:absolute;top:-5px;right:-5px;display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;margin:0;padding:0 4px;font-size:9.5px;font-weight:700;line-height:1;background:var(--pos-green);color:var(--pos-bg);box-shadow:0 0 0 2px var(--pos-navy);border:none;border-radius:9px;}
