:root{--color-primary-dark:#2a8b82;--color-primary-light:#206c65;--color-bg-obsidian:#0b1010;--color-bg-linen:#faf9f6;--color-surface-sage-dark:#121717;--color-surface-white:#fff;--color-ink-dark:#1b2423;--color-ink-light:#f4f6f6;--color-muted-grey:#7a7c7d;--color-muted-slate:#64748b;--color-border-dark:#1d2625;--color-border-light:#e2e6e5;--color-finance-positive:#10b981;--color-finance-negative:#ef4444;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-page-bottom:40px;--font-family:"Roboto", system-ui, -apple-system, "BlinkMacSystemFont", "Segoe UI", sans-serif;--font-size-headline:24px;--font-size-title:20px;--font-size-body:14px;--font-size-label:12px;--button-height:48px;--sidebar-width:260px;--elevation-1:0 1px 3px #0000001f;--elevation-2:0 3px 8px #00000029}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:var(--color-bg-obsidian);--color-surface:var(--color-surface-sage-dark);--color-surface-raised:#1a2120;--color-ink:var(--color-ink-light);--color-ink-secondary:var(--color-muted-grey);--color-border:var(--color-border-dark);--color-primary:var(--color-primary-dark);--color-primary-ink:var(--color-surface-white);--color-focus-ring:var(--color-primary-dark)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:var(--color-bg-linen);--color-surface:var(--color-surface-white);--color-surface-raised:#fff;--color-ink:var(--color-ink-dark);--color-ink-secondary:var(--color-muted-slate);--color-border:var(--color-border-light);--color-primary:var(--color-primary-light);--color-primary-ink:var(--color-surface-white);--color-focus-ring:var(--color-primary-light)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-ink);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}h1,h2,h3,h4{font-family:var(--font-family);color:var(--color-ink);margin:0 0 var(--space-sm)}h1{font-size:var(--font-size-headline);font-weight:700;line-height:1.2}h2{font-size:var(--font-size-title);font-weight:600;line-height:1.25}label{font-size:var(--font-size-label);letter-spacing:.02em;font-weight:600}.money-positive{color:var(--color-finance-positive)}.money-negative{color:var(--color-finance-negative)}.button-primary{justify-content:center;align-items:center;gap:var(--space-sm);min-height:var(--button-height);padding:0 var(--space-lg);border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-primary-ink);font-family:var(--font-family);font-size:var(--font-size-body);cursor:pointer;border:none;font-weight:600;transition:background-color .12s;display:inline-flex}.button-primary:hover{background-color:var(--color-primary);filter:brightness(1.08)}.button-primary:disabled{opacity:.5;cursor:not-allowed}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md)}.input-default{width:100%;min-height:var(--button-height);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg);color:var(--color-ink);font-family:var(--font-family);font-size:var(--font-size-body)}.input-default:focus-visible{border-color:var(--color-focus-ring)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.card-raised{background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md)}.page-header{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-lg) var(--space-sm);flex-wrap:wrap;display:flex}.page-header h1{margin:0;font-size:22px;font-weight:700}.shell-header{justify-content:space-between;align-items:center;gap:var(--space-md);height:64px;padding:0 var(--space-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);display:flex}.shell-header h1{margin:0;font-size:20px;font-weight:600}.profile-menu{align-items:center;gap:var(--space-sm);display:flex}.avatar-circle{background-color:color-mix(in srgb, var(--color-primary) 18%, transparent);width:40px;height:40px;color:var(--color-primary);border-radius:50%;place-items:center;font-weight:700;display:grid}.sidebar-section-header{padding:var(--space-lg) var(--space-lg) var(--space-sm);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-primary);opacity:.8;font-size:10px;font-weight:700}.sidebar-item{min-height:44px;color:var(--color-ink-secondary);border-radius:10px;align-items:center;gap:14px;margin:0 16px;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar-item:hover{background-color:color-mix(in srgb, var(--color-ink) 6%, transparent)}.sidebar-item.active{background-color:color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary);font-weight:700}.sidebar-item.active:after{content:"";background-color:var(--color-primary);width:4px;height:24px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 60%, transparent);border-radius:2px;position:absolute;top:50%;right:0;transform:translateY(-50%)}.kpi-tile{border:1px solid color-mix(in srgb, var(--color-border) 40%, transparent);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md);background-color:color-mix(in srgb, var(--color-surface) 96%, transparent);gap:4px;display:grid}.kpi-tile .kpi-label{align-items:center;gap:var(--space-sm);letter-spacing:-.2px;color:var(--color-ink-secondary);font-size:12px;font-weight:500;display:flex}.kpi-tile .kpi-value{font-size:22px;font-weight:700;line-height:1.1}.kpi-icon{background-color:color-mix(in srgb, var(--color-primary) 15%, transparent);width:30px;height:30px;color:var(--color-primary);border-radius:8px;place-items:center;display:grid}.hero-panel{border:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);border-radius:var(--radius-xl);padding:var(--space-xl);background-color:color-mix(in srgb, var(--color-surface) 97%, transparent)}.hero-value{font-size:28px;font-weight:800;line-height:1.1}.chip{text-transform:uppercase;letter-spacing:.3px;background-color:color-mix(in srgb, var(--color-primary) 14%, transparent);color:var(--color-primary);border-radius:12px;align-items:center;gap:6px;padding:4px 8px;font-size:10px;font-weight:700;display:inline-flex}.chip-chip{background-color:color-mix(in srgb, var(--color-primary) 14%, transparent);color:var(--color-primary)}.chip-neutral{background-color:color-mix(in srgb, var(--color-ink-secondary) 12%, transparent);color:var(--color-ink-secondary)}.chip-warn{background-color:color-mix(in srgb, var(--color-finance-negative) 14%, transparent);color:var(--color-finance-negative)}.badge{background-color:color-mix(in srgb, var(--color-finance-negative) 14%, transparent);color:var(--color-finance-negative);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.fab{right:var(--space-lg);bottom:var(--space-lg);z-index:20;align-items:center;gap:var(--space-sm);min-height:48px;padding:0 var(--space-lg);background-color:var(--color-primary);color:var(--color-primary-ink);font-family:var(--font-family);font-size:var(--font-size-body);cursor:pointer;border:none;border-radius:12px;font-weight:600;display:inline-flex;position:fixed;box-shadow:0 3px 8px #0000003d}.list-row{align-items:center;gap:var(--space-md);padding:var(--space-md);display:flex}.list-row .list-row-main{flex:1;gap:4px;min-width:0;display:grid}.list-row .list-row-title{align-items:center;gap:var(--space-sm);flex-wrap:wrap;font-weight:600;display:flex}.list-row .list-row-sub{gap:var(--space-sm);color:var(--color-ink-secondary);flex-wrap:wrap;font-size:12px;display:flex}.entry-accent{border-radius:2px;flex-shrink:0;align-self:stretch;width:4px}.accent-income{background-color:#0c9b82}.accent-expense{background-color:#d32f2f}.accent-neutral{background-color:var(--color-border)}.list-body{padding:var(--space-md) var(--space-md) 96px;gap:var(--space-sm);display:grid}.rdg{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px}.rdg-header-row{background-color:color-mix(in srgb, var(--color-ink) 2%, transparent);height:40px!important}.rdg-header-row .rdg-cell{letter-spacing:.8px;text-transform:uppercase;color:color-mix(in srgb, var(--color-ink) 70%, transparent);border-right:1px solid color-mix(in srgb, var(--color-ink) 5%, transparent);font-size:10px;font-weight:700}.rdg-row{height:48px}.rdg-cell{border-right:1px solid color-mix(in srgb, var(--color-ink) 5%, transparent);border-bottom:1px solid color-mix(in srgb, var(--color-ink) 5%, transparent);padding:0 8px}.rdg-cell[aria-selected=true]{box-shadow:inset 0 0 0 2px var(--color-primary)}.rdg-row:hover{background-color:color-mix(in srgb, var(--color-ink) 2%, transparent)}.tab-button{appearance:none;font-family:var(--font-family);color:var(--color-ink-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 16px;font-size:14px;font-weight:500}.tab-button[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.empty-state{max-width:420px;margin:var(--space-xl) auto;text-align:center;justify-items:center;gap:var(--space-sm);color:var(--color-ink-secondary);display:grid}.empty-state .empty-icon{font-size:56px;line-height:1}.empty-state .empty-title{color:var(--color-ink);font-size:20px;font-weight:700}.snackbar{z-index:110;background:var(--color-ink);color:var(--color-bg);border-radius:8px;padding:14px 24px;font-size:14px;font-weight:500;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.project-card{background-color:var(--color-surface);border:1px solid color-mix(in srgb, var(--color-ink) 5%, transparent);border-radius:16px;align-items:flex-start;transition:background-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}[data-theme=dark] .project-card{background-color:#1e2323;border-color:#ffffff0d}[data-theme=light] .project-card{background-color:#fff;border-color:#0000000d;box-shadow:0 2px 6px #0000000f}.project-card:hover{background-color:color-mix(in srgb, var(--color-primary) 4%, var(--color-surface))}.project-card-clickable{color:inherit;flex:1;align-items:flex-start;gap:16px;min-width:0;padding:16px;text-decoration:none;display:flex}.project-card-avatar{background-color:color-mix(in srgb, var(--color-primary) 18%, transparent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;margin-top:4px;padding:10px;display:flex}.project-card-main{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.project-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.project-card-title{color:var(--color-ink);margin:0;font-size:16px;font-weight:700;line-height:1.3}.project-status-badge{letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:4px 10px;font-size:10px;font-weight:700}.project-card-meta{color:var(--color-ink-secondary);flex-wrap:wrap;align-items:center;gap:16px;font-size:14px;display:flex}.project-card-meta-item{align-items:center;gap:6px;display:inline-flex}.project-card-meta-item .meta-icon{opacity:.7}.project-card-more-btn{color:var(--color-ink-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-top:8px;margin-right:8px;padding:12px;display:flex}.project-card-more-btn:hover{background-color:color-mix(in srgb, var(--color-ink) 8%, transparent)}.dropdown-menu-content{background-color:var(--color-surface);border:1px solid var(--color-border);z-index:100;border-radius:12px;min-width:160px;padding:6px;box-shadow:0 4px 16px #0003}.dropdown-menu-item{color:var(--color-ink);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-size:14px;font-weight:500}.dropdown-menu-item:hover,.dropdown-menu-item:focus{background-color:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.financial-entry-card{background-color:var(--color-surface);border:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);border-radius:12px;align-items:stretch;gap:12px;padding:12px;transition:background-color .15s;display:flex}[data-theme=dark] .financial-entry-card{background-color:#1b2326;border-color:#ffffff14}[data-theme=light] .financial-entry-card{background-color:#fff;border-color:#00000014;box-shadow:0 1px 4px #0000000a}.entry-card-accent{border-radius:2px;flex-shrink:0;align-self:stretch;width:4px}.entry-card-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.entry-card-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.entry-card-description{color:var(--color-ink);font-size:15px;font-weight:600}.entry-card-description.canceled{opacity:.6;text-decoration:line-through}.entry-card-amount{font-size:15px;font-weight:700}.entry-card-status{color:var(--color-ink-secondary);font-size:11px;font-weight:600}.entry-card-status.canceled{opacity:.5;text-decoration:line-through}.entry-card-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.entry-card-chip{letter-spacing:.3px;background-color:color-mix(in srgb, var(--color-primary) 18%, transparent);color:var(--color-primary);border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}[data-theme=dark] .entry-card-chip{color:#88c9ba;background-color:#2a3d39}.entry-card-footer{color:var(--color-ink-secondary);font-size:12px}.mobile-app-bar{height:56px;padding:0 var(--space-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.mobile-app-bar-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:18px;font-weight:700;overflow:hidden}.mobile-drawer-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;position:fixed;inset:0}.mobile-drawer{background-color:var(--color-surface);border-right:1px solid var(--color-border);z-index:1001;flex-direction:column;width:280px;max-width:85vw;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:4px 0 24px #0000004d}.mobile-bottom-nav{background-color:var(--color-surface);border-top:1px solid var(--color-border);z-index:500;justify-content:space-around;align-items:center;height:60px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav-item{height:100%;color:var(--color-ink-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.mobile-bottom-nav-item.active{color:var(--color-primary);font-weight:700}.simulation-banner{background-color:color-mix(in srgb, var(--color-finance-negative) 15%, var(--color-surface));border-bottom:1px solid color-mix(in srgb, var(--color-finance-negative) 40%, transparent);color:var(--color-finance-negative);justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.simulation-banner-button{background-color:color-mix(in srgb, var(--color-finance-negative) 20%, transparent);color:var(--color-finance-negative);border:1px solid color-mix(in srgb, var(--color-finance-negative) 50%, transparent);cursor:pointer;white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.simulation-banner-button:hover{background-color:color-mix(in srgb, var(--color-finance-negative) 30%, transparent)}.impersonate-dialog-overlay{z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.impersonate-dialog{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:16px;width:100%;max-width:380px;padding:24px;display:flex;box-shadow:0 10px 30px #0006}.impersonate-dialog-title{color:var(--color-ink);margin:0;font-size:18px;font-weight:700}.impersonate-dialog-options{flex-direction:column;gap:8px;display:flex}.impersonate-option-button{border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-bg);color:var(--color-ink);cursor:pointer;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;transition:background-color .12s;display:flex}.impersonate-option-button:hover{background-color:color-mix(in srgb, var(--color-primary) 12%, transparent);border-color:var(--color-primary);color:var(--color-primary)}html{-webkit-text-size-adjust:100%}img,svg{max-width:100%;display:block}a{color:var(--color-primary)}code{font-family:ui-monospace,Cascadia Code,JetBrains Mono,monospace;font-size:.9em}
