:root{--brand: #1f6feb;--brand-dark: #1558c0;--bg: #f4f6fa;--panel: #ffffff;--line: #e6eaf2;--text: #1c2333;--text-2: #6b7489;--ok: #16a34a;--warn: #e08c00;--danger: #dc3545;--side-bg: #16233a;--side-active: #1f6feb}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:13px}.panel{background:var(--panel);border-radius:10px;border:1px solid var(--line);padding:16px;margin-bottom:14px}.panel-title{font-size:14px;font-weight:600;margin:0 0 14px;display:flex;align-items:center;justify-content:space-between}.panel-title .sub{font-size:12px;font-weight:400;color:var(--text-2)}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.page-head h2{font-size:18px;font-weight:600;margin:0}.page-head .desc{font-size:12px;color:var(--text-2);margin-top:4px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px;position:relative;overflow:hidden}.stat-card .label{font-size:12px;color:var(--text-2);margin-bottom:8px}.stat-card .value{font-size:24px;font-weight:700;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.stat-card .value.money:before{content:"¥";font-size:15px;font-weight:500;margin-right:2px;color:var(--text-2)}.stat-card .foot{font-size:11px;color:var(--text-2);margin-top:6px}.stat-card .accent{position:absolute;left:0;top:0;bottom:0;width:3px}.stat-card.blue .accent{background:#1f6feb}.stat-card.green .accent{background:#16a34a}.stat-card.orange .accent{background:#e08c00}.stat-card.red .accent{background:#dc3545}.stat-card.purple .accent{background:#7c3aed}.stat-card .value.neg{color:var(--danger)}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.filter-bar .el-input,.filter-bar .el-select,.filter-bar .el-date-editor{width:160px}.filter-bar .grow{flex:1}.el-table{font-size:12.5px}.el-table th.el-table__cell{background:#f7f9fc!important;color:var(--text-2);font-weight:600}.num{font-variant-numeric:tabular-nums}.money{font-variant-numeric:tabular-nums;font-weight:600}.neg{color:var(--danger)}.pos{color:var(--ok)}.muted{color:var(--text-2)}.tiny{font-size:11px}.dot{display:inline-flex;align-items:center;gap:5px;font-size:12px}.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.dot.green{color:#16a34a}.dot.gray{color:#8a93a6}.dot.orange{color:#e08c00}.dot.red{color:#dc3545}.dot.blue{color:#1f6feb}.layout{display:flex;height:100vh;overflow:hidden}.side{width:208px;background:var(--side-bg);color:#c7d0e0;display:flex;flex-direction:column;flex-shrink:0}.side .logo{height:58px;display:flex;align-items:center;gap:9px;padding:0 18px;font-size:15px;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.07)}.side .logo .mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#1f6feb,#5ea2ff);display:grid;place-items:center;font-size:13px}.side .menu{flex:1;overflow-y:auto;padding:8px 0}.side .group-label{font-size:10.5px;color:#5f6b82;padding:12px 18px 6px;letter-spacing:.5px}.side .item{display:flex;align-items:center;gap:9px;padding:8px 18px;font-size:13px;cursor:pointer;color:#b6c0d4;border-left:2px solid transparent;transition:all .15s}.side .item:hover{background:#ffffff0e;color:#fff}.side .item.active{background:#1f6feb33;color:#fff;border-left-color:var(--side-active)}.side .item .el-icon{font-size:15px}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:58px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 20px;gap:14px;flex-shrink:0}.topbar .crumb{font-size:13px;color:var(--text-2)}.topbar .spacer{flex:1}.user-chip{display:flex;align-items:center;gap:8px;font-size:12.5px}.avatar{width:28px;height:28px;border-radius:50%;background:#e8efff;color:#1f6feb;display:grid;place-items:center;font-size:12px;font-weight:600}.content{flex:1;overflow-y:auto;padding:18px 20px 30px}.login-wrap{height:100vh;display:flex;background:linear-gradient(120deg,#101a2b,#1c2b45 48%,#24507f)}.login-left{flex:1.1;padding:60px;display:flex;flex-direction:column;justify-content:center;color:#e8efff}.login-left h1{font-size:34px;margin:0 0 14px;letter-spacing:-.5px}.login-left p{font-size:14px;color:#98a8c4;line-height:1.9;max-width:460px}.login-feats{display:flex;gap:26px;margin-top:40px}.login-feats div{font-size:12px;color:#7f90ae}.login-feats b{display:block;font-size:22px;color:#5ea2ff;margin-bottom:4px}.login-right{width:430px;background:#fff;display:flex;flex-direction:column;justify-content:center;padding:0 52px}.login-right h2{font-size:21px;margin:0 0 6px}.login-right .hint{font-size:12.5px;color:var(--text-2);margin-bottom:28px}.demo-accounts{margin-top:22px;border-top:1px dashed var(--line);padding-top:16px}.demo-accounts .t{font-size:11.5px;color:var(--text-2);margin-bottom:8px}.demo-row{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--text-2);padding:5px 0;cursor:pointer}.demo-row:hover{color:var(--brand)}.demo-row .k{display:inline-block;min-width:62px;font-weight:600;color:var(--text)}.flow-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line)}.flow-item:last-child{border-bottom:none}.flow-badge{width:56px;flex-shrink:0;text-align:center;font-size:11px;padding:2px 0;border-radius:4px;height:20px;line-height:16px}.flow-badge.IN,.flow-badge.RETURN_IN{background:#e8f6ee;color:#16a34a}.flow-badge.OUT,.flow-badge.EXCHANGE_OUT{background:#eaf1ff;color:#1f6feb}.flow-badge.EXCHANGE_IN{background:#f3ecff;color:#7c3aed}.detail-row{display:flex;padding:9px 0;border-bottom:1px solid #f2f4f8;font-size:12.5px}.detail-row .k{width:110px;color:var(--text-2);flex-shrink:0}.detail-row .v{flex:1;word-break:break-all}.empty{padding:50px 0;text-align:center;color:#a8b0c0;font-size:13px}.tip-bar{display:flex;gap:8px;align-items:flex-start;background:#f0f6ff;border:1px solid #d5e4ff;color:#1a4f9e;border-radius:8px;padding:10px 14px;font-size:12px;line-height:1.7;margin-bottom:14px}.tip-bar.warn{background:#fff8e8;border-color:#ffe3a3;color:#8a5a00}html.no-anim *,html.no-anim *:before,html.no-anim *:after{transition:none!important;animation:none!important}
