﻿@charset "utf-8";

/* BUILD: 20260821-environment-final-color-fix */

/* ==================================================
   1. 基本頁面與文字設定
   ================================================== */
.environment-page {
    width: 100%;
    color: #4a4a4a;
    font-size: 16px;
    line-height: 1.8;
}

    .environment-page,
    .environment-page * {
        box-sizing: border-box;
    }

.environment-section + .environment-section {
    margin-top: 30px;
}

.environment-page p {
    margin: 0 0 14px;
    text-align: justify;
    text-indent: 2em;
}

.environment-page ol {
    margin: 2px 0 14px;
    padding-left: 2em;
}

.environment-page li {
    margin-bottom: 6px;
    padding-left: 3px;
}

.environment-section-title {
    margin: 0 0 4px;
    color: #009a66;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.45;
}

.environment-subtitle {
    margin: 5px 0 0;
    color: #4a4a4a;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
}

@media screen and (max-width: 760px) {
    .environment-page {
        font-size: 15px;
        line-height: 1.75;
    }

    .environment-section + .environment-section {
        margin-top: 24px;
    }

    .environment-section-title {
        font-size: 20px;
    }

    .environment-subtitle {
        font-size: 15px;
    }
}

/* ==================================================
   2. 標題與排版共用樣式
   ================================================== */
/* 帶有左側邊框的標題樣式 (修正為較深的藍綠色) */
.environment-section-title-bordered {
    margin: 30px 0 15px;
    padding-left: 14px;
    border-left: 4px solid #009a66;
    color: #009a66;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}

/* 小標題 (修正為較深的藍綠色) */
.environment-subtitle-green {
    color: #009a66;
    font-size: 18px;
    font-weight: 700;
    margin: 25px 0 10px;
}

/* 雙欄 Flex 版面設定 */
.esg-flex-row {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-bottom: 15px;
}

.esg-flex-col {
    flex: 1 1 calc(50% - 15px);
    min-width: 300px;
}

/* ==================================================
   3. 演練實況相片集 (Drill Gallery)
   ================================================== */
.drill-gallery {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.drill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

.drill-item {
    flex: 1 1 calc(50% - 20px);
    max-width: calc(50% - 10px);
    text-align: center;
}

    .drill-item.full-width {
        flex: 1 1 100%;
        max-width: 100%;
    }

.drill-item-3 {
    flex: 1 1 calc(33.333% - 20px);
    max-width: calc(33.333% - 10px);
}

.drill-item img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 20px;
    border: 2px solid #e2f6e2;
    box-shadow: 0 4px 15px rgba(162, 230, 162, 0.45);
    margin-bottom: 12px;
}

.drill-item.full-width img {
    aspect-ratio: 21 / 9;
}

.environment-page p.drill-caption {
    font-size: 15px;
    color: #4a4a4a;
    margin: 0;
    text-align: center !important;
    text-indent: 0 !important;
}

@media screen and (max-width: 760px) {
    .drill-item,
    .drill-item-3 {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

/* ==================================================
   4. ESG 專屬表格
   ================================================== */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    margin-bottom: 20px;
}

.esg-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    text-align: center;
}

    .esg-table th {
        background-color: #e5f2d9;
        color: #333;
        font-weight: bold;
        padding: 12px 10px;
        border: 1px solid #fff;
        white-space: nowrap;
    }

    .esg-table td {
        background-color: #f8fbf6;
        color: #4a4a4a;
        padding: 12px 10px;
        border: 1px solid #fff;
        border-bottom: 1px solid #eaeaea;
    }

        .esg-table td.gov-left {
            background-color: #eaf4e1;
            font-weight: bold;
        }

/* ==================================================
   風險與機會相關表格 專屬顏色 (Institution 頁面)
   ================================================== */
/* 風險表格配色 (偏淺黃綠) */
.table-risk th,
.table-risk td.gov-left {
    background-color: #e2f0d9 !important;
    color: #000;
}

/* 機會表格配色 (偏淺水藍綠) */
.table-opportunity th,
.table-opportunity td.gov-left {
    background-color: #d2eadd !important;
    color: #000;
}

/* 讓機會表格內的底線稍微明顯一點 */
.table-opportunity td {
    border-bottom: 1px solid #d5d5d5;
}

/* ==================================================
   5. 漏氣事故搶修案例專用方塊
   ================================================== */
.case-box {
    position: relative;
    background: #fff;
    border: 2px solid #e2f6e2;
    border-radius: 12px;
    padding: 30px 20px 20px;
    margin: 35px 0 20px;
    box-shadow: 0 4px 15px rgba(162, 230, 162, 0.2);
}

.case-badge {
    position: absolute;
    top: -15px;
    left: 20px;
    background: #fff;
    color: #72af43;
    font-size: 18px;
    font-weight: bold;
    padding: 0 10px;
}

.case-box p {
    margin-bottom: 0;
}

/* ==================================================
   6. 純 HTML/CSS 柱狀統計圖 (Bar Chart)
   ================================================== */
.esg-chart-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 20px 0 40px;
    padding-top: 35px;
}

.esg-bar-chart {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    min-width: 650px;
    height: 280px;
    border-bottom: 1px solid #d5d5d5;
    padding: 0 10px;
    margin-bottom: 40px;
}

.chart-group {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
    position: relative;
    flex: 1;
    height: 100%;
}

.chart-bar {
    width: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    border-radius: 2px 2px 0 0;
    transition: background-color 0.3s ease;
}

.bar-est {
    background-color: #a5e184;
}

.bar-act {
    background-color: #4caf50;
}

.chart-bar:hover {
    filter: brightness(0.9);
}

.chart-val {
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    color: #555;
    white-space: nowrap;
}

.chart-label {
    position: absolute;
    bottom: -32px;
    font-size: 15px;
    font-weight: bold;
    color: #555;
    text-align: center;
    width: 100%;
}

/* 底部圖例 (Legend) */
.esg-chart-legend {
    display: flex;
    justify-content: center;
    gap: 25px;
    margin-top: 10px;
}

.legend-item {
    display: flex;
    align-items: center;
    font-size: 15px;
    font-weight: bold;
    color: #555;
}

.legend-color {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 8px;
    border-radius: 2px;
}

.legend-est {
    background-color: #a5e184;
}

.legend-act {
    background-color: #4caf50;
}

/* ==================================================
   7. 補檢措施時間軸 (純 HTML/CSS 繪製)
   ================================================== */
.esg-timeline-scroll {
    width: 100%;
    overflow-x: auto;
    margin: 30px 0;
}

