:root { color-scheme: dark; --bg:#07110d; --panel:#0d1c16; --panel2:#11271e; --line:#254637; --text:#f0f7f3; --muted:#9ab3a7; --lime:#98f5b4; --gold:#f5d98d; --danger:#ff9a9a; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:radial-gradient(circle at 20% -10%,#1a3c2b 0,transparent 34%),var(--bg); color:var(--text); font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,input,textarea,select { font:inherit; }
.shell { width:min(1120px,calc(100% - 32px)); margin:0 auto; padding:48px 0 80px; }
header,.section-title { display:flex; justify-content:space-between; gap:24px; align-items:center; }
h1 { margin:0; font-size:clamp(44px,7vw,80px); letter-spacing:-.065em; line-height:.95; }
h2 { margin:0; font-size:30px; letter-spacing:-.035em; }
h3 { margin-top:28px; }
.eyebrow { margin:0 0 8px; color:var(--lime); font-size:12px; font-weight:800; letter-spacing:.18em; }
.subtitle { color:var(--muted); font-size:19px; }
.status-pill { border:1px solid var(--line); border-radius:999px; padding:9px 14px; color:var(--muted); background:#09150fbb; }
.panel { background:linear-gradient(145deg,#10231b,#0a1712); border:1px solid var(--line); border-radius:24px; box-shadow:0 24px 80px #0007; }
.upload-panel { margin-top:40px; padding:24px; }
.dropzone { min-height:310px; border:2px dashed #3f765b; border-radius:18px; display:grid; place-items:center; align-content:center; text-align:center; padding:28px; transition:.2s ease; outline:none; }
.dropzone.active,.dropzone:focus-visible { background:#173426; border-color:var(--lime); transform:translateY(-2px); }
.dropzone p { max-width:620px; color:var(--muted); }
.drop-icon { width:72px; height:72px; display:grid; place-items:center; border-radius:20px; background:var(--lime); color:#07110d; font-size:42px; font-weight:900; margin-bottom:18px; }
button,.button-link { appearance:none; border:0; border-radius:12px; background:var(--lime); color:#07110d; padding:12px 18px; font-weight:800; cursor:pointer; text-decoration:none; }
button.secondary { background:transparent; color:var(--text); border:1px solid var(--line); }
.fields { display:grid; grid-template-columns:2fr 1fr; gap:18px; margin-top:22px; }
label { display:grid; gap:8px; color:var(--muted); font-weight:700; }
textarea,select { width:100%; border:1px solid var(--line); border-radius:12px; background:#07110d; color:var(--text); padding:13px; }
.queue { display:grid; gap:10px; margin-top:18px; }
.queue-item { display:grid; grid-template-columns:1fr minmax(140px,260px) 120px; gap:14px; align-items:center; padding:12px; background:#081510; border-radius:12px; border:1px solid var(--line); }
.queue-item div,.file-main { display:grid; }
small { color:var(--muted); }
progress { width:100%; accent-color:var(--lime); }
.queue-item.failed { border-color:#8d4343; }.queue-item.failed span { color:var(--danger); }
.history-section { margin-top:46px; }
.history { display:grid; gap:10px; margin-top:18px; }
.upload-row { width:100%; display:grid; grid-template-columns:46px 1fr 150px 100px; gap:16px; align-items:center; text-align:left; background:#0c1b15; color:var(--text); border:1px solid var(--line); padding:14px; }
.upload-row:hover { border-color:#4e8a6a; transform:translateY(-1px); }
.file-mark { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--panel2); color:var(--lime); }
.row-target { color:var(--muted); overflow:hidden; text-overflow:ellipsis; }
.status { justify-self:end; text-transform:uppercase; font-size:11px; letter-spacing:.08em; border-radius:999px; padding:6px 9px; background:#1a3026; color:var(--gold); }
.status-ready { color:var(--lime); }.status-failed { color:var(--danger); }
.empty { color:var(--muted); border:1px dashed var(--line); border-radius:16px; padding:34px; text-align:center; }
.hidden { display:none !important; }
dialog { width:min(850px,calc(100% - 32px)); max-height:88vh; overflow:auto; background:#0b1813; color:var(--text); border:1px solid var(--line); border-radius:20px; padding:28px; box-shadow:0 30px 100px #000c; }
dialog::backdrop { background:#000a; backdrop-filter:blur(5px); }
.dialog-close { float:right; background:transparent; color:var(--text); font-size:28px; padding:0 8px; }
.note,.report,.error { margin:18px 0; padding:16px; border-radius:12px; background:#11241c; white-space:normal; }
.error { background:#351919; color:var(--danger); }
.upload-status { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:24px; background:#07110df2; backdrop-filter:blur(14px); }
.upload-status-card { width:min(520px,100%); display:grid; justify-items:center; gap:14px; text-align:center; padding:36px 28px; border:1px solid var(--line); border-radius:24px; background:linear-gradient(145deg,#10231b,#0a1712); box-shadow:0 24px 80px #000a; }
.upload-status-icon { width:76px; height:76px; display:grid; place-items:center; border-radius:999px; background:var(--lime); color:#07110d; font-size:42px; font-weight:900; }
.upload-status-card progress { height:18px; margin-top:8px; }
.upload-status-file { max-width:100%; margin:0; color:var(--text); font-weight:800; overflow-wrap:anywhere; }
.upload-status-label { min-height:24px; margin:0; color:var(--muted); }
.upload-status.complete .upload-status-icon { background:var(--lime); }
.upload-status.failed .upload-status-icon { background:var(--danger); }
@media (max-width:720px) { .shell{padding-top:26px}.fields{grid-template-columns:1fr}.upload-row{grid-template-columns:42px 1fr 90px}.row-target{display:none}.queue-item{grid-template-columns:1fr}.status-pill{display:none}header{align-items:flex-start}.dropzone{min-height:260px} }
