:root{--bg:#f5f6fa;--surface:#fff;--text:#171820;--muted:#858895;--line:#e9eaf0;--purple:#7457f5;--purple-soft:#f0edff;--green:#14a86b;--red:#e45757}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans','Noto Sans SC',sans-serif;color:var(--text);background:var(--bg);font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:244px;background:#171820;color:#fff;position:fixed;inset:0 auto 0 0;padding:26px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:12px;align-items:center;padding:0 10px 34px}.brand strong{font-size:18px}.brand small{display:block;color:#858792;font-size:11px;margin-top:2px}.brand-mark{width:34px;height:34px;background:var(--purple);border-radius:10px;display:flex;align-items:flex-end;gap:3px;padding:9px}.brand-mark span{width:4px;background:#fff;border-radius:4px}.brand-mark span:nth-child(1){height:8px}.brand-mark span:nth-child(2){height:15px}.brand-mark span:nth-child(3){height:11px}.nav-label{font-size:10px;letter-spacing:1.4px;color:#60626c;margin:14px 12px 8px}.nav-item{display:block;width:100%;border:0;background:none;color:#91939e;text-align:left;padding:12px 14px;border-radius:9px;margin:2px 0;font:inherit;cursor:pointer;text-decoration:none}.nav-item:hover,.nav-item.active{background:#292a34;color:#fff}.nav-icon{display:inline-grid;place-items:center;width:24px;margin-right:6px;font-size:16px}.sidebar-foot{margin-top:auto;border:1px solid #30323c;border-radius:12px;padding:13px 11px;display:grid;grid-template-columns:30px 1fr 8px;align-items:center;gap:8px}.sidebar-foot .help-icon{background:#2e3040;border-radius:8px;width:30px;height:30px;display:grid;place-items:center}.sidebar-foot strong{font-size:12px}.sidebar-foot small{display:block;color:#747783;font-size:9px;margin-top:3px}main{margin-left:244px;width:calc(100% - 244px)}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px}.workspace{display:flex;align-items:center;gap:10px}.workspace b{font-size:13px}.workspace small{display:block;color:var(--muted);font-size:10px}.app-avatar{width:34px;height:34px;display:grid;place-items:center;background:#14151a;color:#fff;border-radius:9px;font-weight:700}.chevron{color:#999;margin-left:7px}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn{border:1px solid var(--line);background:white;width:34px;height:34px;border-radius:9px;color:#70727c}.bell{position:relative}.bell i{position:absolute;width:6px;height:6px;background:#ff5c5c;border-radius:50%;right:7px;top:6px;border:1px solid white}.avatar{width:34px;height:34px;border-radius:50%;background:#eee9ff;color:#6b51de;display:grid;place-items:center;font-weight:600}.menu-btn{display:none}.page{display:none;padding:36px;max-width:1540px;margin:0 auto}.page.active,.page:target{display:block}main:has(.page:target) .page.active:not(:target){display:none}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--purple)!important;font-weight:700;margin-bottom:8px!important}.page-heading h1{font-size:27px;margin:0 0 7px;letter-spacing:-.5px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.primary-btn{border:0;background:var(--purple);color:white;padding:11px 18px;border-radius:9px;font:600 13px inherit;box-shadow:0 5px 14px #7457f540;cursor:pointer}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.metric,.report-summary{background:#fff;border:1px solid var(--line);border-radius:13px}.metric{padding:19px 20px}.metric-top{color:#777a86;font-size:12px;display:flex;align-items:center;justify-content:space-between}.dot{width:8px;height:8px;border-radius:3px}.green{background:#25b477}.purple{background:#856af6}.orange{background:#f4a94e}.blue{background:#5790ed}.metric strong{font-size:25px;display:block;margin:13px 0 7px}.metric small{font-size:11px;color:#777}.metric small em{font-style:normal;color:#999;margin-left:4px}.up{color:var(--green)!important}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.toolbar{min-height:68px;padding:14px 18px;display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.search{border:1px solid var(--line);border-radius:8px;width:255px;display:flex;align-items:center;padding:0 11px;gap:8px}.search span{font-size:20px;color:#999}.search input{border:0;outline:0;width:100%;font:12px inherit}.toolbar-right{display:flex;gap:9px}.toolbar select,.date-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 13px;color:#646671;font:12px inherit}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:820px}th{height:43px;background:#fafafe;color:#999ca7;font-size:10px;text-align:left;text-transform:uppercase;letter-spacing:.5px;font-weight:600}th,td{padding:0 20px;border-bottom:1px solid #f0f0f4}td{height:62px;font-size:12px;color:#50525c}td:first-child{font-family:monospace;color:#8b8e98}td strong{color:#26272e;font-weight:600}.right{text-align:right}.badge{display:inline-block;border-radius:20px;padding:5px 10px;font-size:10px;font-weight:600}.badge.trial{color:#7b62e6;background:#f1eeff}.badge.first{color:#b87822;background:#fff2dc}.badge.renew{color:#18815c;background:#e8f8f1}.more{color:#aaa;font-size:19px;text-align:right}.pagination{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#9b9da6;font-size:11px}.pagination div{display:flex;gap:4px;align-items:center}.pagination button{border:1px solid var(--line);background:#fff;border-radius:6px;min-width:29px;height:29px;color:#797b85}.pagination button.current{background:#181920;color:#fff;border-color:#181920}.report-summary{min-height:118px;margin-bottom:18px;padding:22px 24px;display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;align-items:center}.report-summary>div:not(:first-child){border-left:1px solid var(--line);padding-left:25px}.report-summary span{display:block;color:#8e909a;font-size:11px}.report-summary strong{display:block;font-size:21px;margin:9px 0 5px}.report-summary small{font-size:10px;color:#999}.spark svg{height:66px;width:100%}.spark .area{fill:url(#g)}.spark .line{fill:none;stroke:#795df5;stroke-width:2}.segmented{padding:3px;background:#f3f3f7;border-radius:8px;display:flex}.segmented button{border:0;background:none;padding:7px 17px;border-radius:6px;color:#858792;font:11px inherit}.segmented button.active{background:#fff;color:#24252d;box-shadow:0 1px 4px #0001}.report-table th,.report-table td{padding:0 15px}.report-table td:first-child{font-family:inherit;color:#34363e}.negative{color:var(--red)}
@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.report-summary{grid-template-columns:repeat(3,1fr)}.spark{display:none}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}main{margin-left:0;width:100%}.menu-btn{display:block;border:0;background:none;font-size:20px}.topbar{padding:0 20px}.page{padding:26px 20px}}
@media(max-width:620px){.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:15px}.metric strong{font-size:20px}.page-heading{align-items:flex-start}.page-heading .primary-btn{font-size:0;padding:11px}.page-heading .primary-btn span{font-size:14px}.toolbar{flex-direction:column}.search{width:100%;height:40px}.toolbar-right{height:40px;overflow-x:auto}.report-summary{grid-template-columns:1fr}.report-summary>div{border:0!important;padding:8px 0!important}.page{padding:22px 14px}.workspace{margin-right:auto;margin-left:10px}}
.filters select,.filters input{border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 10px;color:#646671;font:12px inherit;min-height:38px}.filter-toolbar{align-items:center}.filter-toolbar .toolbar-right{flex-wrap:wrap}.small{padding:8px 14px;box-shadow:none}.cell-sub{display:block;color:#9a9ca6;font-size:10px;margin-top:4px}.empty-state{text-align:center;height:190px!important;color:#777!important}.empty-state b,.empty-state span{display:block}.empty-state span{font-size:11px;color:#aaa;margin-top:8px}.settings-grid{display:grid;grid-template-columns:360px 1fr;gap:18px}.form-panel{padding:22px}.form-panel h3,.panel-title h3{margin:0 0 20px}.form-panel label{display:block;color:#777;font-size:11px;margin:15px 0}.form-panel input,.form-panel select{display:block;width:100%;height:41px;border:1px solid var(--line);border-radius:8px;margin-top:7px;padding:0 11px;font:12px inherit}.form-panel .primary-btn{width:100%;margin-top:8px}.form-message{font-size:11px;color:var(--purple);min-height:16px}.app-list-panel{padding:22px}.panel-title{display:flex;justify-content:space-between}.panel-title span{color:#999;font-size:11px}.app-row{display:grid;grid-template-columns:38px 1fr auto auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.app-logo{width:38px;height:38px;border-radius:10px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-weight:700}.app-row b{font-size:13px}.app-row div span{display:block;color:#999;font-size:10px;margin-top:4px}.connected{color:var(--green);background:#e8f8f1;border-radius:20px;padding:5px 9px;font-size:10px}.remove-app{border:0;background:none;color:#aaa;cursor:pointer}.empty-card{text-align:center;color:#aaa;padding:70px 0}.date-sep{align-self:center;color:#aaa}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.filters{height:auto!important;overflow:visible!important}}

/* 收入明细筛选栏：用固定网格控制换行，避免查询按钮单独掉到下一行 */
.filter-toolbar{display:grid;grid-template-columns:minmax(220px,255px) minmax(0,1fr);gap:14px;align-items:center}
.filter-toolbar .search{width:100%;height:38px}
.filter-toolbar .toolbar-right{display:grid;grid-template-columns:minmax(160px,1fr) minmax(115px,auto) 86px 132px 12px 132px auto;gap:8px;align-items:center;min-width:0;flex-wrap:nowrap}
.filter-toolbar .toolbar-right>*{min-width:0}
.filter-toolbar #queryIncome{height:38px;padding:0 14px;white-space:nowrap}
.filter-toolbar .date-sep{text-align:center}
@media(max-width:1200px){.filter-toolbar{grid-template-columns:1fr}.filter-toolbar .search{max-width:320px}.filter-toolbar .toolbar-right{width:100%}}
@media(max-width:760px){.filter-toolbar .toolbar-right{grid-template-columns:1fr 1fr}.filter-toolbar .date-sep{display:none}.filter-toolbar #queryIncome{grid-column:1/-1}.filter-toolbar .search{max-width:none}}