.esg-timeline-chart {
    position: relative;
    width: 100%;
    min-width: 650px;
    max-width: 800px;
    height: 160px;
    margin: 0 auto;
    font-family: "微軟正黑體", sans-serif;
}

.t-main-arrow {
    position: absolute;
    top: 55px;
    left: 0;
    width: 100%;
    height: 38px;
    background: linear-gradient(to right, #eaf5e1, #72af43 90%);
    clip-path: polygon(15px 50%, 0 20%, calc(100% - 30px) 20%, calc(100% - 30px) 0, 100% 50%, calc(100% - 30px) 100%, calc(100% - 30px) 80%, 0 80%);
}

.t-node {
    position: absolute;
    top: 55px;
    width: 20px;
    height: 38px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateX(-50%);
    z-index: 2;
}

.t-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}

.dot-lightblue {
    background-color: #5b92e5;
}

.dot-yellow {
    background-color: #fdc300;
}

.dot-darkblue {
    background-color: #3f51b5;
}

.dot-red {
    background-color: #e53935;
}

.t-label {
    position: absolute;
    white-space: nowrap;
    font-size: 17px;
    color: #1a4175;
    font-weight: bold;
}

.t-top {
    top: -35px;
}

.t-bottom {
    bottom: -35px;
}

.t-interval {
    position: absolute;
    top: 55px;
    height: 38px;
    line-height: 38px;
    transform: translateX(-50%);
    font-size: 18px;
    color: #1a4175;
    z-index: 2;
    white-space: nowrap;
}

.t-dashed-line {
    position: absolute;
    top: 38px;
    width: 2px;
    height: 55px;
    border-left: 2px dashed #72af43;
    z-index: 1;
}

.t-bottom-range {
    position: absolute;
    top: 145px;
    height: 2px;
    background-color: #72af43;
    display: flex;
    justify-content: center;
    align-items: center;
}

.t-range-badge {
    background-color: #72af43;
    color: #fff;
    padding: 4px 20px;
    border-radius: 20px;
    font-size: 15px;
    font-weight: bold;
}

.t-range-arrow {
    position: absolute;
    top: -4px;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
}

    .t-range-arrow.left {
        left: 0;
        border-right: 8px solid #72af43;
    }

    .t-range-arrow.right {
        right: 0;
        border-left: 8px solid #72af43;
    }

/* ==================================================
   8. 五步驟流程圖 (TCFD 氣候風險管理)
   ================================================== */
.tcfd-flow-container {
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    margin: 30px 0;
    overflow-x: auto;
    padding-bottom: 15px;
}

