/* ========================================
   門號優惠折扣 — 前台樣式 (List view)
   每家電信一塊區塊,內含方案清單
   ======================================== */

.mdc-app {
    --mdc-bg: #f8fafc;
    --mdc-surface: #ffffff;
    --mdc-text: #0f172a;
    --mdc-text-muted: #64748b;
    --mdc-border: #e2e8f0;
    --mdc-border-strong: #cbd5e1;
    --mdc-accent: #0f172a;
    --mdc-success: #15803d;
    --mdc-danger: #dc2626;
    --mdc-radius: 14px;
    --mdc-shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.04);

    /* 主題若有頂部 fixed header,手機版 sticky 篩選器會往下偏移避開(後台可調) */
    --mdc-header-offset: 0px;
    /* 主題若有底部固定導覽列(購物車/選單),手機版會把比較列墊高避開(後台可調) */
    --mdc-mobile-nav-offset: 0px;
    /* 主題若有右下角浮動按鈕(back-to-top / 客服),比較列右邊預留這個距離(後台可調) */
    --mdc-floating-right-offset: 0px;

    --carrier-cht: #00478C;
    --carrier-twm: #F37A1F;
    --carrier-fet: #DA0F47;

    font-family: 'Noto Sans TC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--mdc-text);
    line-height: 1.6;
    box-sizing: border-box;
    background: var(--mdc-bg);
    padding: 24px 16px 120px;
    max-width: 1280px;
    margin: 0 auto;
    -webkit-font-smoothing: antialiased;
}
.mdc-app *, .mdc-app *::before, .mdc-app *::after { box-sizing: inherit; }
.mdc-app [hidden] { display: none !important; }

/* ── HERO ─────────────────────────────── */
.mdc-hero { text-align: center; padding: 24px 0 32px; }
.mdc-hero h1 {
    font-size: clamp(24px, 5vw, 40px);
    font-weight: 700;
    margin: 0 0 12px;
    letter-spacing: -0.02em;
}
.mdc-hero p {
    font-size: clamp(14px, 2vw, 16px);
    color: var(--mdc-text-muted);
    margin: 0;
}

/* ── FILTER BAR ───────────────────────── */
.mdc-filter {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(255,255,255,.9);
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    border: 1px solid var(--mdc-border);
    border-radius: var(--mdc-radius);
    margin-bottom: 24px;
    box-shadow: var(--mdc-shadow);
}
@media (max-width: 767px) {
    .mdc-filter { top: var(--mdc-header-offset, 0px); }
}

/* ── Filter collapsible header (mobile only) ── */
.mdc-filter-header {
    display: none;
    width: 100%;
    appearance: none;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 12px 14px;
    align-items: center;
    justify-content: space-between;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--mdc-text);
    border-bottom: 1px solid var(--mdc-border);
}
.mdc-filter-header:focus-visible { outline: 2px solid var(--mdc-accent); outline-offset: -2px; border-radius: var(--mdc-radius); }
.mdc-filter-header-text { display: inline-flex; align-items: center; gap: 8px; }
.mdc-filter-active-count {
    background: var(--mdc-accent);
    color: #fff;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    margin-left: 4px;
}
.mdc-filter-toggle-icon { transition: transform 250ms ease; }

@media (max-width: 767px) {
    .mdc-filter-header { display: flex; }
    .mdc-filter.is-collapsed .mdc-filter-header { border-bottom: 0; }
    .mdc-filter.is-collapsed .mdc-filter-toggle-icon { transform: rotate(-90deg); }
    .mdc-filter-inner {
        overflow: hidden;
        transition: max-height 320ms ease, padding 280ms ease, opacity 220ms ease;
        max-height: 1200px;
        opacity: 1;
    }
    .mdc-filter.is-collapsed .mdc-filter-inner {
        max-height: 0;
        padding-top: 0;
        padding-bottom: 0;
        opacity: 0;
        pointer-events: none;
    }
}

