:root{--shade-1: rgba(183, 125, 55, .063);--shade-2: rgba(80, 52, 30, .4);--shade-3: rgba(90, 52, 30, .149);--shade-4: rgba(23, 26, 45, .05);--shade-5: rgba(23, 26, 45, .04);--shade-6: rgba(0,0,0,.08);--shade-7: rgba(74, 47, 22, .92);--shade-8: rgba(90, 58, 30, .34);--shade-9: rgba(20,22,34,.24);--shade-10: rgba(120, 80, 30, .08);--bg: #fef9f3;--card: #fffdf9;--ink: #5a3a1e;--muted: #8a6a50;--line: #f0e4d2;--accent: #e0a53c;--accent-soft: #fdf1db;--in: #3f6212;--out: #c2410c;--action-ink: var(--ink);--danger-ink: #a9452c;--focus-ink: #9e5823;--key-finish-bg: #ffc559;--key-finish-ink: var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:var(--font-sm)/1.5 -apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font-family:inherit}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}::selection{background:var(--key-finish-bg);color:var(--ink)}.app{max-width:760px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 8px}.brand{display:flex;align-items:center;gap:10px}.logo{width:34px;height:34px;border-radius:var(--r-md);display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--ink);font-weight:700}.brand strong{display:block;font-size:var(--font-md)}.brand small{color:var(--muted);font-size:var(--font-xs);white-space:nowrap}.book{border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);padding:6px 10px;width:auto;max-width:170px;flex:none}.nav{display:flex;gap:4px;padding:8px 18px 0}.nav button{flex:1;border:0;background:transparent;padding:9px 0;border-radius:var(--r-sm);color:var(--muted);font-size:var(--font-sm);cursor:pointer}.nav button.on{background:var(--accent-soft);color:var(--focus-ink);font-weight:600}.main{padding:12px 18px 40px;flex:1}.card{background:var(--card);border-radius:var(--r-md);padding:16px;box-shadow:0 1px 2px var(--shade-4),0 8px 24px var(--shade-5)}.main,.card,.grow{min-width:0}.grow{overflow-wrap:anywhere}.label{color:var(--muted);font-size:var(--font-xs);margin:14px 0 6px}label.label{display:block}.seg{display:flex;background:var(--accent-soft);border-radius:var(--r-md);padding:3px}.seg button{flex:1;border:0;background:transparent;padding:8px;border-radius:var(--r-sm);color:var(--muted);cursor:pointer}.seg button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 3px var(--shade-6)}.amount{display:flex;align-items:center;gap:6px;margin:16px 0 4px}.amount span{font-size:var(--font-lg);color:var(--muted)}.amount input{flex:1;border:0;outline:0;font-size:var(--font-display);font-weight:700;color:var(--ink);background:transparent;padding:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips.small .chip{font-size:var(--font-xs);padding:5px 10px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-pill);padding:7px 12px;cursor:pointer;font-size:var(--font-sm);color:var(--ink)}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--focus-ink)}.chip i{width:8px;height:8px;border-radius:var(--r-pill);display:inline-block}input,select{width:100%;border:1px solid var(--line);border-radius:var(--r-md);padding:9px 11px;font-size:var(--font-sm);background:var(--card);color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--accent)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.primary{width:100%;margin-top:18px;border:0;border-radius:var(--r-md);background:var(--accent);color:var(--action-ink);padding:12px;font-size:var(--font-md);font-weight:700;cursor:pointer}.primary:active{transform:translateY(1px)}.summary{display:flex;gap:16px;align-items:center;justify-content:flex-end}.summary small{display:block;color:var(--muted);font-size:var(--font-xs)}.in{color:var(--in)}.out{color:var(--out)}.group{margin-top:14px}.day{color:var(--muted);font-size:var(--font-xs);margin:10px 0 4px}.row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.grow{flex:1;min-width:0}.row small{color:var(--muted);font-size:var(--font-xs)}.dot{width:8px;height:8px;border-radius:var(--r-pill);flex:none}.remark{color:var(--muted)}.del{border:0;background:transparent;color:var(--danger-ink);cursor:pointer;font-size:var(--font-xs)}.del:hover{color:var(--out)}.totalbox{background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--ink);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;gap:4px}.totalbox small{opacity:.8;font-size:var(--font-xs)}.totalbox strong{font-size:var(--font-xl)}.totalbox span{opacity:.8;font-size:var(--font-xs)}.bar-row{display:grid;grid-template-columns:76px 1fr 84px 38px;gap:8px;align-items:center;margin:8px 0}.bar-name{font-size:var(--font-sm)}.bar-track{background:var(--accent-soft);border-radius:var(--r-sm);height:10px;overflow:hidden}.bar{height:100%;border-radius:var(--r-sm)}.bar-val{text-align:right;font-size:var(--font-xs)}.bar-pct{text-align:right;color:var(--muted);font-size:var(--font-xs)}.btns{display:flex;flex-wrap:wrap;gap:8px}.btns button,.filebtn{border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:8px 12px;cursor:pointer;font-size:var(--font-sm);color:var(--ink)}.btns button.danger{color:var(--out);border-color:var(--line)}.filebtn{position:relative}.filebtn input[type=file]{position:absolute;width:1px!important;height:1px!important;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.filebtn:focus-within{outline:2px solid var(--focus-ink);outline-offset:3px}.hint{color:var(--muted);font-size:var(--font-xs)}h3{font-size:var(--font-sm);margin:18px 0 8px;color:var(--ink)}h3:first-child{margin-top:0}.empty{color:var(--muted);text-align:center;padding:24px 0;font-size:var(--font-sm)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:100;background:var(--shade-7);color:var(--card);padding:9px 16px;border-radius:var(--r-pill);font-size:var(--font-sm);animation:pop .18s ease-out}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)}}.seg.three button{padding:8px 6px;font-size:var(--font-sm)}.neutral{color:var(--muted);font-variant-numeric:tabular-nums}.dot.arrow{background:var(--bg);color:var(--focus-ink);font-style:normal;font-size:var(--font-xs);display:grid;place-items:center;width:18px;height:18px;border-radius:var(--r-sm);flex:none}.tip{color:var(--muted);font-size:var(--font-xs);margin:10px 0 0}@media (max-width: 820px){.app{max-width:none}.topbar{padding:12px 12px 6px}.brand small{font-size:var(--font-xs)}.book{max-width:130px}.nav{padding:6px 10px 0;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.main{padding:10px 12px 32px}.card{border-radius:var(--r-md);padding:14px}.row2{grid-template-columns:1fr}.summary{gap:12px;justify-content:flex-start}.bar-row{grid-template-columns:88px minmax(30px,1fr) 68px 32px;gap:6px}.amount input{font-size:var(--font-display)}.toast{bottom:16px}}.filebtn.big{display:block;text-align:center;padding:14px;border-style:dashed;color:var(--focus-ink);background:var(--accent-soft);border-color:var(--line)}.preview{margin-top:14px;border:1px solid var(--line);border-radius:var(--r-md);padding:12px;background:var(--bg)}.preview-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.preview-head b{font-size:var(--font-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{background:var(--accent-soft);color:var(--focus-ink);border-radius:var(--r-pill);padding:2px 9px;font-size:var(--font-xs);flex:none}.preview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}.preview-stats small{display:block;color:var(--muted);font-size:var(--font-xs)}.preview-stats b{font-size:var(--font-sm)}.warn{color:var(--danger-ink);background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:var(--font-xs)}button[disabled]{opacity:.5;cursor:not-allowed}.filters{display:grid;grid-template-columns:1fr 130px 130px auto;gap:8px;margin:12px 0 4px;align-items:center}.filters .kw{min-width:0}.filters select{font-size:var(--font-xs);padding:8px}.ghost{border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:8px 12px;cursor:pointer;color:var(--muted);font-size:var(--font-sm)}.link{border:0;background:transparent;color:var(--focus-ink);cursor:pointer;font-size:var(--font-xs);padding:0 4px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--shade-8);display:grid;place-items:center;padding:16px;z-index:20}.modal{background:var(--card);border-radius:var(--r-md);padding:18px;width:min(420px,100%);max-height:86vh;overflow:auto;box-shadow:0 20px 60px var(--shade-9)}.modal h3{margin-top:0}.modal-btns{display:flex;gap:10px;margin-top:16px}.modal-btns .primary{margin-top:0}.modal-btns .ghost{flex:1}.modal-btns .primary{flex:2}@media (max-width: 820px){.filters{grid-template-columns:1fr 1fr}.filters .kw{grid-column:1 / -1}}.ghost.wide{display:block;width:100%;margin-top:8px}.chip .ico{font-size:var(--font-sm);line-height:1}.budget-box{border:1px solid var(--line);border-radius:var(--r-md);padding:12px;margin-bottom:10px}.budget-box.small{padding:10px 12px}.budget-line{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--font-sm);margin-bottom:8px}.budget-line b{font-variant-numeric:tabular-nums;font-size:var(--font-sm)}.budget-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:var(--font-xs);margin-top:6px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tag{font-size:var(--font-xs);padding:1px 8px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--muted)}.tag.ok{background:var(--accent-soft);color:var(--in)}.attach-line{display:flex;align-items:center;gap:8px;font-size:var(--font-xs);color:var(--ink);padding:8px 10px;background:var(--accent-soft);border-radius:var(--r-sm)}.attach-line span{flex:1}.cat-ico,.asset-ico{display:inline-block;flex:none;background-color:currentColor;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;vertical-align:-3px}.logo-img{width:34px;height:34px;display:block}.dot-badge{width:28px;height:28px;border-radius:var(--r-md);display:grid;place-items:center;flex:none}.asset-badge{width:28px;height:28px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--focus-ink)}.chip .cat-ico{color:currentColor}.bar-name .cat-ico{color:var(--muted)}.boot{display:grid;place-items:center;height:100vh;color:var(--muted)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(400px,100%);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:0 10px 30px var(--shade-10)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.auth-brand img{width:46px;height:46px}.auth-brand strong{display:block;font-size:var(--font-md)}.auth-brand small{color:var(--muted);font-size:var(--font-xs)}.userbox{display:flex;align-items:center;gap:8px}.uemail{font-size:var(--font-xs);color:var(--muted);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghost.tiny{padding:5px 10px;font-size:var(--font-xs)}@media (max-width: 820px){.uemail{display:none}}.amount .cur{width:auto;flex:none;padding:5px 8px;font-size:var(--font-xs);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--muted);border-color:var(--line)}input.rate{width:96px;flex:none;text-align:right}.chip.small{padding:2px 9px;font-size:var(--font-xs)}label.inline{display:flex;align-items:center;gap:6px;font-size:var(--font-sm);margin-top:8px;color:var(--muted)}label.inline input{width:auto}.tag-dot{width:12px;height:12px;border-radius:var(--r-sm);flex:none}input.color{width:34px;height:30px;padding:2px;flex:none;border-radius:var(--r-sm);cursor:pointer}.modal.detail{width:min(460px,100%);padding:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.modal.detail::-webkit-scrollbar{display:none}.dhead{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;padding:18px 20px}.dhead .grow{min-width:0}.detail-close{flex:none;width:44px;height:44px;border:0;border-radius:var(--r-pill);background:var(--card);color:var(--ink);cursor:pointer;font-size:var(--font-lg);line-height:1}.detail-related{padding:12px 20px;border-bottom:1px solid var(--line)}.detail-related summary{color:var(--muted);cursor:pointer;min-height:44px;display:flex;align-items:center}.detail-related summary:after{content:"＋";margin-left:auto}.detail-related[open] summary:after{content:"－"}.detail-related .row2{margin:8px 0}.dhead .dt{font-size:var(--font-md);font-weight:600}.dhead .ds{font-size:var(--font-xs);opacity:.75}.dhead .damt{font-size:var(--font-lg);font-weight:700;font-variant-numeric:tabular-nums}.drow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 20px;border-bottom:1px solid var(--line);font-size:var(--font-sm)}.drow:last-of-type{border-bottom:0}.dl{color:var(--muted);flex:none}.dv{text-align:right;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.switch{width:42px;height:24px;border-radius:var(--r-pill);border:0;background:var(--line);position:relative;cursor:pointer;flex:none}.switch i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--r-pill);background:var(--card);transition:left .15s}.switch.on{background:var(--accent)}.switch.on i{left:21px}.modal.detail .modal-btns{padding:14px 20px 18px;margin:0}.invite{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-soft);border-radius:var(--r-md);padding:10px 14px;margin-top:8px}.invite .code{font-size:var(--font-lg);font-weight:700;letter-spacing:3px;color:var(--muted)}.invite small{display:block;color:var(--muted);font-size:var(--font-xs)}.foreign{color:var(--out);font-weight:700;margin-left:2px}.mobile-entry{display:none}@media (max-width: 600px){html,body,.app *{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,.app *::-webkit-scrollbar{display:none}.mobile-entry{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;background:var(--accent-soft);color:var(--ink)}.entry-toolbar{height:58px;flex:none;display:flex;align-items:center;gap:7px;padding:7px 10px;background:var(--bg)}.entry-back{width:34px;height:38px;border:0;background:transparent;color:var(--focus-ink);font-size:var(--font-xl);line-height:1}.entry-tabs{flex:1;display:flex;background:var(--line);border-radius:var(--r-md);padding:4px;min-width:0}.entry-tabs button{flex:1;border:0;border-radius:var(--r-md);padding:6px 2px;background:transparent;color:var(--muted)}.entry-tabs button.on{background:var(--card);color:var(--focus-ink);font-weight:700;box-shadow:0 2px 0 var(--line)}.entry-book{width:94px;flex:none}.entry-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:6px;border-radius:var(--r-lg);background:var(--card);padding:12px 9px}.entry-categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 2px}.entry-category{min-width:0;border:0;background:transparent;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:4px;padding:3px 0;font-size:var(--font-xs);line-height:1.25}.entry-category>span:last-child{width:100%;overflow-wrap:anywhere;text-align:center}.entry-category-icon{width:42px;height:42px;border-radius:var(--r-pill);display:grid;place-items:center;color:var(--category-color, var(--muted));background:var(--category-bg, var(--accent-soft))}.entry-category.on .entry-category-icon{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 3px 0 var(--line)}.entry-category.on>span:last-child{color:var(--focus-ink);font-weight:700}.entry-category.child .entry-category-icon{width:36px;height:36px;background:var(--accent-soft);color:var(--muted)}.entry-subsection{border-top:1px solid var(--line);margin-top:15px;padding-top:10px}.entry-subtitle{color:var(--muted);font-size:var(--font-xs);margin:0 3px 10px}.entry-transfer{display:grid;gap:12px;padding:8px}.entry-transfer label,.entry-transfer-field{display:grid;gap:5px;color:var(--muted);font-size:var(--font-xs)}.entry-transfer-arrow{text-align:center;color:var(--focus-ink);font-size:var(--font-lg);line-height:1}.entry-bottom{flex:none;background:var(--bg);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -3px 16px var(--shade-1)}.entry-amount-row{height:49px;display:flex;align-items:center;gap:4px;padding:4px 10px}.entry-remark{flex:1;min-width:0;border:0;background:transparent;padding:7px 3px}.entry-currency{width:55px;padding:4px 1px;border:0;font-size:var(--font-xs);background:transparent;color:var(--muted)}.entry-currency-code{color:var(--muted);font-size:var(--font-xs)}.entry-fx{text-align:right;padding:0 10px 4px;color:var(--muted);font-size:var(--font-xs)}.entry-symbol{font-weight:700;color:var(--focus-ink)}.entry-value{width:90px;padding:4px 0;border:0;background:transparent;text-align:right;font-size:var(--font-lg);font-weight:700;color:var(--ink)}.entry-options{height:42px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:3px 10px}.entry-date,.entry-account{min-width:0;flex:1;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--font-xs);white-space:nowrap}.entry-date{position:relative;height:34px;cursor:pointer}.entry-date strong{color:var(--muted);font-weight:600}.entry-date svg{width:15px;height:15px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round}.entry-date input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.entry-options>button{border:0;background:transparent;color:var(--focus-ink);font-size:var(--font-xs)}.entry-keypad{height:calc(220px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,1fr);gap:6px;background:var(--accent-soft);padding:8px 8px calc(9px + env(safe-area-inset-bottom));border-radius:var(--r-lg) var(--r-lg) 0 0}.entry-keypad button{min-width:0;border:0;border-radius:var(--r-md);background:var(--card);color:var(--ink);font-size:var(--font-lg);font-weight:700;box-shadow:0 2px 0 var(--line);transition:transform .12s,box-shadow .12s}.entry-keypad button:active{transform:translateY(2px);box-shadow:0 0 0 var(--line)}.entry-keypad button:focus-visible,.mobile-picker-trigger:focus-visible,.mobile-picker-sheet button:focus-visible{outline:2px solid var(--focus-ink);outline-offset:2px}.entry-keypad .key-control,.entry-operators button{background:var(--line);color:var(--focus-ink);box-shadow:0 2px 0 var(--key-finish-bg);font-size:var(--font-sm)}.entry-key-icon{width:23px;height:23px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.entry-operators{display:flex;gap:6px;min-width:0}.entry-operators button{flex:1;font-size:var(--font-lg)}.entry-keypad .key-finish{background:var(--key-finish-bg);color:var(--key-finish-ink);box-shadow:0 2px 0 var(--accent);font-size:var(--font-md)}.entry-keypad button:disabled{opacity:.45}.mobile-picker-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:3px;min-width:0;border:0;border-radius:var(--r-md);background:var(--accent-soft);color:var(--muted);padding:8px 9px;font-size:var(--font-xs);font-weight:600}.mobile-picker-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-picker-trigger svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.entry-currency.mobile-picker-trigger{width:56px;padding:6px 3px 6px 5px;background:transparent}.entry-options .entry-account-picker{min-width:0;flex:1;padding:6px 8px;background:var(--accent-soft);color:var(--muted)}.entry-transfer-field .mobile-picker-trigger{width:100%;min-height:42px;font-size:var(--font-sm)}.mobile-picker-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;background:var(--shade-2)}.mobile-picker-sheet{width:100%;max-height:min(70dvh,570px);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--bg);padding:8px 15px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -8px 32px var(--shade-3)}.mobile-picker-handle{width:36px;height:4px;margin:1px auto 10px;background:var(--line);border-radius:var(--r-pill)}.mobile-picker-sheet header{display:flex;justify-content:space-between;align-items:center;padding:0 3px 11px}.mobile-picker-sheet header small{display:block;color:var(--muted);font-size:var(--font-xs)}.mobile-picker-sheet h2{margin:0;font-size:var(--font-md);color:var(--ink)}.mobile-picker-close{width:44px;height:44px;border:0;border-radius:var(--r-pill);background:var(--line);color:var(--muted);font-size:var(--font-lg);line-height:1}.mobile-picker-options{min-height:0;overflow-y:auto;display:grid;gap:7px;padding:2px 2px 4px}.mobile-picker-options>button{display:flex;align-items:center;gap:10px;width:100%;min-height:55px;padding:8px 10px;border:1px solid transparent;border-radius:var(--r-md);background:var(--card);color:var(--ink);text-align:left}.mobile-picker-options>button[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.mobile-picker-option-icon{width:35px;height:35px;display:grid;place-items:center;flex:none;border-radius:var(--r-md);background:var(--line);color:var(--focus-ink)}.mobile-picker-option-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-picker-option-copy{flex:1;min-width:0;display:grid;gap:1px}.mobile-picker-option-copy strong{font-size:var(--font-sm);overflow-wrap:anywhere}.mobile-picker-option-copy small,.mobile-picker-empty{color:var(--muted);font-size:var(--font-xs)}.mobile-picker-check{color:var(--focus-ink);font-weight:700}}:root{--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-pill: 999px;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.25rem;--font-xl: 1.5rem;--font-display: 2rem;--h-control: 38px;--ring: 0 0 0 3px rgba(224, 165, 60, .28);--shadow-1: 0 1px 2px rgba(90, 58, 30, .06);--shadow-2: 0 8px 24px rgba(90, 58, 30, .12)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:var(--h-control);padding:0 34px 0 12px;border-radius:var(--r-md);background-color:var(--card);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-repeat:no-repeat;background-position:right 17px center,right 12px center;background-size:5px 5px,5px 5px;cursor:pointer;transition:border-color .15s,box-shadow .15s}select:hover{border-color:var(--line)}select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input:not([type=checkbox]):not([type=radio]):not(.rate){height:var(--h-control);border-radius:var(--r-md);transition:border-color .15s,box-shadow .15s}input:not([type=checkbox]):not([type=radio]):focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input[type=date],input[type=month],input[type=datetime-local]{color:var(--ink);font-variant-numeric:tabular-nums}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;filter:sepia(1) saturate(3) hue-rotate(-8deg) brightness(.75)}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=month]::-webkit-calendar-picker-indicator:hover,input[type=datetime-local]::-webkit-calendar-picker-indicator:hover{opacity:.95}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--card);cursor:pointer;position:relative;transition:background .15s,border-color .15s;vertical-align:-3px}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:9px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus-visible{box-shadow:var(--ring);outline:none}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed;background:var(--bg)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ink);outline-offset:2px}@media (pointer: coarse){button:not(.switch),.filebtn{min-height:44px}.entry-category{min-height:44px}.entry-book,.entry-account-picker,.entry-date{min-height:40px}.switch:before{content:"";position:absolute;top:-10px;right:0;bottom:-10px;left:0}}@media (max-width: 480px){.preview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.modal{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.btns button,.ghost,.filebtn{border-radius:var(--r-md);min-height:34px}.primary{border-radius:var(--r-md)}.chip{border-radius:var(--r-pill)}.modal{border-radius:var(--r-lg);box-shadow:var(--shadow-2)}@media (max-width: 820px) and (max-height: 480px){html,body,*{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{display:none}}@media (pointer: coarse){.btns button,.ghost,.filebtn{min-height:44px}}.undo-bar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);font-size:var(--font-sm)}.undo-bar span{flex:1;color:var(--muted)}.tag.due{background:var(--accent-soft);color:var(--accent);margin-top:2px}.due-hint{color:var(--accent)}.home-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px}.hm-item{display:flex;flex-direction:column;gap:4px;min-width:0}.hm-item small{color:var(--muted);font-size:var(--font-xs)}.hm-item b{font-size:var(--font-xl);font-variant-numeric:tabular-nums}.home-budget{margin-top:10px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md)}.hb-head{display:flex;justify-content:space-between;font-size:var(--font-sm);color:var(--muted)}.hb-bar{height:8px;border-radius:var(--r-pill);background:var(--accent-soft);overflow:hidden;margin:8px 0 6px}.hb-bar i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill)}.home-add{width:100%;height:45px;margin:12px 0 4px;border:0;border-radius:var(--r-md);cursor:pointer;background:var(--accent);color:var(--on-accent);font-size:var(--font-lg);font-weight:600}.home-add:disabled{opacity:.55;cursor:not-allowed}.home-flow{margin-top:12px}.hf-head{font-size:var(--font-sm);color:var(--muted);margin:8px 2px}.card.embedded{padding:0;border:0;background:transparent}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-weekdays span{text-align:center;font-size:var(--font-xs);color:var(--muted);padding:4px 0}.cal-cell{min-height:52px;padding:4px 2px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);display:flex;flex-direction:column;align-items:center;gap:1px;font-size:var(--font-xs);cursor:pointer;overflow:hidden}.cal-cell.empty{border:0;background:transparent;cursor:default}.cal-cell.on{border-color:var(--accent);background:var(--accent-soft)}.cal-cell em{font-style:normal;color:var(--ink)}.cal-cell i{font-style:normal;font-size:var(--font-xs);white-space:nowrap}.cal-list{margin-top:14px}.trend{display:flex;align-items:flex-end;gap:4px;height:96px;padding:6px 0;overflow-x:auto}.trend-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:18px;flex:1}.trend-bars{display:flex;align-items:flex-end;gap:2px;height:72px}.trend-bars i{width:6px;border-radius:var(--r-sm);display:block;min-height:2px}.trend-bars .exp{background:var(--accent)}.trend-bars .inc{background:var(--accent-soft)}.trend-col span{font-size:var(--font-xs);color:var(--muted)}.stats-panel{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}.stats-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:var(--font-xs)}.stats-panel-head h3{margin:0;color:var(--ink);font-size:var(--font-md)}.stats-distribution{display:flex;align-items:center;gap:16px;margin-top:16px}.stats-donut{position:relative;width:144px;flex:none}.stats-donut svg{display:block;width:100%}.stats-donut-center{position:absolute;top:25%;right:25%;bottom:25%;left:25%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.stats-donut-center small,.stats-category small{display:block;color:var(--muted);font-size:var(--font-xs)}.stats-donut-center strong{max-width:100%;font-size:var(--font-xs);overflow-wrap:anywhere}.stats-legend{min-width:0;flex:1;display:grid;gap:10px}.stats-category{display:flex;align-items:center;gap:8px;font-size:var(--font-sm);min-width:0}.stats-dot,.stats-key{display:inline-block;width:9px;height:9px;border-radius:var(--r-pill);flex:none}.stats-category-name{min-width:0;flex:1;overflow-wrap:anywhere}.stats-category-value{text-align:right;font-variant-numeric:tabular-nums}.stats-category-value strong{font-size:var(--font-xs)}.stats-key{margin:0 4px 0 8px}.stats-key.expense{background:var(--out)}.stats-key.income{background:var(--in)}.stats-line-chart{display:block;width:100%;height:auto;margin-top:12px}.stats-trend-detail{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap;font-size:var(--font-xs);color:var(--muted)}.stats-trend-detail select{width:auto;max-width:100%}.stats-report,.stats-extra{margin-top:12px;font-size:var(--font-sm);color:var(--muted)}.stats-report summary,.stats-extra summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.stats-report summary:after,.stats-extra summary:after{content:"＋";margin-left:auto}.stats-report[open] summary:after,.stats-extra[open] summary:after{content:"－"}.stats-report-scroll{max-height:280px;overflow:auto}.stats-report table{width:100%;border-collapse:collapse;font-size:var(--font-xs);font-variant-numeric:tabular-nums}.stats-report th,.stats-report td{padding:8px 4px;text-align:right;border-bottom:1px solid var(--line)}.stats-report th:first-child,.stats-report td:first-child{text-align:left}.stats-empty{text-align:center;color:var(--muted);padding:24px 0;font-size:var(--font-sm)}@media (max-width: 380px){.stats-distribution{flex-direction:column}.stats-legend{width:100%}}@media (max-width: 380px){.topbar,.brand{gap:4px}.brand small{display:none}.userbox{gap:4px;min-width:0}.book{max-width:112px}}.entry-attrs{display:flex;gap:16px;align-items:center;font-size:var(--font-sm);color:var(--muted)}.entry-attrs label{display:inline-flex;gap:4px;align-items:center}.cat-block{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;margin-bottom:8px}.cat-block .row{flex-wrap:wrap}.cat-block input[aria-label$=分类名称]{font-weight:600}.cat-children{margin:6px 0 0 18px;display:flex;flex-direction:column;gap:4px}.cat-child{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cat-child input{flex:1 1 96px;min-width:96px}.cat-child select{flex:0 1 130px}.sankey{margin:6px 0 14px}.sankey-svg{width:100%;height:auto;display:block}.sankey-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.icon-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px;max-height:46vh;overflow-y:auto}.icon-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);cursor:pointer;font-size:var(--font-xs);color:var(--muted)}.icon-cell.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.icon-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.asset-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.asset-badge img{display:block}.icon-pick{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);cursor:pointer;text-align:left;color:var(--ink)}.icon-pick .muted{margin-left:auto;color:var(--muted)}
