:root {
  --bg: #f4f6f8;
  --card: #ffffff;
  --text: #111827;
  --muted: #667085;
  --line: #e5e7eb;
  --red: #e30613;
  --red-dark: #b9040f;
  --green: #087443;
  --amber: #a15c00;
  --danger: #b42318;
  --shadow: 0 8px 30px rgba(16, 24, 40, .07);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Arial, sans-serif; color: var(--text); background: var(--bg); }
.topbar { min-height: 76px; background: #111827; color: white; display: flex; align-items: center; justify-content: space-between; padding: 14px max(22px, calc((100vw - 1320px)/2)); gap: 20px; }
.brand { display: flex; align-items: center; gap: 14px; }
.sig-mark { width: 56px; height: 42px; background: var(--red); display: grid; place-items: center; font-weight: 900; letter-spacing: -.8px; font-size: 22px; border-radius: 6px; }
.brand-title { font-weight: 800; font-size: 18px; }
.brand-sub { color: #b9c0ca; font-size: 12px; margin-top: 2px; }
.container { width: min(1320px, calc(100% - 28px)); margin: 24px auto 56px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 22px; box-shadow: var(--shadow); margin-bottom: 18px; }
.hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 28px; }
h1, h2 { margin: 0; } h1 { font-size: clamp(25px, 4vw, 42px); letter-spacing: -1.4px; line-height: 1.05; max-width: 850px; } h2 { font-size: 20px; margin-bottom: 16px; }
.hero p { color: var(--muted); max-width: 850px; font-size: 16px; line-height: 1.55; }
.eyebrow { color: var(--red); font-size: 11px; font-weight: 900; letter-spacing: 1.3px; margin-bottom: 8px; }
.quality-box { min-width: 280px; max-width: 370px; background: #fff7ed; border: 1px solid #fed7aa; padding: 16px; border-radius: 10px; color: #7c2d12; display: grid; gap: 5px; font-size: 13px; line-height: 1.45; }
.grid { display: grid; gap: 18px; }.grid.two { grid-template-columns: 1fr 1fr; }.grid.compact { gap: 12px; }
.drop-zone { border: 2px dashed #cdd5df; background: #fafafa; border-radius: 12px; min-height: 220px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; cursor: pointer; text-align: center; padding: 24px; transition: .16s ease; }
.drop-zone:hover, .drop-zone.drag { border-color: var(--red); background: #fff8f8; }
.drop-icon { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #fee2e2; color: var(--red); font-size: 26px; font-weight: 900; margin-bottom: 6px; }
.drop-zone span, .drop-zone small { color: var(--muted); }.drop-zone small { margin-top: 8px; }
.file-summary { display: flex; justify-content: space-between; color: var(--muted); font-size: 13px; margin-top: 12px; }
.file-list { max-height: 140px; overflow: auto; margin-top: 10px; font-size: 12px; color: var(--muted); }
.file-item { border-top: 1px solid var(--line); padding: 7px 0; display:flex; justify-content:space-between; gap:10px; }
.field { display: grid; gap: 6px; margin-bottom: 14px; }.field > span { font-size: 13px; font-weight: 700; }.field small { color: var(--muted); }
input, select { width: 100%; border: 1px solid #cdd5df; border-radius: 8px; padding: 11px 12px; background: white; color: var(--text); outline: none; font-size: 14px; }
input:focus, select:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(227,6,19,.08); }
button { border: 0; border-radius: 8px; padding: 11px 16px; font-weight: 800; cursor: pointer; font-size: 14px; } button:disabled { opacity: .45; cursor: not-allowed; }
.primary { width: 100%; background: var(--red); color: white; }.primary:hover:not(:disabled) { background: var(--red-dark); }
.secondary { background: #111827; color: white; }.danger.ghost { background: #fff; border: 1px solid #f0c3c0; color: var(--danger); }
.badge { border-radius: 999px; padding: 7px 10px; font-size: 11px; font-weight: 800; white-space: nowrap; }.badge.ok { background: #d1fadf; color: #05603a; }.badge.error { background: #fee4e2; color: #b42318; }.badge.neutral { background: #344054; color: #eaecf0; }
.hidden { display: none !important; }
.job-header, .section-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }.job-actions { display: flex; gap: 8px; }
.mono { font: 12px ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--muted); }
.progress-wrap { margin: 20px 0 16px; }.progress-track { height: 12px; background: #eaecf0; border-radius: 999px; overflow: hidden; }.progress-bar { width: 0%; height: 100%; background: var(--red); transition: width .3s ease; }.progress-line { display:flex; justify-content:space-between; gap: 12px; color: var(--muted); font-size:12px; margin-top:7px; }
.kpi-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }.kpi { border: 1px solid var(--line); border-radius: 10px; padding: 12px; display:grid; gap:5px; }.kpi span { font-size: 11px; color: var(--muted); text-transform: uppercase; font-weight: 800; }.kpi strong { font-size:20px; }.kpi.warn { background: #fffaeb; border-color:#fedf89; }
.status-message { margin-top: 14px; padding: 11px 13px; background: #f8fafc; border-radius: 8px; color: #475467; font-size: 13px; }
.table-wrap { overflow:auto; }table { width:100%; border-collapse:collapse; font-size:12px; }th,td { border-bottom:1px solid var(--line); padding:10px 9px; text-align:left; vertical-align:top; white-space:nowrap; }th { background:#f8fafc; position:sticky; top:0; z-index:1; }td.product { white-space:normal; min-width:210px; }.status-dot { display:inline-flex; align-items:center; gap:5px; font-weight:800; }.dot { width:8px; height:8px; border-radius:50%; background:#98a2b3; }.dot.ok { background:#12b76a; }.dot.error { background:#f04438; }.review-chip { padding:4px 7px; border-radius:999px; background:#fef0c7; color:#93370d; font-weight:800; }.ok-chip { padding:4px 7px; border-radius:999px; background:#d1fadf; color:#05603a; font-weight:800; }
.info-card p { color:var(--muted); line-height:1.5; }pre { overflow:auto; background:#101828; color:#e4e7ec; padding:16px; border-radius:10px; font-size:12px; }.muted { color:var(--muted); font-size:12px; }
.toast { position:fixed; right:18px; bottom:18px; max-width:420px; background:#111827; color:white; padding:13px 15px; border-radius:9px; box-shadow:var(--shadow); z-index:50; font-size:13px; }
@media(max-width: 900px) { .grid.two { grid-template-columns:1fr; }.hero { flex-direction:column; align-items:flex-start; }.quality-box { min-width:0; max-width:none; width:100%; }.kpi-grid { grid-template-columns:repeat(2,1fr); }.topbar { align-items:flex-start; }.brand-sub { display:none; } }
@media(max-width: 520px) { .container { width:min(100% - 18px,1320px); margin-top:12px; }.card { padding:16px; border-radius:11px; }.hero { padding:18px; }.job-header,.section-title-row { flex-direction:column; }.job-actions { width:100%; }.job-actions button { flex:1; }.kpi-grid { grid-template-columns:1fr 1fr; } }
