    :root {
      --bg-page:       #f4f3ef;
      --bg-card:       #ffffff;
      --bg-muted:      #f1efe8;
      --text-primary:  #1a1a18;
      --text-secondary:#5f5e5a;
      --text-hint:     #888780;
      --border:        rgba(0,0,0,0.10);
      --border-md:     rgba(0,0,0,0.18);
      --radius-md:     8px;
      --radius-lg:     14px;
      --green:         #1D9E75;
      --green-bg:      #E1F5EE;
      --green-dk:      #0F6E56;
      --teal-bg:       #E1F5EE;
      --amber:         #BA7517;
      --amber-bg:      #FAEEDA;
      --amber-dk:      #854F0B;
      --red:           #E24B4A;
      --red-bg:        #FCEBEB;
      --blue:          #185FA5;
      --blue-bg:       #E6F1FB;
      --blue-dk:       #0C447C;
      --purple:        #534AB7;
      --purple-bg:     #EEEDFE;
      --purple-dk:     #3C3489;
      --coral:         #D85A30;
      --coral-bg:      #FAECE7;
      --coral-dk:      #993C1D;
      --trend-up:      var(--green);
      --trend-down:    var(--red);
      --trend-good:     var(--green);
        --trend-good-bg:     var(--green-bg);
      --trend-bad:      var(--red);
        --trend-bad-bg:      var(--red-bg);
        --trend-info:    var(--text-hint);
        --trend-info-bg:    var(--bg-muted);
      --trend-warning:  var(--amber);

    }


:root{
    --recovery-trend-color: rgba(83,74,183,1); /*var(--purple); */
    --recovery-color-low: rgba(83, 74,183, 0.2);
    --recovery-color-medium: rgba(83, 74,183, 0.4);
    --recovery-color-high: rgba(83, 74,183, 0.6);
    --recovery-color-veryhigh: rgba(83, 74,183, 0.8);
    --recovery-trend-bg: var(--purple-bg);
    --recovery-trend-dk: var(--purple-dk);
    --calendar-event-color: #185FA5;
    --calendar-event-bg: #E6F1FB;
    --calendar-event-dk: #0C447C;
    --activity-color: #F5A623;
    --activity-color-bg: #FEF3E2;
    --activity-trend-dk: #B8750F;
    --heartrate-color: red;
    --heartrate-bg: lightcoral;
    --heartrate-dk: darkred;
    --stress-color: rgb(255, 100, 0); /*purple;*/
    --stress-color-low: rgba(0, 0, 255, 0.5); /*rgba(128, 0, 128, 0.2);*/
    --stress-color-medium: rgba(0, 128, 0, 0.5); /* rgba(128, 0, 128, 0.4); */
    --stress-color-high: rgba(255, 255, 0, 0.5); /*rgba(128, 0, 128, 0.6);*/
    --stress-color-veryhigh: rgba(255, 165, 0, 0.5); /*rgba(128, 0, 128, 0.8);*/
    --bloodsugar-color: blue;
    --bloodsugar-color-low: rgba(0, 0, 255, 0.4);
    --bloodsugar-color-medium: rgba(0, 0, 255, 0.6);
    --bloodsugar-color-high: rgba(0, 0, 255, 0.9);
    --bloodpressure-dk: darkblue;
    --steps_color: green;
    --steps_bg: lightgreen;
    --steps_dk: darkgreen;
    --calories_color: orange;
    --calories_bg: lightgoldenrodyellow;
}


.navmenu ul li.dropdown-right ul {
    right: 0;
    left: auto;
}

.icon_png{
  max-height: 20px;
}

.alert_message{
  color: red;
}

.login{
  display: flex;
  justify-content: center;  /* horizontal */
  align-items: center;      /* vertical */
  height: auto;
  margin-bottom: auto;
  margin-top: auto;
  overflow-y: auto;
}

.signup {
  display: flex;
  justify-content: center; /* horizontal */
  align-items: center; /* vertical */
  height: auto;
  margin-bottom: 0;
  margin-top: 0;
  overflow-y: auto;
}

.password_reset {
  display: flex;
  justify-content: center; /* horizontal */
  align-items: center; /* vertical */
  height: auto;
  margin-bottom: auto;
  margin-top: auto;
    overflow-y: auto;
}

