
.backend-page[data-v-23611692] {
  min-height: 100%;
}
.page-header[data-v-23611692] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  gap: 12px;
}
.page-title[data-v-23611692] {
  font-size: 22px;
  font-weight: 600;
  margin: 0;
  white-space: nowrap;
}
.filter-bar[data-v-23611692] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.filter-date[data-v-23611692] {
  padding: 6px 10px;
  border: 1px solid var(--backend-border, #efe7dd);
  border-radius: 8px;
}
.filter-date-sep[data-v-23611692] {
  margin: 0 4px;
  color: #666;
}
.k-button[data-v-23611692] {
  padding: 6px 14px;
  border: 1px solid var(--backend-border, #efe7dd);
  background: #fff;
  border-radius: 8px;
  cursor: pointer;
}
.k-button[data-v-23611692]:hover:not(:disabled) {
  background: #faf6f1;
}
.k-button.k-primary[data-v-23611692] {
  background: var(--backend-primary, #E96D00);
  color: #fff;
  border-color: var(--backend-primary, #E96D00);
}
.k-button.k-primary[data-v-23611692]:hover {
  background: var(--backend-primary-hover, #d66100);
  border-color: var(--backend-primary-hover, #d66100);
}

/* 圖表卡片版型 */
.chart-row[data-v-23611692] {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}
.chart-row-full > .chart-card[data-v-23611692] {
  flex: 1;
}
.chart-row-split > .chart-card[data-v-23611692] {
  flex: 1;
  min-width: 0;
}
.chart-card[data-v-23611692] {
  background: #fff;
  border-radius: var(--backend-card-radius, 14px);
  padding: 16px;
  box-shadow: var(--backend-card-shadow, 0 3px 12px rgba(196,120,50,0.07));
}
.chart-title[data-v-23611692] {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px;
  color: #555;
}

/* chart.js maintainAspectRatio: false 時靠父容器決定大小 */
.chart-canvas[data-v-23611692] {
  height: 300px;
  position: relative;
}
/* 橫條 Top 15 需要更高的容器避免 label 擠（15 條 + 標籤垂直方向占空間） */
.chart-canvas.tall[data-v-23611692] {
  height: 460px;
}

/* 無資料時的 placeholder，高度與 .chart-canvas 對齊避免版面跳動 */
.chart-empty[data-v-23611692] {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #999;
  font-size: 14px;
}

/* 窄螢幕：filter-bar 與圖表並排都改成換行/堆疊 */
@media (max-width: 768px) {
.page-header[data-v-23611692],
  .filter-bar[data-v-23611692] {
    flex-wrap: wrap;
}
.chart-row-split[data-v-23611692] {
    flex-direction: column;
}
}


.gift-description[data-v-c4506af4] {
  font-size: 16px;
  color: #686868;
}
@media (min-width: 1025px) {
.gift-description p[data-v-c4506af4] {
    font-size: 20px;
}
}

html[data-v-12a2b786],
body[data-v-12a2b786] {
    height: 100%;
    margin: 0;
    border: 0;
    font-size: 1rem;
    font-family: "Apple LiGothic Medium", "LiHei Pro Medium", "微軟正黑體", "Microsoft JhengHei", -apple-system, BlinkMacSystemFont, "PingFang TC", "Helvetica Neue", "Microsoft YaHei New", STHeiti Light, sans-serif;
}
.nav[data-v-12a2b786] {
    max-height: 60px;
    border-bottom: #EBEBEB 1px solid;
    background-color: #F4F4F4;
}
.nav .logo[data-v-12a2b786] {
    height: 65px;
}
.nav .title[data-v-12a2b786] {
    display: inline-flex;
    position: relative;
    top: -20px;
    color: #495057;
    font-size: 1.3rem;
    letter-spacing: 0.02em;
}
.nav .title.tl-center[data-v-12a2b786] {
    display: flex;
    justify-content: center;
    top: 0;
}
.main[data-v-12a2b786] {
    min-height: calc(100% - 128px);
}
.footer[data-v-12a2b786] {
    padding: 15px 5px;
    background-color: #F4F4F4;
    color: #707070;
    font-size: 0.9rem;
    text-align: center;
}
.footer .link[data-v-12a2b786] {
    padding-top: 8px;
}
.footer a[data-v-12a2b786] {
    display: inline-block;
    padding-left: 10px;
    color: #707070;
    text-decoration: none;
}
.footer a[data-v-12a2b786]:hover {
    color: #707070;
}
.footer .more[data-v-12a2b786] {
    display: none;
}
.post-card[data-v-12a2b786] {
    position: relative;
    margin: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(10, 28, 45, 0.1);
    transition: 0.3s;
}
.post-card[data-v-12a2b786]:hover {
    box-shadow: 0 6px 40px rgba(10, 28, 45, 0.15);
}
.post-card figure[data-v-12a2b786],
.cont-main figure[data-v-12a2b786] {
    margin: 0;
}
.cont-main .post-cont[data-v-12a2b786] {
    padding: 15px;
}
.post-bn[data-v-12a2b786] {
    width: 100%;
    border-radius: 8px 8px 0 0;
}
.cont-main .post-bn[data-v-12a2b786] {
    border-radius: 0;
}
.info-wrap[data-v-12a2b786] {
    min-height: 10.8em;
    margin: 0;
    padding: 10px;
}
.post-title[data-v-12a2b786] {
    margin: 0;
    color: #495057;
    font-size: 1.2rem;
}
.post-title .category[data-v-12a2b786] {
    display: inline-block;
    margin-right: 5px;
    padding: 2px 8px;
    border-radius: 5px 5px 0 0;
    background-color: #4ABDAC;
    color: #fff;
    font-size: 1rem;
}
.info-wrap .title[data-v-12a2b786] {
    overflow: hidden;
    height: 80px;
    margin-top: 5px;
}
.cont-main .title[data-v-12a2b786] {
    display: block;
    margin-top: 5px;
    margin-bottom: 5px;
    font-size: 1.2rem;
    line-height: 1.35;
}
.post-card .post-footer[data-v-12a2b786] {
    position: absolute;
    bottom: calc(1.25em - 0.5em);
}
.cont-txt[data-v-12a2b786] {
    margin-top: 30px;
}
.post-footer .time[data-v-12a2b786] {
    color: #aaaaaa;
    font-family: Calibri, serif;
}
.post-footer .time[data-v-12a2b786]:after {
    position: relative;
    top: -1px;
    margin-right: 5px;
    margin-left: 8px;
    color: #B8B8B8;
    font-weight: 100;
    content: "|";
}
.post-footer .keyword a[data-v-12a2b786] {
    display: inline-block;
    padding-right: 10px;
    color: #aaaaaa;
    font-size: 0.9rem;
    text-decoration: none;
}
.page[data-v-12a2b786] {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin: 30px auto;
    color: #4ABDAC;
}
.page a .svg-icon[data-v-12a2b786] {
    fill: currentColor;
    transition: fill 120ms ease-in-out;
}
.page a[data-v-12a2b786],
.page .current[data-v-12a2b786] {
    display: block;
    padding: 0 15px;
    color: #4ABDAC;
    font-weight: bold;
    text-decoration: none;
}
.page .current[data-v-12a2b786] {
    color: #707070;
}
.page a[data-v-12a2b786]:hover {
    color: #707070;
}
.pg-cont .txt[data-v-12a2b786] {
    display: inline-block;
    position: relative;
    top: -6px;
}
.disabled[data-v-12a2b786] {
    opacity: 0.3;
    filter: grayscale(50%);
}
.ReturnClick[data-v-12a2b786] {
    pointer-events: none;
}
.act-btn[data-v-12a2b786] {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 15px auto;
    padding: 20px;
    border: 0;
    border-radius: 10px;
    background-color: #E96D00;
    box-sizing: border-box;
    color: #FFFFFF;
    font-weight: bold;
    font-size: 1.2rem;
    text-decoration: none;
}
.bind-form .act-btn[data-v-12a2b786] {
    margin: 15px auto;
}
.bind-form .keyin[data-v-12a2b786] {
    width: 100%;
    margin: 8px auto;
    padding: 20px;
    border: 2px solid #9A9DA0;
    border-radius: 10px;
    background-color: #FFFFFF;
    box-sizing: border-box;
    font-size: 1.2rem;
    text-align: left;
}
.keyin.half[data-v-12a2b786] {
    width: 35%;
}
.bind-form .keyin[data-v-12a2b786]::-moz-placeholder {
    color: #CBCBCB
}
.bind-form .keyin[data-v-12a2b786]:-ms-input-placeholder {
    color: #CBCBCB
}
.bind-form .keyin[data-v-12a2b786]::placeholder {
    color: #CBCBCB
}
.key-ps[data-v-12a2b786] {
    padding: 0 0 10px 22px;
    font-size: 1rem;
}
.bind-form .warn[data-v-12a2b786] {
    display: flex;
    padding: 0 0 10px 48px;
    color: #DD4B39;
    font-weight: bold;
}
.bind-form .warn[data-v-12a2b786]::before {
    position: absolute;
    width: 30px;
    height: 30px;
    margin-left: -30px;
    background-image: url(../img/ico-tip.d19a8479.svg);
    background-repeat: no-repeat;
    background-position: center -3px;
    content: "";
}
.address[data-v-12a2b786] {
    margin-top: 10px;
}
.address .sel-address[data-v-12a2b786]:first-child {
    margin-right: 5px;
}
.sel-address[data-v-12a2b786] {
    padding: 20px 45px 20px 20px;
    border: 2px solid #9A9DA0;
    border-radius: 10px;
    background-color: #FFFFFF;
    background-image: url(../img/ico-select.df2b57b4.svg);
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    -ms-appearance: none;
    color: #495057;
    font-size: 1.2rem;
}
.sel-address.arrow[data-v-12a2b786] {
    background-size: 12%;
    background-repeat: no-repeat;
    background-position: 95% center;
}
@media only screen and (min-width: 768px) {
.nav .hidden-xs[data-v-12a2b786] {
        display: block;
}
.post-card[data-v-12a2b786] {
        display: inline-block;
        width: 48%;
        margin: 10px 5px;
}
.bind-form[data-v-12a2b786] {
        width: 500px;
        margin: 0 auto;
}
}
@media only screen and (min-width: 1025px) {
.header[data-v-12a2b786],
    .main[data-v-12a2b786],
    .footer .info[data-v-12a2b786] {
        width: 1024px;
        margin: 0 auto;
}
.main[data-v-12a2b786] {
        margin: 20px auto;
}
.content-area[data-v-12a2b786] {
        margin: 0 auto;
        padding: 0;
}
.post-footer[data-v-12a2b786] {
        right: 10px;
}
.footer .info[data-v-12a2b786] {
        display: inline-flex;
}
.footer .copyright[data-v-12a2b786] {
        width: 70%;
        text-align: left;
}
.footer .link[data-v-12a2b786] {
        width: 30%;
        text-align: right;
}
.footer .more[data-v-12a2b786] {
        display: inline-block;
}
.footer .link[data-v-12a2b786] {
        padding-top: 0;
}
}

/* ======================================================================
   [FIX] 後台管理介面 - Kendo UI 邊框隱藏 + Scrollbar 修正
   ====================================================================== */

/* 1. 隱藏 Kendo Grid 外層容器的突兀邊框（k-webkit / k-widget） */
.k-widget.k-grid[data-v-12a2b786] {
    border: none;
    box-shadow: none;
}

/* 2. 改用 viewport 單位避免 body 百分比高度導致的 Scrollbar 問題 */
html[data-v-12a2b786] {
    height: 100%;
    overflow-x: hidden;
}
body[data-v-12a2b786] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* 讓 #app 根容器也用 flex 撐滿 */
#app[data-v-12a2b786] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* .main 改為 flex: 1 自動填滿剩餘空間，不再依賴 calc(100% - 128px) */
.main[data-v-12a2b786] {
    flex: 1;
    min-height: 0;
}

/* footer 固定在底部（flex 佈局自動推到底） */
.footer[data-v-12a2b786] {
    flex-shrink: 0;
}

/* $mobile: 430px;
$nb: 1024px;
$desktop: 1366px;
$large: 1440px; */


/* =========================
   Base (Mobile)
========================= */
.calling-system-admin-page[data-v-12a2b786] {
  width: 100%;
  height: 75vh;
}
.title[data-v-12a2b786] {
  font-weight: bold;
}
.calling-system-admin-content[data-v-12a2b786] {
  font-family: "Apple LiGothic Medium", "LiHei Pro Medium", "微軟正黑體", "Microsoft JhengHei", -apple-system, BlinkMacSystemFont, "PingFang TC", "Helvetica Neue", "Microsoft YaHei New", STHeiti Light, sans-serif;
  display: flex;
  flex-direction: column;
  gap: 56px;
  height: 100%;
  align-items: center;
  justify-content: center;
}
.result-msg[data-v-12a2b786] {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 14px;
}
.function-list[data-v-12a2b786] {
  display: flex;
  justify-content: center;
  gap: 20px;
  width: 100%;
  box-sizing: border-box;
  padding: 0 30px;
}
.calling-system-content[data-v-12a2b786] {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  font-family: "Microsoft JhengHei", "微軟正黑體", sans-serif;
  pointer-events: none;
}
.calling-content[data-v-12a2b786] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  width: 80%;
  max-width: 450px;
  aspect-ratio: 1 / 1;

  background: #fff;
  border-radius: 10px;
  gap: 30px;
}
.info-section[data-v-12a2b786] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  width: 100%;
  aspect-ratio: auto;

  text-align: center;
  background: transparent;

  border-radius: var(--el-border-radius-base);
  border: 1px solid var(--el-border-color);;
  background-color: #fff;
}
.info-label[data-v-12a2b786] {
  font-size: 24px;
  font-weight: bold;
  color: #909399;
}
.info-value[data-v-12a2b786] {
  color: #353535;
}
.now-calling[data-v-12a2b786] {
  font-size: 120px;
  line-height: 120px;
}
.waiting-info[data-v-12a2b786] {
  display: none;
  color: #686868;
  font-size: 20px;
  position: relative;
}
.waiting-time-notice[data-v-12a2b786] {
  position: absolute;
  bottom: -50px;
  font-size: 18px;
}
.waiting-queue[data-v-12a2b786] {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
  width: 100%;
}
.waiting-number[data-v-12a2b786], .waiting-time[data-v-12a2b786], .waiting-count[data-v-12a2b786] {
  font-size: 50px;
}
.unit[data-v-12a2b786] {
  font-size: 30px;
}
.game-group[data-v-12a2b786] {
  display: flex;
  justify-content: center;
  gap: 40px;
  width: 100%;
}
.game-btn[data-v-12a2b786] {
  display: flex;
  flex-direction: column;
  align-items: center;

  width: 50%;
  padding: 20px 10px;

  background: #fff;
  border-radius: 10px;
}
.game-content[data-v-12a2b786] {
  width: 80%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  color: #fff;
  font-size: 20px;
}
.info-text[data-v-12a2b786] {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.logo-image[data-v-12a2b786] {
  width: 115px;
  height: 80px;
  margin: auto;
  display: block;
}
.no-show-desktop[data-v-12a2b786] {
  display: block;
}
.final-updated[data-v-12a2b786],
.averange-waiting-time[data-v-12a2b786] {
  color: #686868;
  font-size: 20px;
}


/* =========================
   Tablet & Desktop
========================= */
@media (min-width: 1025px) {
.calling-system-content[data-v-12a2b786] {
    align-items: stretch;
}
.calling-content[data-v-12a2b786] {
    flex-direction: row;
    width: auto;
    max-width: none;
    aspect-ratio: auto;

    background: transparent;
}
.info-section[data-v-12a2b786] {
    width: calc((100% - 120px) / 3);
    max-width: 400px;
    aspect-ratio: 1 / 1;
}
.waiting-info[data-v-12a2b786] {
    display: flex;
}
.waiting-queue[data-v-12a2b786] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: relative;
}
.waiting-queue[data-v-12a2b786]::before {
    content: "．";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-size: 80px;
    font-weight: bold;
    color: #353535;
}
.waiting-queue[data-v-12a2b786]::before {
    top: 0%;
}
.waiting-queue[data-v-12a2b786]::after {
    top: 52%;
}
.waiting-number[data-v-12a2b786], .waiting-time[data-v-12a2b786], .waiting-count[data-v-12a2b786] {
    font-size: clamp(76px, 1vw, 80px);
}
.now-calling[data-v-12a2b786] {
    font-size: clamp(120px, 12vw, 220px);
    line-height: 200px;
}
.game-group[data-v-12a2b786] {
    max-width: 450px;
}
.game-btn[data-v-12a2b786] {
    width: auto;
    padding: 16px 40px;
}
.game-content[data-v-12a2b786] {
    width: auto;
    color: inherit;
    font-size: inherit;
}
.info-text[data-v-12a2b786] {
    flex-direction: row;
    justify-content: end;
    order: -1;
    margin: 0 26px 20px 0px;
}
.logo-image[data-v-12a2b786] {
    margin: 0;
}
.no-show-desktop[data-v-12a2b786] {
    display: none;
}
}
@media (min-width: 1367px) {
.info-section[data-v-12a2b786] {
    width: calc((100% - 150px) / 3);
}
.waiting-number[data-v-12a2b786], .waiting-time[data-v-12a2b786], .waiting-count[data-v-12a2b786] {
    font-size: clamp(88px, 4vw, 96px);
}
.waiting-queue[data-v-12a2b786] {
    gap: 20px;
}
.waiting-queue[data-v-12a2b786]::before {
    top: 3%;
}
.waiting-queue[data-v-12a2b786]::after {
    top: 54%;
}
}
@media (min-width: 1441px) {
.info-section[data-v-12a2b786] {
    width: calc((100% - 200px) / 3);
}
.waiting-number[data-v-12a2b786], .waiting-time[data-v-12a2b786], .waiting-count[data-v-12a2b786] {
    font-size: clamp(88px, 6vw, 96px);
    padding: 0 8px 0 8px;
}
}
@media (min-width: 1900px) {
.info-section[data-v-12a2b786] {
    width: calc((100% - 500px) / 3);
}
.waiting-number[data-v-12a2b786], .waiting-time[data-v-12a2b786], .waiting-count[data-v-12a2b786] {
    font-size: clamp(96px, 8vw, 100px);
}
}

