*{box-sizing:border-box}body{margin:0;min-width:1024px;background:#f3f5f8;color:#1f2937}a{color:#1f5fbf}.app-shell{min-height:100vh}.app-sider{background:#fff!important;border-right:1px solid #d9e0ea}.app-brand{display:flex;align-items:center;gap:10px;height:64px;padding:0 16px;border-bottom:1px solid #e4e9f0}.brand-logo-box{flex:0 0 auto;width:116px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid #b7c7df;border-radius:6px;background:#fff;overflow:hidden}.brand-logo{width:102px;height:auto;display:block}.app-sider.ant-layout-sider-collapsed .brand-logo-box{width:44px;height:34px}.app-sider.ant-layout-sider-collapsed .brand-logo{width:38px}.brand-title{font-weight:700;line-height:18px}.brand-subtitle{color:#687386;font-size:12px;line-height:18px}.app-menu{border-inline-end:0!important;padding-top:10px}.app-header{height:64px;padding:0 20px;background:#fff;border-bottom:1px solid #dfe5ee;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.app-header>.ant-space:first-child{min-width:0;overflow:hidden}.app-header>.ant-space:last-child{flex:0 0 auto}.header-org{max-width:320px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.profile-trigger{cursor:pointer;padding:4px 6px;border-radius:5px}.profile-trigger:hover{background:#f3f6fb}.app-content{padding:20px;overflow:auto;min-width:0}.page-stack{display:flex;flex-direction:column;gap:14px}.page-loading{min-height:220px;display:grid;place-items:center}.page-header-card .ant-card-body{padding:14px 18px}.app-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}.page-header-main{min-width:0}.page-header-title{margin:0!important;line-height:1.2!important}.page-header-extra{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end}.detail-header{width:100%;justify-content:space-between}.page-header-card{overflow:hidden}.page-header-card .ant-breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-card .ant-breadcrumb ol{flex-wrap:nowrap}.login-page{min-height:100vh;display:grid;place-items:center;background:#eef2f7}.login-card{width:430px;border:1px solid #d6dde8;box-shadow:0 12px 34px #1b2c4b14}.login-logo-box{width:212px;height:68px;display:flex;align-items:center;justify-content:center;border:1px solid #b7c7df;border-radius:6px;background:#fff;overflow:hidden}.login-logo{width:188px;height:auto;display:block}.dictionary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,280px));gap:12px;align-items:stretch}.dictionary-card{width:280px;height:100%;min-height:172px;border-color:#dce3ed}.dictionary-col{display:flex;width:280px;min-height:172px}.dictionary-col>a{display:flex;width:100%}.dictionary-card .ant-card-body{display:flex;height:100%;padding:18px}.dictionary-card .ant-space{width:100%;min-height:126px}.dashboard-kpi-card{height:100%;border-color:#dce3ed;overflow:hidden}.dashboard-kpi-card .ant-card-body{height:100%;min-height:154px;padding:16px;display:flex;flex-direction:column;gap:8px}.dashboard-kpi-card .ant-statistic-title{margin-bottom:4px}.dashboard-kpi-chart{height:72px;margin:auto -6px -8px}.dashboard-chart-card{height:100%;border-color:#dce3ed}.dashboard-chart-card .ant-card-head{min-height:46px;padding:0 16px}.dashboard-chart-card .ant-card-head-title{font-size:14px}.dashboard-chart-card .ant-card-body{min-height:348px;padding:14px 16px 16px}.dashboard-chart-card .ant-empty{height:300px;display:flex;flex-direction:column;justify-content:center}.dashboard-return-card{margin-top:12px;border-color:#dce3ed}.dictionary-card .ant-space-item:nth-child(2){min-height:44px}.dictionary-card .ant-typography-secondary{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dictionary-card .ant-space-item:last-child{margin-top:auto}.editor-page{padding-bottom:76px}.sticky-actions{position:fixed;right:20px;bottom:0;left:296px;z-index:10;display:flex;justify-content:flex-end;padding:12px 20px;background:#fff;border-top:1px solid #dfe5ee;box-shadow:0 -4px 16px #1d2e4e14}.full-width{width:100%}.form-actions-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.annual-plan-form{padding-top:4px}.annual-plan-modal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px;padding:10px 12px;border:1px solid #dfe5ee;border-radius:6px;background:#f7f9fc}.annual-plan-form .ant-space.full-width{overflow-x:auto;padding-bottom:4px}.annual-plan-entry-grid{display:grid;grid-template-columns:minmax(320px,1.6fr) repeat(12,minmax(104px,1fr)) minmax(118px,.7fr) 36px;gap:8px;align-items:start;min-width:1840px}.annual-plan-entry-head,.annual-plan-entry-total{align-items:center;padding:8px 10px;border-radius:6px;background:#f3f6fb;color:#4b5563;font-size:12px;font-weight:600}.annual-plan-entry-total{color:#1f2937;background:#eef4fc}.annual-plan-entry-grid .ant-form-item{margin-bottom:0}.annual-plan-month-cell .ant-form-item-explain-error{font-size:11px}.annual-plan-row-total{display:flex;align-items:center;justify-content:flex-end;min-height:32px;padding:0 8px;border:1px solid #dfe5ee;border-radius:6px;background:#f8fafc;font-weight:600}.upload-title{margin:0;font-weight:600}.upload-subtitle{margin:6px 0 0;color:#687386}.required-mark{color:#ff4d4f;margin-right:4px}.user-create-mode{margin-bottom:18px}.organization-info-table .ant-descriptions-item-label{width:280px}.organization-info-table .ant-descriptions-item-content{width:calc(100% - 280px)}.form-section-card .ant-card-head{min-height:48px;border-bottom-color:#e6ebf2}.form-section-card .ant-card-body{padding:18px 20px}.form-hint{margin-bottom:14px}.service-entry{padding:14px 14px 2px;border:1px solid #dfe5ee;border-radius:6px;background:#fbfcfe}.medicine-entry{padding:14px;border:1px solid #dfe5ee;border-radius:6px;background:#fbfcfe}.medicine-metrics-row>.ant-col{display:flex}.medicine-metric-card{height:100%;width:100%;display:flex;flex-direction:column;background:#fff}.medicine-metric-card .ant-card-head{min-height:38px;border-bottom-color:#e7ecf3}.medicine-metric-card .ant-card-head-title{padding:9px 0;color:#1f2937;font-size:14px}.medicine-metric-card .ant-card-body{flex:1;display:flex;flex-direction:column;padding:12px}.medicine-metric-spacer{min-height:78px}.medicine-amount-field{margin-top:auto}.service-entry-header{display:flex;align-items:center;justify-content:space-between;min-height:30px;margin-bottom:8px}.add-service-button{width:100%;border-style:dashed}.upload-table{margin-top:12px}.readonly-section-card .ant-card-body{padding:18px 20px}.readonly-service-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.readonly-service-header .ant-typography{margin:0}.readonly-metrics{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.readonly-metric{padding:14px 16px;border:1px solid #dfe5ee;border-radius:6px;background:#f8fafc}.readonly-metric span{display:block;margin-bottom:6px;color:#687386}.readonly-metric strong{display:block;font-size:24px;line-height:30px;font-weight:600;color:#1f2937}.readonly-comment{margin-bottom:0!important;color:#1f2937}.traffic-cell{display:flex;align-items:center;justify-content:flex-end;min-height:34px;margin:-8px;padding:6px 8px;font-weight:600;color:#fff}.traffic-cell-red{background:#c92a2a}.traffic-cell-yellow{background:#ffd43b;color:#1f2937}.traffic-cell-green{background:#237804}.traffic-cell-neutral{background:#eef2f7;color:#64748b}.medicine-expiry-cell{justify-content:center}.medicine-expiry-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;color:#4b5563;font-size:13px;line-height:18px}.medicine-expiry-legend-title{font-weight:600;color:#1f2937}.medicine-expiry-legend-item{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.medicine-expiry-legend-swatch{display:inline-block;width:28px;height:14px;border-radius:3px;border:1px solid rgba(17,24,39,.12)}.credentials-modal-content{display:grid;gap:12px}.credentials-modal-content p{margin:0;color:#687386}.credentials-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:1px solid #dfe5ee;border-radius:6px;background:#f8fafc}.credentials-row span:first-child{color:#687386}.ant-card{border-color:#dfe5ee}.ant-pro-table .ant-card{border-radius:6px}.ant-table-thead>tr>th{font-weight:600!important}@media(max-width:1180px){body{min-width:900px}.sticky-actions{left:92px}}
