:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#17243c;background:#f5f7fb;font-size:16px;font-synthesis:none;--blue:#285b9a;--muted:#64748b;--line:#e1e6ed;--navy:#18263a;--radius:8px}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #85a9ff;outline-offset:3px}button{border:0}button svg{pointer-events:none}svg{vertical-align:middle}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.muted{color:var(--muted)}.small{font-size:.8125rem;line-height:1.6}.workspace .small{display:block}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:32px 20px 24px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-size:1.24rem;font-weight:750;letter-spacing:-.8px}.brand-light{font-weight:420}.brand-symbol{display:flex;align-items:flex-end;justify-content:center;gap:3px;background:var(--blue);width:31px;height:31px;padding:8px;border-radius:9px}.brand-symbol i{display:block;width:4px;background:#fff;border-radius:1px}.brand-symbol i:nth-child(1){height:7px}.brand-symbol i:nth-child(2){height:11px}.brand-symbol i:nth-child(3){height:16px}.workspace{margin:36px 0 26px;display:flex;align-items:center;gap:11px;font-size:.875rem;padding:13px 10px;background:#f7f9fd;border:1px solid #ecf0f6;border-radius:11px}.avatar{display:grid;place-items:center;border-radius:9px;background:#e5ecfb;color:#496086;width:35px;height:35px;font-weight:600}.nav-label{font-size:.75rem;color:#929bb0;padding:0 12px;margin:12px 0}.nav-item{display:flex;align-items:center;gap:11px;width:100%;border-radius:9px;padding:13px 12px;color:#65728b;font-size:.875rem;margin:4px 0;background:transparent;text-align:left}.nav-item:hover{background:#f5f7fb}.nav-item.active{background:#eaf0ff;color:var(--blue);font-weight:600}.nav-item .count{margin-left:auto;background:#fff0d6;color:#a36713;font-size:.75rem;border-radius:6px;padding:2px 6px}.sidebar-bottom{margin-top:auto;padding:24px 10px 0;font-size:.8125rem;border-top:1px solid var(--line)}.sidebar-bottom p{font-size:.75rem;color:var(--muted);margin:7px 0 14px}.local-status{display:flex;align-items:center;gap:7px;color:#5c6d84}.local-status>span,.local-dot{width:6px;height:6px;background:#26a484;border-radius:50%;display:inline-block}.shutdown{font-size:.75rem!important;color:#7f8ca1!important;padding:0!important}main{margin-left:224px;min-height:100vh}.topbar{height:70px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--muted);border-bottom:1px solid var(--line);background:rgba(255,255,255,.7)}.topbar-end{display:flex;gap:9px;align-items:center;font-size:.75rem}.divider{height:12px;border-left:1px solid #d5deeb;margin:0 7px}#app{padding:36px 42px 52px;max-width:1580px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:.75rem;letter-spacing:1.5px;color:#8a96aa;margin:0 0 9px;font-weight:550}h1{font-size:1.75rem;letter-spacing:-.8px;font-weight:650;margin:0 0 8px}h2{font-size:1rem;font-weight:620;margin:0;letter-spacing:-.2px}h3{font-size:.9375rem;font-weight:600;margin:0 0 14px}p{line-height:1.7}h1+p{color:var(--muted);font-size:.875rem;margin:0}.actions{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.button{display:inline-flex;gap:8px;align-items:center;justify-content:center;border-radius:8px;padding:10px 16px;font-size:.875rem;line-height:1.45;background:#fff;border:1px solid #dfe5ef;color:#43536e;font-weight:550;white-space:nowrap}.button:hover{background:#f6f8fc}.button.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 3px 7px #2860e619}.button.primary:hover{background:#204fc3}.button.subtle{border-color:transparent;background:#edf2fc;color:#3d61a3}.quiet{background:transparent;padding:6px 0;color:var(--blue);font-size:.875rem;display:inline-flex;align-items:center;gap:5px}.month-select,select,input[type=search],input[type=text]{border:1px solid #dfe5ef;background:#fff;border-radius:8px;padding:10px 12px;color:#43536e;font-size:.875rem;min-height:42px}.month-select{font-weight:550;min-width:142px}select{cursor:pointer}select:not([multiple]){appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7.5 5 5 5-5' fill='none' stroke='%237f8da3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px}@media(forced-colors:active){select:not([multiple]){appearance:auto;-webkit-appearance:auto;background-image:none;padding-right:12px}}input::placeholder{color:#9aa4b6}.stats{display:grid;grid-template-columns:1.28fr 1fr 1fr;gap:18px;margin-bottom:22px}.stat{padding:24px;border:1px solid var(--line);background:#fff;border-radius:var(--radius);min-width:0}.stat.primary-stat{background:linear-gradient(120deg,#edf3ff,#f8faff);border-color:#dae5fc}.stat-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;font-size:.875rem;color:#586780}.stat-top .icon{color:#8d9fc5}.stat-number{font-size:2.25rem;font-weight:660;letter-spacing:-1.3px;font-variant-numeric:tabular-nums;margin:0 0 13px;line-height:1.15;white-space:nowrap}.stat-number .currency{font-size:1.3rem;font-weight:420;color:#6379a0;letter-spacing:0;margin-right:5px}.stat-footer{font-size:.75rem;line-height:1.7;color:#8290a7;min-height:20px}.stat-footer .positive{color:#138774}.pill{font-size:.75rem;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:5px;white-space:nowrap;background:#eff3f9;color:#6b7e9a}.pill.amber{color:#ae7820;background:#fff5df}.pill.green{color:#197d65;background:#e9f6f0}.pill.blue{color:var(--blue);background:#edf2ff}.badge-source{font-size:.75rem;display:inline-grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#e9f4ff;color:#2689e6;flex-shrink:0}.badge-source.wechat{background:#eaf7ef;color:#26955c}.charts{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;margin-bottom:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:23px 24px 0}.panel-head .muted{font-size:.75rem}.chart-body{padding:20px 18px 12px}.trend-chart{width:100%;height:246px;overflow:visible}.trend-chart text{font-family:inherit;font-size:11px;fill:#8996ab}.trend-chart .grid{stroke:#edf0f6;stroke-dasharray:3 4}.trend-chart [role=button]{cursor:pointer}.trend-chart [role=button]:hover rect{fill:#2860e6}.chart-legend{display:flex;align-items:center;gap:16px;font-size:.75rem;color:#8996ab;padding:0 24px 20px;flex-wrap:wrap}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:6px}.category-list{padding:23px 24px 18px;display:grid;gap:16px}.category-row{display:grid;grid-template-columns:80px 1fr 93px;align-items:center;gap:12px;font-size:.8125rem}.category-label{display:flex;align-items:center;gap:8px;white-space:nowrap}.category-label i{width:6px;height:6px;border-radius:50%;flex-shrink:0}.category-track{height:5px;border-radius:4px;background:#f0f3f8;overflow:hidden}.category-fill{height:100%;border-radius:4px}.category-amount{font-size:.8125rem;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.notice{padding:16px 20px;border:1px solid #f0e5ca;background:#fffbf1;border-radius:10px;display:flex;align-items:center;gap:12px;margin-bottom:22px;font-size:.8125rem;color:#846734;line-height:1.7}.notice .icon{color:#bd9747}.notice .quiet{margin-left:auto;white-space:nowrap;color:#987122;font-size:.8125rem}.notice.blue{border-color:#dce6fc;background:#f1f6ff;color:#5b7095}.table-wrap{overflow:auto;padding:15px 0 0}.panel>.table-wrap:first-child{padding-top:0;border-radius:var(--radius) var(--radius) 0 0}.panel>.table-wrap:first-child th{border-top:0}table{border-collapse:collapse;width:100%;font-size:.875rem;white-space:nowrap}th{font-size:.75rem;color:#8b97aa;font-weight:450;text-align:left;padding:12px 24px;background:#fafbfd;border-top:1px solid #f0f3f8;border-bottom:1px solid #edf1f7}td{padding:16px 24px;border-bottom:1px solid #eff2f7;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f9fbff}tr[data-action]{cursor:pointer}td.merchant-cell{max-width:330px;min-width:160px}.merchant-name{max-width:280px;overflow:hidden;text-overflow:ellipsis;display:block;font-size:.875rem;font-weight:520}.description{font-size:.75rem;color:#9aa4b5;max-width:280px;overflow:hidden;text-overflow:ellipsis;margin-top:5px}.amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:550}.refund-amount{color:#148a75}.source-name{display:flex;align-items:center;gap:7px;font-size:.8125rem;color:#64748c}.table-date{font-size:.8125rem;color:#8692a7}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.search-box{flex:1;position:relative;min-width:210px}.search-box .icon{position:absolute;left:12px;top:12px;width:18px;height:18px;color:#8c9bb1}.search-box input{padding-left:39px;width:100%}.filters select{min-width:118px}.table-footer{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px 24px;border-top:1px solid var(--line);font-size:.8125rem;color:#8894a7}.pagination{display:flex;align-items:center;gap:12px}.pagination button{padding:6px 9px}.empty{padding:48px 24px;text-align:center;color:#8996ab}.empty .icon{width:34px;height:34px;color:#b3c0d5;margin-bottom:14px}.empty h3{color:#52637f;font-size:1rem;margin:0 0 8px}.empty p{font-size:.875rem;margin:0 auto 18px;max-width:450px}.import-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.dropzone{margin:24px;border:1.5px dashed #c9d6ee;background:#f8faff;border-radius:12px;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 20px;transition:background .15s,border-color .15s}.dropzone.dragging{background:#eaf1ff;border-color:#2860e6}.upload-symbol{width:54px;height:54px;border-radius:15px;background:#e8effd;color:var(--blue);display:grid;place-items:center;margin-bottom:20px}.upload-symbol .icon{width:28px;height:28px}.dropzone h3{margin:0 0 8px}.dropzone p{font-size:.8125rem;color:#8b98ae;margin:0 0 20px}.file-list{padding:0 24px 24px}.file-item{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.8125rem}.file-item .file-name{overflow:hidden;text-overflow:ellipsis;flex:1;white-space:nowrap}.file-item .icon{color:#7f92b6}.file-item button{color:#8894a7}.import-action{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font-size:.8125rem;color:#8a96aa}.guide-list{padding:24px;display:grid;gap:27px}.guide-item{display:flex;gap:13px;align-items:flex-start}.guide-item>span{font-size:.75rem;border:1px solid #dce4f2;background:#f7f9fc;color:#7e92b0;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.guide-item h3{font-size:.875rem;margin:2px 0 7px}.guide-item p{font-size:.8125rem;color:#8b96a9;margin:0}.section-gap{margin-top:24px}.import-result{background:#edf8f2;border:1px solid #d3ecdf;border-radius:10px;padding:19px 22px;margin-bottom:22px;color:#32745c;font-size:.875rem}.import-result p{margin:5px 0 0;font-size:.8125rem}.settings-card{padding:26px;display:flex;align-items:center;gap:20px;margin-bottom:20px}.settings-card .setting-icon{width:48px;height:48px;border-radius:13px;background:#edf3ff;color:#5378bd;display:grid;place-items:center;flex-shrink:0}.settings-card .setting-copy{flex:1}.settings-card h3{margin:0 0 7px}.settings-card p{color:#8894a8;font-size:.875rem;margin:0}.help-note{font-size:.8125rem;color:#8896ab;line-height:1.8;margin:18px 0}.loading{padding:80px 24px;text-align:center;color:#8090a9;font-size:.875rem}.spinner{display:inline-block;width:18px;height:18px;border:2px solid #dbe5f7;border-top-color:#4779da;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:9px}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;bottom:30px;left:calc(50% + 112px);transform:translateX(-50%);padding:13px 20px;background:#20314f;color:#fff;box-shadow:0 6px 28px #1c30502b;border-radius:10px;font-size:.875rem;max-width:min(620px,90vw);z-index:50;line-height:1.6}#toast.error{background:#943a46}dialog{border:0;border-radius:17px;width:min(690px,calc(100vw - 32px));padding:0;color:var(--navy);box-shadow:0 25px 100px #14233c30;max-height:88vh}dialog::backdrop{background:#192b4655;backdrop-filter:blur(3px)}.dialog-head{padding:24px 27px 20px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:1.15rem;margin-top:5px}.close-button{background:#f3f6fa;border-radius:7px;display:grid;place-items:center;padding:6px;color:#7b8ba4}.dialog-body{padding:24px 27px}.detail-hero{display:flex;align-items:center;gap:13px;margin-bottom:23px}.detail-hero .badge-source{width:38px;height:38px;border-radius:11px;font-size:1rem}.detail-hero h3{margin:0 0 5px;font-size:1rem;word-break:break-word}.detail-hero .amount{margin-left:auto;font-size:1.5rem;white-space:nowrap}.detail-description{font-size:.8125rem;color:#8895aa;line-height:1.8;overflow-wrap:anywhere}.detail-grid{display:grid;grid-template-columns:90px 1fr;gap:10px 16px;font-size:.8125rem;margin:20px 0 26px}.detail-grid dt{color:#91a0b4}.detail-grid dd{margin:0;overflow-wrap:anywhere;color:#667790}.detail-grid .order{font-family:ui-monospace,monospace;font-size:.75rem}.form-section{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:8px;font-size:.8125rem;color:#77869f;margin-bottom:14px}.field select,.field input{width:100%;min-width:0}.checkbox{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:#73829a;line-height:1.6}.checkbox input{accent-color:var(--blue);width:15px;height:15px}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:20px}.form-actions .quiet{margin-right:auto;font-size:.8125rem}.inline-error{padding:10px 12px;border:1px solid #f0d0d5;background:#fff3f5;color:#aa4555;border-radius:7px;font-size:.8125rem;margin-bottom:15px;line-height:1.7}.linked-items{font-size:.8125rem;color:#5f738f;display:grid;gap:8px;margin-bottom:15px}.linked-items button{background:#f5f8fd;padding:10px;text-align:left;border-radius:7px;color:inherit}.detail-search{display:flex;gap:8px;margin-bottom:14px}.detail-search input{flex:1;min-width:0}.skip-link{position:fixed;top:-100px;left:240px;z-index:100;padding:12px;background:white;color:var(--blue)}.skip-link:focus{top:10px}[hidden]{display:none!important}.no-data{color:#a2adc0}.error-screen{max-width:500px;margin:60px auto}.error-screen h2{margin-bottom:12px}.error-screen p{color:#8a96aa;font-size:.875rem}
@media(min-width:1500px){.stat-number{font-size:2.6rem}.trend-chart{height:265px}.category-list{gap:18px}}
@media(max-width:1150px){.sidebar{width:195px;padding-inline:15px}main{margin-left:195px}#app{padding:28px 25px}.topbar{padding:0 25px}.charts{grid-template-columns:1.25fr 1fr}.stat{padding:20px}.stat-number{font-size:1.95rem}.category-row{grid-template-columns:76px 1fr 82px;gap:8px}.category-list{padding-inline:20px}.page-heading{align-items:flex-start}.import-layout{grid-template-columns:1fr}.guide-list{grid-template-columns:repeat(3,1fr)}#toast{left:calc(50% + 98px)}td,th{padding-inline:18px}}
@media(max-width:900px){.sidebar{width:75px;padding:25px 14px}.brand>span:last-child,.workspace,.nav-label,.nav-item .nav-text,.sidebar-bottom,.nav-item .count{display:none}.brand{justify-content:center}.sidebar nav{margin-top:40px}.nav-item{padding:13px;justify-content:center;margin:7px 0}.nav-item .icon{width:21px;height:21px}main{margin-left:75px}.charts{grid-template-columns:1fr}.stat-number{font-size:1.8rem}.stat{padding:17px}.stat-footer{font-size:.75rem}.topbar-end{display:none}#toast{left:calc(50% + 37px)}.page-heading{flex-wrap:wrap}.guide-list{grid-template-columns:1fr}.category-row{grid-template-columns:90px 1fr 100px}}
@media(max-width:600px){.sidebar{inset:auto 0 0;width:100%;height:67px;border:0;border-top:1px solid var(--line);padding:0 8px}.brand{display:none}.sidebar nav{margin:0;display:flex;height:100%}.nav-item{margin:0;padding:9px 3px;flex:1;border-radius:0;flex-direction:column;gap:4px}.nav-item .nav-text{display:block;font-size:.6875rem}.nav-item .icon{width:19px;height:19px}main{margin-left:0;padding-bottom:67px}.topbar{height:48px;padding:0 20px;font-size:.75rem}#app{padding:25px 16px 35px}h1{font-size:1.5rem}.page-heading{margin-bottom:20px;gap:16px}.page-heading .actions{width:100%;justify-content:space-between}.stats{grid-template-columns:1fr 1fr;gap:12px}.primary-stat{grid-column:span 2}.primary-stat .stat-number{font-size:2.5rem}.stat-top{font-size:.8125rem}.stat-top .icon{display:none}.stat-footer{line-height:1.7}.stat{padding:20px 17px}.charts{gap:16px}.panel-head{padding:20px 18px 0}.chart-body{padding:15px 8px 5px}.notice{align-items:flex-start;gap:9px;padding:14px;font-size:.75rem}.notice .quiet{font-size:.75rem}.filters{gap:8px}.filters .search-box{flex-basis:100%}.filters select{flex:1 1 calc(50% - 5px);min-width:0;font-size:.8125rem}#toast{left:50%;bottom:84px}.table-footer{padding-inline:16px}.dropzone{margin:18px;padding:25px 14px;min-height:265px}.settings-card{flex-wrap:wrap;padding:21px}.settings-card .button{margin-left:68px}.dialog-body{padding:20px}.dialog-head{padding:20px}.form-row{grid-template-columns:1fr;gap:0}.detail-hero{flex-wrap:wrap}.detail-hero .amount{font-size:1.25rem}.skip-link{left:15px}.trend-chart text{font-size:11px}.category-list{gap:15px}.category-row{font-size:.8125rem}.section-gap{margin-top:18px}}
.asset-welcome{text-align:center;padding:64px 24px}.asset-welcome>.icon{width:48px;height:48px;color:var(--blue);margin-bottom:22px}.asset-welcome h2{font-size:1.3rem}.asset-welcome p{color:var(--muted);font-size:.875rem}.asset-stats .stat-number{font-size:clamp(1.35rem,2.5vw,2.4rem);overflow-wrap:anywhere;white-space:normal}.asset-distribution{padding:28px 24px 18px}.asset-split{display:flex;height:18px;border-radius:6px;overflow:hidden;background:#eef2f7;margin-bottom:26px}.asset-distribution-row{display:grid;grid-template-columns:1fr auto 58px;gap:14px;align-items:center;margin:18px 0;font-size:.875rem}.asset-distribution-row>span:last-child{text-align:right;color:var(--muted)}.asset-distribution-row strong{font-weight:550;font-variant-numeric:tabular-nums}.asset-debt{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px;color:#936d39;font-size:.875rem}.asset-accounts{padding:12px 24px}.asset-account{display:flex;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.asset-account:last-child{border:0}.asset-account-icon{width:40px;height:40px;background:#f3f6fb;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.asset-account h3{margin:0 0 5px;font-size:.9375rem}.asset-account p{margin:0;color:var(--muted);font-size:.8125rem}.asset-account strong{margin-left:auto;font-size:1.1rem;white-space:nowrap;font-variant-numeric:tabular-nums}.asset-table-number{white-space:nowrap;font-variant-numeric:tabular-nums}.asset-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.asset-fields .field{align-content:start;font-size:.875rem}.asset-input{display:flex;align-items:center;border:1px solid #dfe5ef;border-radius:8px;background:white;padding-left:12px}.asset-input input{border:0;min-width:0;flex:1;background:transparent;font-variant-numeric:tabular-nums}.field input[type=date]{border:1px solid #dfe5ef;border-radius:8px;padding:10px 12px;color:#43536e;min-height:42px;background:#fff}.asset-preview{background:#edf3ff;padding:19px 16px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-radius:9px;font-size:.875rem}.asset-preview strong{font-size:1.15rem;overflow-wrap:anywhere}.danger{color:#a4434c}.asset-stats+.charts .trend-chart{cursor:default}
@media(max-width:600px){.asset-fields{grid-template-columns:1fr;gap:4px}.asset-distribution{padding:22px 18px}.asset-account{gap:10px;flex-wrap:wrap}.asset-accounts{padding-inline:18px}.asset-account>div{flex:1;min-width:160px}.asset-account strong{font-size:1rem;margin-left:50px}.asset-stats .primary-stat .stat-number{font-size:2.25rem}.asset-stats .stat-number{font-size:1.5rem}.asset-distribution-row{grid-template-columns:1fr auto 52px;gap:8px}.asset-preview{align-items:flex-start}.asset-welcome{padding:44px 18px}}
.asset-entry-cards,.asset-config-list{display:grid;gap:18px;margin:20px 0}.asset-entry-card,.asset-config-card{border:1px solid var(--line);padding:18px;border-radius:10px;min-width:0}.asset-entry-heading,.asset-config-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.asset-entry-heading h3{margin:0;overflow-wrap:anywhere}.asset-entry-card .help-note{margin:8px 0 14px}.asset-direct{display:flex;align-items:center;gap:16px}.asset-direct .asset-input{flex:1;min-width:0}.asset-direct>.quiet{white-space:nowrap}.asset-sum-rows{display:grid;gap:10px}.asset-sum-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 24px;gap:10px;align-items:center}.asset-sum-row>input{width:100%;min-width:0}.asset-sum-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0}.asset-sum-footer strong{font-size:.875rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.asset-config-title .quiet{padding:4px 8px}.asset-config-card.is-archived{background:#f6f8fb}.asset-config-card .field{font-size:.875rem}.asset-account-copy{flex:1;min-width:0}.asset-saved-details{font-size:.8125rem;color:var(--muted);margin-top:10px;max-width:440px}.asset-saved-details summary{cursor:pointer;color:var(--blue);padding:4px 0}.asset-saved-details>div{display:flex;justify-content:space-between;gap:20px;padding:6px 0}.asset-saved-details>div>span:first-child{overflow-wrap:anywhere}.asset-saved-details>div>span:last-child{white-space:nowrap}
@media(max-width:600px){.asset-entry-card,.asset-config-card{padding:14px}.asset-sum-row{grid-template-columns:minmax(0,1fr) 24px;gap:8px}.asset-sum-row>input{grid-column:1/-1}.asset-direct{flex-wrap:wrap}.asset-direct .asset-input{flex-basis:100%}.asset-entry-heading .pill{flex-shrink:0}.asset-entry-card .asset-input input{width:100%}}
.snapshot-editor{padding-bottom:100px}.snapshot-back{margin-bottom:18px}.snapshot-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:start}.snapshot-fields{min-width:0}.snapshot-date{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center;padding:26px}.snapshot-date .field{margin:0;font-size:.875rem}.snapshot-date .help-note{margin:8px 0 0}.snapshot-editor .asset-entry-cards{gap:24px;margin:24px 0}.snapshot-editor .asset-entry-card{background:white;padding:28px;border-radius:var(--radius)}.snapshot-editor .asset-entry-heading{margin-bottom:18px}.snapshot-editor .asset-entry-heading h3{font-size:1.05rem}.snapshot-editor .asset-direct .asset-input{max-width:380px}.snapshot-editor .asset-input input{min-height:48px;font-size:1rem}.snapshot-editor .asset-sum-row>input{min-height:48px}.snapshot-editor input{scroll-margin-bottom:130px}.snapshot-summary{position:sticky;top:24px;padding:26px}.snapshot-summary h2{font-size:1.05rem}.snapshot-summary dl{margin:24px 0}.snapshot-summary dl>div{display:flex;justify-content:space-between;gap:12px;margin:18px 0;font-size:.875rem}.snapshot-summary dt{color:var(--muted)}.snapshot-summary dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.snapshot-net{border-top:1px solid var(--line);padding-top:22px}.snapshot-net>span{font-size:.875rem;color:var(--muted);display:block;margin-bottom:12px}.snapshot-net strong{display:block;font-size:1.55rem;overflow-wrap:anywhere;color:var(--blue);font-variant-numeric:tabular-nums}.snapshot-summary>.help-note:last-child{margin-bottom:0}.snapshot-toolbar{position:fixed;bottom:0;left:224px;right:0;z-index:9;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border-top:1px solid var(--line);padding:16px 42px;box-shadow:0 -4px 20px #17243c06}.snapshot-toolbar>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.snapshot-toolbar strong{font-size:1rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.snapshot-delete{padding:22px 26px}.snapshot-editor .snapshot-date input{width:100%}body:has(.snapshot-editor) #toast{bottom:110px}
@media(max-width:1150px){.snapshot-toolbar{left:195px;padding-inline:25px}.snapshot-layout{gap:20px;grid-template-columns:minmax(0,1fr) 245px}.snapshot-summary{padding:22px}.snapshot-date{grid-template-columns:1fr;gap:18px}.snapshot-editor .asset-entry-card{padding:24px}}
@media(max-width:1000px){.snapshot-layout{grid-template-columns:1fr}.snapshot-summary{position:static;grid-row:1}.snapshot-summary dl{display:flex;gap:36px;margin:12px 0}.snapshot-summary dl>div{gap:18px;margin:0}.snapshot-summary>.help-note:last-child{display:none}.snapshot-net{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-top:16px}.snapshot-net>span{margin:0}.snapshot-date{grid-template-columns:190px 1fr}}
@media(max-width:900px){.snapshot-toolbar{left:75px}}
@media(max-width:600px){.snapshot-toolbar{left:0;bottom:67px;padding:12px 16px;gap:12px}.snapshot-toolbar .actions{gap:8px;flex-wrap:nowrap}.snapshot-toolbar .button{padding:10px 12px}.snapshot-toolbar strong{font-size:.8125rem}.snapshot-editor{padding-bottom:105px}.snapshot-date{grid-template-columns:1fr;padding:20px}.snapshot-editor .asset-entry-card{padding:20px}.snapshot-summary{padding:20px}.snapshot-summary dl{display:block}.snapshot-summary dl>div{margin:10px 0}.snapshot-net strong{font-size:1.2rem}.snapshot-editor .asset-direct .asset-input{max-width:none}.snapshot-editor input{scroll-margin-bottom:180px}body:has(.snapshot-editor) #toast{bottom:175px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.candidate-list{display:grid;gap:20px;padding:3px}.candidate-group{border:0;padding:0;margin:0;min-width:0}.candidate-group legend{font-size:.875rem;font-weight:600;padding:0;margin-bottom:10px}.candidate-group legend .pill{margin-left:8px}.candidate-card{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--line);border-radius:9px;margin:8px 0;cursor:pointer}.candidate-card:hover{background:#f8faff}.candidate-card:has(input:checked){border-color:var(--blue);background:#f1f6ff}.candidate-card input{margin:4px 0 0;accent-color:var(--blue);flex-shrink:0}.candidate-copy{display:grid;gap:6px;min-width:0;flex:1;font-size:.8125rem}.candidate-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.candidate-title strong{overflow-wrap:anywhere}.candidate-title .amount{white-space:nowrap}.candidate-description{color:#62738d;overflow-wrap:anywhere;line-height:1.6}.candidate-meta,.candidate-order{color:var(--muted);font-size:.75rem;overflow-wrap:anywhere;line-height:1.6}.candidate-order{font-family:ui-monospace,monospace}.candidate-more{width:100%;margin-top:14px}#candidate-results{min-height:50px}@media(max-width:600px){.candidate-card{padding:11px}.candidate-title{flex-wrap:wrap}}

body:has(dialog[open]>.detail-link-footer){overflow:hidden}dialog:has(>.detail-link-footer){height:min(860px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);overflow:hidden}dialog[open]:has(>.detail-link-footer){display:flex;flex-direction:column}dialog:has(>.detail-link-footer)>.dialog-head{flex-shrink:0}dialog:has(>.detail-link-footer)>.dialog-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:20px}.detail-link-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;padding:18px 27px;background:#fff;border-top:1px solid var(--line)}.link-selection-copy{min-width:0;flex:1}.link-selection-copy strong{display:block;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.detail-link-footer .button{flex-shrink:0;min-height:44px}@media(max-width:600px){dialog:has(>.detail-link-footer){height:calc(100dvh - 24px);max-height:calc(100dvh - 24px)}dialog:has(>.detail-link-footer)>.dialog-head{padding:16px 20px}.detail-link-footer{gap:12px;padding:14px 20px max(14px,env(safe-area-inset-bottom))}.detail-link-footer .button{padding-inline:14px}}

.review-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--line);background:#f8faff;border-radius:var(--radius) var(--radius) 0 0}.review-toolbar>label:last-child{margin-left:auto;display:flex;align-items:center;gap:10px}.review-select-cell{width:48px;padding-right:0}.review-select{width:17px;height:17px;accent-color:var(--blue);cursor:pointer}.quick-category{min-width:132px;max-width:165px}.review-reasons{font-size:.75rem;color:var(--muted);max-width:170px;min-width:110px;line-height:1.6;margin-top:6px;white-space:normal}.refund-missing{padding:16px;border:1px solid #dce6fb;border-radius:9px;background:#f6f9ff;margin:20px 0}.refund-missing h3{margin-bottom:6px}.refund-missing .help-note{margin:6px 0 12px}@media(max-width:600px){.review-toolbar{padding:16px;gap:12px}.review-toolbar>label:last-child{margin-left:0;flex-basis:100%}.review-toolbar select{flex:1;min-width:0}}

.badge-source.manual{background:#eeeafb;color:#7961b4}#manual-dialog{width:min(570px,calc(100vw - 32px))}#manual-dialog .field input{border:1px solid #dfe5ef;border-radius:8px;padding:10px 12px;min-height:44px;background:#fff;color:#43536e}#manual-dialog .form-actions{flex-wrap:wrap;gap:12px}#manual-dialog ul{padding-left:20px;font-size:.8125rem;line-height:1.8;overflow-wrap:anywhere}.manual-delete{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}body:has(#manual-dialog[open]){overflow:hidden}

.category-guide{margin:0 0 20px;font-size:.8125rem;color:var(--muted)}.category-guide summary{cursor:pointer;color:var(--blue);padding:8px 0}.category-guide dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:12px 0}.category-guide dl>div{display:flex;gap:12px}.category-guide dt{min-width:64px;color:var(--navy);font-weight:550}.category-guide dd{margin:0;line-height:1.7}.category-guide p{line-height:1.8}#manual-dialog .category-guide dl{grid-template-columns:1fr}@media(max-width:600px){.category-guide dl{grid-template-columns:1fr}}

.badge-source.yunshanfu{background:#fff0ef;color:#d34545}.screenshot-import{margin-bottom:24px}.screenshot-content{padding:22px 24px}.screenshot-import .panel-head{align-items:flex-start}.screenshot-import .panel-head .help-note{margin:8px 0 0}.screenshot-picker{border:1px dashed #c9d6ee;background:#f8faff;padding:22px;border-radius:10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.875rem;color:var(--muted)}.screenshot-picker.dragging{background:#eaf1ff;border-color:var(--blue)}.screenshot-setup{display:flex;align-items:flex-end;gap:20px;margin-top:18px}.screenshot-setup .field{margin:0;flex:1;max-width:310px}.screenshot-content input{border:1px solid #dfe5ef;border-radius:8px;padding:10px 12px;min-height:42px;color:#43536e;background:#fff;min-width:0}.screenshot-content input[type=checkbox]{min-height:0;padding:0}.screenshot-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,35%);gap:24px;align-items:start}.screenshot-rows{min-width:0}.screenshot-row{border:1px solid var(--line);padding:18px;border-radius:10px;margin-bottom:18px;background:#fafbfe}.screenshot-row.selected{background:#fff;border-color:#b7cbf6}.screenshot-row-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.screenshot-row-head .quiet{font-size:.8125rem}.screenshot-row .form-row{gap:12px}.screenshot-warnings{padding-left:18px;font-size:.75rem;line-height:1.8;color:#8b713e}.screenshot-duplicates{background:#fff5e8;padding:12px;border-radius:8px;font-size:.75rem;color:#82602e}.screenshot-duplicates p{overflow-wrap:anywhere;line-height:1.7}.screenshot-original{position:sticky;top:20px;min-width:0}.screenshot-viewport{max-height:calc(100dvh - 250px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:8px;background:#f5f7fb;scrollbar-gutter:stable}.screenshot-viewport:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.screenshot-original img{display:block;height:auto;max-width:none}.screenshot-view-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:.75rem}.screenshot-view-tools .actions{gap:8px}.screenshot-view-tools button{font-size:.75rem}.screenshot-view-tools output{font-variant-numeric:tabular-nums;min-width:34px;text-align:center}.screenshot-view-tools a{color:var(--blue);text-decoration:none}.screenshot-original select{width:100%;min-width:0}.screenshot-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:18px 0 0;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.8125rem}.screenshot-actions>.actions{flex-shrink:0}@media(max-width:1000px){.screenshot-layout{grid-template-columns:minmax(0,1fr) 240px}.screenshot-row .form-row{grid-template-columns:1fr;gap:0}}@media(max-width:700px){.screenshot-layout{grid-template-columns:1fr}.screenshot-original{position:static;grid-row:1}.screenshot-viewport{max-height:min(50dvh,420px)}.screenshot-content{padding:18px}.screenshot-setup,.screenshot-actions{align-items:stretch;flex-direction:column}.screenshot-actions{bottom:67px}.screenshot-row{padding:14px}}

#app.overview-page{padding-top:24px}.overview-page .eyebrow{display:none}.overview-page .page-heading{margin-bottom:18px}.overview-page h1{font-size:1.6rem;margin-bottom:5px}.overview-page .stats{gap:14px;margin-bottom:14px}.overview-page .stat{padding:18px}.overview-page .stat-top{margin-bottom:10px}.overview-page .stat-number{font-size:clamp(1.55rem,2.4vw,2rem);margin-bottom:8px;white-space:normal;overflow-wrap:anywhere}.overview-page .stat-footer{min-height:0;line-height:1.6}.overview-page .notice{padding:10px 14px;gap:8px;margin-bottom:14px}.overview-page .charts{gap:16px;margin-bottom:16px;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.overview-page .panel-head{padding:16px 18px 0}.overview-page .chart-body{padding:12px 14px 0}.overview-page .trend-chart{height:200px}.overview-page .trend-chart text{font-size:12px}.overview-page .chart-legend{padding:0 18px 12px}.overview-page .category-list{padding:16px 18px;gap:9px}.overview-page .category-row{grid-template-columns:76px minmax(20px,1fr) 94px;gap:8px}.overview-page .asset-distribution{padding:18px 18px 12px}.overview-page .asset-split{height:12px;margin-bottom:16px}.overview-page .asset-distribution-row{margin:12px 0;gap:10px}.overview-page .asset-debt{padding-top:12px;margin-top:16px}.overview-page .help-note{margin:10px 0;font-size:.75rem;line-height:1.6}.overview-page .table-wrap{padding-top:12px}.overview-page th{padding:10px 18px}.overview-page td{padding:11px 18px}.overview-page .asset-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;padding:4px 18px}.overview-page .asset-account{padding:12px 0;gap:10px;min-width:0;align-items:flex-start}.overview-page .asset-account-icon{width:32px;height:32px;border-radius:8px}.overview-page .asset-account-copy{flex:1;min-width:0;overflow-wrap:anywhere}.overview-page .asset-account h3{font-size:.875rem;margin-bottom:3px}.overview-page .asset-account strong{font-size:1rem;margin-top:3px}.overview-page .section-gap{margin-top:16px}.category-guide-trigger{font-size:.8125rem;white-space:nowrap}
@media(max-width:1100px){.overview-page .charts{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}
@media(max-width:800px){.overview-page .charts{grid-template-columns:1fr}.overview-page .asset-accounts{grid-template-columns:1fr}.overview-page .asset-account{flex-wrap:nowrap}.overview-page .asset-account>div{min-width:0}.overview-page .asset-account strong{margin-left:auto}.overview-page .trend-chart{height:210px}}
@media(max-width:600px){#app.overview-page{padding-top:18px}.overview-page .page-heading{gap:12px}.overview-page .stats{gap:10px}.overview-page .stat{padding:14px}.overview-page .stat-number{font-size:1.5rem}.overview-page .primary-stat .stat-number{font-size:1.85rem}.overview-page .notice{flex-wrap:wrap}.overview-page .notice .quiet{margin-left:0}.overview-page .panel-head{padding:14px 14px 0}.overview-page .category-list{padding:14px}.overview-page .asset-accounts{padding-inline:14px}}

.asset-heading-edit{font-size:inherit;padding:0;margin-left:12px;vertical-align:baseline}.asset-heading-edit .icon{width:16px;height:16px}

.asset-heading-subtitle{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px}.asset-heading-context{font-size:.75rem}

.login-page{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);padding:32px}.login-card input{min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px}.login-card button{width:100%;margin-top:12px}.outbox-list{padding:12px 24px 24px}.outbox-item{padding:18px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.outbox-item:last-child{border:0}.outbox-item p{margin:6px 0;font-size:.8125rem;color:var(--muted)}

.webdav-panel{margin-bottom:22px}.webdav-content{padding:24px}.webdav-content input:not([type=checkbox]){border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-width:0;min-height:42px;width:100%;color:var(--navy);background:#fff}.webdav-options{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin:16px 0}.webdav-options .field{max-width:150px;margin:0}.webdav-content .help-note a{color:var(--blue);text-decoration:underline}.webdav-content .notice{overflow-wrap:anywhere}.webdav-content .form-row{min-width:0}@media(max-width:640px){.webdav-content{padding:18px}.webdav-content .form-row{grid-template-columns:1fr}.webdav-content .actions{gap:8px}}

#keyword-dialog{width:min(940px,calc(100vw - 32px));max-width:940px}#keyword-dialog form{margin:0}.keyword-body{padding:20px 24px;max-height:65vh;overflow-y:auto}.keyword-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(170px,1fr) minmax(120px,.7fr);gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}.keyword-row textarea{width:100%;resize:vertical;min-height:90px;border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;color:var(--navy)}.keyword-controls{display:flex;flex-direction:column;gap:18px}.keyword-footer{padding:18px 24px;border-top:1px solid var(--line);justify-content:flex-end}.keyword-body>.actions{margin:18px 0}.keyword-body .notice{margin-top:18px}@media(max-width:640px){.keyword-row{grid-template-columns:1fr}.keyword-controls{flex-direction:row;justify-content:space-between}.keyword-body{padding:16px}.keyword-footer{padding:14px}}

.return-summary{display:flex;gap:20px;flex-wrap:wrap;padding:4px 24px 0}.return-summary strong{font-size:20px}.return-note{padding:0 24px}.return-note-text{max-width:320px;white-space:normal;overflow-wrap:anywhere}#return-form input[type=number]{width:100%;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--navy);background:#fff}#return-form input[type=number]{min-height:42px}#return-form .checkbox{margin:14px 0}.annual-returns .panel-head{flex-wrap:wrap;gap:12px}


.return-period{padding:24px}.return-period .form-row{margin-bottom:12px}.return-note-editor summary{color:var(--muted);font-size:.8125rem;cursor:pointer}.return-note-editor input{margin-top:10px;width:100%}.return-editor .snapshot-net strong{font-size:28px}@media(max-width:640px){.return-period .form-row{grid-template-columns:1fr}}

.return-row-actions{display:inline-flex;align-items:center;gap:20px;white-space:nowrap}

.income-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
:root .fx-fields{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:12px 0}.fx-fields .field{flex:1 1 145px;min-width:0;margin:0}.fx-fields .help-note{flex-basis:100%;margin:0;overflow-wrap:anywhere}.fx-fields input,.fx-fields select{width:100%;min-width:0}.asset-sum-entry{padding:12px 0;border-bottom:1px solid var(--line)}.currency-dialog{width:min(900px,calc(100vw - 32px))}.currency-row{display:grid;grid-template-columns:100px 1fr 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.currency-row .field{margin:0;min-width:0}@media(max-width:600px){.currency-row{grid-template-columns:1fr 1fr}.fx-fields .field{flex-basis:120px}}

.memo-search{display:flex;flex:1;min-width:0;align-items:center;gap:10px}.memo-search .search-box{flex:1;min-width:0}.memo-search input{min-width:0}.memo-search>.button{flex-shrink:0}.memo-pagination{justify-content:space-between;flex-wrap:wrap;margin-top:20px;font-size:.8125rem;color:var(--muted)}.memo-list{display:grid;gap:16px}.memo-card{padding:22px}.memo-card-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.memo-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:16px 0}.memo-linked{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}.memo-linked>.quiet{flex:1 1 280px;min-width:0;text-align:left}.memo-linked>.quiet>span{overflow-wrap:anywhere}.memo-linked>.actions{flex-shrink:0}.memo-candidates summary{cursor:pointer;padding:10px 0;font-size:13px;color:#657591}.memo-candidate{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-top:1px solid #e9edf3}.memo-candidate>div{flex:1;min-width:0;overflow-wrap:anywhere}.memo-candidate strong{font-size:13px}.memo-candidate p{margin:4px 0}.memo-candidate .button{flex-shrink:0}.memo-detail{margin:18px 0;padding:18px;border:1px solid #dce6f4;border-radius:12px;background:#f7faff}.memo-detail h3{margin:0;font-size:14px}.memo-detail article+article{border-top:1px solid #dce6f4;margin-top:16px}.memo-detail .memo-content{margin:12px 0 6px}.memo-summary{color:#4c709f!important}

@media(max-width:600px){.memo-search{flex-basis:100%;gap:8px}.memo-card{padding:18px}.memo-linked>.quiet{flex-basis:100%}.memo-candidate{gap:12px;align-items:flex-start}.memo-pagination{gap:12px}}

:root { background: #f3f5f8; color: #263449; }
button, a, input, select { transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 2px solid #537eae; outline-offset: 3px; }
.sidebar { width: 216px; padding: 26px 16px 22px; background: #fff; border-color: var(--line); }
.brand { padding: 0 10px; font-size: 1.15rem; letter-spacing: -.6px; }
.brand-symbol { background: #244a76; border-radius: 7px; }
.workspace { margin: 28px 0 26px; background: #f8fafc; border-color: var(--line); border-radius: 7px; padding: 12px; font-size: .8125rem; }
.avatar { width: 31px; height: 31px; background: #e8edf3; color: #4d6078; border-radius: 5px; }
.workspace .small { font-size: .6875rem; }
.nav-label { margin: 24px 0 9px; padding-inline: 12px; font-size: .6875rem; color: #64748b; }
.nav-label:first-child { margin-top: 0; }
.nav-item { padding: 11px 12px; margin: 3px 0; gap: 11px; border-radius: 6px; color: #536278; font-size: .8125rem; }
.nav-item .icon { width: 18px; height: 18px; stroke-width: 1.6; }
.nav-item.active { background: #eaf0f7; color: #244f85; font-weight: 600; }
.nav-item:hover { background: #f1f4f8; }
.nav-item .count { color: #8b5c15; background: #fff1d8; }
.sidebar-bottom { font-size: .75rem; padding: 20px 10px 0; }
.sidebar-bottom p { font-size: .6875rem; }
main { margin-left: 216px; }
.topbar { height: 56px; padding-inline: 32px; background: #fff; font-size: .75rem; }
.topbar-end { font-size: .6875rem; }
#app { padding: 28px 32px 44px; max-width: 1600px; }
h1 { color: #18263a; font-size: 1.5rem; font-weight: 650; letter-spacing: -.4px; margin-bottom: 7px; }
h1 + p { font-size: .8125rem; color: #64748b; line-height: 1.7; }
h2 { font-size: .875rem; color: #263449; font-weight: 600; letter-spacing: 0; }
h3 { color: #263449; }
.page-heading { margin-bottom: 24px; align-items: flex-start; }
.page-heading .actions { padding-top: 2px; gap: 8px; }
.button { border-color: #d7dee8; border-radius: 6px; min-height: 36px; padding: 8px 12px; font-size: .75rem; font-weight: 500; }
.button .icon { width: 16px; height: 16px; }
.button.primary { background: #285b9a; border-color: #285b9a; box-shadow: none; }
.button.primary:hover { background: #204e86; }
.button.subtle { color: #285b9a; background: #eef3f9; }
.quiet { font-size: .75rem; }
.month-select, select, input[type=search], input[type=text] { min-height: 36px; padding: 8px 10px; border-color: #d7dee8; border-radius: 6px; font-size: .75rem; color: #36465c; }
.month-select { min-width: 136px; }
select:not([multiple]) { padding-right: 32px; background-position: right 8px center; background-size: 14px; }
.panel { border-radius: 8px; border-color: var(--line); }
.panel-head { padding: 18px 20px 14px; border-bottom: 1px solid #edf0f4; min-height: 55px; }
.panel-head .muted { font-size: .6875rem; }
.panel-description { margin: 5px 0 0; font-size: .6875rem; color: #64748b; }
.report-context { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; color: #627187; font-size: .6875rem; }
.report-context > span:first-child { display: flex; gap: 8px; align-items: center; }
.report-context .icon { width: 14px; height: 14px; }
.context-divider { color: #bdc6d3; padding-inline: 4px; }
.asset-heading-edit { margin-left: 12px; font-size: .6875rem; }
.balance-summary { display: grid; grid-template-columns: 1.22fr 1fr 1fr 1.18fr; background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-bottom: 20px; }
.balance-metric { min-width: 0; padding: 23px 22px; display: flex; flex-direction: column; gap: 14px; border-right: 1px solid #e8edf3; }
.balance-metric:last-child { border-right: 0; }
.balance-metric.net-worth { background: #f1f5fb; }
.metric-label { display: flex; align-items: center; gap: 8px; font-size: .75rem; color: #5d6c81; }
.metric-label .icon { width: 15px; height: 15px; color: #4c709b; margin-left: auto; }
.balance-metric > strong { font-size: clamp(1.3rem,2vw,1.9rem); line-height: 1.25; font-weight: 620; letter-spacing: -.8px; font-variant-numeric: tabular-nums; color: #263449; white-space: nowrap; overflow-x: auto; }
.balance-metric.net-worth > strong { color: #244f85; }
.balance-metric strong small { font-size: .9rem; font-weight: 450; margin-right: 5px; color: #708198; }
.balance-metric > .metric-change { font-size: clamp(1.15rem,1.7vw,1.65rem); }
.metric-note { color: #66758a; font-size: .6875rem; line-height: 1.7; }
.is-positive { color: #16704a !important; }
.is-negative { color: #b13c47 !important; }
#app.assets-page .charts { grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); gap: 20px; margin-bottom: 20px; align-items: stretch; }
.assets-page .chart-body { padding: 20px 18px 8px; }
.assets-page .trend-chart { height: 215px; }
.assets-page .trend-chart .grid { stroke: #e7ecf2; stroke-dasharray: 0; }
.assets-page .trend-chart text { fill: #64748b; font-size: 11px; }
.assets-page .chart-legend { padding: 0 20px 16px; color: #64748b; font-size: .6875rem; }
.assets-page .asset-distribution { padding: 24px 20px 16px; }
.assets-page .asset-split { height: 8px; border-radius: 3px; margin-bottom: 24px; }
.assets-page .asset-distribution-row { font-size: .75rem; margin: 21px 0; }
.assets-page .asset-debt { font-size: .75rem; color: #5d6c81; padding-top: 16px; margin-top: 22px; }
.assets-page .asset-distribution .help-note { font-size: .6875rem; margin-bottom: 0; }
.assets-page .table-wrap { padding-top: 0; }
.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.account-table { table-layout: fixed; white-space: normal; }
.account-table thead th:first-child { width: 28%; }
.account-table thead th:nth-child(2) { width: 34%; }
.account-table thead th:nth-child(3) { width: 14%; }
.account-table thead th:nth-child(4) { width: 24%; }
.account-table th, .account-table td { padding: 14px 20px; font-size: .75rem; border-top: 0; border-bottom: 1px solid #edf0f4; }
.account-table thead th { font-size: .6875rem; background: #fafbfc; font-weight: 500; color: #66758a; }
.account-table th[scope=row] { background: #fff; color: #263449; font-weight: 500; vertical-align: top; }
.account-table tr:hover th[scope=row] { background: #f9fbfd; }
.account-table .account-group th, .account-table .account-group td { padding-block: 10px; background: #f5f7fa; font-weight: 600; color: #475870; font-size: .6875rem; }
.account-group th .icon { width: 14px; height: 14px; margin-right: 8px; color: #7a899b; }
.account-group th > span { margin-left: 10px; font-weight: 400; color: #6c7c91; }
.account-table .account-hint { color: #627187; font-size: .6875rem; line-height: 1.7; }
.account-table .account-share { color: #627187; font-size: .75rem; }
.account-table .account-balance { font-weight: 600; }
.account-name { overflow-wrap: anywhere; }
.account-valuation { display: block; font-size: .6875rem; color: #64748b; margin-top: 6px; line-height: 1.7; }
.account-table .asset-saved-details { font-size: .6875rem; font-weight: 400; margin-top: 6px; }
.account-table .asset-saved-details > div { gap: 12px; }
.account-table .asset-saved-details small { display: block; font-size: .625rem; }
.assets-page .section-gap { margin-top: 24px; }
.assets-page > .help-note { margin: 12px 0 24px; font-size: .6875rem; }
.assets-page th, .assets-page td { font-size: .75rem; }
.assets-page .return-summary { padding-top: 18px; align-items: baseline; }
.assets-page .return-summary strong { font-size: 1.2rem; }
.assets-page .return-summary .muted { font-size: .75rem; }
.assets-page .return-note { font-size: .6875rem; }
.account-register .table-wrap { border-radius: 0 0 8px 8px; }
.ledger-topline { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 20px; border-bottom: 1px solid #edf0f4; }
.ledger-topline > div { display: flex; align-items: center; gap: 16px; }
.ledger-topline h2 { display: flex; align-items: center; gap: 8px; }
.record-count { font-size: .6875rem; line-height: 1.5; font-weight: 500; color: #526881; padding: 1px 7px; background: #eef2f6; border-radius: 4px; font-variant-numeric: tabular-nums; }
.ledger-scope { color: #64748b; font-size: .6875rem; }
.sort-control { display: flex; align-items: center; gap: 10px; font-size: .6875rem; color: #64748b; white-space: nowrap; }
.sort-control select { font-size: .6875rem; min-height: 32px; }
.ledger-filters { padding: 16px 20px; margin: 0; gap: 10px; background: #fcfdfe; border-bottom: 1px solid var(--line); align-items: flex-start; }
.ledger-filters .search-box { flex: 1.6; min-width: 250px; }
.ledger-filters .search-box .icon { top: 10px; left: 11px; width: 16px; height: 16px; }
.ledger-filters .search-box input { font-size: .75rem; padding-left: 34px; }
.ledger-filters > select { min-width: 112px; flex: 0 1 auto; }
.ledger-filters .month-select { min-width: 134px; }
.ledger-filters .quiet { min-height: 36px; padding-inline: 4px; }
.ledger-filters .inline-error { display: block; margin: 10px 0 0; }
.ledger-table-wrap { padding-top: 0; max-height: max(300px,calc(100dvh - 350px)); scrollbar-gutter: stable; }
.ledger-table { font-size: .75rem; }
.ledger-table thead th { position: sticky; top: 0; z-index: 1; background: #f6f8fa; border-top: 0; font-size: .6875rem; padding: 12px 16px; font-weight: 500; color: #64748b; }
.ledger-table td { padding: 14px 16px; border-bottom-color: #edf0f4; }
.ledger-table tbody tr:hover { background: #f5f8fc; }
.ledger-table tbody tr.is-selected { background: #eaf1fa; }
.ledger-table .ledger-date { font-size: .6875rem; color: #53647b; min-width: 116px; }
.ledger-date small { display: block; font-size: .625rem; color: #64748b; margin-top: 6px; }
.ledger-table td.merchant-cell { min-width: 170px; max-width: 280px; }
.ledger-table .merchant-name { font-size: .75rem; max-width: 280px; color: #263449; font-weight: 550; }
.ledger-table .description { color: #64748b; font-size: .6875rem; max-width: 260px; margin-top: 5px; }
.ledger-category { display: inline-block; padding: 3px 7px; background: #f1f4f7; border: 1px solid #e6eaf0; border-radius: 4px; font-size: .6875rem; color: #56667b; }
.ledger-table .source-name { color: #52647b; font-size: .6875rem; }
.ledger-table .badge-source { width: 20px; height: 20px; border-radius: 4px; font-size: .625rem; }
.ledger-account { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; font-size: .625rem; color: #64748b; margin-top: 5px; }
.ledger-amount { font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.ledger-amount small { display: block; font-size: .625rem; font-weight: 400; color: #64748b; margin-top: 5px; }
.ledger-status { display: inline-flex; align-items: center; gap: 6px; font-size: .6875rem; color: #66768a; white-space: nowrap; }
.ledger-status::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #99a5b3; }
.ledger-status.confirmed::before { background: #4a8e6e; }
.ledger-status.needs-review { color: #966616; }
.ledger-status.needs-review::before { background: #bd8a2e; }
.ledger-detail-button { padding: 7px; color: #8190a3; }
.ledger-detail-button .icon { width: 16px; height: 16px; }
.ledger-table .quick-category { font-size: .6875rem; min-width: 110px; }
.ledger-panel .table-footer { padding: 14px 20px; font-size: .6875rem; background: #fcfdfe; border-radius: 0 0 8px 8px; }
.ledger-panel .pagination { gap: 12px; font-variant-numeric: tabular-nums; }
.ledger-panel .pagination .button { padding-inline: 7px; }
.review-toolbar { font-size: .75rem; background: #f7faff; padding: 14px 20px; border-radius: 0; }
#detail-dialog.transaction-detail { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(560px,100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-left: 1px solid #d7dee8; border-radius: 0; box-shadow: -6px 0 28px #20324d0d; background: #fff; overflow: hidden; }
#detail-dialog.transaction-detail[open] { display: flex; flex-direction: column; }
#detail-dialog.transaction-detail::backdrop { background: #1c2c4430; backdrop-filter: none; }
body:has(#detail-dialog.transaction-detail[open]) { overflow: hidden; }
.transaction-detail > .dialog-head { padding: 22px 24px; flex-shrink: 0; min-height: 85px; }
.transaction-detail > .dialog-head h2 { font-size: 1.125rem; }
.transaction-detail > .dialog-body { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 24px; }
.detail-navigation { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 24px; background: #f7f9fc; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.detail-navigation > span { font-size: .6875rem; color: #64748b; }
.detail-navigation .actions { gap: 6px; }
.detail-navigation .button { padding-inline: 8px; }
.detail-navigation .button .icon { width: 16px; height: 16px; }
.transaction-detail .detail-hero { flex-wrap: wrap; align-items: flex-start; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.transaction-detail .detail-hero .amount { font-size: 1.5rem; font-weight: 650; }
.transaction-detail .memo-detail { background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 0 0 18px; border-radius: 0; }
.transaction-detail .detail-grid { gap: 15px 18px; font-size: .75rem; }
.transaction-detail .form-actions { padding-top: 14px; }
.transaction-detail .form-section { margin-top: 26px; }
.transaction-detail .notice { margin-bottom: 20px; }
.transaction-detail .detail-link-footer { padding: 16px 24px; flex-shrink: 0; }
.transaction-detail .help-note { font-size: .75rem; color: #64748b; }
.transaction-detail .detail-grid dt, .transaction-detail .detail-description { color: #64748b; }
.transaction-detail .detail-grid dd { color: #43536c; }
.assets-page .help-note { color: #64748b; }
.transaction-detail .detail-link-footer .button { min-height: 36px; }
.close-button { border-radius: 5px; }
.snapshot-toolbar { left: 216px; }
@media (max-width: 1200px) {
  .balance-metric { padding-inline: 17px; }
  .balance-metric > strong { font-size: 1.5rem; }
  .balance-metric > .metric-change { font-size: 1.3rem; }
  .ledger-filters .search-box { flex-basis: 100%; }
  .ledger-filters > select { flex: 1; }
}
@media (max-width: 1000px) {
  .balance-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .balance-metric:nth-child(2) { border-right: 0; }
  .balance-metric:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  #app.assets-page .charts { grid-template-columns: 1fr; }
  .ledger-topline > div { gap: 12px; }
  .ledger-scope { display: none; }
}
@media (max-width: 900px) {
  .sidebar { width: 72px; padding: 24px 12px; }
  .brand { padding: 0; }
  .nav-label { display: none; }
  .sidebar nav { margin-top: 32px; }
  .nav-item { padding: 13px; margin: 6px 0; }
  .nav-item:nth-of-type(3), .nav-item:nth-of-type(7) { margin-top: 25px; }
  main { margin-left: 72px; }
  #app { padding: 24px; }
  .topbar { padding-inline: 24px; }
  .snapshot-toolbar { left: 72px; }
}
@media (max-width: 600px) {
  .sidebar { width: 100%; inset: auto 0 0; height: calc(67px + env(safe-area-inset-bottom)); padding: 0 4px env(safe-area-inset-bottom); }
  .sidebar nav { margin: 0; }
  .sidebar .nav-item { margin: 0; padding: 10px 2px; border-radius: 5px; gap: 5px; }
  .nav-item .nav-text { font-size: .6rem; }
  main { margin: 0; padding-bottom: calc(67px + env(safe-area-inset-bottom)); }
  #app { padding: 20px 16px 32px; }
  .topbar { height: 48px; padding-inline: 16px; }
  h1 { font-size: 1.375rem; }
  .page-heading { gap: 16px; margin-bottom: 18px; }
  .page-heading .actions { gap: 8px; justify-content: flex-start; }
  .page-heading .actions .button { flex-grow: 1; min-height: 40px; }
  .page-heading .actions .category-guide-trigger { flex-basis: 100%; }
  .report-context { font-size: .625rem; gap: 8px; }
  .report-context > span:last-child { line-height: 1.8; }
  .balance-metric { padding: 18px 14px; gap: 12px; }
  .balance-metric > strong { font-size: clamp(1.1rem,5.2vw,1.45rem); letter-spacing: -.6px; }
  .balance-metric > .metric-change { font-size: clamp(1rem,4.6vw,1.3rem); }
  .metric-label { font-size: .6875rem; }
  .metric-note { font-size: .625rem; }
  .balance-metric strong small { font-size: .75rem; margin-right: 3px; }
  .panel-head { padding: 16px; flex-wrap: wrap; gap: 8px; }
  .assets-page .chart-body { padding-inline: 10px; }
  .assets-page .trend-chart { height: 200px; }
  .assets-page .asset-distribution { padding: 20px 16px; }
  .account-table, .account-table tbody { display: block; width: 100%; }
  .account-table thead { display: none; }
  .account-table tr { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 12px; padding: 15px 16px; border-bottom: 1px solid #edf0f4; }
  .account-table th, .account-table td { border: 0; padding: 0; background: transparent !important; }
  .account-table tr.account-group { display: flex; justify-content: space-between; align-items: center; padding: 11px 16px; background: #f5f7fa; }
  .account-table .account-group th, .account-table .account-group td { padding: 0; }
  .account-table th[scope=row] { grid-column: 1; grid-row: 1; align-self: center; font-size: .8125rem; }
  .account-table .account-balance { grid-column: 2; grid-row: 1; align-self: start; font-size: .8125rem; }
  .account-table .account-hint { grid-column: 1; grid-row: 2; }
  .account-table .account-share { grid-column: 2; grid-row: 2; font-size: .6875rem; }
  .account-table .account-share::before { content: "占比 "; font-size: .625rem; }
  .account-table .asset-saved-details { max-width: none; }
  .account-table .asset-saved-details > div { flex-wrap: wrap; }
  .ledger-topline { padding: 15px 16px; gap: 10px; }
  .ledger-topline h2 { font-size: .8125rem; }
  .sort-control { gap: 5px; font-size: 0; }
  .sort-control select { max-width: 142px; font-size: .625rem; }
  .ledger-filters { padding: 14px 16px; gap: 8px; }
  .ledger-filters .search-box { min-width: 0; flex-basis: 100%; }
  .ledger-filters > select { min-width: 0; flex: 1 1 calc(50% - 4px); font-size: .6875rem; }
  .ledger-filters .search-box input { font-size: .6875rem; }
  .ledger-table-wrap { max-height: none; scrollbar-gutter: auto; }
  .ledger-table, .ledger-table tbody { display: block; width: 100%; white-space: normal; }
  .ledger-table thead { display: none; }
  .ledger-table tr { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 12px; padding: 17px 16px; border-bottom: 1px solid #e8edf3; position: relative; }
  .ledger-table td { padding: 0; border: 0; min-width: 0; }
  .ledger-table td.merchant-cell { grid-column: 1; grid-row: 1; min-width: 0; max-width: none; padding-right: 8px; }
  .ledger-table .merchant-name { font-size: .8125rem; max-width: none; }
  .ledger-table .description { max-width: none; white-space: nowrap; }
  .ledger-table .ledger-amount { grid-column: 2; grid-row: 1; font-size: .875rem; }
  .ledger-table .ledger-date { grid-column: 1; grid-row: 3; font-size: .625rem; }
  .ledger-table .ledger-date small { display: inline; margin-left: 8px; }
  .ledger-table td:has(> .ledger-category), .ledger-table td:has(> .quick-category) { grid-column: 1; grid-row: 2; padding-right: 70px; }
  .ledger-table td:has(> .source-name) { grid-column: 1; grid-row: 4; display: flex; gap: 10px; align-items: center; }
  .ledger-table .ledger-account { display: inline; max-width: 170px; margin-top: 0; }
  .ledger-table td:has(> .ledger-status) { grid-column: 2; grid-row: 2; text-align: right; }
  .ledger-table td:has(> .ledger-detail-button) { grid-column: 2; grid-row: 3 / 5; justify-self: end; align-self: center; }
  .ledger-table .ledger-detail-button { min-width: 36px; min-height: 36px; justify-content: center; }
  .ledger-table .review-select-cell { position: absolute; right: 16px; bottom: 18px; }
  .ledger-table tr:has(.review-select-cell) .ledger-detail-button { margin-right: 28px; }
  .ledger-table .review-reasons { min-width: 0; max-width: 105px; text-align: right; }
  .ledger-panel .table-footer { padding: 15px 16px; flex-wrap: wrap; gap: 14px; }
  .ledger-panel .pagination { margin-left: auto; }
  .transaction-detail > .dialog-head { padding: 20px; }
  .transaction-detail > .dialog-body { padding: 20px; }
  .detail-navigation { padding: 12px 20px; }
  .transaction-detail .detail-hero .amount { font-size: 1.35rem; }
  .transaction-detail .detail-link-footer { padding: 14px 20px max(14px,env(safe-area-inset-bottom)); }
  .snapshot-toolbar { left: 0; bottom: calc(67px + env(safe-area-inset-bottom)); }
  #toast { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

.finance-app {
  background-color: #f1f2f4;
  --blue: #1d4ed8;
  --muted: #4b596c;
  --line: #c7ced8;
}
.finance-app .topbar { height: 48px; padding-inline: 24px; border-bottom-color: #c7ced8; color: #49566a; }
.finance-app .sidebar { border-right-color: #c7ced8; }
.finance-app .workspace { margin-block: 22px; padding: 10px; border-color: #c7ced8; border-radius: 4px; background: #f5f6f8; }
.finance-app .nav-label { margin-top: 18px; margin-bottom: 7px; color: #505d70; }
.finance-app .nav-item { color: #344156; border-radius: 4px; }
.finance-app .nav-item:hover { background: #e9edf2; }
.finance-app .nav-item.active { color: #fff; background: #17304f; }
.finance-app .sidebar-bottom { color: #344156; border-top-color: #c7ced8; }
.finance-app .sidebar-bottom p { color: #505d70; }
.finance-app h1 { color: #141d2b; font-size: 1.75rem; font-weight: 700; letter-spacing: -.7px; }
.finance-app h1 + p { color: #465468; }
.finance-app .page-heading { margin-bottom: 14px; align-items: center; }
.finance-app #app { padding: 20px 24px 28px; }
.finance-app h1 { margin-bottom: 4px; }
.finance-app .button,
.finance-app select,
.finance-app input[type=search],
.transaction-detail .button,
.transaction-detail input,
.transaction-detail select,
.transaction-detail .close-button { border-radius: 4px; border-color: #7d899b; color: #243247; }
.finance-app .button { font-size: var(--control-font-size); line-height: var(--control-line-height); font-weight: 550; min-height: var(--control-height); padding: var(--control-padding) 10px; }
.finance-app .button.primary,
.transaction-detail .button.primary { color: #fff; background: #1d4ed8; border-color: #1d4ed8; }
.finance-app .button.primary:hover,
.transaction-detail .button.primary:hover { background: #183da8; border-color: #183da8; }
.finance-app .button:disabled,
.transaction-detail .button:disabled { opacity: 1; color: #697587; background: #f0f2f5; border-color: #ccd2dc; }
.finance-app .quiet { color: #174986; }
.finance-app .quiet.danger:not(:disabled), .finance-app .button.danger:not(:disabled) { color: #9b2535; }
.finance-app:has(dialog[open]) { overflow: hidden; }
.finance-app .ledger-panel { border: 1px solid #aeb8c6; border-top: 2px solid #17304f; border-radius: 4px; }
.finance-app .ledger-topline { padding: 10px 16px; border-bottom-color: #c7ced8; }
.finance-app .ledger-topline h2 { font-size: .9375rem; font-weight: 650; color: #192436; }
.finance-app .record-count { color: #fff; background: #1d4ed8; border: 1px solid #1d4ed8; border-radius: 3px; }
.finance-app .ledger-scope,
.finance-app .sort-control { color: #4b596c; }
.finance-app .sort-control select { background-color: #fff; color: #243247; }
.finance-app .ledger-filters { padding: 10px 16px; gap: 8px; background: #f6f7f8; border-bottom-color: #aeb8c6; }
.finance-app .ledger-filters input[type=search],
.finance-app .ledger-filters select { min-height: var(--control-height); padding-block: var(--control-padding); color: #243247; background-color: #fff; border-color: #7d899b; }
.finance-app .ledger-filters input::placeholder { color: #566477; opacity: 1; }
.finance-app .ledger-filters .search-box .icon { color: #4b596c; }
.finance-app .ledger-table { color: #202d40; }
.finance-app .ledger-table thead th { padding: 9px 14px; background: #17304f; color: #fff; font-weight: 600; font-size: .75rem; border-bottom: 1px solid #17304f; }
.finance-app .ledger-table thead th + th { border-left: 1px solid #36516f; }
.finance-app .ledger-table td { padding: 9px 14px; border-bottom-color: #cdd4de; }
.finance-app .ledger-table tbody tr:hover { background: #f0f4ff; }
.finance-app .ledger-table tbody tr.is-selected { background: #e4ecff; outline: 1px solid #1d4ed8; outline-offset: -1px; }
.finance-app .ledger-table .ledger-date { color: #344156; font-size: .75rem; }
.finance-app .ledger-date small,
.finance-app .ledger-table .description,
.finance-app .ledger-table .ledger-account,
.finance-app .ledger-table .ledger-amount small { color: #4d5b70; }
.finance-app .ledger-table .merchant-name { color: #192436; font-size: .8125rem; font-weight: 600; }
.finance-app .ledger-table .ledger-amount { color: #152237; font-size: .875rem; font-weight: 700; letter-spacing: -.15px; }
.finance-app .ledger-table .is-positive,
.transaction-detail .is-positive { color: #00613e !important; }
.finance-app .ledger-category { color: #364357; background: transparent; border: 0; border-radius: 0; padding-inline: 0; font-weight: 500; }
.finance-app .ledger-table .source-name { color: #344156; }
.finance-app .ledger-status { color: #3e4b60; }
.finance-app .ledger-status::before { width: 6px; height: 6px; background: #64748b; }
.finance-app .ledger-status.confirmed { color: #17603b; }
.finance-app .ledger-status.confirmed::before { background: #18704a; }
.finance-app .ledger-status.needs-review { color: #874d00; font-weight: 550; }
.finance-app .ledger-status.needs-review::before { background: #a66200; }
.finance-app .ledger-detail-button { padding: 5px; color: #40536d; }
.finance-app .ledger-detail-button:hover { color: #1d4ed8; background: #dce7ff; }
.finance-app .ledger-panel .table-footer { padding: 10px 16px; background: #f6f7f8; border-top-color: #aeb8c6; border-radius: 0 0 3px 3px; color: #415168; }
.finance-app .notice { border-color: #b4c4d9; }
.finance-app .review-toolbar { background: #edf2f9; border-bottom-color: #b5c2d4; }
.finance-app .review-reasons { color: #4d5b70; }
.finance-app :is(button,a,input,select,[tabindex]):focus-visible,
.transaction-detail :is(button,a,input,select,[tabindex]):focus-visible { outline: 2px solid #1d4ed8; outline-offset: 3px; }
.finance-app .ledger-detail-button:focus-visible { outline-offset: 0; background: #dae6f6; }
.finance-app .ledger-table .description,
.finance-app .ledger-table .ledger-account,
.finance-app .ledger-table .ledger-date small { margin-top: 3px; }
.finance-app .ledger-table-wrap { max-height: max(300px,calc(100dvh - 290px)); }
.finance-app .review-toolbar { padding: 10px 16px; gap: 10px; }
#detail-dialog.transaction-detail { border-left-color: #929eae; box-shadow: none; color: #202d40; }
.transaction-detail > .dialog-head { padding: 16px 20px; min-height: 70px; border-bottom-color: #aeb8c6; }
.transaction-detail > .dialog-head h2 { color: #141d2b; font-weight: 700; }
.transaction-detail .close-button { background: #f0f3f7; color: #344156; }
.transaction-detail .detail-navigation { padding: 8px 20px; background: #f3f4f6; border-bottom-color: #b6c0ce; }
.transaction-detail .detail-navigation > span { color: #415168; }
.transaction-detail .detail-hero { padding-bottom: 16px; margin-bottom: 16px; gap: 12px; border-bottom-color: #bdc6d3; }
.transaction-detail .detail-hero h3 { color: #192436; font-weight: 650; }
.transaction-detail .detail-hero .amount { color: #152237; font-weight: 700; }
.transaction-detail .muted,
.transaction-detail .help-note,
.transaction-detail .detail-grid dt,
.transaction-detail .detail-description,
.transaction-detail .field,
.transaction-detail .checkbox,
.transaction-detail .candidate-meta,
.transaction-detail .candidate-order { color: #4b596c; }
.transaction-detail .detail-grid dd,
.transaction-detail .candidate-description { color: #2e4059; }
.transaction-detail .form-section,
.transaction-detail .detail-link-footer,
.transaction-detail .memo-detail { border-color: #bdc6d3; }
.transaction-detail .notice,
.transaction-detail .refund-missing,
.transaction-detail .candidate-card { border-radius: 4px; border-color: #b4c4d9; }
.transaction-detail .notice:not(.blue) { color: #765000; border-color: #cbb78f; }
.transaction-detail > .dialog-body { padding: 18px 20px; }
.transaction-detail .detail-grid { gap: 10px 16px; margin: 16px 0 20px; }
.transaction-detail .form-section { padding-top: 16px; margin-top: 18px; }
.transaction-detail .field { gap: 6px; margin-bottom: 12px; }
.transaction-detail .form-actions { margin-top: 14px; padding-top: 8px; gap: 12px; }
.transaction-detail .help-note { margin-block: 12px; }
.transaction-detail .notice { padding: 12px 14px; margin-block: 14px; }
.transaction-detail .refund-missing { padding: 12px; margin-block: 14px; }
.transaction-detail .memo-detail { padding-bottom: 12px; margin-block: 12px; }
.transaction-detail .memo-content { margin-block: 10px; }
.transaction-detail .candidate-card { padding: 10px; margin-block: 6px; }
.transaction-detail .detail-link-footer { padding: 12px 20px; }
.transaction-detail .candidate-card:has(input:checked) { border-color: #1d4ed8; background: #e4ecff; }
@media (max-width: 600px) {
  .finance-app h1 { font-size: 1.5rem; }
  .finance-app #app { padding: 16px 12px 24px; }
  .finance-app .page-heading { gap: 12px; margin-bottom: 14px; }
  .finance-app .page-heading .actions { gap: 6px; }
  .finance-app .page-heading .actions .button { min-height: 40px; }
  .finance-app .page-heading .category-guide-trigger { padding-block: 2px; }
  .finance-app .ledger-topline { padding: 10px 12px; background: #17304f; border-bottom-color: #17304f; }
  .finance-app .ledger-topline h2, .finance-app .ledger-topline .sort-control { color: #fff; }
  .finance-app .ledger-filters { padding: 10px 12px; gap: 6px; }
  .finance-app .ledger-filters input[type=search], .finance-app .ledger-filters select { min-height: var(--control-height); padding-block: var(--control-padding); }
  .finance-app .ledger-table-wrap { max-height: none; }
  .finance-app .ledger-table tr { padding: 12px 14px; gap: 4px 10px; border-bottom-color: #bcc6d2; }
  .finance-app .ledger-table td { padding: 0; border: 0; }
  .finance-app .ledger-table .ledger-date small { margin-top: 0; }
  .finance-app .ledger-table .ledger-account { margin-top: 0; }
  .finance-app .ledger-table .review-select-cell { right: 14px; bottom: 14px; }
  .finance-app .ledger-panel .table-footer { gap: 10px; padding: 10px 12px; }
  .finance-app .ledger-panel .pagination .button { min-width: var(--control-height); }
  .transaction-detail > .dialog-head { padding: 14px 16px; min-height: 66px; }
  .transaction-detail > .dialog-body { padding: 16px; }
  .transaction-detail .detail-navigation { padding: 8px 16px; }
  .transaction-detail .detail-link-footer { padding: 10px 16px max(10px,env(safe-area-inset-bottom)); }
  .finance-app .ledger-table .merchant-name { font-size: .875rem; }
  .finance-app .ledger-table .ledger-amount { font-size: .9375rem; }
  .finance-app .ledger-table .ledger-date { font-size: .6875rem; }
  .finance-app .ledger-detail-button { min-width: 40px; min-height: 40px; }
}

.finance-app {
  --blue: #1d4ed8;
  --navy: #17304f;
  --muted: #4b596c;
  --line: #c7ced8;
  --radius: 4px;
  --control-height: 36px;
  --control-font-size: .8125rem;
  --control-line-height: 20px;
  --control-padding: 7px;
  color: #202d40;
}
.finance-app .panel { border-color: #b5becb; border-radius: var(--radius); }
.finance-app h2, .finance-app h3 { color: #192436; }
.finance-app .muted, .finance-app .help-note, .finance-app .small, .finance-app .description,
.finance-app .field, .finance-app .checkbox, .finance-app .table-date, .finance-app .panel-description { color: #4b596c; }
.finance-app .help-note { font-size: .75rem; margin-block: 12px; line-height: 1.7; }
.finance-app .panel-head { min-height: 48px; padding: 12px 16px; border-bottom-color: var(--line); flex-wrap: wrap; }
.finance-app .panel-head .help-note { margin: 5px 0 0; }
.finance-app .panel-head h2 { font-size: .875rem; font-weight: 650; }
.finance-app .panel-head .actions { gap: 8px; }
.finance-app .panel-head .muted { color: #4b596c; }
.finance-app .section-gap { margin-top: 18px; }
.finance-app table { font-size: .75rem; }
.finance-app table thead th { padding: 9px 14px; background: #17304f; color: #fff; font-weight: 600; border-color: #36516f; }
.finance-app table td { padding: 10px 14px; border-bottom-color: #d0d5dd; }
.finance-app table tbody tr:hover { background: #f0f4ff; }
.finance-app .table-wrap { padding-top: 0; }
.finance-app .numeric, .finance-app .amount, .finance-app .asset-table-number, .finance-app .stat-number { font-variant-numeric: tabular-nums; }
.finance-app .account-table .account-group th, .finance-app .account-table .account-group td { padding: 8px 14px; background: #e9edf2; color: #344156; }
.finance-app .account-table th[scope=row] { padding: 12px 14px; color: #202d40; border-bottom-color: #d0d5dd; }
.finance-app .account-table .account-hint, .finance-app .account-table .account-share { color: #4b596c; }
.finance-app .balance-summary { border-color: #b5becb; border-radius: 4px; margin-bottom: 16px; }
.finance-app .balance-metric { padding: 18px; gap: 10px; border-color: #c7ced8; }
.finance-app .balance-metric.net-worth { background: #17304f; }
.finance-app .balance-metric.net-worth > strong, .finance-app .balance-metric.net-worth small,
.finance-app .balance-metric.net-worth .metric-label, .finance-app .balance-metric.net-worth .metric-note,
.finance-app .balance-metric.net-worth .icon { color: #fff; }
.finance-app .metric-label, .finance-app .metric-note { color: #4b596c; }
.finance-app .stat { padding: 16px; border-color: #b5becb; border-radius: 4px; background: #fff; }
.finance-app .stat.primary-stat { background: #17304f; border-color: #17304f; }
.finance-app .stat-top { color: #4b596c; font-size: .75rem; margin-bottom: 12px; }
.finance-app .stat-number { color: #18263a; font-size: clamp(1.25rem,1.85vw,1.75rem); font-weight: 650; letter-spacing: -.6px; margin-bottom: 10px; overflow-wrap: anywhere; white-space: normal; }
.finance-app .stat-number .currency { color: #4b596c; font-size: .875rem; margin-right: 4px; }
.finance-app .stat-footer { color: #4b596c; font-size: .6875rem; line-height: 1.7; }
.finance-app .stat-footer .quiet { padding: 0; font-size: .6875rem; }
.finance-app .metric-unit { font-size: .75rem; font-weight: 400; margin-left: 6px; }
.finance-app .primary-stat .stat-top, .finance-app .primary-stat .stat-number,
.finance-app .primary-stat .currency, .finance-app .primary-stat .stat-footer { color: #fff; }
.finance-app .primary-stat .pill { color: #17304f; background: #fff; border-color: #fff; }
.finance-app .consumption-stats { grid-template-columns: 1.15fr 1fr 1fr 1fr .9fr; gap: 12px; margin-bottom: 16px; }
.finance-app .charts, .finance-app #app.assets-page .charts { gap: 16px; margin-bottom: 16px; align-items: stretch; }
.finance-app .chart-body { padding: 16px 12px 8px; }
.finance-app .trend-chart { height: 210px; }
.finance-app .trend-chart text { fill: #4b596c; }
.finance-app .trend-chart .grid { stroke: #d5dbe3; }
.finance-app .chart-legend { padding: 0 16px 14px; color: #4b596c; }
.finance-app .category-list { padding: 16px; gap: 14px; }
.finance-app .category-track { background: #e7ebf0; }
.finance-app .asset-distribution { padding: 18px 16px; }
.finance-app .asset-distribution-row { margin-block: 16px; }
.finance-app .asset-distribution-row > span:last-child, .finance-app .asset-debt { color: #4b596c; }
.finance-app .asset-split { border-radius: 2px; }
.finance-app .return-summary { padding: 14px 16px 0; gap: 12px; }
.finance-app .return-note { padding-inline: 16px; }
.finance-app .return-summary strong { font-size: 1.125rem; }
.finance-app .return-row-actions { gap: 12px; }
.finance-app input:not([type=checkbox], [type=radio], [type=file]),
.finance-app textarea, .finance-app select,
.finance-app #manual-dialog .field input, .finance-app .webdav-content input:not([type=checkbox]),
.finance-app .field input[type=date], .finance-app #return-form input[type=number], .finance-app .keyword-row textarea {
  min-width: 0; max-width: 100%; border: 1px solid #7d899b; border-radius: 4px; padding: var(--control-padding) 10px;
  background-color: #fff; color: #243247; font: inherit; font-size: var(--control-font-size); line-height: var(--control-line-height); min-height: var(--control-height);
}
.finance-app input:not([type=checkbox], [type=radio], [type=file]),
.finance-app select:not([multiple]) { height: var(--control-height); }
.finance-app select:not([multiple]) { padding-right: 32px; }
.finance-app .search-box input[type=search] { padding-left: 34px; width: 100%; }
.finance-app .search-box .icon { width: 16px; height: 16px; left: 10px; top: calc(var(--control-height) / 2); transform: translateY(-50%); color: #4b596c; }
.finance-app input::placeholder, .finance-app textarea::placeholder { color: #58667a; opacity: 1; }
.finance-app input:focus-visible, .finance-app select:focus-visible, .finance-app textarea:focus-visible { outline: 2px solid #1d4ed8; outline-offset: 2px; }
.finance-app .field { font-size: .75rem; gap: 6px; margin-bottom: 12px; }
.finance-app .form-row { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.finance-app .form-actions { gap: 12px; margin-top: 16px; }
.finance-app .actions { gap: 8px; }
.finance-app .pill { border-radius: 3px; background: #f0f2f5; color: #39495f; padding: 3px 7px; }
.finance-app .pill.amber { color: #874d00; background: #fff4df; }
.finance-app .pill.green { color: #17603b; background: #eaf4ee; }
.finance-app .pill.blue { color: #174986; background: #e7effc; }
.finance-app .notice { border-radius: 4px; padding: 12px 14px; margin-bottom: 16px; border-color: #cbb78f; color: #765000; }
.finance-app .notice.blue { color: #294c7c; border-color: #b4c4d9; background: #f0f4fc; }
.finance-app .inline-error { color: #9b2535; background: #fff2f3; border-color: #d3a5ac; border-radius: 4px; }
.finance-app .import-layout { grid-template-columns: minmax(0,1.65fr) minmax(260px,1fr); gap: 16px; align-items: start; }
.finance-app .dropzone { min-height: 210px; margin: 16px; padding: 24px 16px; background: #f6f7f8; border: 1px dashed #7d899b; border-radius: 4px; }
.finance-app .dropzone.dragging, .finance-app .screenshot-picker.dragging { border-color: #1d4ed8; background: #e4ecff; }
.finance-app .upload-symbol { width: 42px; height: 42px; border-radius: 4px; background: #17304f; color: #fff; margin-bottom: 14px; }
.finance-app .upload-symbol .icon { width: 22px; height: 22px; }
.finance-app .dropzone p, .finance-app .guide-item p { color: #4b596c; font-size: .75rem; }
.finance-app .dropzone h3 { margin-bottom: 8px; }
.finance-app .dropzone p { margin-bottom: 14px; }
.finance-app .file-list { padding: 0 16px 16px; }
.finance-app .file-item { padding-block: 10px; }
.finance-app .import-action { padding-top: 12px; flex-wrap: wrap; gap: 12px; color: #4b596c; }
.finance-app .guide-list { padding: 16px; gap: 18px; grid-template-columns: 1fr; }
.finance-app .guide-item { gap: 10px; }
.finance-app .guide-item > span { background: #17304f; color: #fff; border-color: #17304f; border-radius: 3px; }
.finance-app .guide-item h3 { margin-bottom: 6px; }
.finance-app .screenshot-import { margin-block: 16px; }
.finance-app .screenshot-content { padding: 16px; }
.finance-app .screenshot-picker, .finance-app .screenshot-row { background: #f6f7f8; border-color: #b5becb; border-radius: 4px; padding: 14px; }
.finance-app .screenshot-row.selected { background: #fff; border-color: #8da7cd; }
.finance-app .screenshot-viewport { background: #f1f2f4; border-radius: 4px; }
.finance-app .screenshot-actions { padding-top: 12px; }
.finance-app .settings-card { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 14px; padding: 16px; margin-bottom: 12px; }
.finance-app .settings-card .setting-icon { width: 34px; height: 34px; border-radius: 4px; background: #17304f; color: #fff; }
.finance-app .settings-card h3 { font-size: .8125rem; margin-bottom: 5px; }
.finance-app .settings-card p { color: #4b596c; font-size: .75rem; overflow-wrap: anywhere; }
.finance-app .settings-card .button { margin: 0; }
.finance-app .webdav-panel { margin-block: 16px; }
.finance-app .webdav-content { padding: 16px; }
.finance-app .webdav-options { gap: 16px; }
.finance-app .snapshot-layout { grid-template-columns: minmax(0,1fr) 260px; gap: 20px; }
.finance-app .snapshot-back { margin-bottom: 12px; }
.finance-app .snapshot-date { padding: 18px; gap: 18px; grid-template-columns: 170px minmax(0,1fr); }
.finance-app .snapshot-date .field { margin: 0; }
.finance-app .snapshot-editor .asset-entry-cards { gap: 14px; margin-block: 16px; }
.finance-app .asset-entry-card, .finance-app .asset-config-card, .finance-app .snapshot-editor .asset-entry-card { padding: 18px; border-radius: 4px; border-color: #b5becb; background: #fff; }
.finance-app .asset-entry-heading, .finance-app .snapshot-editor .asset-entry-heading { gap: 10px; margin-bottom: 10px; }
.finance-app .snapshot-editor .asset-entry-heading h3 { font-size: .875rem; }
.finance-app .asset-entry-card .help-note { margin-block: 8px 12px; }
.finance-app .asset-direct { gap: 12px; }
.finance-app .asset-input { border-color: #7d899b; border-radius: 4px; color: #4b596c; }
.finance-app .asset-input > input:not([type=checkbox]):not([type=radio]):not([type=file]) { border: 0; height: calc(var(--control-height) - 2px); min-height: calc(var(--control-height) - 2px); font-size: var(--control-font-size); background: transparent; }
.finance-app .asset-input:focus-within { outline: 2px solid #1d4ed8; outline-offset: 2px; }
.finance-app .asset-input input:focus-visible { outline: none; }
.finance-app .snapshot-summary { padding: 18px; position: sticky; top: 20px; }
.finance-app .snapshot-summary h2 { font-size: .875rem; }
.finance-app .snapshot-summary dl { margin-block: 16px; }
.finance-app .snapshot-summary dl > div { margin-block: 12px; font-size: .75rem; gap: 12px; }
.finance-app .snapshot-summary dt { color: #4b596c; }
.finance-app .snapshot-net { padding-top: 14px; }
.finance-app .snapshot-net > span { font-size: .75rem; margin-bottom: 8px; }
.finance-app .snapshot-net strong { font-size: 1.25rem; color: #17304f; }
.finance-app .snapshot-toolbar { padding: 12px 24px; border-top-color: #aeb8c6; box-shadow: none; }
.finance-app .snapshot-editor { padding-bottom: 90px; }
.finance-app .return-period { padding: 18px; }
.finance-app .filters { gap: 10px; margin-bottom: 14px; }
.finance-app .memo-list { gap: 12px; }
.finance-app .memo-card { padding: 16px; }
.finance-app .memo-content { margin-block: 12px; font-size: .875rem; line-height: 1.7; }
.finance-app .memo-candidate { gap: 12px; padding-block: 12px; }
.finance-app .memo-linked { gap: 10px; }
.finance-app .memo-pagination { margin-top: 14px; }
.finance-app .memo-candidates summary { color: #174986; }
.finance-app dialog { border: 1px solid #aeb8c6; border-radius: 4px; color: #202d40; box-shadow: 0 8px 30px #17304f14; max-height: calc(100dvh - 32px); }
.finance-app dialog::backdrop { background: #17273f40; backdrop-filter: none; }
.finance-app .dialog-head { padding: 16px 20px; border-bottom-color: #b5becb; }
.finance-app .dialog-head h2 { font-size: 1.125rem; }
.finance-app .dialog-body { padding: 18px 20px; }
.finance-app .close-button { border-radius: 4px; color: #344156; background: #edf0f5; }
.finance-app .asset-config-list { gap: 12px; margin-block: 14px; }
.finance-app .asset-config-card { border: 0; border-bottom: 1px solid #c7ced8; border-radius: 0; padding: 14px 0; }
.finance-app .keyword-row { grid-template-columns: minmax(180px,1.4fr) minmax(145px,1fr) minmax(110px,.7fr); gap: 14px; padding-block: 14px; }
.finance-app .keyword-body { padding: 14px 20px; max-height: 65dvh; }
.finance-app .keyword-controls { gap: 12px; }
.finance-app .keyword-footer { padding: 12px 20px; }
.finance-app .currency-row { grid-template-columns: 90px minmax(0,1fr) minmax(0,1fr) auto; gap: 12px; }
.finance-app .currency-row .field { margin: 0; }
.finance-app .empty { padding: 36px 20px; color: #4b596c; }
.finance-app .empty h3 { color: #192436; }
.finance-app .empty p { margin-bottom: 14px; }
.finance-app .asset-welcome { padding: 40px 20px; }
.finance-app .loading, .finance-app .no-data, .finance-app .error-screen p { color: #4b596c; }
.finance-app #toast { left: calc(50% + 108px); border-radius: 4px; background: #17304f; box-shadow: none; padding: 10px 16px; }
.finance-app #toast.error { background: #9b2535; }
.finance-app .login-page { margin: 0; padding: 24px; min-height: 100dvh; }
.finance-app .login-card { width: min(420px,100%); padding: 24px; overflow: hidden; border-top: 0; }
.finance-app .login-card .eyebrow { color: #fff; background: #17304f; padding: 18px 24px; margin: -24px -24px 24px; font-weight: 600; letter-spacing: 0; }
.finance-app .login-card h1 { font-size: 1.5rem; margin-bottom: 8px; }
.finance-app .login-card > .muted { margin: 0 0 22px; font-size: .8125rem; }
.finance-app .login-card .field { margin-bottom: 16px; }
.finance-app .login-card .button { margin-top: 4px; }
.finance-app .ledger-filters { margin-bottom: 0; }
.finance-app .ledger-table td { padding: 9px 14px; }
@media (max-width: 1200px) {
  .finance-app .consumption-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .finance-app .import-layout { grid-template-columns: 1fr; }
  .finance-app .import-guide .guide-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .finance-app .snapshot-date { grid-template-columns: 1fr; }
}
@media (max-width: 1000px) {
  .finance-app .snapshot-layout { grid-template-columns: 1fr; }
  .finance-app .snapshot-summary { position: static; grid-row: auto; }
  .finance-app .snapshot-summary > .help-note:last-child { display: block; }
}
@media (max-width: 900px) {
  .finance-app #toast { left: calc(50% + 36px); }
}
@media (max-width: 700px) {
  .finance-app .page-heading { flex-wrap: wrap; gap: 12px; }
  .finance-app .page-heading .actions { flex-wrap: wrap; }
  .finance-app .import-guide .guide-list { grid-template-columns: 1fr; }
  .finance-app .keyword-row { grid-template-columns: 1fr; gap: 8px; }
  .finance-app .keyword-controls { flex-direction: row; flex-wrap: wrap; gap: 12px; }
}
@media (max-width: 600px) {
  .finance-app { --control-height: 40px; --control-font-size: 1rem; --control-padding: 9px; }
  .finance-app .topbar { padding-inline: 12px; }
  .finance-app .consumption-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .finance-app .consumption-stats .primary-stat { grid-column: 1 / -1; }
  .finance-app .stat { padding: 14px; }
  .finance-app .stat-number { font-size: 1.375rem; }
  .finance-app .primary-stat .stat-number { font-size: 1.875rem; }
  .finance-app .balance-metric { padding: 16px 12px; }
  .finance-app .balance-metric > strong { font-size: clamp(1.1rem,5.2vw,1.45rem); }
  .finance-app .panel-head { padding: 12px; gap: 8px; }
  .finance-app .account-table tr { padding: 12px; gap: 6px 10px; }
  .finance-app .account-table tr.account-group { padding: 10px 12px; }
  .finance-app .account-table th, .finance-app .account-table td, .finance-app .account-table th[scope=row] { padding: 0; border: 0; background: transparent; }
  .finance-app .account-table .account-group th, .finance-app .account-table .account-group td { padding: 0; }
  .finance-app .page-heading .actions .button { min-height: 40px; }
  .finance-app input:not([type=checkbox], [type=radio], [type=file]), .finance-app select { min-height: var(--control-height); font-size: var(--control-font-size); }
  .finance-app .asset-input > input:not([type=checkbox]):not([type=radio]):not([type=file]) { min-height: calc(var(--control-height) - 2px); font-size: var(--control-font-size); }
  .finance-app .keyword-row textarea, .finance-app #return-form input[type=number] { font-size: 1rem; }
  .finance-app .form-row, .finance-app .return-period .form-row { grid-template-columns: 1fr; gap: 0; }
  .finance-app .settings-card { grid-template-columns: 32px minmax(0,1fr); padding: 14px; gap: 10px 12px; }
  .finance-app .settings-card .button { grid-column: 2; justify-self: start; }
  .finance-app .webdav-content, .finance-app .screenshot-content { padding: 14px; }
  .finance-app .webdav-options { align-items: stretch; gap: 12px; }
  .finance-app .webdav-options .field { max-width: none; width: 100%; }
  .finance-app .dropzone { min-height: 200px; margin: 12px; padding: 22px 14px; }
  .finance-app .file-list { padding: 0 12px 14px; }
  .finance-app .guide-list { padding: 14px; gap: 16px; }
  .finance-app .snapshot-date, .finance-app .return-period { padding: 14px; }
  .finance-app .snapshot-editor .asset-entry-card { padding: 14px; }
  .finance-app .snapshot-summary { padding: 14px; }
  .finance-app .snapshot-summary dl { display: block; }
  .finance-app .snapshot-net { display: block; }
  .finance-app .snapshot-net > span { margin-bottom: 8px; }
  .finance-app .snapshot-toolbar { padding: 10px 12px; gap: 8px; }
  .finance-app .snapshot-toolbar > div:first-child { flex: 1; min-width: 0; }
  .finance-app .snapshot-toolbar .actions { flex-shrink: 0; gap: 6px; }
  .finance-app .snapshot-toolbar .button { padding-inline: 8px; }
  .finance-app .snapshot-toolbar strong { font-size: .8125rem; }
  .finance-app .currency-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .finance-app .dialog-head, .finance-app .dialog-body { padding: 16px; }
  .finance-app #manual-dialog .field input { font-size: 1rem; }
  .finance-app .ledger-table td { padding: 0; }
  .finance-app .ledger-table .merchant-name { font-size: .875rem; }
  .finance-app .ledger-table .ledger-date { font-size: .6875rem; }
  .finance-app .ledger-filters { margin: 0; gap: 8px; }
  .finance-app .ledger-filters > select { min-width: 0; flex-basis: calc(50% - 4px); }
  .finance-app .ledger-filters input[type=search], .finance-app .ledger-filters select { min-height: var(--control-height); font-size: var(--control-font-size); }
  .finance-app .sort-control select { max-width: 165px; font-size: 1rem; }
  .finance-app #toast { left: 50%; }
  .finance-app .login-page { padding: 20px; }
  .finance-app .login-card { padding: 20px; }
  .finance-app .login-card .eyebrow { margin: -20px -20px 20px; padding: 16px 20px; }
}

.finance-app .asset-table-number { text-align: right; }
.finance-app .memo-guide { padding: 10px 14px; margin-bottom: 14px; border: 1px solid #b5becb; border-radius: 4px; background: #fff; }
.finance-app .memo-guide summary { cursor: pointer; font-size: .75rem; font-weight: 550; color: #174986; }
.finance-app .memo-guide .help-note:last-child { margin-bottom: 0; }

.finance-app .inspectable-chart { min-width: 0; }
.finance-app [data-chart-item] { cursor: pointer; }
.finance-app .trend-chart [data-chart-item] .chart-hit-area { fill: transparent; }
.finance-app .trend-chart [data-chart-item]:hover .chart-hit-area,
.finance-app .trend-chart [data-chart-item]:focus-visible .chart-hit-area { fill: #1d4ed814; }
.finance-app .trend-chart line { pointer-events: none; }
.finance-app .chart-tooltip { position: fixed; z-index: 100; pointer-events: none; max-width: calc(100vw - 16px); padding: 8px 11px; border-radius: 4px; background: #17304f; color: #fff; box-shadow: 0 3px 12px #17304f26; font-size: .75rem; line-height: 1.6; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.finance-app .category-label { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
@media (max-width: 600px) {
  .finance-app .inspectable-chart .trend-chart { height: auto; aspect-ratio: 620 / 240; }
}