.edit_profile {
  display: flex;
  justify-content: center; /* horizontal */
  align-items: center; /* vertical */
  height: auto;
  margin-bottom: 0;
  margin-top: 0;
  overflow-y: auto;
}

.password_change {
  display: flex;
  justify-content: center; /* horizontal */
  align-items: center; /* vertical */
  height: auto;
  margin-bottom: 0;
  margin-top: 0;
  overflow-y: auto;
}

.verification {
  display: flex;
  justify-content: center; /* horizontal */
  align-items: center; /* vertical */
  height: auto;
  margin-bottom: 0;
  margin-top: 0;
    overflow-y: auto;
}

/*.center-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}*/

.contact .btn-contact {
  background: var(--accent-color);
  color: var(--contrast-color);
  border: 0;
  padding: 10px 30px;
  transition: 0.4s;
  border-radius: 4px;
}

.contact .btn-contact:hover {
  background: color-mix(in srgb, var(--accent-color), transparent 20%);
}

.contact .item-box i {
  font-size: 44px;
  line-height: 44px;
  color: var(--accent-color);
  margin-right: 15px;
}

.contact .item-box h4 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 10px 0;
}

.newsletter {
  background-color: color-mix(in srgb, var(--accent-color), transparent 97%);
  border-top: 1px solid color-mix(in srgb, var(--accent-color), transparent 85%);
  border-bottom: 1px solid color-mix(in srgb, var(--accent-color), transparent 85%);
  padding: 50px 0;
}

.newsletter .btn-newsletter {
  background: var(--accent-color);
  color: var(--contrast-color);
  border: 0;
  padding: 10px 30px;
  transition: 0.4s;
  border-radius: 4px;
}

.newsletter .btn-newsletter:hover {
  background: color-mix(in srgb, var(--accent-color), transparent 20%);
}

.mission .icon-box {
  display: flex;
}

.mission .icon-box h4 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 10px 0;
}

.mission .icon-box i {
  font-size: 44px;
  line-height: 44px;
  color: var(--accent-color);
  margin-right: 15px;
}

.mission .icon-box p {
  font-size: 15px;
  color: color-mix(in srgb, var(--default-color), transparent 30%);
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# flip cards
--------------------------------------------------------------*/

.any h4 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 10px 0;
}

.any i {
  font-size: 44px;
  line-height: 44px;
  color: var(--accent-color);
  margin-bottom: 5px;
}

.any .card-flip p {
  font-size: 15px;
  color: color-mix(in srgb, var(--default-color), transparent 30%);
  margin-bottom: 0;
}


.any .card-container {
  perspective: 1000px;
  width: 300px;
  height: 200px;
  margin: auto;
  padding: 3px;
}

.any .card-flip {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.6s;
}

.any .card-container:hover .card-flip {
  transform: rotateY(180deg);
}

.any .card {
  width: 100%;
  height: 100%;
  position: absolute;
  backface-visibility: hidden;
  border-radius: 0.5rem;
  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.1);
}

.any .card.back {
  transform: rotateY(180deg);
}

/*--------------------------------------------------------------
# ESG Section
--------------------------------------------------------------*/
.esg .esg-container .esg-item {
  position: relative;
  padding: 20px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--default-color), transparent 85%);
  overflow: hidden;
}

.esg .esg-container .esg-item:last-child {
  margin-bottom: 0;
}

.esg .esg-container .esg-item h3 {
  font-weight: 600;
  font-size: 16px;
  line-height: 24px;
  margin: 0 30px 0 0;
  transition: 0.3s;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.esg .esg-container .esg-item h3 .num {
  color: var(--accent-color);
  padding-right: 5px;
}

.esg .esg-container .esg-item h3:hover {
  color: var(--accent-color);
}

.esg .esg-container .esg-item .esg-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: 0.3s ease-in-out;
  color: color-mix(in srgb, var(--default-color), transparent 50%);
  visibility: hidden;
  opacity: 0;
  font-size: 14px;
  font-weight: 400;
}

.esg .esg-container .esg-item .esg-content p {
  margin-bottom: 0;
  overflow: hidden;
}

.esg .esg-container .esg-item .esg-toggle {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 16px;
  line-height: 0;
  transition: 0.3s;
  cursor: pointer;
}