.tcfd-flow-step {
    flex: 1 1 0;
    min-width: 140px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tcfd-flow-header-wrapper {
    width: 100%;
    filter: drop-shadow(4px 4px 3px rgba(0, 0, 0, 0.15));
    margin-bottom: 8px;
}

.tcfd-flow-header {
    color: #fff;
    font-size: 22px;
    font-weight: bold;
    text-align: center;
    padding: 8px 0;
    clip-path: polygon(15px 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 15px 100%, 0 50%);
}

.tcfd-flow-content {
    background-color: #f4f4f4;
    flex-grow: 1;
    width: calc(100% - 12px);
    padding: 15px 12px;
    font-size: 15px;
    color: #4a4a4a;
    border-bottom: 8px solid;
    text-align: justify;
}

/* 各步驟漸進綠色系配置 */
.step-1 .tcfd-flow-header {
    background-color: #92c955;
}

.step-1 .tcfd-flow-content {
    border-bottom-color: #92c955;
}

.step-2 .tcfd-flow-header {
    background-color: #12a669;
}

.step-2 .tcfd-flow-content {
    border-bottom-color: #12a669;
}

.step-3 .tcfd-flow-header {
    background-color: #2b8445;
}

.step-3 .tcfd-flow-content {
    border-bottom-color: #2b8445;
}

.step-4 .tcfd-flow-header {
    background-color: #387845;
}

.step-4 .tcfd-flow-content {
    border-bottom-color: #387845;
}

.step-5 .tcfd-flow-header {
    background-color: #19513e;
}

.step-5 .tcfd-flow-content {
    border-bottom-color: #19513e;
}

/* ==================================================
   9. 權責分工多欄卡片 (帶下箭頭指標)
   ================================================== */
.role-cards-container {
    display: flex;
    flex-wrap: nowrap;
    gap: 15px;
    margin: 20px 0;
    overflow-x: auto;
    padding-bottom: 10px;
}

.role-card {
    flex: 1 1 0;
    min-width: 240px;
    display: flex;
    flex-direction: column;
}

.role-header {
    position: relative;
    color: #fff;
    font-weight: bold;
    text-align: center;
    padding: 15px 10px;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 70px;
}

    .role-header::after {
        content: '';
        position: absolute;
        bottom: -12px;
        left: 50%;
        transform: translateX(-50%);
        border-width: 12px 14px 0 14px;
        border-style: solid;
        border-color: transparent transparent transparent transparent;
        z-index: 2;
    }

.role-body {
    background-color: #f2f2f2;
    flex-grow: 1;
    padding: 25px 15px 15px 15px;
    font-size: 15px;
    color: #333;
    border-bottom: 8px solid;
}

    .role-body ul {
        list-style-type: none;
        padding-left: 0;
        margin: 0;
    }

    .role-body li {
        position: relative;
        padding-left: 15px;
        margin-bottom: 10px;
        text-align: justify;
    }

        .role-body li::before {
            content: '•';
            position: absolute;
            left: 0;
            top: 0;
            color: #333;
            font-weight: bold;
        }

/* 各欄專屬顏色配置 */
.role-col-1 .role-header {
    background-color: #92c955;
}

    .role-col-1 .role-header::after {
        border-top-color: #92c955;
    }

.role-col-1 .role-body {
    border-bottom-color: #92c955;
}

.role-col-2 .role-header {
    background-color: #12a669;
}

    .role-col-2 .role-header::after {
        border-top-color: #12a669;
    }

.role-col-2 .role-body {
    border-bottom-color: #12a669;
}

.role-col-3 .role-header {
    background-color: #2b8445;
}

    .role-col-3 .role-header::after {
        border-top-color: #2b8445;
    }

.role-col-3 .role-body {
    border-bottom-color: #2b8445;
}

.role-col-4 .role-header {
    background-color: #19513e;
}

    .role-col-4 .role-header::after {
        border-top-color: #19513e;
    }

.role-col-4 .role-body {
    border-bottom-color: #19513e;
}

/* ==================================================
   風險與機會詳細說明表格 專屬顏色 (灰底)
   ================================================== */
.table-gray th {
    background-color: #f2f2f2 !important; /* 灰底 */
    color: #333 !important;
    border: 1px solid #fff !important; /* 表頭間的白線 */
}

/* 左側標題 (影響類別/產品或服務等) 灰底 */
.table-gray td.gov-left {
    background-color: #f2f2f2 !important;
    color: #333 !important;
    font-weight: bold;
    border-bottom: 2px solid #fff !important; /* 儲存格之間的白色底線 */
    border-right: 1px solid #fff !important;
}

/* 數據欄位白底與灰線 */
.table-gray td {
    background-color: #fff !important;
    border-bottom: 1px solid #d5d5d5 !important;
}

/* ==================================================
   10. Institution 氣候變遷行動頁專用補充樣式
   僅放置共用樣式未涵蓋的版面與矩陣圖設定
   ================================================== */
.card {
    height: 100%;
    border: 2px solid #e2f6e2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 15px rgba(162, 230, 162, 0.2);
}

.card-body {
    padding: 20px;
}

.card-title {
    margin: 0 0 .5rem;
    color: #72af43;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.card ul {
    margin: 0;
    padding-left: 1.1rem;
    line-height: 1.7;
}

.card li {
    margin: .15rem 0;
}

.bg-board {
    background-color: #f8fbf6;
}

.bg-committee {
    background-color: #eaf4e1;
}

.nowrap {
    white-space: nowrap;
}

.note-sup {
    position: relative;
    top: -0.15em;
    font-size: .65em;
    line-height: 0;
    vertical-align: super;
}

.section-gap-lg {
    margin-top: 40px;
}

.section-gap-xl {
    margin-top: 50px;
}

.subtitle-gap-md {
    margin-top: 30px;
}

.subtitle-gap-lg {
    margin-top: 40px;
}

.risk-opportunity-title {
    font-size: 20px;
}

.text-left {
    text-align: left !important;
}

.esg-list {
    padding-left: 20px !important;
}

.environment-note {
    color: #777;
    font-size: 14px;
    text-align: left !important;
    text-indent: 0 !important;
}

.note-gap-top {
    margin-top: 10px !important;
}

.note-no-bottom {
    margin-bottom: 0 !important;
}

.note-no-top {
    margin-top: 0 !important;
}

.matrix-block-first {
    margin-top: 30px;
    margin-bottom: 40px;
}

.matrix-block-last {
    margin-bottom: 50px;
}

.summary-table-block {
    margin-bottom: 40px;
}

.summary-table-block-last {
    margin-bottom: 30px;
}

.table-gap-top {
    margin-top: 30px;
}

.table-section-head th {
    border-top: 18px solid #fff !important;
}

.w-15 {
    width: 15%;
}

.w-20 {
    width: 20%;
}

.w-25 {
    width: 25%;
}

.w-30 {
    width: 30%;
}

.w-35 {
    width: 35%;
}

.w-50 {
    width: 50%;
}

.w-55 {
    width: 55%;
}

.w-75 {
    width: 75%;
}

/* 純 HTML/CSS 氣候風險／機會矩陣 */
.climate-matrix {
    width: 100%;
    overflow-x: auto;
    padding: 16px 0 10px;
}

.matrix-grid {
    position: relative;
    width: 620px;
    height: 470px;
    margin: 0 auto;
    background-image: linear-gradient(to right, #d9d9d9 1px, transparent 1px), linear-gradient(to bottom, #d9d9d9 1px, transparent 1px);
    background-size: 86px 59px;
    background-position: 58px 24px;
}

    .matrix-grid::before {
        content: '';
        position: absolute;
        left: 58px;
        top: 24px;
        width: 516px;
        height: 354px;
        border-left: 1px solid #777;
        border-bottom: 1px solid #777;
    }

.matrix-axis-title {
    position: absolute;
    color: #555;
    font-size: 15px;
    font-weight: 700;
}

.matrix-axis-y {
    left: 5px;
    top: 175px;
    transform: rotate(-90deg);
    transform-origin: center;
}

.matrix-axis-x {
    left: 285px;
    top: 418px;
}

.axis-y, .axis-x {
    position: absolute;
    color: #555;
    font-size: 12px;
    line-height: 1;
}

.axis-y {
    left: 28px;
}

.y6 {
    top: 18px
}

.y5 {
    top: 77px
}

.y4 {
    top: 136px
}

.y3 {
    top: 195px
}

.y2 {
    top: 254px
}

.y1 {
    top: 313px
}

.y0 {
    top: 372px
}

.axis-x {
    top: 391px;
    transform: translateX(-50%);
}

.x0 {
    left: 58px
}

.x1 {
    left: 144px
}

.x2 {
    left: 230px
}

.x3 {
    left: 316px
}

.x4 {
    left: 402px
}

.x5 {
    left: 488px
}

.x6 {
    left: 574px
}

.matrix-point {
    position: absolute;
    z-index: 3;
    width: 1px;
    height: 1px;
}

    .matrix-point i {
        position: absolute;
        left: -4px;
        top: -4px;
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: #48b259;
    }

    .matrix-point b {
        position: absolute;
        left: 8px;
        top: -11px;
        width: 130px;
        color: #333;
        font-size: 11px;
        font-weight: 400;
        line-height: 1.25;
        white-space: normal;
    }

.matrix-bubble {
    position: absolute;
    z-index: 1;
    border-radius: 50%;
    background: rgba(130, 196, 144, .20);
}
/* 風險點位：left = 58 + x/6*516；top = 378 - y/6*354 */
.p-risk-1 {
    left: 230px;
    top: 83px
}

    .p-risk-1 b {
        left: -60px;
        top: -35px;
        width: 150px;
        text-align: center
    }

.p-risk-2 {
    left: 273px;
    top: 207px
}

    .p-risk-2 b {
        left: -55px;
        top: -24px;
        text-align: center
    }

.p-risk-3 {
    left: 316px;
    top: 278px
}

    .p-risk-3 b {
        left: -86px;
        top: -24px;
        width: 150px;
        text-align: center
    }

.p-risk-4 {
    left: 316px;
    top: 307px
}

    .p-risk-4 b {
        left: -75px;
        top: 10px;
        text-align: center
    }

.p-risk-5 {
    left: 316px;
    top: 360px
}

    .p-risk-5 b {
        left: -90px;
        top: 10px;
        width: 170px;
        text-align: center
    }

.p-risk-6 {
    left: 402px;
    top: 295px
}

    .p-risk-6 b {
        left: -55px;
        top: 10px;
        text-align: center
    }

.p-risk-7 {
    left: 402px;
    top: 266px
}

    .p-risk-7 b {
        left: -20px;
        top: 10px;
        width: 120px
    }

.p-risk-8 {
    left: 402px;
    top: 219px
}

    .p-risk-8 b {
        left: -25px;
        top: -28px;
        width: 120px
    }

.p-risk-9 {
    left: 445px;
    top: 142px
}

    .p-risk-9 b {
        left: -70px;
        top: -38px;
        width: 170px;
        text-align: center
    }

.p-risk-10 {
    left: 531px;
    top: 213px
}

    .p-risk-10 b {
        left: -35px;
        top: -26px;
        width: 115px;
        text-align: center
    }

.p-risk-11 {
    left: 574px;
    top: 295px
}

    .p-risk-11 b {
        left: -48px;
        top: -28px;
        width: 105px;
        text-align: center
    }

.p-risk-12 {
    left: 574px;
    top: 319px
}

    .p-risk-12 b {
        left: -52px;
        top: 10px;
        width: 105px;
        text-align: center
    }

.risk-bubble-a {
    left: 400px;
    top: 104px;
    width: 96px;
    height: 96px
}

.risk-bubble-b {
    left: 488px;
    top: 172px;
    width: 88px;
    height: 88px
}

.risk-bubble-c {
    left: 536px;
    top: 270px;
    width: 50px;
    height: 50px
}
/* 機會點位 */
.p-opp-1 {
    left: 66px;
    top: 30px
}

    .p-opp-1 b {
        left: -10px;
        top: 8px;
        width: 95px
    }

.p-opp-2 {
    left: 359px;
    top: 360px
}

    .p-opp-2 b {
        left: -38px;
        top: 10px;
        width: 95px;
        text-align: center
    }

.p-opp-3 {
    left: 359px;
    top: 195px
}

    .p-opp-3 b {
        left: -72px;
        top: 10px;
        width: 155px;
        text-align: center
    }

.p-opp-4 {
    left: 437px;
    top: 248px
}

    .p-opp-4 b {
        left: -55px;
        top: 8px;
        width: 95px;
        text-align: center
    }

.p-opp-5 {
    left: 497px;
    top: 124px
}

    .p-opp-5 b {
        left: -50px;
        top: 8px;
        width: 115px;
        text-align: center
    }

.p-opp-6 {
    left: 497px;
    top: 248px
}

    .p-opp-6 b {
        left: -44px;
        top: -28px;
        width: 110px;
        text-align: center
    }

.p-opp-7 {
    left: 506px;
    top: 289px
}

    .p-opp-7 b {
        left: -12px;
        top: 10px;
        width: 110px
    }

.p-opp-8 {
    left: 437px;
    top: 342px
}

    .p-opp-8 b {
        left: -95px;
        top: -15px;
        width: 150px;
        text-align: center
    }

.p-opp-9 {
    left: 540px;
    top: 342px
}

    .p-opp-9 b {
        left: -18px;
        top: -25px;
        width: 135px;
        text-align: center
    }

.opp-bubble-a {
    left: 449px;
    top: 96px;
    width: 100px;
    height: 100px
}

.opp-bubble-b {
    left: 323px;
    top: 166px;
    width: 72px;
    height: 72px
}

.opp-bubble-c {
    left: 474px;
    top: 220px;
    width: 60px;
    height: 60px
}

@media screen and (max-width: 760px) {
    .section-gap-xl {
        margin-top: 36px;
    }

    .matrix-grid {
        margin-left: 0;
    }

    .role-cards-container,
    .tcfd-flow-container {
        padding-bottom: 8px;
    }

    .esg-table {
        min-width: 620px;
    }

    .table-responsive {
        -webkit-overflow-scrolling: touch;
    }
}


/* ==================================================
   12. Environment / special.aspx 環境管理頁專用樣式
   依 2025 ESG 設計稿，僅補共用 environment.css 未涵蓋項目
   ================================================== */
.special-page .environment-subtitle-green {
    margin-top: 18px;
}

.special-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 24px;
    margin: 18px 0 28px;
}

    .special-photo-grid img,
    .special-feature-photo,
    .special-document-photo,
    .special-product-photo {
        display: block;
        width: 100%;
        height: auto;
        border-radius: 18px;
        box-shadow: 0 3px 10px rgba(0,0,0,.12);
    }

.special-feature-row {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(210px, .65fr);
    gap: 24px;
    align-items: start;
}

.special-feature-photo {
    max-width: 260px;
    margin: 0 auto;
}

.special-page .no-indent {
    text-indent: 0 !important;
}

/* 特殊頁表格：原稿為淺薄荷綠表頭、白底資料列 */
.special-table {
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

    .special-table th {
        background: #d4ece5 !important;
        color: #3b4c47;
        padding: 10px 8px;
        border-right: 1px solid #fff;
        border-bottom: 1px solid #fff;
    }

    .special-table td {
        background: #fff !important;
        padding: 9px 8px;
        border-right: 1px solid #fff;
        border-bottom: 1px solid #aeb8b4 !important;
    }

        .special-table td.gov-left {
            background: #f2f2f2 !important;
        }

    .special-table .value-strong {
        color: #009a66;
        font-size: 18px;
        font-weight: 700;
    }

    .special-table .value-note {
        display: block;
        margin-top: 2px;
        font-size: 13px;
        color: #4a4a4a;
    }

/* 協力廠商管理流程圖 */
.supplier-flow {
    position: relative;
    max-width: 720px;
    margin: 28px auto 25px;
    padding-top: 76px;
}

.supplier-flow-top {
    position: absolute;
    left: 50%;
    top: 0;
    width: 220px;
    transform: translateX(-50%);
    padding: 17px 15px;
    border-radius: 12px;
    background: #10a779;
    color: #fff;
    font-weight: 700;
    text-align: center;
    font-size: 18px;
}

    .supplier-flow-top::after {
        content: '';
        position: absolute;
        left: 50%;
        top: 100%;
        width: 1px;
        height: 26px;
        background: #c9d5d0;
    }

.supplier-flow-line {
    position: absolute;
    left: 15%;
    right: 15%;
    top: 101px;
    height: 1px;
    background: #c9d5d0;
}

.supplier-flow-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    padding-top: 26px;
}

.supplier-flow-item {
    position: relative;
    padding: 17px 10px;
    border-radius: 12px;
    background: #3dc79a;
    color: #fff;
    font-weight: 700;
    text-align: center;
    font-size: 17px;
}

    .supplier-flow-item::before {
        content: '';
        position: absolute;
        left: 50%;
        bottom: 100%;
        width: 1px;
        height: 26px;
        background: #c9d5d0;
    }

/* HTML/CSS 長條圖 */
.special-chart {
    width: 100%;
    overflow-x: auto;
    margin: 14px 0 24px;
}

.bar-chart {
    position: relative;
    min-width: 620px;
    height: 300px;
    padding: 15px 10px 54px 58px;
    border-bottom: 1px solid #bfc7c4;
    background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 48px, #e1e5e3 49px, #e1e5e3 50px);
}

.bar-chart-groups {
    display: flex;
    align-items: flex-end;
    justify-content: space-around;
    height: 100%;
    gap: 24px;
}

.bar-chart-group {
    flex: 1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
    height: 100%;
    position: relative;
}

.bar-column {
    position: relative;
    width: 38px;
    min-height: 2px;
    background: #10a779;
}

    .bar-column.alt {
        background: #3dc79a;
    }

    .bar-column.gray {
        background: #8f8f8f;
        width: 10px;
    }

    .bar-column .bar-value {
        position: absolute;
        left: 50%;
        top: -20px;
        transform: translateX(-50%);
        font-size: 11px;
        color: #333;
        white-space: nowrap;
    }

.bar-group-label {
    position: absolute;
    bottom: -38px;
    left: 0;
    right: 0;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    white-space: nowrap;
}

.chart-legend {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 10px;
    font-size: 13px;
}

    .chart-legend span::before {
        content: '';
        display: inline-block;
        width: 13px;
        height: 13px;
        margin-right: 6px;
        vertical-align: -2px;
        background: #10a779;
    }

    .chart-legend .legend-alt::before {
        background: #3dc79a;
    }

    .chart-legend .legend-gray::before {
        background: #8f8f8f;
    }

/* 供應商圓餅圖 */
.supplier-score-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(280px,.8fr);
    gap: 28px;
    align-items: start;
}

