/* cyrillic-ext */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/static/fonts/5d21f468-9169-40b1-adbc-532317b95c1d.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/static/fonts/beef7b8c-8569-4451-99b3-9042d5939222.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/static/fonts/f6c9185d-117a-4915-b727-7a1cb8c338fd.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/static/fonts/5bd652c6-f0bf-420a-8505-0edcec2ffb6f.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;
}


/* ============================================================================
   CoFo Sans Lamoda — proprietary Lamoda cabinet face.
   No public CDN. Drop a licensed .woff2/.ttf into lamoda/fonts/ and this picks
   it up automatically; until then it falls back to Onest (the "similar" face).
   ============================================================================ */
@font-face{
  font-family:'CoFo Sans Lamoda';
  src:url('fonts/CoFoSansLamoda-Regular.woff2') format('woff2'),
      url('fonts/CoFoSansLamoda-Regular.woff') format('woff'),
      url('fonts/CoFoSansLamoda-Regular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* ============================================================================
   1. ДИЗАЙН-ТОКЕНЫ Lamoda Seller
   ============================================================================ */
:root{
  /* шрифт: подобранный близкий гротеск (Onest) */
  --font:'Onest',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;

  /* палитра */
  --text-primary:#171717;
  --text-black:#000000;
  --text-secondary:#444444;
  --text-muted:#888888;
  --white:#FFFFFF;
  --surface-light:#F5F5F5;
  --border:#E5E5E5;
  --border-card:rgba(0,0,0,0.12);
  --accent-orange:#F93C00;
  --accent-green:#368D20;
  --green-dark:#0A7542;
  --chart-past:#70A0FF;
  --link-blue:#2D68F6;
  --badge-yellow:#E0A800;

  /* радиусы и тени */
  --r-card:8px;
  --r-ctl:4px;
  --shadow-header:rgba(0,0,0,0.16) 0 -2px 8px 0;
  --shadow-pop:0 10px 30px -8px rgba(0,0,0,0.22), 0 2px 8px rgba(0,0,0,0.08);
  /* высота закреплённой шапки (шапка 52 + меню 44) — под ней липнут заголовки таблиц */
  --stick-top:96px;
}
/* переключатель шрифта: «подобранный» (Onest) ↔ «присланный» (CoFo Sans Lamoda) */
[data-font="cofo"]{--font:'CoFo Sans Lamoda','Onest',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;}

/* ============================================================================
   База
   ============================================================================ */
*{box-sizing:border-box;}
.lm-app{font-family:var(--font);font-weight:400;color:var(--text-primary);background:var(--surface-light);min-height:100vh;font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.lm-app button{font-family:inherit;}
.lm-app *::selection{background:#d9e4ff;}
.lm-num{font-variant-numeric:tabular-nums;}
.lm-rub{font-size:11px;line-height:16px;color:var(--text-secondary);padding-left:4px;}

/* ============================================================================
   2.1–2.2 Шапка + меню
   ============================================================================ */
.lm-header{position:sticky;top:0;z-index:40;background:var(--white);box-shadow:var(--shadow-header);}
.lm-header-top{height:52px;display:flex;align-items:center;gap:16px;padding:0 24px;}
.lm-logo{display:inline-flex;align-items:baseline;gap:2px;background:none;border:0;cursor:pointer;padding:0;letter-spacing:-0.01em;}
.lm-logo .b1{font-size:20px;font-weight:400;color:var(--text-black);}
.lm-logo .dot{width:5px;height:5px;border-radius:50%;background:var(--accent-orange);margin:0 7px 3px;align-self:flex-end;}
.lm-logo .b2{font-size:20px;font-weight:400;color:var(--text-muted);}
.lm-header-spacer{flex:1;}
.lm-header-user{display:flex;align-items:center;gap:14px;}
.lm-acct{display:inline-flex;align-items:center;gap:7px;font-size:16px;color:var(--text-black);background:none;border:0;cursor:pointer;white-space:nowrap;}
.lm-acct .chev{color:var(--text-muted);font-size:11px;}
.lm-refresh{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--text-secondary);background:none;border:0;cursor:pointer;padding:6px 4px;border-radius:var(--r-ctl);}
.lm-refresh:hover{color:var(--text-black);}
.lm-refresh .ic{font-size:15px;line-height:1;}
.lm-updated{font-size:11px;line-height:16px;color:var(--text-muted);white-space:nowrap;}
.lm-fonttoggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-ctl);overflow:hidden;}
.lm-fonttoggle button{font-size:12px;padding:5px 9px;background:var(--white);color:var(--text-secondary);border:0;cursor:pointer;white-space:nowrap;}
.lm-fonttoggle button.active{background:var(--text-primary);color:var(--white);}

.lm-nav{height:44px;display:flex;align-items:stretch;padding:0 24px;gap:0;overflow:visible;}
.lm-nav-wrap{position:relative;display:inline-flex;}
.lm-nav-item{position:relative;display:inline-flex;align-items:center;gap:5px;padding:0 12px;font-size:16px;line-height:20px;color:var(--text-black);background:none;border:0;cursor:pointer;white-space:nowrap;}
.lm-nav-item:hover{color:var(--accent-orange);}
.lm-nav-item.active{color:var(--text-primary);}
.lm-nav-item.active::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--text-primary);}
.lm-nav-item .cnt{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent-orange);color:#fff;font-size:11px;line-height:18px;text-align:center;}
.lm-nav-item .navchev{font-size:9px;color:var(--text-muted);}
.lm-nav-drop{position:absolute;z-index:60;top:calc(100% + 2px);left:6px;min-width:230px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:6px;}
.lm-nav-sub{display:block;width:100%;text-align:left;font:inherit;font-size:14px;color:var(--text-primary);background:none;border:0;cursor:pointer;padding:9px 12px;border-radius:var(--r-ctl);white-space:nowrap;}
.lm-nav-sub:hover{background:var(--surface-light);}
.lm-nav-sub.active{background:var(--surface-light);font-weight:500;}
.lm-stepdot.active{background:var(--text-black) !important;color:#fff !important;}
.lm-stepdot.done{background:var(--accent-green) !important;color:#fff !important;}

/* ============================================================================
   Раскладка / страница
   ============================================================================ */
.lm-main{max-width:1440px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:20px;}
.lm-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.lm-h1{font-size:24px;line-height:28px;font-weight:400;color:var(--text-primary);margin:0;}
.lm-sub{font-size:14px;color:var(--text-muted);margin:2px 0 0;}

/* ============================================================================
   Карточки
   ============================================================================ */
.lm-card{background:var(--white);border:1px solid var(--border-card);border-radius:var(--r-card);padding:16px;}
.lm-card-lg{padding:20px;}
.lm-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.lm-card-title{font-size:16px;line-height:20px;font-weight:400;color:var(--text-primary);margin:0;}
.lm-card-meta{font-size:11px;line-height:16px;color:var(--text-muted);}

/* 2.3 KPI */
.lm-kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));}
.lm-kpi{min-height:98px;background:var(--white);border:1px solid var(--border-card);border-radius:var(--r-card);padding:16px;display:flex;flex-direction:column;gap:8px;}
.lm-kpi-label{font-size:16px;line-height:20px;color:var(--text-primary);}
.lm-kpi-row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto;}
.lm-kpi-num{font-size:24px;line-height:28px;color:var(--text-primary);white-space:nowrap;}
.lm-kpi-sub{font-size:11px;line-height:16px;color:var(--text-muted);}

