:root{color-scheme:light dark;--bg: #f2f2f7;--panel: #fff;--side: #fff;--border: #e5e5ea;--text: #1c1c1e;--accent: #0a66ff;--accent-soft: #e8f0fe;--bar-track: #ececf1;--bar-fill: #0a66ff;--over: #e5484d;--neg: #e5484d;--pos: #2fa36b;--hero-bg: var(--panel);--accent-bg: #0a66ff;--on-accent: #fff;--text-2: rgba(60, 60, 67, .62);--side-border: #e5e5ea;--panel-border: transparent;--panel-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 4px 16px rgba(0, 0, 0, .03);--nav-on-bg: var(--accent-soft);--nav-on-text: var(--accent);--hero-text: var(--text);--dot-bg: #f2f2f7;--warn-bg: #fff4e0;--warn-text: #b26b00;--tabbar-bg: rgba(255, 255, 255, .86);--backdrop: rgba(0, 0, 0, .32);--radius: 14px;--font: -apple-system, "SF Pro Text", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #0f1420;--panel: #171e2d;--side: #0b0f18;--border: #222b3d;--text: #e8ecf4;--accent: #91a7ff;--accent-soft: #22305a;--bar-track: #252e42;--bar-fill: linear-gradient(90deg, #4dabf7, #7048e8);--over: #ff6b6b;--neg: #ff8787;--pos: #63e6be;--hero-bg: linear-gradient(135deg, #3b5bdb, #7048e8);--accent-bg: linear-gradient(135deg, #3b5bdb, #7048e8);--on-accent: #fff;--text-2: rgba(232, 236, 244, .58);--side-border: #1d2433;--panel-border: #222b3d;--panel-shadow: none;--nav-on-bg: linear-gradient(90deg, #2a3550, #1a2236);--nav-on-text: #fff;--hero-text: #fff;--dot-bg: #222b3d;--warn-bg: #4a3410;--warn-text: #ffc078;--tabbar-bg: rgba(11, 15, 24, .88);--backdrop: rgba(0, 0, 0, .55)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:max(16px,1rem)}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.money,.num{font-variant-numeric:tabular-nums;white-space:nowrap}.neg{color:var(--neg)}.pos{color:var(--pos)}.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh;min-height:100dvh}.main{min-width:0;padding:calc(env(safe-area-inset-top) + 24px) calc(env(safe-area-inset-right) + 28px) 32px 28px;display:flex;flex-direction:column;gap:16px}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.top-sub{font-size:13px;font-weight:500;color:var(--text-2)}.top-title{margin:2px 0 0;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.plus{flex:none;width:44px;height:44px;border:none;border-radius:50%;display:grid;place-items:center;background:var(--accent-bg);color:var(--on-accent);box-shadow:0 4px 14px #0a66ff47;transition:transform .12s ease}.plus svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.plus:active{transform:scale(.94)}@media(prefers-color-scheme:dark){.plus{box-shadow:0 4px 18px #7048e866}}.nav{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:4px;padding:calc(env(safe-area-inset-top) + 22px) 12px 22px calc(env(safe-area-inset-left) + 12px);background:var(--side);border-right:1px solid var(--side-border)}.nav-logo{display:flex;align-items:center;gap:10px;margin:0 8px 18px;font-size:17px;font-weight:700;letter-spacing:-.01em}.nav-logo-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--accent-bg);color:var(--on-accent);font-size:16px}.nav-item{display:flex;align-items:center;gap:11px;min-height:44px;min-width:44px;padding:0 12px;border:none;border-radius:10px;background:transparent;text-align:left;font-size:15px;font-weight:500;color:var(--text);transition:background-color .12s ease}.nav-item:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.nav-item[aria-current=page]{background:var(--nav-on-bg);color:var(--nav-on-text);font-weight:600}.nav-icon{flex:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.nav-item[aria-current=page] .nav-icon{opacity:1}@media(max-width:899.98px){.app{grid-template-columns:minmax(0,1fr)}.main{padding:calc(env(safe-area-inset-top) + 18px) calc(env(safe-area-inset-right) + 20px) calc(env(safe-area-inset-bottom) + 84px) calc(env(safe-area-inset-left) + 20px)}.nav{position:fixed;inset:auto 0 0 0;z-index:10;height:auto;flex-direction:row;justify-content:space-around;gap:0;padding:6px calc(env(safe-area-inset-right) + 8px) calc(env(safe-area-inset-bottom) + 6px) calc(env(safe-area-inset-left) + 8px);background:var(--tabbar-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-right:none;border-top:1px solid var(--side-border)}.nav-logo{display:none}.nav-item{flex:1;max-width:140px;flex-direction:column;justify-content:center;gap:3px;min-height:52px;padding:4px 0;font-size:11px;text-align:center;color:var(--text-2)}.nav-item:hover{background:transparent}.nav-item[aria-current=page]{background:transparent;color:var(--accent)}.nav-icon{width:25px;height:25px}}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);padding:16px 18px}.panel h4{margin:0 0 10px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.panel.hero{background:var(--hero-bg);color:var(--hero-text)}@media(prefers-color-scheme:dark){.panel.hero{border-color:transparent}.panel.hero h4{color:#ffffffc7}.panel.hero .neg,.panel.hero .pos{color:inherit}}.panel.empty p{margin:0;color:var(--text-2)}.big{font-size:30px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:6px 0}.dot{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--dot-bg);font-size:15px}.tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;vertical-align:1px}.tag.auto{background:var(--accent-soft);color:var(--accent)}.tag.conf{background:var(--warn-bg);color:var(--warn-text)}.bar{height:8px;border-radius:4px;overflow:hidden;background:var(--bar-track)}.bar>i{display:block;height:100%;border-radius:4px;background:var(--bar-fill);transition:width .3s ease}.bar>i.over{background:var(--over)}.btn{min-height:44px;min-width:44px;padding:0 18px;border:none;border-radius:12px;background:var(--accent-bg);color:var(--on-accent);font-weight:600}.btn-small{min-height:44px;padding:0 14px;border-radius:10px;font-size:14px;white-space:nowrap}.icon-btn{flex:none;width:44px;height:44px;border:none;border-radius:50%;background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text-2);font-size:15px}.banners{display:flex;flex-direction:column;gap:10px}.banner{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;min-height:52px;border-radius:12px;background:var(--warn-bg);color:var(--warn-text);font-size:14px;font-weight:500}.banner-icon{flex:none;font-size:18px}.banner-text{flex:1}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:var(--backdrop);animation:fade-in .18s ease}.sheet{width:100%;max-height:92dvh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0000002e;padding-bottom:env(safe-area-inset-bottom);animation:slide-up .24s cubic-bezier(.2,.8,.2,1)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 6px 22px}.sheet-head h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.01em}.sheet-body{overflow-y:auto;padding:8px 22px 22px}@media(orientation:landscape){.sheet-backdrop{align-items:center;padding:24px}.sheet{max-width:560px;max-height:86dvh;border-radius:20px;padding-bottom:0;box-shadow:0 20px 60px #00000040;animation:pop-in .2s cubic-bezier(.2,.8,.2,1)}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.list-panel{padding:4px 6px}.trow{width:100%;min-height:60px;display:flex;align-items:center;gap:14px;padding:8px 12px;border:none;border-radius:10px;background:transparent;text-align:left;color:var(--text);transition:background-color .12s ease}.trow:hover,.trow:active{background:color-mix(in srgb,var(--text) 5%,transparent)}.list-panel>.trow+.trow,.list-panel>div+div,.list-panel>.trow+div,.list-panel>div+.trow{box-shadow:0 -1px 0 var(--border)}.trow-indent{min-height:52px;padding-left:48px}.trow-main{flex:1;min-width:0;display:flex;flex-direction:column}.trow-title{font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow-sub{font-size:13px;color:var(--text-2)}.trow-add .trow-title{color:var(--accent)}.chev{flex:none;font-size:22px;line-height:1;color:var(--text-2)}.fold{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border:none;background:transparent;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.empty-text{margin:0;padding:14px 12px;color:var(--text-2)}.badge{--c: #7d8593;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--c) 22%,var(--panel));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 55%,transparent);line-height:1}.badge-md{width:40px;height:40px;font-size:20px}.badge-lg{width:64px;height:64px;border-radius:18px;font-size:32px}.badge-plain{background:var(--dot-bg);box-shadow:none}.badge-add{background:transparent;box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent);font-size:22px;font-weight:500}.subhead{display:flex;align-items:center;gap:12px}.subhead h2{margin:0;font-size:20px;font-weight:700}.back{min-height:44px;min-width:44px;display:inline-flex;align-items:center;gap:4px;padding:0 12px 0 6px;border:none;border-radius:10px;background:transparent;color:var(--accent);font-size:16px;font-weight:500}.back span{font-size:26px;line-height:1}.about-name{font-size:20px;font-weight:700}.hint{margin:10px 0 0;font-size:14px;color:var(--text-2)}.note{padding:12px 14px;border-radius:12px;background:var(--warn-bg);color:var(--warn-text);font-size:14px;font-weight:500}.form{display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field>span:first-child,.picker-custom>span{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-2)}.form input[type=text],.form select,.amount-box{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--text) 4%,var(--panel))}.form input[type=text]:focus,.form select:focus{outline:2px solid var(--accent);outline-offset:0}.amount-box{display:flex;align-items:center;gap:8px;padding:0 14px 0 0}.amount-box:focus-within{outline:2px solid var(--accent)}.amount-box input{flex:1;min-width:0;min-height:46px;padding:0 0 0 14px;border:none;background:transparent;font-size:17px;font-variant-numeric:tabular-nums;outline:none}.amount-unit{color:var(--text-2)}.amount-box.invalid{border-color:var(--neg);box-shadow:0 0 0 1px var(--neg)}.field-error{margin-top:4px;font-size:13px;font-weight:500;color:var(--neg)}.switch-row{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:500}.switch-row input[role=switch]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;position:relative;width:51px;height:31px;margin:0;border-radius:16px;background:color-mix(in srgb,var(--text) 18%,transparent);transition:background-color .18s ease}.switch-row input[role=switch]:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .18s ease}.switch-row input[role=switch]:checked{background:var(--pos)}.switch-row input[role=switch]:checked:after{transform:translate(20px)}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.form-actions .btn:first-child{flex:1;min-width:140px}.btn-ghost{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.btn-danger{color:var(--neg)}.btn-danger-solid{background:var(--over)}.seg{display:flex;padding:3px;border-radius:12px;background:color-mix(in srgb,var(--text) 8%,transparent)}.seg button{flex:1;min-height:44px;padding:0 12px;border:none;border-radius:10px;background:transparent;font-size:14px;font-weight:600;color:var(--text-2)}.seg button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 4px #00000024}.seg-wrap{flex-wrap:wrap}.seg-wrap button{min-width:calc(50% - 3px)}.picker{display:flex;flex-direction:column;gap:14px}.picker-preview{display:flex;align-items:flex-end;gap:16px}.picker-custom{flex:1;display:flex;flex-direction:column;gap:6px}.picker-group{margin:0;padding:0;border:none;min-width:0}.picker-group legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text-2)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.picker-icon{min-width:44px;min-height:48px;border:none;border-radius:12px;background:color-mix(in srgb,var(--text) 5%,transparent);font-size:24px;line-height:1}.picker-icon[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.picker-color{min-width:44px;min-height:44px;border:none;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--text) 12%,transparent)}.picker-color[aria-pressed=true]{box-shadow:0 0 0 3px var(--panel),0 0 0 5px var(--c)}.filters{display:flex;flex-direction:column;gap:12px}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.filters select,.filters input[type=search],.form input[type=date]{width:100%;min-width:0;min-height:48px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--text) 4%,var(--panel));-moz-appearance:none;appearance:none;-webkit-appearance:none}.filters select,.form select{padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238e8e93' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;-moz-appearance:none;appearance:none;-webkit-appearance:none;text-overflow:ellipsis}.form input[type=date]{display:block;text-align:left}.filters input[type=search]:focus,.filters select:focus,.form input[type=date]:focus{outline:2px solid var(--accent);outline-offset:0}.filter-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px}.list-summary{font-size:13px;color:var(--text-2)}.list-summary .money{font-weight:600}.link-btn{min-height:44px;padding:0 4px;border:none;background:transparent;color:var(--accent);font-size:14px;font-weight:600}.day{display:flex;flex-direction:column;gap:6px}.day-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 6px 0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.day-head .money{font-size:13px;letter-spacing:0}.day-head .money:not(.neg):not(.pos){color:var(--text-2)}.trow-side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:1px;max-width:40%}.trow-side .money{font-size:16px;font-weight:600}.trow-acct{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-2)}.transfer-amount{color:var(--text)}.transfer-sub{color:var(--text-2)}.trow-planned>.badge,.trow-planned .trow-title,.trow-planned .trow-side{opacity:.6}.tag.plan{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.amount-hero .amount-box{min-height:64px;border-radius:16px}.amount-hero .amount-box input{min-height:62px;font-size:30px;font-weight:700;letter-spacing:-.02em}.amount-hero .amount-unit{font-size:24px;font-weight:600}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.btn-inline{align-self:flex-start;margin-top:4px;min-height:44px;padding:0 14px;font-size:14px}.split{display:flex;flex-direction:column;gap:10px}.split-line{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--text) 3%,var(--panel))}.split-top{display:flex;align-items:center;gap:8px}.split-top select{flex:1;min-width:0}.split-no{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.split-line input[type=text]{min-height:44px}.split-actions{display:flex;gap:10px;flex-wrap:wrap}.remaining{padding:10px 14px;border-radius:12px;background:var(--warn-bg);color:var(--warn-text);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.remaining.ok{background:color-mix(in srgb,var(--pos) 16%,transparent);color:var(--pos)}.remaining.over{background:color-mix(in srgb,var(--neg) 16%,transparent);color:var(--neg)}.form-hint{font-size:13px;font-weight:500;color:var(--text-2)}.btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:700px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid .search{grid-column:1 / -1}}.day-head .day-name{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text)}.month-nav{display:flex;align-items:center;gap:8px}.month-title{min-width:9ch;margin:0;padding:0 6px;text-align:center;font-size:20px;font-weight:700;letter-spacing:-.01em}.month-nav .icon-btn{font-size:22px;line-height:1}.month-nav .link-btn{margin-left:6px}.budget-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 16px;align-items:end}.stat{display:flex;flex-direction:column;gap:2px;min-width:0}.stat .money{font-size:20px;font-weight:700;letter-spacing:-.01em}.stat .money.big{font-size:28px}.stat-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.stat-bar{grid-column:1 / -1;margin-top:10px}.stat-main{text-align:right;align-items:flex-end}.bline-main{gap:6px}.bline-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.bline-amount{flex:none;font-size:15px;font-weight:600}.bline .carry{font-size:12px;color:var(--pos)}.bline .carry.neg{color:var(--neg)}.bline .bar{height:7px}.budget-empty{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:22px}.budget-cat{display:flex;align-items:center;gap:12px}.planned-section{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.section-head{display:flex;align-items:center;gap:10px;margin:8px 6px 0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.section-head .tag{letter-spacing:0;text-transform:none}.trow-sub .tag{margin-left:4px}.trow-static:hover,.trow-static:active{background:transparent}.confirm-item{padding-bottom:10px}.confirm-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 0 66px}.confirm-item .field-error{padding:0 12px}.tag.adj{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text-2)}.trow-acct .tag{margin-left:4px}.row-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 10px 66px}.occurrence-choice{flex-direction:column;align-items:stretch}.nav-badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-grid;place-items:center;background:var(--warn-text);color:var(--panel);font-size:12px;font-weight:700;line-height:1;margin-left:auto}.auto-field .form-hint{margin-top:-2px}@media(max-width:899.98px){.nav-item{position:relative}.nav-badge{position:absolute;top:2px;left:calc(50% + 6px);margin-left:0;box-shadow:0 0 0 2px var(--side)}}@media(max-width:520px){.confirm-actions,.row-actions{padding-left:12px}}.adjust-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.adjust-row .money,.adjust-amount .money{font-size:20px;font-weight:700}.adjust-preview{font-size:16px;font-weight:700;color:var(--text)}.update-notice{position:fixed;left:16px;right:16px;top:calc(12px + env(safe-area-inset-top));z-index:200;max-width:480px;margin:0 auto;box-shadow:0 4px 24px #00000040;border-radius:12px}