.supplier-pie-wrap {
    text-align: center;
}

.supplier-pie {
    width: 240px;
    height: 240px;
    margin: 25px auto 12px;
    border-radius: 50%;
    background: conic-gradient(#10a779 0 66.6667%, #3dc79a 66.6667% 93.3334%, #79d9b9 93.3334% 96.6667%, #d8d8d8 96.6667% 100%);
}

.pie-legend {
    display: grid;
    grid-template-columns: repeat(2, auto);
    justify-content: center;
    gap: 8px 18px;
    font-size: 14px;
}

    .pie-legend span::before {
        content: '';
        display: inline-block;
        width: 13px;
        height: 13px;
        margin-right: 6px;
        vertical-align: -2px;
    }

.pie-90::before {
    background: #10a779
}

.pie-85::before {
    background: #3dc79a
}

.pie-80::before {
    background: #79d9b9
}

.pie-79::before {
    background: #d8d8d8
}

/* 綠色採購歷年柱狀圖 */
.purchase-chart {
    min-width: 620px;
    height: 330px;
    padding-bottom: 50px;
}

    .purchase-chart .bar-column {
        width: 42px;
    }

    .purchase-chart .bar-chart-group {
        gap: 0;
    }

.green-purchase-visual {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(280px,.7fr);
    gap: 30px;
    align-items: center;
    margin-top: 20px;
}

.green-purchase-illustration {
    width: 100%;
    max-width: 620px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.special-document-photo {
    max-width: 320px;
    margin: 24px auto 0;
}

.special-product-photo {
    max-width: 470px;
    margin: 10px auto 0;
}

@media screen and (max-width: 760px) {
    .special-photo-grid {
        grid-template-columns: 1fr;
    }

    .special-feature-row,
    .supplier-score-layout,
    .green-purchase-visual {
        grid-template-columns: 1fr;
    }

    .supplier-flow {
        min-width: 620px;
    }

    .supplier-flow-scroll {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .special-table {
        min-width: 620px;
    }

    .special-feature-photo {
        max-width: 320px;
    }
}

/* special.aspx chart data heights */
.h808 {
    height: 80.8%
}

.h566 {
    height: 56.6%
}

.h140 {
    height: 14%
}

.h813 {
    height: 81.3%
}

.h601 {
    height: 60.1%
}

.h148 {
    height: 14.8%
}

.h820 {
    height: 82%
}

.h627 {
    height: 62.7%
}

.h153 {
    height: 15.3%
}

.h234 {
    height: 23.4%
}

.h205 {
    height: 20.5%
}

.h242 {
    height: 24.2%
}

.h565 {
    height: 56.5%
}

.h1000 {
    height: 100%
}

.h445 {
    height: 44.5%
}

.h339 {
    height: 33.9%
}


/* ==================================================
   13. special.aspx 版面修正 20260821
   修正長條圖、供應商流程、圓餅圖與綠色採購區塊跑版
   ================================================== */
.special-page {
    overflow: visible;
}

/* 協力廠商流程：固定幾何關係，不受文字高度影響 */
.supplier-flow-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 6px 0 8px;
}

.supplier-flow {
    position: relative;
    width: 100%;
    min-width: 640px;
    max-width: 760px;
    height: 190px;
    margin: 16px auto 18px;
    padding: 0;
}

.supplier-flow-top {
    position: absolute;
    top: 0;
    left: 50%;
    width: 220px;
    min-height: 64px;
    padding: 18px 14px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
}

    .supplier-flow-top::after {
        top: 100%;
        height: 36px;
    }

.supplier-flow-line {
    top: 100px;
    left: 14%;
    right: 14%;
}

.supplier-flow-items {
    position: absolute;
    left: 0;
    right: 0;
    top: 100px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    padding: 36px 0 0;
}

.supplier-flow-item {
    min-height: 62px;
    padding: 17px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .supplier-flow-item::before {
        height: 36px;
    }

/* 長條圖共同修正 */
.special-chart {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    margin: 12px 0 22px;
    padding-bottom: 2px;
}

.bar-chart {
    position: relative;
    width: 100%;
    min-width: 640px;
    height: 330px;
    padding: 18px 16px 62px 66px;
    border-bottom: 0;
    background: repeating-linear-gradient( to bottom, transparent 0, transparent 48px, #dfe5e2 49px, #dfe5e2 50px );
    background-origin: content-box;
    background-clip: content-box;
}

    .bar-chart::after {
        content: '';
        position: absolute;
        left: 66px;
        right: 16px;
        bottom: 62px;
        height: 1px;
        background: #b8c2be;
    }

.bar-chart-groups {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: space-around;
    gap: 22px;
    height: 250px;
}

.bar-chart-group {
    position: relative;
    flex: 1 1 0;
    min-width: 130px;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 8px;
}

.bar-column {
    position: relative;
    flex: 0 0 38px;
    width: 38px;
    min-height: 2px;
    max-height: 100%;
    background: #10a779;
}

    .bar-column.alt {
        background: #43c69b;
    }

    .bar-column.gray {
        flex-basis: 10px;
        width: 10px;
        background: #8f8f8f;
    }

    .bar-column .bar-value {
        position: absolute;
        left: 50%;
        top: -22px;
        transform: translateX(-50%);
        display: block;
        color: #333;
        font-size: 10px;
        line-height: 1;
        white-space: nowrap;
    }

.bar-group-label {
    position: absolute;
    left: 50%;
    bottom: -42px;
    width: 155px;
    transform: translateX(-50%);
    color: #3f3f3f;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
}

.chart-y-labels {
    position: absolute;
    left: 0;
    top: 16px;
    bottom: 61px;
    width: 58px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #666;
    font-size: 12px;
    line-height: 1;
    text-align: right;
}

    .chart-y-labels span {
        padding-right: 8px;
    }

.chart-legend {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px;
    margin: 6px 0 0;
    font-size: 13px;
}

/* 第一張裝置率圖：三組維持清楚間距 */
.meter-chart .bar-chart-group {
    min-width: 155px;
}

.meter-chart .bar-column {
    flex-basis: 38px;
}

    .meter-chart .bar-column.gray {
        flex-basis: 10px;
    }

/* 供應商分數與圓餅圖 */
.supplier-score-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
    gap: 42px;
    align-items: start;
}

    .supplier-score-layout > div {
        min-width: 0;
    }

    .supplier-score-layout .table-responsive {
        overflow-x: auto;
    }

    .supplier-score-layout .special-table {
        min-width: 0;
    }

.supplier-pie-wrap {
    width: 100%;
    min-width: 0;
    text-align: left;
}

.supplier-pie {
    width: 240px;
    height: 240px;
    margin: 24px auto 14px;
    flex: 0 0 auto;
}

.pie-legend {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    justify-content: center;
    gap: 8px 20px;
    margin-top: 2px;
    font-size: 14px;
}

/* 綠色採購：左圖、右圖表維持原稿雙欄 */
.green-purchase-visual {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 34px;
    align-items: center;
    margin-top: 18px;
}

    .green-purchase-visual > * {
        min-width: 0;
    }

.green-purchase-illustration {
    display: block;
    width: 100%;
    max-width: 590px;
    height: auto;
    margin: 0 auto;
}

.purchase-chart {
    min-width: 560px;
    height: 330px;
    padding-left: 52px;
    padding-right: 8px;
}

    .purchase-chart::after {
        left: 52px;
        right: 8px;
    }

    .purchase-chart .bar-chart-groups {
        gap: 8px;
    }

    .purchase-chart .bar-chart-group {
        min-width: 62px;
    }

    .purchase-chart .bar-column {
        flex-basis: 36px;
        width: 36px;
    }

    .purchase-chart .bar-group-label {
        width: 72px;
        font-size: 12px;
        white-space: nowrap;
    }

    .purchase-chart .chart-y-labels {
        width: 44px;
    }

.special-product-photo {
    display: block;
    width: 100%;
    max-width: 470px;
    height: auto;
    margin: 14px auto 0;
}

/* 讓新增的 2025 圖片即使原始比例不同也不拉伸 */
.special-photo-grid img,
.special-feature-photo,
.special-document-photo,
.special-product-photo,
.green-purchase-illustration {
    object-fit: contain;
}

@media screen and (max-width: 900px) {
    .supplier-score-layout,
    .green-purchase-visual {
        grid-template-columns: 1fr;
    }

    .supplier-pie-wrap {
        text-align: center;
    }

    .green-purchase-illustration {
        max-width: 620px;
    }
}

@media screen and (max-width: 760px) {
    .supplier-flow {
        min-width: 640px;
    }

    .bar-chart {
        min-width: 640px;
    }

    .purchase-chart {
        min-width: 590px;
    }

    .supplier-score-layout .special-table {
        min-width: 620px;
    }
}


/* ==================================================
   14. special.aspx 最新版微調 20260821-1451
   僅針對本次指定的兩個版面問題
   ================================================== */

/* 2025 年重要供應商考核分數：表格獨占整列寬度 */
.supplier-score-table-block {
    width: 100%;
    margin-top: 18px;
}

    .supplier-score-table-block .table-responsive {
        width: 100%;
        overflow-x: auto;
    }

    .supplier-score-table-block .special-table {
        width: 100%;
        min-width: 0;
    }

/* 圓餅圖與供應商考核文件移到下一排並排 */
.supplier-score-media {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 46px;
    align-items: center;
    width: 100%;
    margin-top: 22px;
}

    .supplier-score-media > * {
        min-width: 0;
    }

    .supplier-score-media .supplier-pie-wrap {
        width: 100%;
        text-align: center;
    }

    .supplier-score-media .supplier-pie {
        width: 250px;
        height: 250px;
        margin: 18px auto 14px;
    }

.supplier-document-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 310px;
}

.supplier-score-media .special-document-photo {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
}

/* 歷年綠色採購金額：不要再被雙欄 grid 壓成半寬 */
.green-purchase-visual {
    display: block;
    width: 100%;
    margin-top: 18px;
}

    .green-purchase-visual > div {
        width: 100%;
        min-width: 0;
    }

    .green-purchase-visual .special-chart {
        width: 100%;
        overflow-x: auto;
    }

.purchase-chart {
    width: 100%;
    min-width: 760px;
    height: 340px;
    padding-left: 56px;
    padding-right: 18px;
}

    .purchase-chart::after {
        left: 56px;
        right: 18px;
    }

    .purchase-chart .bar-chart-groups {
        gap: 18px;
        justify-content: space-between;
    }

    .purchase-chart .bar-chart-group {
        min-width: 84px;
    }

    .purchase-chart .bar-column {
        flex-basis: 42px;
        width: 42px;
    }

    .purchase-chart .bar-group-label {
        width: 88px;
        font-size: 13px;
        white-space: nowrap;
    }

    .purchase-chart .chart-y-labels {
        width: 48px;
    }

@media screen and (max-width: 900px) {
    .supplier-score-media {
        gap: 28px;
    }
}

@media screen and (max-width: 760px) {
    .supplier-score-table-block .special-table {
        min-width: 620px;
    }

    .supplier-score-media {
        grid-template-columns: 1fr;
    }

    .supplier-document-wrap {
        min-height: 0;
    }

    .purchase-chart {
        min-width: 760px;
    }
}

/* ==================================================
   15. Environment / manage.aspx 能資源管理頁專用樣式
   依 2025 ESG 設計稿，僅補共用 environment.css 未涵蓋項目
   ================================================== */
.manage-page {
    overflow: visible;
}

.manage-equipment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 16px;
}

.manage-equipment-card {
    min-width: 0;
    overflow: hidden;
    border: 2px solid #d7efe5;
    border-radius: 22px;
    background: #ecf8f3;
    box-shadow: 0 3px 10px rgba(92, 177, 145, .18);
}

.manage-equipment-photo {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 18px 18px 0 0;
}

.manage-equipment-card h3 {
    margin: 10px 12px 4px;
    color: #009a66;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
}

.manage-equipment-card ul {
    margin: 0 12px 14px;
    padding-left: 20px;
}

.manage-equipment-card li {
    margin-bottom: 5px;
    line-height: 1.45;
}

.manage-energy-table,
.manage-performance-table {
    min-width: 900px;
}

    .manage-energy-table th,
    .manage-compact-table th,
    .manage-performance-table th {
        background: #d5ece4 !important;
        color: #3b4c47;
        font-weight: 700;
    }

    .manage-energy-table td,
    .manage-compact-table td,
    .manage-performance-table td {
        background: #fff !important;
        border-bottom: 1px solid #b7bdbb !important;
    }

        .manage-energy-table td.gov-left,
        .manage-compact-table td.gov-left,
        .manage-performance-table td.gov-left {
            background: #f0f0f0 !important;
            font-weight: 700;
        }

.manage-notes {
    margin: 4px 0 24px;
}

.environment-page .manage-notes p,
.environment-page .manage-formulas p {
    margin: 2px 0;
    text-indent: 0;
    text-align: left;
    font-size: 13px;
    line-height: 1.5;
}

.manage-metric-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 36px;
    align-items: start;
}