/* дельта-бейдж */
.lm-delta{display:inline-flex;align-items:center;gap:3px;height:28px;padding:0 8px;border-radius:var(--r-ctl);font-size:13px;white-space:nowrap;}
.lm-delta.up{color:var(--accent-green);background:rgba(54,141,32,0.10);}
.lm-delta.down{color:var(--accent-orange);background:rgba(249,60,0,0.08);}

/* ============================================================================
   2.10 Кнопки
   ============================================================================ */
.lm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:16px;line-height:1;border-radius:var(--r-ctl);cursor:pointer;border:1px solid transparent;padding:0 18px;height:48px;white-space:nowrap;text-decoration:none;transition:background .12s,color .12s,border-color .12s,opacity .12s;}
a.lm-btn:hover{text-decoration:none;}
.lm-btn-primary{background:var(--text-black);color:var(--white);}
.lm-btn-primary:hover{background:var(--text-primary);}
.lm-btn-primary:disabled{background:var(--text-muted);cursor:not-allowed;}
.lm-btn-outline{background:var(--white);color:var(--text-black);border-color:var(--text-black);}
.lm-btn-outline:hover{background:var(--surface-light);}
.lm-btn-tall{height:52px;}
.lm-btn-text{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-primary);padding:6px 4px;}
.lm-btn-text:hover{color:var(--accent-orange);}
.lm-btn-text.muted{color:var(--text-muted);}
.lm-iconbtn{width:36px;height:36px;flex:none;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--white);color:var(--text-secondary);display:grid;place-items:center;cursor:pointer;font-size:15px;}
.lm-iconbtn:hover{border-color:var(--text-black);color:var(--text-black);}
.lm-iconbtn.sm{width:30px;height:30px;font-size:14px;}

/* ============================================================================
   2.6 Поиск · 2.7 Селект/дейтпикер
   ============================================================================ */
.lm-search{position:relative;display:flex;align-items:center;width:100%;}
.lm-search .mag{position:absolute;left:16px;color:var(--text-muted);pointer-events:none;display:grid;place-items:center;}
.lm-search input{width:100%;height:52px;font-family:inherit;font-size:16px;letter-spacing:0.15px;color:var(--text-primary);background:var(--white);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 16px 0 44px;outline:none;}
.lm-search input::placeholder{color:var(--text-muted);}
.lm-search input:focus{border-color:var(--text-black);}
.lm-field{display:flex;flex-direction:column;gap:6px;}
.lm-field > label{font-size:11px;line-height:16px;color:var(--text-muted);}
.lm-select,.lm-input,.lm-textarea{width:100%;font-family:inherit;font-size:16px;letter-spacing:0.15px;color:var(--text-primary);background:var(--white);border:1px solid var(--border);border-radius:var(--r-ctl);padding:13px 14px;outline:none;}
.lm-select:focus,.lm-input:focus,.lm-textarea:focus{border-color:var(--text-black);}
.lm-select-wrap{position:relative;}
.lm-select{padding-right:36px;cursor:pointer;-webkit-appearance:none;appearance:none;}
.lm-select-wrap .chev{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-secondary);}
.lm-textarea{resize:vertical;line-height:22px;min-height:96px;}
.lm-daterange{display:flex;align-items:flex-end;gap:10px;}
.lm-daterange .ic{margin-bottom:13px;color:var(--text-secondary);}