.esg .esg-container .esg-item .esg-toggle:hover {
  color: var(--accent-color);
}

.esg .esg-container .esg-active h3 {
  color: var(--accent-color);
}

.esg .esg-container .esg-active .esg-content {
  grid-template-rows: 1fr;
  visibility: visible;
  opacity: 1;
  padding-top: 10px;
}

.esg .esg-container .esg-active .esg-toggle {
  transform: rotate(90deg);
  color: var(--accent-color);
}


/* */

/*--------------------------------------------------------------
# Recommendation modal
--------------------------------------------------------------*/
.modal .rec-item {
  position: relative;
  padding: 20px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--default-color), transparent 85%);
  overflow: hidden;
}

.modal .rec-item:last-child {
  margin-bottom: 0;
}

.modal .rec-item h3 {
  font-weight: 600;
  font-size: 16px;
  line-height: 24px;
  margin: 0 30px 0 0;
  transition: 0.3s;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.modal .rec-item h3 .num {
  color: var(--accent-color);
  padding-right: 5px;
}

.modal .rec-item h3:hover {
  color: var(--accent-color);
}

.modal .rec-item .rec-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: 0.3s ease-in-out;
  color: color-mix(in srgb, var(--default-color), transparent 50%);
  visibility: hidden;
  opacity: 0;
  font-size: 14px;
  font-weight: 400;
}

.modal .rec-item .rec-content p {
  margin-bottom: 0;
  overflow: hidden;
}

.modal .rec-item .rec-toggle {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 16px;
  line-height: 0;
  transition: 0.3s;
  cursor: pointer;
}

.modal .rec-item .rec-toggle:hover {
  color: var(--accent-color);
}

.modal .rec-active h3 {
  color: var(--accent-color);
}

.modal .rec-active .rec-content {
  grid-template-rows: 1fr;
  visibility: visible;
  opacity: 1;
  padding-top: 10px;
}

.modal .rec-active .rec-toggle {
  transform: rotate(90deg);
  color: var(--accent-color);
}

/* ToastUI chart */

.tui-chart-tooltip {
  position: absolute !important;
  z-index: 1000 !important;
  pointer-events: none;
  background: white;
  border: 1px solid #ccc;
  padding: 8px;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.chart, #stepsChart, #bloodsugarChart,
#hrHrvChart, #caloryChart, #spo2Chart,
#recoveryChart, #sleepChart, #weightChart {
  position: relative;     /* needed for absolute tooltip positioning */
  height: 300px;          /* fixed height, avoid auto */
  overflow: visible;      /* allow tooltip to go outside */
}

.chart-body {
  position: relative;
  overflow: visible;
}

.biosensor-input{
  background-color: var(--surface-color);
  height: 100%;
  padding: 60px 30px;
  text-align: center;
  transition: 0.3s;
  border-radius: 5px;
}

.biosensor-input:hover{
    transform: scale(0.9);
    border-radius: 10px;
    background: rgba(13, 202, 240, 0.1);
}

.biosensor-input .icon{
  width: 100%;
    max-width: 100px;
    height: auto;
}
/* Service */

.service .icon-box {
  display: flex;
}

.service .icon-box h4 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 10px 0;
}

.service .icon-box i {
  font-size: 44px;
  line-height: 44px;
  color: var(--accent-color);
  margin-right: 15px;
}

.service .icon-box p {
  font-size: 15px;
  color: color-mix(in srgb, var(--default-color), transparent 30%);
  margin-bottom: 0;
}

.service .icon-box .icon-orange{
  color: #fd7e14;
}

.service .icon-box .icon-cyan{
  color: #0dcaf0;
}

.service .icon-box .icon-teal{
  color: #20c997;
}

.service .icon-box .icon-red{
  color: #df1529;
}

.service .icon-box .icon-indigo{
  color: #6610f2;
}

.service .icon-box .icon-pink{
  color: #f3268c;
}

.service-heading-img{
  max-height: 300px;
  width: 100%;
  margin: auto;
  /*object-fit: cover;*/
}

/* recovery */
.recovery{
    color: var(--text-secondary);
}
.recovery .trend-up { color: var(--trend-up); }
.recovery .trend-down { color: var(--trend-down); }
.recovery .trend-good { color: var(--trend-good); }
.recovery .trend-bad { color: var(--trend-bad); }
.recovery .trend-warning { color: var(--trend-warning); }

