(self["webpackChunkapp"] = self["webpackChunkapp"] || []).push([["src_app_pages_woman-detail_woman-detail_module_ts"],{

/***/ 79305:
/*!*******************************************************************!*\
  !*** ./src/app/pages/woman-detail/woman-detail-routing.module.ts ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   WomanDetailPageRoutingModule: () => (/* binding */ WomanDetailPageRoutingModule)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 24398);
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37580);
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ 95072);
/* harmony import */ var _woman_detail_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./woman-detail.page */ 55835);




const routes = [{
  path: '',
  component: _woman_detail_page__WEBPACK_IMPORTED_MODULE_0__.WomanDetailPage
}];
let WomanDetailPageRoutingModule = class WomanDetailPageRoutingModule {};
WomanDetailPageRoutingModule = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__decorate)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule)({
  imports: [_angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterModule.forChild(routes)],
  exports: [_angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterModule]
})], WomanDetailPageRoutingModule);


/***/ }),

/***/ 3168:
/*!***********************************************************!*\
  !*** ./src/app/pages/woman-detail/woman-detail.module.ts ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   WomanDetailPageModule: () => (/* binding */ WomanDetailPageModule)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 24398);
/* harmony import */ var src_app_components_shared_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! src/app/components/shared.module */ 47774);
/* harmony import */ var _angular_material_stepper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/stepper */ 56622);
/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/icon */ 93840);
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37580);
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 60316);
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 34456);
/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ionic/angular */ 21507);
/* harmony import */ var _woman_detail_routing_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./woman-detail-routing.module */ 79305);
/* harmony import */ var _woman_detail_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./woman-detail.page */ 55835);










let WomanDetailPageModule = class WomanDetailPageModule {};
WomanDetailPageModule = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.NgModule)({
  imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.FormsModule, _ionic_angular__WEBPACK_IMPORTED_MODULE_7__.IonicModule, src_app_components_shared_module__WEBPACK_IMPORTED_MODULE_0__.SharedModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_8__.MatIconModule, _angular_material_stepper__WEBPACK_IMPORTED_MODULE_9__.MatStepperModule, _woman_detail_routing_module__WEBPACK_IMPORTED_MODULE_1__.WomanDetailPageRoutingModule],
  declarations: [_woman_detail_page__WEBPACK_IMPORTED_MODULE_2__.WomanDetailPage]
})], WomanDetailPageModule);


/***/ }),

/***/ 55835:
/*!*********************************************************!*\
  !*** ./src/app/pages/woman-detail/woman-detail.page.ts ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   WomanDetailPage: () => (/* binding */ WomanDetailPage)
/* harmony export */ });
/* harmony import */ var _workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 89204);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! tslib */ 24398);
/* harmony import */ var _woman_detail_page_html_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./woman-detail.page.html?ngResource */ 73829);
/* harmony import */ var _woman_detail_page_scss_ngResource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./woman-detail.page.scss?ngResource */ 18749);
/* harmony import */ var _woman_detail_page_scss_ngResource__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_woman_detail_page_scss_ngResource__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _services_woman_api_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../../services/woman_api.service */ 11975);
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/core */ 37580);
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/router */ 95072);
/* harmony import */ var src_app_util_baseHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! src/app/util/baseHelper */ 76434);
/* harmony import */ var src_app_util_utility__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! src/app/util/utility */ 89999);
/* harmony import */ var src_app_services_permission_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! src/app/services/permission.service */ 7773);
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/platform-browser */ 80436);
/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! src/environments/environment */ 45312);
/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @ionic/angular */ 21507);
/* harmony import */ var _components_report_modal_report_modal_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/report-modal/report-modal.component */ 69843);
/* harmony import */ var src_app_services_plw_measurement_api_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! src/app/services/plw_measurement_api.service */ 80507);
/* harmony import */ var src_app_services_distribution_api_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! src/app/services/distribution_api.service */ 51339);
/* harmony import */ var src_app_services_pregnancy_history_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! src/app/services/pregnancy-history.service */ 548);
/* harmony import */ var src_app_services_plw_transfer_out_api_service__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! src/app/services/plw_transfer_out_api.service */ 58455);
/* harmony import */ var _app_constants_icons_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @app/constants/icons.constants */ 35997);

var _WomanDetailPage;



/* eslint-disable @typescript-eslint/naming-convention */












 // Still needed for delete


let WomanDetailPage = (_WomanDetailPage = class WomanDetailPage {
  constructor(api, measurementApi, distributionApi, pregnancyHistoryService, activatedRoute, b, change, transferOutApi, alertController, permissionService, sanitizer, modalCtrl, navigateRouter) {
    this.api = api;
    this.measurementApi = measurementApi;
    this.distributionApi = distributionApi;
    this.pregnancyHistoryService = pregnancyHistoryService;
    this.activatedRoute = activatedRoute;
    this.b = b;
    this.change = change;
    this.transferOutApi = transferOutApi;
    this.alertController = alertController;
    this.permissionService = permissionService;
    this.sanitizer = sanitizer;
    this.modalCtrl = modalCtrl;
    this.navigateRouter = navigateRouter;
    this.NutritionStatusColor = src_app_util_utility__WEBPACK_IMPORTED_MODULE_5__.NutritionStatusColor;
    this.measurements = [];
    this.distributions = [];
    this.pregnancyHistories = [];
    this.surveyResponses = [];
    // Pagination properties for measurements
    this.measurementCurrentPage = 1;
    this.measurementItemsPerPage = 10;
    // Pagination properties for distributions
    this.distributionCurrentPage = 1;
    this.distributionItemsPerPage = 10;
    // Pagination properties for pregnancy histories
    this.pregnancyHistoryCurrentPage = 1;
    this.pregnancyHistoryItemsPerPage = 10;
    // Pagination properties for assessments
    this.assessmentCurrentPage = 1;
    this.assessmentItemsPerPage = 10;
    // Collapse state for cards (all collapsed by default)
    this.isTransferHistoryCollapsed = true;
    this.isChildrenInfoCollapsed = true;
    this.isPregnancyHistoryCollapsed = true;
    this.isMeasurementHistoryCollapsed = true;
    this.isAssessmentHistoryCollapsed = true;
    this.isDistributionHistoryCollapsed = true;
    this.icons = _app_constants_icons_constants__WEBPACK_IMPORTED_MODULE_13__.ICONS;
    //construction works
    this.id = this.activatedRoute.snapshot.paramMap.get('id');
  }
  ngOnInit() {
    this.user = this.b.getCurrentUser();
  }
  hasPermission(permissionTitle) {
    var _userObj$user;
    if (!this.user) {
      return false;
    }
    // Handle both UserApiResponse and User types
    const userObj = this.user;
    const roles = userObj.roles || ((_userObj$user = userObj.user) === null || _userObj$user === void 0 ? void 0 : _userObj$user.roles);
    if (!roles) {
      return false;
    }
    // Iterate through all roles and their permissions
    for (const role of roles) {
      if (role.permissions) {
        const hasPermission = role.permissions.some(permission => permission.title === permissionTitle);
        if (hasPermission) {
          return true;
        }
      }
    }
    return false;
  }
  load(event) {
    var _this = this;
    return (0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      var _this$womanDetailData, _this$womanDetailData2, _this$womanDetailData3, _this$womanDetailData4;
      _this.womanDetailData = (yield _this.api.getWoman(_this.id)).data;
      // Extract measurements, distributions, pregnancy histories, and survey responses from woman data
      _this.measurements = ((_this$womanDetailData = _this.womanDetailData) === null || _this$womanDetailData === void 0 ? void 0 : _this$womanDetailData.measurements) || [];
      _this.distributions = ((_this$womanDetailData2 = _this.womanDetailData) === null || _this$womanDetailData2 === void 0 ? void 0 : _this$womanDetailData2.distributions) || [];
      _this.surveyResponses = ((_this$womanDetailData3 = _this.womanDetailData) === null || _this$womanDetailData3 === void 0 ? void 0 : _this$womanDetailData3.assessment_responses) || [];
      _this.pregnancyHistories = ((_this$womanDetailData4 = _this.womanDetailData) === null || _this$womanDetailData4 === void 0 ? void 0 : _this$womanDetailData4.pregnancy_histories) || [];
      if (event) {
        setTimeout(() => {
          event.target.complete();
        }, 2000);
      }
      _this.change.markForCheck();
    })();
  }
  deleteMeasurement(id) {
    var _this2 = this;
    this.b.loadAlert('Delete Measurement', 'Are you sure you want to delete this measurement?', /*#__PURE__*/(0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      const result = yield _this2.measurementApi.deletePlwMeasurement(id);
      _this2.b.responseToast(result);
      if (result.success) {
        _this2.measurements = _this2.measurements.filter(item => item.id !== id);
        // Reset to page 1 if current page becomes empty
        if (_this2.paginatedMeasurements.length === 0 && _this2.measurementCurrentPage > 1) {
          _this2.measurementCurrentPage = 1;
        }
        _this2.change.markForCheck();
      }
    }));
  }
  deleteDistribution(id) {
    var _this3 = this;
    this.b.loadAlert('Delete Distribution', 'Are you sure you want to delete this distribution?', /*#__PURE__*/(0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      const result = yield _this3.distributionApi.deleteDistribution(id);
      _this3.b.responseToast(result);
      if (result.success) {
        _this3.distributions = _this3.distributions.filter(item => item.id !== id);
        // Reset to page 1 if current page becomes empty
        if (_this3.paginatedDistributions.length === 0 && _this3.distributionCurrentPage > 1) {
          _this3.distributionCurrentPage = 1;
        }
        _this3.change.markForCheck();
      }
    }));
  }
  isWithinLastWeek(measurementDate) {
    if (!measurementDate) {
      return false;
    }
    const today = new Date();
    const measurement = new Date(measurementDate);
    const oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);
    return measurement >= oneWeekAgo;
  }
  // Measurement Pagination methods
  get paginatedMeasurements() {
    const startIndex = (this.measurementCurrentPage - 1) * this.measurementItemsPerPage;
    const endIndex = startIndex + this.measurementItemsPerPage;
    return this.measurements.slice(startIndex, endIndex);
  }
  get measurementTotalPages() {
    return Math.ceil(this.measurements.length / this.measurementItemsPerPage);
  }
  measurementNextPage() {
    if (this.measurementCurrentPage < this.measurementTotalPages) {
      this.measurementCurrentPage++;
      this.change.markForCheck();
    }
  }
  measurementPreviousPage() {
    if (this.measurementCurrentPage > 1) {
      this.measurementCurrentPage--;
      this.change.markForCheck();
    }
  }
  measurementGoToPage(page) {
    if (page >= 1 && page <= this.measurementTotalPages) {
      this.measurementCurrentPage = page;
      this.change.markForCheck();
    }
  }
  // Distribution Pagination methods
  get paginatedDistributions() {
    const startIndex = (this.distributionCurrentPage - 1) * this.distributionItemsPerPage;
    const endIndex = startIndex + this.distributionItemsPerPage;
    return this.distributions.slice(startIndex, endIndex);
  }
  get distributionTotalPages() {
    return Math.ceil(this.distributions.length / this.distributionItemsPerPage);
  }
  distributionNextPage() {
    if (this.distributionCurrentPage < this.distributionTotalPages) {
      this.distributionCurrentPage++;
      this.change.markForCheck();
    }
  }
  distributionPreviousPage() {
    if (this.distributionCurrentPage > 1) {
      this.distributionCurrentPage--;
      this.change.markForCheck();
    }
  }
  distributionGoToPage(page) {
    if (page >= 1 && page <= this.distributionTotalPages) {
      this.distributionCurrentPage = page;
      this.change.markForCheck();
    }
  }
  isToday(date) {
    if (!date) {
      return false;
    }
    const today = new Date();
    const compareDate = new Date(date);
    return today.getFullYear() === compareDate.getFullYear() && today.getMonth() === compareDate.getMonth() && today.getDate() === compareDate.getDate();
  }
  ionViewDidEnter() {
    this.load(null);
  }
  toggleVerification() {
    var _this4 = this;
    return (0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      var _this4$womanDetailDat;
      const isCurrentlyVerified = ((_this4$womanDetailDat = _this4.womanDetailData) === null || _this4$womanDetailDat === void 0 ? void 0 : _this4$womanDetailDat.verified) === 1;
      const actionText = isCurrentlyVerified ? 'unverify' : 'verify';
      const confirmMessage = `Are you sure you want to ${actionText} this PLW?`;
      _this4.b.loadAlert(`${isCurrentlyVerified ? 'Unverify' : 'Verify'} PLW`, confirmMessage, /*#__PURE__*/(0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
        try {
          let result;
          if (isCurrentlyVerified) {
            result = yield _this4.api.unverifyWoman(_this4.id);
          } else {
            result = yield _this4.api.verifyWoman(_this4.id);
          }
          _this4.b.responseToast(result);
          if (result.success) {
            _this4.womanDetailData.verified = isCurrentlyVerified ? 0 : 1;
            _this4.change.markForCheck();
          }
        } catch (error) {
          _this4.b.errorToast('An error occurred while updating verification status');
        }
      }));
    })();
  }
  deleteWoman() {
    var _this5 = this;
    this.b.loadAlert('Delete PLW', 'Are you sure you want to delete?', /*#__PURE__*/(0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      const result = yield _this5.api.deleteWoman(_this5.id);
      _this5.b.responseToast(result);
      if (result.success) {
        _this5.navigateRouter.navigate(['/woman-list']);
      }
    }));
  }
  deletePregnancyHistory(id) {
    var _this6 = this;
    this.b.loadAlert('Delete Pregnancy History', 'Are you sure you want to delete this pregnancy history?', /*#__PURE__*/(0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      try {
        const result = yield _this6.pregnancyHistoryService.deletePregnancyHistory(id);
        _this6.b.toast('Pregnancy history deleted successfully');
        _this6.pregnancyHistories = _this6.pregnancyHistories.filter(item => item.id !== id);
        // Reset to page 1 if current page becomes empty
        if (_this6.paginatedPregnancyHistories.length === 0 && _this6.pregnancyHistoryCurrentPage > 1) {
          _this6.pregnancyHistoryCurrentPage = 1;
        }
        _this6.change.markForCheck();
      } catch (error) {
        _this6.b.errorToast('Error deleting pregnancy history');
      }
    }));
  }
  getStatusColor(status) {
    switch (status) {
      case 'delivered':
        return 'success';
      case 'pending':
        return 'warning';
      case 'miscarriage':
      case 'abortion':
        return 'danger';
      default:
        return 'medium';
    }
  }
  // Pregnancy History Pagination methods
  get paginatedPregnancyHistories() {
    const startIndex = (this.pregnancyHistoryCurrentPage - 1) * this.pregnancyHistoryItemsPerPage;
    const endIndex = startIndex + this.pregnancyHistoryItemsPerPage;
    return this.pregnancyHistories.slice(startIndex, endIndex);
  }
  get pregnancyHistoryTotalPages() {
    return Math.ceil(this.pregnancyHistories.length / this.pregnancyHistoryItemsPerPage);
  }
  pregnancyHistoryNextPage() {
    if (this.pregnancyHistoryCurrentPage < this.pregnancyHistoryTotalPages) {
      this.pregnancyHistoryCurrentPage++;
      this.change.markForCheck();
    }
  }
  pregnancyHistoryPreviousPage() {
    if (this.pregnancyHistoryCurrentPage > 1) {
      this.pregnancyHistoryCurrentPage--;
      this.change.markForCheck();
    }
  }
  pregnancyHistoryGoToPage(page) {
    if (page >= 1 && page <= this.pregnancyHistoryTotalPages) {
      this.pregnancyHistoryCurrentPage = page;
      this.change.markForCheck();
    }
  }
  calculateAgeInMonths(dateOfBirth) {
    if (!dateOfBirth) {
      return 0;
    }
    const today = new Date();
    const birthDate = new Date(dateOfBirth);
    const months = (today.getFullYear() - birthDate.getFullYear()) * 12 + (today.getMonth() - birthDate.getMonth());
    return months;
  }
  getAgeDisplay(dateOfBirth) {
    const months = this.calculateAgeInMonths(dateOfBirth);
    const years = Math.floor(months / 12);
    return `${years} years`;
  }
  getLatestMeasurement() {
    if (!this.measurements || this.measurements.length === 0) {
      return null;
    }
    return this.measurements[0];
  }
  getLatestDistribution() {
    if (!this.distributions || this.distributions.length === 0) {
      return null;
    }
    return this.distributions[0];
  }
  getUniqueItemsCount() {
    if (!this.distributions || this.distributions.length === 0) {
      return 0;
    }
    const uniqueItems = new Set(this.distributions.map(d => {
      var _d$supply_item, _d$supplyItem;
      return ((_d$supply_item = d.supply_item) === null || _d$supply_item === void 0 ? void 0 : _d$supply_item.id) || ((_d$supplyItem = d.supplyItem) === null || _d$supplyItem === void 0 ? void 0 : _d$supplyItem.id);
    }).filter(id => id !== undefined));
    return uniqueItems.size;
  }
  getNutritionStatusCounts() {
    if (!this.measurements || this.measurements.length === 0) {
      return [];
    }
    const statusMap = new Map();
    this.measurements.forEach(measurement => {
      const status = measurement.nutrition_status;
      if (status && status.id) {
        if (statusMap.has(status.id)) {
          statusMap.get(status.id).count++;
        } else {
          statusMap.set(status.id, {
            id: status.id,
            title: status.title,
            count: 1
          });
        }
      }
    });
    return Array.from(statusMap.values()).sort((a, b) => b.count - a.count);
  }
  getItemWiseDistribution() {
    if (!this.distributions || this.distributions.length === 0) {
      return [];
    }
    const itemMap = new Map();
    this.distributions.forEach(distribution => {
      const item = distribution.supply_item || distribution.supplyItem;
      if (item && item.id) {
        var _item$unit;
        const quantity = parseFloat(distribution.quantity) || 0;
        const unit = ((_item$unit = item.unit) === null || _item$unit === void 0 ? void 0 : _item$unit.title) || 'units';
        if (itemMap.has(item.id)) {
          const existing = itemMap.get(item.id);
          existing.totalQuantity += quantity;
          existing.count++;
        } else {
          itemMap.set(item.id, {
            id: item.id,
            name: item.title,
            unit,
            totalQuantity: quantity,
            count: 1
          });
        }
      }
    });
    return Array.from(itemMap.values()).sort((a, b) => b.totalQuantity - a.totalQuantity);
  }
  // Assessment pagination methods
  get assessmentTotalPages() {
    return Math.ceil(this.surveyResponses.length / this.assessmentItemsPerPage);
  }
  get paginatedAssessments() {
    const startIndex = (this.assessmentCurrentPage - 1) * this.assessmentItemsPerPage;
    const endIndex = startIndex + this.assessmentItemsPerPage;
    return this.surveyResponses.slice(startIndex, endIndex);
  }
  assessmentPreviousPage() {
    if (this.assessmentCurrentPage > 1) {
      this.assessmentCurrentPage--;
      this.change.markForCheck();
    }
  }
  assessmentNextPage() {
    if (this.assessmentCurrentPage < this.assessmentTotalPages) {
      this.assessmentCurrentPage++;
      this.change.markForCheck();
    }
  }
  assessmentGoToPage(page) {
    if (page >= 1 && page <= this.assessmentTotalPages) {
      this.assessmentCurrentPage = page;
      this.change.markForCheck();
    }
  }
  displayAssessmentForm(responseId) {
    this.navigateRouter.navigate(['/survey-view', responseId]);
  }
  displayProgrammeCard(responseId) {
    const token = localStorage.getItem('token');
    if (!token) return;
    const fullUrl = `${src_environments_environment__WEBPACK_IMPORTED_MODULE_7__.hostLocal}/programme-card/${responseId}?api_token=${token}`;
    this.modalCtrl.create({
      component: _components_report_modal_report_modal_component__WEBPACK_IMPORTED_MODULE_8__.ReportModalComponent,
      componentProps: {
        url: fullUrl,
        title: 'Programme Card'
      },
      cssClass: 'report-modal-fullscreen'
    }).then(modal => modal.present());
  }
  hasProgrammeTag(assessment) {
    var _assessment$survey_fo;
    return assessment === null || assessment === void 0 || (_assessment$survey_fo = assessment.survey_form) === null || _assessment$survey_fo === void 0 || (_assessment$survey_fo = _assessment$survey_fo.tags) === null || _assessment$survey_fo === void 0 ? void 0 : _assessment$survey_fo.includes('programme');
  }
  formatDate(dateString) {
    if (!dateString) return '';
    const date = new Date(dateString);
    if (isNaN(date.getTime())) return '';
    return date.toLocaleDateString('en-US', {
      year: 'numeric',
      month: 'short',
      day: 'numeric'
    });
  }
  getAssessmentWiseCounts() {
    if (!this.surveyResponses || this.surveyResponses.length === 0) {
      return [];
    }
    const assessmentMap = new Map();
    this.surveyResponses.forEach(assessment => {
      const surveyForm = assessment.survey_form;
      if (surveyForm && surveyForm.id) {
        if (assessmentMap.has(surveyForm.id)) {
          assessmentMap.get(surveyForm.id).count++;
        } else {
          assessmentMap.set(surveyForm.id, {
            id: surveyForm.id,
            title: surveyForm.title,
            count: 1
          });
        }
      }
    });
    return Array.from(assessmentMap.values()).sort((a, b) => b.count - a.count);
  }
  getTransferStatusColor(status) {
    switch (status) {
      case 'Pending':
        return 'warning';
      case 'Received':
        return 'success';
      case 'Reject':
        return 'danger';
      default:
        return 'medium';
    }
  }
  deleteTransfer(transferId) {
    var _this7 = this;
    return (0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
      const alert = yield _this7.alertController.create({
        header: 'Confirm Delete',
        message: 'Are you sure you want to delete this transfer request? This will also affect all children of this PLW.',
        buttons: [{
          text: 'Cancel',
          role: 'cancel'
        }, {
          text: 'Delete',
          role: 'destructive',
          handler: function () {
            var _ref6 = (0,_workdir_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
              try {
                const result = yield _this7.transferOutApi.deleteTransferOut(transferId);
                _this7.b.responseToast(result);
                if (result.success) {
                  _this7.load(null);
                }
              } catch (error) {
                _this7.b.errorToast('Error deleting transfer request');
              }
            });
            return function handler() {
              return _ref6.apply(this, arguments);
            };
          }()
        }]
      });
      yield alert.present();
    })();
  }
  // Toggle methods for collapsible cards
  toggleTransferHistory() {
    this.isTransferHistoryCollapsed = !this.isTransferHistoryCollapsed;
    this.change.markForCheck();
  }
  toggleChildrenInfo() {
    this.isChildrenInfoCollapsed = !this.isChildrenInfoCollapsed;
    this.change.markForCheck();
  }
  togglePregnancyHistory() {
    this.isPregnancyHistoryCollapsed = !this.isPregnancyHistoryCollapsed;
    this.change.markForCheck();
  }
  toggleMeasurementHistory() {
    this.isMeasurementHistoryCollapsed = !this.isMeasurementHistoryCollapsed;
    this.change.markForCheck();
  }
  toggleAssessmentHistory() {
    this.isAssessmentHistoryCollapsed = !this.isAssessmentHistoryCollapsed;
    this.change.markForCheck();
  }
  toggleDistributionHistory() {
    this.isDistributionHistoryCollapsed = !this.isDistributionHistoryCollapsed;
    this.change.markForCheck();
  }
}, _WomanDetailPage.ctorParameters = () => [{
  type: _services_woman_api_service__WEBPACK_IMPORTED_MODULE_3__.WomanAPIService
}, {
  type: src_app_services_plw_measurement_api_service__WEBPACK_IMPORTED_MODULE_9__.PlwMeasurementAPIService
}, {
  type: src_app_services_distribution_api_service__WEBPACK_IMPORTED_MODULE_10__.DistributionAPIService
}, {
  type: src_app_services_pregnancy_history_service__WEBPACK_IMPORTED_MODULE_11__.PregnancyHistoryService
}, {
  type: _angular_router__WEBPACK_IMPORTED_MODULE_14__.ActivatedRoute
}, {
  type: src_app_util_baseHelper__WEBPACK_IMPORTED_MODULE_4__.BaseHelper
}, {
  type: _angular_core__WEBPACK_IMPORTED_MODULE_15__.ChangeDetectorRef
}, {
  type: src_app_services_plw_transfer_out_api_service__WEBPACK_IMPORTED_MODULE_12__.PlwTransferOutAPIService
}, {
  type: _ionic_angular__WEBPACK_IMPORTED_MODULE_16__.AlertController
}, {
  type: src_app_services_permission_service__WEBPACK_IMPORTED_MODULE_6__.PermissionService
}, {
  type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_17__.DomSanitizer
}, {
  type: _ionic_angular__WEBPACK_IMPORTED_MODULE_16__.ModalController
}, {
  type: _angular_router__WEBPACK_IMPORTED_MODULE_14__.Router
}], _WomanDetailPage);
WomanDetailPage = (0,tslib__WEBPACK_IMPORTED_MODULE_18__.__decorate)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_15__.Component)({
  selector: 'app-woman-detail',
  template: _woman_detail_page_html_ngResource__WEBPACK_IMPORTED_MODULE_1__,
  changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_15__.ChangeDetectionStrategy.OnPush,
  styles: [(_woman_detail_page_scss_ngResource__WEBPACK_IMPORTED_MODULE_2___default())]
})], WomanDetailPage);


