a.gotomaincontain {
    color: rgb(0 0 0 / 0.00);
}

    a.gotomaincontain:focus-visible, a.gotomaincontain:focus, a.gotomaincontain:hover {
        color: #000000;
        border-color: #86b7fe;
        outline: 0;
        box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
    }

.JQellipsis {
    display: -webkit-box;
    -webkit-line-clamp: 2; /* 顯示行數，可自行設定 */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.news-list li {
    display: flex;
    align-items: center;
    gap: 0.5rem; /* 元素間距 */
    flex-wrap: nowrap; /* 防止換行 */
}

    .news-list li span.label-date,
    .news-list li span.label-danger {
        flex-shrink: 0; /* 不要壓縮日期與單位 */
    }

    .news-list li a {
        flex: 1; /* 占滿剩餘空間 */
        min-width: 0; /* 必須設定，否則 flex 子項目不會啟動縮減 */
    }

        .news-list li a .JQellipsis {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            display: block;
        }

.map-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.map-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

    .map-overlay a polygon {
        stroke: #000000;
        fill: rgb(255 255 255 / 0.00);
    }

    .map-overlay a:focus polygon {
        stroke: #000000;
        fill: #8484846b;
    }

    .map-overlay a:hover polygon {
        stroke: #000000;
        fill: #8484846b;
    }

    .map-overlay a.Select polygon {
        stroke: yellow;
        stroke-width: 3px;
        fill: rgb(255 255 0 / 30%);
        filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 1));
    }

    .map-overlay a.Select:hover polygon {
        stroke: yellow;
        fill: rgb(255 255 0 / 70%);
    }

    .map-overlay a.empty polygon {
        stroke: black;
        fill: #00000000;
        stroke-width: 1;
        filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 1));
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .map-overlay a.empty:focus polygon {
        stroke: #ffeb00;
        fill: rgb(255 235 0 / 50%);
    }

    .map-overlay a.empty:hover polygon {
        stroke: #9d0000;
        fill: rgb(157 0 0 / 50%);
    }

    .map-overlay a:focus text {
        fill: #ffffff;
        font-weight: bold;
    }

/*    .map-overlay a text {
        fill: rgb(0 0 0 / 0.00);
    }*/

.map-wrapper a.MapArea polygon {
    stroke: #ff0000;
    fill: rgb(255 0 0 / 5%);
    stroke-width: 3;
    filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 1));
    cursor: pointer;
    transition: all 0.2s ease;
}

.map-wrapper a.MapArea:hover polygon, .map-wrapper a.MapArea:focus polygon {
    fill: rgb(255 0 0 / 20%);
}

.gender-female {
    color: #b60d0d;
}

.gender-male {
    color: blue;
}

.ck-content {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

    .ck-content p {
        line-height: 40px;
    }

    /* 表格外觀統一 */
    .ck-content table {
        width: 100%;
        border-collapse: collapse;
        margin: 1.5rem 0;
        border: 1px solid #ccc;
        background-color: #fafafa; /* 整體表格底色 */
    }

    /* 儲存格邊線與間距 */
    .ck-content th,
    .ck-content td {
        border: 1px solid #ddd;
        padding: 0.75rem;
        text-align: left;
    }

    /* 表頭背景與字體 */
    .ck-content th {
        background-color: #f0f4f8; /* 淺灰藍底 */
        font-weight: 600;
        color: #333;
    }

    /* 偶數列著色（條紋表格效果） */
    .ck-content tr:nth-child(even) {
        background-color: #f9f9f9;
    }

    /* 滑鼠懸停高亮 */
    .ck-content tr:hover {
        background-color: #eef6ff;
    }

    /* 若 CKEditor 產生 figure 包 table，則清除間距 */
    .ck-content figure.table {
        margin: 1rem auto;
        display: table;
    }

@media screen and (max-width: 600px) {
    td[data-label] {
        text-align: right !important;
        font-size: inherit;
    }

    .ck-content img, svg {
        width: 100%;
        height: auto;
        margin-bottom: 10px;
    }
}

.carousel-control-next:focus, .carousel-control-next:hover, .carousel-control-prev:focus, .carousel-control-prev:hover {
    background-color: #00000036;
}

.bg-head {
    background-color: #d1e7dd !important
}

.bg-LargeCoffin {
    background-color: #ffe4b7 !important
}

/* 1) 全域變數（建議放在 :root）*/
:root {
    --gray-base: white;
    --gray-dark: #d1d1d1; /* 可微調 */
    --gray-light: #dcdcdc; /* 可微調 */
    --gray-red: #ffe4e4;
    --red: #a73434;
}

/* 2) 線性：由上到下（簡潔）*/
.bg-inUse {
    background-color: var(--gray-light) !important; /* 回退色 */
    background-image: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
}

.bg-empty {
    background-color: var(--gray-dark) !important; /* 回退色 */
}

.bg-TimeSlot {
    /*background-color: var(--gray-red) !important;*/ /* 回退色 */
    /*background-image: linear-gradient(to bottom, #ffedef 0%, #ffc0c0 100%);*/
    background-color: #ffedef !important;
}

.stroke {
    position: relative;
    z-index: 10;
    letter-spacing: 3px;
    font-weight: bold;
    color: var(--red); /* 回退色 */
}

    .stroke::before {
        position: absolute;
        z-index: -1;
        -webkit-text-stroke: 2px #ffffff;
        content: attr(data-stroke);
        text-shadow: 2px 2px 7px #0202029a;
    }

.scrolled .header {
    box-shadow: 0px 0px 30px rgb(159 159 159) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: rgb(33 150 243 / 7%) !important;
}

.position-relative {
    position: relative;
}

.loading-overlay-local {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
}