/* ============================================================================
   2.8 Статус-бейдж · 2.9 таб-фильтр
   ============================================================================ */
.lm-badge{display:inline-flex;align-items:center;gap:7px;background:var(--surface-light);border-radius:var(--r-ctl);padding:4px 8px;font-size:13px;line-height:16px;color:var(--text-primary);white-space:nowrap;}
.lm-dot{width:8px;height:8px;border-radius:50%;flex:none;}
.lm-dot.green{background:var(--accent-green);}
.lm-dot.orange{background:var(--accent-orange);}
.lm-dot.grey{background:var(--text-muted);}
.lm-dot.yellow{background:var(--badge-yellow);}

.lm-tabs{display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--border);}
.lm-tab{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 16px 12px;font-size:16px;line-height:20px;color:var(--text-muted);background:none;border:0;cursor:pointer;white-space:nowrap;}
.lm-tab:hover{color:var(--text-secondary);}
.lm-tab.active{color:var(--text-primary);}
.lm-tab.active::after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:2px;background:var(--text-primary);}
.lm-tab .cnt{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--text-primary);color:#fff;font-size:12px;line-height:20px;text-align:center;}
.lm-tab.active .cnt{background:var(--text-primary);}

/* сегмент-табы (график) */
.lm-seg{display:inline-flex;height:36px;border:1px solid var(--border);border-radius:var(--r-ctl);overflow:hidden;}
.lm-seg button{font-size:14px;padding:0 14px;background:var(--white);color:var(--text-primary);border:0;border-right:1px solid var(--border);cursor:pointer;}
.lm-seg button:last-child{border-right:0;}
.lm-seg button.active{background:var(--text-primary);color:var(--white);}