/***/ }),

/***/ 18749:
/*!**********************************************************************!*\
  !*** ./src/app/pages/woman-detail/woman-detail.page.scss?ngResource ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 53142);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 35950);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, `ion-icon {
  margin-inline-end: 0.75em !important;
}

:root {
  --ion-color-primary: #4990E2;
  --ion-color-primary-rgb: 73, 144, 226;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-secondary: #6D5AE6;
  --ion-color-secondary-rgb: 109, 90, 230;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-tertiary: #FF8A65;
  --ion-color-tertiary-rgb: 255, 138, 101;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-light: #f4f5f8;
  --ion-color-medium: #92949c;
  --ion-color-dark: #222428;
}

.section-header-main {
  max-width: 800px;
  margin: 0 auto 24px auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 4px;
  flex-wrap: wrap;
}

.section-title-main {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 24px;
  font-weight: 700;
  margin: 0;
  color: var(--ion-color-dark);
  flex: 0 1 auto;
  opacity: 1 !important;
}
.section-title-main ion-icon {
  font-size: 28px;
  flex-shrink: 0;
  opacity: 1 !important;
}

.action-buttons-group {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  flex: 0 1 auto;
}
.action-buttons-group .action-btn {
  --border-radius: 12px;
  --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  height: 44px;
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  min-width: 120px;
  transition: all 0.3s ease;
}
.action-buttons-group .action-btn ion-icon {
  font-size: 18px;
  margin-inline-end: 6px !important;
}
.action-buttons-group .action-btn:hover {
  transform: translateY(-2px);
  --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}
.action-buttons-group .action-btn:active {
  transform: translateY(0);
}

.quick-action-buttons {
  max-width: 800px;
  margin: 16px auto 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}
.quick-action-buttons .quick-action-btn {
  width: 100%;
  height: 48px;
  --border-radius: 12px;
  --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  font-size: 13px;
  font-weight: 600;
  text-transform: none;
  transition: all 0.3s ease;
}
.quick-action-buttons .quick-action-btn ion-icon {
  font-size: 20px;
  margin-inline-end: 8px !important;
}
.quick-action-buttons .quick-action-btn:hover:not([disabled]) {
  transform: translateY(-2px);
  --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.quick-action-buttons .quick-action-btn:active:not([disabled]) {
  transform: translateY(0);
}

@media (max-width: 768px) {
  .quick-action-buttons {
    gap: 10px;
  }
  .quick-action-buttons .quick-action-btn {
    height: 44px;
    font-size: 14px;
  }
  .quick-action-buttons .quick-action-btn ion-icon {
    font-size: 18px;
  }
}
@media (max-width: 576px) {
  .quick-action-buttons {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .quick-action-buttons .quick-action-btn {
    width: 100%;
  }
}
@media (max-width: 480px) {
  .quick-action-buttons {
    gap: 8px;
  }
  .quick-action-buttons .quick-action-btn {
    height: 42px;
    font-size: 14px;
  }
}
@media (max-width: 768px) {
  .section-header-main {
    margin-bottom: 20px;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .section-title-main {
    font-size: 20px;
    width: 100%;
  }
  .section-title-main ion-icon {
    font-size: 24px;
  }
  .action-buttons-group {
    width: 100%;
    justify-content: stretch;
  }
  .action-buttons-group .action-btn {
    flex: 1 1 auto;
    height: 42px;
    font-size: 13px;
    min-width: 100px;
  }
  .action-buttons-group .action-btn ion-icon {
    font-size: 16px;
  }
}
@media (max-width: 480px) {
  .section-header-main {
    margin-bottom: 16px;
  }
  .section-title-main {
    font-size: 18px;
  }
  .section-title-main ion-icon {
    font-size: 22px;
  }
  .action-buttons-group {
    flex-direction: column;
    gap: 8px;
  }
  .action-buttons-group .action-btn {
    width: 100%;
    min-width: auto;
    height: 40px;
    font-size: 13px;
  }
}
ion-content {
  --padding-start: 16px;
  --padding-end: 16px;
  --padding-top: 20px;
  --padding-bottom: 20px;
}

.card-container {
  max-width: 800px;
  margin: 0 auto 20px auto;
}

ion-card {
  border-radius: 16px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  margin: 0 0 16px 0;
}

@media (max-width: 768px) {
  ion-content {
    --padding-start: 12px;
    --padding-end: 12px;
    --padding-top: 16px;
    --padding-bottom: 16px;
  }
  .card-container {
    margin-bottom: 16px;
  }
  .woman-info-card .profile-content {
    padding: 16px;
  }
  .woman-info-card .content-grid ion-col {
    padding: 0 3px;
  }
  .woman-info-card .content-grid ion-col:first-child {
    padding-left: 0;
    padding-right: 5px;
  }
  .woman-info-card .content-grid ion-col:last-child {
    padding-right: 0;
    padding-left: 5px;
  }
  .woman-info-card .info-item {
    padding: 10px 6px;
    gap: 10px;
    margin-bottom: 6px;
    min-height: 55px;
    max-height: 55px;
  }
  .woman-info-card .info-item ion-icon {
    font-size: 16px;
    width: 18px;
  }
  .woman-info-card .item-content .label {
    font-size: 10px;
    letter-spacing: 0.3px;
  }
  .woman-info-card .item-content .value {
    font-size: 13px;
  }
  .woman-info-card .item-content .value.value-ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
  }
  .woman-info-card .item-content .value-wrapper .inline-icon {
    font-size: 14px;
  }
  .verified-badge-inline {
    font-size: 10px;
    padding: 2px 6px;
  }
  .verified-badge-inline ion-icon {
    font-size: 11px;
  }
}
@media (max-width: 480px) {
  ion-content {
    --padding-start: 8px;
    --padding-end: 8px;
    --padding-top: 12px;
    --padding-bottom: 12px;
  }
  .card-container {
    margin-bottom: 12px;
  }
  .woman-info-card .profile-content {
    padding: 12px;
  }
  .woman-info-card .content-grid ion-col {
    padding: 0 2px;
  }
  .woman-info-card .content-grid ion-col:first-child {
    padding-left: 0;
    padding-right: 4px;
  }
  .woman-info-card .content-grid ion-col:last-child {
    padding-right: 0;
    padding-left: 4px;
  }
  .woman-info-card .info-item {
    padding: 8px 4px;
    gap: 8px;
    margin-bottom: 5px;
    min-height: 50px;
    max-height: 50px;
  }
  .woman-info-card .info-item ion-icon {
    font-size: 14px;
    width: 16px;
  }
  .woman-info-card .item-content .label {
    font-size: 9px;
    letter-spacing: 0.2px;
  }
  .woman-info-card .item-content .value {
    font-size: 12px;
  }
  .woman-info-card .item-content .value.value-ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
  }
  .woman-info-card .item-content .value-wrapper .inline-icon {
    font-size: 12px;
  }
}
.woman-info-card {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.profile-content {
  padding: 20px;
}

.content-grid {
  padding: 0;
  margin: 0;
}
.content-grid ion-row {
  margin: 0;
}
.content-grid ion-col {
  padding: 0 6px;
  display: flex;
  flex-direction: column;
}
.content-grid ion-col:first-child {
  padding-left: 0;
  padding-right: 8px;
}
.content-grid ion-col:last-child {
  padding-right: 0;
  padding-left: 8px;
}

.woman-info-card .info-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 8px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  margin-bottom: 8px;
  transition: all 0.2s ease;
  min-height: 60px;
  max-height: 60px;
  overflow: hidden;
}
.woman-info-card .info-item:last-child {
  margin-bottom: 0;
}
.woman-info-card .info-item:hover {
  background: rgba(73, 144, 226, 0.04);
  border-color: rgba(73, 144, 226, 0.2);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.woman-info-card .info-item ion-icon {
  font-size: 18px;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 2px;
  margin-inline-end: 0 !important;
}

.woman-info-card .item-content {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  min-width: 0;
  text-align: left;
}
.woman-info-card .item-content .label {
  font-size: 11px;
  font-weight: 600;
  color: var(--ion-color-medium);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  line-height: 1.2;
  margin: 0;
  text-align: left;
}
.woman-info-card .item-content .value {
  font-size: 14px;
  font-weight: 600;
  color: var(--ion-color-dark);
  line-height: 1.4;
  word-wrap: break-word;
  word-break: break-word;
  overflow-wrap: break-word;
  margin: 0;
  text-align: left;
  display: block;
  max-width: 100%;
}
.woman-info-card .item-content .value:empty::after {
  content: "-";
  color: var(--ion-color-medium);
  font-style: italic;
}
.woman-info-card .item-content .value.value-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  word-wrap: normal;
  word-break: normal;
}
.woman-info-card .item-content .value-wrapper {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.woman-info-card .item-content .value-wrapper .value-ellipsis {
  flex: 1;
  min-width: 0;
}
.woman-info-card .item-content .value-wrapper .inline-icon {
  flex-shrink: 0;
  font-size: 16px;
  margin-inline-end: 0 !important;
}

.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 0 4px;
  gap: 16px;
  flex-wrap: wrap;
}
.section-header ion-button {
  flex-shrink: 0;
  height: 44px;
  --padding-start: 16px;
  --padding-end: 16px;
  --border-radius: 12px;
  --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  transition: all 0.3s ease;
}
.section-header ion-button:hover {
  transform: translateY(-2px);
  --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}
.section-header ion-button ion-icon {
  font-size: 18px;
}

.section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 600;
  margin: 0;
  color: var(--ion-color-dark);
  flex: 1 1 auto;
  min-width: 0;
}
.section-title ion-icon {
  font-size: 24px;
  flex-shrink: 0;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}
.empty-state ion-icon {
  font-size: 48px;
  margin-bottom: 16px;
}
.empty-state h3 {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px 0;
  color: var(--ion-color-dark);
}
.empty-state p {
  font-size: 14px;
  color: var(--ion-color-medium);
  margin: 0;
  max-width: 300px;
}

@media (max-width: 768px) {
  .section-header {
    padding: 0 4px;
    gap: 12px;
  }
  .section-header .section-title {
    font-size: 18px;
  }
  .section-header .section-title ion-icon {
    font-size: 22px;
  }
  .section-header ion-button {
    height: 40px;
    font-size: 13px;
    --padding-start: 12px;
    --padding-end: 12px;
  }
  .section-header ion-button ion-icon {
    font-size: 16px;
  }
}
@media (max-width: 480px) {
  .section-header {
    padding: 0 4px;
    gap: 8px;
    flex-wrap: wrap;
  }
  .section-header .section-title {
    font-size: 16px;
    flex: 1 1 100%;
    justify-content: flex-start;
  }
  .section-header .section-title ion-icon {
    font-size: 20px;
  }
  .section-header ion-button {
    flex: 1 1 100%;
    height: 40px;
    font-size: 13px;
    --padding-start: 12px;
    --padding-end: 12px;
  }
  .section-header ion-button ion-icon {
    font-size: 16px;
  }
}
.content-grid {
  padding: 0;
}

.verified-badge-inline {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  vertical-align: middle;
  margin-left: 4px;
}
.verified-badge-inline ion-icon {
  font-size: 12px;
  margin-inline-end: 0 !important;
}

.table-container {
  overflow-x: auto;
  border-radius: 8px;
  border: 1px solid var(--ion-color-light);
  margin-top: 1rem;
}

.measurements-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 100%;
}
.measurements-table th {
  background-color: var(--ion-color-light);
  color: var(--ion-color-primary);
  font-weight: 600;
  padding: 10px 6px;
  text-align: center;
  border-bottom: 2px solid var(--ion-color-medium);
  font-size: 0.85rem;
  white-space: normal;
  word-wrap: break-word;
}
.measurements-table td {
  padding: 10px 6px;
  border-bottom: 1px solid var(--ion-color-light);
  font-size: 0.85rem;
  text-align: center;
  vertical-align: middle;
}
.measurements-table td.date-cell {
  font-weight: 600;
  color: var(--ion-color-primary);
  text-align: left;
}
.measurements-table td.actions-cell {
  white-space: nowrap;
  width: 80px;
  padding: 10px 2px;
}
.measurements-table td.actions-cell ion-button {
  margin: 0 1px;
  --padding-start: 4px;
  --padding-end: 4px;
}
.measurements-table td.actions-cell .disabled-text {
  color: var(--ion-color-medium);
  font-size: 0.9rem;
}
.measurements-table tbody tr {
  transition: all 0.2s ease;
}
.measurements-table tbody tr:hover {
  background-color: var(--ion-color-light-tint);
}
.measurements-table tbody tr.nutrition-danger {
  background-color: rgba(var(--ion-color-danger-rgb), 0.05);
  border-left: 3px solid var(--ion-color-danger);
}
.measurements-table tbody tr.nutrition-warning {
  background-color: rgba(var(--ion-color-warning-rgb), 0.05);
  border-left: 3px solid var(--ion-color-warning);
}
.measurements-table tbody tr.nutrition-success {
  background-color: rgba(var(--ion-color-success-rgb), 0.05);
  border-left: 3px solid var(--ion-color-success);
}
.measurements-table tbody tr:last-child td {
  border-bottom: none;
}

.empty-state {
  text-align: center;
  padding: 3rem 2rem;
}
.empty-state ion-icon {
  font-size: 4rem;
  margin-bottom: 1rem;
}
.empty-state h3 {
  color: var(--ion-color-dark);
  margin-bottom: 0.5rem;
  font-size: 1.2rem;
}
.empty-state p {
  color: var(--ion-color-medium);
  margin: 0;
  font-size: 0.95rem;
}

.pagination-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 0;
  margin-top: 16px;
  border-top: 1px solid var(--ion-color-light);
}

.pagination-info {
  text-align: center;
  font-size: 0.85rem;
  color: var(--ion-color-medium);
  font-weight: 500;
}

.pagination-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.pagination-controls ion-button {
  --padding-start: 12px;
  --padding-end: 12px;
  height: 36px;
  font-size: 0.85rem;
  font-weight: 500;
}
.pagination-controls ion-button:disabled {
  opacity: 0.4;
}

.page-numbers {
  display: flex;
  gap: 4px;
  align-items: center;
}
.page-numbers ion-button {
  --padding-start: 8px;
  --padding-end: 8px;
  min-width: 36px;
  height: 36px;
  font-weight: 600;
}
.page-numbers ion-button.active-page {
  --background: var(--ion-color-primary);
  --color: white;
  font-weight: 700;
}

@media (max-width: 768px) {
  .pagination-container {
    padding: 12px 0;
    gap: 8px;
  }
  .pagination-info {
    font-size: 0.8rem;
  }
  .pagination-controls {
    gap: 6px;
  }
  .pagination-controls ion-button {
    height: 32px;
    font-size: 0.8rem;
    --padding-start: 8px;
    --padding-end: 8px;
  }
  .page-numbers {
    gap: 2px;
  }
  .page-numbers ion-button {
    min-width: 32px;
    height: 32px;
    font-size: 0.8rem;
  }
}
.gmp-buttons-section {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 16px 0 0 0;
  margin: 0;
}
.gmp-buttons-section .gmp-btn {
  --border-radius: 12px;
  --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  height: 48px;
  font-size: 15px;
  font-weight: 600;
  text-transform: none;
  flex: 1;
  min-width: 150px;
  max-width: 300px;
  transition: all 0.3s ease;
}
.gmp-buttons-section .gmp-btn ion-icon {
  font-size: 20px;
  margin-inline-end: 6px !important;
}
.gmp-buttons-section .gmp-btn:hover {
  transform: translateY(-2px);
  --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}
.gmp-buttons-section .gmp-btn:active {
  transform: translateY(0);
}

@media (max-width: 768px) {
  .gmp-buttons-section {
    padding: 12px 0 0 0;
    gap: 10px;
  }
  .gmp-buttons-section .gmp-btn {
    height: 44px;
    font-size: 14px;
    min-width: 140px;
  }
  .gmp-buttons-section .gmp-btn ion-icon {
    font-size: 18px;
  }
}
@media (max-width: 480px) {
  .gmp-buttons-section {
    flex-direction: column;
    gap: 8px;
    padding: 12px 0 0 0;
  }
  .gmp-buttons-section .gmp-btn {
    flex: 1 1 100%;
    max-width: none;
    height: 42px;
    font-size: 14px;
  }
  .gmp-buttons-section .gmp-btn ion-icon {
    font-size: 18px;
  }
}
.summary-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
  padding: 0;
}

.summary-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, rgba(73, 144, 226, 0.05), rgba(255, 255, 255, 0.95));
  border: 1px solid rgba(73, 144, 226, 0.15);
  border-radius: 12px;
  padding: 16px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.summary-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border-color: rgba(73, 144, 226, 0.3);
}
.summary-card ion-icon {
  font-size: 32px;
  flex-shrink: 0;
}

.summary-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}

.summary-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--ion-color-medium);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  line-height: 1.2;
}

.summary-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--ion-color-dark);
  line-height: 1.3;
  word-wrap: break-word;
  word-break: break-word;
}
.summary-value ion-badge {
  font-size: 13px;
  padding: 4px 10px;
}

.status-count-container {
  margin: 20px 0;
  padding: 16px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.status-count-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 600;
  color: var(--ion-color-dark);
  margin: 0 0 12px 0;
}
.status-count-title ion-icon {
  font-size: 20px;
  color: var(--ion-color-primary);
}

.status-count-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 12px;
}

.status-count-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: white;
  border-radius: 8px;
  border-left: 4px solid transparent;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
}
.status-count-item:hover {
  transform: translateX(4px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
}
.status-count-item.status-danger {
  border-left-color: var(--ion-color-danger);
  background: linear-gradient(135deg, rgba(var(--ion-color-danger-rgb), 0.05), white);
}
.status-count-item.status-warning {
  border-left-color: var(--ion-color-warning);
  background: linear-gradient(135deg, rgba(var(--ion-color-warning-rgb), 0.05), white);
}
.status-count-item.status-success {
  border-left-color: var(--ion-color-success);
  background: linear-gradient(135deg, rgba(var(--ion-color-success-rgb), 0.05), white);
}

.status-count-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.status-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ion-color-dark);
}

.status-count {
  font-size: 12px;
  color: var(--ion-color-medium);
}

.status-badge ion-badge {
  font-size: 16px;
  font-weight: 700;
  padding: 6px 12px;
}

.item-distribution-container {
  margin: 20px 0;
  padding: 16px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.item-distribution-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 600;
  color: var(--ion-color-dark);
  margin: 0 0 12px 0;
}
.item-distribution-title ion-icon {
  font-size: 20px;
  color: var(--ion-color-secondary);
}

.item-distribution-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}

.item-distribution-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  background: white;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.item-distribution-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  border-color: rgba(var(--ion-color-secondary-rgb), 0.3);
}

.item-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(var(--ion-color-secondary-rgb), 0.1), rgba(var(--ion-color-secondary-rgb), 0.05));
  border-radius: 10px;
}
.item-icon ion-icon {
  font-size: 28px;
}

.item-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}

.item-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--ion-color-dark);
  word-wrap: break-word;
}

.item-quantity {
  font-size: 18px;
  font-weight: 700;
  color: var(--ion-color-secondary);
}

.item-count {
  font-size: 12px;
  color: var(--ion-color-medium);
  font-style: italic;
}

@media (max-width: 768px) {
  .summary-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 16px;
  }
  .summary-card {
    padding: 12px;
    gap: 10px;
  }
  .summary-card ion-icon {
    font-size: 28px;
  }
  .summary-label {
    font-size: 10px;
  }
  .summary-value {
    font-size: 16px;
  }
  .summary-value ion-badge {
    font-size: 11px;
    padding: 3px 8px;
  }
  .status-count-container,
  .item-distribution-container {
    padding: 12px;
    margin: 16px 0;
  }
  .status-count-title,
  .item-distribution-title {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .status-count-title ion-icon,
  .item-distribution-title ion-icon {
    font-size: 18px;
  }
  .status-count-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .status-count-item {
    padding: 10px 12px;
  }
  .status-name {
    font-size: 13px;
  }
  .status-count {
    font-size: 11px;
  }
  .status-badge ion-badge {
    font-size: 14px;
    padding: 4px 10px;
  }
  .item-distribution-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .item-distribution-card {
    padding: 12px;
  }
  .item-icon {
    width: 40px;
    height: 40px;
  }
  .item-icon ion-icon {
    font-size: 24px;
  }
  .item-name {
    font-size: 14px;
  }
  .item-quantity {
    font-size: 16px;
  }
  .item-count {
    font-size: 11px;
  }
}
@media (max-width: 480px) {
  .summary-container {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 12px;
  }
  .summary-card {
    padding: 10px;
    gap: 8px;
  }
  .summary-card ion-icon {
    font-size: 24px;
  }
  .summary-label {
    font-size: 9px;
  }
  .summary-value {
    font-size: 14px;
  }
  .summary-value ion-badge {
    font-size: 10px;
    padding: 2px 6px;
  }
  .status-count-container,
  .item-distribution-container {
    padding: 10px;
    margin: 12px 0;
  }
  .status-count-title,
  .item-distribution-title {
    font-size: 13px;
    margin-bottom: 8px;
  }
  .status-count-title ion-icon,
  .item-distribution-title ion-icon {
    font-size: 16px;
  }
  .status-count-item {
    padding: 8px 10px;
  }
  .status-name {
    font-size: 12px;
  }
  .status-count {
    font-size: 10px;
  }
  .status-badge ion-badge {
    font-size: 12px;
    padding: 3px 8px;
  }
  .item-distribution-card {
    padding: 10px;
    gap: 10px;
  }
  .item-icon {
    width: 36px;
    height: 36px;
  }
  .item-icon ion-icon {
    font-size: 20px;
  }
  .item-name {
    font-size: 13px;
  }
  .item-quantity {
    font-size: 15px;
  }
  .item-count {
    font-size: 10px;
  }
}
.compact-summary {
  background: rgba(73, 144, 226, 0.04);
  border-radius: 8px;
  padding: 12px 8px;
  margin-bottom: 16px;
  border: 1px solid rgba(73, 144, 226, 0.1);
}
.compact-summary ion-row {
  margin: 0;
}
.compact-summary ion-col {
  padding: 0 6px;
}

.nutrition-breakdown-grid {
  padding: 0;
  margin: 0;
}
.nutrition-breakdown-grid ion-row {
  margin: 0;
}
.nutrition-breakdown-grid ion-col {
  padding: 0 6px;
}

.nutrition-status-item {
  height: 100%;
}

.compact-summary-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 8px 4px;
  background: white;
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  min-height: 60px;
  transition: all 0.2s ease;
}
.compact-summary-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  border-color: rgba(73, 144, 226, 0.2);
}

.compact-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--ion-color-medium);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  line-height: 1.2;
}

.compact-value {
  font-size: 14px;
  font-weight: 700;
  color: var(--ion-color-dark);
  line-height: 1.3;
  word-break: break-word;
}

.compact-badge {
  font-size: 11px !important;
  padding: 3px 8px !important;
  font-weight: 600 !important;
}

.distribution-value {
  display: flex;
  align-items: baseline;
  gap: 4px;
  justify-content: center;
}
.distribution-value strong {
  font-size: 14px;
  font-weight: 700;
  color: var(--ion-color-dark);
}
.distribution-value .unit-text {
  font-size: 11px;
  font-weight: 500;
  color: var(--ion-color-medium);
}

@media (max-width: 768px) {
  .compact-summary {
    padding: 10px 6px;
    margin-bottom: 14px;
  }
  .compact-summary ion-col {
    padding: 0 4px;
  }
  .compact-summary-item {
    padding: 6px 3px;
    min-height: 55px;
  }
  .compact-label {
    font-size: 9px;
  }
  .compact-value {
    font-size: 13px;
  }
  .compact-badge {
    font-size: 10px !important;
    padding: 2px 6px !important;
  }
  .distribution-value strong {
    font-size: 13px;
  }
  .distribution-value .unit-text {
    font-size: 10px;
  }
}
@media (max-width: 480px) {
  .compact-summary {
    padding: 8px 4px;
    margin-bottom: 12px;
  }
  .compact-summary ion-col {
    padding: 0 3px;
  }
  .compact-summary-item {
    padding: 5px 2px;
    min-height: 50px;
  }
  .compact-label {
    font-size: 8px;
    margin-bottom: 3px;
  }
  .compact-value {
    font-size: 12px;
  }
  .compact-badge {
    font-size: 9px !important;
    padding: 2px 5px !important;
  }
  .distribution-value strong {
    font-size: 12px;
  }
  .distribution-value .unit-text {
    font-size: 9px;
  }
}
.collapsible-header {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  transition: all 0.2s ease;
  position: relative;
  background: linear-gradient(135deg, rgba(73, 144, 226, 0.08), rgba(73, 144, 226, 0.04));
  padding: 16px 20px;
  border-radius: 12px 12px 0 0;
  border-bottom: 2px solid rgba(73, 144, 226, 0.15);
  margin-bottom: 0;
}
.collapsible-header:hover {
  background: linear-gradient(135deg, rgba(73, 144, 226, 0.12), rgba(73, 144, 226, 0.06));
  border-bottom-color: rgba(73, 144, 226, 0.25);
}
.collapsible-header:active {
  background: linear-gradient(135deg, rgba(73, 144, 226, 0.15), rgba(73, 144, 226, 0.08));
}
.collapsible-header .section-title {
  margin: 0;
  font-weight: 700;
  color: var(--ion-color-primary);
}

.collapse-icon {
  font-size: 24px;
  color: var(--ion-color-primary);
  transition: transform 0.3s ease;
  margin-left: auto;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .collapsible-header {
    padding: 14px 16px;
  }
  .collapsible-header .section-title {
    font-size: 18px;
  }
  .collapse-icon {
    font-size: 22px;
  }
}
@media (max-width: 480px) {
  .collapsible-header {
    padding: 12px 14px;
  }
  .collapsible-header .section-title {
    font-size: 16px;
  }
  .collapsible-header .section-title ion-icon {
    font-size: 20px;
  }
  .collapse-icon {
    font-size: 20px;
  }
}`, "",{"version":3,"sources":["webpack://./src/app/pages/woman-detail/woman-detail.page.scss"],"names":[],"mappings":"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","sourcesContent":["ion-icon{\n   margin-inline-end: .75em !important;\n}\n\n// Card styles imported from child-detail page\n:root {\n  --ion-color-primary: #4990E2;\n  --ion-color-primary-rgb: 73, 144, 226;\n  --ion-color-primary-contrast: #ffffff;\n  --ion-color-secondary: #6D5AE6;\n  --ion-color-secondary-rgb: 109, 90, 230;\n  --ion-color-secondary-contrast: #ffffff;\n  --ion-color-tertiary: #FF8A65;\n  --ion-color-tertiary-rgb: 255, 138, 101;\n  --ion-color-tertiary-contrast: #ffffff;\n  --ion-color-light: #f4f5f8;\n  --ion-color-medium: #92949c;\n  --ion-color-dark: #222428;\n}\n\n// Main Section Header (title on left, buttons on right)\n.section-header-main {\n  max-width: 800px;\n  margin: 0 auto 24px auto;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 16px;\n  padding: 0 4px;\n  flex-wrap: wrap;\n}\n\n.section-title-main {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  font-size: 24px;\n  font-weight: 700;\n  margin: 0;\n  color: var(--ion-color-dark);\n  flex: 0 1 auto;\n  opacity: 1 !important;\n\n  ion-icon {\n    font-size: 28px;\n    flex-shrink: 0;\n    opacity: 1 !important;\n  }\n}\n\n.action-buttons-group {\n  display: flex;\n  gap: 10px;\n  flex-wrap: wrap;\n  align-items: center;\n  flex: 0 1 auto;\n\n  .action-btn {\n    --border-radius: 12px;\n    --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n    height: 44px;\n    font-size: 14px;\n    font-weight: 600;\n    text-transform: none;\n    min-width: 120px;\n    transition: all 0.3s ease;\n\n    ion-icon {\n      font-size: 18px;\n      margin-inline-end: 6px !important;\n    }\n\n    &:hover {\n      transform: translateY(-2px);\n      --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);\n    }\n\n    &:active {\n      transform: translateY(0);\n    }\n  }\n}\n\n// Quick Action Buttons Section (highlighted buttons below basic info)\n.quick-action-buttons {\n  max-width: 800px;\n  margin: 16px auto 24px;\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: 12px;\n  align-items: stretch;\n\n  .quick-action-btn {\n    width: 100%;\n    height: 48px;\n    --border-radius: 12px;\n    --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n    font-size: 13px;\n    font-weight: 600;\n    text-transform: none;\n    transition: all 0.3s ease;\n\n    ion-icon {\n      font-size: 20px;\n      margin-inline-end: 8px !important;\n    }\n\n    &:hover:not([disabled]) {\n      transform: translateY(-2px);\n      --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);\n    }\n\n    &:active:not([disabled]) {\n      transform: translateY(0);\n    }\n  }\n}\n\n@media (max-width: 768px) {\n  .quick-action-buttons {\n    gap: 10px;\n\n    .quick-action-btn {\n      height: 44px;\n      font-size: 14px;\n\n      ion-icon {\n        font-size: 18px;\n      }\n    }\n  }\n}\n\n@media (max-width: 576px) {\n  .quick-action-buttons {\n    grid-template-columns: 1fr;\n    gap: 10px;\n\n    .quick-action-btn {\n      width: 100%;\n    }\n  }\n}\n\n@media (max-width: 480px) {\n  .quick-action-buttons {\n    gap: 8px;\n\n    .quick-action-btn {\n      height: 42px;\n      font-size: 14px;\n    }\n  }\n}\n\n@media (max-width: 768px) {\n  .section-header-main {\n    margin-bottom: 20px;\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 12px;\n  }\n\n  .section-title-main {\n    font-size: 20px;\n    width: 100%;\n\n    ion-icon {\n      font-size: 24px;\n    }\n  }\n\n  .action-buttons-group {\n    width: 100%;\n    justify-content: stretch;\n\n    .action-btn {\n      flex: 1 1 auto;\n      height: 42px;\n      font-size: 13px;\n      min-width: 100px;\n\n      ion-icon {\n        font-size: 16px;\n      }\n    }\n  }\n}\n\n@media (max-width: 480px) {\n  .section-header-main {\n    margin-bottom: 16px;\n  }\n\n  .section-title-main {\n    font-size: 18px;\n\n    ion-icon {\n      font-size: 22px;\n    }\n  }\n\n  .action-buttons-group {\n    flex-direction: column;\n    gap: 8px;\n\n    .action-btn {\n      width: 100%;\n      min-width: auto;\n      height: 40px;\n      font-size: 13px;\n    }\n  }\n}\n\n// Main container\nion-content {\n  --padding-start: 16px;\n  --padding-end: 16px;\n  --padding-top: 20px;\n  --padding-bottom: 20px;\n}\n\n.card-container {\n  max-width: 800px;\n  margin: 0 auto 20px auto;\n}\n\nion-card {\n  border-radius: 16px;\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);\n  overflow: hidden;\n  margin: 0 0 16px 0;\n}\n\n@media (max-width: 768px) {\n  ion-content {\n    --padding-start: 12px;\n    --padding-end: 12px;\n    --padding-top: 16px;\n    --padding-bottom: 16px;\n  }\n\n  .card-container {\n    margin-bottom: 16px;\n  }\n\n  .woman-info-card {\n    .profile-content {\n      padding: 16px;\n    }\n\n    .content-grid {\n      ion-col {\n        padding: 0 3px;\n\n        &:first-child {\n          padding-left: 0;\n          padding-right: 5px;\n        }\n\n        &:last-child {\n          padding-right: 0;\n          padding-left: 5px;\n        }\n      }\n    }\n\n    .info-item {\n      padding: 10px 6px;\n      gap: 10px;\n      margin-bottom: 6px;\n      min-height: 55px;\n      max-height: 55px;\n\n      ion-icon {\n        font-size: 16px;\n        width: 18px;\n      }\n    }\n\n    .item-content {\n      .label {\n        font-size: 10px;\n        letter-spacing: 0.3px;\n      }\n\n      .value {\n        font-size: 13px;\n\n        &.value-ellipsis {\n          white-space: nowrap;\n          overflow: hidden;\n          text-overflow: ellipsis;\n          display: block;\n        }\n      }\n\n      .value-wrapper {\n        .inline-icon {\n          font-size: 14px;\n        }\n      }\n    }\n  }\n\n  .verified-badge-inline {\n    font-size: 10px;\n    padding: 2px 6px;\n\n    ion-icon {\n      font-size: 11px;\n    }\n  }\n}\n\n@media (max-width: 480px) {\n  ion-content {\n    --padding-start: 8px;\n    --padding-end: 8px;\n    --padding-top: 12px;\n    --padding-bottom: 12px;\n  }\n\n  .card-container {\n    margin-bottom: 12px;\n  }\n\n  .woman-info-card {\n    .profile-content {\n      padding: 12px;\n    }\n\n    .content-grid {\n      ion-col {\n        padding: 0 2px;\n\n        &:first-child {\n          padding-left: 0;\n          padding-right: 4px;\n        }\n\n        &:last-child {\n          padding-right: 0;\n          padding-left: 4px;\n        }\n      }\n    }\n\n    .info-item {\n      padding: 8px 4px;\n      gap: 8px;\n      margin-bottom: 5px;\n      min-height: 50px;\n      max-height: 50px;\n\n      ion-icon {\n        font-size: 14px;\n        width: 16px;\n      }\n    }\n\n    .item-content {\n      .label {\n        font-size: 9px;\n        letter-spacing: 0.2px;\n      }\n\n      .value {\n        font-size: 12px;\n\n        &.value-ellipsis {\n          white-space: nowrap;\n          overflow: hidden;\n          text-overflow: ellipsis;\n          display: block;\n        }\n      }\n\n      .value-wrapper {\n        .inline-icon {\n          font-size: 12px;\n        }\n      }\n    }\n  }\n}\n\n// Woman Information Card (matching child-detail design)\n.woman-info-card {\n  border-radius: 12px;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n  overflow: hidden;\n  margin: 0;\n  border: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.profile-content {\n  padding: 20px;\n}\n\n.content-grid {\n  padding: 0;\n  margin: 0;\n\n  ion-row {\n    margin: 0;\n  }\n\n  ion-col {\n    padding: 0 6px;\n    display: flex;\n    flex-direction: column;\n\n    &:first-child {\n      padding-left: 0;\n      padding-right: 8px;\n    }\n\n    &:last-child {\n      padding-right: 0;\n      padding-left: 8px;\n    }\n  }\n}\n\n.woman-info-card .info-item {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n  padding: 12px 8px;\n  background: rgba(255, 255, 255, 0.8);\n  border-radius: 6px;\n  border: 1px solid rgba(0, 0, 0, 0.06);\n  margin-bottom: 8px;\n  transition: all 0.2s ease;\n  min-height: 60px;\n  max-height: 60px;\n  overflow: hidden;\n\n  &:last-child {\n    margin-bottom: 0;\n  }\n\n  &:hover {\n    background: rgba(73, 144, 226, 0.04);\n    border-color: rgba(73, 144, 226, 0.2);\n    transform: translateY(-1px);\n    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n  }\n\n  ion-icon {\n    font-size: 18px;\n    flex-shrink: 0;\n    width: 20px;\n    height: 20px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin-top: 2px;\n    margin-inline-end: 0 !important;\n  }\n}\n\n.woman-info-card .item-content {\n  display: flex;\n  flex-direction: column;\n  gap: 3px;\n  flex: 1;\n  min-width: 0;\n  text-align: left;\n\n  .label {\n    font-size: 11px;\n    font-weight: 600;\n    color: var(--ion-color-medium);\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    line-height: 1.2;\n    margin: 0;\n    text-align: left;\n  }\n\n  .value {\n    font-size: 14px;\n    font-weight: 600;\n    color: var(--ion-color-dark);\n    line-height: 1.4;\n    word-wrap: break-word;\n    word-break: break-word;\n    overflow-wrap: break-word;\n    margin: 0;\n    text-align: left;\n    display: block;\n    max-width: 100%;\n\n    &:empty::after {\n      content: '-';\n      color: var(--ion-color-medium);\n      font-style: italic;\n    }\n\n    &.value-ellipsis {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      display: block;\n      word-wrap: normal;\n      word-break: normal;\n    }\n  }\n\n  .value-wrapper {\n    display: flex;\n    align-items: center;\n    gap: 4px;\n    min-width: 0;\n\n    .value-ellipsis {\n      flex: 1;\n      min-width: 0;\n    }\n\n    .inline-icon {\n      flex-shrink: 0;\n      font-size: 16px;\n      margin-inline-end: 0 !important;\n    }\n  }\n}\n\n// Section Header (consistent with child-detail page)\n.section-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 16px;\n  padding: 0 4px;\n  gap: 16px;\n  flex-wrap: wrap;\n\n  ion-button {\n    flex-shrink: 0;\n    height: 44px;\n    --padding-start: 16px;\n    --padding-end: 16px;\n    --border-radius: 12px;\n    --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n    font-size: 14px;\n    font-weight: 600;\n    text-transform: none;\n    transition: all 0.3s ease;\n\n    &:hover {\n      transform: translateY(-2px);\n      --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);\n    }\n\n    ion-icon {\n      font-size: 18px;\n    }\n  }\n}\n\n.section-title {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 20px;\n  font-weight: 600;\n  margin: 0;\n  color: var(--ion-color-dark);\n  flex: 1 1 auto;\n  min-width: 0;\n\n  ion-icon {\n    font-size: 24px;\n    flex-shrink: 0;\n  }\n}\n\n// Empty State (consistent with woman-add-edit)\n.empty-state {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 60px 20px;\n  text-align: center;\n\n  ion-icon {\n    font-size: 48px;\n    margin-bottom: 16px;\n  }\n\n  h3 {\n    font-size: 18px;\n    font-weight: 600;\n    margin: 0 0 8px 0;\n    color: var(--ion-color-dark);\n  }\n\n  p {\n    font-size: 14px;\n    color: var(--ion-color-medium);\n    margin: 0;\n    max-width: 300px;\n  }\n}\n\n// Mobile and Tablet Responsive Design\n@media (max-width: 768px) {\n  .section-header {\n    padding: 0 4px;\n    gap: 12px;\n\n    .section-title {\n      font-size: 18px;\n\n      ion-icon {\n        font-size: 22px;\n      }\n    }\n\n    ion-button {\n      height: 40px;\n      font-size: 13px;\n      --padding-start: 12px;\n      --padding-end: 12px;\n\n      ion-icon {\n        font-size: 16px;\n      }\n    }\n  }\n}\n\n// Tablet Design (769px - 1024px)\n@media (min-width: 769px) and (max-width: 1024px) {\n}\n\n// Small Mobile Enhancements\n@media (max-width: 480px) {\n  .section-header {\n    padding: 0 4px;\n    gap: 8px;\n    flex-wrap: wrap;\n\n    .section-title {\n      font-size: 16px;\n      flex: 1 1 100%;\n      justify-content: flex-start;\n\n      ion-icon {\n        font-size: 20px;\n      }\n    }\n\n    ion-button {\n      flex: 1 1 100%;\n      height: 40px;\n      font-size: 13px;\n      --padding-start: 12px;\n      --padding-end: 12px;\n\n      ion-icon {\n        font-size: 16px;\n      }\n    }\n  }\n}\n\n.content-grid {\n  padding: 0;\n}\n\n// Verified Badge Inline Styles (for inside value field)\n.verified-badge-inline {\n  font-size: 11px;\n  font-weight: 600;\n  padding: 3px 8px;\n  border-radius: 12px;\n  display: inline-flex;\n  align-items: center;\n  gap: 3px;\n  vertical-align: middle;\n  margin-left: 4px;\n\n  ion-icon {\n    font-size: 12px;\n    margin-inline-end: 0 !important;\n  }\n}\n\n// Measurements Table Styles\n.table-container {\n  overflow-x: auto;\n  border-radius: 8px;\n  border: 1px solid var(--ion-color-light);\n  margin-top: 1rem;\n}\n\n.measurements-table {\n  width: 100%;\n  border-collapse: collapse;\n  min-width: 100%; // Changed from 600px to fit viewport\n\n  th {\n    background-color: var(--ion-color-light);\n    color: var(--ion-color-primary);\n    font-weight: 600;\n    padding: 10px 6px;\n    text-align: center;\n    border-bottom: 2px solid var(--ion-color-medium);\n    font-size: 0.85rem;\n    white-space: normal; // Changed from nowrap to allow text wrapping\n    word-wrap: break-word;\n  }\n\n  td {\n    padding: 10px 6px;\n    border-bottom: 1px solid var(--ion-color-light);\n    font-size: 0.85rem;\n    text-align: center;\n    vertical-align: middle;\n\n    &.date-cell {\n      font-weight: 600;\n      color: var(--ion-color-primary);\n      text-align: left;\n    }\n\n    &.actions-cell {\n      white-space: nowrap;\n      width: 80px;\n      padding: 10px 2px;\n\n      ion-button {\n        margin: 0 1px;\n        --padding-start: 4px;\n        --padding-end: 4px;\n      }\n\n      .disabled-text {\n        color: var(--ion-color-medium);\n        font-size: 0.9rem;\n      }\n    }\n  }\n\n  tbody tr {\n    transition: all 0.2s ease;\n\n    &:hover {\n      background-color: var(--ion-color-light-tint);\n    }\n\n    &.nutrition-danger {\n      background-color: rgba(var(--ion-color-danger-rgb), 0.05);\n      border-left: 3px solid var(--ion-color-danger);\n    }\n\n    &.nutrition-warning {\n      background-color: rgba(var(--ion-color-warning-rgb), 0.05);\n      border-left: 3px solid var(--ion-color-warning);\n    }\n\n    &.nutrition-success {\n      background-color: rgba(var(--ion-color-success-rgb), 0.05);\n      border-left: 3px solid var(--ion-color-success);\n    }\n  }\n\n  tbody tr:last-child td {\n    border-bottom: none;\n  }\n}\n\n.empty-state {\n  text-align: center;\n  padding: 3rem 2rem;\n\n  ion-icon {\n    font-size: 4rem;\n    margin-bottom: 1rem;\n  }\n\n  h3 {\n    color: var(--ion-color-dark);\n    margin-bottom: 0.5rem;\n    font-size: 1.2rem;\n  }\n\n  p {\n    color: var(--ion-color-medium);\n    margin: 0;\n    font-size: 0.95rem;\n  }\n}\n\n// Pagination Styles\n.pagination-container {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  padding: 16px 0;\n  margin-top: 16px;\n  border-top: 1px solid var(--ion-color-light);\n}\n\n.pagination-info {\n  text-align: center;\n  font-size: 0.85rem;\n  color: var(--ion-color-medium);\n  font-weight: 500;\n}\n\n.pagination-controls {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  flex-wrap: wrap;\n\n  ion-button {\n    --padding-start: 12px;\n    --padding-end: 12px;\n    height: 36px;\n    font-size: 0.85rem;\n    font-weight: 500;\n\n    &:disabled {\n      opacity: 0.4;\n    }\n  }\n}\n\n.page-numbers {\n  display: flex;\n  gap: 4px;\n  align-items: center;\n\n  ion-button {\n    --padding-start: 8px;\n    --padding-end: 8px;\n    min-width: 36px;\n    height: 36px;\n    font-weight: 600;\n\n    &.active-page {\n      --background: var(--ion-color-primary);\n      --color: white;\n      font-weight: 700;\n    }\n  }\n}\n\n@media (max-width: 768px) {\n  .pagination-container {\n    padding: 12px 0;\n    gap: 8px;\n  }\n\n  .pagination-info {\n    font-size: 0.8rem;\n  }\n\n  .pagination-controls {\n    gap: 6px;\n\n    ion-button {\n      height: 32px;\n      font-size: 0.8rem;\n      --padding-start: 8px;\n      --padding-end: 8px;\n    }\n  }\n\n  .page-numbers {\n    gap: 2px;\n\n    ion-button {\n      min-width: 32px;\n      height: 32px;\n      font-size: 0.8rem;\n    }\n  }\n}\n\n// GMP Buttons Section (below woman info card)\n.gmp-buttons-section {\n  display: flex;\n  gap: 12px;\n  justify-content: center;\n  flex-wrap: wrap;\n  padding: 16px 0 0 0;\n  margin: 0;\n\n  .gmp-btn {\n    --border-radius: 12px;\n    --box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n    height: 48px;\n    font-size: 15px;\n    font-weight: 600;\n    text-transform: none;\n    flex: 1;\n    min-width: 150px;\n    max-width: 300px;\n    transition: all 0.3s ease;\n\n    ion-icon {\n      font-size: 20px;\n      margin-inline-end: 6px !important;\n    }\n\n    &:hover {\n      transform: translateY(-2px);\n      --box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);\n    }\n\n    &:active {\n      transform: translateY(0);\n    }\n  }\n}\n\n@media (max-width: 768px) {\n  .gmp-buttons-section {\n    padding: 12px 0 0 0;\n    gap: 10px;\n\n    .gmp-btn {\n      height: 44px;\n      font-size: 14px;\n      min-width: 140px;\n\n      ion-icon {\n        font-size: 18px;\n      }\n    }\n  }\n}\n\n@media (max-width: 480px) {\n  .gmp-buttons-section {\n    flex-direction: column;\n    gap: 8px;\n    padding: 12px 0 0 0;\n\n    .gmp-btn {\n      flex: 1 1 100%;\n      max-width: none;\n      height: 42px;\n      font-size: 14px;\n\n      ion-icon {\n        font-size: 18px;\n      }\n    }\n  }\n}\n\n// Summary Container and Cards\n.summary-container {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n  gap: 12px;\n  margin-bottom: 20px;\n  padding: 0;\n}\n\n.summary-card {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  background: linear-gradient(135deg, rgba(73, 144, 226, 0.05), rgba(255, 255, 255, 0.95));\n  border: 1px solid rgba(73, 144, 226, 0.15);\n  border-radius: 12px;\n  padding: 16px;\n  transition: all 0.3s ease;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);\n\n  &:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n    border-color: rgba(73, 144, 226, 0.3);\n  }\n\n  ion-icon {\n    font-size: 32px;\n    flex-shrink: 0;\n  }\n}\n\n.summary-content {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  flex: 1;\n  min-width: 0;\n}\n\n.summary-label {\n  font-size: 11px;\n  font-weight: 600;\n  color: var(--ion-color-medium);\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  line-height: 1.2;\n}\n\n.summary-value {\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--ion-color-dark);\n  line-height: 1.3;\n  word-wrap: break-word;\n  word-break: break-word;\n\n  ion-badge {\n    font-size: 13px;\n    padding: 4px 10px;\n  }\n}\n\n// Nutrition Status Count Section\n.status-count-container {\n  margin: 20px 0;\n  padding: 16px;\n  background: rgba(255, 255, 255, 0.6);\n  border-radius: 12px;\n  border: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.status-count-title {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 16px;\n  font-weight: 600;\n  color: var(--ion-color-dark);\n  margin: 0 0 12px 0;\n\n  ion-icon {\n    font-size: 20px;\n    color: var(--ion-color-primary);\n  }\n}\n\n.status-count-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 12px;\n}\n\n.status-count-item {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 12px 16px;\n  background: white;\n  border-radius: 8px;\n  border-left: 4px solid transparent;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);\n\n  &:hover {\n    transform: translateX(4px);\n    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);\n  }\n\n  &.status-danger {\n    border-left-color: var(--ion-color-danger);\n    background: linear-gradient(135deg, rgba(var(--ion-color-danger-rgb), 0.05), white);\n  }\n\n  &.status-warning {\n    border-left-color: var(--ion-color-warning);\n    background: linear-gradient(135deg, rgba(var(--ion-color-warning-rgb), 0.05), white);\n  }\n\n  &.status-success {\n    border-left-color: var(--ion-color-success);\n    background: linear-gradient(135deg, rgba(var(--ion-color-success-rgb), 0.05), white);\n  }\n}\n\n.status-count-info {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n}\n\n.status-name {\n  font-size: 14px;\n  font-weight: 600;\n  color: var(--ion-color-dark);\n}\n\n.status-count {\n  font-size: 12px;\n  color: var(--ion-color-medium);\n}\n\n.status-badge {\n  ion-badge {\n    font-size: 16px;\n    font-weight: 700;\n    padding: 6px 12px;\n  }\n}\n\n// Item-wise Distribution Section\n.item-distribution-container {\n  margin: 20px 0;\n  padding: 16px;\n  background: rgba(255, 255, 255, 0.6);\n  border-radius: 12px;\n  border: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.item-distribution-title {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 16px;\n  font-weight: 600;\n  color: var(--ion-color-dark);\n  margin: 0 0 12px 0;\n\n  ion-icon {\n    font-size: 20px;\n    color: var(--ion-color-secondary);\n  }\n}\n\n.item-distribution-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n  gap: 12px;\n}\n\n.item-distribution-card {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  padding: 14px;\n  background: white;\n  border-radius: 10px;\n  border: 1px solid rgba(0, 0, 0, 0.08);\n  transition: all 0.3s ease;\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);\n\n  &:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n    border-color: rgba(var(--ion-color-secondary-rgb), 0.3);\n  }\n}\n\n.item-icon {\n  flex-shrink: 0;\n  width: 48px;\n  height: 48px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: linear-gradient(135deg, rgba(var(--ion-color-secondary-rgb), 0.1), rgba(var(--ion-color-secondary-rgb), 0.05));\n  border-radius: 10px;\n\n  ion-icon {\n    font-size: 28px;\n  }\n}\n\n.item-info {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  flex: 1;\n  min-width: 0;\n}\n\n.item-name {\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--ion-color-dark);\n  word-wrap: break-word;\n}\n\n.item-quantity {\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--ion-color-secondary);\n}\n\n.item-count {\n  font-size: 12px;\n  color: var(--ion-color-medium);\n  font-style: italic;\n}\n\n@media (max-width: 768px) {\n  .summary-container {\n    grid-template-columns: repeat(2, 1fr);\n    gap: 10px;\n    margin-bottom: 16px;\n  }\n\n  .summary-card {\n    padding: 12px;\n    gap: 10px;\n\n    ion-icon {\n      font-size: 28px;\n    }\n  }\n\n  .summary-label {\n    font-size: 10px;\n  }\n\n  .summary-value {\n    font-size: 16px;\n\n    ion-badge {\n      font-size: 11px;\n      padding: 3px 8px;\n    }\n  }\n\n  .status-count-container,\n  .item-distribution-container {\n    padding: 12px;\n    margin: 16px 0;\n  }\n\n  .status-count-title,\n  .item-distribution-title {\n    font-size: 14px;\n    margin-bottom: 10px;\n\n    ion-icon {\n      font-size: 18px;\n    }\n  }\n\n  .status-count-grid {\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n\n  .status-count-item {\n    padding: 10px 12px;\n  }\n\n  .status-name {\n    font-size: 13px;\n  }\n\n  .status-count {\n    font-size: 11px;\n  }\n\n  .status-badge ion-badge {\n    font-size: 14px;\n    padding: 4px 10px;\n  }\n\n  .item-distribution-grid {\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n\n  .item-distribution-card {\n    padding: 12px;\n  }\n\n  .item-icon {\n    width: 40px;\n    height: 40px;\n\n    ion-icon {\n      font-size: 24px;\n    }\n  }\n\n  .item-name {\n    font-size: 14px;\n  }\n\n  .item-quantity {\n    font-size: 16px;\n  }\n\n  .item-count {\n    font-size: 11px;\n  }\n}\n\n@media (max-width: 480px) {\n  .summary-container {\n    grid-template-columns: 1fr;\n    gap: 8px;\n    margin-bottom: 12px;\n  }\n\n  .summary-card {\n    padding: 10px;\n    gap: 8px;\n\n    ion-icon {\n      font-size: 24px;\n    }\n  }\n\n  .summary-label {\n    font-size: 9px;\n  }\n\n  .summary-value {\n    font-size: 14px;\n\n    ion-badge {\n      font-size: 10px;\n      padding: 2px 6px;\n    }\n  }\n\n  .status-count-container,\n  .item-distribution-container {\n    padding: 10px;\n    margin: 12px 0;\n  }\n\n  .status-count-title,\n  .item-distribution-title {\n    font-size: 13px;\n    margin-bottom: 8px;\n\n    ion-icon {\n      font-size: 16px;\n    }\n  }\n\n  .status-count-item {\n    padding: 8px 10px;\n  }\n\n  .status-name {\n    font-size: 12px;\n  }\n\n  .status-count {\n    font-size: 10px;\n  }\n\n  .status-badge ion-badge {\n    font-size: 12px;\n    padding: 3px 8px;\n  }\n\n  .item-distribution-card {\n    padding: 10px;\n    gap: 10px;\n  }\n\n  .item-icon {\n    width: 36px;\n    height: 36px;\n\n    ion-icon {\n      font-size: 20px;\n    }\n  }\n\n  .item-name {\n    font-size: 13px;\n  }\n\n  .item-quantity {\n    font-size: 15px;\n  }\n\n  .item-count {\n    font-size: 10px;\n  }\n}\n\n// Compact Summary Styles\n.compact-summary {\n  background: rgba(73, 144, 226, 0.04);\n  border-radius: 8px;\n  padding: 12px 8px;\n  margin-bottom: 16px;\n  border: 1px solid rgba(73, 144, 226, 0.1);\n\n  ion-row {\n    margin: 0;\n  }\n\n  ion-col {\n    padding: 0 6px;\n  }\n}\n\n.nutrition-breakdown-grid {\n  padding: 0;\n  margin: 0;\n\n  ion-row {\n    margin: 0;\n  }\n\n  ion-col {\n    padding: 0 6px;\n  }\n}\n\n.nutrition-status-item {\n  height: 100%;\n}\n\n.compact-summary-item {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n  padding: 8px 4px;\n  background: white;\n  border-radius: 6px;\n  border: 1px solid rgba(0, 0, 0, 0.08);\n  min-height: 60px;\n  transition: all 0.2s ease;\n\n  &:hover {\n    transform: translateY(-1px);\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);\n    border-color: rgba(73, 144, 226, 0.2);\n  }\n}\n\n.compact-label {\n  font-size: 10px;\n  font-weight: 600;\n  color: var(--ion-color-medium);\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  margin-bottom: 4px;\n  line-height: 1.2;\n}\n\n.compact-value {\n  font-size: 14px;\n  font-weight: 700;\n  color: var(--ion-color-dark);\n  line-height: 1.3;\n  word-break: break-word;\n}\n\n.compact-badge {\n  font-size: 11px !important;\n  padding: 3px 8px !important;\n  font-weight: 600 !important;\n}\n\n.distribution-value {\n  display: flex;\n  align-items: baseline;\n  gap: 4px;\n  justify-content: center;\n\n  strong {\n    font-size: 14px;\n    font-weight: 700;\n    color: var(--ion-color-dark);\n  }\n\n  .unit-text {\n    font-size: 11px;\n    font-weight: 500;\n    color: var(--ion-color-medium);\n  }\n}\n\n@media (max-width: 768px) {\n  .compact-summary {\n    padding: 10px 6px;\n    margin-bottom: 14px;\n\n    ion-col {\n      padding: 0 4px;\n    }\n  }\n\n  .compact-summary-item {\n    padding: 6px 3px;\n    min-height: 55px;\n  }\n\n  .compact-label {\n    font-size: 9px;\n  }\n\n  .compact-value {\n    font-size: 13px;\n  }\n\n  .compact-badge {\n    font-size: 10px !important;\n    padding: 2px 6px !important;\n  }\n\n  .distribution-value {\n    strong {\n      font-size: 13px;\n    }\n\n    .unit-text {\n      font-size: 10px;\n    }\n  }\n}\n\n@media (max-width: 480px) {\n  .compact-summary {\n    padding: 8px 4px;\n    margin-bottom: 12px;\n\n    ion-col {\n      padding: 0 3px;\n    }\n  }\n\n  .compact-summary-item {\n    padding: 5px 2px;\n    min-height: 50px;\n  }\n\n  .compact-label {\n    font-size: 8px;\n    margin-bottom: 3px;\n  }\n\n  .compact-value {\n    font-size: 12px;\n  }\n\n  .compact-badge {\n    font-size: 9px !important;\n    padding: 2px 5px !important;\n  }\n\n  .distribution-value {\n    strong {\n      font-size: 12px;\n    }\n\n    .unit-text {\n      font-size: 9px;\n    }\n  }\n}\n\n// Collapsible Card Styles\n.collapsible-header {\n  cursor: pointer;\n  user-select: none;\n  transition: all 0.2s ease;\n  position: relative;\n  background: linear-gradient(135deg, rgba(73, 144, 226, 0.08), rgba(73, 144, 226, 0.04));\n  padding: 16px 20px;\n  border-radius: 12px 12px 0 0;\n  border-bottom: 2px solid rgba(73, 144, 226, 0.15);\n  margin-bottom: 0;\n\n  &:hover {\n    background: linear-gradient(135deg, rgba(73, 144, 226, 0.12), rgba(73, 144, 226, 0.06));\n    border-bottom-color: rgba(73, 144, 226, 0.25);\n  }\n\n  &:active {\n    background: linear-gradient(135deg, rgba(73, 144, 226, 0.15), rgba(73, 144, 226, 0.08));\n  }\n\n  .section-title {\n    margin: 0;\n    font-weight: 700;\n    color: var(--ion-color-primary);\n  }\n}\n\n.collapse-icon {\n  font-size: 24px;\n  color: var(--ion-color-primary);\n  transition: transform 0.3s ease;\n  margin-left: auto;\n  flex-shrink: 0;\n}\n\n@media (max-width: 768px) {\n  .collapsible-header {\n    padding: 14px 16px;\n\n    .section-title {\n      font-size: 18px;\n    }\n  }\n\n  .collapse-icon {\n    font-size: 22px;\n  }\n}\n\n@media (max-width: 480px) {\n  .collapsible-header {\n    padding: 12px 14px;\n\n    .section-title {\n      font-size: 16px;\n\n      ion-icon {\n        font-size: 20px;\n      }\n    }\n  }\n\n  .collapse-icon {\n    font-size: 20px;\n  }\n}\n"],"sourceRoot":""}]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___.toString();


/***/ }),

