/* ===== Мастер импорта из Excel ===== */
.imp-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(6,9,13,.5);backdrop-filter:blur(4px);animation:fade .18s ease}
.imp-overlay.hidden{display:none}
.imp-card{width:min(680px,100%);max-height:90vh;display:flex;flex-direction:column;background:var(--panel);
  border:1px solid var(--line2);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;animation:pop .2s ease}
@keyframes pop{from{transform:translateY(12px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.imp-head{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;border-bottom:1px solid var(--line)}
.imp-head h2{margin:0;font-size:20px;letter-spacing:-.01em;color:var(--ink)}
.imp-head p{margin:5px 0 0;font-size:13px;color:var(--muted);line-height:1.45;max-width:52ch}
.imp-x{margin-left:auto;flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);
  color:var(--muted);font-size:20px;cursor:pointer;transition:.15s}
.imp-x:hover{color:var(--ink);border-color:var(--muted2)}
.imp-body{padding:22px;overflow-y:auto}
.imp-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 22px;border-top:1px solid var(--line);background:var(--panel2)}
.imp-foot .btn-block{flex:1}

.imp-drop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:44px 22px;text-align:center;cursor:pointer;
  border:2px dashed var(--line2);border-radius:16px;background:var(--panel2);transition:.15s}
.imp-drop:hover,.imp-drop.over{border-color:var(--accent);background:var(--glow1)}
.imp-drop-ic{font-size:40px;line-height:1}
.imp-drop-t{font-weight:650;color:var(--ink);font-size:15px}
.imp-drop-s{font-size:12.5px;color:var(--muted);max-width:40ch}

.imp-chips{display:flex;flex-wrap:wrap;gap:8px}
.imp-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:11px;background:var(--panel2);
  border:1px solid var(--line2);color:var(--ink2);font-weight:600;font-size:13.5px;cursor:pointer;transition:.15s}
.imp-chip:hover{border-color:var(--accent)}
.imp-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.imp-chip span{font-size:11px;opacity:.7;font-variant-numeric:tabular-nums}
.imp-hint{margin-top:14px;font-size:12.5px;color:var(--muted);line-height:1.5}
.imp-hint.err-hint{color:var(--red)}

.imp-map{display:flex;flex-direction:column;gap:8px}
.imp-map-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.imp-map-src{min-width:0;padding:9px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}
.imp-map-src b{display:block;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-map-src span{display:block;font-size:11.5px;color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-map-arrow{color:var(--muted2);font-size:14px}
.imp-map-sel{padding:10px 11px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:13.5px;min-width:0}
.imp-map-sel:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.14)}

.imp-tbl-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.imp-tbl{width:100%;border-collapse:collapse;font-size:12.5px;white-space:nowrap}
.imp-tbl th{text-align:left;padding:9px 12px;background:var(--panel2);color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);position:sticky;top:0}
.imp-tbl td{padding:8px 12px;border-bottom:1px solid var(--line);color:var(--ink2)}
.imp-tbl tr:last-child td{border-bottom:none}

.imp-results{display:flex;flex-wrap:wrap;gap:14px}
.imp-res{flex:1;min-width:110px;display:flex;flex-direction:column;gap:2px;align-items:center;padding:18px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:14px}
.imp-res-n{font-size:30px;font-weight:750;color:var(--ink);letter-spacing:-.02em}
.imp-res-n.ok{color:var(--green)}.imp-res-n.err{color:var(--red)}.imp-res-n.muted{color:var(--muted2)}
.imp-res span:last-child{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.imp-large{display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel2)}
.imp-large b{font-size:15px;color:var(--ink)}.imp-large p{max-width:48ch;margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}
.imp-large-bar{width:min(420px,100%);height:9px;overflow:hidden;border-radius:99px;background:var(--line)}.imp-large-bar i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#22c8e5);transition:width .2s}
.imp-large-spin{display:grid;width:54px;height:54px;place-items:center;border-radius:16px;background:var(--glow1);color:var(--accent)}.imp-large-spin svg{animation:impSpin 1.2s linear infinite}@keyframes impSpin{to{transform:rotate(360deg)}}

/* ===== Вкладка Отчёты ===== */
.rep-wrap.hidden{display:none}
.rep-loading,.rep-empty{padding:30px 6px;color:var(--muted);font-size:14px}
.rep-empty{padding:20px 6px}
.rep-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.rep-title{font-size:15px;font-weight:650;color:var(--ink)}
.rep-bar .spacer{flex:1}

