:root{--bg:#f9f9f7;--surface:#fcfcfb;--border:#0b0b0b1a;--text:#0b0b0b;--text-muted:#52514e;--accent:#2f6feb;--accent-hover:#2558c4;--danger:#d03b3b;--nav-bg:#16171d;--nav-text:#d6d6db;--nav-text-active:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d0d0d;--surface:#1a1a19;--border:#ffffff1a;--text:#fff;--text-muted:#c3c2b7;--accent:#3987e5;--accent-hover:#63a4ef;--danger:#e66767;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d0d0d;--surface:#1a1a19;--border:#ffffff1a;--text:#fff;--text-muted:#c3c2b7;--accent:#3987e5;--accent-hover:#63a4ef;--danger:#e66767;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}h1{margin:0 0 1.25rem;font-size:1.5rem}.app-loading{height:100vh;color:var(--text-muted);place-items:center;display:grid}.login-page{place-items:center;min-height:100vh;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.9rem;width:22rem;padding:2rem;display:flex;box-shadow:0 1px 3px #0000000f}.login-card h1{margin-bottom:.5rem;font-size:1.15rem}.login-card label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.login-card input{border:1px solid var(--border);border-radius:.4rem;padding:.5rem .6rem;font-size:1rem}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:.4rem;margin-top:.4rem;padding:.6rem;font-size:.95rem}.login-card button:hover{background:var(--accent-hover)}.login-card button:disabled{opacity:.6;cursor:default}.login-card button.link-button{color:var(--accent);background:0 0;margin-top:0;padding:0;font-size:.85rem;text-decoration:underline}.login-card button.link-button:hover{color:var(--accent-hover);background:0 0}.login-error{color:var(--danger);margin:0;font-size:.85rem}.app-shell{min-height:100vh;display:flex}.app-nav{background:var(--nav-bg);width:14rem;color:var(--nav-text);flex-direction:column;flex-shrink:0;padding:1.25rem 0;display:flex}.app-nav-header{color:var(--nav-text-active);padding:0 1.25rem 1rem;font-size:1.05rem;font-weight:600}.app-nav ul{flex:1;margin:0;padding:0;list-style:none}.app-nav a{color:var(--nav-text);padding:.55rem 1.25rem;font-size:.9rem;text-decoration:none;display:block}.app-nav a:hover{background:#ffffff0f}.app-nav a.active{color:var(--nav-text-active);border-right:2px solid var(--accent);background:#ffffff1a}.app-nav-footer{border-top:1px solid #ffffff1a;margin-top:.5rem;padding:1rem 1.25rem 0;position:relative}.profile-button{cursor:pointer;background:0 0;border:none;padding:0;display:flex}.profile-avatar{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:2rem;height:2rem;font-size:.85rem;font-weight:600;display:grid}.profile-menu{background:var(--surface);width:13rem;color:var(--text);border:1px solid var(--border);border-radius:.6rem;flex-direction:column;gap:.5rem;padding:.75rem;font-size:.85rem;display:flex;position:absolute;bottom:calc(100% + .5rem);left:1.25rem;box-shadow:0 4px 16px #0003}.profile-menu-header{border-bottom:1px solid var(--border);padding-bottom:.5rem}.profile-menu-name{font-weight:600}.profile-menu-email{color:var(--text-muted);font-size:.78rem}.profile-menu-section{border-bottom:1px solid var(--border);padding-bottom:.5rem}.profile-menu-label{color:var(--text-muted);margin-bottom:.35rem;font-size:.75rem}.theme-switch{border:1px solid var(--border);border-radius:.4rem;display:flex;overflow:hidden}.theme-switch button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:.35rem 0;font-size:.78rem}.theme-switch button.active{background:var(--accent);color:#fff}.profile-menu-item{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:.3rem 0;font-size:.85rem;text-decoration:none}.profile-menu-item:hover{color:var(--accent)}.app-main{flex:1;padding:2rem 2.5rem;overflow-x:auto}.mobile-nav-toggle,.mobile-nav-backdrop{display:none}@media (width<=768px){.mobile-nav-toggle{z-index:20;background:var(--nav-bg);color:var(--nav-text-active);cursor:pointer;border:none;border-radius:.4rem;padding:.5rem .7rem;font-size:1.1rem;display:block;position:fixed;top:.75rem;left:.75rem}.mobile-nav-backdrop{z-index:14;background:#0006;display:block;position:fixed;inset:0}.app-nav{z-index:15;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-nav.open{transform:translate(0)}.app-main{padding:4rem 1.25rem 2rem}}.coming-soon{color:var(--text-muted)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;padding:1rem 1.25rem}.stat-card .label{color:var(--text-muted);margin-bottom:.3rem;font-size:.8rem}.stat-card .value{font-size:1.4rem;font-weight:600}.stat-card .value.negative{color:var(--danger)}.section{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.section h2{margin:0 0 .9rem;font-size:1.05rem}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:.78rem;font-weight:500}.empty-state{color:var(--text-muted);padding:.5rem 0;font-size:.9rem}form.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin-top:.75rem;display:flex}form.inline-form label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.78rem;display:flex}form.inline-form input,form.inline-form select{border:1px solid var(--border);border-radius:.35rem;padding:.4rem .5rem;font-size:.85rem}form.inline-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:.35rem;height:fit-content;padding:.45rem .9rem;font-size:.85rem}form.inline-form button:hover{background:var(--accent-hover)}.add-toggle{border:1px dashed var(--border);color:var(--accent);cursor:pointer;background:0 0;border-radius:.4rem;margin-top:.75rem;padding:.4rem .8rem;font-size:.85rem}.add-toggle:hover{border-color:var(--accent)}.row-actions{align-items:center;gap:.5rem;display:flex}.row-actions button{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:.3rem;padding:.2rem .5rem;font-size:.75rem}.row-actions button:hover{border-color:var(--accent);color:var(--accent)}.overdue{color:var(--danger)}.month-calendar-header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.month-calendar-header h2{flex:1;margin:0;font-size:1.05rem}.month-calendar-header button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:.4rem;padding:.3rem .7rem;font-size:.9rem}.month-calendar-header button:hover{border-color:var(--accent);color:var(--accent)}.month-calendar-weekdays,.month-calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.month-calendar-weekdays{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border);padding-bottom:.4rem;font-size:.72rem}.month-calendar-weekdays div{padding:.2rem .3rem}.month-calendar-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:.2rem;min-width:0;min-height:6rem;padding:.3rem;display:flex}.month-calendar-cell:nth-child(7n){border-right:none}.month-calendar-cell.outside{opacity:.4}.month-calendar-date{color:var(--text-muted);font-size:.78rem}.month-calendar-cell.today .month-calendar-date{color:#fff;background:var(--accent);border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;display:grid}.month-calendar-event{color:#fff;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:none;border-radius:.3rem;width:100%;min-width:0;padding:.1rem .35rem;font-size:.72rem;overflow:hidden}.month-calendar-more{color:var(--text-muted);font-size:.7rem}.event-popover-backdrop{z-index:10;background:#0006;place-items:center;display:grid;position:fixed;inset:0}.event-popover{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;width:20rem;padding:1.5rem;position:relative;box-shadow:0 8px 24px #00000040}.event-popover-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.2rem;position:absolute;top:.5rem;right:.75rem}.event-popover-calendar{text-transform:uppercase;letter-spacing:.02em;margin-bottom:.3rem;font-size:.75rem;font-weight:600}.event-popover h3{margin:0 0 .4rem;font-size:1.1rem}.budget-bar{border-radius:999px;width:6rem;height:6px;overflow:hidden}.budget-bar-fill{border-radius:999px;height:100%}
