:root{--bg:#f6f5f2;--surface:#fff;--surface-2:#efece7;--text:#61655f;--text-h:#16201c;--border:#e4e0d8;--border-strong:#d3cec3;--brand:#0d7d72;--brand-strong:#0a5f57;--brand-contrast:#fff;--brand-weak:#0d7d7217;--brand-border:#0d7d7252;--pos:#157f3b;--pos-weak:#157f3b1a;--neg:#c23b2e;--neg-weak:#c23b2e1a;--shadow-sm:0 1px 2px #14201c0f;--shadow:0 6px 20px -8px #14201c2e, 0 2px 6px -3px #14201c1a;--font-body:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--font-display:"Space Grotesk", var(--font-body);--r-sm:8px;--r:12px;--r-lg:16px;--content:1080px;--content-narrow:560px;--accent:var(--brand);--accent-bg:var(--brand-weak);--accent-border:var(--brand-border);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1518;--surface:#161d21;--surface-2:#1e262b;--text:#98a3a0;--text-h:#eef2f0;--border:#29333a;--border-strong:#37434b;--brand:#2dd4bf;--brand-strong:#5eead4;--brand-contrast:#06201d;--brand-weak:#2dd4bf1f;--brand-border:#2dd4bf66;--pos:#45d67f;--pos-weak:#45d67f24;--neg:#f07a6e;--neg-weak:#f07a6e24;--shadow-sm:0 1px 2px #0006;--shadow:0 10px 28px -10px #0009, 0 3px 8px -4px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1518;--surface:#161d21;--surface-2:#1e262b;--text:#98a3a0;--text-h:#eef2f0;--border:#29333a;--border-strong:#37434b;--brand:#2dd4bf;--brand-strong:#5eead4;--brand-contrast:#06201d;--brand-weak:#2dd4bf1f;--brand-border:#2dd4bf66;--pos:#45d67f;--pos-weak:#45d67f24;--neg:#f07a6e;--neg-weak:#f07a6e24;--shadow-sm:0 1px 2px #0006;--shadow:0 10px 28px -10px #0009, 0 3px 8px -4px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--text-h);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);color:var(--text-h);letter-spacing:-.01em;margin:0}h1{letter-spacing:-.02em;font-size:24px;font-weight:600}h2{font-size:17px;font-weight:600}@media (width>=640px){h1{font-size:28px}h2{font-size:19px}}p{margin:0}.tnum{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.money-pos{color:var(--pos);font-variant-numeric:tabular-nums}.money-neg{color:var(--neg);font-variant-numeric:tabular-nums}table{font-variant-numeric:tabular-nums}:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--brand);outline-offset:2px}:where(input,select,textarea){font:inherit;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);box-sizing:border-box;padding:10px 12px}:where(input,select,textarea)::placeholder{color:color-mix(in srgb, var(--text) 75%, transparent)}:where(input:disabled,select:disabled,textarea:disabled){opacity:.55;cursor:not-allowed}:where(select){cursor:pointer}:where(button){font:inherit}.btn-primary{border-radius:var(--r-sm);background:var(--brand);color:var(--brand-contrast);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-h);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.btn-ghost:hover:not(:disabled){border-color:var(--brand-border);color:var(--brand)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger{border-radius:var(--r-sm);background:var(--neg);color:#fff;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}#nl-badge-frame,#netlify-badge,.netlify-badge{display:none!important}.guard-screen{box-sizing:border-box;text-align:center;justify-content:center;align-items:center;min-height:100svh;padding:24px 16px;display:flex}.guard-card{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:360px;display:flex}.guard-card h1{color:var(--text-h);margin:0;font-size:24px}.guard-card p{color:var(--text);margin:0 0 8px}.guard-signout{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-weight:500}.guard-signout:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout{background:var(--bg);flex-direction:column;min-height:100svh;display:flex}.layout-topbar{z-index:20;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(8px);backdrop-filter:saturate(1.2)blur(8px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.brand-mark{object-fit:contain;flex-shrink:0;width:28px;height:28px}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-h);white-space:nowrap;font-size:17px;font-weight:600}.layout-topbar-actions{align-items:center;gap:8px;display:flex}.layout-icon-btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-h);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:border-color .15s,background .15s;display:inline-flex}.layout-icon-btn svg{width:19px;height:19px}.layout-icon-btn:hover{border-color:var(--brand-border);color:var(--brand)}.layout-signout{font:inherit;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;padding:8px 14px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s}.layout-signout:hover{border-color:var(--neg);color:var(--neg)}.layout-nav{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;padding:10px 16px;display:flex;overflow-x:auto}.layout-nav::-webkit-scrollbar{display:none}.layout-nav-link{border-radius:var(--r-sm);color:var(--text);white-space:nowrap;align-items:center;gap:8px;padding:8px 14px;font-size:14.5px;font-weight:500;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.layout-nav-link svg{opacity:.85;width:17px;height:17px}.layout-nav-link:hover{color:var(--text-h);background:var(--surface-2)}.layout-nav-link.active{color:var(--brand);background:var(--brand-weak)}.layout-main{width:100%;max-width:var(--content);box-sizing:border-box;flex:1;margin:0 auto;padding:20px 16px 24px}@media (width>=640px){.layout-main{padding:28px 24px 32px}}.layout-bottomnav{display:none}@media (width<=767px){.layout-nav{display:none}.layout-main{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.layout-bottomnav{z-index:30;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(10px);backdrop-filter:saturate(1.2)blur(10px);border-top:1px solid var(--border);justify-content:space-around;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0}.layout-bottomnav-link{border-radius:var(--r-sm);color:var(--text);flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:6px 2px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.layout-bottomnav-link svg{opacity:.9;width:22px;height:22px}.layout-bottomnav-link span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.layout-bottomnav-link.active{color:var(--brand)}.layout-bottomnav-link.active svg{opacity:1}}.errorboundary{background:var(--bg);justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.errorboundary-card{text-align:center;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);width:100%;max-width:420px;box-shadow:var(--shadow);padding:32px 24px}.errorboundary-card h1{margin-bottom:8px;font-size:20px}.errorboundary-card p{color:var(--text);margin-bottom:20px}
