:root{color:#172033;font-family:Inter,Microsoft YaHei,PingFang SC,Segoe UI,system-ui,sans-serif;background:#eef2f7;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:286px minmax(0,1fr);min-height:100vh}.sidebar{background:#102033;color:#f7fafc;padding:22px 18px}.brand{align-items:center;border-bottom:1px solid rgba(255,255,255,.14);display:flex;gap:12px;padding-bottom:20px}.brand strong,.brand span{display:block}.brand strong{font-size:18px}.brand span{color:#a7b5c7;font-size:12px;margin-top:3px}.nav-groups{display:grid;gap:18px;margin-top:22px}.nav-group h2{align-items:center;color:#9fb4ce;display:flex;font-size:13px;font-weight:700;gap:8px;letter-spacing:0;margin:0 0 8px}.nav-group a{border-radius:8px;color:#dbe5f0;display:block;font-size:14px;line-height:1.35;margin:3px 0;padding:9px 11px}.nav-group a.active,.nav-group a:hover{background:#2b6cb0;color:#fff}.workspace{min-width:0;padding:28px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:16px;margin:0 auto 22px;max-width:1120px}.topbar p{color:#5b6b80;font-size:14px;margin:0 0 4px}.topbar h1{font-size:30px;line-height:1.2;margin:0}.status-pill{background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;color:#9a3412;font-size:13px;padding:8px 12px;white-space:nowrap}.page-panel{background:#fff;border:1px solid #dce4ee;border-radius:8px;box-shadow:0 8px 24px #0f172a0f;margin:0 auto;max-width:1120px;padding:26px}.placeholder-copy{align-items:flex-start;display:flex;gap:14px}.placeholder-copy svg{color:#2b6cb0;flex:0 0 auto;margin-top:3px}.placeholder-copy h2{font-size:22px;line-height:1.3;margin:0 0 8px}.placeholder-copy p{color:#4b5d73;font-size:15px;line-height:1.7;margin:0}.metric-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}.metric-grid article{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:18px}.metric-grid span,.metric-grid strong{display:block}.metric-grid span{color:#66788f;font-size:13px}.metric-grid strong{font-size:22px;margin-top:7px}.scope-note{background:#edf7f2;border:1px solid #bfddd0;border-radius:8px;color:#255640;font-size:14px;line-height:1.7;margin-top:22px;padding:14px 16px}.import-layout{display:grid;gap:18px;margin:0 auto;max-width:1120px}.import-panel{background:#fff;border:1px solid #dce4ee;border-radius:8px;box-shadow:0 8px 24px #0f172a0f;padding:22px}.panel-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.panel-heading h2,.import-panel h3{line-height:1.3;margin:0}.panel-heading h2{font-size:22px}.panel-heading p{color:#4b5d73;font-size:14px;line-height:1.6;margin:7px 0 0}.panel-heading span{background:#edf7f2;border:1px solid #bfddd0;border-radius:999px;color:#255640;flex:0 0 auto;font-size:13px;padding:8px 12px}.upload-strip{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.upload-strip input{border:1px solid #d4deea;border-radius:8px;color:#172033;min-height:40px;padding:8px}.upload-strip button{align-items:center;background:#2b6cb0;border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-size:14px;gap:8px;min-height:40px;padding:9px 13px}.upload-strip button:disabled{background:#9fb4ce;cursor:not-allowed}.batch-table-wrap{margin-top:18px;overflow-x:auto}.data-table{border-collapse:collapse;font-size:13px;min-width:100%;table-layout:fixed}.data-table th,.data-table td{border-bottom:1px solid #e4ebf3;overflow-wrap:anywhere;padding:10px 8px;text-align:left;vertical-align:top}.data-table th{color:#5b6b80;font-weight:700}.data-table tbody tr{cursor:default}.batch-table-wrap tbody tr{cursor:pointer}.batch-table-wrap tbody tr:hover{background:#f7fafc}.metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}.import-panel h3{font-size:16px;margin-top:20px}.mapping-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.mapping-grid span{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;color:#34465c;font-size:13px;padding:8px 10px}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{padding:18px}.nav-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:20px}.metric-grid,.metric-grid.compact{grid-template-columns:1fr}}@media(max-width:560px){.nav-groups{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:24px}}