.manage-compact-table {
    min-width: 500px;
}

.manage-performance-table {
    min-width: 720px;
}

.manage-unit-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
}

    .manage-unit-title span {
        color: #4a4a4a;
        font-size: 13px;
        font-weight: 400;
        white-space: nowrap;
    }

.manage-action-block {
    margin-top: 18px;
}

    .manage-action-block h3,
    .manage-building-list h3 {
        margin: 0 0 8px;
        color: #009a66;
        font-size: 16px;
        font-weight: 400;
    }

    .manage-action-block ul {
        margin: 0;
        padding-left: 22px;
    }

    .manage-action-block li {
        margin-bottom: 8px;
        line-height: 1.65;
    }

.manage-building-list {
    display: grid;
    gap: 14px;
    margin-top: 14px;
}

    .manage-building-list article {
        padding-bottom: 4px;
    }

.environment-page .manage-building-list p {
    margin: 0;
    text-indent: 2em;
}

.manage-building-illustration {
    display: block;
    width: 100%;
    max-width: 620px;
    height: auto;
    margin: 18px auto 0;
    object-fit: contain;
}

@media screen and (max-width: 1100px) {
    .manage-metric-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media screen and (max-width: 760px) {
    .manage-equipment-grid {
        grid-template-columns: 1fr;
    }

    .manage-equipment-card {
        max-width: 520px;
        margin: 0 auto;
    }

    .manage-energy-table {
        min-width: 900px;
    }

    .manage-compact-table {
        min-width: 520px;
    }

    .manage-performance-table {
        min-width: 760px;
    }

    .manage-unit-title {
        display: block;
    }

        .manage-unit-title span {
            display: block;
            margin-top: 4px;
        }
}


/* ==================================================
   16. manage.aspx 表格與 Footer 版面修正 20260821-1508
   能源密集度 / 能源績效改為上下排列，桌機優先完整顯示
   ================================================== */
.manage-metric-grid {
    display: block;
    width: 100%;
}

    .manage-metric-grid > div {
        width: 100%;
        min-width: 0;
    }

        .manage-metric-grid > div + div {
            margin-top: 34px;
        }

    /* 能源密集度：4 欄，桌機直接完整顯示，不需要水平捲軸 */
    .manage-metric-grid .table-responsive {
        width: 100%;
        overflow-x: visible;
    }

.manage-compact-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

    .manage-compact-table th,
    .manage-compact-table td {
        white-space: normal;
    }

/* 自用樓層能源績效：8 欄，桌機盡量在同一畫面完整顯示 */
.manage-performance-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    font-size: 13px;
}

    .manage-performance-table th,
    .manage-performance-table td {
        padding: 9px 5px;
        white-space: normal;
        line-height: 1.4;
    }

        .manage-performance-table th:first-child,
        .manage-performance-table td:first-child {
            width: 16%;
        }

