:root { --ink:#122c3f; --muted:#647783; --blue:#146b8c; --cyan:#1ca6a8; --paper:#f3f6f4; --white:#fff; --line:#d8e1df; --danger:#a73535; --warn:#8b6414; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, sans-serif; }
.site-header { height:68px; padding:0 max(24px,calc((100vw - 1160px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(255,255,255,.9); }
.brand { color:var(--ink); font-weight:850; letter-spacing:.08em; text-decoration:none; }
.brand span { color:var(--muted); font-weight:550; letter-spacing:0; margin-left:8px; }
main { width:min(1160px,calc(100% - 40px)); margin:0 auto; padding:54px 0 70px; }
footer { padding:28px; text-align:center; color:var(--muted); border-top:1px solid var(--line); }
h1,h2,p { margin-top:0; } h1 { font-size:clamp(34px,5vw,62px); line-height:1.02; letter-spacing:-.045em; max-width:800px; } h2 { letter-spacing:-.02em; }
.eyebrow { color:var(--cyan); font-size:12px; font-weight:800; letter-spacing:.18em; }
.hero { padding:10px 0 38px; } .hero>p:last-child { color:var(--muted); font-size:18px; max-width:720px; }
.card { background:var(--white); border:1px solid var(--line); border-radius:18px; box-shadow:0 10px 35px rgba(18,44,63,.06); }
.upload-card { padding:28px; display:grid; grid-template-columns:1fr 1.4fr; gap:34px; align-items:start; }
.upload-card p,.login-copy p { color:var(--muted); }
.drop-zone { padding:25px; border:1.5px dashed #91aaa9; border-radius:12px; background:#f8fbfa; display:flex; flex-direction:column; cursor:pointer; margin-bottom:16px; }
.drop-title { font-weight:750; font-size:17px; }.drop-zone span:last-of-type { color:var(--muted); margin:3px 0 14px; }.drop-zone input { width:100%; }
button,.primary,.secondary { border:0; border-radius:9px; padding:11px 17px; font:inherit; font-weight:750; cursor:pointer; text-decoration:none; display:inline-block; }
.primary { color:white; background:var(--blue); }.secondary { color:var(--blue); background:#e6f2f3; }.text-button { padding:8px; color:var(--muted); background:none; }
.recent { margin-top:45px; }.section-heading,.title-line { display:flex; align-items:center; justify-content:space-between; gap:20px; }.section-heading span,.muted,.empty { color:var(--muted); }
.batch-list { border-top:1px solid var(--line); }.batch-row { color:inherit; text-decoration:none; display:grid; grid-template-columns:120px 180px 1fr auto; gap:15px; align-items:center; padding:16px 5px; border-bottom:1px solid var(--line); }.batch-row:hover { background:#eaf1ef; }
.mono { font-family:ui-monospace,SFMono-Regular,monospace; }.status { padding:4px 9px; border-radius:99px; background:#e6eceb; color:#536765; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }.status.completed { color:#176347; background:#dbf2e7; }.status.failed,.status.completed_with_errors { color:var(--danger); background:#fae5e3; }.status.processing { color:#235c91; background:#e0eef9; }
.login-shell { min-height:65vh; display:grid; grid-template-columns:1.25fr .75fr; align-items:center; gap:70px; }.login-copy p:last-child { font-size:19px; max-width:620px; }.login-card { padding:30px; }.login-card label { display:block; font-weight:700; margin:18px 0; }.login-card input { width:100%; display:block; margin-top:6px; padding:11px; border:1px solid #aec0c0; border-radius:8px; font:inherit; }
.alert { padding:10px 13px; border-radius:8px; }.alert.error { color:var(--danger); background:#fae7e5; }.alert.warning { color:var(--warn); background:#fff2d7; }
.batch-head h1 { font-size:46px; margin-bottom:15px; }.back { color:var(--blue); text-decoration:none; display:inline-block; margin-bottom:35px; }.progress-track { height:9px; overflow:hidden; background:#dce5e3; border-radius:99px; }.progress-track div { height:100%; background:linear-gradient(90deg,var(--blue),var(--cyan)); transition:width .3s; }.batch-head>p:last-child { color:var(--muted); margin-top:9px; }.validation { margin:28px 0; padding:22px; }.actions { display:flex; gap:10px; margin:28px 0 16px; }
.results-wrap { overflow:auto; border:1px solid var(--line); border-radius:14px; background:white; } table { width:100%; border-collapse:collapse; } th,td { padding:14px; text-align:left; border-bottom:1px solid #e4eae8; white-space:nowrap; } th { color:var(--muted); font-size:12px; letter-spacing:.05em; text-transform:uppercase; background:#f8faf9; }
@media (max-width:760px) { .site-header { padding:0 16px; } main { width:calc(100% - 24px); padding:30px 0 50px; } h1 { font-size:clamp(32px,11vw,46px); } .hero { padding-bottom:26px; } .upload-card,.login-shell { grid-template-columns:1fr; gap:25px; }.upload-card,.login-card { padding:22px; }.batch-row { grid-template-columns:minmax(0,1fr) auto; }.batch-row time { display:none; }.batch-row .mono { overflow:hidden; text-overflow:ellipsis; }.brand span { display:none; }.actions { flex-wrap:wrap; } th,td { padding:11px; } }
