:root { color-scheme: light; --ink:#17211b; --muted:#667069; --line:#dfe6e1; --green:#1f7a4d; --pale:#f2f6f3; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#fbfcfb; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,input,select { font:inherit; }
.topbar { height:64px; padding:0 max(24px,calc((100vw - 1120px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:white; }
.brand { color:var(--ink); font-weight:750; font-size:20px; text-decoration:none; }
.link-button { border:0; background:none; color:var(--muted); cursor:pointer; }
.shell { width:min(1120px,calc(100% - 40px)); margin:0 auto; padding:72px 0; }
.hero { max-width:680px; margin-bottom:32px; }
.eyebrow { margin:0 0 12px; color:var(--green); font-size:12px; font-weight:800; letter-spacing:.14em; }
h1 { margin:0 0 12px; font-size:clamp(36px,5vw,60px); letter-spacing:-.045em; line-height:1.02; }
.hero>p:last-child,.login-card>p { color:var(--muted); font-size:18px; }
.search-card { padding:20px; display:grid; grid-template-columns:minmax(260px,1fr) 240px auto; gap:14px; align-items:end; border:1px solid var(--line); border-radius:18px; background:white; box-shadow:0 16px 50px rgba(30,65,45,.07); }
.field { display:grid; gap:8px; color:var(--muted); font-size:13px; font-weight:700; }
.field input,.field select,.field textarea { width:100%; min-height:48px; padding:12px 14px; color:var(--ink); border:1px solid #ccd6cf; border-radius:10px; background:white; outline:none; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(31,122,77,.12); }
.field small,.file-name { color:var(--muted); font-weight:500; }
.actions { display:grid; gap:9px; align-content:end; }
.file-button { min-height:40px; display:grid; place-items:center; border:1px dashed #aab9af; border-radius:10px; color:var(--green); font-weight:750; cursor:pointer; }
.primary { min-height:48px; padding:0 22px; border:0; border-radius:10px; color:white; background:var(--green); font-weight:750; cursor:pointer; }
.primary:disabled { opacity:.65; cursor:wait; }
.error { margin-top:18px; padding:14px 16px; color:#8b2525; background:#fff0f0; border:1px solid #f2caca; border-radius:10px; }
#results { margin-top:28px; }
.metric-card { padding:26px; display:grid; gap:5px; color:var(--muted); border-radius:18px; background:var(--pale); }
.metric-card strong { color:var(--ink); font-size:44px; letter-spacing:-.04em; }
.tables { margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.table-card { padding:22px; border:1px solid var(--line); border-radius:16px; background:white; }
.table-card h2 { margin:0 0 12px; font-size:18px; }
.result-row { padding:11px 0; display:grid; grid-template-columns:1fr auto; gap:20px; border-top:1px solid #edf1ee; }
.result-row strong { font-variant-numeric:tabular-nums; }
.empty { color:var(--muted); }
.batch-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.batch-head h2 { margin:0; }
.batch-head span { color:var(--muted); }
.batch-results { display:grid; gap:10px; }
.demand-row { border:1px solid var(--line); border-radius:12px; background:white; overflow:hidden; }
.demand-row summary { padding:17px 19px; display:grid; grid-template-columns:1fr auto; gap:20px; cursor:pointer; list-style:none; }
.demand-row summary::-webkit-details-marker { display:none; }
.demand-row summary strong { font-size:19px; font-variant-numeric:tabular-nums; }
.detail-grid { padding:0 19px 19px; display:grid; grid-template-columns:1fr 1fr; gap:28px; border-top:1px solid var(--line); }
.detail-grid h3 { margin:18px 0 8px; font-size:15px; }
.login-page { min-height:100vh; display:grid; place-items:center; background:var(--pale); }
.login-card { width:min(440px,calc(100% - 32px)); padding:36px; border:1px solid var(--line); border-radius:18px; background:white; box-shadow:0 20px 60px rgba(30,65,45,.1); }
.login-card h1 { font-size:42px; }
.login-card form { display:grid; gap:16px; margin-top:28px; }
.login-card .error { margin:0; }
@media (max-width:760px) { .shell{padding:42px 0}.search-card{grid-template-columns:1fr}.tables,.detail-grid{grid-template-columns:1fr}.primary{width:100%} }