.manage-unit-title {
    margin-bottom: 10px;
}

@media screen and (max-width: 760px) {
    /* 手機才在欄位真的塞不下時提供左右捲動 */
    .manage-metric-grid .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .manage-compact-table {
        min-width: 520px;
    }

    .manage-performance-table {
        min-width: 760px;
        font-size: 13px;
    }
}

/* ==================================================
   18. water.aspx 水資源管理頁專用樣式 20260821
   依 2025 ESG 設計稿；沿用 environment-page / esg-table 共用樣式
   ================================================== */
.water-page {
    width: 100%;
}

    .water-page .environment-section {
        margin-top: 0;
    }

    .water-page .water-saving-block {
        margin: 2px 0 10px;
    }

.environment-page .water-saving-title {
    margin: 0 0 2px;
    color: #009a66;
    font-weight: 400;
    text-align: left;
    text-indent: 0;
}

.water-saving-block ol {
    margin: 0 0 10px;
    padding-left: 2em;
    color: #009a66;
}

.water-saving-block li {
    margin-bottom: 2px;
    padding-left: 0;
    line-height: 1.55;
}

.water-table-wrap {
    width: 100%;
    margin: 10px 0 10px;
    overflow-x: visible;
}

.water-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 14px;
}

    .water-table th {
        padding: 11px 8px;
        background: #d4ece5 !important;
        color: #3f4d48;
        border-right: 1px solid #fff;
        border-bottom: 1px solid #fff;
        line-height: 1.4;
        white-space: normal;
    }

        .water-table th:first-child {
            width: 34%;
        }

        .water-table th:nth-child(2) {
            width: 38%;
        }

        .water-table th:nth-child(3) {
            width: 28%;
        }

    .water-table td {
        padding: 8px 8px;
        background: #fff !important;
        color: #4a4a4a;
        border-right: 1px solid #fff;
        border-bottom: 1px solid #b8bdbb !important;
        line-height: 1.35;
        text-align: center;
        vertical-align: middle;
    }

        .water-table td.gov-left {
            background: #f1f1f1 !important;
            color: #333;
            font-weight: 700;
        }

    .water-table .water-source-group {
        width: 17%;
    }

    .water-table .water-source-sub {
        width: 17%;
    }

    .water-table sup {
        position: relative;
        top: -.1em;
        font-size: 10px;
    }

