:root{color-scheme:light;color:var(--text-primary);background:var(--app-bg);--app-bg: #eef2f0;--primary: #31584c;--primary-strong: #17342c;--primary-soft: #e7f1ec;--primary-muted: #e2ebe7;--card-bg: #ffffff;--surface-bg: #fbfcfb;--surface-subtle: #f5f8f6;--surface-soft: #eef5f2;--table-head-bg: #f2f6f4;--border-color: #d8e0dc;--border-strong: #cfdad5;--border-soft: #e1e9e5;--text-primary: #1e2525;--text-strong: #1f2927;--text-secondary: #6f7e7a;--text-muted: #52615d;--text-on-primary: #ffffff;--shadow-color: rgba(35, 48, 43, .06);--modal-backdrop: rgba(21, 28, 26, .38);--modal-shadow: rgba(20, 30, 28, .22);--success: #26765f;--success-strong: #245f4c;--success-bg: #edf8f3;--success-border: #bbdacb;--danger: #b9573c;--danger-strong: #8a3a24;--danger-bg: #fff4ef;--danger-border: #efc3b6;--warn-bg: #f5efe4;--warn-text: #7a6c55;--info: #4c628d;--info-strong: #355274;--info-bg: #f0f6fd;--info-border: #c9d8ea;--chart-income: #2f8069;--chart-expense: #c65f48;--chart-line: #49648f;--chart-axis: #d7dfdb;--chart-label: var(--text-muted);--chart-highlight: rgba(49, 88, 76, .08);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--app-bg: #111815;--primary: #8fc7b1;--primary-strong: #d6f2e7;--primary-soft: #20332d;--primary-muted: #273a34;--card-bg: #18211e;--surface-bg: #151d1a;--surface-subtle: #1d2824;--surface-soft: #20312c;--table-head-bg: #1f2c27;--border-color: #31413b;--border-strong: #40534b;--border-soft: #26342f;--text-primary: #e8efec;--text-strong: #f4f7f5;--text-secondary: #a6b6b0;--text-muted: #bac9c3;--text-on-primary: #102019;--shadow-color: rgba(0, 0, 0, .26);--modal-backdrop: rgba(3, 8, 6, .68);--modal-shadow: rgba(0, 0, 0, .46);--success: #7ac8a9;--success-strong: #9bddc7;--success-bg: #173226;--success-border: #2a5a46;--danger: #e08b72;--danger-strong: #f2aa95;--danger-bg: #351d18;--danger-border: #704031;--warn-bg: #31291e;--warn-text: #dbc299;--info: #9db5e4;--info-strong: #c2d2f0;--info-bg: #1b2739;--info-border: #354763;--chart-income: #78c7aa;--chart-expense: #e38a70;--chart-line: #a9bff0;--chart-axis: #3b4b45;--chart-label: #b7c6c0;--chart-highlight: rgba(143, 199, 177, .14)}}*{box-sizing:border-box}body{margin:0;background:var(--app-bg)}.fullPage{min-height:100vh;display:grid;place-items:center}.authPage{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,var(--primary-soft),transparent 34%),var(--app-bg)}.authCard{width:min(440px,100%);display:grid;gap:28px;padding:34px;border:1px solid var(--border-color);border-radius:14px;background:var(--card-bg);box-shadow:0 24px 60px var(--shadow-color)}.authBrand{display:flex;align-items:center;gap:12px}.authBrand>span,.userAvatar{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:10px;color:var(--text-on-primary);background:var(--primary);font-weight:800}.authBrand strong,.authBrand small{display:block}.authBrand small,.authCard p{color:var(--text-secondary)}.authCard h1{margin-bottom:8px}.authForm,.stackForm{display:grid;gap:14px}.authForm input,.stackForm input{width:100%}.authSubmit{min-height:42px;margin-top:4px}.viewSwitch{display:inline-flex;padding:3px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-subtle)}.viewSwitch button{min-height:29px;padding:0 11px;border:0;border-radius:6px;color:var(--text-muted);background:transparent}.viewSwitch button.active{color:var(--text-on-primary);background:var(--primary)}.userMenu{min-height:36px;display:inline-flex;align-items:center;gap:7px;padding:3px 9px 3px 3px;border:1px solid var(--border-strong);border-radius:8px;color:var(--text-strong);background:var(--card-bg)}.userMenu span{width:28px;height:28px;display:grid;place-items:center;border-radius:6px;color:var(--text-on-primary);background:var(--primary);font-weight:800}.userMenu em{font-style:normal;font-size:13px}.usersLayout{align-items:start}.userList{display:grid;gap:8px}.userRow{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-strong);background:var(--surface-bg);text-align:left}.userRow:hover{background:var(--surface-soft)}.userRow strong,.userRow small{display:block}.userRow small{margin-top:3px;color:var(--text-secondary)}.userBadges{display:flex;justify-content:end;gap:5px;flex-wrap:wrap}.userBadges em{padding:3px 7px;border-radius:99px;color:var(--primary-strong);background:var(--primary-soft);font-size:11px;font-style:normal}.checkLine{display:flex;grid-template-columns:none;align-items:center;gap:8px;min-height:30px;color:var(--text-strong)}.checkLine input{width:auto;min-width:0;min-height:0}button,input,select{font:inherit}button{cursor:pointer}button,input,select,textarea{accent-color:var(--primary)}::selection{color:var(--text-on-primary);background:var(--primary)}.appShell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:22px 14px;border-right:1px solid var(--border-color);background:var(--surface-bg);display:flex;flex-direction:column;gap:22px}.brand,.sideStatus{display:flex;align-items:center;gap:10px}.brand span{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;color:var(--text-on-primary);background:var(--primary);font-weight:800}.brand strong,.sideStatus strong{display:block}.brand small,.sideStatus small,.panelHead small,.metric small{color:var(--text-secondary)}.nav{display:grid;gap:6px}.navItem{min-height:42px;border:0;border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:10px;color:var(--text-muted);background:transparent;text-align:left}.navItem i{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-style:normal;font-size:12px}.navItem.active,.navItem:hover{background:var(--primary-muted);color:var(--primary-strong)}.sideStatus{margin-top:auto;padding:12px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-subtle)}.dot{width:10px;height:10px;border-radius:99px;background:var(--danger)}.dot.ok{background:var(--success)}.workspace{min-width:0;padding:26px 28px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.eyebrow{margin:0 0 4px;color:var(--text-secondary);font-size:13px}h1,h2,h3,p{margin:0;letter-spacing:0}h1{font-size:30px;line-height:1.15}h2{font-size:17px}h3{font-size:15px}.topActions,.buttonRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reportFreshness{color:var(--text-muted);font-size:12px;white-space:nowrap}.primaryButton,.ghostButton,.textButton,.iconButton{min-height:36px;border-radius:8px;padding:0 14px;border:1px solid transparent;background:var(--primary);color:var(--text-on-primary)}.ghostButton{color:var(--text-strong);border-color:var(--border-strong);background:var(--card-bg)}.warnButton{color:var(--danger-strong);border-color:var(--danger-border);background:var(--danger-bg)}.textButton{min-height:auto;padding:0;border:0;color:var(--primary);background:transparent}.iconButton{width:34px;padding:0;display:grid;place-items:center}.small{min-height:30px;padding:0 10px;font-size:13px}.filterBar{position:sticky;top:0;z-index:5;display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:12px;border:1px solid var(--border-color);border-radius:8px;background:color-mix(in srgb,var(--surface-bg) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}label{display:grid;gap:5px;color:var(--text-secondary);font-size:12px}input,select{min-height:34px;min-width:130px;border:1px solid var(--border-strong);border-radius:7px;padding:6px 9px;color:var(--text-strong);background:var(--card-bg)}.page{display:grid;gap:14px}.notice{margin-bottom:12px;padding:10px 12px;border-radius:8px}.notice.error{border:1px solid var(--danger-border);color:var(--danger-strong);background:var(--danger-bg)}.notice.success{border:1px solid var(--success-border);color:var(--success-strong);background:var(--success-bg)}.notice.working{border:1px solid var(--info-border);color:var(--info-strong);background:var(--info-bg)}.panel,.metric{border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg);box-shadow:0 10px 26px var(--shadow-color)}.panel{min-width:0;padding:16px}.panelHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.chartShell{min-width:0;overflow:hidden}.sectionTitle{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.sectionTitle small{color:var(--text-secondary)}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metricGrid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.annualStrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.annualStrip>div{min-width:0;padding:12px 14px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-bg)}.annualStrip span{display:block;margin-bottom:5px;color:var(--text-secondary);font-size:12px}.annualStrip strong{display:block;overflow:hidden;color:var(--text-strong);font-size:19px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.metric{min-height:116px;padding:16px;display:grid;align-content:space-between}.metric span{color:var(--text-secondary)}.metric strong{font-size:26px;line-height:1.1}.metric.good strong,.pos{color:var(--success)}.metric.warn strong,.neg{color:var(--danger)}.metric.invest strong{color:var(--info)}.controlGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.controlTile{min-height:96px;display:grid;align-content:space-between;gap:8px;padding:14px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-bg)}.controlTile span,.controlTile em{color:var(--text-secondary);font-size:13px;font-style:normal}.controlTile strong{color:var(--text-strong);font-size:23px}.controlTile.good strong{color:var(--success)}.controlTile.warn strong{color:var(--danger)}.controlTile.invest strong{color:var(--info)}.twoCol{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:14px}.twoCol.wideLeft{grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr)}.recordsListPanel{min-height:0;max-height:clamp(360px,48dvh,620px);overflow:auto}.recordsListPanel .panelHead{position:sticky;top:0;z-index:2;background:var(--card-bg)}.recordToolsPanel{display:grid;gap:12px}.recordTopGrid{display:grid;gap:14px}.recordInspectorInline{min-width:0}.quickScopeBar{display:inline-flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;padding:4px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-subtle)}.quickScopeBar button{min-height:30px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--text-muted);font-weight:700;cursor:pointer}.quickScopeBar button.active{background:var(--primary);color:var(--text-on-primary)}.merchantRuleWorkbench{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft)}.merchantRuleGuide{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--info-border);border-radius:8px;color:var(--text-muted);background:var(--info-bg);font-size:12px}.merchantRuleGuide strong{color:var(--info-strong)}.merchantRuleList{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:10px}.merchantRuleCard{min-width:0;display:grid;align-content:start;gap:12px;padding:14px;border:1px solid var(--border-color);border-radius:9px;background:var(--surface-bg)}.merchantRuleCardHead,.merchantRuleCardFoot{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.merchantRuleCardHead>div:first-child{min-width:0;display:grid;gap:4px}.merchantRuleCardHead>div:first-child>strong{overflow:hidden;color:var(--text-strong);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.merchantRuleCardHead>div:first-child>span{overflow:hidden;color:var(--text-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.merchantRuleCardHead em{margin-left:6px;font-style:normal}.merchantRuleMetrics{flex:0 0 auto;display:grid;justify-items:end;gap:3px}.merchantRuleMetrics span{color:var(--text-secondary);font-size:11px}.merchantRuleMetrics strong{color:var(--text-strong);font-size:16px}.merchantRuleCompare{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,1fr);gap:10px}.merchantCurrentResult,.merchantTargetCategory{min-width:0;display:grid;align-content:start;gap:5px;padding:10px;border:1px solid var(--border-soft);border-radius:7px;background:var(--card-bg)}.merchantCurrentResult small,.merchantTargetCategory>span{color:var(--text-secondary);font-size:11px}.merchantCurrentResult strong{overflow-wrap:anywhere;color:var(--text-strong);font-size:13px}.merchantCurrentResult em{color:var(--text-secondary);font-size:11px;font-style:normal;line-height:1.35}.merchantTargetCategory select{width:100%;min-width:0}.merchantRuleCardFoot{align-items:flex-end}.merchantRuleFeedback{min-width:0;flex:1 1 auto;display:grid;gap:5px}.merchantRuleFeedback:empty{display:none}.merchantRuleActions{flex:0 0 auto}.saveResult{color:var(--text-secondary);font-size:11px;line-height:1.35}.saveResult.changed{color:var(--success-strong)}.savePreview{padding:5px 7px;border-radius:6px;color:var(--warn-text);background:var(--warn-bg);font-size:11px;line-height:1.35}.subPanelHead{display:flex;justify-content:space-between;align-items:end;gap:12px}.subPanelHead div{display:grid;gap:2px}.subPanelHead strong{font-size:15px}.subPanelHead small{color:var(--text-secondary)}.comboChart{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:12px;align-items:center}.comboChart svg{width:100%;min-height:240px}.axis{stroke:var(--chart-axis)}.barIncome{fill:var(--chart-income)}.barExpense{fill:var(--chart-expense)}.periodPick text{fill:var(--text-muted);font-size:10px}.periodPick.active rect:first-child{fill:var(--chart-highlight)}.periodPick.active .barIncome,.periodPick.active .barExpense{stroke:var(--text-primary);stroke-width:1.5}.saveLine{fill:none;stroke:var(--chart-line);stroke-width:2.2}.saveDot{fill:var(--chart-line)}.rateLabel{fill:var(--chart-line);font-size:10px}.legend{display:grid;gap:10px;color:var(--text-secondary);font-size:13px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px}.legendIncome{background:var(--chart-income)}.legendExpense{background:var(--chart-expense)}.legendLine{background:var(--chart-line)}.issueList,.accountList,.actionGrid,.toolGrid{display:grid;gap:8px}.taskList{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.taskItem{min-height:118px;display:grid;align-content:start;gap:6px;border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:8px;padding:12px;color:var(--text-strong);background:var(--surface-bg);text-align:left}.taskItem.high{border-left-color:var(--chart-expense)}.taskItem span,.taskItem em{color:var(--text-secondary);font-style:normal;font-size:12px}.taskItem strong{font-size:15px}.taskItem b{margin-top:auto;color:var(--primary);font-size:13px}.taskActions{display:flex;align-items:center;gap:8px;margin-top:6px}.transitWorkbench{display:grid;gap:12px;margin-top:14px;padding:14px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-subtle)}.activeTransitPanel{border-color:var(--primary);box-shadow:0 0 0 3px var(--chart-highlight);scroll-margin-top:86px}.compactHead{margin-bottom:0}.compactHead h3{margin:0 0 4px;font-size:16px}.transitCandidateTable .thead,.transitCandidateTable .trow{grid-template-columns:128px minmax(130px,1fr) minmax(160px,1.2fr) 120px 110px 72px}.transitTable .thead,.transitTable .trow{min-width:640px;grid-template-columns:92px 72px minmax(110px,1fr) minmax(110px,1fr) minmax(120px,1fr) 86px}.transitTable .trow span,.transitTable .trow strong{min-width:0}.transitTable .trow button{justify-self:end}.issueList button,.accountList button,.accountCard,.actionButton{border:1px solid var(--border-color);border-radius:8px;padding:10px;text-align:left;background:var(--surface-bg);color:var(--text-strong)}.issueList span,.accountList span,.accountCard span,.accountCard em{display:block;margin-top:4px;color:var(--text-secondary);font-size:12px;font-style:normal}.cardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.accountCard b{display:block;margin-top:10px;font-size:18px}.statement{display:grid;gap:12px}.statement.compact{gap:8px}.statementGroup,.statementSubgroup{border:1px solid var(--border-color);border-radius:8px;background:var(--surface-bg);overflow:hidden}.statementSubgroup{margin:8px;background:var(--card-bg)}summary{min-height:42px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}summary span{font-weight:700}summary em{color:var(--text-secondary);font-style:normal;font-size:12px}.dataTable{display:grid;gap:2px;overflow-x:auto}.thead,.trow{display:grid;gap:10px;align-items:center;min-width:760px;min-height:38px;padding:8px 10px}.thead{color:var(--text-secondary);font-size:12px;background:var(--table-head-bg)}.trow{width:100%;border:0;border-radius:6px;color:var(--text-strong);background:var(--card-bg);text-align:left}button.trow:hover{background:var(--surface-soft)}button.trow.focused{border:1px solid var(--primary);background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.fixedCols .thead,.fixedCols .trow{grid-template-columns:minmax(220px,1.3fr) minmax(100px,.7fr) 80px 100px 120px 100px}.assetValuationPanel{margin-top:14px}.assetValuationTable{overflow-x:auto}.assetValuationTable .thead,.assetValuationTable .trow{min-width:980px;grid-template-columns:minmax(150px,1.2fr) 90px 110px repeat(4,minmax(120px,.8fr)) 100px}.totalRow{background:var(--surface-soft)}.transactions .thead,.transactions .trow{grid-template-columns:132px minmax(160px,1fr) 120px minmax(180px,1.2fr) 120px 108px 150px}.recordsListPanel .dataTable{overflow-x:visible}.recordsListPanel .thead,.recordsListPanel .trow{min-width:0}.recordsListPanel .transactions .thead,.recordsListPanel .transactions .trow{grid-template-columns:96px 90px 72px minmax(120px,1fr) 96px 84px 88px;gap:8px}.ruleTable .thead,.ruleTable .trow{grid-template-columns:64px 70px minmax(170px,1fr) 82px minmax(150px,.9fr) minmax(300px,1.8fr) 126px}.ruleTable code,.ruleDslGuide code{display:inline-block;max-width:100%;overflow-wrap:anywhere;border-radius:6px;padding:2px 6px;background:var(--primary-soft);color:var(--primary-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.ruleTable em{display:block;margin-top:3px;overflow-wrap:anywhere;color:var(--text-secondary);font-style:normal;font-size:11px}.ruleDslGuide{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.markerSummary{display:flex;gap:10px;align-items:center;margin:0 0 12px;color:var(--text-muted)}.markerSummary strong{color:var(--text-strong)}.markerCategoryTable .thead,.markerCategoryTable .trow{grid-template-columns:minmax(180px,1.2fr) minmax(150px,1fr) 70px 100px 100px 126px}.tagTable .thead,.tagTable .trow{grid-template-columns:minmax(180px,1fr) 80px minmax(280px,1.6fr) 126px}.tagCatalog{margin-top:12px}.dslForm textarea{width:100%;min-height:88px;resize:vertical}.dslHelp{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 16px;color:var(--text-secondary);font-size:12px}.dslHelp span{font-weight:700}.dslHelp code{border-radius:6px;padding:2px 6px;background:var(--primary-soft);color:var(--primary-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.conditionBuilder{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-subtle)}.conditionBuilderHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.conditionBuilderHead div{display:grid;gap:2px}.conditionBuilderHead small,.dslPreview span{color:var(--text-secondary)}.conditionRow{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(130px,.8fr) minmax(180px,1.5fr) 36px;gap:8px;align-items:center}.dslPreview{display:grid;gap:5px}.dslPreview code{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;padding:9px 10px;background:var(--card-bg);color:var(--primary-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.advancedRuleSettings{margin-top:12px;padding:10px 0}.advancedRuleSettings summary{cursor:pointer;color:var(--text-secondary);font-weight:700}.advancedRuleSettings[open] summary{margin-bottom:12px}.trow.muted{color:var(--text-secondary);background:var(--surface-subtle)}.inlineSearch input{min-width:220px}.scopeBar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:12px;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-subtle);color:var(--text-muted)}.scopeBar.compact{grid-template-columns:1fr;gap:6px}.scopeBar>strong{color:var(--text-strong);white-space:nowrap}.scopeBar>div{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.scopeBar span{display:inline-flex;gap:4px;max-width:100%;padding:4px 8px;border-radius:999px;background:var(--primary-soft);font-size:12px}.scopeBar b{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scopeBar small{color:var(--text-secondary);white-space:nowrap}.scopeBar .scopeActions{justify-content:flex-end;align-items:center}.scopeBar .scopeActions .ghostButton{padding:5px 9px}.holdings .thead,.holdings .trow{grid-template-columns:minmax(220px,1.5fr) 90px 100px 110px 110px 110px}.flows .thead,.flows .trow{grid-template-columns:90px minmax(160px,1fr) 100px 100px 100px}.zipTable .thead,.zipTable .trow{grid-template-columns:minmax(240px,1.4fr) 90px 90px 150px}.trow span,.trow strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.split{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px}.accountList{max-height:560px;overflow:auto}.accountList button.selected{border-color:var(--primary);background:var(--primary-soft)}.accountDetail{min-width:0;display:grid;align-content:start;gap:12px}.detailHero{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;border-radius:8px;background:var(--surface-soft)}.detailHero span,.detailHero small{display:block;color:var(--text-secondary)}.detailHero strong{display:block;margin:4px 0;font-size:20px}.detailHero b{font-size:26px}.accountActions{display:flex;flex-wrap:wrap;gap:8px}.miniGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.miniGrid span{min-height:54px;padding:10px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);background:var(--surface-bg)}.miniGrid strong{display:block;margin-top:4px;color:var(--text-strong)}.flowCards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.flowCards span{min-height:58px;padding:10px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);background:var(--surface-bg)}.flowCards strong{display:block;margin-top:5px;color:var(--text-strong)}.flowCards strong.pos{color:var(--success)}.flowCards strong.neg{color:var(--danger)}.subPanel{display:grid;gap:10px}.recordFilters,.formGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.formGrid.compact{align-items:end;grid-template-columns:minmax(150px,190px) minmax(120px,160px) minmax(220px,1fr) auto}.inlineActions,.chipRow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.statusChip{display:inline-flex;align-items:center;min-height:30px;padding:4px 10px;border:1px solid var(--border-color);border-radius:999px;color:var(--primary);background:var(--primary-soft);font-size:13px;font-weight:700}.semanticMeasureTable .thead,.semanticMeasureTable .trow{grid-template-columns:minmax(150px,.8fr) minmax(130px,.7fr) minmax(280px,1.8fr)}.warningText{margin:12px 0 0;color:var(--danger)}.workspaceSwitch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:6px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-subtle)}.workspaceSwitch button{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:12px 16px;border:0;border-radius:7px;color:var(--text-secondary);background:transparent;text-align:left}.workspaceSwitch button.active{color:var(--primary-strong);background:var(--card-bg);box-shadow:0 2px 9px var(--shadow-color)}.workspaceSwitch small,.rawFactsTable em,.fieldCatalogTable em{display:block;color:var(--text-secondary);font-size:11px;font-style:normal}.rawFactFilters,.fieldCatalogFilters,.trendControls{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.rawFactSearch{grid-column:span 2}.rawFactLayout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:14px;align-items:start}.rawFactList,.rawFactInspector{min-width:0}.rawFactsTable .thead,.rawFactsTable .trow{grid-template-columns:minmax(130px,.8fr) minmax(110px,.7fr) minmax(150px,1fr) minmax(220px,1.5fr) minmax(120px,.8fr) minmax(100px,.6fr);min-width:900px}.rawFactsTable .trow>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.rawFieldList{display:grid;gap:1px;max-height:720px;overflow:auto;border:1px solid var(--border-soft);border-radius:7px}.rawFieldList>div{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(0,1.4fr);gap:12px;padding:9px 10px;background:var(--surface-bg)}.rawFieldList span{overflow-wrap:anywhere}.rawFieldList .rawJsonField{grid-template-columns:1fr}.rawJsonField pre{max-height:360px;overflow:auto;margin:0;padding:10px;border-radius:6px;color:var(--text-primary);background:var(--surface-soft);white-space:pre-wrap;overflow-wrap:anywhere}.paginationBar{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:14px}.fieldCatalogFilters{grid-template-columns:minmax(260px,1.5fr) minmax(170px,.7fr) auto;align-items:end;margin-bottom:14px}.checkLabel{display:flex;flex-direction:row;align-items:center;min-height:40px}.checkLabel input{width:auto}.fieldCatalogTable .thead,.fieldCatalogTable .trow{grid-template-columns:minmax(175px,1fr) minmax(120px,.75fr) minmax(260px,1.7fr) minmax(100px,.6fr) minmax(120px,.7fr) 72px;min-width:950px}.editableField{color:var(--success-strong);font-weight:700}.fieldDefinitionHint{display:grid;gap:5px;margin:0 16px 16px;padding:12px;border-radius:7px;background:var(--surface-soft)}.overrideHistory{margin:0 16px 16px}.overrideHistory p{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(120px,.8fr) minmax(240px,1.4fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--border-soft)}.trendControls{grid-template-columns:repeat(2,minmax(180px,260px))}.categoryTrendTable .thead,.categoryTrendTable .trow{grid-template-columns:minmax(200px,1.4fr) 90px 120px 120px 120px 78px;min-width:800px}.quickActionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quickAction{display:grid;gap:5px;min-height:112px;padding:14px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);background:var(--surface-bg);text-align:left}.quickAction:hover{border-color:var(--primary);background:var(--primary-soft)}.quickAction strong{color:var(--text-strong);font-size:16px}.quickAction span{color:var(--text-secondary);font-size:12px}.quickAction em{align-self:end;color:var(--primary);font-size:12px;font-style:normal;font-weight:700}.advancedPanel{padding:0}.advancedPanel>summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:16px;color:var(--text-strong);font-weight:800}.advancedPanel>summary small{color:var(--text-secondary);font-weight:500}.advancedPanel>*:not(summary){margin:0 16px 16px}.syncResult{margin-top:10px;color:var(--primary);font-weight:700}.closeMatrix{display:grid;gap:6px;overflow-x:auto}.closeMatrix .thead,.closeMatrix .trow{min-width:560px;display:grid;grid-template-columns:110px repeat(4,1fr);gap:8px;align-items:center;padding:9px 10px}.lockedMark,.openMark{border-radius:999px;padding:4px 8px;text-align:center;font-size:12px;font-weight:800}.lockedMark{color:var(--primary);background:var(--primary-soft)}.openMark{color:var(--warn-text);background:var(--warn-bg)}.stickyPanel{align-self:start;position:sticky;top:84px}.recordSummaryCard{display:grid;gap:6px;padding:12px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-bg)}.recordSummaryCard.compact{margin-bottom:10px}.recordSummaryCard span,.recordSummaryCard em{color:var(--text-secondary);font-style:normal;overflow-wrap:anywhere}.recordSummaryCard strong{font-size:22px}.recordSummaryCard b{color:var(--primary)}.ruleSimple{display:grid;gap:12px}.dryRunSummary{display:grid;gap:6px;padding:10px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-subtle)}.dryRunSummary span{color:var(--text-secondary)}.inspector{display:grid;gap:14px}dl{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px 10px;margin:0}dt{color:var(--text-secondary)}dd{min-width:0;margin:0;overflow-wrap:anywhere}.ruleBox,.dryRun,.actionLog{border:1px solid var(--border-color);border-radius:8px;padding:12px;background:var(--surface-bg)}.ruleForm{display:grid;gap:9px;margin-top:10px}.ruleScopePreview{display:grid;gap:6px;padding:10px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-soft)}.ruleScopePreview>strong{color:var(--text-strong);font-size:13px}.ruleScopePreview>div{display:flex;flex-wrap:wrap;gap:6px}.ruleScopePreview span{display:inline-flex;gap:4px;max-width:100%;padding:4px 8px;border-radius:999px;background:var(--card-bg);font-size:12px}.ruleScopePreview b{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}pre{max-height:280px;overflow:auto;margin:10px 0 0;white-space:pre-wrap;color:var(--text-strong)}.fullWidth{margin-top:12px}.actionGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.actionButton{min-height:44px;text-align:center}.toolGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.toolGrid span{padding:9px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-bg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.emptyState{min-height:120px;display:grid;place-items:center;color:var(--text-secondary);border:1px dashed var(--border-strong);border-radius:8px;background:var(--surface-bg)}.modalBackdrop,.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;background:var(--modal-backdrop)}.modal,.modalContent{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:8px;background:var(--card-bg);box-shadow:0 24px 60px var(--modal-shadow)}.modal header,.modal footer,.modalContent h2{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border-color)}.modal footer,.modalActions{justify-content:flex-end;border-top:1px solid var(--border-color);border-bottom:0}.modal .formGrid,.modalContent .formGrid{padding:16px}.modalActions{display:flex;align-items:center;gap:10px;padding:16px}@media (max-width: 980px){.appShell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{padding:18px 14px 38px}.metricGrid,.metricGrid.three,.twoCol,.twoCol.wideLeft,.split,.miniGrid,.comboChart{grid-template-columns:1fr}.stickyPanel{position:static}.recordsListPanel{max-height:none;overflow:visible}.recordsListPanel .panelHead{position:static}}@media (max-width: 620px){.topbar,.panelHead,.detailHero{align-items:stretch;flex-direction:column}.nav{grid-template-columns:1fr 1fr}input,select{width:100%}}@media (min-width: 769px){.hidden-desktop{display:none!important}}@media (max-width: 768px){.authCard{padding:24px}.topActions .reportFreshness,.userMenu em{display:none}.viewSwitch{order:-1}.usersLayout{grid-template-columns:1fr}.hidden-mobile{display:none!important}.appShell{grid-template-columns:1fr;height:100vh;height:100dvh}.mainArea{padding-bottom:60px}.content{padding:16px}.bottomNav{position:fixed;bottom:0;left:0;width:100%;height:60px;background-color:var(--card-bg);border-top:1px solid var(--border-color);display:flex;justify-content:space-around;align-items:center;z-index:100;padding-bottom:env(safe-area-inset-bottom)}.bottomNavItem{display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:none;color:var(--text-secondary);font-size:10px;padding:8px 4px;cursor:pointer}.workspaceSwitch,.rawFactLayout{grid-template-columns:1fr}.rawFactFilters,.fieldCatalogFilters,.trendControls{grid-template-columns:1fr 1fr}.rawFactSearch,.fieldCatalogFilters>input{grid-column:1 / -1}.rawFactInspector{order:-1}.rawFieldList{max-height:420px}.quickActionGrid{grid-template-columns:1fr}.bottomNavItem.active{color:var(--primary)}.bottomNavItem i,.bottomNavItem svg{color:inherit}.topbar{padding:16px;flex-direction:column;align-items:flex-start;gap:12px}.topActions{width:100%;justify-content:space-between}.reportFreshness{flex:1 0 100%}.topActions .ghostButton,.topActions .primaryButton{flex:1 1 auto;padding:0 10px}.conditionRow{grid-template-columns:1fr 1fr 36px}.conditionRow input{grid-column:1 / -1;grid-row:2}.twoCol,.metricGrid{grid-template-columns:1fr}.annualStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.annualStrip strong{font-size:17px}.filterBar{flex-direction:column;align-items:stretch}.filterBar label{display:flex;justify-content:space-between;width:100%}.chartShell>div{min-height:300px}.taskList,.flowCards{grid-template-columns:1fr}.taskItem{min-height:auto}.taskActions{align-items:stretch;flex-direction:column}.transitWorkbench{padding:12px}.activeTransitPanel{scroll-margin-top:16px}.transitTable .thead,.transitCandidateTable .thead{display:none}.transitTable .trow,.transitCandidateTable .trow{display:grid;grid-template-columns:1fr auto;grid-template-areas:none;gap:6px 10px;min-width:0;align-items:start}.transitTable .trow strong:first-child{font-size:15px}.transitTable .trow span:nth-child(2):before{content:"笔数 ";color:var(--text-secondary)}.transitTable .trow span:nth-child(3):before{content:"转入 ";color:var(--text-secondary)}.transitTable .trow span:nth-child(4):before{content:"转出 ";color:var(--text-secondary)}.transitTable .trow span:nth-child(5):before{content:"未清 ";color:var(--text-secondary)}.transitCandidateTable .trow span:nth-child(1),.transitCandidateTable .trow span:nth-child(2),.transitCandidateTable .trow span:nth-child(4){color:var(--text-secondary);font-size:12px}.transitCandidateTable .trow span:nth-child(3){grid-column:1 / -1;font-weight:600}.transitCandidateTable .trow button{justify-self:end}.sectionTitle{align-items:flex-start;flex-direction:column;gap:4px}.modalOverlay{align-items:flex-end}.modalContent{width:100%;border-radius:16px 16px 0 0;max-height:85vh;overflow-y:auto;padding:24px;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.dataTable{border:none}.dataTable .thead{display:none}.dataTable .trow{display:grid;grid-template-columns:1fr auto;grid-template-areas:"date amount" "desc account" "cat source";gap:4px 12px;padding:12px;border:1px solid var(--border-color);border-radius:8px;margin-bottom:8px;background:var(--card-bg)}.scopeBar{grid-template-columns:1fr;align-items:start}.scopeBar>div{gap:5px}.scopeBar span{max-width:100%}.scopeBar .scopeActions{justify-content:flex-start}.quickScopeBar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.quickScopeBar button{width:100%}.dataTable.transactions .trow span:nth-child(1){grid-area:date;font-size:12px;color:var(--text-secondary)}.dataTable.transactions .trow span:nth-child(2){grid-area:account;text-align:right;font-size:12px}.dataTable.transactions .trow span:nth-child(3){grid-area:source;text-align:right;font-size:12px;color:var(--text-secondary)}.dataTable.transactions .trow span:nth-child(4){grid-area:desc;font-weight:500}.dataTable.transactions .trow span:nth-child(5){grid-area:cat;font-size:12px}.dataTable.transactions .trow strong{grid-area:amount;text-align:right;font-size:16px}.dataTable.transactions .trow span:nth-child(7){display:none}.dataTable.ruleTable .trow{grid-template-areas:"desc amount" "cat source" "date account"}.dataTable.ruleTable .trow span:nth-child(1){grid-area:date;font-size:12px;color:var(--text-secondary)}.dataTable.ruleTable .trow span:nth-child(2){grid-area:amount;text-align:right;font-size:12px}.dataTable.ruleTable .trow strong{grid-area:desc}.dataTable.ruleTable .trow span:nth-child(4){grid-area:source;text-align:right;font-size:12px}.dataTable.ruleTable .trow span:nth-child(5){grid-area:cat;font-size:12px}.dataTable.ruleTable .trow span:nth-child(6){grid-area:account;font-size:12px}.dataTable.ruleTable .trow .inlineActions{justify-self:end}.dataTable.markerCategoryTable .trow{grid-template-areas:"desc amount" "cat source" "date account"}.dataTable.markerCategoryTable .trow strong{grid-area:desc}.dataTable.markerCategoryTable .trow span:nth-child(2){grid-area:cat;font-size:12px}.dataTable.markerCategoryTable .trow span:nth-child(3){grid-area:date;font-size:12px;color:var(--text-secondary)}.dataTable.markerCategoryTable .trow span:nth-child(4){grid-area:source;text-align:right;font-size:12px}.dataTable.markerCategoryTable .trow span:nth-child(5){grid-area:amount;text-align:right;font-weight:700}.dataTable.markerCategoryTable .trow .inlineActions{grid-area:account;justify-self:end}.dataTable.tagTable .trow{grid-template-areas:"desc amount" "cat account"}.dataTable.tagTable .trow strong{grid-area:desc}.dataTable.tagTable .trow span:nth-child(2){grid-area:amount;text-align:right}.dataTable.tagTable .trow span:nth-child(3){grid-area:cat;font-size:12px}.dataTable.tagTable .trow button{grid-area:account;justify-self:end}.merchantRuleList{grid-template-columns:1fr}.merchantRuleCardHead{align-items:start}.merchantRuleCompare{grid-template-columns:1fr}.merchantRuleCardFoot{align-items:stretch;flex-direction:column}.merchantRuleActions,.merchantRuleActions .inlineActions{width:100%}.merchantRuleActions .inlineActions button{flex:1 1 140px}.transitTable .trow,.transitCandidateTable .trow{grid-template-areas:none;grid-template-columns:1fr auto;min-width:0}.transitTable .trow strong,.transitTable .trow span,.transitTable .trow button,.transitCandidateTable .trow span,.transitCandidateTable .trow strong,.transitCandidateTable .trow button{grid-area:auto}.transitTable .trow button{grid-column:1 / -1;justify-self:stretch;text-align:center}.transitCandidateTable .trow span:nth-child(3){grid-column:1 / -1}}
