/* GPT Debit CRM — дизайн-система: design-system/gpt-debit-crm/MASTER.md
   Стиль: в духе Apple (навык apple-design) для рабочих инструментов · плотная раскладка · системный шрифт (SF на Mac/iPhone,
   Segoe UI на Windows; Fira Sans — запасной) · иконки Lucide (SVG).
   Цвета — только через токены ниже; текст на фоне — контраст не ниже 4.5:1. */

@font-face{font-family:"Fira Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/vendor/fonts/fira-sans-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/vendor/fonts/fira-sans-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/vendor/fonts/fira-sans-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/vendor/fonts/fira-sans-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/vendor/fonts/fira-sans-latin-400-normal.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:"Fira Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/vendor/fonts/fira-sans-latin-500-normal.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:"Fira Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/vendor/fonts/fira-sans-latin-600-normal.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:"Fira Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/vendor/fonts/fira-sans-latin-700-normal.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{
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Fira Sans",system-ui,sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  /* поверхности и текст */
  --bg:#F5F5F7; --surface:#FFFFFF; --surface-2:#F2F2F7; --surface-3:#E8E8ED;
  --border:#E5E5EA; --border-strong:#D2D2D7;
  --text:#1D1D1F; --text-2:#424245; --text-3:#6E6E73;
  /* бренд */
  --primary:#0071E3; --primary-hover:#0062C3; --primary-soft:#E8F1FD; --primary-line:#B3D4F8; --on-primary:#FFFFFF;
  --accent:#D97706;
  /* смысл */
  --danger:#DC2626; --danger-text:#B91C1C; --danger-soft:#FEF2F2; --danger-line:#FECACA;
  --warning-text:#B45309; --warning-soft:#FFFBEB; --warning-line:#FDE68A;
  --success:#16A34A; --success-text:#15803D; --success-soft:#F0FDF4; --success-line:#BBF7D0;
  --info-text:#1D4ED8; --info-soft:#EFF6FF;
  --neutral-soft:#F1F5F9; --neutral-text:#475569;
  /* статусы заказов — те же, что на карте */
  --st-red:#DC2626; --st-blue:#2563EB; --st-green:#16A34A; --st-gray:#94A3B8; --st-amber:#D97706;
  /* меню */
  --side-bg:#F2F2F7; --side-hover:rgba(0,0,0,.05); --side-text:#1D1D1F; --side-muted:#6E6E73; --side-active:#0071E3;
  /* ритм */
  --r-sm:8px; --r:10px; --r-lg:16px;
  --sh-1:0 1px 2px rgba(0,0,0,.04),0 2px 10px rgba(0,0,0,.04); --sh-2:0 24px 60px rgba(0,0,0,.18);
  --ease:cubic-bezier(.2,.7,.2,1);
  /* Пружина без отскока (как у Apple: затухание 1.0, отклик 0.35 с) — для появления окон и панелей.
     Форма одна, длительность — по размеру: мелочь 0.37 с, окна 0.52 с. Переходы CSS прерываемые: обратное
     движение начинается с текущего положения. */
  --spring:linear(0, 0.004 1.0%, 0.032 3.0%, 0.098 5.7%, 0.203 9.0%, 0.334 12.9%, 0.473 17.2%, 0.605 22.1%, 0.718 27.3%, 0.808 33.0%, 0.875 39.0%, 0.922 45.5%, 0.954 52.3%, 0.973 59.4%, 0.985 66.9%, 0.992 74.7%, 0.996 82.8%, 0.998 91.3%, 1);
  --spring-s:.37s; --spring-m:.52s;
  /* материал поверх карты и под окнами */
  --glass:rgba(255,255,255,.72); --glass-edge:rgba(255,255,255,.55); --glass-blur:blur(16px) saturate(180%);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{color:var(--text);line-height:1.25}
a{color:var(--primary)}a:hover{color:var(--primary-hover)}
.ico{width:16px;height:16px;flex:none;vertical-align:-3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hidden{display:none!important}
.muted{color:var(--text-3)}
.warn{color:var(--danger-text)}
.mono{font-family:var(--mono);font-size:12px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}
/* Уменьшение движения — в конце файла (раздел «Движение и материалы»): не выключаем отклик, а заменяем сдвиги и масштаб короткой сменой прозрачности. */

/* ── Кнопки и поля (по умолчанию — вторичная кнопка; :where не повышает специфичность) ── */
:where(main,.modal,.leaflet-popup) button{font:inherit;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface);color:var(--text-2);cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}
:where(main,.modal,.leaflet-popup) button:hover{background:var(--surface-2);border-color:var(--text-3);color:var(--text)}
:where(main,.modal,.leaflet-popup) button:disabled{opacity:.55;cursor:not-allowed}
.btn.primary,:where(main,.modal,.leaflet-popup) button.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.btn.primary:hover,:where(main,.modal,.leaflet-popup) button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}
/* :where целиком — нулевая специфичность, чтобы классы (.field.search input и т. п.) побеждали */
:where(main,.modal,.leaflet-popup) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r);padding:6px 10px;min-height:32px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
:where(main,.modal,.leaflet-popup) :where(input,select,textarea):focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}
::placeholder{color:var(--text-3)}

