.company-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;align-items:start}.company-layout.income-layout{grid-template-columns:minmax(0,1fr) minmax(280px,380px)}.company-layout.single{grid-template-columns:1fr}.company-table-wrap,.shareholder-panel,.company-stats{overflow:visible!important;max-height:none!important;min-width:0}.company-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:13px}.company-table th,.company-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;word-break:break-word;overflow-wrap:anywhere;white-space:normal;writing-mode:horizontal-tb}.company-table th{background:var(--surface-2);font-weight:650;color:var(--ink-soft);white-space:nowrap}.company-table td.num,.company-table th.num{text-align:right;font-family:var(--num);white-space:nowrap}.company-table tr.rollup td{color:var(--accent-deep);background:var(--accent-soft)}.company-table tr:hover td{background:var(--surface-2)}.company-table tr.editing td{background:var(--accent-soft)}.company-table .col-date,.company-table .ce-date{width:6.8rem;white-space:nowrap}.company-table .col-kind,.company-table .ce-kind{width:3.6rem;white-space:nowrap}.company-table .col-amount,.company-table .ce-amount{width:5.8rem}.company-table .col-name{text-align:left;width:auto}.company-table .col-actions,.company-table .ce-actions{width:5.2rem;text-align:right;white-space:nowrap}.company-table .muted-date{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.company-table input,.company-table select{width:100%;min-width:0;padding:5px 7px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit}.company-table .cell-input{width:100%;max-width:4.5rem;text-align:right;font-family:var(--num)}.btn.compact{padding:4px 8px;font-size:12px;min-height:0}.table-hint{margin:10px 4px 0}.company-stats-top{margin-bottom:12px}.mobile-shell .company-stats-top{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.mobile-shell .company-stats-top h3{grid-column:1 / -1;margin:0 0 2px}.mobile-shell .company-stats-top .stat-line{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;padding:10px 12px;min-width:0}.mobile-shell .company-stats-top .stat-line span{flex:none!important;width:100%;min-width:0;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.2}.mobile-shell .company-stats-top .stat-line strong{flex:none!important;width:100%;font-size:15px;text-align:left!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-shell .company-layout{grid-template-columns:1fr!important}.company-stats h3{margin:0 0 4px;font-size:15px}.company-stats .stat-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}.company-stats .stat-line span{flex:1 1 auto;min-width:0;font-size:12px;color:var(--ink-soft)}.company-stats .stat-line strong{flex:0 0 auto;font-family:var(--num);font-size:13px;text-align:right}.company-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:14px;align-items:end}.company-form label,.shareholder-form label,.capital-field{display:grid;gap:4px;font-size:12px;color:var(--muted)}.company-form input,.company-form select,.shareholder-form input,.capital-field input{width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.company-form .field-date{max-width:9.5rem}.company-form .field-kind{max-width:6.5rem}.company-form .span-2{grid-column:span 2}.company-form .actions{display:flex;gap:8px;align-items:end}.shareholder-panel{min-width:0}.shareholder-panel h3{margin-top:0}.capital-row{display:flex;gap:8px}.capital-row input{flex:1;min-width:0}.shareholder-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 14px}.shareholder-form label:last-of-type{grid-column:1 / -1}.shareholder-form .btn{grid-column:1 / -1}.shareholder-form input.readonly{background:var(--surface-2);color:var(--ink);font-family:var(--num);font-weight:700}.shareholder-table{table-layout:auto;width:100%}.shareholder-table .col-name{text-align:left;font-weight:650}.mobile-shell .company-layout,.mobile-shell .company-layout.income-layout{grid-template-columns:1fr!important;gap:12px}.mobile-shell .company-form{grid-template-columns:1fr 1fr!important}.mobile-shell .company-form .span-2,.mobile-shell .company-form .actions{grid-column:1 / -1}.mobile-shell .company-form label{min-width:0;max-width:100%;overflow:hidden}.mobile-shell .company-form .field-date,.mobile-shell .company-form .field-kind{max-width:none;min-width:0}.mobile-shell .company-form input,.mobile-shell .company-form select{min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box}.mobile-shell .company-form input[type=date]{display:block;min-width:0!important;max-width:100%!important;width:100%!important;overflow:hidden;text-overflow:clip}.mobile-shell .company-table-wrap{overflow:visible!important;padding:10px!important}.mobile-shell .company-table,.mobile-shell .company-table.income-table,.mobile-shell .shareholder-table{table-layout:auto!important;width:100%!important;min-width:0!important;border-collapse:separate!important;border-spacing:0 10px!important}.mobile-shell .company-table thead,.mobile-shell .shareholder-table thead{display:none!important}.mobile-shell .company-table tbody,.mobile-shell .shareholder-table tbody,.mobile-shell .company-table,.mobile-shell .shareholder-table{display:block!important;width:100%!important}.mobile-shell .company-table tr,.mobile-shell .shareholder-table tr{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;width:100%;margin:0!important;padding:12px!important;border:1px solid #e2e8f0!important;border-radius:12px;background:#fff;box-sizing:border-box}.mobile-shell .company-table tr.rollup{background:#e8f7f1;border-color:#9fd5c3!important}.mobile-shell .company-table tr.editing{background:#f0fdfa;border-color:#5eead4!important}.mobile-shell .company-table td,.mobile-shell .company-table th,.mobile-shell .shareholder-table td,.mobile-shell .shareholder-table th{display:block!important;width:auto!important;max-width:none!important;min-width:0!important;border:0!important;padding:0!important;background:transparent!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;writing-mode:horizontal-tb!important;text-align:left!important}.mobile-shell .company-table[data-layout=master] tr{grid-template-areas:"date amount" "item item" "summary summary" "kind handler" "note note" "actions actions"}.mobile-shell .company-table[data-layout=master] td:nth-child(1){grid-area:date;color:#94a3b8;font-size:12px}.mobile-shell .company-table[data-layout=master] td:nth-child(2){grid-area:item;font-weight:700;font-size:15px;color:#0f172a}.mobile-shell .company-table[data-layout=master] td:nth-child(3){grid-area:summary;color:#64748b;font-size:13px}.mobile-shell .company-table[data-layout=master] td:nth-child(4){grid-area:amount;font-weight:700;font-size:16px;text-align:right!important;font-variant-numeric:tabular-nums;color:#0f172a;justify-self:end}.mobile-shell .company-table[data-layout=master] td:nth-child(5){grid-area:kind;font-size:12px;color:#64748b}.mobile-shell .company-table[data-layout=master] td:nth-child(6){grid-area:handler;font-size:12px;color:#64748b;text-align:right!important}.mobile-shell .company-table[data-layout=master] td:nth-child(7){grid-area:note;font-size:12px;color:#94a3b8}.mobile-shell .company-table[data-layout=master] td:nth-child(8){grid-area:actions;display:flex!important;gap:6px;justify-content:flex-end;padding-top:6px!important}.mobile-shell .company-table[data-layout=fx] tr{grid-template-areas:"date eur" "name name" "cny cny" "note note" "actions actions"}.mobile-shell .company-table[data-layout=fx] td:nth-child(1){grid-area:date;color:#94a3b8;font-size:12px}.mobile-shell .company-table[data-layout=fx] td:nth-child(2){grid-area:name;font-weight:700;font-size:15px}.mobile-shell .company-table[data-layout=fx] td:nth-child(3){grid-area:cny;font-size:13px;color:#64748b}.mobile-shell .company-table[data-layout=fx] td:nth-child(3):before{content:"人民币 ";color:#94a3b8}.mobile-shell .company-table[data-layout=fx] td:nth-child(4){grid-area:eur;font-weight:700;font-size:16px;text-align:right!important;justify-self:end}.mobile-shell .company-table[data-layout=fx] td:nth-child(5){grid-area:note;font-size:12px;color:#94a3b8}.mobile-shell .company-table[data-layout=fx] td:nth-child(6){grid-area:actions;display:flex!important;gap:6px;justify-content:flex-end;padding-top:6px!important}.mobile-shell .company-table[data-layout=cny] tr{grid-template-areas:"item amount" "summary summary" "handler handler" "note note" "actions actions"}.mobile-shell .company-table[data-layout=cny] td:nth-child(1){grid-area:item;font-weight:700;font-size:15px}.mobile-shell .company-table[data-layout=cny] td:nth-child(2){grid-area:summary;color:#64748b;font-size:13px}.mobile-shell .company-table[data-layout=cny] td:nth-child(3){grid-area:amount;font-weight:700;font-size:16px;text-align:right!important;justify-self:end}.mobile-shell .company-table[data-layout=cny] td:nth-child(4){grid-area:handler;font-size:12px;color:#64748b}.mobile-shell .company-table[data-layout=cny] td:nth-child(5){grid-area:note;font-size:12px;color:#94a3b8}.mobile-shell .company-table[data-layout=cny] td:nth-child(6){grid-area:actions;display:flex!important;gap:6px;justify-content:flex-end;padding-top:6px!important}.mobile-shell .company-table[data-layout=taobao] tr{grid-template-areas:"row amount" "item item" "qty price" "note note" "actions actions"}.mobile-shell .company-table[data-layout=taobao] td:nth-child(1){grid-area:row;color:#94a3b8;font-size:12px}.mobile-shell .company-table[data-layout=taobao] td:nth-child(2){grid-area:item;font-weight:700;font-size:15px}.mobile-shell .company-table[data-layout=taobao] td:nth-child(3){grid-area:qty;font-size:12px;color:#64748b}.mobile-shell .company-table[data-layout=taobao] td:nth-child(3):before{content:"数量 ";color:#94a3b8}.mobile-shell .company-table[data-layout=taobao] td:nth-child(4){grid-area:price;font-size:12px;color:#64748b;text-align:right!important}.mobile-shell .company-table[data-layout=taobao] td:nth-child(4):before{content:"单价 ";color:#94a3b8}.mobile-shell .company-table[data-layout=taobao] td:nth-child(5){grid-area:amount;font-weight:700;font-size:16px;text-align:right!important;justify-self:end}.mobile-shell .company-table[data-layout=taobao] td:nth-child(6){grid-area:note;font-size:12px;color:#94a3b8}.mobile-shell .company-table[data-layout=taobao] td:nth-child(7){grid-area:actions;display:flex!important;gap:6px;justify-content:flex-end;padding-top:6px!important}.mobile-shell .company-table[data-layout=income] tr,.mobile-shell .company-table.income-table tr{grid-template-areas:"date amount" "name name" "kind kind" "actions actions"}.mobile-shell .company-table[data-layout=income] td:nth-child(1),.mobile-shell .company-table.income-table td:nth-child(1){grid-area:date;color:#94a3b8;font-size:12px}.mobile-shell .company-table[data-layout=income] td:nth-child(2),.mobile-shell .company-table.income-table td:nth-child(2){grid-area:amount;font-weight:700;font-size:16px;text-align:right!important;justify-self:end}.mobile-shell .company-table[data-layout=income] td:nth-child(3),.mobile-shell .company-table.income-table td:nth-child(3){grid-area:kind;font-size:12px;color:#64748b}.mobile-shell .company-table[data-layout=income] td:nth-child(4),.mobile-shell .company-table.income-table td:nth-child(4){grid-area:name;font-weight:700;font-size:15px}.mobile-shell .company-table[data-layout=income] td:nth-child(5),.mobile-shell .company-table.income-table td:nth-child(5){grid-area:actions;display:flex!important;gap:6px;justify-content:flex-end;padding-top:6px!important}.mobile-shell .shareholder-table tr{grid-template-areas:"name name" "ratio expected" "paid remain"}.mobile-shell .shareholder-table td:nth-child(1){grid-area:name;font-weight:700}.mobile-shell .shareholder-table td:nth-child(2){grid-area:ratio;font-size:12px;color:#64748b}.mobile-shell .shareholder-table td:nth-child(2):before{content:"比例% ";color:#94a3b8}.mobile-shell .shareholder-table td:nth-child(3){grid-area:expected;font-size:12px;text-align:right!important}.mobile-shell .shareholder-table td:nth-child(3):before{content:"应投 ";color:#94a3b8}.mobile-shell .shareholder-table td:nth-child(4){grid-area:paid;font-size:12px}.mobile-shell .shareholder-table td:nth-child(4):before{content:"已投 ";color:#94a3b8}.mobile-shell .shareholder-table td:nth-child(5){grid-area:remain;font-size:12px;text-align:right!important}.mobile-shell .shareholder-table td:nth-child(5):before{content:"差额 ";color:#94a3b8}.mobile-shell .company-table td:empty:not(.col-actions):not(.ce-actions){display:none!important}.mobile-shell .company-stats .stat-line{padding:10px 12px}.mobile-shell .company-stats:not(.company-stats-top) .stat-line span{flex:0 1 auto;white-space:nowrap;min-width:0}.mobile-shell .company-stats:not(.company-stats-top) .stat-line strong{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}@media (max-width: 980px){.company-layout,.company-layout.income-layout{grid-template-columns:1fr}}:root{--ink: #1a2421;--ink-soft: #3a4a45;--muted: #6a7a74;--line: rgba(26, 36, 33, .08);--line-strong: rgba(26, 36, 33, .14);--paper: #ffffff;--paper-2: #f4f7f5;--surface: #ffffff;--surface-2: #f4f7f5;--sidebar: #15241f;--sidebar-2: #0f1b17;--sidebar-text: #e6f0eb;--sidebar-muted: #8aa399;--accent: #0f766e;--accent-deep: #0b5f59;--accent-soft: #d9f0ec;--income: #0d7a4f;--expense: #c2410c;--warn: #a16207;--danger: #b91c1c;--shadow: 0 20px 48px rgba(15, 36, 30, .1);--shadow-soft: 0 1px 0 rgba(255, 255, 255, .65) inset, 0 8px 22px rgba(15, 36, 30, .05);--radius: 16px;--radius-sm: 10px;--sidebar-w: 232px;--font: "Segoe UI Variable", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", sans-serif;--font-display: "Segoe UI Variable Display", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", sans-serif;--num: "Cascadia Mono", "Consolas", "Segoe UI", tabular-nums, sans-serif;color:var(--ink);background:var(--paper);font-family:var(--font);line-height:1.5;font-size:14px}:root[data-theme=dark]{--ink: #e8f0ec;--ink-soft: #c0cec8;--muted: #8fa49b;--line: rgba(220, 240, 231, .08);--line-strong: rgba(220, 240, 231, .16);--paper: #111b18;--paper-2: #17231f;--surface: #1b2925;--surface-2: #22312c;--accent-soft: #173f39;--income: #55c891;--expense: #f08a63;color-scheme:dark}:root[data-theme=dark] .app-shell{background:linear-gradient(145deg,#101916,#17241f)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea,:root[data-theme=dark] .btn:not(.primary):not(.danger),:root[data-theme=dark] .qe-chips button{background:#22312c;color:var(--ink)}.eyebrow{margin:0 0 6px!important;color:var(--accent)!important;font-weight:750;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.btn-large{padding:12px 20px}.hero-balance{margin-bottom:16px;padding:26px 28px;display:flex;justify-content:space-between;align-items:end;gap:24px;color:#f4fffb!important;background:linear-gradient(135deg,#153d35,#0f766e)!important;border:0;box-shadow:0 18px 40px #0f4b4338}.hero-balance span,.hero-balance small{display:block;color:#f4fffbb8}.hero-balance strong{display:block;margin:7px 0 3px;color:#fff!important;font-family:var(--num);font-size:clamp(32px,4vw,48px);line-height:1}.hero-side{text-align:right}.hero-side strong{font-size:26px}.dashboard-stats .stat-card{min-height:105px}.muted{color:var(--muted);font-size:12px}.theme-toggle{width:100%;padding:8px;color:var(--sidebar-muted);background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:10px}.theme-toggle:hover{color:#fff;background:#ffffff0f}.book-switcher{position:relative;z-index:1;padding:0 4px}.book-switcher label{display:block;color:var(--sidebar-muted);font-size:11px;margin:0 0 5px 4px}.book-switcher select{width:100%;padding:9px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff14;color:#fff}.book-switcher option{color:#17231f;background:#fff}.category-pill{display:inline-flex;margin:3px;padding:5px 10px;border:1px solid;border-radius:999px;font-size:12px}.loan-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.loan-row:last-child{border-bottom:0}.loan-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tx-cols.editing-row{background:var(--accent-soft);border-radius:10px;padding-left:8px;padding-right:8px}.entry-bar-label{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}.loan-direction{padding:5px 9px;border-radius:8px;font-weight:700;font-size:12px;background:var(--accent-soft);color:var(--accent-deep)}.loan-direction.borrowed{background:#f5e6d8;color:#9a4a28}.loan-main{flex:1;min-width:130px}.loan-main small,.loan-money small{display:block;color:var(--muted);margin-top:3px}.loan-money{text-align:right;min-width:120px}.loan-money strong{display:block;font-family:var(--num)}.status{font-size:12px;padding:4px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.status.settled{background:var(--surface-2);color:var(--muted)}.transfer-arrow{color:var(--accent);font-weight:800}.undo-toast{position:fixed;right:28px;bottom:26px;z-index:70;display:flex;gap:14px;align-items:center;padding:12px 16px;color:#fff;background:#17231f;border-radius:12px;box-shadow:var(--shadow)}.undo-toast button{border:0;background:transparent;color:#6ee7c4;font-weight:700;padding:3px}.app-dialog{width:min(420px,100%)}.app-dialog-msg{margin:0;color:var(--muted);line-height:1.55;white-space:pre-wrap}.search-hero{display:flex;gap:10px;padding:14px;margin-bottom:16px}.search-hero input{flex:1;border:0;background:transparent;padding:8px 10px;outline:0;font-size:17px}.memo-summary-bar{display:flex;align-items:center;gap:12px;padding:13px 16px;margin-bottom:16px;flex-wrap:wrap}.memo-summary-bar>div{flex:1;min-width:180px}.memo-summary-bar span{display:block;color:var(--muted);font-size:12px}.memo-layout-single{grid-template-columns:1fr}.memo-layout-single .memo-sections{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.hero-balance{align-items:start;flex-direction:column}.hero-side{text-align:left}.loan-row{align-items:flex-start;flex-wrap:wrap}.loan-main{flex-basis:50%}}:root{--ink: #101828;--ink-soft: #344054;--muted: #667085;--line: #e3e8f1;--line-strong: #d1d9e6;--paper: #ffffff;--paper-2: #f8fafc;--surface: #ffffff;--surface-2: #f8faff;--accent: #1f6fff;--accent-deep: #1457d9;--accent-soft: #eaf1ff;--shadow: 0 18px 45px rgba(31, 65, 124, .12);--shadow-soft: 0 8px 28px rgba(31, 65, 124, .06);--radius: 16px;--sidebar-w: 0px}.app-shell{display:flex;flex-direction:column;height:100%;background:#fff}.top-shell{position:relative;z-index:20;flex:0 0 auto;background:#fff;border-bottom:1px solid var(--line);box-shadow:none}.brand{padding:0;gap:12px;min-width:190px}.brand-mark{width:46px;height:46px;border-radius:0;object-fit:contain;box-shadow:none;background:transparent}.brand h1{color:#111827;font-size:20px;letter-spacing:.04em}.brand p{color:#667085;margin-top:1px;font-size:11px;font-weight:700;letter-spacing:.12em}.nav{overflow:visible}.nav a{padding:10px 14px;border-radius:11px;color:#344054;font-weight:700;white-space:nowrap}.nav a:hover{background:#f2f6ff;color:var(--accent)}.nav a.active{background:var(--accent-soft);color:var(--accent);box-shadow:none}.nav-secondary a{padding:7px 11px;font-size:13px}.top-actions .year-select select{min-width:112px;padding:10px 12px;background:#fff;border:1px solid var(--line-strong);border-radius:12px}.book-switcher{display:flex;align-items:center;gap:8px;padding:0;min-width:190px}.book-switcher label{margin:0;color:#98a2b3;font-size:12px}.book-switcher select:hover{border-color:var(--line)}.theme-toggle{width:38px;height:34px;padding:0;border:1px solid var(--line);color:#667085;background:#fff;border-radius:10px}.theme-toggle:hover{color:var(--accent);background:var(--accent-soft)}.workspace{flex:1}.main{width:min(1760px,calc(100% - 48px));margin:0 auto;padding:40px 0 56px}.card{border:1px solid var(--line);box-shadow:var(--shadow-soft)}.btn.primary{background:linear-gradient(180deg,#2a78ff,#1764ed);box-shadow:0 8px 18px #1f6fff33}.field input,.field select,.field textarea,.toolbar input,.toolbar select,.entry-bar input,.entry-bar select{border-color:var(--line-strong);border-radius:11px}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus,.entry-bar input:focus,.entry-bar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f6fff1f}.qe-panel,.modal{border-radius:20px}.qe-modes button.active,.qe-chips button.active{color:var(--accent);background:var(--accent-soft);border-color:#bfd2ff}:root[data-theme=dark]{--accent:#6ea1ff;--accent-deep:#8bb3ff;--accent-soft:#1c3158;--paper:#0f1420;--surface:#171e2d;--surface-2:#1d2638;--line:#273249;--line-strong:#344159}:root[data-theme=dark] .top-shell{background:#141b29f7}:root[data-theme=dark] .brand h1{color:#f1f5ff}:root[data-theme=dark] .nav a{color:#b8c2d6}:root[data-theme=dark] .nav a.active{color:#8bb3ff}:root[data-theme=dark] .book-switcher select,:root[data-theme=dark] .theme-toggle,:root[data-theme=dark] .top-actions .year-select select{background:#1d2638;color:#e8eefc}@media (max-width:1180px){.topbar,.subbar,.main,.ledger-tabs{width:calc(100% - 28px)}.nav a{padding:9px;font-size:13px}.brand{min-width:150px}.nav-secondary{overflow-x:auto}}@media (max-width:860px){.app-shell{display:flex;grid-template:none}.topbar{min-height:auto;padding:12px 0;flex-wrap:wrap}.brand{flex:1}.nav-primary{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.subbar{overflow-x:auto}.book-switcher{min-width:165px}.main{padding-top:24px}}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100%;min-width:0;background:radial-gradient(ellipse 70% 45% at 100% 0%,rgba(15,118,110,.09),transparent 50%),linear-gradient(160deg,#f3f6f4,#eef2f0 55%,#e8efeb)}.sidebar{position:relative;z-index:2;display:flex;flex-direction:column;gap:20px;padding:24px 16px 18px;color:var(--sidebar-text);background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 40%),linear-gradient(165deg,var(--sidebar),var(--sidebar-2));box-shadow:10px 0 28px #0814102e}.sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.45;background-image:radial-gradient(rgba(255,255,255,.04) .7px,transparent .7px);background-size:12px 12px}.brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px;padding:4px 8px 8px}.brand-mark{width:42px;height:42px;border-radius:0;display:block;object-fit:contain;box-shadow:none;background:transparent}.brand h1{margin:0;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:.12em;color:#f5fbf8}.brand p{margin:4px 0 0;color:var(--sidebar-muted);font-size:12px;letter-spacing:.04em}.nav{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;flex:1;overflow:auto}.nav a{display:block;padding:11px 14px;border-radius:12px;color:var(--sidebar-muted);font-weight:600;transition:background .15s ease,color .15s ease}.nav a:hover{background:#ffffff0f;color:#f2faf7}.nav a.active{background:#f4fff91f;color:#fff;box-shadow:inset 0 0 0 1px #ffffff14}.sidebar-foot{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;padding:0 4px}.sidebar .year-select label{color:var(--sidebar-muted)}.sidebar .year-select select{width:100%;min-width:0;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#f4fbf8}.sidebar .year-select select option{color:var(--ink);background:#fff}.sidebar-cta{width:100%;border-radius:12px!important;justify-content:center}.sidebar-hint{margin:0;text-align:center;font-size:11px;color:var(--sidebar-muted);letter-spacing:.04em}.workspace{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ledger-tabs{display:flex;align-items:center;gap:6px;padding:10px clamp(16px,3vw,40px) 0;overflow-x:auto;scrollbar-width:none}.ledger-tabs a{padding:7px 13px;border-radius:999px;color:var(--ink-soft);font-size:13px;font-weight:600;white-space:nowrap;border:1px solid transparent;transition:background .12s ease,color .12s ease,border-color .12s ease}.ledger-tabs a:hover{background:#0f766e14;color:var(--accent-deep)}.ledger-tabs a.active{color:var(--accent-deep);background:var(--accent-soft);border-color:#0f766e2e}.main{flex:1;overflow:auto;padding:clamp(16px,2.4vw,32px) clamp(16px,3vw,40px) clamp(24px,3vw,48px);min-width:0;min-height:0}.page-fill{min-height:100%;display:flex;flex-direction:column}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px;flex-wrap:wrap}.page-header-inline{align-items:center}.title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}.page-header h2{margin:0;font-family:var(--font-display);font-size:clamp(24px,2.6vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.15}.page-header p{margin:8px 0 0;color:var(--muted);max-width:640px}.hotkey-hint{color:var(--muted);font-size:12px;white-space:nowrap}.header-mode{margin-top:0;max-width:min(360px,70vw);min-width:200px;font-size:13px;padding:8px 12px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.2vw,16px);margin-bottom:16px}.stat-card{position:relative;overflow:hidden;padding:18px 18px 16px;min-height:112px}.stat-card:before{content:"";position:absolute;width:120px;height:120px;right:-36px;top:-46px;border-radius:50%;background:radial-gradient(circle,rgba(15,118,110,.12),transparent 70%)}.stat-card .label{position:relative;color:var(--muted);font-size:13px;letter-spacing:.04em}.stat-card .value{position:relative;margin-top:10px;font-family:var(--num);font-size:clamp(22px,2.4vw,30px);font-weight:700;letter-spacing:-.02em}.stat-card.income .value{color:var(--income)}.stat-card.expense .value{color:var(--expense)}.stat-card.expense:before{background:radial-gradient(circle,rgba(194,65,12,.14),transparent 70%)}.panel{padding:20px;margin-bottom:16px}.panel h3{margin:0 0 16px;font-size:16px;font-weight:700;letter-spacing:.02em}.filter-panel{padding:14px 16px}.table-wrap{overflow:auto;border-radius:14px;max-width:100%}.table-fill{flex:1;min-height:280px}table.data{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;font-family:var(--num)}table.data th,table.data td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}table.data th{color:var(--muted);font-weight:650;font-size:12px;letter-spacing:.06em;background:var(--surface-2);position:sticky;top:0;z-index:1}table.data tbody tr:hover td{background:#0f766e09}table.data td.num,table.data th.num{text-align:right}table.data input.cell{width:100%;min-width:88px;border:1px solid transparent;background:transparent;padding:7px 8px;border-radius:10px;text-align:right;transition:border-color .15s ease,background .15s ease}table.data input.cell:hover{background:#ffffffb3}table.data input.cell:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #0f766e1f}.th-sub{margin-top:4px;font-size:11px;font-weight:500;letter-spacing:0;color:var(--muted);white-space:normal;max-width:110px;line-height:1.3}.shop-head{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}.extra-tag{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:#f3e0d4;color:#9a4a28;font-size:11px;font-weight:700;letter-spacing:.04em}table.data th.col-extra,table.data td.col-extra{background:#c2410c0a}table.data th.col-extra{background:#f7ebe4}.mode-select{margin-top:6px;max-width:180px;font-size:12px;padding:4px 8px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font-weight:500}.compact-card{padding:16px 18px}.compact-card h3{margin-bottom:10px;font-size:15px}.deposit-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-bottom:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.deposit-summary>div{display:flex;flex-direction:column;gap:2px}.deposit-summary .muted{font-size:12px;color:var(--muted)}.deposit-summary strong{font-variant-numeric:tabular-nums;font-size:15px}.income-text{color:var(--income)}.expense-text{color:var(--expense)}.danger-text{color:var(--danger)}.check-inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);white-space:nowrap}.add-shop-form{align-items:center}.add-shop-form input[type=text],.add-shop-form input:not([type]),.add-shop-form>input{min-width:0;flex:1}input.no-spin::-webkit-outer-spin-button,input.no-spin::-webkit-inner-spin-button,table.data input.cell::-webkit-outer-spin-button,table.data input.cell::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.no-spin,table.data input.cell[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.row-actions{text-align:right;white-space:nowrap}.btn{border:1px solid var(--line-strong);background:#fff;color:var(--ink);border-radius:12px;padding:9px 16px;font-weight:600;transition:transform .12s ease,background .12s ease,border-color .12s ease}.btn:hover{border-color:#b7c6bf;transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(180deg,#149287,var(--accent-deep));border-color:transparent;color:#fff;box-shadow:0 8px 18px #0b5f5938}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{color:var(--danger);border-color:#efc4c4;background:#fff7f6}.btn.ghost{background:transparent;border-color:transparent;border-radius:10px;padding:6px 10px}.btn.ghost:hover{background:#1a24210d;transform:none}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted);letter-spacing:.04em}.field input,.field select,.field textarea,.toolbar input,.toolbar select,.entry-bar input,.entry-bar select{border:1px solid var(--line-strong);border-radius:12px;padding:9px 12px;background:#fff;min-width:120px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus,.entry-bar input:focus,.entry-bar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f766e1f}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.modal-backdrop,.qe-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a181573;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;z-index:90;padding:20px;animation:fadeIn .18s ease}.modal,.qe-panel{width:min(560px,100%);background:var(--surface);border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow);padding:24px;animation:riseIn .22s ease}.modal h3,.qe-head h3{margin:0 0 4px;font-size:20px}.modal-actions,.qe-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.empty{padding:48px 16px;text-align:center;color:var(--muted)}.list-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:none}.split-2{display:grid;grid-template-columns:1.45fr 1fr;gap:16px}.linkish{border:0;background:transparent;color:var(--accent-deep);font-weight:600;padding:2px 4px}.linkish:hover{text-decoration:underline}.qe-panel{width:min(640px,100%);display:flex;flex-direction:column;gap:16px}.qe-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.qe-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.qe-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.qe-modes button{border:0;background:transparent;border-radius:10px;padding:10px 12px;font-weight:700;color:var(--muted)}.qe-modes button.active{background:#fff;color:var(--accent-deep);box-shadow:0 2px 8px #0f241e14}.qe-amount-block label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.qe-amount{width:100%;border:1px solid var(--line-strong);border-radius:14px;padding:16px 18px;font-family:var(--num);font-size:32px;font-weight:700;letter-spacing:-.02em;background:var(--surface-2);outline:none}.qe-amount:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px #0f766e1f}.qe-preview{margin-top:8px;color:var(--muted);font-family:var(--num);font-size:13px}.qe-chips{display:flex;flex-wrap:wrap;gap:8px}.qe-chips button{border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600;color:var(--ink-soft)}.qe-chips button:hover{border-color:#0f766e59;color:var(--accent-deep)}.qe-chips button.active{background:var(--accent-soft);border-color:#0f766e47;color:var(--accent-deep)}.qe-fields{display:grid;grid-template-columns:1.4fr .9fr .9fr;gap:12px}.qe-fields .qe-grow{min-width:0}.qe-msg{padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600}.qe-msg.err{background:#fff1f0;color:var(--danger)}.qe-msg.ok{background:var(--accent-soft);color:var(--accent-deep)}.entry-bar{padding:16px 18px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.entry-bar-label{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px}.entry-bar-preview,.entry-bar-ok{font-family:var(--num);font-weight:600;font-size:13px;color:var(--accent-deep)}.entry-bar-ok{color:var(--income)}.entry-bar-chips{gap:6px}.entry-bar-chips button{padding:6px 10px;font-size:12px}.entry-bar-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.entry-bar-row .entry-desc{flex:1 1 220px;min-width:160px}.entry-bar-row .entry-amt{flex:0 0 140px;font-family:var(--num);font-weight:700;text-align:right}.entry-bar-row-ledger input[type=date],.entry-bar-row-ledger select{flex:0 0 auto;min-width:128px}.memo-badge{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;vertical-align:middle;color:var(--accent-deep);background:var(--accent-soft);letter-spacing:.04em}.memo-stats{margin-bottom:16px}.memo-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,.9fr);gap:16px;align-items:start}.memo-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.memo-section{padding:14px 16px 8px;min-height:140px}.memo-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}.memo-section-head h3{margin:0;font-size:14px;font-weight:700}.memo-list{list-style:none;margin:0;padding:0}.memo-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.memo-item:last-child{border-bottom:none}.memo-desc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memo-amt{font-family:var(--num);font-weight:700;font-variant-numeric:tabular-nums}.memo-actions{display:flex;gap:2px;opacity:0;transition:opacity .12s ease}.memo-item:hover .memo-actions,.memo-item:focus-within .memo-actions{opacity:1}.memo-empty{padding:24px 8px}.memo-balances{position:sticky;top:0}.memo-balances h3{margin-bottom:4px}.memo-balances-hint,.memo-balance-meta{margin:0 0 10px;color:var(--muted);font-size:12px}.memo-balance-meta{margin:2px 0 0}.onboarding{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:radial-gradient(circle at 18% 18%,rgba(15,118,110,.28),transparent 32%),radial-gradient(circle at 82% 78%,rgba(194,65,12,.1),transparent 28%),linear-gradient(160deg,#15241f,#1a322b 45%,#234038);padding:24px}.onboarding-logo{display:block;width:64px;height:64px;border-radius:16px;margin:0 0 14px;box-shadow:0 10px 24px #0f766e38}.onboarding .card{width:min(580px,100%);padding:32px;animation:riseIn .28s ease}.onboarding h2{margin:0 0 10px;font-size:28px}.onboarding p{color:var(--muted);margin:0 0 12px}.onboarding ul{margin:0 0 18px;padding-left:18px;color:var(--ink-soft)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-2,.memo-layout,.qe-fields{grid-template-columns:1fr}:root{--sidebar-w: 210px}}@media (max-width: 860px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{max-height:42vh;overflow:auto}.memo-sections{grid-template-columns:1fr}.hotkey-hint{width:100%}}.app-shell{display:flex;flex-direction:column;height:100%;background:radial-gradient(circle at 88% 8%,rgba(31,111,255,.09),transparent 28%),linear-gradient(180deg,#f8faff 0,#f3f6fb 42%,#f7f9fc)}.top-shell{position:relative;z-index:20;flex:0 0 auto;background:#fffffff7;border-bottom:1px solid #e3e8f1;box-shadow:0 1px #10182805}.topbar,.subbar{width:min(1760px,calc(100% - 48px));margin:0 auto;display:flex;align-items:center;gap:26px}.topbar{min-height:82px}.subbar{min-height:54px;border-top:1px solid #f0f3f8}.top-shell .brand{position:static;z-index:auto;display:flex;align-items:center;padding:0;gap:12px;min-width:190px}.top-shell .brand-mark{width:46px;height:46px;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.top-shell .brand h1{color:#111827;font-size:20px;letter-spacing:.04em}.top-shell .brand p{color:#667085;margin-top:1px;font-size:11px;font-weight:700;letter-spacing:.12em}.top-shell .nav{position:static;z-index:auto;display:flex;overflow:visible}.nav-primary,.nav-secondary{flex-direction:row;align-items:center;gap:4px}.nav-primary{flex:1;justify-content:center}.top-shell .nav a{padding:10px 14px;border-radius:11px;color:#344054;font-weight:700;white-space:nowrap}.top-shell .nav a:hover{background:#f2f6ff;color:#1f6fff}.top-shell .nav a.active{background:#eaf1ff;color:#1f6fff;box-shadow:none}.nav-secondary{flex:1;gap:2px}.top-shell .nav-secondary a{padding:7px 11px;font-size:13px}.top-actions{display:flex;align-items:center;gap:10px}.top-actions .year-select{display:flex;align-items:center;gap:6px}.top-actions .year-select label{display:none}.top-actions .year-select select{min-width:112px;padding:10px 12px;background:#fff;border:1px solid #d1d9e6;border-radius:12px;color:#344054}.top-actions .btn.primary{padding:11px 18px}.book-switcher{position:static;z-index:auto;display:flex;align-items:center;gap:8px;padding:0;min-width:190px}.book-switcher label{display:block;margin:0;color:#98a2b3;font-size:12px}.book-switcher select{width:auto;max-width:170px;padding:7px 28px 7px 9px;background:#fff;color:#344054;border:1px solid transparent;border-radius:9px;font-weight:700}.book-switcher select:hover{border-color:#e3e8f1}.theme-toggle{width:38px;height:34px;padding:0;border:1px solid #e3e8f1;color:#667085;background:#fff;border-radius:10px}.theme-toggle:hover{color:#1f6fff;background:#eaf1ff}.workspace{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.main{width:min(1760px,calc(100% - 48px));margin:0 auto;padding:40px 0 56px;overflow:auto}.ledger-tabs{width:min(1760px,calc(100% - 48px));margin:0 auto;padding:10px 0 0}.page-header{margin-bottom:24px}.page-header h2{font-size:clamp(28px,2.6vw,38px);letter-spacing:-.035em}.page-header p{font-size:14px;color:#667085}.card{border:1px solid #e3e8f1;box-shadow:0 8px 28px #1f417c0f}.panel{padding:24px}.stat-card{min-height:126px;padding:22px}.stat-card .label{font-size:13px;color:#667085}.stat-card .value{margin-top:14px;font-size:clamp(24px,2.3vw,34px)}.hero-balance{background:linear-gradient(125deg,#185fdc,#2b7cff)!important;border:0;box-shadow:0 18px 38px #1f6fff38}.btn{border-radius:11px;padding:9px 15px}.btn.primary{background:linear-gradient(180deg,#2a78ff,#1764ed);border-color:transparent;box-shadow:0 8px 18px #1f6fff33}.btn.primary:hover{filter:none;background:#145ee8}.field input,.field select,.field textarea,.toolbar input,.toolbar select,.entry-bar input,.entry-bar select{border-color:#d1d9e6;border-radius:11px}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus,.entry-bar input:focus,.entry-bar select:focus{border-color:#1f6fff;box-shadow:0 0 0 3px #1f6fff1f}table.data th{background:#f7f9fc;color:#667085}table.data tbody tr:hover td{background:#f8faff}.qe-modes button.active,.qe-chips button.active{color:#1f6fff;background:#eaf1ff;border-color:#bfd2ff}:root[data-theme=dark] .app-shell{background:linear-gradient(145deg,#0f1420,#151d2b)}:root[data-theme=dark] .top-shell{background:#141b29f7;border-color:#273249}:root[data-theme=dark] .top-shell .brand h1{color:#f1f5ff}:root[data-theme=dark] .top-shell .nav a{color:#b8c2d6}:root[data-theme=dark] .top-shell .nav a.active{color:#8bb3ff;background:#1c3158}:root[data-theme=dark] .book-switcher select,:root[data-theme=dark] .theme-toggle,:root[data-theme=dark] .top-actions .year-select select{background:#1d2638;color:#e8eefc;border-color:#344159}@media (max-width:1180px){.topbar,.subbar,.main,.ledger-tabs{width:calc(100% - 28px)}.topbar{padding:12px 0;flex-wrap:wrap}.top-shell .brand{min-width:150px;flex:1}.nav-primary{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.top-shell .nav a{padding:9px 11px;font-size:13px}.nav-secondary{overflow-x:auto}.top-actions{margin-left:auto}}@media (max-width:860px){.app-shell{display:flex;grid-template:none}.topbar{min-height:auto;padding:12px 0;flex-wrap:wrap}.top-shell .brand{flex:1}.nav-primary{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.subbar{overflow-x:auto}.book-switcher{min-width:165px}.main{padding-top:24px}}.topbar{width:calc(100% - 36px);max-width:1840px;min-height:76px;flex-wrap:nowrap!important;gap:14px;padding:0!important}.top-shell .brand{flex:0 0 auto!important;min-width:142px}.top-shell .brand-mark{width:42px;height:42px;border-radius:12px}.top-shell .brand h1{font-size:18px}.top-shell .brand p{font-size:9px}.topbar .book-switcher{flex:0 0 auto;min-width:0}.topbar .book-switcher label{display:none}.topbar .book-switcher select{max-width:138px;border-color:#e3e8f1;background:#f8faff}.topbar .nav-primary{order:initial!important;flex:1 1 auto!important;flex-basis:auto!important;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;min-width:80px;gap:1px}.topbar .nav-primary::-webkit-scrollbar{display:none}.topbar .nav a{padding:9px 10px;font-size:12px}.top-actions{flex:0 0 auto;margin-left:0!important;gap:7px}.top-actions .year-select select{min-width:94px;padding:9px}.top-actions .btn.primary{padding:10px 14px}.top-actions .theme-toggle{flex:0 0 36px}@media (max-width:900px){.top-shell .brand p{display:none}.top-shell .brand{min-width:92px}.topbar .book-switcher select{max-width:112px}.top-actions .year-select{display:none}.top-actions .btn.primary{font-size:0;padding:10px 12px}.top-actions .btn.primary:after{content:"＋";font-size:18px}}.main,.ledger-tabs{max-width:1480px}.main{padding-top:26px;padding-bottom:38px}.page-header{margin-bottom:16px}.page-header p{display:none}.page-header h2{font-size:30px}.stats-grid{gap:12px;margin-bottom:12px}.stat-card{min-height:98px;padding:16px 18px}.stat-card .value{margin-top:8px;font-size:26px}.hero-balance{padding:20px 24px;margin-bottom:12px}.hero-balance strong{font-size:38px}.panel{padding:18px;margin-bottom:12px}.split-2{gap:12px}.entry-bar{padding:12px 14px;margin-bottom:12px;gap:8px}.entry-bar-row{gap:8px}.entry-bar-row input,.entry-bar-row select{min-width:110px;max-width:190px}.entry-bar-row .entry-desc{min-width:180px;max-width:420px;flex:1 1 260px}.entry-bar-row .entry-amt{max-width:150px;flex:0 0 140px}.compact-entry .entry-bar-row{flex-wrap:nowrap;overflow-x:auto}.compact-filter{padding:10px 14px}.compact-filter .toolbar input{width:230px}.compact-list{padding-top:8px;padding-bottom:8px}.compact-list .list-row{padding:10px 0}.compact-empty{padding:24px 10px}.memo-section{min-height:108px}.empty.memo-empty{padding:18px 8px}.form-grid{gap:10px}.modal,.qe-panel{padding:20px}.list-row{padding:10px 0}.settings-single{grid-template-columns:1fr}.compact-form input{max-width:230px}.compact-form select{max-width:130px}.category-manage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.category-edit-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px}.category-edit-row input{min-width:0;flex:1;border:0;background:transparent;padding:4px;outline:none}.category-edit-row small{color:var(--muted);white-space:nowrap}.category-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.book-manager{display:flex;flex-direction:column;gap:7px}.book-edit-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px}.book-edit-row input{min-width:0;flex:1;border:0;background:transparent;padding:5px 7px;outline:none}.book-edit-row input:focus{background:var(--surface-soft);border-radius:7px}.book-edit-row small{min-width:34px;color:var(--muted)}.book-add-form{margin-top:3px}.income-receipts{margin-top:18px}.section-title-row{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.section-title-row h3{margin:0}.segmented{display:flex;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.segmented button{border:0;background:transparent;padding:6px 12px;border-radius:7px;font-weight:700;color:var(--muted)}.segmented button.active{background:#fff;color:var(--accent);box-shadow:0 2px 7px #1f417c17}.readonly-amount{min-width:130px;padding:5px 10px;border-radius:9px;background:var(--surface-2)}.readonly-amount small,.readonly-amount strong{display:block}.readonly-amount small{font-size:10px;color:var(--muted)}.readonly-amount strong{font-size:14px}.receipt-hint{margin:0 0 10px;color:var(--muted);font-size:13px}.receipt-stack{display:flex;flex-direction:column;gap:10px}.receipt-list{padding:4px 16px}.receipt-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.receipt-main{flex:1 1 160px;min-width:140px}.receipt-date{width:150px;flex:0 0 auto}.receipt-account{width:120px;flex:0 0 auto}.receipt-amount{min-width:110px;text-align:right;font-variant-numeric:tabular-nums}.receipt-posted-fold{display:flex;flex-direction:column;gap:8px}.receipt-fold-btn{align-self:flex-start;color:var(--muted)}.inline-meta{margin-left:10px}.data-row{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;align-items:center;gap:12px 16px}.data-row-main{min-width:0}.data-row-main .inline-meta{display:block;margin:4px 0 0}.data-row-amount{text-align:right;font-variant-numeric:tabular-nums;justify-self:end}.data-row-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.recurring-block{padding:14px 0;border-bottom:1px solid var(--line)}.recurring-block:last-child{border-bottom:0;padding-bottom:0}.recurring-head{display:grid;grid-template-columns:minmax(0,1fr) 120px 100px auto;gap:12px 16px;align-items:center}.recurring-info{min-width:0}.recurring-amount{text-align:right;font-variant-numeric:tabular-nums}.recurring-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.recurring-entry-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:12px 0 0}.recurring-entry{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:13px}.recurring-entry strong{font-variant-numeric:tabular-nums}.recurring-entry-label{display:flex;flex-direction:column;gap:2px}.recurring-entry-label small{color:var(--muted);font-size:11px}.kind-label{color:var(--muted)!important}.stats-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.yearly-table th.num,.yearly-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.qe-chip{display:inline-flex;align-items:center;gap:6px}.qe-chip-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.calc-launch{min-width:72px}.calc-float{position:fixed;z-index:120;width:300px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 18px 48px #0f172a2e;pointer-events:auto}.calc-drag{cursor:move;-webkit-user-select:none;user-select:none;margin-bottom:10px}.calc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.calc-display{background:var(--surface-2);border-radius:12px;padding:12px 14px;margin-bottom:12px;min-height:72px}.calc-expr{color:var(--muted);font-size:13px;word-break:break-all}.calc-result{margin-top:6px;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.calc-keys .btn{min-height:42px;font-variant-numeric:tabular-nums}.meta-line,.inline-meta,.data-row-main .inline-meta,.data-row-main .meta-line,.receipt-main .inline-meta{color:var(--muted)!important;font-size:12px;font-weight:500}.category-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;margin-bottom:12px}.cat-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer}.cat-chip:hover{background:var(--surface-2)}.cat-chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.cat-search{margin-left:auto;min-width:180px;flex:1 1 180px;max-width:280px}.tx-cols{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px 16px;padding:12px 0;border-bottom:1px solid var(--line)}.tx-cols:last-child{border-bottom:0}.tx-cols-head{padding:0 0 8px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}.tx-cols-head .num,.tx-amount{text-align:right;font-variant-numeric:tabular-nums}.tx-main{min-width:0;display:flex;flex-direction:column;gap:2px}.tx-desc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-meta{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-actions{display:flex;justify-content:flex-end;gap:4px;white-space:nowrap}.tx-amount{white-space:nowrap}.recurring-entry-amt,.recurring-entry strong{display:block;text-align:right;margin-left:auto;font-variant-numeric:tabular-nums;min-width:5.5em}.table-wrap{overflow:auto}.yearly-table{min-width:max-content}.yearly-table th,.yearly-table td{padding:10px 12px}.yearly-table th.num,.yearly-table td.num{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.settings-single .list-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:12px}.settings-single .list-row span{color:var(--ink)!important}.settings-single .list-row input[type=number]{text-align:right;font-variant-numeric:tabular-nums}.category-manage{display:flex;flex-wrap:wrap;gap:8px}.category-edit-row{flex:1 1 220px;max-width:320px}.category-dot{box-shadow:0 0 0 2px #fff,0 0 0 3px #0000000f}@media (max-width:900px){.recurring-head,.data-row{grid-template-columns:1fr}.data-row-amount,.data-row-actions{justify-self:start}.stats-grid-3{grid-template-columns:1fr}}@media (max-width:900px){.compact-entry .entry-bar-row{flex-wrap:wrap}.category-manage{grid-template-columns:1fr}.inline-meta{display:block;margin:2px 0 0}}.app-shell{display:flex;flex-direction:row;height:100vh;overflow:hidden}.top-shell{position:relative;z-index:20;flex:0 0 232px;width:232px;height:100vh;border-right:1px solid var(--line);border-bottom:0;box-shadow:1px 0 #10182805}.topbar{width:100%!important;max-width:none;min-height:0!important;height:100%;margin:0;padding:22px 16px!important;display:flex;flex-direction:column;align-items:stretch;gap:16px;flex-wrap:nowrap!important}.top-shell .brand{flex:0 0 auto!important;min-width:0;width:100%;padding:0 6px}.top-shell .brand-mark{width:42px;height:42px;flex:0 0 42px}.topbar .book-switcher{display:block;flex:0 0 auto;width:100%;min-width:0;padding:0}.topbar .book-switcher label{display:block;margin:0 0 6px 4px;color:var(--muted)}.topbar .book-switcher select{width:100%;max-width:none;padding:10px 30px 10px 11px;border-color:var(--line);background:var(--surface-soft)}.topbar .nav-primary{order:initial!important;display:flex;flex:0 1 auto!important;flex-basis:auto!important;width:100%;min-width:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:3px;overflow-y:auto;overflow-x:hidden;padding:2px 0;scrollbar-width:thin}.topbar .nav-primary a{width:100%;padding:10px 12px;font-size:14px;border-radius:10px}.top-actions{display:grid;grid-template-columns:1fr 40px;flex:0 0 auto;width:100%;margin:auto 0 0!important;gap:8px;padding-bottom:4px}.top-actions .year-select{display:block;min-width:0}.top-actions .year-select select{width:100%;min-width:0;padding:9px 10px}.top-actions .theme-toggle{width:40px;min-width:40px;grid-column:2;grid-row:1}.top-actions .calc-launch{grid-column:1/-1;width:100%;min-width:0;justify-content:center}.top-actions .btn.primary{grid-column:1/-1;width:100%;padding:11px 12px;font-size:14px}.top-actions.company-actions{grid-template-columns:1fr 40px}.top-actions.company-actions .theme-toggle{grid-column:2;grid-row:1}.top-actions.company-actions .calc-launch{grid-column:1;grid-row:1;width:100%;min-width:0}.workspace{flex:1;min-width:0;height:100vh;overflow:hidden}.main{width:100%;max-width:none;margin:0;padding:28px 30px 42px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b7c4d8 transparent}.main::-webkit-scrollbar{width:10px;height:10px}.main::-webkit-scrollbar-track{background:transparent;margin:8px 0}.main::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#c5d2e6,#9eb0cb);border:2px solid transparent;background-clip:padding-box;border-radius:999px}.main::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#9eb6db,#6f8fbe);border:2px solid transparent;background-clip:padding-box}.main::-webkit-scrollbar-corner{background:transparent}:root[data-theme=dark] .main{scrollbar-color:#425370 transparent}:root[data-theme=dark] .main::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3a4a66,#2a3852)}:root[data-theme=dark] .main::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#4d6288,#354868)}.ledger-tabs{display:none}@media (max-width:900px){.top-shell{flex-basis:196px;width:196px}.topbar{padding:18px 12px!important}.top-shell .brand{min-width:0}.top-shell .brand p,.top-actions .year-select{display:block}.top-actions .btn.primary{font-size:14px}.top-actions .btn.primary:after{content:none}.main{padding:22px 18px 34px}}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:root{--app-max: 480px;--tabbar-h: 72px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}html,body,#root{height:100%;min-height:100%;overflow:hidden;background:#fff}body{margin:0;background:#fff}.app-shell.mobile-shell{display:flex!important;flex-direction:column!important;position:relative!important;width:100%!important;max-width:var(--app-max)!important;height:100%!important;min-height:100%!important;max-height:100%!important;margin:0 auto!important;overflow:hidden!important;background:#fff!important;box-shadow:none;padding:0!important}.mobile-shell .top-shell{position:relative!important;z-index:30!important;flex:0 0 auto!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;border-right:0!important;border-bottom:1px solid var(--line, #e5e7eb)!important;box-shadow:none!important;background:#fff!important;padding-top:var(--safe-top)}.mobile-shell .topbar{display:flex!important;flex-direction:column!important;align-items:stretch!important;width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;margin:0!important;padding:10px 12px!important;gap:8px!important;flex-wrap:nowrap!important}.mobile-shell .topbar .brand{flex:0 0 auto!important;min-width:0!important;width:auto!important;padding:0!important;gap:8px!important}.mobile-shell .brand-mark{width:36px!important;height:36px!important}.mobile-shell .brand h1{font-size:17px!important;margin:0!important}.mobile-shell .brand p{display:block!important;margin:0!important;font-size:11px!important;color:var(--muted)!important;letter-spacing:0!important;font-weight:500!important;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-shell .toolbar-row{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.mobile-shell .book-switcher-compact{flex:1 1 auto;min-width:0;display:flex!important;align-items:center;width:auto!important;max-width:none!important;padding:0!important}.mobile-shell .book-switcher-compact label{display:none!important}.mobile-shell .book-switcher-compact select{flex:1 1 auto;width:100%!important;max-width:none!important;min-width:0!important;min-height:40px;font-size:14px!important;font-weight:700!important;color:#0f172a!important;padding:0 28px 0 10px!important;overflow:visible;text-overflow:clip;white-space:nowrap}.mobile-shell .toolbar-row .year-select{flex:0 0 auto;margin:0;min-width:0}.mobile-shell .toolbar-row .year-select label{display:none!important}.mobile-shell .toolbar-row .year-select select{min-height:40px;min-width:86px;max-width:96px;width:auto;font-size:14px;padding:0 6px}.mobile-shell .toolbar-row .calc-launch{flex:0 0 auto;min-height:40px;min-width:0;padding:0 10px;font-size:13px;white-space:nowrap}.mobile-shell .top-actions,.mobile-shell .nav,.mobile-shell .nav-primary,.mobile-shell .nav-secondary,.mobile-shell .subbar,.mobile-shell .company-subnav{display:none!important}.mobile-shell .company-subnav a{flex:0 0 auto;padding:8px 12px;border-radius:999px;background:#eef3f2;color:inherit;text-decoration:none;font-size:13px;white-space:nowrap}.mobile-shell .company-subnav a.active{background:#0f766e;color:#fff}.mobile-shell .workspace{flex:1 1 0!important;width:100%!important;min-width:0!important;min-height:0!important;height:0!important;max-height:none!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;background:transparent}.mobile-shell .main{flex:1;width:100%!important;max-width:none!important;margin:0!important;padding:12px 12px 20px!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;background:transparent}.mobile-shell .main:has(.company-table-wrap){overflow-x:hidden!important}.mobile-shell .page-header,.mobile-shell .page-header-inline{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;margin-bottom:12px!important}.mobile-shell .page-header h2,.mobile-shell .page-header-inline h2{font-size:22px!important;line-height:1.25}.mobile-shell .page-header .eyebrow{display:block!important;margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:600}.mobile-shell .page-header p:not(.eyebrow),.mobile-shell .page-header-inline p:not(.eyebrow){display:none!important}.mobile-shell .page-header .btn,.mobile-shell .page-header-inline .btn{width:100%;justify-content:center}.mobile-shell .split-2,.mobile-shell .form-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}.mobile-shell .stats-grid,.mobile-shell .dashboard-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}.mobile-shell .stats-grid-2{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-bottom:12px}.mobile-shell .hero-balance,.mobile-shell .hero-balance-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;padding:16px!important;align-items:start}.mobile-shell .hero-balance-row .hero-cell{display:flex;flex-direction:column;gap:4px;min-width:0}.mobile-shell .hero-balance-row .hero-cell span,.mobile-shell .hero-balance-row .hero-cell small{font-size:12px;opacity:.9}.mobile-shell .hero-balance strong,.mobile-shell .hero-balance-row strong{font-size:22px!important;line-height:1.2}.mobile-shell .stat-card{min-height:0!important;padding:14px!important}.mobile-shell .stat-card .value{font-size:20px!important}.mobile-shell .panel,.mobile-shell .card{max-width:100%}.mobile-shell table.data{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}.mobile-shell .entry-bar-row,.mobile-shell .compact-entry .entry-bar-row,.mobile-shell .toolbar{flex-wrap:wrap!important}.mobile-shell .entry-bar-row-2,.mobile-shell form.entry-bar-row-2,.mobile-shell .toolbar.entry-bar-row-2,.mobile-shell .compact-form.entry-bar-row-2{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;align-items:stretch;width:100%}.mobile-shell .entry-bar-row-2>*,.mobile-shell form.entry-bar-row-2>*,.mobile-shell .toolbar.entry-bar-row-2>*,.mobile-shell .compact-form.entry-bar-row-2>*{min-width:0!important;max-width:none!important;flex:none!important;width:100%!important}.mobile-shell .entry-bar-row-2 .book-add-btn,.mobile-shell .entry-bar-row-2>.btn.primary.book-add-btn{grid-column:1 / -1}.mobile-shell .entry-bar-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px;margin-top:8px}.mobile-shell .entry-bar-actions .btn{width:100%;justify-content:center}.mobile-shell .entry-bar-row:not(.entry-bar-row-2) input,.mobile-shell .entry-bar-row:not(.entry-bar-row-2) select,.mobile-shell .toolbar:not(.entry-bar-row-2) input,.mobile-shell .toolbar:not(.entry-bar-row-2) select{min-width:0!important;max-width:none!important;flex:1 1 100%!important;width:100%!important}.mobile-shell .main input,.mobile-shell .main select,.mobile-shell .main textarea,.mobile-shell .main button.btn{min-height:42px;font-size:16px}.tabbar{position:relative;flex:0 0 auto;width:100%;z-index:50;height:calc(var(--tabbar-h) + var(--safe-bottom));padding:4px 4px calc(4px + var(--safe-bottom));display:grid;grid-template-columns:repeat(5,1fr);align-items:end;background:#fff;border-top:1px solid #d7dee6;box-sizing:border-box;box-shadow:0 -4px 16px #0f172a0f}.tab-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#64748b;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding-bottom:4px;font-size:11px;line-height:1.1;cursor:pointer}.tab-item.active{color:#0f766e;font-weight:700}.tab-icon{display:grid;place-items:center;width:24px;height:24px;line-height:0}.tab-icon svg{display:block}.tab-fab{justify-content:flex-end;padding-bottom:2px;transform:none}.tab-fab-mark{width:46px;height:46px;margin-bottom:2px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(160deg,#0f766e,#115e59);color:#fff;font-size:26px;line-height:1;box-shadow:0 6px 16px #0f766e59}.mobile-shell.is-company-book .tabbar{align-items:center}.mobile-shell.is-company-book .tab-item{justify-content:center;padding-bottom:4px;min-height:56px}.mobile-shell~.modal-backdrop,.modal-backdrop,.qe-backdrop{align-items:end!important;place-items:end center!important;padding:0!important;z-index:200!important}.modal-backdrop .modal,.modal-backdrop .app-dialog,.qe-backdrop .qe-panel,.qe-backdrop .modal{width:min(100%,var(--app-max))!important;max-height:min(88dvh,720px)!important;margin:0 auto!important;border-radius:20px 20px 0 0!important;padding:18px 16px calc(18px + var(--safe-bottom))!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.qe-fields{grid-template-columns:1fr!important}.qe-actions,.modal-actions{position:sticky;bottom:0;background:var(--surface, #fff);padding-top:12px;flex-wrap:wrap}.qe-actions .btn,.modal-actions .btn{flex:1;min-width:120px}.calc-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:220;background:#0a181573;display:grid;place-items:center;padding:16px}.calc-float{position:relative!important;left:auto!important;top:auto!important;transform:none!important;width:min(100%,340px)!important;max-height:min(85vh,560px)!important;overflow:auto!important;margin:0}.calc-drag{cursor:default}.more-page h2{margin:4px 2px 14px;font-size:22px}.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.more-item{display:grid;place-items:center;min-height:68px;padding:10px;border-radius:14px;background:#eef3f2;color:inherit;text-decoration:none;border:0;font-size:15px;font-weight:600;cursor:pointer;text-align:center}.file-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;overflow:auto;background:radial-gradient(900px 500px at 20% 0%,rgba(15,118,110,.18),transparent 55%),#f4f7f6}.auth-card{width:min(100%,400px);background:#fff;border-radius:20px;padding:28px 22px 22px;box-shadow:0 16px 40px #0f172a1a;text-align:center}.auth-logo{border-radius:16px}.auth-card h1{margin:12px 0 0;font-size:1.75rem}.auth-sub{margin:4px 0 20px;color:var(--muted)}.auth-form{display:grid;gap:12px;text-align:left}.auth-form label{display:grid;gap:6px;font-size:13px}.auth-form input{min-height:44px;font-size:16px;border-radius:12px;border:1px solid #d7dee6;padding:0 12px}.auth-submit{width:100%;min-height:48px}.auth-error{color:#be123c;font-size:13px}.auth-switch{margin-top:14px;border:0;background:transparent;color:#0f766e;cursor:pointer}@media (min-width: 900px){body{padding:0;overflow:hidden}.app-shell.mobile-shell{height:100%!important;min-height:100%!important;max-height:100%!important;border-radius:0;box-shadow:none}}.side-drawer-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:240}.side-drawer-mask{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0f172a73;cursor:pointer}.side-drawer{position:absolute;left:0;top:0;bottom:0;width:min(82vw,300px);background:#fff;box-shadow:8px 0 28px #0f172a2e;padding:18px 14px 24px;overflow-y:auto;animation:drawerIn .2s ease}@keyframes drawerIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.side-drawer-head{display:flex;align-items:center;gap:10px;padding:4px 6px 16px;border-bottom:1px solid #eef2f6;margin-bottom:10px}.side-drawer-head img{border-radius:10px}.side-drawer-head strong{display:block;font-size:16px}.side-drawer-head p{margin:2px 0 0;color:#64748b;font-size:12px}.side-drawer-nav{display:flex;flex-direction:column;gap:4px}.side-drawer-item{display:block;width:100%;text-align:left;border:0;background:transparent;color:#1f2937;text-decoration:none;padding:12px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer}.side-drawer-item:hover,.side-drawer-item.active{background:#e8f5f2;color:#0f766e}.amount-input-wrap{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.amount-input{width:100%;min-height:44px;font-size:16px;border-radius:12px;border:1px solid var(--line, #d7dee6);padding:0 12px;background:#fff}.amount-input:focus{outline:none;border-color:#1f6fff;box-shadow:0 0 0 3px #1f6fff1f}.amount-input-preview{font-size:12px;color:#64748b;padding-left:4px}.qe-amount-block .amount-input,.qe-amount{min-height:52px;font-size:22px;font-weight:600}.mobile-shell .settings-page{display:flex;flex-direction:column;gap:0}.mobile-shell .settings-stack{display:flex;flex-direction:column;gap:12px}.mobile-shell .settings-toast{color:#0f6e56!important;font-weight:600;margin-bottom:12px}.mobile-shell .settings-page .panel,.mobile-shell .settings-page .card{overflow:visible!important;max-width:100%!important;width:100%;box-sizing:border-box}.mobile-shell .settings-page h3{margin:0 0 12px!important;font-size:17px!important;font-weight:700!important;color:#0f172a!important}.mobile-shell .settings-page .muted,.mobile-shell .settings-page .book-edit-row small,.mobile-shell .settings-page .kind-label{color:#475569!important;font-size:13px!important}.mobile-shell .settings-page .book-edit-row,.mobile-shell .settings-page .category-edit-row{background:#f8fafc;border:1px solid #dbe3ee!important;border-radius:12px!important;padding:10px 12px!important;margin-bottom:8px}.mobile-shell .settings-page .book-edit-row input,.mobile-shell .settings-page .category-edit-row input,.mobile-shell .settings-page .list-row input,.mobile-shell .settings-page .toolbar input,.mobile-shell .settings-page .toolbar select,.mobile-shell .settings-page .field input,.mobile-shell .settings-page .field select{color:#0f172a!important;font-size:15px!important;font-weight:560;background:#fff!important;border:1px solid #cfd8e6!important;border-radius:10px!important;padding:10px 12px!important;min-height:42px;width:100%;box-sizing:border-box}.mobile-shell .settings-page .book-edit-row input,.mobile-shell .settings-page .category-edit-row input{border:0!important;background:transparent!important;padding:4px 0!important;min-height:0}.mobile-shell .settings-page .toolbar,.mobile-shell .settings-page .compact-form,.mobile-shell .settings-page .book-add-form,.mobile-shell .settings-page .add-shop-form{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important}.mobile-shell .settings-page .toolbar.entry-bar-row-2,.mobile-shell .settings-page .compact-form.entry-bar-row-2,.mobile-shell .settings-page .book-add-form.entry-bar-row-2,.mobile-shell .settings-page .add-shop-form.entry-bar-row-2{display:grid!important;grid-template-columns:1fr 1fr!important;flex-direction:unset!important}.mobile-shell .settings-page .toolbar .btn,.mobile-shell .settings-page .compact-form .btn,.mobile-shell .settings-page .file-btn{width:100%;justify-content:center;min-height:42px}.mobile-shell .settings-page .list-row{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;padding:12px 0!important}.mobile-shell .settings-page .list-row.shop-row{flex-direction:row!important;align-items:center!important;gap:8px!important}.mobile-shell .settings-page .list-row.shop-row input{flex:1 1 auto!important;width:auto!important;min-width:0!important}.mobile-shell .settings-page .list-row.shop-row .btn,.mobile-shell .settings-page .list-row.shop-row .lock-tag{flex:0 0 auto;width:auto!important;min-width:64px;white-space:nowrap}.mobile-shell .settings-page .settings-single .list-row{display:grid!important;grid-template-columns:minmax(0,1fr) 120px!important;align-items:center!important;gap:10px!important}.mobile-shell .settings-page .settings-single .list-row span{color:#0f172a!important;font-weight:600}.mobile-shell .settings-page .category-manage,.mobile-shell .settings-page .category-manage-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.mobile-shell .settings-page .category-mini-card{display:grid;grid-template-columns:10px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:4px 6px;align-items:center;padding:8px 10px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc}.mobile-shell .settings-page .category-mini-card .category-dot{grid-row:1 / 3}.mobile-shell .settings-page .category-mini-card input{grid-column:2;border:0!important;background:transparent!important;padding:0!important;min-height:0!important;font-size:14px!important;font-weight:650}.mobile-shell .settings-page .category-mini-card .kind-label{grid-column:2;font-size:11px!important}.mobile-shell .settings-page .category-mini-card .btn{grid-column:3;grid-row:1 / 3;width:auto!important;min-width:0;min-height:32px!important;padding:0 8px;font-size:13px}.mobile-shell .settings-page .settings-mini-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}.mobile-shell .settings-page .settings-mini-input{max-width:100%;width:100%}.mobile-shell .settings-page .settings-currency-row{display:grid!important;grid-template-columns:1fr auto!important;gap:6px!important;flex-direction:unset!important}.mobile-shell .settings-page .settings-currency-row .btn{width:auto!important;min-width:56px;padding:0 10px}.mobile-shell .brand-secret{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;margin:0;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.mobile-shell .salary-toggles{display:flex;gap:6px;flex-wrap:wrap}.mobile-shell .salary-toggle{min-height:32px!important;padding:0 10px!important;font-size:12px!important;border-radius:999px;color:#64748b;background:#f1f5f9;border:1px solid #dbe3ee}.mobile-shell .salary-toggle.active{color:#0f6e56;background:#e8f7f1;border-color:#9fd5c3;font-weight:700}.mobile-shell .check-inline{display:flex;align-items:center;gap:8px;color:#0f172a;font-size:14px;font-weight:600}.mobile-shell .memo-layout,.mobile-shell .memo-layout-stack,.mobile-shell .memo-layout-single{display:block!important}.mobile-shell .memo-sections,.mobile-shell .memo-sections-stack,.mobile-shell .memo-layout-single .memo-sections{display:flex!important;flex-direction:column!important;gap:10px!important;grid-template-columns:none!important}.mobile-shell .memo-section{min-height:0!important;writing-mode:horizontal-tb!important}.mobile-shell .memo-section-head h3{writing-mode:horizontal-tb!important;white-space:nowrap;font-size:15px!important}.mobile-shell .memo-item{grid-template-columns:minmax(0,1fr) auto auto!important;gap:8px!important}.mobile-shell .memo-desc{white-space:normal!important;overflow:visible!important;text-overflow:unset!important;font-size:14px;color:#0f172a}.mobile-shell .memo-actions{opacity:1!important}.mobile-shell .kind-switch{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;padding:4px!important;margin-bottom:12px;background:#f1f5f9;border-radius:12px;border:1px solid #e2e8f0}.mobile-shell .kind-switch button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;min-height:40px;border-radius:10px;font-size:15px;font-weight:700;color:#64748b;cursor:pointer}.mobile-shell .kind-switch button.active{background:#fff;color:#0f766e;box-shadow:0 1px 4px #0f172a14}.mobile-shell .qe-kind-switch{margin:0 0 10px}.mobile-shell .invite-code-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.mobile-shell .invite-code-value{flex:1 1 140px;min-width:0;padding:10px 12px;border-radius:10px;background:#f1f5f9;border:1px solid #e2e8f0;font-size:16px;font-weight:700;letter-spacing:.08em;text-align:center;color:#0f172a}.mobile-shell .cat-selects,.mobile-shell .qe-cat-selects{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;padding:12px!important;margin-bottom:12px}.mobile-shell .cat-select{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.mobile-shell .cat-select>span{font-size:13px;font-weight:700}.mobile-shell .cat-select-expense>span{color:#b45309}.mobile-shell .cat-select-income>span{color:#0f766e}.mobile-shell .cat-select.is-active{border-color:#cbd5e1;box-shadow:0 0 0 1px #0f766e24}.mobile-shell .cat-select-expense.is-active{box-shadow:0 0 0 1px #b4530933}.mobile-shell .cat-select select{width:100%;min-width:0;min-height:40px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px;font-size:14px;color:#0f172a}.mobile-shell .category-filter-bar{display:none!important}.mobile-shell .tx-cols{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center;gap:8px 10px!important;padding:12px 0!important;min-width:0}.mobile-shell .tx-cols-head{color:#94a3b8;font-size:12px;font-weight:700}.mobile-shell .tx-main{min-width:0;display:flex;flex-direction:column;gap:2px}.mobile-shell .tx-desc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.mobile-shell .tx-meta{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#94a3b8!important}.mobile-shell .tx-amount{justify-self:end;white-space:nowrap;font-size:15px;font-variant-numeric:tabular-nums;text-align:right}.mobile-shell .tx-actions{display:flex;gap:2px;justify-content:flex-end;white-space:nowrap}.mobile-shell .tx-actions .btn{padding:4px 8px;min-height:32px;font-size:13px}.mobile-shell .salary-month-panel{padding:12px!important;margin-bottom:12px}.mobile-shell .salary-month-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:12px}.mobile-shell .salary-month-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #dbe3ee;background:#f8fafc;border-radius:10px;min-height:36px;font-size:13px;font-weight:650;color:#475569;cursor:pointer}.mobile-shell .salary-month-chip.active{background:#e8f7f1;border-color:#9fd5c3;color:#0f6e56}.mobile-shell .salary-month-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;padding:10px 12px;background:#f8fafc;border-radius:12px}.mobile-shell .salary-month-summary span{display:block;font-size:12px;color:#64748b}.mobile-shell .salary-month-summary strong{font-size:18px;font-variant-numeric:tabular-nums}.mobile-shell .salary-shop-list{display:flex;flex-direction:column;gap:8px}.mobile-shell .salary-shop-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #eef2f7}.mobile-shell .salary-shop-row:last-child{border-bottom:0}.mobile-shell .salary-shop-name{display:flex;align-items:center;gap:6px;font-weight:650;color:#0f172a;min-width:0}.mobile-shell .salary-shop-row input{width:100%;text-align:right;font-variant-numeric:tabular-nums;min-height:40px;border:1px solid #cfd8e6;border-radius:10px;padding:0 10px;background:#fff}.mobile-shell .salary-shop-row.readonly strong{text-align:right;font-variant-numeric:tabular-nums}.mobile-shell .salary-year-fold{padding:12px!important;margin-bottom:12px}.mobile-shell .salary-year-fold summary{cursor:pointer;font-weight:700;list-style:none;display:flex;flex-direction:column;gap:2px}.mobile-shell .salary-year-fold summary::-webkit-details-marker{display:none}.mobile-shell .salary-year-fold[open] summary{margin-bottom:10px}.mobile-shell .recurring-block{border-bottom:1px solid #eef2f7;padding:4px 0 10px}.mobile-shell .recurring-head-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:0;background:transparent;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"info amount" "status status";gap:4px 10px;padding:10px 4px;cursor:pointer}.mobile-shell .recurring-info{grid-area:info}.mobile-shell .recurring-amount{grid-area:amount;align-self:start}.mobile-shell .recurring-head-btn .status{grid-area:status;justify-self:start}.mobile-shell .recurring-caret{display:inline-block;width:1em;color:#64748b;margin-right:2px}.mobile-shell .recurring-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:0 4px 8px}.mobile-shell .recurring-actions .btn{width:100%;justify-content:center}