.rep-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.rep-tile{padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 14px rgba(20,32,60,.05)}
.rep-tile.ok{border-color:rgba(22,163,74,.28)}
.rep-tile.warn{border-color:rgba(217,119,6,.32)}
.rep-tile-n{font-size:23px;font-weight:750;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.rep-tile.warn .rep-tile-n{color:var(--amber)}
.rep-tile.ok .rep-tile-n{color:var(--green)}
.rep-tile-l{margin-top:3px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}

.rep-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:14px}
.rep-card{padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.rep-card h3{margin:0 0 16px;font-size:13.5px;color:var(--ink2);font-weight:650}

.rep-chart{display:flex;align-items:flex-end;gap:8px;height:150px}
.rep-bar-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}
.rep-bar-fill{width:100%;max-width:34px;background:linear-gradient(180deg,var(--accent),var(--accent-d));border-radius:6px 6px 0 0;transition:height .3s}
.rep-bar-x{font-size:10px;color:var(--muted2);white-space:nowrap}

.rep-status{display:flex;flex-direction:column;gap:11px}
.rep-status-row{display:grid;grid-template-columns:120px 1fr 28px;align-items:center;gap:10px}
.rep-status-l{font-size:12.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-status-track{height:8px;background:var(--panel2);border-radius:6px;overflow:hidden}
.rep-status-bar{height:100%;background:var(--accent);border-radius:6px}
.rep-status-n{font-size:12.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}

.rep-tbl-scroll{overflow-x:auto}
.rep-tbl{width:100%;border-collapse:collapse;font-size:13px}
.rep-tbl th{text-align:left;padding:9px 12px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}
.rep-tbl td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink2)}
.rep-tbl .rep-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rep-tbl .rep-rank{color:var(--muted2);width:28px}
.rep-tbl .rep-owed{color:var(--amber);font-weight:600}

@media(max-width:720px){
  .rep-cols{grid-template-columns:1fr}
  .imp-map-row{grid-template-columns:1fr auto 1fr}
  .rep-status-row{grid-template-columns:96px 1fr 26px}
}

/* ===== Справочник складов в Китае ===== */
.wh-subtitle{margin:4px 0 0;color:var(--muted);font-size:12.5px;font-weight:400}
.warehouse-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.warehouse-card{overflow:hidden;border:1px solid var(--line2);border-radius:16px;background:var(--panel)}
.warehouse-head{display:flex;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--panel2)}
.warehouse-head>div{display:flex;min-width:0;flex:1;flex-direction:column}.warehouse-head b{overflow:hidden;color:var(--ink);font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}.warehouse-head small{color:var(--muted);font-size:11.5px}
.warehouse-number{display:grid;width:28px;height:28px;flex:none;place-items:center;border-radius:9px;background:var(--accent);color:#fff;font-size:12px;font-weight:750}
.warehouse-default{display:flex;align-items:center;gap:5px;color:var(--ink2);font-size:12px;white-space:nowrap;cursor:pointer}.warehouse-default input{accent-color:var(--accent)}
.warehouse-remove{width:28px;height:28px;padding:0;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--muted);font-size:19px;line-height:1;cursor:pointer}.warehouse-remove:hover{border-color:var(--red);color:var(--red)}
.warehouse-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:14px}.warehouse-grid .field{margin-bottom:12px}.warehouse-wide{grid-column:1/-1}
.warehouse-add{width:100%;margin:0 0 12px;padding:12px;border:1px dashed var(--accent);border-radius:12px;background:var(--glow1);color:var(--accent);font-weight:700;cursor:pointer}.warehouse-add:hover{background:rgba(22,135,255,.12)}
.warehouse-help{margin:14px 0 0;color:var(--muted);font-size:12.5px;line-height:1.6}
.warehouse-empty{display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed var(--line2);border-radius:16px;background:var(--panel2);color:var(--muted)}.warehouse-empty .ic{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:var(--glow1);color:var(--accent)}.warehouse-empty b{margin-top:4px;color:var(--ink);font-size:14px}.warehouse-empty small{font-size:12px}
@media(max-width:560px){.warehouse-grid{grid-template-columns:1fr}.warehouse-wide{grid-column:auto}.warehouse-default{font-size:0}.warehouse-default input{width:18px;height:18px}}