.water-notes {
    margin-top: 8px;
}

.environment-page .water-notes p {
    margin: 2px 0;
    font-size: 12px;
    line-height: 1.45;
    text-align: left;
    text-indent: 0;
}

@media screen and (max-width: 760px) {
    .water-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .water-table {
        min-width: 680px;
    }
}


/* ==================================================
   19. future.aspx 資源循環頁專用樣式 20260821
   ================================================== */
.future-page .environment-section {
    margin-bottom: 34px;
}

.future-page .environment-subtitle-green {
    margin-top: 18px;
}

.future-page .future-table-wrap {
    width: 100%;
    margin-top: 12px;
    overflow: visible;
}

.future-page .future-waste-table,
.future-page .future-composition-table,
.future-page .future-recovery-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

    .future-page .future-waste-table th,
    .future-page .future-composition-table th,
    .future-page .future-recovery-table th {
        white-space: normal;
        word-break: keep-all;
    }

        .future-page .future-waste-table th:first-child,
        .future-page .future-waste-table td:first-child,
        .future-page .future-recovery-table th:first-child,
        .future-page .future-recovery-table td:first-child,
        .future-page .future-composition-table tbody td:first-child {
            white-space: nowrap;
        }

    .future-page .future-composition-table thead tr:first-child th:first-child {
        min-width: 180px;
    }

    .future-page .future-composition-table thead th,
    .future-page .future-composition-table tbody td,
    .future-page .future-waste-table thead th,
    .future-page .future-waste-table tbody td,
    .future-page .future-recovery-table thead th,
    .future-page .future-recovery-table tbody td {
        text-align: center;
        vertical-align: middle;
    }

