:root{color-scheme:light;--bg:#f7f8fa;--surface:#fff;--surface-subtle:#f0f5f3;--text:#17211f;--muted:#64716e;--line:#d9e2df;--primary:#126b5b;--primary-dark:#0f4d43;--accent:#c7552f;--radius:8px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}.appShell{min-height:100vh}.topbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--line);display:flex;height:64px;justify-content:space-between;padding:0 32px}.brand{display:flex;flex-direction:column;gap:2px}.brand strong{font-size:18px}.brand span{font-size:12px}.brand span,.nav{color:var(--muted)}.nav{display:flex;gap:18px;font-size:14px}.main{margin:0 auto;max-width:1180px;padding:32px 24px 56px}.demoBanner,.demoNotice{background:#fff8e6;border:1px solid #e9c96f;border-radius:var(--radius);color:#714900;display:flex;gap:8px;line-height:1.55;padding:11px 14px}.demoBanner{align-items:center;font-size:13px;margin-bottom:20px}.demoBanner strong,.demoNotice strong{flex:0 0 auto}.demoNotice{flex-direction:column;font-size:12px}.hero{align-items:stretch;display:grid;grid-gap:24px;gap:24px;grid-template-columns:minmax(0,1fr) 380px;margin-bottom:24px}.eyebrow{color:var(--primary);font-size:13px;font-weight:700;margin:0 0 10px}h1{font-size:34px;line-height:1.18;margin:0}.heroText{color:var(--muted);font-size:16px;line-height:1.8;margin:18px 0 0;max-width:640px}.grid{display:grid;grid-gap:16px;gap:16px}.metricsGrid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.contentGrid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:1fr 1fr}.metricCard,.panel,.uploadPanel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.metricCard{padding:18px}.metricHelper,.metricLabel{color:var(--muted);font-size:13px}.metricValue{display:block;font-size:30px;margin:8px 0}.uploadPanel{flex-direction:column;gap:16px}.uploadDrop,.uploadPanel{display:flex;padding:20px}.uploadDrop{align-items:center;background:var(--surface-subtle);border:1px dashed #9bb8b0;border-radius:var(--radius);color:var(--muted);min-height:150px;justify-content:center;text-align:center}.button{background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;height:40px;padding:0 16px}.button.secondary{background:#e9efed;color:var(--primary-dark)}.button[disabled]{opacity:.6;cursor:not-allowed}.buttonRow{display:flex;gap:10px}.panel{min-height:260px;padding:20px}.panelHeader{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.panelHeader h2{font-size:18px;margin:0}.taskList{display:flex;flex-direction:column;gap:10px}.taskItem{align-items:center;border:1px solid var(--line);border-radius:6px;display:flex;justify-content:space-between;padding:12px 14px}.taskItem span{color:var(--text)}.taskItem strong{color:var(--accent);font-size:13px}.emptyState{background:#fafafa;border:1px dashed var(--line);border-radius:6px;color:var(--muted);line-height:1.7;min-height:170px;padding:24px}.emptyState,.userPill{align-items:center;display:flex}.userPill{gap:12px;font-size:14px}.userPill a{color:var(--primary-dark);font-weight:600}.authShell{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:32px 16px}.authForm{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;gap:14px;max-width:420px;padding:28px 28px 32px;width:100%}.authForm h1{font-size:22px;margin:0}.authForm label{display:flex;flex-direction:column;font-size:13px;gap:6px}.authForm input,.authForm select,.authForm textarea{background:var(--surface);border:1px solid var(--line);border-radius:6px;font:inherit;padding:10px 12px}.authForm textarea{font-family:inherit;resize:vertical}.formError{background:#fdecea;border:1px solid #f4c1bd;border-radius:6px;color:#a72820;font-size:13px;margin:0;padding:10px 12px}.reportItem{align-items:flex-start;flex-wrap:wrap;gap:12px}.reportItem .metricHelper{margin-top:4px}.checklist{display:flex;flex-direction:column;gap:10px;list-style:disc inside;margin:0;padding:0;color:var(--muted)}.checklist a{color:var(--primary-dark);font-weight:600}.reportDetail{gap:16px}.fileList,.reportDetail{display:flex;flex-direction:column}.fileList{gap:8px;list-style:none;margin:0 0 12px;padding:0}.fileList li{align-items:center;border:1px solid var(--line);border-radius:6px;display:flex;gap:16px;justify-content:space-between;padding:10px 12px}.uploadLabel{align-items:center;display:inline-flex;gap:12px;margin-top:4px}.uploadLabel input{display:none}.itemTable{border-collapse:collapse;font-size:13px;width:100%}.itemTable td,.itemTable th{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left}.itemTable th{background:var(--surface-subtle);color:var(--muted);font-weight:600}.flag{border-radius:999px;font-size:12px;padding:2px 8px}.flag-normal{background:#e2f0ec;color:#126b5b}.flag-high{background:#fdecea;color:#a72820}.flag-low{background:#fff4dd;color:#8d5800}.flag-unknown{background:#eef0f3;color:#4a5563}.warningList{background:#fff8e6;border:1px solid #f1d995;border-radius:6px;color:#8a5a00;font-size:13px;margin:0;padding:12px 18px}.interpretation h4{margin:14px 0 6px}.interpretation ul{margin:0;padding-left:18px}.summaryText{background:var(--surface-subtle);border:1px solid var(--line);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;padding:14px;white-space:pre-wrap}.trendControls{align-items:flex-end;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:16px}.trendControls label{display:flex;flex-direction:column;font-size:13px;gap:6px;min-width:160px}.trendControls select{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px}.trendChart{align-items:flex-end;background:var(--surface-subtle);border-radius:6px;display:flex;gap:10px;height:220px;padding:16px}.trendBar{align-items:center;display:flex;flex:1 1;flex-direction:column;font-size:12px;gap:4px;height:100%;justify-content:flex-end;min-width:48px}.trendBar .bar{background:var(--primary);border-radius:4px;width:100%}.trendBar .bar.flag-high{background:#c0392b}.trendBar .bar.flag-low{background:#d49b18}.trendBar small{color:var(--muted)}@media (max-width:860px){.topbar{align-items:flex-start;height:auto;padding:18px 20px}.nav{display:none}.contentGrid,.hero,.metricsGrid{grid-template-columns:1fr}h1{font-size:28px}.demoBanner{align-items:flex-start;flex-direction:column}}