.mdc-filter-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 14px;
    align-items: start;
}
@media (min-width: 768px) {
    .mdc-filter-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        padding: 16px;
    }
}
@media (min-width: 1024px) {
    .mdc-filter-inner {
        /* 電信(寬) / 網路(窄) / 申辦類型 / 約期 */
        grid-template-columns: minmax(330px, 2fr) minmax(150px, 0.9fr) minmax(250px, 1.5fr) minmax(290px, 1.7fr);
    }
    .mdc-filter-group--range { grid-column: 1 / span 2; grid-row: 2; }
    .mdc-filter-group--sort  { grid-column: 3 / span 1; grid-row: 2; }
    .mdc-btn-reset           { grid-column: 4 / span 1; grid-row: 2; }
}
.mdc-filter-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.mdc-filter-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--mdc-text-muted);
    letter-spacing: 0.04em;
}
.mdc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mdc-chip {
    --c: var(--mdc-accent);
    appearance: none;
    cursor: pointer;
    padding: 6px 10px;
    min-height: 32px;
    border: 1px solid var(--mdc-border-strong);
    background: var(--mdc-surface);
    color: var(--mdc-text);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    transition: all 180ms ease;
    white-space: nowrap;
}
.mdc-chip:hover { border-color: var(--c); color: var(--c); }
.mdc-chip:focus-visible { outline: 2px solid var(--c); outline-offset: 2px; }
.mdc-chip.is-active { background: var(--c); border-color: var(--c); color: #fff; }

.mdc-range { display: flex; align-items: center; gap: 8px; }
.mdc-range input {
    flex: 1; min-width: 0;
    padding: 8px 12px;
    border: 1px solid var(--mdc-border-strong);
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    background: var(--mdc-surface);
    color: var(--mdc-text);
}
.mdc-range input:focus { outline: 2px solid var(--mdc-accent); outline-offset: -1px; }
.mdc-range span { color: var(--mdc-text-muted); }
#mdc-sort {
    padding: 8px 12px;
    border: 1px solid var(--mdc-border-strong);
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    background: var(--mdc-surface);
    color: var(--mdc-text);
    cursor: pointer;
    min-height: 36px;
}
.mdc-btn-reset {
    appearance: none;
    cursor: pointer;
    padding: 8px 16px;
    min-height: 36px;
    border: 1px solid var(--mdc-border-strong);
    background: var(--mdc-surface);
    color: var(--mdc-text-muted);
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    align-self: end;
    transition: all 150ms ease;
}
.mdc-btn-reset:hover { color: var(--mdc-danger); border-color: var(--mdc-danger); }

/* ── RESULTS HEADER ───────────────────── */
.mdc-results-header { margin: 0 0 16px; color: var(--mdc-text-muted); font-size: 14px; }
.mdc-results-header strong { color: var(--mdc-text); font-variant-numeric: tabular-nums; }

