:root{--green: #07934f;--green-dark: #056b3a;--red: #e33f43;--blue: #2774d8;--amber: #b45309;--bg: #f5f7f6;--card: #fff;--text: #17202a;--muted: #78847e;--line: #e6ebe8;--sidebar: #10231b}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}#app{min-height:100vh}.bootLoading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted)}.loginScreen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.loginCard{background:var(--card);border-radius:14px;border:1px solid var(--line);padding:30px 26px;width:min(380px,100%);box-shadow:0 4px 24px #0000000d}.loginBrand{text-align:center;font-size:26px;font-weight:900;margin-bottom:22px}.loginBrand span{color:var(--green)}.loginBrand small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);margin-top:4px;font-weight:600}.loginForm{display:flex;flex-direction:column;gap:14px}.loginForm label{display:block;font-size:12px;font-weight:700;color:#4b5563}.loginForm input{display:block;width:100%;margin-top:6px;border:1px solid #d1d5db;border-radius:8px;padding:11px;background:#fff;font-size:14px}.loginError{background:#fee2e2;color:#991b1b;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:600}.appShell{display:flex;min-height:100vh}.sideNav{width:235px;background:var(--sidebar);color:#dfeae4;padding:20px 14px;display:flex;flex-direction:column;gap:6px;position:fixed;inset:0 auto 0 0}.brand{font-size:23px;font-weight:900;padding:6px 10px 22px}.brand span{color:var(--green)}.navList{display:flex;flex-direction:column;gap:4px}.navItem{width:100%;border:0;background:transparent;color:#b8c9c0;text-align:left;border-radius:8px;padding:12px 13px;font-size:14px}.navItem.active{background:#1d3a2d;color:#fff}.navItem:disabled{opacity:.55;cursor:default}.navBottom{margin-top:auto}.navUser{padding:12px 10px;border-top:1px solid #294237}.navUser small{display:block;color:#91a79b;font-size:10px;margin-top:3px;text-transform:capitalize}.logoutBtn{width:100%;margin-top:10px;background:transparent;border:1px solid #294237;color:#dfeae4;border-radius:8px;padding:10px;font-weight:700}.mainArea{margin-left:235px;width:calc(100% - 235px);padding:0 0 90px}.topBar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#fff;border-bottom:1px solid var(--line)}.sitePickerTrigger{border:0;background:transparent;text-align:left;padding:0}.sitePickerTrigger small{display:block;font-size:10px;color:var(--muted);letter-spacing:.6px}.sitePickerTrigger b{display:block;font-size:15px;margin-top:2px}.topBarActions{display:flex;align-items:center;gap:14px}.dBtn{border:0;border-radius:8px;padding:10px 16px;font-weight:800;font-size:13px}.dBtn.primary{background:var(--green);color:#fff}.logoutBtnMobile{display:none}.homeContent{padding:20px 24px}.sectionHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sectionHead h2{font-size:16px;margin:0}.empty{padding:26px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:12px}.pnlCard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}.pnlCardTitle{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:10px}.pnlStatsRow{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px}.pnlStatsRow small{display:block;font-size:11px;color:var(--muted)}.pnlStatsRow b{display:block;font-size:16px;margin-top:4px}.catRow{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:#fff;padding:13px 15px;border-bottom:1px solid #eef1ef;text-align:left;font-size:13px;font-weight:700}.catRow:last-child{border-bottom:0}.catRow:hover{background:#f9fafb}.txList{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.txRow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid #eef1ef}.txRow:last-child{border-bottom:0}.txMain{min-width:0}.txMain b{display:block;font-size:13px;overflow-wrap:break-word}.txMain small{display:block;font-size:11px;color:var(--muted);margin-top:3px;overflow-wrap:break-word}.txSiteTag{color:var(--green-dark);font-weight:800}.amount{font-weight:800;font-size:13px;white-space:nowrap}.amount.green,.green{color:var(--green)}.amount.red,.red{color:var(--red)}.bottomNav{display:none}.fabAdd{background:var(--green);color:#fff;border:0;border-radius:50%;width:46px;height:46px;font-size:26px;align-self:center;justify-self:center}.sheetBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;z-index:20;display:none}.sheetBackdrop.show{display:block}.quickAddSheet{position:fixed;left:50%;bottom:-400px;transform:translate(-50%);width:min(420px,92vw);background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -8px 25px #0002;padding:14px;z-index:30;transition:bottom .18s ease}.quickAddSheet.open{bottom:0}.quickAddSheet button{display:block;width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:13px;text-align:left;margin-bottom:8px;font-weight:700}.quickAddSheet .quickAddCancel{text-align:center;background:#f3f5f4;margin-bottom:0}.formSheet{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.97);width:min(480px,92vw);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;padding:20px;z-index:31;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.formSheet.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.formSheetHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.formSheetHead h2{margin:0;font-size:18px}.closeFormSheet{border:0;background:#f1f4f2;border-radius:50%;width:32px;height:32px;font-size:18px}.formSiteBadge{font-size:12px;color:var(--muted);background:#f3f6f4;border-radius:8px;padding:8px 10px;margin-bottom:14px}.formSiteBadge b{color:var(--text)}.sheetForm label{display:block;font-size:11px;font-weight:700;color:#58655e;margin-bottom:12px}.sheetForm input,.sheetForm select,.sheetForm textarea{display:block;width:100%;margin-top:5px;border:1px solid #dce4df;border-radius:8px;padding:10px;font-size:14px;background:#fff}.sheetForm textarea{min-height:70px;resize:vertical}.formError{background:#fee2e2;color:#991b1b;border-radius:8px;padding:9px 11px;font-size:12px;font-weight:600;margin-bottom:12px}.wideBtn{width:100%;border:1px solid var(--green);background:var(--green);color:#fff;border-radius:8px;min-height:46px;font-weight:800}.wideBtn.incomeBtn{background:var(--blue);border-color:var(--blue)}.wideBtn:disabled{opacity:.7}.sitePickerList{display:flex;flex-direction:column;gap:8px}.sitePickerRow{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 14px;text-align:left}.sitePickerRow.selected{border-color:var(--green);background:#f0faf4}.sitePickerRow b{display:block;font-size:13px}.sitePickerRow small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.checkmark{color:var(--green);font-weight:900}@media (max-width: 700px){.sideNav{display:none}.mainArea{margin-left:0;width:100%;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.logoutBtn{display:none}.logoutBtnMobile{display:block;border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700;padding:8px 6px;min-height:36px}#topAddBtn{display:none}.topBar{padding:12px 16px}.homeContent{padding:12px 14px 4px}.sectionHead{margin-bottom:8px}.summaryCard{padding:12px 14px;margin-bottom:12px}.summaryStatsRow{gap:6px}.summaryStatsRow b{font-size:15px}.healthGrid{gap:6px;margin-bottom:12px}.healthCard{padding:10px 12px}.healthCardHead{margin-bottom:6px}.healthStatsRow{gap:6px;margin-bottom:6px}.healthStatsRow b{font-size:14px}.healthBarTrack{height:6px}.healthPctLabel{margin-top:4px}.txRow{padding:11px 13px}.formSiteBadge{font-size:13px;padding:10px 12px;border-left:3px solid var(--green);background:#eefaf1}.bottomNav{display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr 1fr 1fr;position:fixed;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);z-index:6}.bottomNav button{border:0;background:transparent;color:var(--muted);font-size:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px}.bottomNav button small{font-size:8px;font-weight:600}.bottomNav .navActive{color:var(--green);font-weight:800}.bottomNav .navActive small{font-weight:800}.fabAdd{width:52px;height:52px;font-size:28px;box-shadow:0 2px 10px #07934f59}.formSheet{top:auto;bottom:0;left:0;transform:translateY(30px);width:100%;max-height:85vh;border-radius:16px 16px 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.formSheet.open{transform:translateY(0)}.quickAddSheet{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}.uploadFormBody label{display:block;font-size:11px;font-weight:700;color:#58655e;margin-bottom:14px}.uploadFormBody input[type=file]{display:block;width:100%;margin-top:5px;border:1px solid #dce4df;border-radius:8px;padding:9px;font-size:13px;background:#fff}.importSummary{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;font-weight:700;color:var(--muted);margin:10px 0 12px}.importPreviewTableWrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin-bottom:14px;max-height:320px;overflow-y:auto}.importPreviewTable{width:100%;border-collapse:collapse;min-width:640px;font-size:12px}.importPreviewTable th,.importPreviewTable td{padding:9px 10px;border-bottom:1px solid #eef1ef;text-align:left;white-space:nowrap}.importPreviewTable th{background:#f9fafb;color:#4b5563;font-size:10px;text-transform:uppercase;position:sticky;top:0}.importPreviewTable .right{text-align:right}.statusPill{display:inline-block;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800}.statusPill.green{background:#dcfce7;color:#166534}.statusPill.red{background:#fee2e2;color:#991b1b}.statusPill.amber{background:#fffbeb;color:var(--amber)}.statusPill.gray{background:#f1f3f2;color:#58655e}.invalidReason{display:block;color:var(--red);font-size:10px;margin-top:3px;white-space:normal}.dupImportCheck{display:block;margin-top:5px}.importSuccess{background:#ecfdf5;color:#166534;border-radius:8px;padding:14px;font-weight:700;text-align:center;margin-bottom:12px}.summaryCard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:16px}.summaryStatsRow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summaryStatsRow small{display:block;font-size:11px;color:var(--muted);font-weight:700}.summaryStatsRow b{display:block;font-size:17px;margin-top:4px}.healthGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px}.healthCard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.healthCardHead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.healthCardHead b{font-size:14px}.healthStatsRow{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:10px;margin-bottom:12px}.healthStatsRow small{display:block;font-size:10px;color:var(--muted)}.healthStatsRow b{display:block;font-size:14px;margin-top:3px}.healthBarTrack{background:#eef1ef;border-radius:999px;height:8px;overflow:hidden}.healthBarTrack.noQuotation{background:repeating-linear-gradient(45deg,#eef1ef,#eef1ef 6px,#e4e7e5 6px,#e4e7e5 12px)}.healthBarFill{height:100%;border-radius:999px}.healthBarFill.green{background:var(--green)}.healthBarFill.amber{background:var(--amber)}.healthBarFill.red{background:var(--red)}.healthPctLabel{font-size:11px;color:var(--muted);font-weight:700;margin-top:6px}.reportsFilterBar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px}.reportsFilterBar label{font-size:11px;font-weight:700;color:var(--muted)}.reportsFilterBar input[type=date]{display:block;margin-top:4px;border:1px solid #dce4df;border-radius:8px;padding:8px 10px;font-size:13px;background:#fff}.reportGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.reportCard{text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.reportCard:hover{border-color:var(--green);background:#f6fbf8}.reportCard b{display:block;font-size:14px}.reportCard small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.reportPeriodButtons{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.reportPeriodButtons button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:700}.reportPeriodButtons button:hover{border-color:var(--green);color:var(--green)}.reportTableWrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.reportTable{width:100%;border-collapse:collapse;min-width:640px;font-size:12px}.reportTable th,.reportTable td{padding:10px 12px;border-bottom:1px solid #eef1ef;text-align:left;white-space:nowrap}.reportTable th{background:#f9fafb;color:#4b5563;font-size:10px;text-transform:uppercase}.reportTable tfoot td{border-bottom:0;border-top:2px solid var(--line);background:#f9fafb}.reportTable .right{text-align:right}.reportTable .clickRow{cursor:pointer}.reportTable .clickRow:hover{background:#f6fbf8}
