*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-background);color:var(--color-text);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Meiryo,sans-serif;font-size:var(--font-body);-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}.app{max-width:440px;min-height:100dvh;padding:8px 12px calc(16px + env(safe-area-inset-bottom));margin:0 auto}.record-screen{gap:var(--gap);flex-direction:column;display:flex}.app-header{align-items:center;gap:8px;min-height:36px;margin-bottom:8px;display:flex}.app-header__title{font-size:var(--font-large);color:var(--color-accent-strong);margin:0 auto 0 0;font-weight:800}.app-header__back,.app-header__action{border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-small);border-radius:999px;padding:5px 12px;font-weight:600}.app-header__back{color:var(--color-accent-strong);font-size:var(--font-body);background:0 0;border:none;padding-left:0}.today-card{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-card);text-align:center;padding:14px 18px 12px;box-shadow:0 1px 3px #0000000f}.today-card p{margin:0}.today-card__label{font-size:var(--font-large);color:var(--color-accent-strong);font-weight:700}.today-card__amount{font-size:var(--font-hero);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1}.today-card.is-negative{background:var(--color-negative-soft)}.today-card.is-negative .today-card__label,.today-card.is-negative .today-card__amount{color:var(--color-negative)}.today-card__note{font-size:var(--font-small);color:var(--color-negative);font-weight:700}.today-card__sub{font-size:var(--font-small);color:var(--color-text-sub);font-variant-numeric:tabular-nums;margin-top:2px}.today-card.is-stale .today-card__amount,.today-card.is-stale .today-card__sub,.today-card.is-loading .today-card__amount,.today-card.is-loading .today-card__sub{opacity:.45}.today-card.is-loading .today-card__message{color:var(--color-text-sub);font-weight:400}.today-card__updating{font-size:var(--font-small);color:var(--color-text-sub);margin-left:4px;font-weight:400}.pace{max-width:280px;font-size:var(--font-small);color:var(--color-text-sub);align-items:center;gap:8px;margin:8px auto 0;display:flex}.pace__label{flex:none}.pace__bar{background:var(--color-key);border-radius:999px;flex:1;height:6px;overflow:hidden}.pace__fill{background:var(--color-accent);border-radius:999px;height:100%}.pace__fill.is-over{background:var(--color-negative)}.pace__value{text-align:right;min-width:3em;color:var(--color-text);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.today-card.is-negative .pace__bar{background:var(--color-surface)}.today-card__message{border-top:1px dashed var(--color-border);font-size:var(--font-body);color:var(--color-accent-strong);word-break:keep-all;overflow-wrap:anywhere;padding-top:8px;font-weight:700;margin-top:8px!important}.today-card.is-negative .today-card__message{color:var(--color-negative)}.record-panel{background:var(--color-surface);border-radius:var(--radius-card);gap:var(--gap);flex-direction:column;padding:12px;display:flex;box-shadow:0 1px 3px #0000000f}.amount-row{align-items:center;gap:8px;display:flex}.amount-display{flex:1;min-width:0}.amount-display p{margin:0}.amount-display__value{font-size:var(--font-amount);text-align:right;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.15}.amount-display__refund{border:1.5px solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:var(--font-small);vertical-align:middle;border-radius:999px;margin-right:8px;padding:2px 8px;font-weight:800}.amount-display__value.is-empty{color:var(--color-border)}.amount-display__hint{font-size:var(--font-small);color:var(--color-text-sub);text-align:right;min-height:1.4em}.amount-display__hint.is-negative{color:var(--color-negative)}.detail-toggle{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-button);font-size:var(--font-small);color:var(--color-text-sub);align-self:stretch;padding:0 10px}.detail-options{background:var(--color-key);border-radius:var(--radius-button);flex-direction:column;gap:8px;padding:10px;display:flex}.detail-options__field{align-items:center;gap:8px;display:flex}.detail-options__field span{width:3em;font-size:var(--font-small);color:var(--color-text-sub)}.detail-options__field input{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;flex:1;min-width:0;padding:8px 10px}.detail-options__check{align-items:flex-start;gap:8px;display:flex}.detail-options__check input{width:20px;height:20px;accent-color:var(--color-accent);margin:2px 0 0}.detail-options__check small{color:var(--color-text-sub);font-size:12px;display:block}.keypad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.keypad__key{border-radius:var(--radius-button);background:var(--color-key);font-variant-numeric:tabular-nums;border:none;height:46px;font-size:22px;font-weight:700}.keypad__key:active{background:var(--color-accent-soft)}.keypad__key.is-back{color:var(--color-text-sub)}.category-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.category-button{border:1.5px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);min-height:42px;font-size:var(--font-small);word-break:keep-all;padding:4px;font-weight:600;line-height:1.2}.category-button.is-selected{background:var(--color-accent-soft);border:2px solid var(--color-accent);color:var(--color-accent-strong);font-weight:800}.record-button{border-radius:var(--radius-button);background:var(--color-accent);height:54px;color:var(--color-accent-text);font-size:var(--font-large);border:none;font-weight:800}.record-button:disabled{background:var(--color-key);color:var(--color-text-sub);cursor:default}.today-list{background:var(--color-surface);border-radius:var(--radius-card);padding:12px 16px}.today-list__header{justify-content:space-between;align-items:center;gap:6px;margin:0 0 6px;display:flex}.today-list__title{font-size:var(--font-body);text-align:center;white-space:nowrap;flex:1;margin:0}.today-list__nav{border:1px solid var(--color-border);background:var(--color-surface);min-height:32px;color:var(--color-accent-strong);border-radius:8px;flex:none;padding:0 6px;font-size:12px;font-weight:700}.today-list__nav:disabled{color:var(--color-text-sub);opacity:.4}.today-list ul{margin:0;padding:0;list-style:none}.today-list__item{border-top:1px solid var(--color-border);align-items:center;gap:10px;padding:8px 0;display:flex}.today-list__member{background:var(--color-accent-soft);border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:700}.today-list__category{flex:1;min-width:0}.today-list__category small{color:var(--color-text-sub);margin-left:6px}.today-list__special{border:1px solid var(--color-text-sub);border-radius:6px;margin-left:6px;padding:1px 6px;font-size:11px;font-style:normal}.today-list__amount{font-variant-numeric:tabular-nums;font-weight:700}.today-list__empty{color:var(--color-text-sub);margin:0}.today-list__edit{border:1px solid var(--color-accent);background:var(--color-surface);min-height:32px;color:var(--color-accent-strong);border-radius:8px;flex:none;padding:0 10px;font-size:12px;font-weight:700}.edit-sheet{z-index:10;overscroll-behavior:contain;background:var(--color-background);position:fixed;inset:0;overflow-y:auto}.edit-sheet__inner{max-width:440px;padding:8px 12px calc(24px + env(safe-area-inset-bottom));margin:0 auto}.edit-sheet__header{align-items:center;min-height:36px;margin-bottom:8px;display:flex}.edit-sheet__title{font-size:var(--font-large);color:var(--color-accent-strong);margin:0 auto 0 0}.edit-sheet__close{border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);font-size:var(--font-small);color:var(--color-text-sub);padding:6px 12px}.edit-sheet__save{border:2px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-accent-soft);height:50px;color:var(--color-accent-strong);font-size:var(--font-large);font-weight:800}.edit-sheet__save:disabled{border-color:var(--color-border);background:var(--color-key);color:var(--color-text-sub);cursor:default}.edit-sheet__error{font-size:var(--font-small);color:var(--color-negative);margin:0;font-weight:700}.edit-sheet__delete{font-size:var(--font-small);color:var(--color-negative);background:0 0;border:none;align-self:center;padding:8px 16px;text-decoration:underline}.edit-sheet__confirm{border-radius:var(--radius-button);background:var(--color-negative-soft);padding:12px}.edit-sheet__confirm p{font-size:var(--font-small);color:var(--color-negative);margin:0 0 10px;font-weight:700}.edit-sheet__confirm-buttons{gap:8px;display:flex}.edit-sheet__delete-yes,.edit-sheet__delete-no{border-radius:10px;flex:1;height:42px;font-weight:700}.edit-sheet__delete-yes{border:1.5px solid var(--color-negative);background:var(--color-surface);color:var(--color-negative)}.edit-sheet__delete-no{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-sub)}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));border-radius:var(--radius-button);background:var(--color-text);width:min(400px,100% - 32px);color:var(--color-surface);text-align:center;white-space:pre-line;padding:14px 16px;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0003}.message-settings{flex-direction:column;gap:12px;display:flex}.message-settings__intro{font-size:var(--font-small);color:var(--color-text-sub);margin:0;line-height:1.5}.message-settings__error{text-align:center;font-size:var(--font-small);color:var(--color-negative);margin:0;font-weight:700}.message-kind{background:var(--color-surface);border-radius:var(--radius-card);flex-direction:column;gap:10px;padding:14px;display:flex}.message-kind__title{font-size:var(--font-body);align-items:baseline;gap:8px;margin:0;display:flex}.message-kind__condition{color:var(--color-text-sub);font-size:12px;font-weight:400}.message-kind__empty{font-size:var(--font-small);color:var(--color-text-sub);margin:0}.message-kind__add{border:1.5px dashed var(--color-accent);border-radius:var(--radius-button);background:var(--color-surface);height:42px;color:var(--color-accent-strong);font-weight:700}.message-kind__add:disabled{border-color:var(--color-border);color:var(--color-text-sub);cursor:default}.message-field__row{gap:8px;display:flex}.message-field__row input{border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:10px;flex:1;min-width:0;padding:10px 12px;font-size:16px}.message-field__row input:focus{border-color:var(--color-accent);outline:none}.message-field__row input[aria-invalid=true]{border-color:var(--color-negative)}.message-field__delete{border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-small);color:var(--color-text-sub);border-radius:10px;flex:none;padding:0 12px}.message-field__counter{text-align:right;color:var(--color-text-sub);font-variant-numeric:tabular-nums;margin:4px 2px 0;font-size:12px}.message-field__counter.is-over,.message-field__error{color:var(--color-negative);font-weight:700}.message-field__error{margin:2px 2px 0;font-size:12px}.status-screen{border-radius:var(--radius-card);background:var(--color-surface);text-align:center;margin-top:24px;padding:32px 20px}.status-screen__message{font-size:var(--font-body);color:var(--color-text);margin:0;line-height:1.7}.status-screen__retry{border:1.5px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-accent-soft);color:var(--color-accent-strong);margin-top:20px;padding:10px 20px;font-weight:700}.history-screen{gap:var(--gap);flex-direction:column;display:flex}.history-years,.history-months{background:var(--color-surface);border-radius:var(--radius-card);padding:12px 16px}.history-years ul,.history-months ul{margin:0;padding:0;list-style:none}.history-years__item{flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:8px 0;display:flex}.history-years__item+.history-years__item{border-top:1px solid var(--color-border)}.history-years__year{font-size:var(--font-large);color:var(--color-accent-strong);font-weight:800}.history-years__count{font-size:var(--font-large);font-variant-numeric:tabular-nums;font-weight:700}.history-years__note{font-size:var(--font-small);color:var(--color-text-sub)}.history-months__group+.history-months__group{margin-top:12px}.history-months__year{font-size:var(--font-body);color:var(--color-accent-strong);margin:0 0 4px}.history-month{border-top:1px solid var(--color-border);align-items:center;gap:10px;padding:8px 0;display:flex}.history-month__name{font-variant-numeric:tabular-nums;flex:none;width:2.8em;font-weight:700}.history-month__mark{text-align:center;min-width:2em;font-size:var(--font-large);flex:none;font-weight:800}.history-month__mark.is-achieved{color:var(--color-accent)}.history-month__mark.is-missed,.history-month__mark.is-none{color:var(--color-negative)}.history-month__mark.is-progress{border:1px solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700}.history-month__detail{font-variant-numeric:tabular-nums;flex-direction:column;flex:1;align-items:flex-end;min-width:0;display:flex}.history-month__remaining{font-weight:700}.history-month__remaining.is-over{color:var(--color-negative)}.history-month__sub{color:var(--color-text-sub);font-size:12px}.history-screen__note{color:var(--color-text-sub);margin:0 4px;font-size:12px;line-height:1.6}.timing-panel{border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);color:var(--color-text-sub);margin-top:24px;padding:12px 14px;font-size:12px}.timing-panel__title{font-size:var(--font-small);color:var(--color-accent-strong);margin:0 0 6px}.timing-panel__list{margin:0}.timing-panel__row{justify-content:space-between;gap:8px;padding:2px 0;display:flex}.timing-panel__row dt{color:var(--color-text)}.timing-panel__row dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.timing-panel__row.is-sub dt{color:var(--color-text-sub);padding-left:1em}.onboarding{gap:var(--gap);flex-direction:column;display:flex}.onboarding__intro{text-align:center;padding:4px 4px 0}.onboarding__title{font-size:var(--font-large);color:var(--color-accent-strong);margin:0;font-weight:800}.onboarding__lead{font-size:var(--font-small);color:var(--color-text-sub);margin:4px 0 0;line-height:1.6}.onboarding-budget{border-radius:var(--radius-card);background:var(--color-surface);text-align:center;flex-direction:column;gap:8px;padding:14px;display:flex;box-shadow:0 1px 3px #0000000f}.onboarding-budget p{margin:0}.onboarding-budget__label{color:var(--color-accent-strong);white-space:nowrap;font-weight:700}.onboarding-budget__value{font-size:var(--font-amount);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2}.onboarding-budget__value.is-empty{color:var(--color-text-sub)}.onboarding-budget__daily{font-size:var(--font-large);color:var(--color-accent);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800;line-height:1.4}.onboarding-budget__note{color:var(--color-text-sub);font-size:12px;line-height:1.6}.onboarding__agree{border:1.5px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);min-height:52px;font-size:var(--font-small);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:12px 10px;font-weight:600;display:flex}.onboarding__agree.is-checked{border-color:var(--color-accent);background:var(--color-accent-soft)}.onboarding__agree input{width:24px;height:24px;accent-color:var(--color-accent);cursor:pointer;flex:none;margin:0}.onboarding__agree span{white-space:nowrap}.onboarding__agree a{color:var(--color-accent-strong)}.onboarding__error{border-radius:var(--radius-button);background:var(--color-negative-soft);color:var(--color-negative);font-size:var(--font-small);margin:0;padding:10px 12px;font-weight:700}.onboarding__start{border-radius:var(--radius-button);background:var(--color-accent);height:54px;color:var(--color-accent-text);font-size:var(--font-large);border:none;font-weight:800}.onboarding__start:disabled{background:var(--color-key);color:var(--color-text-sub);cursor:default}.onboarding__invite-note{color:var(--color-text-sub);margin:0 4px;font-size:12px;line-height:1.6}.first-hint{border:1.5px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-accent-soft);align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.first-hint__body{flex:1;min-width:0}.first-hint__body p{margin:0}.first-hint__title{font-size:var(--font-small);color:var(--color-accent-strong);white-space:nowrap;font-weight:800}.first-hint__text{color:var(--color-text);margin-top:2px;font-size:12px;line-height:1.5}.first-hint__close{width:28px;height:28px;color:var(--color-accent-strong);font-size:var(--font-large);background:0 0;border:none;border-radius:50%;flex:none;line-height:1}.join-card{border-radius:var(--radius-card);background:var(--color-surface);padding:12px 16px;box-shadow:0 1px 3px #0000000f}.join-card__title{font-size:var(--font-small);color:var(--color-accent-strong);margin:0 0 4px;font-weight:800}.join-card__list{font-size:var(--font-small);color:var(--color-text);margin:0;padding-left:1.2em;line-height:1.7}.joined-card{border-radius:var(--radius-card);background:var(--color-surface);text-align:center;padding:14px 18px 12px;box-shadow:0 1px 3px #0000000f}.joined-card p{margin:0}.joined-card__label{font-size:var(--font-large);color:var(--color-accent-strong);font-weight:700}.joined-card__amount{font-size:var(--font-hero);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1}.joined-card.is-negative{background:var(--color-negative-soft)}.joined-card.is-negative .joined-card__label,.joined-card.is-negative .joined-card__amount{color:var(--color-negative)}.joined__text{font-size:var(--font-small);color:var(--color-text-sub);text-align:center;margin:0 4px;line-height:1.7}.joined__sub{border:1.5px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-surface);min-height:46px;color:var(--color-accent-strong);font-size:var(--font-small);padding:8px 12px;font-weight:700}.nowrap-chunk{display:inline-block}.onboarding__lead.is-lines{white-space:pre-line}.invite-button{border:1.5px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-surface);min-height:46px;color:var(--color-accent-strong);font-size:var(--font-body);padding:8px 14px;font-weight:800}.invite-button:disabled{border-color:var(--color-border);color:var(--color-text-sub);cursor:default}.invite-button--bottom{width:100%;margin-top:4px}.invite-prompt{border:1.5px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-accent-soft);padding:12px 14px}.invite-prompt p{margin:0}.invite-prompt__title{color:var(--color-accent-strong);white-space:nowrap;font-weight:800}.invite-prompt__text{color:var(--color-text);font-size:12px;line-height:1.6;margin-top:2px!important}.invite-prompt__buttons{align-items:center;gap:10px;margin-top:10px;display:flex}.invite-prompt__buttons .invite-button{flex:1}.invite-prompt__later{min-height:46px;color:var(--color-text-sub);font-size:var(--font-small);background:0 0;border:none;padding:8px 12px;font-weight:700}.invite-link{border-radius:var(--radius-card);background:var(--color-surface);flex-direction:column;gap:10px;padding:14px;display:flex}.invite-link p{margin:0}.invite-link__text{font-size:var(--font-small);line-height:1.7}.invite-link__url{border:1px solid var(--color-border);background:var(--color-key);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:10px;padding:10px 12px;font-size:12px}.invite-link__note{color:var(--color-text-sub);font-size:12px}.settings{gap:var(--gap);flex-direction:column;display:flex}.settings-card{border-radius:var(--radius-card);background:var(--color-surface);text-align:center;flex-direction:column;gap:6px;padding:14px;display:flex;box-shadow:0 1px 3px #0000000f}.settings-card p{margin:0}.settings-card__label{color:var(--color-accent-strong);white-space:nowrap;font-weight:700}.settings-card__value{font-size:var(--font-amount);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2}.settings-card__sub{color:var(--color-text-sub);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.settings-card__button{border:1.5px solid var(--color-accent);border-radius:var(--radius-button);background:var(--color-surface);min-height:46px;color:var(--color-accent-strong);font-size:var(--font-body);margin-top:4px;padding:8px 14px;font-weight:800}.settings-card__button:disabled{border-color:var(--color-border);color:var(--color-text-sub);cursor:default}.settings-card__note{color:var(--color-text-sub);font-size:12px}.settings__demo-link{border:1px dashed var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);min-height:46px;color:var(--color-text-sub);font-size:var(--font-body);font-weight:700}.budget{gap:var(--gap);flex-direction:column;display:flex}.budget-input{border-radius:var(--radius-card);background:var(--color-surface);text-align:center;flex-direction:column;gap:6px;padding:14px;display:flex;box-shadow:0 1px 3px #0000000f}.budget-input p{margin:0}.budget-input__label{color:var(--color-accent-strong);white-space:nowrap;font-weight:700}.budget-input__value{font-size:var(--font-amount);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2}.budget-input__value.is-empty{color:var(--color-text-sub)}.budget-input__current{font-size:var(--font-small);color:var(--color-text-sub);font-variant-numeric:tabular-nums}.budget-compare{border-radius:var(--radius-button);background:var(--color-key);text-align:left;flex-direction:column;gap:2px;margin:4px 0 6px;padding:8px 6px;display:flex}.budget-compare__caption{color:var(--color-text-sub);text-align:right;font-size:12px}.budget-compare__row{align-items:baseline;gap:8px;min-height:26px;display:flex}.budget-compare__label{font-size:var(--font-small);color:var(--color-text-sub);white-space:nowrap;flex:none;font-weight:600}.budget-compare__values{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;column-gap:6px;margin-left:auto;display:flex}.budget-compare__now{font-size:var(--font-body);color:var(--color-text-sub);white-space:nowrap;font-weight:600}.budget-compare__after{color:var(--color-accent-strong);white-space:nowrap;font-size:17px;font-weight:800}.budget-compare__after.is-empty{color:var(--color-text-sub);font-weight:600}.budget-compare__now.is-negative,.budget-compare__after.is-negative{color:var(--color-negative)}.budget__notice{border-radius:var(--radius-button);background:var(--color-negative-soft);color:var(--color-text);font-size:var(--font-body);flex-direction:column;margin:0;padding:10px 12px 10px 36px;line-height:1.6;display:flex;position:relative}.budget__notice:before{content:"ⓘ";color:var(--color-negative);font-weight:800;position:absolute;top:10px;left:12px}.budget__notice span{white-space:nowrap}.budget__error{color:var(--color-negative);margin:0;font-weight:700}.budget__save{border-radius:var(--radius-button);background:var(--color-accent);height:54px;color:var(--color-accent-text);font-size:var(--font-large);border:none;font-weight:800}.budget__save:disabled{background:var(--color-key);color:var(--color-text-sub);cursor:default}.settings-card__text{font-size:var(--font-small);color:var(--color-text-sub);flex-direction:column;line-height:1.7;display:flex}.settings-card__text span{white-space:nowrap}
