:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f6f2;--surface:#fff;--surface-secondary:#f1f3ee;--surface-soft:#faf9f6;--primary:#9cafaa;--primary-light:#dce7e3;--secondary:#c8b6d8;--secondary-light:#eee7f4;--accent:#e5c6a8;--accent-light:#f5e9dd;--income:#8fb9a8;--income-background:#e2f0ea;--expense:#d7a3a3;--expense-background:#f6e5e5;--transfer:#9eb5cf;--transfer-background:#e7eef6;--debt:#c5aa83;--debt-background:#f2eadf;--warning:#d5b176;--danger:#c98989;--text-primary:#3f4745;--text-secondary:#7b8481;--text-muted:#a2aaa7;--border:#e2e5e1;--focus:#7f9c95;--radius-small:10px;--radius-medium:16px;--radius-large:24px;--radius-round:999px;--shadow-soft:0 8px 30px #3f47450f;--shadow-lifted:0 14px 42px #3f474517;--duration-fast:.18s;--duration-base:.22s;--font-family:Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#202825;--surface:#29312e;--surface-secondary:#323b37;--surface-soft:#26302c;--primary:#9cafaa;--primary-light:#334841;--secondary:#b9a6ca;--secondary-light:#3f3648;--accent:#d9b895;--accent-light:#43382c;--income:#94c4b0;--income-background:#2f4b42;--expense:#d7a3a3;--expense-background:#4d3738;--transfer:#9eb5cf;--transfer-background:#324153;--debt:#cfb180;--debt-background:#463d2f;--warning:#d5b176;--danger:#d09191;--text-primary:#eef2ee;--text-secondary:#b7c0bc;--text-muted:#8f9b96;--border:#3e4944;--focus:#b5cec7;--shadow-soft:0 8px 30px #0c121038;--shadow-lifted:0 14px 42px #0c121047}*{box-sizing:border-box}html{background:var(--background);min-width:320px;color:var(--text-primary);font-family:var(--font-family)}body{background:linear-gradient(135deg, #dce7e38a, transparent 38%), linear-gradient(225deg, #f5e9dd7a, transparent 32%), var(--background);min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{border:0}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid color-mix(in srgb, var(--focus), transparent 35%);outline-offset:3px}#root{min-height:100vh}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--border);border-radius:var(--radius-large);background:color-mix(in srgb, var(--surface), transparent 2%);width:min(100%,420px);box-shadow:var(--shadow-lifted);gap:18px;padding:28px;display:grid}.auth-card__icon{background:var(--primary-light);width:52px;height:52px;color:var(--text-primary);border-radius:18px;justify-content:center;align-items:center;display:inline-flex}.auth-card__copy{gap:6px;display:grid}.auth-card__copy p,.auth-card__message{color:var(--text-secondary);margin:0;line-height:1.55}.auth-card__copy p{font-size:13px;font-weight:700}.auth-card__copy h1{color:var(--text-primary);margin:0;font-size:30px;line-height:1.1}.auth-card__form{gap:14px;display:grid}.app-shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:color-mix(in srgb, var(--surface), transparent 8%);border-right:1px solid var(--border);flex-direction:column;gap:22px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.sidebar__brand,.sidebar__footer,.user-chip{align-items:center;gap:12px;display:flex}.sidebar__brand strong,.user-chip strong{color:var(--text-primary);font-size:15px;line-height:1.2;display:block}.sidebar__brand span,.user-chip span{color:var(--text-secondary);font-size:12px;line-height:1.4;display:block}.sidebar__logo,.user-chip__avatar{background:var(--primary-light);width:44px;height:44px;color:var(--text-primary);border-radius:15px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.sidebar__add-link,.nav-link,.bottom-nav__link{border-radius:var(--radius-medium);min-height:44px;color:var(--text-secondary);transition:background-color var(--duration-base) ease, color var(--duration-base) ease, transform var(--duration-base) ease;align-items:center;gap:10px;display:flex}.sidebar__add-link{background:var(--primary);color:#fff;box-shadow:var(--shadow-soft);justify-content:center;font-weight:700}.sidebar__add-link:hover,.nav-link:hover,.bottom-nav__link:hover{transform:translateY(-1px)}.sidebar__nav{gap:5px;display:grid}.nav-link{padding:0 14px;font-size:14px;font-weight:600}.nav-link.is-active,.nav-link:hover{background:var(--primary-light);color:var(--text-primary)}.sidebar__footer{border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface-soft);justify-content:space-between;margin-top:auto;padding:12px}.app-content{width:min(100%,1440px);padding:32px}.page{gap:24px;display:grid}.page-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start;gap:18px;display:grid}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.ui-button{border-radius:var(--radius-round);cursor:pointer;min-height:42px;color:var(--text-primary);background:var(--surface-secondary);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.ui-button:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.ui-button:disabled{cursor:not-allowed;opacity:.65;transform:none}.ui-button--primary{background:var(--primary);color:#fff}.ui-button--secondary{background:var(--secondary-light)}.ui-button--ghost{color:var(--text-secondary);background:0 0}.ui-button--danger{background:var(--expense-background);color:var(--danger)}.ui-button--small{min-height:34px;padding:0 12px;font-size:13px}.ui-button--large{min-height:50px;padding:0 20px}.icon-button{width:42px;min-width:42px;padding:0}.ui-card{border:1px solid var(--border);border-radius:var(--radius-large);background:color-mix(in srgb, var(--surface), transparent 3%);box-shadow:var(--shadow-soft);transition:transform var(--duration-base) ease, box-shadow var(--duration-base) ease, border-color var(--duration-base) ease}.ui-card:hover{box-shadow:var(--shadow-lifted);border-color:color-mix(in srgb, var(--primary), var(--border) 65%);transform:translateY(-2px)}.ui-card__content{padding:20px}.stat-card{gap:12px;min-height:138px;display:grid}.stat-card__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.stat-card__label{color:var(--text-secondary);margin:0;font-size:13px;font-weight:700}.stat-card__value{color:var(--text-primary);font-size:26px;font-weight:800;line-height:1.15}.stat-card__description{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-header__copy{gap:8px;display:grid}.page-header__eyebrow{color:var(--text-muted);margin:0;font-size:13px;font-weight:700}.page-header h1{color:var(--text-primary);margin:0;font-size:34px;line-height:1.1}.page-header p{max-width:620px;color:var(--text-secondary);margin:0;font-size:15px;line-height:1.6}.page-header__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.badge{border-radius:var(--radius-round);width:fit-content;min-height:28px;color:var(--text-primary);background:var(--surface-secondary);align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.badge--income{background:var(--income-background);color:var(--income)}.badge--expense{background:var(--expense-background);color:var(--danger)}.badge--transfer{background:var(--transfer-background);color:var(--transfer)}.badge--debt{background:var(--debt-background);color:var(--debt)}.empty-state{border:1px dashed color-mix(in srgb, var(--border), var(--primary) 25%);border-radius:var(--radius-large);background:color-mix(in srgb, var(--surface), transparent 15%);justify-items:start;gap:12px;min-height:220px;padding:26px;display:grid}.empty-state__icon{background:var(--accent-light);width:46px;height:46px;color:var(--text-primary);border-radius:15px;justify-content:center;align-items:center;display:inline-flex}.empty-state h2,.chart-card h2{color:var(--text-primary);margin:0;font-size:18px}.empty-state p,.chart-card p{color:var(--text-secondary);margin:0;line-height:1.55}.progress-bar{border-radius:var(--radius-round);background:var(--surface-secondary);width:100%;height:10px;overflow:hidden}.progress-bar__value{border-radius:inherit;background:var(--primary);height:100%;transition:width var(--duration-base) ease}.form-field{gap:7px;display:grid}.form-field label{color:var(--text-secondary);font-size:13px;font-weight:700}.form-field input,.form-field select{border:1px solid var(--border);border-radius:var(--radius-medium);background:var(--surface);width:100%;min-height:44px;color:var(--text-primary);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, background-color var(--duration-fast) ease;padding:0 14px}.form-field input:focus,.form-field select:focus{border-color:var(--focus);box-shadow:0 0 0 4px color-mix(in srgb, var(--focus), transparent 82%);outline:none}.form-field__hint{color:var(--text-muted);font-size:12px}.form-field__error{color:var(--danger);font-size:12px}.form-stack{gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.form-error{color:var(--danger);margin:0;font-size:13px;font-weight:700}.form-note,.settings-summary p{color:var(--text-secondary);margin:0;line-height:1.55}.checkbox-field{color:var(--text-secondary);align-items:center;gap:10px;font-size:14px;font-weight:700;display:flex}.checkbox-field input{width:18px;height:18px;accent-color:var(--primary)}.color-swatch-list{flex-wrap:wrap;gap:10px;display:flex}.color-swatch{cursor:pointer;width:34px;height:34px;transition:border-color var(--duration-fast) ease, transform var(--duration-fast) ease;border:3px solid #0000;border-radius:50%}.color-swatch.is-selected{border-color:var(--text-primary);transform:scale(1.06)}.category-entry{border:1px solid var(--border);border-radius:var(--radius-large);background:color-mix(in srgb, var(--surface), transparent 4%);box-shadow:var(--shadow-soft);gap:20px;padding:22px;display:grid}.category-entry__top{text-align:center;justify-content:center;align-items:flex-start;gap:16px;display:flex}.category-entry__top>div,.category-entry .period-control,.category-entry .period-button{width:100%}.category-entry .period-button{text-align:center;justify-content:center}.category-entry__top p{color:var(--text-secondary);text-transform:capitalize;margin:0 0 5px;font-size:13px;font-weight:700}.category-entry__top h2{color:var(--text-primary);margin:0;font-size:24px;line-height:1.15}.period-control{align-items:center;display:inline-flex;position:relative}.period-button{min-height:42px;color:var(--text-primary);cursor:pointer;text-align:left;text-transform:capitalize;transition:color var(--duration-fast) ease;background:0 0;border-radius:0;align-items:center;padding:0;font-size:29px;font-weight:800;line-height:1.15;display:inline-flex}.period-button:hover{color:var(--focus)}.category-entry--income .period-button{color:color-mix(in srgb, var(--income), var(--text-primary) 25%)}.category-entry--expense .period-button{color:color-mix(in srgb, var(--expense), var(--text-primary) 25%)}.month-action-button{color:var(--text-primary);text-transform:capitalize}.period-picker{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.category-entry__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.category-entry__body{grid-template-columns:minmax(180px,.3fr) minmax(0,1fr);align-items:center;gap:22px;display:grid}.category-entry.is-period-next .category-entry__body,.category-entry.is-period-next .category-entry__top{animation:.26s period-slide-next}.category-entry.is-period-prev .category-entry__body,.category-entry.is-period-prev .category-entry__top{animation:.26s period-slide-prev}.category-entry__summary{border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface-soft);text-align:left;justify-items:start;gap:4px;width:100%;margin:0;padding:18px;display:grid}.category-entry__summary span,.category-entry__summary small{color:var(--text-secondary)}.category-entry__summary strong{color:var(--text-primary);font-size:28px;line-height:1.15}.category-entry__grid{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));align-items:start;gap:16px 18px;display:grid}.category-entry__empty{border:1px dashed var(--border);border-radius:var(--radius-large);background:var(--surface-soft);grid-column:1/-1;justify-items:start;gap:10px;padding:18px;display:grid}.category-entry__empty p{color:var(--text-secondary);margin:0}.category-entry__group{justify-items:center;gap:8px;display:grid}.category-tile{border-radius:var(--radius-large);width:100%;min-height:168px;color:var(--text-primary);cursor:pointer;transition:background-color var(--duration-fast) ease, transform var(--duration-fast) ease;background:0 0;justify-items:center;gap:6px;padding:4px;display:grid}.category-tile:hover{background:var(--surface-soft);transform:translateY(-2px)}.category-tile__name{max-width:100%;color:var(--text-primary);text-align:center;font-size:15px;font-weight:700;line-height:1.25}.category-tile__amount{color:var(--text-muted);font-size:13px;font-weight:700}.category-tile__icon{background:color-mix(in srgb, var(--category-color), transparent 55%);width:78px;height:78px;color:color-mix(in srgb, var(--category-color), #3f4745 35%);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.category-tile strong{color:var(--text-primary);font-size:14px}.subcategory-list{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.subcategory-list button{border-radius:var(--radius-round);background:var(--surface-secondary);min-height:30px;color:var(--text-secondary);cursor:pointer;padding:0 10px;font-size:12px;font-weight:700}.subcategory-list button:hover{color:var(--text-primary);background:var(--primary-light)}.entity-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.entity-list{gap:12px;display:grid}.entity-card .ui-card__content,.account-card .ui-card__content{gap:16px;display:grid}.entity-card__header,.entity-row .ui-card__content{align-items:center;gap:14px;display:flex}.entity-card__header{justify-content:space-between}.entity-card__icon,.entity-row__icon{background:var(--primary-light);width:42px;height:42px;color:var(--text-primary);border-radius:14px;flex:none;justify-content:center;align-items:center;display:inline-flex}.entity-row__icon--income{background:var(--income-background);color:var(--income)}.entity-row__icon--expense{background:var(--expense-background);color:var(--danger)}.entity-row__icon--transfer{background:var(--transfer-background);color:var(--transfer)}.entity-row__icon--debt{background:var(--debt-background);color:var(--debt)}.entity-card__body,.entity-row__main{gap:5px;min-width:0;display:grid}.entity-card__body h2,.entity-row__main h2{color:var(--text-primary);margin:0;font-size:17px;line-height:1.25}.entity-card__body p,.entity-row__main p,.entity-card__meta,.entity-row__side span{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.45}.entity-card__body strong{color:var(--text-primary);font-size:24px;line-height:1.15}.entity-row__main{flex:auto}.entity-row__side{justify-items:end;gap:4px;margin-left:auto;display:grid}.entity-row__side strong{color:var(--text-primary);white-space:nowrap}.entity-actions{flex-wrap:wrap;gap:8px;display:flex}.entity-actions--row{justify-content:flex-end}.settings-summary{gap:12px;display:grid}.tabs{border-radius:var(--radius-round);background:var(--surface-secondary);gap:4px;padding:4px;display:inline-flex}.tabs__button{border-radius:var(--radius-round);min-height:34px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;background:0 0;align-items:center;gap:7px;padding:0 13px;font-weight:700;display:inline-flex}.tabs__button.is-active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-soft)}.modal-backdrop,.drawer-backdrop{z-index:40;animation:fade-in var(--duration-base) ease;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#3f47453d;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal,.drawer{border-radius:var(--radius-large);background:var(--surface);width:min(100%,560px);box-shadow:var(--shadow-lifted);animation:rise-in var(--duration-base) ease}.modal{flex-direction:column;max-height:calc(100dvh - 40px);display:flex;overflow:hidden}.modal__header,.drawer__header{flex:none;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 20px 0;display:flex}.modal__header h2,.drawer__header h2{margin:0;font-size:21px}.modal__content,.drawer__content{padding:20px}.modal__content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-y:auto}.drawer-backdrop{justify-items:end;padding:0}.drawer{border-radius:var(--radius-large) 0 0 var(--radius-large);max-width:520px;height:100%;animation:slide-in var(--duration-base) ease}.dropdown{display:inline-flex;position:relative}.dropdown__menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius-medium);background:var(--surface);min-width:220px;box-shadow:var(--shadow-lifted);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.dropdown__item{border-radius:var(--radius-small);min-height:38px;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;padding:0 10px}.dropdown__item:hover{background:var(--surface-secondary)}.tooltip{display:inline-flex;position:relative}.tooltip:hover:after{z-index:30;border-radius:var(--radius-small);background:var(--text-primary);width:max-content;max-width:220px;color:var(--surface);content:attr(data-tooltip);padding:7px 10px;font-size:12px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.filter-panel{border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface-soft);gap:14px;padding:16px;display:grid}.chart-card{min-height:280px}.chart-card__body{align-content:center;gap:10px;min-height:220px;display:grid}.bottom-nav{z-index:30;overscroll-behavior-x:contain;border:1px solid var(--border);border-radius:var(--radius-large);background:color-mix(in srgb, var(--surface), transparent 2%);box-shadow:var(--shadow-lifted);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;padding:8px;display:none;position:fixed;bottom:14px;left:14px;right:14px;overflow-x:auto}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav__link{flex-direction:column;flex:0 0 78px;justify-content:center;gap:4px;min-height:52px;padding:0 6px;font-size:11px;font-weight:700}.bottom-nav__link.is-active{background:var(--primary-light);color:var(--text-primary)}.bottom-nav__link.is-add{background:var(--primary);color:#fff;min-height:58px;box-shadow:var(--shadow-soft);border-radius:19px;margin-top:-22px}.floating-add-button{z-index:20;display:none;position:fixed;bottom:28px;right:28px}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes slide-in{0%{opacity:0;transform:translate(18px)}}@keyframes period-slide-next{0%{opacity:.2;transform:translate(18px)}}@keyframes period-slide-prev{0%{opacity:.2;transform:translate(-18px)}}@media (width<=1100px){.app-shell{grid-template-columns:248px minmax(0,1fr)}.app-content{padding:24px}.metrics-grid,.section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-grid{grid-template-columns:1fr}.entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.app-shell{display:block}.sidebar{display:none}.app-content{width:100%;padding:22px 16px 124px}.page-header{display:grid}.page-header h1{font-size:28px}.page-header__actions{justify-content:flex-start}.metrics-grid,.section-grid,.category-entry__body,.entity-grid,.form-grid{grid-template-columns:1fr}.category-entry{padding:16px}.category-entry__top{display:grid}.period-button{font-size:25px}.category-entry__actions{justify-content:flex-start}.category-entry__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-tile{min-height:150px}.category-tile__icon{width:70px;height:70px}.entity-row .ui-card__content{flex-wrap:wrap;align-items:flex-start}.entity-row__side{justify-items:start;margin-left:56px}.entity-actions--row{justify-content:flex-start;margin-left:56px}.bottom-nav{display:flex}.modal-backdrop{align-items:start;padding:12px}.modal{max-height:calc(100dvh - 24px);margin:0}.modal__header{padding:18px 18px 0}.modal__content{padding:18px}}
