:root{--paper:#fbf8f5;--ink:#282522;--muted:#8d8780;--rose:#df8f8f;--rose-light:#f7dfdc;--sage:#829987;--sage-light:#e3ebe4;--gold:#d9af65;--line:#ebe4de;--white:#fff;--shadow:0 12px 35px rgba(67,48,39,.08)}
*{box-sizing:border-box}body{margin:0;background:#e9e4df;color:var(--ink);font-family:'DM Sans','Noto Sans JP',sans-serif}.app-shell{width:100%;max-width:520px;min-height:100vh;margin:auto;background:var(--paper);position:relative;box-shadow:0 0 50px #0001}.topbar{height:78px;padding:16px 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fbf8f5e8;backdrop-filter:blur(16px);z-index:20}.brand{border:0;background:transparent;display:flex;align-items:center;gap:9px;font:700 18px 'DM Sans';letter-spacing:.5px;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:white;font:italic 700 20px serif}.top-actions{display:flex;gap:10px}.icon-btn,.avatar{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:white}.avatar{background:var(--rose-light);color:#885e5e;font-weight:700}.view{display:none;padding:16px 20px 130px}.view.active{display:block;animation:fade .28s ease}@keyframes fade{from{opacity:0;transform:translateY(5px)}}.hero-row{display:flex;justify-content:space-between;align-items:end;margin:5px 0 24px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--rose);margin:0 0 7px}.hero-row h1,.page-intro h1{font:500 31px/1.4 'Noto Sans JP';letter-spacing:-1.5px;margin:0}.hero-row h1 em{font-family:serif;font-weight:400;color:#76655a}.streak{width:65px;height:78px;border:1px solid var(--line);border-radius:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:white}.streak span{color:var(--gold)}.streak strong{font-size:20px}.streak small{font-size:9px;color:var(--muted)}.balance-card,.chart-card,.breakdown-card,.event-summary,.settings-card,.calendar-card{background:white;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}.balance-card{background:linear-gradient(145deg,#35413d,#232a28);color:white;border:0}.card-head{display:flex;align-items:center;justify-content:space-between}.card-head>span{font-size:13px;color:#ffffffaa}.pill{border:1px solid #ffffff30;border-radius:20px;padding:7px 12px;background:#ffffff12;color:white}.big-money{font:600 38px 'DM Sans';margin:22px 0 18px;letter-spacing:-1px}.budget-track{height:6px;background:#ffffff22;border-radius:10px;overflow:hidden}.budget-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose),#f1c59e);border-radius:10px;transition:.5s}.balance-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:10px;color:#ffffff99}.balance-meta b{color:white}.section-title{display:flex;align-items:end;justify-content:space-between;margin:28px 2px 14px}.section-title h2{font-size:18px;margin:0}.text-btn{border:0;background:none;color:var(--rose);font-weight:600}.week-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-day{border:0;background:transparent;border-radius:22px;padding:9px 3px;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted)}.week-day b{font-size:15px;color:var(--ink)}.week-day small{font-size:9px}.week-day.selected{background:var(--rose);color:white}.week-day.selected b{color:white}.day-mark{width:4px;height:4px;border-radius:50%;background:var(--rose)}.selected .day-mark{background:white}.circle-add{border:0;background:var(--rose-light);color:#9b6666;width:34px;height:34px;border-radius:50%;font-size:20px}.transaction-list{display:flex;flex-direction:column;gap:8px}.transaction{background:white;border:1px solid var(--line);border-radius:17px;padding:12px 14px;display:flex;align-items:center;gap:12px}.tx-icon{width:40px;height:40px;border-radius:13px;background:var(--sage-light);display:grid;place-items:center}.transaction .tx-info{flex:1}.transaction b{display:block;font-size:13px}.transaction small{font-size:10px;color:var(--muted)}.transaction strong{font-size:14px}.transaction.income strong{color:var(--sage)}.empty{padding:22px;text-align:center;color:var(--muted);font-size:12px;background:#fff;border:1px dashed var(--line);border-radius:17px}.no-spend{width:100%;border:1px dashed #d5c8bd;background:transparent;border-radius:18px;margin-top:12px;padding:12px;display:flex;align-items:center;gap:12px;color:var(--ink);text-align:left}.no-spend span:nth-child(2){flex:1}.no-spend b,.no-spend small{display:block}.no-spend small{color:var(--muted);font-size:10px}.stamp-face{font-size:24px;color:var(--gold)}.page-intro{padding:10px 3px 25px}.page-intro p:last-child{color:var(--muted);font-size:13px;line-height:1.8}.month-nav{display:flex;justify-content:space-between;align-items:center}.month-nav h2{font:500 21px 'Noto Sans JP'}.month-nav button{border:0;background:var(--paper);width:34px;height:34px;border-radius:50%;font-size:24px}.weekday,.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekday span{text-align:center;font-size:9px;color:var(--muted);padding:10px 0}.sat{color:#7893ab!important}.sun{color:var(--rose)!important}.month-grid{gap:3px}.month-day{height:62px;border:0;border-radius:11px;background:transparent;position:relative;padding:7px 3px;text-align:center;font:500 11px 'DM Sans'}.month-day.muted{opacity:.25}.month-day.today{outline:1.5px solid var(--rose)}.month-day.selected{background:var(--rose-light)}.month-day .amount{display:block;margin-top:6px;font-size:8px;color:var(--rose);white-space:nowrap}.month-day .stamp-mini{font-size:17px;display:block;margin-top:2px;color:var(--gold)}.month-day .event-mini{position:absolute;right:5px;top:5px;color:var(--sage);font-size:7px}.calendar-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:9px;color:var(--muted)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.dot.expense{background:var(--rose)}.dot.income{background:var(--sage)}.dot.stamp{background:var(--gold)}.dot.event{background:#9b7fb1}.selected-day{margin-top:15px}.day-panel-head{display:flex;justify-content:space-between;align-items:center;margin:25px 3px 10px}.day-panel-head h3{margin:0}.day-panel-head button{border:0;background:var(--ink);color:white;border-radius:20px;padding:8px 13px}.period-tabs{display:flex;background:#eee8e2;border-radius:14px;padding:4px;margin-bottom:15px}.period-tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:11px;color:var(--muted)}.period-tabs button.active{background:white;color:var(--ink);box-shadow:0 3px 10px #0001}.rate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rate-grid article{background:white;border:1px solid var(--line);border-radius:19px;padding:18px}.rate-grid span,.rate-grid small{display:block;color:var(--muted);font-size:11px}.rate-grid strong{font-size:29px;display:block;margin:8px 0}.rate-grid article:first-child strong{color:var(--sage)}.rate-grid article:last-child strong{color:var(--rose)}.chart-card{margin-top:12px}.chart-card h2{margin:5px 0;font-size:24px}.trend{background:var(--sage-light);color:var(--sage)!important;padding:5px 8px;border-radius:9px}.chart{height:150px;margin-top:16px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 36px,var(--line) 37px)}.chart svg{width:100%;height:100%;overflow:visible}.chart-labels{display:flex;justify-content:space-between;font-size:8px;color:var(--muted)}.compact{margin:0 0 18px}.breakdown-card{margin-top:12px}.donut-row{display:flex;gap:24px;align-items:center}.donut{width:115px;height:115px;border-radius:50%;display:grid;place-items:center;position:relative}.donut:after{content:'';position:absolute;width:70px;height:70px;border-radius:50%;background:white}.donut span{z-index:1;font-weight:700}.category-legend{flex:1;display:flex;flex-direction:column;gap:8px}.legend-row{display:flex;align-items:center;font-size:10px}.legend-row i{width:8px;height:8px;border-radius:50%;margin-right:7px}.legend-row b{margin-left:auto}.event-summary{background:linear-gradient(135deg,#f5e3df,#f8eee8)}.event-summary span,.event-summary small{display:block;color:var(--muted);font-size:11px}.event-summary strong{display:block;font-size:29px;margin:8px 0 15px}.event-summary .budget-track{background:#fff}.event-summary .budget-track i{background:var(--rose)}.event-summary small{margin-top:9px}.timeline{margin:25px 0}.event-item{display:grid;grid-template-columns:45px 1fr auto;gap:12px;padding:16px 5px;border-bottom:1px solid var(--line);align-items:center}.event-date{text-align:center;color:var(--rose)}.event-date strong,.event-date small{display:block}.event-date strong{font-size:21px}.event-info b,.event-info small{display:block}.event-info small{color:var(--muted);font-size:10px}.event-item>strong{font-size:13px}.primary{border:0;background:var(--ink);color:white;padding:15px 22px;border-radius:14px;font-weight:700}.wide{width:100%}.settings-card{margin-bottom:12px;padding:18px}.setting-title{display:flex;align-items:center;gap:12px}.setting-title>div{flex:1}.setting-title h2{font-size:15px;margin:0}.setting-title p{font-size:10px;color:var(--muted);margin:4px 0}.setting-title button{border:0;background:var(--rose-light);color:#955f5f;border-radius:11px;padding:8px;font-size:9px}.setting-icon{width:38px;height:38px;border-radius:12px;background:var(--sage-light);display:grid;place-items:center}.fixed-row{display:flex;padding:12px 3px;border-bottom:1px solid var(--line);font-size:12px}.fixed-row span{flex:1}.fixed-row button,.chip button{border:0;background:transparent;color:#b7aaa0}.add-row{border:0;background:transparent;color:var(--rose);padding:14px 0 0;font-size:11px}.category-chips,.stamp-picker{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.chip{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:7px 9px;font-size:10px}.stamp-option{border:1px solid var(--line);background:white;border-radius:13px;font-size:21px;padding:8px 11px}.stamp-option.active{background:var(--rose-light);border-color:var(--rose)}.danger-link{width:100%;border:0;background:transparent;color:#ad7777;padding:20px}.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;height:78px;background:#fffdfaee;backdrop-filter:blur(16px);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 74px 1fr 1fr;padding-bottom:max(5px,env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:none;color:#aaa19a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottom-nav button span{font-size:20px}.bottom-nav button small{font-size:9px}.bottom-nav button.active{color:var(--rose)}.fab{position:fixed;z-index:35;bottom:42px;left:50%;transform:translateX(-50%);width:66px;height:66px;border-radius:50%;border:5px solid var(--paper);background:var(--ink);color:white;box-shadow:0 8px 18px #0003}.fab span,.fab small{display:block}.fab span{font-size:21px}.fab small{font-size:8px}dialog{width:calc(100% - 28px);max-width:470px;border:0;border-radius:28px;padding:0;background:var(--paper);box-shadow:0 20px 80px #0005}dialog::backdrop{background:#29231e77;backdrop-filter:blur(4px)}dialog form{padding:22px;display:flex;flex-direction:column;gap:14px}.dialog-head{display:flex;align-items:center;justify-content:space-between;text-align:center}.dialog-head h2{margin:2px}.close-btn{border:0;background:white;border-radius:50%;width:36px;height:36px;font-size:21px}.type-switch{display:flex;background:#eee8e2;padding:4px;border-radius:13px}.type-switch button{flex:1;border:0;background:transparent;padding:10px;border-radius:10px}.type-switch button.active{background:white;color:var(--rose);box-shadow:0 2px 8px #0001}label{font-size:11px;color:var(--muted);font-weight:600}input,select{display:block;width:100%;border:1px solid var(--line);background:white;border-radius:12px;padding:13px;margin-top:6px;font:500 14px inherit;color:var(--ink)}.amount-input{position:relative}.amount-input span{position:absolute;left:14px;top:18px;font-size:22px;color:var(--ink)}.amount-input input{padding-left:36px;font-size:24px}.toast{position:fixed;left:50%;bottom:105px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:11px 18px;border-radius:24px;font-size:11px;z-index:80;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.privacy .money{filter:blur(7px);user-select:none}
@media(min-width:700px){.app-shell{margin:18px auto;min-height:calc(100vh - 36px);border-radius:28px;overflow:hidden}.bottom-nav{bottom:18px;border-radius:0 0 28px 28px}.topbar{position:relative}.fab{bottom:58px}}
.cashflow-card,.asset-entry-card{background:white;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow);margin-top:12px}.compare-card h2{font-size:15px!important}.bar-compare{height:150px;display:flex;align-items:end;justify-content:space-around;gap:16px;padding:15px 10px 0;border-bottom:1px solid var(--line)}.compare-bar{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:7px}.compare-bar i{display:block;width:34px;min-height:4px;background:var(--rose);border-radius:8px 8px 2px 2px;transition:.4s}.compare-bar:nth-child(2) i{background:var(--sage)}.compare-bar:nth-child(3) i{background:var(--gold)}.compare-bar b{font-size:10px}.compare-bar small{font-size:9px;color:var(--muted)}.cashflow-table{overflow:auto;max-height:290px}.flow-row{display:grid;grid-template-columns:55px 1fr 1fr 1fr;gap:7px;padding:10px 2px;border-bottom:1px solid var(--line);font-size:10px;text-align:right}.flow-row.header{position:sticky;top:0;background:white;color:var(--muted);font-size:9px}.flow-row span:first-child{text-align:left}.flow-row .plus{color:var(--sage)}.flow-row .minus{color:var(--rose)}.asset-list{display:flex;flex-direction:column}.asset-row{display:grid;grid-template-columns:60px 1fr 1fr;gap:8px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:10px}.asset-row span:not(:first-child){text-align:right}.asset-row.header{color:var(--muted);font-size:9px}.asset-empty{color:var(--muted);font-size:11px;padding:14px 0;text-align:center}.budget-mode{display:flex;background:var(--paper);padding:4px;border-radius:12px;margin-top:15px}.budget-mode button{flex:1;border:0;background:transparent;padding:9px;border-radius:9px;color:var(--muted)}.budget-mode button.active{background:white;color:var(--rose);box-shadow:0 2px 7px #0001}.budget-input-row{display:grid;grid-template-columns:1fr 120px;gap:10px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--line);font-size:11px}.budget-input-row input{margin:0;padding:8px;text-align:right}.budget-save{width:100%;margin-top:12px;border:0;background:var(--sage-light);color:#55715d;border-radius:11px;padding:10px;font-weight:600}.dialog-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.secondary{border:1px solid var(--line);background:white;color:var(--ink);padding:15px;border-radius:14px;font-weight:600}.day-sheet{padding:22px}.day-sheet .transaction{margin-top:8px}.day-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.day-choice button{padding:14px;border-radius:14px;font-weight:700}.day-choice .stamp-action{border:1px solid #ddc8aa;background:#fff8eb;color:#9b773d}.day-choice .record-action{border:0;background:var(--ink);color:white}.day-summary{display:flex;justify-content:space-around;background:white;border:1px solid var(--line);border-radius:16px;padding:14px;margin:14px 0}.day-summary span{text-align:center;font-size:10px;color:var(--muted)}.day-summary b{display:block;color:var(--ink);font-size:14px;margin-top:4px}
.simple-hero{align-items:center}.simple-hero h1{font-size:28px}.hero-note{font-size:11px;color:var(--muted);margin:6px 0 0}.home-budget-list{background:white;border:1px solid var(--line);border-radius:18px;margin-top:10px;padding:8px 15px}.home-budget-row{display:grid;grid-template-columns:58px 1fr 88px;align-items:center;gap:9px;padding:7px 0;font-size:9px}.home-budget-row>div{height:5px;background:var(--paper);border-radius:4px;overflow:hidden}.home-budget-row i{display:block;height:100%;background:var(--sage);border-radius:4px}.home-budget-row b{text-align:right;font-size:9px}.year-select{display:flex;justify-content:center;align-items:center;gap:25px;margin:-5px 0 14px}.year-select button{border:0;background:white;width:34px;height:34px;border-radius:50%;font-size:22px}.year-select strong{font-size:18px}.annual-table-wrap{overflow-x:auto;padding-bottom:8px}.annual-table{min-width:920px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.annual-row{display:grid;grid-template-columns:68px repeat(12,62px) 88px;font-size:9px}.annual-row>*{padding:9px 5px;text-align:right;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.annual-row>*:first-child{text-align:left;position:sticky;left:0;background:white;z-index:1}.annual-head{color:var(--muted);background:var(--paper)}.annual-head>*:first-child{background:var(--paper)}.annual-row.income{color:#55715d;background:#f5faf6}.annual-row.fixed{color:#856f53;background:#fcf8ef}.annual-row.variable{color:#9a6666;background:#fdf5f4}.annual-row.balance{font-weight:700}.average-table{border-top:1px solid var(--line)}.average-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:5px;padding:10px 2px;border-bottom:1px solid var(--line);font-size:9px;text-align:right}.average-row span:first-child{text-align:left}.average-row.header{color:var(--muted)}.average-row em{font-style:normal;color:var(--rose);font-weight:700}.asset-account-head{display:grid;grid-template-columns:1fr 55px 85px;padding:8px 2px;color:var(--muted);font-size:9px;text-align:right}.asset-account-head span:first-child{text-align:left}.asset-account-row{display:grid;grid-template-columns:30px 1fr 48px 85px;gap:8px;align-items:center;padding:11px 2px;border-top:1px solid var(--line);font-size:9px}.asset-account-row i{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-style:normal}.asset-account-row i.bank{background:var(--sage-light);color:#55715d}.asset-account-row i.broker{background:var(--rose-light);color:#955f5f}.asset-account-row span b,.asset-account-row span small{display:block}.asset-account-row span small{color:var(--muted)}.asset-account-row>small,.asset-account-row>strong{text-align:right}.asset-grand-total{display:flex;justify-content:space-between;padding:15px 2px 0}.asset-grand-total strong{font-size:18px}.special-table-head,.special-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:6px;align-items:center}.special-table-head{padding:10px 5px;color:var(--muted);font-size:8px;text-align:right}.special-table-head span:first-child{text-align:left}.special-table{margin-top:0;background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.special-row{padding:13px 10px;border-bottom:1px solid var(--line);font-size:9px;text-align:right}.special-row:last-child{border-bottom:0}.special-row>span{text-align:left}.special-row span i,.special-row span b{display:block}.special-row span i{font-style:normal;color:var(--rose);font-size:8px;margin-bottom:3px}.special-row .over{color:#c25b5b}.dialog-actions{grid-template-columns:1.4fr 1fr}
.budget-breakdown-title{display:flex;justify-content:space-between;align-items:center;padding:7px 0 5px;border-bottom:1px solid var(--line)}.budget-breakdown-title b{font-size:11px}.budget-breakdown-title small{font-size:9px;color:var(--muted)}.fixed-row{gap:8px;align-items:center}.fixed-list-form{margin-top:14px;display:flex;flex-direction:column}.fixed-input-row{display:grid;grid-template-columns:minmax(72px,1fr) 128px auto auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.fixed-input-row label{margin:0;color:var(--ink);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-amount-wrap{position:relative}.fixed-amount-wrap:before{content:'¥';position:absolute;left:11px;top:50%;transform:translateY(-50%);z-index:1;color:var(--muted);font-size:12px}.fixed-amount-input{margin:0;padding:10px 9px 10px 25px;text-align:right;border-radius:10px;font-size:14px}.fixed-input-row .edit-mini{border:0;color:var(--rose);font-size:9px;background:var(--rose-light);border-radius:8px;padding:7px}.fixed-delete{border:0;background:transparent;color:#b7aaa0;font-size:17px;padding:5px}.fixed-total-row{display:flex;justify-content:space-between;align-items:center;padding:15px 2px 8px;font-size:11px}.fixed-total-row strong{font-size:17px;color:var(--ink)}#saveFixedAmounts{margin-top:6px}@media(max-width:390px){.fixed-input-row{grid-template-columns:minmax(64px,1fr) 112px auto auto;gap:5px}.fixed-amount-input{padding-left:22px}.fixed-input-row .edit-mini{padding:7px 5px}}.fixed-row .edit-mini,.chip .edit-mini{color:var(--rose);font-size:9px;background:var(--rose-light);border-radius:8px;padding:4px 7px}.fixed-row>button:last-child,.chip>button:last-child{font-size:16px;padding:3px 5px}.category-chips{display:flex;flex-direction:column;align-items:stretch}.chip{display:flex;align-items:center;border-radius:12px;padding:9px 10px}.chip>span{flex:1}.chip button{margin-left:5px}
.settings-gear{font-size:20px;line-height:1}.transaction{width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer}.transaction:active,.home-budget-row:active,.asset-account-row:active{transform:scale(.99)}.detail-sheet{padding:22px}.detail-summary{display:flex;justify-content:space-between;align-items:center;background:white;border:1px solid var(--line);border-radius:16px;padding:16px;margin:16px 0}.detail-summary span{font-size:11px;color:var(--muted)}.detail-summary strong{font-size:17px}.detail-row{display:flex;justify-content:space-between;gap:18px;padding:13px 3px;border-bottom:1px solid var(--line);font-size:12px}.detail-row span{color:var(--muted)}.detail-row b{text-align:right}.danger-button{width:100%;border:1px solid #e7c7c7;background:#fff5f5;color:#aa5555;border-radius:14px;padding:14px;margin-top:20px;font-weight:700}.history-head,.history-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);font-size:12px}.history-head{color:var(--muted);font-size:10px}.history-row strong,.history-head span:last-child{text-align:right}.home-budget-row{grid-template-columns:70px 1fr 100px;width:100%;padding:10px 0;border:0;border-bottom:1px solid #eee8e2;background:transparent;text-align:left;font:inherit;color:var(--ink);font-size:11px;cursor:pointer}.home-budget-row:last-child{border-bottom:0}.home-budget-row>div{height:6px}.home-budget-row b{font-size:11px}.budget-breakdown-title b{font-size:13px}.asset-account-row{width:100%;border-left:0;border-right:0;border-bottom:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}

/* Calm, encouraging refresh for everyday money care */
:root{--paper:#fbf7f4;--ink:#302927;--muted:#8f817c;--rose:#c9787d;--rose-light:#f8e4e3;--sage:#718d7a;--sage-light:#e6eee7;--gold:#c99d58;--line:#eadfda;--shadow:0 14px 40px rgba(92,64,57,.08)}
body{background:linear-gradient(145deg,#eee6e2,#e7ece8);letter-spacing:.01em}.app-shell{background:linear-gradient(180deg,#fffaf7 0,#fbf7f4 44%,#f8f4f1 100%)}.topbar{background:#fffaf7e8}.balance-card{background:linear-gradient(145deg,#43574d,#293b34);box-shadow:0 18px 38px rgba(47,67,58,.22)}.settings-card,.home-budget-list,.transaction{box-shadow:0 8px 25px rgba(95,69,60,.055)}.settings-gear{background:linear-gradient(145deg,#fff,#f7dfdc);border-color:#ead4d0;color:#9b6367}.streak{background:linear-gradient(180deg,#fff,#fff8ef)}.budget-settings-card{background:linear-gradient(180deg,#fff,#fffaf8);border-color:#e8d8d2}.budget-settings-card .setting-icon{background:linear-gradient(145deg,#f7dedc,#fbefea);color:#a96569;font-size:18px}.budget-mode{background:#f4ece8;padding:5px}.budget-mode button{font-weight:700;transition:.2s}.budget-mode button.active{color:#a85f65;box-shadow:0 5px 14px rgba(125,76,73,.12)}
.weekly-editor-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:10px;margin:18px 0 4px}.weekly-editor-head strong{text-align:center;font-size:15px}.weekly-editor-head button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:white;color:var(--rose);font-size:25px}.weekly-guide{margin:8px 0 16px;text-align:center;color:var(--muted);font-size:10px;line-height:1.7}.weekly-budget-grid{display:flex;flex-direction:column;gap:9px}.weekly-budget-item{display:grid;grid-template-columns:1fr 132px;align-items:center;gap:12px;padding:12px 13px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 16px rgba(93,68,61,.04)}.weekly-budget-item>span:first-child b,.weekly-budget-item>span:first-child small{display:block}.weekly-budget-item b{color:var(--ink);font-size:12px}.weekly-budget-item small{margin-top:3px;color:var(--muted);font-size:9px}.weekly-yen{display:flex;align-items:center;gap:5px;color:var(--rose);font-size:14px;font-weight:700}.weekly-yen input{margin:0;padding:9px 10px;text-align:right;border-color:#eadbd6;background:#fffaf8}.weekly-total{display:flex;justify-content:space-between;align-items:center;margin:14px 2px 2px;padding:12px 14px;border-radius:14px;background:var(--sage-light);color:#536d5b}.weekly-total span{font-size:10px}.weekly-total strong{font-size:15px}.budget-save{background:linear-gradient(135deg,#718d7a,#829b89);color:white;padding:13px;box-shadow:0 8px 18px rgba(83,109,91,.18)}
.weekly-home-card{padding:14px 1px 5px}.weekly-home-card>div:first-child{display:flex;justify-content:space-between;align-items:end}.weekly-home-card>div:first-child>span{font-size:11px;color:var(--muted)}.weekly-home-card strong{font-size:18px;color:#506b59}.weekly-home-card strong small{font-size:9px;font-weight:500;color:var(--muted)}.weekly-progress{height:8px;margin:13px 0 8px;background:#efe9e4;border-radius:20px;overflow:hidden}.weekly-progress i{display:block;height:100%;background:linear-gradient(90deg,#c9787d,#e8ae96);border-radius:20px}.weekly-home-card p{margin:0;text-align:right;color:var(--muted);font-size:9px}
@media (max-width:380px){.weekly-budget-item{grid-template-columns:1fr 118px;padding:11px 10px}.weekly-yen input{padding:8px 7px}.big-money{font-size:34px}}
.weekly-home-card{width:100%;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.weekly-home-card .budget-breakdown-title{padding-top:0}.weekly-home-card .budget-breakdown-title small{color:var(--rose);font-weight:700}.weekly-home-main{display:flex;justify-content:space-between;align-items:end;padding-top:13px}.weekly-home-main>span{font-size:11px;color:var(--muted)}.weekly-home-main>span small{display:block;margin-top:3px;font-size:9px}.weekly-home-main strong{font-size:18px;color:#506b59}.weekly-home-main strong small{font-size:9px;font-weight:500;color:var(--muted)}.carryover-chip{display:inline-flex!important;width:auto!important;height:auto!important;margin-top:9px;padding:5px 9px;border-radius:20px;background:#fff3df;color:#9a7338;font-size:9px;font-weight:700}.weekly-home-card:active{transform:scale(.99)}
.weekly-overview-sheet{max-height:min(88vh,760px);overflow:auto}.weekly-overview-note{text-align:center;color:var(--muted);font-size:10px;line-height:1.7;margin:12px 0 15px}.carryover-option{position:relative;display:grid;grid-template-columns:1fr 46px;align-items:center;gap:12px;padding:14px;background:linear-gradient(135deg,#f3f8f3,#f9fbf8);border:1px solid #dce8de;border-radius:16px;cursor:pointer}.carryover-option b,.carryover-option small{display:block}.carryover-option b{color:#506b59;font-size:12px}.carryover-option small{margin-top:4px;font-size:9px;line-height:1.5}.carryover-option input{position:absolute;opacity:0;pointer-events:none}.carryover-option i{width:44px;height:25px;border-radius:20px;background:#d8d4d0;position:relative;transition:.2s}.carryover-option i:after{content:'';position:absolute;width:19px;height:19px;left:3px;top:3px;border-radius:50%;background:white;box-shadow:0 2px 6px #0002;transition:.2s}.carryover-option input:checked+i{background:var(--sage)}.carryover-option input:checked+i:after{transform:translateX(19px)}.weekly-overview-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}.weekly-overview-row{display:grid;grid-template-columns:1fr 126px;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:15px;background:white}.weekly-overview-row b,.weekly-overview-row small,.weekly-overview-row em{display:block}.weekly-overview-row b{color:var(--ink);font-size:12px}.weekly-overview-row small{margin-top:3px;font-size:8px}.weekly-overview-row em{margin-top:4px;color:#9a7338;font-size:8px;font-style:normal;font-weight:700}.weekly-overview-row .weekly-yen input{padding:8px}.weekly-overview-sheet .budget-save{margin-bottom:2px}
@media(max-width:380px){.weekly-overview-row{grid-template-columns:1fr 112px;padding:10px}.weekly-overview-row .weekly-yen input{padding:8px 6px}}
.section-title-link{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:0;color:var(--ink);font:700 18px inherit;cursor:pointer}.section-title-link span{color:var(--rose);font-size:23px}.date-jump-button{border:0!important;background:transparent!important;width:auto!important;padding:7px 14px!important;border-radius:20px!important;color:var(--ink)!important;font:600 20px 'Noto Sans JP'!important;cursor:pointer}.date-jump-button:after{content:'⌄';margin-left:7px;color:var(--rose);font-size:13px}.year-select .date-jump-button{font-size:18px!important;background:white!important;box-shadow:0 5px 16px #0000000b}.compare-bar[role=button]{border:0;background:transparent;font:inherit;color:inherit;cursor:default}.compare-bar.compare-jump{cursor:pointer;border-radius:13px}.compare-bar.compare-jump:hover,.compare-bar.compare-jump:focus{background:#fff7f4;outline:1px solid #edd8d2}.compare-bar.compare-jump small{color:var(--rose);font-weight:700}.highlight-card{animation:highlightCard 1.3s ease}@keyframes highlightCard{40%{box-shadow:0 0 0 5px #f2c9c4,0 16px 38px #0001}}
.share-settings-card{background:linear-gradient(145deg,#fff,#fff5f3);border-color:#ead8d3}.share-settings-card .setting-icon{background:linear-gradient(145deg,#f7dedd,#f9e9e5);color:#aa6268}.share-open-button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px;padding:12px 14px;border:0;border-radius:13px;background:#f7e6e3;color:#9e6266;font-weight:700}.share-open-button span{font-size:20px}.share-sheet{max-height:min(88vh,720px);overflow:auto}.share-intro{text-align:center;padding:16px 12px 20px}.share-intro>span{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:var(--rose-light);color:var(--rose);font-size:27px}.share-intro h3{margin:13px 0 7px}.share-intro p,.share-empty p{color:var(--muted);font-size:10px;line-height:1.8}.share-message{min-height:18px;text-align:center;color:var(--sage);font-size:10px;line-height:1.6}.share-account,.share-household{display:flex;flex-direction:column;gap:5px;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:15px;background:white}.share-account span,.share-household span{color:var(--muted);font-size:9px}.share-account strong,.share-household strong{font-size:12px}.share-household{background:var(--sage-light);color:#506b59}.share-signout{margin-top:10px}.invite-box{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.invite-guide{margin:8px 0 12px;color:var(--muted);font-size:10px;line-height:1.7}.invite-actions{display:flex;flex-direction:column;gap:8px}.invite-actions .secondary{border:1px solid var(--line);background:white;color:var(--ink);padding:12px 16px;border-radius:13px;font-weight:600}.invite-actions button:disabled,#shareLoginBtn:disabled{opacity:.58}.invite-help{margin:14px 0;padding:14px;border-radius:15px;background:var(--sage-light);color:#506b59}.invite-help b{font-size:12px}.invite-help p{margin:5px 0 0;font-size:10px;line-height:1.7}.share-message.success{color:#56765f}.share-message.error{color:#b25f62}.share-empty{text-align:center;padding:26px 15px}.share-empty>span{font-size:32px;color:var(--sage)}.share-empty h3{margin:10px}.compact-share{padding:12px}.compact-share p{margin:0}

/* v12: category budgets, special funds and credit-card schedule */
.category-budget-guide{margin:14px 2px 10px;color:var(--muted);font-size:10px;line-height:1.6}.category-budget-grid{display:flex;flex-direction:column;gap:8px;min-width:0}.category-budget-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,42%);gap:10px;align-items:center;width:100%;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:white;overflow:hidden}.category-budget-item>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:12px}.category-yen{display:flex;align-items:center;min-width:0;gap:5px;color:var(--rose);font-weight:700}.category-yen input{min-width:0;width:100%;margin:0;padding:10px 8px;text-align:right;font-size:16px;border-color:#eadbd6;background:#fffaf8}.category-budget-total{margin-top:12px}.credit-debit-notice{margin-top:10px;padding:14px 15px;border:1px solid #ddd7ec;border-radius:18px;background:linear-gradient(135deg,#faf8ff,#f5f1fb);color:#584f68}.credit-debit-notice>div{display:flex;align-items:center;gap:10px}.credit-debit-notice>div>span:nth-child(2){flex:1}.credit-debit-notice b,.credit-debit-notice small{display:block}.credit-debit-notice b{font-size:11px}.credit-debit-notice small{margin-top:3px;color:#81778f;font-size:9px}.credit-debit-notice>strong{display:block;margin:10px 0 0;text-align:right;font-size:20px}.credit-icon{display:grid;place-items:center;width:34px;height:25px;border-radius:7px;background:#736985;color:white;font-size:11px;font-weight:800}.credit-debit-notice details{margin-top:10px;border-top:1px solid #e3ddec;padding-top:8px}.credit-debit-notice summary{cursor:pointer;font-size:9px;color:#776c87}.credit-debit-notice details p{display:flex;justify-content:space-between;margin:7px 0;font-size:10px}.entry-extra-panel{display:flex;flex-direction:column;gap:13px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.entry-extra-panel[hidden]{display:none}.entry-extra-panel label[hidden]{display:none}.entry-extra-panel small{display:block;margin-top:5px;color:var(--muted);font-size:9px;line-height:1.5}.tx-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tx-badge{display:inline-block!important;padding:2px 6px;border-radius:8px;font-size:8px!important;font-style:normal}.tx-badge.special{background:#fff1dc;color:#956e32}.tx-badge.credit{background:#eee8f6;color:#685b7a}.special-row span small{display:block;margin-top:3px;color:var(--muted);font-size:7px}.special-row>span{min-width:0}.special-row>span b,.special-row>span small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:390px){.category-budget-item{grid-template-columns:minmax(78px,1fr) minmax(108px,44%);padding:10px 9px;gap:7px}.category-yen{gap:3px}.category-yen input{font-size:16px;padding:9px 6px}.budget-settings-card{overflow:hidden}.credit-debit-notice{padding:13px}}
/* v13: transaction editing */
.edit-record-button{width:100%;margin-top:16px;border:0;border-radius:14px;padding:14px;background:linear-gradient(135deg,#718d7a,#829b89);color:white;font-weight:700;box-shadow:0 8px 18px rgba(83,109,91,.16)}.edit-record-button+.danger-button{margin-top:8px}#transactionEditDialog form{max-height:min(88vh,760px);overflow-y:auto}.detail-sheet .edit-record-button{display:block}.entry-extra-panel[hidden],.entry-extra-panel label[hidden]{display:none}
/* v15: personal device sync */
.device-sync-card{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;margin:14px 0;padding:15px;border:1px solid #ead8d3;border-radius:17px;background:linear-gradient(145deg,#fffaf8,#fff)}
.device-sync-card .device-sync-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--rose-light);color:var(--rose);font-size:20px;font-weight:700}
.device-sync-card b{font-size:13px}.device-sync-card p{margin:5px 0 12px;color:var(--muted);font-size:10px;line-height:1.7}.device-sync-card button{grid-column:1/-1}.device-sync-card button:disabled{opacity:.58}