@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_482ce5{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_482ce5{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/084282eba306c257-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/ec1d0aa2d2fbc083-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/f1dd23950e6cd390-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/0c7826ffb3acea36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/692df4da22e71021-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3 Fallback;src:local("Arial");ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.00%;size-adjust:93.76%}.__className_bea9d5{font-family:Source Sans\ 3,Source Sans\ 3 Fallback;font-style:normal}.__variable_bea9d5{--font-source-sans:"Source Sans 3","Source Sans 3 Fallback"}:root{color-scheme:light;--ink:#12211b;--ink-soft:#3d5248;--muted:#6b7f74;--paper:#eef3f0;--panel:#ffffff;--line:#d5e0da;--accent:#0b6b45;--accent-soft:#d8f0e4;--warn:#9a6700;--warn-soft:#fff3cd;--danger:#b42318;--danger-soft:#fde8e6;--pos:#0b6b45;--neg:#b42318;--shadow:0 10px 30px rgba(18,33,27,0.06);--radius:14px;--font-display:var(--font-fraunces),"Times New Roman",serif;--font-body:var(--font-source-sans),"Segoe UI",sans-serif;--sidebar-w:240px}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(900px 420px at 0 -10%,rgba(11,107,69,.12),transparent 60%),radial-gradient(700px 360px at 100% 0,rgba(18,33,27,.06),transparent 55%),linear-gradient(180deg,#f7faf8 0,var(--paper) 100%);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0}.pnl-pos{color:var(--pos)}.pnl-neg{color:var(--neg)}.pnl-flat{color:var(--muted)}.landing{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;max-width:1100px;margin:0 auto;width:100%}.brand-mark{font-family:var(--font-display);font-size:1.35rem;font-weight:700}.landing-hero{max-width:1100px;margin:0 auto;width:100%;padding:3rem 1.5rem 4rem;display:grid;grid-gap:2rem;gap:2rem;align-items:flex-end;min-height:calc(100vh - 5rem);background:linear-gradient(135deg,rgba(11,107,69,.08),transparent 40%),linear-gradient(180deg,transparent,rgba(18,33,27,.03));border-radius:0 0 2rem 2rem}.landing-hero h1{font-size:clamp(2.8rem,8vw,5.2rem);max-width:12ch}.landing-hero .lede{max-width:36rem;color:var(--ink-soft);font-size:1.15rem}.cta-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.auth-card{width:min(100%,420px);background:var(--panel);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:2rem}.auth-card h1{font-size:1.85rem;margin-bottom:.35rem}.auth-card .sub{color:var(--muted);margin-bottom:1.5rem}.field{display:grid;grid-gap:.35rem;gap:.35rem;margin-bottom:1rem}.field label{font-size:.9rem;color:var(--ink-soft);font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:10px;padding:.7rem .85rem;background:#fff;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(11,107,69,.25);border-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:999px;padding:.7rem 1.15rem;font-weight:650;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink-soft)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.alert{border-radius:10px;padding:.75rem .9rem;margin-bottom:1rem;font-size:.92rem}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-ok{background:var(--accent-soft);color:var(--accent)}.alert-warn{background:var(--warn-soft);color:var(--warn)}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:1.25rem 1rem;border-right:1px solid var(--line);background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:1.25rem}.sidebar nav{display:grid;grid-gap:.25rem;gap:.25rem}.nav-link{padding:.65rem .85rem;border-radius:10px;color:var(--ink-soft);font-weight:600}.nav-link:hover,.nav-link[data-active=true]{background:var(--accent-soft);color:var(--accent)}.sidebar-footer{margin-top:auto;display:grid;grid-gap:.5rem;gap:.5rem}.main-col{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:-webkit-sticky;position:sticky;top:0;z-index:5}.topbar h1{font-size:1.35rem}.content{padding:1.25rem 1.5rem 2.5rem;display:grid;grid-gap:1.25rem;gap:1.25rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.2rem}.panel h2{font-size:1.1rem;margin-bottom:.85rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:.85rem;gap:.85rem}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.kpi .label{color:var(--muted);font-size:.82rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.kpi .value{font-family:var(--font-display);font-size:1.55rem;margin-top:.35rem}.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.filters .field{margin:0;min-width:140px}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data td,table.data th{text-align:left;padding:.7rem .55rem;border-bottom:1px solid var(--line);white-space:nowrap}table.data th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;background:var(--accent-soft);color:var(--accent)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.empty{padding:2rem 1rem;text-align:center;color:var(--muted)}.chart{width:100%;height:220px;display:block}.spark-grid{grid-template-columns:1.4fr 1fr}.spark-grid,.stack{display:grid;grid-gap:1rem;gap:1rem}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem}.muted{color:var(--muted)}.mobile-nav-toggle{display:none}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(80vw,var(--sidebar-w));transform:translateX(-105%);transition:transform .18s ease;z-index:20;box-shadow:var(--shadow)}.sidebar[data-open=true]{transform:translateX(0)}.mobile-nav-toggle{display:inline-flex}.spark-grid{grid-template-columns:1fr}.landing-hero{min-height:auto;padding-top:2rem}}.admin-shell{max-width:1120px;margin:0 auto;padding:1.5rem 1.25rem 3rem;display:grid;grid-gap:1.25rem;gap:1.25rem}.admin-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.admin-header h1{margin-top:.35rem}