/* ── Меню ── */
aside{position:fixed;inset:0 auto 0 0;width:248px;background:var(--side-bg);color:var(--side-text);padding:18px 12px;display:flex;flex-direction:column;overflow-y:auto;z-index:10}
.logo{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;letter-spacing:.06em;color:#fff;margin:0 8px 18px}
.logo b{color:var(--side-muted);font-weight:700}
.logo-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff;font-size:15px;letter-spacing:0}
aside nav{display:flex;flex-direction:column;gap:2px}
.navgroup{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted);margin:16px 10px 6px}
.navgroup:first-child{margin-top:4px}
.nav,.side button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px;border:0;border-radius:var(--r);background:transparent;color:var(--side-text);font:inherit;font-size:13.5px;text-align:left;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}
.nav:hover,.side button:hover{background:var(--side-hover);color:#fff}
.nav.active{background:var(--side-active);color:#fff;font-weight:500}
.nav .ico,.side .ico{width:17px;height:17px;opacity:.9}
.navdot{width:9px;height:9px;border-radius:50%;margin:0 4px;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.st-red{background:var(--st-red)}.st-blue{background:var(--st-blue)}.st-green{background:var(--st-green)}.st-gray{background:var(--st-gray)}
.side{display:flex;flex-direction:column;gap:2px}
.side .count{margin-left:auto;min-width:22px;padding:1px 7px;border-radius:99px;background:#B91C1C;color:#fff;font-size:12px;font-weight:600;text-align:center}
.side .count:empty{display:none}
.source{margin-top:auto;padding:14px 10px 0;color:var(--side-muted);font-size:11px;line-height:1.6}

/* ── Каркас и шапка ── */
main{margin-left:248px;padding:24px 28px 32px;min-width:0}
header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
header small{display:block;color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
h1{font-size:24px;font-weight:600;margin:4px 0 2px}
#sync{color:var(--text-3);font-size:12px}
.top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.field.search{position:relative;display:flex;align-items:center}
.field.search .ico{position:absolute;left:10px;color:var(--text-3);pointer-events:none}
.field.search input{width:320px;padding-left:32px;min-height:36px}
.top select{min-height:36px}
.top .btn,.top button{min-height:36px}

/* ── Итоговые карточки ── */
.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0 14px}
.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px 14px 18px;box-shadow:var(--sh-1);overflow:hidden}
.card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--st-gray)}
.card.red::before{background:var(--st-red)}.card.critical::before{background:#7F1D1D}.card.blue::before{background:var(--st-blue)}.card.green::before{background:var(--st-green)}.card.gray::before{background:var(--st-gray)}
.card small{display:block;color:var(--text-3);font-size:12px;font-weight:500}
.card strong{display:block;font-size:22px;font-weight:600;margin:6px 0 2px;color:var(--text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card span{display:block;color:var(--text-3);font-size:12px}

/* ── Таблица заказов ── */
.strip{display:flex;justify-content:space-between;color:var(--text-3);font-size:12px;margin:0 2px 8px}
.table{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:auto;max-height:calc(100vh - 262px)}
table{border-collapse:separate;border-spacing:0;width:100%}
table.orders{table-layout:fixed;min-width:1060px}
col.c-order{width:136px}col.c-type{width:108px}col.c-money{width:116px}col.c-due{width:108px}col.c-status{width:116px}col.c-action{width:44px}
th{position:sticky;top:0;z-index:1;text-align:left;background:var(--surface-2);color:var(--neutral-text);font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--border)}
td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text-2)}
tbody tr{cursor:pointer;transition:background .12s var(--ease)}
tbody tr:hover td{background:var(--primary-soft)}
tbody tr:last-child td{border-bottom:0}
td b{color:var(--text);font-weight:600}
td small{display:block;color:var(--text-3);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.num{text-align:right;white-space:nowrap}
.cust{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text);line-height:1.35}
.debt{font-weight:600}.debt.pos{color:var(--danger-text)}
.late{color:var(--danger-text)!important;font-weight:500}
.type{display:inline-block;padding:2px 8px;border-radius:99px;background:var(--neutral-soft);color:var(--neutral-text);font-size:12px;white-space:nowrap}
.empty{text-align:center;padding:48px;color:var(--text-3)}
.open{width:32px;min-height:32px;padding:0!important;border-color:transparent!important;background:transparent!important;color:var(--text-3)!important}
tbody tr:hover .open{color:var(--primary)!important}

/* ── Бейджи и метки ── */
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--neutral-soft);color:var(--neutral-text)}
.badge.critical{background:var(--danger-soft);color:var(--danger-text);box-shadow:inset 0 0 0 1px var(--danger-line)}
.badge.high{background:var(--warning-soft);color:var(--warning-text);box-shadow:inset 0 0 0 1px var(--warning-line)}
.badge.medium{background:#FFF7ED;color:#C2410C}
.badge.watch{background:var(--info-soft);color:var(--info-text)}
.badge.paid{background:var(--success-soft);color:var(--success-text)}
.badge.excluded,.badge.low{background:var(--neutral-soft);color:var(--neutral-text)}
.eistag{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--neutral-soft);color:var(--neutral-text);white-space:nowrap}
.eistag.MATCHED{background:var(--success-soft);color:var(--success-text)}
.eistag.POSSIBLE_MATCH{background:var(--warning-soft);color:var(--warning-text)}
.eistag.MANUAL_REVIEW{background:var(--danger-soft);color:var(--danger-text)}
.stagetag{display:inline-flex;align-items:center;color:#fff;border-radius:99px;padding:2px 9px;font-size:11.5px;font-weight:600;margin:4px 6px 4px 0;text-shadow:0 0 2px rgba(0,0,0,.45)}

/* ── Окно заказа ── */
.modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;justify-content:center;align-items:flex-start;padding:40px 20px;z-index:2000;overflow-y:auto}
.modalbox{position:relative;background:var(--surface);width:min(960px,96vw);border-radius:var(--r-lg);padding:24px 28px;box-shadow:var(--sh-2)}
.modalbox>.close{position:absolute;right:14px;top:14px;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:var(--r);background:transparent;color:var(--text-3)}
.modalbox>.close:hover{background:var(--surface-2);color:var(--text)}
.modalbox>.close .ico{width:20px;height:20px}
.detailHead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:0 44px 16px 0;border-bottom:1px solid var(--border)}
.detailHead small{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.detailHead h2{margin:4px 0;font-size:22px;font-weight:600}
.detailHead p{margin:2px 0;color:var(--text-3)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.grid>div{background:var(--surface-2);border-radius:var(--r);padding:12px 14px}
.grid label{display:block;color:var(--text-3);font-size:12px;margin-bottom:4px}
.grid b{font-size:16px;font-weight:600;color:var(--text)}
.section{border-top:1px solid var(--border);padding:16px 0}
.section h3{margin:0 0 10px;font-size:15px;font-weight:600}
.section p{margin:6px 0}
.section pre{white-space:pre-wrap;background:var(--surface-2);padding:12px;border-radius:var(--r);font:12.5px/1.55 var(--mono);color:var(--text-2)}
.section button{margin:3px 6px 3px 0}
.upload{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.upload input[type=file]{font:inherit;font-size:13px;color:var(--text-2)}
.upload input[type=file]::file-selector-button{font:inherit;font-weight:500;margin-right:10px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface-2);color:var(--text-2);cursor:pointer}
.legal{background:var(--primary-soft);border-radius:var(--r-lg);padding:16px 18px;margin:8px 0;border-top:0}
.legal a{font-size:12px;margin-right:10px}
.legal small{display:block;color:var(--text-3);margin-top:10px}
.draft{width:100%;height:360px;border:1px solid var(--border-strong);border-radius:var(--r);padding:14px;font:12.5px/1.55 var(--mono);margin:12px 0;color:var(--text)}
.event,.task{border-left:3px solid var(--border-strong);padding:8px 12px;margin:8px 0;background:var(--surface-2);border-radius:0 var(--r) var(--r) 0}
.task span{float:right}.task small,.event small{display:block;color:var(--text-3);margin-top:4px}

/* ── ЕИС в окне заказа и закупки ── */
.eiscard{border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;margin:10px 0;background:var(--surface)}
.eiscard.POSSIBLE_MATCH{border-color:var(--warning-line)}.eiscard.MANUAL_REVIEW{border-color:var(--danger-line)}
.eishead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.eiswarn{background:var(--warning-soft);border:1px solid var(--warning-line);color:#78350F;border-radius:var(--r);padding:9px 12px;margin:8px 0;font-size:13px}
.eiswhy{background:var(--surface-2);border-radius:var(--r);padding:10px 12px;margin:8px 0}.eiswhy p{margin:4px 0}
.eiscard label,.eiswhy label,.eisgrid label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:3px;font-weight:600}
.eisgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:10px 0;font-size:13px}
.eisgrid small,.eiswhy small,.conf small{display:block;color:var(--text-3);font-size:12px;margin-top:2px}
.eisconf h4{margin:14px 0 6px;font-size:13px}.conf{border-left:3px solid var(--border-strong);padding:6px 10px;margin:6px 0}.conf.warning{border-color:var(--accent)}.conf.info{border-color:var(--primary)}

/* ═══ Логистика ═══ */
main.logi>:not(#logistics){display:none}main:not(.logi) #logistics{display:none}
.logitabs{display:flex;gap:6px;margin-top:16px}
.logitabs button{min-height:34px}
.logitabs button.active{background:var(--text);border-color:var(--text);color:#fff}
.logifilters{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.logifilters label{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:4px 12px;background:var(--surface);border:1px solid var(--border);border-radius:99px;cursor:pointer;font-size:13px;color:var(--text-2);transition:border-color .15s var(--ease)}
.logifilters label:hover{border-color:var(--border-strong)}
.logifilters label b{color:var(--text);font-weight:600}
.dot{width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(15,23,42,.35);display:inline-block}
.logirow{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;margin-top:12px}
.logimap,#logiMap.leaflet-container{height:calc(100vh - 262px);min-height:440px;border-radius:var(--r-lg);border:1px solid var(--border);background:#D6E3EC;box-shadow:var(--sh-1)}
#logiMap:focus,#logiMap:focus-visible{outline:none}
#logiMapTab.logi-full{position:fixed;inset:0;z-index:1000;background:var(--bg);display:flex;flex-direction:column;padding:10px 12px;box-sizing:border-box}
#logiMapTab.logi-full>section{display:none}
#logiMapTab.logi-full .logifilters{margin-top:0;flex:none}
#logiMapTab.logi-full .logirow{flex:1;min-height:0;margin-top:10px}
#logiMapTab.logi-full #logiMap.leaflet-container,#logiMapTab.logi-full .logiloads{height:100%;min-height:0}
/* Узкий экран: типы — одной прокручиваемой строкой, карта сверху, панель снизу */
@media(max-width:1200px){#logiMapTab.logi-full .logifilters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}#logiMapTab.logi-full .logifilters label{flex:none}
#logiMapTab.logi-full .logirow{grid-template-rows:minmax(0,3fr) minmax(0,2fr)}#logiMapTab.logi-full .logiloads{overflow:auto}}
body.logi-full-open{overflow:hidden}
.logi-full-ctl a{display:flex;align-items:center;justify-content:center;color:var(--text)}
.logi-full-ctl .ico{width:16px;height:16px}
.logiloads{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);height:calc(100vh - 262px);min-height:440px;overflow:auto;padding:14px 16px;box-shadow:var(--sh-1)}
@media(max-width:1200px){.logirow{grid-template-columns:1fr}.logiloads{height:auto}}
#logiPlace{margin-top:12px}#logiPlace input{width:320px;margin:0 6px}
.btnlink{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;color:var(--primary);font-weight:500;text-decoration:none}.btnlink:hover{text-decoration:underline}
.logiunmatched{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 18px}
.logiunmatched h3{margin:0 0 4px;font-size:15px;font-weight:600}
.logiun{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border)}.logiun button{margin-left:auto}

/* панель грузов и рейсов */
.ldhead{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ldhead h3{margin:2px 0;font-size:16px;font-weight:600}
.ldtabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 6px}
.ldtabs button{min-height:30px;padding:4px 10px;font-size:13px}
.ldtabs button.active{background:var(--text);border-color:var(--text);color:#fff}
.ldcard{border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 12px;margin:8px 0;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}
.ldcard:hover{border-color:var(--primary-line);background:var(--primary-soft)}
.ldcard b{color:var(--text);font-weight:600}
.ldcard small,.ldsec small{display:block;color:var(--text-3);margin-top:2px;font-size:12px}
.ldcard .stagetag{font-size:11px;padding:1px 8px;margin:0 0 0 4px}
.ldline{margin-top:4px;color:var(--text-2)}
.ldline b{color:var(--text)}
.ldsec{border-top:1px solid var(--border);padding:12px 0}
.ldsec>label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:6px}
.ldsec select{min-height:28px;padding:2px 6px}
.ldplan{background:var(--primary-soft);border:1px solid var(--primary-line);border-radius:var(--r);padding:8px 10px;margin-top:8px}
.ldplan>div+div{margin-top:6px}
.ldopts{display:flex;flex-direction:column;gap:6px}.ldopts label{display:flex;align-items:center;gap:8px;cursor:pointer}
.ldcand{border:1px solid var(--border);border-radius:var(--r);padding:7px 9px;margin:6px 0}
.ldcand label{display:flex;align-items:center;gap:8px;cursor:pointer}
.ldcand.on{border-color:#F5C57A;background:#FFFAF0}
.ldcand input[type=number],.ldsec .ldline input[type=number]{width:72px;min-height:28px;padding:2px 6px}
.ldorigin{width:100%}
.linkbtn{margin:8px 0 2px;color:var(--primary)!important}
.ldtotal{margin-top:10px;padding:10px 12px;background:var(--surface-2);border-radius:var(--r);font-size:14px}
.ldtotal b{font-size:16px;color:var(--text)}
.ldsave{background:var(--success-text)!important;border-color:var(--success-text)!important;color:#fff!important}
.ldsave:hover{background:#166534!important}
.ldprec{margin:4px 0 6px;font-size:12.5px}.ldprec summary{cursor:pointer;color:var(--primary);font-weight:500}.ldprec div{padding:4px 0;border-top:1px dashed var(--border);color:var(--text-2)}
.ldcard.trip{cursor:default}.ldcard.trip:hover{background:var(--surface);border-color:var(--border)}.ldcard.trip.done{border-color:var(--success-line)}
.factform{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 12px;margin-top:8px;font-size:12px}
.factform label{display:flex;flex-direction:column;gap:3px;color:var(--text-3);font-size:11.5px;font-weight:500}
.factform label.chk{flex-direction:row;align-items:center;gap:8px;color:var(--text-2);font-size:13px}
.factform>div{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
details summary{cursor:pointer}

/* подключения и память */
.logiati .section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 22px;margin-top:14px;box-shadow:var(--sh-1)}
.logiati .section h3{font-size:16px}
.atiform{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.atiform input{flex:1;min-width:280px}
.atiok,.atibad{border-radius:var(--r);padding:12px 14px;margin-top:10px}
.atiok{background:var(--success-soft);border:1px solid var(--success-line)}.atibad{background:var(--danger-soft);border:1px solid var(--danger-line)}
.atiok small,.atibad small{display:block;color:var(--text-3);margin-top:4px}
.atiok .eisgrid label,#memBox .eisgrid label{color:var(--text-3)}
#memBox h4{font-size:13px;margin:18px 0 4px}
.memrow{border-top:1px solid var(--border);padding:12px 0}
.memsrc{white-space:pre-line;background:var(--surface-2);border-radius:var(--r);padding:8px 10px;margin:6px 0;font:12.5px/1.5 var(--mono);color:var(--text-2)}

/* всплывающие окна карты */
.leaflet-container{font-family:var(--font)}
.leaflet-popup-content-wrapper{border-radius:var(--r-lg);box-shadow:var(--sh-2)}
.logipop{font-size:13px;color:var(--text-2)}
.logipop b{color:var(--text)}
.logipop label{display:block;font-size:11px;font-weight:600;color:var(--text-3);margin:8px 0 3px;text-transform:uppercase;letter-spacing:.04em}
.logipop input{width:100%}
.logipop button{margin-top:8px}.logipop small{display:block;margin-top:4px}
.logiorder{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}
.logidesc{white-space:pre-line;max-height:130px;overflow:auto;color:var(--text-3);margin-top:8px;font-size:12px}
.whicon{display:flex;align-items:center;justify-content:center;background:#1E293B;border:2px solid #fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.35);color:#fff}
.whicon.crm{background:#92400E}
.ldstop{display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font:700 11px/1 var(--font);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.ldstop.ld-load{background:#0F172A}.ldstop.ld-drop{background:var(--st-blue)}.ldstop.ld-dogruz{background:var(--accent)}

/* ── Адаптивность ── */
@media(max-width:1280px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){aside{width:212px}main{margin-left:212px;padding:20px}.field.search input{width:240px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){aside{position:static;width:auto}main{margin-left:0}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}header{align-items:flex-start}.top{width:100%}.field.search{flex:1}.field.search input{width:100%}}

/* Проверка поставщика по ЕИС */
.eistag.NOT_OURS{background:var(--danger-soft);color:var(--danger-text)}
.eistag.OURS{background:var(--success-soft);color:var(--success-text)}
.eistag.NO_CONTRACT{background:var(--warning-soft);color:var(--warning-text)}
.supplier-alerts{margin:0 0 16px;padding:14px 16px;border-radius:12px;background:var(--danger-soft);color:var(--danger-text);border:1px solid currentColor}
.supplier-alerts.hidden{display:none}
.supplier-alerts .sa-head{display:flex;align-items:center;gap:8px;font-size:15px;margin-bottom:8px}
.supplier-alerts .sa-item{display:block;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid color-mix(in srgb,currentColor 25%,transparent);padding:8px 0;color:inherit;cursor:pointer;font:inherit}
.supplier-alerts .sa-item span{display:block;font-size:12.5px;opacity:.85}
.supplier-alerts .sa-item em{font-style:normal;font-weight:700;margin-left:6px}
.section.supplier .sa-card{padding:12px;border-radius:10px;background:var(--danger-soft);color:var(--danger-text);margin-bottom:8px}
.section.supplier .ok{color:var(--success-text)}
.section.supplier .warn{color:var(--warning-text)}

.detailHead .sheetlink{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;border-radius:8px;border:1px solid var(--border);color:inherit;text-decoration:none;font-size:13px;font-weight:600}
.detailHead .sheetlink:hover{background:var(--neutral-soft)}

.ldmode{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ldmode label{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:99px;font-size:13px;cursor:pointer}
.ldmode label:has(input:checked){border-color:var(--primary);background:var(--neutral-soft);font-weight:600}
.stchip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;white-space:nowrap}
.stchip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--st)}

/* Мозг CRM */
.section.brain h3 .ico{width:16px;height:16px;margin-right:6px;vertical-align:-3px;color:var(--primary)}
.section.brain textarea{width:100%;box-sizing:border-box;resize:vertical;margin:6px 0}
.brain-answer{margin-top:10px;padding:12px 14px;border-radius:var(--r);background:var(--primary-soft);line-height:1.55}
.proposal{padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);margin:8px 0}
.proposal .ico{width:14px;height:14px;margin-right:4px;vertical-align:-2px}
.brain-recent{margin:6px 0;padding-left:18px;color:var(--text-2)}

/* Кто вошёл */
.user-box{padding:12px 20px;border-top:1px solid rgba(255,255,255,.08);color:#E2E8F0;font-size:13px}
.user-box .user-name{display:flex;align-items:center;gap:6px;font-weight:600}
.user-box .user-name .ico{width:14px;height:14px}
.user-box small{display:block;color:#94A3B8;margin:2px 0 6px}
.user-box .linkish{background:none;border:0;color:#93C5FD;padding:0;font:inherit;cursor:pointer}


/* Замечание — одна кнопка на всех экранах */
.fb-btn{position:fixed;right:20px;bottom:20px;z-index:2100;display:flex;align-items:center;gap:8px;padding:11px 16px;border:0;border-radius:999px;background:var(--primary);color:#fff;font:inherit;font-weight:600;box-shadow:var(--sh-2);cursor:pointer}
.fb-btn .ico{width:18px;height:18px}
.fb-panel{position:fixed;right:20px;bottom:76px;z-index:2100;width:min(420px,calc(100vw - 32px));max-height:min(640px,calc(100vh - 110px));overflow-y:auto;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:14px 16px}
.fb-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.fb-tabs{display:flex;gap:4px;margin-left:auto}
.fb-tabs button{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 12px;font:inherit;font-size:13px;cursor:pointer}
.fb-tabs button.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.fb-x{border:0;background:none;cursor:pointer;color:var(--text-3);padding:4px}
.fb-panel textarea{width:100%;box-sizing:border-box;resize:vertical;margin:6px 0}
.fb-panel button{margin:4px 6px 0 0}
.fb-where{margin:0 0 4px;font-size:13px}
.fb-q,.fb-ok{margin-top:10px;padding:10px 12px;border-radius:var(--r);background:var(--primary-soft);line-height:1.5}
.fb-q p,.fb-ok p{margin:4px 0}
.fb-item{padding:10px 0;border-bottom:1px solid var(--border);line-height:1.45}
.fb-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;margin-bottom:4px}
.fb-chip{padding:1px 8px;border-radius:999px;background:var(--surface-2);font-weight:600}
.fb-chip.s-сделано,.fb-chip.s-отвечено{background:#DCFCE7;color:#166534}
.fb-chip.s-в-работе{background:#FEF3C7;color:#92400E}
.fb-chip.s-уточнение{background:#E0E7FF;color:#3730A3}
.fb-ans,.fb-reply{margin-top:6px;padding:8px 10px;border-radius:var(--r);background:var(--surface-2);font-size:14px}
.fb-admin{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.fb-admin input{flex:1 1 160px}
@media (max-width:600px){.fb-btn{right:12px;bottom:12px}.fb-panel{right:16px;bottom:66px}}

/* Кабинет владельца: ссылка в меню и режим «глазами сотрудника» */
.owner-link{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:9px 12px;border-radius:var(--r);background:rgba(255,255,255,.08);color:#fff;text-decoration:none;font-weight:600;font-size:14px}
.owner-link .ico{width:16px;height:16px}
.viewas-banner{position:sticky;top:0;z-index:1500;background:#1E293B;color:#fff;text-align:center;font-size:14px;padding:8px 12px}
.viewas-banner button{margin-left:8px;border:0;border-radius:6px;padding:4px 10px;background:#fff;color:#0F172A;font:inherit;font-weight:600;cursor:pointer}

/* Логистика: сколько машин */
.ldload .ldline b{color:var(--text)}
.ldwarn{margin-top:4px;font-size:12px;color:var(--text-3)}
.ldwarn summary{cursor:pointer}
.ldwarn div{margin:2px 0 0 12px}

/* Наша фирма в дебиторке */
.firmtag{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:11px;font-weight:600}

/* Планируемые закупки */
.logifilters .dot.pur{background:#fff;border:2px dashed #d97706;box-sizing:border-box}.logifilters .dot.plan{background:#ede9fe;border:2px dotted #7c3aed;box-sizing:border-box}
.logipur{margin-top:16px}
.purchips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.purwin{margin:6px 0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.purchips button{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 12px;font:inherit;font-size:13px;cursor:pointer}
.purchips button.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.purtable{width:100%;border-collapse:collapse;font-size:14px}
.purtable th{text-align:left;font-size:12px;color:var(--text-3);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border)}
.purtable td{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}
.purtable td small{display:block}
.purtable tr.click{cursor:pointer}
.purtable tr.click:hover td{background:var(--surface-2)}
.ldgroup{margin:12px 0 4px;font-size:12px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em}

/* ═══ Кабинет «Закупки» ═══ */
main.pur>:not(#purchases){display:none}main:not(.pur) #purchases{display:none}
#purchases header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end}
.btn.small{min-height:30px;padding:4px 10px;font-size:13px}
.purem{margin:14px 0 4px;background:var(--warning-soft);border:1px solid var(--warning-line);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto}
.purem h3{margin:0 0 4px;font-size:14px;display:flex;gap:6px;align-items:center}
.purem button{all:unset;cursor:pointer;font-size:13px;padding:3px 6px;border-radius:var(--r-sm)}
.purem button:hover,.purem button:focus-visible{background:#fff;outline:2px solid var(--primary-line)}
.purem-hot{color:var(--danger-text)}.purem-warn{color:var(--warning-text)}.purem-info{color:var(--text-2)}
.pucols{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-top:12px;align-items:start}
.pucol{background:var(--surface-2);border-radius:var(--r-lg);padding:8px;display:flex;flex-direction:column;gap:8px;min-width:0}
.pucol h3{margin:2px 4px;font-size:14px;display:flex;justify-content:space-between}
.pucard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:10px;font-size:13px;display:flex;flex-direction:column;gap:4px;transition:box-shadow .2s var(--ease)}
.pucard.flash{box-shadow:0 0 0 3px var(--accent)}
.puhead{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap}.puhead a{color:var(--primary)}
.pucust{color:var(--text-2)}.punote{color:var(--text-3);font-style:italic}
.pumeta{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--text-2)}.pumeta span{display:inline-flex;gap:4px;align-items:center}.pumeta svg{width:13px;height:13px}
.putag{background:var(--primary-soft);color:var(--primary);border-radius:99px;padding:1px 8px;font-size:12px}
.pulost{color:var(--danger-text)}
.puact{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.puside{margin-top:16px}
.pusidelist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.puform{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.puform label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2)}
.puform input,.puform select{min-height:36px;border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:4px 8px;font:inherit;color:var(--text)}
.puform .wide{grid-column:1/-1}.puformact{display:flex;gap:8px}
.pustages{font-size:13px;padding-left:20px}
@media (max-width:640px){.puform{grid-template-columns:1fr}#purchases .top{width:100%}}
.putabs{display:flex;gap:6px;margin-top:10px}.putabs button{min-height:32px}.putabs button.active{background:var(--text);border-color:var(--text);color:#fff}
.pufilters{display:flex;flex-wrap:wrap;gap:8px 12px;margin:14px 0 8px;align-items:flex-end}.pufilters label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-3)}
.pufilters select{min-height:34px;min-width:140px}
.putablewrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}
.putable{width:100%;border-collapse:collapse;font-size:13px;min-width:1100px}
.putable th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:12px;color:var(--text-3);padding:8px;white-space:nowrap}
.putable td{padding:7px 8px;border-top:1px solid var(--border);vertical-align:top}.putable td small{display:block}
.putable .num{text-align:right;white-space:nowrap}.putable tr.click{cursor:pointer}.putable tr.click:hover td{background:var(--primary-soft)}
.putable tfoot td{background:var(--surface-2);font-weight:500}
.puclamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:280px}
.putable td:last-child{max-width:230px;overflow-wrap:anywhere}
.putable td small{white-space:normal;overflow:visible;text-overflow:clip}

/* ═══ Дашборд компании (владелец, руководство) ═══ */
body:not([data-role="admin"]):not([data-role="viewer"]) .nav-company{display:none}
main.co>:not(#company){display:none}main:not(.co) #company{display:none}
#company{--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a;--viz-4:#eda100;--viz-5:#e87ba4;--viz-6:#008300}
#company header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end}
.cotiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px}
.cotile{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;display:flex;flex-direction:column;gap:3px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.cotile:hover,.cotile:focus-visible{border-color:var(--primary-line);box-shadow:0 2px 8px rgba(15,30,70,.08)}.cotile:focus-visible{outline:2px solid var(--primary)}
.cotile-h{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.cotile-h svg{width:15px;height:15px}
.cotile-n{font-size:26px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;margin-top:4px}
.cotile-l{color:var(--text-2);font-size:13px;margin-bottom:4px}.cotile small{font-size:12px;color:var(--text-3)}.cotile small b{color:var(--text-2)}
.coatt{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 14px}
.coatt h2{font-size:15px;margin:0 0 8px;display:flex;gap:6px;align-items:center}.coatt ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2px 16px}
.coatt li{font-size:13px;padding:4px 0 4px 12px;border-left:3px solid var(--border-strong)}.coatt li button{all:unset;cursor:pointer}.coatt li button:hover{text-decoration:underline}
.coatt-hot{border-color:var(--danger)!important;color:var(--danger-text)}.coatt-warn{border-color:var(--accent)!important;color:var(--warning-text)}.coatt-info{color:var(--text-2)}
.cocharts{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px;margin-top:16px}
.cochart{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 14px;min-width:0}
.cochart figcaption{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.cochart figcaption small{font-size:12px}
.cosvg{width:100%;height:auto;display:block}.cogrid{stroke:var(--border);stroke-width:1}.coaxis{stroke:var(--border-strong);stroke-width:1}
.coax{font-size:14px;fill:var(--text-3);font-family:var(--font)}.cohit{fill:transparent}.coband.on .cohit{fill:var(--surface-2)}
.colegend{display:flex;gap:14px;font-size:12px;color:var(--text-2);margin-bottom:4px}.colegend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.cochart details{margin-top:6px;font-size:13px}.cochart summary{cursor:pointer;color:var(--primary)}
.cotable{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.cotable td,.cotable th{padding:4px 6px;border-top:1px solid var(--border);text-align:left}.cotable .num{text-align:right;font-variant-numeric:tabular-nums}
.cotip{position:fixed;z-index:1000;background:var(--text);color:#fff;font-size:12px;line-height:1.45;padding:7px 10px;border-radius:var(--r-sm);pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.2)}
@media (max-width:640px){.cocharts{grid-template-columns:1fr}.coatt ul{grid-template-columns:1fr}}
.cosec{display:flex;gap:8px;align-items:center;font-size:17px;margin:22px 0 0}.cosec svg{width:18px;height:18px}
.cohbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cohbars li{display:flex;flex-direction:column;gap:3px;font-size:13px;padding:2px 4px;border-radius:var(--r-sm)}.cohbars li.click{cursor:pointer}.cohbars li.click:hover,.cohbars li.click:focus-visible{background:var(--surface-2);outline:none}
.cohb-t{display:flex;justify-content:space-between;gap:10px}.cohb-t span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.cohb-t b{white-space:nowrap;font-variant-numeric:tabular-nums}
.cohb-bar{height:8px;background:var(--surface-2);border-radius:4px}.cohb-bar i{display:block;height:100%;background:var(--viz-1);border-radius:4px}
.cohbars small{font-size:12px;color:var(--text-3)}
.cotoggle{display:flex;gap:6px;margin-top:6px}.cotoggle button{min-height:28px;font-size:12px;padding:2px 10px}.cotoggle button.active{background:var(--text);border-color:var(--text);color:#fff}
.covalue{fill:var(--text-2);font-weight:600}
.puplan{background:#f5f3ff}.puplan>small{margin:0 4px 2px;font-size:12px}.plancard{border-color:#ddd6fe}.planmark{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}
.pumeta a{color:var(--primary)}
.plhist{font-size:12px;display:flex;gap:4px;align-items:flex-start;line-height:1.35}.plhist svg{width:13px;height:13px;flex:none;margin-top:1px}
.plhist.ok{color:var(--success-text);font-weight:500}.plhist.maybe{color:var(--warning-text)}.plhist.new{color:var(--text-3)}.plhist.comp{color:var(--text-2)}

/* ═══ МАФ: аналоги и цены по ТЗ ═══ */
main.maf>:not(#maf){display:none}main:not(.maf) #maf{display:none}
#maf header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.mfnew{display:grid;grid-template-columns:260px 1fr auto;gap:10px 14px;align-items:end;margin-top:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px}
.mfnew .field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2)}.mfnew input{min-height:38px;border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:4px 10px;font:inherit}
.mfdrop{display:flex;gap:10px;align-items:center;min-height:56px;border:2px dashed var(--border-strong);border-radius:var(--r);padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text-2)}
.mfdrop small{display:block;color:var(--text-3);font-size:12px}.mfdrop.over,.mfdrop:hover,.mfdrop:focus-visible{border-color:var(--primary);background:var(--primary-soft);outline:none}
#mfPicked{grid-column:1/-1;font-size:12px}.mfnew>small{grid-column:1/-1}
.mfgrid{display:grid;grid-template-columns:280px 1fr;gap:14px;margin-top:14px;align-items:start}
.mfjobs{display:flex;flex-direction:column;gap:6px}.mfjobs h3{margin:0 0 4px;font-size:14px}
.mfjob{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.mfjob small{color:var(--text-3);font-size:12px}.mfjob.on,.mfjob:hover,.mfjob:focus-visible{border-color:var(--primary);background:var(--primary-soft)}
.mfreport{min-width:0}.mfhead h2{margin:0 0 4px;font-size:18px}.mferr{color:var(--danger-text)}
.mfpos{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;margin-top:12px}
.mfposhead h3{margin:0;font-size:16px}.mfposhead h3 small{color:var(--text-3);font-weight:400}
.mfsketch{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.mfsketch figure{margin:0}.mfsketch img{max-height:180px;max-width:100%;border:1px solid var(--border);border-radius:var(--r-sm);background:#fff}.mfsketch figcaption{font-size:12px;color:var(--text-3)}
.mfparams{font-size:13px;margin:6px 0}.mfparams table{border-collapse:collapse;margin-top:6px}.mfparams td{padding:3px 10px 3px 0;border-top:1px solid var(--border);vertical-align:top}.mfcolor{color:var(--text-3);text-decoration:line-through}
.mfcands{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:10px}
.mfcand{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;font-size:13px;background:var(--surface)}
.mfcand.ok{border-color:var(--success-line)}.mfcand.bad{opacity:.75}
.mfimg{display:flex;align-items:center;justify-content:center;height:150px;background:var(--surface-2);color:var(--text-3);font-size:12px}.mfimg img{max-width:100%;max-height:150px;object-fit:contain}
.mfbody{padding:8px 10px;display:flex;flex-direction:column;gap:3px}.mfbody small{color:var(--text-3)}.mfbody ul{margin:2px 0;padding-left:16px;color:var(--text-2)}
.mfprice{font-size:15px;font-weight:600}
.mfverdict{align-self:flex-start;border-radius:99px;padding:1px 8px;font-size:12px;background:var(--neutral-soft)}.mfverdict.ok{background:var(--success-soft);color:var(--success-text)}.mfverdict.mid{background:var(--warning-soft);color:var(--warning-text)}.mfverdict.bad{background:var(--danger-soft);color:var(--danger-text)}
@media (max-width:760px){.mfnew{grid-template-columns:1fr}.mfgrid{grid-template-columns:1fr}}
.mfwhy{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text-2);margin:4px 0 8px}.mfwhy i{font-style:normal;background:var(--primary-soft);color:var(--primary);border-radius:99px;padding:0 7px}
.mftag{align-self:flex-start;background:var(--success-soft);color:var(--success-text);border-radius:99px;padding:0 7px}
.mffb{display:flex;gap:6px;margin-top:4px}.mffb button{min-height:28px;font-size:12px;padding:2px 8px;display:inline-flex;gap:4px;align-items:center}.mffb svg{width:13px;height:13px}
.mffb button.on.ok{background:var(--success-soft);border-color:var(--success-line);color:var(--success-text)}.mffb button.on.bad{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-text)}
.mflearn{margin-top:8px;display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:10px;font-size:12px}.mflearn h3{margin:0 0 2px;font-size:14px}
.mfgo{display:flex;flex-direction:column;gap:6px}.mfgo select{min-height:34px}
.mflevel{display:flex;flex-direction:column;gap:2px;border-radius:var(--r-sm);padding:6px 8px;background:var(--neutral-soft)}.mflevel b{font-size:14px;text-transform:uppercase;letter-spacing:.03em}
.mflevel.ok{background:var(--success-soft);color:var(--success-text)}.mflevel.info{background:var(--info-soft);color:var(--info-text)}.mflevel.warn{background:var(--warning-soft);color:var(--warning-text)}.mflevel span{font-size:12px;color:var(--text-2)}
.mftrend{margin:4px 0}.mftrend svg{width:100%;height:auto}.mfax{font-size:9px;fill:var(--text-3)}.mfthr{stroke:var(--accent);stroke-dasharray:3 3}.mfdot{fill:var(--text-3);stroke:var(--surface);stroke-width:1.5}.mfdot.ok{fill:var(--success)}
.mftrend figcaption{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px;color:var(--text-3)}.mfk{display:inline-block;width:10px;height:3px;margin-right:4px;vertical-align:middle;background:var(--primary)}.mfk.dot{width:7px;height:7px;border-radius:50%;background:var(--success)}.mfk.thr{background:var(--accent)}
.mfkinds{font-size:12px;border-collapse:collapse}.mfkinds td{padding:2px 8px 2px 0}.mflv{border-radius:99px;padding:0 6px;background:var(--neutral-soft)}.mflv.ok{background:var(--success-soft);color:var(--success-text)}.mflv.info{background:var(--info-soft);color:var(--info-text)}.mflv.warn{background:var(--warning-soft);color:var(--warning-text)}
.mfexams{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);padding-top:6px;margin-top:4px}.mfexrow{display:flex;gap:6px;flex-wrap:wrap}.mfexrow select{min-height:28px;font-size:12px}
.mfnew>*{min-width:0}.mfnew select,.mfnew input{max-width:100%;width:100%}
.mflive{margin-top:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px}
.mflivehead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.mflivehead h2{margin:0;font-size:17px}
.mflevel2{font-size:13px;border-radius:99px;padding:2px 10px;background:var(--neutral-soft)}.mflevel2.ok{background:var(--success-soft);color:var(--success-text)}.mflevel2.info{background:var(--info-soft);color:var(--info-text)}.mflevel2.warn{background:var(--warning-soft);color:var(--warning-text)}
.mftrain{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:10px 0;font-size:13px}.mftrain.on{background:var(--primary-soft);border-radius:var(--r);padding:8px 10px}
.mfstages{list-style:none;counter-reset:st;display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;padding:0;margin:8px 0}
.mfstages li{counter-increment:st;border:1px solid var(--border);border-radius:var(--r);padding:6px 8px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-3);background:var(--surface-2)}
.mfstages li b{color:var(--text-2);font-size:13px}.mfstages li b::before{content:counter(st)". ";color:var(--text-3);font-weight:400}
.mfstages li.done{background:var(--success-soft);border-color:var(--success-line)}.mfstages li.now{background:var(--primary-soft);border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-line)}
@media (prefers-reduced-motion:no-preference){.mfstages li.now{animation:mfpulse 1.4s ease-in-out infinite}}@keyframes mfpulse{50%{box-shadow:0 0 0 5px var(--primary-soft)}}
.mfnowjob{font-size:13px;color:var(--text-2);margin:4px 0}
.mfevents{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;font-size:12px;border-top:1px solid var(--border)}
.mfevents li{display:grid;grid-template-columns:62px 104px 1fr;gap:8px;padding:4px 0;border-bottom:1px solid var(--border)}.mfevents time{color:var(--text-3);font-variant-numeric:tabular-nums}.mfevents b{color:var(--primary)}
@media (max-width:640px){.mfevents li{grid-template-columns:1fr}.mfevents li b{margin-top:-2px}}
.purtable th .thsort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font:inherit;font-weight:600;color:inherit;cursor:pointer;text-align:left}
.purtable th .thsort:hover,.purtable th .thsort.on{color:var(--primary)}
.purtable th .thsort .ico{width:14px;height:14px}
.purtable td small b{font-weight:600}
.pulaws{display:inline-flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.pulaws button{min-height:36px;padding:0 12px;border:0;border-right:1px solid var(--border);background:none;font:inherit;font-size:13px;color:var(--text-2);cursor:pointer}
.pulaws button:last-child{border-right:0}
.pulaws button b{color:var(--text);font-weight:600}
.pulaws button.on{background:var(--primary);color:#fff}.pulaws button.on b{color:#fff}

/* ── Движение и материалы (подход Apple, навык apple-design; см. MASTER.md «Движение») ───────────────────── */
/* 1. Отклик в момент нажатия, а не после: кнопка, пункт меню, фильтр, карточка слегка «проседают» сразу.
      Убираем задержку двойного касания на телефоне и серую вспышку — отклик даём сами. */
button,a,label,select,summary,.nav,[role=button],[onclick]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:where(main,.modal,.leaflet-popup,.fb-panel,body.owner) button,.nav,.btnlink,.ow-btn,.fb-btn,.logifilters label,.leaflet-bar a{transition-property:background,border-color,color,box-shadow,transform;transition-duration:.15s,.15s,.15s,.15s,var(--spring-s);transition-timing-function:var(--ease),var(--ease),var(--ease),var(--ease),var(--spring)}
:where(main,.modal,.leaflet-popup,.fb-panel,body.owner) button:active:not(:disabled),.nav:active,.btnlink:active,.ow-btn:active,.fb-btn:active,.logifilters label:active,.leaflet-bar a:active{transform:scale(.97);transition-duration:.15s,.15s,.15s,.15s,.1s;transition-timing-function:ease-out}
/* Крупное (карточки, строки) — проседает меньше: большое тяжелее. */
.ldcard,.pucard,.ow-card[role=button]{transition:transform var(--spring-s) var(--spring),box-shadow .15s var(--ease),border-color .15s var(--ease)}
.ldcard:active,.pucard:active{transform:scale(.99);transition-duration:.1s;transition-timing-function:ease-out}

/* 2. Окно заказа: затемнение фона (фокус на задаче), окно поднимается и закрывается тем же
      путём. Открытие/закрытие — тем же классом .hidden, что и раньше: display переключается после анимации. */
/* Без размытия под окном: на полном экране поверх большой таблицы оно тормозит слабые компьютеры — затемнения достаточно. */
.modal{transition:opacity .2s var(--ease),display .2s allow-discrete,overlay .2s allow-discrete}
.modal .modalbox{transition:transform var(--spring-m) var(--spring),opacity .2s var(--ease);transform-origin:50% 0}
.modal.hidden{opacity:0}
.modal.hidden .modalbox{opacity:0;transform:translateY(16px) scale(.98)}
@starting-style{.modal:not(.hidden){opacity:0}.modal:not(.hidden) .modalbox{opacity:0;transform:translateY(16px) scale(.98)}}

/* 3. «Замечание»: панель растёт из своей кнопки (правый нижний угол) и уходит обратно в неё. Не блокирует работу —
      поэтому без затемнения. */
.fb-panel{transform-origin:calc(100% - 40px) calc(100% + 40px);transition:transform var(--spring-s) var(--spring),opacity .18s var(--ease),display var(--spring-s) allow-discrete}
.fb-panel.hidden{opacity:0;transform:scale(.92)}
@starting-style{.fb-panel:not(.hidden){opacity:0;transform:scale(.92)}}

/* 4. Всплывающие окна точек на карте — из острия, которым указывают на точку. */
.leaflet-popup-content-wrapper{transform-origin:50% 100%;transition:transform var(--spring-s) var(--spring),opacity .15s var(--ease)}
@starting-style{.leaflet-popup-content-wrapper{transform:scale(.94) translateY(6px);opacity:0}}

/* 5. Материал: кнопки и подписи карты — полупрозрачный слой поверх карты, карта видна под ними.
      Светлая кромка сверху — «свет на стекле». Цветное (кнопка «Замечание») остаётся на плотном слое. */
.leaflet-bar,.leaflet-control-attribution{background:var(--glass)!important;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 0 0 1px rgba(15,23,42,.08),0 4px 14px rgba(15,23,42,.10)!important;border:0!important}
.leaflet-bar{border-radius:var(--r)!important;overflow:hidden}
.leaflet-bar a{background:transparent!important;border-bottom-color:rgba(15,23,42,.08)!important;color:var(--text)!important}
.leaflet-bar a:hover{background:rgba(255,255,255,.6)!important}
.leaflet-control-attribution{border-radius:var(--r-sm) 0 0 0;color:var(--text-2)!important}
.leaflet-popup-content-wrapper{box-shadow:0 0 0 1px rgba(15,23,42,.06),0 12px 32px rgba(15,23,42,.18)}

/* 6. Типографика: межбуквенный интервал по размеру — крупные заголовки плотнее, мелкие подписи свободнее,
      основной текст без изменений. Иерархия — размером, весом и интерлиньяжем вместе. */
h1{letter-spacing:-.02em;line-height:1.15}
h2{letter-spacing:-.012em;line-height:1.2}
h3{letter-spacing:-.006em;line-height:1.25}
small,.muted small{letter-spacing:.005em}
body{font-optical-sizing:auto}

/* 7. Настройки системы. Уменьшить движение: без сдвигов, масштаба и пружин — короткая смена прозрачности
      остаётся (она помогает понять, что окно открылось). */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  *,*::before,*::after{transition-property:opacity,color,background-color,border-color,box-shadow,display,overlay!important;transition-duration:.15s!important;transition-timing-function:ease!important}
  :active,.modal .modalbox,.modal.hidden .modalbox,.fb-panel,.fb-panel.hidden,.leaflet-popup-content-wrapper{transform:none!important}
  @starting-style{.modal:not(.hidden) .modalbox,.fb-panel:not(.hidden),.leaflet-popup-content-wrapper{transform:none!important}}
}
/* Уменьшить прозрачность: материал становится плотным, без размытия. */
@media (prefers-reduced-transparency:reduce){
  .leaflet-bar,.leaflet-control-attribution{background:var(--surface)!important;backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* Повысить контраст: плотные фоны и заметные рамки. */
@media (prefers-contrast:more){
  :root{--border:#94A3B8;--border-strong:#64748B;--text-3:#475569}
  .leaflet-bar,.leaflet-control-attribution{background:var(--surface)!important;backdrop-filter:none;box-shadow:0 0 0 1px var(--border-strong)!important}
}

/* ── Облик в духе Apple: светлая боковая панель, капсулы-переключатели, мягкие поверхности ─────────────────── */
/* Боковая панель — светлая, как в приложениях Apple; выбранный пункт — синяя капсула. */
aside{border-right:1px solid var(--border)}
.logo{color:var(--side-text);letter-spacing:.02em}
.logo b{color:var(--primary)}
.nav:hover,.side button:hover{color:var(--side-text)}
.nav.active,.nav.active:hover{color:#fff}
.nav .ico,.side .ico{opacity:.75}.nav.active .ico{opacity:1}
.navdot{box-shadow:0 0 0 2px rgba(0,0,0,.06)}
.side .count{background:#FF3B30}
.user-box{border-top-color:var(--border);color:var(--text-2)}
.owner-link{background:var(--surface);color:var(--text);box-shadow:var(--sh-1);border:1px solid var(--border)}
.owner-link:hover{background:var(--surface);color:var(--primary)}
/* Заголовок страницы — крупнее и плотнее, как на экранах Apple. */
main>section>header h1,#purchases header h1,#logistics header h1{font-size:28px;font-weight:700}
/* Кнопки — мягкие скруглённые; основная — синяя заливка. */
:where(main,.modal,.leaflet-popup,.fb-panel,body.owner) button{border-radius:var(--r);border-color:var(--border-strong)}
:where(main,.modal,.leaflet-popup) button:hover{background:var(--surface-2)}
/* Переключатели вида (Карта/Подключения, Карточки/Таблица, вкладки панели, периоды) — «капсулы» iOS:
   серая дорожка, выбранный — белая капсула с тенью. */
.logitabs,.putabs,.ldtabs,.cotoggle{display:inline-flex!important;flex-wrap:wrap;gap:2px!important;padding:2px;background:var(--surface-3);border-radius:calc(var(--r) + 2px);width:max-content;max-width:100%}
.logitabs button,.putabs button,.ldtabs button,.cotoggle button{border:0!important;background:transparent!important;color:var(--text-2)!important;box-shadow:none;border-radius:var(--r)!important}
.logitabs button.active,.putabs button.active,.ldtabs button.active,.cotoggle button.active{background:var(--surface)!important;color:var(--text)!important;box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04)!important;font-weight:600}
.pulaws{background:var(--surface-3);border:0;border-radius:calc(var(--r) + 2px);padding:2px;gap:2px}
.pulaws button{border:0!important;border-radius:var(--r)!important}
.pulaws button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12)}.pulaws button.on b{color:var(--text)}
/* Фильтры-капсулы: выбранный — мягкий синий. */
.purchips button{border-color:transparent;background:var(--surface-3)}
.purchips button.on{background:var(--primary-soft);border-color:transparent;color:var(--primary)}
.logifilters label{border-color:transparent;background:var(--surface);box-shadow:var(--sh-1)}
/* Карточки и таблицы — без жёстких рамок, мягкая тень. */
.ldcard,.pucard,.ow-card{border-color:transparent!important;box-shadow:var(--sh-1)}
th{background:var(--surface);color:var(--text-3);letter-spacing:.02em}
.viewas-banner{background:rgba(29,29,31,.92);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
@media (prefers-reduced-transparency:reduce){.viewas-banner{background:#1D1D1F;backdrop-filter:none}}
.owner-link{white-space:nowrap;font-size:13.5px}

/* ── Жесты (public/motion.js): шторки и меню, которые идут за пальцем ─────────────────────────────────── */
.grabber{display:none}
.menu-btn,.menu-scrim,.menu-edge{display:none}
@media(max-width:820px){
  /* Меню — панель слева поверх страницы; страница не прыгает. Свайп влево закрывает, от левого края — открывает. */
  aside{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:1800;transform:translate3d(-105%,0,0);transition:transform var(--spring-m) var(--spring);box-shadow:0 0 0 1px var(--border),0 24px 60px rgba(0,0,0,.18);touch-action:pan-y}
  body.menu-open aside{transform:none}
  .menu-scrim{display:block;position:fixed;inset:0;z-index:1790;background:rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
  body.menu-open .menu-scrim,body.menu-dragging .menu-scrim{opacity:1;pointer-events:auto}
  .menu-edge{display:block;position:fixed;left:0;top:0;bottom:0;width:16px;z-index:1650;touch-action:none}
  body.menu-open .menu-edge{display:none}
  .menu-btn{display:inline-flex;align-items:center;gap:6px;position:fixed;top:10px;left:10px;z-index:1700;min-height:40px;padding:0 14px;border:0;border-radius:999px;font:inherit;font-weight:600;color:var(--text);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 0 0 1px rgba(0,0,0,.06),0 4px 14px rgba(0,0,0,.10);cursor:pointer}
  .menu-btn .ico{width:18px;height:18px}
  .menu-btn:active{transform:scale(.97)}
  main{padding-top:62px}
  /* Окно заказа — шторка снизу: выезжает снизу, уходит вниз, тянется за «ручку». */
  .modal{align-items:flex-end;padding:0}
  .modal .modalbox{width:100%;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:4px 16px 28px;transform-origin:50% 100%}
  .modal.hidden .modalbox{transform:translate3d(0,100%,0);opacity:1}
  @starting-style{.modal:not(.hidden) .modalbox{transform:translate3d(0,100%,0);opacity:1}}
  .grabber{display:block;position:sticky;top:-4px;z-index:2;height:26px;margin:0 -16px 4px;touch-action:none;cursor:grab;background:linear-gradient(var(--surface) 70%,transparent)}
  .grabber::before{content:"";position:absolute;left:50%;top:9px;width:38px;height:5px;margin-left:-19px;border-radius:3px;background:#C7C7CC}
  .modalbox>.close{top:14px}
  /* «Замечание» — шапка-ручка: смахнуть вниз. */
  .fb-head{touch-action:none}
}
@media(max-width:820px) and (prefers-reduced-transparency:reduce){.menu-btn{background:var(--surface);backdrop-filter:none}}
@media(max-width:820px) and (prefers-reduced-motion:reduce){aside{transition:opacity .15s!important}.modal.hidden .modalbox{transform:none!important;opacity:0}}
/* Окно события владельца — свайп вправо не мешает вертикальной прокрутке. */
.ow-drawer{touch-action:pan-y}
/* Край прокрутки: под закреплённой шапкой таблицы — мягкая тень, появляется только когда под неё что-то уехало. */
@supports (animation-timeline:scroll()){
  th{animation:edgeShadow linear both;animation-timeline:scroll(nearest);animation-range:0 32px}
  @keyframes edgeShadow{from{box-shadow:0 1px 0 var(--border)}to{box-shadow:0 1px 0 var(--border),0 8px 14px -10px rgba(0,0,0,.28)}}
}
/* История правок закупки: отменённые — зачёркнуты, у действующих — «Отменить». */
.puhist{list-style:none;margin:0;padding:0}
.puhist li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.puhist li:last-child{border-bottom:0}
.puhist li.undone>span{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--border-strong)}
.puhist li.undone small{text-decoration:none}
.puhist .btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:30px;font-size:13px}
/* Дашборд → «Обновления CRM»: список выпусков. */
.coreleases{list-style:none;margin:0;padding:0;max-height:420px;overflow:auto}
.coreleases li{padding:10px 0;border-bottom:1px solid var(--border)}
.coreleases li:last-child{border-bottom:0}
.coreleases time{font-weight:600;color:var(--text);margin-right:8px}
.corel-n{display:inline-block;padding:1px 8px;border-radius:99px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:600}
.coreleases p{margin:6px 0 0;color:var(--text-2);line-height:1.5}

/* ── Обзвон (дебиторка, public/calls.js) ─────────────────────────────────────────────── */
main.calls>:not(#calls){display:none}
main:not(.calls)>#calls{display:none}
.clseg{display:inline-flex;gap:2px;padding:2px;margin:14px 0 6px;background:var(--surface-3);border-radius:calc(var(--r) + 2px)}
.clseg button{border:0!important;background:transparent!important;color:var(--text-2);border-radius:var(--r)!important;min-height:34px;padding:0 14px}
.clseg button b{color:var(--text);font-weight:600}
.clseg button.active{background:var(--surface)!important;color:var(--text);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.clhint{margin:4px 0 14px;max-width:780px}
.cllist{display:grid;gap:12px;max-width:980px}
.clcard{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:14px 16px;transition:opacity .2s var(--ease),transform var(--spring-s) var(--spring)}
.clcard.done{opacity:0;transform:translateX(24px)}
.clhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.clcust{font-weight:600;margin-top:2px;line-height:1.3}
.clsum{text-align:right;flex:none}.clsum b{display:block;font-size:20px;color:var(--danger-text);letter-spacing:-.01em}.clsum small{display:block}
.clnext{display:flex;gap:8px;align-items:flex-start;margin:10px 0 6px;padding:8px 10px;border-radius:var(--r);background:var(--primary-soft);color:var(--text)}
.clnext .ico{color:var(--primary);margin-top:2px}
.cllast{margin:2px 0;font-size:13px}
.clphones{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.clphone{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--success-soft);color:var(--success-text);text-decoration:none;font-weight:600;font-variant-numeric:tabular-nums}
.clphone small{font-weight:500;color:var(--text-2)}
.clphone:hover{background:#DCFCE7;color:var(--success-text)}
.clphone:active{transform:scale(.97)}
.clout{display:flex;flex-wrap:wrap;gap:6px}
.clout button{border-radius:999px!important;min-height:34px;background:var(--surface-3)!important;border-color:transparent!important;font-size:13px}
.clout button.on{background:var(--primary)!important;color:#fff!important}
.clform:not(:empty){margin-top:8px;padding:10px;border-radius:var(--r);background:var(--surface-2)}
.clrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}
.clrow .clnote{flex:1;min-width:200px}.clrow .clamount{width:170px}
.clq{border-radius:999px!important;min-height:30px!important;font-size:13px}.clq.on{background:var(--primary-soft)!important;border-color:var(--primary)!important;color:var(--primary)}
.clfoot{margin-top:8px}
.clorder h3{display:flex;align-items:center;gap:8px}
.cltl{list-style:none;margin:6px 0;padding:0;max-height:300px;overflow:auto}
.cltl li{display:flex;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}
.cltl time{flex:none;width:44px;color:var(--text-3);font-variant-numeric:tabular-nums}
.cltag{flex:none;font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;background:var(--surface-3);color:var(--text-2)}
.cltag.звонок{background:var(--primary-soft);color:var(--primary)}.cltag.отгрузка{background:var(--success-soft);color:var(--success-text)}
.cldetails{margin-top:12px}.cldetails>summary{cursor:pointer;font-weight:600;color:var(--text-2);padding:8px 0}
@media(max-width:820px){.clhead{flex-direction:column}.clsum{text-align:left}.clphone{flex:1 1 100%;justify-content:flex-start}}
.clorder h3:not(:first-child){margin-top:18px}
/* Обзвон: статус ЕИС для 44-ФЗ — цвет по смыслу, текст — что сделать. */
.cleis{display:flex;flex-direction:column;gap:2px;margin:10px 0 0;padding:8px 10px;border-radius:var(--r);border-left:3px solid;font-size:13.5px}
.cleis b{font-weight:600}.cleis span{color:var(--text-2)}
.cleis.amber{background:var(--warning-soft);border-color:#D97706}.cleis.amber b{color:var(--warning-text)}
.cleis.blue{background:var(--primary-soft);border-color:var(--primary)}.cleis.blue b{color:var(--primary)}
.cleis.red{background:var(--danger-soft);border-color:var(--danger)}.cleis.red b{color:var(--danger-text)}
.cleis.green{background:var(--success-soft);border-color:var(--success)}.cleis.green b{color:var(--success-text)}
.cleis.gray{background:var(--surface-2);border-color:var(--border-strong)}
.cleisf{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.cleisf button{border-radius:999px!important;background:var(--surface)!important;border-color:transparent!important;box-shadow:var(--sh-1);font-size:13px;min-height:32px}
.cleisf button b{font-weight:600}
.cleisf button.on{background:var(--primary-soft)!important;color:var(--primary)}
/* Ссылки на закупку (ЕИС) и «скопировать номер» — в обзвоне, сроке оплаты и карточке заказа. */
.clproc{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;margin:4px 6px 0 0;border:0;border-radius:999px;background:var(--primary-soft);color:var(--primary);font:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}
.clproc:hover{background:#D6E6FB;color:var(--primary-hover)}.clproc:active{transform:scale(.97)}
.clproc .ico{width:15px;height:15px}
.clfoot{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.cardlinks{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.cardlinks .clproc{margin:0}

/* ── Менеджер по продажам (public/sales.js) ───────────────────────────────────────── */
main.sales>:not(#sales){display:none}
main:not(.sales)>#sales{display:none}
.sltiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:16px 0 4px}
.sltile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:12px;text-align:left;padding:14px 16px;border:0!important;border-radius:var(--r-lg)!important;background:var(--surface)!important;box-shadow:var(--sh-1);cursor:pointer}
.sltile-i{grid-row:1/4;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary-soft);color:var(--primary)}
.sltile b{font-size:24px;letter-spacing:-.02em;line-height:1.1}.sltile span:not(.sltile-i){font-size:13px;color:var(--text-2)}
.sltabs{margin-top:14px}
.sltable{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden;margin-top:6px}
.sltable td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.sltable tr:last-child td{border-bottom:0}
.sltable .num{text-align:right;font-variant-numeric:tabular-nums}
.sltable tr.missed td{background:var(--danger-soft)}.slmiss{color:var(--danger-text)}
.sltable tbody tr{cursor:default}
.slact{white-space:nowrap}.slact audio{height:32px;max-width:240px;vertical-align:middle}
@media(max-width:1100px){.sltiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ── Продажи: МАКС / Авито / Заявки (public/sales.js) — мессенджер в духе Apple ───────────────────── */
.slhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.slnew{color:var(--primary)}
.slbot{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 8px;border-radius:999px;background:var(--surface);box-shadow:var(--sh-1)}
.slbot b{display:block;font-size:14px}.slbot .slav{width:34px;height:34px;font-size:14px}.slbot .clproc{margin:0}
.slpill{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;border-radius:99px;background:var(--surface-3);color:var(--text-2)}.slpill.on{background:var(--success-soft);color:var(--success-text)}
.slapp{display:grid;grid-template-columns:minmax(260px,340px) 1fr;height:calc(100vh - 190px);min-height:480px;margin-top:16px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}
.slapp.avito{height:calc(100vh - 420px)}
.sllist{display:flex;flex-direction:column;border-right:1px solid var(--border);min-height:0;background:var(--surface)}
.sllist>div{overflow:auto;flex:1;padding:4px 6px}
.slsearch{display:flex;align-items:center;gap:8px;margin:10px;padding:0 10px;border-radius:10px;background:var(--surface-3)}
.slsearch input{flex:1;border:0!important;background:transparent!important;box-shadow:none!important;min-height:34px;padding:0!important}
.slsearch .ico{color:var(--text-3)}
#slMaxList{overflow:auto;flex:1;padding:0 6px 6px}
.slrow{display:flex!important;gap:10px;align-items:center;width:100%;text-align:left;padding:9px 10px!important;margin:1px 0;border:0!important;border-radius:12px!important;background:transparent!important;min-height:0!important;font-weight:400!important}
.slrow:hover{background:var(--surface-2)!important}.slrow.on{background:var(--primary)!important;color:#fff}
.slrow.on .muted,.slrow.on time,.slrow.on small,.slrow.on .slrow-l{color:rgba(255,255,255,.85)!important}
.slav{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-weight:600;font-size:17px;object-fit:cover}
.slrow-b{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}
.slrow-h{display:flex;justify-content:space-between;gap:8px}.slrow-h b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slrow-h time{flex:none;font-size:12px;color:var(--text-3)}
.slrow-b small{color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.slrow-l{font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slrow.unread .slrow-l{color:var(--text);font-weight:500}.slrow.unread .slrow-h time{color:var(--primary);font-weight:600}
.slbadge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--primary);color:#fff;font-size:12px;font-weight:600;font-style:normal;display:grid;place-items:center}
.slconv{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}
.slconv-h{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border)}
.slconv-h>div{flex:1;min-width:0}.slconv-h b{display:block}.slconv-h small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slconv-h .slav{width:36px;height:36px;font-size:15px}.slconv-h .clproc{margin:0}
.slitem{width:48px;height:36px;border-radius:8px;object-fit:cover}
.slback{display:none!important}
.slmsgs{flex:1;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:3px}
.slsep{align-self:center;margin:10px 0 6px}.slsep span{font-size:12px;font-weight:600;color:var(--text-3);background:var(--surface);padding:3px 10px;border-radius:99px;box-shadow:var(--sh-1)}
.slb{position:relative;max-width:min(72%,560px);padding:7px 12px 6px;border-radius:18px;background:var(--surface);box-shadow:0 1px 1px rgba(0,0,0,.05);align-self:flex-start;animation:slpop var(--spring-s) var(--spring)}
.slb.out{align-self:flex-end;background:var(--primary);color:#fff}
.slb.in+.slb.in{border-top-left-radius:6px}.slb.out+.slb.out{border-top-right-radius:6px}
.slb p{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.4}
.slb img{display:block;max-width:260px;border-radius:12px;margin:2px 0 4px}
.slb time{display:block;font-size:11px;color:var(--text-3);text-align:right;margin-top:2px}.slb.out time{color:rgba(255,255,255,.75)}
@keyframes slpop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.slcompose{padding:8px 12px 12px;background:var(--surface);border-top:1px solid var(--border)}
.slcompose.ro{text-align:center;padding:12px}
.sltpl{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}
.sltpl button{flex:none;border-radius:999px!important;min-height:30px!important;padding:0 12px!important;font-size:13px;background:var(--surface-3)!important;border-color:transparent!important}
.slinput{display:flex;align-items:flex-end;gap:8px}
.slinput textarea{flex:1;resize:none;border-radius:20px!important;padding:9px 14px!important;min-height:40px;max-height:160px;line-height:1.4;background:var(--surface-2)!important;border-color:transparent!important}
.slsend{flex:none;width:40px;height:40px;min-height:40px!important;padding:0!important;border-radius:50%!important;border:0!important;background:var(--primary)!important;color:#fff!important;display:grid!important;place-items:center}
.slsend:disabled{background:var(--surface-3)!important;color:var(--text-3)!important}.slsend .ico{width:18px;height:18px}
.slempty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;color:var(--text-2)}
.slempty>.ico{width:40px;height:40px;color:var(--text-3);stroke-width:1.5}
.slpad{padding:14px}
.slsetup{max-width:720px;margin-top:16px}.slsetup h3{display:flex;align-items:center;gap:8px}.slsetup li{margin:6px 0}
.slsetup code,.slconv code{background:var(--surface-3);padding:1px 5px;border-radius:4px}
.sltile.on{box-shadow:0 0 0 2px var(--primary),var(--sh-1)}
.sltable-w{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:auto;margin-top:6px}.sltable-w .sltable{box-shadow:none;margin:0}
.sltable th{background:var(--surface);color:var(--text-3);font-size:11.5px;text-transform:uppercase;letter-spacing:.02em;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}
.sltable th.num{text-align:right}.sltable th .thsort{justify-content:flex-end;width:100%}
.slstars{color:#FF9500;letter-spacing:1px}.slstars span{color:var(--surface-3)}
.slfunnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0}
.slfunnel div{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:12px 14px}.slfunnel b{display:block;font-size:24px;letter-spacing:-.02em}.slfunnel span{font-size:13px;color:var(--text-2)}
.slch-tag{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:99px;background:var(--surface-3);color:var(--text-2)}
.slch-tag.max{background:#ECE7FF;color:#5B3FD6}.slch-tag.avito{background:#E6F4FF;color:#0062C3}
@media(max-width:820px){
  .slapp,.slapp.avito{grid-template-columns:1fr;height:calc(100dvh - 210px);margin-top:12px}
  .slapp .slconv{display:none}.slapp.slopen .sllist{display:none}.slapp.slopen .slconv{display:flex}
  .slback{display:grid!important;place-items:center;width:34px;height:34px;min-height:34px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--primary)!important}.slback .ico{transform:rotate(90deg);width:20px;height:20px}
  .slb{max-width:86%}.slfunnel{grid-template-columns:repeat(3,minmax(0,1fr))}.slbot{width:100%}
}
@media (prefers-reduced-motion:reduce){.slb{animation:none}}
@media(max-width:820px){body:has(.slapp.slopen) .fb-btn{bottom:auto;top:10px;right:10px;padding:8px 12px}}
/* ── Расчёт (возможная сделка) + ассистент продаж ── */
.slcalc .detailHead h2{margin:2px 0 6px}
.slstages{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;margin:4px 0 12px;background:var(--surface-3);border-radius:calc(var(--r) + 2px)}
.slstages button{border:0!important;background:transparent!important;border-radius:var(--r)!important;min-height:30px!important;font-size:13px;color:var(--text-2)}
.slstages button.on{background:var(--surface)!important;color:var(--text);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.sladvice{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r-lg);background:linear-gradient(135deg,#EEF5FF,#F5F0FF);margin-bottom:14px}
.sladvice>.ico{color:var(--primary);width:20px;height:20px;margin-top:2px}.sladvice b{display:block;margin-bottom:2px}.sladvice p{margin:4px 0 0;line-height:1.45}
.sladvice-s{display:flex;gap:6px;align-items:flex-start;margin:8px 0 0;font-size:13px;color:var(--text-2)}.sladvice-s .ico{color:var(--primary);flex:none;margin-top:2px}
.slgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:10px}
.slgrid label,.sladdr label,.sloffer label,.slnote{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-3);font-weight:600}
.slgrid input,.sladdr input{font-size:14px;font-weight:400;color:var(--text)}
.sladdr{display:flex;gap:8px;align-items:flex-end;margin-top:10px}.sladdr label{flex:1}
.slpoint{display:flex;gap:6px;align-items:center;margin:8px 0 0;font-size:13px;color:var(--warning-text)}.slpoint.ok{color:var(--success-text)}.slpoint small{color:var(--text-3)}
.slact2{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.slopts{display:flex;flex-direction:column;gap:8px}
.slopt{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--r-lg);background:var(--surface-2);cursor:pointer;transition:box-shadow .15s var(--ease),background .15s var(--ease)}
.slopt input{flex:none}.slopt-t{flex:1;min-width:0}.slopt-t b{display:block}.slopt-t small{display:block;color:var(--text-2);margin-top:2px}
.slopt-p{text-align:right;flex:none}.slopt-p b{display:block;font-size:16px}.slopt-p small{display:block}
.slopt.on{background:var(--surface);box-shadow:0 0 0 2px var(--primary),var(--sh-1)}
.slsave{color:var(--success-text);font-weight:600}
.sloffer{margin-top:12px}.sloffer textarea{font-size:14px;font-weight:400;color:var(--text);line-height:1.45}
.slnote{margin-top:10px}.slnote textarea{font-weight:400;color:var(--text);font-size:14px}
.slstage{display:inline-block;padding:2px 10px;border-radius:99px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:600}
.slcalc-card{cursor:pointer}.slcalc-card:hover{box-shadow:var(--sh-2)}
.slcalc-btn{background:var(--primary)!important;color:#fff!important}
@media(max-width:820px){.slgrid{grid-template-columns:1fr 1fr}.slgrid label:first-child{grid-column:1/-1}.slopt{flex-wrap:wrap}.slopt-p{text-align:left}}
/* Карта: розница (расчёты менеджера) — ромб фиолетового цвета, отличим от заказов и закупок */
.retailpin{display:block;width:14px;height:14px;margin:2px;background:#7c3aed;border:2px solid #fff;transform:rotate(45deg);border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.logifilters .dot.retail{background:#7c3aed;border-radius:2px;transform:rotate(45deg)}

/* ── Заказы ЭКО ПЛЮС (главный экран, public/orders.js) ── */
main.ord>:not(#orders){display:none}main:not(.ord) #orders{display:none}
.odhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.odhead h1{margin:2px 0}.odsub{font-size:12px}.odload{padding:40px 0}
.odcards .odcard{display:block!important;width:100%;min-height:0!important;height:auto!important;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--r-lg)!important;padding:14px 16px 14px 18px!important;transition:box-shadow .15s var(--ease)}
.odcards .odcard:hover{box-shadow:var(--sh-2,0 4px 14px rgba(0,0,0,.08))}
.odcards .odcard.on{box-shadow:inset 0 0 0 2px var(--primary-line)}
.card.amber::before{background:var(--st-amber)}
.odfilters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px}
.odfilters .odseg{margin:0;max-width:100%;overflow-x:auto;scrollbar-width:none}.odfilters .odseg button{white-space:nowrap;flex:none}
.odproduct{min-height:38px}
table.odt{min-width:1100px}
col.o-no{width:96px}col.o-cust{width:auto}col.o-prod{width:170px}col.o-qty{width:60px}col.o-sum{width:124px}col.o-dates{width:132px}col.o-deliv{width:160px}col.o-stage{width:152px}
.odstage{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--neutral-soft);color:var(--neutral-text)}
.odstage::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.odstage.blue{background:var(--info-soft);color:var(--info-text)}.odstage.amber{background:var(--warning-soft);color:var(--warning-text)}
.odstage.green{background:var(--success-soft);color:var(--success-text)}.odstage.red{background:var(--danger-soft);color:var(--danger-text)}
.odok{display:inline-flex;align-items:center;gap:4px;color:var(--success-text);font-weight:500}.odok svg{width:14px;height:14px}
.odmore{display:flex;justify-content:center;padding:14px}
.odlines{display:grid;gap:6px;margin:14px 0}
.odline{display:grid;grid-template-columns:120px 1fr;gap:12px;font-size:14px}.odline span{color:var(--text-3)}.odline b{font-weight:500;color:var(--text)}
@media (max-width:900px){.odcards{grid-template-columns:repeat(2,minmax(0,1fr))}.odhead .top{width:100%}}
/* Заказы: деньги, период, важность */
.odmoney{grid-template-columns:repeat(5,minmax(0,1fr))}
.odcards .odcard.odkey{box-shadow:inset 0 0 0 1px var(--warning-line)}.odcards .odcard.odkey strong{color:var(--warning-text)}
.odbar{position:relative;height:8px;border-radius:99px;background:var(--surface-3);overflow:hidden;margin:-4px 2px 6px}
.odbar i{position:absolute;inset:0 auto 0 0;border-radius:99px}.odbar i.pd{background:var(--success-line)}.odbar i.sh{background:var(--st-blue)}
.odbarlegend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;margin:0 2px 12px}.odbarlegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.odbarlegend i.pd{background:var(--success-line)}.odbarlegend i.sh{background:var(--st-blue)}
.odtime{margin-top:14px}.odlab{font-size:13px;margin-left:4px}
.oddate{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-3)}.oddate input{min-height:38px}
col.o-imp{width:124px}
.odwhy{white-space:normal!important;line-height:1.3;color:var(--text-3)}
.odwhylist{margin:8px 0 4px;padding-left:18px}.odwhylist li{margin:2px 0}.odwhylist li.urgent{color:var(--danger-text)}.odwhylist li.attention{color:var(--warning-text)}
@media (max-width:1100px){.odmoney{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.odmoney{grid-template-columns:repeat(2,minmax(0,1fr))}}
.odrefund{display:inline-flex;margin-top:4px}
.slaccs{margin:0 0 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 14px}.slaccs summary{cursor:pointer;font-weight:600}
.slacct{margin-top:8px;font-size:13px}.slacct td,.slacct th{padding:6px 8px}.slacct tr.warn td{color:var(--danger-text)}
.slacc{display:inline-block;padding:0 6px;border-radius:6px;background:var(--surface-3);color:var(--text-2);font-size:11px;font-weight:600;margin-right:2px}
.odorg{color:var(--text-3)}.od1c{color:var(--info-text)!important}
.slinv{margin:12px 0}.slinvf{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)}
.slinvf label{display:grid;gap:4px;font-size:13px;color:var(--text-3)}
.c1sug{display:block;max-height:280px;overflow:auto;margin-top:-4px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-2)}
.c1opt{display:grid;width:100%;justify-items:start;justify-content:stretch;min-height:auto;height:auto;gap:2px;text-align:left;padding:8px 12px;border:0;border-bottom:1px solid var(--border);background:none;color:var(--text);font:inherit;cursor:pointer}
.c1opt:last-child{border-bottom:0}.c1opt:hover,.c1opt.on{background:var(--primary-soft)}.c1opt small{color:var(--text-3);font-size:12px}
.c1hint{padding:8px 12px;font-size:13px;color:var(--text-3)}
.c1sug[hidden],.c1pick[hidden]{display:none}
.c1pick{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r-sm);background:var(--primary-soft);font-size:13px}.c1pick span{flex:1}.slinvc{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.slinvl{display:grid;grid-template-columns:1fr 70px 110px 28px;gap:6px;align-items:center}.slinvl select,.slinvl input{min-height:36px;min-width:0}
@media (max-width:640px){.slinvc{grid-template-columns:1fr}.slinvl{grid-template-columns:1fr 60px 90px 24px}}
.slseals{display:grid;gap:12px;margin:12px 0}.slseal{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--r-lg)}
.slseal>b{grid-column:1/-1}.slseal label{display:grid;gap:4px;font-size:13px}.slseal img{max-height:90px;max-width:100%;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/16px 16px;border-radius:8px}
main.docs>:not(#docs){display:none}main:not(.docs) #docs{display:none}
table.dct{min-width:980px}.dcact{width:150px}.dcact>*{margin:0 4px 4px 0}.dcact .btn{min-height:30px;padding:0 10px;display:inline-flex}
main.tel>:not(#tel){display:none}main:not(.tel) #tel{display:none}
table.tlt{min-width:900px}.tlext{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-3)}.tlext select{min-height:38px}.tlaudio{height:32px;max-width:240px}
.tlt td small{white-space:normal}
main.ecod>:not(#ecodash){display:none}main:not(.ecod) #ecodash{display:none}
#ecodash{--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a}
.edh{font-size:17px;margin:22px 0 0}.edh small{font-size:13px;font-weight:400}
.edtile.bad{box-shadow:inset 3px 0 0 var(--st-red)}.edtile.warn{box-shadow:inset 3px 0 0 var(--st-amber)}
.eddelta{font-weight:600}.eddelta.up{color:var(--success-text)}.eddelta.down{color:var(--danger-text)}
.edleg{display:flex;gap:14px;font-size:12px;color:var(--text-2);margin:6px 0}.edleg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.edend{font-size:12px;fill:var(--text-2)}
.edbars{display:grid;gap:10px;margin:10px 0}.edbar{display:grid;grid-template-columns:150px 1fr 90px;gap:4px 10px;align-items:center;font-size:13px}.edbar b{text-align:right}.edbar small{grid-column:2/4}
.edtab{width:100%;font-size:13px;margin-top:6px}.edtab td,.edtab th{padding:4px 6px;border-bottom:1px solid var(--border)}
@media (max-width:640px){.edbar{grid-template-columns:110px 1fr 80px}}
.logifilters .logirow{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-bottom:8px}.logifilters .odseg{margin:0}.logifilters select{min-height:36px}.logisum{font-size:13px;margin-left:auto}
