:root{
  --bg:#F6F3FF; --surf:#FFFFFF; --ink:#2C2640; --ink2:#8C86A0; --line:#E7E1F5;
  --violet:#6D5AE6; --violetS:#ECE8FE; --teal:#12B89C; --tealS:#D6F6EF;
  --amber:#E8920E; --amberS:#FFF0D6; --coral:#F2545B; --coralS:#FFE2E2;
}
*{ box-sizing:border-box; }
body{ margin:0; font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink); background:var(--bg); }
a{ color:inherit; text-decoration:none; }
.top{ display:flex; align-items:center; justify-content:space-between; padding:13px 20px;
  background:var(--surf); border-bottom:1px solid var(--line); }
.brand{ display:flex; align-items:center; gap:9px; font-size:17px; font-weight:600; }
.logo{ width:30px; height:30px; border-radius:10px; background:var(--violet); color:#fff;
  display:flex; align-items:center; justify-content:center; }
.meta{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.chip{ background:var(--surf); border:1px solid var(--line); border-radius:999px;
  padding:5px 13px; font-size:12px; color:var(--ink2); }
.chip b{ color:var(--ink); }
.roleSw{ display:flex; gap:5px; background:var(--violetS); padding:4px; border-radius:999px; }
.roleSw a{ font-size:12px; padding:5px 12px; border-radius:999px; color:var(--violet); }
.roleSw a.on{ background:var(--violet); color:#fff; font-weight:600; }
.body{ display:flex; gap:14px; padding:14px; }
.side{ width:150px; flex-shrink:0; display:flex; flex-direction:column; gap:6px; }
.nav{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:14px;
  color:var(--ink2); font-size:14px; }
.nav:hover{ background:#fff; }
.nav.on{ background:var(--surf); color:var(--ink); font-weight:600;
  box-shadow:0 4px 14px rgba(44,38,64,.07); }
.main{ flex:1; min-width:0; background:var(--surf); border-radius:20px; padding:22px;
  box-shadow:0 6px 22px rgba(44,38,64,.06); }
h1{ font-size:19px; font-weight:600; margin:0 0 4px; }
.sub{ font-size:13px; color:var(--ink2); margin:0 0 18px; }
.card{ border:1px solid var(--line); border-radius:16px; padding:15px; margin-bottom:13px; }
.row{ display:flex; align-items:center; gap:12px; }
.between{ justify-content:space-between; }
.lab{ font-size:11px; color:var(--ink2); }
.btn{ font-family:inherit; font-size:13.5px; font-weight:600; border-radius:14px;
  padding:11px 22px; border:none; cursor:pointer; color:#fff; background:var(--violet); }
.btn.ghost{ background:var(--violetS); color:#4A38B8; }
.pill{ font-size:11px; padding:3px 11px; border-radius:999px; font-weight:600; display:inline-block; }
.p-tea{ background:var(--tealS); color:var(--teal); } .p-amb{ background:var(--amberS); color:var(--amber); }
.p-cor{ background:var(--coralS); color:var(--coral); } .p-vio{ background:var(--violetS); color:var(--violet); }
table{ width:100%; border-collapse:collapse; font-size:13.5px; }
th,td{ text-align:left; padding:9px 8px; border-bottom:1px solid var(--line); }
th{ font-size:11px; color:var(--ink2); font-weight:600; }
/* 九宫格 */
.g9{ display:flex; gap:12px; }
.yax{ display:flex; flex-direction:column; justify-content:space-between; align-items:center;
  width:34px; padding:8px 0; font-size:11px; color:var(--ink2); }
.yt{ writing-mode:vertical-rl; letter-spacing:3px; font-weight:600; color:var(--ink); }
.grid{ flex:1; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.cell{ border-radius:16px; padding:11px; min-height:92px; position:relative; }
.cell .tn{ font-size:11px; font-weight:600; }
.cell .cn{ font-size:12px; color:var(--ink2); margin-top:3px; }
.cell .nm{ font-size:11px; margin-top:5px; line-height:1.5; }
.r-高潜{ background:var(--tealS); } .r-高潜 .tn{ color:var(--teal); }
.r-待发展{ background:var(--amberS); } .r-待发展 .tn{ color:var(--amber); }
.r-风险{ background:var(--coralS); } .r-风险 .tn{ color:var(--coral); }
.xax{ text-align:center; font-size:11px; color:var(--ink2); margin-top:9px; padding-left:46px; }
.sumcard{ border-radius:14px; padding:11px 14px; margin-bottom:9px; display:flex;
  justify-content:space-between; align-items:center; font-size:13px; }
/* 登录 */
.login{ max-width:380px; margin:14vh auto; background:var(--surf); border-radius:24px;
  padding:36px; box-shadow:0 10px 34px rgba(44,38,64,.12); text-align:center; }
.login .logo{ width:48px; height:48px; border-radius:15px; margin:0 auto 14px; font-size:22px; }
.login .btn{ width:100%; margin-top:10px; }
.ta{ width:100%; border:1px solid var(--line); border-radius:10px; padding:9px;
  font-family:inherit; font-size:13.5px; color:var(--ink); background:#fff; }
textarea.ta{ min-height:46px; resize:vertical; }
.ta:focus{ outline:none; border-color:var(--violet); }
label{ font-size:13.5px; cursor:pointer; }
input[type=range]{ accent-color:var(--violet); }
