:root{color-scheme:light dark;font-family:Avenir Next,Avenir,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;--bg: #f4f1e9;--surface: #fbfaf6;--surface-soft: #ebe8df;--surface-strong: #e0ddd3;--text: #20241f;--muted: #6f746e;--muted-strong: #555b55;--line: #d9d6cc;--accent: #163f31;--accent-soft: #dbe7df;--accent-contrast: #f7f8f2;--expense: #b64d38;--expense-soft: #f3ded8;--income: #3f7a64;--income-soft: #dce9e1;--shadow: 0 18px 48px rgba(49, 53, 45, .1);--radius-card: 18px;--radius-control: 12px;--nav-height: 76px}@media(prefers-color-scheme:dark){:root{--bg: #171b18;--surface: #202521;--surface-soft: #292e2a;--surface-strong: #343a35;--text: #edf0e9;--muted: #a9afa7;--muted-strong: #c3c8c0;--line: #3b413b;--accent: #98b8a5;--accent-soft: #294335;--accent-contrast: #142019;--expense: #e28b76;--expense-soft: #4d302c;--income: #8cc4a7;--income-soft: #294438;--shadow: 0 18px 48px rgba(0, 0, 0, .28)}}*{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none;width:0;height:0}html{background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100dvh;color:var(--text);background:var(--bg);overscroll-behavior-y:none}button,input,select,textarea{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 32%,transparent);outline-offset:2px}button:active{transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.55}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100dvh}.app-main{width:min(100%,680px);min-height:100dvh;margin:0 auto;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 30px)}.view{--view-inline-padding: 18px;--view-top-padding: max(22px, env(safe-area-inset-top));padding:var(--view-top-padding) var(--view-inline-padding) 30px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.page-header,.records-header{position:sticky;z-index:12;top:0;margin-right:calc(-1 * var(--view-inline-padding));margin-left:calc(-1 * var(--view-inline-padding));padding:var(--view-top-padding) var(--view-inline-padding) 12px;background:var(--bg)}.page-header{margin-top:calc(-1 * var(--view-top-padding))}.page-header h1,.sheet-header h2,.fatal-state h1{margin:2px 0 0;font-size:clamp(27px,7vw,34px);line-height:1.15;letter-spacing:-.045em}.section-kicker{margin:0;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.09em}.icon-button{display:inline-grid;width:44px;height:44px;flex:0 0 auto;padding:0;place-items:center;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);cursor:pointer}.balance-panel{padding:24px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent);box-shadow:var(--shadow)}.balance-primary span,.balance-split span{display:block;color:color-mix(in srgb,var(--accent-contrast) 70%,transparent);font-size:13px}.balance-primary strong{display:block;margin-top:7px;font-size:clamp(32px,10vw,46px);line-height:1;letter-spacing:-.055em;font-variant-numeric:tabular-nums}.balance-split{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--accent-contrast) 20%,transparent)}.balance-split strong{display:block;margin-top:5px;font-size:16px;font-variant-numeric:tabular-nums}.quick-add{display:flex;width:100%;align-items:center;gap:14px;margin:14px 0 18px;padding:15px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);cursor:pointer}.quick-add>span:first-child{display:grid;width:42px;height:42px;place-items:center;color:var(--accent-contrast);border-radius:var(--radius-control);background:var(--accent)}.quick-add>span:last-child{display:grid;gap:2px}.quick-add strong{font-size:16px}.quick-add small,.section-heading p,.transaction-copy span,.transaction-copy small,.transaction-amount span,.chart-heading span,.settings-actions small{color:var(--muted);font-size:12px}.section-heading,.chart-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.section-heading h2,.chart-heading h2,.privacy-panel h2{margin:0;font-size:19px;letter-spacing:-.025em}.section-heading p,.privacy-panel p,.about-panel p{margin:4px 0 0;line-height:1.5}.filter-select{position:relative;display:flex;align-items:center}.filter-select select{min-height:36px;padding:0 31px 0 12px;color:var(--muted-strong);border:1px solid var(--line);border-radius:10px;appearance:none;background:var(--surface);font-size:12px}.filter-select svg{position:absolute;right:10px;pointer-events:none}.transaction-list{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.transaction-row{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto 67px;align-items:center;gap:11px;min-height:82px;padding:12px 14px}.transaction-row+.transaction-row:before{position:absolute;top:0;right:14px;left:67px;height:1px;background:var(--line);content:""}.transaction-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:var(--radius-control)}.transaction-icon.expense{color:var(--expense);background:var(--expense-soft)}.transaction-icon.income{color:var(--income);background:var(--income-soft)}.transaction-copy,.transaction-amount{display:grid;min-width:0;gap:4px}.transaction-copy strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.transaction-copy span,.transaction-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-copy small{color:var(--muted-strong)}.transaction-amount{text-align:right}.transaction-amount strong{font-size:14px;font-variant-numeric:tabular-nums}.transaction-amount.expense strong,.expense-text{color:var(--expense)}.transaction-amount.income strong,.income-text{color:var(--income)}.row-actions{display:flex;justify-content:flex-end;gap:7px}.row-actions button,.category-group button,.period-nav button{display:inline-grid;width:34px;height:34px;padding:0;place-items:center;color:var(--muted-strong);border:0;border-radius:9px;background:var(--surface-soft);cursor:pointer}.empty-state{display:grid;justify-items:center;padding:54px 24px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius-card)}.empty-mark{display:grid;width:54px;height:54px;margin-bottom:16px;place-items:center;color:var(--accent);border-radius:50%;background:var(--accent-soft);font-size:24px;font-weight:700}.empty-state h3{margin:0;font-size:18px}.empty-state p{max-width:280px;margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.primary-button,.secondary-button{min-height:48px;padding:0 20px;border-radius:var(--radius-control);font-weight:700;cursor:pointer}.primary-button{color:var(--accent-contrast);border:1px solid var(--accent);background:var(--accent)}.secondary-button{margin-top:18px;color:var(--accent);border:1px solid var(--accent);background:transparent}.full-width{width:100%}.search-field{display:flex;align-items:center;gap:10px;margin:-10px 0 16px;padding:0 13px;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.search-field input{width:100%;min-height:46px;color:var(--text);border:0;outline:0;background:transparent}.bottom-nav{position:fixed;z-index:20;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:8px max(8px,calc((100vw - 680px)/2)) env(safe-area-inset-bottom);border-top:1px solid color-mix(in srgb,var(--line) 85%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 -12px 32px #2329230f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.bottom-nav>button{display:grid;min-width:0;padding:4px 0;place-content:center;justify-items:center;gap:3px;color:var(--muted);border:0;background:transparent;font-size:10px;cursor:pointer}.bottom-nav>button.active{color:var(--accent);font-weight:700}.bottom-nav .nav-add{align-content:start;color:var(--accent)}.nav-add>span{display:grid;width:52px;height:52px;margin-top:-27px;place-items:center;color:var(--accent-contrast);border:5px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 24%,transparent)}.nav-add small{margin-top:4px;font-size:10px;font-weight:700}.sheet-layer{position:fixed;z-index:40;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-top:env(safe-area-inset-top);background:#0f14117a}.sheet-panel{width:min(100%,680px);max-height:calc(100dvh - 18px);overflow:auto;padding:8px 20px calc(24px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--surface);box-shadow:0 -20px 60px #0f141133}.compact-sheet{max-width:520px}.sheet-handle{width:40px;height:4px;margin:0 auto 14px;border-radius:4px;background:var(--surface-strong)}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.sheet-header h2{font-size:25px}.transaction-sheet{display:flex;flex-direction:column;overflow:hidden;padding-right:16px;padding-left:16px}.transaction-sheet .sheet-handle{flex:0 0 auto;margin-bottom:8px}.transaction-sheet .sheet-header{flex:0 0 auto}.transaction-sheet .sheet-header h2{font-size:22px}.transaction-form,.category-form{display:grid;gap:16px;margin-top:24px}.transaction-sheet .transaction-form{min-height:0;margin-top:12px;padding:0 2px 6px;overflow-y:auto;overscroll-behavior:contain;gap:10px}.transaction-sheet .type-toggle button{min-height:40px}.transaction-sheet .field{gap:5px}.transaction-sheet .field>input,.transaction-sheet .field>select,.transaction-sheet .app-select-trigger{min-height:44px}.transaction-sheet .field>textarea{min-height:64px;padding-top:9px;padding-bottom:9px}.type-toggle,.period-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--radius-control);background:var(--surface-soft)}.type-toggle button,.period-toggle button{min-height:42px;color:var(--muted-strong);border:0;border-radius:9px;background:transparent;font-weight:700;cursor:pointer}.type-toggle button.active,.period-toggle button.active{color:var(--text);background:var(--surface);box-shadow:0 1px 5px #22262114}.field{display:grid;gap:7px}.field>span:first-child{color:var(--muted-strong);font-size:13px;font-weight:700}.field>input,.field>select,.field>textarea{width:100%;min-height:48px;padding:0 13px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--bg)}.field>textarea{min-height:86px;padding-top:12px;padding-bottom:12px;resize:vertical}.field>small{color:var(--muted);font-size:12px;line-height:1.5}.field>select:disabled{opacity:.64}.app-select-trigger{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;gap:10px;padding:0 13px;overflow:hidden;text-align:left;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--bg);cursor:pointer}.app-select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select-trigger .placeholder{color:var(--muted)}.app-select-trigger svg{flex:0 0 auto;color:var(--muted-strong)}.select-layer{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#0f141185}.select-panel{width:min(100%,520px);max-height:min(72dvh,560px);padding:8px 16px calc(16px + env(safe-area-inset-bottom));overflow:hidden;color:var(--text);border-radius:18px 18px 0 0;outline:0;background:var(--surface);box-shadow:0 -8px 24px #0f14112e}.select-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.select-header h2{margin:0;font-size:19px;letter-spacing:-.025em}.select-options{max-height:calc(min(72dvh,560px) - 90px);overflow-y:auto}.select-options button{display:flex;width:100%;min-height:50px;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;text-align:left;color:var(--text);border:0;border-radius:10px;background:transparent;cursor:pointer}.select-options button+button{border-top:1px solid var(--line);border-radius:0}.select-options button.selected{color:var(--accent);background:var(--accent-soft);font-weight:700}.select-options button.selected+button{border-top-color:transparent}.category-primary-tabs{display:flex;gap:7px;margin:2px 0 12px;padding-bottom:2px;overflow-x:auto}.category-primary-tabs button{min-height:40px;flex:0 0 auto;padding:0 15px;color:var(--muted-strong);border:1px solid var(--line);border-radius:20px;background:var(--surface);font-size:14px;font-weight:700;cursor:pointer}.category-primary-tabs button.active{color:var(--accent-contrast);border-color:var(--accent);background:var(--accent)}.category-secondary-options{max-height:calc(min(72dvh,560px) - 144px)}.category-select-empty{margin:28px 0;text-align:center;color:var(--muted);font-size:14px}.amount-field{padding:18px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--bg)}.transaction-sheet .amount-field{padding:12px 14px}.transaction-sheet .money-input input{font-size:32px}.transaction-sheet .amount-operators button{min-height:38px}.money-input{display:flex;align-items:center;gap:9px}.money-input>span{color:var(--muted);font-size:24px}.money-input input{width:100%;min-width:0;padding:0;color:var(--text);border:0;outline:0;background:transparent;font-size:38px;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.amount-operators{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:6px}.amount-operators button{min-width:0;min-height:42px;padding:0;color:var(--muted-strong);border:0;border-radius:9px;background:var(--surface-soft);font-size:17px;font-weight:700;cursor:pointer}.amount-operators .equals{color:var(--accent-contrast);background:var(--accent)}.amount-operators .clear{font-size:12px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-error{margin:-4px 0 0;color:var(--expense);font-size:13px;font-weight:600}.transaction-actions{flex:0 0 auto;padding:10px 2px 0;border-top:1px solid var(--line);background:var(--surface)}.transaction-actions .form-error{margin:0 0 8px}.period-toggle{grid-template-columns:repeat(3,1fr)}.period-nav{display:flex;align-items:center;justify-content:space-between;margin:18px 0 14px}.period-nav strong{font-size:14px}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--line)}.stats-summary>div{display:grid;min-width:0;gap:6px;padding:15px 12px;background:var(--surface)}.stats-summary span{color:var(--muted);font-size:11px}.stats-summary strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.comparison-grid>div{display:grid;gap:5px;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.comparison-grid span{color:var(--muted);font-size:11px}.comparison-grid strong{font-size:13px}.comparison-grid strong.up{color:var(--expense)}.comparison-grid strong.down{color:var(--income)}.comparison-grid small{color:var(--muted);font-size:10px;line-height:1.45}.annual-report-entry{display:flex;width:100%;min-height:66px;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:13px 16px;text-align:left;color:var(--accent);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);cursor:pointer}.annual-report-entry>span{display:grid;gap:3px}.annual-report-entry strong{color:var(--text);font-size:15px}.annual-report-entry small{color:var(--muted);font-size:12px}.chart-panel{margin-top:14px;padding:18px 14px 14px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.chart-heading{align-items:center;padding:0 4px}.chart-heading h2{font-size:17px}.chart{width:100%}.home-trend-panel{padding:18px 14px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.home-trend-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:0 4px}.home-trend-header>div:first-child{display:grid;gap:5px}.home-trend-header>div:first-child span{color:var(--muted);font-size:12px}.home-trend-header>div:first-child strong{font-size:23px;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.mini-toggle{display:flex;gap:3px;padding:3px;border-radius:10px;background:var(--surface-soft)}.mini-toggle button{min-height:32px;padding:0 11px;color:var(--muted);border:0;border-radius:8px;background:transparent;font-size:12px;font-weight:700;cursor:pointer}.mini-toggle button.active{color:var(--text);background:var(--surface)}.records-entry{display:flex;width:100%;min-height:68px;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:13px 16px;text-align:left;color:var(--accent);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);cursor:pointer}.records-entry>span{display:grid;gap:3px}.records-entry strong{color:var(--text);font-size:15px}.records-entry small{color:var(--muted);font-size:12px}.home-english-note{display:grid;width:100%;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin:0 0 14px;padding:14px;text-align:left;color:var(--accent);border:0;border-radius:var(--radius-card);background:var(--accent-soft);cursor:pointer}.home-english-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--surface) 60%,transparent)}.home-english-copy{display:grid;min-width:0;gap:4px}.home-english-copy>small{color:color-mix(in srgb,var(--accent) 72%,var(--text));font-size:10px;font-weight:700}.home-english-copy>span{display:flex;min-width:0;align-items:baseline;gap:9px}.home-english-copy strong{color:var(--text);font-size:20px;line-height:1.1;letter-spacing:-.025em}.home-english-copy em{overflow:hidden;color:var(--muted-strong);font-size:12px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.home-english-copy>b{overflow:hidden;color:var(--muted-strong);font-size:10px;font-weight:500;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.records-header{display:flex;align-items:center;gap:14px;margin-bottom:22px;margin-top:calc(-1 * var(--view-top-padding))}.records-header h1{margin:2px 0 0;font-size:27px;line-height:1.15;letter-spacing:-.035em}.preset-scroll{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 14px}.preset-scroll button{min-width:0;min-height:40px;padding:0 4px;color:var(--muted-strong);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);font-size:13px;font-weight:700;cursor:pointer}.preset-scroll button.active{color:var(--accent-contrast);border-color:var(--accent);background:var(--accent)}.date-range-panel{padding:16px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.range-summary{display:flex;align-items:center;gap:11px;color:var(--accent)}.range-summary>span{display:grid;gap:3px}.range-summary small{color:var(--muted);font-size:11px}.range-summary strong{color:var(--text);font-size:13px}.custom-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.records-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;margin-top:12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--line)}.records-summary>div{display:grid;min-width:0;gap:5px;padding:13px 11px;background:var(--surface)}.records-summary span{color:var(--muted);font-size:11px}.records-summary strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.records-tools{display:grid;gap:10px;margin:22px 0 16px}.records-search{display:flex;align-items:center;gap:9px;padding:0 12px;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.records-search input{width:100%;min-height:44px;color:var(--text);border:0;outline:0;background:transparent}.records-type-filter{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:var(--radius-control);background:var(--surface-soft)}.records-type-filter button{min-height:36px;color:var(--muted);border:0;border-radius:9px;background:transparent;font-size:12px;font-weight:700;cursor:pointer}.records-type-filter button.active{color:var(--text);background:var(--surface)}.date-groups{display:grid;gap:20px}.date-group-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px;padding:0 3px}.date-group-header>div{display:flex;align-items:baseline;gap:8px}.date-group-header h2{margin:0;font-size:15px;letter-spacing:-.015em}.date-group-header span,.date-group-header p{color:var(--muted);font-size:11px}.date-group-header p{display:flex;gap:8px;margin:0}.records-empty{margin-top:16px}.chart-empty{display:grid;height:180px;place-content:center;justify-items:center;gap:8px;color:var(--muted);font-size:13px}.category-ranking{display:grid;gap:10px;padding:4px 5px}.category-ranking>div{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px}.category-ranking span{display:flex;align-items:center;gap:8px;color:var(--muted-strong)}.category-ranking i{width:9px;height:9px;border-radius:3px}.category-ranking strong{font-variant-numeric:tabular-nums}.stats-empty{margin-top:20px}.annual-year-nav{margin-top:0}.annual-hero{padding:22px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent)}.annual-hero>span{color:color-mix(in srgb,var(--accent-contrast) 72%,transparent);font-size:12px}.annual-hero>strong{display:block;margin-top:7px;font-size:34px;line-height:1.05;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.annual-hero p{margin:12px 0 0;color:color-mix(in srgb,var(--accent-contrast) 78%,transparent);font-size:12px}.annual-summary{margin-top:12px}.annual-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.annual-facts>div{display:grid;align-content:start;gap:5px;min-width:0;padding:13px 11px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.annual-facts span,.annual-facts small{color:var(--muted);font-size:10px}.annual-facts strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.annual-category-ranking{display:grid;gap:14px;padding:4px}.annual-category-ranking>div{display:grid;gap:7px}.annual-category-ranking>div>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:10px;font-size:12px}.annual-category-ranking strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annual-category-ranking span{color:var(--muted)}.annual-category-ranking b{font-size:12px;font-variant-numeric:tabular-nums}.annual-category-ranking i{display:block;height:6px;overflow:hidden;border-radius:6px;background:var(--surface-soft)}.annual-category-ranking i span{display:block;height:100%;border-radius:inherit;background:var(--expense)}.annual-largest-list{display:grid}.annual-largest-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:60px;padding:9px 4px}.annual-largest-list>div+div{border-top:1px solid var(--line)}.annual-largest-list>div>span{display:grid;min-width:0;gap:4px}.annual-largest-list strong,.annual-largest-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annual-largest-list strong{font-size:13px}.annual-largest-list small{color:var(--muted);font-size:11px}.annual-largest-list b{flex:0 0 auto;color:var(--expense);font-size:13px;font-variant-numeric:tabular-nums}.annual-report-view .empty-mark{width:64px;font-size:16px}.period-settings-entry{margin-top:24px}.period-loading{padding:56px 0;text-align:center;color:var(--muted);font-size:13px}.period-overview{display:flex;min-height:150px;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent)}.period-overview.active{color:var(--text);background:var(--expense-soft)}.period-overview.active svg{color:var(--expense)}.period-overview-copy{display:grid;gap:7px}.period-overview-copy>span,.period-overview-copy>small{color:color-mix(in srgb,currentColor 72%,transparent);font-size:12px}.period-overview-copy>strong{font-size:29px;line-height:1.1;letter-spacing:-.035em}.period-page-error{margin:10px 0 0}.period-primary-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:12px 0}.period-secondary-action{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:6px;padding:0 15px;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-control);background:transparent;font-weight:700;cursor:pointer}.period-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;margin-bottom:12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--line)}.period-stats>div{display:grid;min-width:0;gap:5px;padding:14px 10px;background:var(--surface)}.period-stats span{color:var(--muted);font-size:10px}.period-stats strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.period-prediction{padding:16px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.period-prediction>span{display:block;color:var(--muted);font-size:11px}.period-prediction>strong{display:block;margin-top:5px;font-size:15px}.period-prediction p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.period-history-section{margin-top:22px}.period-history-list{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.period-history-list article{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;align-items:center;gap:7px;min-height:76px;padding:11px 12px}.period-history-list article+article{border-top:1px solid var(--line)}.period-history-list article>div{display:grid;min-width:0;gap:4px}.period-history-list strong{font-size:14px}.period-history-list span,.period-history-list small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.period-history-list button{display:grid;width:38px;height:38px;padding:0;place-items:center;color:var(--muted-strong);border:0;border-radius:9px;background:var(--surface-soft);cursor:pointer}.period-empty{padding-top:38px;padding-bottom:38px}.period-privacy-note{margin:18px 8px 0;text-align:center;color:var(--muted);font-size:11px;line-height:1.5}.root-week-hero{display:flex;min-height:152px;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent)}.english-header-add{margin-left:auto}.english-library-nav{margin-top:12px}.root-picker{display:flex;gap:7px;overflow-x:auto;padding:1px 0 10px}.root-picker button{min-width:max-content;min-height:36px;padding:0 13px;color:var(--muted-strong);border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:11px;font-weight:700;cursor:pointer}.root-picker button.active{color:var(--accent-contrast);border-color:var(--accent);background:var(--accent)}.root-library-entry,.expression-entry{display:grid;width:100%;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;padding:13px 14px;text-align:left;color:var(--accent);border:0;border-radius:var(--radius-card);background:var(--accent-soft);cursor:pointer}.root-library-entry>span,.expression-entry>span{display:grid;gap:3px;color:var(--text)}.root-library-entry small,.expression-entry small{color:var(--muted-strong);font-size:10px;line-height:1.45}.root-library-entry{margin-bottom:8px;border:1px solid var(--line);background:var(--surface)}.root-week-copy{display:grid;gap:5px}.root-week-copy>span,.root-week-copy>p{margin:0;color:color-mix(in srgb,var(--accent-contrast) 74%,transparent);font-size:12px}.root-week-copy>strong{margin-top:4px;font-size:clamp(29px,9vw,40px);line-height:1;letter-spacing:-.035em}.root-week-copy>p{margin-top:4px;font-size:14px;font-weight:700}.root-week-progress{display:grid;min-width:66px;gap:3px;justify-items:end}.root-week-progress strong{font-size:23px;font-variant-numeric:tabular-nums}.root-week-progress strong small,.root-week-progress>span{color:color-mix(in srgb,var(--accent-contrast) 70%,transparent);font-size:10px}.root-explanation{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.root-explanation h2,.today-word-section h2,.root-family-section h2{margin:0;font-size:18px;letter-spacing:-.02em}.root-explanation>p{margin:9px 0 15px;color:var(--muted-strong);font-size:13px;line-height:1.7}.root-explanation dl{display:grid;gap:12px;margin:0}.root-explanation dl>div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px}.root-explanation dt{color:var(--accent);font-size:11px;font-weight:800}.root-explanation dd{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.today-word-section,.root-family-section{margin-top:26px}.today-word-section>.section-heading svg{color:var(--accent)}.today-word-card{padding:20px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent)}.today-word-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.today-word-title>div{display:grid;gap:4px}.today-word-title strong{font-size:clamp(28px,9vw,38px);line-height:1;letter-spacing:-.035em}.today-word-title span{color:color-mix(in srgb,var(--accent-contrast) 76%,transparent);font-size:13px}.today-word-title em{max-width:44%;padding:5px 9px;color:var(--accent-contrast);border-radius:999px;background:color-mix(in srgb,var(--accent-contrast) 12%,transparent);font-size:10px;font-style:normal;line-height:1.35;text-align:right}.word-equation{display:flex;align-items:center;gap:7px;overflow-x:auto;margin-top:19px;padding-bottom:3px}.word-equation>span{display:grid;min-width:max-content;gap:2px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent-contrast) 12%,transparent)}.word-equation b{font-size:14px}.word-equation small{color:color-mix(in srgb,currentColor 72%,transparent);font-size:9px}.word-equation i{color:color-mix(in srgb,currentColor 58%,transparent);font-size:12px;font-style:normal}.meaning-bridge{margin:16px 0 0;color:color-mix(in srgb,var(--accent-contrast) 84%,transparent);font-size:13px;line-height:1.65}.today-word-card blockquote,.root-word-detail blockquote{display:grid;gap:5px;margin:16px 0 0;padding:13px 0 0;border-top:1px solid color-mix(in srgb,currentColor 20%,transparent)}.word-examples blockquote+blockquote{margin-top:10px}.today-word-card blockquote strong,.root-word-detail blockquote strong{font-size:13px;line-height:1.55}.today-word-card blockquote span,.root-word-detail blockquote span{color:color-mix(in srgb,currentColor 70%,transparent);font-size:11px}.word-state-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.word-state-actions button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:6px;color:var(--accent-contrast);border:1px solid color-mix(in srgb,var(--accent-contrast) 28%,transparent);border-radius:var(--radius-control);background:transparent;font-size:12px;font-weight:700;cursor:pointer}.word-state-actions button.active{color:var(--accent);border-color:var(--accent-contrast);background:var(--accent-contrast)}.english-message{margin:9px 4px 0;color:var(--muted);font-size:11px;text-align:center}.root-family-list{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.root-family-list details+details{border-top:1px solid var(--line)}.root-family-list summary{display:flex;min-height:67px;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;cursor:pointer;list-style:none}.root-family-list summary::-webkit-details-marker{display:none}.root-family-list summary>span:first-child{display:grid;min-width:0;gap:3px}.root-family-list summary strong{font-size:16px}.root-family-list summary small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.root-word-status{flex:0 0 auto;color:var(--muted-strong);font-size:11px}.root-word-status.known{color:var(--income);font-weight:800}.root-word-status.review{color:var(--expense)}.root-word-detail{padding:0 15px 17px}.root-word-detail>.word-equation{margin-top:0;color:var(--text)}.root-word-detail .word-equation>span{background:var(--surface-soft)}.root-word-detail>p{margin:12px 0 0;color:var(--muted-strong);font-size:12px;line-height:1.65}.root-word-detail blockquote{color:var(--text);border-color:var(--line)}.root-library-search{display:flex;min-height:48px;align-items:center;gap:10px;margin-bottom:13px;padding:0 14px;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.root-library-search input{width:100%;min-width:0;color:var(--text);border:0;outline:0;background:transparent;font-size:13px}.root-library-search input::placeholder{color:var(--muted)}.root-library-list{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.root-library-list article+article{border-top:1px solid var(--line)}.root-library-main{display:grid;width:100%;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:72px;padding:12px 14px;text-align:left;border:0;background:transparent;cursor:pointer}.root-library-mark{display:grid;width:40px;height:40px;place-items:center;color:var(--accent);border-radius:10px;background:var(--accent-soft)}.root-library-main>span:nth-child(2){display:grid;min-width:0;gap:4px}.root-library-main strong{font-size:16px}.root-library-main small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.root-library-main em{padding:4px 8px;color:var(--muted-strong);border-radius:999px;background:var(--surface-soft);font-size:9px;font-style:normal;font-weight:800}.root-library-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 13px 65px}.root-library-actions button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:5px;color:var(--muted-strong);border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);font-size:10px;cursor:pointer}.root-library-empty{padding-top:48px;padding-bottom:48px}.expression-intro{display:flex;align-items:flex-start;gap:13px;padding:17px;color:var(--accent);border-radius:var(--radius-card);background:var(--accent-soft)}.expression-intro>div{display:grid;gap:5px;color:var(--text)}.expression-intro strong{font-size:14px;line-height:1.45}.expression-intro p{margin:0;color:var(--muted-strong);font-size:11px;line-height:1.55}.expression-filter,.expression-type-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:13px 0;padding:3px;border-radius:var(--radius-control);background:var(--surface-soft)}.expression-filter button,.expression-type-picker button{min-height:38px;color:var(--muted-strong);border:0;border-radius:9px;background:transparent;font-size:12px;font-weight:700;cursor:pointer}.expression-filter button.active,.expression-type-picker button.active{color:var(--text);background:var(--surface)}.expression-type-picker{grid-template-columns:1fr 1fr;margin-top:0}.expression-list{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.expression-list details+details{border-top:1px solid var(--line)}.expression-list summary{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:13px;padding:13px 15px;cursor:pointer;list-style:none}.expression-list summary::-webkit-details-marker{display:none}.expression-list summary>span{display:grid;min-width:0;gap:4px}.expression-list summary strong{font-size:16px}.expression-list summary small{color:var(--muted);font-size:11px}.expression-list summary em{flex:0 0 auto;padding:4px 8px;color:var(--accent);border-radius:999px;background:var(--accent-soft);font-size:9px;font-style:normal;font-weight:800}.expression-detail{padding:0 15px 17px}.expression-detail>p{margin:0;padding-top:14px;color:var(--muted-strong);border-top:1px solid var(--line);font-size:12px;line-height:1.7}.expression-examples{display:grid;gap:10px;margin-top:13px}.expression-examples blockquote{display:grid;gap:4px;margin:0;padding:11px 12px;border-radius:10px;background:var(--surface-soft)}.expression-examples strong{font-size:12px;line-height:1.55}.expression-examples span{color:var(--muted);font-size:10px}.expression-item-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.expression-item-actions button{display:inline-flex;min-height:36px;align-items:center;gap:5px;padding:0 11px;color:var(--muted-strong);border:1px solid var(--line);border-radius:9px;background:transparent;font-size:10px;cursor:pointer}.english-content-form{display:grid;gap:14px}.english-form-section{display:grid;gap:12px;padding:17px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.english-form-section h2{margin:0 0 2px;font-size:18px;letter-spacing:-.02em}.english-form-section .field small{color:var(--muted);font-size:9px;line-height:1.45}.english-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.english-editor-heading>div{display:grid;gap:3px}.english-editor-heading p{margin:0;color:var(--muted);font-size:10px}.english-editor-heading>button,.example-editor>div:first-child>button{display:inline-flex;min-height:36px;align-items:center;gap:5px;padding:0 11px;color:var(--accent);border:1px solid var(--accent);border-radius:9px;background:transparent;font-size:10px;font-weight:700;cursor:pointer}.word-editor-card{padding:14px;border-radius:12px;background:var(--surface-soft)}.word-editor-card+.word-editor-card{margin-top:2px}.word-editor-card>header,.example-editor>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.word-editor-card>header>button,.example-editor-row>button,.standalone-example-row>button{display:grid;width:34px;height:34px;flex:0 0 auto;padding:0;place-items:center;color:var(--muted-strong);border:0;border-radius:8px;background:var(--surface-strong);cursor:pointer}.word-editor-card>.field,.word-editor-card>.field-grid,.example-editor{margin-top:10px}.example-editor{padding-top:13px;border-top:1px solid var(--line)}.example-editor-row,.standalone-example-row{position:relative;display:grid;gap:8px;padding:12px;border-radius:10px;background:var(--surface)}.example-editor-row+.example-editor-row,.standalone-example-row+.standalone-example-row{margin-top:9px}.example-editor-row>button,.standalone-example-row>button{position:absolute;top:8px;right:8px}.example-editor-row .field>span,.standalone-example-row .field>span{padding-right:38px}.english-save-button{position:sticky;z-index:11;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 10px);box-shadow:0 4px 8px #163f3138}.english-backup-section{margin-top:26px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.english-backup-section>div:first-child{display:flex;align-items:center;gap:11px;color:var(--accent)}.english-backup-section>div:first-child>span{display:grid;gap:3px;color:var(--text)}.english-backup-section small{color:var(--muted);font-size:10px}.english-backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.english-backup-actions button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:6px;color:var(--accent);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-soft);font-size:11px;font-weight:700;cursor:pointer}.private-vault-view .records-header>.icon-button:last-child{margin-left:auto}.vault-auth-panel{max-width:460px;margin:28px auto 0;padding:24px 20px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.vault-auth-icon{display:grid;width:54px;height:54px;margin-bottom:18px;place-items:center;color:var(--accent);border-radius:50%;background:var(--accent-soft)}.vault-auth-panel h2{margin:0;font-size:22px;letter-spacing:-.03em}.vault-auth-panel>p{margin:8px 0 20px;color:var(--muted);font-size:13px;line-height:1.55}.vault-auth-panel form{display:grid;gap:14px}.vault-warning{display:grid;gap:3px;margin-top:16px;padding:12px 13px;color:var(--expense);border-radius:var(--radius-control);background:var(--expense-soft);font-size:12px}.vault-warning span{color:var(--muted-strong);line-height:1.45}.vault-import-link{display:inline-flex;min-height:42px;align-items:center;gap:6px;margin-top:14px;padding:0;color:var(--accent);border:0;background:transparent;font-size:13px;font-weight:700;cursor:pointer}.vault-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent)}.vault-summary>div{display:grid;gap:6px}.vault-summary span,.vault-summary small{color:color-mix(in srgb,var(--accent-contrast) 72%,transparent);font-size:11px}.vault-summary strong{font-size:20px}.vault-create-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 16px}.vault-create-actions button{display:flex;min-height:50px;align-items:center;justify-content:center;gap:8px;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-control);background:var(--surface);font-size:13px;font-weight:700;cursor:pointer}.vault-copy-status{margin:-6px 0 10px;text-align:center;color:var(--income);font-size:12px;font-weight:700}.vault-list{display:grid;gap:10px}.vault-item{display:grid;grid-template-columns:42px minmax(0,1fr) 75px;align-items:center;gap:11px;min-height:104px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.vault-item-icon{display:grid;width:42px;height:42px;place-items:center;color:var(--accent);border-radius:var(--radius-control);background:var(--accent-soft)}.vault-item-content{display:grid;min-width:0;gap:4px}.vault-item-content>span,.vault-item-content>small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.vault-item-content>strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.vault-item-content code{overflow:hidden;color:var(--muted-strong);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.vault-item-actions{display:grid;grid-template-columns:repeat(2,34px);gap:7px}.vault-item-actions button{display:grid;width:34px;height:34px;padding:0;place-items:center;color:var(--muted-strong);border:0;border-radius:9px;background:var(--surface-soft);cursor:pointer}.vault-empty{padding-top:42px;padding-bottom:42px}.vault-backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.vault-backup-actions button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;color:var(--muted-strong);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);font-size:12px;font-weight:700;cursor:pointer}.vault-field-warning{margin:-2px 0 0;color:var(--expense);font-size:11px;line-height:1.5}.vault-editor-sheet{max-width:520px}@media(max-width:380px){.period-primary-actions,.vault-create-actions,.vault-backup-actions{grid-template-columns:1fr}}.category-type-toggle{margin-bottom:16px}.category-groups{display:grid;gap:12px}.category-group{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.category-group>header{display:grid;grid-template-columns:38px minmax(0,auto) 1fr 34px 34px;align-items:center;gap:8px;padding:13px}.category-group>header>span:not(.category-folder){color:var(--muted);font-size:11px}.category-folder{display:grid;width:38px;height:38px;place-items:center;color:var(--accent);border-radius:10px;background:var(--accent-soft)}.category-children{display:grid;padding:0 13px 13px 59px}.category-children>div{display:flex;min-height:42px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:13px}.category-actions{display:flex;gap:5px}.category-actions button{width:30px;height:30px;background:transparent}.category-children .add-secondary{display:flex;width:max-content;height:34px;margin-top:6px;padding:0 10px;align-items:center;gap:5px;color:var(--accent);background:var(--accent-soft);font-size:12px;font-weight:700}.privacy-panel,.about-panel{display:flex;align-items:flex-start;gap:14px;padding:18px;border-radius:var(--radius-card)}.privacy-panel{color:var(--accent-contrast);background:var(--accent)}.privacy-panel p{color:color-mix(in srgb,var(--accent-contrast) 72%,transparent);font-size:13px}.settings-section{margin-top:28px}.settings-actions{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.settings-actions button{display:flex;width:100%;min-height:72px;align-items:center;gap:13px;padding:13px 16px;text-align:left;color:var(--accent);border:0;background:transparent;cursor:pointer}.settings-actions button+button{border-top:1px solid var(--line)}.settings-actions button>span{display:grid;gap:3px;color:var(--text)}.settings-error{display:flex;align-items:flex-start;gap:7px;margin:10px 2px 0;color:var(--expense);font-size:12px;line-height:1.5}.settings-error svg{flex:0 0 auto;margin-top:1px}.import-preview{padding-top:8px}.import-file-name{overflow:hidden;margin:22px 0 12px;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.import-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--line)}.import-counts>div{display:grid;gap:5px;padding:16px 10px;background:var(--surface);text-align:center}.import-counts strong{font-size:22px;font-variant-numeric:tabular-nums}.import-counts span{color:var(--muted);font-size:11px}.import-counts .warning strong{color:var(--expense)}.import-detail-list{display:grid;gap:10px;margin:18px 2px}.import-detail-list p{display:flex;align-items:center;gap:9px;margin:0;color:var(--muted-strong);font-size:13px}.import-detail-list svg{flex:0 0 auto;color:var(--income)}.import-detail-list strong{color:var(--text)}.import-errors{margin:18px 0;padding:14px;border-radius:var(--radius-control);background:var(--expense-soft)}.import-errors h3{margin:0 0 8px;color:var(--expense);font-size:13px}.import-errors p,.import-errors small{display:block;margin:4px 0 0;color:var(--muted-strong);font-size:11px;line-height:1.5}.import-confirm{margin-top:20px}.about-panel{margin-top:26px;color:var(--muted)}.about-panel strong{color:var(--text)}.about-panel p{font-size:12px}.toast{position:fixed;z-index:60;right:50%;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 14px);width:max-content;max-width:calc(100vw - 36px);padding:11px 16px;color:var(--accent-contrast);border-radius:var(--radius-control);background:var(--accent);box-shadow:var(--shadow);font-size:13px;font-weight:700;transform:translate(50%)}.pwa-update-prompt{position:fixed;z-index:55;right:50%;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 14px);display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:min(calc(100vw - 28px),520px);min-height:72px;align-items:center;gap:11px;padding:12px 13px;color:var(--accent-contrast);border-radius:var(--radius-card);background:var(--accent);box-shadow:var(--shadow);transform:translate(50%)}.pwa-update-icon{display:grid;width:38px;height:38px;place-items:center;color:var(--accent);border-radius:50%;background:var(--accent-contrast)}.pwa-update-prompt>div{min-width:0}.pwa-update-prompt strong,.pwa-update-prompt p{display:block;margin:0}.pwa-update-prompt strong{font-size:14px}.pwa-update-prompt p{margin-top:3px;color:color-mix(in srgb,var(--accent-contrast) 72%,transparent);font-size:11px;line-height:1.4}.pwa-update-action,.pwa-update-close{flex:0 0 auto;color:var(--accent);border:0;background:var(--accent-contrast);cursor:pointer}.pwa-update-action{min-height:38px;padding:0 12px;border-radius:10px;font-size:12px;font-weight:800}.pwa-update-close{display:grid;width:36px;height:36px;padding:0;place-items:center;border-radius:50%}.update-prompt-enter-active,.update-prompt-leave-active{transition:opacity .18s ease,transform .22s cubic-bezier(.16,1,.3,1)}.update-prompt-enter-from,.update-prompt-leave-to{opacity:0;transform:translate(50%,10px)}.loading-state{display:grid;gap:14px;padding:max(28px,env(safe-area-inset-top)) 18px}.skeleton{border-radius:var(--radius-card);background:var(--surface-strong);opacity:.7}.skeleton-title{width:58%;height:42px;margin-bottom:8px}.skeleton-balance{height:190px}.skeleton-row{height:76px}.fatal-state{display:grid;min-height:100dvh;padding:30px;place-content:center;justify-items:start}.fatal-state>span{display:grid;width:52px;height:52px;place-items:center;color:var(--expense);border-radius:50%;background:var(--expense-soft);font-size:24px;font-weight:800}.fatal-state p{max-width:380px;color:var(--muted);line-height:1.6}.sheet-enter-active,.sheet-leave-active,.sheet-enter-active .sheet-panel,.sheet-leave-active .sheet-panel,.fade-enter-active,.fade-leave-active,.toast-enter-active,.toast-leave-active{transition:opacity .18s ease,transform .22s cubic-bezier(.16,1,.3,1)}.sheet-enter-from,.sheet-leave-to,.fade-enter-from,.fade-leave-to,.toast-enter-from,.toast-leave-to{opacity:0}.sheet-enter-from .sheet-panel,.sheet-leave-to .sheet-panel{transform:translateY(100%)}.toast-enter-from,.toast-leave-to{transform:translate(50%,8px)}@media(min-width:720px){.view{--view-inline-padding: 28px}.sheet-layer{align-items:center;padding:24px}.sheet-panel{max-height:calc(100dvh - 48px);border-radius:22px}.sheet-handle{display:none}.select-layer{align-items:center;padding:24px}.select-panel{border-radius:18px}}@media(max-width:380px){.view{--view-inline-padding: 14px}.balance-panel{padding:20px}.field-grid{grid-template-columns:1fr}.transaction-sheet .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.category-group>header{grid-template-columns:38px minmax(0,1fr) 32px 32px}.category-group>header>span:not(.category-folder){display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