.mdc-carrier-blocks {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── QUICK NAV (mobile carrier anchors) ── */
.mdc-quick-nav {
    display: none;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 6px;
    padding: 8px 14px 10px;
    border-top: 1px solid var(--mdc-border);
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.mdc-quick-nav::-webkit-scrollbar { display: none; }
.mdc-quick-nav-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    min-height: 32px;
    border: 1px solid var(--mdc-border-strong);
    background: var(--mdc-surface);
    color: var(--mdc-text);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 180ms ease;
}
.mdc-quick-nav-btn::before {
    content: '';
    width: 8px;
    height: 8px;
    background: var(--c, #333);
    border-radius: 50%;
    flex-shrink: 0;
}
.mdc-quick-nav-btn:hover {
    border-color: var(--c, var(--mdc-accent));
    color: var(--c, var(--mdc-accent));
}
.mdc-quick-nav-btn.is-active {
    background: var(--c, var(--mdc-accent));
    color: #fff;
    border-color: var(--c, var(--mdc-accent));
}
.mdc-quick-nav-btn.is-active::before { background: rgba(255,255,255,.9); }

@media (max-width: 767px) {
    .mdc-quick-nav { display: flex; }
}

/* ── CARRIER BLOCK ────────────────────── */
.mdc-carrier-block {
    --carrier-color: #333;
    background: var(--mdc-surface);
    border: 1px solid var(--mdc-border);
    border-radius: var(--mdc-radius);
    overflow: hidden;
    box-shadow: var(--mdc-shadow);
    /* 點擊快速錨點時保留 sticky filter + 主題 header 的可視空間 */
    scroll-margin-top: calc(120px + var(--mdc-header-offset, 0px));
}
.mdc-carrier-block.is-empty { display: none; }

.mdc-carrier-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--carrier-color) 8%, white), transparent 40%);
    border-bottom: 2px solid var(--carrier-color);
}
.mdc-carrier-id { display: flex; align-items: center; gap: 12px; }
.mdc-carrier-logo {
    width: 44px; height: 44px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
    padding: 4px;
    border: 1px solid var(--mdc-border);
}
.mdc-carrier-logo-text {
    width: 44px; height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--carrier-color);
    color: #fff;
    border-radius: 50%;
    font-size: 18px;
    font-weight: 700;
    flex-shrink: 0;
}
.mdc-carrier-name {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--carrier-color);
    letter-spacing: 0.02em;
}
.mdc-carrier-count {
    color: var(--mdc-text-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

/* ── TABLE HEAD (desktop only) ────────── */
.mdc-plans-table-head {
    display: none;
}
@media (min-width: 1024px) {
    .mdc-plans-table-head {
        display: grid;
        grid-template-columns: minmax(180px, 1.6fr) 90px 110px 110px 100px minmax(160px, 1.8fr) 130px;
        gap: 12px;
        padding: 10px 20px;
        background: #f8fafc;
        border-bottom: 1px solid var(--mdc-border);
        font-size: 12px;
        font-weight: 600;
        color: var(--mdc-text-muted);
        letter-spacing: 0.04em;
    }
}

/* ── PLANS LIST ───────────────────────── */
.mdc-plans-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ── PLAN ROW ─────────────────────────── */
.mdc-plan-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--mdc-border);
    transition: background 150ms ease;
}
.mdc-plan-row:last-child { border-bottom: 0; }
.mdc-plan-row:hover { background: #fafbfc; }
.mdc-plan-row.is-hidden { display: none; }
.mdc-plan-row.is-comparing { background: color-mix(in srgb, var(--carrier-color) 6%, white); }

.mdc-cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mdc-cell-label {
    display: block;
    font-size: 11px;
    font-weight: 500;
    color: var(--mdc-text-muted);
    letter-spacing: 0.04em;
}
.mdc-cell strong { font-weight: 600; font-variant-numeric: tabular-nums; }
.mdc-cell-soft { color: var(--mdc-text-muted); font-style: italic; }

/* mobile-only: name spans full row */
.mdc-cell-name {
    grid-column: 1 / -1;
    padding-bottom: 8px;
    border-bottom: 1px dashed var(--mdc-border);
    margin-bottom: 4px;
}
.mdc-name-wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.mdc-plan-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--mdc-text);
}
.mdc-name-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; }
.mdc-tag-network {
    background: color-mix(in srgb, var(--carrier-color) 12%, white);
    color: var(--carrier-color);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.mdc-fee {
    color: var(--carrier-color);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    font-size: 15px;
}
.mdc-badge {
    background: #fef3c7;
    color: #92400e;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}
.mdc-app-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.mdc-tag-app {
    background: #f1f5f9;
    color: #475569;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}
.mdc-cell-content p {
    margin: 0;
    font-size: 13px;
    color: var(--mdc-text);
    line-height: 1.5;
}
.mdc-gifts {
    display: block;
    margin-top: 4px;
    color: #92400e;
    font-size: 11px;
}

.mdc-cell-actions {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 10px;
    border-top: 1px dashed var(--mdc-border);
    margin-top: 4px;
}
.mdc-cell-actions .mdc-cell-label { display: none; }
.mdc-compare-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 13px;
    color: var(--mdc-text-muted);
    user-select: none;
    min-height: 36px;
    padding: 0 4px;
}
.mdc-compare-toggle input { width: 16px; height: 16px; cursor: pointer; accent-color: var(--carrier-color); }
.mdc-compare-toggle:has(input:checked) { color: var(--carrier-color); font-weight: 600; }
.mdc-row-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    min-height: 36px;
    background: var(--carrier-color);
    color: #fff;
    border-radius: 8px;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    transition: filter 180ms ease;
    white-space: nowrap;
}
.mdc-row-cta:hover { filter: brightness(1.1); color: #fff; }
.mdc-row-cta:focus-visible { outline: 3px solid color-mix(in srgb, var(--carrier-color) 40%, transparent); outline-offset: 2px; }

/* ── DESKTOP: switch to table grid ─────── */
@media (min-width: 1024px) {
    .mdc-plan-row {
        grid-template-columns: minmax(180px, 1.6fr) 90px 110px 110px 100px minmax(160px, 1.8fr) 130px;
        gap: 12px;
        padding: 16px 20px;
        align-items: center;
    }
    .mdc-cell-label { display: none; }
    .mdc-cell-name {
        grid-column: auto;
        padding-bottom: 0;
        border-bottom: 0;
        margin-bottom: 0;
    }
    .mdc-name-meta { margin-top: 2px; }
    .mdc-cell-actions {
        grid-column: auto;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 6px;
        padding-top: 0;
        border-top: 0;
        margin-top: 0;
    }
    .mdc-row-cta { justify-content: center; padding: 6px 12px; min-height: 32px; }
    .mdc-compare-toggle { justify-content: center; min-height: 28px; }
}

/* ── TABLET (768-1023): 3-column compact ── */
@media (min-width: 768px) and (max-width: 1023px) {
    .mdc-plan-row {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 10px 14px;
    }
    .mdc-cell-name { grid-column: 1 / -1; }
    .mdc-cell-actions { grid-column: 1 / -1; }
}

/* ── EMPTY ────────────────────────────── */
.mdc-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--mdc-text-muted);
    background: var(--mdc-surface);
    border: 1px dashed var(--mdc-border-strong);
    border-radius: var(--mdc-radius);
}
.mdc-no-results { margin-top: 16px; }

