:root{font-family:Roboto,Arial,Helvetica,sans-serif;color:#202124;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.appShell{min-height:100vh;background:#fff}.topShell{position:sticky;top:0;z-index:20;display:flex;height:56px;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #dadce0;background:#fff;padding:0 16px}.brandLine,.topActions,.tableActions{display:flex;align-items:center}.brandLine{min-width:280px;gap:18px;font-size:21px;font-weight:500;white-space:nowrap}.menuButton,.iconButton{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:4px;color:#5f6368;background:transparent}.menuButton:hover,.iconButton:hover,.wideNav button:hover,.iconNav button:hover{background:#f1f3f4}.topActions{justify-content:flex-end;gap:8px;min-width:0;flex:1}.searchBox{display:flex;width:min(520px,45vw);height:40px;align-items:center;gap:10px;border-radius:7px;background:#f1f3f4;padding:0 14px;color:#5f6368}.searchBox input{width:100%;border:0;outline:0;background:transparent;color:#3c4043}.avatar{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;color:#fff;background:#4285d9;font-weight:700}.dbPill{display:inline-flex;min-height:26px;align-items:center;border-radius:999px;color:#a50e0e;background:#fce8e6;padding:0 10px;font-size:12px;font-weight:700;white-space:nowrap}.dbPill.connected{color:#137333;background:#e6f4ea}.bodyShell{display:grid;min-height:calc(100vh - 56px);grid-template-columns:auto minmax(0,1fr)}.sideShell{display:grid;grid-template-columns:248px;border-right:1px solid #dadce0;background:#fff;overflow:hidden;transition:grid-template-columns .18s ease}.sideShell.collapsed{grid-template-columns:56px 0}.iconNav,.wideNav{display:flex;flex-direction:column;gap:8px;padding:6px}.iconNav{border-right:1px solid #eceff1;width:56px;overflow:hidden;opacity:0;pointer-events:none;transform:translate(-8px);transition:opacity .14s ease,transform .18s ease}.wideNav{min-width:248px;overflow:hidden;opacity:1;transition:opacity .14s ease,transform .18s ease}.sideShell.expanded .iconNav{display:none}.sideShell.collapsed .iconNav{opacity:1;pointer-events:auto;transform:translate(0)}.sideShell.collapsed .wideNav{display:none;pointer-events:none;opacity:0;transform:translate(-8px)}.iconNavSection,.wideNavSection{display:flex;flex-direction:column;gap:2px}.wideNavSection{padding-bottom:8px}.wideNavSection+.wideNavSection{border-top:1px solid #eceff1;padding-top:10px}.wideNavSection.moduleHeader h2{color:#3c4043;font-size:12px}.iconNavSection+.iconNavSection{border-top:1px solid #eceff1;padding-top:10px}.wideNavSection h2{margin:4px 12px 6px;color:#80868b;font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.iconNav button,.wideNav button{border:0;color:#5f6368;background:transparent}.iconNav button{display:grid;width:42px;height:42px;place-items:center;border-radius:21px}.wideNav button{display:grid;min-height:42px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:12px;border-radius:24px;padding:0 12px;text-align:left;font-size:14px}.iconNav button.active,.wideNav button.active{color:#1a73e8;background:#e8f0fe}.wideNav span{overflow-wrap:anywhere}.moduleBody{min-height:calc(100vh - 56px);background:#f8f9fa;padding:32px}.moduleChooser{display:grid;max-width:1180px;gap:22px;margin:0 auto}.moduleChooserHeader{display:grid;gap:4px}.moduleChooserHeader p,.moduleChooserHeader h1{margin:0}.moduleChooserHeader p{color:#5f6368;font-size:13px;font-weight:700;text-transform:uppercase}.moduleChooserHeader h1{color:#202124;font-size:28px;font-weight:700}.moduleGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.moduleButton{display:grid;min-height:132px;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:16px;border:1px solid #dadce0;border-radius:8px;background:#fff;color:#202124;padding:20px;text-align:left;box-shadow:0 1px 2px #3c404314}.moduleButton:hover{border-color:#c5d7f2;background:#f7fafd}.moduleButton:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.moduleIcon{display:grid;width:54px;height:54px;place-items:center;border-radius:8px;color:#1a73e8;background:#e8f0fe}.moduleButton span:last-child{display:grid;gap:6px;min-width:0}.moduleButton strong{font-size:18px;font-weight:700}.moduleButton small{color:#5f6368;font-size:13px;line-height:1.35}.contentShell{min-width:0;background:#fff}.pageBar{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dadce0;padding:0 16px}.pageBar h1{margin:0;font-size:18px;font-weight:600}.tableActions{gap:8px}.primaryAction,.textAction{min-height:32px;border-radius:4px;font-size:14px;font-weight:700}.primaryAction{border:1px solid #1a73e8;color:#fff;background:#4285d9;padding:0 14px}.textAction{border:1px solid #c5d7f2;color:#1a73e8;background:#fff;padding:0 12px}.tableViewport{width:calc(100vw - 249px);height:calc(100vh - 150px);overflow:auto}.sideShell.collapsed+.contentShell .tableViewport{width:calc(100vw - 57px)}.dataTable{min-width:2140px;border-collapse:collapse;font-size:13px}.dataTable th,.dataTable td{height:38px;max-width:245px;overflow:hidden;border-right:1px solid #e0e3e7;border-bottom:1px solid #e0e3e7;padding:0 12px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.dataTable th{position:sticky;top:0;z-index:2;background:#fff;font-weight:700}.sortHeader{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;color:inherit;padding:0;text-align:left;font-weight:700}.sortHeader b{color:#1a73e8;font-size:11px}.tablePager{display:flex;min-height:46px;align-items:center;justify-content:flex-end;gap:12px;border-top:1px solid #e0e3e7;background:#fff;padding:8px 14px;color:#5f6368;font-size:13px}.tablePager label{display:flex;align-items:center;gap:6px}.tablePager select{height:30px;border:1px solid #cfd4da;border-radius:4px;background:#fff}.tablePager button{min-height:30px;border:1px solid #cfd4da;border-radius:4px;background:#fff;color:#3c4043;padding:0 10px;font-weight:700}.tablePager button:disabled{cursor:default;color:#b0b6bd;background:#f8f9fa}.dataTable tr.selectedRow td{background:#eef4fb}.clickableRow{cursor:pointer}.clickableRow:hover td{background:#f7fafd}.dataTable tr.stockBelowReorder td{color:#c5221f}.rowAction{width:42px;color:#5f6368;text-align:center}.rowDetailButton{min-height:26px;border:1px solid #c5d7f2;border-radius:4px;color:#1a73e8;background:#fff;padding:0 10px;font-size:12px;font-weight:700}.patientActions{display:inline-flex;align-items:center;gap:7px;color:#3c4043}.patientActions svg{color:#5f6368}.patientTable{min-width:1180px}.patientTable .iconCell{width:40px;color:#6b7075;text-align:center}.patientSplit{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(0,1fr) 520px;overflow:hidden}.patientDetailPanel{min-width:0;background:#f8f9fa;border-left:1px solid #dadce0;padding:16px;overflow:auto}.detailHeader{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.detailHeader h2{margin:0;color:#3c4043;font-size:18px;font-weight:700}.detailActions{display:flex;align-items:center;gap:8px}.patientInfoCard{display:grid;max-width:700px;gap:16px;border:1px solid #dadce0;border-radius:4px;background:#fff;padding:22px}.patientDetailField{position:relative;display:grid;gap:7px;padding-right:86px}.patientDetailField span{color:#6b7075;font-size:12px;font-weight:700}.patientDetailField strong{color:#3c4043;font-size:15px;font-weight:600;overflow-wrap:anywhere}.inlineIcons{position:absolute;right:0;bottom:0;display:flex;gap:14px;color:#6b7075}.emptyState{display:flex;min-height:90px;align-items:center;color:#5f6368}.dashboardCanvas{display:grid;min-height:calc(100vh - 104px);grid-template-columns:320px minmax(0,1fr);gap:24px;padding:18px;overflow:hidden}.filterPanel,.dashboardTable{min-width:0}.filterPanel{display:flex;flex-direction:column;gap:18px;border-right:1px solid #dadce0;padding:4px 22px 0 4px}.filterPanel h2,.dashboardTable h2{margin:0;color:#3c4043;font-size:16px;font-weight:700}.filterPanel label{display:grid;gap:8px}.filterPanel span{color:#6b7075;font-size:13px;font-weight:700}.filterPanel select{height:48px;width:100%;border:1px solid #cfd4da;border-radius:4px;background:#fff;color:#3c4043;padding:0 12px}.numberControl{display:grid;height:48px;grid-template-columns:minmax(0,1fr) 34px 34px;align-items:center;border:1px solid #cfd4da;border-radius:4px;background:#fff}.numberControl input{min-width:0;height:46px;border:0;outline:0;padding:0 12px}.numberControl b{color:#5f6368;font-size:22px;text-align:center}.dashboardTable{display:grid;align-content:start;gap:14px}.compactTableViewport{width:100%;height:calc(100vh - 158px);border-top:1px solid #e0e3e7}.detailSplit{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(0,1fr) 400px;overflow:hidden}.detailTablePane{min-width:0;border-right:1px solid #dadce0}.detailPanel{min-width:0;background:#fafafa;padding:18px;overflow:auto}.detailPanel h2{margin:0 0 18px;color:#3c4043;font-size:18px;font-weight:700}.detailCard{display:grid;gap:16px;border:1px solid #e0e3e7;border-radius:4px;background:#fff;padding:18px}.detailField{display:grid;gap:5px}.detailField span{color:#6b7075;font-size:12px;font-weight:700}.detailField strong{color:#3c4043;font-size:16px;font-weight:600;overflow-wrap:anywhere}.recapGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) auto;gap:18px;padding:18px;overflow:hidden}.recapGrid .summaryPanel{grid-column:1 / 2}.reportFilter{border-right:0;border-left:1px solid #dadce0;padding-left:22px}.summaryPanel,.chartPanel,.salaryReport{min-width:0;border:1px solid #e0e3e7;border-radius:4px;background:#fff;padding:16px}.summaryPanel h2,.chartPanel h2,.salaryReport h2{margin:0 0 14px;color:#3c4043;font-size:16px;font-weight:700}.metricList{display:grid;gap:1px;overflow:hidden;border:1px solid #edf0f2;border-radius:4px}.metricRow{display:grid;min-height:44px;grid-template-columns:minmax(160px,1fr) minmax(160px,auto);align-items:center;gap:14px;background:#fff;padding:10px 12px}.metricRow span{color:#6b7075;font-size:13px;font-weight:700}.metricRow strong{color:#202124;font-size:15px;text-align:right}.metricRow.warning strong{color:#c5221f}.reportMenu{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:18px;padding:24px}.reportTile{position:relative;display:grid;min-height:170px;align-content:start;gap:12px;border:1px solid #dadce0;border-radius:6px;background:#fff;padding:22px;color:#3c4043;text-align:left}.reportTile:hover{border-color:#a8c7fa;background:#f8fbff}.reportTile svg{color:#5f6368}.reportTile strong{font-size:16px}.reportTile span{color:#6b7075;font-size:13px;line-height:1.4}.reportTile>svg:last-child{position:absolute;right:18px;bottom:18px}.reportDetailGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:320px minmax(0,1fr);gap:24px;padding:18px;overflow:hidden}.treatmentReportGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:290px minmax(320px,1fr) minmax(320px,1fr);grid-auto-rows:minmax(260px,1fr);gap:18px;padding:18px;overflow:auto}.breadcrumb{display:flex;align-items:center;gap:6px;color:#6b7075;font-size:13px;font-weight:700}.breadcrumb strong{color:#3c4043}.bigMetric{display:grid;gap:8px;border:1px solid #e0e3e7;border-radius:4px;background:#fafafa;padding:18px}.bigMetric span{color:#6b7075;font-size:13px;font-weight:700}.bigMetric strong{color:#202124;font-size:24px;overflow-wrap:anywhere}.barChart{display:flex;min-height:300px;align-items:end;gap:12px;border-left:1px solid #dadce0;border-bottom:1px solid #dadce0;padding:18px 12px 8px}.barItem{display:grid;min-width:34px;flex:1;gap:8px}.barTrack{display:flex;height:240px;align-items:end}.barTrack span{display:block;width:100%;border-radius:4px 4px 0 0;background:#4285d9}.barItem small{overflow:hidden;color:#6b7075;font-size:11px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.donutWrap{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:28px;min-height:320px}.donutChart{width:220px;height:220px;transform:rotate(-90deg)}.donutBase,.donutSlice{fill:none;stroke-width:28}.donutBase{stroke:#edf0f2}.donutSlice{stroke-linecap:butt}.slice0{stroke:#4285d9;background:#4285d9}.slice1{stroke:#34a853;background:#34a853}.slice2{stroke:#fbbc04;background:#fbbc04}.slice3{stroke:#ea4335;background:#ea4335}.slice4{stroke:#7e57c2;background:#7e57c2}.slice5{stroke:#0097a7;background:#0097a7}.donutLegend{display:grid;gap:12px}.donutLegend div{display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:10px}.legendSwatch{width:12px;height:12px;border-radius:50%}.donutLegend strong{overflow:hidden;color:#3c4043;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.donutLegend em{color:#6b7075;font-size:13px;font-style:normal;font-weight:700}.formCanvas{min-height:calc(100vh - 104px);overflow:auto;padding:40px 24px 80px}.stockFormCanvas{min-height:calc(100vh - 104px);overflow:auto;padding:34px 24px 80px}.stockRecordForm{display:grid;width:min(560px,100%);gap:20px;margin:0 auto}.stockField{display:grid;gap:8px}.stockField>span{color:#5f6368;font-size:13px;font-weight:600}.stockField>span b{color:#1a73e8}.stockField>input,.stockField>select,.stockStepper,.stockMoney{width:100%;height:48px;border:1px solid #cfd4da;border-radius:4px;background:#fff;color:#3c4043}.stockField>input,.stockField>select{padding:0 13px}.stockField>input:focus,.stockField>select:focus,.stockStepper:focus-within,.stockMoney:focus-within{border-color:#1a73e8;outline:1px solid #1a73e8}.stockField>input[readonly]{color:#80868b;background:#f8f9fa}.stockStepper,.stockMoney{display:grid;align-items:center}.stockStepper{grid-template-columns:minmax(0,1fr) 42px 42px}.stockMoney{grid-template-columns:36px minmax(0,1fr) 42px 42px}.stockMoney:has(input[readonly]){grid-template-columns:36px minmax(0,1fr);background:#f8f9fa}.stockMoney>span{color:#5f6368;padding-left:12px;font-weight:600}.stockStepper input,.stockMoney input{min-width:0;height:46px;border:0;outline:0;background:transparent;padding:0 8px}.stockStepper button,.stockMoney button{display:grid;width:42px;height:46px;place-items:center;border:0;background:transparent;color:#5f6368}.stockStepper button:hover,.stockMoney button:hover{background:#f1f3f4}.stockFormStatus{margin:0;color:#137333;font-size:13px;font-weight:700}.stockFormStatus.error{color:#a50e0e}.stockMovementMenu{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:16px;padding:20px;overflow:auto}.stockMovementTile{position:relative;display:grid;min-height:180px;align-content:end;gap:12px;border:1px solid #dadce0;border-radius:4px;background:#fff;padding:18px;color:#3c4043;text-align:left}.stockMovementTile:hover{border-color:#a8c7fa;background:#f8fbff}.stockMovementTile>svg:first-child{align-self:center;justify-self:center;margin-bottom:30px;color:#5f6368}.stockMovementTile>svg:last-child{position:absolute;right:14px;bottom:14px;color:#1a73e8}.stockMovementTile strong{max-width:calc(100% - 22px);font-size:14px}.stockMovementSplit{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(0,1fr);overflow:hidden}.stockMovementSplit.hasDetail{grid-template-columns:minmax(0,1fr) 500px}.stockMovementTable{min-width:0;overflow:hidden}.stockMovementTable .compactTableViewport{height:calc(100vh - 150px)}.stockMovementDetail{min-width:0;border-left:1px solid #dadce0;background:#f8f9fa;padding:16px;overflow:auto}.stockMovementDetailCard{display:grid;gap:16px;border:1px solid #dadce0;border-radius:4px;background:#fff;padding:20px}.stockPurchaseMenu{grid-template-columns:repeat(4,minmax(180px,1fr));max-width:920px}.stockSearchMenu{grid-template-columns:repeat(2,minmax(180px,1fr));max-width:660px}.stockAnalysisMenu{grid-template-columns:repeat(5,minmax(160px,1fr))}.stockReportPanel{min-width:0;border:1px solid #dadce0;border-radius:4px;background:#fff;overflow:hidden}.stockReportPanel>h2{min-height:46px;margin:0;border-bottom:1px solid #e0e3e7;padding:13px 14px;color:#3c4043;font-size:16px}.stockFilterPanel{display:flex;flex-direction:column;gap:18px;padding-bottom:18px}.stockFilterPanel label{display:grid;gap:8px;padding:0 14px}.stockFilterPanel label span,.stockTotalValue span{color:#6b7075;font-size:12px;font-weight:700}.stockFilterPanel select{width:100%;height:48px;border:1px solid #cfd4da;border-radius:4px;background:#fff;padding:0 12px}.stockReportScroll{height:calc(100vh - 170px);overflow:auto}.stockReportTable table,.stockExpiryList table{width:100%;min-width:720px;border-collapse:collapse;font-size:12px}.stockReportTable th,.stockReportTable td,.stockExpiryList th,.stockExpiryList td{height:38px;max-width:260px;overflow:hidden;border-right:1px solid #e0e3e7;border-bottom:1px solid #e0e3e7;padding:0 11px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.stockReportTable th,.stockExpiryList th{position:sticky;top:0;z-index:2;background:#fff}.stockNameSearchGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(280px,1fr) minmax(360px,1.7fr) 360px;grid-template-rows:minmax(300px,1fr) minmax(280px,1fr);gap:10px;padding:10px}.stockNameSearchGrid .stockProductDetail{grid-column:1 / 2}.stockNameSearchGrid .stockReportScroll{height:100%;max-height:420px}.stockProductDetail{overflow:auto;padding-bottom:16px}.stockProductDetail .detailField{padding:8px 14px}.stockProductDetail .detailField strong{font-size:14px}.stockLocationSearchGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:310px minmax(0,1fr);gap:10px;padding:10px}.stockAnalysisGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:360px minmax(0,1fr);grid-template-rows:minmax(300px,1fr) minmax(300px,1fr);gap:10px;padding:10px}.stockAnalysisGrid .stockChartPanel{grid-column:1 / -1}.stockAnalysisGrid .stockReportScroll,.stockFlowGrid .stockReportScroll,.stockValueGrid .stockReportScroll,.stockTwoColumnReport .stockReportScroll,.stockLocationSearchGrid .stockReportScroll{height:calc(100vh - 180px)}.stockBarChart{display:flex;min-width:900px;height:330px;align-items:end;gap:4px;overflow-x:auto;border-left:1px solid #dadce0;border-bottom:1px solid #dadce0;padding:18px 14px 55px}.stockBarItem{position:relative;display:flex;width:28px;min-width:28px;height:250px;align-items:end}.stockBarItem>span{display:block;width:100%;background:#4285d9}.stockBarItem>b{position:absolute;top:-16px;width:100%;color:#5f6368;font-size:10px;text-align:center}.stockBarItem>small{position:absolute;top:258px;left:2px;width:100px;overflow:hidden;color:#6b7075;font-size:9px;text-overflow:ellipsis;transform:rotate(45deg);transform-origin:top left;white-space:nowrap}.stockSingleReport,.stockTwoColumnReport,.stockFlowGrid,.stockValueGrid{min-height:calc(100vh - 104px);padding:10px}.stockSingleReport .stockReportScroll{height:calc(100vh - 160px)}.stockFlowGrid{display:grid;grid-template-columns:300px minmax(360px,1fr) minmax(360px,1fr);gap:10px}.stockValueGrid{display:grid;grid-template-columns:360px minmax(420px,1fr) minmax(420px,1fr);grid-template-rows:280px minmax(0,1fr);gap:10px}.stockValueGrid>.stockReportTable{grid-row:1 / 3}.stockTotalValue{display:grid;align-content:start;gap:12px;padding-bottom:20px}.stockTotalValue span,.stockTotalValue strong{padding:0 14px}.stockTotalValue strong{font-size:30px}.stockTwoColumnReport{display:grid;grid-template-columns:1.1fr .9fr;gap:10px}.stockStatus.danger{color:#d93025;font-weight:700}.stockStatus.warning{color:#e37400;font-weight:700}.stockStatus.safe{color:#188038;font-weight:700}.stockExpirySplit{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(0,1fr) 520px}.stockExpiryList{border-width:0 1px 0 0}.stockExpiryList .stockReportScroll{height:calc(100vh - 150px)}.stockExpiryList tbody tr{cursor:pointer}.stockExpiryList tbody tr:hover td,.stockExpiryList tbody tr.selectedRow td{background:#eef4fb}.stockExpiryDetail{background:#f8f9fa;padding:16px;overflow:auto}.stockExpiryDetail>h2{margin:0 0 16px;font-size:17px}.expiredStockSplit{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(0,1fr);overflow:hidden}.expiredStockSplit.hasDetail{grid-template-columns:minmax(0,1fr) 500px}.expiredStockTable{min-width:0;overflow:hidden}.expiredStockTable .tableViewport{width:100%;height:calc(100vh - 150px)}.expiredStockTable .dataTable{width:100%;min-width:940px}.expiredStockDetail{display:grid;align-content:start;gap:14px;min-width:0;border-left:1px solid #dadce0;background:#f8f9fa;padding:16px;overflow:auto}.expiredStockDetail .detailHeader{margin-bottom:0}.expiredRelatedCard{display:flex;min-height:120px;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid #dadce0;border-radius:4px;background:#fff;padding:18px}.expiredRelatedCard h3{margin:0;color:#3c4043;font-size:16px}.expiredRelatedCard>strong{display:grid;min-width:24px;height:24px;place-items:center;border-radius:12px;color:#5f6368;background:#eef1f3;font-size:12px}.stockTransferCanvas{display:grid;min-height:calc(100vh - 104px);grid-template-columns:minmax(260px,360px) minmax(420px,620px);align-items:start;justify-content:center;gap:14px;padding:24px}.stockTransferSummary,.stockTransferForm{border:1px solid #dadce0;border-radius:4px;background:#fff}.stockTransferSummary{display:grid;min-height:180px;place-items:center;align-content:center;gap:14px;color:#3c4043}.stockTransferSummary>strong{font-size:22px}.stockTransferSummary>span:last-child{color:#5f6368;font-size:13px;font-weight:700}.stockTransferIcon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:#fff;background:#4285d9}.stockTransferForm{display:grid;gap:20px;padding:28px}.segmentControl{display:grid;height:48px;grid-template-columns:1fr 1fr;border:1px solid #cfd4da;border-radius:4px;overflow:hidden}.segmentControl button{border:0;border-right:1px solid #cfd4da;background:#fff;color:#5f6368;font-weight:700}.segmentControl button:last-child{border-right:0}.segmentControl button.active{color:#fff;background:#4285d9}.purchaseApprovalGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:300px repeat(2,minmax(360px,1fr));grid-template-rows:minmax(280px,1fr) minmax(280px,1fr);gap:10px;padding:10px;overflow:auto}.purchaseFilterPanel,.purchaseDashboardPanel,.purchaseMetric,.purchaseListTable,.historyTable,.budgetInlineAdd{min-width:0;border:1px solid #dadce0;background:#fff}.purchaseFilterPanel{display:grid;align-content:start;gap:18px;grid-row:1 / 3;padding:16px}.purchaseFilterPanel h2,.purchaseDashboardPanel h2,.purchaseListTable h2,.historyTable h2,.budgetInlineAdd h2{margin:0;font-size:16px}.purchaseFilterPanel label{display:grid;gap:8px}.purchaseFilterPanel label span,.budgetStatus span{color:#6b7075;font-size:12px;font-weight:700}.purchaseFilterPanel select{width:100%;height:48px;border:1px solid #cfd4da;border-radius:4px;background:#fff;padding:0 12px}.purchaseDashboardPanel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.purchaseDashboardPanel h2,.purchaseListTable h2,.historyTable h2,.budgetInlineAdd h2{border-bottom:1px solid #dadce0;padding:12px 14px}.purchasePanelTable,.purchaseListTable,.historyTable{min-width:0;overflow:hidden}.purchasePanelTable .tableViewport,.purchaseListTable .tableViewport,.historyTable .tableViewport{width:100%}.purchasePanelTable .compactTableViewport{height:100%}.purchaseReviewActions{max-height:150px;overflow:auto;border-top:1px solid #dadce0}.purchaseReviewActions div{display:grid;min-height:38px;grid-template-columns:minmax(0,1fr) 38px 38px;align-items:center;gap:4px;padding:0 8px 0 12px}.purchaseReviewActions span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchaseReviewActions button{display:grid;width:32px;height:32px;place-items:center;border:1px solid #cfd4da;border-radius:4px;background:#fff}.inlineError,.budgetStatus .warning{color:#c5221f;font-weight:700}.purchaseListGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:300px 360px minmax(620px,1fr);gap:10px;padding:10px;overflow:auto}.purchaseListGrid .purchaseFilterPanel{grid-row:auto}.purchaseMetric{display:grid;align-content:start;gap:10px;padding:20px}.purchaseMetric span{color:#6b7075;font-size:13px;font-weight:700}.purchaseMetric strong{font-size:28px}.budgetStatus{display:grid;gap:8px;border-top:1px solid #dadce0;padding-top:18px}.budgetPage{position:relative}.budgetPageActions{display:flex;justify-content:flex-end;border-bottom:1px solid #dadce0;padding:8px 16px}.budgetFormHeading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dadce0;padding:10px 14px}.budgetFormHeading h2{border:0;padding:0}.budgetFormHeading button{border:0;color:#1967d2;background:transparent;cursor:pointer;font-weight:700}.budgetInlineAdd{position:absolute;top:18px;right:18px;z-index:3;width:min(360px,calc(100% - 36px));box-shadow:0 6px 22px #3c404329}.budgetForm{display:grid;gap:14px;padding:16px}.historyMenu{grid-template-columns:repeat(5,minmax(170px,1fr))}.historyGrid{display:grid;min-height:calc(100vh - 104px);grid-template-columns:380px minmax(0,1fr);gap:10px;padding:10px;overflow:hidden}.historyGrid .purchaseFilterPanel{grid-row:auto}.historyTable .compactTableViewport{height:calc(100vh - 162px)}.recordForm{display:grid;width:min(720px,100%);gap:24px;margin:0 auto}.fieldGroup{display:grid;gap:14px}.fieldGroup h2{margin:0 0 2px;color:#3c4043;font-size:15px;font-weight:700}.fieldStack{display:grid;gap:18px}.fieldLine{display:grid;gap:8px}.fieldLine>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:#6b7075;font-size:13px;font-weight:700}.fieldLine em{color:#9aa0a6;font-size:11px;font-style:normal;font-weight:500}.fieldLine input,.fieldLine select,.inputWithStepper{width:100%;height:54px;border:1px solid #cfd4da;border-radius:4px;background:#fff;color:#3c4043}.fieldLine input,.fieldLine select{padding:0 14px}.fieldLine input[readonly]{color:#9aa0a6;background:#fff;border-color:#edf0f2}.inputWithStepper{display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:center}.inputWithStepper input{height:52px;border:0}.stepper{display:flex;justify-content:center;gap:18px;color:#5f6368;font-size:26px}.segmentGroup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:52px;border:1px solid #d7dbe0}.segmentGroup button{border:0;border-right:1px solid #d7dbe0;color:#6b7075;background:#f8f9fa;font-weight:700}.segmentGroup button:last-child{border-right:0}.segmentGroup button.selected{color:#fff;background:#4285d9}.fileDrop{display:grid;height:64px;place-items:center;border:1px solid #cfd4da;border-radius:4px;color:#6b7075}.checklistPage,.emptyPage{padding:24px}.checklistIntro{margin-bottom:18px}.checklistIntro h2,.emptyPage h2{margin:0 0 8px;font-size:22px}.checklistIntro p,.emptyPage p{margin:0;color:#5f6368}.checkTable{width:100%;border-collapse:collapse;font-size:14px}.checkTable th,.checkTable td{border-bottom:1px solid #e0e3e7;padding:13px 12px;text-align:left}.status{display:inline-flex;min-width:78px;justify-content:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.status.captured{color:#137333;background:#e6f4ea}.status.needed{color:#a50e0e;background:#fce8e6}.stockAdminMenu{grid-template-columns:repeat(4,minmax(160px,220px));align-content:start}.stockAdminList{min-width:0;padding:12px 16px 24px}.stockAdminToolbar{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#5f6368;font-size:13px}.stockAdminToolbar .primaryAction,.stockAdminForm .primaryAction{display:inline-flex;align-items:center;gap:7px}.stockAdminForm{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;align-items:end;gap:12px;margin-bottom:16px;padding:16px;border:1px solid #dadce0;border-radius:6px;background:#fff}.stockAdminForm label{display:grid;gap:6px;min-width:0;color:#5f6368;font-size:12px;font-weight:700}.stockAdminForm label b{margin-left:3px;color:#d93025}.stockAdminForm input{min-width:0;height:38px;border:1px solid #c7ccd1;border-radius:4px;padding:0 10px;color:#202124;font:inherit}.stockAdminStatus{margin:8px 0;color:#5f6368;font-size:13px}.stockAdminTableWrap{min-height:320px;overflow:auto;border:1px solid #dadce0;background:#fff}.stockAdminTable{width:100%;border-collapse:collapse;font-size:13px}.stockAdminTable th,.stockAdminTable td{height:42px;border-right:1px solid #e8eaed;border-bottom:1px solid #e0e3e7;padding:8px 12px;text-align:left;white-space:nowrap}.stockAdminTable th:last-child,.stockAdminTable td:last-child{border-right:0}.stockAdminTable th{position:sticky;top:0;z-index:1;color:#3c4043;background:#f8f9fa;font-size:12px}.stockAdminTable tbody tr:hover{background:#f3f7fd}.userManagement{min-width:0;padding:12px 16px 24px}.userManagementToolbar{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#5f6368;font-size:13px}.userManagementToolbar .primaryAction,.userManagementForm .primaryAction,.userRowActions{display:inline-flex;align-items:center;gap:7px}.userManagementForm{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));align-items:end;gap:12px;margin-bottom:16px;padding:16px;border:1px solid #dadce0;border-radius:6px;background:#fff}.userManagementForm label:not(.userActiveField){display:grid;gap:6px;min-width:0;color:#5f6368;font-size:12px;font-weight:700}.userManagementForm label span b{margin-left:3px;color:#d93025}.userManagementForm input:not([type=checkbox]),.userManagementForm select{min-width:0;height:38px;border:1px solid #c7ccd1;border-radius:4px;background:#fff;padding:0 10px;color:#202124}.userActiveField{display:flex;min-height:38px;align-items:center;gap:8px;color:#3c4043;font-size:13px;font-weight:700}.userActiveField input{width:18px;height:18px}.userManagementStatus{margin:8px 0;color:#5f6368;font-size:13px}.userManagementTableWrap{min-height:320px;overflow:auto;border:1px solid #dadce0;background:#fff}.userManagementTable{width:100%;min-width:820px;border-collapse:collapse;font-size:13px}.userManagementTable th,.userManagementTable td{height:44px;border-right:1px solid #e8eaed;border-bottom:1px solid #e0e3e7;padding:8px 12px;text-align:left;white-space:nowrap}.userManagementTable th{position:sticky;top:0;z-index:1;color:#3c4043;background:#f8f9fa;font-size:12px}.userStatus{display:inline-flex;min-height:24px;align-items:center;border-radius:999px;color:#a50e0e;background:#fce8e6;padding:0 9px;font-size:12px;font-weight:700}.userStatus.active{color:#137333;background:#e6f4ea}.dangerButton{color:#d93025}.iconButton:disabled,.primaryAction:disabled{cursor:default;opacity:.45}.syncDialogBackdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:#2021247a;padding:20px}.syncDialog{width:min(520px,100%);border:1px solid #dadce0;border-radius:8px;background:#fff;box-shadow:0 12px 36px #2021243d}.syncDialogHeader{display:grid;grid-template-columns:40px minmax(0,1fr) 34px;align-items:center;gap:12px;border-bottom:1px solid #e8eaed;padding:16px 18px}.syncDialogHeader h2,.syncDialogHeader p,.syncDialogMessage{margin:0}.syncDialogHeader h2{font-size:18px;font-weight:600}.syncDialogHeader p{margin-top:3px;color:#5f6368;font-size:13px}.syncDialogIcon{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;color:#1967d2;background:#e8f0fe}.syncDialogIcon.working svg{animation:authSpin .8s linear infinite}.syncDialogIcon.complete{color:#137333;background:#e6f4ea}.syncDialogIcon.error{color:#b3261e;background:#fce8e6}.syncDialogClose{justify-self:end}.syncDialogBody{padding:22px 18px 18px}.syncDialogMessage{min-height:22px;color:#3c4043;line-height:1.45}.syncProgressTrack{height:8px;overflow:hidden;border-radius:4px;background:#e8eaed;margin-top:18px}.syncProgressTrack span{display:block;height:100%;border-radius:inherit;background:#1a73e8;transition:width .18s ease}.syncProgressMeta,.syncResultSummary{display:flex;align-items:center;justify-content:space-between;gap:16px}.syncProgressMeta{margin-top:8px;color:#5f6368;font-size:12px}.syncResultSummary{margin-top:20px;border-top:1px solid #e8eaed;padding-top:16px;color:#3c4043;font-size:13px}.syncResultSummary strong{color:#202124}.syncDialogFooter{display:flex;justify-content:flex-end;border-top:1px solid #e8eaed;padding:12px 18px}.stockDetailBackdrop{position:fixed;z-index:90;inset:0;display:grid;place-items:center;background:#2021247a;padding:24px}.stockDetailDialog{display:grid;width:min(880px,100%);max-height:min(780px,calc(100vh - 48px));grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border:1px solid #dadce0;border-radius:8px;background:#fff;box-shadow:0 16px 44px #20212447}.stockDetailHeader{display:grid;grid-template-columns:42px minmax(0,1fr) 34px;align-items:center;gap:12px;padding:17px 20px}.stockDetailHeader h2,.stockDetailHeader p,.stockHistoryItem p{margin:0}.stockDetailHeader h2{overflow:hidden;font-size:18px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.stockDetailHeader p{margin-top:4px;color:#5f6368;font-size:13px}.stockDetailTitleIcon{display:grid;width:42px;height:42px;place-items:center;border-radius:6px;color:#1967d2;background:#e8f0fe}.stockDetailTabs{display:flex;gap:4px;border-top:1px solid #e8eaed;border-bottom:1px solid #dadce0;padding:0 20px}.stockDetailTabs button{display:flex;min-height:46px;align-items:center;gap:7px;border:0;border-bottom:3px solid transparent;color:#5f6368;background:transparent;padding:0 14px;font-size:14px;font-weight:700}.stockDetailTabs button:hover{color:#1a73e8;background:#f8fbff}.stockDetailTabs button.active{border-bottom-color:#1a73e8;color:#1a73e8}.stockDetailTabs button span{min-width:20px;border-radius:10px;background:#e8eaed;padding:2px 6px;color:#5f6368;font-size:11px;text-align:center}.stockDetailBody{min-height:0;overflow:auto;background:#f8f9fa}.stockDetailContent,.stockHistoryContent{padding:20px}.stockBalanceSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #dadce0;border-radius:6px;background:#fff}.stockBalanceSummary div{display:grid;gap:7px;padding:16px 18px}.stockBalanceSummary div+div{border-left:1px solid #e8eaed}.stockBalanceSummary span,.stockDetailField span{color:#6b7075;font-size:12px;font-weight:700}.stockBalanceSummary strong{color:#202124;font-size:20px}.stockBalanceSummary strong.negative,.stockHistoryQuantity.outbound{color:#b3261e}.stockBalanceSummary strong.available,.stockHistoryQuantity.inbound{color:#137333}.stockDetailGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #dadce0;border-radius:6px;background:#fff;margin-top:16px;overflow:hidden}.stockDetailField{display:grid;min-width:0;gap:6px;border-bottom:1px solid #e8eaed;padding:14px 16px}.stockDetailField:nth-child(odd):not(.wide){border-right:1px solid #e8eaed}.stockDetailField.wide{grid-column:1 / -1}.stockDetailField strong{color:#202124;font-size:14px;font-weight:600;overflow-wrap:anywhere}.stockHistoryList{display:grid;gap:10px}.stockHistoryItem{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:start;gap:12px;border:1px solid #dadce0;border-radius:6px;background:#fff;padding:14px}.stockHistoryDirection{display:grid;width:38px;height:38px;place-items:center;border-radius:50%}.stockHistoryDirection.inbound{color:#137333;background:#e6f4ea}.stockHistoryDirection.outbound{color:#b3261e;background:#fce8e6}.stockHistoryMain{min-width:0}.stockHistoryTopline{display:flex;align-items:center;justify-content:space-between;gap:12px}.stockHistoryTopline strong{color:#202124;font-size:14px}.stockHistoryTopline time,.stockHistoryMeta{color:#6b7075;font-size:12px}.stockHistoryItem p{margin-top:6px;color:#3c4043;font-size:14px;line-height:1.4}.stockHistoryMeta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}.stockHistoryQuantity{align-self:center;font-size:15px;white-space:nowrap}.stockHistoryState{display:grid;min-height:240px;place-items:center;border:1px dashed #cfd4da;border-radius:6px;color:#5f6368;background:#fff;padding:24px;text-align:center}.stockHistoryState.error{border-color:#f2b8b5;color:#b3261e;background:#fff8f7}.loginShell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,42%) 1fr;color:#202124;background:#fff}.loginBrand{display:flex;align-items:flex-end;gap:18px;min-height:100vh;padding:clamp(36px,7vw,92px);color:#fff;background:#174ea6}.loginBrandIcon{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border:1px solid rgb(255 255 255 / 48%);border-radius:8px;color:#174ea6;background:#e6f4ea}.loginBrand p,.loginBrand h1,.loginHeading span,.loginHeading h2,.loginError{margin:0}.loginBrand p{margin-bottom:8px;color:#d2e3fc;font-size:13px;font-weight:700;text-transform:uppercase}.loginBrand h1{max-width:520px;font-size:clamp(28px,4vw,48px);line-height:1.08}.loginPanel{display:grid;place-items:center;padding:32px}.loginForm{display:grid;gap:22px;width:min(100%,420px)}.loginHeading{display:grid;gap:7px;margin-bottom:8px}.loginHeading span{color:#1967d2;font-size:13px;font-weight:700;text-transform:uppercase}.loginHeading h2{font-size:28px;line-height:1.2}.loginForm>label{display:grid;gap:8px;color:#3c4043;font-size:13px;font-weight:700}.loginInput{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;min-height:48px;border:1px solid #bdc1c6;border-radius:6px;padding:0 13px;color:#5f6368;background:#fff}.loginInput:focus-within{border-color:#1967d2;box-shadow:0 0 0 2px #1967d224}.loginInput input{min-width:0;height:46px;border:0;outline:0;padding:0 8px;color:#202124;background:transparent;font:inherit;font-weight:400}.loginInput button{display:grid;place-items:center;width:32px;height:32px;border:0;padding:0;color:#5f6368;background:transparent;cursor:pointer}.loginSubmit{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border:0;border-radius:6px;color:#fff;background:#1967d2;font:inherit;font-weight:700;cursor:pointer}.loginSubmit:hover:not(:disabled){background:#185abc}.loginSubmit:disabled{cursor:wait;opacity:.7}.loginError{border-left:3px solid #d93025;padding:8px 10px;color:#b3261e;background:#fce8e6;font-size:13px}.authLoading{min-height:100vh;display:grid;place-items:center;background:#f8f9fa}.authLoading span{width:32px;height:32px;border:3px solid #d2e3fc;border-top-color:#1967d2;border-radius:50%;animation:authSpin .8s linear infinite}.signedInUser{display:inline-flex;align-items:center;gap:8px}.signedInMeta{display:grid;line-height:1.15}.signedInMeta strong{font-size:12px}.signedInMeta small{color:#5f6368;font-size:10px}@keyframes authSpin{to{transform:rotate(360deg)}}@media(max-width:980px){.sideShell{grid-template-columns:56px}.wideNav{display:none}.tableViewport{width:calc(100vw - 57px)}.searchBox{display:none}.dashboardCanvas,.recapGrid,.reportDetailGrid,.treatmentReportGrid,.reportMenu{grid-template-columns:1fr;overflow:auto}.recapGrid .summaryPanel{grid-column:auto}.reportFilter{border-left:0;padding-left:0}.donutWrap{grid-template-columns:1fr}.detailSplit{grid-template-columns:1fr;overflow:auto}.stockMovementMenu{grid-template-columns:repeat(2,minmax(140px,1fr))}.purchaseApprovalGrid,.purchaseListGrid,.historyGrid{grid-template-columns:1fr;overflow:auto}.purchaseFilterPanel{grid-row:auto}.historyMenu{grid-template-columns:repeat(2,minmax(140px,1fr))}.stockMovementSplit.hasDetail,.expiredStockSplit.hasDetail,.stockTransferCanvas{grid-template-columns:1fr;overflow:auto}.expiredStockDetail,.stockMovementDetail{border-top:1px solid #dadce0;border-left:0}.patientSplit{grid-template-columns:1fr;overflow:auto}.detailPanel{border-top:1px solid #dadce0}.patientDetailPanel{border-left:0;border-top:1px solid #dadce0}.filterPanel{border-right:0;border-bottom:1px solid #dadce0;padding:0 0 18px}.compactTableViewport{height:auto;min-height:420px}.stockNameSearchGrid,.stockLocationSearchGrid,.stockAnalysisGrid,.stockFlowGrid,.stockValueGrid,.stockTwoColumnReport,.stockExpirySplit{grid-template-columns:1fr;grid-template-rows:auto;overflow:auto}.stockNameSearchGrid .stockProductDetail,.stockAnalysisGrid .stockChartPanel,.stockValueGrid>.stockReportTable{grid-column:auto;grid-row:auto}.stockExpiryDetail{border-top:1px solid #dadce0}.stockAdminMenu{grid-template-columns:repeat(2,minmax(140px,1fr))}.stockAdminForm{grid-template-columns:1fr}.userManagementForm{grid-template-columns:repeat(2,minmax(180px,1fr))}.signedInMeta{display:none}}@media(max-width:720px){.stockDetailBackdrop{align-items:end;padding:0}.stockDetailDialog{width:100%;max-height:92vh;border-radius:8px 8px 0 0}.stockDetailHeader{padding:14px 16px}.stockDetailTabs,.stockDetailContent,.stockHistoryContent{padding-right:14px;padding-left:14px}.stockBalanceSummary,.stockDetailGrid{grid-template-columns:1fr}.stockBalanceSummary div+div,.stockDetailField:nth-child(odd):not(.wide){border-left:0;border-right:0;border-top:1px solid #e8eaed}.stockDetailField.wide{grid-column:auto}.stockHistoryItem{grid-template-columns:34px minmax(0,1fr)}.stockHistoryDirection{width:34px;height:34px}.stockHistoryQuantity{grid-column:2;justify-self:start}.syncResultSummary{align-items:flex-start;flex-direction:column;gap:8px}.userManagementForm,.loginShell{grid-template-columns:1fr}.loginBrand{min-height:210px;align-items:center;padding:30px 24px}.loginBrand h1{font-size:28px}.loginPanel{place-items:start center;padding:40px 24px}}
