:root{--primary: #2f56ff;--primary-dark: #2445d1;--border: #e6e8f3;--bg: #ffffff;--bg-soft: #f7f8fc;--text: #0d1226;--text-2: #5b6478;--text-3: #a0a6b8;--red: #e5484d;--green: #16a34a;--amber: #d97706;--radius: 12px;--font: -apple-system, "PingFang SC", "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font);background:var(--bg-soft);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:9px;border:none;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font)}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.outline{background:#fff;color:var(--primary);border:1px solid var(--primary)}.btn.ghost{background:#fff;color:var(--text-2);border:1px solid var(--border)}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px}.field{margin-bottom:15px}.field label{display:block;font-size:13px;color:var(--text-2);margin-bottom:7px}.field input,.field select{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font-size:14px;outline:none;font-family:var(--font)}.field input:focus,.field select:focus{border-color:var(--primary)}.tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px}.tag.green{background:#16a34a1a;color:var(--green)}.tag.red{background:#e5484d1a;color:var(--red)}.tag.amber{background:#d977061a;color:var(--amber)}.tag.gray{background:var(--bg-soft);color:var(--text-2)}.tag.blue{background:#2f56ff1a;color:var(--primary)}.grid{display:grid;gap:14px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media (max-width: 900px){.g4,.g3,.g2{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.g4,.g3,.g2{grid-template-columns:1fr!important}.kpi-box{min-width:0!important;flex:1 1 100%!important}.card{min-width:0;overflow-x:auto}table{min-width:0}}