.mdc-note {
    margin: 32px 0 0;
    padding: 16px;
    text-align: center;
    color: var(--mdc-text-muted);
    font-size: 13px;
    background: var(--mdc-surface);
    border-radius: 8px;
    border: 1px solid var(--mdc-border);
}

/* ── COMPARE BAR (sticky bottom) ──────── */
.mdc-compare-bar {
    position: fixed;
    left: 16px;
    right: calc(16px + var(--mdc-floating-right-offset, 0px));
    bottom: 16px;
    z-index: 40;
    background: var(--mdc-text);
    color: #fff;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
    animation: mdc-slide-up 280ms cubic-bezier(.2,.8,.2,1);
}
@keyframes mdc-slide-up {
    from { transform: translateY(120%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}
.mdc-compare-inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
}
.mdc-compare-slots {
    flex: 1;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    min-width: 0;
}
.mdc-compare-slot {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 180px;
    background: rgba(255,255,255,.12);
    padding: 4px 6px 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
}
.mdc-slot-dot {
    width: 8px; height: 8px;
    background: var(--c, #fff);
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 1.5px rgba(255,255,255,.18);
}
.mdc-slot-name {
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
.mdc-compare-slot button {
    appearance: none;
    background: rgba(255,255,255,.08);
    border: 0;
    color: rgba(255,255,255,.7);
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    width: 20px; height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 150ms ease, color 150ms ease;
}
.mdc-compare-slot button:hover { background: rgba(255,255,255,.2); color: #fff; }
@media (max-width: 767px) {
    .mdc-compare-slot { max-width: 130px; font-size: 11.5px; padding: 3px 4px 3px 8px; }
    .mdc-compare-slot button { width: 18px; height: 18px; font-size: 13px; }
}
.mdc-btn-compare {
    appearance: none;
    cursor: pointer;
    padding: 10px 18px;
    min-height: 44px;
    background: #fff;
    color: var(--mdc-text);
    border: 0;
    border-radius: 999px;
    font-weight: 700;
    font-size: 14px;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.mdc-compare-count {
    background: var(--mdc-text);
    color: #fff;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

/* ── MODAL ────────────────────────────── */
.mdc-modal {
    position: fixed;
    inset: 0;
    /* 9999 確保覆蓋主題的 back-to-top、客服按鈕等浮動元件,Modal 開啟時這些不會穿透到 Modal 上方 */
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.mdc-modal-backdrop {
    position: absolute; inset: 0;
    background: rgba(15,23,42,.6);
    backdrop-filter: blur(4px);
    animation: mdc-fade 200ms ease;
}
@keyframes mdc-fade { from { opacity: 0; } }
.mdc-modal-panel {
    position: relative;
    background: var(--mdc-surface);
    border-radius: var(--mdc-radius);
    width: 100%;
    max-width: 1100px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.3);
    animation: mdc-zoom 240ms cubic-bezier(.2,.8,.2,1);
}
@keyframes mdc-zoom {
    from { transform: scale(.94); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.mdc-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--mdc-border);
}
.mdc-modal-header h2 { margin: 0; font-size: 18px; }
.mdc-modal-close {
    appearance: none;
    background: none;
    border: 0;
    cursor: pointer;
    width: 36px; height: 36px;
    border-radius: 8px;
    font-size: 22px;
    line-height: 1;
    color: var(--mdc-text-muted);
}
.mdc-modal-close:hover { background: #f1f5f9; color: var(--mdc-text); }
.mdc-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 20px;
    overflow: auto;
}

.mdc-compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 14px;
    table-layout: fixed;
}
.mdc-compare-table th, .mdc-compare-table td {
    padding: 12px;
    text-align: center;
    border-bottom: 1px solid var(--mdc-border);
    word-break: break-word;
}
.mdc-compare-table thead th {
    background: #f8fafc;
    position: sticky;
    top: 0;
    font-weight: 600;
}
.mdc-compare-table thead th.mdc-th-carrier {
    text-align: center;
    border-top: 4px solid var(--c, #333);
}
.mdc-compare-table thead .mdc-th-name { font-size: 15px; line-height: 1.3; }
.mdc-compare-table .mdc-row-label {
    color: var(--mdc-text-muted);
    width: 80px;
    font-weight: 500;
    white-space: nowrap;
}
.mdc-compare-table td.is-best { background: #f0fdf4; font-weight: 700; color: #166534; }
.mdc-compare-table .mdc-compare-cta {
    display: inline-block;
    padding: 8px 14px;
    background: var(--c, var(--mdc-text));
    color: #fff;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    white-space: nowrap;
    line-height: 1;
    vertical-align: middle;
}
.mdc-compare-table { margin: 0; }

/* ── MOBILE TUNING ────────────────────── */
@media (max-width: 767px) {
    .mdc-app {
        /* 多保留主題底部 nav 高度,避免最後一筆方案被 nav 蓋住 */
        padding: 16px 12px calc(140px + var(--mdc-mobile-nav-offset));
    }
    .mdc-carrier-head { padding: 12px 14px; }
    .mdc-carrier-name { font-size: 17px; }
    .mdc-carrier-logo, .mdc-carrier-logo-text { width: 36px; height: 36px; font-size: 15px; }
    .mdc-plan-row { padding: 12px 14px; }
    .mdc-compare-bar {
        left: 8px;
        right: calc(8px + var(--mdc-floating-right-offset, 0px));
        /* 直接貼合主題底部 nav 上緣(沒留 gap)
           不使用 env(safe-area-inset-bottom):iOS Safari 捲動時
           底部 chrome 會自動收合,該值會在 0 ↔ home indicator 高度間切換,
           會造成比較列高度/位置忽大忽小 */
        bottom: var(--mdc-mobile-nav-offset);
        border-radius: 12px;
    }
    .mdc-compare-inner { padding: 10px 12px; gap: 8px; }
    .mdc-btn-compare { padding: 8px 14px; font-size: 13px; }
    /* ── 手機版 Modal:全螢幕(覆蓋主題 nav 跟所有浮動按鈕) ─────── */
    .mdc-modal {
        padding: 0;
        align-items: stretch;
        justify-content: stretch;
    }
    .mdc-modal-panel {
        width: 100%;
        max-width: none;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        margin: 0;
        border-radius: 0;
        animation: mdc-slide-up 280ms cubic-bezier(.2,.8,.2,1);
    }
    .mdc-modal-header {
        padding: 14px 16px;
        position: sticky;
        top: 0;
        background: var(--mdc-surface);
        z-index: 1;
    }
    .mdc-modal-body {
        padding: 12px 8px;
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }
    .mdc-modal-body { padding: 10px 6px 0; }
    .mdc-compare-table tbody tr:last-child th,
    .mdc-compare-table tbody tr:last-child td {
        border-bottom: 0;
        padding-bottom: 4px;
        padding-top: 6px;
    }
    .mdc-compare-table .mdc-compare-cta {
        padding: 7px 6px;
        font-size: 12px;
        letter-spacing: -0.02em;
        line-height: 1;
    }
    .mdc-compare-table { font-size: 12px; }
    .mdc-compare-table th, .mdc-compare-table td { padding: 8px 4px; }
    .mdc-compare-table thead th { padding: 10px 4px; }
    .mdc-compare-table thead .mdc-th-name { font-size: 13px; line-height: 1.25; }
    .mdc-compare-table thead th.mdc-th-carrier small { font-size: 10px; }
    .mdc-compare-table .mdc-row-label {
        width: 44px;
        min-width: 44px;
        font-size: 11px;
        padding: 8px 2px 8px 4px;
        line-height: 1.2;
    }
}

@media (max-width: 374px) {
    .mdc-hero h1 { font-size: 22px; }
    .mdc-plan-row { grid-template-columns: 1fr; }
    .mdc-cell-name { padding-bottom: 6px; }
}

/* ── A11y ─────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .mdc-app *, .mdc-app *::before, .mdc-app *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}
