:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172338;background:#f7faf8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}.page{min-height:100vh;margin:auto}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:20px clamp(20px,5vw,64px)}.brand{color:#14532d;font-size:1.25rem;font-weight:800;letter-spacing:.02em}.tag{color:#456051;font-size:.875rem}.welcome,.configuration-error{max-width:730px;margin:clamp(36px,9vw,110px) auto 0;padding:clamp(24px,5vw,52px);border:1px solid #dce8df;background:#fff;border-radius:20px;box-shadow:0 18px 45px #14532d14}.compact{text-align:center}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);align-items:center;gap:clamp(32px,7vw,88px);max-width:1080px;padding:0 clamp(20px,5vw,64px);margin:clamp(36px,8vw,92px) auto 0}.introduction{max-width:540px}.signin-panel{display:flex;justify-content:center;min-width:0}.eyebrow{color:#166534;font-size:.875rem;font-weight:650}h1{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.03em;line-height:1.12}p{line-height:1.65}.notice{margin-top:28px;background:#edf8f0;color:#14532d;padding:16px;border-radius:10px;line-height:1.5}.security-note{color:#456051;font-size:.9rem}.signout-button{margin-top:20px;border:0;border-radius:10px;background:#166534;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:12px 18px}.signout-button:hover{background:#14532d}.signout-button:focus-visible{outline:3px solid #86efac;outline-offset:3px}code{background:#edf8f0;border-radius:4px;padding:2px 5px}@media(max-width:760px){.auth-layout{grid-template-columns:1fr}.introduction{text-align:center;margin:auto}}.authenticated{max-width:980px;margin-top:clamp(28px,6vw,72px)}.authenticated h1{margin-bottom:8px}.dashboard{margin-top:30px}.dashboard-heading,.section-heading,.category-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.dashboard-heading h2,.section-heading h3{margin:0}.dashboard-heading h2{font-size:clamp(1.4rem,3vw,2rem)}.engine-version{border:1px solid #dce8df;border-radius:999px;padding:6px 10px;color:#456051;font-size:.75rem;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}.metric-card{border:1px solid #dce8df;background:#fbfdfb;border-radius:14px;padding:18px;min-width:0}.metric-card span,.metric-card small{display:block;color:#5b6d61}.metric-card span{font-size:.82rem;font-weight:650}.metric-card strong{display:block;margin-top:8px;font-size:clamp(1.1rem,2vw,1.45rem);overflow-wrap:anywhere}.metric-card small{margin-top:6px;line-height:1.35}.financial-rule{margin-top:18px;border-left:4px solid #166534;background:#edf8f0;padding:14px 16px;border-radius:8px;color:#244b32;line-height:1.5;font-size:.9rem}.alerts-section,.category-section{margin-top:30px}.section-heading{border-bottom:1px solid #e3ebe5;padding-bottom:10px}.section-heading span{color:#5b6d61;font-size:.9rem}.empty-state,.dashboard-status{margin-top:18px;padding:18px;border-radius:12px;background:#f7faf8;color:#456051}.dashboard-status.error{background:#fff5f5;color:#9b1c1c}.alerts-list{display:grid;gap:10px;margin-top:16px}.alerts-clear{margin-top:16px;padding:16px;border-radius:12px;background:#edf8f0;color:#166534}.alert-card{border-left:4px solid;border-radius:10px;padding:14px 16px}.alert-card strong{display:block}.alert-card p{margin:5px 0 0}.alert-card.critical{border-color:#b91c1c;background:#fff5f5;color:#7f1d1d}.alert-card.warning{border-color:#b7791f;background:#fff8e7;color:#744210}.alert-card.info{border-color:#2563eb;background:#eff6ff;color:#1e3a8a}.category-list{display:grid;gap:12px;margin-top:16px}.category-card{border:1px solid #dce8df;border-radius:14px;padding:16px;background:#fff}.category-statuses{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.category-status,.funding-status{border-radius:999px;font-size:.8rem;font-weight:700;padding:4px 8px;white-space:nowrap}.category-status.over{background:#fff5f5;color:#9b1c1c}.category-status.projected{background:#fff8e7;color:#7c5410}.funding-status.funded{background:#edf8f0;color:#166534}.funding-status.gap{background:#fff5f5;color:#9b1c1c}.category-card dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0 0}.category-card dl div{min-width:0}.category-card dt{color:#65756b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.category-card dd{margin:5px 0 0;font-weight:650;overflow-wrap:anywhere}.dashboard-alert{margin-top:16px;background:#fff8e7;color:#7c5410;padding:14px 16px;border-radius:10px}@media(max-width:900px){.metric-grid,.category-card dl{grid-template-columns:repeat(2,minmax(0,1fr))}}.app-shell{min-height:calc(100vh - 76px);display:grid;grid-template-columns:270px minmax(0,1fr);background:#f4f6f3}.sidebar{background:#142820;color:#eef7f0;padding:28px 18px;display:flex;flex-direction:column;gap:24px}.sidebar-user{padding:0 12px 18px;border-bottom:1px solid #345044;display:grid;gap:5px}.sidebar-user span{color:#9eb5a8;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}.sidebar nav{display:grid;gap:3px}.nav-item,.account-link{width:100%;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer;font:inherit}.nav-item{padding:11px 12px;border-radius:8px;font-weight:650}.nav-item:hover,.nav-item.active{background:#29473a;color:#fff}.account-nav{margin:3px 0 9px 12px;padding-left:9px;border-left:1px solid #4b685b;display:grid;gap:2px}.account-nav-state{margin:6px 12px 9px 21px;color:#9eb5a8;font-size:.78rem;line-height:1.35}.account-nav-state.error{color:#f3b8b5}.account-link{padding:8px 9px;border-radius:7px;display:grid;gap:2px;color:#c5d5cd}.account-link small{color:#91aa9f}.account-link:hover,.account-link.active{color:#fff;background:#203a2f}.sidebar .signout-button{margin-top:auto;width:100%}.shell-content{min-width:0;padding:38px clamp(20px,4vw,64px) 64px}.page-greeting{margin:0 auto 24px;max-width:1180px}.menu-button{display:none}.account-ledger{max-width:1180px;margin:0 auto}.account-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:6px}.account-heading h1,.placeholder h1{margin:4px 0 0;font-size:clamp(2rem,4vw,3.3rem)}.account-balance{text-align:right;display:grid;gap:5px}.account-balance span{color:#627168;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.account-balance strong{font-size:clamp(1.55rem,3vw,2.35rem);color:#173e2d}.balance-note{color:#66736c;margin:0 0 28px;font-size:.9rem}.ledger-table-wrap{overflow-x:auto;background:#fff;border:1px solid #dce4de;border-radius:14px;box-shadow:0 10px 30px #1a34270f}.ledger-table{width:100%;border-collapse:collapse;min-width:820px}.ledger-table th{background:#edf2ee;color:#506159;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase}.ledger-table th,.ledger-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #e4e9e5;vertical-align:top}.ledger-table tbody tr:last-child td{border-bottom:0}.ledger-table .amount{text-align:right;white-space:nowrap;font-weight:750}.amount.positive{color:#147044}.amount.negative{color:#a23932}.classification{display:block;margin-top:5px;color:#66736c}.status-pill{display:inline-block;border-radius:999px;padding:4px 8px;background:#deeee4;color:#286242;font-size:.76rem}.status-pill.void{background:#eee8e4;color:#715d51}.ledger-state,.ledger-empty,.placeholder{max-width:1180px;margin:0 auto;padding:32px;background:#fff;border:1px solid #dce4de;border-radius:14px}.ledger-state.error,.placeholder.error{color:#8b2929;border-color:#efc7c7}.menu-backdrop{display:none}@media(max-width:780px){.app-shell{display:block;min-height:calc(100vh - 76px)}.menu-button{display:block;position:sticky;top:0;z-index:20;width:100%;padding:13px 20px;border:0;border-bottom:1px solid #d4ddd6;background:#fff;text-align:left;font:inherit;font-weight:700}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:min(82vw,300px);transform:translate(-102%);transition:transform .2s ease;box-shadow:12px 0 30px #0003;overflow-y:auto}.sidebar.open{transform:translate(0)}.menu-backdrop{display:block;position:fixed;z-index:30;inset:0;border:0;background:#00000073}.shell-content{padding:28px 16px 48px}.account-heading{align-items:flex-start;flex-direction:column}.account-balance{text-align:left}.ledger-table-wrap{overflow:visible;border:0;background:transparent;box-shadow:none}.ledger-table{min-width:0;display:block}.ledger-table thead{display:none}.ledger-table tbody{display:grid;gap:12px}.ledger-table tr{display:grid;padding:14px;background:#fff;border:1px solid #dce4de;border-radius:12px}.ledger-table td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;padding:7px 0;border:0}.ledger-table td:before{content:attr(data-label);color:#6a776f;font-size:.75rem;text-transform:uppercase}.ledger-table .amount{text-align:left}}@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.dashboard-heading{align-items:flex-start;flex-direction:column}.category-card dl{grid-template-columns:1fr}}.movement-section{margin-top:30px;border:1px solid #dce8df;border-radius:16px;padding:18px;background:#fbfdfb}.movement-section .section-heading{align-items:flex-start}.movement-section .section-heading p{margin:6px 0 0;color:#5b6d61;font-size:.9rem}.movement-kind{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.movement-kind button{border:1px solid #cddbd1;border-radius:999px;background:#fff;color:#244b32;cursor:pointer;font:inherit;font-weight:700;padding:9px 14px}.movement-kind button.active{background:#166534;border-color:#166534;color:#fff}.movement-kind button:focus-visible,.primary-button:focus-visible,.movement-form input:focus-visible,.movement-form select:focus-visible{outline:3px solid #86efac;outline-offset:2px}.movement-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.movement-form label{display:grid;gap:6px;min-width:0}.movement-form label>span{color:#456051;font-size:.82rem;font-weight:700}.movement-form input,.movement-form select{width:100%;border:1px solid #cddbd1;border-radius:10px;background:#fff;color:#172338;font:inherit;padding:11px 12px}.movement-description{grid-column:1 / -1}.movement-actions{display:flex;align-items:center;grid-column:1 / -1}.primary-button{border:0;border-radius:10px;background:#166534;color:#fff;cursor:pointer;font:inherit;font-weight:750;padding:11px 16px}.primary-button:hover:not(:disabled){background:#14532d}.primary-button:disabled{cursor:not-allowed;opacity:.55}.field-error,.movement-feedback,.movement-status{grid-column:1 / -1;margin:0;border-radius:10px;padding:12px 14px;line-height:1.45}.field-error{background:#fff8e7;color:#7c5410}.movement-feedback.success{background:#edf8f0;color:#166534}.movement-feedback.error,.movement-status.error{background:#fff5f5;color:#9b1c1c}.movement-status{margin-top:16px;background:#f7faf8;color:#456051}.movement-status.warning{background:#fff8e7;color:#7c5410}@media(max-width:700px){.movement-form{grid-template-columns:1fr}.movement-description,.movement-actions,.field-error,.movement-feedback{grid-column:1}}.allocation-view{max-width:1180px;margin:0 auto}.allocation-heading{margin-bottom:24px}.allocation-heading h1{margin:4px 0 8px;font-size:clamp(2rem,4vw,3.3rem)}.allocation-heading p:last-child{margin:0;color:#66736c}.allocation-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.allocation-categories{margin-top:28px}.allocation-table-wrap{overflow-x:auto;background:#fff;border:1px solid #dce4de;border-radius:14px}.allocation-table{width:100%;border-collapse:collapse;min-width:820px}.allocation-table th{background:#edf2ee;color:#506159;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase}.allocation-table th,.allocation-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #e4e9e5;vertical-align:middle}.allocation-table tbody tr:last-child td{border-bottom:0}@media(max-width:900px){.allocation-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.allocation-summary-grid{grid-template-columns:1fr}.allocation-table-wrap{overflow:visible;border:0;background:transparent}.allocation-table{min-width:0;display:block}.allocation-table thead{display:none}.allocation-table tbody{display:grid;gap:12px}.allocation-table tr{display:grid;padding:14px;background:#fff;border:1px solid #dce4de;border-radius:12px}.allocation-table td{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:7px 0;border:0}.allocation-table td:before{content:attr(data-label);color:#6a776f;font-size:.75rem;text-transform:uppercase}}
