  /* ---------- ROPtick brand font (Inter, self-hosted; CSP font-src 'self') ---------- */
  @font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/inter-600-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/inter-600-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/inter-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('/static/fonts/inter-800-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('/static/fonts/inter-800-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
  @font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('/static/fonts/inter-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

  :root{
    --bg:#f3f5f9; --card:#ffffff; --ink:#0f172a; --ink2:#5b6577; --muted:#97a2b4;
    --line:#eceef3; --line2:#f1f3f7;
    --accent:#4f46e5; --accent-soft:#eef2ff;
    --sky:#38bdf8; --amber:#f59e0b; --emerald:#10b981; --rose:#fb7185; --violet:#a78bfa; --violet-soft:#f3effe;
    --ok:#10b981; --ok-soft:#dcfce7; --warn:#f59e0b; --warn-soft:#fef3c7; --bad:#ef4444; --bad-soft:#fee2e2;
    --r:18px; --r-md:13px; --r-sm:10px;
    --sh:0 1px 2px rgba(16,24,40,.04), 0 6px 16px rgba(16,24,40,.05);
    --sh-sm:0 1px 2px rgba(16,24,40,.05);
    font-family: Inter, system-ui, sans-serif;
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;-webkit-font-smoothing:antialiased;}
  h1,h2,h3,h4,p{margin:0;}
  .num{font-variant-numeric:tabular-nums;}
  .meta{color:var(--muted);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;}

  /* ---------- shared shell ---------- */
  .app{display:grid;grid-template-columns:76px 1fr;min-height:100vh;}
  .content{min-width:0;}
  .screen{display:none;}
  .screen.active{display:block;}
  .rail{position:sticky;top:0;height:100vh;background:var(--card);border-right:1px solid var(--line);
        display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 0;}
  .logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:800;margin-bottom:14px;}
  .rail a{position:relative;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;color:var(--muted);font-size:18px;cursor:pointer;transition:.15s;}
  .rail a:hover{background:var(--line2);color:var(--ink2);}
  .rail a.active{background:var(--accent-soft);color:var(--accent);}
  .rail a .tip{position:absolute;left:calc(100% + 8px);white-space:nowrap;background:var(--ink);color:#fff;font-size:12px;padding:5px 9px;border-radius:7px;opacity:0;pointer-events:none;transition:.12s;z-index:20;}
  .rail a:hover .tip{opacity:1;}
  /* Юзер-меню внизу рейла: аватар (summary) + поповер по клику (CSS details, без JS). */
  .user-menu{margin-top:auto;position:relative;}
  .user-menu .uava{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
    background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:13px;cursor:pointer;list-style:none;}
  .user-menu .uava::-webkit-details-marker{display:none;}
  .user-menu .uava::marker{content:"";}
  .user-menu[open] .uava{box-shadow:0 0 0 2px var(--accent);}
  .user-menu .upop{position:absolute;left:calc(100% + 10px);bottom:0;background:var(--card);
    border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh);padding:12px 14px;min-width:190px;z-index:30;}
  .user-menu .upop .uname{font-weight:700;font-size:14px;color:var(--ink);}
  .user-menu .upop .urole{font-size:12px;color:var(--muted);margin-top:2px;margin-bottom:10px;}
  .user-menu .upop form{margin:0;border-top:1px solid var(--line);padding-top:10px;}
  .user-menu .upop button{display:flex;align-items:center;gap:7px;width:100%;background:transparent;border:0;
    color:var(--bad);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:4px 0;}
  .user-menu .upop button:hover{color:#dc2626;}
  .main{padding:22px clamp(16px,2.6vw,34px) 44px;min-width:0;}
  .utbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;}
  .search{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:9px 16px;color:var(--muted);width:min(340px,40vw);box-shadow:var(--sh-sm);}
  .ut-right{display:flex;align-items:center;gap:10px;}
  .ico-btn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);color:var(--ink2);cursor:pointer;box-shadow:var(--sh-sm);}
  .ico-btn:hover{border-color:var(--accent);color:var(--accent);}
  .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#38bdf8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;}
  @media(max-width:720px){
    .app{grid-template-columns:1fr;}
    .rail{position:static;height:auto;flex-direction:row;justify-content:start;overflow-x:auto;}
    .user-menu{margin-top:0;margin-left:auto;}
    .search{display:none;}
  }

  /* ============================================================ DESIGN SYSTEM
     Общие компоненты (один раз, без привязки к экрану). Язык — из прототипа.
     Страницы собираются из них + макросов components.html. */
  .ds .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);}
  .ds .section{margin-bottom:16px;}
  .ds .pad{padding:14px 18px 18px;}
  .ds .muted{color:var(--muted);}
  .ds .mini{color:var(--muted);font-size:12px;}
  .ds .empty{color:var(--muted);font-size:13px;padding:16px 18px;}
  .ds .form-err{color:var(--bad);font-size:13px;font-weight:600;padding:8px 18px 14px;}
  .ds .foot{color:var(--muted);font-size:12px;padding:10px 18px 16px;}
  .ds .dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--muted);}
  .ds .dot.bad{background:var(--bad);} .ds .dot.warn{background:var(--warn);} .ds .dot.ok{background:var(--ok);}
  .ds .info{position:relative;color:var(--muted);font-size:12px;cursor:help;margin-left:3px;outline:none;}
  .ds .info:hover,.ds .info:focus{color:var(--accent);}
  /* Кастомный тултип: мгновенный (без задержки браузера) и крупнее нативного title. */
  .ds .info::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
    white-space:normal;width:max-content;max-width:280px;background:var(--ink);color:#fff;font-size:13px;font-weight:500;
    line-height:1.4;text-align:left;letter-spacing:0;text-transform:none;padding:9px 12px;border-radius:9px;box-shadow:var(--sh);
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .06s;z-index:50;}
  .ds .info:hover::after,.ds .info:focus::after{opacity:1;visibility:visible;}
  .ds .tag{font-size:11px;font-weight:600;color:var(--ink2);background:var(--line2);border:1px solid var(--line);padding:3px 9px;border-radius:999px;white-space:nowrap;}
  /* greet / зона */
  .ds .greet{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
  .ds .greet h1{font-size:25px;letter-spacing:-.01em;margin-top:8px;}
  .ds .brand-logo{display:block;height:30px;width:auto;}
  .ds .greet .sub{color:var(--ink2);font-size:14px;margin-top:4px;}
  .ds .scope-badge{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px;}
  .ds .zone{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:26px 2px 14px;}
  /* сегмент-переключатель (один на все экраны) */
  .ds .seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;gap:3px;box-shadow:var(--sh-sm);}
  .ds .seg a,.ds .seg button{border:0;background:transparent;color:var(--ink2);padding:7px 15px;border-radius:9px;cursor:pointer;font:inherit;font-size:13.5px;text-decoration:none;}
  .ds .seg a.active,.ds .seg button.active{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 2px 6px rgba(79,70,229,.3);}
  /* KPI-плитка */
  .ds .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
  .ds .kpi{padding:18px;display:flex;flex-direction:column;gap:10px;}
  .ds .kpi .kh{display:flex;align-items:center;gap:9px;}
  .ds .kpi .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:16px;}
  .ds .kpi .lbl{color:var(--ink2);font-size:13px;}
  .ds .kpi .val{font-size:28px;font-weight:700;line-height:1;}
  .ds .kpi .val.muted{color:var(--muted);}
  .ds .kpi .dl{font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:14px;}
  .ds .d-up{color:var(--ok);} .ds .d-down{color:var(--bad);} .ds .flat{color:var(--muted);font-weight:500;}
  .ds .tint-indigo{background:var(--accent-soft);color:var(--accent);}
  .ds .tint-sky{background:#e0f2fe;color:#0284c7;}
  .ds .tint-amber{background:#fef3c7;color:#b45309;}
  .ds .tint-rose{background:#ffe4e6;color:#e11d48;}
  .ds .tint-emerald{background:var(--ok-soft);color:#047857;}
  /* под-ряды KPI (Деньги / Эффективность) + раскладки 3 и 1 плитка */
  .ds .subrow{display:flex;align-items:center;gap:10px;margin:18px 2px 10px;}
  .ds .subrow .srlbl{font-size:13px;font-weight:700;color:var(--ink);}
  .ds .kpis-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:6px;}
  .ds .kpis-1{display:grid;grid-template-columns:minmax(240px,340px);gap:16px;margin:6px 0 16px;}
  /* равные плитки в под-рядах: одинаковая высота, контент распределён по высоте */
  .ds .kpis-3 .kpi,.ds .kpis-1 .kpi{min-height:152px;justify-content:space-between;gap:6px;}
  @media(max-width:1180px){ .ds .kpis-3{grid-template-columns:repeat(3,1fr);} }
  @media(max-width:720px){ .ds .kpis-3{grid-template-columns:1fr;} .ds .kpis-1{grid-template-columns:1fr;} }
  /* компактный спарклайн в KPI-плитке (прижат к низу) */
  .ds .chart-spark{display:block;margin-top:6px;}
  /* источники: стэк-бар долей + легенда с двумя числами */
  .ds .stack{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line2);margin-bottom:14px;}
  .ds .stack .seg-bar{height:100%;}
  .ds .src-legend .src-nums{display:flex;align-items:center;gap:14px;}
  .ds .src-legend .rev{color:var(--ink2);font-weight:600;min-width:90px;text-align:right;}
  /* шапки карточек */
  .ds .ch-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 0;}
  .ds .ch-head h2{font-size:16px;}
  .ds .ch-head .mini{color:var(--muted);font-size:12px;margin-top:3px;}
  .ds .mh{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line2);}
  .ds .mh h2{font-size:16px;}
  /* таблица */
  .ds table{width:100%;border-collapse:collapse;}
  .ds th,.ds td{text-align:left;padding:13px 18px;font-size:13.5px;border-bottom:1px solid var(--line2);}
  .ds th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;}
  .ds td.r,.ds th.r{text-align:right;}
  .ds tr:last-child td{border-bottom:0;}
  .ds .who{display:flex;align-items:center;gap:11px;}
  .ds .ava{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700;}
  .ds .mpill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;}
  .ds .mpill.bad{background:var(--bad-soft);color:#dc2626;} .ds .mpill.ok{background:var(--ok-soft);color:#16a34a;} .ds .mpill.warn{background:var(--warn-soft);color:#b45309;}
  .ds .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;}
  .ds .pill.ok{background:var(--ok-soft);color:#16a34a;}
  /* бар-строка (воронка/причины/застой — один компонент) */
  .ds .bars{display:flex;flex-direction:column;gap:10px;}
  .ds .bar-row .bl{display:flex;justify-content:space-between;font-size:13px;color:var(--ink2);margin-bottom:4px;}
  .ds .bar-row .bname{font-weight:600;}
  .ds .btrack{height:12px;background:var(--line2);border-radius:7px;overflow:hidden;}
  .ds .bfill{height:100%;border-radius:7px;background:linear-gradient(90deg,#818cf8,#6366f1);}
  .ds .bfill.won{background:linear-gradient(90deg,#34d399,#10b981);}
  .ds .bfill.bad{background:var(--rose);}
  .ds .bfill.hot{background:var(--bad);}
  /* легенда (донат/источники) */
  .ds .legend{display:grid;gap:9px;flex:1;}
  .ds .lg{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink2);}
  .ds .lg .l{display:flex;align-items:center;gap:8px;}
  /* графики */
  .ds .donut-wrap{display:flex;align-items:center;gap:18px;padding:6px 18px 18px;}
  .ds .chart-donut .donut-total{font-size:20px;font-weight:800;fill:var(--ink);}
  .ds .chart-donut .donut-cap{font-size:10px;fill:var(--muted);}
  .ds .chart-line{padding:8px 6px 0;}
  .ds .chart-bars{padding:8px 6px 0;display:block;}
  .ds .chart-bars .bar{fill:var(--accent);opacity:.8;}
  .ds .chart-bars .bar.is-max{opacity:1;}
  .ds .lc-grid line{stroke:var(--line);stroke-width:1;}
  .ds .lc-line{stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
  .ds .lc-dot{fill:var(--accent);stroke:#fff;stroke-width:2;}
  .ds .lc-axis text{fill:var(--muted);font-size:11px;}
  .ds .lc-stop-0{stop-color:var(--accent);stop-opacity:.22;}
  .ds .lc-stop-1{stop-color:var(--accent);stop-opacity:0;}
  /* раскладка */
  .ds .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  @media(max-width:1180px){ .ds .kpis{grid-template-columns:repeat(2,1fr);} .ds .grid-2{grid-template-columns:1fr;} }
  @media(max-width:720px){ .ds .kpis{grid-template-columns:1fr;} }


  /* ============================================================ HOME (специфика поверх .ds) */
  #s-home .ctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  #s-home .mpick{display:inline-flex;gap:4px;}
  #s-home .mpick select,#s-home .mpick button{border:1px solid var(--line);border-radius:10px;padding:7px 11px;font:inherit;font-size:13px;color:var(--ink2);background:var(--card);}
  #s-home .mpick button{cursor:pointer;}
  #s-home .mpick button:hover{border-color:var(--accent);color:var(--accent);}
  #s-home .upd{color:var(--muted);font-size:12px;}
  #s-home .mlbl{color:var(--muted);font-size:12px;font-weight:600;margin-left:4px;}
  /* строка-разделитель с селектором периода (управляет нижними виджетами) */
  #s-home .period-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);padding:12px 16px;margin:18px 0 16px;}
  #s-home .period-bar .pb-left{display:flex;flex-direction:column;gap:2px;}
  #s-home .period-bar .pb-lbl{font-size:13px;font-weight:700;color:var(--ink);}
  #s-home .period-bar .pb-hint{font-size:11.5px;color:var(--muted);}
  #s-home .period-bar .pb-ctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  #s-home .aside-stat{font-size:13px;color:var(--ink2);padding:12px 18px 16px;display:flex;align-items:center;gap:8px;}
  #s-home .attn{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:16px 18px;}
  #s-home .attn-i{display:flex;flex-direction:column;gap:6px;text-decoration:none;}
  #s-home .attn-i .an{font-size:26px;font-weight:800;color:var(--ink);}
  #s-home .attn-i .al{font-size:12.5px;color:var(--ink2);display:flex;align-items:center;gap:7px;}
  #s-home .stall{display:flex;align-items:center;gap:10px;}
  #s-home .stall .btrack{flex:1;}
  #s-home .sd{font-size:13px;color:var(--ink2);} #s-home .sd.hot{color:var(--bad);font-weight:600;}
  #s-home .en{background:var(--warn-soft);border-color:#fde68a;}
  #s-home .en .en-num .val{font-size:26px;font-weight:700;}
  #s-home .en .en-fact{margin-top:6px;font-size:14px;font-weight:600;color:#b45309;}
  @media(max-width:720px){ #s-home .attn{grid-template-columns:1fr;} }

  /* ===================================== DASHBOARDS (Продажи + Исследовать) — на .ds */
  /* таб-бар (общий компонент .ds-экранов) */
  .ds .tabs{display:inline-flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;box-shadow:var(--sh-sm);margin-bottom:16px;}
  .ds .tabs a{padding:8px 16px;border-radius:9px;color:var(--ink2);font-size:14px;text-decoration:none;}
  .ds .tabs a.active{background:var(--accent);color:#fff;font-weight:600;}
  /* sem-пилюли — варианты .tag */
  .ds .tag.cohort{color:var(--violet);background:var(--violet-soft);}
  .ds .tag.flow{color:#0369a1;background:#e0f2fe;}
  /* общее по дашбордам (вьюхи/числа/таблица/шапки разрезов) */
  #s-dash .dview{display:none;} #s-dash .dview.active{display:block;}
  #s-dash .delta{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;}
  #s-dash .nodata{color:var(--muted);}
  #s-dash th:not(:first-child),#s-dash td:not(:first-child){text-align:right;}
  #s-dash tbody tr:hover{background:#fafbff;}
  #s-dash .ph{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line2);}
  #s-dash .ph h2{font-size:15px;display:flex;align-items:center;gap:8px;}
  #s-dash .ph .mini{color:var(--muted);font-size:12px;margin-top:4px;}
  #s-dash .ph .lnk{color:var(--accent);font-size:12.5px;font-weight:600;white-space:nowrap;text-decoration:none;}
  #s-dash .bd-foot{padding:10px 18px 14px;color:var(--muted);font-size:11.5px;}

  /* ---- SALES (#d-sales) ---- */
  #d-sales.hide-delta .delta{display:none !important;}
  #d-sales .ctxbar{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:12px 16px;margin-bottom:8px;}
  #d-sales .ctxbar .ctl{display:flex;align-items:center;gap:9px;}
  #d-sales .ctxbar .lab{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
  #d-sales .ctxbar input[type=date],#d-sales .ctxbar select{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;color:var(--ink);background:#fff;}
  #d-sales .ctxbar .sep{width:1px;align-self:stretch;background:var(--line);}
  #d-sales .ctxbar .fbtn{border:1px solid var(--line);border-radius:999px;padding:7px 13px;background:#fff;color:var(--ink2);font-size:13px;}
  #d-sales .ctxbar .ctx-right{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
  #d-sales .ctx-note{color:var(--muted);font-size:12px;margin:0 2px 18px;}
  #d-sales .kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;margin-bottom:14px;}
  #d-sales .mk{padding:14px 15px;}
  #d-sales .mk .lbl{color:var(--ink2);font-size:12px;}
  #d-sales .mk .val{font-size:24px;font-weight:700;margin-top:6px;line-height:1;}
  #d-sales .mk .cmp{margin-top:7px;display:flex;align-items:center;gap:6px;}
  #d-sales .mk .cmp .base{color:var(--muted);font-size:10.5px;}
  #d-sales .mk.sleep{background:repeating-linear-gradient(135deg,#fff,#fff 8px,#fbfcfe 8px,#fbfcfe 16px);}
  #d-sales .mk.sleep .val{color:var(--muted);}
  #d-sales .mk.sleep .miss{color:var(--muted);font-size:11px;margin-top:7px;}
  #d-sales .actstrip{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:12px 16px;margin-bottom:14px;}
  #d-sales .actstrip .alabel{font-size:13px;color:var(--ink2);}
  #d-sales .actstrip .ai{display:flex;align-items:center;gap:10px;}
  #d-sales .actstrip .ai .v{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;}
  #d-sales .actstrip .ai .l{color:var(--ink2);font-size:13px;}
  #d-sales .row{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin-bottom:14px;}
  #d-sales .lr{display:grid;gap:10px;padding:15px 18px;}
  #d-sales .lrow{display:grid;grid-template-columns:150px 1fr 60px;gap:12px;align-items:center;}
  #d-sales .lrow .ln{font-size:13px;color:var(--ink2);}
  #d-sales .lrow .lbar{height:22px;border-radius:6px;background:#fecdd3;}
  #d-sales .lrow .lv{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink2);}

  /* ---- EXPLORE (#d-explore) ---- */
  #d-explore .builder{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;padding:16px;margin-bottom:14px;}
  #d-explore .qf{display:flex;flex-direction:column;gap:6px;}
  #d-explore .qf .l{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
  #d-explore select{appearance:none;border:1px solid var(--line);border-radius:10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2397a2b4' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;padding:9px 30px 9px 12px;font:inherit;font-size:13.5px;color:var(--ink);cursor:pointer;min-width:170px;}
  #d-explore select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
  #d-explore .qf.metric select{min-width:230px;font-weight:600;}
  #d-explore .sep{width:1px;align-self:stretch;background:var(--line);margin:2px 0;}
  #d-explore .date-range{display:flex;align-items:center;gap:8px;}
  #d-explore .date-in{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;color:var(--ink);}
  #d-explore .crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;min-height:20px;}
  #d-explore .crumbs .lbl{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
  #d-explore .crumb{display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent);border:1px solid #dfe3fb;border-radius:999px;padding:5px 11px;font-size:13px;font-weight:600;}
  #d-explore .crumb .x{opacity:.7;text-decoration:none;color:inherit;} #d-explore .crumb .x:hover{opacity:1;}
  #d-explore .crumbs .empty{color:var(--muted);font-size:12.5px;}
  #d-explore .result-h{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line2);flex-wrap:wrap;}
  #d-explore .cap{font-size:15px;font-weight:600;}
  #d-explore .view-toggle{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px;}
  #d-explore .view-toggle a{padding:7px 13px;border-radius:8px;font-size:12.5px;text-decoration:none;color:var(--ink2);}
  #d-explore .view-toggle a.active{background:var(--ink);color:#fff;font-weight:600;}
  #d-explore .rbody{padding:6px 4px 12px;}
  #d-explore .bignum{padding:24px 18px;font-size:30px;font-weight:700;line-height:1;}
  #d-explore .rowlink{display:inline-flex;align-items:center;gap:8px;color:var(--ink);border-bottom:1px dashed transparent;text-decoration:none;}
  #d-explore .rowlink:hover{color:var(--accent);border-bottom-color:var(--accent);}
  #d-explore .rowlink .di{font-size:11px;color:var(--muted);}
  #d-explore .total-row td{font-weight:700;background:#fafbfd;border-top:1px solid var(--line);}
  #d-explore .chart{padding:18px;display:grid;gap:12px;}
  #d-explore .crow{display:grid;grid-template-columns:160px 1fr 70px;gap:12px;align-items:center;}
  #d-explore .crow .cn{font-size:13px;color:var(--ink2);}
  #d-explore .cbar{height:26px;border-radius:7px;background:linear-gradient(90deg,var(--accent),#7c83f0);}
  #d-explore .crow .cv{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;}
  @media(max-width:1180px){ #d-sales .kpis{grid-template-columns:repeat(3,1fr);} #d-sales .row{grid-template-columns:1fr;} }
  @media(max-width:720px){ #d-sales .kpis{grid-template-columns:1fr 1fr;} }

  /* ===================================== ALERTS — на .ds (шапка → .greet) */
  #s-alerts .d-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
  #s-alerts .rule-id{font-size:11.5px;font-weight:600;color:var(--muted);}
  #s-alerts .ok-note{color:var(--ok);font-weight:600;}
  #s-alerts .muted-note{color:var(--muted);font-weight:600;}
  #s-alerts .md{display:grid;grid-template-columns:390px 1fr;gap:16px;align-items:start;}
  #s-alerts .list-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;}
  #s-alerts .filters{display:flex;gap:6px;flex-wrap:wrap;padding:14px 14px 10px;border-bottom:1px solid var(--line2);}
  #s-alerts .fchip{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink2);font-size:12.5px;cursor:pointer;}
  #s-alerts .fchip.active{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600;}
  #s-alerts .list{max-height:74vh;overflow:auto;}
  #s-alerts .ai-item{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:start;padding:13px 15px;border-bottom:1px solid var(--line2);cursor:pointer;transition:.12s;}
  #s-alerts .ai-item:hover{background:#fafbff;}
  #s-alerts .ai-item.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);}
  #s-alerts .sev{width:9px;height:9px;border-radius:50%;margin-top:6px;}
  #s-alerts .sev.crit{background:var(--bad);} #s-alerts .sev.warn{background:var(--warn);} #s-alerts .sev.info{background:var(--accent);} #s-alerts .sev.res{background:var(--ok);}
  #s-alerts .ai-item .ti{font-size:13.7px;font-weight:600;line-height:1.3;}
  #s-alerts .ai-item .mt{color:var(--muted);font-size:12px;margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;}
  #s-alerts .ai-item .age{color:var(--muted);font-size:11.5px;white-space:nowrap;}
  #s-alerts .spark{display:inline-flex;align-items:center;gap:4px;color:var(--violet);font-size:11px;font-weight:700;background:var(--violet-soft);border-radius:999px;padding:2px 7px;margin-top:4px;}
  #s-alerts .res-tag{color:var(--ok);font-weight:700;}
  #s-alerts .detail{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:22px 24px;min-height:74vh;}
  #s-alerts .d-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;}
  #s-alerts .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;}
  #s-alerts .pill.crit{background:var(--bad-soft);color:var(--bad);} #s-alerts .pill.warn{background:var(--warn-soft);color:#b45309;} #s-alerts .pill.info{background:var(--accent-soft);color:var(--accent);} #s-alerts .pill.res{background:var(--ok-soft);color:#16a34a;}
  #s-alerts .lvl{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--ink2);background:var(--line2);border-radius:6px;padding:3px 8px;}
  #s-alerts .d-title{font-size:20px;margin:14px 0 4px;letter-spacing:-.01em;}
  #s-alerts .d-ent{color:var(--ink2);font-size:13.5px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
  #s-alerts .d-ent a{color:var(--accent);font-weight:600;cursor:pointer;}
  #s-alerts .block{margin-top:20px;}
  #s-alerts .block>.bh{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}
  #s-alerts .fact{background:#fafbfd;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.55;}
  #s-alerts .insight{border:1px solid #ddd6fe;border-radius:14px;background:linear-gradient(180deg,#faf8ff,#fff);padding:16px 18px;}
  #s-alerts .insight .ih{display:flex;align-items:center;gap:9px;margin-bottom:10px;}
  #s-alerts .insight .ih .ai{display:inline-flex;align-items:center;gap:6px;color:var(--violet);font-weight:800;font-size:13px;}
  #s-alerts .insight .ih .ai .b{width:22px;height:22px;border-radius:7px;background:var(--violet);color:#fff;display:grid;place-items:center;font-size:12px;}
  #s-alerts .conf{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 10px;}
  #s-alerts .conf.med{background:var(--warn-soft);color:#b45309;} #s-alerts .conf.high{background:var(--ok-soft);color:#16a34a;} #s-alerts .conf.low{background:var(--line2);color:var(--ink2);}
  #s-alerts .insight p.body{font-size:14px;line-height:1.6;color:var(--ink);}
  #s-alerts .hyp{margin-top:12px;}
  #s-alerts .hyp .hh{font-size:12.5px;font-weight:700;color:var(--ink2);margin-bottom:6px;}
  #s-alerts .hyp ol{margin:0;padding-left:20px;color:var(--ink);font-size:13.5px;line-height:1.7;}
  #s-alerts .ev{display:grid;gap:7px;}
  #s-alerts .ev .e{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink2);background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;}
  #s-alerts .ev .e .k{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;color:var(--muted);background:var(--line2);border-radius:5px;padding:2px 6px;}
  #s-alerts .acts{display:grid;gap:8px;}
  #s-alerts .act{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:13.5px;}
  #s-alerts .act .ck{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);flex:none;}
  #s-alerts .act .vf{margin-left:auto;font-size:10.5px;color:var(--ok);font-weight:700;background:var(--ok-soft);border-radius:999px;padding:2px 8px;}
  #s-alerts .fb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:22px;padding-top:16px;border-top:1px solid var(--line2);}
  #s-alerts .fb button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 14px;cursor:pointer;font:inherit;font-size:13.5px;color:var(--ink2);}
  #s-alerts .fb button:hover{border-color:var(--accent);color:var(--accent);}
  #s-alerts .fb .tags{margin-left:auto;color:var(--accent);font-size:11.5px;}
  #s-alerts .note-tpl{color:var(--muted);font-size:13px;background:var(--line2);border-radius:10px;padding:12px 14px;}
  @media(max-width:1000px){ #s-alerts .md{grid-template-columns:1fr;} #s-alerts .list{max-height:300px;} #s-alerts .detail{min-height:0;} }
  /* dashboard-only дополнения к ленте алертов (нет в статичном прототипе) */
  #s-alerts .filters-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm);padding:12px 14px;margin-bottom:16px;}
  #s-alerts .filters-bar label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted);font-weight:600;}
  #s-alerts .filters-bar select,#s-alerts .filters-bar input{border:1px solid var(--line);border-radius:9px;padding:7px 10px;font:inherit;font-size:13px;color:var(--ink);background:#fff;}
  #s-alerts .filters-bar button{align-self:end;border:0;background:var(--accent);color:#fff;border-radius:9px;padding:8px 16px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;}
  #s-alerts .ai-main{min-width:0;cursor:pointer;}
  #s-alerts .ai-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
  #s-alerts .tune-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:2px 7px;color:var(--muted);cursor:pointer;font-size:13px;}
  #s-alerts .tune-btn:hover{border-color:var(--accent);color:var(--accent);}
  #s-alerts .tune-notice{background:var(--ok-soft);color:#16a34a;border-radius:10px;padding:10px 13px;font-size:13px;margin:12px;}
  #s-alerts .list-empty{color:var(--muted);font-size:13.5px;text-align:center;padding:30px 16px;}
  #s-alerts .fb form button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 14px;cursor:pointer;font:inherit;font-size:13.5px;color:var(--ink2);}
  #s-alerts .fb form button:hover{border-color:var(--accent);color:var(--accent);}

  /* shared controls for settings-like screens (params/digests/builder) */
  .btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 16px;background:var(--card);color:var(--ink);cursor:pointer;font:inherit;font-size:14px;box-shadow:var(--sh-sm);}
  .btn:hover{border-color:var(--accent);}
  .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(79,70,229,.28);}
  .btn-ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--accent);}
  .btn.danger{color:var(--bad);}
  .btn.danger:hover{border-color:var(--bad);}
  .btn.sm{padding:5px 10px;font-size:12.5px;border-radius:8px;box-shadow:none;}

  /* ===================================== BOARDS — витрина и борд (на .ds) */
  #s-dash .board-list{margin-top:4px;}
  #s-dash .brow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;margin-bottom:12px;text-decoration:none;color:inherit;}
  #s-dash .brow:hover{border-color:var(--accent);}
  #s-dash .brow .bname{font-weight:600;font-size:15px;max-width:60ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #s-dash .brow .bmeta{color:var(--muted);font-size:12.5px;margin-top:2px;}
  #s-dash .brow .chev{color:var(--muted);font-size:18px;}
  /* виджет-плитка: KPI + компактные контролы под ней */
  #s-dash .wslot{display:flex;flex-direction:column;gap:8px;}
  #s-dash .wslot .kpi{flex:1;}
  #s-dash .wctl{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap;}
  #s-dash .wctl form{display:flex;gap:6px;margin:0;}
  #s-dash .card > .wctl{padding:0 18px 14px;}
  /* настройки борда */
  /* .bset — общий ряд форм в карточке (настройки борда, сохранение из Конструктора) */
  .ds .bset{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 18px 18px;}
  .ds .bset form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0;}
  .ds .bset input,.ds .bset select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:inherit;font-size:14px;background:#fff;color:var(--ink);}

  /* ===================================== PARAMS — на .ds (шапка → .greet) */
  #s-params .ed-note.err{color:var(--bad);}
  #s-params .summary{display:flex;gap:22px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:14px 20px;margin-bottom:22px;}
  #s-params .summary .s{display:flex;flex-direction:column;}
  #s-params .summary .s b{font-size:20px;}
  #s-params .summary .s span{color:var(--muted);font-size:12px;}
  #s-params .summary .vline{width:1px;background:var(--line);}
  #s-params .group{margin-bottom:26px;}
  #s-params .group-h{display:flex;align-items:center;gap:10px;margin:0 2px 12px;}
  #s-params .group-h .gi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:15px;}
  #s-params .group-h h2{font-size:15px;}
  #s-params .group-h .cnt{color:var(--muted);font-size:12px;}
  #s-params .param{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm);margin-bottom:10px;overflow:hidden;}
  #s-params .param.off{opacity:.62;}
  #s-params .prow{display:grid;grid-template-columns:44px 1.7fr 1.5fr auto;gap:16px;align-items:center;padding:14px 18px;}
  #s-params .sw{width:40px;height:23px;border-radius:999px;background:#d7dbe4;position:relative;cursor:pointer;flex:none;transition:.15s;}
  #s-params .sw::after{content:"";position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:.15s;}
  #s-params .sw[aria-pressed="true"]{background:var(--accent);}
  #s-params .sw[aria-pressed="true"]::after{left:19.5px;}
  #s-params .pname{font-weight:600;font-size:14.5px;}
  #s-params .pdesc{color:var(--muted);font-size:12.5px;margin-top:2px;}
  #s-params .norm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  #s-params .nchip{display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;}
  #s-params .nchip.muted{background:var(--line2);color:var(--ink2);}
  #s-params .nmeta{color:var(--muted);font-size:12px;}
  #s-params .pactions{display:flex;align-items:center;gap:6px;justify-self:end;}
  #s-params .ib{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;color:var(--ink2);cursor:pointer;}
  #s-params .ib:hover{border-color:var(--accent);color:var(--accent);}
  #s-params .editor{border-top:1px dashed var(--line);background:linear-gradient(180deg,#fbfcfe,#fff);padding:18px 18px 18px 78px;display:grid;gap:16px;}
  #s-params .ed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;}
  #s-params .field{display:flex;flex-direction:column;gap:7px;}
  #s-params .field label,#s-params .blk-h{font-size:12px;color:var(--ink2);font-weight:600;}
  #s-params .seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px;width:fit-content;}
  #s-params .seg button{border:0;background:transparent;color:var(--ink2);padding:6px 12px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;}
  #s-params .seg button.active{background:var(--accent);color:#fff;font-weight:600;}
  #s-params .thr{display:flex;align-items:center;gap:10px;}
  #s-params .thr .tag{font-size:12px;font-weight:600;width:96px;}
  #s-params .thr .tag.warn{color:var(--warn);} #s-params .thr .tag.crit{color:var(--bad);}
  #s-params .inp{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff;}
  #s-params .inp input{border:0;outline:0;padding:8px 10px;width:64px;font:inherit;}
  #s-params .inp .unit{padding:8px 10px;background:var(--line2);color:var(--ink2);font-size:13px;border-left:1px solid var(--line);}
  #s-params .chips{display:flex;gap:7px;flex-wrap:wrap;}
  #s-params .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink2);font-size:13px;cursor:pointer;user-select:none;}
  #s-params .chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600;}
  #s-params .ed-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line2);padding-top:14px;}
  #s-params .ed-note{color:var(--muted);font-size:12px;max-width:60ch;}
  #s-params .ed-btns{display:flex;gap:8px;}
  @media(max-width:980px){ #s-params .prow{grid-template-columns:44px 1fr;grid-row-gap:8px;} #s-params .prow .norm{grid-column:2;} #s-params .pactions{grid-column:2;justify-self:start;} #s-params .ed-grid{grid-template-columns:1fr;} #s-params .editor{padding-left:18px;} }

  /* ===================================== DIGESTS — на .ds (шапка → .greet) */
  #s-digests .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm);margin-bottom:12px;overflow:hidden;}
  #s-digests .card.off{opacity:.62;}
  #s-digests .drow{display:grid;grid-template-columns:44px 1.5fr 1fr 1fr auto;gap:16px;align-items:center;padding:15px 18px;}
  #s-digests .sw{width:40px;height:23px;border-radius:999px;background:#d7dbe4;position:relative;cursor:pointer;flex:none;transition:.15s;}
  #s-digests .sw::after{content:"";position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:.15s;}
  #s-digests .sw[aria-pressed="true"]{background:var(--accent);}
  #s-digests .sw[aria-pressed="true"]::after{left:19.5px;}
  #s-digests .dname{font-weight:600;font-size:15px;}
  #s-digests .ddesc{color:var(--muted);font-size:12.5px;margin-top:2px;}
  #s-digests .kv{display:flex;flex-direction:column;gap:3px;}
  #s-digests .kv .k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.03em;font-weight:700;}
  #s-digests .kv .v{font-size:13.5px;color:var(--ink);}
  #s-digests .dactions{display:flex;align-items:center;gap:6px;justify-self:end;}
  #s-digests .ib{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;color:var(--ink2);cursor:pointer;}
  #s-digests .ib:hover{border-color:var(--accent);color:var(--accent);}
  #s-digests .editor{border-top:1px dashed var(--line);background:linear-gradient(180deg,#fbfcfe,#fff);display:grid;grid-template-columns:1fr 360px;}
  #s-digests .ed-config{padding:18px 18px 18px 78px;display:grid;gap:20px;}
  #s-digests .ed-preview{border-left:1px solid var(--line);padding:18px;background:#f6f8fc;}
  #s-digests .blk-h{font-size:12px;color:var(--ink2);font-weight:700;text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:9px;}
  #s-digests .blocks{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  #s-digests .blk{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;cursor:pointer;font-size:13.5px;}
  #s-digests .blk input{width:16px;height:16px;accent-color:var(--accent);}
  #s-digests .blk .lead-only{margin-left:auto;font-size:10.5px;color:var(--violet);background:#f3effe;border-radius:999px;padding:2px 7px;font-weight:700;}
  #s-digests .chips{display:flex;gap:7px;flex-wrap:wrap;}
  #s-digests .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink2);font-size:13px;cursor:pointer;user-select:none;}
  #s-digests .chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600;}
  #s-digests .chip.add{border-style:dashed;color:var(--accent);}
  #s-digests .seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px;width:fit-content;}
  #s-digests .seg button{border:0;background:transparent;color:var(--ink2);padding:7px 14px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;}
  #s-digests .seg button.active{background:var(--accent);color:#fff;font-weight:600;}
  #s-digests .sched-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;}
  #s-digests .days{display:flex;gap:6px;}
  #s-digests .day{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink2);display:grid;place-items:center;font-size:12.5px;cursor:pointer;}
  #s-digests .day[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;}
  #s-digests .inp{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff;}
  #s-digests .inp input{border:0;outline:0;padding:8px 10px;width:70px;font:inherit;}
  #s-digests .inp .unit{padding:8px 10px;background:var(--line2);color:var(--ink2);font-size:13px;border-left:1px solid var(--line);}
  #s-digests .ed-foot{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line2);padding:14px 18px 18px 78px;}
  #s-digests .ed-note{color:var(--muted);font-size:12px;max-width:54ch;}
  #s-digests .ed-btns{display:flex;gap:8px;}
  #s-digests .pv-h{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--ink2);font-size:12px;font-weight:600;}
  #s-digests .pv-h .tg{width:22px;height:22px;border-radius:6px;background:#2aabee;color:#fff;display:grid;place-items:center;font-size:12px;}
  #s-digests .bubble{background:#fff;border:1px solid var(--line);border-radius:4px 16px 16px 16px;padding:14px;box-shadow:var(--sh-sm);font-size:13px;line-height:1.5;}
  #s-digests .bubble h4{margin:0 0 8px;font-size:14px;}
  #s-digests .b-sec{margin-top:10px;}
  #s-digests .b-sec .t{font-weight:700;font-size:12px;color:var(--ink2);}
  #s-digests .bubble ul{margin:4px 0 0;padding-left:18px;color:var(--ink2);}
  #s-digests .b-tags{margin-top:10px;color:var(--accent);font-size:11.5px;}
  #s-digests .pv-meta{margin-top:10px;color:var(--muted);font-size:11.5px;text-align:center;}
  @media(max-width:1080px){ #s-digests .editor{grid-template-columns:1fr;} #s-digests .ed-preview{border-left:0;border-top:1px solid var(--line);} #s-digests .ed-config,#s-digests .ed-foot{padding-left:18px;} #s-digests .blocks{grid-template-columns:1fr;} }
  @media(max-width:980px){ #s-digests .drow{grid-template-columns:44px 1fr;grid-row-gap:10px;} #s-digests .drow .kv,#s-digests .dactions{grid-column:2;} }

  /* ===================================== BUILDER — на .ds (шапка → .greet) */
  #s-builder .ed-note{color:var(--muted);font-size:12px;}
  #s-builder .ed-note.err{color:var(--bad);font-size:13px;margin-bottom:12px;}
  #s-builder .formfoot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px;}
  #s-builder .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);}
  #s-builder .sec{padding:18px 20px;margin-bottom:16px;}
  #s-builder .sec-h{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
  #s-builder .sec-h .n{width:24px;height:24px;border-radius:7px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:800;}
  #s-builder .sec-h h2{font-size:15px;}
  #s-builder .sec-h .hint{color:var(--muted);font-size:12.5px;margin-left:auto;}
  #s-builder .input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font:inherit;outline:0;background:#fff;}
  #s-builder .input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
  #s-builder .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  #s-builder .compose{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  #s-builder .col-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  #s-builder .col-h .t{font-size:12px;color:var(--ink2);font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
  #s-builder .col-h .c{font-size:12px;color:var(--muted);}
  #s-builder .pal{border:1px solid var(--line);border-radius:12px;background:#fbfcfe;padding:10px;max-height:430px;overflow:auto;}
  #s-builder .pal-group{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:10px 6px 6px;}
  #s-builder .pal-group:first-child{margin-top:2px;}
  #s-builder .pal-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:7px;}
  #s-builder .pal-item .ti{font-size:13.5px;font-weight:500;}
  #s-builder .pal-item .ds{font-size:11.5px;color:var(--muted);}
  #s-builder .pal-item .badge{font-size:10px;color:var(--violet);background:#f3effe;border-radius:999px;padding:2px 7px;font-weight:700;}
  #s-builder .pal-item .add{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--accent);cursor:pointer;font-size:16px;flex:none;}
  #s-builder .pal-item .add:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
  #s-builder .pal-item.in{opacity:.45;}
  #s-builder .pal-item.in .add{color:var(--ok);cursor:default;}
  #s-builder .sel{border:1px dashed var(--line);border-radius:12px;background:#fff;padding:10px;min-height:430px;}
  #s-builder .sel.empty{display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center;}
  #s-builder .sel-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-bottom:8px;box-shadow:var(--sh-sm);}
  #s-builder .sel-item .grip{color:var(--muted);cursor:grab;font-size:14px;}
  #s-builder .sel-item .ti{font-size:13.5px;font-weight:500;flex:1;}
  #s-builder .sel-item .badge{font-size:10px;color:var(--violet);background:#f3effe;border-radius:999px;padding:2px 7px;font-weight:700;}
  #s-builder .sel-item .ord{display:flex;flex-direction:column;}
  #s-builder .sel-item .ord button,#s-builder .sel-item .rm{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;line-height:1;padding:1px 4px;}
  #s-builder .sel-item .rm{color:var(--bad);font-size:15px;}
  #s-builder .sel-item .ord button:hover,#s-builder .sel-item .rm:hover{color:var(--ink);}
  #s-builder .chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;}
  #s-builder .chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink2);font-size:13px;cursor:pointer;user-select:none;}
  #s-builder .chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600;}
  #s-builder .chip.add{border-style:dashed;color:var(--accent);}
  #s-builder .seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px;width:fit-content;}
  #s-builder .seg button{border:0;background:transparent;color:var(--ink2);padding:7px 14px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;}
  #s-builder .seg button.active{background:var(--accent);color:#fff;font-weight:600;}
  #s-builder .sched-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;}
  #s-builder .days{display:flex;gap:6px;}
  #s-builder .day{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink2);display:grid;place-items:center;font-size:12.5px;cursor:pointer;}
  #s-builder .day[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;}
  #s-builder .inp{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff;}
  #s-builder .inp input{border:0;outline:0;padding:8px 10px;width:70px;font:inherit;}
  #s-builder .inp .unit{padding:8px 10px;background:var(--line2);color:var(--ink2);font-size:13px;border-left:1px solid var(--line);}
  #s-builder .preview{position:sticky;top:18px;padding:16px;}
  #s-builder .pv-h{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--ink2);font-size:12px;font-weight:600;}
  #s-builder .pv-h .tg{width:22px;height:22px;border-radius:6px;background:#2aabee;color:#fff;display:grid;place-items:center;font-size:12px;}
  #s-builder .bubble{background:#fff;border:1px solid var(--line);border-radius:4px 16px 16px 16px;padding:14px;box-shadow:var(--sh-sm);font-size:13px;line-height:1.5;}
  #s-builder .bubble h4{margin:0 0 8px;font-size:14px;}
  #s-builder .b-sec{margin-top:10px;}
  #s-builder .b-sec .t{font-weight:700;font-size:12px;color:var(--ink2);}
  #s-builder .b-sec .l{color:var(--ink2);font-size:12.5px;margin-top:2px;}
  #s-builder .b-empty{color:var(--muted);font-size:12.5px;}
  #s-builder .b-tags{margin-top:12px;color:var(--accent);font-size:11.5px;}
  #s-builder .pv-meta{margin-top:10px;color:var(--muted);font-size:11.5px;text-align:center;}
  @media(max-width:1080px){ #s-builder .layout{grid-template-columns:1fr;} #s-builder .preview{position:static;} }
  @media(max-width:820px){ #s-builder .compose{grid-template-columns:1fr;} #s-builder .grid2{grid-template-columns:1fr;} }

  /* ===================================== HOME V2 (box, #s-home-box) — на .ds
     Кубики коробочной Главной (эталон: docs/product/2026-07-13-макет-главной.html).
     Общие для будущих экранов: banner, qchip, fire/tl, reveal, deal, score, finding. */
  .hv .banner{background:var(--warn-soft);border:1px solid #fde68a;border-radius:var(--r-md);padding:10px 16px;font-size:13px;color:#92400e;margin-bottom:16px;}
  .hv .greet-ctl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
  /* микровиджет качества данных в шапке (клик = якорь вниз) */
  .hv .qchip{display:inline-flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 15px;box-shadow:var(--sh-sm);text-decoration:none;color:var(--ink2);font-size:13px;}
  .hv .qchip b{color:var(--ink);font-size:15px;}
  .hv .qchip .qdot{width:9px;height:9px;border-radius:50%;background:var(--warn);}
  .hv .qchip:hover{border-color:var(--accent);}
  /* светофоры «Что горит» */
  .hv .fire{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  .hv .tl{padding:16px 18px;display:flex;flex-direction:column;gap:6px;}
  .hv .tl .th{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink2);}
  .hv .tl .tn{font-size:30px;font-weight:800;line-height:1;}
  .hv .tl .tm{font-size:12px;color:var(--muted);}
  @media(max-width:1180px){ .hv .fire{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:720px){ .hv .fire{grid-template-columns:1fr;} }
  /* раскрытие набора: нативный details (CSP: без JS) */
  .hv details.reveal>summary{list-style:none;cursor:pointer;color:var(--accent);font-size:13px;font-weight:600;padding:4px 2px;}
  .hv details.reveal>summary::-webkit-details-marker{display:none;}
  .hv details.reveal>summary::before{content:"▸";display:inline-block;margin-right:7px;transition:.12s;}
  .hv details.reveal[open]>summary::before{transform:rotate(90deg);}
  .hv details.reveal>.rbody{margin-top:10px;}
  /* список сделок в раскрытии светофора */
  .hv .deal{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink2);padding:8px 0;border-bottom:1px solid var(--line2);}
  .hv .deal:last-child{border-bottom:0;}
  .hv .deal .dn{color:var(--ink);font-weight:600;}
  .hv .deal a{color:var(--accent);text-decoration:none;font-weight:600;white-space:nowrap;}
  /* раскладки KPI наборов */
  .hv .kpis-flow{grid-template-columns:repeat(2,1fr);}
  .hv .kpis-losses{grid-template-columns:repeat(2,1fr);margin-bottom:0;}
  .hv .kpi-center{justify-content:center;}
  /* скорость (Конверсия) */
  .hv .speed{display:grid;gap:14px;}
  .hv .speed .sv{font-size:24px;font-weight:700;}
  /* карточка менеджера */
  .hv .mcard{margin-bottom:12px;}
  .hv .mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  .hv .mgrid .mv{font-weight:700;}
  @media(max-width:980px){ .hv .mgrid{grid-template-columns:repeat(2,1fr);} .hv .kpis-flow,.hv .kpis-losses{grid-template-columns:1fr;} }
  /* воронка горизонтальными шагами (итерация 1, «Путь когорты») */
  .hv .fsteps{display:flex;align-items:stretch;gap:6px;padding:16px 18px 18px;flex-wrap:wrap;}
  .hv .fstep{flex:1;min-width:110px;background:var(--line2);border-radius:12px;padding:12px 14px;}
  .hv .fstep .fs-n{font-size:22px;font-weight:800;line-height:1.1;}
  .hv .fstep .fs-p{font-size:11.5px;color:var(--muted);font-weight:700;}
  .hv .fstep .fs-l{font-size:12px;color:var(--ink2);margin-top:3px;}
  .hv .fstep.won{background:var(--ok-soft);}
  .hv .fstep.won .fs-n{color:#047857;}
  .hv .farr{align-self:center;color:var(--muted);font-size:15px;flex:none;}
  @media(max-width:900px){ .hv .fsteps{flex-direction:column;} .hv .farr{transform:rotate(90deg);align-self:flex-start;margin-left:18px;} }
  /* карточка качества данных */
  .hv .score{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
  .hv .score .sval{font-size:34px;font-weight:800;}
  .hv .score .sval .cap{font-size:16px;color:var(--muted);font-weight:600;}
  .hv .score .strack{flex:1;min-width:180px;height:12px;background:var(--line2);border-radius:7px;overflow:hidden;}
  .hv .score .sfill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--amber),var(--emerald));}
  .hv .findings{padding-top:0;}
  .hv .finding{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line2);font-size:13.5px;color:var(--ink2);}
  .hv .finding:last-child{border-bottom:0;}
  .hv .finding .fi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:14px;flex:none;}
  .hv .finding .fbody{flex:1;}
  .hv .finding .ft{color:var(--ink);font-weight:600;}
  .hv .finding .fd{margin-top:2px;line-height:1.45;}
  .hv .finding form{margin:0;align-self:center;}
  .hv .req-ok{background:var(--ok-soft);color:#16a34a;border-radius:10px;padding:10px 13px;font-size:13px;margin-bottom:8px;}
  .hv .upd{margin-top:22px;}