/***/ 73829:
/*!**********************************************************************!*\
  !*** ./src/app/pages/woman-detail/woman-detail.page.html?ngResource ***!
  \**********************************************************************/
/***/ ((module) => {

"use strict";
module.exports = "<ion-header>\n  <ion-toolbar>\n    <ion-buttons slot=\"start\">\n      <ion-back-button defaultHref=\"/home\"></ion-back-button>\n    </ion-buttons>\n    <ion-title>{{ womanDetailData?.name }} - Profile</ion-title>\n  </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n  <ion-refresher slot=\"fixed\" (ionRefresh)=\"load($event)\">\n    <ion-refresher-content></ion-refresher-content>\n  </ion-refresher>\n  <ng-container *ngIf=\"womanDetailData;else skeleton\">\n    <!-- Header Section with Action Buttons -->\n    <div class=\"section-header-main\">\n      <h2 class=\"section-title-main\">\n        <ion-icon [name]=\"icons.PERSON\" color=\"primary\"></ion-icon>\n        Basic Information\n      </h2>\n      <div class=\"action-buttons-group\">\n        <ion-button *ngIf=\"permissionService.hasPermission('app-woman-edit')\" fill=\"outline\" color=\"primary\" [routerLink]=\"[b.routesConfig.plwEdit + id]\" size=\"small\">\n          <ion-icon [name]=\"icons.EDIT\" slot=\"start\"></ion-icon>\n          Edit\n        </ion-button>\n        <ion-button *ngIf=\"permissionService.hasPermission('app-woman-delete')\" fill=\"outline\" color=\"danger\" (click)=\"deleteWoman()\" size=\"small\">\n          <ion-icon [name]=\"icons.DELETE\" slot=\"start\"></ion-icon>\n          Delete\n        </ion-button>\n        <ion-button fill=\"outline\" color=\"medium\" routerLink=\"/location-update-woman/{{womanDetailData.id}}\" size=\"small\" *ngIf=\"hasPermission('app-pbw-location-update')\">\n          <ion-icon [name]=\"icons.LOCATION\" slot=\"start\"></ion-icon>\n          Update Location\n        </ion-button>\n        <ion-button *ngIf=\"permissionService.hasPermission('app-transfer-out-mother')\" fill=\"outline\" color=\"tertiary\" routerLink=\"/plw-transfer-out-create/{{womanDetailData.id}}\" size=\"small\">\n          <ion-icon [name]=\"icons.SWAP_HORIZONTAL\" slot=\"start\"></ion-icon>\n          Transfer Out\n        </ion-button>\n        <ion-button\n          *ngIf=\"permissionService.hasPermission('app-beneficiary-verification')\"\n          fill=\"outline\"\n          [color]=\"womanDetailData?.verified === 1 ? 'warning' : 'success'\"\n          size=\"small\"\n          (click)=\"toggleVerification()\">\n          <ion-icon\n            [name]=\"womanDetailData?.verified === 1  ? icons.SHIELD : icons.SHIELD_CHECKMARK\"\n            slot=\"start\">\n          </ion-icon>\n          {{ womanDetailData?.verified === 1 ? 'Unverify' : 'Verify' }}\n        </ion-button>\n      </div>\n    </div>\n\n    <!-- PBW Information Card -->\n    <div class=\"card-container\">\n      <ion-card class=\"woman-info-card\">\n        <ion-card-content>\n          <div class=\"profile-content\">\n            <ion-grid class=\"content-grid\">\n              <ion-row>\n                <!-- First Column -->\n                <ion-col size=\"4\">\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.PERSON_CIRCLE\" color=\"primary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Name</span>\n                      <div class=\"value-wrapper\">\n                        <span class=\"value value-ellipsis\">\n                          {{ womanDetailData?.name || '-' }}\n                        </span>\n                        <ion-icon\n                          *ngIf=\"womanDetailData?.verified === 1\"\n                          [name]=\"icons.SHIELD_CHECKMARK\"\n                          color=\"success\"\n                          class=\"inline-icon\">\n                        </ion-icon>\n                      </div>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.ID_CARD\" color=\"primary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Progress ID</span>\n                      <span class=\"value\">{{ womanDetailData?.progress_id || '-' }}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.MAN\" color=\"secondary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Fcn</span>\n                      <span class=\"value\">{{ womanDetailData?.fcn || '-'}}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.DOCUMENT\" color=\"primary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Case No</span>\n                      <span class=\"value\">{{ womanDetailData?.case_id || '-' }}</span>\n                    </div>\n                  </div>\n                </ion-col>\n\n                <!-- Second Column -->\n                <ion-col size=\"4\">\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.CALENDAR\" color=\"primary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Age</span>\n                      <span class=\"value\">{{ getAgeDisplay(womanDetailData?.date_of_birth) }}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.MAN\" color=\"secondary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Husband</span>\n                      <span class=\"value value-ellipsis\">{{ womanDetailData?.husband || '-' }}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.PEOPLE\" color=\"primary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Caregiver</span>\n                      <span class=\"value\">\n                        <ng-container *ngIf=\"womanDetailData?.mother_support_status === 'no'; else noCaregiver\">\n                          {{ womanDetailData?.caregiver_name || '-' }}\n                          <span *ngIf=\"womanDetailData?.caregiver?.title\" style=\"color: var(--ion-color-medium); font-size: 12px;\">\n                            ({{ womanDetailData?.caregiver?.title }})\n                          </span>\n                        </ng-container>\n                        <ng-template #noCaregiver>-</ng-template>\n                      </span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.ACCESSIBILITY\" color=\"primary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Has Disability</span>\n                      <span class=\"value\">{{ womanDetailData?.has_disability || '-' }}</span>\n                    </div>\n                  </div>\n                </ion-col>\n\n                <!-- Third Column -->\n                <ion-col size=\"4\">\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.BUSINESS\" color=\"secondary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">INF</span>\n                      <span class=\"value\">{{ womanDetailData?.current_location?.inf?.title || '-' }}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.LOCATION\" color=\"secondary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Block</span>\n                      <span class=\"value\">{{ womanDetailData?.current_location?.block_majhi?.block?.title || '-' }}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.HOME\" color=\"secondary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">Sub Block</span>\n                      <span class=\"value\">{{ womanDetailData?.current_location?.sub_block_sub_majhi?.sub_block_title || '-'}}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"info-item\">\n                    <ion-icon [name]=\"icons.HOME\" color=\"secondary\"></ion-icon>\n                    <div class=\"item-content\">\n                      <span class=\"label\">House Hold</span>\n                      <span class=\"value\">{{ womanDetailData?.current_location?.hh_no || '-' }}</span>\n                    </div>\n                  </div>\n                </ion-col>\n              </ion-row>\n            </ion-grid>\n          </div>\n        </ion-card-content>\n      </ion-card>\n\n    </div>\n\n    <!-- Quick Action Buttons -->\n    <div class=\"quick-action-buttons\">\n      <ion-button\n        class=\"quick-action-btn measurement-btn\"\n        fill=\"solid\"\n        color=\"primary\"\n        size=\"small\"\n        [disabled]=\"!hasPermission('app-pbw-measurement-add')\"\n        [routerLink]=\"['/plw-measurement-create', womanDetailData.id]\">\n        <ion-icon [name]=\"icons.FITNESS\" slot=\"start\"></ion-icon>\n        Measurement\n      </ion-button>\n      <ion-button\n        class=\"quick-action-btn intervention-btn\"\n        fill=\"solid\"\n        color=\"success\"\n        size=\"small\"\n        [disabled]=\"!hasPermission('app-pbw-assessment-add')\"\n        [routerLink]=\"['/beneficiary-assessment', womanDetailData.id, 'plw']\">\n        <ion-icon [name]=\"icons.MEDICAL\" slot=\"start\"></ion-icon>\n        Service\n      </ion-button>\n      <ion-button\n        class=\"quick-action-btn distribution-btn\"\n        fill=\"solid\"\n        color=\"secondary\"\n        size=\"small\"\n        [disabled]=\"!hasPermission('app-pbw-distribution-add')\"\n        [routerLink]=\"['/plw-distribution-create', womanDetailData.id]\">\n        <ion-icon [name]=\"icons.CUBE\" slot=\"start\"></ion-icon>\n        Distribution\n      </ion-button>\n      <ion-button\n        class=\"quick-action-btn pregnancy-history-btn\"\n        fill=\"solid\"\n        color=\"warning\"\n        size=\"small\"\n        [routerLink]=\"['/pregnancy-history-create', womanDetailData.id]\">\n        <ion-icon [name]=\"icons.CALENDAR\" slot=\"start\"></ion-icon>\n        Pregnancy History\n      </ion-button>\n    </div>\n\n    <!-- Transfer History Section -->\n    <div class=\"card-container\" *ngIf=\"hasPermission('app-pbw-view-transfer-card-section') && womanDetailData?.transfer_outs && womanDetailData.transfer_outs.length > 0\">\n      <ion-card>\n        <div class=\"section-header collapsible-header\" (click)=\"toggleTransferHistory()\">\n          <h2 class=\"section-title\">\n            <ion-icon [name]=\"icons.SWAP_HORIZONTAL\" color=\"primary\"></ion-icon>\n            Transfer History ({{ womanDetailData.transfer_outs.length }})\n          </h2>\n          <ion-icon [name]=\"isTransferHistoryCollapsed  ? icons.CHEVRON_DOWN : icons.CHEVRON_UP\" class=\"collapse-icon\"></ion-icon>\n        </div>\n\n        <ion-card-content *ngIf=\"!isTransferHistoryCollapsed\">\n          <div class=\"table-container\">\n            <table class=\"measurements-table\">\n              <thead>\n                <tr>\n                  <th>Transfer Date</th>\n                  <th>From INF</th>\n                  <th>To INF</th>\n                  <th>Status</th>\n                  <th>Comment</th>\n                  <th>Action</th>\n                </tr>\n              </thead>\n              <tbody>\n                <tr *ngFor=\"let transfer of womanDetailData.transfer_outs\">\n                  <td class=\"date-cell\">{{ transfer.created_at | date: 'dd MMM yyyy' }}</td>\n                  <td>{{ transfer.transfer_out_from?.title || '-' }}</td>\n                  <td>{{ transfer.transfer_in_to?.title || '-' }}</td>\n                  <td>\n                    <ion-badge [color]=\"getTransferStatusColor(transfer.status)\">\n                      {{ transfer.status }}\n                    </ion-badge>\n                  </td>\n                  <td>{{ transfer.comment || '-' }}</td>\n                  <td>\n                    <ion-button\n                      *ngIf=\"transfer.status === 'Pending' && transfer.sync_status !== 'synced'\"\n                      fill=\"clear\"\n                      size=\"small\"\n                      color=\"danger\"\n                      (click)=\"deleteTransfer(transfer.id)\">\n                      <ion-icon [name]=\"icons.DELETE\" slot=\"icon-only\"></ion-icon>\n                    </ion-button>\n                  </td>\n                </tr>\n              </tbody>\n            </table>\n          </div>\n        </ion-card-content>\n      </ion-card>\n    </div>\n\n    <!-- Children Section -->\n    <div class=\"card-container\" *ngIf=\"hasPermission('app-pbw-child-information') && ((womanDetailData?.my_child && womanDetailData.my_child.length > 0) || (womanDetailData?.childrens && womanDetailData.childrens.length > 0))\">\n      <ion-card>\n        <div class=\"section-header collapsible-header\" (click)=\"toggleChildrenInfo()\">\n          <h2 class=\"section-title\">\n            <ion-icon [name]=\"icons.PEOPLE\" color=\"primary\"></ion-icon>\n            Children Information ({{ (womanDetailData.my_child || womanDetailData.childrens)?.length }})\n          </h2>\n          <ion-icon [name]=\"isChildrenInfoCollapsed  ? icons.CHEVRON_DOWN : icons.CHEVRON_UP\" class=\"collapse-icon\"></ion-icon>\n        </div>\n\n        <ion-card-content *ngIf=\"!isChildrenInfoCollapsed\">\n          <div class=\"table-container\">\n            <table class=\"measurements-table\">\n              <thead>\n                <tr>\n                  <th>Name</th>\n                  <th>Gender</th>\n                  <th>Date of Birth (Age)</th>\n                  <th>Progress ID</th>\n                  <th>Verified</th>\n                  <th>Actions</th>\n                </tr>\n              </thead>\n              <tbody>\n                <tr *ngFor=\"let child of (womanDetailData.my_child || womanDetailData.childrens)\">\n                  <td class=\"date-cell\">{{ child.name }}</td>\n                  <td>\n                    <ion-badge [color]=\"child.gender === 'Male' ? 'primary' : 'secondary'\">\n                      {{ child.gender }}\n                    </ion-badge>\n                  </td>\n                  <td>{{ child.date_of_birth | date:'dd MMM yyyy' }} ({{ calculateAgeInMonths(child.date_of_birth) }} mo)</td>\n                  <td>{{ child.progress_id || '-' }}</td>\n                  <td>\n                    <ion-badge [color]=\"child.verified === 1 ? 'success' : 'warning'\">\n                      {{ child.verified === 1 ? 'Yes' : 'No' }}\n                    </ion-badge>\n                  </td>\n                  <td class=\"actions-cell\">\n                    <ion-button fill=\"clear\" size=\"small\" color=\"primary\" [routerLink]=\"'/child-detail/' + child.id\">\n                      <ion-icon [name]=\"icons.EYE\"></ion-icon>\n                    </ion-button>\n                  </td>\n                </tr>\n              </tbody>\n            </table>\n          </div>\n        </ion-card-content>\n      </ion-card>\n    </div>\n\n    <!-- Pregnancy History Section -->\n    <div class=\"card-container\" *ngIf=\"hasPermission('app-pbw-view-pregnancyHistory-card-section')\">\n      <ion-card>\n        <div class=\"section-header collapsible-header\" (click)=\"togglePregnancyHistory()\">\n          <h2 class=\"section-title\">\n            <ion-icon [name]=\"icons.ADD\" color=\"primary\"></ion-icon>\n            Pregnancy History ({{ pregnancyHistories?.length || 0 }})\n          </h2>\n          <ion-icon [name]=\"isPregnancyHistoryCollapsed  ? icons.CHEVRON_DOWN : icons.CHEVRON_UP\" class=\"collapse-icon\"></ion-icon>\n        </div>\n\n        <ion-card-content *ngIf=\"!isPregnancyHistoryCollapsed\">\n          <div *ngIf=\"pregnancyHistories && pregnancyHistories.length > 0; else noPregnancyHistories\">\n            <!-- Pregnancy History Table -->\n            <div class=\"table-container\">\n              <table class=\"measurements-table\">\n                <thead>\n                  <tr>\n                    <th>Pregnancy Start</th>\n                    <th>Expected Delivery</th>\n                    <th>Actual Delivery</th>\n                    <th>Status</th>\n                    <th>Delivery Type</th>\n                    <th>No. of Babies</th>\n                    <th>Actions</th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr *ngFor=\"let history of paginatedPregnancyHistories\">\n                    <td class=\"date-cell\">{{ history?.pregnancy_start_date | date: 'dd MMM yyyy' }}</td>\n                    <td>{{ history?.edd | date: 'dd MMM yyyy' }}</td>\n                    <td>{{ history?.actual_delivery_date ? (history.actual_delivery_date | date: 'dd MMM yyyy') : '-' }}</td>\n                    <td>\n                      <ion-badge [color]=\"getStatusColor(history?.delivery_status)\">\n                        {{ history?.delivery_status || '-' }}\n                      </ion-badge>\n                    </td>\n                    <td>{{ history?.delivery_type || '-' }}</td>\n                    <td>{{ history?.number_of_babies || '-' }}</td>\n                    <td class=\"actions-cell\">\n                      <ion-button fill=\"clear\" size=\"small\" color=\"warning\" [routerLink]=\"['/pregnancy-history-edit', history.id]\">\n                        <ion-icon [name]=\"icons.EDIT\"></ion-icon>\n                      </ion-button>\n                      <ion-button fill=\"clear\" size=\"small\" color=\"danger\" (click)=\"deletePregnancyHistory(history.id)\">\n                        <ion-icon [name]=\"icons.DELETE\"></ion-icon>\n                      </ion-button>\n                    </td>\n                  </tr>\n                </tbody>\n              </table>\n            </div>\n\n            <!-- Pagination Controls -->\n            <div class=\"pagination-container\" *ngIf=\"pregnancyHistoryTotalPages > 1\">\n              <div class=\"pagination-info\">\n                Showing {{ ((pregnancyHistoryCurrentPage - 1) * pregnancyHistoryItemsPerPage) + 1 }} to {{ pregnancyHistoryCurrentPage * pregnancyHistoryItemsPerPage > pregnancyHistories.length ? pregnancyHistories.length : pregnancyHistoryCurrentPage * pregnancyHistoryItemsPerPage }} of {{ pregnancyHistories.length }} records\n              </div>\n              <div class=\"pagination-controls\">\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"pregnancyHistoryPreviousPage()\" [disabled]=\"pregnancyHistoryCurrentPage === 1\">\n                  <ion-icon [name]=\"icons.CHEVRON_BACK\"></ion-icon>\n                  Previous\n                </ion-button>\n\n                <div class=\"page-numbers\">\n                  <ion-button *ngFor=\"let page of [].constructor(pregnancyHistoryTotalPages); let i = index\"\n                              fill=\"clear\"\n                              size=\"small\"\n                              [color]=\"pregnancyHistoryCurrentPage === i + 1 ? 'primary' : 'medium'\"\n                              [class.active-page]=\"pregnancyHistoryCurrentPage === i + 1\"\n                              (click)=\"pregnancyHistoryGoToPage(i + 1)\">\n                    {{ i + 1 }}\n                  </ion-button>\n                </div>\n\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"pregnancyHistoryNextPage()\" [disabled]=\"pregnancyHistoryCurrentPage === pregnancyHistoryTotalPages\">\n                  Next\n                  <ion-icon [name]=\"icons.CHEVRON_FORWARD\"></ion-icon>\n                </ion-button>\n              </div>\n            </div>\n          </div>\n\n          <ng-template #noPregnancyHistories>\n            <div class=\"empty-state\">\n              <ion-icon [name]=\"icons.HEART\" color=\"medium\"></ion-icon>\n              <h3>No Pregnancy History Records</h3>\n              <p>No pregnancy histories have been recorded yet. Click \"Add Pregnancy History\" to create the first record.</p>\n            </div>\n          </ng-template>\n        </ion-card-content>\n      </ion-card>\n    </div>\n\n    <!-- Measurement History Section -->\n    <div class=\"card-container\" *ngIf=\"hasPermission('app-pbw-view-measurement-card-section')\">\n      <ion-card>\n        <div class=\"section-header collapsible-header\" (click)=\"toggleMeasurementHistory()\">\n          <h2 class=\"section-title\">\n            <ion-icon [name]=\"icons.FITNESS\" color=\"primary\"></ion-icon>\n            Measurement Information ({{ measurements?.length || 0 }})\n          </h2>\n          <ion-icon [name]=\"isMeasurementHistoryCollapsed  ? icons.CHEVRON_DOWN : icons.CHEVRON_UP\" class=\"collapse-icon\"></ion-icon>\n        </div>\n\n        <ion-card-content *ngIf=\"!isMeasurementHistoryCollapsed\">\n          <div *ngIf=\"measurements && measurements.length > 0; else noMeasurements\">\n            <!-- Compact Summary -->\n            <ion-grid class=\"compact-summary\">\n              <ion-row>\n                <ion-col size=\"3\">\n                  <div class=\"compact-summary-item\">\n                    <span class=\"compact-label\">Total</span>\n                    <span class=\"compact-value\">{{ measurements.length }}</span>\n                  </div>\n                </ion-col>\n                <ion-col size=\"9\">\n                  <ion-grid class=\"nutrition-breakdown-grid\">\n                    <ion-row>\n                      <ion-col *ngFor=\"let status of getNutritionStatusCounts()\" [size]=\"12 / getNutritionStatusCounts().length\">\n                        <div class=\"compact-summary-item nutrition-status-item\">\n                          <span class=\"compact-label\">{{ status.title }}</span>\n                          <ion-badge [color]=\"NutritionStatusColor[status.id]\" class=\"compact-badge\">\n                            {{ status.count }}\n                          </ion-badge>\n                        </div>\n                      </ion-col>\n                    </ion-row>\n                  </ion-grid>\n                </ion-col>\n              </ion-row>\n            </ion-grid>\n\n            <!-- Measurements Table -->\n            <div class=\"table-container\">\n              <table class=\"measurements-table\">\n                <thead>\n                  <tr>\n                    <th>Date</th>\n                    <th>MUAC (cm)</th>\n                    <th>Weight (kg)</th>\n                    <th>Nutrition Status</th>\n                    <th>Refer From</th>\n                    <th>Actions</th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr *ngFor=\"let measurement of paginatedMeasurements\"\n                      [class.nutrition-danger]=\"measurement?.nutrition_status?.id === 1\"\n                      [class.nutrition-warning]=\"measurement?.nutrition_status?.id === 2\"\n                      [class.nutrition-success]=\"measurement?.nutrition_status?.id === 3\">\n                    <td class=\"date-cell\">{{ measurement?.date | date: 'dd MMM yyyy' }}</td>\n                    <td>{{ measurement?.muac || '-' }}</td>\n                    <td>{{ measurement?.weight || '-' }}</td>\n                    <td>\n                      <ion-badge [color]=\"NutritionStatusColor[measurement?.nutrition_status?.id]\">\n                        {{ measurement?.nutrition_status?.title || '-' }}\n                      </ion-badge>\n                    </td>\n                    <td>{{ measurement?.refer_from?.title || '-' }}</td>\n                    <td class=\"actions-cell\">\n                      <ion-button *ngIf=\"isWithinLastWeek(measurement.date)\"\n                                  fill=\"clear\" size=\"small\" color=\"warning\" [routerLink]=\"['/plw-measurement-edit', measurement.id]\">\n                        <ion-icon [name]=\"icons.EDIT\"></ion-icon>\n                      </ion-button>\n                      <ion-button *ngIf=\"isWithinLastWeek(measurement.date)\"\n                                  fill=\"clear\" size=\"small\" color=\"danger\" (click)=\"deleteMeasurement(measurement.id)\">\n                        <ion-icon [name]=\"icons.DELETE\"></ion-icon>\n                      </ion-button>\n                      <span *ngIf=\"!isWithinLastWeek(measurement.date)\" class=\"disabled-text\">-</span>\n                    </td>\n                  </tr>\n                </tbody>\n              </table>\n            </div>\n\n            <!-- Pagination Controls -->\n            <div class=\"pagination-container\" *ngIf=\"measurementTotalPages > 1\">\n              <div class=\"pagination-info\">\n                Showing {{ ((measurementCurrentPage - 1) * measurementItemsPerPage) + 1 }} to {{ measurementCurrentPage * measurementItemsPerPage > measurements.length ? measurements.length : measurementCurrentPage * measurementItemsPerPage }} of {{ measurements.length }} records\n              </div>\n              <div class=\"pagination-controls\">\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"measurementPreviousPage()\" [disabled]=\"measurementCurrentPage === 1\">\n                  <ion-icon [name]=\"icons.CHEVRON_BACK\"></ion-icon>\n                  Previous\n                </ion-button>\n\n                <div class=\"page-numbers\">\n                  <ion-button *ngFor=\"let page of [].constructor(measurementTotalPages); let i = index\"\n                              fill=\"clear\"\n                              size=\"small\"\n                              [color]=\"measurementCurrentPage === i + 1 ? 'primary' : 'medium'\"\n                              [class.active-page]=\"measurementCurrentPage === i + 1\"\n                              (click)=\"measurementGoToPage(i + 1)\">\n                    {{ i + 1 }}\n                  </ion-button>\n                </div>\n\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"measurementNextPage()\" [disabled]=\"measurementCurrentPage === measurementTotalPages\">\n                  Next\n                  <ion-icon [name]=\"icons.CHEVRON_FORWARD\"></ion-icon>\n                </ion-button>\n              </div>\n            </div>\n          </div>\n\n          <ng-template #noMeasurements>\n            <div class=\"empty-state\">\n              <ion-icon [name]=\"icons.FITNESS\" color=\"medium\"></ion-icon>\n              <h3>No Measurement Records</h3>\n              <p>No measurements have been recorded yet. Click \"New Measurement\" to create the first record.</p>\n            </div>\n          </ng-template>\n        </ion-card-content>\n      </ion-card>\n    </div>\n\n    <!-- Assessment History Section -->\n    <div class=\"card-container\" *ngIf=\"hasPermission('app-pbw-view-assessment-card-section')\">\n      <ion-card>\n        <div class=\"section-header collapsible-header\" (click)=\"toggleAssessmentHistory()\">\n          <h2 class=\"section-title\">\n            <ion-icon [name]=\"icons.DOCUMENT_TEXT\" color=\"primary\"></ion-icon>\n            Intervention/Service Information ({{ surveyResponses?.length || 0 }})\n          </h2>\n          <ion-icon [name]=\"isAssessmentHistoryCollapsed  ? icons.CHEVRON_DOWN : icons.CHEVRON_UP\" class=\"collapse-icon\"></ion-icon>\n        </div>\n\n        <ion-card-content *ngIf=\"!isAssessmentHistoryCollapsed\">\n          <div *ngIf=\"surveyResponses && surveyResponses.length > 0; else noAssessments\">\n            <!-- Compact Summary -->\n            <ion-grid class=\"compact-summary\">\n              <ion-row>\n                <ion-col size=\"3\">\n                  <div class=\"compact-summary-item\">\n                    <span class=\"compact-label\">Total</span>\n                    <span class=\"compact-value\">{{ surveyResponses.length }}</span>\n                  </div>\n                </ion-col>\n                <ion-col size=\"9\">\n                  <ion-grid class=\"nutrition-breakdown-grid\">\n                    <ion-row>\n                      <ion-col *ngFor=\"let assessment of getAssessmentWiseCounts()\" [size]=\"12 / getAssessmentWiseCounts().length\">\n                        <div class=\"compact-summary-item nutrition-status-item\">\n                          <span class=\"compact-label\">{{ assessment.title }}</span>\n                          <ion-badge color=\"primary\" class=\"compact-badge\">\n                            {{ assessment.count }}\n                          </ion-badge>\n                        </div>\n                      </ion-col>\n                    </ion-row>\n                  </ion-grid>\n                </ion-col>\n              </ion-row>\n            </ion-grid>\n\n            <!-- Assessments Table -->\n            <div class=\"table-container\">\n              <table class=\"measurements-table\">\n                <thead>\n                  <tr>\n                    <th>Service Name</th>\n                    <th>Initiated Date</th>\n                    <th>Completed Date</th>\n                    <th>Status</th>\n                    <th>Remarks</th>\n                    <th>Actions</th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr *ngFor=\"let assessment of paginatedAssessments\">\n                    <td>{{ assessment?.survey_form?.title || '-' }}</td>\n                    <td class=\"date-cell\">{{ formatDate(assessment?.created_at) }}</td>\n                    <td class=\"date-cell\">{{ assessment?.finalized_date ? formatDate(assessment?.finalized_date) : '-' }}</td>\n                    <td>\n                      <ion-badge [color]=\"assessment?.is_finalized ? 'success' : 'warning'\">\n                        {{ assessment?.is_finalized ? 'Completed' : 'In Progress' }}\n                      </ion-badge>\n                    </td>\n                    <td>{{ assessment?.remarks || '-' }}</td>\n                    <td class=\"actions-cell\">\n                      <ion-button fill=\"clear\" size=\"small\" color=\"primary\" (click)=\"displayAssessmentForm(assessment?.id)\">\n                        <ion-icon [name]=\"icons.EYE\"></ion-icon>\n                      </ion-button>\n                      <ion-button *ngIf=\"hasProgrammeTag(assessment)\" fill=\"clear\" size=\"small\" color=\"secondary\" (click)=\"displayProgrammeCard(assessment?.id)\">\n                        <ion-icon [name]=\"icons.CARD\"></ion-icon>\n                      </ion-button>\n                    </td>\n                  </tr>\n                </tbody>\n              </table>\n            </div>\n\n            <!-- Pagination Controls -->\n            <div class=\"pagination-container\" *ngIf=\"assessmentTotalPages > 1\">\n              <div class=\"pagination-info\">\n                Showing {{ ((assessmentCurrentPage - 1) * assessmentItemsPerPage) + 1 }} to {{ assessmentCurrentPage * assessmentItemsPerPage > surveyResponses.length ? surveyResponses.length : assessmentCurrentPage * assessmentItemsPerPage }} of {{ surveyResponses.length }} records\n              </div>\n              <div class=\"pagination-controls\">\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"assessmentPreviousPage()\" [disabled]=\"assessmentCurrentPage === 1\">\n                  <ion-icon [name]=\"icons.CHEVRON_BACK\"></ion-icon>\n                  Previous\n                </ion-button>\n\n                <div class=\"page-numbers\">\n                  <ion-button *ngFor=\"let page of [].constructor(assessmentTotalPages); let i = index\"\n                              fill=\"clear\"\n                              size=\"small\"\n                              [color]=\"assessmentCurrentPage === i + 1 ? 'primary' : 'medium'\"\n                              [class.active-page]=\"assessmentCurrentPage === i + 1\"\n                              (click)=\"assessmentGoToPage(i + 1)\">\n                    {{ i + 1 }}\n                  </ion-button>\n                </div>\n\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"assessmentNextPage()\" [disabled]=\"assessmentCurrentPage === assessmentTotalPages\">\n                  Next\n                  <ion-icon [name]=\"icons.CHEVRON_FORWARD\"></ion-icon>\n                </ion-button>\n              </div>\n            </div>\n          </div>\n\n          <ng-template #noAssessments>\n            <div class=\"empty-state\">\n              <ion-icon [name]=\"icons.DOCUMENT_TEXT\" color=\"medium\"></ion-icon>\n              <h3>No Assessment Records</h3>\n              <p>No assessments have been completed yet. Click \"Conduct Assessment\" to create the first record.</p>\n            </div>\n          </ng-template>\n        </ion-card-content>\n      </ion-card>\n    </div>\n\n    <!-- Distribution History Section -->\n    <div class=\"card-container\" *ngIf=\"hasPermission('app-pbw-view-distribution-card-section')\">\n      <ion-card>\n        <div class=\"section-header collapsible-header\" (click)=\"toggleDistributionHistory()\">\n          <h2 class=\"section-title\">\n            <ion-icon [name]=\"icons.CUBE\" color=\"primary\"></ion-icon>\n            Distribution History ({{ distributions?.length || 0 }})\n          </h2>\n          <ion-icon [name]=\"isDistributionHistoryCollapsed  ? icons.CHEVRON_DOWN : icons.CHEVRON_UP\" class=\"collapse-icon\"></ion-icon>\n        </div>\n\n        <ion-card-content *ngIf=\"!isDistributionHistoryCollapsed\">\n          <div *ngIf=\"distributions && distributions.length > 0; else noDistributions\">\n            <!-- Compact Summary -->\n            <ion-grid class=\"compact-summary\">\n              <ion-row>\n                <ion-col size=\"3\">\n                  <div class=\"compact-summary-item\">\n                    <span class=\"compact-label\">Total</span>\n                    <span class=\"compact-value\">{{ distributions.length }}</span>\n                  </div>\n                </ion-col>\n                <ion-col size=\"9\">\n                  <ion-grid class=\"nutrition-breakdown-grid\">\n                    <ion-row>\n                      <ion-col *ngFor=\"let item of getItemWiseDistribution()\" [size]=\"12 / getItemWiseDistribution().length\">\n                        <div class=\"compact-summary-item nutrition-status-item\">\n                          <span class=\"compact-label\">{{ item.name }}</span>\n                          <div class=\"compact-value distribution-value\">\n                            <strong>{{ item.totalQuantity }}</strong>\n                            <span class=\"unit-text\">{{ item.unit }}</span>\n                          </div>\n                        </div>\n                      </ion-col>\n                    </ion-row>\n                  </ion-grid>\n                </ion-col>\n              </ion-row>\n            </ion-grid>\n\n            <!-- Distributions Table -->\n            <div class=\"table-container\">\n              <table class=\"measurements-table\">\n                <thead>\n                  <tr>\n                    <th>Date</th>\n                    <th>Item</th>\n                    <th>Quantity</th>\n                    <th>Unit</th>\n                    <th>Service Name</th>\n                    <th>Comment</th>\n                    <th>Actions</th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr *ngFor=\"let distribution of paginatedDistributions\">\n                    <td class=\"date-cell\">{{ distribution?.date | date: 'dd MMM yyyy' }}</td>\n                    <td>{{ distribution?.supply_item?.title || distribution?.supplyItem?.title || '-' }}</td>\n                    <td>{{ distribution?.quantity || '-' }}</td>\n                    <td>{{ distribution?.supply_item?.unit?.title || distribution?.supplyItem?.unit?.title || '-' }}</td>\n                    <td>{{ distribution?.survey_form?.title || distribution?.surveyForm?.title || '-' }}</td>\n                    <td>{{ distribution?.comment || '-' }}</td>\n                    <td class=\"actions-cell\">\n                      <ion-button *ngIf=\"isToday(distribution?.date) && hasPermission('app-pbw-distribution-delete')\" fill=\"clear\" size=\"small\" color=\"danger\" (click)=\"deleteDistribution(distribution.id)\">\n                        <ion-icon [name]=\"icons.DELETE\"></ion-icon>\n                      </ion-button>\n                      <span *ngIf=\"!isToday(distribution?.date) || !hasPermission('app-pbw-distribution-delete')\">-</span>\n                    </td>\n                  </tr>\n                </tbody>\n              </table>\n            </div>\n\n            <!-- Pagination Controls -->\n            <div class=\"pagination-container\" *ngIf=\"distributionTotalPages > 1\">\n              <div class=\"pagination-info\">\n                Showing {{ ((distributionCurrentPage - 1) * distributionItemsPerPage) + 1 }} to {{ distributionCurrentPage * distributionItemsPerPage > distributions.length ? distributions.length : distributionCurrentPage * distributionItemsPerPage }} of {{ distributions.length }} records\n              </div>\n              <div class=\"pagination-controls\">\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"distributionPreviousPage()\" [disabled]=\"distributionCurrentPage === 1\">\n                  <ion-icon [name]=\"icons.CHEVRON_BACK\"></ion-icon>\n                  Previous\n                </ion-button>\n\n                <div class=\"page-numbers\">\n                  <ion-button *ngFor=\"let page of [].constructor(distributionTotalPages); let i = index\"\n                              fill=\"clear\"\n                              size=\"small\"\n                              [color]=\"distributionCurrentPage === i + 1 ? 'primary' : 'medium'\"\n                              [class.active-page]=\"distributionCurrentPage === i + 1\"\n                              (click)=\"distributionGoToPage(i + 1)\">\n                    {{ i + 1 }}\n                  </ion-button>\n                </div>\n\n                <ion-button fill=\"clear\" size=\"small\" (click)=\"distributionNextPage()\" [disabled]=\"distributionCurrentPage === distributionTotalPages\">\n                  Next\n                  <ion-icon [name]=\"icons.CHEVRON_FORWARD\"></ion-icon>\n                </ion-button>\n              </div>\n            </div>\n          </div>\n\n          <ng-template #noDistributions>\n            <div class=\"empty-state\">\n              <ion-icon [name]=\"icons.CUBE\" color=\"medium\"></ion-icon>\n              <h3>No Distribution Records</h3>\n              <p>No distributions have been recorded yet. Click \"New Distribution\" to create the first record.</p>\n            </div>\n          </ng-template>\n        </ion-card-content>\n      </ion-card>\n    </div>\n\n  </ng-container>\n  <ng-template #skeleton>\n    <app-skeleton></app-skeleton>\n  </ng-template>\n\n\n</ion-content>\n";

/***/ })

}]);
//# sourceMappingURL=src_app_pages_woman-detail_woman-detail_module_ts.js.map