:root{--ink:#203c36;--muted:#74827d;--green:#18745c;--line:#e5ebe7;--surface:#f5f7f4;--bs-primary:#18745c;--bs-body-color:#203c36;--bs-body-font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{background:var(--surface);color:var(--ink);font-size:14px;letter-spacing:-.015em}a{color:var(--green);text-decoration:none}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}:focus-visible{outline:3px solid #acbe57!important;outline-offset:4px}h4{font-size:1.55rem;font-weight:700;letter-spacing:-.045em;margin-bottom:24px}h5{font-size:1rem;font-weight:650;margin-bottom:20px}.text-muted{color:var(--muted)!important}.skip-link{position:fixed;top:-100px;left:20px;z-index:2000;background:white;padding:12px}.skip-link:focus{top:10px}
.sidebar{width:238px!important;background:#123c35!important;color:#d9e7e1;position:fixed;inset:0 auto 0 0;height:100dvh;z-index:1045;border:0!important}.sidebar-brand{padding:34px 24px 25px;display:flex;align-items:center;justify-content:space-between}.sidebar-brand>a{font-size:23px;font-weight:700;letter-spacing:-1px;color:white;display:flex;align-items:center;gap:9px}.brand-dot{color:#d8ec95;margin-left:-9px}.brand-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:12px;background:#d8ec95;color:#123c35;font-size:19px}.sidebar .offcanvas-body{display:flex;flex-direction:column;padding:14px 16px 22px;height:calc(100% - 94px);overflow-y:auto}.nav-caption{font-size:9px;letter-spacing:1.6px;color:#a5bbb2;padding:0 14px 18px}.side-links{display:grid;gap:6px}.side-links a,.sidebar-footer a{color:#c5d8cf;display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:10px;transition:background .2s,color .2s}.side-links i,.sidebar-footer i{font-size:18px}.side-links a:hover,.sidebar-footer a:hover{background:#ffffff10;color:white}.side-links a.active{background:#d8ec95;color:#193c30;font-weight:650}.active-dot{width:6px;height:6px;background:#244b36;border-radius:50%;margin-left:auto}.sidebar-note{padding:20px 15px;margin-top:auto}.sidebar-note>i{display:block;font-size:24px;color:#d8ec95;margin-bottom:10px}.sidebar-note strong{font-size:13px}.sidebar-note p{font-size:12px;line-height:1.8;color:#a5bbb2;margin:8px 0 0}.sidebar-footer{border-top:1px solid #ffffff16;padding-top:10px}.sidebar-footer a{font-size:12px;padding:10px 15px}.workspace{margin-left:238px}.topbar{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:#ffffffa8}.topbar-label{font-size:12px;color:var(--muted)}.profile{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink)}.profile-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e9eddf;font-weight:700}.profile>.bi{font-size:10px}.main-content{padding:32px 36px 48px;max-width:1700px;margin:0 auto}.page-eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);font-weight:700;margin-bottom:10px}.page-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-intro h1{font-size:clamp(26px,3vw,36px);font-weight:650;letter-spacing:-1.5px;margin:0 0 8px}.page-intro p{color:var(--muted);margin:0;font-size:13px}.date-pill{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:white;color:var(--muted);font-size:12px;white-space:nowrap}.month-toolbar{flex-wrap:wrap}.month-toolbar h4{font-size:17px;text-transform:capitalize}.card{border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 8px #173c3003;min-width:0;animation:card-in .45s both}.card.p-3{padding:23px!important}.card.p-4{padding:32px!important}.row>[class*="col"]{min-width:0}.row>[class*="col"]:nth-child(2)>.card{animation-delay:50ms}.row>[class*="col"]:nth-child(3)>.card{animation-delay:100ms}.row>[class*="col"]:nth-child(4)>.card{animation-delay:150ms}.metric-card{height:100%;position:relative;overflow:hidden}.metric-card small:first-child{color:var(--muted);font-size:11px;font-weight:550;padding-right:22px}.metric-card:after{content:'↗';position:absolute;right:20px;top:18px;color:var(--green);background:#eef4e6;border-radius:9px;display:grid;place-items:center;width:28px;height:28px}.metric-card .kpi{margin:18px 0 6px}.metric-card small:last-child{font-size:10px}.metric-card.balance-card{background:#123c35;border-color:#123c35}.balance-card .kpi span,.balance-card small:first-child{color:#edf6e9!important}.balance-card:after{background:#ffffff18;color:#d8ec95}.kpi{font-size:clamp(20px,2.2vw,30px);font-weight:650;letter-spacing:-1.1px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.pos{color:#18745c!important}.neg{color:#c25454!important}.budget-card{background:linear-gradient(125deg,#eef4df,#f8faef);border-color:#e0e9c9}.budget-card .kpi{font-size:36px;margin:6px 0 12px}.budget-card small{display:block;margin-top:18px;font-size:11px;line-height:1.8}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.btn{border-radius:9px;font-size:13px;padding:10px 16px;font-weight:550;transition:transform .18s,background-color .18s,box-shadow .18s}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 10px #183d3010}.btn:active{transform:translateY(0)}.btn-sm{padding:8px 12px;font-size:12px}.btn-primary,.btn-success{--bs-btn-bg:#18745c;--bs-btn-border-color:#18745c;--bs-btn-hover-bg:#125c49;--bs-btn-hover-border-color:#125c49;--bs-btn-active-bg:#104f40;--bs-btn-active-border-color:#104f40}.btn-danger{--bs-btn-bg:#bb5252;--bs-btn-border-color:#bb5252;--bs-btn-hover-bg:#a24343;--bs-btn-hover-border-color:#a24343}.btn-outline-secondary{--bs-btn-color:#62736a;--bs-btn-border-color:#dce4de;--bs-btn-hover-bg:#e8eee8;--bs-btn-hover-color:#203c36;--bs-btn-hover-border-color:#c9d5cc}.btn-outline-primary{--bs-btn-color:#18745c;--bs-btn-border-color:#bdd6cb;--bs-btn-hover-bg:#18745c;--bs-btn-hover-border-color:#18745c}.form-control,.form-select{min-height:44px;border-color:#dfe6df;border-radius:9px;font-size:14px;padding:10px 12px;background-color:#fcfdfb}.form-control:focus,.form-select:focus{border-color:#7da88f;box-shadow:0 0 0 3px #18745c13;background-color:white}.form-label{font-size:12px;font-weight:600;margin-bottom:7px}.form-check-input:checked{background-color:var(--green);border-color:var(--green)}.alert{border:0;border-radius:11px;font-size:13px;line-height:1.6}.alert-secondary{background:#f2f5ed;color:#64715d}.badge{font-weight:550;border-radius:6px;padding:6px 8px}.table{--bs-table-bg:transparent;font-size:12px;margin-bottom:0}.table td,.table th{padding:13px 9px;vertical-align:middle;border-color:#edf0eb}.table th{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:#738078;font-weight:650;white-space:nowrap}.table td{white-space:nowrap}.table-scroll{overflow-x:auto;max-width:100%;border-radius:10px;overscroll-behavior-x:contain}.table-scroll:focus{outline-offset:-3px}.table .btn-sm{padding:7px 9px}.table-hover>tbody>tr:hover>*{--bs-table-bg-state:#f2f6ee}.mobile-nav{display:none}.menu-button{border:0;background:transparent;font-size:25px;color:var(--ink)}canvas{max-width:100%}.chart-card{min-height:290px}.empty-state{padding:35px 12px;text-align:center;color:var(--muted)}.empty-state i{display:block;font-size:30px;color:#a5b692;margin-bottom:12px}.empty-state p{font-size:12px;margin:8px 0 0}.auth-layout{background:radial-gradient(ellipse at 15% 10%,#e3ebd6,transparent 55%),#f5f7f4;min-height:100dvh}.auth-layout .main-content{display:flex;flex-direction:column;justify-content:center;min-height:100dvh;max-width:1100px}.auth-shell{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.auth-story .brand-icon{width:50px;height:50px;font-size:26px;margin-bottom:30px;background:#123c35;color:#d8ec95}.auth-story h1{font-size:48px;letter-spacing:-2.5px;line-height:1.1;font-weight:650}.auth-story p{color:var(--muted);line-height:1.8;margin-top:22px;max-width:320px}.auth-story .auth-caption{font-size:10px;letter-spacing:1.6px;font-weight:600;color:#18745c}.auth-card h4{margin-bottom:8px}.auth-card>p{font-size:13px;margin-bottom:25px}.auth-card .btn{min-height:46px;margin-top:10px}.auth-footnote{font-size:11px;color:var(--muted);margin:22px 0 0;text-align:center}
@keyframes card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:992px){.sidebar.offcanvas-lg{display:block!important}.sidebar .offcanvas-body{display:flex!important}.metric-card{transition:transform .2s,box-shadow .2s}.metric-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #173c300a}}
@media(max-width:1199px) and (min-width:992px){.sidebar{width:210px!important}.workspace{margin-left:210px}.main-content{padding:25px 22px}.topbar{padding:0 22px}.card.p-3{padding:17px!important}}
@media(max-width:991px){.workspace{margin-left:0}.topbar{height:68px;padding:0 20px}.main-content{padding:24px 20px calc(100px + env(safe-area-inset-bottom))}.sidebar .offcanvas-body{height:auto}.sidebar{width:280px!important}.sidebar-note{margin-top:24px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fffffff2;backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:1020}.mobile-nav a,.mobile-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;color:#7b877f;font-size:10px;min-width:54px;padding:6px;border-radius:10px}.mobile-nav i{font-size:20px}.mobile-nav .active{color:#18745c;background:#eff4e6;font-weight:700}.page-intro{margin-bottom:24px}.auth-shell{gap:35px}.auth-story h1{font-size:38px}.auth-layout .main-content{padding:35px 24px}.main-content>.d-flex{flex-wrap:wrap}.chart-card{min-height:240px}}
@media(max-width:575px){body{font-size:13px}.main-content{padding:22px 16px calc(100px + env(safe-area-inset-bottom))}.topbar{padding:0 16px}.topbar-label{font-size:11px}.profile>span:not(.profile-avatar){max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-intro .date-pill{display:none}.page-intro h1{font-size:29px}.page-intro p{font-size:12px}.page-eyebrow{font-size:9px}.card.p-3{padding:17px!important}.row.g-3{--bs-gutter-x:12px;--bs-gutter-y:12px}.metric-card .kpi{font-size:21px;letter-spacing:-1px}.metric-card:after{width:22px;height:22px;right:12px;top:13px;font-size:12px}.metric-card small:first-child{font-size:10px;display:block;min-height:30px}.metric-card .kpi{margin-top:7px}.metric-card small:last-child{font-size:9px}.month-toolbar h4{font-size:14px}.month-toolbar .btn{padding:9px}.month-toolbar{gap:6px!important}.form-control,.form-select{font-size:16px;min-height:46px}.btn{min-height:42px}.table .btn{min-width:42px;min-height:42px}.table td{padding:12px 8px}.budget-card .kpi{font-size:32px}.auth-shell{grid-template-columns:1fr;gap:24px}.auth-story .brand-icon{width:38px;height:38px;font-size:20px;margin-bottom:20px}.auth-story h1{font-size:32px;letter-spacing:-1.5px}.auth-story p{display:none}.auth-story .auth-caption{margin-bottom:12px}.auth-layout .main-content{padding:30px 18px;justify-content:flex-start}.card.p-4{padding:24px!important}h4{font-size:22px}.table-responsive{overscroll-behavior-x:contain}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.btn:hover,.metric-card:hover{transform:none}}
.profile-avatar{overflow:hidden;flex-shrink:0}.profile-avatar img,.large-avatar img{width:100%;height:100%;object-fit:cover}.profile-form{display:grid;grid-template-columns:230px 1fr;gap:40px}.profile-photo-editor{border-right:1px solid var(--line);padding-right:28px}.large-avatar{width:100px;height:100px;display:grid;place-items:center;border-radius:28px;background:#eaf0dd;color:#18745c;font-size:38px;font-weight:600;overflow:hidden}.profile-photo-editor input[type=file]{font-size:11px;max-width:100%;min-height:38px}.profile-photo-editor small{font-size:11px;line-height:1.7}.profile-details{align-self:center}.form-control:disabled{background:#f1f4ee;color:#7b877d}@media(max-width:767px){.profile-form{grid-template-columns:1fr;gap:24px}.profile-photo-editor{border-right:0;border-bottom:1px solid var(--line);padding:0 0 24px}.profile-photo-editor input[type=file]{font-size:14px}.profile-details .btn{width:100%}}
