/* Aeonik Pro — лицензионный шрифт; используется при наличии в системе, иначе SF Pro / системный (стиль сохраняется) */
  :root{
    --bg:#1B1C1D; --bg-2:#101114; --surface:#141518; --surface-2:#1B1C20; --surface-3:#222428;
    --hair:rgba(255,255,255,.08); --hair-2:rgba(255,255,255,.14);
    --text:#F5F5F7; --text-dim:#A1A1A6; --text-mute:#7E7E85;
    --accent:#D5FF0C; --accent-dim:#AECC0A;
    --yes:#D5FF0C; --maybe:#DFE0E2; --no:#EF3B24;
    /* статусы матрицы v2 (цвет + форма; см. PRD §1.4) */
    --st-own:#AFD23B; --st-third:#9FCF12; --st-unknown:#8A8A8E; --st-no:#FF6B6B;
    /* динамика (изменение места / сравнение): салатовый ↑ и ярко-красный ↓ — единые для всех стрелок */
    --dyn-up:#AEE63B; --dyn-down:#FF4242;
    --r-lg:22px; --r-md:16px; --r-sm:11px; --r-pill:980px;
    --ease:cubic-bezier(.22,.61,.36,1);
    --font:'Aeonik Pro','Aeonik',-apple-system,BlinkMacSystemFont,'SF Pro Display','SF Pro Text','Helvetica Neue',system-ui,sans-serif;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 28px rgba(0,0,0,.35);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    background:var(--bg);color:var(--text);font-family:var(--font);
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
    font-feature-settings:"tnum";letter-spacing:-.011em;min-height:100vh;
    background-image:radial-gradient(900px 520px at 88% -8%, rgba(213,255,12,.07), transparent 60%),
                     radial-gradient(700px 500px at 0% 0%, rgba(255,255,255,.025), transparent 55%);
  }
  ::selection{background:var(--accent);color:#000}
  .wrap{max-width:1440px;margin:0 auto;padding:0 20px;}
  @keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}

  /* HEADER */
  header.app{position:sticky;top:0;z-index:40;
    background:rgba(27,28,29,.72);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);
    border-bottom:1px solid transparent;transition:border-color .25s var(--ease);}
  /* подпись и линия — только после скролла за заголовок */
  header.app .brand-sep,header.app .brand-text{opacity:0;transition:opacity .25s var(--ease);pointer-events:none;}
  header.app.scrolled{border-bottom-color:var(--hair);}
  header.app.scrolled .brand-sep,header.app.scrolled .brand-text{opacity:1;pointer-events:auto;}
  .head-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex:none;}
  .head-row{display:flex;align-items:center;gap:24px;padding:18px 0 16px;flex-wrap:wrap;}
  .brand{display:flex;align-items:center;gap:16px;margin-right:auto;}
  .brand-text{display:flex;flex-direction:column;min-width:0;}
  .brand h1{font-size:15px;font-weight:450;letter-spacing:-.02em;line-height:1.15;color:var(--text);}
  .brand .accent{color:var(--accent);}
  .brand-sep{width:1px;height:38px;background:var(--hair-2);flex:none;}
  /* idaproject logo — inline-SVG, перекрашивается через currentColor */
  .logo{display:inline-flex;align-items:center;color:var(--text);text-decoration:none;border-radius:6px;transition:color .22s var(--ease);}
  .logo:hover{color:var(--accent);}
  .logo-mark{display:block;width:104px;height:29px;color:inherit;fill:currentColor;}

  /* HERO — заголовок + переключатели + описание, по центру */
  .hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:32px;margin:120px 0;animation:fadeUp .5s var(--ease) both;}
  .hero-title{font-family:var(--font);font-size:48px;font-weight:500;line-height:54px;letter-spacing:-0.48px;text-transform:uppercase;max-width:980px;}
  .hero-controls{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center;}
  .hero-desc{font-size:15px;color:var(--text-dim);max-width:680px;line-height:1.55;font-weight:450;margin:0 auto;}
  .hero-desc b{color:var(--text);font-weight:600;}
  .hero-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
  .hero-controls .seg button{height:44px;}
  .hero-actions .btn-ghost,.hero-actions .btn-accent{height:44px;box-sizing:border-box;}

  /* SEGMENTED CONTROL — Apple style */
  .seg{display:inline-flex;background:rgba(255,255,255,.06);border:1px solid var(--hair);border-radius:var(--r-pill);padding:3px;gap:2px;}
  .seg button{border:0;background:transparent;color:var(--text-dim);font-family:inherit;font-size:13px;font-weight:500;
    padding:8px 17px;border-radius:var(--r-pill);cursor:pointer;transition:color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);white-space:nowrap;letter-spacing:-.01em;}
  .seg button:hover{color:var(--text);}
  .seg.accent button.active{background:var(--accent);color:#0A0B0D;font-weight:500;box-shadow:0 1px 6px rgba(213,255,12,.35);}
  .seg.thumb button.active{background:var(--surface-3);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.5),inset 0 0 0 .5px var(--hair-2);}

  /* CONTROL PANEL */
  .panel{padding:0 0 8px;animation:fadeIn .5s var(--ease) both;} /* opacity-only: без transform, чтобы не создавать stacking-контекст (иначе дропдаун критериев уходит под список) */
  .panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
  .panel-head .lead h2{font-size:34px;font-weight:500;letter-spacing:-.04em;line-height:1.02;}
  .panel-head .lead p{font-size:14px;color:var(--text-dim);margin-top:8px;max-width:600px;line-height:1.5;font-weight:450;}
  .count{display:flex;align-items:center;gap:11px;white-space:nowrap;}
  .count b{font-size:34px;font-weight:680;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;}
  .count span{font-size:12.5px;color:var(--text-dim);line-height:1.25;font-weight:450;}

  .controls{display:flex;flex-direction:column;gap:20px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow);}
  .ctl-block{display:flex;flex-direction:column;gap:12px;}
  .ctl-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-mute);}
  .ctl-row{display:flex;gap:20px;flex-wrap:nowrap;align-items:center;justify-content:space-between;}
  .pills{display:flex;gap:8px;flex-wrap:wrap;}
  .pill{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;
    border:1px solid var(--hair);background:var(--surface-2);color:var(--text-dim);
    font-size:13px;font-weight:500;padding:8px 15px;border-radius:var(--r-pill);transition:all .22s var(--ease);}
  .pill .dot{width:7px;height:7px;border-radius:50%;background:var(--text-mute);transition:all .22s var(--ease);}
  .pill:hover{border-color:var(--hair-2);color:var(--text);transform:translateY(-1px);}
  .pill.on{background:rgba(213,255,12,.13);border-color:rgba(213,255,12,.55);color:var(--text);}
  .pill.on .dot{background:var(--accent);box-shadow:0 0 9px rgba(213,255,12,.8);}
  .pill.disabled{opacity:.38;cursor:not-allowed;border-style:dashed;}
  .pill.disabled:hover{border-color:var(--hair);color:var(--text-dim);transform:none;}
  .pill .nd{font-size:10px;color:var(--text-mute);font-weight:500;}
  .right-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
  .ctl-left{display:flex;gap:14px;flex-wrap:nowrap;align-items:center;min-width:0;flex:1 1 auto;}
  .right-tools{flex:none;}
  /* регион сжимается под свободное место (а не переносит строку), длинное имя — в «…» */
  #regionDD{min-width:0;flex:0 1 auto;}
  /* единая высота полей в строке контролов */
  .ctl-row #segSort,.ctl-row .crit-dd-btn,.right-tools .btn-ghost,.right-tools .search input{height:40px;box-sizing:border-box;}
  .ctl-row .crit-dd-btn{padding:0 16px;}
  .right-tools .btn-ghost{padding:0 16px;}
  .right-tools .search input{padding:0 16px 0 36px;}
  /* критерии — раскрывающийся список */
  .crit-dd{position:relative;}
  .crit-dd.open{z-index:60;} /* поверх липкой шапки списка (z-index:30) и хедера (40) */
  .crit-dd-btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--hair);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;padding:9px 15px;border-radius:var(--r-pill);cursor:pointer;transition:border-color .2s var(--ease);white-space:nowrap;}
  .crit-dd-btn:hover{border-color:var(--hair-2);}
  .crit-dd-btn .chev{font-size:16px;color:var(--text-mute);display:inline-flex;transition:transform .2s var(--ease);}
  .crit-dd.open>.crit-dd-btn{border-color:rgba(213,255,12,.5);}
  .crit-dd.open>.crit-dd-btn .chev{transform:rotate(180deg);}
  .crit-dd-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:60;display:none;background:var(--surface);border:1px solid var(--hair-2);border-radius:var(--r-md);padding:12px;box-shadow:0 16px 44px rgba(0,0,0,.55);min-width:300px;max-height:60vh;overflow:auto;}
  .crit-dd.open .crit-dd-panel{display:block;animation:fadeUp .2s var(--ease);}
  .crit-dd-panel .pills{flex-direction:column;align-items:stretch;gap:2px;}
  /* непрозрачные пилюли, чтобы список под панелью не просвечивал; выбранные — по лайм-обводке и точке */
  /* вид как у опций региона/сравнения: строки на всю ширину, ховер-подложка, выбранное — лаймовая обводка */
  .crit-dd-panel .pill{justify-content:flex-start;gap:10px;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:9px 11px;font-weight:500;}
  .crit-dd-panel .pill:hover{background:var(--surface-3);border-color:transparent;transform:none;color:var(--text);}
  .crit-dd-panel .pill.on{background:var(--surface-3);border-color:rgba(213,255,12,.6);color:var(--text);}
  .crit-dd-panel .pill .nd{margin-left:auto;}
  .crit-dd-panel .pill .dot{margin-left:auto;}
  .crit-dd-panel .pill .nd ~ .dot{margin-left:8px;}
  /* регион: дропдаун */
  .region-dd .rg-icon{font-size:16px;color:var(--text-mute);flex:none;display:inline-flex;}
  /* длинные названия регионов не раздувают кнопку — обрезаем многоточием */
  #regionDDBtn{max-width:300px;min-width:0;width:100%;}
  #regionDDBtn #regionDDLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
  .region-dd.region-active>.crit-dd-btn{border-color:rgba(213,255,12,.5);color:var(--text);}
  .region-dd.region-active .rg-icon{color:var(--accent);}
  .region-panel{padding:10px;min-width:260px;}
  .region-search{position:relative;margin-bottom:8px;}
  .region-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;stroke:var(--text-mute);pointer-events:none;}
  .region-search input{width:100%;background:var(--surface-3);border:1px solid var(--hair);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;
    padding:9px 12px 9px 34px;border-radius:var(--r-sm);letter-spacing:-.01em;}
  .region-search input::placeholder{color:var(--text-mute);}
  .region-search input:focus{outline:none;border-color:rgba(213,255,12,.5);}
  .region-opts{display:flex;flex-direction:column;gap:2px;max-height:46vh;overflow:auto;}
  .region-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:var(--r-sm);font-size:13px;font-weight:500;
    color:var(--text-dim);cursor:pointer;border:1px solid transparent;transition:background .15s var(--ease),border-color .15s var(--ease);}
  .region-opt:hover{background:var(--surface-3);color:var(--text);}
  .region-opt.on{background:var(--surface-3);border-color:rgba(213,255,12,.6);color:var(--text);}
  .region-opt .ro-count{font-size:11px;color:var(--text-mute);font-variant-numeric:tabular-nums;background:var(--surface-2);border-radius:999px;padding:1px 8px;flex:none;}
  .region-empty{padding:14px 11px;font-size:12.5px;color:var(--text-mute);text-align:center;}
  /* бейдж присутствия в строке застройщика */
  .rg-here{display:inline-flex;align-items:center;margin-left:7px;padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:-.005em;
    color:var(--accent);background:rgba(213,255,12,.1);border:1px solid rgba(213,255,12,.28);vertical-align:middle;}
  /* сравнение: закреплённая панель снизу (фон только у карточки, не у всей полосы) */
  .compare-bar{position:fixed;left:0;right:0;bottom:0;z-index:45;padding-bottom:20px;pointer-events:none;}
  .compare-bar .cmp-wrap{pointer-events:auto;}
  .cmp-wrap{display:flex;align-items:center;padding-top:10px;}
  .cmp-open{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:9px;margin:0 auto;color:var(--text);
    background:linear-gradient(110deg,#181a1f,#202329 45%,#181a1f);border:1px solid var(--hair-2);
    font-family:inherit;font-size:13.5px;font-weight:500;letter-spacing:-.01em;padding:13px 24px;border-radius:var(--r-pill);cursor:pointer;
    box-shadow:0 8px 26px rgba(0,0,0,.5);transition:border-color .2s var(--ease),transform .2s var(--ease);
    animation:cmpGlow 5.5s ease-in-out infinite;}
  .cmp-open i{font-size:17px;line-height:1;color:var(--accent);position:relative;z-index:1;}
  .cmp-open span,.cmp-open{z-index:0;}
  /* мягкий лаймовый блик, периодически проходящий по кнопке */
  .cmp-open::before{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(100deg,transparent 38%,rgba(213,255,12,.22) 50%,transparent 62%);
    transform:translateX(-120%);animation:cmpSheen 5.5s ease-in-out infinite;}
  .cmp-open:hover{border-color:var(--text-mute);transform:translateY(-1px);}
  /* после клика (пикер открыт) — спокойная серая, без анимации */
  .cmp-open.open{background:var(--surface-2);color:var(--text-dim);border-color:var(--hair);box-shadow:none;animation:none;}
  .cmp-open.open::before{display:none;}
  .cmp-open.open i{color:var(--text-dim);}
  @keyframes cmpSheen{0%{transform:translateX(-120%)}45%{transform:translateX(120%)}100%{transform:translateX(120%)}}
  @keyframes cmpGlow{0%,100%{box-shadow:0 8px 26px rgba(0,0,0,.5),0 0 0 rgba(213,255,12,0)}50%{box-shadow:0 8px 26px rgba(0,0,0,.5),0 0 18px rgba(213,255,12,.18)}}
  @media(prefers-reduced-motion:reduce){.cmp-open,.cmp-open::before{animation:none;}}
  /* закреплённая строка-эталон + крестик снаружи справа */
  .cmp-pinned{width:100%;}
  .cmp-row{width:100%;display:grid;align-items:center;gap:14px;padding:12px 20px;
    background:rgba(12,13,16,.9);backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);
    border:1px solid var(--hair-2);border-radius:var(--r-md);box-shadow:0 16px 46px rgba(0,0,0,.6);}
  .cmp-place{flex:none;}
  .cmp-change{flex:none;padding:8px 15px;font-size:12.5px;}
  .cmp-panel{padding:10px;}
  .cmp-opt-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  /* Δ-жёлоб в строках списка: стрелка + число / точка, по центру под бейджем места */
  .c-cmp{display:flex;align-items:center;flex:none;width:52px;justify-content:flex-start;}
  /* фикс-слот динамики (дельта места / Δ-сравнения / иконка эталона) — имя не съезжает */
  .delta-slot{width:52px;flex:none;display:inline-flex;align-items:center;justify-content:center;}
  .rg-home{color:inherit;}
  .cmp-delta{display:inline-flex;align-items:center;gap:1px;font-size:12.5px;font-weight:680;font-variant-numeric:tabular-nums;white-space:nowrap;}
  .cmp-delta i{font-size:13px;line-height:1;}
  .cmp-delta.up{color:var(--dyn-up);} .cmp-delta.down{color:var(--dyn-down);} .cmp-delta.same{color:var(--text-mute);}
  .cmp-delta.same .dot-sm{font-size:8px;}
  .cmp-gut{margin-left:6px;width:52px;display:inline-flex;align-items:center;justify-content:center;flex:none;}
  .cmp-self{color:#fff;font-size:16px;line-height:1;}  /* эталон в списке — белая иконка */
  #appRoot{padding-bottom:120px;}
  .search{position:relative;}
  .search input{background:var(--surface-2);border:1px solid var(--hair);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;letter-spacing:-.01em;
    padding:9px 14px 9px 38px;border-radius:var(--r-pill);width:320px;transition:all .25s var(--ease);}
  .crit-dd-btn,.btn-ghost{letter-spacing:-.01em;}
  .search input::placeholder{color:var(--text-mute);}
  .search input:focus{outline:none;border-color:rgba(213,255,12,.6);background:var(--surface-3);}
  .search-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--text-mute);pointer-events:none;}
  .region-search .search-ic{left:12px;font-size:15px;}
  .btn-ghost{display:inline-flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--hair);color:var(--text-dim);
    font-family:inherit;font-size:13px;font-weight:500;padding:9px 15px;border-radius:var(--r-pill);cursor:pointer;transition:all .22s var(--ease);}
  .btn-ghost:hover{color:var(--text);border-color:var(--hair-2);transform:translateY(-1px);}
  .btn-ghost svg{width:15px;height:15px;stroke:currentColor;fill:none;}
  .btn-ghost i{font-size:16px;line-height:1;}
  .btn-accent{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:#0A0B0D;border:0;font-family:inherit;font-size:13px;font-weight:500;padding:10px 18px;border-radius:var(--r-pill);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s var(--ease);letter-spacing:-.01em;}
  .btn-accent:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(213,255,12,.32);}

  /* блок «места 31–100 на проверке» */
  .check-block{text-align:center;padding:30px 20px;margin:8px 0;background:var(--surface);border:1px dashed var(--hair-2);border-radius:var(--r-md);}
  .check-block p{font-size:14px;color:var(--text-dim);margin-bottom:16px;font-weight:450;}
  .check-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}

  /* карточка одного места: нейтральная обводка; лидеры (.leaders-card) — зелёная */
  .place-card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);margin-bottom:8px;overflow:hidden;animation:fadeIn .4s var(--ease) both;}
  /* карточка лидеров — зелёная обводка */
  .leaders-card{background:var(--surface);border:1.5px solid rgba(213,255,12,.55);border-radius:var(--r-md);
    box-shadow:0 0 0 4px rgba(213,255,12,.07);margin-bottom:8px;overflow:hidden;animation:fadeIn .5s var(--ease) both;
    transition:transform .2s var(--ease),box-shadow .2s var(--ease);}
  .leaders-card:hover{transform:translateY(-1px);box-shadow:0 0 0 4px rgba(213,255,12,.12),0 10px 28px rgba(0,0,0,.32);}
  .lead-head{display:flex;align-items:center;gap:14px;padding:15px 20px;border-bottom:1px solid var(--hair);}
  .leaders-rank{flex:none;background:var(--accent);color:#0A0B0D;border-color:var(--accent);}
  .lead-head-title{flex:1;min-width:0;font-size:13.5px;font-weight:500;letter-spacing:-.01em;line-height:1.3;color:var(--text-dim);}
  .lead-head-score{display:flex;align-items:baseline;gap:8px;white-space:nowrap;font-size:16px;font-weight:680;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
  .lead-head-score em{font-style:normal;font-size:12px;color:var(--text-mute);font-weight:500;}
  .lead-rows{display:flex;flex-direction:column;}
  .lead-row{position:relative;display:grid;align-items:center;gap:14px;padding:12px 20px;}
  .lead-row + .lead-row::before{content:"";position:absolute;left:20px;right:20px;top:0;height:1px;background:rgba(255,255,255,.05);}

  .legend{display:flex;gap:20px;flex-wrap:wrap;align-items:center;padding:16px 4px 8px;font-size:12.5px;color:var(--text-dim);font-weight:450;}
  .legend .item{display:flex;align-items:center;gap:7px;}
  .legend .sw{width:18px;height:18px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none;}
  /* свотчи статусов в легенде и методологии */
  .sw.st-own,.m-sw.st-own{background:var(--st-own);color:#10140a;}
  .sw.st-third_party,.m-sw.st-third_party{background:rgba(213,255,12,.12);border:1px solid rgba(213,255,12,.45);color:var(--accent);}
  .sw.st-unknown,.m-sw.st-unknown{background:transparent;border:1px dashed var(--hair-2);color:var(--text-mute);}
  .sw.st-no,.m-sw.st-no{background:rgba(255,107,107,.12);border:1px solid rgba(255,107,107,.24);color:var(--st-no);}
  /* цвет глифа в модалке методологии перебивается .modal .m-row span — возвращаем с большей специфичностью */
  .modal .m-sw.st-own{color:#10140a;}
  .modal .m-sw.st-third_party{color:var(--accent);}
  .modal .m-sw.st-unknown{color:var(--text-mute);}
  .modal .m-sw.st-no{color:var(--st-no);}
  .m-sw{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;}
  /* статичный чип периода (вместо переключателя дат) */
  .period-chip{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--hair);
    color:var(--text-dim);font-size:13px;font-weight:500;letter-spacing:-.01em;white-space:nowrap;}

  /* TABLE */
  .list-wrap{padding:8px 0 64px;}
  /* шапка списка закрепляется при скролле под основным хедером */
  .thead{display:grid;align-items:end;gap:14px;padding:14px 20px 12px;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-mute);
    position:sticky;top:calc(var(--header-h,64px) - 1px);z-index:30;
    background:rgba(27,28,29,.78);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);
    border-bottom:1px solid var(--hair);}
  /* горизонтальные заголовки колонок — ячейки разнесены, метки помещаются */
  .thead .crit{display:flex;gap:18px;justify-content:center;align-items:flex-end;}
  .thead .crit .cl{width:30px;display:flex;justify-content:center;}
  .thead .crit .cl span{white-space:nowrap;font-size:9.5px;line-height:1.1;letter-spacing:.02em;color:var(--text-mute);text-align:center;}
  #rows{animation:fadeIn .5s var(--ease) both;}
  .row{display:grid;align-items:center;gap:14px;padding:12px 20px;background:var(--surface);border:1px solid var(--hair);
    border-radius:var(--r-md);margin-bottom:8px;transition:transform .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease);}
  .row:hover{border-color:var(--hair-2);background:var(--surface-2);transform:translateY(-1px);position:relative;z-index:31;}
  /* зоны строки: левая (ранг/Δ/имя) | центр (матрица) | правая (балл/действие) */
  .r-left{display:flex;align-items:center;gap:14px;min-width:0;}
  .r-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;}
  .thead .r-right{align-items:flex-end;}
  .c-rank{display:flex;align-items:center;gap:9px;flex:none;}
  .rank-badge{min-width:36px;height:30px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;
    background:var(--surface-2);border:1px solid var(--hair);border-radius:9px;font-size:13px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;}
  .row.top3 .rank-badge{background:var(--accent);color:#0A0B0D;border-color:var(--accent);}
  .delta{display:inline-flex;align-items:center;gap:1px;font-size:11px;font-weight:650;}
  .delta i{font-size:13px;line-height:1;}
  .delta .dot-sm,.delta.new i{font-size:7px;}
  .delta.up{color:var(--dyn-up);} .delta.down{color:var(--dyn-down);} .delta.same{color:var(--text-mute);} .delta.new{color:var(--text-mute);}
  .c-name{display:flex;flex-direction:column;gap:2px;min-width:0;}
  .c-action{display:flex;justify-content:flex-end;align-items:center;}
  .c-name .nm{font-size:14.5px;font-weight:500;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .c-name .rg{font-size:12px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:450;}
  .c-matrix{display:flex;gap:18px;justify-content:center;}
  .cell{width:30px;height:30px;border-radius:8px;position:relative;cursor:pointer;transition:transform .16s var(--ease);display:flex;align-items:center;justify-content:center;}
  .cell:hover{transform:translateY(-2px) scale(1.06);z-index:2;}
  /* статусы v2 — цвет + форма (дублёр для дальтонизма / ч-б) */
  .cell .g{font-weight:700;line-height:1;font-size:13px;}
  .cell.st-own{background:var(--st-own);} .cell.st-own .g{color:#10140a;font-size:14px;}
  /* через сторонний: лаймовый, но «облегчённый» — обводка + фон с прозрачностью + лаймовая стрелка */
  .cell.st-third_party{background:rgba(213,255,12,.12);border:1px solid rgba(213,255,12,.45);} .cell.st-third_party .g{color:var(--accent);font-size:14px;}
  .cell.st-unknown{background:transparent;border:1px dashed var(--hair-2);} .cell.st-unknown .g{color:var(--text-mute);font-size:12px;}
  .cell.st-no{background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.2);} .cell.st-no .g{color:var(--st-no);opacity:.75;font-size:11px;}
  /* пометка «нужна ручная проверка» — янтарная точка */
  .cell[data-review]::after{content:'';position:absolute;top:-2px;right:-2px;width:6px;height:6px;border-radius:50%;background:#FFB020;border:1.5px solid var(--surface);}
  /* фирменный знак idaproject в углу ячейки — мелкий и приглушённый */
  .ida-mark{position:absolute;top:-3px;right:-3px;width:12px;height:12px;border-radius:3px;box-shadow:0 0 0 1.5px var(--surface);pointer-events:none;}
  .cell.has-ida{overflow:visible;}
  /* tooltip-поповер ячейки (портал в body) */
  .cell-pop{position:fixed;z-index:9998;max-width:328px;background:var(--surface);border:1px solid var(--hair-2);border-radius:13px;
    padding:14px 16px;box-shadow:0 18px 48px rgba(0,0,0,.6);font-size:13px;line-height:1.5;display:none;}
  .cell-pop.show{display:block;animation:fadeIn .14s var(--ease);}
  .cell-pop .cp-head{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
  .cell-pop .cp-head b{font-size:13.5px;font-weight:500;letter-spacing:-.01em;}
  /* квадратик в поповере — как ячейка матрицы (цвет + форма по статусу) */
  .cell-pop .cp-cell{width:22px;height:22px;flex:none;}
  .cell-pop .cp-cell:hover{transform:none;}
  .cell-pop .cp-cell .g{font-size:12px;}
  .cell-pop .cp-status{margin-left:auto;font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap;}
  /* тег статуса — в тон ячейке/легенде */
  .cp-status.st-own{background:var(--st-own);color:#10140a;}
  .cp-status.st-third_party{background:rgba(213,255,12,.12);border:1px solid rgba(213,255,12,.45);color:var(--accent);}
  .cp-status.st-unknown{background:rgba(138,138,142,.16);color:var(--text-dim);}
  .cp-status.st-no{background:rgba(255,107,107,.14);border:1px solid rgba(255,107,107,.26);color:var(--st-no);}
  .cell-pop .cp-summary{color:var(--text-dim);margin:0 0 11px;font-weight:450;}
  .cell-pop .cp-meta{display:flex;flex-direction:column;gap:6px;font-size:12px;border-top:1px solid var(--hair);padding-top:10px;}
  .cell-pop .cp-meta>div{display:flex;gap:10px;align-items:baseline;}
  .cell-pop .cp-meta span{color:var(--text-mute);min-width:92px;flex:none;}
  .cell-pop .cp-meta i{font-style:normal;color:var(--text-dim);}
  .cell-pop .cp-review{color:#FFB020;font-style:normal;font-weight:550;}
  .cell-pop .cp-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:11px;}
  .cell-pop .cp-links a{color:var(--accent);font-size:12px;text-decoration:none;border-bottom:1px solid rgba(213,255,12,.3);}
  .cell-pop .cp-links a:hover{border-bottom-color:var(--accent);}
  /* участие idaproject в поповере: значок + белый текст в строке «Реализация» */
  .cell-pop .cp-meta i.cp-impl-ours{color:var(--text);}
  .ida-mark.cp-impl-mark{position:static;width:14px;height:14px;border-radius:3px;box-shadow:none;opacity:1;display:inline-block;vertical-align:-3px;margin-right:6px;}
  .c-score{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
  .score-val{font-size:16px;font-weight:680;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
  .score-val .max{color:var(--text-mute);font-weight:500;font-size:12.5px;}
  .score-bar{width:78px;height:5px;border-radius:3px;background:var(--surface-2);overflow:hidden;border:1px solid var(--hair);}
  .score-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .4s var(--ease);}
  .score-pct{font-size:11px;color:var(--text-mute);font-weight:500;font-variant-numeric:tabular-nums;}
  .score-gap{font-size:10.5px;color:var(--text-dim);font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;}
  /* кнопка «Обсудить» в строке (под названием) */
  .btn-discuss{flex:none;background:var(--surface-2);border:1px solid var(--hair);color:var(--text-dim);
    font-family:inherit;font-size:11.5px;font-weight:500;padding:6px 13px;border-radius:var(--r-pill);cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease);}
  .btn-discuss:hover{color:var(--text);border-color:var(--hair-2);}

  .state{text-align:center;padding:90px 20px;color:var(--text-dim);}
  .state svg{width:44px;height:44px;stroke:var(--text-mute);fill:none;margin-bottom:18px;}
  .state i{font-size:42px;color:var(--text-mute);margin-bottom:16px;display:block;}
  .state h3{font-size:19px;color:var(--text);font-weight:500;margin-bottom:8px;letter-spacing:-.02em;}
  .state p{font-size:14px;max-width:420px;margin:0 auto;line-height:1.5;font-weight:450;}

  /* MODAL */
  .modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:60;display:none;align-items:center;justify-content:center;padding:24px;}
  .modal-bg.open{display:flex;animation:fadeUp .3s var(--ease);}
  .modal{background:var(--surface);border:1px solid var(--hair-2);border-radius:26px;max-width:580px;width:100%;padding:36px;position:relative;box-shadow:0 40px 100px rgba(0,0,0,.7);max-height:calc(100vh - 48px);overflow-y:auto;overscroll-behavior:contain;}
  .modal h3{font-size:24px;font-weight:500;letter-spacing:-.03em;margin-bottom:6px;}
  .modal .sub{font-size:13px;color:var(--text-mute);margin-bottom:24px;font-weight:450;}
  .modal>p{font-size:14px;color:var(--text-dim);line-height:1.6;margin-bottom:22px;font-weight:450;}
  .modal .m-row{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--hair);}
  .modal .m-row:first-of-type{border-top:0;}
  .modal .m-sw{width:18px;height:18px;border-radius:6px;flex:none;margin-top:2px;}
  .modal .m-sw.m-ida{background:transparent;border:0;padding:0;}
  .modal .m-sw.m-ida svg{width:18px;height:18px;display:block;}
  /* аккордеоны категорий в методологии */
  .m-acc-title{font-size:17px;font-weight:500;color:var(--text);margin:34px 0 18px;letter-spacing:-.01em;}
  .m-accordions{display:flex;flex-direction:column;gap:6px;}
  .m-acc{border:1px solid var(--hair);border-radius:var(--r-sm);background:var(--surface-2);overflow:hidden;}
  .m-acc-h{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:0;color:var(--text);
    font-family:inherit;font-size:13.5px;font-weight:500;letter-spacing:-.01em;text-align:left;padding:12px 14px;cursor:pointer;}
  .m-acc-h:hover{background:var(--surface-3);}
  .m-acc-h i{font-size:18px;color:var(--text-mute);transition:transform .2s var(--ease);flex:none;}
  .m-acc.open .m-acc-h i{transform:rotate(180deg);}
  .m-acc-b{display:none;padding:2px 14px 14px;}
  .m-acc.open .m-acc-b{display:block;}
  .m-acc-assess{font-size:13px;font-weight:450;color:var(--text-dim);margin:0 0 13px;line-height:1.5;}
  .m-acc-rule{display:flex;gap:11px;margin-bottom:11px;align-items:flex-start;}
  .m-rk{flex:none;min-width:104px;font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;margin-top:2px;text-align:center;box-sizing:border-box;}
  .m-rk.st-own{background:var(--st-own);color:#10140a;}
  .m-rk.st-third_party{background:rgba(213,255,12,.12);border:1px solid rgba(213,255,12,.45);color:var(--accent);}
  .m-rk.st-unknown{background:rgba(138,138,142,.16);color:var(--text-dim);}
  .m-rk.st-no{background:rgba(255,107,107,.14);border:1px solid rgba(255,107,107,.26);color:var(--st-no);}
  .m-acc-rule ul{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:4px;}
  .m-acc-rule li{font-size:13px;font-weight:450;color:var(--text-dim);line-height:1.5;}
  .modal .m-row b{display:block;font-size:14px;margin-bottom:3px;font-weight:500;}
  .modal .m-row span{font-size:13px;color:var(--text-dim);line-height:1.5;font-weight:450;}
  .modal .formula{margin-top:22px;background:var(--bg-2);border:1px solid var(--hair);border-radius:var(--r-sm);padding:15px 17px;font-size:13px;color:var(--text-dim);line-height:1.7;font-weight:450;}
  .modal .formula code{background:var(--surface-3);border:1px solid var(--hair);border-radius:6px;padding:1px 7px;color:var(--accent);font-size:12px;}
  .modal .close,.cmp-x{background:var(--surface-2);border:1px solid var(--hair);color:var(--text-dim);width:34px;height:34px;border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:all .2s var(--ease);flex:none;padding:0;}
  /* sticky + float — крестик остаётся в углу при скролле модалки */
  .modal .close{position:sticky;float:right;top:0;margin:-8px -8px 6px 12px;}
  .modal .close i,.cmp-x i{font-size:17px;line-height:1;}
  .modal .close:hover,.cmp-x:hover{color:var(--text);border-color:var(--hair-2);background:var(--surface-3);}

  /* REPORT */
  .report{padding:32px 0 88px;animation:fadeUp .5s var(--ease) both;}
  .report .rep-head{margin-bottom:32px;}
  .rep-head-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px;}
  .report .rep-head h2{font-size:38px;font-weight:500;letter-spacing:-.04em;line-height:1.02;}
  .report .rep-head p{font-size:15px;color:var(--text-dim);margin-top:12px;max-width:680px;line-height:1.55;font-weight:450;}
  .blocks{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;}
  .block{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow);}
  .block .tag{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-dim);margin-bottom:13px;display:inline-flex;align-items:center;gap:7px;}
  .block.span12{grid-column:span 12;} .block.span8{grid-column:span 8;} .block.span6{grid-column:span 6;} .block.span4{grid-column:span 4;} .block.span3{grid-column:span 3;}
  .block h3{font-size:18px;font-weight:500;letter-spacing:-.025em;margin-bottom:24px;}
  .insight-num{font-size:40px;font-weight:660;letter-spacing:-.04em;color:var(--accent);line-height:1;font-variant-numeric:tabular-nums;}
  .insight-of{font-size:20px;color:var(--text-mute);font-weight:600;letter-spacing:-.02em;}
  .insight-cap{font-size:13px;color:var(--text-dim);margin-top:8px;line-height:1.4;font-weight:450;}
  .rep-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:4px;}
  .rep-list li{position:relative;padding-left:20px;font-size:14px;color:var(--text-dim);line-height:1.5;font-weight:450;}
  .rep-list li::before{content:'';position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:2px;background:var(--accent);}
  .rep-list li b{color:var(--text);font-weight:600;}
  .rep-bars{display:flex;flex-direction:column;gap:11px;}
  .bar-row{display:grid;grid-template-columns:124px 1fr 44px;align-items:center;gap:13px;font-size:12.5px;}
  .bar-row .bl{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:450;}
  .bar-track{height:14px;border-radius:7px;background:var(--surface-2);overflow:hidden;display:flex;border:1px solid var(--hair);}
  .bar-track .own{background:var(--st-own);height:100%;transition:width .5s var(--ease);}
  .bar-track .tp{background:var(--st-third);height:100%;transition:width .5s var(--ease);}
  .bar-row .bv{text-align:right;font-weight:650;color:var(--text);font-variant-numeric:tabular-nums;}
  .dist{display:flex;height:40px;border-radius:11px;overflow:hidden;border:1px solid var(--hair);}
  .dist div{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:650;min-width:0;transition:width .5s var(--ease);}
  .dist-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:15px;font-size:12px;color:var(--text-dim);font-weight:450;}
  .dist-legend .i{display:flex;align-items:center;gap:6px;} .dist-legend .s{width:12px;height:12px;border-radius:3px;flex:none;}
  .barrier{display:flex;flex-direction:column;gap:9px;padding:17px 0;border-top:1px solid var(--hair);}
  .barrier:first-child{border-top:0;padding-top:4px;}
  .barrier .bh{display:flex;align-items:center;gap:10px;}
  .barrier .bh b{font-size:14.5px;font-weight:500;}
  .barrier .freq{margin-left:auto;font-size:11px;font-weight:650;color:var(--accent-dim);background:rgba(213,255,12,.1);border:1px solid var(--hair);border-radius:999px;padding:3px 10px;white-space:nowrap;}
  .barrier .q{font-size:13.5px;color:var(--text-dim);font-style:italic;line-height:1.55;border-left:2px solid var(--hair-2);padding-left:13px;font-weight:450;}
  .barrier .q span{display:block;font-style:normal;color:var(--text-mute);font-size:11.5px;margin-top:5px;}
  .seg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
  .seg-card{padding:18px 20px;background:var(--bg-2);border:1px solid var(--hair);border-radius:var(--r-md);}
  .seg-card .st{font-size:14px;font-weight:500;margin-bottom:7px;}
  .seg-card .sd{font-size:13px;color:var(--text-dim);line-height:1.55;font-weight:450;}
  .seg-card .pr{font-size:11px;color:var(--accent-dim);font-weight:650;margin-top:10px;}
  /* блоки полезных данных для клиента */
  .block-note{font-size:12.5px;color:var(--text-mute);line-height:1.5;margin-top:16px;font-weight:450;}
  .cost-steps,.prio,.bench{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
  .cost-step{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--bg-2);border:1px solid var(--hair);border-radius:var(--r-sm);}
  .cost-step .cs-val{font-size:18px;font-weight:680;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;}
  .cost-step:last-child .cs-val{color:var(--accent);}
  .cost-step .cs-lab{font-size:12.5px;color:var(--text-dim);text-align:right;font-weight:450;}
  .prio-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:var(--bg-2);border:1px solid var(--hair);border-radius:var(--r-sm);font-size:13.5px;}
  .prio-row .prio-lab{color:var(--text);font-weight:500;}
  .prio-row .prio-lvl{font-size:11px;font-weight:650;color:var(--accent-dim);background:rgba(213,255,12,.1);border:1px solid var(--hair);border-radius:999px;padding:3px 10px;white-space:nowrap;}
  .bench-row{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--hair);}
  .bench-row:last-child{border-bottom:0;padding-bottom:0;}
  .bench-row b{font-size:14px;font-weight:600;}
  .bench-row span{font-size:12.5px;color:var(--text-dim);line-height:1.45;font-weight:450;}
  /* воронка глубины аналитики */
  .funnel{display:flex;flex-direction:column;gap:7px;margin-top:4px;}
  .funnel-row{display:flex;align-items:center;gap:12px;}
  .funnel-row .fr-bar{height:26px;border-radius:7px;background:var(--accent);flex:none;}
  .funnel-row .fr-txt{display:flex;flex-direction:column;gap:1px;min-width:0;}
  .funnel-row .fr-lab{font-size:12.5px;color:var(--text);font-weight:500;line-height:1.2;}
  .funnel-row .fr-reach{font-size:11px;color:var(--text-mute);line-height:1.2;}
  /* смена парадигмы */
  .paradigm-text{font-size:14px;color:var(--text-dim);line-height:1.6;font-weight:450;margin-top:2px;}
  /* банк цитат */
  .quote-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:4px;}
  .quote-card{padding:16px 18px;background:var(--bg-2);border:1px solid var(--hair);border-radius:var(--r-md);display:flex;flex-direction:column;gap:8px;}
  .quote-card p{font-size:13.5px;color:var(--text-dim);line-height:1.5;font-weight:450;font-style:italic;}
  .quote-card .qw{font-size:11.5px;color:var(--accent-dim);font-weight:650;}
  .lite{text-align:center;padding:56px 24px;}
  .lite .num{font-size:72px;font-weight:660;color:var(--accent);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;}
  .lite .cap{font-size:15px;color:var(--text);margin-top:16px;font-weight:550;}
  .lite .note{font-size:14px;color:var(--text-dim);max-width:560px;margin:18px auto 0;line-height:1.6;font-weight:450;}

  .hidden{display:none !important;}
  .foot{padding:32px 0 56px;border-top:1px solid var(--hair);color:var(--text-mute);font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-weight:450;}

  @media(max-width:1024px){ .c-name .rg{display:none;} .cell{width:26px;height:26px;} .block.span3,.block.span4{grid-column:span 6;} .block.span8{grid-column:span 12;} }
  /* на планшете матрица в пин-карточке не влезает рядом с именем и действиями */
  @media(min-width:761px) and (max-width:1024px){ .cmp-row .c-matrix{display:none;} }

  /* ===================== MOBILE ===================== */
  @media(max-width:760px){
    .wrap{padding:0 16px;}
    .brand{gap:8px;} .logo-mark{width:92px;height:26px;}
    .brand-text h1{font-size:12px;}

    /* HERO: компактные отступы, живой line-height, контролы на всю ширину */
    .hero{margin:44px 0 40px;gap:20px;}
    .hero-title{font-size:28px;line-height:1.18;letter-spacing:-0.28px;}
    .hero-controls{width:100%;gap:8px;}
    .hero-controls .seg{width:100%;display:flex;}
    .hero-controls .seg button{flex:1;height:44px;}
    .brand-sep,.brand-text{display:none;}
    .head-actions{gap:8px;}
    .head-actions .btn-ghost,.head-actions .btn-accent{font-size:12px;padding:8px 12px;}
    .hero-desc{font-size:14px;}

    /* ПАНЕЛЬ КОНТРОЛОВ: единая сетка, всё по 100% */
    .ctl-row{flex-direction:column;align-items:stretch;gap:8px;}
    .ctl-left{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;}
    .crit-dd-btn{min-width:0;padding:0 12px;}
    .crit-dd-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .ctl-left .seg{grid-column:1/-1;display:flex;overflow:hidden;}
    .ctl-left .seg button{flex:1;min-width:0;font-size:12px;padding:0 8px;}
    .crit-dd,.region-dd{width:100%;}
    .crit-dd-btn{width:100%;justify-content:space-between;}
    .right-tools{flex-direction:column;align-items:stretch;gap:8px;width:100%;}
    .search{width:100%;}
    .search input,.search input:focus{width:100%;}
    #methodBtn{width:100%;justify-content:center;}
    .legend{gap:10px 18px;font-size:12px;padding:14px 2px 4px;}

    /* ШАПКА ТАБЛИЦЫ: скрываем надёжно (renderHead ставит инлайновый display:grid) */
    .thead{display:none !important;}

    /* МАТРИЦА: 11 ячеек в одну строку (24px + 4px gap = 304px) — сравнимость колонок сохраняется */
    .cell{width:24px;height:24px;border-radius:6px;}
    .c-matrix{gap:4px;flex-wrap:nowrap;justify-content:flex-start;}
    .cell .g{font-size:10.5px;}
    .cell.st-own .g,.cell.st-third_party .g{font-size:11.5px;}
    .ida-mark{width:8px;height:8px;top:-2px;right:-2px;border-radius:2px;box-shadow:0 0 0 1px var(--surface);}
    .cell[data-review]::after{width:5px;height:5px;top:-1px;right:-1px;border-width:1px;}

    /* СТРОКИ: имя сверху, матрица строкой, балл+действие снизу */
    .row,.lead-row{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px;}
    .r-left{width:100%;gap:10px;}
    .delta-slot,.c-cmp{width:34px;min-width:34px;}
    .c-name .rg{display:block;font-size:11.5px;}
    .r-right{width:100%;justify-content:space-between;}
    .r-right .c-action{margin-left:auto;}
    .c-score{align-items:flex-start;}
    .btn-discuss{padding:7px 14px;font-size:12.5px;}
    .lead-head{flex-wrap:wrap;padding:12px;gap:10px;}
    .lead-head-title{font-size:12.5px;}
    .lead-head-score{font-size:14px;}
    .check-block{padding:16px;}
    .check-actions{flex-wrap:wrap;}

    /* СРАВНЕНИЕ: карточка колонкой, матрица отдельной строкой (влезает целиком) */
    .cmp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;}
    .cmp-row .r-left{flex:1;min-width:0;width:auto;}
    .cmp-row .r-right{width:auto;flex:none;}
    .cmp-row .c-matrix{order:4;width:100%;}
    .cmp-change{padding:7px 12px;font-size:12px;}
    .cmp-x{width:30px;height:30px;}
    .cmp-open{padding:12px 20px;font-size:13px;}
    #appRoot{padding-bottom:104px;}

    /* МОДАЛКА */
    .modal{padding:22px;border-radius:18px;}
    .m-rk{min-width:92px;font-size:10px;}
    .m-acc-rule{flex-direction:column;gap:6px;}
    .m-acc-rule .m-rk{align-self:flex-start;}

    /* ОТЧЁТ */
    .block.span6,.block.span4,.block.span8,.block.span3{grid-column:span 12;}
    .seg-grid,.quote-grid{grid-template-columns:1fr;}
    .bar-row{grid-template-columns:96px 1fr 40px;}
  }

  /* ФОРМЫ: гейт-вход + заявка */
  .gate-bg{z-index:80;}
  .gate-modal{max-width:420px;}
  .lead-modal{max-width:460px;}
  .f-field{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;}
  .f-field>span{font-size:13px;font-weight:450;color:var(--text-dim);}
  .f-field input,.f-field textarea,.f-select select{width:100%;background:var(--surface-2);border:1px solid var(--hair);color:var(--text);
    font-family:inherit;font-size:14.5px;font-weight:450;padding:13px 16px;border-radius:12px;transition:border-color .2s var(--ease);box-sizing:border-box;}
  .f-field input::placeholder,.f-field textarea::placeholder{color:var(--text-mute);}
  .f-field input:focus,.f-field textarea:focus,.f-select select:focus{outline:none;border-color:rgba(213,255,12,.6);background:var(--surface-3);}
  .f-field input.err{border-color:var(--st-no);}
  .f-field textarea{resize:vertical;min-height:92px;}
  .f-select{position:relative;}
  .f-select select{appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;}
  .f-select i{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--text-mute);pointer-events:none;}
  .f-err{color:var(--st-no);font-size:12.5px;font-weight:500;margin:-3px 0 11px;}
  .f-submit{width:100%;justify-content:center;height:50px;font-size:14.5px;font-weight:500;margin-top:4px;}
  .f-consent{font-size:12px;color:var(--text-mute);text-align:center;line-height:1.55;margin:16px 0 0;}
  .f-consent a{color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:2px;}
  .f-consent a:hover{color:var(--accent);}
  
  .lead-done{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:22px 0 8px;}
  .lead-done i{font-size:46px;color:var(--accent);line-height:1;}
  .lead-done b{font-size:17px;font-weight:500;letter-spacing:-.01em;}
  .lead-done p{font-size:13.5px;color:var(--text-dim);margin:0 0 8px;}

  /* LOADING / ERROR (prod) */
  .loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 20px;gap:18px;}
  .spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--hair);border-top-color:var(--accent);animation:spin .8s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg)}}
  .loader p{color:var(--text-mute);font-size:13.5px;font-weight:450;}
  .errorbox{max-width:440px;margin:90px auto;text-align:center;color:var(--text-dim);}
  .errorbox h3{font-size:19px;color:var(--text);font-weight:600;margin-bottom:8px;letter-spacing:-.02em;}
  .errorbox p{font-size:14px;line-height:1.5;font-weight:450;}
  .errorbox button{margin-top:18px;}

  /* FOOTER LOGO */
  .foot-logo{display:inline-flex;align-items:center;color:var(--text-mute);border-radius:6px;transition:color .22s var(--ease);}
  .foot-logo:hover{color:var(--text);}
  .foot-logo .logo-mark{width:90px;height:25px;}

  /* ACCESSIBILITY UTILITIES */
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  /* видимый фокус только для клавиатуры; пилюли — фокусируемы (см. app.js) */
  :focus{outline:none;}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px;}
  .seg button:focus-visible,.btn-ghost:focus-visible,.pill:focus-visible,.modal .close:focus-visible,.search input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .pill{outline-offset:2px;}

  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  }


  .lead-modal h3{margin-bottom:26px;}
  .gate-modal .sub{margin-bottom:24px;}
