:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;color:#28354a;font-size:18px;background:#f3f5f9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}aside{position:fixed;inset:0 auto 0 0;width:226px;background:#fff;border-right:1px solid #e6eaf1;padding:28px 16px}.brand{display:flex;gap:10px;align-items:center;color:#4263eb;font-size:38.6px;text-decoration:none;padding:0 8px}.brand span{font-size:24.4px;font-weight:700;color:#202d43}.brand small{display:block;font-size:10.3px;letter-spacing:1.6px;color:#9ca6b8;margin-top:7px}.space{background:#f6f8fc;padding:14px;border-radius:7px;color:#939daf;font-size:14.1px;margin:28px 0}.space b{display:block;font-size:16.7px;color:#44516a;margin-top:8px}.nav-label{color:#a0a9b9;font-size:14.1px;padding:17px 14px 10px}nav :is(button,a[data-page]){width:100%;border:0;text-align:left;background:none;padding:14px;color:#7a879e;margin:3px 0;border-radius:6px;font-size:23.2px}nav :is(button,a[data-page]) span{font-size:18px;margin-left:13px}nav :is(button,a[data-page]):hover,nav :is(button,a[data-page]).active{background:#edf1ff;color:#4766ec}nav :is(button,a[data-page]).active{font-weight:600}.sidebar-foot{position:absolute;bottom:25px;left:30px;font-size:15.5px;color:#77849a}.sidebar-foot small{display:block;margin:9px 0 0 14px;color:#a2acbc}i{display:inline-block;width:6px;height:6px;background:#35b88d;border-radius:50%;margin-right:6px}main{margin-left:226px}header{height:70px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #eff1f5;font-size:15.5px;color:#8b95a6}header b{font-weight:500;color:#455168}em{font-style:normal;margin:0 15px;color:#d1d5df}.local{font-size:12.9px;color:#488c74;background:#eef8f3;padding:5px 9px;border-radius:4px;margin-right:22px}.avatar{background:#e9edff;color:#5269d3;border-radius:50%;padding:9px 12px;margin-right:8px}.tabs{background:#fff;padding:10px 28px 0;border-bottom:1px solid #e5e9f0}.tabs span{display:inline-block;color:#4d68e5;background:#f0f3ff;border:1px solid #e5eaff;border-bottom:none;padding:9px 18px;border-radius:5px 5px 0 0;font-size:15.5px}section{padding:28px 32px;min-height:calc(100vh - 153px)}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h1{font-size:30.9px;letter-spacing:.4px;margin:0 0 9px;font-weight:650}p{color:#98a1b2;font-size:15.5px;margin:0;line-height:1.7}.btn{border:1px solid #e0e5ef;border-radius:5px;background:white;padding:9px 15px;color:#617087}.primary{background:#526bec;color:#fff;border-color:#526bec}.notice{border:1px solid #dce5fc;background:#edf3ff;border-radius:5px;padding:12px 16px;color:#6480b0;font-size:15.5px;margin-bottom:22px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.card,.panel{background:white;border:1px solid #e9edf4;border-radius:8px;padding:21px}.card label{color:#7e8b9f;font-size:15.5px}.metric{font-size:36.1px;color:#24324b;font-weight:650;margin:17px 0 15px;font-variant-numeric:tabular-nums}.card small{color:#a0aabd;font-size:14.1px}.card .icon{float:right;color:#6d85ed;background:#f0f3ff;padding:7px;border-radius:8px}.grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:22px}.panel h2{font-size:18px;margin:0 0 7px;font-weight:600}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.muted{color:#9ba6b7;font-size:14.1px}.chart{height:210px;display:flex;align-items:end;gap:12px;border-bottom:1px solid #edf0f6;background:repeating-linear-gradient(to top,transparent 0,transparent 51px,#f1f3f8 52px);padding:15px 7px 0}.bar{flex:1;min-height:2px;background:linear-gradient(#7893ff,#c9d4ff);border-radius:4px 4px 0 0;position:relative}.bar:hover{background:#526bec}.axis{display:flex;justify-content:space-between;margin:12px 5px;color:#a1aaba;font-size:12.9px}.rank{display:flex;align-items:center;gap:13px;margin:22px 0}.rank b{font-size:15.5px;width:24px;color:#8190a7}.rank div{flex:1;font-size:14.1px}.track{height:5px;background:#f0f3fa;border-radius:5px;margin-top:10px}.track span{display:block;height:5px;background:#748ef1;border-radius:5px}.rank strong{font-size:15.5px}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:18px}input,select{background:#fff;border:1px solid #e1e6f0;border-radius:5px;padding:9px 11px;color:#68778f;font-size:15.5px}input[type=search]{min-width:230px}table{width:100%;border-collapse:collapse;font-size:15.5px;text-align:left}th{background:#f7f9fc;color:#8793a6;font-weight:500;padding:13px 14px;white-space:nowrap}td{padding:15px 14px;border-bottom:1px solid #f0f2f7;white-space:nowrap}td:first-child{color:#5775ce}.table-wrap{overflow:auto}.badge{font-size:14.1px;background:#ebf8f2;color:#43a782;padding:4px 8px;border-radius:4px}.badge.wait{color:#ca9b39;background:#fff7e7}.badge.closed{color:#9aa3b2;background:#f1f3f6}.pager{color:#a0a9b9;font-size:14.1px;display:flex;justify-content:space-between;margin-top:18px}.setting{padding:20px 0;border-bottom:1px solid #edf0f6;display:flex;justify-content:space-between}.setting b{font-size:16.7px}.setting code{font-size:15.5px;color:#6b7da3}footer{padding:0 32px 18px;color:#a7afbd;font-size:12.9px}footer span{float:right}#toast{position:fixed;bottom:30px;left:50%;background:#273750;color:white;border-radius:7px;padding:14px 24px;display:none;font-size:16.7px}.empty{padding:50px;text-align:center;color:#9aa5b8}details{border-bottom:1px solid #edf0f6;padding:14px}summary{cursor:pointer;color:#526eac}pre{overflow:auto;font-size:15.5px;line-height:1.7;color:#7c879b}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}aside{width:190px}main{margin-left:190px}section{padding:22px}}@media(max-width:700px){aside{width:62px;padding:15px 5px}.brand span,.space,.nav-label,nav :is(button,a[data-page]) span,.sidebar-foot{display:none}.brand{padding:0 8px}nav{margin-top:30px}nav :is(button,a[data-page]){text-align:center;padding:15px 5px}main{margin-left:62px}header{padding:0 15px}.cards{gap:10px}.metric{font-size:28.3px}section{padding:18px 12px}.heading{align-items:start;gap:12px}h1{font-size:25.8px}header .local{display:none}.card{padding:15px}}
.brand span{font-size:20.6px;white-space:nowrap}.brand{gap:8px;font-size:33.5px}
.metric-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.metric-card{min-width:0;outline:none}.metric-card:hover,.metric-card:focus{border-color:#7d93ed;box-shadow:0 4px 18px #526bec14}.metric-card .metric{font-size:clamp(21px,2vw,29px);white-space:nowrap;margin:17px 0}.metric-card label{display:block}.breakdown-hint{float:right;font-size:12.9px;color:#7c8fbd}.metric-notes{display:flex;flex-direction:column;gap:7px;font-size:14.1px;color:#8a97ac;line-height:1.6}.metric-notes b{font-weight:500;color:#556784}.statistics-table td strong{font-weight:600;color:#3a4d68}.statistics-table .metric-notes{font-size:12.9px;margin-top:6px}.statistics-table th{min-width:100px}.ratio-note{margin:0 0 15px;line-height:1.8}#payment-tooltip{position:fixed;z-index:1000;width:min(720px,calc(100vw - 24px));max-height:min(440px,80vh);background:white;border:1px solid #dae2f3;border-radius:9px;box-shadow:0 8px 32px #26395c30;padding:18px;color:#354660}#payment-tooltip[hidden]{display:none}#payment-tooltip h3{margin:0 0 7px;font-size:18px}#payment-tooltip p{font-size:14.1px;margin-bottom:12px}#payment-tooltip table{font-size:14.1px}#payment-tooltip td,#payment-tooltip th{padding:10px}#payment-tooltip small{color:#a2acbd}.tooltip-scroll{max-height:310px;overflow:auto}.tooltip-scroll th{position:sticky;top:0}@media(min-width:1600px){.metric-cards{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:900px){.metric-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.breakdown-hint{float:none;display:block;margin-top:6px}}

/* Date range interaction reused from 易酷ERP. */
.dr-field { display:flex; flex-direction:column; gap:5px; min-width:280px; }
.dr-field > label { color:#8b97aa; font-size:15.5px; }
.dr-trigger { width:340px; max-width:100%; text-align:left; display:flex; align-items:center; justify-content:space-between; }
.dr-trigger::after { content:'⌄'; margin-left:16px; color:#8b97aa; }
.dr-popup { position:fixed; z-index:1100; background:#fff; color:#263241; border:1px solid #dce3ec; border-radius:12px; box-shadow:0 12px 40px #172b4d26; padding:18px; max-height:calc(100vh - 24px); overflow:auto; }
.dr-presets { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px solid #e8edf3; }
.dr-presets label { display:flex; gap:8px; align-items:center; white-space:nowrap; }
.dr-presets input { accent-color:#2563eb; width:16px; height:16px; }
.dr-presets select { border:1px solid #dce3ec; padding:8px 12px; border-radius:7px; background:#f8fafc; }
.dr-calendars { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:16px 0; }
.dr-calendars h4 { text-align:center; font-size:19.3px; font-weight:600; margin:0 0 12px; }
.dr-month { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.dr-month button { border:0; background:transparent; font-size:30.9px; padding:0 10px; border-radius:6px; }
.dr-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }
.dr-grid span { font-size:16.7px; color:#7a8796; padding:6px 0; }
.dr-grid button { border:1px solid transparent; background:transparent; min-height:34px; border-radius:50%; font-size:18px; color:inherit; }
.dr-grid button.in-range { background:#eff6ff; }
.dr-grid button.today { border-color:#94a3b8; }
.dr-grid button.selected { background:#2563eb; color:#fff; }
.dr-grid button:hover,.dr-month button:hover { background:#dbeafe; color:#1d4ed8; }
.dr-popup button:focus-visible { outline:2px solid #2563eb; outline-offset:2px; }
.dr-footer { display:flex; align-items:center; justify-content:flex-end; gap:10px; border-top:1px solid #e8edf3; padding-top:14px; }
.dr-error { flex:1; color:#dc2626; font-size:15.5px; }
.dr-field{min-width:280px}.dr-trigger{border:1px solid #e1e6f0;background:#fff;padding:9px 11px;border-radius:5px;color:#68778f;font-size:15.5px}.dr-popup section{padding:0;min-height:0}.dr-popup .ep-btn{border:1px solid #dce3ec;border-radius:5px;padding:8px 14px;background:white;color:#586a85}.dr-popup .ep-btn.primary{background:#526bec;color:white;border-color:#526bec}.dr-popup .dr-error{min-width:0}.filters [hidden]{display:none!important}@media(max-width:600px){.dr-field{min-width:0;width:100%}.dr-calendars{grid-template-columns:1fr;gap:16px}.dr-presets{flex-wrap:wrap}}