/* период-дропдаун */
.lm-rangewrap{position:relative;}
.lm-rangebtn{display:inline-flex;align-items:center;gap:8px;height:36px;font-size:16px;letter-spacing:0.15px;color:var(--text-primary);background:var(--white);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 12px;cursor:pointer;}
.lm-rangebtn .chev{color:var(--text-secondary);font-size:11px;}
.lm-rangepop{position:absolute;z-index:50;top:calc(100% + 6px);right:0;display:none;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:14px;width:300px;}
.lm-rangepop.open{display:block;}
.lm-rangepop .presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.lm-rangepop .presets button{flex:1 0 30%;border:1px solid var(--border);background:var(--white);color:var(--text-primary);font:inherit;font-size:13px;padding:8px;border-radius:var(--r-ctl);cursor:pointer;}
.lm-rangepop .presets button:hover{border-color:var(--text-black);}
.lm-rangepop .presets button.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary);}
.lm-rangepop .rng-foot{margin-top:12px;}
.lm-rangepop .rng-save{width:100%;border:0;background:var(--text-black);color:#fff;font:inherit;font-size:14px;padding:11px;border-radius:var(--r-ctl);cursor:pointer;}

/* календарь */
.lm-cal{user-select:none;margin-bottom:8px;}
.lm-cal .cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;color:var(--text-primary);}
.lm-cal .cal-head button{border:0;background:transparent;cursor:pointer;color:var(--text-muted);font-size:17px;padding:2px 8px;border-radius:var(--r-ctl);}
.lm-cal .cal-head button:hover{background:var(--surface-light);color:var(--text-primary);}
.lm-cal .cal-wd{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:var(--text-muted);font-size:11px;margin-bottom:4px;}
.lm-cal .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.lm-cal .cal-day{border:0;background:transparent;cursor:pointer;padding:8px 0;border-radius:var(--r-ctl);font:inherit;font-size:13px;color:var(--text-primary);}
.lm-cal .cal-day:hover{background:var(--surface-light);}
.lm-cal .cal-inrange{background:#eaf0ff;}
.lm-cal .cal-sel{background:var(--text-primary) !important;color:#fff !important;}
.lm-cal .cal-empty{padding:8px 0;}

/* ============================================================================
   2.5 Таблица
   ============================================================================ */
.lm-table-wrap{overflow:auto;max-height:min(70vh,720px);border:1px solid var(--border);border-radius:var(--r-card);background:var(--white);-webkit-overflow-scrolling:touch;}
.lm-table{width:100%;border-collapse:collapse;font-size:15px;}
.lm-table thead th{position:sticky;top:var(--stick-top);z-index:20;height:40px;text-align:left;background:var(--surface-light);color:var(--text-secondary);font-size:13px;font-weight:500;line-height:16px;padding:0 14px;white-space:nowrap;user-select:none;box-shadow:inset 0 -1px 0 var(--border);}
/* таблица в собственном скролл-боксе: шапка липнет к его верху, а не к странице */
.lm-table-wrap > .lm-table thead th{top:0;}
.lm-modal .lm-table thead th{top:0;}
.lm-table thead th.sortable{cursor:pointer;}
.lm-table thead th.sortable:hover{color:var(--text-primary);background:#ececec;}
.lm-table thead th .ar{color:var(--accent-orange);margin-left:4px;font-size:10px;}
.lm-table thead th.num,.lm-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.lm-table tbody td{height:44px;padding:9px 14px;border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;}
.lm-table tbody tr:nth-child(even) td{background:#fafafa;}
.lm-table tbody tr:last-child td{border-bottom:0;}
.lm-table tbody tr:hover td{background:#eef3ff;}
.lm-table .lm-link{color:var(--link-blue);cursor:pointer;}
.lm-table .lm-link:hover{text-decoration:underline;}
.lm-cellnote{display:block;font-size:11px;line-height:16px;color:var(--text-muted);margin-top:2px;}
.lm-thumb{width:48px;height:48px;border-radius:var(--r-ctl);background:var(--surface-light);border:1px solid var(--border);display:grid;place-items:center;font-size:13px;color:var(--text-muted);flex:none;overflow:hidden;}
.lm-thumb.tall{width:48px;height:64px;}
.lm-prodcell{display:flex;align-items:center;gap:12px;}
.lm-checkbox{width:18px;height:18px;accent-color:var(--text-black);cursor:pointer;}

/* инлайн-редактор цены */
.lm-price-view{display:inline-flex;align-items:center;gap:8px;cursor:pointer;}
.lm-price-view .pen{opacity:0;color:var(--text-muted);font-size:13px;transition:opacity .12s;}
.lm-table tbody tr:hover .lm-price-view .pen{opacity:1;}
.lm-price-edit{display:inline-flex;align-items:center;gap:6px;}
.lm-price-edit input{width:96px;height:36px;font-family:inherit;font-size:15px;text-align:right;border:1px solid var(--text-black);border-radius:var(--r-ctl);padding:0 8px;outline:none;color:var(--text-primary);}
.lm-price-edit .suf{font-size:11px;color:var(--text-secondary);}
.lm-ok{width:30px;height:30px;border:0;border-radius:var(--r-ctl);background:var(--accent-green);color:#fff;cursor:pointer;display:grid;place-items:center;font-size:15px;}
.lm-cancel{width:30px;height:30px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--white);color:var(--text-secondary);cursor:pointer;display:grid;place-items:center;font-size:14px;}

/* Excel-фильтр в заголовке столбца */
.lm-table-wrap.ovis{overflow:visible;}
.lm-th-inner{display:flex;align-items:center;gap:6px;}
.lm-th-inner.num{justify-content:flex-end;}
.lm-th-label{cursor:pointer;display:inline-flex;align-items:center;}
.lm-funnel{flex:none;width:22px;height:22px;display:grid;place-items:center;border:0;background:transparent;border-radius:4px;cursor:pointer;color:var(--text-muted);}
.lm-funnel:hover{background:var(--surface-light);color:var(--text-secondary);}
.lm-funnel.active{color:var(--accent-orange);background:rgba(249,60,0,.08);}
.lm-fmenu{position:absolute;z-index:60;top:calc(100% + 4px);left:8px;width:248px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:10px;cursor:default;}
.lm-fmenu.right{left:auto;right:8px;}
.lm-fmenu-search{position:relative;margin-bottom:8px;}
.lm-fmenu-search input{width:100%;height:34px;font-family:inherit;font-size:13px;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 10px;outline:none;}
.lm-fmenu-search input:focus{border-color:var(--text-black);}
.lm-fmenu-all{display:flex;align-items:center;gap:9px;padding:6px 4px;border-bottom:1px solid var(--border);margin-bottom:4px;font-size:13px;color:var(--text-primary);cursor:pointer;}
.lm-fmenu-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;}
.lm-fmenu-opt{display:flex;align-items:center;gap:9px;padding:6px 4px;font-size:13px;font-weight:400;color:var(--text-primary);cursor:pointer;border-radius:4px;}
.lm-fmenu-opt:hover{background:var(--surface-light);}
.lm-fmenu-opt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lm-fmenu-empty{padding:14px 4px;font-size:12px;color:var(--text-muted);text-align:center;}
.lm-fmenu-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);}
.lm-fmenu-foot .reset{background:none;border:0;cursor:pointer;font:inherit;font-size:13px;color:var(--text-muted);padding:4px;}
.lm-fmenu-foot .reset:hover{color:var(--text-primary);}
.lm-fmenu-foot .done{background:var(--text-black);color:#fff;border:0;cursor:pointer;font:inherit;font-size:13px;padding:7px 16px;border-radius:var(--r-ctl);}
.lm-th-chips{display:flex;flex-wrap:wrap;gap:6px;}
.lm-fchip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px 0 10px;background:var(--surface-light);border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--text-primary);}
.lm-fchip b{font-weight:500;}
.lm-fchip button{background:none;border:0;cursor:pointer;color:var(--text-muted);font-size:13px;line-height:1;padding:0;}
.lm-fchip button:hover{color:var(--text-primary);}

/* пагинация */
.lm-pager{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px 2px 0;font-size:13px;color:var(--text-secondary);}
.lm-pager .grp{display:inline-flex;align-items:center;gap:8px;}
.lm-pager select{font-family:inherit;font-size:13px;border:1px solid var(--border);border-radius:var(--r-ctl);padding:4px 6px;background:#fff;color:var(--text-primary);}
.lm-pager .pg{display:inline-flex;align-items:center;gap:6px;}
.lm-pager .pg button{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--r-ctl);background:#fff;cursor:pointer;color:var(--text-primary);}
.lm-pager .pg button:disabled{color:var(--text-muted);cursor:not-allowed;}
.lm-pager .spacer{flex:1;}

/* ============================================================================
   Прогресс-бар / доля
   ============================================================================ */
.lm-bar{height:9px;border-radius:999px;background:var(--surface-light);border:1px solid var(--border);overflow:hidden;}
.lm-bar > span{display:block;height:100%;background:var(--text-primary);border-radius:999px;}
.lm-bar.green > span{background:var(--accent-green);}
.lm-bar.orange > span{background:var(--accent-orange);}

/* размерные чипы */
.lm-size{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:26px;padding:0 6px;border:1px solid var(--border);border-radius:var(--r-ctl);font-size:12px;color:var(--text-primary);}
.lm-size.out{border-color:rgba(249,60,0,.4);background:rgba(249,60,0,.06);color:var(--accent-orange);text-decoration:line-through;}

/* ============================================================================
   2.11 Тост · 2.12 Модалка
   ============================================================================ */
.lm-toasts{position:fixed;right:20px;bottom:20px;z-index:120;display:flex;flex-direction:column;gap:10px;align-items:flex-end;}
.lm-toast{display:flex;align-items:center;gap:10px;min-width:240px;max-width:380px;padding:13px 16px;border-radius:var(--r-card);color:#fff;font-size:14px;box-shadow:var(--shadow-pop);animation:lm-toast-in .22s ease;}
.lm-toast.green{background:var(--accent-green);}
.lm-toast.orange{background:var(--accent-orange);}
.lm-toast .ic{font-size:16px;}
@keyframes lm-toast-in{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

.lm-scrim{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:24px;}
.lm-modal{background:var(--white);border-radius:var(--r-card);width:560px;max-width:100%;max-height:90vh;overflow:auto;padding:24px;}
.lm-modal.wide{width:720px;}
.lm-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}
.lm-modal-title{font-size:24px;line-height:28px;font-weight:400;margin:0;color:var(--text-primary);}
.lm-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:22px;}
.lm-modal-x{background:none;border:0;cursor:pointer;color:var(--text-muted);font-size:22px;line-height:1;padding:0 2px;}
.lm-modal-x:hover{color:var(--text-primary);}

/* спиннер на кнопке */
.lm-spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:lm-spin .7s linear infinite;}
@keyframes lm-spin{to{transform:rotate(360deg);}}

/* аудит-подпись */
.lm-audit{font-size:11px;line-height:16px;color:var(--text-muted);margin-top:8px;}

/* зелёная рамка ответа */
.lm-answer{border:1px solid rgba(54,141,32,.35);background:rgba(54,141,32,.05);border-radius:var(--r-ctl);padding:12px 14px;font-size:15px;line-height:22px;color:var(--text-primary);}
.lm-answer .who{font-size:11px;color:var(--accent-green);margin-bottom:4px;}

/* чипы-шаблоны */
.lm-chip{display:inline-flex;align-items:center;font-size:14px;color:var(--text-black);background:var(--white);border:1px solid var(--text-black);border-radius:var(--r-ctl);padding:6px 12px;cursor:pointer;white-space:nowrap;}
.lm-chip:hover{background:var(--surface-light);}
.lm-chip.add{border-style:dashed;border-color:var(--text-muted);color:var(--text-secondary);}
.lm-chip.active{background:var(--text-black);color:#fff;border-color:var(--text-black);}

/* пустое состояние / скелетон */
.lm-empty{padding:48px 16px;text-align:center;color:var(--text-muted);font-size:15px;}
.lm-skel{height:14px;border-radius:4px;background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);background-size:400% 100%;animation:lm-shimmer 1.3s ease infinite;}
@keyframes lm-shimmer{from{background-position:100% 0;}to{background-position:-100% 0;}}

/* утилиты */
.lm-row{display:flex;align-items:center;gap:10px;}
.lm-between{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.lm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:900px){.lm-grid2{grid-template-columns:1fr;}}
.lm-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.lm-toolbar .spacer{flex:1;}
[hidden]{display:none !important;}

/* Динамика: все 30 дней помещаются в ширину карточки — без горизонтальной прокрутки */
.lm-wrap-fit { overflow-x: hidden; }
/* полноширинная карта: вырывается из центрированного контейнера на всю ширину экрана */
.lm-fullbleed { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 0 24px; box-sizing: border-box; }
/* высокая таблица: показывает больше строк до появления вертикальной прокрутки (+~10 строк) */
.lm-table-wrap.lm-wrap-tall { max-height: min(88vh, 1180px); }

/* вертикальная воронка кабинета */
.lm-vfunnel { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.lm-vf-stage { display: flex; flex-direction: column; gap: 5px; }
.lm-vf-bar-wrap { display: flex; }
.lm-vf-bar { height: 40px; border-radius: var(--r-ctl); display: flex; align-items: center; justify-content: flex-end; padding: 0 12px; min-width: 54px; transition: width .3s var(--ease); }
.lm-vf-bar.grey { background: #d7d7dc; }
.lm-vf-bar.green { background: rgba(54,141,32,.85); }
.lm-vf-bar.orange { background: rgba(249,60,0,.78); }
.lm-vf-val { font-size: 15px; font-variant-numeric: tabular-nums; color: var(--white); font-weight: 500; }
.lm-vf-bar.grey .lm-vf-val { color: var(--text-primary); }
.lm-vf-label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-secondary); }
.lm-vf-conv { margin-left: auto; font-variant-numeric: tabular-nums; color: var(--text-muted); }

/* выделение диапазона в таблицах (как в Google Таблицах) + сводка */
.lm-cellsel { background: #CFE3FF !important; }
.lm-table tbody td.lm-cellsel { box-shadow: inset 0 0 0 1px rgba(45,104,246,.35); }
.lm-sumbar { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 300; display: none; align-items: center; gap: 20px; background: #1F1F23; color: #fff; border-radius: 999px; padding: 11px 22px; box-shadow: 0 12px 32px -10px rgba(0,0,0,.5); font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lm-sumbar.show { display: inline-flex; }
.lm-sumbar b { font-weight: 600; }
.lm-sumbar .lm-sum-k { color: rgba(255,255,255,.55); margin-right: 6px; }
.lm-sumbar .lm-sum-x { width: 24px; height: 24px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; font-size: 14px; line-height: 1; }
.lm-sumbar .lm-sum-x:hover { background: rgba(255,255,255,.24); }
.lm-fullbleed .lm-dyn th.num, .lm-fullbleed .lm-dyn td.num { padding-left: 3px; padding-right: 3px; }
.lm-fullbleed .lm-dyn thead th.num { font-size: 12px; }
.lm-fullbleed .lm-dyn td.num { font-size: 13px; }
/* цены/скидки — 4-значные суммы: мельче шрифт и плотнее, чтобы всё влезло без прокрутки */
.lm-fullbleed .lm-dyn td.pc { font-size: 11px; padding-left: 2px; padding-right: 2px; letter-spacing: -0.02em; }
.lm-dyn { width: 100%; table-layout: fixed; }
.lm-dyn th, .lm-dyn td { white-space: nowrap; }
.lm-dyn th.num, .lm-dyn td.num { min-width: 0; padding-left: 2px; padding-right: 2px; font-size: 13px; text-align: center; }
.lm-dyn thead th.num { font-size: 11px; }
.lm-dyn tbody td { height: auto; padding-top: 8px; padding-bottom: 8px; }
.lm-zero { color: var(--text-muted); }
/* левые информационные колонки — ширина задаётся через <colgroup> (можно тянуть), текст усечён по ширине */
.lm-dyn .dc-brand, .lm-dyn .dc-pred, .lm-dyn .dc-art, .lm-dyn .dc-size { padding-left: 10px; padding-right: 8px; overflow: hidden; text-overflow: ellipsis; }
.lm-dyn tbody td.dc-art { font-weight: 600; color: var(--text-primary); }
.lm-dyn tbody td.dc-brand { color: var(--text-muted); }
/* колонка «Итого» */
.lm-dyn-total { width: 54px; text-align: right; padding-right: 12px; }
.lm-dyn thead th.lm-dyn-total { background: var(--surface-light); }

/* Вариант с горизонтальной прокруткой (Цены — 30 дней широких значений) */
.lm-dyn.lm-dyn-scroll { table-layout: auto; width: max-content; min-width: 100%; }
.lm-dyn.lm-dyn-scroll th.num, .lm-dyn.lm-dyn-scroll td.num { min-width: 52px; }
.lm-dyn.lm-dyn-scroll td.dc-brand, .lm-dyn.lm-dyn-scroll td.dc-pred, .lm-dyn.lm-dyn-scroll td.dc-art { white-space: nowrap; }
/* закреплённые слева инфо-колонки: разделитель справа + зебра */
.lm-dyn.lm-dyn-scroll td.lm-pin, .lm-dyn.lm-dyn-scroll th.lm-pin { overflow: hidden; text-overflow: ellipsis; }
.lm-dyn.lm-dyn-scroll td.dc-art.lm-pin, .lm-dyn.lm-dyn-scroll th.dc-art.lm-pin { box-shadow: 2px 0 0 -1px var(--border), 6px 0 8px -6px rgba(0,0,0,.12); }
.lm-dyn.lm-dyn-scroll tbody tr:nth-child(even) td.lm-pin { background: #fafafa !important; }

/* тепловая карта цен: зелёная — высокая, жёлтая — средняя, красная — низкая */
.lm-dyn td.pc { font-weight: 500; }
.lm-dyn td.pc.ph { background: rgba(54, 141, 32, .16); color: var(--green-dark); }
.lm-dyn td.pc.pm { background: rgba(224, 168, 0, .20); color: #8A6A00; }
.lm-dyn td.pc.pl { background: rgba(249, 60, 0, .12); color: var(--accent-orange); }
.lm-dyn td.pc.pz { color: var(--text-muted); }

/* Excel-воронка в заголовке (как в кабинете WB) — заголовки остаются липкими
   (sticky сам создаёт контекст для абсолютной ручки, position:relative НЕ ставим,
   иначе инфо-заголовки перестают закрепляться при вертикальной прокрутке) */
.lm-thwrap { display: flex; align-items: center; gap: 2px; }
.lm-hl { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
/* ручка изменения ширины у правого края заголовка */
.lm-colresize { position: absolute; top: 0; right: -3px; width: 8px; height: 100%; cursor: col-resize; z-index: 30; }
.lm-colresize::after { content: ""; position: absolute; right: 3px; top: 7px; bottom: 7px; width: 2px; border-radius: 2px; background: transparent; transition: background .12s; }
.lm-colresize:hover::after, .lm-colresize.dragging::after { background: var(--link-blue); }
.lm-fbtn { display: inline-flex; align-items: center; justify-content: center; flex: none; padding: 2px; width: 18px; height: 18px; border: 0; background: transparent; color: var(--text-muted); cursor: pointer; border-radius: 4px; vertical-align: middle; }
.lm-fbtn:hover { background: #ececec; color: var(--text-primary); }
.lm-fbtn.active { color: var(--accent-orange); background: rgba(249, 60, 0, .12); }

/* попап Excel-фильтра */
.lm-fmenu { position: fixed; z-index: 600; width: 240px; background: var(--white); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow-pop); padding: 6px; font-family: var(--font); font-size: 13px; color: var(--text-primary); }
.lm-fm-sort { display: flex; flex-direction: column; padding-bottom: 4px; margin-bottom: 4px; border-bottom: 1px solid var(--border); }
.lm-fm-sort button { text-align: left; border: 0; background: transparent; color: var(--text-primary); font: inherit; padding: 7px 9px; border-radius: 6px; cursor: pointer; }
.lm-fm-sort button:hover { background: var(--surface-light); }
.lm-fm-search { padding: 0 2px 6px; }
.lm-fm-search input { width: 100%; box-sizing: border-box; font: inherit; font-size: 12.5px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 7px; background: var(--white); color: var(--text-primary); outline: none; }
.lm-fm-search input:focus { border-color: var(--link-blue); }
.lm-fm-all { display: flex; align-items: center; gap: 7px; padding: 6px 9px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); cursor: pointer; white-space: nowrap; }
.lm-fm-list { max-height: 220px; overflow: auto; padding: 4px 0; }
.lm-fm-row { display: flex; align-items: center; gap: 8px; padding: 5px 9px; cursor: pointer; border-radius: 6px; }
.lm-fm-row:hover { background: var(--surface-light); }
.lm-fm-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-fmenu input[type=checkbox] { width: 15px; height: 15px; accent-color: var(--link-blue); cursor: pointer; flex: none; margin: 0; }
.lm-fm-foot { display: flex; gap: 6px; padding: 6px 2px 2px; border-top: 1px solid var(--border); }
.lm-fm-foot button { flex: 1; border: 1px solid var(--border); background: var(--white); color: var(--text-primary); font: inherit; font-weight: 600; font-size: 12.5px; padding: 8px; border-radius: 7px; cursor: pointer; }
.lm-fm-foot button:hover { background: var(--surface-light); }
.lm-fm-apply { background: var(--link-blue) !important; color: #fff !important; border-color: var(--link-blue) !important; }
.lm-fm-apply:hover { filter: brightness(.95); }

/* ── Линии-разделители во всех таблицах ── */
.lm-table th, .lm-table td { border-right: 1px solid var(--border); }
.lm-table th:last-child, .lm-table td:last-child { border-right: 0; }

/* ============================================================================
   Финансы
   ============================================================================ */
.lm-finnote { margin: 10px 2px 0; font-size: 12px; line-height: 17px; color: var(--text-muted); }
.lm-infobanner { display: flex; align-items: center; gap: 10px; background: rgba(45,104,246,.06); border: 1px solid rgba(45,104,246,.18); border-radius: var(--r-card); padding: 11px 14px; font-size: 13px; color: var(--text-secondary); margin: 16px 0 14px; }
.lm-ib-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--link-blue); flex: none; }

/* кнопка + поповер «Параметры расчёта» */
.lm-finparams-wrap { position: relative; }
.lm-btn-secondary { display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 14px; font-size: 15px; color: var(--text-primary); background: var(--white); border: 1px solid var(--border); border-radius: var(--r-ctl); cursor: pointer; white-space: nowrap; }
.lm-btn-secondary:hover { border-color: var(--text-black); }
.lm-btn-secondary .chev { color: var(--text-muted); font-size: 11px; }
.lm-finparams { position: absolute; z-index: 60; top: calc(100% + 6px); right: 0; width: 320px; background: var(--white); border: 1px solid var(--border); border-radius: var(--r-card); box-shadow: var(--shadow-pop); padding: 14px; display: flex; flex-direction: column; gap: 14px; }
.lm-finparams-row { display: flex; flex-direction: column; gap: 8px; }
.lm-finparams-k { font-size: 13px; color: var(--text-primary); }
.lm-finparams-h { color: var(--text-muted); font-size: 11px; }
.lm-segbar { display: inline-flex; border: 1px solid var(--border); border-radius: var(--r-ctl); overflow: hidden; }
.lm-seg-b { flex: 1; font: inherit; font-size: 13px; padding: 8px 10px; background: var(--white); color: var(--text-secondary); border: 0; border-right: 1px solid var(--border); cursor: pointer; white-space: nowrap; }
.lm-seg-b:last-child { border-right: 0; }
.lm-seg-b:hover { background: var(--surface-light); }
.lm-seg-b.active { background: var(--text-black); color: #fff; }

/* сводка: водопад + карточка эффективной ставки */
.lm-fin-summary { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; align-items: start; }
@media (max-width: 1100px) { .lm-fin-summary { grid-template-columns: 1fr; } }
.lm-waterfall { display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.lm-wf-step { display: grid; grid-template-columns: 220px minmax(0, 1fr) 150px; align-items: center; gap: 14px; }
.lm-wf-label { font-size: 14px; color: var(--text-primary); }
.lm-wf-track { position: relative; height: 34px; background: var(--surface-light); border-radius: var(--r-ctl); }
.lm-wf-bar { position: absolute; top: 0; height: 100%; border-radius: var(--r-ctl); transition: width .3s var(--ease), left .3s var(--ease); }
.lm-wf-bar.base { background: rgba(54,141,32,.28); }
.lm-wf-bar.total { background: var(--accent-green); }
.lm-wf-bar.sub { background: var(--accent-orange); }
.lm-wf-bar.add { background: var(--link-blue); }
.lm-wf-val { text-align: right; font-variant-numeric: tabular-nums; font-size: 15px; color: var(--text-primary); }
.lm-wf-val.sub { color: var(--accent-orange); }
.lm-wf-val.add { color: var(--link-blue); }
.lm-wf-val.total { color: var(--accent-green); font-weight: 600; }
.lm-fineff { display: flex; flex-direction: column; gap: 6px; }
.lm-fineff-num { font-size: 40px; line-height: 44px; letter-spacing: -.02em; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.lm-fineff-split { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--border); font-size: 13px; color: var(--text-secondary); }
.lm-fineff-split span { display: inline-flex; align-items: center; gap: 8px; }

/* скелетон загрузки */
.lm-sk { position: relative; overflow: hidden; background: #ededed; border-radius: 6px; }
.lm-sk::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent); animation: lm-shimmer 1.2s infinite; }
@keyframes lm-shimmer { 100% { transform: translateX(100%); } }
.lm-sk-line { height: 12px; }
.lm-sk-num { height: 26px; width: 55%; margin: 6px 0; }
.lm-kpi .lm-sk-line:first-child { margin-bottom: auto; }
.lm-sk-table { display: flex; flex-direction: column; gap: 14px; }
.lm-sk-row { display: grid; grid-template-columns: 22% 14% 14% 12%; gap: 22px; }

/* ── Строка фильтров под шапкой (в каждом столбце) ── */
.lm-filterrow th { position: static; top: auto; height: auto; padding: 5px 6px; background: var(--white); }
/* внутри скролл-бокса строка фильтров липнет под шапкой (шапка = 40px) */
.lm-table-wrap > .lm-table:not(.lm-nostick) .lm-filterrow th { position: sticky; top: 40px; z-index: 18; box-shadow: inset 0 -1px 0 var(--border); }
.lm-filterrow input { width: 100%; min-width: 72px; box-sizing: border-box; height: 30px; font-size: 12px; font-family: inherit; color: var(--text-primary); border: 1px solid var(--border); border-radius: var(--r-ctl); padding: 0 8px; outline: none; transition: border-color .12s; }
.lm-filterrow input::placeholder { color: var(--text-muted); }
.lm-filterrow input:focus { border-color: var(--accent-orange); }

/* ── панель выбора периода (календарь) в «Ценах» и «Динамике» ── */
.lm-periodbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);padding:10px 14px;margin-bottom:14px;}
.lm-pb-lab{font-size:13px;color:var(--text-secondary);}
.lm-pb-date{height:32px;font-size:13px;font-family:inherit;color:var(--text-primary);background:var(--white);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 8px;outline:none;}
.lm-pb-date:focus{border-color:var(--text-primary);}
.lm-pb-dash{color:var(--text-muted);}
.lm-pb-apply{height:32px;font-size:13px;font-family:inherit;background:var(--text-primary);color:var(--white);border:0;border-radius:var(--r-ctl);padding:0 16px;cursor:pointer;}
.lm-pb-apply:hover{opacity:.85;}
.lm-pb-preset{height:32px;font-size:13px;font-family:inherit;background:var(--white);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 12px;cursor:pointer;}
.lm-pb-preset:hover{border-color:var(--text-primary);color:var(--text-primary);}
.lm-pb-load{font-size:13px;color:var(--text-secondary);}
.lm-pb-hint{font-size:11px;color:var(--text-muted);margin-left:auto;}

/* ── строка «Итого» в ежемесячном отчёте (Финансы → По месяцам) ── */
.lm-mtotal td{background:var(--surface-light);border-top:2px solid var(--border);}
.lm-pb-preset.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary);}
