/* simple template */
main {
  background-position: left top;
  padding: 2.75rem 0;
}
main.service {
    background-image: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.5) 57.01%
      ),
      linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
      url('../image/service-bg.jpg');
  }
main.platform {
    background-image: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.5) 57.01%
      ),
      linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
      url('../image/platform-bg.jpg');
  }
@media (min-width: 768px) {
main {
    background-position: center top
}
  }
@media (min-width: 1024px) {
  .page-heading {
    position: relative;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: center;
  }
}
.page-heading p.copyright {
  position: absolute;
  bottom: 0px;
  display: none;
}
@media (min-width: 1024px) {
  .page-heading p.copyright {
    display: block;
  }
}
footer.copyright {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  width: 100%;
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@media (min-width: 1024px) {
  footer.copyright {
    display: none;
  }
  .portal-header {
    display: none;
  }
}
.portal-header .img-box {
  position: relative;
    margin-right: 1rem;
}
.portal-header .img-box:after {
      content: '';
      position: absolute;
      right: -1rem;
      top: 0;
      width: 1px;
      height: 100%;
      background: #fff;
    }
.logo-group {
  margin-bottom: 1rem;
  display: none;
  gap: 1.5rem;
  padding-top: 10px;
  padding-bottom: 10px;
}
@media (min-width: 1024px) {
  .logo-group {
    display: flex;
    margin-top: -1rem; /* 往上移動 */
  }
}
.login-pannel {
  max-height: 95vh !important;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .login-pannel {
    max-height: 100vh !important;
    min-height: 100%; /* 保持垂直居中，但允许内容超出时扩展 */
    height: auto !important; /* 覆盖 portal.css 中的 height: 100% */
  }
}

/* 控制表單內容區域的高度，讓兩行錯誤訊息不顯示滾動條 */
/* .login-pannel 的 padding: 上下各 2.5rem = 5rem，加上標題和按鈕空間約 2rem */
.login-pannel .form-main {
  max-height: calc(95vh - 4rem) !important; /* 95vh - padding上下(5rem) - 標題和按鈕空間(減少) */
}
@media (min-width: 1024px) {
  .login-pannel .form-main {
    max-height: calc(100vh - 4rem) !important; /* 桌面端：100vh - padding和固定元素空間 */
  }
}

.site-link {
  position: relative;
  padding-right: 1.5rem;
}
.site-link::after {
    content: '';
    width: 1px;
    height: 100%;
    background: #fff;
    position: absolute;
    right: 0;
    top: 0;
  }

/* 登入錯誤訊息樣式 */
.status01 {
  color: #FF0000;
  font-size: 1rem;
  line-height: 1.25rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

/* 修復英文版標題跑版問題 */
.page-heading h1 {
  overflow-wrap: break-word;
  word-wrap: break-word;
  max-width: 100%;
  /* 確保標題不會超出容器，允許換行 */
}

@media (min-width: 1024px) {
  .page-heading h1 {
    max-width: 559px; /* 與 .page-heading 的寬度一致 */
    line-height: 1.3; /* 多行文字時的行高 */
  }
}

@media (min-width: 1280px) {
  .page-heading h1 {
    max-width: 559px; /* 確保不超過容器寬度 */
  }
}

/* 登入模態框樣式已由 portal.css 提供，無需在此定義 */
/* 以下為其他通用樣式（從 richmenu.css 遷移） */

.text-gray {
  font-family: Arial, Helvetica, sans-serif, Microsoft JhengHei;
  color: #414566;
}

.clearfix::after {
  content: "";
  clear: both;
  display: table;
}

/* 按鈕樣式（從 richmenu.css 遷移） */
.cancelbtn {
  width: 100px;
  display: inline-block;
  font-weight: 400;
  font-size: 16px;
  padding: 4px 10px;
  border: none;
  cursor: pointer;
  border-radius: 30px;
  margin: 10px 5px;
  background: #f8f8f8;
  color: rgb(54, 54, 54);
  border: 1px solid #b8b8b8;
}

.cancelbtn:hover {
  background-color: #ff6801;
  color: #fff;
  border: 1px solid #ff6801;
}

.okbtn {
  width: 100px;
  display: inline-block;
  font-weight: 400;
  font-size: 16px;
  padding: 4px 10px;
  border: none;
  cursor: pointer;
  border-radius: 30px;
  margin: 20px 5px;
  color: #fff;
  background-color: #00afa1;
}

.okbtn:hover {
  background-color: #01857a;
  color: #fff;
}

@media screen and (max-width: 300px) {
  .cancelbtn, .okbtn {
    width: 100%;
  }
}

/* ====== 忘記密碼頁面樣式 ====== */
/* 忘記密碼頁面背景樣式 */
body.forget-pwd-page {
  margin: 0;
  padding: 0;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background-image: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.5) 57.01%
  ),
  linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
  url('../image/platform-bg.jpg');
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 768px) {
  body.forget-pwd-page {
    background-position: center top;
  }
}
/* 讓整個頁面看起來像modal，添加背景模糊效果 */
.forget-pwd-container {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(17.5px);
  backdrop-filter: blur(17.5px);
  background-color: rgba(0, 0, 0, 0.45);
}

