:root{--color-background:#0c1217;--color-surface:#121a20;--color-surface-raised:#172129;--color-surface-hover:#1c2832;--color-surface-inset:#0f171d;--color-border:#24313b;--color-border-strong:#32414d;--color-text-primary:#f3f6f7;--color-text-secondary:#b9c3cb;--color-text-muted:#7e8a95;--color-text-inverse:#f6fbf9;--color-primary:#1f8f6a;--color-primary-hover:#27a178;--color-primary-soft:#163c32;--color-success:#2aa36b;--color-success-soft:#153629;--color-danger:#c96a63;--color-danger-soft:#382423;--color-warning:#c79a45;--color-warning-soft:#382d1a;--color-info:#5c84b1;--color-info-soft:#1c2b3c;--color-focus-ring:#1f8f6a47;--color-overlay:#04080cb8;--color-disabled-bg:#161d24;--color-disabled-border:#242e37;--color-disabled-text:#6c7782;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-pill:999px;--shadow-sm:inset 0 1px 0 #ffffff08, 0 12px 24px #0000002e;--shadow-md:inset 0 1px 0 #ffffff08, 0 18px 40px #00000038;--shadow-lg:inset 0 1px 0 #ffffff0a, 0 24px 60px #00000047;--shadow-modal:inset 0 1px 0 #ffffff0a, 0 28px 80px #00000073;--transition-fast:.14s ease;--transition-base:.2s ease;color:var(--color-text-primary);background:radial-gradient(circle at top center, #1f8f6a1a 0, transparent 34%), var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--color-background)}body{background:radial-gradient(circle at top center, #1f8f6a1a 0, transparent 34%), var(--color-background);min-width:320px;min-height:100vh;color:var(--color-text-primary);margin:0}button,input,select,textarea{font:inherit;color:inherit}main{background:0 0;width:min(100%,430px);min-height:100vh;margin:0 auto;padding:24px 16px}h1{margin:0 0 8px;font-size:2rem}h2{font-size:1.25rem}h1,h2,h3,strong{color:var(--color-text-primary)}p{color:var(--color-text-secondary);margin:0}:where(button,input,select,textarea){transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast)}:where(button,input,select,textarea):focus-visible{box-shadow:0 0 0 4px var(--color-focus-ring);outline:none}:where(button,input,select,textarea):disabled{cursor:not-allowed}:where(){color:var(--color-text-muted)}::selection{background:#1f8f6a47}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.app-page{gap:var(--space-5);padding:var(--space-6) 0 calc(152px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.app-status-page{justify-content:center}.page-card{gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-md);flex-direction:column;padding:22px;display:flex}.page-section__header,.page-subheader{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-subheader{margin-top:2px;margin-bottom:-4px}.page-section__header h2,.page-subheader h3{color:var(--color-text-primary);letter-spacing:-.02em;margin:0}.page-section__header h2{font-size:1.25rem;font-weight:700}.page-subheader h3{font-size:1rem;font-weight:600}.page-primary-action,.delete-confirmation__retry{border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-inverse);letter-spacing:-.01em;border:1px solid #0000;padding:11px 15px;font-weight:600;box-shadow:inset 0 1px #ffffff1a,0 10px 24px #0a251d47}.page-primary-action:hover:not(:disabled),.delete-confirmation__retry:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.page-secondary-action{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text-primary);letter-spacing:-.01em;padding:11px 14px;font-weight:600;box-shadow:inset 0 1px #ffffff08}.page-secondary-action:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover);transform:translateY(-1px)}.page-primary-action:disabled,.page-secondary-action:disabled,.delete-confirmation__retry:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text);box-shadow:none}.page-empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text-muted);text-align:center;padding:18px;font-size:.95rem;line-height:1.55}.delete-confirmation{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-inset);flex-direction:column;display:flex;box-shadow:inset 0 1px #ffffff05}.delete-confirmation p:first-of-type{color:var(--color-text-primary);line-height:1.5}.delete-confirmation p:not(:first-of-type){color:var(--color-text-secondary);line-height:1.5}.delete-confirmation strong{color:var(--color-text-primary)}.delete-confirmation__actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:4px;display:flex}.delete-confirmation__actions button:not(.delete-confirmation__delete):not(.delete-confirmation__retry){border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text-primary);padding:11px 14px;font-weight:600}.delete-confirmation__actions button:not(.delete-confirmation__delete):not(.delete-confirmation__retry):hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.delete-confirmation__delete{border-radius:var(--radius-md);background:var(--color-danger-soft);color:#f3cbc7;border:1px solid #c96a6373;padding:11px 14px;font-weight:600}.delete-confirmation__delete:hover:not(:disabled){color:#ffe7e4;background:#c96a6338;border-color:#c96a63b3}.delete-confirmation__actions button:disabled,.delete-confirmation__delete:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text);box-shadow:none}@media (width<=480px){.app-page{padding-top:var(--space-5)}.page-card{padding:18px}.page-section__header,.page-subheader{align-items:flex-start}.page-primary-action,.page-secondary-action{flex-shrink:0}}.bottom-nav-shell{inset-inline:0;z-index:200;padding:0 16px calc(12px + env(safe-area-inset-bottom));pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0}.bottom-nav{pointer-events:auto;border:1px solid var(--color-border);background:linear-gradient(180deg, var(--color-surface-raised) 0%, var(--color-surface) 100%);width:min(100%,398px);box-shadow:var(--shadow-md);border-radius:28px;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;padding:12px 16px 14px;display:grid}.bottom-nav svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.bottom-nav__item,.bottom-nav__action{-webkit-tap-highlight-color:transparent}.bottom-nav__item{border-radius:var(--radius-lg);min-height:64px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;padding:8px 10px 0;display:flex}.bottom-nav__item-icon{border:1px solid #0000;border-radius:15px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.bottom-nav__item svg{stroke-width:1.85px;width:22px;height:22px}.bottom-nav__item-label{letter-spacing:.01em;font-size:.76rem;font-weight:600}.bottom-nav__item:after{content:"";border-radius:var(--radius-pill);width:22px;height:4px;transition:background-color var(--transition-fast), transform var(--transition-fast);background:0 0}.bottom-nav__item--active{color:var(--color-text-primary)}.bottom-nav__item--active .bottom-nav__item-icon{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#1f8f6a47;box-shadow:inset 0 1px #ffffff0f}.bottom-nav__item--active .bottom-nav__item-label{font-weight:700}.bottom-nav__item--active:after{background:var(--color-primary)}.bottom-nav__item:hover{color:var(--color-text-primary);transform:translateY(-1px)}.bottom-nav__item:hover .bottom-nav__item-icon{border-color:var(--color-border-strong);background:var(--color-surface-hover)}.bottom-nav__item--active:hover .bottom-nav__item-icon{background:var(--color-primary-soft);border-color:#1f8f6a57}.bottom-nav__item:active{transform:translateY(0)}.bottom-nav__item:disabled{color:var(--color-text-muted);cursor:default;transform:none}.bottom-nav__item:disabled .bottom-nav__item-icon{background:0 0;border-color:#0000}.bottom-nav__item:disabled:after{background:0 0}.bottom-nav__action-slot{justify-content:center;display:flex}.bottom-nav__action{background:linear-gradient(180deg, var(--color-primary-hover) 0%, var(--color-primary) 100%);width:64px;height:64px;color:var(--color-text-inverse);cursor:pointer;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;display:inline-flex;transform:translateY(-16px);box-shadow:inset 0 1px #fff3,0 18px 32px #0a251d6b}.bottom-nav__action svg{stroke-width:2.2px;width:26px;height:26px}.bottom-nav__action--active{background:linear-gradient(180deg, var(--color-primary-hover) 0%, var(--color-primary-hover) 100%);border-color:#1f8f6a47;box-shadow:inset 0 1px #fff3,0 0 0 4px #1f8f6a24,0 18px 32px #0a251d6b}.bottom-nav__action:hover{background:linear-gradient(180deg, var(--color-primary-hover) 0%, var(--color-primary-hover) 100%);transform:translateY(-18px)}.bottom-nav__action:active{transform:translateY(-14px)}.bottom-nav__action:disabled{cursor:default;opacity:.65;transform:translateY(-16px)}@media (width<=380px){.bottom-nav{gap:8px;padding-inline:12px}.bottom-nav__item{min-height:60px;padding-inline:6px}.bottom-nav__action{width:60px;height:60px}}.modal-backdrop{z-index:1000;background:var(--color-overlay);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--color-border-strong);background:var(--color-surface-raised);width:min(100%,420px);max-height:calc(100vh - 48px);box-shadow:var(--shadow-modal);border-radius:26px;padding:24px;overflow-y:auto}.modal__header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.modal__header h2{letter-spacing:-.02em;margin:0;font-size:1.25rem;line-height:1.25}.modal__close{border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:1.5rem;display:grid}.modal__close:hover{border-color:var(--color-border-strong);background:var(--color-surface-hover);color:var(--color-text-primary)}.modal__content{color:var(--color-text-secondary)}.transaction-form{flex-direction:column;gap:18px;display:flex}.transaction-form__error,.transaction-form__field-error{color:#f1c1bc;margin:0;font-size:.875rem;line-height:1.45}.transaction-form__error{border-radius:var(--radius-md);background:#c96a631a;border:1px solid #c96a6373;padding:12px 14px}.transaction-form__field{flex-direction:column;gap:8px;display:flex}.transaction-form__field span{color:var(--color-text-secondary);font-size:.875rem;font-weight:600}.transaction-form__field input,.transaction-form__field select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text-primary);font:inherit;padding:12px 14px}.transaction-form__field input:hover:not(:disabled),.transaction-form__field select:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.transaction-form__field input:focus-visible,.transaction-form__field select:focus-visible{border-color:var(--color-primary);background:var(--color-surface-hover)}.transaction-form__field input:disabled,.transaction-form__field select:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.transaction-form__actions{justify-content:flex-end;gap:12px;margin-top:6px;display:flex}.transaction-form__actions button{border-radius:var(--radius-md);font:inherit;cursor:pointer;padding:11px 14px;font-weight:600}.transaction-form__actions button:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.transaction-form__cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary)}.transaction-form__cancel:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.transaction-form__submit{background:var(--color-primary);color:var(--color-text-inverse);border:1px solid #0000;box-shadow:inset 0 1px #ffffff1a,0 10px 24px #0a251d47}.transaction-form__submit:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.budget-form{flex-direction:column;gap:18px;display:flex}.budget-form__error,.budget-form__field-error{color:#f1c1bc;margin:0;font-size:.875rem;line-height:1.45}.budget-form__error{border-radius:var(--radius-md);background:#c96a631a;border:1px solid #c96a6373;padding:12px 14px}.budget-form__field{flex-direction:column;gap:8px;display:flex}.budget-form__field span{color:var(--color-text-secondary);font-size:.875rem;font-weight:600}.budget-form__field input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text-primary);font:inherit;padding:12px 14px}.budget-form__field input:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.budget-form__field input:focus-visible{border-color:var(--color-primary);background:var(--color-surface-hover)}.budget-form__field input:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.budget-form__actions{justify-content:flex-end;gap:12px;margin-top:6px;display:flex}.budget-form__actions button{border-radius:var(--radius-md);font:inherit;cursor:pointer;padding:11px 14px;font-weight:600}.budget-form__actions button:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.budget-form__cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary)}.budget-form__cancel:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.budget-form__submit{background:var(--color-primary);color:var(--color-text-inverse);border:1px solid #0000;box-shadow:inset 0 1px #ffffff1a,0 10px 24px #0a251d47}.budget-form__submit:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.monthly-income-form{flex-direction:column;gap:18px;display:flex}.monthly-income-form__error,.monthly-income-form__field-error{color:#f1c1bc;margin:0;font-size:.875rem;line-height:1.45}.monthly-income-form__error{border-radius:var(--radius-md);background:#c96a631a;border:1px solid #c96a6373;padding:12px 14px}.monthly-income-form__field{flex-direction:column;gap:8px;display:flex}.monthly-income-form__field span{color:var(--color-text-secondary);font-size:.875rem;font-weight:600}.monthly-income-form__field input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text-primary);font:inherit;padding:12px 14px}.monthly-income-form__field input:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.monthly-income-form__field input:focus-visible{border-color:var(--color-primary);background:var(--color-surface-hover)}.monthly-income-form__field input:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.monthly-income-form__actions{justify-content:flex-end;gap:12px;display:flex}.monthly-income-form__actions button{border-radius:var(--radius-md);font:inherit;cursor:pointer;padding:11px 14px;font-weight:600}.monthly-income-form__actions button:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.monthly-income-form__cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary)}.monthly-income-form__cancel:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.monthly-income-form__submit{background:var(--color-primary);color:var(--color-text-inverse);border:1px solid #0000;box-shadow:inset 0 1px #ffffff1a,0 10px 24px #0a251d47}.monthly-income-form__submit:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.header{flex-direction:column;gap:10px;display:flex}.header__identity{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.header__identity-copy{flex-direction:column;gap:10px;display:flex}.header__greeting{color:var(--color-text-muted);margin:0;font-size:.88rem;font-weight:500}.header__name{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,7vw,2.45rem);font-weight:700;line-height:1.05}.header__logout-button{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-text-secondary);flex-shrink:0;padding:10px 14px;font-weight:600;box-shadow:inset 0 1px #ffffff08}.header__logout-button:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover);color:var(--color-text-primary)}.header__logout-button:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text);box-shadow:none}.header__month-navigation{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:fit-content;box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:8px 10px;display:flex}.header__month{color:var(--color-text-secondary);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:600}.header__month-button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 1px #ffffff08}.header__month-button:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover);color:var(--color-text-primary)}.header__month-button:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text);box-shadow:none}@media (width<=480px){.header__identity{flex-direction:column;align-items:stretch}}.summary-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);padding:16px}.summary-card__label{color:var(--color-text-secondary);margin:0 0 10px;font-size:.8rem;font-weight:600;line-height:1.4}.summary-card__amount{color:var(--color-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(1.25rem,4vw,1.55rem);line-height:1.15;display:block}.hero-balance{border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);color:var(--color-text-inverse);box-shadow:var(--shadow-lg);background:linear-gradient(#172129 0%,#121a20 100%);padding:24px}.hero-balance__label{color:var(--color-text-secondary);letter-spacing:.01em;margin:0;font-size:.875rem;font-weight:600}.hero-balance__amount{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:12px 0 10px;font-size:clamp(2.25rem,10vw,3.25rem);line-height:1}.hero-balance__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.budget-preview-list{flex-direction:column;gap:12px;display:flex}.budget-preview-list__item{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:16px;display:flex}.budget-preview-list__top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.budget-preview-list__title-group{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.budget-preview-list__title-group h3{color:var(--color-text-primary);margin:0;font-size:.98rem;font-weight:600}.budget-preview-list__amount{color:var(--color-text-primary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.95rem}.budget-preview-list__meta{color:var(--color-text-muted);font-size:.84rem}.budget-preview-list__badge{border-radius:var(--radius-pill);letter-spacing:.01em;border:1px solid #0000;padding:4px 8px;font-size:.72rem;font-weight:700;display:inline-block}.budget-preview-list__badge--paid{background:var(--color-success-soft);color:#7ed8a8;border-color:#2aa36b59}.budget-preview-list__badge--upcoming{background:var(--color-info-soft);color:#adc6e2;border-color:#5c84b159}.budget-preview-list__badge--due-today{color:#e4c482;background:#c79a4524;border-color:#c79a4566}.budget-preview-list__badge--overdue{background:var(--color-danger-soft);color:#f3cbc7;border-color:#c96a6366}.budget-preview-list__badge--unpaid{color:#9eb5ce;background:#5c84b11f;border-color:#5c84b147}@media (width<=420px){.budget-preview-list__top{flex-direction:column}.budget-preview-list__amount{font-size:.92rem}}.transaction-preview-list{flex-direction:column;gap:12px;display:flex}.transaction-preview-list__item{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);padding:16px}.transaction-preview-list__content{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.transaction-preview-list__details{min-width:0}.transaction-preview-list__title{color:var(--color-text-primary);overflow-wrap:anywhere;margin:0;font-size:.98rem;font-weight:600;line-height:1.35}.transaction-preview-list__date{color:var(--color-text-muted);margin-top:4px;font-size:.84rem}.transaction-preview-list__amount{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.95rem;font-weight:700}.transaction-preview-list__amount--expense{color:var(--color-text-primary)}.transaction-preview-list__amount--income{color:#7ed8a8}@media (width<=420px){.transaction-preview-list__content{flex-direction:column}.transaction-preview-list__amount{font-size:.92rem}}.home-page__planning{gap:var(--space-5)}.home-page__budget-preview{gap:14px}.home-page__payments{gap:16px}.budget-progress{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);padding:20px}.budget-progress:hover{border-color:var(--color-border-strong);background:var(--color-surface-hover)}.budget-progress__header{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:0;display:flex}.budget-progress__title-group{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.budget-progress__title-group h3{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:600}.budget-progress__meta{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:10px;font-size:.85rem;font-weight:600;display:flex}.budget-progress__chevron{color:var(--color-text-muted);transition:transform .18s;display:inline-block}.budget-progress__chevron--open{transform:rotate(180deg)}.budget-progress__bar{border-radius:var(--radius-pill);background:var(--color-surface-inset);height:10px;overflow:hidden;box-shadow:inset 0 1px 3px #00000057}.budget-progress__fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-primary-soft) 0%, var(--color-primary) 100%);height:100%;transition:width .22s}.budget-progress__due-day{color:var(--color-text-muted);margin:8px 0 0;font-size:.875rem}.budget-progress__badge{border-radius:var(--radius-pill);letter-spacing:.01em;border:1px solid #0000;padding:4px 8px;font-size:.72rem;font-weight:700;display:inline-block}.budget-progress__badge--paid{background:var(--color-success-soft);color:#7ed8a8;border-color:#2aa36b59}.budget-progress__badge--upcoming{background:var(--color-info-soft);color:#adc6e2;border-color:#5c84b159}.budget-progress__badge--due-today{color:#e4c482;background:#c79a4524;border-color:#c79a4566}.budget-progress__badge--overdue{background:var(--color-danger-soft);color:#f3cbc7;border-color:#c96a6366}.budget-progress__badge--unpaid{color:#9eb5ce;background:#5c84b11f;border-color:#5c84b147}.budget-progress__details{opacity:0;transition:height .26s,opacity .18s;overflow:hidden}.budget-progress__details-inner{opacity:0;padding-top:12px;transition:transform .26s,opacity .18s;transform:translateY(-8px)}.budget-progress__details[style*="height: 0px"] .budget-progress__details-inner{opacity:0;transform:translateY(-8px)}.budget-progress__details:not([style*="height: 0px"]) .budget-progress__details-inner{opacity:1;transform:translateY(0)}.budget-progress__amount{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;margin:0;line-height:1.5}.budget-progress__status{margin:6px 0 0;font-size:.8rem;font-weight:600;line-height:1.45}.budget-progress__status--under{color:#7ed8a8}.budget-progress__status--over{color:#f0b8b2}.budget-progress__actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.budget-progress__edit{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font:inherit;cursor:pointer;padding:9px 12px;font-weight:600}.budget-progress__edit:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.budget-progress__delete{border-radius:var(--radius-md);background:var(--color-danger-soft);color:#f3cbc7;font:inherit;cursor:pointer;border:1px solid #c96a6373;padding:9px 12px;font-weight:600}.budget-progress__delete:hover:not(:disabled){color:#ffe7e4;background:#c96a6338;border-color:#c96a63b3}.budget-progress__edit:disabled,.budget-progress__delete:disabled,.budget-progress__header:disabled{border-color:var(--color-disabled-border);color:var(--color-disabled-text)}@media (width<=420px){.budget-progress__meta{gap:8px}.budget-progress__actions{justify-content:stretch}.budget-progress__edit,.budget-progress__delete{flex:1}}.budget-management-content{gap:14px}.budgets-page__header{flex-direction:column;gap:14px;display:flex}.budgets-page__back{width:fit-content}.budgets-page__heading{justify-content:space-between;align-items:flex-end;gap:var(--space-4);display:flex}.budgets-page__eyebrow{color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase;margin-bottom:6px;font-size:.82rem;font-weight:600}.budgets-page__heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.95rem,7vw,2.35rem);line-height:1.05}@media (width<=480px){.budgets-page__heading{flex-direction:column;align-items:flex-start}}.transaction-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.transaction-item:last-child{border-bottom:0;padding-bottom:0}.transaction-item__title{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:600}.transaction-item__date{color:var(--color-text-muted);margin-top:4px;font-size:.875rem}.transaction-item__amount{color:var(--color-text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:700}.transaction-item__amount--income{color:#8bd7b0}.transaction-item__amount--expense{color:#e0b1ac}.transaction-item__content{justify-content:space-between;align-items:center;gap:18px;width:100%;display:flex}.transaction-item__actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.transaction-item__edit{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text-primary);font:inherit;cursor:pointer;padding:7px 10px;font-size:.875rem;font-weight:600}.transaction-item__edit:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.transaction-item__delete{border-radius:var(--radius-sm);color:#f1c1bc;font:inherit;cursor:pointer;background:#c96a631a;border:1px solid #c96a6373;padding:7px 10px;font-size:.875rem;font-weight:600}.transaction-item__delete:hover:not(:disabled){color:#ffe7e4;background:#c96a6338;border-color:#c96a63b3}.transaction-item__edit:disabled,.transaction-item__delete:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}@media (width<=420px){.transaction-item__content{align-items:flex-start;gap:14px}.transaction-item__actions{flex-direction:column;align-items:flex-end;gap:8px}}.transaction-management-content{gap:14px}.payments-page__header{flex-direction:column;gap:14px;display:flex}.payments-page__back{width:fit-content}.payments-page__heading{justify-content:space-between;align-items:flex-end;gap:var(--space-4);display:flex}.payments-page__eyebrow{color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase;margin-bottom:6px;font-size:.82rem;font-weight:600}.payments-page__heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.95rem,7vw,2.35rem);line-height:1.05}@media (width<=480px){.payments-page__heading{flex-direction:column;align-items:flex-start}}.records-page__header{flex-direction:column;gap:6px;display:flex}.records-page__eyebrow{color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.82rem;font-weight:600}.records-page__header h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.95rem,7vw,2.35rem);line-height:1.05}.records-page__tablist{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:linear-gradient(180deg, var(--color-surface-raised) 0%, var(--color-surface) 100%);box-shadow:var(--shadow-sm);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;display:grid}.records-page__tab{border-radius:var(--radius-lg);min-height:48px;color:var(--color-text-muted);letter-spacing:-.01em;background:0 0;border:1px solid #0000;padding:11px 14px;font-weight:600}.records-page__tab:hover{color:var(--color-text-primary);background:#ffffff08}.records-page__tab--active{background:var(--color-primary-soft);color:var(--color-text-primary);border-color:#1f8f6a47;font-weight:700;box-shadow:inset 0 1px #ffffff0f,0 8px 16px #0a251d2e}.records-page__panel{flex-direction:column;gap:14px;display:flex}.records-page__actions{justify-content:flex-end;display:flex}@media (width<=480px){.records-page__actions{justify-content:flex-start}}.add-record-page__header{flex-direction:column;gap:6px;display:flex}.add-record-page__eyebrow{color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.82rem;font-weight:600}.add-record-page__header h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.95rem,7vw,2.35rem);line-height:1.05}.add-record-page__tablist{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:linear-gradient(180deg, var(--color-surface-raised) 0%, var(--color-surface) 100%);box-shadow:var(--shadow-sm);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;display:grid}.add-record-page__tab{border-radius:var(--radius-lg);min-height:48px;color:var(--color-text-muted);letter-spacing:-.01em;background:0 0;border:1px solid #0000;padding:11px 14px;font-weight:600}.add-record-page__tab:hover:not(:disabled){color:var(--color-text-primary);background:#ffffff08}.add-record-page__tab--active{background:var(--color-primary-soft);color:var(--color-text-primary);border-color:#1f8f6a47;font-weight:700;box-shadow:inset 0 1px #ffffff0f,0 8px 16px #0a251d2e}.add-record-page__tab:disabled{cursor:not-allowed}.add-record-page__form-card{min-height:0}@media (width<=480px){.auth-card{border-radius:24px;padding:24px 20px}.auth-card__footer{flex-direction:column;align-items:flex-start}}.auth-page{min-height:100vh;padding-bottom:var(--space-6);justify-content:center}.auth-card{gap:var(--space-5);border:1px solid var(--color-border);background:linear-gradient(180deg, #ffffff0a 0%, #ffffff03 100%), var(--color-surface);box-shadow:var(--shadow-lg);border-radius:28px;flex-direction:column;padding:28px 24px;display:flex}.auth-card__eyebrow{color:var(--color-primary-hover);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:700}.auth-card__title{letter-spacing:-.05em;margin:0;font-size:clamp(2rem,7vw,2.6rem);line-height:1.02}.auth-card__subtitle{color:var(--color-text-secondary);line-height:1.6}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-form__error,.auth-form__field-error{border-radius:var(--radius-md);margin:0;padding:12px 14px;line-height:1.45}.auth-form__error{color:#ffd9d5;background:#c96a6326;border:1px solid #c96a636b}.auth-form__field{flex-direction:column;gap:10px;display:flex}.auth-form__field span{color:var(--color-text-primary);font-weight:600}.auth-form__field input{border:1px solid var(--color-border);background:var(--color-surface-inset);width:100%;color:var(--color-text-primary);border-radius:16px;padding:14px 15px;box-shadow:inset 0 1px #ffffff05}.auth-form__field input:hover:not(:disabled){border-color:var(--color-border-strong)}.auth-form__field input:disabled{border-color:var(--color-disabled-border);background:var(--color-disabled-bg);color:var(--color-disabled-text)}.auth-form__field-error{color:#f3cbc7;padding:0}.auth-form__submit{background:var(--color-primary);color:var(--color-text-inverse);letter-spacing:-.01em;border:1px solid #0000;border-radius:18px;padding:13px 16px;font-weight:700;box-shadow:inset 0 1px #ffffff1a,0 16px 28px #0a251d4d}.auth-form__submit:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.auth-form__submit:disabled,.auth-card__link:disabled{color:var(--color-disabled-text)}.auth-card__footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid #ffffff0d;display:flex}.auth-card__footer p{color:var(--color-text-muted)}.auth-card__link{color:var(--color-primary-hover);background:0 0;border:0;padding:0;font-weight:700}.auth-card__link:hover:not(:disabled){color:#7cd1af}@media (width<=480px){.auth-card{border-radius:24px;padding:24px 20px}.auth-card__footer{flex-direction:column;align-items:flex-start}}
