:root{color:#e5eefb;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f172a;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{background:#0f172a}body{background:#0f172a;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{cursor:pointer}#root{min-height:100vh}.app-shell{color:#16352c;box-sizing:border-box;background:linear-gradient(#fff 0%,#f2faf5 100%);min-height:100vh;padding:20px 16px 88px}.topbar{justify-content:space-between;align-items:center;max-width:480px;margin:0 auto 18px;display:flex}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#17805c;margin:0;font-size:12px}.topbar h1{margin:6px 0 0;font-size:28px}.mini-button{color:#fff;background:#17805c;border:none;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;padding:10px 14px;font-weight:700;display:inline-flex}.menu-icon{font-size:18px;line-height:1}.menu-wrap{position:relative}.app-menu{z-index:5;background:#fff;border:1px solid #d9eee2;border-radius:14px;min-width:178px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #17805c29}.app-menu button{color:#285846;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;display:flex}.app-menu-icon{color:#17805c;background:#e3f6eb;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-family:Segoe UI Symbol,Noto Sans Symbols,sans-serif;font-size:17px;font-weight:700;display:inline-flex}.app-menu button:hover{color:#13734f;background:#e3f6eb}.content{max-width:480px;margin:0 auto}.hidden-panel{display:none!important}.archive-panel{background:#fff;border:none;border-radius:0;padding:0}.archive-heading h2{margin:0;font-size:21px}.archive-heading p:last-child{color:#6b8b7c;margin:6px 0 18px;font-size:12px}.archive-year-group+.archive-year-group{margin-top:22px}.archive-year-group>h3{color:#13734f;margin:0 0 10px;font-size:20px}.archive-month-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.month-card{cursor:pointer;background:#fbfefc;border:1px solid #d9eee2;border-radius:16px;padding:11px;transition:border-color .16s,box-shadow .16s,transform .16s}.month-card:hover{border-color:#8ed5ac;transform:translateY(-1px);box-shadow:0 8px 18px #17805c1a}.month-card-header{text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;margin-bottom:12px;padding:0;display:flex}.month-card-header h4{color:#16352c;text-transform:capitalize;margin:0;font-size:16px}.month-card-header span{color:#6b8b7c;font-size:11px}.month-card-summary{justify-content:center;align-items:center;display:flex}.month-card-metrics{grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;display:grid}.month-metric{background:#fff;border-radius:10px;min-width:0;padding:7px 4px}.month-metric span{color:#6b8b7c;margin-bottom:4px;font-size:10px;display:block}.month-metric strong{letter-spacing:-.02em;white-space:nowrap;font-size:10px;display:block}.month-expense{color:#d95b62}.month-income{color:#17805c}.month-chevron{line-height:1;color:#17805c!important;font-size:18px!important}.month-detail-panel{min-height:300px}.back-to-archive{color:#17805c;cursor:pointer;background:0 0;border:none;margin-bottom:18px;padding:0;font-size:13px;font-weight:700}.month-detail-heading{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.month-detail-heading h2{color:#16352c;text-transform:capitalize;margin:0;font-size:25px}.month-detail-grid{padding-bottom:4px}.day-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.day-grid.collapsed{display:none}.day-cell{min-height:52px;color:inherit;text-align:left;background:#fff;border:1px solid #edf7f1;border-radius:8px;padding:5px}.day-cell.has-records{cursor:pointer;background:#eaf8ef;border-color:#a8dabc}.day-cell.has-records:hover{border-color:#17805c}.day-number{color:#6b8b7c;font-size:11px}.day-details{flex-direction:column;gap:2px;margin-top:3px;font-size:8px;line-height:1.1;display:flex}.day-details span{color:#6b8b7c}.day-expense{color:#d95b62}.day-income{color:#17805c}.day-history{border-top:1px solid #d9eee2;margin-top:12px;padding-top:12px}.day-history-heading{color:#13734f;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.day-history-heading span{color:#6b8b7c;font-size:11px}.day-history-row{border-top:1px solid #edf7f1;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:12px;display:flex}.day-history-row div{flex-direction:column;gap:2px;display:flex}.day-history-row small{color:#6b8b7c}.quick-add-page .topbar,.quick-add-page .content,.quick-add-page .fab{display:none}.quick-add-page .modal-backdrop{align-items:center}.quick-add-page .modal-card{width:min(100%,460px)}.quick-add-page .toggle-row{display:none}.filter-panel{background:#fff;border:1px solid #d9eee2;border-radius:18px;margin-bottom:16px;padding:12px}.period-toggle{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.filter-button{color:#2c5a49;background:#f4fbf7;border:1px solid #d9eee2;border-radius:10px;padding:8px 6px;font-size:12px}.filter-button.active{color:#fff;background:#17805c;border-color:#17805c}.category-filter{color:#356252;flex-direction:column;gap:8px;font-size:13px;display:flex}.category-filter select,.expense-form input,.expense-form select{color:#16352c;background:#fff;border:1px solid #cfe6d8;border-radius:12px;padding:12px 14px;font-size:16px}.category-filter select{border-radius:10px;padding:10px 12px;font-size:14px}.analytics-panel{background:#fff;border:1px solid #d9eee2;border-radius:22px;margin-bottom:18px;padding:18px}.analytics-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.analytics-heading .eyebrow{margin-bottom:4px}.analytics-heading h2{margin:0;font-size:21px}.analytics-heading p:last-child{color:#6b8b7c;margin:6px 0 0;font-size:12px}.analytics-total{color:#17805c;white-space:nowrap}.analytics-filter{color:#4d7965;border-bottom:1px solid #edf7f1;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 0 16px;font-size:12px;display:flex}.analytics-period-buttons{gap:6px;display:flex}.analytics-period-buttons .filter-button{padding:7px 9px;font-size:11px}.donut-layout{grid-template-columns:170px 1fr;align-items:center;gap:18px;padding:4px 0 18px;display:grid}.donut-chart{border-radius:50%;justify-content:center;align-items:center;width:170px;height:170px;display:flex;transform:rotate(-8deg)}.donut-hole{text-align:center;background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:105px;height:105px;display:flex;transform:rotate(8deg)}.donut-hole strong{color:#16352c;text-overflow:ellipsis;white-space:nowrap;max-width:90px;font-size:14px;overflow:hidden}.donut-hole span{color:#6b8b7c;margin-top:3px;font-size:10px}.donut-legend{flex-direction:column;gap:10px;display:flex}.donut-legend-row{color:#285846;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.donut-legend-label{align-items:center;gap:8px;min-width:0;display:flex}.donut-legend-label i{border-radius:50%;flex:none;width:10px;height:10px}.donut-legend-row strong{color:#16352c}.top-expense{background:#e3f6eb;border-radius:16px;margin-bottom:16px;padding:13px 14px}.top-expense span,.top-expense small{color:#4d7965;font-size:12px;display:block}.top-expense strong{color:#13734f;margin:3px 0;font-size:20px;display:block}.analytics-list{flex-direction:column;gap:13px;display:flex}.analytics-row-header{color:#285846;justify-content:space-between;gap:12px;font-size:13px;display:flex}.analytics-row-header strong{color:#16352c}.analytics-bar-track{background:#edf7f1;border-radius:999px;height:8px;margin:7px 0 4px;overflow:hidden}.analytics-bar{border-radius:inherit;background:linear-gradient(90deg,#17805c,#55c98a);height:100%;display:block}.analytics-row small{color:#6b8b7c;font-size:11px}.empty-analytics{color:#6b8b7c;margin:0;font-size:13px}.settings-panel{background:#fff;border:1px solid #d9eee2;border-radius:22px;padding:18px}.settings-heading h2{margin:0;font-size:21px}.settings-heading p:last-child{color:#6b8b7c;margin:6px 0 18px;font-size:12px}.opening-balance-setting{background:#e3f6eb;border-radius:16px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:14px;display:flex}.opening-balance-setting strong{color:#13734f;font-size:15px;display:block}.opening-balance-setting p{color:#4d7965;margin:4px 0 0;font-size:11px}.balance-input-wrap{color:#17805c;background:#fff;border:1px solid #a8dabc;border-radius:10px;flex:0 0 135px;align-items:center;gap:5px;padding:0 10px;font-weight:700;display:flex}.balance-input-wrap input{color:#16352c;background:0 0;border:none;outline:none;width:100%;min-width:0;padding:10px 0;font-size:14px;font-weight:700}.category-add-form{gap:8px;margin-bottom:16px;display:flex}.category-add-form input,.category-edit-input{color:#16352c;background:#fff;border:1px solid #cfe6d8;border-radius:10px;flex:1;min-width:0;padding:10px 12px;font-size:14px}.category-add-form button,.category-save{color:#fff;background:#17805c;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700}.category-settings-list{flex-direction:column;gap:8px;display:flex}.category-settings-row{color:#285846;border:1px solid #edf7f1;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:7px 8px 7px 12px;font-size:14px;display:flex}.category-settings-actions{gap:6px;display:flex}.category-edit,.category-remove,.category-cancel{background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:12px}.category-edit{color:#17805c}.category-remove{color:#d95b62}.category-cancel{color:#6b8b7c}.category-edit:hover{background:#e3f6eb}.category-remove:hover{background:#fff0f0}@media (width<=390px){.opening-balance-setting{flex-direction:column;align-items:stretch}.balance-input-wrap{flex-basis:auto}.category-settings-row{flex-direction:column;align-items:flex-start}.category-settings-actions{justify-content:flex-end;width:100%}.analytics-filter{flex-direction:column;align-items:flex-start}.analytics-period-buttons{width:100%}.analytics-period-buttons .filter-button{flex:1}.donut-layout{grid-template-columns:1fr;justify-items:center}.donut-legend{width:100%}}.balance-card{background:#17805c;border:1px solid #17805c;border-radius:24px;margin-bottom:18px;padding:18px 20px}.label{color:#d9f3e5;margin-bottom:12px;font-size:13px;display:block}.balance-value{color:#fff;letter-spacing:-.06em;font-size:clamp(30px,7vw,44px);font-weight:800}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-box{background:#fff;border:1px solid #d9eee2;border-radius:18px;padding:16px 14px}.stat-box span{color:#6b8b7c;margin-bottom:6px;font-size:12px;display:block}.stat-box strong{font-size:22px}.income strong,.income-text{color:#17805c}.expense strong,.expense-text{color:#f87171}.section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-header h2{margin:0;font-size:18px}.transaction-list{flex-direction:column;gap:12px;display:flex}.transaction-item{background:#fff;border:1px solid #d9eee2;border-radius:18px;justify-content:space-between;gap:12px;padding:14px;display:flex}.transaction-main{align-items:flex-start;gap:10px;min-width:0;display:flex}.type-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;justify-content:center;align-items:center;min-width:56px;padding:6px 8px;font-size:10px;font-weight:700;display:inline-flex}.type-badge.expense{color:#fca5a5;background:#f871711f}.type-badge.income{color:#13734f;background:#e3f6eb}.transaction-main h3{margin:0 0 4px;font-size:16px}.transaction-main p{color:#6b8b7c;margin:0;font-size:12px}.transaction-side{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.transaction-side strong{font-size:15px}.transaction-side small{color:#6b8b7c}.action-row{gap:8px;margin-top:4px;display:flex}.edit-button,.delete-button{background:0 0;border:none;padding:0;font-size:11px}.edit-button{color:#17805c}.delete-button{color:#fca5a5}.fab{color:#fff;background:linear-gradient(135deg,#17805c,#36b878);border:none;border-radius:50%;width:64px;height:64px;font-size:38px;line-height:1;position:fixed;bottom:24px;right:20px;box-shadow:0 10px 30px #17805c47}.modal-backdrop{background:#14352c59;justify-content:center;align-items:center;padding:20px 12px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #d9eee2;border-radius:24px;width:min(100%,460px);padding:18px 16px 20px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-header h2{margin:0;font-size:22px}.close-button{color:#16352c;background:0 0;border:none;font-size:28px;line-height:1}.expense-form{flex-direction:column;gap:14px;display:flex}.expense-form label{color:#356252;flex-direction:column;gap:8px;font-size:14px;display:flex}.toggle-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.toggle{color:#356252;background:#f4fbf7;border:1px solid #cfe6d8;border-radius:12px;padding:12px;font-weight:700}.toggle.active.expense{color:#fecaca;background:#f8717133;border-color:#f8717180}.toggle.active.income{color:#13734f;background:#dff5e8;border-color:#8ed5ac}.save-button{color:#fff;background:linear-gradient(135deg,#17805c,#36b878);border:none;border-radius:14px;margin-top:8px;padding:14px 16px;font-size:16px;font-weight:700}@media (width>=640px){.app-shell{padding-top:36px}}
