:root{--primary: #7B5BEF;--primary-light: #9A7AF2;--primary-deep: #5B3BD5;--primary-soft: #F2EEFE;--bg: #FAF8F5;--card: #FFFFFF;--surface-soft: #F5F1EB;--ink: #1F1B2E;--body: #3F3A52;--muted: #6F6985;--muted-soft: #9A94AD;--hairline: #EDE7F7;--ok: #3FB58C;--warn: #D9A326;--danger: #D9534F;--font-serif: "Songti SC", "Source Han Serif SC", "Noto Serif SC", serif}.serif-title{font-family:var(--font-serif);font-weight:500;letter-spacing:-.3px;color:var(--ink)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:#faf8f5;color:#1f1b2e;-webkit-font-smoothing:antialiased}.app-sider{border-right:1px solid #EDE7F7;height:100vh;position:sticky;top:0;overflow:auto}.app-logo{display:flex;align-items:center;gap:10px;padding:20px 20px 16px;font-weight:700;font-size:17px;color:#5b3bd5;letter-spacing:.5px}.app-logo .mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#9a7af2,#7b5bef);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;flex:none;box-shadow:0 2px 8px #7b5bef38}.app-logo .sub{display:block;font-size:11px;font-weight:400;color:#9a94ad;letter-spacing:0}.app-header{background:#fff;border-bottom:1px solid #EDE7F7;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.app-header .page-title{font-size:17px;font-weight:600;color:#1f1b2e}.app-header .right{display:flex;align-items:center;gap:18px}.header-icon-btn{cursor:pointer;font-size:17px;color:#55657a;display:flex;align-items:center;padding:6px;border-radius:8px}.header-icon-btn:hover{background:#f5f1eb;color:#7b5bef}.app-content{padding:20px 24px 40px}.panel{background:#fff;border-radius:12px;border:1px solid #EDE7F7;padding:18px 20px;margin-bottom:16px}.panel-title{font-size:15px;font-weight:600;color:#1f1b2e;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.panel-title .hint{font-size:12px;font-weight:400;color:#9a94ad}.stat-card{background:#fff;border-radius:12px;border:1px solid #EDE7F7;padding:16px 18px;height:100%}.stat-card .label{font-size:13px;color:#6f6985;margin-bottom:8px}.stat-card .value{font-size:26px;font-weight:700;line-height:1.2;color:#5b3bd5}.stat-card .value.danger{color:#d9534f}.stat-card .value.warn{color:#c97a1e}.stat-card .value.ok{color:#3fb58c}.stat-card .foot{font-size:12px;color:#9a94ad;margin-top:6px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 10% 0%,#e8f2fb,#faf8f5 45%,#eef4f9);padding:24px}.login-card{display:flex;width:880px;max-width:100%;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 18px 50px #7b5bef29}.login-brand{width:400px;flex:none;padding:44px 38px;color:#fff;background:linear-gradient(160deg,#5b3bd5,#7b5bef 55%,#9a7af2);display:flex;flex-direction:column;justify-content:space-between}.login-brand h1{font-size:26px;margin:0 0 10px;letter-spacing:1px}.login-brand .slogan{font-size:13px;opacity:.86;line-height:1.9}.login-brand .feature{font-size:13px;opacity:.9;margin-top:6px;display:flex;gap:8px;align-items:flex-start}.login-form{flex:1;padding:44px 40px;display:flex;flex-direction:column;justify-content:center}.login-form h2{font-size:20px;margin:0 0 6px;color:#1f1b2e}.login-form .tip{color:#9a94ad;font-size:13px;margin-bottom:26px}.demo-accounts{margin-top:18px;border-top:1px dashed #e8edf3;padding-top:14px}.demo-accounts .title{font-size:12px;color:#9a94ad;margin-bottom:8px}.demo-chip{display:inline-block;margin:0 6px 6px 0;padding:3px 10px;border-radius:20px;background:#f7f4fe;border:1px solid #e2ebf5;color:#7b5bef;font-size:12px;cursor:pointer}.demo-chip:hover{background:#f2eefe;border-color:#b9d5ee}.fb-content-block{margin-bottom:16px}.fb-content-block .lbl{font-size:13px;font-weight:600;color:#7b5bef;margin-bottom:6px;display:flex;align-items:center;gap:6px}.fb-content-block .lbl:before{content:"";width:3px;height:13px;border-radius:2px;background:#7b5bef;display:inline-block}.fb-content-block .txt{font-size:14px;line-height:1.85;color:#3f3a52;white-space:pre-wrap;background:#fafbfd;border:1px solid #eef2f7;border-radius:8px;padding:10px 12px}.fb-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.fb-thumbs img{width:84px;height:84px;object-fit:cover;border-radius:8px;border:1px solid #EDE7F7;cursor:pointer}.sla-tag{font-size:12px}.ant-menu-light.ant-menu-root{border-inline-end:none!important}.ant-layout-sider-children{display:flex;flex-direction:column}.table-dense .ant-table-tbody>tr>td{padding:10px 12px!important}.cell-strong{font-weight:600;color:#1f1b2e}.cell-sub{font-size:12px;color:#9a94ad;margin-top:2px}.empty-hint{color:#9a94ad;font-size:13px;padding:20px 0;text-align:center}.fb-card{border:1px solid #EDE7F7;border-radius:12px;padding:16px 18px;margin-bottom:14px;background:#fff}.fb-card .head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.fb-card .meta{font-size:12px;color:#9a94ad;margin-top:3px}.fb-card .summary{font-size:14px;color:#3f3a52;line-height:1.8}.app-footer{text-align:center;padding:14px 0 18px;color:#9a94ad;font-size:12px;background:transparent}.app-footer a{color:#9a94ad}.app-footer a:hover{color:#7b5bef}.app-footer .foot-sep{margin:0 8px}.login-icp{position:fixed;left:0;right:0;bottom:14px;text-align:center;font-size:12px}.login-icp a{color:#9a94ad}.login-icp a:hover{color:#7b5bef;text-decoration:underline}
