:root{--bg:#faf9f5;--surface:#fff;--surface-2:#eeece4;--text:#1c1f1d;--text-2:#565c58;--text-3:#868c88;--border:#d9d6cb;--rule:#1c1f1d;--joint:#1f5c4d;--joint-soft:#e2ece7;--personal:#a44a26;--personal-soft:#f4e6dd;--accent:var(--joint);--accent-soft:var(--joint-soft);--on-accent:#fff;--advance:#7a5200;--advance-soft:#f6ecd2;--danger:#b3261e;--radius:4px;--tabbar-h:56px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161816;--surface:#1e211f;--surface-2:#2a2e2b;--text:#ecefec;--text-2:#aeb5b0;--text-3:#7f8682;--border:#363b38;--rule:#ecefec;--joint:#7cc4ae;--joint-soft:#20352e;--personal:#e8996f;--personal-soft:#3d281d;--on-accent:#101311;--advance:#e6c06c;--advance-soft:#38300f;--danger:#f08a80}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0}input,select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:9px 10px;font-size:16px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.num{font-variant-numeric:tabular-nums}.icon{vertical-align:-.14em;flex-shrink:0;display:inline-block}.icon-letter{border-radius:var(--radius);border:1.5px solid;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.app{max-width:560px;min-height:100%;padding:calc(var(--safe-t) + 4px) 16px calc(var(--tabbar-h) + var(--safe-b) + 24px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:8px;min-height:48px;display:flex}.topbar h1{margin:0;font-size:20px;font-weight:700}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.spacer{flex:1}.muted{color:var(--text-2)}.small{font-size:13px}.center{text-align:center}.card{border-top:1px solid var(--rule);padding:10px 0 14px}.card h2{margin:0 0 8px;font-size:13px;font-weight:700}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:0 14px;font-weight:600;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.danger{color:var(--danger)}.btn.block{width:100%}.btn:disabled{opacity:.4}.icon-btn{justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:inline-flex}.icon-btn:disabled{opacity:.3}.link{color:var(--accent);text-underline-offset:2px;font-weight:600;text-decoration:underline}.segment{gap:6px;display:inline-flex}.segment button{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--text-2);padding:0 14px;font-weight:600}.segment button[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.segment.scope button[aria-pressed=true].joint{background:var(--joint);border-color:var(--joint);color:var(--on-accent)}.segment.scope button[aria-pressed=true].personal{background:var(--personal);border-color:var(--personal);color:var(--on-accent)}.tabbar{z-index:10;background:var(--bg);border-top:1px solid var(--rule);padding-bottom:var(--safe-b);position:fixed;bottom:0;left:0;right:0}.tabbar-inner{max-width:560px;height:var(--tabbar-h);grid-template-columns:1fr 1fr 84px 1fr 1fr;align-items:center;margin:0 auto;display:grid}.tab{color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;gap:1px;height:100%;font-size:11px;font-weight:500;display:flex}.tab[aria-current=page]{color:var(--joint);background:var(--joint-soft);box-shadow:inset 0 3px 0 var(--joint);font-weight:700}.fab{border-radius:var(--radius);background:var(--accent);width:68px;height:44px;color:var(--on-accent);justify-self:center;font-size:26px;line-height:1}.big-amount{font-size:32px;font-weight:700}.mid-amount{font-size:22px;font-weight:700}.totals{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;display:grid}.totals .card{text-align:left;border-top:none;flex-direction:column;justify-content:flex-start;align-items:flex-start;display:flex}.totals .card+.card{border-left:1px solid var(--border);padding-left:12px}.pill{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:2px;align-items:center;padding:0 4px;font-size:11px;font-weight:700;line-height:1.5;display:inline-flex}.pill.joint{background:var(--joint-soft);color:var(--joint)}.pill.personal{background:var(--personal-soft);color:var(--personal)}.pill.advance{background:var(--advance-soft);color:var(--advance)}.bar-row{grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:6px 0;display:grid}.bar-track{background:var(--surface-2);height:6px;margin-top:3px;overflow:hidden}.bar-fill{background:var(--accent);height:100%}.balance-row{text-align:left;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:6px 0;display:flex}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);text-align:left;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;width:100%;padding:9px 0;display:grid}.cat-ico{width:30px;color:var(--text-2);justify-content:center;display:flex}.day-head{border-bottom:1px solid var(--rule);justify-content:space-between;padding:14px 0 4px;font-size:13px;font-weight:700;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet{z-index:30;background:var(--bg);padding:calc(var(--safe-t) + 4px) 12px calc(var(--safe-b) + 8px);flex-direction:column;max-width:560px;margin:0 auto;display:flex;position:fixed;inset:0}.sheet-head{justify-content:space-between;align-items:center;min-height:48px;display:flex}.sheet-body{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.entry[data-scope=joint]{--accent:var(--joint);--accent-soft:var(--joint-soft)}.entry[data-scope=personal]{--accent:var(--personal);--accent-soft:var(--personal-soft)}.amount-display{border-bottom:2px solid var(--accent);justify-content:flex-end;align-items:baseline;gap:8px;min-height:56px;padding:0 4px 2px;display:flex}.amount-display .yen{color:var(--text-2);font-size:20px}.amount-display .value{font-size:38px;font-weight:700}.amount-display .placeholder{color:var(--text-3)}.ai-bar{flex-shrink:0;gap:4px;display:flex}.ai-bar input{flex:1;min-width:0;min-height:38px;padding:0 10px}.ai-bar .btn{flex-shrink:0;min-height:38px}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;display:grid}.icon-choice{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:44px;color:var(--text-2);justify-content:center;align-items:center;display:flex}.icon-choice[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft);color:var(--text)}.todo-list{flex-direction:column;display:flex}.todo-row{border-top:1px solid var(--border);align-items:center;gap:12px;min-height:52px;display:flex}.todo-row:first-child{border-top:none}.todo-text{flex:1;min-width:0}.todo-action{width:56px;min-height:44px;color:var(--accent);text-align:right;flex-shrink:0;padding:0;font-weight:700}.review-head strong{font-size:16px}.review-body{gap:14px;padding-bottom:12px}.review-comment{margin:0;line-height:1.7}.review-total{text-align:right;min-width:88px}.review-send{flex-shrink:0;min-height:48px}.review-link{border-top:1px solid var(--rule);border-bottom:none;font-weight:600}.check-mark{background:var(--advance-soft);width:36px;height:22px;color:var(--advance);border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.check-mark.done{background:var(--joint-soft);color:var(--joint)}.ai-meter{flex-shrink:0;align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.ai-meter .bar-track{flex:1;height:3px;margin:0}.cat-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.cat-btn{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-height:60px;color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-size:11px;font-weight:600;display:flex}.cat-btn[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft);color:var(--text)}.chips{gap:4px;display:flex}.chip{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);white-space:nowrap;align-items:center;gap:4px;min-height:36px;padding:0 10px;font-size:14px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.chip .caret{color:var(--text-3);display:inline-flex}.chip select,.chip input[type=date]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.chip input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.suggestions{scrollbar-width:none;flex-shrink:0;gap:4px;display:flex;overflow-x:auto}.suggestions::-webkit-scrollbar{display:none}.suggestions button{border-radius:var(--radius);background:var(--surface-2);white-space:nowrap;flex-shrink:0;min-height:32px;padding:0 10px;font-size:13px}.keypad{background:var(--border);border:1px solid var(--border);flex-shrink:0;grid-template-rows:repeat(4,52px);grid-template-columns:repeat(3,1fr) 1.2fr;gap:1px;display:grid}.key{background:var(--surface);font-size:24px;font-weight:600}.key:active{background:var(--surface-2)}.key.save{background:var(--accent);color:var(--on-accent);grid-area:3/4/span 2;font-size:18px}.key.save:disabled{background:var(--surface-2);color:var(--text-3)}.key.fn{color:var(--text-2);font-size:18px}.set-group{border-top:1px solid var(--rule);margin-bottom:12px}.set-row{border-bottom:1px solid var(--border);text-align:left;align-items:center;gap:12px;width:100%;min-height:48px;display:flex}.set-row>span:first-child{flex-shrink:0}.set-row.danger{color:var(--danger)}.set-value{text-align:right;min-width:0;color:var(--text-2);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.set-chevron{color:var(--text-3);font-size:18px;line-height:1}.set-note{padding:8px 0}.sub-head{justify-content:flex-start}.back{text-align:left;width:44px;height:44px;margin-right:-20px;font-size:26px;line-height:1}.grow{flex:1;min-width:0}.cat-row{grid-template-columns:30px 1fr auto auto;padding:0}.cat-row>button:not(.icon-btn){text-align:left}.toast{left:50%;bottom:calc(var(--tabbar-h) + var(--safe-b) + 12px);z-index:50;background:var(--text);color:var(--bg);border-radius:var(--radius);align-items:center;gap:16px;max-width:calc(100% - 32px);padding:10px 14px;font-size:14px;font-weight:600;display:flex;position:fixed;transform:translate(-50%)}.toast span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.toast button{color:inherit;white-space:nowrap;font-weight:700;text-decoration:underline}.banner{background:var(--surface-2);color:var(--text-2);padding:8px 10px;font-size:13px}.banner.warn{background:var(--advance-soft);color:var(--advance)}.error{color:var(--danger);font-size:14px}.field{flex-direction:column;gap:3px;display:flex}.field label{color:var(--text-2);font-size:13px;font-weight:600}.dialog-backdrop{z-index:40;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--bg);border-top:1px solid var(--rule);width:100%;max-width:560px;padding:8px 16px calc(var(--safe-b) + 16px);flex-direction:column;gap:12px;max-height:90vh;display:flex;overflow-y:auto}.dialog h3{margin:0;font-size:16px}
