
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:#f6f7f9;color:#1c1917}
/* атрибут hidden ховає завжди: без !important його перебиває будь-яке .клас{display:…} (форма «Закрити» в книгах, до 29.10.2026) */
[hidden]{display:none!important}
a{color:#ea580c;text-decoration:none}
.top{background:#1c1917;color:#fff;padding:12px 20px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:10}
.top b{font-size:17px;letter-spacing:-.3px}.top a{color:#fdba74}
.wrap{max-width:none;margin:0;padding:20px 28px}
.cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.card{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:14px 18px;min-width:120px}
.card .n{font-size:26px;font-weight:800}.card .l{font-size:12px;color:#78716c;margin-top:2px}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1px solid #eceae6}
th,td{padding:10px 12px;text-align:left;font-size:13px;border-bottom:1px solid #f0eee9}
th{background:#faf9f7;font-weight:700;color:#57534e;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
tr:hover td{background:#fffaf5}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700}
.st-new{background:#fef3c7;color:#92400e}.st-done{background:#dcfce7;color:#166534}.st-other{background:#f1f5f9;color:#475569}
.filt{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.filt a{padding:6px 13px;border:1.5px solid #e2e0db;border-radius:20px;font-size:13px;font-weight:600;color:#57534e;background:#fff}
.filt a.on{border-color:#ea580c;color:#ea580c;background:#fff7ed}
.mono{font-variant-numeric:tabular-nums}
.src-ok{color:#166534;font-weight:700}.src-no{color:#a8a29e}.src-loss{color:#dc2626;font-weight:700}
.login{max-width:340px;margin:80px auto;background:#fff;padding:30px;border-radius:14px;border:1px solid #eceae6}
.login input{width:100%;padding:11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:15px;margin:8px 0}
.login button{width:100%;padding:11px;background:#ea580c;color:#fff;border:none;border-radius:9px;font-size:15px;font-weight:700;cursor:pointer}
.main button:disabled{opacity:.45;cursor:not-allowed!important}
.app{height:100vh;height:100dvh;display:flex;flex-direction:column}
.app>.top{flex:none}
.layout{display:flex;flex:1;min-height:0}
.side{width:212px;flex-shrink:0;background:#fff;border-right:1px solid #eceae6;padding:14px 10px;overflow-y:auto;overscroll-behavior:contain}
.sidelink{display:block;padding:10px 14px;border-radius:9px;color:#57534e;font-size:14px;font-weight:600;margin-bottom:3px}
.sidelink:hover{background:#faf9f7}
.sidelink.on{background:#fff7ed;color:#ea580c}
.side-section{margin:14px 0;padding:10px 6px 8px;border:1px solid #e7e5e4;border-left:3px solid #0f766e;border-radius:10px;background:#f5f5f4}
.side-group{margin:0 0 6px;padding:0 8px 8px;border-bottom:1px solid #e7e5e4;font-size:13.5px;font-weight:800;color:#0f766e}
.sidelink-sub{margin-bottom:1px;padding:7px 8px;font-size:13px}
.sidelink-sub:hover{background:#fff}
.page-title{margin:0 0 14px;font-size:20px;font-weight:800;color:#292524}
.main{flex:1;min-width:0;max-width:none;padding:22px;overflow-y:auto}
.menu-toggle{display:none;border:1px solid #57534e;background:transparent;color:#fff;border-radius:8px;width:36px;height:36px;font-size:20px;line-height:1;cursor:pointer}
.menu-backdrop{display:none}
@media(max-width:820px){
  .top{padding:10px 14px;gap:10px}
  .top b{font-size:16px}
  .top .role-label{display:none}
  .menu-toggle{display:inline-grid;place-items:center;flex:0 0 auto}
  .app{height:auto;display:block}
  .layout{display:block}
  .main{overflow:visible}
  .side{position:fixed;z-index:30;top:0;bottom:0;left:0;width:min(286px,84vw);padding:68px 10px 18px;overflow-y:auto;box-shadow:18px 0 44px rgba(28,25,23,.2);transform:translateX(-105%);transition:transform .2s ease}
  body.menu-open .side{transform:translateX(0)}
  .menu-backdrop{position:fixed;z-index:25;inset:0;background:rgba(28,25,23,.42)}
  body.menu-open .menu-backdrop{display:block}
  .main{padding:16px 12px}
  .wrap{padding:16px 12px}
  .cards{gap:8px}
  .card{padding:11px 13px;min-width:calc(50% - 4px)}
  table{display:block;overflow-x:auto;white-space:nowrap}
  th,td{padding:9px 10px}
}
/* ── Постачальники (src/suppliers/templates) ── */
/* загальне */
.sp-block{margin-bottom:16px}
.sp-sub{font-size:11.5px;color:#a8a29e;margin-top:2px}
.sp-src{font-size:11.5px;color:#a8a29e}
.sp-tiny{font-size:11px;color:#a8a29e}
.sp-faint{color:#a8a29e}
.sp-dash{color:#d6d3d1}
.sp-r{text-align:right}
.sp-nowrap{white-space:nowrap}
.sp-fs12{font-size:12px}
.sp-fs13{font-size:13px}
.sp-w100{width:100%}
.sp-span{grid-column:1/-1}
.sp-between{display:flex;justify-content:space-between}
.sp-mt2{margin-top:2px}
.sp-mt10{margin-top:10px}
.sp-mt14{margin-top:14px}
.sp-warn{color:#b45309}
.sp-good{color:#16a34a}
.sp-bad{color:#dc2626}
.sp-green{color:#166534}
.sp-link{color:#1d4ed8;text-decoration:none}
.sp-link-strong{color:#1d4ed8;font-weight:700;text-decoration:none}
.sp-note{font-size:12.5px;color:#78716c}
.sp-intro{font-size:12.5px;color:#78716c;margin-bottom:10px}
.sp-error{color:#991b1b}
.sp-alert{color:#991b1b;font-weight:700}
.sp-okay{color:#166534;font-weight:700}
/* стан синку: ok / warn / bad / idle (src/common/supplier_sync) */
.sp-s-ok{color:#166534}
.sp-s-warn{color:#b45309}
.sp-s-bad{color:#dc2626}
.sp-s-idle{color:#78716c}
/* вкладка: чипи сайтів, рядки таблиці, легенда */
.sp-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}
.sp-chip{padding:5px 11px;border-radius:999px;font-size:12.5px;text-decoration:none;white-space:nowrap;background:#fff;color:#57534e;border:1px solid #e7e5e4}
.sp-chip.on{background:#1C1917;color:#fff;font-weight:700;border:none}
.sp-site{display:inline-block;margin:1px 0;padding:2px 8px;border-radius:999px;background:#f5f5f4;color:#44403c;font-size:11.5px;text-decoration:none;white-space:nowrap}
.sp-site.auto{border:1px dashed #a8a29e}
.sp-row-bad{background:#fef2f2}
.sp-feed{font-size:11px;color:#a8a29e}
.sp-legend{font-size:12px;color:#78716c;margin:0 0 10px;line-height:1.55;background:#faf9f7;border:1px solid #eceae6;border-radius:8px;padding:8px 12px}
/* бейджі: статус (відносини) і тип джерела; кольори з реєстру — інлайном */
.sp-pill{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:800;white-space:nowrap}
.sp-pill.unproven{background:#fee2e2;color:#991b1b}
.sp-pill.own{background:#ffedd5;color:#9a3412}
.sp-pill.manual{background:#fff7ed;color:#9a3412;border:1px solid #fdba74}
.sp-pill.import{background:#f5f5f4;color:#78716c}
.sp-kind{display:inline-block;padding:3px 9px;border-radius:8px;font-size:11.5px;font-weight:800;white-space:nowrap}
button.sp-kind{border:1.5px solid rgba(0,0,0,.08);cursor:pointer}
button.sp-kind.bt{border-color:#93c5fd}
.sp-sync-btn{border:0;background:none;padding:0;cursor:pointer;text-align:left;font-size:12.5px}
.sp-joblink{color:#1d4ed8;font-weight:700}
.sp-state{white-space:nowrap;font-weight:700}
.sp-foot{font-size:11.5px;color:#a8a29e;margin-top:6px}
/* вікна: картка, синхронізація, BookTicket API */
.sp-modal{display:none;position:fixed;inset:0;z-index:10050;background:rgba(28,25,23,.58);backdrop-filter:blur(3px);padding:28px;box-sizing:border-box;overflow:auto}
.sp-dialog{width:min(980px,100%);margin:0 auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.28);overflow:hidden;color:#292524}
.sp-dialog.wide{width:min(1080px,100%)}
.sp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 26px;border-bottom:1px solid #e7e5e4;background:linear-gradient(135deg,var(--tint,#fff),#fff)}
.sp-head.sync{--tint:#ecfeff}
.sp-head.bt{--tint:#eff6ff}
.sp-title{font-size:22px;font-weight:850}
.sp-subtitle{margin-top:5px;font-size:13px;color:#64748b}
.sp-close{border:0;background:#fff;width:36px;height:36px;border-radius:50%;font-size:24px;line-height:1;color:#94a3b8;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.sp-body{padding:22px 26px 28px}
.sp-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.sp-pill-lg{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}
.sp-ext{background:#2563eb;color:#fff;text-decoration:none}
.sp-ext.auto{background:#60a5fa}
.sp-pill-lg.hint{background:#fef3c7;color:#92400e}
.sp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.sp-grid.w300{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.sp-sec{border:1px solid #e7e5e4;border-radius:12px;padding:15px;background:#fff}
.sp-sec-h{font-weight:850;margin-bottom:8px}
.sp-c-teal{color:#0f766e}
.sp-c-blue{color:#1d4ed8}
.sp-c-amber{color:#b45309}
.sp-c-orange{color:#9a3412}
.sp-c-green{color:#166534}
.sp-c-violet{color:#7c3aed}
.sp-c-navy{color:#1e3a8a}
.sp-fact{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:3px 0;border-bottom:1px dashed #f0efed}
.sp-fact-k{color:#78716c;white-space:nowrap}
.sp-ev{font-size:12px;color:#78716c;margin-top:8px}
.sp-ev-list{margin:4px 0 0 18px;padding:0}
.sp-hold-intro{font-size:12px;color:#78716c;margin-bottom:6px}
.sp-bar-row{font-size:12.5px;margin:5px 0}
.sp-bar{height:6px;background:#f1f5f9;border-radius:3px}
.sp-bar-fill{height:6px;background:#60a5fa;border-radius:3px}
.sp-bar-fill.own{background:#16a34a}
.sp-hold-sum{font-size:12.5px;margin-top:8px}
.sp-vendor{display:flex;justify-content:space-between;font-size:13px;padding:3px 0}
.sp-term{font-size:13px;padding:4px 0}
.sp-terms-text{white-space:pre-wrap;color:#57534e;margin-top:4px}
.sp-site-lg{display:inline-block;margin:2px 0;padding:3px 9px;border-radius:999px;background:#f5f5f4;color:#44403c;font-size:12px;text-decoration:none}
.sp-site-lg.on{background:#ddd6fe}
.sp-unconfirmed{padding:12px 14px;border:1px solid #fde68a;background:#fffbeb;border-radius:10px;font-size:13px;line-height:1.55;color:#92400e;margin-top:14px}
/* форма «✏️ Редагувати» */
.sp-edit{margin-top:14px;border:1px dashed #d6d3d1;border-radius:12px;padding:10px 14px}
.sp-edit-sum{cursor:pointer;font-weight:800;color:#1d4ed8}
.sp-loading{margin-top:12px;font-size:13px;color:#78716c}
.sp-form{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.sp-lab{font-size:12px;color:#78716c;display:block}
.sp-in{width:100%;padding:8px 10px;border:1.5px solid #e2e0db;border-radius:9px;font-size:13.5px;box-sizing:border-box}
.sp-add{margin-top:6px;max-width:260px}
.sp-form-h{font-size:12px;color:#78716c;margin-bottom:4px}
.sp-terms-lab{font-size:11.5px;color:#78716c;text-align:right}
.sp-terms-grid{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:6px}
.sp-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center}
.sp-save{padding:10px 18px;border:none;border-radius:10px;background:#1C1917;color:#fff;font-weight:800;cursor:pointer}
/* інструкція BookTicket API */
.sp-bt-auth{background:#f1f5f9;color:#475569;font-weight:750}
.sp-bt-on{background:#dcfce7;color:#166534}
.sp-bt-open{padding:6px 11px;border-radius:999px;background:#2563eb;color:#fff;text-decoration:none;font-size:12px;font-weight:800}
.sp-bt-info{padding:12px 14px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;font-size:13px;line-height:1.55;color:#1e40af;margin-bottom:16px}
.sp-bt-h{font-weight:850;margin-bottom:5px}
.sp-code{font-size:12px;color:#334155}
.sp-bt-desc{font-size:12.5px;line-height:1.55;color:#57534e;margin-top:10px}
.sp-bt-desc.lh16{line-height:1.6}
.sp-bt-sum{cursor:pointer;color:#2563eb;font-size:12px;font-weight:800}
.sp-bt-raw{margin-top:8px;padding:9px;background:#f8fafc;border-radius:8px;font:11px/1.55 ui-monospace,SFMono-Regular,monospace;color:#475569;overflow-wrap:anywhere}
.sp-bt-price{display:inline-block;margin-top:5px;padding:4px 8px;border-radius:7px;background:#dcfce7;color:#166534;font-weight:800}
.sp-bt-price.whole{background:#fef3c7;color:#92400e}
.sp-bt-pii{color:#b91c1c;font-weight:750}
.sp-bt-box{padding:13px 14px;border-radius:11px;font-size:12.5px;line-height:1.55}
.sp-bt-box.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.sp-bt-box.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
/* ── Спільні шматки сторінок (common/templates/_ui.html) ── */
.back{margin-bottom:12px}
.back a{color:#78716c;text-decoration:none;font-size:14px}
.page-h{margin:0 0 4px}
.page-sub{color:#78716c;font-size:13px;margin-bottom:14px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chips.tight{margin-bottom:10px}
.fchip{padding:7px 13px;border:1.5px solid #e2e0db;border-radius:9px;text-decoration:none;font-size:13px;font-weight:700;background:#fff;color:#57534e}
.fchip.on{background:#1c1917;color:#fff}
.fchip.narrow{padding:7px 12px}
.pager{margin-top:14px}
.pager-n{align-self:center;color:#a8a29e;font-size:13px;margin:0 8px}
.tcard{background:#fff;border:1px solid #eceae6;border-radius:14px;overflow:hidden}
.tcard table{border:none}
.tcard-empty{padding:20px;color:#a8a29e}
.page-error{padding:20px;color:#dc2626}
.search{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.search-q{padding:9px 12px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;min-width:260px;flex:1}
.btn-go{padding:9px 16px;border:none;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:700;cursor:pointer}
.link{color:#1d4ed8;text-decoration:none}
.muted{color:#a8a29e}
.muted-sub{font-size:11px;color:#a8a29e}
.fs12{font-size:12px}
.yes{color:#166534;font-weight:700}
/* сторінки постачальника: наявність BookTicket / Bookopt, оновлення прайсу, картки-числа, причини чернеток */
.sp-stats{background:#fff;border:1px solid #eceae6;border-radius:14px;overflow-x:auto;margin-bottom:14px}
.sp-stats-h{padding:12px 16px;font-weight:800;font-size:15px;border-bottom:1px solid #f0efec}
.sp-stats-sub{color:#78716c;font-weight:600}
.sp-stats table{border:none;width:100%}
.sp-th-sub{font-weight:400;color:#a8a29e}
.sp-num{text-align:right;font-variant-numeric:tabular-nums}
.sp-total{font-weight:800;background:#faf9f7}
.sp-hint12{color:#a8a29e;font-size:12px}
.sp-stats-note{padding:12px 16px;font-size:13px;color:#57534e;border-top:1px solid #f0efec;line-height:1.7}
.sp-refresh{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.sp-refresh-main{flex:1;min-width:240px}
.sp-refresh-title{font-size:14px;color:#1c1917}
.sp-refresh-desc{font-size:12px;color:#78716c;margin-top:3px}
.sp-refresh-status{font-size:12px;margin-top:7px}
.sp-running{color:#b45309;font-weight:700}
.sp-btn{padding:9px 15px;border:none;border-radius:9px;font-weight:700}
.sp-btn.go{background:#1d4ed8;color:#fff;cursor:pointer}
.sp-btn.wait{background:#e7e5e4;color:#a8a29e}
.sp-boxes{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.sp-box{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:13px 16px;min-width:160px}
.sp-box-l{font-size:12px;color:#78716c}
.sp-box-v{font-size:22px;font-weight:800;color:#1c1917}
.sp-box-v.good{color:#166534}
.sp-box-v.warn{color:#b45309}
.sp-reason{display:inline-block;margin:0 4px 4px 0;padding:3px 8px;border-radius:7px;background:#fef3c7;color:#92400e;font-size:12px;white-space:nowrap}
.fs13{font-size:13px}
.fs14{font-size:14px}
.m0{margin:0}
.c-grey{color:#78716c}
.c-ink2{color:#57534e}
.c-warn{color:#b45309}
.c-out{color:#b91c1c}
.c-green{color:#166534}
.c-blue{color:#1d4ed8}
.panel{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px}
.panel.below{margin-top:16px}
.panel.above{margin-bottom:16px}
.panel-h{margin:0 0 12px;font-size:15px}
/* ── Картка замовлення (src/orders/templates, suppliers/order_bits.html) ── */
/* шапка й колонки */
.or-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.or-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.or-btn-edit{padding:8px 13px;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:800;text-decoration:none;font-size:13px}
.or-date{color:#78716c;font-size:13px;margin-bottom:18px}
.or-print{margin:0 0 14px;padding:12px 14px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa}
.or-own{margin:0 0 14px;padding:12px 14px;border:1px solid #fed7aa;border-radius:12px;background:#fff7ed}
.or-own-h{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;font-weight:800;font-size:15px;color:#7c2d12}
.or-own-row{margin-top:10px;padding-top:10px;border-top:1px dashed #fed7aa}
.or-own-name{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;font-size:14px;color:#1c1917}
.or-own-fmt{font-size:11.5px;padding:1px 7px;border-radius:8px;background:#ffedd5;color:#9a3412}
.or-own-state{margin-top:4px;font-size:13px}
.sp-btn.or-own-write{background:#ea580c;border-color:#ea580c;color:#fff}
.or-print-h{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-weight:800;font-size:15px;color:#134e4a}
.or-print-name{font-weight:600;font-size:13px;color:#57534e}
.or-print-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.or-print .sp-dlform{margin-top:9px}
.or-print-info{margin-top:7px;font-size:12.5px;color:#57534e}
.or-print-kind{font-weight:600;font-size:11.5px;padding:1px 7px;border-radius:8px;background:#ccfbf1;color:#115e59}
.or-print-sent{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:10px;font-size:13.5px;font-weight:700;color:#134e4a}
.or-print-sent label{display:flex;gap:6px;align-items:center;cursor:pointer}
.or-print-sent input[type=checkbox]{width:17px;height:17px;cursor:pointer}
.or-print-who{font-weight:400;font-size:12.5px;color:#57534e}
.or-print-lock{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:8px;background:#e0e7ff;color:#3730a3}
.or-print-warn{margin-top:8px;padding:7px 10px;border-radius:9px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:13px}
.sp-btn.or-print-up{background:#ea580c}
.pu{max-width:1100px}.pu-msg{margin:10px 0;padding:9px 12px;border-radius:9px;background:#ecfeff;border:1px solid #a5f3fc;font-size:13.5px}
.pu-card{background:#fff;border:1px solid #e7e5e4;border-radius:14px;padding:14px 16px;margin:12px 0}.pu-card h3{margin:0 0 10px;font-size:16px}
.pu-lock{padding:8px 10px;border-radius:9px;background:#eef2ff;color:#3730a3;font-size:13.5px;margin-bottom:8px}
.pu-drops{display:flex;flex-wrap:wrap;gap:10px}.pu-drop{flex:1 1 220px;border:2px dashed #d6d3d1;border-radius:12px;padding:10px 12px;font-size:12.5px;color:#57534e;cursor:pointer}
.pu-drop b{display:block;color:#1c1917;font-size:14px;margin-bottom:4px}.pu-drop input{display:block;margin-top:8px;font-size:12px;max-width:100%}
.pu-drop.super{border-color:#fdba74;background:#fff7ed}.pu-drop.off{opacity:.45;cursor:not-allowed}
.pu-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:10px}.pu-comment{flex:1 1 300px;padding:8px 10px;border:1px solid #d6d3d1;border-radius:9px;font:inherit}
.pu-chk{list-style:none;padding:0;margin:8px 0;font-size:13.5px}.pu-chk li{padding:5px 0;border-bottom:1px dashed #e7e5e4}
.pu-ok{color:#15803d}.pu-wn{color:#9a3412}.pu-no{color:#b91c1c;font-weight:700}.pu-wait{color:#57534e;margin-top:8px}
.pu-h4{margin:16px 0 8px;font-size:14px}
.pu-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.pu-stat{background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;padding:8px 10px}
.pu-stat small{display:block;color:#57534e;font-size:12px}.pu-stat b{font-size:16px}
.pu-diff{margin-top:10px;font:13.5px/1.6 "PT Serif",Georgia,serif;background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;padding:10px 12px;max-height:520px;overflow:auto}
.pu-hunk{padding:4px 0;border-bottom:1px dotted #e7e5e4}.pu-page{font:700 11.5px system-ui;color:#57534e;margin-right:6px}
.pu del{background:#fee2e2;color:#991b1b;text-decoration:line-through;border-radius:3px;padding:0 2px}.pu ins{background:#dcfce7;color:#166534;text-decoration:none;border-radius:3px;padding:0 2px}
.pu-photos,.pu-covers{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:10px}
.pu-covers{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.pu-photos figure,.pu-covers figure{margin:0;padding:6px;border:1px solid #e7e5e4;border-radius:10px;background:#fafaf9;text-align:center;font-size:12px;color:#57534e}
.pu-photos figure.add{border-color:#86efac;background:#f0fdf4}.pu-photos figure.del{border-color:#fca5a5;background:#fef2f2}
.pu-photos img,.pu-covers img{max-width:100%;height:auto;display:block;margin:0 auto 4px}.pu-noimg{padding:30px 0;color:#a8a29e}
.pu-hist{width:100%;border-collapse:collapse;font-size:13px}.pu-hist th,.pu-hist td{text-align:left;padding:6px 8px;border-bottom:1px solid #e7e5e4;vertical-align:top}
.pu-note{font-size:12.5px;color:#57534e;margin-top:6px}.pu-gap{margin-top:10px}
.sp-btn.pu-go{background:#15803d}.sp-btn.pu-back{background:#fff;color:#b91c1c;border:1px solid #fca5a5}
.or-print-opts{margin-top:8px;font-size:13px;color:#134e4a}.or-print-opt.warn{color:#9a3412}.or-print-opts .sp-fail{margin-top:4px}
.or-cols{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}
.or-left{flex:1;min-width:270px}
.or-right{flex:2.4;min-width:360px}
.or-info{margin:5px 0;font-size:14px}
/* «✏️ Редагувати дані» */
.or-editwrap{margin-top:12px;border-top:1px solid #f2f0ec;padding-top:12px}
.or-btn-ghost{padding:7px 13px;border:1.5px solid #e2e0db;border-radius:9px;background:#fff;color:#57534e;font-weight:700;cursor:pointer;font-size:13px}
.or-editform{margin-top:10px}
.or-field{width:100%;padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;box-sizing:border-box;margin-bottom:8px}
.or-btn-save{padding:9px 16px;border:none;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:700;cursor:pointer}
/* позиція: шапка книжки й блок постачальників */
.or-item{background:#fff;border:1px solid #eceae6;border-radius:14px;overflow:hidden;margin-bottom:14px}
.or-item-head{background:#faf9f7;padding:14px 16px;border-bottom:1px solid #eceae6}
.or-item-title{font-size:16px;font-weight:800;line-height:1.3}
.or-off{color:#dc2626;font-size:11px;font-weight:700}
.or-gear{text-decoration:none;font-size:14px}
.or-item-facts{display:flex;gap:18px;flex-wrap:wrap;margin-top:9px;font-size:13px;align-items:center}
.or-sold-pct{color:#78716c;font-weight:400}
.or-item-body{padding:10px 16px 14px}
.or-item-h{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#a8a29e;font-weight:700}
.or-edition{font-size:12px;color:#57534e;margin-top:3px}
.or-donor-note{color:#c4c0ba}
.or-preorder{color:#7c3aed;font-weight:700}
/* «📦 Везти від» і рядки постачальників */
.or-ship{font-size:13px;font-weight:800;padding:6px 0;color:#b45309}
.or-ship.ok{color:#166534}
.or-ship.bad{color:#b91c1c}
.or-ship-how{font-weight:600;color:#57534e}
.or-line{padding:7px 0;border-top:1px solid #f2f0ec}
.or-line.tight{padding:6px 0}
.or-line-money{font-size:13px;color:#57534e;margin-top:2px}
.or-best{background:#dcfce7;color:#166534;font-size:10px;font-weight:800;padding:1px 6px;border-radius:6px;margin-left:6px;white-space:nowrap}
.or-absent{font-size:13px;color:#a8a29e}
.or-out-b{color:#b91c1c;font-weight:700}
.or-catalog{color:#0369a1}
.or-others{font-size:12px;color:#a8a29e}
.or-used{font-size:13px;font-weight:800;color:#C2410C;padding:6px 0}
/* сума */
.or-earn{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:20px 24px;margin-top:18px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.or-earn-l{font-size:15px;color:#57534e;font-weight:600}
.or-earn-sold{font-size:14px;color:#1c1917;margin-top:4px}
.or-earn-note{font-size:13px;color:#78716c;margin-top:3px}
.or-earn-note.warn{color:#b45309}
.or-earn-total{font-size:30px;font-weight:900;color:#1c1917}
/* «⚙️ Робота із замовленням» */
.or-who{margin-bottom:12px;font-size:14px;color:#57534e}
.or-mgr{background:#dcfce7;color:#166534;padding:3px 11px;border-radius:8px;font-weight:800;font-size:13px}
.or-nobody{color:#a8a29e;font-size:13px}
.or-wbtns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.or-wbtn{padding:10px 15px;border:none;border-radius:10px;color:#fff;font-weight:800;cursor:pointer;font-size:14px}
.or-wbtn.claim{background:#eab308}
.or-wbtn.done{background:#16a34a}
.or-wbtn.cancel{background:#dc2626}
.or-payrow{border-top:1px solid #f2f0ec;padding-top:12px}
.or-paymethod{font-size:14px;color:#57534e;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.or-chip{padding:3px 10px;border-radius:8px;font-size:12px;font-weight:800}
.or-chip.paid{background:#dcfce7;color:#166534}
.or-chip.bad{background:#fee2e2;color:#991b1b}
.or-chip.info{background:#dbeafe;color:#1e40af}
.or-chip.seller{background:#FFF0E4;color:#C2410C}
.or-chip.wait{background:#fef3c7;color:#92400e}
.or-paycheck{color:#57534e;font-weight:700}
.or-paycheck.plain{text-decoration:none}
.or-invinfo{font-size:12px;color:#57534e;margin:9px 0 0}
.or-alert{margin-top:9px;padding:11px 13px;border-radius:11px;font-size:13px}
.or-alert.bad{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.or-alert.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.or-live{margin-top:9px;padding:11px 13px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px}
.or-live-l{font-size:12px;color:#78716c;margin-bottom:6px}
.or-climsg{width:100%;padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:12.5px;line-height:1.5;box-sizing:border-box;background:#fff;resize:vertical}
.or-btn-copymsg{margin-top:8px;width:100%;padding:11px;border:none;border-radius:10px;background:#166534;color:#fff;font-weight:800;cursor:pointer;font-size:14px}
.or-live-links{margin-top:8px;display:flex;gap:12px;flex-wrap:wrap;font-size:12px}
.or-link-strong{color:#1d4ed8;font-weight:700;text-decoration:none}
.or-note{margin-top:8px;font-size:12px;color:#a8a29e}
.or-invform{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.or-invlab{font-size:12px;color:#78716c}
.or-invlab.amt{flex:1 1 130px}
.or-invlab.hrs{flex:1 1 120px}
.or-invfield{width:100%;padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;box-sizing:border-box}
.or-invhint{margin-top:5px;font-size:12px;color:#a8a29e}
.or-invhint.center{margin-top:6px;text-align:center}
.or-btn-invoice{margin-top:10px;width:100%;padding:14px 18px;border:none;border-radius:12px;background:#7c3aed;color:#fff;font-weight:800;cursor:pointer;font-size:15px;box-shadow:0 2px 8px rgba(124,58,237,.35)}
.or-tg{display:block;text-align:center;text-decoration:none;background:#229ED9;color:#fff;font-weight:800;font-size:14px;padding:12px;border-radius:11px;margin-top:12px}
.or-tg-note{text-align:center;color:#a8a29e;font-size:11.5px;margin-top:5px}
/* «📋 одним текстом», профіль клієнта, продавець Б/У */
.or-copy-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.or-copy-h{margin:0;font-size:15px}
.or-btn-copy{border:1px solid #d6d3d1;background:#fafaf9;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer}
.or-copytext{width:100%;box-sizing:border-box;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;color:#1c1917;background:#fafaf9;border:1px solid #eceae6;border-radius:10px;padding:12px;resize:vertical}
.or-pline{display:flex;justify-content:space-between;font-size:14px;margin:6px 0}
.or-pv{color:#1c1917}
.or-pv.good{color:#166534}
.or-badges{margin-bottom:12px}
.or-badge{padding:4px 11px;border-radius:8px;font-size:12px}
.or-badge.repeat{background:#dcfce7;color:#166534;font-weight:800}
.or-badge.new{background:#f5f5f4;color:#78716c;font-weight:700}
.or-cancelled{font-size:12px;color:#dc2626;margin-top:6px}
.or-used-alert{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px;margin-top:16px;font-size:13px;color:#9a3412}
.or-used-box{background:#FFF8EF;border:1px solid #FED7AA;border-radius:14px;padding:16px;margin-top:16px}
.or-used-h{margin:0 0 4px;font-size:15px;color:#9A3412}
.or-lot{margin-top:6px}
.or-lot-row{font-size:14px;margin-top:3px}
.or-tel{color:#1d4ed8;font-weight:800}
.or-call{margin-left:6px;padding:4px 10px;border-radius:8px;background:#16a34a;color:#fff;font-weight:700;font-size:12px;text-decoration:none}
.or-lot-desc{font-size:13px;margin-top:3px;color:#57534e}
.or-pics{display:flex;gap:6px;margin-top:8px}
.or-pic{width:64px;height:88px;object-fit:cover;border-radius:7px;border:1px solid #e7e5e4}
.or-steps{margin:12px 0 0;padding-left:18px;font-size:13px;color:#57534e;line-height:1.6}
.nowrap{white-space:nowrap}
.tc{text-align:center}
/* ── 1-клік (orders/templates/quick.html) ── */
.qk-convert{display:inline-flex;align-items:center;padding:9px 14px;border-radius:9px;background:#16a34a;color:#fff;font-weight:800;text-decoration:none}
.qk-info{margin-bottom:10px}
.qk-info-l{font-size:11px;color:#a8a29e;text-transform:uppercase;letter-spacing:.04em}
.qk-info-v{font-size:14px;font-weight:600}
.qk-from{font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.qk-tg{background:#e0f2fe;color:#075985;padding:3px 10px;border-radius:8px;font-weight:700;font-size:12px}
.qk-tgrow{padding:16px 14px}
.qk-tgrow-h{font-weight:700;margin-bottom:4px}
.qk-book{max-width:300px}
.qk-book-name{font-weight:700;line-height:1.3}
.qk-qty{text-align:center;font-weight:700}
/* ── картка клієнта (orders/templates/customer.html) ── */
.cu-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.cu-badge{padding:5px 13px;border-radius:9px;font-size:14px}
.cu-badge.repeat{background:#dcfce7;color:#166534;font-weight:800}
.cu-badge.new{background:#f5f5f4;color:#78716c;font-weight:700}
.cu-contacts{color:#78716c;font-size:14px;margin-bottom:6px}
.cu-stats{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
.cu-stat{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:14px 18px;min-width:150px}
.cu-stat-l{font-size:12px;color:#78716c}
.cu-stat-v{font-size:22px;font-weight:800;color:#1c1917}
.cu-stat-v.good{color:#166534}
.cu-orders{margin-top:8px}
.cu-current{background:#fef9e7}
.cu-merged{opacity:.55}
.cu-claimed{background:#dcfce7;color:#166534;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700}
/* Задачі (src/tasks): scoped visual system for the board and task page. */
#tbBoard,.tb-page{--tb-ink:#202d40;--tb-muted:#647185;--tb-line:#e2e7ee;--tb-navy:#233e61;--tb-blue:#2865ae;font-family:"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--tb-ink);min-width:0;font-weight:400}
#tbBoard button,#tbBoard input,#tbBoard select,#tbBoard textarea,.tb-page button,.tb-page input,.tb-page select,.tb-page textarea{font-family:inherit;line-height:1.45}
#tbBoard :focus-visible,.tb-page :focus-visible{outline:3px solid #87b9ef;outline-offset:3px}
#tbBoard button,.tb-page button{cursor:pointer}#tbBoard button:disabled,.tb-page button:disabled{cursor:default;opacity:.55}
#tbBoard .tb-shell{background:#fff;border:1px solid var(--tb-line);border-radius:14px;padding:28px 28px 20px}
#tbBoard .tb-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}
#tbBoard h1{font-size:30px;line-height:1.2;font-weight:650;letter-spacing:-.9px;margin:0 0 7px}#tbBoard p{margin:0;color:var(--tb-muted)}
#tbBoard .tb-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
#tbBoard .tb-project-picker,#tbBoard .tb-search{height:40px;display:flex;align-items:center;border:1px solid var(--tb-line);border-radius:7px;background:#fff}
#tbBoard .tb-project-picker span{font-size:12px;color:var(--tb-muted);padding-left:12px;white-space:nowrap}
#tbBoard .tb-project-picker select,#tbBoard .tb-search input{border:0;background:transparent;height:100%;font-size:13px;color:var(--tb-ink);min-width:0}
#tbBoard .tb-project-picker select{width:145px;padding:0 8px;font-weight:500}#tbBoard .tb-search{width:200px}
#tbBoard .tb-search span{font-size:23px;padding-left:11px;color:var(--tb-muted)}#tbBoard .tb-search input{width:100%;padding:0 10px}
#tbBoard .tb-primary,#tbBoard .tb-secondary,.tb-page .tb-primary,.tb-page .tb-secondary,.tb-page .tb-danger{min-height:40px;border:1px solid transparent;border-radius:7px;padding:9px 15px;font-size:14px;font-weight:600;line-height:1.4;white-space:nowrap}
#tbBoard .tb-primary,.tb-page .tb-primary{background:var(--tb-navy);color:#fff;box-shadow:0 1px 2px #172c4520}
#tbBoard .tb-primary:hover,.tb-page .tb-primary:hover{background:#172f4f}
#tbBoard .tb-secondary,.tb-page .tb-secondary{background:#fff;color:var(--tb-ink);border-color:#d7dfe8}
#tbBoard .tb-secondary:hover,.tb-page .tb-secondary:hover{background:#f4f7fa}
#tbBoard .tb-tabs{display:flex;gap:26px;border-bottom:1px solid var(--tb-line)}
#tbBoard .tbf{border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--tb-muted);padding:11px 0 14px;font-size:14px;font-weight:500;white-space:nowrap}
#tbBoard .tbf.is-active{border-bottom-color:var(--tb-navy);color:var(--tb-navy);font-weight:600}
#tbBoard .tbf b{display:inline-grid;place-items:center;min-width:21px;height:21px;margin-left:6px;padding:0 5px;border-radius:5px;background:#f0f3f7;color:#637186;font-size:12px;font-weight:500}
#tbBoard .tbf.is-active b{background:#e8eff8;color:#233e61}
#tbBoard .tb-status-seg{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0 0}
#tbBoard .tbs{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--tb-line);background:#fff;color:#536175;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500}
#tbBoard .tbs b{font-weight:500;color:inherit;opacity:.8;padding-left:3px}#tbBoard .tbs b:empty{display:none}
#tbBoard .tbs.is-active{background:#edf2f8;border-color:#b9cadd;color:#233e61}
.tb-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.tb-dot-open{background:#4284cf}.tb-dot-review{background:#c48a1b}.tb-dot-done{background:#32916b}
#tbBoard .tb-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 0 11px;color:var(--tb-muted);font-size:12px}
#tbBoard .tb-toolbar>span{font-weight:500}#tbBoard .tb-toolbar select{font-size:12px;border:0;padding:6px;background:transparent;color:#46556a}
#tbBoard .tb-table-wrap{border:1px solid var(--tb-line);border-radius:9px;overflow:hidden}#tbBoard .tb-table{table-layout:fixed;border:0;border-radius:0;margin:0;overflow:visible}
#tbBoard .tb-table th{background:#f6f8fb;text-transform:none;letter-spacing:0;color:#69768a;font-size:12px;font-weight:500;padding:11px 14px;border-bottom:1px solid var(--tb-line)}
#tbBoard .tb-table th:first-child{width:31%}#tbBoard .tb-table th:nth-child(2){width:13%}#tbBoard .tb-table th:nth-child(3){width:16%}#tbBoard .tb-table th:nth-child(4){width:21%}#tbBoard .tb-table th:nth-child(5){width:19%}
#tbBoard .tb-table td{padding:17px 14px;font-size:13px;vertical-align:middle;border-bottom:1px solid #edf0f4}#tbBoard .tb-table tr:last-child td{border-bottom:0}
#tbBoard .tb-table tr:hover td{background:#f8fafd}#tbBoard .tbrow[data-late="1"] .tb-task-cell{box-shadow:inset 3px 0 #cb6253}
#tbBoard .tb-task-cell{overflow-wrap:anywhere}#tbBoard .tb-task-title{display:block;border:0;background:transparent;padding:0;text-align:left;color:var(--tb-ink);font-size:14px;line-height:1.45;font-weight:600;white-space:normal}
#tbBoard .tb-task-title:hover{color:var(--tb-blue)}#tbBoard .tb-task-sub{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:6px;color:#728096;font-size:12px}
#tbBoard .tb-project-pill{color:#66758a}#tbBoard .tb-progress{color:#8a6518;background:#fff7df;border-radius:4px;padding:1px 5px;font-weight:500}#tbBoard .tb-progress.is-done{color:#22684f;background:#eaf6ef}
#tbBoard .tb-inline{width:100%;max-width:100%;min-width:0;border:1px solid transparent;border-radius:5px;padding:6px 2px;font-size:13px;font-weight:400;color:#46556a;background:transparent}
#tbBoard .tb-inline:hover,#tbBoard .tb-inline:focus{border-color:#cbd5e1;background:#fff}
#tbBoard .tb-priority{font-weight:500}#tbBoard .tb-priority-urgent,#tbBoard .tb-priority-high{color:#ad4035}#tbBoard .tb-priority-normal{color:#62718a}#tbBoard .tb-priority-low{color:#527c6b}
#tbBoard .tb-due{font-size:12px;letter-spacing:-.3px}#tbBoard .tb-due.is-late,#tbBoard .tb-late-text{color:#ac352d;background:#fff0ed}
#tbBoard .tb-status-cell{white-space:normal}#tbBoard .tb-chip{display:inline-block;padding:4px 7px;border-radius:5px;font-size:12px;font-weight:500;background:#f0f2f5;color:#596577;white-space:nowrap}
#tbBoard .tb-chip.s-open{background:#eaf2fd;color:#285d9e}#tbBoard .tb-chip.s-review{background:#fff4d8;color:#8c6010}#tbBoard .tb-chip.s-done{background:#e7f4ed;color:#276c4d}
#tbBoard .tb-chip.p-urgent{background:#fce9e6;color:#a7382c}#tbBoard .tb-chip.p-high{background:#fff0e5;color:#9b5322}#tbBoard .tb-chip.p-low{background:#edf4f0;color:#4c7560}
.tb-icon-btn,.tb-more-btn{border:0;background:transparent;color:#65758b;border-radius:5px;padding:4px 5px;font-size:16px;line-height:1.4;cursor:pointer;vertical-align:middle}.tb-more-btn{font-size:19px}.tb-icon-btn:hover,.tb-more-btn:hover{background:#e9eff7;color:#233e61}
#tbBoard .tb-person{display:flex;align-items:center;gap:7px}#tbBoard .tb-person i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef2f7;color:#62738a;font-style:normal;font-size:11px}
#tbBoard .tb-nodue{color:#778497}#tbBoard .tb-empty{display:none;text-align:center;padding:52px 20px;color:var(--tb-muted);background:#fafbfd}
#tbBoard .tb-admin{margin-top:22px;color:#617087}#tbBoard .tb-admin>summary{font-size:13px;font-weight:500;cursor:pointer}
#tbBoard .tb-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px;margin-top:16px}#tbBoard .tb-admin section{border:1px solid var(--tb-line);border-radius:8px;padding:16px}
#tbBoard .tb-admin h3{font-size:14px;font-weight:600;margin:0 0 12px}#tbBoard .tb-section-head{display:flex;justify-content:space-between;gap:8px}#tbBoard .tb-project-form{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}#tbBoard .tb-project-form input{min-width:0;flex:1;width:100%}
#tbBoard .tb-admin input,#tbBoard .tb-admin select{max-width:100%;border:1px solid #d7dfe8;border-radius:6px;padding:7px;background:#fff;font-size:12px}#tbBoard .tb-report{font-size:13px;line-height:1.7}
.tb-overlay{display:none;position:fixed;inset:0;z-index:60;background:#14253f66;backdrop-filter:blur(3px);padding:4vh 16px;overflow:auto;align-items:flex-start;justify-content:center}
.tb-dialog{width:min(650px,100%);margin:auto;background:#fff;border-radius:12px;box-shadow:0 24px 80px #10182830;overflow:hidden}
.tb-dialog-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid #e2e7ee}.tb-dialog-head h2{margin:0 0 4px;font-size:23px;font-weight:600}.tb-dialog-head p{font-size:13px}.tb-dialog-head button{border:0;background:transparent;font-size:26px;color:#647185;cursor:pointer}
.tb-new-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px 24px}.tb-new-form label{display:block;font-size:13px;font-weight:500;color:#536175;margin-bottom:6px}.tb-new-form input,.tb-new-form select,.tb-new-form textarea{width:100%;border:1px solid #d7dfe8;border-radius:6px;padding:9px 10px;font-size:14px;background:#fff;color:#202d40}.tb-new-form textarea{resize:vertical;line-height:1.6}.tb-field-full{grid-column:1/-1}.tb-drop{text-align:center;border:1px dashed #b9cadd;border-radius:7px;padding:18px!important;background:#f8fafd;cursor:pointer}.tb-drop small{display:block;margin-top:5px;color:#647185;font-size:12px;font-weight:400}.tb-form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:8px}
.tb-page{width:100%;max-width:1440px;margin:0 auto;background:#fff;border:1px solid var(--tb-line);border-radius:12px;overflow:hidden}
.tb-page-head{padding:26px 30px 19px}.tb-back{display:inline-block;color:#61738c;font-size:13px;margin-bottom:20px}.tb-back:hover{color:#2865ae}.tb-detail-title{font-size:28px;font-weight:650;letter-spacing:-.65px;line-height:1.3;margin:0 0 10px;overflow-wrap:anywhere;max-width:950px}
.tb-byline{display:inline;color:var(--tb-muted);font-size:13px}.tb-detail-status{display:inline-block;margin-left:13px;padding:3px 9px;font-size:12px;font-weight:500;border-radius:5px;background:#f0f2f5;color:#596577}.tb-detail-status.s-open{background:#eaf2fd;color:#285d9e}.tb-detail-status.s-review{background:#fff4d8;color:#8c6010}.tb-detail-status.s-done{background:#e7f4ed;color:#276c4d}
.tb-page .tb-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:0;padding:0 30px 24px;border-bottom:1px solid var(--tb-line)}
.tb-page .tb-danger{margin-left:auto;background:transparent;border-color:transparent;color:#b24239;font-weight:500}.tb-page .tb-danger:hover{background:#fff1ef;border-color:#f0c7c1}
.tb-review-notice{font-size:13px;color:#896112;flex-basis:100%;margin-bottom:3px}
.tb-detail{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0;align-items:start}
.tb-discussion{padding:28px 30px 30px;min-width:0}.tb-page h2,.tb-page h3{font-size:16px;font-weight:600;line-height:1.4;margin:0 0 18px;letter-spacing:-.15px}
.tb-sidebar{padding:28px 24px;background:#fafbfd;border-left:1px solid var(--tb-line);align-self:stretch;min-width:0}
.tb-sidebar h2{font-size:14px;margin-bottom:17px}.tb-meta-grid{display:grid;gap:16px}.tb-meta{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:baseline}.tb-meta small{color:#647185;font-size:12px}.tb-meta b{font-size:13px;font-weight:500;overflow-wrap:anywhere}
.tb-checklist{border-top:1px solid var(--tb-line);margin-top:26px;padding-top:22px}.tb-page .tb-checklist h3{font-size:14px;margin-bottom:12px}.tb-check-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:7px 0;font-size:13px;cursor:pointer;overflow-wrap:anywhere}.tb-check-row>span{flex:1;min-width:0}.tb-check-row input{width:16px;height:16px;accent-color:#315c8e;margin:2px 0 0;flex-shrink:0}.tb-check-done{text-decoration:line-through;color:#758196}.tb-check-author{color:#758196;font-size:11px;margin-left:24px}
.tb-check-add{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:12px}.tb-check-input{width:100%;min-height:74px;resize:vertical;border:1px solid #d7dfe8;border-radius:7px;padding:10px;font-size:13px;background:#fff}.tb-page .tb-check-add button{min-height:32px;padding:6px 11px;font-size:12px}
.tb-comment{display:flex;gap:12px;padding:18px 0;border-bottom:1px solid #edf0f4}.tb-comment-avatar{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:50%;background:#eaf0f7;color:#446282;font-size:13px;font-weight:600}.tb-comment-body{min-width:0;flex:1}.tb-comment-head{font-size:12px;color:#69788e;margin-bottom:6px}.tb-comment-text{font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;max-width:78ch}.tb-comment-body>a{color:#2865ae;overflow-wrap:anywhere}.tb-comment img{display:block;max-width:100%;max-height:360px;margin-top:12px;border:1px solid var(--tb-line);border-radius:7px}
.tb-comments-empty{padding:28px 22px;margin:0 0 20px;background:#f8fafd;border:1px dashed #d9e2ec;border-radius:8px;color:#6b7b91;font-size:14px;line-height:1.7;max-width:65ch}
.tb-comment-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.tb-comment-box textarea{flex:0 0 100%;width:100%;min-height:110px;resize:vertical;border:1px solid #cfd9e5;border-radius:8px;padding:13px 14px;font-size:14px;line-height:1.6;color:#202d40}.tb-comment-box textarea::placeholder,.tb-check-input::placeholder{color:#8995a6}
.tb-comment-box input[type=file]{max-width:230px;min-width:0;font-size:12px;color:#647185}.tb-comment-box input[type=file]::file-selector-button{border:1px solid #d7dfe8;border-radius:6px;background:#fff;color:#536175;padding:8px 10px;font:inherit;cursor:pointer}.tb-compose-hint{color:#7b889b;font-size:12px;margin:12px 0 0}
.tb-history{grid-column:1/-1;border-top:1px solid var(--tb-line);padding:16px 30px;color:#6b7b91;font-size:13px}.tb-history summary{cursor:pointer}.tb-history-entry{font-size:12px;padding:9px 0;border-bottom:1px solid #edf0f4;overflow-wrap:anywhere}.tb-page-body{padding:30px;color:#647185}
.tb-file-preview{margin-top:8px}.tb-file-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 8px;border:1px solid #e2e7ee;border-radius:6px;background:#f8fafd;margin:0 6px 6px 0;max-width:100%;overflow-wrap:anywhere}.tb-file-thumb{max-width:64px;max-height:44px;border-radius:4px}.tb-file-remove{cursor:pointer;color:#b24239;border:0;background:transparent;font-size:18px;padding:2px 5px}.tb-digest-title{font-weight:600;margin-bottom:6px}.tb-digest-row{margin-top:6px}.tb-digest-link{display:block;color:#647185;font-size:12px;margin-left:12px;cursor:pointer}.tb-digest-link.is-late{color:#b24239}
#tbBoard .tb-error{padding:24px;border:1px solid #e8cda8;border-radius:9px;background:#fff8eb;color:#80551e}#tbBoard .tb-error p{margin:8px 0;color:inherit}
#tbBoard .tb-flash-ok td{background:#e6f5eb}#tbBoard .tb-flash-error td{background:#fce9e6}
@media(max-width:1250px){#tbBoard .tb-hero{align-items:flex-start;flex-direction:column;gap:20px}#tbBoard .tb-hero-actions{width:100%;justify-content:flex-start}#tbBoard .tb-hero-actions>.tb-primary{margin-left:auto}#tbBoard .tb-table td,#tbBoard .tb-table th{padding-left:10px;padding-right:10px}.tb-detail{grid-template-columns:minmax(0,1fr) 280px}.tb-sidebar{padding:24px 18px}.tb-meta{grid-template-columns:80px minmax(0,1fr);gap:8px}}
@media(max-width:1050px){#tbBoard .tb-table,#tbBoard .tb-table tbody{display:block;width:100%;min-width:0}#tbBoard .tb-table thead{display:none}#tbBoard .tb-table .tbrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px;border-bottom:1px solid var(--tb-line)}#tbBoard .tb-table tr:last-child{border-bottom:0}#tbBoard .tb-table td{display:block;border:0;padding:0;background:transparent}#tbBoard .tb-task-cell{grid-column:1/-1}#tbBoard .tb-status-cell{grid-column:1/-1;display:flex!important;align-items:center;gap:8px}#tbBoard .tb-more-btn{margin-left:auto}#tbBoard td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:#7b889b;margin-bottom:3px}#tbBoard .tbrow[data-late="1"] .tb-task-cell{box-shadow:none}#tbBoard .tbrow[data-late="1"]{border-left:3px solid #cb6253}.tb-detail{grid-template-columns:minmax(0,1fr) 260px}.tb-discussion{padding:24px}.tb-comment-box input[type=file]{max-width:180px}}
@media(max-width:760px){.tb-detail{display:flex;flex-direction:column}.tb-sidebar{width:100%;border-left:0;border-top:1px solid var(--tb-line);order:2}.tb-discussion{width:100%;order:1}.tb-history{width:100%;order:3}.tb-meta-grid{grid-template-columns:1fr 1fr;gap:18px}.tb-meta{display:block}.tb-meta small{display:block;margin-bottom:4px}.tb-page-head{padding:22px}.tb-page .tb-detail-actions{padding:0 22px 22px}.tb-detail-title{font-size:25px}.tb-check-add{justify-content:flex-start}.tb-check-input{min-height:64px}}
@media(max-width:540px){#tbBoard .tb-shell{padding:20px 16px 17px;border-radius:10px}#tbBoard h1{font-size:27px}#tbBoard .tb-hero p{font-size:13px;max-width:29ch}#tbBoard .tb-hero{margin-bottom:18px;gap:18px}#tbBoard .tb-hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}#tbBoard .tb-search{width:100%;grid-column:1/-1;grid-row:2}#tbBoard .tb-project-picker{min-width:0}#tbBoard .tb-project-picker span{display:none}#tbBoard .tb-project-picker select{width:100%;padding:0 7px}#tbBoard .tb-hero-actions>.tb-primary{width:100%;padding:9px 7px;font-size:13px}#tbBoard .tb-tabs{gap:16px}#tbBoard .tbf{font-size:12px;padding:10px 0 12px}#tbBoard .tbf b{margin-left:3px;font-size:11px;min-width:17px;height:18px}#tbBoard .tb-status-seg{gap:6px;margin-top:16px}#tbBoard .tbs{font-size:12px;padding:6px 8px;gap:5px}#tbBoard .tb-toolbar{align-items:flex-start;flex-direction:column;gap:4px;padding:14px 0 10px}#tbBoard .tb-toolbar label{align-self:flex-end}#tbBoard .tb-table .tbrow{grid-template-columns:1fr 1fr;padding:15px;gap:13px}#tbBoard td[data-label="Термін"]{grid-column:1/-1}#tbBoard .tb-due{width:auto;min-width:190px;font-size:13px}#tbBoard .tb-task-title{font-size:15px}.tb-page{border-radius:9px}.tb-page-head{padding:20px 18px 17px}.tb-back{margin-bottom:18px}.tb-detail-title{font-size:24px;line-height:1.35}.tb-byline{display:block;font-size:12px}.tb-detail-status{margin:10px 0 0}.tb-page .tb-detail-actions{padding:0 18px 20px;gap:8px}.tb-page .tb-detail-actions button{font-size:13px;padding:9px 10px}.tb-page .tb-danger{margin-left:0}.tb-discussion{padding:23px 18px}.tb-comments-empty{padding:20px 16px}.tb-comment-box input[type=file]{max-width:170px}.tb-comment-box .tb-primary{padding:9px 11px;font-size:13px}.tb-compose-hint{font-size:11px}.tb-history{padding:16px 18px}.tb-new-form{grid-template-columns:1fr;padding:18px}.tb-new-form>div{grid-column:1}.tb-overlay{padding:12px}.tb-dialog{border-radius:10px}.tb-dialog-head{padding:18px}.tb-new-form input,.tb-new-form select,.tb-new-form textarea{font-size:16px}}

#tbBoard .tb-late-text{color:#b91c1c;font-weight:800}
/* ── Digital (src/digital/templates) ── */
/* «🧚 Дитячі казки» */
.dg-tales{max-width:1120px;margin:0 auto;padding-bottom:28px}
.dg-tales .dg-hero{padding:28px;border-radius:18px;background:linear-gradient(135deg,#2c1c13,#6d351b);color:#fff;margin-bottom:18px}
.dg-tales .dg-kicker{font-size:12px;letter-spacing:.13em;font-weight:800;color:#fdba74}
.dg-tales .dg-hero h2{font-family:Georgia,serif;font-size:34px;line-height:1.1;margin:9px 0}
.dg-tales .dg-hero p{max-width:760px;line-height:1.55;color:#f5e8de;margin:0}
.dg-tales .dg-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}
.dg-tales .dg-pills span{padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.12);font-weight:700;font-size:13px}
.dg-tales .dg-grid{display:grid;gap:10px}
.dg-tales .dg-g245{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px}
.dg-tales .dg-g220{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:14px}
.dg-tales .dg-g360{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px}
.dg-tales .dg-g190{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.dg-tales .dg-mb{margin-bottom:18px}
.dg-tales .dg-card{border:1px solid #e7e5e4;border-radius:14px;padding:18px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.02)}
.dg-tales .dg-card h3{margin:0 0 8px}
.dg-tales .dg-card h3.dg-h10{margin:0 0 10px}
.dg-tales .dg-num{font-size:20px}
.dg-tales .dg-green{color:#15803d}
.dg-tales .dg-orange{color:#c2410c}
.dg-tales .dg-blue{color:#1d4ed8}
.dg-tales .dg-red{color:#b91c1c}
.dg-tales .dg-muted{color:#78716c;font-size:13px;line-height:1.55}
.dg-tales ol.dg-muted,.dg-tales ul.dg-muted{padding-left:20px;margin:0}
.dg-tales p.dg-after{margin:13px 0 0}
.dg-tales p.dg-after12{margin:12px 0 0}
.dg-tales p.dg-before{margin:0 0 10px}
.dg-tales .dg-tile{background:#f7f4ef;border-radius:10px;padding:12px}
.dg-tales .dg-link{color:#c2410c;font-weight:700;text-decoration:none}
.dg-tales .dg-tags{display:flex;gap:8px;flex-wrap:wrap}
.dg-tales .dg-tag{padding:7px 10px;border:1px solid #fed7aa;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:13px;font-weight:700}
.dg-tales .dg-callout{padding:17px 19px;border:1px solid #a7e4c4;border-radius:14px;background:#f0fdf4;color:#14532d}
/* підвкладки «📚 Digital книги» і види «📋 План книг» */
/* «Джерела та ліцензії» */
h3.dg-h18{margin:18px 0 10px}
h3.dg-h22{margin:22px 0 10px}
table.dg-mt14{margin-top:14px}
td.dg-note{font-size:12.5px;color:#57534e}
td.dg-yes{color:#15803d}
td.dg-no{color:#b91c1c}
.dg-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}
.dg-rules>div{border:1px solid #e7e5e4;border-radius:11px;padding:14px}
.dg-rules ul{line-height:1.65;padding-left:20px}
/* «✍️ Написання»: блоки, гейти, фази (колір фази — тон t-*), каркас, бестселери, теми й черга */
.dg-box{border-radius:12px;padding:16px 18px;margin-bottom:18px}
.dg-box.dg-white{background:#fff;border:1px solid #eceae6}
.dg-box.dg-key{background:#f0fdf4;border:1px solid #bbf7d0}
.dg-box.dg-gates{background:#fffbeb;border:1px solid #fcd34d}
.dg-bt{font-size:16px;font-weight:800;margin-bottom:4px}
.dg-bt.dg-mb6{margin-bottom:6px}
.dg-bt.dg-mb8{margin-bottom:8px}
.dg-bt.dg-mb10{margin-bottom:10px}
.dg-key .dg-bt,.dg-key-text{color:#166534}
.dg-key-text{font-size:13px;line-height:1.65}
.dg-gates .dg-bt{color:#78350f}
.dg-gate{padding:8px 0;border-top:1px solid #fde68a}
.dg-gate>b{color:#78350f;font-size:14px}
.dg-gate>div{font-size:13px;color:#78350f;line-height:1.6;opacity:.9}
.dg-desc{font-size:12px;color:#78716c;margin-bottom:10px;line-height:1.6}
.dg-phase{background:#fff;border:1px solid #eceae6;border-left:4px solid;border-radius:12px;padding:16px 18px;margin-bottom:14px}
.dg-phase-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.dg-phase-t{font-size:17px;font-weight:800;color:#1c1917}
.dg-phase-m{font-size:12px;color:#a8a29e}
.dg-step{display:flex;gap:12px;padding:11px 0;border-top:1px solid #f5f4f1}
.dg-stepn{flex:0 0 32px;font-weight:800;font-size:13px}
.dg-step-b{flex:1}
.dg-step-t{font-weight:700;font-size:14px;color:#1c1917;margin-bottom:3px}
.dg-step-x{font-size:13px;color:#57534e;line-height:1.65}
.dg-phase.t-sky{border-left-color:#0ea5e9}.dg-phase.t-sky .dg-stepn{color:#0ea5e9}
.dg-phase.t-violet{border-left-color:#8b5cf6}.dg-phase.t-violet .dg-stepn{color:#8b5cf6}
.dg-phase.t-green{border-left-color:#16a34a}.dg-phase.t-green .dg-stepn{color:#16a34a}
.dg-phase.t-red{border-left-color:#dc2626}.dg-phase.t-red .dg-stepn{color:#dc2626}
.dg-phase.t-amber{border-left-color:#f59e0b}.dg-phase.t-amber .dg-stepn{color:#f59e0b}
.dg-phase.t-cyan{border-left-color:#0891b2}.dg-phase.t-cyan .dg-stepn{color:#0891b2}
.dg-phase.t-rose{border-left-color:#be123c}.dg-phase.t-rose .dg-stepn{color:#be123c}
.dg-spine td{vertical-align:top}
.dg-spine td.dg-spine-n{color:#8b5cf6;font-weight:800}
.dg-spine-w{font-size:12px;color:#78716c;line-height:1.55;margin-top:2px}
.dg-spine td.dg-spine-x{font-size:12px;color:#57534e;line-height:1.55}
.dg-bs{padding:9px 0;border-top:1px solid #f5f4f1}
.dg-bs>b{font-size:14px;color:#1c1917}
.dg-bs>div{font-size:13px;color:#57534e;line-height:1.65}
th.dg-r,td.dg-r{text-align:right}
td.dg-dens{font-weight:700}
.dg-verdict{font-weight:700;font-size:12px}
.dg-dens.t-ok,.dg-verdict.t-ok{color:#16a34a}
.dg-dens.t-warn,.dg-verdict.t-warn{color:#f59e0b}
.dg-dens.t-bad,.dg-verdict.t-bad{color:#b91c1c}
td.dg-qn{color:#a8a29e}
td.dg-qk{font-size:12px;color:#78716c}
.dg-foot{font-size:12px;color:#78716c;margin-top:10px;line-height:1.6}
/* «🌍 Переклад»: воронка, форма додавання, таблиця книг */
.dg-sub{font-size:12px;color:#78716c}
.dg-funnel{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}
.dg-funnel>div{background:#fff;border:1px solid #eceae6;border-radius:10px;padding:8px 14px;min-width:90px}
.dg-fn{font-size:22px;font-weight:700}
.dg-addf{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:14px;margin-bottom:16px;display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.dg-addf label{font-size:12px;color:#78716c}
.dg-addf input{padding:8px;border:1px solid #ddd;border-radius:8px}
.dg-addf .dg-w90{width:90px}
.dg-addf .dg-w240{width:240px}
.dg-addf .dg-w180{width:180px}
.dg-add{padding:9px 18px;background:#16a34a;color:#fff;border:0;border-radius:8px;font-weight:600;cursor:pointer}
img.dg-thumb{width:44px;height:60px;object-fit:cover;border-radius:4px}
div.dg-thumb{width:44px;height:60px;background:#f1efe9;border-radius:4px}
.dg-sel{padding:6px;border:1px solid #ddd;border-radius:8px}
.dg-pub{padding:5px 10px;background:#0ea5e9;color:#fff;border:0;border-radius:6px;cursor:pointer}
.dg-del{padding:5px 8px;background:#fff;border:1px solid #e7e5e4;border-radius:6px;color:#b91c1c;cursor:pointer}
td.dg-empty{color:#a8a29e;padding:24px;text-align:center}
/* «📋 План книг» → «Черга книг»: керування конвеєром, пошук, таблиця, сторінки */
.dg-auto{display:flex;gap:8px;align-items:center}
.dg-auto input[type=number]{width:72px;padding:8px;border:1px solid #ddd;border-radius:8px}
.dg-auto button{padding:9px 16px;color:#fff;border:0;border-radius:9px;cursor:pointer;font-weight:700}
.dg-auto .dg-start{background:#16a34a}
.dg-auto .dg-stop{background:#b91c1c}
.dg-auto span{font-size:13px;color:#57534e}
.dg-plan-h{display:flex;gap:14px;align-items:center;margin:12px 0 14px;flex-wrap:wrap}
.dg-search{display:flex;gap:8px}
.dg-search input[name=q]{padding:9px 12px;border:1px solid #ddd;border-radius:9px;width:260px}
.dg-search button{padding:9px 16px;background:#1c1917;color:#fff;border:0;border-radius:9px;cursor:pointer}
.dg-total{color:#78716c;font-size:13px}
td.dg-dls{font-size:12.5px}
.dg-toq{padding:5px 12px;background:#16a34a;color:#fff;border:0;border-radius:7px;cursor:pointer;font-size:12px}
.dg-pages{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.dg-pages a{background:#fff;color:#1c1917;border:1px solid #ddd;padding:6px 12px;border-radius:7px;text-decoration:none;font-size:13px}
.dg-pages a.on{background:#1c1917;color:#fff;border:0}
/* «📋 План книг» → «Власні книги» (src/digital/templates/plan_stubs.html) */
/* перемикач сайтів плану (04.11.2026): Mirava Україна | Esoterica Books США */
.sp-quota{margin:8px 0;padding:8px 12px;border:1px dashed #d6d3d1;border-radius:9px;font-size:12.5px;color:#57534e;background:#fafaf9}
.sp-sites{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
.sp-sites a{border:1.5px solid #e7e5e4;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:700;color:#1c1917;text-decoration:none;background:#fff}
.sp-sites a.on{border-color:#0e7a4d;background:#f0fdf6;color:#0e7a4d}
.sp-kpi{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.sp-kpi span,.sp-kpi a{background:#fff;border:1px solid #e7e5e4;border-radius:9px;padding:7px 12px;font-size:13px;color:#1c1917;text-decoration:none}
.sp-filt{flex-wrap:wrap;align-items:center;margin-bottom:14px}
.sp-filt select{padding:9px;border:1px solid #ddd;border-radius:9px;background:#fff}
.sp-meta{font-size:11.5px;color:#a8a29e;margin-top:2px}
.sp-q summary{cursor:pointer;font-size:12px;color:#2563eb;margin-top:4px}
.sp-q ul{margin:6px 0 0;padding-left:18px;font-size:12.5px}
.sp-q li span{color:#78716c;font-family:ui-monospace,Menlo,monospace;font-size:11.5px}
/* /digital/ebooklink */
h2.dg-elh{margin:0 0 4px}
p.dg-lead{color:#78716c;font-size:13.5px}
.dg-elf{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.dg-elf label{font-size:12px;color:#78716c}
.dg-elf select{padding:9px;border:1px solid #ddd;border-radius:8px}
.dg-elf input{padding:9px;border:1px solid #ddd;border-radius:8px;width:180px}
.dg-elf button{padding:10px 20px;background:#16a34a;color:#fff;border:0;border-radius:8px;font-weight:600;cursor:pointer}
.dg-elres{background:#ecfdf5;border:1px solid #6ee7b7;border-radius:12px;padding:16px;margin-top:16px}
.dg-elres-h{font-size:13px;color:#047857;margin-bottom:6px}
.dg-elres input{width:100%;padding:10px;border:1px solid #a7f3d0;border-radius:8px;font-size:13px}
.dg-elres .dg-sub{margin-top:6px}
p.dg-back{margin-top:18px}
/* /digital/docs */
.dg-docs{max-width:900px;margin:0 auto}
.dg-docs-h{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.dg-docs-h button{padding:8px 18px;background:#16a34a;color:#fff;border:0;border-radius:8px;cursor:pointer;font-weight:600}
.dg-docs-h a{margin-left:auto}
.dg-docs textarea{display:none;position:absolute;left:-9999px}
.dg-docs pre{white-space:pre-wrap;background:#fff;border:1px solid #eceae6;border-radius:12px;padding:22px;font-size:13px;line-height:1.55;font-family:ui-monospace,Menlo,monospace}
/* ── Маркетинг (src/marketing/templates) ── */
.mk-h{margin:0 0 14px}
.card.mk-err{color:#b91c1c}
.card .n.mk-accent{color:#ea580c}
/* «📈 Націнка» */
.mk-box{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:22px;max-width:760px}
.mk-box h3{margin:0 0 6px}
.mk-last{color:#78716c;font-size:13px;margin-bottom:18px}
.mk-lbl{display:block;font-size:13px;font-weight:700;margin-bottom:7px}
.mk-row{display:flex;gap:10px;align-items:center}
.mk-pct{width:170px;padding:12px 14px;border:1.5px solid #d6d3d1;border-radius:10px;font-size:20px;font-weight:800}
.mk-pct-u{font-size:20px}
.mk-example{margin-top:13px;background:#f5f5f4;border-radius:10px;padding:11px 14px;font-size:14px}
.mk-ack{display:flex;gap:9px;align-items:flex-start;margin-top:18px;font-size:13px;color:#57534e;cursor:pointer}
.mk-ack input{margin-top:2px}
.mk-save{margin-top:16px;padding:11px 22px;background:#ea580c;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:800;cursor:pointer}
.mk-status{margin-top:10px;font-size:13px}
h3.mk-h3{margin:24px 0 10px}
/* «📣 Реклама» */
.card .n.mk-ok{color:#16a34a}
.card .n.mk-bad{color:#dc2626}
.mk-reasons{display:grid;grid-template-columns:minmax(360px,620px) minmax(300px,1fr);gap:16px}
h3.mk-h3t{margin:8px 0 10px}
h3.mk-h3bad{margin:22px 0 10px;color:#b91c1c}
.mk-src{font-size:12px;color:#78716c;margin-top:7px}
.mk-active{font-size:13px;color:#78716c;margin:10px 0}
.mk-rebuild{padding:10px 16px;background:#ea580c;color:#fff;border:0;border-radius:9px;font-weight:800;cursor:pointer}
.mk-adstatus{margin-top:9px;font-size:13px}
.mk-mt10{margin-top:10px}
.mk-search{display:flex;gap:8px;margin-bottom:10px}
.mk-search input[name=q]{width:330px;padding:9px 12px;border:1px solid #d6d3d1;border-radius:9px}
.mk-search button{padding:9px 15px;border:0;border-radius:9px;background:#292524;color:#fff}
/* «▦ QR»: форма кампанії, кампанії, токени; «🔑 Токен створено» */
h1.mk-h1{margin-top:0}
.mk-inp{padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;background:#fff}
.mk-qrbox{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px;margin-bottom:18px}
h2.mk-qrh{margin:0 0 14px;font-size:19px}
.mk-qrform{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}
.mk-qrform label{font-size:12px;color:#78716c}
.mk-qrform label.mk-span2{grid-column:span 2}
.mk-qrform .mk-inp{width:100%;display:block;margin-top:4px}
.mk-rel{position:relative}
.mk-qrcreate{grid-column:span 4;padding:11px 18px;background:#059669;color:#fff;border:0;border-radius:10px;font-weight:800;cursor:pointer}
.mk-qrsearch{display:flex;gap:8px;margin:0 0 10px}
.mk-inp.mk-w280{min-width:280px}
.mk-inp.mk-w260{min-width:260px}
.mk-blue{padding:9px 14px;border:0;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:700}
.mk-dark{padding:9px 14px;border:0;border-radius:9px;background:#1c1917;color:#fff;font-weight:700}
.mk-scroll{overflow:auto}
.mk-qrimg{border:1px solid #e7e5e4;border-radius:9px}
.mk-qrsub{color:#78716c;font-size:12px;margin-top:3px}
.mk-mt5{margin-top:5px}
.mk-mt7{margin-top:7px}
.mk-copy{border:0;background:#f5f5f4;border-radius:6px;cursor:pointer}
.mk-sm{font-size:12px;color:#78716c}
.mk-xs{font-size:11px;color:#78716c}
.mk-xs-muted{font-size:11px;color:#a8a29e}
.mk-state{background:#f1f5f9;color:#64748b;padding:3px 8px;border-radius:7px;font-size:11px;font-weight:800}
.mk-state.on{background:#dcfce7;color:#166534}
.mk-btn{border:1px solid #d6d3d1;background:#fff;border-radius:7px;padding:5px 8px;cursor:pointer}
.mk-btn.mk-p9{padding:5px 9px}
td.mk-empty{padding:30px;text-align:center;color:#a8a29e}
.mk-api{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px;margin-top:18px}
.mk-api summary{font-size:17px;font-weight:800;cursor:pointer}
.mk-api-p{color:#57534e;line-height:1.5}
.mk-tokform{display:flex;gap:8px;margin-bottom:12px}
.mk-api-foot{font-size:12px;color:#78716c;margin-bottom:0}
.mk-token{background:#111827;color:#fff;padding:18px;border-radius:12px;word-break:break-all}
.mk-tokcopy{margin-top:12px;padding:10px 16px;border:0;border-radius:9px;background:#059669;color:#fff;font-weight:800;cursor:pointer}
.mk-ml10{margin-left:10px}
/* «📣 Реклама» → «Розбіжності»: кожен вид — згорнутий список товарів із кількістю */
.mk-diffs{display:flex;flex-direction:column;gap:10px}
.mk-feed-err{margin:0;color:#b91c1c}
.mk-diff summary{cursor:pointer;font-weight:700;color:#b91c1c}
.mk-diff table{margin-top:8px}
.mk-diff-none{color:#78716c}
.mk-id{font-size:12px;color:#a8a29e;white-space:nowrap}
/* ── Редактор замовлення (orders/templates/editor.html); до 28.10.2026 — <style> у сторінці ── */
.oe-back{margin-bottom:12px}
.oe-back a{color:#78716c;text-decoration:none}
.oe-h{margin:0 0 5px}
.oe-sub{color:#78716c;font-size:14px;margin-bottom:18px}
.oe-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.oe-card{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px;margin-bottom:16px}.oe-card h3{font-size:15px;margin:0 0 11px}.oe-input{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;margin-bottom:10px;background:#fff}.oe-rel{position:relative}.oe-dd{display:none;position:absolute;z-index:30;left:0;right:0;top:42px;max-height:240px;overflow:auto;background:#fff;border:1px solid #ddd;border-radius:9px;box-shadow:0 12px 26px #0002}.oe-dd div{padding:9px 11px;border-bottom:1px solid #f2f0ec;cursor:pointer;font-size:13px}.oe-dd div:hover{background:#fff7ed}.oe-total{border-top:1px solid #eee;margin-top:10px;padding-top:10px;font-weight:800;text-align:right}.oe-label{display:block;color:#78716c;font-size:12px;margin:2px 0 5px}.oe-save{width:100%;padding:13px;border:0;border-radius:11px;background:#16a34a;color:#fff;font-weight:800;font-size:15px;cursor:pointer}.oe-error{color:#dc2626;font-size:13px;margin-top:8px}.oe-row{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #f5f4f2}.oe-row button{border:1px solid #ddd;background:#fff;border-radius:7px;padding:5px 9px;cursor:pointer}@media(max-width:820px){.oe-grid{grid-template-columns:1fr}}
/* ── Фінанси (src/finance/templates) ── */
/* зони ліміту ФОП і кольори сум «Гроші»: норма / слідкувати / увага / критично */
.z-green{color:#16a34a}
.z-yellow{color:#f59e0b}
.z-orange{color:#ea580c}
.z-red{color:#dc2626}
.fi-fill.f-green{background:#16a34a}
.fi-fill.f-yellow{background:#f59e0b}
.fi-fill.f-orange{background:#ea580c}
.fi-fill.f-red{background:#dc2626}
.fi-error{padding:20px;color:#b00}
/* «💳 Оплати» */
.fi-denied{padding:30px;color:#a8a29e}
h2.fi-h{margin:0 0 14px}
.fi-wfp{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:20px;max-width:620px}
.fi-mb14{margin-bottom:14px}
.fi-key{padding:3px 11px;border-radius:8px;font-size:12px;font-weight:800}
.fi-key.ok{background:#dcfce7;color:#166534}
.fi-key.no{background:#fee2e2;color:#991b1b}
.fi-help{font-size:13px;color:#78716c;margin-bottom:12px}
.fi-lbl{font-size:12px;color:#78716c}
.fi-inp{width:100%;padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;box-sizing:border-box;margin-bottom:9px}
.fi-save{padding:10px 18px;border:none;border-radius:10px;background:#7c3aed;color:#fff;font-weight:800;cursor:pointer}
h3.fi-h3{margin:22px 0 10px;font-size:16px}
.fi-tbox{background:#fff;border:1px solid #eceae6;border-radius:14px;overflow:hidden}
table.fi-plain{border:none}
td.fi-empty{padding:18px;color:#a8a29e}
/* «📊 Доходи» */
.fi-rev{margin:0 0 14px;background:#fff;border:1px solid #eceae6;border-radius:12px;padding:10px 16px}
.fi-rev summary{cursor:pointer;font-weight:700}
.fi-scroll{overflow-x:auto;margin-top:10px}
th.fi-left{text-align:left}
tr.fi-today{background:#fff7ed}
tr.fi-sum{background:#f1f5f9;font-weight:700}
/* «🛡 Контроль» */
.fi-card{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:22px 24px;margin-bottom:16px}
.fi-card.fi-p20{padding:20px 24px}
.fi-card.fi-mb0{margin-bottom:0}
.fi-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px}
.fi-t16{font-size:16px;font-weight:800}
.fi-t15{font-size:15px;font-weight:800}
.fi-t15.fi-mb4{margin-bottom:4px}
.fi-t15.fi-mb14{margin-bottom:14px}
.fi-sub13{font-size:13px;color:#78716c}
.fi-gross{display:flex;align-items:baseline;gap:14px;margin:12px 0 4px;flex-wrap:wrap}
.fi-big{font-size:34px;font-weight:800}
.fi-of{font-size:15px;color:#78716c}
.fi-zone{margin-left:auto;font-size:14px;font-weight:700}
.fi-bar{position:relative;height:16px;background:#f1efeb;border-radius:99px;margin:14px 0 22px}
.fi-fill{height:100%;border-radius:99px}
.fi-mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:rgba(0,0,0,.25)}
.fi-markl{position:absolute;top:20px;transform:translateX(-50%);font-size:10px;color:#a8a29e}
.fi-mark.at70,.fi-markl.at70{left:70%}
.fi-mark.at85,.fi-markl.at85{left:85%}
.fi-mark.at95,.fi-markl.at95{left:95%}
.fi-stats{display:flex;gap:24px;flex-wrap:wrap;font-size:13.5px;color:#57534e}
.fi-note{font-size:12.5px;color:#a8a29e;margin-bottom:14px}
table.fi-tax{font-size:13px}
tr.fi-taxh{text-align:left;color:#a8a29e}
tr.fi-future{color:#cbd5e1}
tr.fi-taxsum{border-top:2px solid #eceae6;font-weight:800}
.fi-cols{display:flex;align-items:flex-end;gap:6px;height:130px}
.fi-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.fi-coll{font-size:10px;color:#78716c}
.fi-colbar{width:100%;background:#fdba74;border-radius:4px 4px 0 0}
.fi-colbar.now{background:#ea580c}
.fi-colm{font-size:10px;color:#a8a29e}
.fi-foot{font-size:11.5px;color:#a8a29e;margin-top:12px;line-height:1.5}
/* «💵 Гроші» */
.fi-box{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:22px 24px;margin-bottom:16px}
.fi-box.fi-mb0{margin-bottom:0}
.fi-box.fi-wfpbox{padding:18px 22px;margin:16px 0 0}
.fi-nosync{margin-top:8px;color:#78716c;font-size:13.5px}
.fi-overdue{background:#fff5f5;border:1px solid #fecaca;border-radius:14px;padding:18px 22px;margin-bottom:16px}
.fi-od-t{font-size:15px;font-weight:800;color:#991b1b}
.fi-od-s{font-size:12.5px;color:#7f1d1d;margin:4px 0 12px}
.fi-od-s2{font-size:12.5px;color:#a8a29e;margin:4px 0 12px}
table.fi-t{width:100%;border-collapse:collapse;font-size:13.5px}
tr.fi-od-row{border-top:1px solid #fecaca}
td.fi-od-first{padding:6px 8px}
td.fi-od-amt{text-align:right;font-weight:800}
td.fi-od-late{color:#991b1b}
.fi-olink{color:#0f766e;text-decoration:none}
.fi-ttn{color:#0ea5e9;text-decoration:none}
.fi-kpis{display:flex;gap:26px;flex-wrap:wrap;margin:16px 0 4px}
.fi-kl{font-size:12.5px;color:#a8a29e}
.fi-kv{font-size:26px;font-weight:800}
.fi-kpi-online{border-left:1px solid #eceae6;padding-left:26px}
.fi-ks{font-size:12px;color:#a8a29e}
.fi-explain{margin-top:10px;font-size:12.5px;color:#a8a29e;line-height:1.55}
.fi-tcard{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:8px 6px 14px}
tr.fi-th{color:#a8a29e;font-size:12px;text-align:left}
.fi-t .fi-first{padding:8px 10px}
.fi-t .fi-r{text-align:right}
tr.fi-row{border-top:1px solid #f5f3f0;background:#fff}
tr.fi-row.late{background:#fff5f5}
tr.fi-wrow{border-top:1px solid #f5f3f0}
td.fi-amt{text-align:right;font-weight:400;color:#1c1917}
td.fi-amt.b{font-weight:800}
td.fi-amt.late{color:#dc2626}
td.fi-late{color:#dc2626}
td.fi-w7{font-weight:700}
td.fi-dim{color:#a8a29e}
td.fi-ink{color:#1c1917}
.fi-rates-warn{background:#fffbeb;border:1px solid #fcd34d;border-radius:11px;padding:11px 15px;font-size:13px;color:#78350f;line-height:1.55;margin-bottom:14px}
/* ── Документи (content/templates/docs.html): карта процесів ФОП ── */
.dc-meta{font-size:12.5px;color:#a8a29e;margin-bottom:14px;line-height:1.5}
.dc-wrap{display:flex;gap:20px;align-items:flex-start}
.dc-nav{flex:0 0 250px}
.dc-btn{display:block;padding:9px 12px;border-radius:8px;font-size:13px;color:#44403c;text-decoration:none;cursor:pointer;margin-bottom:2px;line-height:1.35}
.dc-btn:hover{background:#f5f4f2}
.dc-btn.on{background:#fff7ed;color:#c2410c;font-weight:700}
.dc-panels{flex:1;min-width:0}
.dc-panel{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:22px 26px}
.dc-h{font-size:19px;font-weight:800;color:#1c1917;margin:0 0 12px}
.dc-sub{font-size:15px;font-weight:700;color:#1c1917;margin:24px 0 8px;padding-top:16px;border-top:1px solid #f1efeb}
.dc-p{margin:8px 0;color:#44403c;font-size:13.5px;line-height:1.65}
.dc-note{margin:14px 0;padding:11px 15px;border-left:3px solid #f59e0b;background:#fffbeb;border-radius:0 9px 9px 0;color:#78350f;font-size:13px;line-height:1.6}
.dc-caption{margin:10px 0;font-size:12.5px;color:#78716c;font-style:italic}
.dc-scroll{overflow-x:auto;margin:12px 0}
table.dc-table th,table.dc-table td{vertical-align:top;line-height:1.5}
table.dc-table td{color:#44403c}
table.dc-table th[scope=row]{text-transform:none;letter-spacing:0;font-size:13px;font-weight:700;color:#1c1917;background:#fff}
table.dc-c2 th[scope=row]{width:30%}
table.dc-c3 th[scope=row]{width:22%}
table.dc-raci td{text-align:center;font-weight:700;color:#1c1917;white-space:nowrap}
table.dc-raci th:not([scope=row]){text-align:center}
table.dc-raci th:first-child{text-align:left}
ul.dc-list{margin:8px 0;padding-left:20px;color:#44403c;font-size:13.5px;line-height:1.6}
ul.dc-list li{margin:5px 0}
ul.dc-steps{margin:10px 0;padding-left:24px;list-style:decimal;color:#44403c;font-size:13.5px;line-height:1.6}
ul.dc-steps li{margin:6px 0;padding-left:4px}
ul.dc-check{margin:8px 0;padding:0;list-style:none;color:#44403c;font-size:13.5px;line-height:1.55}
ul.dc-check li{padding:6px 0;border-bottom:1px dashed #eceae6}
ul.dc-sources{margin:8px 0;padding:0;list-style:none;color:#57534e;font-size:12.5px;line-height:1.55}
ul.dc-sources li{padding:5px 0;border-bottom:1px solid #f5f4f1}
ul.dc-sources a{word-break:break-all}
.dc-card{border:1px solid #eceae6;border-radius:12px;padding:2px 18px 14px;margin:16px 0}
.dc-card .dc-sub{border-top:0;margin:12px 0 10px;padding-top:0}
dl.dc-kv{display:grid;grid-template-columns:190px 1fr;gap:9px 18px;margin:0}
dl.dc-kv dt{font-size:12.5px;font-weight:700;color:#57534e}
dl.dc-kv dd{margin:0;font-size:13.5px;color:#44403c;line-height:1.55}
@media(max-width:760px){.dc-wrap{flex-direction:column}.dc-nav{flex:none;display:flex;flex-wrap:wrap;gap:4px}.dc-btn{font-size:12px;padding:6px 10px}.dc-panel{padding:16px 14px}dl.dc-kv{grid-template-columns:1fr;gap:2px}dl.dc-kv dd{margin-bottom:8px}}
/* ── Графіки (src/charts/templates/charts.html, static/charts.js) ── */
.ch-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ch-h{margin:0}
.ch-ranges,.ch-seg{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.ch-seg[hidden]{display:none}
.ch-ranges button,.ch-seg button{padding:7px 12px;border:1px solid #e2e0db;background:#fff;border-radius:9px;font-size:13px;cursor:pointer;color:#44403c}
.ch-ranges button.on,.ch-seg button.on{background:#1c1917;border-color:#1c1917;color:#fff;font-weight:700}
.ch-custom{display:inline-flex;gap:6px;align-items:center;margin-left:8px;font-size:13px;color:#78716c}
.ch-custom input{padding:6px 8px;border:1px solid #e2e0db;border-radius:8px;font-size:13px}
.ch-controls{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-bottom:12px}
.ch-check{font-size:13px;color:#44403c;display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.ch-sites{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.ch-chips{display:contents}
.ch-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #e2e0db;border-radius:99px;background:#fafaf9;font-size:12.5px;color:#a8a29e;cursor:pointer;user-select:none}
.ch-chip i{width:10px;height:10px;border-radius:50%;opacity:.35}
.ch-chip.on{background:#fff;color:#1c1917;border-color:#d6d3d1}
.ch-chip.on i{opacity:1}
.ch-chip.err{border-style:dashed}
.ch-link{border:0;background:none;color:#c2410c;font-size:12.5px;cursor:pointer;padding:4px 6px}
.ch-rates{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:9px 13px;font-size:12.5px;color:#075985;line-height:1.55;margin-bottom:10px}
.ch-errors{background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;padding:9px 13px;font-size:12.5px;color:#78350f;margin-bottom:10px}
.ch-warn{color:#b45309;font-weight:700}
.ch-card{position:relative;background:#fff;border:1px solid #eceae6;border-radius:14px;padding:14px 16px 6px;margin-bottom:14px}
.ch-summary{font-size:13.5px;color:#44403c;margin-bottom:6px;line-height:1.6}
.ch-big{font-size:20px;font-weight:800;color:#1c1917}
.ch-muted{color:#a8a29e;font-size:12.5px}
.ch-dup{color:#16a34a;font-weight:700}
.ch-ddown{color:#dc2626;font-weight:700}
.ch-d0{color:#a8a29e}
.ch-plot{min-height:300px;overflow:hidden}
.ch-plot svg{display:block;max-width:100%;height:auto}
.ch-loading{padding:120px 0;text-align:center;color:#a8a29e;font-size:13px}
.ch-grid{stroke:#f1f5f9}
.ch-ylab,.ch-xlab{font-size:11px;fill:#94a3b8}
.ch-guide{stroke:#cbd5e1;stroke-dasharray:3 3}
.ch-tip{position:absolute;z-index:5;background:#1c1917;color:#fff;border-radius:9px;padding:8px 10px;font-size:12px;min-width:200px;max-width:340px;pointer-events:none;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.ch-tip-h{font-weight:700;margin-bottom:4px;color:#fde68a}
.ch-tip-r{display:flex;align-items:center;gap:6px;padding:1px 0}
.ch-tip-r i{width:8px;height:8px;border-radius:50%;flex:none}
.ch-tip-r b{margin-left:auto;padding-left:10px}
.ch-tip-z{color:#a8a29e;font-size:11px;padding-top:2px}
.ch-tip-f{margin-top:5px;padding-top:5px;border-top:1px solid #44403c;color:#d6d3d1;font-size:11px}
.ch-tablehead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ch-tabletitle{font-size:12.5px;color:#78716c}
.ch-csv{padding:6px 12px;border:1px solid #e2e0db;background:#fff;border-radius:9px;font-size:12.5px;cursor:pointer}
.ch-tablebox{overflow-x:auto}
table.ch-table tr[data-key]{cursor:pointer}
table.ch-table tr.ch-offrow td{color:#c4c0bb}
table.ch-table th.ch-r,table.ch-table td.ch-r{text-align:right;white-space:nowrap}
.ch-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}
@media(max-width:760px){.ch-custom{margin-left:0}.ch-ranges button,.ch-seg button{padding:6px 9px;font-size:12px}}
/* ── Telegram (src/messaging/templates, static/telegram.js): переписка, «що знає бот», /chat/{id} ── */
.panel-h.tg-m8{margin-bottom:8px}.panel-h.tg-m10{margin-bottom:10px}
.tg-count{font-weight:400;color:#a8a29e;font-size:13px}
.tg-empty{color:#a8a29e;font-size:13px}
.tg-log{max-height:420px;overflow-y:auto;padding-right:4px}
/* бульбашка репліки: клієнт зліва, бот і менеджер справа */
.tg-row{display:flex;justify-content:flex-start;margin-bottom:9px}.tg-row.end{justify-content:flex-end}
.tg-bub{max-width:78%;background:#f5f4f2;color:#1c1917;border-radius:13px;padding:9px 13px}
.tg-bub.bot{background:#eff6ff;color:#1e3a5f}.tg-bub.manager{background:#dcfce7;color:#166534}
.tg-meta{font-size:11px;opacity:.65;margin-bottom:3px}
.tg-text{font-size:14px;line-height:1.5;white-space:pre-wrap}
.tg-open{display:block;text-align:center;text-decoration:none;background:#229ED9;color:#fff;font-weight:800;font-size:15px;padding:14px;border-radius:12px;margin-top:16px;box-shadow:0 3px 12px rgba(34,158,217,.3)}
.tg-open-note{text-align:center;color:#a8a29e;font-size:12px;margin-top:6px}
/* «🧠 Що знає бот» */
.tg-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.tg-chip{background:#f5f4f2;border-radius:8px;padding:4px 10px;font-size:12.5px;color:#44403c}
.tg-hint{font-size:12.5px;color:#a8a29e}.tg-hint.m6{margin-bottom:6px}.tg-hint.bday{margin:8px 0 4px}
.tg-bday{font-size:13px;margin:8px 0 4px}.tg-bday-l{color:#78716c}
.tg-add{display:flex;gap:6px;margin-top:8px}
.tg-add-in{flex:1;padding:7px 10px;border:1.5px solid #e2e0db;border-radius:8px;font-size:13px}
.tg-add-btn{padding:7px 13px;border:none;border-radius:8px;background:#1c1917;color:#fff;font-weight:700;font-size:13px;cursor:pointer}
/* /chat/{id} */
.tg-crumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;margin-bottom:12px}
.tg-crumbs a{color:#78716c;text-decoration:none}.tg-sep{color:#d6d3d1}.tg-me{color:#1c1917;font-weight:700}
.tg-back{margin-bottom:10px}.tg-back a{color:#78716c;text-decoration:none;font-size:14px}
.tg-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.tg-h2{margin:0}.tg-phone{color:#78716c;font-size:14px}
.tg-pause{background:#fef3c7;color:#92400e;border-radius:9px;padding:8px 12px;font-size:13px;margin-bottom:10px}
.tg-box{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:16px;height:58vh;overflow-y:auto}
.tg-send{display:flex;gap:8px;margin-top:12px}
.tg-msg{flex:1;padding:11px 13px;border:1.5px solid #e2e0db;border-radius:11px;font-size:14px;resize:vertical}
.tg-snd{padding:0 22px;border:none;border-radius:11px;background:#229ED9;color:#fff;font-weight:800;cursor:pointer;font-size:15px}
.tg-err{font-size:13px;margin-top:6px}.tg-bad{color:#dc2626}
/* ── Дзвінки (src/calls/templates, static/calls.js) ── */
.cl-call{padding:10px 18px;background:#0088cc;color:#fff;border:none;border-radius:11px;font-weight:800;cursor:pointer;font-size:14px}
.cl-h{margin:0 0 12px}
.cl-banner{border-radius:10px;padding:12px 16px;margin-bottom:14px}
.cl-banner.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-weight:600}
.cl-banner.warn{background:#fef3c7;border:1px solid #fcd34d;color:#92400e}
.cl-box{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:16px 18px;margin-bottom:14px}
.cl-t{font-weight:700;margin-bottom:6px}
.cl-note{font-size:13px;color:#78716c;margin-bottom:8px}
.cl-in{padding:9px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px}
.cl-in.ext{width:230px}.cl-in.key{width:280px;margin-right:6px}.cl-in.pid{width:120px;margin-right:6px}
.cl-btn{color:#fff;border:none;border-radius:9px;font-weight:700;cursor:pointer}
.cl-btn.ext{margin-left:8px;padding:9px 18px;background:#ea580c}.cl-btn.key{padding:9px 18px;background:#1c1917}
.cl-btn.backfill{padding:9px 16px;background:#0088cc;margin-right:8px}.cl-btn.sync{padding:9px 16px;background:#7c3aed}
.cl-ok{margin-left:10px;font-weight:600}
.cl-tbox{background:#fff;border:1px solid #eceae6;border-radius:12px;overflow:hidden}
table.cl-table{border:none}
.cl-table td.cl-nw{white-space:nowrap}.cl-table td.cl-c{text-align:center}
.cl-audio{height:32px;max-width:170px}
.cl-ai-row{background:#faf9f7}.cl-table td.cl-ai{font-size:12.5px;color:#57534e}
.cl-table td.cl-empty{text-align:center;color:#a8a29e;padding:26px}
.cl-admin{margin-top:16px;background:#fff;border:1px solid #eceae6;border-radius:12px;padding:14px 18px}
.cl-admin summary{cursor:pointer;font-weight:700}
.cl-admin-in{margin-top:12px}
.cl-hr{border:none;border-top:1px solid #f0eee9;margin:16px 0}
.cl-hooks{font-size:13px;line-height:1.8}
.cl-code{word-break:break-all;background:#faf9f7;padding:3px 7px;border-radius:6px}
.cl-muted{color:#78716c}
.cl-foot{font-size:12px;color:#a8a29e;margin-top:8px}
/* ── Бот (src/bot/templates/bot.html, static/bot.js) ── */
.bt-h{margin:0 0 4px}
.bt-sub{color:#78716c;font-size:13px;margin-bottom:14px}
.bt-role{background:#faf9f7;border:1px solid #eceae6;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px}
.bt-muted{color:#78716c}
.cards.bt-cards{margin:14px 0 6px}
.bt-box{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:16px 18px;margin-top:16px}.bt-box.first{margin-top:0}
.bt-box-h{font-weight:800;margin-bottom:4px}
.bt-hint{font-size:12.5px;color:#a8a29e}.bt-hint.m10{margin-bottom:10px}.bt-hint.m8{margin-bottom:8px}
/* «📤 Що бот надсилає клієнту» */
table.bt-sends{width:100%;border-collapse:collapse;font-size:14px}
.bt-sends td.bt-s-name{padding:9px 10px}
.bt-sends td.bt-s-who{color:#78716c;font-size:13px}
.bt-sends td.bt-s-state{text-align:right;padding-right:10px}
.bt-badge{font-size:11px;font-weight:800;padding:2px 9px;border-radius:20px}
.bt-badge.t{color:#166534;background:#dcfce7}.bt-badge.p{color:#9a3412;background:#ffedd5}
.bt-state{color:#78716c;font-size:12.5px}.bt-state.on{color:#166534;font-weight:700}
/* «🎛 Функції бота»: рядок і вимикач */
.bt-feat{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #f5f4f2}
.bt-feat-i{font-size:19px}.bt-feat-t{flex:1}
.bt-feat-n{font-size:14px;font-weight:700}.bt-feat-d{font-size:12px;color:#a8a29e}
.bt-switch{position:relative;display:inline-block;width:46px;height:26px;cursor:pointer}
.bt-switch input{opacity:0;width:0;height:0}
.bf-sl{position:absolute;inset:0;background:#d6d3d1;border-radius:26px;transition:.2s}
.bf-knob{position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
/* вигляд іде за станом галочки — до 28.10.2026 колір і положення ставились при рендері й після кліку не мінялись */
.bt-switch input:checked+.bf-sl{background:#16a34a}.bt-switch input:checked+.bf-sl .bf-knob{left:23px}
.bt-switch input:focus-visible+.bf-sl{outline:2px solid #ea580c;outline-offset:2px}
/* «🔗 Мій Telegram» */
.bt-tg-h{font-weight:700;margin-bottom:10px}.bt-tg-h2{font-weight:700;margin-bottom:6px}
.bt-bound{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:12px 16px;color:#166534;font-weight:600;margin-bottom:14px}
.bt-link{padding:10px 20px;background:#0088cc;color:#fff;border:none;border-radius:9px;font-weight:700;cursor:pointer}
.bt-linkout{margin:10px 0 14px}
.bt-linkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:12px 16px}
.bt-linkbox a{font-weight:700;word-break:break-all;color:#0088cc}
.bt-linkhint{font-size:12px;color:#78716c;margin-top:6px}
.bt-chk{display:block;margin:8px 0;font-size:14px;cursor:pointer}.bt-chk input{margin-right:8px}
.bt-note{color:#a8a29e;font-size:12px}
.bt-save{margin-top:12px;padding:9px 20px;background:#ea580c;color:#fff;border:none;border-radius:9px;font-weight:700;cursor:pointer}
.bt-ok{margin-left:10px;color:#16a34a;font-weight:600}
.bt-later{font-size:12px;color:#a8a29e;margin-top:8px}
/* план функцій по ролях; «це ти» — своя роль */
.bt-sects{display:flex;gap:14px;flex-wrap:wrap;margin-top:20px}
.bt-sect{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:16px 18px;flex:1;min-width:240px}
.bt-sect.mine{background:#fff7ed;border:2px solid #ea580c}
.bt-sect-h{font-size:15px;font-weight:800;margin-bottom:10px}
.bt-me{background:#ea580c;color:#fff;font-size:11px;padding:2px 9px;border-radius:20px;vertical-align:middle;font-weight:700}
.bt-li{margin:4px 0;font-size:14px}.bt-li.done{color:#166534}.bt-li.plan{color:#a8a29e}
/* ── Спільне для «Сайтів» і «Партнерів»: заголовок групи з лічильником, посилання на зовнішній сайт; «Немає доступу» ── */
.grp-h{margin:22px 0 10px;font-size:16px;color:#1C1917}.grp-h span{color:#A8A29E;font-weight:500}
a.ext-link{color:#0E7A4D;text-decoration:none}a.ext-link.b{font-weight:700}
.page-denied{padding:30px;color:#a8a29e}
/* ── «📝 AI-блог» (content/templates/aiblog.html) ── */
.ab-h{margin:0 0 4px}
.ab-lead{color:#a8a29e;font-size:13px;margin:0 0 16px}
.ab-bar{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.ab-set{display:flex;gap:12px;align-items:center;background:#1c1917;border:1px solid #44403c;border-radius:12px;padding:14px 18px}
.ab-on{display:flex;gap:8px;align-items:center;font-size:14px;cursor:pointer;color:#e7e5e4}
.ab-mode{background:#292524;color:#e7e5e4;border:1px solid #57534e;border-radius:8px;padding:6px 10px}
.ab-run{background:#ea580c;color:#fff;border:none;border-radius:12px;padding:14px 22px;font-weight:700;cursor:pointer;font-size:14px}
.ab-note{color:#a8a29e;font-size:11px}.ab-run+.ab-note{margin-top:4px}
td.ab-nw{white-space:nowrap}td.ab-why{max-width:340px}td.ab-empty{color:#a8a29e}
a.ab-link{color:#fdba74}
.ab-st{padding:2px 8px;border-radius:8px;font-size:11px}
.ab-st.ok{background:#dcfce7;color:#166534}.ab-st.draft{background:#fef9c3;color:#854d0e}.ab-st.bad{background:#fee2e2;color:#991b1b}
.dc-missing{padding:20px;color:#b00}
/* ── «🏠 Огляд» (content/templates/overview.html) ── */
.ov-head{display:flex;align-items:baseline;gap:10px;margin:4px 0 14px}
.ov-h{margin:0;font-size:20px}
.ov-date{color:#78716c;font-size:13px}
.ov-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:22px}
.ov-kpi{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;color:inherit;text-decoration:none}
.ov-kpi.main{border-color:#fdba74;background:#fff7ed}
.ov-kpi.link:hover{border-color:#a8a29e}
.ov-kpi-l{font-size:11px;font-weight:700;color:#78716c;text-transform:uppercase;letter-spacing:.04em}
.ov-kpi-n{font-size:30px;font-weight:800;line-height:1.1}
.ov-kpi-s{font-size:13px;color:#44403c;line-height:1.45}
.ov-inq{display:inline-block;margin-right:10px;white-space:nowrap}
.ov-go{margin-top:auto;font-size:12px;color:#ea580c}
.ov-h3{margin:0 0 8px;font-size:14px;color:#57534e}
table.ov-t td,table.ov-t th{white-space:nowrap}
th.ov-r,td.ov-r{text-align:right;font-variant-numeric:tabular-nums}
td.ov-hot{color:#c2410c}
.ov-zero{color:#a8a29e}
a.ov-site{color:inherit;text-decoration:none;font-weight:600}
a.ov-site:hover{color:#ea580c}
.ov-empty{padding:18px;color:#a8a29e;background:#fff;border:1px solid #eceae6;border-radius:12px}
.ov-idle{margin-top:12px;font-size:13px;color:#78716c;line-height:1.6}
.ov-idle-site{white-space:nowrap}
@media (max-width:640px){.ov-kpi-n{font-size:24px}table.ov-t td,table.ov-t th{white-space:normal}}
/* ── «👥 Юзери» (users/templates/users.html, static/users.js) ── */
.us-h{margin:0 0 14px}
.us-me{color:#16a34a;font-size:11px}
td.us-nw{white-space:nowrap}
.us-reset{border:1px solid #e2e0db;background:#fff;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer;margin-right:6px}
.us-del{border:1px solid #fecaca;background:#fff5f5;color:#dc2626;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}
.us-add{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px 20px;margin-top:18px}
.us-add-h{margin:0 0 12px;font-size:15px}
.us-add-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.us-in{padding:9px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px}
.us-sites-l{margin-top:12px;font-size:13px;color:#78716c}.us-sites{margin-top:6px}
.us-site{margin-right:12px;font-size:13px;white-space:nowrap}
.us-create{margin-top:14px;padding:9px 22px;background:#ea580c;color:#fff;border:none;border-radius:9px;font-weight:700;cursor:pointer}
.us-hint{font-size:12px;color:#a8a29e;margin-top:8px}
/* ── «🌐 Сайти» і картка сайту (sites/templates) ── */
a.si-title{font-weight:700;color:#1C1917;text-decoration:none}
a.si-notes{color:#7C3AED;text-decoration:none}
.si-none{color:#A8A29E}
td.si-muted{color:#78716c;font-size:13px}
.si-back{margin-bottom:14px}.si-back a{color:#78716c;text-decoration:none;font-size:14px}
.si-h{margin:0 0 4px;font-size:24px;color:#1C1917}
.si-sub{color:#78716c;font-size:14px;margin-bottom:16px}
.si-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:22px}
.si-fact{padding:10px 14px;background:#FAF8F4;border:1px solid #ECE6DD;border-radius:10px}
.si-fact-l{font-size:12px;color:#8A817C}
.si-fact-v{font-size:14px;color:#1C1917;font-weight:600;margin-top:2px}
.si-noteform{margin-bottom:22px}
.si-ta{width:100%;padding:12px 14px;border:1.5px solid #e2e0db;border-radius:12px;font-family:inherit;font-size:14px;resize:vertical;box-sizing:border-box}
.si-add{margin-top:10px;padding:10px 20px;border:none;border-radius:10px;background:#7C3AED;color:#fff;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit}
.si-shop{margin-bottom:22px;padding:16px 18px;border:1px solid #ECE6DD;border-radius:12px;background:#FAF8F4}
.si-shop-h{font-size:15px;font-weight:800;color:#1C1917;margin-bottom:4px}
.si-shop-st{font-size:12.5px;margin-bottom:12px}
.si-on{color:#166534;font-weight:700}.si-off{color:#78716c}.si-wait{color:#b45309;font-weight:700}
.si-err{margin-bottom:10px;color:#dc2626;font-weight:700}
.si-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.si-lab{display:block;font-size:12px;color:#8A817C}
.si-in{display:block;width:100%;margin-top:3px;padding:8px 10px;border:1.5px solid #e2e0db;border-radius:9px;font-family:inherit;font-size:14px;box-sizing:border-box}
.si-save{margin-top:12px;padding:9px 18px;border:none;border-radius:10px;background:#1C1917;color:#fff;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit}
.si-log-h{margin:0 0 12px;font-size:16px;color:#1C1917}
/* фіолетова смуга зліва: до 28.10.2026 інлайновий border після border-left фарбував її в колір рамки */
.si-log{padding:12px 14px;background:#fff;border:1px solid #ECE6DD;border-left:3px solid #7C3AED;border-radius:10px;margin-bottom:10px}
.si-log-m{font-size:12px;color:#8A817C;margin-bottom:5px}
.si-log-t{font-size:14px;color:#1C1917;white-space:pre-wrap}
.si-empty{color:#8A817C;font-size:14px;padding:8px 0}
/* ── «🤝 Партнери» (partners/templates/partners.html, static/partners.js) ── */
.pa-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;align-items:start;margin:0 0 18px;padding:16px;background:#FFFBF7;border:1px solid #F0EBE3;border-radius:14px}
.pa-kinds{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.pa-kind-opt{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #E7E5E4;border-radius:999px;background:#fff;cursor:pointer;font-size:14px;font-weight:600}
.pa-lab{font-size:12.5px;color:#57534E}.pa-lab.wide{grid-column:1/-1}
.pa-in{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #E7E5E4;border-radius:9px;font:inherit;font-size:14px;background:#fff}.pa-in.ta{resize:vertical}
.pa-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center}
.pa-save{padding:10px 18px;border:0;border-radius:9px;background:#EA580C;color:#fff;font-weight:800;cursor:pointer}
.pa-cancel{padding:10px 14px;border:1px solid #E7E5E4;border-radius:9px;background:#fff;cursor:pointer}
.pa-msg{font-size:13px}
.pa-scroll{overflow-x:auto}
/* значок виду: партнер — синій, власний сайт — зелений */
.pa-kind{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:#EFF6FF;color:#1D4ED8}
.pa-kind.own{background:#ECFDF5;color:#047857}
td.pa-nw{white-space:nowrap}
.pa-none{color:#A8A29E}
td.pa-comment{white-space:pre-wrap;min-width:220px}
td.pa-upd{color:#A8A29E;font-size:12px;white-space:nowrap}
.pa-icon{border:0;background:none;cursor:pointer;font-size:16px}
.pa-empty{color:#78716C;padding:12px 0}
/* «✍️ Автори-партнери Mirava» (src/partners/templates/author_sales.html) */
.as-note{color:#78716C;font-size:13px;margin:-4px 0 12px}
.as-card{border:1px solid #F0EBE3;border-radius:14px;padding:14px 16px;margin:0 0 14px;background:#fff}
.as-head{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}.as-meta{color:#A8A29E;font-size:12.5px}.as-tot{margin-left:auto;font-size:13.5px;color:#57534E}
.as-sub{font-size:11.5px;font-weight:700;color:#A8A29E;letter-spacing:.8px;text-transform:uppercase;margin:12px 0 6px}
.as-t td.as-n,.as-t th{text-align:right;white-space:nowrap}.as-t th:nth-child(-n+3),.as-t td:nth-child(-n+3){text-align:left}.as-t td.as-a{font-weight:700;color:#15803D}
.as-fmt{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#EFF6FF;color:#1D4ED8}.as-fmt.paper{background:#FFF7ED;color:#C2410C}
/* ── «🎟 Промокоди» і код у зверненні (promo/templates, static/promo.js) ── */
.pr-h{margin:0 0 14px}
.pr-form{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:16px 18px;max-width:640px;margin-bottom:18px}
.pr-form-h{font-weight:800;margin-bottom:10px}
.pr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.pr-lab{font-size:12px;color:#78716c}.pr-lab.wide{display:block;margin-top:8px}
.pr-in{padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;box-sizing:border-box;width:100%}
.pr-create{margin-top:10px;padding:11px 18px;border:none;border-radius:10px;background:#EA580C;color:#fff;font-weight:800;cursor:pointer}
.pr-out{margin-top:10px}
.pr-new-code{font-size:22px;font-weight:900;letter-spacing:1px}
.pr-new-msg{width:100%;margin-top:6px}
.pr-new-copy{margin-top:6px;padding:8px 12px;border-radius:8px;border:none;background:#166534;color:#fff;font-weight:700;cursor:pointer}
.pr-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pr-stat{background:#fff;border:1px solid #eceae6;border-radius:12px;padding:10px 14px}
.pr-stat-l{font-size:12px;color:#78716c}
.pr-tbox{background:#fff;border:1px solid #eceae6;border-radius:14px;overflow:auto}.pr-tbox table{border:none}
.pr-who{font-size:11.5px;color:#78716c}
/* стан коду: використано / діє / прострочено / не знайдено й анульовано */
td.pr-st{font-weight:700}td.pr-st.used{color:#166534}td.pr-st.active{color:#1e40af}td.pr-st.expired{color:#78716c}
td.pr-st.missing,td.pr-st.off{color:#991b1b}
td.pr-date{font-size:12px}td.pr-empty{padding:18px;color:#a8a29e}
.pr-cancel{border:1px solid #fecaca;background:#fff5f5;color:#dc2626;border-radius:8px;padding:3px 9px;font-size:12px;cursor:pointer}
.pr-foot{font-size:12px;color:#a8a29e;margin-top:8px}
.pr-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.pr-box-code{font-family:monospace;font-size:16px;font-weight:900;letter-spacing:1px;padding:6px 12px;border:2px dashed #EA580C;border-radius:9px}
.pr-box-st{padding:5px 12px;border-radius:9px;font-size:13px;font-weight:800}
.pr-box-st.used{background:#dcfce7;color:#166534}.pr-box-st.active{background:#dbeafe;color:#1e40af}
.pr-box-st.expired{background:#f5f5f4;color:#57534e}.pr-box-st.missing{background:#fee2e2;color:#991b1b}
a.pr-box-link{font-weight:800}a.pr-box-link.used{color:#166534}
/* ── «♻ Б/У» (used/templates, static/used.js) ── */
a.ul-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:12px 16px;border-radius:12px;background:#ECFDF5;border:1px solid #6EE7B7;color:#065F46;text-decoration:none;font-size:15px;font-weight:600}
.ul-banner-go{margin-left:auto;font-weight:800}
.ul-error{padding:20px;color:#dc2626}
.ul-page{padding:22px;max-width:1000px}
.ul-h{margin:0 0 4px}
.ul-lead{font-size:13px;color:#78716c;margin-bottom:14px}
.ul-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
a.ul-tab{padding:8px 14px;border-radius:10px;text-decoration:none;font-weight:700;font-size:13px;background:#f5f5f4;color:#44403c}
a.ul-tab.on{background:#1c1917;color:#fff}.ul-tab span{opacity:.7}
.ul-card{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:16px;margin-bottom:12px}
.ul-pics{display:flex;gap:8px;flex-wrap:wrap}
.ul-pic{width:110px;height:150px;object-fit:cover;border-radius:8px;border:1px solid #e7e5e4}
.ul-none{color:#a8a29e}
.ul-title{margin-top:10px;font-size:16px;font-weight:800}.ul-title span{font-weight:500;color:#78716c}
.ul-meta{font-size:13px;color:#44403c;margin-top:4px}
a.ul-cat{color:#15803d;font-weight:700}.ul-nocat{color:#b45309;font-weight:700}
.ul-note{font-size:13px;color:#805b22;margin-top:4px}
.ul-seller{font-size:13px;color:#57534e;margin-top:4px}
.ul-link{display:flex;gap:6px;margin-top:8px}
.ul-link-in{flex:1;padding:7px;border:1px solid #d6d3d1;border-radius:8px;font-size:13px}
.ul-link-btn{padding:7px 12px;border:0;border-radius:8px;background:#44403c;color:#fff;font-weight:700;cursor:pointer}
.ul-edit{margin-top:8px}.ul-edit summary{cursor:pointer;font-size:13px;font-weight:700;color:#44403c}.ul-edit summary span{color:#b45309}
.ul-edit-in{display:grid;gap:6px;margin-top:8px}
.ul-in{padding:7px;border:1px solid #d6d3d1;border-radius:8px}.ul-in.ta{padding:8px;font-family:inherit;font-size:13px}
.ul-save{justify-self:start;padding:7px 14px;border:0;border-radius:8px;background:#1d4ed8;color:#fff;font-weight:700;cursor:pointer}
.ul-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.ul-pub{padding:9px 16px;border:0;border-radius:9px;background:#16a34a;color:#fff;font-weight:800;cursor:pointer}
.ul-reason{padding:8px;border:1px solid #d6d3d1;border-radius:8px;max-width:330px}
.ul-other{padding:8px;border:1px solid #d6d3d1;border-radius:8px;width:170px}
.ul-rej{padding:9px 16px;border:0;border-radius:9px;background:#dc2626;color:#fff;font-weight:800;cursor:pointer}
.ul-pubrow{margin-top:10px}a.ul-lotlink{font-weight:700;color:#2563eb}
.ul-withdraw{padding:6px 12px;border:1px solid #d6d3d1;border-radius:8px;background:#fff;cursor:pointer}
.ul-rejected{margin-top:8px;color:#b91c1c;font-size:13px}.ul-withdrawn{margin-top:8px;color:#78716c;font-size:13px}
.ul-order{margin-top:8px;font-size:13px}
.ul-empty{padding:30px;color:#a8a29e}
/* ── Картки звернення й питання (leads/templates) ── */
.ld-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.ld-h{margin:0}.ld-code{color:#a8a29e;font-size:15px}
.ld-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
a.ld-order{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;background:#16a34a;color:#fff;font-weight:800;font-size:14px;border-radius:10px;text-decoration:none}
.ld-sub{color:#78716c;font-size:13px;margin-bottom:16px}
.ld-box{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.6}.ld-box.q{line-height:1.7}
.ld-muted{color:#a8a29e}
a.ld-qprod{color:#7C3AED;font-weight:700}
.ld-qtext{margin-top:10px;font-size:15px;white-space:pre-wrap}
/* заявка-JSON по-людськи */
.ld-auto{background:#fef3c7;color:#92400e;border-radius:9px;padding:8px 12px;margin-bottom:10px;font-weight:700}
.ld-want{font-size:16px;font-weight:800;margin-bottom:10px}
.ld-row{display:flex;gap:12px;padding:6px 0;border-bottom:1px solid #f1efeb}.ld-row-l{min-width:110px;color:#78716c}
a.ld-tel{font-weight:800;color:#1d4ed8}a.ld-prod{color:#1d4ed8;font-weight:700}
.ld-ip{color:#a8a29e;font-size:12px;margin-top:8px}
/* «💬 Відповідь на сайті»: стан публікації — нове / опубліковано / приховано (сірий) */
.qa-box{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px 22px;margin-top:18px}
.qa-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.qa-h{margin:0;font-size:15px}
.qa-st{padding:2px 9px;border-radius:20px;font-size:11px;font-weight:800;background:#f5f5f4;color:#57534e}
.qa-st.new{background:#fee2e2;color:#991b1b}.qa-st.published{background:#dcfce7;color:#166534}
.qa-note{font-size:12.5px;color:#78716c;margin-top:6px}
.qa-answered{margin-top:8px;padding:9px 12px;background:#f0fdf4;border-radius:9px;font-size:13px;white-space:pre-wrap}.qa-by{color:#78716c}
.qa-ta{width:100%;box-sizing:border-box;margin-top:10px;border:1.5px solid #e2e0db;border-radius:9px;padding:10px;font:inherit}
.qa-btns{margin-top:8px}
.qa-answer{background:#16a34a;color:#fff;border:0;border-radius:8px;padding:8px 16px;font-weight:700;cursor:pointer}
.qa-other{background:#fff;border:1px solid #d6d3d1;border-radius:8px;padding:8px 16px;cursor:pointer}
/* ── «🛒 Замовлення» — черга лідів (orders/templates/queue.html) ── */
/* стадії: колір закладки воронки (коли вибрана) і значка в рядку; ключі — orders.queue.STAGES */
.q-stg.stg-new,.q-stage.on.stg-new{background:#fee2e2;color:#991b1b}
.q-stg.stg-work,.q-stage.on.stg-work{background:#fef3c7;color:#92400e}
.q-stg.stg-nocall,.q-stage.on.stg-nocall{background:#ffedd5;color:#9a3412}
.q-stg.stg-confirmed,.q-stage.on.stg-confirmed{background:#dbeafe;color:#1e40af}
.q-stg.stg-shipped,.q-stage.on.stg-shipped{background:#e0e7ff;color:#3730a3}
.q-stg.stg-done,.q-stage.on.stg-done{background:#dcfce7;color:#166534}
.q-stg.stg-canceled,.q-stage.on.stg-canceled{background:#f5f5f4;color:#57534e}
.q-stg.stg-other{background:#f5f5f4;color:#57534e}
/* значок магазину: свій колір — у магазинів з orders.inbox.STORE_BADGES, решта — сірий .sb */
.sb{display:inline-flex;min-width:30px;justify-content:center;padding:3px 7px;border-radius:7px;background:#f5f5f4;color:#57534e;border:1px solid #e7e5e4;font-size:11px;font-weight:900;letter-spacing:.4px;cursor:help}
.sb.sb-ua{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.sb.sb-so{background:#e2e8f0;color:#0f172a;border-color:#cbd5e1}
.sb.sb-za{background:#fdf2f8;color:#9d174d;border-color:#fbcfe8}.sb.sb-tk{background:#faf6ed;color:#7a5a1e;border-color:#e2cf9f}
.sb.sb-kd{background:#eef4f1;color:#2f5d4a;border-color:#bcd6c8}.sb.sb-ml{background:#f6f1ee;color:#6b4a3a;border-color:#dcc8bd}
.sb.sb-pl{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.sb.sb-lv{background:#fff1f2;color:#9f1239;border-color:#fecdd3}
.sb.sb-ro{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.sb.sb-lt{background:#f0fdf4;color:#166534;border-color:#bbf7d0}
.sb.sb-us{background:#faf5ff;color:#7e22ce;border-color:#e9d5ff}
/* магазини */
.q-stores{margin:12px 0 4px}
.q-stores-h{color:#78716c;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.45px;margin-bottom:7px}
.q-stores-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px}
a.q-store{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1.5px solid #e2e0db;border-radius:10px;text-decoration:none;font-size:13px;font-weight:750;white-space:nowrap;background:#fff;color:#57534e}
a.q-store.on{background:#1c1917;color:#fff;border-color:#1c1917}
.q-store-code{font-weight:900;letter-spacing:.35px}
.q-new{display:flex;justify-content:flex-end;margin-bottom:2px}
a.q-new-btn{display:inline-flex;align-items:center;gap:7px;padding:11px 20px;background:#16a34a;color:#fff;font-weight:800;font-size:14.5px;border-radius:11px;text-decoration:none;box-shadow:0 2px 8px rgba(22,163,74,.25)}
/* воронка стадій */
.q-stages{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px;border-bottom:2px solid #eceae6;padding-bottom:10px}
a.q-stage{padding:8px 15px;border:1.5px solid #e2e0db;border-radius:10px;text-decoration:none;font-size:14px;font-weight:700;color:#57534e;background:#fff}
a.q-stage.on{border-color:currentColor}a.q-stage.all-on{background:#1c1917;color:#fff;border-color:#1c1917}
.q-print{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 2px}.q-print-sep{width:10px}
/* «Мої» й сортування */
.q-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0;align-items:center}
.q-sort-l{color:#a8a29e;font-size:13px;margin-left:6px}
a.q-pill{padding:7px 13px;border:1.5px solid #e2e0db;border-radius:9px;text-decoration:none;font-size:13px;font-weight:700;background:#fff;color:#57534e}
a.q-pill.on{background:#1c1917;color:#fff}
/* фільтри */
.q-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0 2px}
.q-in{padding:8px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;background:#fff}.q-in.q{min-width:230px;flex:1}
.q-search{padding:9px 16px;border:none;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:700;cursor:pointer}
a.q-reset{padding:9px 14px;border:1.5px solid #e2e0db;border-radius:9px;color:#78716c;text-decoration:none;font-size:14px}
a.q-csv{padding:9px 14px;border:none;border-radius:9px;background:#166534;color:#fff;font-weight:700;text-decoration:none;font-size:14px}
.q-count{color:#78716c;font-size:13px;margin:6px 0 0}
/* рядки: роздільник дня (сильніше за tr:hover td — раніше фон стояв інлайном), оплачений, шлях 1-клік → замовлення */
td.q-day,tr:hover td.q-day{background:#f5f4f2;font-weight:800;color:#57534e;font-size:13px;padding:9px 12px;border-top:2px solid #e7e5e4}
tr.paid{background:#f0fdf4}tr.qj{background:#fffbf5}tr.jr{box-shadow:inset 3px 0 #f59e0b}
/* 02.11.2026: замовлення заготовки Mirava — червоним (поверх «оплачено»): книгу треба дописати */
tr.stub,tr.stub.paid{background:#fee2e2;box-shadow:inset 4px 0 #dc2626}
.q-badge.stub{background:#dc2626;color:#fff}
td.q-c{text-align:center}td.q-date{white-space:nowrap}
.q-kind{font-size:18px;cursor:help}
a.q-client{color:#1d4ed8;text-decoration:none}
.q-none{color:#a8a29e}
.q-stg{padding:2px 9px;border-radius:7px;font-size:12px;font-weight:800;white-space:nowrap}
/* значки в рядку */
.q-badge{border-radius:6px;padding:1px 7px;font-size:11px;font-weight:800}
.q-badge.wait{background:#fee2e2;color:#991b1b}.q-badge.again{background:#dcfce7;color:#166534}
.q-badge.after{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.q-badge.became{background:#f5f5f4;color:#78716c;font-weight:700}
.q-badge.pay{background:#dbeafe;color:#1e40af;white-space:nowrap}.q-badge.pay.paid{background:#dcfce7;color:#166534}
.q-badge.dupes{background:#fef3c7;color:#92400e;padding:1px 6px;font-weight:700}
.q-badge.who{background:#dcfce7;color:#166534;font-weight:700}
.q-badge.rcpt{background:#ede9fe;color:#5b21b6}.q-badge.rcptwait{background:#f5f3ff;color:#7c3aed;border:1px dashed #c4b5fd}   /* чек Checkbox (10.11.2026) */
.q-paybox{margin-top:2px}.q-who{margin-top:3px}
.filt.q-pager{margin-top:14px}.q-pages{align-self:center;color:#a8a29e;font-size:13px;margin-left:8px}
/* ── Пояснювальний блок (common/templates/note_box.html): синій / жовтий / зелений ── */
.note-box{border:1px solid;border-radius:11px;padding:11px 15px;font-size:13px;line-height:1.55;margin-bottom:14px}
.note-box.info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.note-box.warn{background:#fffbeb;border-color:#fcd34d;color:#78350f}
.note-box.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
/* ── Шматки замовлення (orders/templates/parts.html, static/order_parts.js) ── */
/* статус ліда в кольорі стану: новий / виконаний / решта */
.st-ctl{padding:10px 18px;border-radius:11px;font-size:15px;font-weight:800;cursor:pointer;border:2px solid}
.st-ctl.sc-new{background:#fef3c7;color:#92400e;border-color:#fcd34d}
.st-ctl.sc-done{background:#dcfce7;color:#166534;border-color:#86efac}
.st-ctl.sc-other{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}
/* «💬 Коментарі» */
.crm-panel{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px 22px;margin-top:18px}
.crm-h{margin:0 0 14px;font-size:15px}
.crm-note{background:#faf9f7;border:1px solid #eceae6;border-radius:10px;padding:9px 12px;margin-bottom:8px}
.crm-note-m{font-size:11px;color:#a8a29e;margin-bottom:3px}.crm-note-t{font-size:13.5px;white-space:pre-wrap}
.crm-empty{color:#a8a29e;font-size:13px}
.crm-ta{width:100%;min-height:64px;margin-top:12px;padding:10px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;font-family:inherit;box-sizing:border-box}
.crm-save{margin-top:8px;padding:9px 20px;background:#ea580c;color:#fff;border:none;border-radius:9px;font-weight:700;cursor:pointer}
/* стан сайту в реєстрі; ключі — orders.crm.STATUS_TONE */
.site-st{display:inline-block;padding:3px 10px;border-radius:999px;border:1px solid;font-size:12px;font-weight:700}
.site-st.s-ok{background:#DCFCE7;border-color:#86EFAC;color:#166534}.site-st.s-warn{background:#FEF3C7;border-color:#FCD34D;color:#92400E}
.site-st.s-block{background:#FEE2E2;border-color:#FCA5A5;color:#991B1B}.site-st.s-pause{background:#F5F5F4;border-color:#D6D3D1;color:#57534E}
/* мітки замовлення: значок біля заголовка і кнопка «🏷 Мітки» (увімкнена — в кольорі мітки); ключі — orders.workflow.ORDER_TAGS */
.ord-tag{padding:2px 10px;border-radius:8px;font-size:12px;font-weight:800;margin-left:6px;white-space:nowrap}
.ord-tags{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:14px 16px;margin-bottom:16px}
.ord-tags-h{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#a8a29e;font-weight:700;margin-bottom:9px}
.ord-tag-btn{background:#fff;color:#a8a29e;border:2px solid #e7e5e4;padding:8px 14px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;margin:0 8px 6px 0}
.ord-tag.tag-callback,.ord-tag-btn.on.tag-callback{background:#dbeafe;color:#1e40af}.ord-tag-btn.on.tag-callback{border-color:#93c5fd}
.ord-tag.tag-problem,.ord-tag-btn.on.tag-problem{background:#fef3c7;color:#92400e}.ord-tag-btn.on.tag-problem{border-color:#fcd34d}
.ord-tag.tag-hard,.ord-tag-btn.on.tag-hard{background:#ffedd5;color:#9a3412}.ord-tag-btn.on.tag-hard{border-color:#fdba74}
.ord-tag.tag-important,.ord-tag-btn.on.tag-important{background:#fee2e2;color:#991b1b}.ord-tag-btn.on.tag-important{border-color:#fca5a5}
/* скасування */
.cancel-done{margin-top:12px;background:#fef2f2;border:1px solid #fecaca;border-radius:11px;padding:11px 13px;font-size:13px;color:#991b1b}
.cancel-done-m{font-size:11.5px;opacity:.8;margin-top:3px}
.cancel-box{display:none;margin-top:12px;background:#fef2f2;border:1px solid #fecaca;border-radius:11px;padding:13px}
.cancel-h{font-size:13px;font-weight:800;color:#991b1b;margin-bottom:9px}
.cancel-opt{display:inline-flex;gap:2px;margin:0 6px 6px 0}
.cancel-reason{padding:7px 12px;border:1.5px solid #fecaca;border-radius:9px;background:#fff;color:#991b1b;font-size:12.5px;font-weight:700;cursor:pointer}
.cancel-edit{border:1px solid #e2e0db;border-radius:7px;background:#fff;cursor:pointer}
.cancel-manage{margin-top:3px}
.cancel-add{padding:6px 10px;border:1px dashed #dc2626;border-radius:8px;background:#fff;color:#991b1b;cursor:pointer}
.cancel-note{width:100%;margin-top:8px;padding:8px 10px;border:1.5px solid #fecaca;border-radius:9px;font-size:13px;box-sizing:border-box}
.cancel-err{font-size:12px;color:#dc2626;margin-top:6px}
/* дублі */
a.dup-badge{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:800;text-decoration:none}
.dup-banner{margin:10px 0;padding:10px 14px;border-radius:10px;background:#fffbeb;border:1px solid #fcd34d;font-size:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
a.dup-link{color:#92400e;font-weight:800}
.dup-cancel{padding:6px 12px;border-radius:8px;border:0;background:#b45309;color:#fff;font-weight:800;cursor:pointer}
/* «звідки клієнт»: c0…c7 — за хешем джерела (orders.source._CHIP_COLOURS), meta — платна реклама Meta */
.src-chip{border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700}
.src-chip.c0{background:#dcfce7;color:#166534}.src-chip.c1{background:#ede9fe;color:#5b21b6}
.src-chip.c2{background:#dbeafe;color:#1e40af}.src-chip.c3{background:#fef3c7;color:#92400e}
.src-chip.c4{background:#fee2e2;color:#991b1b}.src-chip.c5{background:#ccfbf1;color:#115e59}
.src-chip.c6{background:#fce7f3;color:#9d174d}.src-chip.c7{background:#e0e7ff;color:#3730a3}
.src-chip.meta{background:#1877F2;color:#ffffff}
/* «⭐ Відгук по телефону» */
.rv-panel{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px;margin-top:18px}
.rv-h{margin:0 0 4px;font-size:15px}
.rv-lead{font-size:12.5px;color:#78716c;margin-bottom:10px}
.rv-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rv-in{padding:8px;border:1px solid #d6d3d1;border-radius:8px}.rv-in.pid{flex:2;min-width:220px}.rv-in.who{flex:1;min-width:110px}
.rv-ta{width:100%;margin-top:8px;padding:8px;border:1px solid #d6d3d1;border-radius:8px;font-family:inherit;font-size:14px;box-sizing:border-box}
.rv-save{margin-top:8px;padding:9px 20px;background:#ea580c;color:#fff;border:none;border-radius:9px;font-weight:700;cursor:pointer}
.rv-msg{margin-left:10px;font-size:13px}
.rv-have{margin-top:10px}.rv-have-h{font-size:12px;color:#78716c;font-weight:700}
.rv-item{border-top:1px solid #f1efec;padding:8px 0;font-size:13px}.rv-stars{color:#f59e0b}.rv-date{color:#a8a29e}
/* ── Доставка в картці замовлення (delivery/templates/delivery.html, static/delivery.js) ── */
.dl-panel{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px;margin-top:16px}
.dl-h{margin:0 0 12px;font-size:15px}
.dl-row{margin:5px 0;font-size:14px}.dl-muted{color:#78716c}.dl-faint{color:#a8a29e}
a.dl-track{color:#1d4ed8;text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap}
/* живий статус посилки: отримано / в дорозі / решта */
.dl-status{margin:10px 0;padding:10px 13px;border-radius:10px;background:#fef3c7}
.dl-status-t{color:#92400e;font-weight:800;font-size:14px}
.dl-status.got{background:#dcfce7}.dl-status.got .dl-status-t{color:#166534}
.dl-status.road{background:#dbeafe}.dl-status.road .dl-status-t{color:#1e40af}
.dl-status-m{font-size:11.5px;margin-top:3px;color:#57534e}
.dl-told{color:#16a34a}.dl-untold{color:#a8a29e}
/* ТТН: одним полем або списком посилок */
.dl-ttnbox{margin-top:12px;padding-top:12px;border-top:1px solid #f2f0ec}
.dl-ttn-l{font-size:12px;color:#78716c;margin-bottom:5px}
.dl-ttn-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dl-ttn-in{flex:1;min-width:140px;padding:8px 10px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;font-variant-numeric:tabular-nums}
.dl-ttn-save{padding:8px 14px;border:none;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:700;cursor:pointer}
.dl-ttn-track{margin-top:6px}
.dl-parcel{margin:6px 0;font-size:14px;line-height:1.5}.dl-num{font-variant-numeric:tabular-nums}
.dl-books{font-size:12px;color:#78716c}.dl-bt{font-size:12px;color:#1e40af;margin-top:2px}
.dl-ttn-hint{font-size:11.5px;color:#a8a29e;margin-top:6px}
/* «💬 Повідомити клієнта в Telegram» */
.dl-nochat{margin-top:12px;padding:10px 13px;background:#faf9f7;border-radius:10px;font-size:12.5px;color:#78716c}
.dl-notify{margin-top:12px;padding:13px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:11px}
.dl-notify-h{font-size:13px;font-weight:800;color:#1e40af;margin-bottom:8px}
.dl-preview{background:#fff;border-radius:9px;padding:10px 12px;font-size:13px;line-height:1.55;color:#1c1917;white-space:pre-wrap}
.dl-send{margin-top:9px;padding:10px 18px;border:none;border-radius:10px;background:#229ED9;color:#fff;font-weight:800;font-size:13.5px;cursor:pointer}
.dl-sent{font-size:12px;color:#16a34a;margin-top:6px}.dl-err{font-size:12px;color:#dc2626;margin-top:6px}
/* «📦 Посилки» (delivery/templates/parcels.html) */
.pc-error{background:#fef2f2;border:1px solid #fecaca;border-radius:14px;padding:14px;margin-top:16px;font-size:13px;color:#991b1b}
.pc-panel{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px;margin-top:16px}
.pc-h{margin:0 0 10px;font-size:15px}
.pc-row{padding:9px 11px;border:1px solid #eceae6;border-radius:10px;margin-bottom:7px;font-size:13px;line-height:1.5}
a.pc-track{color:#1d4ed8;text-decoration:none}
.pc-remove{border:none;background:none;color:#b91c1c;cursor:pointer;font-size:12px;font-weight:700}
.pc-books{color:#57534e}
.pc-broken{color:#b91c1c;font-size:13px;font-weight:700}.pc-done{color:#16a34a;font-size:13px;font-weight:700}
.pc-left{font-size:12px;color:#78716c;margin-bottom:4px}
.pc-line{display:flex;gap:8px;align-items:center;padding:5px 0;font-size:13.5px;cursor:pointer}
.pc-opts{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}
.pc-lab{font-size:13px;color:#57534e}.pc-lab.pay{cursor:pointer}
.pc-in{padding:7px 9px;border:1.5px solid #e2e0db;border-radius:9px;font-size:13px}
.pc-in.cod{width:90px}.pc-in.ttn{flex:1;min-width:150px}.pc-in.note{width:150px}
.pc-btns,.pc-manual{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pc-manual{margin-top:8px}
.pc-supplier{padding:8px 13px;border-radius:9px;border:none;color:#fff;font-weight:800;cursor:pointer;font-size:13px}
.pc-supplier.bookopt{background:#4338ca}.pc-supplier.bookticket{background:#0f766e}
.pc-record{padding:8px 13px;border-radius:9px;border:1.5px solid #d6d3d1;background:#fff;font-weight:800;cursor:pointer;font-size:13px}
.pc-err{font-size:12.5px;color:#dc2626;margin-top:6px}
/* ── Картка виплати автору й редактор товару (leads/templates/payout.html, products/templates/edit.html, static/payouts.js) ── */
/* шапка й рамка — спільні з картками звернення й питання (.back, .ld-*); статус ліда — тон common.html.stcls */
.ld-box.po{line-height:1.7}
.po-status{padding:10px 18px;border-radius:11px;font-size:15px;font-weight:800}
.po-status.new{background:#fef3c7;color:#92400e}.po-status.done{background:#dcfce7;color:#166534}.po-status.other{background:#e0e7ff;color:#3730a3}
.po-amount{font-size:22px;font-weight:900}.po-paid{color:#78716c}.po-req{user-select:all;letter-spacing:.3px}
/* «💸 Виплата»: мітка стану запиту — ключі author_payouts.STATUS_LABELS, невідомий — сірий */
.po-box{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px 22px;margin-top:18px}
.po-head{display:flex;gap:10px;align-items:center}.po-head.po-wrap{flex-wrap:wrap}.po-h{margin:0;font-size:15px}
.po-st{background:#f5f5f4;color:#57534e;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:800}
.po-st.new{background:#fee2e2;color:#991b1b}.po-st.paid{background:#dcfce7;color:#166534}.po-st.rejected{background:#f5f5f4;color:#57534e}
.po-hint{font-size:12.5px;color:#78716c;margin-top:6px}
.po-ta{width:100%;box-sizing:border-box;margin-top:10px;border:1.5px solid #e2e0db;border-radius:9px;padding:10px;font:inherit}
.po-btns{margin-top:8px}
.po-pay{background:#16a34a;color:#fff;border:0;border-radius:8px;padding:8px 16px;font-weight:700;cursor:pointer}
.po-reject{background:#fff;border:1px solid #d6d3d1;border-radius:8px;padding:8px 16px;cursor:pointer}
.po-done{margin-top:10px;font-size:13.5px}.po-note{white-space:pre-wrap}
/* /product-edit */
.pe-wrap{max-width:760px;margin:0 auto;padding:18px}
.pe-ok{margin-bottom:12px;padding:10px 14px;background:#dcfce7;color:#166534;border-radius:9px;font-weight:700}
.pe-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.pe-h{margin:0}
a.pe-site{color:#1d4ed8}
.pe-meta{font-size:12px;color:#a8a29e;margin:4px 0 10px}
.pe-bo{margin:8px 0;padding:9px 12px;background:#eef2ff;border-radius:9px;font-size:13px;color:#3730a3}
.pe-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.pe-l{display:block;margin:10px 0 3px;font-size:12px;font-weight:700;color:#57534e}
.pe-sel{width:100%;padding:9px;border:1.5px solid #e2e0db;border-radius:9px}
.pe-in{width:100%;padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;box-sizing:border-box}
.pe-ta{width:100%;padding:9px 11px;border:1.5px solid #e2e0db;border-radius:9px;font-size:13px;box-sizing:border-box}.pe-ta.pe-mono{font-family:monospace}
.pe-save{margin-top:14px;padding:11px 26px;border:none;border-radius:9px;background:#0f766e;color:#fff;font-weight:800;font-size:14px;cursor:pointer}
/* ── Каркас, вхід, кнопки постачальників у картці замовлення, Ingram, «під замовлення у видавця», кольори типів і відносин
   постачальників (common/templates/{shell,ingram_stock,on_demand}.html, suppliers/templates/{push,kind_badge,status_badge,
   card,_modal,order_bits}.html; static/{shell,supplier_push,suppliers,order_card}.js) ── */
.top-name{color:#fdba74;font-size:13px;font-weight:600}
.top-role{color:#a8a29e;font-size:12px}
.top-gap{flex:1}
h2.login-h{margin:0 0 6px}
.login-sub{color:#78716c;font-size:13px;margin-bottom:10px}
span.ui-hint{display:inline-block;width:15px;height:15px;line-height:15px;text-align:center;border-radius:50%;background:#e7e5e4;color:#78716c;font-size:11px;font-weight:800;cursor:help;margin-left:5px;vertical-align:middle}
.spp-bt-done{padding:8px 13px;border-radius:9px;background:#dcfce7;color:#166534;font-weight:800;font-size:13px}
.spp-pay{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1.5px solid #e2e0db;border-radius:9px;background:#fff;font-size:13px;color:#57534e;font-weight:700;cursor:pointer}
.spp-bt{padding:8px 13px;border-radius:9px;background:#0f766e;color:#fff;border:none;font-weight:800;cursor:pointer;font-size:13px}
.spp-note{margin-top:6px;font-size:11.5px;color:#78716c;line-height:1.45}
.spp-bo-done{padding:8px 13px;border-radius:9px;background:#e0e7ff;color:#3730a3;font-weight:800;font-size:13px}
.spp-bo-copy{padding:8px 11px;border-radius:9px;border:1.5px solid #c7d2fe;background:#eef2ff;color:#3730a3;font-weight:700;cursor:pointer;font-size:12px}
.spp-hidden{display:none}
.spp-bo{padding:8px 13px;border-radius:9px;background:#4338ca;color:#fff;border:none;font-weight:800;cursor:pointer;font-size:13px}
.ing-box{padding:7px 0;border-top:1px solid #f2f0ec}
.ing-h{font-size:13px;font-weight:800;color:#1c1917}
.ing-note,.ing-qty-none{font-size:12px;color:#78716c;margin-top:2px}
.ing-empty{font-size:13px;color:#a8a29e;margin-top:2px}
.ing-stale{font-size:13px;font-weight:800;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:5px 9px;margin-top:5px}
.ing-status{font-size:13px;margin-top:4px}
.ing-status.ok{color:#166534}.ing-status.pre{color:#1d4ed8}.ing-status.wait{color:#b45309}.ing-status.no{color:#dc2626}.ing-status.unknown{color:#57534e}
.ing-qty{font-size:12px;color:#57534e;margin-top:2px}
.od-order{padding:8px 10px;margin:4px 0;background:#fff7ed;border:1.5px solid #fdba74;border-radius:9px}
.od-order-h{font-size:13px;font-weight:800;color:#9a3412}
.od-order-sub{font-size:12.5px;color:#57534e;margin-top:3px}
.od-product{margin:8px 0;padding:10px 12px;background:#fff7ed;border:1.5px solid #fdba74;border-radius:9px;font-size:13px;color:#9a3412}
.od-product-sub{color:#57534e;margin-top:3px}
.od-product-note{color:#a8a29e;font-size:11.5px;margin-top:3px}
/* тип джерела (supplier_registry.KIND_BADGE): фон і колір плашки, відтінок шапки картки й колір її заголовка */
.sp-k-api{--kbg:#dbeafe;--kfg:#1e40af}.sp-k-feed{--kbg:#e0f2fe;--kfg:#075985}.sp-k-parser{--kbg:#ede9fe;--kfg:#5b21b6}.sp-k-file{--kbg:#ccfbf1;--kfg:#115e59}.sp-k-contract{--kbg:#dcfce7;--kfg:#166534}.sp-k-import{--kbg:#f5f5f4;--kfg:#78716c}.sp-k-own{--kbg:#ffedd5;--kfg:#9a3412}.sp-k-manual{--kbg:#fff7ed;--kfg:#9a3412}.sp-k-unknown{--kbg:#fef3c7;--kfg:#92400e}
.sp-kind.sp-k,.sp-pill-lg.sp-k{background:var(--kbg);color:var(--kfg)}
.sp-head.sp-k{--tint:var(--kbg)}
.sp-title.sp-kt{color:var(--kfg)}
/* відносини з постачальником (supplier_registry.RELATION_BADGE): плашка — фон і колір, рядок у картці замовлення — колір */
.sp-rel-contract{--rbg:#dcfce7;--rfg:#166534}.sp-rel-supplier{--rbg:#e0f2fe;--rfg:#075985}.sp-rel-pending{--rbg:#fef3c7;--rfg:#92400e}.sp-rel-no_contract{--rbg:#ede9fe;--rfg:#5b21b6}.sp-rel-ended{--rbg:#fee2e2;--rfg:#991b1b}.sp-rel-paused{--rbg:#f5f5f4;--rfg:#57534e}.sp-rel-catalog{--rbg:#f0f9ff;--rfg:#0369a1}.sp-rel-platform{--rbg:#fce7f3;--rfg:#9d174d}.sp-rel-public{--rbg:#ecfeff;--rfg:#155e75}
.sp-pill.sp-rel{background:var(--rbg);color:var(--rfg)}
.sp-relc{color:var(--rfg)}
/* ── Jobs (jobs/web/templates, static/jobs.js): лише класи jb-*, щоб не зачепити .card/.pill каркаса. До 29.10.2026 —
   <style> у jobs/web/templates/_style.html. Кольори й радіуси — як у каркасі: рамка #eceae6, акцент #ea580c,
   текст #57534e. Плашка — лише коли стан вартий уваги або показує дію; звичайне — без плашки. ── */
.jb-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 2px}
.jb-head h2{margin:0;font-size:22px;letter-spacing:-.3px}
.jb-intro{color:#78716c;font-size:13px;margin:0 0 14px;max-width:820px}
.jb-summary{font-size:15px;color:#1c1917;margin:0 0 16px}
.jb-summary b{font-variant-numeric:tabular-nums}
.jb-nav{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;border-bottom:1px solid #eceae6;padding-bottom:10px}
.jb-nav a{padding:7px 14px;border-radius:9px;font-weight:600;font-size:14px;color:#57534e;background:#fff;border:1px solid #eceae6}
.jb-nav a:hover{background:#faf9f7}
.jb-nav a.on{background:#fff7ed;color:#ea580c;border-color:#fed7aa}
.jb-alert{border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:13px;border:1px solid #e7e5e4;background:#f5f5f4;color:#57534e}
.jb-alert.bad{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.jb-alert.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.jb-alert a{color:inherit;text-decoration:underline}
.jb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:18px;align-items:start;margin-bottom:22px}
.jb-card{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:18px 20px;min-width:0;overflow-wrap:anywhere}
.jb-card.warn{border-color:#fca5a5;box-shadow:0 0 0 1px #fecaca}
.jb-card.off{background:#fcfcfb}
.jb-card-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.jb-card-h h3{margin:0 4px 0 0;font-size:18px;letter-spacing:-.2px}
.jb-card-h .jb-grow{flex:1}
.jb-sub{color:#78716c;font-size:12px;margin-top:4px}
.jb-b{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;background:#f5f5f4;color:#57534e;vertical-align:middle}
.jb-b.ok{background:#dcfce7;color:#166534}.jb-b.busy{background:#dbeafe;color:#1e40af}
.jb-b.warn{background:#fef3c7;color:#92400e}.jb-b.bad{background:#fee2e2;color:#991b1b}
.jb-b.big{font-size:13px;padding:4px 12px}
.jb-st{font-size:13px;color:#57534e;white-space:nowrap}
.jb-st.muted{color:#a8a29e}
.jb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d6d3d1;vertical-align:middle;margin-right:6px;flex:0 0 8px}
.jb-dot.ok{background:#22c55e}.jb-dot.warn{background:#f59e0b}.jb-dot.bad{background:#ef4444}
.jb-sec{border-top:1px solid #f0eee9;margin-top:14px;padding-top:12px}
.jb-sec-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#a8a29e;margin-bottom:6px}
.jb-muted{color:#78716c;font-size:12px}
.jb-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}
.jb-num{font-variant-numeric:tabular-nums}
.jb-empty{color:#a8a29e;font-size:13px}
.jb-bar{height:6px;background:#f0eee9;border-radius:3px;overflow:hidden;margin-top:4px}
.jb-bar>i{display:block;height:100%;background:#16a34a;border-radius:3px}
.jb-bar.warn>i{background:#f59e0b}.jb-bar.bad>i{background:#dc2626}.jb-bar.accent>i{background:#ea580c}.jb-bar.busy>i{background:#3b82f6}
.jb-bar.big{height:10px;border-radius:5px}
.jb-meter{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#57534e}
.jb-chips{display:flex;flex-wrap:wrap;gap:6px}
.jb-chip{display:inline-flex;gap:5px;align-items:baseline;background:#faf9f7;border:1px solid #eceae6;border-radius:8px;padding:3px 8px;font-size:12px;color:#57534e;max-width:100%}
.jb-chip b{color:#1c1917;font-variant-numeric:tabular-nums}
a.jb-chip:hover{border-color:#fed7aa}
.jb-chip.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.jb-chip.bad{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.jb-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.jb-kv>div{background:#faf9f7;border-radius:10px;padding:8px 10px;min-width:0}
.jb-kv small{display:block;color:#78716c;font-size:11px;margin-bottom:2px}
.jb-kv b{font-size:14px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.jb-kv .bad{color:#dc2626}.jb-kv .warn{color:#b45309}
.jb-rows{margin:0;padding:0;list-style:none}
.jb-rows>li{padding:7px 0;border-bottom:1px dashed #f0eee9;font-size:13px;min-width:0}
.jb-rows>li:last-child{border-bottom:0}
.jb-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* «Запуски»: список «одне завдання — один рядок» */
.jb-list{background:#fff;border:1px solid #eceae6;border-radius:14px;overflow:hidden;margin-bottom:18px}
a.jb-row{display:flex;align-items:center;gap:10px;padding:12px 16px;color:#1c1917;min-width:0;border-bottom:1px solid #f0eee9}
a.jb-row:last-child{border-bottom:0}
a.jb-row:hover{background:#fffaf5}
.jb-name{font-weight:700;min-width:0;overflow-wrap:anywhere}
.jb-col{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.jb-meta{color:#78716c;font-size:12px}
.jb-row-side{color:#78716c;font-size:13px;white-space:nowrap;text-align:right}
.jb-rate{display:inline-block;width:36px;height:5px;background:#f0eee9;border-radius:3px;overflow:hidden;vertical-align:middle;margin-left:4px}
.jb-rate>i{display:block;height:100%;background:#16a34a}.jb-rate.warn>i{background:#f59e0b}.jb-rate.bad>i{background:#ef4444}
.jb-ev{display:flex;gap:8px;font-size:12.5px;padding:4px 0;color:#44403c;min-width:0}
.jb-ev time{color:#a8a29e;white-space:nowrap;font-variant-numeric:tabular-nums}
.jb-ev.warn{color:#b91c1c}
.jb-ev>div{min-width:0;flex:1}
details.jb-more>summary{cursor:pointer;color:#78716c;font-size:12px;font-weight:600;list-style:none;display:inline-block;padding:2px 0}
details.jb-more>summary::-webkit-details-marker{display:none}
details.jb-more>summary::before{content:"▸ "}
details.jb-more[open]>summary::before{content:"▾ "}
details.jb-raw>summary{font-size:11px;font-weight:500;color:#a8a29e}
details.jb-raw pre{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;background:#faf9f7;border-radius:8px;padding:6px 8px;font-size:11px;color:#57534e}
.jb-btn{padding:6px 12px;border:1px solid #d6d3d1;background:#fff;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;color:#1c1917;font-family:inherit}
.jb-btn:hover{background:#faf9f7}
.jb-btn.primary{background:#ea580c;border-color:#ea580c;color:#fff}
.jb-btn.outline{border-color:#ea580c;color:#ea580c}
.jb-btn.danger{border-color:#dc2626;color:#dc2626}
.jb-btn.green{background:#16a34a;border-color:#16a34a;color:#fff}
.jb-form{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-end}
.jb-form label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#78716c;flex:1 1 90px;min-width:0}
.jb-form input,.jb-form select,.jb-fields input,.jb-fields select{padding:7px 9px;border:1px solid #e2e0db;border-radius:8px;font:inherit;font-size:13px;min-width:0;background:#fff;color:#1c1917}
.jb-fields{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px 12px;max-width:760px;align-items:center}
.jb-fields>label{font-size:13px;font-weight:600;color:#57534e}
.jb-fields .jb-hint{grid-column:2;margin-top:-6px}
.jb-site{white-space:nowrap}
.jb-site small{color:#a8a29e;font-size:11px;margin-left:3px}
.jb-when small{display:block;color:#a8a29e;font-size:11px}
.jb-stack>*+*{margin-top:4px}
.jb-foot{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:12px}
.jb-table td{vertical-align:top}
.jb-bignum{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.jb-log{white-space:pre-wrap;background:#1c1917;color:#e7e5e4;border-radius:12px;padding:14px;font-size:12px;max-height:480px;overflow:auto;margin:0}
@media(max-width:820px){
  .jb-head h2{font-size:19px}
  .jb-card{padding:14px 15px;border-radius:12px}
  .jb-grid{gap:12px}
  a.jb-row{padding:10px 12px;gap:8px}
  .jb-row-side{white-space:normal;font-size:12px}
  .jb-fields{grid-template-columns:1fr}
  .jb-fields .jb-hint{grid-column:1;margin-top:-4px}
  .jb-fields>label{margin-bottom:-6px}
  .jb-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jb-nav a{padding:6px 11px;font-size:13px}
}
/* Модифікатори замість колишніх інлайн-стилів у шаблонах Jobs. Стоять ПІСЛЯ @media вище: інлайн-стиль
   перемагав і мобільні правила (.jb-kv на 2 колонки), тож .jb-kv3 / .jb-kv-wide мусять так само. */
.jb-back{margin-bottom:6px}
.jb-head.jb-head-c{align-items:center}
.jb-muted.jb-head-site{font-size:14px}
.jb-muted.jb-row-site{font-size:13px;margin-left:6px}
.jb-muted.jb-sched-raw{font-size:11px;color:#a8a29e}
.jb-row-bar{width:120px;margin-left:auto}
.jb-run-bar{margin:-6px 0 14px;max-width:520px}
.jb-meter.jb-meter-row{max-width:220px}
.jb-under{margin:-6px 0 12px}
.jb-lastout-h{margin:6px 0 4px}
.jb-sched-big{font-size:15px;font-weight:700}
.jb-card.jb-noborder{border:0}
.jb-form.jb-filters{margin-bottom:14px;max-width:760px}
.jb-btn.jb-fl-none{flex:0 0 auto}
.jb-line.jb-gw{margin:0 0 12px;flex-wrap:wrap;gap:8px}
.jb-kv.jb-kv3{grid-template-columns:repeat(3,minmax(0,1fr))}
.jb-kv.jb-kv-wide{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}
.jb-num.jb-preview{font-size:13px;color:#57534e}
.jb-preview-h{font-weight:700;color:#1c1917;margin-bottom:4px}
/* тривоги під навігацією */
.jb-alert.jb-alerts{padding:8px 14px}
.jb-alerts>summary{cursor:pointer;list-style:none}
.jb-alerts-first{opacity:.8}
.jb-alerts-list{text-decoration:underline;margin-left:4px}
.jb-alerts-when{opacity:.7}
.jb-alerts-note{opacity:.8;font-size:12px}
/* чипи: пропуски розкладу; вимкнена можливість FastGen */
.jb-chip.jb-chip-skip{color:#a8a29e}
.jb-chip.jb-chip-off{text-decoration:line-through;color:#a8a29e}
/* посилання (сильніше за a{color:#ea580c} і .jb-alert a) */
a.jb-site-link{color:#1c1917;font-weight:600}
a.jb-a-strong{color:#1c1917;font-weight:700}
a.jb-a-dark{color:#1c1917}
a.jb-a-skip{color:#57534e;font-weight:600}
a.jb-a-inherit{color:inherit}
a.jb-plain{text-decoration:none}
a.jb-u{text-decoration:underline}
td.jb-break{word-break:break-all}
/* поля форм: ширина колонки (сильніше за .jb-form label{flex:1 1 90px}) */
.jb-form label.jb-fl-0-90{flex:0 1 90px}.jb-form label.jb-fl-0-110{flex:0 1 110px}
.jb-form label.jb-fl-0-130{flex:0 1 130px}.jb-form label.jb-fl-0-150{flex:0 1 150px}
.jb-form label.jb-fl-1-140{flex:1 1 140px}.jb-form label.jb-fl-1-180{flex:1 1 180px}
.jb-form label.jb-fl-2-140{flex:2 1 140px}.jb-form label.jb-fl-2-160{flex:2 1 160px}
.jb-form label.jb-fl-3-200{flex:3 1 200px}
/* кольори тексту: червоний (упало / не задано), бурштиновий (бракує налаштування), помилка; диск понад 90 / 80 % */
.jb-red{color:#b91c1c}.jb-amber{color:#92400e}.jb-err{color:#991b1b}
.jb-fail-n{color:#b91c1c;font-size:12px}
.jb-disk-bad{color:#dc2626}.jb-disk-warn{color:#b45309}
/* відступи й ширини — останніми, щоб перемагати базові jb-* (як колись інлайн) */
.jb-flex1{flex:1}.jb-block{display:block}
.jb-m0{margin:0}.jb-sect-h{margin:0 0 8px}.jb-my6{margin:6px 0}
.jb-m-b12{margin:0 0 12px}.jb-m-t8{margin:8px 0 0}.jb-m-t12{margin:12px 0 0}
.jb-mt3{margin-top:3px}.jb-mt4{margin-top:4px}.jb-mt6{margin-top:6px}.jb-mt8{margin-top:8px}
.jb-mt10{margin-top:10px}.jb-mt14{margin-top:14px}
.jb-mb12{margin-bottom:12px}.jb-mb14{margin-bottom:14px}.jb-mb16{margin-bottom:16px}.jb-mb18{margin-bottom:18px}
.jb-w760{max-width:760px}.jb-w820{max-width:820px}
/* ── Книги (books/templates/list.html, help.html, detail.html, parts.html; static/books.js) ── */
/* список проєктів */
.bkl{padding:18px}.bkl h2{margin:0 0 4px}.bkl-sub{color:#78716c;margin:0 0 14px;font-size:14px}
.bkl-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.bkl-tab{padding:9px 14px;border-radius:11px;text-decoration:none;font-weight:700;font-size:14px;background:#f5f5f4;color:#44403c}
.bkl-tab b{opacity:.6;margin-left:3px}.bkl-tab.on{background:#1c1917;color:#fff}
.bkl-list{display:grid;gap:10px}
.bkl-card{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:14px 16px;border:1px solid #e7e5e4;border-radius:14px;text-decoration:none;color:#1c1917;background:#fff}
.bkl-card:hover{border-color:#fdba74}.bkl-card.act{border-left:4px solid #ea580c}
.bkl-card.special{background:#fefce8;border-color:#facc15;border-left:4px solid #ca8a04}.bk-special{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#fde68a;color:#854d0e;font-size:12px;font-weight:700}.bkd-special{margin:6px 0 8px;padding:8px 12px;border-radius:10px;background:#fef9c3;border:1px solid #facc15;color:#854d0e;font-weight:600}.bkd-spbtn{margin:0 0 8px}
.bkl-name{font-size:16px;font-weight:800}.bkl-book{font-size:14px;margin-top:2px}.bkl-meta{font-size:13px;color:#78716c;margin-top:3px}
.bkl-side{text-align:right}.bkl-st{font-size:13px;font-weight:700;background:#f5f5f4;border-radius:999px;padding:3px 10px;white-space:nowrap}
.bkl-stage{font-size:12.5px;color:#57534e;white-space:nowrap}.bkl-stage b{color:#1c1917}
.bkl-dots{display:flex;gap:4px;justify-content:flex-end;margin-top:5px}.bkl-dots i{width:16px;height:5px;border-radius:9px;background:#e7e5e4}
.bkl-dots i.d{background:#86efac}.bkl-dots i.c{background:#ea580c}
@media(max-width:640px){.bkl-dots{justify-content:flex-start}}
.bkl-prog{font-size:12px;color:#78716c;margin-top:7px;white-space:nowrap}.bkl-date{font-size:12px;color:#a8a29e;margin-top:3px}
.bkl-next{grid-column:1/-1;font-size:13.5px;font-weight:600;color:#57534e;background:#fafaf9;border-radius:9px;padding:7px 10px}
.bkl-card.act .bkl-next{background:#fff7ed;color:#c2410c}
@media(max-width:640px){.bkl-card{grid-template-columns:1fr}.bkl-side{text-align:left}}
.bkl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
a.bkl-help{font-weight:700;font-size:14px;text-decoration:none;color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 14px}
.bkl-empty{color:#a8a29e;padding:20px 0}
.bkl-tg.on{color:#15803d;font-weight:700}.bkl-tg.off{color:#b45309}
.bk-faint{color:#a8a29e}
/* смужка брифу; ширину заповнення задає шаблон (відсоток відповідей) */
.bk-bar{display:inline-block;width:70px;height:6px;background:#f0eee9;border-radius:9px;vertical-align:middle;overflow:hidden}
.bk-bar>i{display:block;height:100%;background:#ea580c}
/* інструкція ридера */
.bkh{padding:18px;max-width:860px;color:#1c1917;line-height:1.6;font-size:15px}
.bkh h2{margin:6px 0 4px;font-size:24px}.bkh h3{margin:22px 0 6px;font-size:17px}
.bkh .lead{color:#57534e;margin:0 0 14px}
.bkh .rule{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:12px 16px;margin:12px 0}
.bkh ol,.bkh ul{margin:6px 0 0;padding-left:22px}.bkh li{margin:4px 0}
.bkh .box{background:#fff;border:1px solid #e7e5e4;border-radius:14px;padding:12px 16px;margin-top:10px}
.bkh .no{background:#fef2f2;border:1px solid #fecaca;border-radius:14px;padding:12px 16px;margin-top:10px}
.bkh .flow{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.bkh .flow span{background:#f5f5f4;border-radius:999px;padding:4px 11px;font-size:13px;font-weight:700}
.bkh a.back{color:#78716c;font-size:13px;text-decoration:none}
/* картка проєкту */
.bkd{padding:18px;color:#1c1917}
.bkd-back{color:#78716c;font-size:13px;text-decoration:none}
.bkd h2{margin:6px 0 0;font-size:24px}.bkd-book{font-size:15px;color:#44403c;margin-top:2px}
.bkd-meta{font-size:13px;color:#78716c;margin-top:4px}
.bkd-next{margin-top:14px;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px 16px}
.bkd-next.calm{background:#f5f5f4;border-color:#e7e5e4}
.bkd-next b{display:block;font-size:12px;color:#c2410c;text-transform:uppercase;letter-spacing:.5px}
.bkd-next .t{font-size:17px;font-weight:800;margin:3px 0 10px}
.bkd-btns{display:flex;gap:8px;flex-wrap:wrap}
.bkd-btn{font:inherit;font-size:14px;font-weight:700;padding:9px 14px;border-radius:10px;border:1px solid #e7e5e4;background:#fff;color:#1c1917;text-decoration:none;cursor:pointer}
.bkd-btn.ghost{background:none}.bkd-btn.tg{background:#229ED9;border-color:#229ED9;color:#fff}
.bkd-reach{font-size:13px;color:#57534e;margin-top:10px}
.bkd-card{background:#fff;border:1px solid #e7e5e4;border-radius:14px;padding:14px 16px;margin-top:14px}
.bkd-card h3{margin:0 0 8px;font-size:15px}
.bkd-now{font-size:22px;font-weight:800;margin:2px 0 10px}.bkd-now-hint{font-size:14px;font-weight:500;color:#57534e;margin-top:2px}
.bkd-steps{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px}
.bkd-step{font-size:12px;line-height:1.25;padding:8px 2px 0;border-top:4px solid #e7e5e4;color:#a8a29e;text-align:center}
.bkd-step span{display:block;width:24px;height:24px;line-height:24px;margin:0 auto 4px;border-radius:50%;background:#f5f5f4;color:#a8a29e;font-weight:800}
.bkd-step.done{border-top-color:#86efac;color:#57534e}.bkd-step.done span{background:#dcfce7;color:#15803d}
.bkd-step.on{border-top-color:#ea580c;color:#1c1917;font-weight:800}.bkd-step.on span{background:#ea580c;color:#fff}
@media(max-width:640px){.bkd-steps{grid-template-columns:repeat(4,1fr)} }
.bkd-acts{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.bkd-primary{font:inherit;font-size:16px;font-weight:800;color:#fff;background:#ea580c;border:0;border-radius:12px;padding:12px 20px;cursor:pointer}
.bkd-more summary{cursor:pointer;color:#57534e;font-size:14px;font-weight:600;list-style:none;padding:10px 4px}
.bkd-more summary::-webkit-details-marker{display:none}.bkd-more summary:after{content:" ▾"}
.bkd-more>div{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.bkd-close{display:grid;gap:6px;margin-top:6px}.bkd-close select,.bkd-close textarea{font:inherit;padding:7px;border:1px solid #d6d3d1;border-radius:8px}
.bkd-other{font:inherit;font-size:14px;text-align:left;background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;padding:8px 12px;cursor:pointer;color:#1c1917}
.bkd-tg{display:inline-block;font-size:13.5px;font-weight:800;border-radius:999px;padding:5px 12px;margin-top:8px}
.bkd-tg.on{background:#dcfce7;color:#15803d}.bkd-tg.off{background:#fee2e2;color:#b91c1c}
.bkd-invite{margin-top:4px;display:grid;gap:10px}
.bkd-istep{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #fed7aa;border-radius:12px;padding:10px 12px}
.bkd-istep>span{flex:0 0 26px;height:26px;line-height:26px;text-align:center;border-radius:50%;background:#ea580c;color:#fff;font-weight:800}
.bkd-istep>div{display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:14.5px}
.bkd-ihint{font-size:13px;color:#57534e}
.bkd-tr{flex-basis:100%;font-size:14px;line-height:1.55;color:#1c1917;background:#fafaf9;border-left:3px solid #fdba74;border-radius:6px;padding:8px 10px;margin-top:6px;white-space:pre-wrap}
.bkd-tr.wait{color:#a8a29e;border-left-color:#e7e5e4}
.bkd-send:disabled,.bkd-ta:disabled{opacity:.5;cursor:not-allowed}
.bkd-stages{display:flex;gap:6px;flex-wrap:wrap}
.bkd-stage{font:inherit;font-size:13px;padding:7px 11px;border-radius:999px;border:1px solid #e7e5e4;background:#fafaf9;cursor:pointer;color:#44403c}
.bkd-stage.on{background:#1c1917;color:#fff;border-color:#1c1917;font-weight:700}
.bkd-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px}
.bkd-qa{padding:10px 0;border-bottom:1px solid #f5f5f4}.bkd-q{font-size:12px;color:#a8a29e;font-weight:700;text-transform:uppercase}
.bkd-a{white-space:pre-wrap;font-size:14.5px;margin-top:2px}.bkd-miss{font-size:13px;color:#a8a29e;margin-top:10px}
.bkd-empty{color:#78716c;font-size:14px;line-height:1.6;padding:6px 0}
.bkd-file{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f5f5f4;font-size:14px;flex-wrap:wrap}
.bkd-file a{flex:1;color:#1c1917;min-width:160px}.bkd-who{font-size:12px;color:#78716c}.bkd-who.r{color:#c2410c}.bkd-fmeta{font-size:12px;color:#a8a29e}
.bkd-chat{display:grid;gap:8px;max-height:520px;overflow:auto;margin:6px 0 10px}
.bkd-b{max-width:82%;border-radius:12px;padding:9px 12px;white-space:pre-wrap;font-size:14px}
.bkd-b.me{justify-self:end;background:#e0f2fe}.bkd-b.bot{justify-self:end;background:#ede9fe}
.bkd-draft{background:#fefce8;border:1px solid #fde68a;border-radius:12px;padding:10px 12px;margin-bottom:10px;display:grid;gap:8px;font-size:14px;white-space:pre-wrap}
.bkd-draft b{font-size:13px;color:#a16207}
.bkd-pend{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:10px 12px;margin-bottom:10px;display:grid;gap:6px;font-size:14px}
.bkd-pnote{white-space:pre-wrap;font-size:13px;color:#57534e}.bkd-b.au{justify-self:start;background:#ffedd5}
.bkd-bt{font-size:11px;color:#a8a29e;margin-top:3px}.bkd-sys{text-align:center;color:#a8a29e;font-size:12px}
.bkd-ta{width:100%;box-sizing:border-box;padding:10px;border:1px solid #d6d3d1;border-radius:10px;font:inherit}
.bkd-send{margin-top:8px;width:100%;padding:11px;border:0;border-radius:10px;background:#ea580c;color:#fff;font-weight:800;font-size:15px;cursor:pointer}
@media(max-width:860px){.bkd-grid{grid-template-columns:1fr}}
a.bkd-cab{color:#78716c}
.bkd-about{margin-top:8px;font-size:14px;background:#fafaf9;border-radius:10px;padding:8px 12px}
.bkd-after{font-size:12px;color:#a8a29e;margin-top:10px}
.bkd-count{font-weight:400;color:#a8a29e;font-size:13px}
.bkd-voice{margin-top:4px}
.bkd-audio{height:34px;max-width:260px}
.bkd-nofiles{color:#a8a29e;font-size:13px;padding:6px 0}
.bkd-up{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bkd-isdraft{font-size:14px;display:flex;gap:6px;align-items:center}
.bkd-upmsg{font-size:13px;color:#78716c}
.bkd-sticky{position:sticky;top:12px}
.bkd-chatnote{margin:2px 0 10px}
.bkd-404{padding:20px}
/* ── Застарілі дані постачальника (suppliers/order_bits.html stale, src/suppliers/freshness.py) ── */
.or-stale{margin-top:4px;font-size:12px;color:#92400e;background:#fffbeb;border-radius:6px;padding:4px 8px}
/* ── «🗓 Блоги: розклад» (src/blogs/templates/page.html, static/blogs.js) ── */
.blg{padding:18px}.blg h2{margin:0 0 4px}.blg-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.blg-jobs{font-size:13px;color:#57534e}.blg-sub{color:#78716c;margin:0 0 14px;font-size:14px}.blg-faint{color:#a8a29e;font-size:12px}
.blg-err{background:#fef2f2;color:#991b1b;border-radius:8px;padding:8px 12px}
.blg-win{background:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;padding:12px 16px;margin-bottom:16px}
.blg-win-title{font-weight:700;margin-bottom:6px}.blg-win-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.blg-win-row input[type=time]{padding:6px 8px;border:1px solid #d6d3d1;border-radius:8px;font-size:14px}
.blg-hint{margin:8px 0 0;font-size:13px;color:#57534e}
.blg-btn{padding:6px 12px;border-radius:8px;border:1px solid #d6d3d1;background:#fff;font-size:13px;cursor:pointer;white-space:nowrap}
.blg-btn.main{background:#1c1917;color:#fff;border-color:#1c1917}
.blg-site{margin-bottom:16px}.blg-site-name{font-weight:700;font-size:15px;margin:0 0 6px}
.blg-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid #e7e5e4;border-radius:10px;overflow:hidden}
.blg-table th{text-align:left;background:#fafaf9;color:#78716c;font-weight:600;padding:7px 10px;border-bottom:1px solid #e7e5e4}
.blg-table td{padding:7px 10px;border-bottom:1px solid #f5f5f4;vertical-align:top}
.blg-table tr.ro td{background:#fafaf9;color:#57534e}.blg-table tr.off td{opacity:.6}
.blg-name{font-weight:600;overflow-wrap:anywhere}.blg-times{font-variant-numeric:tabular-nums}
.blg-out{color:#b91c1c;font-weight:600;margin-top:2px}.blg-bad{color:#b91c1c;font-weight:600}.blg-act{text-align:right;white-space:nowrap}
@media (max-width:700px){.blg-table th:nth-child(4),.blg-table td:nth-child(4){display:none}.blg-act{white-space:normal}}

.q-badge.ownfull{background:#16a34a;color:#fff}   /* наша повна книга (03.11.2026) */
/* ── Оформити відправку: кнопка в блоці «🚚 Доставка», вікно підтвердження, рядок «оформлено» (suppliers/templates/fulfil.html, static/fulfil.js) ── */
.ff-box{margin-top:12px;padding-top:12px;border-top:1px solid #f2f0ec}
.ff-open{width:100%;padding:11px 14px;border:none;border-radius:10px;background:#0f766e;color:#fff;font-weight:800;font-size:13.5px;cursor:pointer}
.ff-open:hover{background:#115e59}
.ff-note{margin-top:6px;font-size:12px;color:#78716c;text-align:center}
.ff-done{margin-top:12px;padding:10px 13px;border-radius:10px;background:#f5f5f4;color:#292524;font-size:13px;display:grid;gap:4px}
.ff-done-h{font-weight:800;color:#166534}
.ff-ok{color:#166534;font-weight:600}
.ff-warn{color:#92400e;font-weight:600}
.ff-bad{color:#b91c1c;font-weight:600;overflow-wrap:anywhere}
.ff-retry{margin-top:6px;justify-self:start;padding:8px 14px;border:1.5px solid #0f766e;border-radius:9px;background:#fff;color:#0f766e;font-weight:800;font-size:13px;cursor:pointer}
.ff-retry:disabled{opacity:.6;cursor:wait}
.sp-dialog.ff-dialog{width:min(560px,100%)}
.ff-h{margin:0 0 8px;font-size:13px;font-weight:800;color:#292524}
.ff-steps{margin:0 0 18px;padding-left:20px;font-size:14px;line-height:1.7}
.ff-later{color:#a8a29e}
.ff-data{display:grid;grid-template-columns:150px minmax(0,1fr);gap:7px 12px;margin:0 0 20px;font-size:14px;align-items:center}
.ff-data dt{color:#78716c}
.ff-data dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ff-weight{width:120px;padding:8px 10px;border:1.5px solid #e2e0db;border-radius:9px;font-size:14px;font-weight:700}
.ff-weight-hint{margin-top:4px;font-size:12px;color:#78716c;font-weight:400}
.ff-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.ff-cancel,.ff-confirm{padding:10px 18px;border-radius:10px;font-weight:800;font-size:13.5px;cursor:pointer}
.ff-cancel{border:1.5px solid #e2e0db;background:#fff;color:#44403c}
.ff-confirm{border:none;background:#0f766e;color:#fff}
.ff-confirm:disabled{opacity:.6;cursor:wait}
.ff-progress:empty{display:none}
.ff-progress{margin-top:12px}
.ff-log{margin-top:12px;padding:10px 13px;border-radius:10px;background:#f5f5f4;font-size:13px;overflow-wrap:anywhere}
.ff-log .ff-h{margin-bottom:4px}
.ff-log-h{margin:4px 0;color:#78716c;font-size:12px}
.ff-step{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:6px;padding:2px 0}
.ff-step-time{color:#78716c;white-space:nowrap;font-variant-numeric:tabular-nums}
.ff-step-note{color:#57534e}
.ff-step-fail,.ff-step-fail .ff-step-note{color:#b91c1c;font-weight:600}
.ff-step-stale,.ff-step-stale .ff-step-note{color:#92400e;font-weight:600}
.ff-step-running{font-weight:700}
.ff-step-pending,.ff-step-skip{color:#a8a29e}
.ff-log-old{margin-top:8px}
.ff-log-old summary{cursor:pointer;color:#57534e}
.ff-err{margin-top:12px;color:#b91c1c;font-size:13px;font-weight:600;min-height:1em}
@media (max-width:520px){.ff-data{grid-template-columns:minmax(0,1fr);gap:2px 0}.ff-data dd{margin-bottom:8px}}

/* Власні книги: файли книги */
.sp-dl{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.sp-dlform{margin:0}
.sp-btn{display:inline-block;padding:5px 10px;border:none;border-radius:8px;background:#0f766e;color:#fff;font:inherit;font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer}
.sp-wait{font-size:12.5px;color:#78716c}
.sp-fail{font-size:12.5px;color:#b91c1c;overflow-wrap:anywhere}
.sp-file{display:block;padding:2px 0;font-size:12.5px;overflow-wrap:anywhere}
/* Власні книги: етапи книги (digital/book_stages.py) */
.sp-stages{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.sp-st{padding:2px 7px;border-radius:999px;font-size:11.5px;white-space:nowrap}
.sp-st.done{background:#dcfce7;color:#166534}
.sp-st.progress{background:#fef3c7;color:#92400e}
.sp-st.missing{background:#fee2e2;color:#991b1b}
.sp-st.optional{background:#f5f5f4;color:#a8a29e}
.sp-next{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:12.5px;color:#57534e}
/* «✍️ Написати книгу» (digital/manual_write.py) */
.wb-msg{display:block;margin:8px 0;padding:8px 12px;border-radius:8px;background:#fef3c7}
.wb-toc{margin:6px 0 10px 18px;font-size:13.5px;line-height:1.5}
.wb-pre{white-space:pre-wrap;font-size:12.5px;background:#fafaf9;border:1px solid #e7e5e4;border-radius:8px;padding:10px;max-height:360px;overflow:auto}
.wb-up{margin:10px 0;padding:10px 12px;border:1px solid #e7e5e4;border-radius:10px;font-size:13px}
.wb-up ul{margin:6px 0 6px 18px}

/* «⚙️ Конвеєр» */
.cv-good{color:#16a34a}.cv-bad{color:#dc2626}
.cv-run{margin-bottom:16px}.cv-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cv-bar{width:100%;height:10px;margin:8px 0;accent-color:#16a34a}
.cv-event{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #eceae6}.cv-event-body{flex:1;min-width:0}

/* ── «🔎 SEO» (src/seo) ── */
.sp-page{padding:22px;max-width:1100px}
.sp-h{margin:0 0 6px;font-size:22px}
.sp-lead{color:#6b6b6b;font-size:13px;line-height:1.5;margin-bottom:14px}
.sp-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.sp-tab{padding:6px 12px;border-radius:999px;border:1px solid #e5e1da;background:#fff;color:#333;text-decoration:none;font-size:13px}
.sp-tab span{color:#999;margin-left:4px}
.sp-tab.on{background:#1C1917;color:#fff;border-color:#1C1917}
.sp-tab.on span{color:#cfcfcf}
.sp-card{background:#fff;border:1px solid #eceae6;border-radius:14px;padding:16px;margin-bottom:12px}
.sp-check{border-color:#f3c9a8;background:#fffaf5}
.sp-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.sp-name{font-weight:700;font-size:15px;color:#1C1917;text-decoration:none}
.sp-date{color:#999;font-size:12px}
.sp-qs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.sp-q{background:#f1f5ff;border-radius:8px;padding:3px 8px;font-size:12px;color:#334}
.sp-reason{font-size:13px;color:#7a4a17;margin:6px 0}
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.sp-col{min-width:0}
.sp-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#999;margin-bottom:4px}
.sp-t{color:#1a0dab;font-size:15px;margin-bottom:4px}
.sp-d{color:#4d5156;font-size:13px;line-height:1.45}
.sp-in{width:100%;box-sizing:border-box;padding:7px 9px;border:1px solid #ddd;border-radius:8px;font:inherit;font-size:14px;margin-bottom:6px}
.sp-ta{width:100%;box-sizing:border-box;padding:7px 9px;border:1px solid #ddd;border-radius:8px;font:inherit;font-size:13px}
.sp-res{margin-top:10px;font-size:13px;color:#333;background:#f6f6f4;border-radius:8px;padding:7px 10px}
.sp-acts{display:flex;gap:8px;margin-top:10px}
.sp-apply{background:#0E7A4D;color:#fff;border:0;border-radius:9px;padding:8px 14px;font-weight:700;cursor:pointer}
.sp-rej{background:#fff;color:#a33;border:1px solid #e3b4b4;border-radius:9px;padding:8px 14px;cursor:pointer}
.sp-revert{margin-left:8px;background:#fff;border:1px solid #ccc;border-radius:8px;padding:4px 10px;cursor:pointer}
.sp-done{margin-top:10px;font-size:13px;color:#555}
.sp-empty{color:#888;padding:20px 0}
.sp-error{padding:20px;color:#a33}
@media(max-width:760px){.sp-grid{grid-template-columns:1fr}}

/* «📚 Усі книги» (src/digital/templates/all_books.html, 11.11.2026) */
.ab{max-width:1280px}.ab-muted{color:#78716c;font-size:12px}.ab-inline{display:inline}
.ab-fresh{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:12.5px;color:#57534e;margin:6px 0 10px}
.ab-banner{border-radius:10px;padding:8px 12px;font-size:13px;margin:8px 0;background:#ecfeff;border:1px solid #a5f3fc}
.ab-banner.amber{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.ab-banner.grey{background:#f5f5f4;border-color:#d6d3d1;color:#44403c}
.ab-views{display:flex;gap:6px;margin:8px 0 10px;flex-wrap:wrap}
.ab-view{padding:8px 14px;border-radius:10px;border:1.5px solid #e2e0db;background:#fff;font-weight:700;font-size:14px;color:#57534e;text-decoration:none}
.ab-view.on{background:#1c1917;color:#fff;border-color:#1c1917}
.ab-filters{background:#fff;border:1px solid #e7e5e4;border-radius:12px;padding:10px 12px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px}
.ab-frow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}.ab-lbl{color:#57534e;min-width:92px;font-weight:700}
.ab-pill{padding:4px 10px;border-radius:999px;border:1px solid #d6d3d1;background:#fff;font-size:12.5px;color:#1c1917;text-decoration:none}
.ab-pill.on{background:#0f766e;color:#fff;border-color:#0f766e}
.ab-search{flex:1 1 240px;padding:6px 10px;border:1px solid #d6d3d1;border-radius:9px;font:inherit}
.ab-count{font-size:13px;color:#57534e;margin:6px 0}
.ab-list{display:flex;flex-direction:column;gap:8px}
.ab-row{background:#fff;border:1px solid #e7e5e4;border-radius:12px;padding:10px 12px;display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(130px,.6fr) minmax(200px,1fr) minmax(220px,1.2fr);gap:10px 14px;align-items:start}
.ab-row.target{outline:3px solid #f59e0b}
.ab-title{font-weight:800;font-size:14px}.ab-title-link{color:#1e40af;text-decoration:none}.ab-title-link:hover{text-decoration:underline}.ab-author{color:#57534e;font-size:12.5px}
.ab-type{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:8px;margin-top:4px}
.ab-type.t-ua{background:#ffedd5;color:#9a3412}.ab-type.t-en{background:#ede9fe;color:#5b21b6}.ab-type.t-author,.ab-type.t-auth{background:#dbeafe;color:#1e40af}.ab-type.t-gut{background:#dcfce7;color:#166534}
.ab-legacy{font-size:11.5px;color:#92400e;background:#fef3c7;border-radius:6px;padding:1px 6px;margin-top:4px}
.ab-ready{display:inline-block;font-weight:800;font-size:12px;padding:3px 9px;border-radius:999px;white-space:nowrap}
.ab-ready.r-full{background:#dcfce7;color:#166534}.ab-ready.r-stub{background:#fee2e2;color:#991b1b}.ab-ready.r-writing{background:#dbeafe;color:#1e40af}
.ab-ready.r-queue{background:#f5f5f4;color:#57534e}.ab-ready.r-err{background:#fecaca;color:#7f1d1d}.ab-ready.r-author{background:#e0f2fe;color:#075985}.ab-ready.r-owner{background:#fef3c7;color:#92400e}
.ab-wait{font-size:12px;color:#9a3412;margin-top:4px;font-weight:700}
.ab-bar{height:7px;border-radius:5px;background:#e7e5e4;overflow:hidden;margin-top:4px}.ab-bar i{display:block;height:100%;background:#16a34a}
.ab-p0{width:0%}.ab-p10{width:10%}.ab-p20{width:20%}.ab-p30{width:30%}.ab-p40{width:40%}.ab-p50{width:50%}.ab-p60{width:60%}.ab-p70{width:70%}.ab-p80{width:80%}.ab-p90{width:90%}.ab-p100{width:100%}
.ab details summary{cursor:pointer;font-size:12px;color:#0f766e;margin-top:4px}
.ab-stages{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}
.ab-st{font-size:11.5px;padding:2px 6px;border-radius:6px;background:#f5f5f4;color:#57534e;white-space:nowrap}
.ab-st.ok{background:#dcfce7;color:#166534}.ab-st.part{background:#fef3c7;color:#92400e}.ab-st.no{background:#fee2e2;color:#991b1b}
.ab-st.lock{background:#e0e7ff;color:#3730a3}.ab-st.na{background:#fff;border:1px dashed #d6d3d1;color:#a8a29e}
.ab-next{font-size:12.5px}.ab-next b{color:#9a3412;font-weight:700}
.ab-acts{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.sp-btn.ab-alt{background:#fff;color:#0f766e;border:1px solid #99f6e4}.sp-btn.ab-write{background:#ea580c}.sp-btn.ab-warn{background:#b45309}.sp-btn.ab-go{background:#0f766e}
.ab-who{font-size:11.5px;color:#78716c;margin-top:5px}
.ab-pages{display:flex;gap:12px;justify-content:center;margin:12px 0;font-size:13px}
.ab-legend{background:#fff;border:1px solid #e7e5e4;border-radius:12px;padding:10px 12px;margin:14px 0;font-size:12.5px}
.ab-legend table{border-collapse:collapse;width:100%;margin-top:8px}.ab-legend td,.ab-legend th{padding:5px 8px;border-bottom:1px solid #e7e5e4;text-align:left;vertical-align:top}
.ab-help{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:12px}
.ab-help-card{display:block;background:#fff;border:1px solid #e7e5e4;border-radius:12px;padding:12px 14px;color:#57534e;font-size:13px;text-decoration:none}
.ab-help-card b{display:block;color:#1c1917;font-size:15px;margin-bottom:4px}
@media (max-width:860px){.ab-row{grid-template-columns:1fr;gap:6px}.ab-row details{display:none}}
