:root{
  --bg:#F4F5F2;--surface:#fff;--ink:#18202C;--ink2:#5B6675;--ink3:#8E97A5;
  --line:#E5E7E2;--primary:#C4392C;--primary-d:#A22C21;--primary-s:#FBEEEC;
  --gold:#A87A2A;--gold-s:#FAF2E3;--green:#2C7A5B;--green-s:#E9F4EF;
  --blue:#2A5C8A;--blue-s:#EBF1F7;--amber:#B0761E;--amber-s:#FBF1DF;
  --purple:#5B4B8A;--purple-s:#EFECF7;
}
*{box-sizing:border-box}
body{margin:0;font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.55}
button,input,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none;cursor:pointer}

/* 布局 */
.layout{display:flex;min-height:100vh}
.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--line);padding:20px 14px;flex:0 0 auto;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:0 8px 18px;border-bottom:1px solid var(--line);margin-bottom:14px}
.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(150deg,#D8473B,#A22C21);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.brand-name{font-weight:700}
.brand-sub{font-size:11px;color:var(--ink3)}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink2);margin-bottom:4px;cursor:pointer}
.nav-item:hover{background:var(--bg)}
.nav-item.on{background:var(--primary-s);color:var(--primary);font-weight:600}
.main{flex:1;padding:24px 28px;min-width:0}
.page-head{margin-bottom:18px}
.page-title{font-size:22px;font-weight:700}
.page-desc{color:var(--ink2);font-size:13px;margin-top:2px}

/* 卡片与表格 */
.card{background:var(--surface);border-radius:14px;padding:20px;box-shadow:0 1px 6px rgba(24,32,44,.04);margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.kpi .l{font-size:12px;color:var(--ink2)}
.kpi .v{font-size:24px;font-weight:700;margin:4px 0 2px}
.kpi .s{font-size:11px;color:var(--ink3)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--ink3);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px;border-bottom:1px solid #F0F1EC;vertical-align:top}
tr:hover td{background:#FAFAF7}

/* 控件 */
.btn{background:linear-gradient(150deg,#D8473B,#A22C21);color:#fff;border:none;border-radius:10px;padding:8px 18px;cursor:pointer}
.btn.plain{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn.sm{padding:4px 12px;font-size:12px;border-radius:999px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.input,select.input{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--surface);min-width:0}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px}
.pill-amber{background:var(--amber-s);color:var(--amber)}
.pill-blue{background:var(--blue-s);color:var(--blue)}
.pill-purple{background:var(--purple-s);color:var(--purple)}
.pill-green{background:var(--green-s);color:var(--green)}
.pill-gray{background:#EFF1EC;color:var(--ink3)}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.muted{color:var(--ink2)}.faint{color:var(--ink3);font-size:12px}
.money{color:var(--primary);font-weight:700}

/* 弹窗 */
.mask{position:fixed;inset:0;background:rgba(24,32,44,.45);display:flex;align-items:center;justify-content:center;z-index:80}
.modal{background:#fff;border-radius:16px;padding:24px;width:min(640px,92vw);max-height:86vh;overflow:auto}
.modal h3{margin:0 0 14px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid .full{grid-column:1/-1}
.fld label{display:block;font-size:12px;color:var(--ink2);margin-bottom:4px}
.fld input,.fld select,.fld textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}

/* 登录 */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login-card{width:360px}
.login-card .brand{justify-content:center;border:none;padding-bottom:10px}
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 22px;border-radius:10px;z-index:99;font-size:13px}
.invite-token{font-family:monospace;background:var(--gold-s);padding:4px 10px;border-radius:8px;word-break:break-all}
@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.sidebar{width:64px}.brand-name,.brand-sub,.nav-item span{display:none}}
