:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#253125;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-soft:#fffcf6eb;--panel:#ffffffe0;--panel-strong:#fff;--line:#d4c6ac;--line-strong:#bda77d;--brand:#74994f;--brand-dark:#52712f;--accent:#ef7e1a;--accent-soft:#fff0df;--danger:#c94d4d;--text-muted:#6e685c;--shadow:0 20px 50px #4a3a1f1f;background:radial-gradient(circle at 0 0,#7ba95d24,#0000 28%),linear-gradient(#f7f3eb 0%,#efe8da 100%);font-family:Arial,Helvetica Neue,sans-serif;font-weight:400;line-height:1.4}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}#app{min-height:100vh}.app-shell{width:calc(100vw - 24px);margin:0 auto;padding:18px 0 32px}.app-shell.app-locked{filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none}.topbar{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf9c7;border:1px solid #bda77d80;border-radius:24px;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px;display:flex}.topbar h1,.panel-header h2,.modal-header h2{margin:0;font-size:clamp(1.2rem,1.7vw,1.65rem);font-weight:700}.topbar-actions,.form-actions,.toggles,.checkbox-grid{flex-wrap:wrap;gap:12px;display:flex}button{border:none;border-radius:16px;padding:.9rem 1.2rem;transition:transform .14s,background .14s,box-shadow .14s}button:hover{transform:translateY(-1px)}button.primary{background:linear-gradient(135deg, var(--brand), #8db16b);color:#fff;box-shadow:0 10px 20px #74994f40}button.secondary{background:linear-gradient(135deg, var(--accent), #f3a756);color:#fff;box-shadow:0 10px 20px #ef7e1a33}button.ghost,.segmented button,.icon-button{background:var(--panel-strong);color:#2f372e;border:1px solid #74994f29}.segmented button.active{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}.segmented{grid-template-columns:repeat(4,minmax(11rem,max-content));gap:12px;width:fit-content;display:grid}.segmented button{width:100%}.icon-button{border-radius:999px;width:44px;height:44px;padding:0;font-size:1.6rem}.layout{grid-template-columns:max-content minmax(0,1fr);grid-template-areas:"summary summary""controls income""expenses expenses";gap:18px;margin-top:18px;display:grid}.summary-panel{grid-area:summary}.controls-panel{grid-area:controls;width:fit-content}.expenses-panel{grid-area:expenses}.income-panel{grid-area:income;place-self:start stretch;width:100%;max-width:none}.top-panels{display:contents}.panel{background:var(--bg-soft);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #bda77d80;border-radius:24px;padding:20px}.panel-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.summary-grid{grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;display:grid}.summary-card{background:var(--panel-strong);border:1px solid #74994f29;border-radius:18px;padding:16px}.summary-card strong{margin-top:8px;font-size:1.1rem;display:block}.summary-label{color:var(--text-muted);margin:0}.auth-badge{background:var(--panel-strong);border:1px solid #74994f29;border-radius:16px;align-items:center;gap:10px;padding:8px 10px;display:inline-flex}.auth-button{padding:.7rem 1rem}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.summary-card.balance{background:#eef7e6}.summary-card.balance.negative{background:#fdecea}.summary-card.overall{background:linear-gradient(135deg,#fffef8,#f8f0de)}.summary-clickable{cursor:pointer}.summary-category-list{border-top:1px dashed #bda77d99;gap:8px;margin-top:12px;padding-top:10px;display:grid}.summary-category-row{border-bottom:1px dashed #bda77d99;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.summary-category-row:last-child{border-bottom:0;padding-bottom:0}.control-group+.control-group{margin-top:14px}.toggle{background:var(--panel-strong);border:1px solid #74994f29;border-radius:16px;align-items:center;gap:10px;padding:12px 14px;display:inline-flex}.toggle input{width:18px;height:18px}.checkbox-grid{margin-top:0}.checkbox-item{min-width:170px}.expense-category-panel{margin-bottom:14px}.column-sort{text-align:left;width:100%;color:inherit;background:0 0;border:0;padding:0;font-weight:700}.column-sort.active{color:var(--brand-dark);text-underline-offset:.18em;text-decoration:underline}.income-list{overflow:auto}.income-table,.expense-table{border-collapse:collapse;width:100%}.income-table th,.income-table td,.expense-table th,.expense-table td{vertical-align:top;border:1px solid #bda77d73;padding:10px 12px}.income-table thead th,.expense-table thead th{z-index:1;background:#f0f6e8;position:sticky;top:0}.expense-table-wrap{width:100%;overflow:auto}.expense-table th:first-child,.expense-table td:first-child{z-index:1;position:sticky;left:0}.expense-table thead th:first-child,.expense-table tfoot th:first-child,.date-cell{background:#fff8ec}.expense-table tfoot th{color:#fff;background:#ef4f3b}.income-table th{text-align:left}.date-cell{text-align:left;min-width:155px}.expense-table td{background:#ffffffb8;min-width:210px}.amount-cell{text-align:right;white-space:nowrap}.expense-items{gap:8px;display:grid}.expense-item{border-bottom:1px dashed #bda77d99;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.expense-item:last-child{border-bottom:0;padding-bottom:0}.expense-item strong{white-space:nowrap}.cell-empty{color:#b4a994}.empty-state{color:var(--text-muted);padding:18px}.modal-backdrop{z-index:20;background:#26231d73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.login-gate{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;background:#f7f3eb85;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.login-card{width:min(460px,100%);box-shadow:var(--shadow);background:#fffdf9f5;border:1px solid #bda77d80;border-radius:24px;padding:28px}.login-card h2{margin:0;font-size:1.7rem}.login-copy{color:var(--text-muted);margin:10px 0 18px}.login-card .primary{width:100%;min-height:56px;font-size:1rem}.modal-card{width:min(560px,100%);box-shadow:var(--shadow);background:#fffdf9;border-radius:24px;padding:22px}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.entry-form{gap:14px;display:grid}.entry-form label{gap:8px;display:grid}.entry-form input,.entry-form select{border:1px solid var(--line);background:#fff;border-radius:14px;width:100%;padding:.9rem 1rem}.hidden{display:none}@media (width<=900px){.layout{grid-template-columns:1fr;grid-template-areas:"summary""controls""income""expenses"}.controls-panel{width:auto}.segmented{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.app-shell{width:min(100vw - 16px,100%);padding-top:8px}.topbar,.panel{border-radius:20px;padding:16px}.topbar{flex-direction:column}.topbar-actions{width:100%}.topbar-actions button{flex:220px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-table td{min-width:180px}}@media (width<=1100px){.layout{grid-template-columns:1fr;grid-template-areas:"summary""controls""income""expenses"}.controls-panel,.income-panel{justify-self:stretch;width:100%;max-width:none}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}}@media (width<=680px){.login-gate{align-items:end;padding:12px}.login-card{border-radius:22px;width:100%;padding:24px 20px}.login-card h2{font-size:1.5rem}.login-copy{font-size:1rem;line-height:1.5}.modal-backdrop{align-items:end;padding:0}.modal-card{border-radius:24px 24px 0 0;width:100%;min-height:100dvh;padding:20px 16px 28px}.topbar-actions{flex-direction:column}.topbar-actions>*,.topbar-actions button{width:100%}.summary-grid{grid-template-columns:1fr}.checkbox-grid{flex-direction:column}.checkbox-item{width:100%;min-width:0}}