body.forget-pwd-page .modal {
  position: relative;
  background-color: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* 確保 form 標籤不會影響布局 */
body.forget-pwd-page .text-modal .modal-content form {
  margin: 0;
  padding: 0;
  display: block;
  width: 100%;
}

/* 確保 input-group 之間有正確的間距（因為 form 標籤的存在，需要特別處理） */
body.forget-pwd-page .text-modal .modal-content form .input-group:not(:first-child) {
  margin-top: 1.25rem; /* 與 portal.css 中 .text-modal .modal-content > *:not(:last-child) 的預設值一致 */
}
@media (min-width: 768px) {
  body.forget-pwd-page .text-modal .modal-content form .input-group:not(:first-child) {
    margin-top: 1.5rem; /* 桌面端與預設值一致 */
  }
}

/* 自定義 modal-content 與 modal-bottom 之間的間距 */
/* 注意：只應用於重置密碼頁面（ForgetPwd.jsp），不應用於變更密碼頁面（renewPwd.jsp） */
/* 使用 .captcha-input 來區分，因為只有重置密碼頁面有驗證碼輸入 */
/* 注意：.text-modal .modal-main 和 .text-modal .modal-content 的樣式（包括 max-height、overflow、scrollbar、RWD）已在 portal.css 中完整定義，不需要重複 */
body.forget-pwd-page .text-modal .modal-content:has(.captcha-input) {
  margin-bottom: 35px; /* 這裡的數值越大，間距就越寬 */
}

/* 確保錯誤和成功提示 modal 能夠覆蓋在重設密碼輸入框上方，並有背景遮罩 */
body.forget-pwd-page #forgetPwdErrorModal,
body.forget-pwd-page #forgetPwdSuccessModal {
  position: fixed !important;
  z-index: 120 !important;
  /* 恢復背景遮罩效果 */
  background-color: rgb(0 0 0 / 0.45) !important;
  -webkit-backdrop-filter: blur(17.5px) !important;
  backdrop-filter: blur(17.5px) !important;
}

/* 確保變更密碼頁面的錯誤和成功提示 modal 能夠覆蓋在輸入框上方，並有背景遮罩 */
body.forget-pwd-page #renewPwdErrorModal,
body.forget-pwd-page #renewPwdSuccessModal {
  position: fixed !important;
  z-index: 120 !important;
  /* 恢復背景遮罩效果 */
  background-color: rgb(0 0 0 / 0.45) !important;
  -webkit-backdrop-filter: blur(17.5px) !important;
  backdrop-filter: blur(17.5px) !important;
}

/* 注意：以下樣式在 portal.css 中已經有完整定義，可以直接使用：
   - .text-modal .modal-main (包含邊框、背景、padding等)
   - .twm-input.inverse (包含輸入框樣式)
   - .btn-outline (包含 hover 效果)
   - .btn-main (包含 hover 和 active 效果)
   因此不需要在此重複定義 */


/*# sourceMappingURL=portal-mplus.css.map */
