*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',Arial,sans-serif;background:#eef1f5;color:#1a1a2e}
.header{background:linear-gradient(135deg,#0f2744,#1a3a5c,#1e4976);color:white;padding:16px 24px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:300;overflow:hidden}
.header::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.header h1{font-size:20px;font-weight:600}
.header .sub{font-size:12px;opacity:.7;margin-top:2px}
.stats{display:flex;gap:12px;padding:16px 24px;flex-wrap:wrap}
.stat-card{background:white;border-radius:10px;padding:14px 18px;min-width:130px;flex:1;box-shadow:0 2px 8px rgba(0,0,0,.09);border-left:4px solid #3b82f6;transition:box-shadow .15s}
.stat-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.13)}
.stat-card.g{border-left-color:#22c55e}.stat-card.o{border-left-color:#f97316}
.stat-card.p{border-left-color:#a855f7}.stat-card.r{border-left-color:#ef4444}
.stat-card .num{font-size:26px;font-weight:700;color:#1a3a5c}
.stat-card .lbl{font-size:11px;color:#888;margin-top:2px;text-transform:uppercase;letter-spacing:.4px}
/* ── ДАШБОРД ── */
.dash-page{padding:0 0 40px}
.dash-hero{background:linear-gradient(135deg,#0f2744,#1a3a5c,#1e4976);color:white;padding:28px 32px 32px;position:relative;overflow:hidden;margin-bottom:0}
.dash-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.dash-hero-content{position:relative;z-index:1}
.dash-hero h2{font-size:22px;font-weight:800;letter-spacing:-.3px;margin-bottom:4px}
.dash-hero p{font-size:13px;opacity:.65;margin-bottom:20px}
.dash-hero-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:900px){.dash-hero-kpis{grid-template-columns:repeat(2,1fr)}}
.dash-hkpi{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px 18px;backdrop-filter:blur(4px);transition:background .15s}
.dash-hkpi:hover{background:rgba(255,255,255,.13)}
.dash-hkpi-num{font-size:30px;font-weight:900;line-height:1;margin-bottom:4px;font-variant-numeric:tabular-nums}
.dash-hkpi-lbl{font-size:11px;opacity:.6;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}
.dash-hkpi.danger .dash-hkpi-num{color:#fca5a5}
.dash-hkpi.warn   .dash-hkpi-num{color:#fcd34d}
.dash-hkpi.ok     .dash-hkpi-num{color:#86efac}
.dash-hkpi.blue   .dash-hkpi-num{color:#93c5fd}

.dash-body{padding:24px 28px 0}
.dash-modules{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}
@media(max-width:900px){.dash-modules{grid-template-columns:1fr}}
@media(min-width:1200px){.dash-modules{grid-template-columns:repeat(4,1fr)}}

.dash-mod{background:white;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.07);cursor:pointer;transition:transform .15s,box-shadow .15s;overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.05)}
.dash-mod:hover:not(.dash-disabled){transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.13)}
.dash-disabled{cursor:default;opacity:.65}
.dash-mod-accent{height:5px;width:100%}
.dash-mod-top{padding:20px 20px 0}
.dash-mod-icon{font-size:30px;margin-bottom:10px}
.dash-mod-title{font-size:15px;font-weight:800;color:#1a3a5c;margin-bottom:3px;letter-spacing:-.2px}
.dash-mod-desc{font-size:11px;color:#94a3b8;line-height:1.5;margin-bottom:14px}
.dash-mod-stats{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.dash-stat-row{display:flex;align-items:baseline;gap:10px}
.dash-stat-num{font-size:28px;font-weight:900;color:#1a3a5c;min-width:44px;line-height:1;font-variant-numeric:tabular-nums}
.dash-stat-lbl{font-size:11px;color:#94a3b8}
.dash-stat-sub{display:flex;gap:10px;flex-wrap:wrap}
.dash-stat-sub span{font-size:11px;color:#64748b;display:flex;align-items:center;gap:3px;background:#f8fafc;border-radius:5px;padding:2px 7px}
.dash-stat-sub b{color:#1a3a5c;font-weight:700}
.dash-mod-footer{margin-top:auto;padding:12px 20px;border-top:1px solid #f0f4f8;display:flex;justify-content:flex-end}
.dash-open-btn{padding:7px 18px;border-radius:8px;font-size:12px;font-weight:700;border:none;cursor:pointer;font-family:inherit;letter-spacing:.2px;transition:all .15s}
.dash-open-btn.blue{background:linear-gradient(135deg,#1a3a5c,#1e4976);color:white;box-shadow:0 2px 6px rgba(26,58,92,.3)}
.dash-open-btn.blue:hover{box-shadow:0 4px 12px rgba(26,58,92,.4);transform:translateY(-1px)}
.dash-open-btn.green{background:linear-gradient(135deg,#16a34a,#15803d);color:white;box-shadow:0 2px 6px rgba(22,163,74,.3)}
.dash-open-btn.green:hover{box-shadow:0 4px 12px rgba(22,163,74,.4);transform:translateY(-1px)}
.dash-open-btn.grey{background:#e2e8f0;color:#94a3b8;cursor:default}
.dash-today-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:5px 12px;font-size:12px;font-weight:700;color:#1e40af;margin-bottom:12px}
.dash-coming{display:inline-block;padding:3px 10px;background:#fef9c3;border-radius:6px;font-size:11px;font-weight:700;color:#854d0e;margin-bottom:12px}

/* ── Старая KPI-полоса — скрываем, используем dash-hero ── */
.dash-kpi-strip{display:none}

/* ── Панель «на этой неделе» ── */
.dash-week-panel{background:white;border-radius:12px;padding:20px 24px;box-shadow:0 2px 8px rgba(0,0,0,.07);border:1px solid rgba(0,0,0,.05)}
.dash-week-title{font-size:13px;font-weight:800;color:#1a3a5c;margin-bottom:12px;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.4px}
.dash-week-order-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f0f4f8;cursor:pointer;transition:background .1s;border-radius:6px}
.dash-week-order-row:last-child{border-bottom:none}
.dash-week-order-row:hover{background:#f8fafc;padding-left:8px;padding-right:8px;margin:0 -8px}
/* ── Паллеты в заказе ── */
.pallet-tag{display:inline-flex;align-items:center;gap:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600;color:#475569;white-space:nowrap}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 24px}
.toolbar input{flex:1;min-width:180px;padding:8px 12px;border:1px solid #dde1e7;border-radius:6px;font-size:13px;outline:none;font-family:inherit}
.toolbar input:focus{border-color:#3b82f6}
.toolbar select{padding:8px 10px;border:1px solid #dde1e7;border-radius:6px;font-size:13px;background:white;cursor:pointer;outline:none}
.import-area{margin:0 24px 12px;background:#eff6ff;border:2px dashed #93c5fd;border-radius:10px;padding:18px;text-align:center;display:none}
.import-area.show{display:block}
.import-area p{font-size:13px;color:#1d4ed8;margin-bottom:10px}
.import-area input[type=file]{display:none}
.import-area label.pick{display:inline-block;padding:7px 18px;background:#3b82f6;color:white;border-radius:6px;cursor:pointer;font-size:13px}
.btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap;font-family:inherit}
.btn-primary{background:#1a3a5c;color:white}.btn-primary:hover{background:#16324f}
.btn-success{background:#16a34a;color:white}.btn-success:hover{background:#15803d}
.btn-danger{background:#ef4444;color:white}.btn-danger:hover{background:#dc2626}
.btn-outline{background:white;color:#4b5563;border:1px solid #dde1e7}.btn-outline:hover{background:#f9fafb}
.btn-sm{padding:4px 10px;font-size:12px}
.btn-ghost{background:none;border:none;cursor:pointer;font-size:13px;color:#64748b;padding:3px 6px}
.btn-ghost:hover{color:#1a3a5c}
.section{background:white;margin:0 24px 24px;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.08);overflow:hidden}
.section-header{padding:14px 18px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-header h2{font-size:15px;font-weight:600}
.tbl-count{font-size:12px;color:#888}
table{width:100%;border-collapse:collapse}
th{background:#f8fafc;padding:9px 12px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#64748b;border-bottom:2px solid #e2e8f0;white-space:nowrap;cursor:pointer;user-select:none}
th:hover{background:#f1f5f9}
td{padding:8px 12px;font-size:13px;border-bottom:1px solid #f0f4f8}
tr:hover td{background:#f8fafc}
.badge{padding:2px 7px;border-radius:10px;font-size:11px;font-weight:600}
.vol-badge{display:inline-block;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:600}
.empty{padding:40px;text-align:center;color:#aaa;font-size:14px}
.nav{position:sticky;top:88px;z-index:299;display:flex;padding:0 24px;border-bottom:2px solid #e2e8f0;background:white;gap:4px;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.nav-item{padding:12px 18px;cursor:pointer;font-size:13px;font-weight:500;border-bottom:3px solid transparent;color:#64748b;white-space:nowrap;transition:all .15s;margin-bottom:-2px;text-decoration:none}
.nav-item.active{color:#1a3a5c;border-bottom-color:#1a3a5c;font-weight:700;background:#f8faff}
.nav-item:hover:not(.active){color:#1a3a5c;background:#f8fafc}
.nav-sep{flex:1}
.nav-ext{color:#475569;font-size:12px;opacity:.75}
.nav-ext:hover{opacity:1;color:#1a3a5c;background:#f8fafc}
.tab-page{display:none}.tab-page.active{display:block}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center}
.modal.open{display:flex}
.modal-box{background:white;border-radius:12px;padding:24px;width:560px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.modal-box h3{font-size:17px;margin-bottom:20px;color:#1a3a5c;font-weight:600}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-group{display:flex;flex-direction:column;gap:4px}
.form-group.full{grid-column:1/-1}
label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px}
input,select,textarea{padding:8px 10px;border:1px solid #dde1e7;border-radius:6px;font-size:13px;font-family:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:#3b82f6}
.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #f0f0f0}
.toasts{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}
.toast{padding:11px 16px;border-radius:8px;color:white;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.2);max-width:340px;animation:tin .25s ease}
.toast.s{background:#16a34a}.toast.e{background:#dc2626}.toast.i{background:#1d4ed8}
@keyframes tin{from{transform:translateX(30px);opacity:0}to{transform:translateX(0);opacity:1}}

/* ── КАЛЕНДАРЬ ──────────────────────────────────────────── */
.cal-toolbar{position:sticky;top:0;z-index:298;background:white;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;align-items:center;gap:10px;padding:12px 24px;flex-wrap:wrap}
.cal-week-nav{display:flex;align-items:center;gap:6px}
.cal-week-nav span{font-weight:600;font-size:14px;min-width:200px;text-align:center}
.cal-site-tabs{display:flex;gap:6px}
.cal-site-tab{padding:6px 16px;border-radius:20px;border:1px solid #dde1e7;background:white;cursor:pointer;font-size:13px;font-weight:500;color:#64748b}
.cal-site-tab.active{background:#1a3a5c;color:white;border-color:#1a3a5c}
.cal-grid{padding:0 24px 24px;display:flex;flex-direction:column;gap:12px}
.cal-day{background:white;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden;transition:box-shadow .15s}
.cal-day:hover{box-shadow:0 4px 16px rgba(0,0,0,.12)}
.cal-day-header{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f0f4f8;background:#f8fafc}
.cal-dh-left{display:flex;align-items:center;gap:8px;flex-shrink:0}
.cal-day-date{font-size:13px;font-weight:700;color:#1a3a5c;white-space:nowrap}
.cal-day-name{font-size:13px;color:#64748b;white-space:nowrap}
.shift-badge{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:700;white-space:nowrap;line-height:1.4}
.shift-1{background:#dbeafe;color:#1e40af}
.shift-2{background:#fce7f3;color:#9d174d}
.cal-add-btn{padding:4px 12px;font-size:12px;border:1px dashed #93c5fd;background:transparent;border-radius:6px;color:#3b82f6;cursor:pointer;white-space:nowrap}
.cal-add-btn:hover{background:#eff6ff}
/* Норма смены */
.cal-cap-wrap{display:flex;align-items:center;gap:7px;background:white;border:1px solid #dde1e7;border-radius:8px;padding:5px 12px;margin-left:auto}
.cal-cap-wrap label{font-size:12px;color:#64748b;white-space:nowrap;margin:0}
.cal-cap-input{width:80px;padding:3px 8px;border:1px solid #dde1e7;border-radius:5px;font-size:13px;font-weight:600;text-align:right;font-family:inherit;outline:none}
.cal-cap-input:focus{border-color:#3b82f6}
.cal-cap-unit{font-size:12px;color:#64748b}
/* Загрузка смены */
.shift-load{display:flex;align-items:center;gap:6px;margin-left:auto}
.load-bar-wrap{width:100px;height:8px;background:#e2e8f0;border-radius:5px;overflow:hidden;flex-shrink:0}
.load-bar-fill{height:100%;border-radius:5px;transition:width .4s}
.load-mini-nums{display:flex;align-items:baseline;gap:2px;font-size:11px;white-space:nowrap}
.load-mini-plan{font-weight:800}
.load-sep{color:#cbd5e1;margin:0 1px;font-weight:400}
.load-mini-cap{color:#94a3b8;font-weight:500}
.load-pct{font-size:10px;font-weight:700;margin-left:4px;padding:1px 5px;border-radius:4px;background:rgba(0,0,0,.05);white-space:nowrap}
.cal-items{width:100%;overflow-x:auto}
.cal-items table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed}
.cal-items th{background:#f8fafc;padding:7px 10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;border-bottom:1px solid #e2e8f0}
.cal-items td{padding:7px 10px;font-size:12px;border-bottom:1px solid #f8fafc;vertical-align:middle}
.cal-items tr:last-child td{border-bottom:none}
.cal-items tr:hover td{background:#f8fafc}
.cal-items tr.done-row td{opacity:.5}
.cal-items tr.done-row .art-code{text-decoration:line-through}
.art-code{font-family:monospace;font-size:11px;font-weight:700;color:#1e40af}
.order-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap}
.qty-cell{font-weight:600;min-width:50px;text-align:center}
.actual-cell{color:#16a34a;font-weight:600;text-align:center}
.done-check{width:16px;height:16px;cursor:pointer;accent-color:#16a34a}
.cal-empty{padding:20px;text-align:center;color:#cbd5e1;font-size:13px}
.dev-cell{font-size:12px;min-width:55px;text-align:center;font-weight:700}
tr.dev-warn td.dev-cell{background:#fff7ed}
tr.dev-crit td.dev-cell{background:#fef2f2}
.dev-badge{display:inline-flex;align-items:center;gap:3px}
.dev-alert-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;font-size:11px;font-weight:700;white-space:nowrap}
.dev-alert-badge.warn{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.dev-alert-badge.crit{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}

/* ── Дедлайн-бейджи (строка таблицы) ── */
.deadline-cell{white-space:nowrap;min-width:82px}
.dl-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;font-family:inherit}
.dl-ok{color:#64748b}
.dl-soon{background:#fefce8;color:#854d0e;border:1px solid #fde68a;font-weight:700}
.dl-today{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;font-weight:800;letter-spacing:.1px}
.dl-overdue{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-weight:800}

/* ── Дедлайн-бейджи (заголовок дня) ── */
.dl-hbadge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:5px;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0;cursor:default}
.dl-hb-overdue{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.dl-hb-today{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.dl-hb-soon{background:#fefce8;color:#854d0e;border:1px solid #fde68a}
.comment-cell{max-width:200px;cursor:pointer;font-size:12px}
.comment-cell:hover{background:#f8fafc}
.comment-text{color:#374151;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comment-empty{color:#cbd5e1;font-size:11px}
.comment-empty:hover{color:#94a3b8}

/* Цвета каналов */
.ch-OZON{background:#005BFF;color:white}
.ch-ВБ{background:#CB11AB;color:white}
.ch-OPT{background:#16a34a;color:#fff;font-weight:800}
.ch-МИХНЕВО{background:#eab308;color:#111;font-weight:800}
.ch-ЯМ{background:#111827;color:#eab308;font-weight:800}
.ch-ММ{background:#dc2626;color:white;font-weight:800}
.ch-default{background:#64748b;color:white}

/* Итоговая строка дня */
.totals-row td{background:#f1f5f9;font-weight:700;border-top:2px solid #e2e8f0}
/* Кнопка печати */
.cal-print-btn{padding:4px 10px;font-size:12px;border:1px solid #dde1e7;background:white;border-radius:6px;color:#64748b;cursor:pointer;white-space:nowrap;flex-shrink:0}
.cal-print-btn:hover{background:#f1f5f9;color:#1a3a5c}
.cal-print-wrap{position:relative;display:inline-block;flex-shrink:0}
.cal-print-menu{display:none;position:absolute;right:0;top:calc(100% + 4px);background:white;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:200;min-width:200px;padding:4px 0}
.cal-print-menu.open{display:block}
.cal-print-menu button{display:block;width:100%;text-align:left;padding:9px 14px;font-size:13px;border:none;background:none;cursor:pointer;color:#374151;white-space:nowrap}
.cal-print-menu button:hover{background:#f8fafc;color:#1a3a5c}

/* ── БАННЕР «СЕЙЧАС В ПРОИЗВОДСТВЕ» ── */
/* ── Баннер «Сейчас в производстве» ── */
.prod-banner{background:#0f172a;color:white;padding:12px 24px 14px;border-bottom:3px solid #1e40af}
.prod-banner-hdr{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.prod-banner-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#93c5fd}
.prod-banner-site{font-size:11px;padding:2px 8px;border-radius:10px;background:#1e293b;color:#7dd3fc;font-weight:700}
.tv-btn{margin-left:auto;background:#1e3a5f;border:1px solid #2563eb;color:#93c5fd;border-radius:7px;padding:4px 12px;font-size:12px;cursor:pointer;transition:background .15s}
.tv-btn:hover{background:#1d4ed8;color:white}
.prod-lines-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.prod-line-card{background:#1e293b;border-radius:10px;padding:10px 14px;border:1px solid #334155;position:relative;overflow:hidden}
.prod-line-card.empty{opacity:.4}
.prod-line-card.active{border-color:#2563eb;background:#1e2f4a}
.prod-lc-num{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#60a5fa;margin-bottom:4px}
.prod-lc-art{font-family:monospace;font-size:15px;font-weight:700;color:#fbbf24;margin-bottom:2px}
.prod-lc-name{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}
.prod-lc-qty{display:flex;align-items:baseline;gap:6px}
.prod-lc-plan{font-size:22px;font-weight:800;color:#4ade80;line-height:1}
.prod-lc-fact{font-size:13px;color:#94a3b8}
.prod-lc-bar{height:5px;background:#334155;border-radius:3px;margin-top:7px;overflow:hidden}
.prod-lc-bar-fill{height:100%;border-radius:3px;transition:width .4s}
/* ── Сворачивание прошедших дней ── */
.cal-day-collapse-btn{background:none;border:none;cursor:pointer;padding:3px 8px;border-radius:5px;color:#94a3b8;font-size:14px;flex-shrink:0;line-height:1.4;transition:color .15s}
.cal-day-collapse-btn:hover{color:#475569;background:rgba(0,0,0,.06)}
.cal-day.collapsed .cal-items{display:none}
.cal-day.collapsed .cal-day-header{border-bottom:none}
.cal-day-past-summary{display:flex;align-items:center;gap:10px;font-size:12px;color:#64748b;flex:1}
.cal-day:not(.collapsed) .cal-day-past-summary{display:none}
.past-sum-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
/* ── TV-режим (fullscreen) ── */
#tvOverlay{display:none;position:fixed;inset:0;z-index:9999;background:#030712;color:white;flex-direction:column;overflow:hidden}
#tvOverlay.open{display:flex}
.tv-header{display:flex;align-items:center;padding:16px 32px;border-bottom:2px solid #1e3a5f;gap:16px;flex-shrink:0}
.tv-plant{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#3b82f6}
.tv-title{font-size:16px;font-weight:800;color:#93c5fd;letter-spacing:.5px}
.tv-clock{margin-left:auto;font-size:20px;font-weight:700;font-family:monospace;color:#e2e8f0}
.tv-close{background:#1e293b;border:1px solid #334155;color:#94a3b8;border-radius:8px;padding:6px 14px;font-size:13px;cursor:pointer}
.tv-close:hover{background:#374151;color:white}
.tv-lines{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:24px 32px;flex:1;min-height:0}
.tv-line{background:#0f172a;border-radius:16px;border:2px solid #1e3a5f;padding:20px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;overflow:hidden}
.tv-line.active{border-color:#2563eb;background:#0d1f38}
.tv-line.empty{opacity:.35}
.tv-ln{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#60a5fa}
.tv-art{font-family:monospace;font-size:22px;font-weight:700;color:#fbbf24;text-align:center}
.tv-name{font-size:16px;color:#cbd5e1;line-height:1.35;text-align:center}
.tv-qty-row{display:flex;gap:32px;align-items:flex-end;justify-content:center;width:100%}
.tv-plan{font-size:58px;font-weight:900;color:#4ade80;line-height:1;font-variant-numeric:tabular-nums;text-align:center}
.tv-plan-lbl{font-size:13px;color:#64748b;text-align:center}
.tv-fact{font-size:30px;font-weight:700;color:#93c5fd;font-variant-numeric:tabular-nums}
.tv-fact-lbl{font-size:12px;color:#475569}
.tv-bar{height:8px;background:#1e293b;border-radius:4px;margin-top:10px;overflow:hidden}
.tv-bar-fill{height:100%;border-radius:4px;transition:width .5s}
.tv-img-wrap{width:min(340px,88%);aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#0d1b2a;display:flex;align-items:center;justify-content:center;border:1px solid #1e3a5f;flex-shrink:0;margin:4px auto}
.tv-img-wrap img{width:100%;height:100%;object-fit:contain}
.tv-img-wrap .no-img{color:#1e3a5f;font-size:64px}
.sku-img-wrap{width:40px;height:40px;cursor:pointer;border-radius:4px;overflow:hidden;border:1px solid #e2e8f0;transition:border-color .15s;position:relative}
.sku-img-wrap:hover{border-color:#6366f1}
.sku-no-img{width:40px;height:40px;align-items:center;justify-content:center;font-size:18px;background:#f8fafc;border-radius:4px;cursor:pointer}
/* Лайтбокс */
#skuLightbox{display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.88);flex-direction:column;align-items:center;justify-content:center;gap:16px}
#skuLightbox.open{display:flex}
#skuLightbox .lb-img-wrap{cursor:zoom-out;display:flex;align-items:center;justify-content:center}
#skuLightbox img{max-width:88vw;max-height:78vh;border-radius:10px;box-shadow:0 8px 40px rgba(0,0,0,.6);object-fit:contain}
#skuLightboxCaption{color:#94a3b8;font-size:13px;font-family:monospace}
#skuLightboxActions{display:flex;gap:10px}
.lb-btn{padding:8px 20px;border-radius:8px;border:none;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:.12s}
.lb-btn-replace{background:#3b82f6;color:#fff}.lb-btn-replace:hover{background:#2563eb}
.lb-btn-delete{background:#1e293b;color:#ef4444;border:1px solid #ef4444}.lb-btn-delete:hover{background:#ef4444;color:#fff}
.lb-btn-close{background:#1e293b;color:#94a3b8;border:1px solid #334155}.lb-btn-close:hover{color:#fff}
.tv-body{display:flex;gap:18px;flex:1;min-width:0}
.tv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;align-items:center}
.tv-status-bar{display:flex;align-items:center;gap:28px;padding:12px 32px;background:#060f1e;border-top:2px solid #1e3a5f;flex-shrink:0}
.tv-sb-block{display:flex;flex-direction:column;align-items:center;gap:1px;white-space:nowrap}
.tv-sb-lbl{font-size:10px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.8px}
.tv-sb-val{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}
.tv-sb-remain{color:#f87171}
.tv-sb-done{color:#4ade80}
.tv-sb-time{color:#fbbf24}
.tv-sb-progress{flex:1;display:flex;flex-direction:column;gap:4px}
.tv-sb-prog-track{height:16px;background:#0f172a;border-radius:8px;overflow:hidden;border:1px solid #1e3a5f;position:relative}
.tv-sb-prog-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,#1d4ed8,#22c55e);transition:width .6s ease}
.tv-sb-prog-labels{display:flex;justify-content:space-between;font-size:10px;color:#334155;font-weight:600;padding:0 2px}
.tv-sb-divider{width:1px;height:36px;background:#1e3a5f;flex-shrink:0}
.tv-footer{padding:8px 32px;display:flex;align-items:center;gap:16px;border-top:1px solid #0f172a;flex-shrink:0}
.tv-refresh-lbl{font-size:11px;color:#334155}
.tv-refresh-bar{height:3px;background:#1e3a5f;border-radius:2px;overflow:hidden;flex:1;max-width:200px}
.tv-refresh-fill{height:100%;background:#2563eb;border-radius:2px;transition:width 1s linear}
/* Кнопки линий */
.line-btns{display:flex;gap:3px}
.line-btn{width:22px;height:22px;border-radius:5px;border:1.5px solid #dde1e7;background:white;cursor:pointer;font-size:11px;font-weight:700;color:#64748b;display:flex;align-items:center;justify-content:center;transition:all .12s;padding:0;font-family:inherit}
.line-btn:hover{border-color:#3b82f6;color:#1d4ed8;background:#eff6ff}
.line-btn.active{background:#1a3a5c;border-color:#1a3a5c;color:white}

/* ── Drag & Drop ── */
.drag-handle{cursor:grab;color:#d1d5db;font-size:13px;padding:2px 4px;user-select:none;text-align:center}
.drag-handle:active{cursor:grabbing}
tr.dragging td{opacity:.3;background:#eff6ff!important}
tr.drag-over-top td{border-top:2.5px solid #3b82f6!important;background:#f0f9ff!important}
.cal-day.drag-target .cal-day-header{box-shadow:inset 0 0 0 2px #93c5fd}
.cal-day.drag-over-day>.cal-items{background:#eff6ff!important;outline:2px dashed #3b82f6;outline-offset:-2px;border-radius:0 0 10px 10px}
/* ── DnD-модалка подтверждения переноса ── */
.dnd-modal-box{max-width:420px;text-align:center;padding:28px 28px 24px}
.dnd-modal-icon{font-size:32px;margin-bottom:8px;color:#1a3a5c}
.dnd-item-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px;margin-bottom:18px;text-align:left}
.dnd-item-art{font-family:monospace;font-weight:800;font-size:15px;color:#1e40af;margin-bottom:3px}
.dnd-item-name{font-size:13px;color:#374151;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dnd-item-qty{font-size:12px;color:#64748b}
.dnd-arrow-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px}
.dnd-date-chip{padding:6px 14px;border-radius:8px;font-size:14px;font-weight:700}
.dnd-from{background:#eff6ff;color:#1e40af}
.dnd-to{background:#f0fdf4;color:#166534}
.dnd-arrow{font-size:22px;color:#94a3b8}
tr.cal-row-selected td{background:#dbeafe!important;outline:1px solid #93c5fd}
tr.cal-row-selected:hover td{background:#bfdbfe!important}
.cal-sel-bar{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#1e293b;color:#fff;border-radius:12px;padding:10px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 6px 24px rgba(0,0,0,.3);z-index:9999;animation:calSelFadeIn .18s}
.cal-sel-bar.hidden{display:none}
@keyframes calSelFadeIn{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.cal-sel-count{font-size:13px;font-weight:600;white-space:nowrap}
.cal-sel-del{background:#ef4444;color:#fff;border:none;border-radius:7px;padding:6px 14px;cursor:pointer;font-weight:700;font-size:13px}
.cal-sel-del:hover{background:#dc2626}
.cal-sel-clear{background:transparent;color:#94a3b8;border:none;cursor:pointer;font-size:20px;line-height:1;padding:0 2px}
.cal-sel-clear:hover{color:#fff}
.move-btn{padding:2px 7px;font-size:12px;border:1px solid #dde1e7;background:white;border-radius:5px;cursor:pointer;color:#64748b;line-height:1.4;margin-left:3px;font-family:inherit}
.move-btn:hover{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}
.hist-btn{padding:2px 6px;font-size:11px;border:1px solid #e2e8f0;background:white;border-radius:5px;cursor:pointer;color:#94a3b8;line-height:1.4;margin-left:2px;font-family:inherit}
.hist-btn:hover{background:#f8fafc;border-color:#94a3b8;color:#475569}
.hist-timeline{list-style:none;padding:0;margin:0}
.hist-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #f1f5f9;font-size:13px}
.hist-item:last-child{border-bottom:none}
.hist-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;margin-top:5px;flex-shrink:0}
.hist-body{flex:1}
.hist-field{font-weight:700;color:#1e40af;margin-right:6px}
.hist-arrow{color:#94a3b8;margin:0 4px}
.hist-old{color:#dc2626;text-decoration:line-through}
.hist-new{color:#16a34a;font-weight:700}
.hist-time{font-size:11px;color:#94a3b8;margin-top:2px}

/* ── ЗАКАЗЫ ── */
.ord-exp-btn{background:none;border:none;cursor:pointer;font-size:13px;color:#94a3b8;padding:0 4px;line-height:1;transition:.12s}
.ord-exp-btn:hover,.ord-exp-btn.open{color:#1a3a5c}
.ord-subrow>td{background:#f8fafc;padding:0!important}
.ord-lines-table{width:100%;border-collapse:collapse}
.ord-lines-table th{padding:5px 10px;font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.4px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}
.ord-lines-table td{padding:5px 10px;font-size:12px;border-bottom:1px solid #f0f4f8}
.ord-lines-table tr:last-child td{border-bottom:none}
/* Строка заказа — исключена из текущей поставки (ghost) */
.ord-line-ghost td{opacity:.42;background:#fafafa !important}
.ord-line-ghost .art-code{color:#94a3b8 !important;text-decoration:line-through}
.ord-line-ghost:hover td{opacity:.65;transition:opacity .15s}
.ord-excl-btn.active{font-weight:700}
/* Строка производственного плана — исключена из поставки (красная окантовка) */
.plan-row-excluded>td{background:#fff5f5 !important;border-top:2px solid #ef4444 !important;border-bottom:2px solid #ef4444 !important}
.plan-row-excluded>td:first-child{border-left:2px solid #ef4444 !important}
.plan-row-excluded>td:last-child{border-right:2px solid #ef4444 !important}
.plan-row-excluded>td:first-child::before{content:"⚠";font-size:10px;color:#ef4444;margin-right:3px}
.ord-progress{display:flex;align-items:center;gap:6px}
.ord-prog-bar{width:56px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;flex-shrink:0}
.ord-prog-fill{height:100%;border-radius:3px}
.om-line-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid #f0f4f8}
.om-line-row:last-child{border-bottom:none}
.om-line-art{font-family:monospace;font-size:11px;font-weight:700;color:#1e40af;min-width:88px;flex-shrink:0}
.om-line-name{font-size:12px;color:#374151;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.om-line-qty{width:80px;padding:3px 6px;border:1px solid #dde1e7;border-radius:4px;font-size:12px;text-align:right;font-family:inherit;outline:none}
.om-line-note{flex:1;padding:3px 6px;border:1px solid #dde1e7;border-radius:4px;font-size:12px;font-family:inherit;outline:none}

/* ── Табы направлений OZON ── */
.ord-tabs-wrap{background:#fff}
.ord-tab-bar{display:flex;gap:0;border-bottom:2px solid #e2e8f0;padding:0 14px}
.ord-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:8px 16px;font-size:13px;font-weight:600;color:#94a3b8;cursor:pointer;transition:color .15s,border-color .15s}
.ord-tab:hover{color:#3b82f6}
.ord-tab.active{color:#1e40af;border-bottom-color:#3b82f6}

/* ── Списание компонентов ── */
.wo-stat-bar{display:flex;gap:12px;flex-wrap:wrap;padding:14px 24px 0}
.wo-stat{background:white;border-radius:8px;padding:10px 16px;min-width:130px;flex:1;box-shadow:0 1px 4px rgba(0,0,0,.07);border-left:4px solid #64748b}
.wo-stat.pend{border-left-color:#f59e0b}.wo-stat.done{border-left-color:#22c55e}.wo-stat.cat{border-left-color:#6366f1}
.wo-stat .num{font-size:22px;font-weight:800;color:#1a3a5c}
.wo-stat .lbl{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.4px}
.posted-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:12px;border:1px solid;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;transition:.1s}
.posted-btn.no{background:#fef3c7;color:#92400e;border-color:#fde68a}
.posted-btn.no:hover{background:#fde68a}
.posted-btn.yes{background:#dcfce7;color:#166534;border-color:#86efac}
.posted-btn.yes:hover{background:#bbf7d0}
/* Component catalog modal */
.comp-cat-row{display:grid;grid-template-columns:1fr 2fr auto;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid #f1f5f9}
.comp-cat-row:last-child{border-bottom:none}
.comp-search{width:100%;padding:7px 10px;border:1px solid #e2e8f0;border-radius:7px;font-size:13px;font-family:inherit;margin-bottom:10px}
.comp-select-list{max-height:260px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}
.comp-option{padding:9px 12px;cursor:pointer;border-bottom:1px solid #f8fafc;font-size:13px;transition:.1s}
.comp-option:hover{background:#eff6ff}
.comp-option.selected{background:#dbeafe}
.comp-option .co-art{font-family:monospace;color:#6366f1;font-size:11px;margin-right:6px}
.comp-option .co-cat{font-size:11px;color:#94a3b8;float:right}
.wo-reason-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.wo-reason-chip{padding:4px 12px;border-radius:16px;border:1px solid #e2e8f0;background:white;font-size:12px;cursor:pointer;font-family:inherit;transition:.1s}
.wo-reason-chip.active{background:#1a3a5c;color:white;border-color:#1a3a5c}

/* Кнопка факт-печати */
.cal-fact-btn{padding:4px 10px;font-size:12px;border:1px solid #dde1e7;background:white;border-radius:6px;color:#64748b;cursor:pointer;white-space:nowrap;flex-shrink:0}
.cal-fact-btn:hover{background:#f0fdf4;color:#16a34a;border-color:#86efac}

/* ── Ячейка действий в строке календаря (История + галка + перенос + удалить) ── */
.cal-action-cell{
  position:sticky;right:0;
  background:white;
  box-shadow:-3px 0 8px rgba(0,0,0,.07);
  white-space:nowrap;text-align:right;
  padding:4px 10px!important;vertical-align:middle;
  z-index:2;
}
.cal-items tr.done-row td.cal-action-cell{background:rgba(255,255,255,.85)}
.cal-items tr:hover td.cal-action-cell{background:#f8fafc}
.cal-items thead th.cal-th-actions{
  position:sticky;right:0;
  background:#f8fafc;
  box-shadow:-3px 0 8px rgba(0,0,0,.07);
  z-index:3;
  width:110px;
}
.cal-action-cell .hist-btn{margin-right:2px}
.cal-action-cell .done-check{vertical-align:middle;margin:0 4px}
.cal-action-cell .move-btn{margin-left:2px}
.cal-action-cell .btn-ghost{margin-left:1px}

/* ── Inline-редактирование ячеек SKU ── */
.sku-table td.sku-editable{cursor:text;position:relative}
.sku-table td.sku-editable:hover{background:#fffbeb!important;outline:1px dashed #d97706;outline-offset:-1px}
.sku-table tbody tr:hover td.sku-editable{background:#fffbeb!important}
.sku-table tbody tr:hover td.sku-pack-col.sku-editable{background:#fef3c7!important}
.sku-table td.sku-editable input{display:block;width:100%;box-sizing:border-box}

/* ── Столбец ОСТ ── */
.ost-cell{text-align:center;min-width:70px;white-space:nowrap}
.ost-surplus{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-weight:700;font-size:11px;cursor:pointer}
.ost-surplus:hover{background:#dbeafe}
.ost-deficit{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-weight:700;font-size:11px}
.ost-none{color:#cbd5e1;font-size:11px}

/* ── Resizable columns ── */
.cal-items th{position:relative}
.col-resize-handle{position:absolute;right:-3px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:10;background:transparent;user-select:none;touch-action:none}
.col-resize-handle::after{content:'';position:absolute;right:3px;top:15%;bottom:15%;width:2px;border-radius:2px;background:rgba(59,130,246,.28);transition:background .15s}
.col-resize-handle:hover::after,.col-resize-handle.resizing::after{background:rgba(59,130,246,.8)}

/* ── Улучшенный стиль кнопок ── */
.btn-primary{background:linear-gradient(135deg,#1a3a5c,#1e4976);color:white;box-shadow:0 2px 4px rgba(26,58,92,.3)}
.btn-primary:hover{background:linear-gradient(135deg,#16324f,#1a3a5c);box-shadow:0 4px 8px rgba(26,58,92,.4)}
.btn-success{background:linear-gradient(135deg,#16a34a,#15803d);color:white;box-shadow:0 2px 4px rgba(22,163,74,.3)}
.btn-success:hover{background:linear-gradient(135deg,#15803d,#166534);box-shadow:0 4px 8px rgba(22,163,74,.4)}
.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:white;box-shadow:0 2px 4px rgba(239,68,68,.3)}
.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}
.btn{transition:all .15s ease}

/* ── Сетка-фон (аналог login-страницы) на карточках дней ── */
.cal-day{position:relative}
.section-header h2{font-weight:800;letter-spacing:-.2px}
.cal-day-date{font-weight:800}

/* ── Drag-and-drop для ship-cal ── */
.ship-cal-cell.drag-over{background:#eff6ff!important;outline:2px dashed #3b82f6;outline-offset:-2px}
.ship-chip[draggable]{cursor:grab}
.ship-chip[draggable]:active{cursor:grabbing;opacity:.7}

/* ── Зона «без даты» (parking zone) ── */
.park-zone{
  margin-top:14px;
  border:2px dashed #cbd5e1;
  border-radius:10px;
  padding:10px 12px 12px;
  background:#f8fafc;
  transition:background .15s,border-color .15s;
  min-height:54px;
}
.park-zone.drag-over{
  background:#fefce8!important;
  border-color:#f59e0b!important;
}
.park-zone-hdr{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  font-weight:700;
  color:#94a3b8;
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-bottom:8px;
  user-select:none;
}
.park-zone-ico{font-size:13px;line-height:1}
.park-zone-count{
  margin-left:auto;
  background:#e2e8f0;
  color:#475569;
  border-radius:10px;
  padding:1px 7px;
  font-size:10px;
  font-weight:700;
}
.park-zone-chips{display:flex;flex-wrap:wrap;gap:5px;min-height:22px;align-items:flex-start}
.park-zone-empty{font-size:11px;color:#cbd5e1;font-style:italic;align-self:center}
.park-zone .ship-chip{font-size:11px;padding:3px 8px;border-radius:5px}

/* ── Модальное окно переноса ОСТ ── */
.ost-transfer-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px;color:#1e40af}

/* Поиск артикула в модалке */
.art-search-wrap{position:relative}
.art-dropdown{position:absolute;top:100%;left:0;right:0;background:white;border:1px solid #dde1e7;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.1);max-height:200px;overflow-y:auto;z-index:200;display:none}
.art-dropdown.show{display:block}
.art-option{padding:8px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid #f0f4f8;display:flex;align-items:baseline;gap:8px}
.art-option:hover,.art-option.focused{background:#eff6ff}
.art-option .ao-art{font-size:12px;font-weight:700;color:#1e40af;font-family:monospace;min-width:90px;flex-shrink:0}
.art-option .ao-name{color:#374151;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Календарь отгрузок ── */
.ship-cal-nav{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.ship-cal-nav span{font-size:16px;font-weight:700;color:#1a3a5c;min-width:180px;text-align:center}
.ship-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:#e2e8f0;border-radius:8px;overflow:hidden}
.ship-cal-dow{background:#1a3a5c;color:white;text-align:center;font-size:11px;font-weight:700;padding:6px 2px;text-transform:uppercase}
.ship-cal-cell{background:white;min-height:76px;padding:4px 5px;display:flex;flex-direction:column;gap:2px}
.ship-cal-cell.other-month{background:#f8fafc}
.ship-cal-cell.today-cell{background:#eff6ff}
.ship-cal-cell.weekend{background:#fafafa}
.ship-cal-daynum{font-size:11px;font-weight:700;color:#94a3b8;margin-bottom:2px;line-height:1}
.ship-cal-daynum.cur{color:#1a3a5c}
.ship-cal-daynum.today-num{background:#1a3a5c;color:white;border-radius:50%;width:17px;height:17px;display:flex;align-items:center;justify-content:center;font-size:10px;padding:0}
.ship-chip{border-radius:4px;padding:2px 5px;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;display:block;line-height:1.4}
.ship-chip:hover{opacity:.82}

/* ── Импорт заказа ── */
.imp-drop-zone{border:2px dashed #93c5fd;border-radius:10px;padding:28px;text-align:center;background:#eff6ff;cursor:pointer;transition:.15s}
.imp-drop-zone:hover,.imp-drop-zone.dragover{background:#dbeafe;border-color:#3b82f6}
.imp-drop-zone p{font-size:13px;color:#1d4ed8;margin-bottom:8px}
.imp-preview-wrap{max-height:220px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}
.imp-preview-tbl{width:100%;border-collapse:collapse;font-size:12px}
.imp-preview-tbl th{background:#f8fafc;padding:5px 8px;font-size:10px;font-weight:700;text-transform:uppercase;color:#64748b;border-bottom:1px solid #e2e8f0;white-space:nowrap;position:sticky;top:0}
.imp-preview-tbl td{padding:4px 8px;border-bottom:1px solid #f0f4f8}
.imp-col-sel{padding:3px 6px;font-size:11px;border:1px solid #dde1e7;border-radius:4px;background:white;width:100%}
.imp-step{display:none}.imp-step.active{display:block}
.imp-steps-bar{display:flex;gap:2px;margin-bottom:18px;border-radius:8px;overflow:hidden}
.imp-step-dot{flex:1;text-align:center;padding:7px;font-size:11px;font-weight:700;background:#f1f5f9;color:#94a3b8}
.imp-step-dot.active{background:#1a3a5c;color:white}
.imp-step-dot.done{background:#22c55e;color:white}

/* ── Авторасписание ── */
.ad-result-box{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:12px 16px;margin-top:14px;font-size:13px;line-height:1.7}
.ad-result-box b{color:#166534}

/* ── Производственные группы ── */
.grp-badge{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;font-size:8px;font-weight:800;vertical-align:middle;margin-left:3px;flex-shrink:0;line-height:1;cursor:default}
.grp-1,.grp-4{background:#bfdbfe;color:#1e3a8a}
.grp-2,.grp-5{background:#fbcfe8;color:#831843}
.grp-3,.grp-6{background:#bbf7d0;color:#14532d}
.grp-7{background:#a7f3d0;color:#064e3b}
.grp-8{background:#fde68a;color:#78350f}
.grp-9{background:#e9d5ff;color:#581c87}
.grp-10{background:#fed7aa;color:#7c2d12}
.grp-11{background:#bae6fd;color:#0c4a6e}
/* Пастельный фон ячеек артикул+наименование по группе */
td.row-grp-1,td.row-grp-4{background:#eff6ff!important}
td.row-grp-2,td.row-grp-5{background:#fdf2f8!important}
td.row-grp-3,td.row-grp-6{background:#f0fdf4!important}
td.row-grp-7{background:#ecfdf5!important}
td.row-grp-8{background:#fffbeb!important}
td.row-grp-9{background:#faf5ff!important}
td.row-grp-10{background:#fff7ed!important}
td.row-grp-11{background:#f0f9ff!important}
tr.done-row td.row-grp-1,tr.done-row td.row-grp-2,tr.done-row td.row-grp-3,
tr.done-row td.row-grp-4,tr.done-row td.row-grp-5,tr.done-row td.row-grp-6,
tr.done-row td.row-grp-7,tr.done-row td.row-grp-8,tr.done-row td.row-grp-9,
tr.done-row td.row-grp-10,tr.done-row td.row-grp-11{filter:brightness(.97)}
.grp-import-btn{padding:4px 10px;font-size:12px;border:1px solid #dde1e7;background:white;border-radius:6px;color:#64748b;cursor:pointer}
.grp-import-btn:hover{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}



/* ══════════════════════════════════════════════════════════════════════
   REDESIGN 2.0 — 3D cards · shadows · animations
   ══════════════════════════════════════════════════════════════════════ */

@keyframes cardIn {
  from { opacity: 0; transform: translateY(28px) scale(.97); }
  to   { opacity: 1; transform: translateY(0)   scale(1);    }
}
@keyframes accentShimmer {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}
@keyframes numPop {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
@keyframes heroFadeIn {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Секция модулей ── */
.dash-modules {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}
@media(max-width:600px){ .dash-modules { grid-template-columns: 1fr; } }

/* ── Карточка модуля ── */
.dash-mod {
  background: #ffffff;
  border-radius: 18px;
  box-shadow:
    0 1px 2px rgba(0,0,0,.04),
    0 4px 12px rgba(0,0,0,.06),
    0 12px 32px rgba(0,0,0,.07);
  border: 1px solid rgba(0,0,0,.06);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: cardIn .45s cubic-bezier(.22,.68,0,1.2) both;
  transition:
    transform .25s cubic-bezier(.22,.68,0,1.2),
    box-shadow .25s ease;
  will-change: transform;
}

.dash-mod:nth-child(1)  { animation-delay: .04s; }
.dash-mod:nth-child(2)  { animation-delay: .08s; }
.dash-mod:nth-child(3)  { animation-delay: .12s; }
.dash-mod:nth-child(4)  { animation-delay: .16s; }
.dash-mod:nth-child(5)  { animation-delay: .20s; }
.dash-mod:nth-child(6)  { animation-delay: .24s; }
.dash-mod:nth-child(7)  { animation-delay: .28s; }
.dash-mod:nth-child(8)  { animation-delay: .32s; }
.dash-mod:nth-child(9)  { animation-delay: .36s; }
.dash-mod:nth-child(10) { animation-delay: .40s; }
.dash-mod:nth-child(11) { animation-delay: .44s; }
.dash-mod:nth-child(12) { animation-delay: .48s; }

.dash-mod:hover:not(.dash-disabled) {
  transform: translateY(-6px);
  box-shadow:
    0 2px 4px rgba(0,0,0,.04),
    0 8px 20px rgba(0,0,0,.10),
    0 20px 48px rgba(0,0,0,.14);
}
.dash-mod:active:not(.dash-disabled) {
  transform: translateY(-2px);
  transition-duration: .08s;
}

/* ── Цветная полоска-акцент ── */
.dash-mod-accent {
  height: 6px;
  width: 100%;
  background-size: 200% auto;
  animation: accentShimmer 3s linear infinite;
  flex-shrink: 0;
}

/* ── Иконка модуля ── */
.dash-mod-icon {
  font-size: 30px;
  line-height: 1;
  margin-bottom: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.dash-mod:hover .dash-mod-icon {
  transform: scale(1.12) rotate(-4deg);
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
}

/* ── Заголовок и описание ── */
.dash-mod-title {
  font-size: 15px;
  font-weight: 800;
  color: #0f1e36;
  margin-bottom: 4px;
  letter-spacing: -.3px;
}
.dash-mod-desc {
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.55;
  margin-bottom: 16px;
}

/* ── Цифры статистики ── */
.dash-stat-num {
  font-size: 30px;
  font-weight: 900;
  color: #0f1e36;
  min-width: 44px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.dash-mod:hover .dash-stat-num {
  animation: numPop .3s ease;
}

/* ── Футер карточки ── */
.dash-mod-footer {
  margin-top: auto;
  padding: 12px 20px;
  border-top: 1px solid #f1f5f9;
  display: flex;
  justify-content: flex-end;
  background: linear-gradient(to bottom, #ffffff, #f8fafc);
}

/* ── Кнопка «Открыть» ── */
.dash-open-btn {
  padding: 8px 20px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: .3px;
  transition: all .2s ease;
}
.dash-open-btn:hover { transform: translateY(-1px); filter: brightness(1.1); }
.dash-open-btn.blue  {
  background: linear-gradient(135deg,#1a3a5c,#1e4976);
  color: white;
  box-shadow: 0 3px 10px rgba(26,58,92,.35);
}
.dash-open-btn.green {
  background: linear-gradient(135deg,#16a34a,#15803d);
  color: white;
  box-shadow: 0 3px 10px rgba(22,163,74,.35);
}
.dash-open-btn.grey  { background: #e2e8f0; color: #94a3b8; cursor: default; }
.dash-open-btn.grey:hover { transform: none; filter: none; }

/* ── Дашборд-герой ── */
.dash-hero {
  background: linear-gradient(135deg, #0c1e38 0%, #0f2744 40%, #1a3a5c 70%, #1e4976 100%);
  color: white;
  padding: 32px 36px 36px;
  position: relative;
  overflow: hidden;
  margin-bottom: 0;
  animation: heroFadeIn .4s ease both;
}
.dash-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 50%, rgba(59,130,246,.12) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(99,102,241,.10) 0%, transparent 40%),
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 32px 32px, 32px 32px;
  pointer-events: none;
}
.dash-hero h2 {
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.5px;
  margin-bottom: 4px;
}

/* ── KPI-блоки в герое ── */
.dash-hero-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 20px;
}
.dash-hkpi {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  padding: 16px 20px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background .2s, transform .2s, box-shadow .2s;
  animation: cardIn .45s cubic-bezier(.22,.68,0,1.2) both;
}
.dash-hkpi:hover {
  background: rgba(255,255,255,.14);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.dash-hkpi-num {
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 5px;
  font-variant-numeric: tabular-nums;
}
.dash-hkpi-lbl {
  font-size: 12px;
  opacity: .65;
  text-transform: uppercase;
  letter-spacing: .6px;
  line-height: 1.4;
}

/* ── Тело дашборда ── */
.dash-body {
  padding: 24px 28px 0;
  background: #eef1f5;
}

/* ── Панель «на этой неделе» ── */
.dash-week-panel {
  background: white;
  border-radius: 16px;
  padding: 22px 26px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.05);
  border: 1px solid rgba(0,0,0,.05);
  margin-bottom: 24px;
}

/* ── Disabled карточка ── */
.dash-disabled {
  cursor: default;
  opacity: .55;
  filter: grayscale(.3);
}
.dash-disabled .dash-mod-icon { filter: grayscale(.4); }

/* ── stat-sub теги ── */
.dash-stat-sub span {
  font-size: 11px;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: #f1f5f9;
  border-radius: 6px;
  padding: 3px 8px;
  font-weight: 500;
  transition: background .15s;
}
.dash-mod:hover .dash-stat-sub span { background: #e8f0fe; }


/* ══════════════════════════════════════════════════════════════════════
   SHELL LAYOUT — Sidebar + Main area (Фаза 1)
   ══════════════════════════════════════════════════════════════════════ */

:root {
  --sb-w: 224px;
  --sb-w-collapsed: 62px;
  --sb-bg: #0f2744;
  --sb-bg2: #1a3a5c;
  --sb-accent: #3b82f6;
  --topbar-h: 52px;
}

/* ── Body reset ── */
body {
  margin: 0;
  height: 100vh;
  overflow: hidden;
  background: #eef1f5;
}

/* ── ERP shell ── */
.erp-shell {
  display: flex;
  height: 100vh;
  overflow: hidden;
}

/* ════════════ SIDEBAR ════════════ */
.sidebar {
  width: var(--sb-w);
  background: var(--sb-bg);
  color: #e2e8f0;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  overflow-y: auto;
  overflow-x: hidden;
  transition: width .25s cubic-bezier(.4,0,.2,1);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.1) transparent;
  position: relative;
  z-index: 200;
  box-shadow: 2px 0 12px rgba(0,0,0,.18);
}
.sidebar.collapsed { width: var(--sb-w-collapsed); }

/* Logo area */
.sb-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 14px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
  overflow: hidden;
  min-height: 64px;
}
.sb-logo img {
  height: 36px;
  width: 36px;
  object-fit: contain;
  flex-shrink: 0;
  filter: brightness(1.1);
}

.sb-logo img.sb-brand-img {
  width: auto;
  height: 26px;
  max-width: 150px;
  filter: none;
}
.sidebar.collapsed .sb-brand-img { height: 24px; }
.sb-logo-text {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: opacity .2s;
}
.sb-logo-name {
  font-size: 14px;
  font-weight: 800;
  color: white;
  white-space: nowrap;
  letter-spacing: -.2px;
}
.sb-logo-sub {
  font-size: 10px;
  color: rgba(255,255,255,.45);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-top: 1px;
}
.sidebar.collapsed .sb-logo-text { opacity: 0; pointer-events: none; }

/* Nav groups */
.sb-nav { flex: 1; padding: 10px 0; overflow-y: auto; overflow-x: hidden; }
.sb-group-label {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.28);
  padding: 12px 16px 4px;
  white-space: nowrap;
  overflow: hidden;
  transition: opacity .2s;
}
.sidebar.collapsed .sb-group-label { opacity: 0; height: 0; padding: 0; margin: 0; }

/* Nav items */
.sb-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  cursor: pointer;
  border-radius: 8px;
  margin: 1px 8px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,.72);
  transition: background .15s, color .15s, padding .2s;
  white-space: nowrap;
  overflow: hidden;
  position: relative;
  text-decoration: none;
}
.sb-item:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}
.sb-item.active {
  background: rgba(59,130,246,.22);
  color: #fff;
  font-weight: 700;
}
.sb-item.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 60%;
  background: var(--sb-accent);
  border-radius: 0 3px 3px 0;
}
.sb-icon {
  font-size: 18px;
  flex-shrink: 0;
  width: 22px;
  text-align: center;
  line-height: 1;
}
.sb-label {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity .2s, max-width .2s;
}
.sidebar.collapsed .sb-label { opacity: 0; max-width: 0; }
.sidebar.collapsed .sb-item { padding: 9px 0; justify-content: center; margin: 1px 6px; }
.sidebar.collapsed .sb-item::before { display: none; }

/* Admin-only item */
.sb-admin-only { display: none !important; }
.role-admin .sb-admin-only { display: flex !important; }
.role-admin .sb-admin-group { display: block !important; }
.sb-admin-group { display: none !important; }

/* Admin item special color */
.sb-item.admin-item { color: rgba(251,191,36,.8); }
.sb-item.admin-item:hover { background: rgba(251,191,36,.12); color: #fbbf24; }
.sb-item.admin-item.active { background: rgba(251,191,36,.18); color: #fbbf24; }

/* Separator */
.sb-separator {
  height: 1px;
  background: rgba(255,255,255,.07);
  margin: 8px 14px;
}

/* Footer with user info */
.sb-footer {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 12px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sb-user {
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}
.sb-avatar {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--sb-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: white;
  flex-shrink: 0;
}
.sb-user-info {
  flex: 1;
  overflow: hidden;
  transition: opacity .2s;
}
.sb-username {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-role-badge {
  font-size: 10px;
  color: rgba(255,255,255,.45);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.sidebar.collapsed .sb-user-info { opacity: 0; max-width: 0; }
.sb-logout-btn {
  width: 100%;
  padding: 6px;
  background: rgba(239,68,68,.15);
  border: 1px solid rgba(239,68,68,.25);
  border-radius: 7px;
  color: rgba(248,113,113,.9);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
  white-space: nowrap;
  overflow: hidden;
}
.sb-logout-btn:hover { background: rgba(239,68,68,.28); color: #fca5a5; }
.sidebar.collapsed .sb-logout-btn { padding: 6px 0; font-size: 16px; }

/* ════════════ MAIN AREA ════════════ */
.main-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  position: relative; /* нужно чтобы lock-overlay не закрывал сайдбар */
}

/* Topbar */
.topbar {
  height: var(--topbar-h);
  background: white;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 20px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  z-index: 100;
}
.topbar-toggle {
  width: 36px;
  height: 36px;
  border: none;
  background: #f1f5f9;
  border-radius: 8px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .15s;
  color: #475569;
}
.topbar-toggle:hover { background: #e2e8f0; }
.topbar-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a3a5c;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.topbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.topbar-undo-btn {
  padding: 6px 14px;
  border: 1px solid #e2e8f0;
  background: white;
  border-radius: 7px;
  font-size: 12px;
  cursor: pointer;
  color: #64748b;
  font-family: inherit;
  font-weight: 600;
  transition: background .15s;
}
.topbar-undo-btn:hover:not(:disabled) { background: #f1f5f9; }
.topbar-undo-btn:disabled { opacity: .4; cursor: default; }

/* Notif bell in topbar */
.topbar-bell {
  width: 36px;
  height: 36px;
  border: none;
  background: #f1f5f9;
  border-radius: 8px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: #475569;
  transition: background .15s;
}
.topbar-bell:hover { background: #e2e8f0; }
.topbar-bell-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 16px;
  height: 16px;
  background: #ef4444;
  border-radius: 50%;
  font-size: 9px;
  font-weight: 800;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  display: none;
}

/* Tab pages wrap */
.tab-pages-wrap {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
}
.tab-pages-wrap .tab-page { display: none; }
.tab-pages-wrap .tab-page.active { display: block; }

/* Iframe module pages */
.iframe-tab {
  display: none;
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.iframe-tab.active { display: flex; flex-direction: column; }
.module-iframe {
  flex: 1;
  border: none;
  width: 100%;
  height: 100%;
}

/* Старый header и nav — скрыть (если вдруг остались) */
.header { display: none !important; }
.nav    { display: none !important; }

/* ── Адаптив (мобилка) ── */
@media(max-width:768px) {
  .sidebar { position: absolute; top: 0; left: 0; bottom: 0; z-index: 500; transform: translateX(0); }
  .sidebar.mobile-hidden { transform: translateX(-100%); }
  .main-area { width: 100%; }
}


/* ════════════════════════════════════════════════════════
   SKU — Справочник SKU (современные компоненты)
   ════════════════════════════════════════════════════════ */

/* Шапка раздела */
.sku-header {
  padding: 18px 24px 0;
}
.sku-title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}
.sku-main-title {
  font-size: 20px;
  font-weight: 800;
  color: #1a3a5c;
  letter-spacing: -.3px;
}
.sku-count-pill {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 10px;
}

/* Статистическая полоса */
.sku-stats-strip {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 2px;
}
.sku-stat-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #475569;
  cursor: default;
  transition: all .15s;
}
.sku-chip-btn { cursor: pointer; }
.sku-chip-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.sku-stat-chip.accent { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.sku-stat-chip.green  { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.sku-stat-chip.purple { background: #faf5ff; border-color: #e9d5ff; color: #7e22ce; }
.sku-stat-chip b { font-size: 14px; font-weight: 800; }

/* Тулбар */
.sku-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 24px;
  background: white;
  border-bottom: 1px solid #e2e8f0;
  position: sticky;
  top: 0;
  z-index: 10;
}
.sku-search-wrap {
  flex: 1;
  min-width: 180px;
  position: relative;
}
.sku-search-wrap::before {
  content: '🔍';
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  pointer-events: none;
}
.sku-search-wrap input {
  width: 100%;
  padding: 8px 12px 8px 32px;
  border: 1px solid #dde1e7;
  border-radius: 8px;
  font-size: 13px;
  outline: none;
  font-family: inherit;
  background: #f8fafc;
  transition: border-color .15s, background .15s;
}
.sku-search-wrap input:focus {
  border-color: #3b82f6;
  background: white;
  box-shadow: 0 0 0 3px rgba(59,130,246,.1);
}
.sku-select {
  padding: 8px 10px;
  border: 1px solid #dde1e7;
  border-radius: 8px;
  font-size: 13px;
  background: white;
  cursor: pointer;
  outline: none;
  font-family: inherit;
  color: #374151;
  transition: border-color .15s;
}
.sku-select:focus { border-color: #3b82f6; }
.sku-btn-sep {
  width: 1px;
  height: 24px;
  background: #e2e8f0;
  flex-shrink: 0;
}
.sku-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  font-family: inherit;
  transition: all .15s;
}
.sku-btn-primary  { background: #1a3a5c; color: white; }
.sku-btn-primary:hover  { background: #16324f; box-shadow: 0 2px 8px rgba(26,58,92,.35); }
.sku-btn-success  { background: #16a34a; color: white; }
.sku-btn-success:hover  { background: #15803d; box-shadow: 0 2px 8px rgba(22,163,74,.35); }
.sku-btn-ghost    { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }
.sku-btn-ghost:hover    { background: #e2e8f0; }

/* Секция с таблицей */
.sku-section {
  padding: 0 24px 24px;
  padding-top: 16px;
}
.sku-table-wrap {
  background: white;
  border-radius: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,.08);
  overflow: auto;
  border: 1px solid #e2e8f0;
}
.sku-table {
  width: 100%;
  border-collapse: collapse;
}
.sku-table th {
  background: #f8fafc;
  padding: 10px 12px;
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: #64748b;
  border-bottom: 2px solid #e2e8f0;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  position: sticky;
  top: 0;
}
.sku-table th:hover { background: #f1f5f9; }
.sku-table th.sku-num-hdr { text-align: right; }
.sku-table td { padding: 9px 12px; font-size: 13px; border-bottom: 1px solid #f0f4f8; vertical-align: middle; }
.sku-table td.num, .sku-table td.ctr { text-align: right; }
.sku-table tr:hover td { background: #f8fafc; }
