@charset "UTF-8";
*[hidden]{display:none!important}
.business-choice{display:flex;gap:9px;align-items:stretch}.business-choice select{flex:1;min-width:0}.business-choice .secondary{white-space:nowrap}.custom-business{padding:17px;background:#f5f8f8;border:1px solid #dce7e9;border-radius:9px;margin:0 0 18px}.custom-business .field:last-of-type{margin-bottom:10px}.custom-business .field-hint{line-height:1.7;margin:0}.business-choice .secondary{padding:10px 12px}
@media(max-width:420px){.business-choice{flex-wrap:wrap}.business-choice select{flex-basis:100%}.business-choice .secondary{width:100%}}
.receipt-icon.pending{background:#eef2f4;color:var(--blue)}
:root{--navy:#18364b;--blue:#245774;--ink:#213746;--muted:#78848d;--line:#e6e8e5;--paper:#f5f5f1;--green:#26765d;--red:#b54e50;--amber:#aa7931;--white:#fff;--radius:16px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--blue);text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #75abc3;outline-offset:3px}button{border:0}svg{display:block}.loading-screen{padding:20vh 20px;text-align:center;color:var(--muted)}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#d8e5eb;padding:30px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:230px;z-index:5}.brand{display:flex;align-items:center;gap:12px;margin:0 9px 43px}.brand-mark{background:#d7b879;color:var(--navy);width:42px;height:42px;border-radius:12px;display:inline-grid;place-items:center;font-family:"Microsoft YaHei",sans-serif;font-weight:700;font-size:23px;flex-shrink:0}.brand strong{font-size:19px;display:block;letter-spacing:2px}.brand small{display:block;font-size:11px;letter-spacing:3px;opacity:.65;margin-top:6px}.nav-label{font-size:10px;letter-spacing:2px;color:#8ca6b4;margin:0 14px 15px}.nav{display:flex;flex-direction:column;gap:7px}.nav button{display:flex;align-items:center;gap:13px;background:transparent;color:#a9c0cc;border-radius:10px;padding:14px;text-align:left;white-space:nowrap}.nav button:hover{background:#ffffff0b;color:white}.nav button.active{background:#ffffff12;color:white;position:relative}.nav button.active:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:#d7b879}.icon{width:18px;height:18px;display:inline-block;flex-shrink:0}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff18;padding-top:21px;display:flex;gap:10px;align-items:center}.avatar{width:32px;height:32px;background:#ffffff14;border-radius:50%;display:grid;place-items:center;font-size:12px}.sidebar-bottom strong{font-size:12px;display:block}.sidebar-bottom small{font-size:10px;color:#8ca6b4}.workspace{grid-column:2;padding:29px 38px 40px;max-width:1740px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line)}.breadcrumb{color:var(--muted);font-size:12px}.breadcrumb b{color:var(--ink);font-weight:500}.top-actions{display:flex;align-items:center;gap:15px}.status-dot{background:var(--green);width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:7px}.local-tag{color:var(--green);font-size:12px;white-space:nowrap}.primary,.secondary,.ghost,.danger{display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:11px 17px;border-radius:8px;font-size:12px;font-weight:600;transition:background .15s}.primary{color:white;background:var(--navy)}.primary:hover{background:#2c5167}.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.secondary:hover{background:#f2f4f4}.ghost{background:transparent;color:var(--blue);padding:7px 9px}.danger{background:#fbeff0;color:var(--red)}.demo-banner{margin:20px 0 25px;padding:11px 14px;border:1px solid #e9dec3;background:#fbf7ec;color:#9a7740;border-radius:8px;font-size:12px;display:flex;justify-content:space-between;gap:10px}.demo-banner strong{font-weight:600}.demo-banner a{color:#927039}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}h1{font-size:27px;letter-spacing:-.6px;font-weight:650;margin:0 0 9px}h2{font-size:16px;font-weight:650;margin:0}h3{font-size:14px;margin:0 0 10px}.muted{color:var(--muted);font-size:12px;line-height:1.7}.page-heading p{margin:0}.period-picker{display:flex;padding:4px;background:#eaece8;border-radius:9px}.period-picker button{padding:8px 15px;color:#7c898f;background:transparent;border-radius:6px;font-size:12px;white-space:nowrap}.period-picker button.active{background:white;color:var(--ink);box-shadow:0 1px 3px #142b4110}.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px}.filterbar label{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}input,select,textarea{background:white;border:1px solid #dce1df;border-radius:7px;color:var(--ink);padding:10px 11px;min-width:0}select{cursor:pointer}.filterbar input,.filterbar select{font-size:12px;padding:8px 11px}.filterbar .push{margin-left:auto}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:22px}.metric{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px 21px;position:relative;min-height:170px;text-align:left;width:100%;color:inherit}.metric .label{font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:space-between}.metric .metric-value{font-size:32px;font-weight:650;letter-spacing:-1px;display:block;margin:21px 0 17px;white-space:nowrap;font-variant-numeric:tabular-nums}.metric .unit{font-size:12px;letter-spacing:0;font-weight:400;margin-right:7px}.metric .delta{font-size:11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.metric .previous{color:#89929a;font-size:10px;margin-top:9px}.metric.hero{background:var(--navy);color:white;border-color:var(--navy)}.metric.hero .label,.metric.hero .previous{color:#acc2ce}.metric.hero .delta{color:#bddfcf}.up{color:var(--green)}.down{color:var(--red)}.neutral{color:var(--muted)}.metric:hover{border-color:#aec6d0}.hero:hover{background:#22485e}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.overview-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.panel-head .muted{margin:5px 0 0}.chart-legend{display:flex;gap:14px;font-size:10px;color:var(--muted);white-space:nowrap}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:5px}.legend-dot.light{background:#c8d1d5}.chart{width:100%;height:205px;overflow:visible}.chart text{font-size:10px;fill:#a2aab0}.chart-grid{stroke:#eef0ed;stroke-dasharray:4 4;stroke-width:1}.chart-line{stroke:var(--blue);stroke-width:2.5;fill:none;stroke-linejoin:round;stroke-linecap:round}.chart-fill{fill:#e4eef2;opacity:.7}.chart-dot{fill:white;stroke:var(--blue);stroke-width:2}.rank-row{padding:16px 0;border-bottom:1px solid #f0f1ef}.rank-row:last-child{border-bottom:0}.rank-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:12px}.rank-name{display:flex;align-items:center;gap:10px}.rank-index{font-size:10px;color:#a1a9ad}.rank-money{font-weight:600;font-variant-numeric:tabular-nums}.rank-progress{height:5px;background:#f0f2ef;border-radius:4px;overflow:hidden;margin-left:23px}.rank-progress>span{height:5px;background:#426d86;display:block;border-radius:4px}.rank-row:nth-child(3) .rank-progress>span{background:#82a2b2}.rank-row:nth-child(4) .rank-progress>span{background:#c4b383}.rank-bottom{display:flex;justify-content:space-between;padding:0 0 0 23px;margin-top:8px;font-size:10px;color:var(--muted)}.small-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:22px}.small-stat{background:#f9faf7;border:1px solid var(--line);border-radius:10px;padding:17px 19px;display:flex;justify-content:space-between;align-items:center;gap:10px}.small-stat .value{font-size:20px;font-weight:650}.small-stat .muted{font-size:10px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{text-align:left;color:#8b969d;font-weight:500;font-size:10px;padding:11px 14px;background:#f8f9f6;border-bottom:1px solid var(--line)}td{padding:15px 14px;border-bottom:1px solid #f0f2ee;color:#44565f}tr:last-child td{border-bottom:0}.table-name{font-weight:500;color:var(--ink)}.table-small{display:block;font-size:10px;color:#929da4;margin-top:5px}.money{font-weight:600;font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;font-size:10px;padding:5px 8px;border-radius:5px;white-space:nowrap;background:#eff3f2;color:var(--green)}.badge.warn{background:#fbf4e6;color:var(--amber)}.badge.gray{background:#f0f2f2;color:#88939b}.badge.red{background:#fbeeee;color:var(--red)}.note-row{margin-top:16px;color:var(--muted);font-size:10px;display:flex;justify-content:space-between;gap:15px}.empty-state{padding:35px 15px;text-align:center;color:var(--muted);font-size:13px;line-height:1.8}.action-list{display:flex;gap:5px}.section-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.connection-icon{width:40px;height:40px;background:#eef3f5;border-radius:11px;display:grid;place-items:center;color:var(--blue);margin-bottom:20px}.connection-card{min-height:250px;display:flex;flex-direction:column}.connection-card .primary,.connection-card .secondary{margin-top:auto;align-self:flex-start}.connection-card p{margin:13px 0 22px}.connection-card .badge{align-self:flex-start;margin-bottom:10px}.import-box{margin-top:22px}.import-options{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:20px 0}.file-choice{border:1px dashed #c3cfd3;border-radius:10px;padding:25px;margin-top:15px;background:#fafcfb}.file-choice input{max-width:100%;border:0;padding:0;background:transparent}.field{display:flex;flex-direction:column;gap:9px;font-size:12px;margin-bottom:18px}.field input,.field select,.field textarea{width:100%}.field-hint{font-size:10px;color:var(--muted);font-weight:400}.field textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.check-field{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);line-height:1.5}.check-field input{width:16px;height:16px;margin:0}.settings-list{display:grid;grid-template-columns:180px 1fr;gap:16px 20px;font-size:12px}.settings-list dt{color:var(--muted)}.settings-list dd{margin:0;line-height:1.6}dialog{border:0;border-radius:18px;width:560px;max-width:calc(100vw - 28px);padding:27px;color:var(--ink);box-shadow:0 30px 100px #142b4130;max-height:90vh;overflow:auto}dialog::backdrop{background:#12293960;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-close{width:28px;height:28px;font-size:20px;background:#f0f2ef;color:var(--muted);border-radius:50%}.modal-wide{width:950px}.qr-preview{display:block;width:240px;height:240px;margin:15px auto}.qr-caption{text-align:center;overflow-wrap:anywhere;font-size:11px;color:var(--muted)}.inline-warning{padding:12px;border-radius:8px;background:#fbf5e8;color:#a07934;font-size:11px;line-height:1.7;margin:15px 0}.success-box{padding:15px;background:#edf6f1;color:var(--green);border-radius:8px;font-size:12px;line-height:1.7}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;border-radius:10px;padding:13px 22px;z-index:20;box-shadow:0 8px 25px #12304320;display:none;max-width:calc(100vw - 30px);font-size:12px;line-height:1.7}#toast.visible{display:block}.page-error{padding:25px;background:#fff1ef;border:1px solid #f0d5d2;color:var(--red);border-radius:12px}.login{max-width:430px;margin:15vh auto;padding:30px;background:white;border:1px solid var(--line);border-radius:18px}.login .brand{margin:0 0 30px}.login h1{font-size:23px}.payment-body{background:#f2f4f1;padding:8vh 20px}.payment-card{background:white;max-width:450px;margin:auto;padding:34px;border:1px solid var(--line);border-radius:20px;box-shadow:0 15px 50px #213d4c07}.payment-brand{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:28px}.payment-brand .brand-mark{width:33px;height:33px;border-radius:8px;font-size:18px}.payment-card h1{font-size:23px;line-height:1.5}.demo-pill{background:#fbf4e6;color:#a07934;font-size:11px;padding:8px 11px;border-radius:6px;margin-bottom:20px}.pay-amount{font-size:35px;font-weight:650;letter-spacing:-.8px;padding:25px 0}.wallets{display:flex;gap:9px;margin:10px 0 25px}.wallets span{border:1px solid var(--line);border-radius:6px;padding:9px 12px;font-size:11px;color:#5d707b}.wide{width:100%;margin-top:10px;padding:14px}.payment-footer{color:#97a1a6;font-size:10px;text-align:center;margin:24px 0 0}.receipt-icon{width:50px;height:50px;background:#edf5f0;color:var(--green);border-radius:50%;display:grid;place-items:center;font-size:24px;margin-bottom:22px}.receipt-state{font-size:15px;font-weight:600;margin-bottom:14px}#pay-error{color:var(--red);font-size:12px;line-height:1.7}
.rank-progress{display:block;width:calc(100% - 23px);appearance:none;border:0}.rank-progress::-webkit-progress-bar{background:#f0f2ef;border-radius:4px}.rank-progress::-webkit-progress-value{background:#426d86;border-radius:4px}.rank-progress::-moz-progress-bar{background:#426d86;border-radius:4px}.rank-name{font-size:12px;padding:0;color:var(--ink)}.filterbar>input[type=number]{width:100px}.metric.hero .up{color:#b9e4d0}.metric.hero .neutral{color:#b5c9d2}
@media(min-width:1600px){.workspace{padding:35px 55px}.metric .metric-value{font-size:38px}.chart{height:240px}}
@media(max-width:1200px){.sidebar{width:200px;padding:28px 15px}.shell{grid-template-columns:200px minmax(0,1fr)}.workspace{padding:25px}.metric{padding:21px 16px}.metric .metric-value{font-size:27px}.metric-grid{gap:12px}.overview-grid{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}.section-grid{gap:13px}.panel{padding:20px}}
@media(max-width:950px){.sidebar{position:static;width:auto;inset:auto;padding:18px 20px;display:block}.shell{display:block}.brand{margin:0}.brand strong{font-size:16px}.brand small{font-size:9px;margin-top:3px}.brand-mark{width:35px;height:35px;font-size:19px}.nav-label,.sidebar-bottom{display:none}.nav{flex-direction:row;overflow-x:auto;margin-top:19px;gap:2px}.nav button{padding:9px 11px;gap:6px;font-size:12px}.nav button.active:before{left:10px;right:10px;bottom:0;top:auto;width:auto;height:2px}.nav .icon{width:14px;height:14px}.workspace{padding:22px}.topbar{padding-bottom:18px}.overview-grid{grid-template-columns:1fr}.metric .metric-value{font-size:29px}.section-grid{grid-template-columns:1fr}.connection-card{min-height:0}.connection-card .primary,.connection-card .secondary{margin-top:0}.small-grid{gap:12px}.page-heading{flex-wrap:wrap}.panel-head{flex-wrap:wrap}.top-actions{gap:10px}}
@media(max-width:600px){.workspace{padding:18px 14px}.sidebar{padding:17px 14px}.topbar{gap:10px}.breadcrumb{font-size:10px}.local-tag{font-size:10px}.top-actions .primary{padding:9px 11px;font-size:11px}.demo-banner{margin:17px 0 23px;font-size:10px}.demo-banner a{display:none}h1{font-size:24px}.page-heading{gap:17px;margin-bottom:18px}.page-heading p{font-size:10px}.period-picker{width:100%}.period-picker button{flex:1;padding:9px 10px}.filterbar{gap:9px;margin-bottom:18px}.filterbar label{font-size:10px;gap:6px}.filterbar .push{margin-left:0}.filterbar select{max-width:145px}.filterbar input[type=date]{max-width:135px;font-size:11px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:17px}.metric{min-height:155px;padding:19px 15px}.metric .metric-value{font-size:27px;margin:18px 0 13px}.metric .label{font-size:10px}.metric .unit{font-size:10px;margin-right:4px}.metric .delta{font-size:10px;gap:5px}.metric .previous{font-size:9px}.small-grid{grid-template-columns:1fr;gap:8px;margin-bottom:17px}.small-stat{padding:13px 15px}.small-stat .value{font-size:18px}.small-stat .muted{font-size:10px}.panel{padding:19px 16px;border-radius:12px}.overview-grid{gap:17px;margin-bottom:17px}.chart{height:180px}.chart-legend{font-size:9px}.panel-head{margin-bottom:18px}.note-row{font-size:9px;flex-wrap:wrap;line-height:1.6}.form-row{grid-template-columns:1fr;gap:0}.settings-list{grid-template-columns:1fr;gap:6px}.settings-list dd{margin-bottom:15px}dialog{padding:22px 18px}.payment-body{padding:25px 14px}.payment-card{padding:27px 22px}.section-grid{gap:16px}.import-options{align-items:stretch}.import-options .field{width:100%}.field{margin-bottom:15px}.action-list{flex-wrap:wrap}}

@media(max-width:950px){.nav{scrollbar-width:none}.nav::-webkit-scrollbar{display:none}}
@media(max-width:600px){.metric .metric-value{font-size:24px}}
@media(max-width:360px){.metric .metric-value{font-size:19px}.metric{padding:17px 12px}}

.chart-wrap{position:relative;min-width:0}
.chart-hit-area{fill:transparent;pointer-events:all;cursor:crosshair}
.chart-cursor{pointer-events:none}
.chart-guide{stroke:#8aa9ba;stroke-width:1;stroke-dasharray:4 4}
.chart-active-dot{fill:var(--blue);stroke:white;stroke-width:2}
.chart:focus{outline:none}
.chart:focus-visible{outline:2px solid #75abc3;outline-offset:4px;border-radius:4px}
.chart-tooltip{position:absolute;z-index:2;pointer-events:none;background:var(--navy);color:white;padding:10px 14px;border-radius:9px;box-shadow:0 5px 18px #142b4126;width:max-content;max-width:calc(100% - 16px);white-space:nowrap;font-variant-numeric:tabular-nums}
.chart-tooltip time{display:block;font-size:11px;color:#c3d4de;margin-bottom:7px}
.chart-tooltip span{display:block;font-size:10px;color:#c3d4de;margin-bottom:4px}
.chart-tooltip strong{display:block;font-size:16px;font-weight:600}
.clipboard-helper{position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none}