.recovery .icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

.recovery .card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: large;
    color: var(--heading-color);
  font-family: var(--heading-font);
}

.recovery .card-sub-title {
      font-size: 12px;
      color: var(--text-secondary);
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items: center;
    margin-top: 16px;
    }

.recovery .multi-val {
  display: flex;
  gap: 20px;
  align-items: flex-end;
  flex-wrap: wrap;
    margin-bottom: 10px;
    text-align: center;
}

.recovery .multi-val-item {
  display: flex;
  flex-direction: column;
}

.recovery .multi-val-num {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.1;
    }

.recovery .multi-val-num .unit {
    font-size: 12px;
    font-weight: 400;
    margin-left: 8px;
    color: var(--text-secondary);
    }

.recovery .multi-val-lbl {
    font-size: 10px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    }

/* activity */

.recovery .activity-list { display: flex; flex-direction: column; gap: 7px; }
.recovery .activity-item {
      display: flex;
      align-items: center;
      gap: 9px;
      font-size: 13px;
    }

.recovery .activity-icon { font-size: 12px; color: var(--text-hint); width: 16px; text-align: center; }
.recovery .activity-dur { margin-left: auto; font-size: 11px; color: var(--text-secondary); }

.recovery .recommendations{

    font-weight: normal;
    font-size: small;
}

#recoverytrendChart {
    max-height: 300px;
    width: 100%;
}

#recoveryChart {
    max-height: 300px;
    width: 100%;
}

#teamrecoverydistributionChart {
    max-height: 250px;
    width: 100%;
}

#teamrecoverytrendChart {
    max-height: 250px;
    width: 100%;
}

#teamrecoveryheatmapChart{
    max-height: 300px;
    width: 100%;
}

#teameventChart{
    max-height: 300px;
    width: 100%;
}

/* Events */
.events p{
    font-size: small;
}

/* appointment */
.recovery .appointment-list { display: flex; flex-direction: column; gap: 7px; }
.recovery .appointment-list .appointment-item {
      display: flex;
      align-items: center;
      gap: 9px;
      font-size: 13px;
    }

.recovery .appointment-list .appointment-dur { margin-left: auto; font-size: 11px; color: var(--text-secondary); }

/* team */

:root{
    --critical-color: red;
    --critical-bg: lightcoral;
    --critical-dk: darkred;
    --warning-color: orange;
    --warning-bg: lightgoldenrodyellow;
    --warning-dk: darkorange;
    --good-color: green;
    --good-bg: lightgreen;
    --good-dk: darkgreen;
    --info-color: blue;
    --info-bg: lightblue;
    --info-dk: darkblue;
    --no-data-color: gray;
    --no-data-bg: lightgray;
    --no-data-dk: darkgray;
}

.team{
    color: var(--text-secondary);}

.team .trend-up { color: var(--trend-up); }
.team .trend-down { color: var(--trend-down); }
.team .trend-good { background: var(--trend-good-bg); color: var(--trend-good); padding: 2px 8px; border-radius: 4px;}
.team .trend-bad { background: var(--trend-bad-bg); color: var(--trend-bad); padding: 2px 8px; border-radius: 4px;}
.team .trend-info { background: var(--trend-info-bg); color: var(--trend-info); padding: 2px 8px; border-radius: 4px;}

.team .trend-warning { color: var(--trend-warning); }


.team .icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

.team .card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: large;
    color: var(--heading-color);
  font-family: var(--heading-font);
}

.team .card-sub-title {
      font-size: 12px;
      color: var(--text-secondary);
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items: center;
    margin-top: 16px;
    }

.team .multi-val {
  display: flex;
  gap: 20px;
  align-items: flex-end;
  flex-wrap: wrap;
    margin-bottom: 10px;
    text-align: center;
}

.recovery .multi-val-item {
  display: flex;
  flex-direction: column;
}

.team .multi-val-num {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.1;
    }

.team .multi-val-num .unit {
    font-size: 12px;
    font-weight: 400;
    margin-left: 8px;
    color: var(--text-secondary);
    }

.team .multi-val-lbl {
    font-size: 10px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    }