:root{--primary:#1a73e8;--primary-dark:#1557b0;--bg:#f4f7fb;--card-bg:#fff;--text:#1f2937;--muted:#6b7280;--border:#e2e8f0;--low:#059669;--high:#dc2626;--mid:#d97706;--excluded:#64748b;--normal:#2563eb}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-size:14px}.page{max-width:1280px;margin:0 auto;padding:24px 20px 40px}.header h1{color:var(--primary-dark);margin:0 0 6px;font-size:22px}.header p{color:var(--muted);margin:0 0 20px;line-height:1.6}.uploader{background:var(--card-bg);border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:12px;padding:36px 16px;transition:border-color .2s,background .2s}.uploader:hover,.uploader.dragging{border-color:var(--primary);background:#eef4fe}.uploader.busy{opacity:.6;pointer-events:none}.uploader-icon{font-size:36px}.uploader-title{margin-top:8px;font-size:16px;font-weight:600}.uploader-sub{color:var(--muted);margin-top:6px;font-size:12px}.error-banner{color:var(--high);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:16px;padding:10px 14px}.loading{text-align:center;color:var(--muted);margin-top:16px}.toolbar{justify-content:space-between;align-items:center;gap:12px;margin:20px 0 12px;display:flex}.file-name{font-weight:600}.export-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 18px;font-size:14px}.export-btn:hover{background:var(--primary-dark)}.export-btn:disabled{opacity:.6;cursor:not-allowed}.export-error{color:var(--high);margin-left:8px;font-size:12px}.cards{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:16px;display:grid}.card{background:var(--card-bg);border:1px solid var(--border);text-align:center;border-radius:10px;padding:12px}.card-value{color:var(--primary-dark);font-size:22px;font-weight:700}.card-label{color:var(--muted);margin-top:4px;font-size:12px}.tone-low .card-value{color:var(--low)}.tone-expand .card-value{color:var(--high)}.tone-exclude .card-value{color:var(--excluded)}.warnings{color:var(--mid);background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.table-section{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.table-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.tabs{gap:6px;display:flex}.tab{border:1px solid var(--border);cursor:pointer;color:var(--text);background:#f1f5f9;border-radius:999px;padding:6px 14px;font-size:13px}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.search{border:1px solid var(--border);border-radius:8px;width:260px;padding:7px 12px;font-size:13px}.table-wrap{max-height:560px;overflow:auto}.result-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.result-table th{border-bottom:1px solid var(--border);text-align:left;color:#475569;z-index:1;background:#f8fafc;padding:9px 10px;font-weight:600;position:sticky;top:0}.result-table td{border-bottom:1px solid #f1f5f9;padding:8px 10px}.result-table tr:hover td{background:#f8fafc}.row-excluded td{color:#94a3b8}.mono{font-family:Consolas,monospace}.proj{text-overflow:ellipsis;max-width:260px;overflow:hidden}.badge{color:#fff;border-radius:999px;padding:2px 10px;font-size:12px;display:inline-block}.badge-low{background:var(--low)}.badge-high{background:var(--high)}.badge-mid{background:var(--mid)}.badge-excluded{background:var(--excluded)}.badge-normal{background:var(--normal)}.adj{color:var(--muted);margin-top:3px;font-size:12px}.expand-cell{white-space:normal;max-width:220px;color:var(--mid)}.empty{text-align:center;color:var(--muted);padding:30px!important}.table-count{color:var(--muted);border-top:1px solid var(--border);padding:10px 16px;font-size:12px}.rules{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-top:24px;padding:14px 18px}.rules summary{cursor:pointer;color:var(--primary-dark);font-weight:600}.rules-body{color:var(--muted);font-size:13px;line-height:1.7}.rules-body h4{color:var(--text);margin:12px 0 4px}.rules-body ul{margin:4px 0;padding-left:20px}.footer{text-align:center;color:var(--muted);margin-top:24px;font-size:12px}