.future-page .future-chart-block {
    margin-top: 26px;
}

.future-page .future-chart-card {
    margin-top: 10px;
    padding: 12px 12px 4px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

    .future-page .future-chart-card svg {
        display: block;
        width: 100%;
        height: auto;
    }

.future-page .future-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 24px;
    align-items: stretch;
}

.future-page .future-media-card {
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    border: 2px solid #d7f0df;
    box-shadow: 0 4px 15px rgba(84, 164, 116, 0.12);
    background: #ffffff;
}

    .future-page .future-media-card img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .future-page .future-media-card.is-photo {
        aspect-ratio: 278 / 185;
    }

    .future-page .future-media-card.is-illustration {
        aspect-ratio: 475 / 275;
        background: #f8fbf9;
    }

.future-page .future-chart-note {
    margin-top: 8px;
    font-size: 13px;
    color: #6a6a6a;
    text-align: right;
    text-indent: 0;
}

@media screen and (max-width: 1024px) {
    .future-page .future-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .future-page .future-media-card.is-illustration {
        grid-column: 1 / -1;
        max-width: 560px;
        justify-self: center;
    }
}

@media screen and (max-width: 760px) {
    .future-page .future-table-wrap {
        overflow: visible;
    }

    .future-page .future-waste-table,
    .future-page .future-composition-table,
    .future-page .future-recovery-table {
        min-width: 0;
        width: 100%;
        table-layout: fixed;
        font-size: 12px;
    }

        .future-page .future-waste-table th,
        .future-page .future-waste-table td,
        .future-page .future-composition-table th,
        .future-page .future-composition-table td,
        .future-page .future-recovery-table th,
        .future-page .future-recovery-table td {
            padding: 8px 4px;
            white-space: normal;
            word-break: break-word;
        }

    .future-page .future-chart-card {
        padding: 8px 6px 2px;
        border-radius: 14px;
    }

    .future-page .future-media-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .future-page .future-media-card.is-illustration,
    .future-page .future-media-card.is-photo {
        grid-column: auto;
        max-width: none;
        aspect-ratio: auto;
    }

    .future-page .future-media-card img {
        height: auto;
    }
}


/* ==================================================
   20. future.aspx 最終版修正 20260821-1540
   1) 所有表格固定在單一頁面寬度，完全取消水平捲軸
   2) 頁尾照片僅保留兩張，桌機版一排兩張
   ================================================== */
.future-page .table-responsive,
.future-page .future-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

.future-page .future-waste-table,
.future-page .future-composition-table,
.future-page .future-recovery-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}

    .future-page .future-waste-table th,
    .future-page .future-waste-table td,
    .future-page .future-composition-table th,
    .future-page .future-composition-table td,
    .future-page .future-recovery-table th,
    .future-page .future-recovery-table td {
        white-space: normal !important;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

/* 7 欄回收統計表：壓在內容寬度內，不產生捲軸 */
.future-page .future-waste-table {
    font-size: 14px;
}

    .future-page .future-waste-table th,
    .future-page .future-waste-table td {
        padding: 9px 5px;
    }

        .future-page .future-waste-table th:first-child,
        .future-page .future-waste-table td:first-child {
            width: 12%;
        }

        .future-page .future-waste-table th:last-child,
        .future-page .future-waste-table td:last-child {
            width: 15%;
        }

/* 組成表與回收處理表欄數較少，維持正常閱讀寬度 */
.future-page .future-composition-table th:first-child,
.future-page .future-composition-table td:first-child {
    width: 28%;
}

.future-page .future-recovery-table th:first-child,
.future-page .future-recovery-table td:first-child {
    width: 16%;
}

/* 頁尾實景照片只有兩張 */
.future-page .future-media-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px;
    width: 100%;
    margin-top: 24px;
}

.future-page .future-media-card.is-photo {
    width: 100%;
    aspect-ratio: 278 / 185;
}

@media screen and (max-width: 760px) {
    .future-page .future-waste-table {
        font-size: 11px;
    }

        .future-page .future-waste-table th,
        .future-page .future-waste-table td,
        .future-page .future-composition-table th,
        .future-page .future-composition-table td,
        .future-page .future-recovery-table th,
        .future-page .future-recovery-table td {
            padding: 6px 2px;
        }

    .future-page .future-media-grid {
        grid-template-columns: 1fr !important;
    }
}
