:root{--background:#f6f7f5;--foreground:#17201a;--muted:#687369;--line:#d8ded6;--panel:#fff;--accent:#1b6f5a;--accent-strong:#145845;--danger:#b42318;--danger-soft:#fff1f0;--success:#137333;--success-soft:#edf8ef}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);margin:0;font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,Arial,sans-serif}button,input{font:inherit}.page{min-height:100vh}.shell{width:min(1180px,100vw - 32px);margin:0 auto;padding:32px 0 48px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:var(--accent);margin:0 0 8px;font-size:13px;font-weight:700}h1{letter-spacing:0;margin:0;font-size:clamp(28px,4vw,44px);line-height:1.12}.subtitle{max-width:760px;color:var(--muted);margin:12px 0 0;font-size:15px;line-height:1.8}.privacy{border:1px solid var(--line);color:#485249;background:#fbfcfa;border-radius:8px;min-width:240px;padding:14px 16px;font-size:13px;line-height:1.7}.grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.panel,.side-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;box-shadow:0 16px 40px #18201a12}.panel{padding:22px}.upload-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.upload{background:#fbfcfa;border:1px dashed #aeb8af;border-radius:8px;flex-direction:column;justify-content:space-between;gap:18px;min-height:158px;padding:16px;display:flex}.upload strong{margin-bottom:6px;font-size:16px;display:block}.upload span{color:var(--muted);font-size:13px}.upload input{color:#344138;width:100%;font-size:13px}.file-name{overflow-wrap:anywhere;color:var(--accent-strong);font-size:13px;font-weight:700}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.primary,.secondary{cursor:pointer;border-radius:7px;min-height:44px;padding:0 18px;font-weight:700}.primary{background:var(--accent);color:#fff;border:0}.primary:disabled{cursor:not-allowed;background:#9aa69e}.secondary{border:1px solid var(--line);color:#243028;background:#fff}.notice{color:var(--muted);margin:0;font-size:13px}.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px;display:grid}.step{border:1px solid var(--line);color:#526055;background:#fbfcfa;border-radius:7px;padding:10px 12px;font-size:13px}.step.active{color:var(--accent-strong);background:#eef8f4;border-color:#8db9aa;font-weight:700}.result{border-radius:8px;margin-top:20px;padding:16px}.result.success{background:var(--success-soft);border:1px solid #afddb9}.result.failed{background:var(--danger-soft);border:1px solid #f1b8b5}.result h2{margin:0 0 12px;font-size:22px}.result.success h2,.result.failed h2{color:var(--success)}.review-note{color:#6f5b10;background:#fff9df;border:1px solid #ead99b;border-radius:8px;padding:10px 12px;font-size:14px}.audit-details{margin-top:14px}.audit-details summary{cursor:pointer;color:var(--accent-strong);font-weight:700}.audit-details .table-wrap{margin-top:10px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.metric{background:#ffffffb3;border:1px solid #00000014;border-radius:7px;padding:10px}.metric span{color:var(--muted);font-size:12px;display:block}.metric strong{margin-top:4px;font-size:18px;display:block}.skipped{background:#fff9df;border:1px solid #ead99b;border-radius:8px;margin:14px 0;padding:12px}.skipped h3{color:#6f5b10;margin:0 0 10px;font-size:16px}.skipped-list{gap:8px;display:grid}.skipped-item{color:#5f542b;flex-wrap:wrap;gap:8px 14px;font-size:13px;display:flex}.skipped-item strong{color:#3f3a25}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:9px 10px}th{color:#435045;background:#f2f5f1;font-weight:700}.side-panel{padding:18px}.side-panel h2{margin:0 0 12px;font-size:18px}.side-panel ul{color:#4d594f;margin:0;padding-left:18px;font-size:13px;line-height:1.9}.error{background:var(--danger-soft);color:var(--danger);border:1px solid #f1b8b5;border-radius:8px;margin-top:14px;padding:12px;font-size:14px}@media (width<=920px){.topbar,.grid{flex-direction:column;grid-template-columns:1fr}.privacy{width:100%}.upload-grid,.steps,.metrics{grid-template-columns:1fr}}
