@font-face {
  font-family: 'Noto Sans TC Fallback';
  src: local('Microsoft JhengHei'), local('PingFang TC'), local('sans-serif');
  ascent-override: 95%;
  descent-override: 25%;
  line-gap-override: 0%;
  size-adjust: 100%;
}

/* zatepos.com 共用樣式：淺色收據紙語言，主色沿用產品零售藍 */
:root {
  --zt-bg: #F3F5F9;
  --zt-surface: #FFFFFF;
  --zt-ink: #111827;
  --zt-muted: #475569;
  --zt-subtle: #566579;
  --zt-line: #E2E6EE;
  --zt-primary: #2563EB;
  --zt-primary-dark: #1D4ED8;
  --zt-clock: #B45309;
  --zt-clock-light: #F59E0B;
  --zt-clock-bg: #FEF3C7;
  --zt-ok: #166534;
  --zt-ok-bg: #DCFCE7;
  --zt-alert: #DC2626;
  --zt-alert-bg: #FEE2E2;
  --zt-pro: #5B21B6;
  --zt-pro-bg: #EDE9FE;
  --zt-font: 'Noto Sans TC', 'Noto Sans TC Fallback', 'Microsoft JhengHei', sans-serif;
  --zt-mono: 'IBM Plex Mono', Consolas, 'Noto Sans TC', 'Microsoft JhengHei', 'PingFang TC', monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body { margin: 0; background: var(--zt-bg); color: var(--zt-ink); font-family: var(--zt-font); font-size: 17px; line-height: 1.75; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--zt-primary); }
a:hover { color: var(--zt-primary-dark); }
a:focus-visible, button:focus-visible { outline: 3px solid #93C5FD; outline-offset: 2px; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
p { margin: 0; }

.container { max-width: 1440px; margin: 0 auto; padding-inline: 24px; }
.section { padding-block: 96px; }
.section-white { background: var(--zt-surface); }
.mono { font-family: var(--zt-mono); font-variant-numeric: tabular-nums; }

/* 頁首 */
html { scroll-padding-top: 88px; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(243, 245, 249, 0.94); border-bottom: 1px solid var(--zt-line); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.site-header .container { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; padding-block: 14px; }
.site-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--zt-ink); text-decoration: none; font-weight: 900; font-size: 21px; letter-spacing: 0.04em; }
.site-brand { font-family:Arial,sans-serif; width:166px; flex:0 0 166px; }.site-brand span{flex:0 0 34px}
form button:not([type]),form button[type=submit],form input[type=submit]{background:var(--zt-primary);color:#fff;border-color:var(--zt-primary)}
.site-brand span { background: var(--zt-primary); color: #FFFFFF; border-radius: 8px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.site-nav { display: flex; flex-wrap: wrap; gap: 6px 22px; flex: 1 1 auto; font-size: 16px; }
.site-nav a { color: var(--zt-muted); text-decoration: none; }
.site-brand:hover { color: var(--zt-ink); }
.site-nav a:hover { color: var(--zt-ink); }
.site-nav a[aria-current="page"] { color: var(--zt-ink); font-weight: 700; }

/* 按鈕 */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; border-radius: 12px; font-weight: 700; text-decoration: none; border: 0; cursor: pointer; font-family: inherit; font-size: 17px; }
.btn-primary { background: var(--zt-primary); color: #FFFFFF; }
.btn-primary:hover { background: var(--zt-primary-dark); color: #FFFFFF; }
.btn-primary:disabled { opacity: 0.55; cursor: wait; }
.btn-ghost { background: transparent; color: var(--zt-ink); text-decoration: underline; text-underline-offset: 5px; }
.btn-lg { min-height: 56px; padding: 15px 30px; font-size: 19px; font-weight: 900; }

/* 首頁開場 */
.hero .container { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; padding-block: 64px 88px; }
.hero-text { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.hero-text h1 { font-size: clamp(44px, 7vw, 80px); line-height: 1.12; font-weight: 900; letter-spacing: -0.02em; }
.hero-text h1 em { font-style: normal; color: var(--zt-primary); }
.hero-text p { font-size: 20px; color: var(--zt-muted); max-width: 560px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero-text .hero-meta { font-size: 15px; color: var(--zt-subtle); }
.hero-scene { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; align-items: center; }
.sign { background: var(--zt-surface); border: 3px solid var(--zt-ink); border-radius: 14px; padding: 14px 36px; display: flex; flex-direction: column; align-items: center; box-shadow: 0 14px 30px rgba(17, 24, 39, 0.12); }
.sign small { font-size: 15px; color: var(--zt-subtle); letter-spacing: 0.3em; }
.sign strong { font-size: 44px; font-weight: 900; line-height: 1.2; color: var(--zt-primary); }
.sign-string { width: 2px; height: 34px; background: #94A3B8; }
.big-clock { margin-top: 28px; font-family: var(--zt-mono); font-weight: 600; font-size: clamp(64px, 9vw, 96px); line-height: 1; letter-spacing: -0.02em; }
.big-clock .colon { color: var(--zt-clock-light); }
.printer-slot { margin-top: 26px; width: 100%; max-width: 300px; height: 14px; background: #CBD5E1; border-radius: 8px; }
.time-chip { display: inline-flex; align-self: flex-start; font-family: var(--zt-mono); font-weight: 600; color: var(--zt-clock); background: var(--zt-clock-bg); border-radius: 6px; padding: 0 8px; }
.pill { display: inline-flex; align-self: flex-start; align-items: center; gap: 10px; background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 999px; padding: 4px 14px 4px 6px; font-size: 15px; color: var(--zt-muted); }

/* 章節 */
.chapter .container { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.chapter-reverse .container { flex-wrap: wrap-reverse; }
.chapter-text { flex: 1 1 400px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.chapter-text h2 { font-size: clamp(34px, 4.6vw, 52px); line-height: 1.15; font-weight: 900; }
.chapter-text p { color: var(--zt-muted); }
.chapter-demo { flex: 1.3 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.chapter-head { display: flex; align-items: center; gap: 12px; }
.chapter-head .time-chip { align-self: center; }
.glyph { width: 48px; height: 48px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-weight: 900; font-size: 26px; color: #FFFFFF; background: var(--glyph, var(--zt-primary)); }
.chapter-no { font-family: var(--zt-mono); color: var(--zt-subtle); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.chip { border: 1px solid #CBD5E1; border-radius: 999px; padding: 2px 12px; }
.chip-pro { border-color: transparent; background: var(--zt-pro-bg); color: var(--zt-pro); font-weight: 700; }
.scene { background: var(--zt-bg); border-radius: 18px; padding: 22px; display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-start; }
.section-white .scene { background: var(--zt-bg); }
.section:not(.section-white) .scene { background: var(--zt-surface); border: 1px solid var(--zt-line); }
.panel { flex: 1 1 260px; min-width: 0; background: var(--zt-surface); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.row { display: flex; justify-content: space-between; gap: 8px; }
.total { border-top: 1px dashed #CBD5E1; padding-top: 8px; display: flex; justify-content: space-between; align-items: baseline; }
.total strong { font-family: var(--zt-mono); font-size: 30px; font-weight: 600; color: var(--zt-primary); }
.ok-bar { display: flex; justify-content: space-between; background: #ECFDF5; color: #065F46; border-radius: 8px; padding: 6px 10px; font-weight: 700; }
.warn-bar { background: var(--zt-clock-bg); color: #713F12; border-radius: 8px; padding: 8px 12px; font-weight: 700; }
.status { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 4px 14px; font-weight: 700; }
.status-off { background: var(--zt-alert-bg); color: #991B1B; }
.status-on { background: var(--zt-ok-bg); color: var(--zt-ok); }
.dot { width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.note { font-size: 13px; color: var(--zt-subtle); }
.swap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px; width: 100%; }
.swap-card { flex: 1 1 200px; min-width: 0; background: var(--zt-surface); border-radius: 14px; padding: 18px; display: flex; flex-direction: column; gap: 6px; border-top: 6px solid var(--card-edge, var(--zt-ink)); }
.swap-arrow { font-size: 40px; font-weight: 900; color: #7C3AED; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 12px; width: 100%; }
.stat { background: var(--zt-surface); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.stat span { font-size: 14px; color: var(--zt-subtle); }
.stat strong { font-family: var(--zt-mono); font-size: 32px; font-weight: 600; }
.stat-ok { background: var(--zt-ok-bg); }
.stat-ok span, .stat-ok strong { color: var(--zt-ok); }
.progress { height: 10px; background: var(--zt-line); border-radius: 999px; overflow: hidden; }
.progress div { height: 100%; width: 100%; background: var(--zt-primary); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; font-size: 15px; width: 100%; }
.tags { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); gap: 10px; font-size: 15px; width: 100%; }
.tags span { background: var(--zt-bg); border-radius: 10px; padding: 8px 12px; }

/* 收據 */
.receipt { background: #FFFFFF; color: #111827; font-family: var(--zt-mono); font-size: 14px; line-height: 1.8; padding: 16px 16px 0; box-shadow: 0 16px 28px rgba(17, 24, 39, 0.14); width: 100%; max-width: 280px; }
.receipt-tilt-left { transform: rotate(-1.5deg); transform-origin: top center; }
.receipt-tilt-right { transform: rotate(1.5deg); transform-origin: top center; }
.receipt .center { text-align: center; }
.receipt .muted { color: #4B5563; }
.receipt hr { border: 0; border-top: 1px dashed #9CA3AF; margin: 8px 0; }
.receipt .stamp { text-align: center; border: 1.5px solid #111827; font-weight: 600; margin: 6px 0; }
.receipt .powered { text-align: center; color: #4B5563; font-size: 12px; padding: 8px 0 10px; }
.receipt-zig { height: 10px; margin: 0 -16px; background: linear-gradient(-45deg, var(--zig-bg, var(--zt-bg)) 6px, transparent 0), linear-gradient(45deg, var(--zig-bg, var(--zt-bg)) 6px, transparent 0); background-size: 12px 12px; background-repeat: repeat-x; background-position: left bottom; }

/* 店型與結尾 */
.section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 28px; }
.section-head h2 { font-size: clamp(34px, 4.6vw, 52px); line-height: 1.15; font-weight: 900; }
.section-head p { max-width: 460px; color: var(--zt-muted); }
.store-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, max(320px, calc((100% - 48px) / 3))), 1fr)); gap: 24px; }
.store-grid figure { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.store-grid img { border-radius: 12px; border: 1px solid var(--zt-line); }
.store-grid figcaption { font-weight: 700; }
.closing .container { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; padding-block: 104px; }
.closing-text { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.closing-text h2 { font-size: clamp(40px, 5.6vw, 64px); line-height: 1.12; font-weight: 900; }
.closing-text h2 em { font-style: normal; color: var(--zt-primary); }
.fit { display: flex; flex-wrap: wrap; gap: 24px; font-size: 15px; color: var(--zt-muted); padding-top: 12px; border-top: 1px solid var(--zt-line); }
.fit b { color: var(--zt-ink); }

/* 頁尾 */
.site-footer { border-top: 1px solid var(--zt-line); color: var(--zt-subtle); font-size: 15px; }
.site-footer .container { display: flex; flex-wrap: wrap; gap: 12px 32px; padding-block: 28px 96px; }
.site-footer a { color: var(--zt-subtle); }
.site-footer a:hover { color: var(--zt-ink); }
.site-footer .brand { font-weight: 900; color: var(--zt-ink); }
.site-footer .source { flex-basis: 100%; font-size: 13px; }

/* 營業時間軸（固定在畫面底部） */
.day-timeline { position: sticky; bottom: 0; z-index: 15; background: rgba(255, 255, 255, 0.96); border-top: 1px solid var(--zt-line); box-shadow: 0 -8px 24px rgba(17, 24, 39, 0.06); }
.day-timeline .container { display: flex; align-items: center; gap: 18px; padding-block: 10px; }
.day-clock { display: flex; flex-direction: column; line-height: 1.2; min-width: 84px; }
.day-clock span { font-size: 12px; color: var(--zt-subtle); }
.day-clock strong { font-family: var(--zt-mono); font-weight: 600; font-size: 24px; color: var(--zt-clock); }
.day-clock em { display: none; font-style: normal; font-size: 13px; color: var(--zt-muted); white-space: nowrap; }
.day-track { flex: 1 1 auto; min-width: 0; position: relative; height: 44px; }
.day-rail, .day-fill { position: absolute; top: 20px; height: 4px; border-radius: 999px; }
.day-rail { left: 0; right: 0; background: var(--zt-line); }
.day-fill { left: 0; width: 0; background: var(--zt-clock-light); }
.day-head { position: absolute; top: 0; left: 0; width: 3px; height: 44px; background: var(--zt-clock); border-radius: 2px; }
.day-mark { position: absolute; top: 6px; transform: translateX(-50%); width: 32px; height: 32px; border-radius: 8px; background: var(--glyph, var(--zt-primary)); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; font-weight: 900; font-size: 15px; text-decoration: none; }
.day-mark:hover { color: #FFFFFF; }

/* 方案頁 */
.page-head { padding-block: 64px 32px; display: flex; flex-direction: column; gap: 14px; }
.page-head h1 { font-size: clamp(36px, 5vw, 56px); line-height: 1.15; font-weight: 900; }
.page-head p { font-size: 19px; color: var(--zt-muted); max-width: 720px; }
.plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }
.plan-card { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.plan-card-free { border: 2px solid var(--zt-primary); }
.plan-card h2 { font-size: 22px; font-weight: 900; }
.plan-price { font-family: var(--zt-mono); font-size: 30px; font-weight: 600; }
.plan-price small { font-size: 15px; color: var(--zt-subtle); }
.plan-card ul { margin: 0; padding-left: 1.2em; color: var(--zt-muted); display: flex; flex-direction: column; gap: 4px; }
.badge-soon { align-self: flex-start; font-size: 13px; font-weight: 700; color: var(--zt-clock); background: var(--zt-clock-bg); border-radius: 999px; padding: 1px 10px; }
.promise { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; padding: 20px 24px; display: flex; flex-direction: column; gap: 6px; font-weight: 700; }
.compare-wrap { position: relative; overflow-x: auto; background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; }
.compare { border-collapse: collapse; width: 100%; min-width: 720px; font-size: 15px; }
.compare th, .compare td { padding: 10px 14px; border-bottom: 1px solid var(--zt-line); text-align: center; }
.compare th:first-child, .compare td:first-child { text-align: left; }
.compare thead th { background: var(--zt-bg); }
.compare tbody th[scope="row"] { font-weight: 400; }
.compare .group td, .compare .group th { background: var(--zt-bg); font-weight: 900; text-align: left; }

/* 下載頁 */
.download-box { background: var(--zt-surface); border: 2px solid var(--zt-primary); border-radius: 18px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.download-meta { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--zt-muted); font-size: 15px; }
.download-status { min-height: 1.75em; color: var(--zt-muted); }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 16px; padding: 0; margin: 0; list-style: none; }
.steps li { border-top: 4px solid var(--zt-primary); padding-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.steps b { font-size: 19px; }
.notice { background: var(--zt-surface); border: 1px solid var(--zt-line); border-left: 4px solid var(--zt-clock-light); border-radius: 12px; padding: 18px 22px; display: flex; flex-direction: column; gap: 8px; }
.notice ol { margin: 0; padding-left: 1.3em; }
details.advanced { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 12px; padding: 14px 20px; }
details.advanced summary { cursor: pointer; font-weight: 700; }
.sha { font-family: var(--zt-mono); font-size: 13px; word-break: break-all; }
.stack { display: flex; flex-direction: column; gap: 24px; }

/* 手機選單（640px 以下取代橫向導覽） */
.site-menu { display: none; position: relative; }
.site-menu summary { list-style: none; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid var(--zt-line); border-radius: 10px; background: var(--zt-surface); font-weight: 700; }
.site-menu summary::-webkit-details-marker { display: none; }
.site-menu[open] summary { border-color: var(--zt-primary); color: var(--zt-primary); }
.site-menu nav { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; min-width: 200px; background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 12px; box-shadow: 0 16px 32px rgba(17, 24, 39, 0.12); padding: 8px; display: flex; flex-direction: column; }
.site-menu nav a { padding: 10px 14px; border-radius: 8px; color: var(--zt-ink); text-decoration: none; }
.site-menu nav a[aria-current="page"] { background: var(--zt-bg); font-weight: 700; }

/* 內容頁（教學、硬體、常見問題、已知問題、回報、隱私權） */
.page-main { padding-block: 56px 96px; gap: 32px; }
.page-main > .page-head { padding-block: 0; }
.prose { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.prose h2 { font-size: clamp(24px, 3vw, 30px); line-height: 1.3; font-weight: 900; }
.prose h3 { font-size: 20px; line-height: 1.4; font-weight: 700; }
.prose p, .prose li { color: var(--zt-muted); }
.prose ul, .prose ol { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 6px; }
.prose code, .prose kbd { font-family: var(--zt-mono); font-size: 0.9em; background: var(--zt-bg); border-radius: 6px; padding: 1px 6px; word-break: break-all; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, max(260px, calc((100% - 32px) / 3))), 1fr)); gap: 16px; }
.card { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; padding: 22px; display: flex; flex-direction: column; gap: 8px; color: var(--zt-ink); text-decoration: none; }
a.card:hover { border-color: var(--zt-primary); color: var(--zt-ink); }
.card h2, .card h3 { font-size: 20px; font-weight: 900; line-height: 1.35; }
.card p { color: var(--zt-muted); font-size: 16px; }
.card-tag { align-self: flex-start; font-size: 13px; font-weight: 700; border-radius: 999px; padding: 1px 10px; background: var(--zt-bg); color: var(--zt-muted); }
.card-tag-ok { background: var(--zt-ok-bg); color: var(--zt-ok); }
.card-tag-warn { background: var(--zt-clock-bg); color: var(--zt-clock); }
.faq-list { display: flex; flex-direction: column; gap: 10px; }
.faq-list details { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 12px; padding: 14px 20px; }
.faq-list summary { cursor: pointer; font-weight: 700; }
.faq-list details[open] summary { margin-bottom: 8px; }
.faq-list details p, .faq-list details li { color: var(--zt-muted); }
.table-wrap { position: relative; overflow-x: auto; background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; }
.data-table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 15px; }
.data-table th, .data-table td { padding: 10px 14px; border-bottom: 1px solid var(--zt-line); text-align: left; vertical-align: top; }
.data-table thead th { background: var(--zt-bg); }
.forum { display: flex; flex-direction: column; gap: 10px; }
.forum-item { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 14px; padding: 16px 20px; display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; }
.forum-item h3 { font-size: 18px; font-weight: 700; }
.forum-tags { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; }
.forum-tags span { border-radius: 999px; padding: 1px 10px; background: var(--zt-bg); color: var(--zt-muted); font-weight: 700; }
.forum-vote { display: flex; align-items: center; gap: 10px; }
.forum-vote strong { font-family: var(--zt-mono); font-size: 24px; font-weight: 600; }
.forum-vote button { min-height: 40px; padding: 6px 16px; border-radius: 10px; border: 1px solid var(--zt-primary); background: var(--zt-surface); color: var(--zt-primary); font: inherit; font-weight: 700; cursor: pointer; }
.forum-vote button:disabled { opacity: 0.6; cursor: default; }
.forum-empty { background: var(--zt-surface); border: 1px dashed #CBD5E1; border-radius: 14px; padding: 18px 20px; color: var(--zt-muted); }
/* WO-029A：正式公開回報目前四筆約415px；先留同高，載入、空清單與失敗都不推動頁尾。 */
#public-feedback-forum { height: 420px; min-height: 420px; overflow-y: auto; scrollbar-gutter: stable; }
#public-feedback-forum > * { flex-shrink: 0; }
@media (max-width: 640px) {
  /* 手機同四筆約663px；新增項目仍在列表內捲動，不改變後方區塊位置。 */
  #public-feedback-forum { height: 680px; min-height: 680px; }
}
.store-picks { display: flex; flex-direction: column; gap: 10px; border-top: 1px dashed #CBD5E1; padding-top: 14px; }
.store-picks p { color: var(--zt-muted); font-size: 15px; }
.store-picks div { display: flex; flex-wrap: wrap; gap: 8px; }
.btn-store { min-height: 44px; padding: 8px 18px; border-radius: 10px; border: 1px solid var(--zt-line); background: var(--zt-bg); color: var(--zt-ink); font: inherit; font-weight: 700; cursor: pointer; }
.btn-store:hover { border-color: var(--zt-primary); color: var(--zt-primary); }
.btn-store:disabled { opacity: 0.55; cursor: wait; }
.screenshot-pending { background: var(--zt-bg); border: 1px dashed #CBD5E1; border-radius: 12px; padding: 18px; color: var(--zt-subtle); font-size: 15px; text-align: center; }

/* 動畫 */
@keyframes zt-print { 0% { clip-path: inset(0 0 100% 0); } 35%, 100% { clip-path: inset(0 0 0 0); } }
/* 四列依序淡入：每列在同一個 6 秒循環內，先隱藏到自己的起點才出現，之後一直顯示到循環結束 */
@keyframes zt-in-1 { 0%, 3% { opacity: 0; transform: translateY(8px); } 13%, 100% { opacity: 1; transform: none; } }
@keyframes zt-in-2 { 0%, 15% { opacity: 0; transform: translateY(8px); } 25%, 100% { opacity: 1; transform: none; } }
@keyframes zt-in-3 { 0%, 27% { opacity: 0; transform: translateY(8px); } 37%, 100% { opacity: 1; transform: none; } }
@keyframes zt-in-4 { 0%, 38% { opacity: 0; transform: translateY(8px); } 48%, 100% { opacity: 1; transform: none; } }
@keyframes zt-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0.25; } }
@keyframes zt-flip { 0% { transform: perspective(600px) rotateX(-95deg); } 60% { transform: perspective(600px) rotateX(12deg); } 100% { transform: perspective(600px) rotateX(0); } }
.anim-print { animation: zt-print 6s steps(12, end) infinite; }
.anim-in-1 { animation: zt-in-1 6s infinite both; }
.anim-in-2 { animation: zt-in-2 6s infinite both; }
.anim-in-3 { animation: zt-in-3 6s infinite both; }
.anim-in-4 { animation: zt-in-4 6s infinite both; }
.anim-blink { animation: zt-blink 1.2s steps(1) infinite; }
.anim-flip { animation: zt-flip 1.1s 0.4s cubic-bezier(0.2, 0.8, 0.2, 1) both; transform-origin: top center; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .anim-print, .anim-in-1, .anim-in-2, .anim-in-3, .anim-in-4, .anim-blink, .anim-flip { animation: none; }
}

@media (max-width: 640px) {
  .day-clock em { display: block; }
  body { font-size: 16px; }
  html { scroll-padding-top: 16px; }
  .site-header { position: static; }
  .container { padding-inline: 16px; }
  .section { padding-block: 64px; }
  .site-nav { display: none; }
  .site-menu { display: block; margin-left: auto; }
  .site-cta { display: none; }
  .prose { padding: 20px; }
  .day-track { display: none; }
  .day-timeline .container { justify-content: space-between; }
  .grid-3 { font-size: 14px; }
  .closing .container { padding-block: 72px; }
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* 會員頁：/styles.css 仍負責會員內容；以下擋住它的舊頁首／頁尾元素選擇器，避免蓋掉共用頁首頁尾 */
.site-header .site-nav { position: static; z-index: auto; border-bottom: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.site-footer .brand { display: inline; gap: 0; }
.member-session-bar { display: flex; justify-content: flex-end; padding-top: 16px; }
.member-page .actions a.button:not(.secondary) { background: var(--zt-surface); color: var(--zt-primary); border: 1px solid var(--zt-primary); }
.member-page .actions a.button.secondary { background: var(--zt-surface); color: var(--zt-ink); border: 1px solid var(--zt-line); }
.h2-compact { font-size: 22px; font-weight: 900; }
.forum-main { display: flex; flex-direction: column; gap: 6px; }
.member-page .actions a.button:not(.secondary):hover { background: var(--zt-primary); color: #fff; }
.member-page .actions a.button.secondary:hover { border-color: var(--zt-primary); color: var(--zt-primary); }

/* 店型專屬頁 */
/* WO-029A：沿用收據紙表單；下載尚未開放時首屏就顯示正確內容。 */
[data-download-open="false"] [data-download-content], [data-download-open="true"] [data-download-waitlist] { display: none !important; }
#download-request.section-white { background: var(--zt-bg); padding: 0; }
#download-request .receipt { max-width: 560px; margin-inline: auto; padding: 24px 24px 0; font-family: var(--zt-font); font-size: 16px; display: flex; flex-direction: column; }
#download-request .receipt > .powered { margin-top: auto; }
#download-request .receipt-zig { margin-inline: -24px; }
#download-request h2 { margin-top: 12px; font-size: 26px; font-weight: 900; }
#download-request .field { display: grid; gap: 2px; margin-top: 8px; }
#download-request .input, #download-request .select { font: inherit; width: 100%; min-height: 44px; color: var(--zt-ink); background: var(--zt-surface); border: 0; border-bottom: 1px dashed var(--zt-ink); border-radius: 0; padding: 6px 8px; }
#download-request .input:focus, #download-request .select:focus { outline: 2px solid var(--zt-primary); outline-offset: 2px; }
#download-request [data-field-error] { min-height: 20px; color: var(--zt-alert); }
#download-request form > .btn { width: 100%; margin-top: 8px; }
#download-request [role=status] { min-height: 1.8em; }
#download-request .total { margin-block: 28px; flex-wrap: wrap; }
#download-request .total strong { font-size: 24px; }
#missing-path { overflow-wrap: anywhere; min-width: 0; }
.receipt:has(#missing-path) { max-width: 420px; margin: 24px auto; }
.receipt:has(#missing-path) .stamp { color: var(--zt-alert); border-color: var(--zt-alert); }
.page-head em { font-style: normal; color: var(--zt-primary); }
.store-head .glyph { margin-bottom: 4px; }
.store-head h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.15; font-weight: 900; }
.store-step { display: flex; flex-wrap: wrap; gap: 32px; align-items: center; padding-block: 24px; border-top: 1px solid var(--zt-line); }
.store-step-text { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.store-step-text h2 { font-size: clamp(26px, 3.4vw, 36px); line-height: 1.25; font-weight: 900; }
.store-step-text p { color: var(--zt-muted); }
.store-shot { flex: 1.7 1 520px; min-width: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.store-shot img { border-radius: 12px; border: 1px solid var(--zt-line); box-shadow: 0 12px 28px rgba(17, 24, 39, 0.10); }
.store-card img { border-radius: 10px; border: 1px solid var(--zt-line); }
.store-faq-title { font-size: clamp(26px, 3.4vw, 36px); font-weight: 900; margin-bottom: 16px; }
@media (max-width: 640px) {
  .store-shot { flex-basis: 100%; }
}

/* WO-029B：後台共用元件與既有資料布局，唯一維護位置。 */

/* admin：沿用資料與表單排版。 */
:root{--ztpos-bg:var(--zt-bg);--ztpos-ink:var(--zt-ink);--ztpos-ink-soft:var(--zt-muted);--ztpos-muted:var(--zt-muted);--ztpos-line:var(--zt-line);--ztpos-line-strong:var(--zt-line);--ztpos-sage-deep:var(--zt-primary);--ztpos-sage-soft:var(--zt-bg);--ztpos-danger:var(--zt-alert);--shadow-card:0 3px 12px var(--zt-ink)}

        body.zt-admin { background: var(--ztpos-bg); color: var(--ztpos-ink); line-height: 1.72; }
        .admin-page { min-height: 100vh; color: var(--ztpos-ink); }
        .admin-main { width: min(1320px, calc(100% - 32px)); margin: 0 auto; }
        .admin-contact { color: var(--ztpos-muted); font-size: 13px; font-weight: 650; }
        .admin-main { min-width: 0; padding: 28px 0 44px; }
        .admin-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0 0 14px; }
        .admin-section-heading h1,
        .admin-section-heading h2 { margin: 0; letter-spacing: -.035em; }
        .admin-section-heading h1 { font-size: clamp(30px, 4vw, 46px); line-height: 1.16; font-weight: 810; }
        .admin-section-heading h2 { font-size: 22px; line-height: 1.2; }
        .admin-section-heading p { margin: 6px 0 0; color: var(--ztpos-muted); line-height: 1.72; }
        .admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
        .admin-card,
        .admin-table-card,
        .admin-release-card { min-width: 0; max-width: 100%; border: 1px solid var(--zt-line); border-radius: 24px; background: var(--zt-surface); box-shadow: var(--shadow-card); }
        .admin-card { padding: 18px; }
        .admin-card span { display: block; color: var(--ztpos-muted); font-size: 13px; font-weight: 650; }
        .admin-card strong { display: block; margin-top: 7px; color: var(--ztpos-sage-deep); font-size: 28px; line-height: 1.05; letter-spacing: -.04em; }
        .admin-card small { display: block; margin-top: 8px; color: var(--ztpos-muted); line-height: 1.55; }
        .admin-table-card,
        .admin-release-card { margin-top: 18px; overflow: hidden; }
        .admin-table-card header,
        .admin-release-card header { border-bottom: 1px solid var(--ztpos-line); background: var(--zt-bg); padding: 16px 18px; }
        .admin-table-card h2,
        .admin-release-card h2 { margin: 0; font-size: 19px; letter-spacing: -.02em; }
        .admin-table-card p,
        .admin-release-card p { margin: 5px 0 0; color: var(--ztpos-muted); font-size: 13px; line-height: 1.65; }
        .admin-table-scroll-hint { border-bottom: 1px solid var(--ztpos-line); background: var(--zt-bg); color: var(--ztpos-muted); padding: 9px 14px; font-size: 12px; font-weight: 650; }
        .admin-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-gutter: stable both-edges; -webkit-overflow-scrolling: touch; }
        .admin-table-wrap::-webkit-scrollbar { height: 12px; }
        .admin-table-wrap::-webkit-scrollbar-track { background: var(--zt-bg); }
        .admin-table-wrap::-webkit-scrollbar-thumb { background: var(--zt-bg); border: 3px solid var(--zt-bg); border-radius: 999px; }
        .admin-table { width: 100%; min-width: 100%; border-collapse: collapse; table-layout: auto; }
        .admin-table th,
        .admin-table td { min-width: 88px; max-width: 190px; border-bottom: 1px solid var(--zt-line); padding: 12px 12px; text-align: left; vertical-align: top; font-size: 14px; overflow-wrap: anywhere; word-break: break-word; }
        .admin-table th:first-child,
        .admin-table td:first-child { min-width: 150px; max-width: 240px; }
        .admin-table th { border-bottom: 1px solid var(--zt-line); padding: 12px 14px; text-align: left; vertical-align: top; color: var(--ztpos-muted); background: var(--zt-surface); font-size: 12px; font-weight: 760; }
        .admin-table td { color: var(--ztpos-ink); }
        .admin-table-cell > * { max-width: 100%; }
        .admin-muted { color: var(--ztpos-muted); font-size: 13px; overflow-wrap: anywhere; word-break: break-word; }
        .admin-empty { padding: 20px 18px; color: var(--ztpos-muted); font-weight: 650; }
        .admin-status { display: inline-flex; align-items: center; min-height: 28px; border: 1px solid transparent; border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 720; }
        .admin-status.ok { background: var(--ztpos-sage-soft); color: var(--ztpos-sage-deep); border-color: var(--zt-bg); }
        .admin-status.warn { background: var(--zt-bg); color: var(--zt-clock); border-color: var(--zt-bg); }
        .admin-status.danger { background: var(--zt-bg); color: var(--ztpos-danger); border-color: var(--zt-bg); }
        .admin-feedback-form { display: flex; align-items: center; gap: 8px; min-width: 280px; }
        .admin-feedback-form select { min-width: 118px; border: 1px solid var(--ztpos-line-strong); border-radius: 14px; background: var(--zt-surface); color: var(--ztpos-ink); padding: 8px 10px; font: inherit; }
        .admin-feedback-form textarea { min-width: 220px; min-height: 42px; border: 1px solid var(--ztpos-line-strong); border-radius: 12px; background: var(--zt-surface); color: var(--ztpos-ink); padding: 8px 10px; font: inherit; resize: vertical; }
        .admin-feedback-form button { border: 0; border-radius: 999px; background: var(--ztpos-sage-deep); color: var(--zt-surface); padding: 9px 13px; font-weight: 650; cursor: pointer; }
        .admin-feedback-form output { color: var(--ztpos-muted); font-size: 12px; font-weight: 650; }
        .admin-note-form { display: grid; gap: 8px; min-width: 260px; }
        .admin-note-form textarea { width: 100%; min-height: 64px; resize: vertical; border: 1px solid var(--ztpos-line-strong); border-radius: 14px; background: var(--zt-surface); color: var(--ztpos-ink); padding: 9px 11px; font: inherit; }
        .admin-note-form button { justify-self: start; border: 0; border-radius: 999px; background: var(--ztpos-sage-deep); color: var(--zt-surface); padding: 9px 13px; font-weight: 650; cursor: pointer; }
        .admin-note-form output { color: var(--ztpos-muted); font-size: 12px; font-weight: 650; }
        .admin-note-latest { border: 1px solid var(--ztpos-line); border-radius: 16px; background: var(--zt-bg); padding: 10px; color: var(--ztpos-ink-soft); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
        .admin-note-latest strong { display: block; margin-bottom: 3px; color: var(--ztpos-muted); font-size: 12px; }
        .admin-phase2-action-form { display: grid; gap: 7px; min-width: 180px; }
        .admin-phase2-action-form button { justify-self: start; border: 0; border-radius: 999px; background: var(--ztpos-sage-deep); color: var(--zt-surface); padding: 9px 13px; font-weight: 650; cursor: pointer; }
        .admin-phase2-action-form output { color: var(--ztpos-muted); font-size: 12px; font-weight: 650; }
        .admin-release-note { border-top: 1px solid var(--zt-line); padding-top: 8px; font-weight: 650; }
        .admin-release-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; padding: 16px; }
        .admin-release-body div { border: 1px solid var(--ztpos-line); border-radius: 18px; padding: 13px; background: var(--zt-surface); }
        .admin-release-body span { display: block; color: var(--ztpos-muted); font-size: 12px; font-weight: 700; }
        .admin-release-body strong { display: block; margin-top: 6px; overflow-wrap: anywhere; }
        .admin-readiness-panel { border-bottom: 1px solid var(--zt-line); padding: 16px 18px; background: var(--zt-bg); }
        .admin-readiness-panel h3 { margin: 0 0 8px; font-size: 16px; letter-spacing: -.01em; }
        .admin-readiness-summary { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--ztpos-muted); font-size: 13px; font-weight: 650; }
        .admin-readiness-list { display: grid; gap: 7px; margin: 12px 0 0; padding: 0; list-style: none; }
        .admin-readiness-list li { border: 1px solid var(--zt-line); border-radius: 14px; padding: 9px 11px; background: var(--zt-surface); }
        .admin-readiness-list code { display: inline-block; margin-right: 7px; color: var(--ztpos-muted); font-size: 12px; }
        @media (max-width: 720px) {
            .admin-section-heading { align-items: flex-start; flex-direction: column; }
            .admin-table-scroll-hint { display: none; }
            .admin-table-wrap { overflow-x: visible; }
            .admin-table,
            .admin-table thead,
            .admin-table tbody,
            .admin-table tr,
            .admin-table th,
            .admin-table td { display: block; width: 100%; min-width: 0; max-width: none; }
            .admin-table { table-layout: auto; }
            .admin-table thead { display: none; }
            .admin-table tr { border-bottom: 1px solid var(--zt-line); padding: 8px 0; }
            .admin-table td { display: grid; grid-template-columns: minmax(110px, 34%) minmax(0, 1fr); gap: 10px; border-bottom: 0; }
            .admin-table td::before { content: attr(data-label); color: var(--ztpos-muted); font-size: 12px; font-weight: 760; }
            .admin-feedback-form { align-items: stretch; flex-direction: column; min-width: 0; }
            .admin-note-form { min-width: 0; }
            .admin-phase2-action-form { min-width: 0; }
        }.admin-card,.admin-table-card,.admin-release-card{border-radius:16px}.admin-main a,.admin-main input,.admin-main select,.admin-main textarea{max-width:100%}.admin-main input,.admin-main select,.admin-main textarea{font:inherit}.admin-main{overflow-wrap:anywhere}.admin-table-card header,.admin-release-card header{background:var(--zt-bg)}

/* backoffice：沿用資料與表單排版。 */
/* WO-027：三種後台的版面與操作元件；沿用首頁字體與品牌色。 */

body.bo-ready{background:var(--zt-bg);font-size:15px;line-height:1.5;color:var(--zt-ink);font-variant-numeric:tabular-nums}
.bo-ready h1,.bo-ready .console-page h1{font-size:24px;line-height:1.3;margin:0 0 12px;font-weight:700}
.bo-ready h2,.bo-ready .console-page h2,.bo-ready .member-page .panel h2{font-size:16px;line-height:1.4;margin:0 0 12px;font-weight:600}
.bo-ready h3{font-size:15px;margin:0 0 8px}.bo-ready p{margin:0 0 8px}.bo-ready a{text-decoration:none}
.bo-ready button,.bo-ready a,.bo-ready summary,.bo-ready input:not([type=hidden]),.bo-ready select{min-height:44px;min-width:44px}
.bo-ready a{display:inline-flex;align-items:center}.bo-ready button,.bo-ready .button{border-radius:8px;font:inherit;min-height:44px;cursor:pointer}
.bo-ready input:not([type=checkbox]):not([type=hidden]),.bo-ready select,.bo-ready textarea{font:inherit;min-height:44px;border:1px solid var(--zt-line);border-radius:8px;padding:10px 12px;max-width:100%;min-width:0;background:var(--zt-surface);color:inherit}
.bo-ready input[type=checkbox]{width:44px;height:44px;vertical-align:middle;accent-color:var(--zt-primary);flex-shrink:0}
.bo-ready label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px;min-height:44px}
.bo-ready button.secondary,.bo-ready .button.secondary,.bo-secondary{background:var(--zt-surface)!important;color:var(--zt-muted)!important;border:1px solid var(--zt-line)!important}
.bo-ready :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--zt-primary);outline-offset:2px}
.bo-brand{display:flex!important;gap:10px;color:var(--zt-ink);font-weight:800;letter-spacing:.04em;white-space:nowrap}.bo-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--zt-primary);color:var(--zt-surface);font-size:15px;letter-spacing:0}
.bo-role{font-size:15px;background:var(--zt-bg);color:var(--zt-primary-dark);border-radius:999px;padding:5px 10px;white-space:nowrap}
.bo-account{display:flex;align-items:center;gap:12px;margin-left:auto;min-width:0}.bo-account-name{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--zt-muted)}
.bo-ready .bo-logout{background:var(--zt-surface);color:var(--zt-muted);border:1px solid var(--zt-line);padding:0 14px;border-radius:8px;font-weight:500}.bo-logout:hover{color:var(--zt-alert);background:var(--zt-alert-bg)}
.bo-nav-icon{width:20px;text-align:center;font-size:15px;opacity:.7}.bo-updated{font-size:15px;color:var(--zt-subtle);white-space:nowrap}.bo-refresh{background:var(--zt-surface)!important;border:1px solid var(--zt-line)!important;color:var(--zt-muted)!important;padding:0 12px!important}
.bo-admin main.console-page,.bo-admin .admin-main{width:auto;max-width:1664px;margin:0 0 0 240px;padding:24px 32px 60px}.bo-admin main.console-page>a[href="/admin/"]{display:none!important}.bo-ready [hidden]{display:none!important}
.bo-member .member-page{max-width:1360px;padding:24px 32px;margin:auto}.bo-member .member-session-bar{display:none}.bo-member .member-grid{gap:20px}.bo-member .page-section{margin-block:0 20px}.bo-member #dashboardArea{display:block}.bo-member #dashboardArea>.panel{margin-bottom:20px}.bo-member .panel,.bo-ready .console-card,.bo-ready .admin-card,.bo-ready .admin-table-card,.bo-ready .admin-release-card{border:1px solid var(--zt-line);border-radius:12px;box-shadow:none;background:var(--zt-surface)}
.bo-member #member-overview{max-width:none;padding:0;border:0;box-shadow:none;background:transparent;overflow:visible}.bo-member #member-overview>header{padding:0 0 12px;border:0;background:transparent}.bo-member #member-overview>.panel-body{padding:0}.bo-member .panel>header{padding:18px 20px;background:var(--zt-surface)}.bo-member .panel-body{padding:20px}
.bo-ready .console-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.bo-ready .console-card{padding:20px;margin:0;min-width:0;color:var(--zt-ink);position:relative}.bo-ready .console-card>span:first-child{display:block;color:var(--zt-muted);font-size:15px}.bo-ready .console-number{font-size:28px;line-height:1.2;color:var(--zt-ink);font-weight:700;margin:12px 0 6px;display:block;overflow-wrap:anywhere}
.bo-ready a.console-card{display:block;text-decoration:none;min-height:132px}.bo-ready a.console-card:after{content:'查看明細 →';display:block;font-size:15px;color:var(--zt-primary);margin-top:12px}.bo-ready a.console-card:hover{border-color:var(--zt-primary);box-shadow:0 4px 12px var(--zt-primary);transform:translateY(-1px)}
.bo-card-note{font-size:15px;color:var(--zt-subtle);display:block}.bo-card-warning{}.bo-card-danger{}
.bo-overview-workspace{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-top:20px;align-items:start}.bo-surface{background:var(--zt-surface);border:1px solid var(--zt-line);box-shadow:none;border-radius:12px;padding:20px;min-width:0}.bo-surface-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.bo-surface-heading h3{margin:0}.bo-ready .bo-surface-heading label{margin:0;display:flex;align-items:center;gap:8px;white-space:nowrap;font-weight:400}.bo-ready .bo-surface-heading select{width:110px}.bo-ready progress{appearance:none;width:100%;height:10px;border:0;border-radius:999px;overflow:hidden;background:var(--zt-line);margin:8px 0 16px}.bo-ready progress::-webkit-progress-bar{background:var(--zt-line)}.bo-ready progress::-webkit-progress-value{background:var(--usage-color,var(--zt-primary));border-radius:999px}
.bo-ready .console-chart{height:176px;position:relative;display:block;margin:16px 0 12px}.bo-trend-svg{width:100%;height:100%;display:block;overflow:visible}.bo-chart-tooltip{position:absolute;background:var(--zt-ink);color:var(--zt-surface);padding:8px 12px;border-radius:6px;pointer-events:none;font-size:15px;top:8px;right:8px;box-shadow:none}.bo-chart-axis{display:flex;justify-content:space-between;color:var(--zt-subtle);font-size:15px}.bo-ready details>summary{display:flex;align-items:center;color:var(--zt-primary);cursor:pointer}.bo-ready details table{font-size:15px}.bo-service{border-top:1px solid var(--zt-line);padding-top:14px;margin-top:14px}.bo-ready #request-headquarters{margin-top:10px}.bo-ready .console-actions{gap:8px;margin:12px 0 0}.bo-ready .console-actions a{padding:0 12px;border:1px solid var(--zt-line);border-radius:8px;background:var(--zt-surface)}
.bo-ready .console-page{max-width:1360px;padding:24px 32px}.bo-dealer .console-page{margin:auto}.bo-ready .console-page fieldset{margin:20px 0;padding:20px;border-radius:12px}.bo-ready .console-page section{margin-top:24px}.bo-dealer #store-list,.bo-dealer #support-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bo-store-card .bo-store-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.bo-badge{display:inline-flex;align-items:center;min-height:24px;border-radius:6px;padding:3px 8px;background:var(--zt-bg);color:var(--zt-muted);font-size:15px}.bo-badge.warning{background:var(--zt-clock-bg);color:var(--zt-clock)}.bo-badge.success{background:var(--zt-ok-bg);color:var(--zt-ok)}.bo-chipbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.bo-ready .bo-chipbar button{padding:8px 14px;background:var(--zt-surface);border:1px solid var(--zt-line);color:var(--zt-muted)}.bo-ready .bo-chipbar button[aria-pressed=true]{border-color:var(--zt-primary);background:var(--zt-bg);color:var(--zt-primary)}.bo-chipbar input{flex:1;min-width:180px!important}.bo-ready .bo-primary{background:var(--zt-primary);color:var(--zt-surface);border:1px solid var(--zt-primary);padding:10px 16px;border-radius:8px;justify-content:center}
.bo-empty{grid-column:1/-1;padding:28px 24px;text-align:center;background:var(--zt-bg);border:1px dashed var(--zt-line);border-radius:12px;color:var(--zt-muted)}.bo-empty strong{display:block;font-size:16px;color:var(--zt-ink);margin:8px 0}.bo-empty svg{color:var(--zt-subtle);margin:auto}.bo-empty p{margin:8px 0 16px}.bo-empty a,.bo-empty button{justify-content:center}.bo-ready #overview-replies:empty{display:none}.bo-ready #overview-devices p{font-size:15px;color:var(--zt-subtle);margin-top:10px}.bo-ready .console-page table{background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:12px}.bo-ready th{background:var(--zt-bg);color:var(--zt-muted);font-size:15px}.bo-ready td,.bo-ready th{padding:14px 16px;min-height:52px}.bo-ready tbody tr:hover{background:var(--zt-bg)}.bo-ready .admin-section-heading{margin-top:0}.bo-ready .admin-section-heading h1{font-size:24px}.bo-ready .admin-metrics{gap:20px}.bo-ready .admin-card strong{font-size:28px;color:var(--zt-ink)}.bo-ready .admin-card{padding:20px}.bo-ready .admin-empty{border:1px dashed var(--zt-line);border-radius:12px;background:var(--zt-bg);padding:24px}.bo-ready .admin-status{border-radius:6px}.bo-ready .site-footer{margin-top:24px}.bo-ready .site-footer a{padding:0 4px}.bo-ready :is(section,article,fieldset,[id]){scroll-margin-top:84px}
.bo-ready #exclude-test{appearance:none;position:relative;background:transparent;width:44px;height:44px;margin:0;cursor:pointer}.bo-ready #exclude-test:before{content:'';position:absolute;left:0;top:10px;width:44px;height:24px;border-radius:999px;background:var(--zt-line)}.bo-ready #exclude-test:after{content:'';position:absolute;left:3px;top:13px;width:18px;height:18px;border-radius:50%;background:var(--zt-surface);box-shadow:0 1px 3px var(--zt-ink)}.bo-ready #exclude-test:checked:before{background:var(--zt-primary)}.bo-ready #exclude-test:checked:after{left:23px}
@media(min-width:769px){.bo-admin #plan-form{max-width:760px}.bo-admin #membership-panel{max-width:760px}.bo-member #authArea{display:grid;grid-template-columns:1fr 1fr}.bo-member #loginPanel{grid-column:1;grid-row:1;align-self:start}.bo-member #register{grid-column:2;grid-row:1/3}.bo-member #servicePanel{grid-column:1;grid-row:2}.bo-member #loginPanel,.bo-member #register,.bo-member #servicePanel{width:auto}.bo-member #dashboardArea>.panel:not(#member-overview){scroll-margin-top:84px}}
@media(max-width:1100px) and (min-width:769px){.bo-role,.bo-account-name{display:none}.bo-overview-workspace{grid-template-columns:1.6fr 1fr}.bo-ready .console-grid{gap:12px}.bo-admin .bo-updated{display:none}}
@media(max-width:768px){.bo-account{display:none!important}.bo-member .member-page,.bo-ready .console-page,.bo-admin main.console-page,.bo-admin .admin-main{padding:20px 16px 88px;width:100%;margin:0;max-width:none}.bo-ready .console-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bo-ready .console-card{padding:16px}.bo-ready .console-number{font-size:24px;margin:10px 0 4px}.bo-ready a.console-card{min-height:132px}.bo-ready h1,.bo-ready .console-page h1,.bo-ready .admin-section-heading h1{font-size:20px}.bo-member .member-page .panel h2{font-size:16px}.bo-member #member-overview>header{padding-bottom:12px}.bo-member #member-overview>.panel-body{padding:0}.bo-member .panel-body,.bo-member .panel>header{padding:16px}.bo-member #member-overview{margin:0 0 20px!important}.bo-overview-workspace{display:block;margin-top:16px}.bo-surface{padding:16px;margin-bottom:16px}.bo-surface-heading{gap:8px}.bo-ready .bo-surface-heading label{font-size:15px}.bo-ready .console-chart{height:160px}.bo-dealer #store-list,.bo-dealer #support-list{grid-template-columns:1fr}.bo-ready .bo-chipbar{gap:8px}.bo-chipbar input{flex-basis:100%}.bo-ready .bo-chipbar button{flex:1;padding:8px;font-size:15px}.bo-store-card .console-actions{display:grid;grid-template-columns:1fr 1fr}.bo-store-card .console-actions button{padding:8px 6px}.bo-member .site-footer{margin-bottom:60px}.bo-ready table,.bo-ready tbody,.bo-ready tr,.bo-ready td{display:block;width:100%;min-width:0!important;max-width:100%}.bo-ready thead{display:none}.bo-ready td{padding:10px 12px}.bo-ready td:before{content:attr(data-label);display:block;color:var(--zt-subtle);font-size:15px}.bo-ready tr{border:1px solid var(--zt-line);border-radius:12px;margin:12px 0}.bo-ready .admin-table td{grid-template-columns:1fr!important}.bo-ready .admin-table-scroll-hint{display:none}.bo-ready .admin-table-wrap{overflow:visible}.bo-ready .admin-table-card,.bo-ready .admin-release-card{overflow:hidden}.bo-ready .admin-table-card>header{padding:16px}.bo-ready .admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.bo-ready .admin-contact{display:none}.bo-ready .admin-section-heading{display:block}.bo-ready .admin-section-heading .nav-cta{margin:12px 0}.bo-ready .console-page form select{width:100%}.bo-ready .console-page dialog{max-height:calc(100dvh - 100px)}.bo-ready .bo-dealer-primary{width:100%;margin-top:12px}.bo-ready .bo-card-note{font-size:11px}.bo-ready .bo-page-actions{margin-bottom:16px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

body.bo-ready{font-size:16px;background:var(--zt-bg);font-family:var(--zt-font)}
.bo-ready .panel,.bo-ready .console-card,.bo-ready .admin-card,.bo-ready .admin-table-card,.bo-surface{border-radius:16px;box-shadow:none}

/* console：沿用資料與表單排版。 */
/* WO-025：後台共同元件，色彩與字型一律沿用首頁。 */
.console-page{max-width:1280px;margin:auto;padding:28px 24px;overflow-wrap:anywhere}.console-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.console-page h1{font-size:clamp(28px,4vw,42px);margin:16px 0}.console-page h2{font-size:22px;margin-bottom:12px}.console-page label{display:block;margin:12px 0}.console-page input:not([type=checkbox]),.console-page select,.console-page textarea{font:inherit;max-width:100%;min-width:0;padding:10px;border:1px solid var(--zt-line);border-radius:8px;background:white}.console-page select{width:100%}.console-page button,.console-page .button{font:inherit;background:var(--zt-primary);color:white;border:0;border-radius:12px;padding:10px 18px;min-height:44px;cursor:pointer}.console-page button:disabled{opacity:.5;cursor:default}.console-page fieldset,.console-card{border:1px solid var(--zt-line);border-radius:16px;background:var(--zt-surface);padding:24px;margin:18px 0;min-width:0}.console-page table{width:100%;border-collapse:collapse;table-layout:fixed}.console-page th,.console-page td{padding:12px;text-align:left;border-bottom:1px solid var(--zt-line);overflow-wrap:anywhere}.console-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}.console-grid .console-card{margin:0}.console-number{display:block;font-size:30px;color:var(--zt-primary);font-weight:700}.console-muted{color:var(--zt-muted)}.console-warning{color:var(--zt-alert)}.console-page .danger{background:var(--zt-alert)}.console-chart{display:flex;gap:4px;align-items:end;height:150px;margin:16px 0}.console-bar{flex:1;min-width:0;background:var(--zt-primary);border-radius:4px 4px 0 0}.console-page progress{width:100%;accent-color:var(--zt-primary)}.console-page dialog{border:1px solid var(--zt-line);border-radius:16px;max-width:560px;width:calc(100% - 32px);max-height:90vh;overflow:auto}.console-page dialog::backdrop{background:var(--zt-muted)}.console-page [hidden]{display:none!important}.console-status{white-space:pre-wrap;margin:12px 0}.console-page .notice{background:var(--zt-alert-bg);padding:16px;border-radius:12px}@media(max-width:600px){.console-page{padding:18px 16px}.console-page fieldset,.console-card{padding:18px}.console-page table,.console-page tbody,.console-page tr,.console-page td{display:block;width:100%}.console-page thead{display:none}.console-page td:before{content:attr(data-label);display:block;font-size:13px;color:var(--zt-muted)}.console-page tr{margin:12px 0;border:1px solid var(--zt-line);border-radius:12px}.console-page button{max-width:100%;white-space:normal}}

/* member：沿用資料與表單排版。 */
/* 會員中心使用新版 site.css 字型、配色；只補會員表單與資料排版。 */
.member-page { max-width:1280px; margin:auto; padding:24px; }
.member-page .hidden { display:none !important; }
.member-page .page-section { margin-block:20px; }
.member-page .member-hero { padding-block:20px; }
.member-page h1 { font-size:clamp(28px,4vw,42px); margin-bottom:18px; }
.member-page .summary { max-width:960px; }
.member-page .member-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; }
.member-page .span-4 { grid-column:span 4; }.member-page .span-6 { grid-column:span 6; }.member-page .span-8 { grid-column:span 8; }.member-page .span-12 { grid-column:span 12; }
.member-page .panel { background:var(--zt-surface); border:1px solid var(--zt-line); border-radius:16px; min-width:0; overflow:hidden; }
.member-page .panel>header { padding:20px 24px; border-bottom:1px solid var(--zt-line); }
.member-page .panel h2 { font-size:22px; margin:0; }.member-page .panel-body { padding:24px; }
.member-page label { display:block; margin-block:14px 6px; font-weight:700; }
.member-page input:not([type=checkbox]):not([type=radio]),.member-page select,.member-page textarea { width:100%; max-width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--zt-line); border-radius:8px; font:inherit; color:inherit; background:var(--zt-surface); box-sizing:border-box; }
.member-page button,.member-page .button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 16px; border:1px solid var(--zt-primary); background:var(--zt-primary); color:var(--zt-surface); border-radius:8px; font:inherit; font-weight:700; cursor:pointer; }
.member-page button:disabled { opacity:.55; cursor:wait; }
.member-page .actions { display:flex; flex-wrap:wrap; gap:12px; margin-block:16px; }
.member-page .muted,.member-page small { color:var(--zt-muted); }
.member-page .warning-note { padding:18px; background:var(--zt-clock-bg); border-radius:8px; margin-block:16px; }
.member-page .status-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.member-page .status-list>.row { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.member-page .panel { scroll-margin-top:100px; }
.member-page .rows>div,.member-page .status-list>div { padding:12px; border-bottom:1px solid var(--zt-line); overflow-wrap:anywhere; }
.member-page .rows p { margin-block:6px; }.member-page .message { margin-block:14px; overflow-wrap:anywhere; }
.member-page .member-link-code { font-family:var(--zt-mono); font-size:clamp(22px,5vw,36px); font-weight:700; letter-spacing:.06em; overflow-wrap:anywhere; user-select:all; }
.member-page .member-device { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }.member-page .member-device p { flex:1 1 400px; font-size:17px; }
@media(max-width:600px){.member-page{padding:16px}.member-page .member-grid{display:block}.member-page .panel{margin-block:20px}.member-page .panel-body,.member-page .panel>header{padding:18px}.member-page .status-list{grid-template-columns:1fr}.member-page button{max-width:100%;white-space:normal}.member-page .member-device{align-items:flex-start}}

/* portal：沿用資料與表單排版。 */
/* 管理後台結構樣式：色彩、字型與元件以首頁 site.css 為準。 */
/* WO-028B 會員與經銷商沿用同一套表格及首頁元件。 */
:is(.zt-admin,.zt-portal){font-size:16px;line-height:1.75}:is(.zt-admin,.zt-portal) h1{font-size:32px;font-weight:900}:is(.zt-admin,.zt-portal) h2{font-size:22px;font-weight:700}:is(.zt-admin,.zt-portal) h3{font-size:18px}:is(.zt-admin,.zt-portal) p{margin:0 0 12px}:is(.zt-admin,.zt-portal) .eyebrow{color:var(--zt-primary);font-weight:700;margin:0}:is(.zt-admin,.zt-portal) .workspace{padding-block:28px 64px}:is(.zt-admin,.zt-portal) .workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}:is(.zt-admin,.zt-portal) #global-search{display:flex;gap:8px}:is(.zt-admin,.zt-portal) input,:is(.zt-admin,.zt-portal) select,:is(.zt-admin,.zt-portal) textarea{font:inherit;color:var(--zt-ink);background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:10px;padding:9px 12px;min-height:44px;max-width:100%}:is(.zt-admin,.zt-portal) input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--zt-primary)}:is(.zt-admin,.zt-portal) button{font-family:inherit;cursor:pointer}:is(.zt-admin,.zt-portal) .btn{min-height:44px;padding:9px 16px;font-size:16px}:is(.zt-admin,.zt-portal) .btn:disabled{opacity:.5;cursor:default}:is(.zt-admin,.zt-portal) .btn-ghost{border:1px solid var(--zt-line);text-decoration:none}:is(.zt-admin,.zt-portal) .card{background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:16px;padding:22px;min-width:0;margin-bottom:20px}:is(.zt-admin,.zt-portal) .cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}:is(.zt-admin,.zt-portal) a.card{display:block;color:var(--zt-ink);text-decoration:none}:is(.zt-admin,.zt-portal) a.card:hover{border-color:var(--zt-primary)}:is(.zt-admin,.zt-portal) .metric-number{font-size:36px;line-height:1.3;margin:12px 0;color:var(--zt-primary)}:is(.zt-admin,.zt-portal) .muted{color:var(--zt-muted)}:is(.zt-admin,.zt-portal) .chip{font-size:15px;border-color:var(--zt-line);white-space:nowrap}:is(.zt-admin,.zt-portal) .chip.warning{color:var(--zt-clock);background:var(--zt-clock-bg)}:is(.zt-admin,.zt-portal) .chip.alert{color:var(--zt-alert);background:var(--zt-alert-bg)}:is(.zt-admin,.zt-portal) .chip.ok{color:var(--zt-ok);background:var(--zt-ok-bg)}:is(.zt-admin,.zt-portal) .chipbar,:is(.zt-admin,.zt-portal) .tabs,:is(.zt-admin,.zt-portal) .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}:is(.zt-admin,.zt-portal) .chipbar a,:is(.zt-admin,.zt-portal) .tabs a{padding:7px 14px;text-decoration:none;color:var(--zt-muted);border:1px solid var(--zt-line);border-radius:999px;background:var(--zt-surface)}:is(.zt-admin,.zt-portal) .chipbar a[aria-current],:is(.zt-admin,.zt-portal) .tabs a[aria-current]{color:var(--zt-primary);border-color:var(--zt-primary);font-weight:700}:is(.zt-admin,.zt-portal) .filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:16px 0}:is(.zt-admin,.zt-portal) .filters label{display:grid;gap:4px;font-size:15px;color:var(--zt-muted)}:is(.zt-admin,.zt-portal) .filters input[type=search]{width:260px}:is(.zt-admin,.zt-portal) .filters select{max-width:180px}:is(.zt-admin,.zt-portal) .selection-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:var(--zt-bg);border:1px solid var(--zt-line);border-radius:12px;margin:12px 0}:is(.zt-admin,.zt-portal) .selection-bar:empty{display:none}:is(.zt-admin,.zt-portal) .table-wrap{overflow:auto;border:1px solid var(--zt-line);border-radius:12px}:is(.zt-admin,.zt-portal) table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:15px;background:var(--zt-surface)}:is(.zt-admin,.zt-portal) th,:is(.zt-admin,.zt-portal) td{height:52px;max-height:56px;padding:6px 10px;border-bottom:1px solid var(--zt-line);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:is(.zt-admin,.zt-portal) th{background:var(--zt-bg);color:var(--zt-muted);font-weight:700}:is(.zt-admin,.zt-portal) th:first-child,:is(.zt-admin,.zt-portal) td:first-child{width:44px;text-align:center}:is(.zt-admin,.zt-portal) th:last-child,:is(.zt-admin,.zt-portal) td:last-child{width:92px}:is(.zt-admin,.zt-portal) th button{font:inherit;color:inherit;background:none;border:0;padding:0;min-height:36px}:is(.zt-admin,.zt-portal) td .btn{font-size:15px;padding:3px 8px;min-height:36px}:is(.zt-admin,.zt-portal) td button.copy{font:inherit;background:transparent;border:0;color:var(--zt-primary);min-height:36px;padding:0 5px}:is(.zt-admin,.zt-portal) tbody tr:hover{background:var(--zt-bg)}:is(.zt-admin,.zt-portal) .pagination{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:16px}:is(.zt-admin,.zt-portal) .two-columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px;align-items:start}:is(.zt-admin,.zt-portal) .customer-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:24px;align-items:start}:is(.zt-admin,.zt-portal) .customer-main{min-width:0}:is(.zt-admin,.zt-portal) .detail-fields{display:grid;grid-template-columns:minmax(100px,auto) 1fr;gap:8px 16px}:is(.zt-admin,.zt-portal) .detail-fields dt{color:var(--zt-muted)}:is(.zt-admin,.zt-portal) .detail-fields dd{margin:0;overflow-wrap:anywhere}:is(.zt-admin,.zt-portal) .edit-form{display:grid;gap:12px;margin:12px 0 24px}:is(.zt-admin,.zt-portal) .edit-form label{display:grid;gap:4px}:is(.zt-admin,.zt-portal) .edit-form label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}:is(.zt-admin,.zt-portal) .edit-form textarea{min-height:90px;resize:vertical}:is(.zt-admin,.zt-portal) .danger-zone{background:var(--zt-alert-bg);border:1px solid var(--zt-alert);border-radius:16px;padding:20px}:is(.zt-admin,.zt-portal) .danger-zone h3{color:var(--zt-alert)}:is(.zt-admin,.zt-portal) .receipt{max-width:none;font-size:15px;padding:20px 20px 0;margin-bottom:24px}:is(.zt-admin,.zt-portal) .receipt-zig{margin:0 -20px}:is(.zt-admin,.zt-portal) .event{padding:12px 0;border-bottom:1px dashed var(--zt-line)}:is(.zt-admin,.zt-portal) .event time{display:block;color:var(--zt-subtle)}:is(.zt-admin,.zt-portal) .event:last-of-type{border:0}:is(.zt-admin,.zt-portal) .empty{padding:24px;color:var(--zt-muted);background:var(--zt-bg);border-radius:12px}:is(.zt-admin,.zt-portal) .detail-list{display:grid;gap:10px;margin-top:12px}:is(.zt-admin,.zt-portal) .detail-item{border-bottom:1px solid var(--zt-line);padding-bottom:12px;overflow-wrap:anywhere}:is(.zt-admin,.zt-portal) pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--zt-bg);padding:16px;font-size:15px}:is(.zt-admin,.zt-portal) dialog{color:var(--zt-ink);border:1px solid var(--zt-line);border-radius:16px;padding:24px;max-height:90vh;width:800px;max-width:90vw;background:var(--zt-surface)}:is(.zt-admin,.zt-portal) dialog::backdrop{background:color-mix(in srgb,var(--zt-ink) 35%,transparent)}:is(.zt-admin,.zt-portal) .drawer-heading{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-24px;background:var(--zt-surface);z-index:1;padding:10px 0}:is(.zt-admin,.zt-portal) iframe{width:100%;height:70vh;border:1px solid var(--zt-line);border-radius:12px}:is(.zt-admin,.zt-portal) [hidden]{display:none!important}:is(.zt-admin,.zt-portal) .notice{color:var(--zt-clock);background:var(--zt-clock-bg);padding:12px 16px;border-radius:12px}:is(.zt-admin,.zt-portal) .customer-title{display:flex;align-items:center;gap:12px}:is(.zt-admin,.zt-portal) .customer-title .mono{font-size:15px}:is(.zt-admin,.zt-portal) .detail-item .actions{margin-bottom:0}:is(.zt-admin,.zt-portal) .site-nav{gap:6px 18px}:is(.zt-admin,.zt-portal) .site-header{backdrop-filter:blur(12px)}

:is(.zt-admin,.zt-portal) th .btn{border:0;background:transparent;font-size:15px;padding:0;min-height:36px}:is(.zt-admin,.zt-portal) td .chip{margin-left:4px}:is(.zt-admin,.zt-portal) .global-search input{min-width:300px}

/* 會員與經銷商結構；只讀首頁 --zt-* 變數。 */
.zt-portal{font-size:17px;line-height:1.75;font-family:var(--zt-font)}.zt-portal main,.zt-portal .member-page{max-width:1440px!important;margin:auto!important;padding:28px 24px 80px!important;width:100%;overflow-wrap:anywhere}.zt-portal .console-page{min-width:0}.zt-portal h1{font-size:32px}.zt-portal h2{font-size:24px}.zt-portal h3{font-size:19px}.zt-portal p{margin-bottom:12px}.zt-portal section,.zt-portal article{scroll-margin-top:100px;min-width:0}.zt-portal .console-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:20px}.zt-portal #dealer-todos{grid-template-columns:repeat(3,minmax(0,1fr))}.zt-portal .console-card,.zt-portal .bo-surface{background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:16px;padding:22px;min-width:0}.zt-portal .console-card{display:block;text-decoration:none;color:var(--zt-ink)}.zt-portal .console-number,.zt-portal .metric-number{display:block;font-family:var(--zt-mono);font-size:32px;line-height:1.3;margin:12px 0;color:var(--zt-primary)}.zt-portal .console-muted{color:var(--zt-muted)}.zt-portal .console-warning,.zt-portal .alert{color:var(--zt-alert)}.zt-portal .warning{color:var(--zt-clock)}.zt-portal .console-actions,.zt-portal .bo-chipbar,.zt-portal .bo-page-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.zt-portal button,.zt-portal .button{font:inherit;min-height:44px;border:1px solid var(--zt-line);border-radius:10px;padding:8px 16px;background:var(--zt-surface);color:var(--zt-primary);cursor:pointer}.zt-portal .btn-primary,.zt-portal .bo-primary,.zt-portal button[type=submit]{background:var(--zt-primary);color:var(--zt-surface);border-color:var(--zt-primary)}.zt-portal button:disabled{opacity:.5;cursor:default}.zt-portal .bo-overview-workspace{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:20px;margin-block:24px}.zt-portal .bo-surface-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.zt-portal .console-chart{height:220px;margin:24px 0}.zt-portal .console-chart svg{width:100%;height:100%;display:block}.zt-portal .console-bar{background:var(--zt-primary);flex:1;min-width:0}.zt-portal .bo-chart-axis{display:flex;justify-content:space-between;font-family:var(--zt-mono);color:var(--zt-muted)}.zt-portal progress{width:100%;accent-color:var(--zt-primary)}.zt-portal .bo-service{padding-top:16px;margin-top:16px;border-top:1px solid var(--zt-line)}.zt-portal fieldset{border:1px solid var(--zt-line);background:var(--zt-surface);border-radius:16px;padding:22px;margin:20px 0}.zt-portal fieldset label{display:block;margin:12px 0}.zt-portal .bo-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--zt-ink);font-weight:900;white-space:nowrap}.zt-portal .bo-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--zt-primary);color:var(--zt-surface);font-size:15px}.zt-portal .bo-role{color:var(--zt-primary);font-size:15px}.zt-portal [aria-pressed=true],.zt-portal .tabs [aria-current=page]{background:var(--zt-pro-bg);color:var(--zt-primary)}.zt-portal .bo-account{display:flex;align-items:center;gap:16px;margin-left:auto;min-width:0}.zt-portal .bo-account-name{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zt-portal .bo-empty{padding:20px;color:var(--zt-muted)}.zt-portal .bo-empty svg{display:none}.zt-portal .bo-empty strong{display:block}.zt-portal #member-overview{padding:0!important}.zt-portal .member-page .panel{overflow:visible}.zt-portal #member-overview>header{border:0}.zt-portal .id-value{display:inline-flex;gap:4px;align-items:center;max-width:100%}.zt-portal .receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.zt-portal .receipt{font-size:17px;overflow-wrap:anywhere}.zt-portal .receipt .detail-fields{display:block}.zt-portal .receipt dt{font-size:15px;margin-top:8px}.zt-portal .receipt dd{font-family:var(--zt-mono)}.zt-portal .pagination{flex-wrap:wrap;gap:10px}.zt-portal .no-selection th:first-child,.zt-portal .no-selection td:first-child{width:auto;text-align:left}.zt-portal input[type=search]{max-width:100%}.zt-portal #store-search{width:300px}.zt-portal table{font-size:15px}.zt-portal th button,.zt-portal td .btn{min-height:44px!important}.zt-portal td .btn{padding:2px 8px}.zt-portal th,.zt-portal td{height:56px;max-height:56px;padding-block:4px}.portal-print-root{display:none}
@media(max-width:768px){.zt-portal main,.zt-portal .member-page{padding:20px 16px 88px!important}.zt-portal .console-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.zt-portal #dealer-todos{grid-template-columns:1fr}.zt-portal .bo-overview-workspace,.zt-portal .receipt-grid{grid-template-columns:1fr}.zt-portal .bo-account,.zt-portal .bo-role{display:none}.zt-portal .filters label,.zt-portal .filters input,.zt-portal .filters select{width:100%;max-width:none}.zt-portal .table-wrap{overflow:visible;border:0}.zt-portal table,.zt-portal tbody,.zt-portal tr,.zt-portal td{display:block;width:100%;max-height:none;min-width:0;white-space:normal;height:auto;text-align:left!important}.zt-portal thead{display:none}.zt-portal tr{border:1px solid var(--zt-line);border-radius:16px;margin:12px 0;padding:12px}.zt-portal td{padding:6px 0;border:0}.zt-portal td:before{content:attr(data-label);display:block;font-family:var(--zt-font);font-size:15px;color:var(--zt-muted)}.zt-portal td:first-child,.zt-portal td:last-child{width:auto!important}.zt-portal dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:16px}.zt-portal .detail-fields{grid-template-columns:1fr}.zt-portal .detail-fields dd{margin-bottom:8px}.zt-portal .bo-chipbar input{width:100%!important}.zt-portal h1{font-size:28px}.zt-portal #grant-form input[type=number],.zt-portal #grant-form select{width:100%}.zt-portal .selection-bar>*{max-width:100%}.zt-portal .bo-surface-heading{flex-wrap:wrap}}
@media print{body>*:not(.portal-print-root){display:none!important}.portal-print-root{display:block!important;background:var(--zt-surface);color:var(--zt-ink);padding:20px;font-family:var(--zt-mono)}.portal-print-root .receipt{box-shadow:none;max-width:none}.portal-print-root button{display:none!important}}

/* 巡檢校正：維持原總覽布局、手機排序與單一CSV匯出。 */
.zt-portal .member-page>main{padding:0!important}.zt-portal.bo-authenticated .member-session-bar{display:none}.zt-portal .member-page .panel{padding:0;display:block}.zt-portal #member-overview{background:transparent;border:0;margin-top:0}.zt-portal #member-overview>header{padding:0 0 20px}.zt-portal #member-overview>.panel-body{padding:0}.zt-portal #dealer-todos .card{text-align:left;align-items:flex-start}.zt-portal #dealer-todos .metric-number{margin-bottom:0}.zt-portal .bo-page-actions a{padding:8px 14px;border:1px solid var(--zt-line);border-radius:10px;background:var(--zt-surface);text-decoration:none}.zt-portal .bo-card-note{font-size:15px;color:var(--zt-muted)}.zt-portal .bo-chart-tooltip{padding:8px 12px;border:1px solid var(--zt-line);background:var(--zt-surface);border-radius:8px;font-family:var(--zt-mono)}.zt-portal .bo-card-warning{}.zt-portal .bo-card-danger{}.zt-portal .table-wrap input[type=checkbox]{padding:0}.zt-portal .card p{font-size:17px}

.zt-portal .device-online{color:var(--zt-ok)}.zt-portal .device-offline{color:var(--zt-clock)}

/* WO-028C：共用圖示與管理選中態。 */
.zt-admin .workspace-heading h1{font-size:32px;line-height:1.4;margin:0 0 8px}.zt-admin .workspace-heading .muted{font-size:17px;color:var(--zt-muted);margin:0}
.bo-nav-icon svg{display:block;width:20px;height:20px}.zt-admin :is(table,time,.mono,.metric-number){font-variant-numeric:tabular-nums}.zt-admin .mono{font-family:var(--zt-mono)}

/* 新版管理頁沿用原頁首與內容；側欄補上同一組十九頁入口。 */
@media(max-width:768px){}

/* 十九頁手機巡檢：標題、搜尋、摘要與表格保持可讀寬度。 */
@media(max-width:768px){
 .zt-admin .workspace-heading h1{font-size:28px}
}

/* WO-029A：通知名單沒有勾選欄，店名與 Email 都保留可讀寬度。 */
#download-notification-list { table-layout: fixed; }
#download-notification-list th:first-child, #download-notification-list td:first-child { width: 18%; text-align: left; }
#download-notification-list th:nth-child(2), #download-notification-list td:nth-child(2) { width: 25%; }
#download-notification-list th:nth-child(3), #download-notification-list td:nth-child(3) { width: 12%; }
#download-notification-list th:nth-child(4), #download-notification-list td:nth-child(4) { width: 14%; }
#download-notification-list th:nth-child(5), #download-notification-list td:nth-child(5) { width: 8%; }
#download-notification-list th:nth-child(6), #download-notification-list td:nth-child(6) { width: 13%; }
#download-notification-list th:last-child, #download-notification-list td:last-child { width: 10%; }
#download-launch-checklist .row { gap: 24px; padding-top: 12px; }
#download-launch-checklist .row .badge-soon { flex-shrink: 0; }

/* WO-029A：手機通知名單沿用直向資料卡，欄位占滿可用寬度。 */
@media(max-width:768px){#download-notification-list td{width:100%!important}}

/* portal-tabs：沿用資料與表單排版。 */
/* 直接沿用首頁頁首幾何與色票；只補會員專用導覽與分頁。 */
.portal-tabs-page .site-header{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.portal-header .site-brand{flex-shrink:0;white-space:nowrap}
.portal-header a[aria-current=page] svg{color:var(--zt-primary)}
.portal-header svg{flex-shrink:0;vertical-align:middle}
.portal-header .portal-account{position:relative;flex-shrink:0;font-size:15px}
.portal-header .portal-account>summary{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;list-style:none;width:100%;max-width:155px;box-sizing:border-box}
#portal-account-name{max-width:100%;white-space:nowrap;text-align:center}
.portal-header .portal-account-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:270px;max-width:calc(100vw - 32px);padding:16px;background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:16px;box-shadow:0 12px 32px var(--zt-muted)}
.portal-header .portal-account-menu>*{display:flex;gap:8px;align-items:center;padding:10px 8px;text-decoration:none;overflow-wrap:anywhere}
.portal-header .portal-account-menu>strong{font-size:14px;border-bottom:1px solid var(--zt-line);color:var(--zt-muted);font-weight:500}
.portal-header #portal-logout{border:0;border-top:1px solid var(--zt-line);border-radius:0;color:var(--zt-alert);width:100%;justify-content:flex-start}
.portal-header .portal-mobile-menu{display:none}
.portal-tabs-page .zt-tab-pane{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;grid-column:1/-1;width:100%;min-width:0}
.portal-tabs-page .zt-tab-pane>*{grid-column:1/-1;min-width:0}
.portal-tabs-page #tab-settings>.panel{grid-column:span 6}
.portal-tabs-page #dashboardArea{margin-top:0}
.portal-tabs-page .portal-loading{max-width:1440px;padding:28px 24px;margin:auto;width:100%}
.portal-tabs-page .member-page .portal-loading{padding:0}
.portal-tabs-page .zt-skeleton{border-radius:16px;background:linear-gradient(90deg,var(--zt-line),var(--zt-muted),var(--zt-line));background-size:200% 100%;animation:portal-pulse 1.6s ease-in-out infinite}
.portal-tabs-page .skeleton-title{height:48px;margin-bottom:16px}
.portal-tabs-page .skeleton-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.portal-tabs-page .skeleton-cards>div{height:136px}
.portal-tabs-page .skeleton-content{height:360px}
.portal-tabs-page #portal-load-message{font-size:15px;color:var(--zt-muted);margin-top:16px}
html[data-auth-state=pending] .portal-tabs-page #dashboardArea,html[data-auth-state=pending] .portal-tabs-page>main,html[data-auth-state=pending] #authArea{display:none!important}
html[data-auth-state=authenticated] #portal-loading,html[data-auth-state=unauthenticated] #portal-loading,html[data-auth-state=authenticated] #authArea{display:none!important}
.portal-tabs-page .member-hero,.portal-tabs-page .member-session-bar{display:none!important}
.portal-tabs-page [hidden]{display:none!important}
.portal-tabs-page .auth-secondary{border:1px solid var(--zt-line);border-radius:16px;background:var(--zt-surface);padding:16px 24px}
.portal-tabs-page .auth-secondary>summary{cursor:pointer;color:var(--zt-primary);font-weight:700}
.portal-tabs-page .auth-secondary .panel{border:0}
.portal-tabs-page #loginPanel{max-width:640px;width:100%;margin-inline:auto}
.portal-tabs-page .portal-login-notice{padding:16px 24px;color:var(--zt-muted);font-size:15px}
.portal-tabs-page .portal-support-tabs{display:flex;gap:12px;flex-wrap:wrap}
.portal-tabs-page .portal-support-tabs [aria-pressed=true]{background:var(--zt-primary);color:var(--zt-surface)}
.portal-tabs-page .console-card,.portal-tabs-page .bo-surface{padding:24px}
.portal-tabs-page .console-number{font-variant-numeric:tabular-nums}
.portal-tabs-page .num-primary{font-size:28px;font-weight:700;color:var(--zt-ink)}
.portal-tabs-page .num-total{font-size:18px;font-weight:500;color:var(--zt-muted);margin-inline:4px}
.portal-tabs-page .num-unit{font-family:var(--zt-font);font-size:14px;color:var(--zt-muted);margin-left:6px}
.portal-tabs-page #overview-devices{margin-top:20px;padding-top:16px;border-top:1px solid var(--zt-line)}
.portal-tabs-page #overview-devices p{padding-block:12px;border-bottom:1px dashed var(--zt-line)}
.portal-tabs-page #overview-details{margin-bottom:16px}
.portal-tabs-page #tab-plans .actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--zt-line)}
.portal-tabs-page #tab-plans .member-device{padding-block:16px;gap:16px}
.portal-tabs-page #tab-plans .member-device button{margin-left:auto}
.portal-tabs-page .bo-bar-chart text{font-family:var(--zt-mono);font-size:12px;fill:var(--zt-muted)}
@keyframes portal-pulse{50%{background-position:100% 0}}
@media(prefers-reduced-motion:reduce){.portal-tabs-page .zt-skeleton{animation:none}}
@media(max-width:960px){.portal-header .portal-account{margin-left:auto}.portal-header .portal-mobile-menu{display:block;position:relative}.portal-header .portal-mobile-menu summary{display:flex;align-items:center;min-height:44px;cursor:pointer}.portal-header .portal-mobile-menu nav{position:absolute;right:0;top:48px;background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:16px;padding:12px;min-width:210px;z-index:65}.portal-header .portal-mobile-menu a{display:flex;align-items:center;gap:10px;padding:10px;text-decoration:none}.portal-tabs-page .zt-tab-pane{display:block}.portal-tabs-page .zt-tab-pane>*{margin-bottom:20px}.portal-tabs-page .portal-loading{padding:20px 16px}.portal-tabs-page .skeleton-cards{gap:8px}.portal-tabs-page .portal-account>summary{max-width:120px}.portal-tabs-page #portal-account-name{max-width:90px}.portal-tabs-page .bo-surface,.portal-tabs-page .console-card{padding:20px}.portal-tabs-page .bo-page-actions:empty{display:none}}

.portal-header .site-nav{display:flex;flex:1;min-width:0}.portal-header .portal-account{width:155px}.portal-tabs-page #tab-support>article{grid-column:1/-1;width:100%}
@media(max-width:960px){.portal-header .site-nav{order:5;flex-basis:100%;width:100%;overflow:hidden}.portal-header .portal-account{width:120px}}

.portal-header .portal-account>summary{font-size:17px;line-height:1.75;padding:12px 24px;text-decoration:none;font-weight:700;border:0;border-radius:12px;background:var(--zt-surface);color:var(--zt-ink);box-sizing:border-box;cursor:pointer}
.portal-header .portal-account>summary:hover{background:var(--zt-bg);border-color:var(--zt-primary)}
.portal-header .portal-account>summary::-webkit-details-marker{display:none}

/* 載入時讓尚未顯示的內容與頁尾留在第一屏外，避免資料填入造成畫面位移。 */
.portal-tabs-page .portal-loading{min-height:100vh}

/* 首次繪製即選中目標分頁；資料與字型填入不移動既有內容。 */
html[data-portal-tab=overview] .portal-nav [data-portal-tab=overview]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=overview] .portal-nav [data-portal-tab=overview] svg{color:var(--zt-primary)}
html[data-portal-tab=query] .portal-nav [data-portal-tab=query]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=query] .portal-nav [data-portal-tab=query] svg{color:var(--zt-primary)}
html[data-portal-tab=plans] .portal-nav [data-portal-tab=plans]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=plans] .portal-nav [data-portal-tab=plans] svg{color:var(--zt-primary)}
html[data-portal-tab=support] .portal-nav [data-portal-tab=support]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=support] .portal-nav [data-portal-tab=support] svg{color:var(--zt-primary)}
html[data-portal-tab=settings] .portal-nav [data-portal-tab=settings]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=settings] .portal-nav [data-portal-tab=settings] svg{color:var(--zt-primary)}
html[data-portal-tab=stores] .portal-nav [data-portal-tab=stores]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=stores] .portal-nav [data-portal-tab=stores] svg{color:var(--zt-primary)}
html[data-portal-tab=grants] .portal-nav [data-portal-tab=grants]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=grants] .portal-nav [data-portal-tab=grants] svg{color:var(--zt-primary)}
html[data-portal-tab=accounting] .portal-nav [data-portal-tab=accounting]{color:var(--zt-ink);font-weight:700;border-bottom-color:var(--zt-primary)}html[data-portal-tab=accounting] .portal-nav [data-portal-tab=accounting] svg{color:var(--zt-primary)}
 .portal-tabs-page .zt-tab-pane{align-content:start;min-height:100vh}.portal-header .portal-account>summary{width:155px;justify-content:center}.portal-header #portal-account-name{max-width:100%;text-align:center}.portal-tabs-page .selection-bar>strong{min-width:260px}
@media(max-width:960px){.portal-header .portal-account>summary{width:120px;justify-content:center}.portal-header #portal-account-name{max-width:100%;text-align:center}}

/* 第二輪：首屏與各資料區獨立，登入不等待總覽、其他分頁或字型。 */
.portal-tabs-page{font-family:var(--zt-font)}
.portal-tabs-page #portal-loading{display:none!important}
html[data-auth-state=pending] .portal-tabs-page #dashboardArea{display:grid!important}
html[data-auth-state=pending] .portal-tabs-page>main{display:block!important}
.portal-page-heading{grid-column:1/-1;margin:0 0 8px;padding:0;min-height:96px}
.portal-tabs-page .portal-page-heading h1{font-size:32px;line-height:1.4;margin:0 0 8px;font-weight:900}
.portal-page-heading p{font-size:17px;line-height:1.75;margin:0;color:var(--zt-muted)}
.portal-header .site-brand{width:166px;flex:0 0 166px;font-family:Arial,sans-serif}
.portal-header .portal-account>summary{height:53.75px;min-height:53.75px}
.portal-header #portal-account-name{line-height:normal}html[data-auth-state=pending] .portal-header #portal-account-name{height:20px;width:72px}
.portal-tabs-page select,.portal-tabs-page input:not([type=checkbox]):not([type=radio]){height:48px;line-height:24px}
.portal-tabs-page .member-page>main{min-height:calc(100vh - 82.75px)}
html[data-portal-tab=overview] #tab-overview,html[data-portal-tab=query] #tab-query,html[data-portal-tab=plans] #tab-plans,html[data-portal-tab=support] #tab-support,html[data-portal-tab=settings] #tab-settings,html[data-portal-tab=stores] #tab-stores,html[data-portal-tab=grants] #tab-grants,html[data-portal-tab=accounting] #tab-accounting{display:var(--portal-pane-display,grid)!important}
.portal-header .site-nav{justify-content:flex-start}
.portal-header .portal-public-download{width:155px;flex:0 0 155px;text-align:center}
html[data-auth-state=pending] .portal-account{pointer-events:none}
html[data-auth-state=pending] .portal-account-menu{display:none!important}
html[data-auth-state=pending] #portal-account-name{font-size:0;background:var(--zt-line);height:20px;border-radius:6px}
html[data-auth-state=unauthenticated] .portal-role{visibility:hidden}
.portal-header .portal-public-nav{gap:18px;justify-content:center}
.portal-header .portal-public-nav a{flex:0 0 80px;text-align:center;white-space:nowrap}
.portal-header [hidden],.portal-account-menu [hidden]{display:none!important}
.portal-tabs-page #memberPlanSummary{align-items:start;min-height:146px}
.portal-tabs-page #memberPlanSummary .row{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;height:auto}
.portal-tabs-page #memberPlanSummary .row>span{font-size:15px;color:var(--zt-muted)}
.portal-tabs-page #memberPlanSummary .row>strong{font-size:17px;line-height:1.6;color:var(--zt-ink)}
.portal-tabs-page #memberPlanSummary small{font-size:15px;line-height:1.6;color:var(--zt-muted)}
.portal-tabs-page :is(#memberPlanSummary,#memberLinkedDevices,#overview-cards,#dealer-todos,#store-list)[aria-busy=true]{position:relative}
.portal-tabs-page :is(#memberPlanSummary,#memberLinkedDevices)[aria-busy=true]:before,.portal-tabs-page .zt-tab-pane[aria-busy=true] :is(#overview-cards,#dealer-todos,#store-list):empty:before{content:"";display:block;position:absolute;inset:0;border-radius:12px;background:linear-gradient(90deg,var(--zt-line),var(--zt-muted),var(--zt-line));background-size:200% 100%;animation:portal-pulse 1.6s ease-in-out infinite;z-index:1}
.portal-tabs-page .zt-tab-pane[aria-busy=true] :is(#overview-cards,#dealer-todos,#store-list):empty{position:relative}
.portal-tabs-page #memberLinkedDevices{min-height:176px}
.portal-tabs-page #overview-reminders{min-height:112px}
.portal-tabs-page #overview-cards{min-height:200px;align-items:stretch}
.portal-tabs-page #overview-cards>.console-card{min-height:200px}
.portal-tabs-page #overview-devices:empty{display:none}
.portal-tabs-page #dealer-todos{min-height:136px;margin:0}
.portal-tabs-page #tab-stores>.console-actions{margin:0;min-height:48px}
.portal-tabs-page #tab-stores{gap:24px}
.portal-tabs-page #stores{margin:0}
.portal-tabs-page #store-list{min-height:480px}
.portal-tabs-page .bo-chipbar [aria-pressed=true]{background:var(--zt-primary);color:var(--zt-surface);border-color:var(--zt-primary)}
.portal-tabs-page .table-wrap th:before,.portal-tabs-page .table-wrap th:after,.portal-tabs-page .table-wrap td:after{content:none!important}
.portal-empty{display:flex;align-items:center;gap:16px;padding:24px;background:var(--zt-bg);border:1px dashed var(--zt-line);border-radius:12px;min-height:96px;color:var(--zt-muted);flex-wrap:wrap}
.portal-empty p{margin:0!important}.portal-empty a{margin-left:auto}
.portal-tabs-page #supportRows,.portal-tabs-page #feedbackRows{min-height:96px}
.portal-tabs-page .selection-bar[hidden]{display:none!important}
@media(max-width:960px){.portal-header .site-brand{width:146px;flex-basis:146px}.portal-header .portal-public-download{width:120px;flex-basis:120px;margin-left:auto}.portal-header .portal-public-nav{display:flex!important;flex-wrap:wrap;font-size:15px;gap:4px 12px}.portal-header .portal-public-nav[hidden]{display:none!important}.portal-page-heading{min-height:96px}.portal-tabs-page .portal-page-heading h1{font-size:28px}.portal-tabs-page #overview-cards{min-height:412px}.portal-tabs-page #memberPlanSummary{min-height:440px}.portal-tabs-page #dealer-todos{min-height:456px}.portal-empty a{margin-left:0}.portal-tabs-page #store-list{min-height:600px}}
@media(max-width:960px){.portal-header .site-nav{height:88px;align-items:center}.portal-header .portal-public-nav{height:88px;align-content:center}.portal-header .portal-public-nav a{flex-basis:76px}.portal-header .portal-account>summary,.portal-header .portal-public-download{height:53.75px;min-height:53.75px}}
@media(max-width:960px){.portal-header .site-brand{width:166px;flex-basis:166px}}
@media(max-width:960px){.portal-tabs-page{--portal-pane-display:block}}

.portal-header .portal-account #portal-account-name{display:inline-block;line-height:normal}
.portal-tabs-page p>a{display:inline-block;line-height:inherit;vertical-align:top}
html[data-auth-state=unauthenticated] body.portal-tabs-page>main{display:none!important}

/* 經銷商卡片與勾選欄：固定各卡片自己的高度，避免預設margin與省略號。 */
.portal-tabs-page #dealer-todos{height:144px;min-height:144px;gap:16px}
.portal-tabs-page #dealer-todos>.card{height:144px;min-height:144px;margin:0;box-sizing:border-box}
.portal-tabs-page #stores .bo-chipbar{gap:8px}
.portal-tabs-page #store-list :is(th,td):has(>input[type=checkbox]){padding-inline:8px;text-overflow:clip;overflow:visible}
.portal-tabs-page #store-list input[type=checkbox]{margin:0;vertical-align:middle}
@media(max-width:960px){.portal-tabs-page #dealer-todos{height:464px;min-height:464px;margin-bottom:24px}.portal-tabs-page #tab-stores>.console-actions{margin-bottom:24px}}

/* 未登入頁維持同一個頁首盒子；登入卡與說明區不把頁尾推進首屏。 */
html[data-auth-state=unauthenticated] .portal-header .portal-public-download{height:53.75px;min-height:53.75px;font-size:17px;line-height:1.75}
html[data-auth-state=unauthenticated] #authArea{min-height:100vh;align-content:start}
@media(max-width:960px){}
.portal-tabs-page .member-page>main{display:flow-root}
/* WO-029B：後台正式元件；沿用首頁 1440 容器與頁首幾何。 */
:is(.zt-admin,.zt-portal) [hidden]{display:none!important}
:is(.zt-admin,.zt-portal) .site-header .container{max-width:1440px;min-height:76px;padding:14px 24px;gap:10px 28px;flex-wrap:nowrap}
:is(.zt-admin,.zt-portal) .site-brand{width:166px;flex:0 0 166px}
:is(.zt-admin,.zt-portal) .site-nav{display:flex;justify-content:flex-start;align-items:center;gap:6px 22px;width:auto;flex:1 1 auto}
:is(.zt-admin,.zt-portal) .site-nav a{display:inline-flex;align-items:center;padding:0;min-height:44px;font-size:16px;font-weight:500;white-space:nowrap;color:var(--zt-muted);background:transparent;border:0;border-radius:0;text-decoration:none}
:is(.zt-admin,.zt-portal) .site-nav a[aria-current=page]{font-weight:700;color:var(--zt-ink);background:transparent;border:0;box-shadow:none}
:is(.zt-admin,.zt-portal) .header-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex:0 0 auto}
:is(.zt-admin,.zt-portal) .portal-role{font-size:13px;white-space:nowrap;flex:0 0 auto}
:is(.zt-admin,.zt-portal) .portal-account{width:155px;margin-left:auto}
:is(.zt-admin,.zt-portal) .portal-mobile-menu{display:none}
:is(.zt-admin,.zt-portal) .page-head{padding-block:18px 24px;margin-bottom:16px}
:is(.zt-admin,.zt-portal) .page-head h1{font-size:42px!important;font-weight:900;line-height:1.25;letter-spacing:-.025em;margin:12px 0}
:is(.zt-admin,.zt-portal) .page-head h1 em{color:var(--zt-primary);font-style:normal}
:is(.zt-admin,.zt-portal) .chapter-no{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--zt-muted);margin:0}
:is(.zt-admin,.zt-portal) .chapter-no b{font-family:var(--zt-mono);font-size:24px;color:var(--zt-clock);font-weight:600}
:is(.zt-admin,.zt-portal) .workspace{max-width:1440px;margin:auto;padding:28px 24px 80px}
:is(.zt-admin,.zt-portal) .workspace-heading{gap:28px;align-items:center}
:is(.zt-admin,.zt-portal) .chips{display:flex;flex-wrap:wrap;gap:10px;margin-block:12px 24px}
:is(.zt-admin,.zt-portal) .pill{padding:8px 16px;min-height:44px;text-decoration:none;cursor:pointer}
:is(.zt-admin,.zt-portal) .pill[aria-current=page]{background:var(--zt-ink);color:var(--zt-surface);border-color:var(--zt-ink)}
.input,.select,.textarea,.zt-admin input:not([type=checkbox]):not([type=radio]),.zt-admin select,.zt-admin textarea{background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:8px;padding:10px 12px;font:inherit;font-size:17px;min-height:46px;color:var(--zt-ink);max-width:100%}
.input:focus,.select:focus,.textarea:focus{border-color:var(--zt-primary);outline-color:var(--zt-primary)}
.field{display:grid;gap:6px}.field>label{font-weight:700}
.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-block:20px}
.btn-alert,.btn-ghost-alert{background:var(--zt-surface);color:var(--zt-alert);border:1px solid var(--zt-line)}
.btn-alert:hover,.btn-ghost-alert:hover{background:var(--zt-alert);color:var(--zt-surface)}
.table-pager{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:16px}
:is(.zt-admin,.zt-portal) .stat{padding:22px;border:1px solid var(--zt-line);border-radius:16px;background:var(--zt-surface);color:var(--zt-ink);text-decoration:none;min-width:0;display:block;text-align:left}
:is(.zt-admin,.zt-portal) .stat strong{font-family:var(--zt-mono);font-weight:600;color:var(--zt-ink);font-size:32px;display:block}
:is(.zt-admin,.zt-portal) .stat-warning strong{color:var(--zt-clock)}
:is(.zt-admin,.zt-portal) .stat small{display:block;color:var(--zt-muted);margin-top:8px}
:is(.zt-admin,.zt-portal) .chip{font-size:14px;padding:4px 10px;border:1px solid var(--zt-line);border-radius:999px;color:var(--zt-muted);background:var(--zt-surface)}
:is(.zt-admin,.zt-portal) .chip-pro{color:var(--zt-pro);background:var(--zt-pro-bg)}
:is(.zt-admin,.zt-portal) .receipt{position:relative;background:var(--zt-surface);border:1px solid var(--zt-line);padding:24px;margin-block:16px;box-shadow:0 8px 24px color-mix(in srgb,var(--zt-ink) 6%,transparent);max-width:100%;border-radius:0;overflow:visible}
:is(.zt-admin,.zt-portal) .receipt .powered{font-family:var(--zt-mono);font-size:12px;text-align:center;color:var(--zt-muted);margin-top:20px}
:is(.zt-admin,.zt-portal) .receipt .receipt-zig{position:absolute;left:-1px;right:-1px;bottom:-10px;height:10px;background:linear-gradient(135deg,var(--zt-surface) 5px,transparent 0) 0 0/10px 10px,linear-gradient(225deg,var(--zt-surface) 5px,transparent 0) 0 0/10px 10px}
.receipt .input{border:0;border-radius:0;border-bottom:1px dashed var(--zt-ink)}
:is(.zt-admin,.zt-portal) .warn-bar{display:flex;align-items:center;gap:16px;background:var(--zt-clock-bg);color:var(--zt-clock);border:1px solid var(--zt-line);padding:18px;border-radius:12px;margin-block:16px}
:is(.zt-admin,.zt-portal) .note{background:transparent;border:0;padding:16px 0;color:var(--zt-muted)}
:is(.zt-admin,.zt-portal) .note svg,:is(.zt-admin,.zt-portal) .portal-empty svg{display:none}
.zt-admin #admin-page-search{width:200px;font-size:15px}
.zt-admin #admin-page-results{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:16px}
.zt-admin #admin-section-nav{min-height:44px}
.zt-admin .funnel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}
.zt-admin .customer-layout>aside{min-width:0}
.zt-portal #overview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.zt-portal #overview-cards .stat{min-height:160px}
@media(max-width:768px){:is(.zt-admin,.zt-portal) .site-header .container{flex-wrap:wrap}:is(.zt-admin,.zt-portal) .portal-mobile-menu{display:block}:is(.zt-admin,.zt-portal) .portal-nav{display:none}:is(.zt-admin,.zt-portal) .page-head h1{font-size:32px!important}}

.portal-page{min-width:0}.nav-button{font:inherit}.hero-copy{min-width:0}.fineprint{font-size:15px;color:var(--zt-muted)}.error{color:var(--zt-alert)}

.zt-admin .admin-account-name{display:block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}

/* 登入後內容與首頁標題共用同一個左右起點。 */
.zt-admin .workspace-heading{flex-direction:row;align-items:center}
.zt-portal #member-overview{padding:0!important;width:100%;max-width:none;margin:0}
.zt-portal #member-overview>.panel-body{padding:0}
.zt-admin .site-header .btn{min-height:48px;padding:12px 24px;line-height:1.75;font-size:17px;border:0}
.zt-admin .site-header .container{min-height:81.75px}

/* 總覽提醒沿用112px預留區；資料到達時不因警示外距推動數字卡。 */
.zt-portal #overview-reminders .warn-bar{margin:0;min-height:112px}

/* 查詢明細先保留可讀區，資料載入不推動收據鋸齒與頁尾。 */
.zt-portal #query-content{height:640px;min-height:640px;overflow:auto}

/* 既有進階資料頁只負責內文，沿用父頁唯一導覽。 */
.legacy-admin :is(.admin-topbar,.admin-nav,.console-nav){display:none!important}
.legacy-admin .admin-main{margin:0!important;width:100%;max-width:100%;padding:16px!important}
.legacy-admin .admin-section-heading{margin:0 0 16px}
.legacy-admin .admin-section-heading .eyebrow{display:none}

/* WO-029B 接續：頁首品牌後直接接導覽，沿用首頁盒高。 */
:is(.zt-admin,.zt-portal) .site-header .container{min-height:81.75px}
.portal-header .site-nav{height:auto}
.pilot-page .site-brand{position:relative;white-space:nowrap}
.pilot-brand-note{position:absolute;top:100%;left:44px;font:10px var(--zt-font);line-height:1}
.pilot-page .page-head{padding-block:56px 32px}
.pilot-page .page-head h1{font-size:48px;font-weight:900;line-height:1.25;margin:16px 0}
.pilot-page .page-head h1 em{font-style:normal;color:var(--zt-primary)}
.pilot-page .page-head>.chapter-no{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--zt-muted)}
.pilot-page .page-head>.chapter-no::before{content:attr(data-chapter);font:600 24px var(--zt-mono);color:var(--zt-clock)}
.pilot-page .page-head .summary{max-width:800px;color:var(--zt-muted)}
.pilot-page .actions{display:flex;gap:20px;flex-wrap:wrap;margin-top:24px;align-items:center}
.pilot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:64px}
.pilot-grid .card{background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:16px;padding:24px}
.pilot-grid h3{font-size:22px;font-weight:900;margin-bottom:12px}
.pilot-page .site-footer .container{display:block}
.pilot-page .pilot-nav{display:contents}
.pilot-page .pilot-nav>summary{display:none}
.pilot-page .pilot-nav>nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;min-width:0;background:none;border:0;box-shadow:none;padding:0}
.pilot-page .pilot-nav>nav a{padding:0}
.zt-portal :is(#supportMessageOut,#profileMessage,.field-error){min-height:30px;line-height:30px}
.zt-portal .field-error{color:var(--zt-alert);font-size:14px}
.zt-portal :is(#profile-fields,#support-fields){border:0;padding:0;margin:0;min-width:0}
.zt-portal #supportRows{height:320px;overflow:auto}
/* 原頁面的回饋區先占位，標記聯絡或匯出結果不推動後方內容。 */
:is(.zt-admin,.zt-portal) #message{height:56px;overflow:auto}
@media(max-width:768px){
 :is(.zt-admin,.zt-portal) .site-header>.container{flex-wrap:nowrap;gap:10px 12px;min-height:72px}
 :is(.zt-admin,.zt-portal) .site-header>.container{padding-inline:16px}
 :is(.zt-admin,.zt-portal) .site-header .site-nav{display:none}
 :is(.zt-admin,.zt-portal) .portal-mobile-menu{display:block;margin-left:auto;order:3}
 .zt-portal .portal-account{width:104px;max-width:104px;flex:0 0 104px;order:2}
 .zt-portal .portal-account>summary{width:104px;height:44px;min-height:44px;padding:0 8px;font-size:14px}
 .zt-portal .portal-mobile-menu>summary{height:44px;min-height:44px;padding:0;font-size:14px}
 .zt-admin .header-actions{gap:8px;min-width:0}
 .zt-admin .admin-account-name{display:none}
 .zt-admin #admin-page-search{width:76px;font-size:12px;padding:6px}
 .zt-admin #admin-page-search{height:44px;min-height:44px}
 .zt-admin .site-header .btn{height:44px;min-height:44px;padding:0 8px;font-size:14px}
 :is(.zt-admin,.zt-portal) .workspace-heading{display:block}
 .zt-admin #global-search{display:flex;flex-wrap:wrap;gap:8px}
 .zt-admin #global-search input{min-width:0;width:100%}
 .zt-admin .two-columns,.zt-admin .customer-layout,.zt-admin .cards,.zt-admin .funnel-grid{grid-template-columns:minmax(0,1fr)}
 .zt-admin .customer-title{flex-wrap:wrap}
 .zt-admin .customer-title h2{flex-basis:100%;min-width:0;overflow-wrap:anywhere}
 .zt-admin .filter-bar,.zt-admin .filters,.zt-admin .table-pager,.zt-admin .selection-bar{flex-wrap:wrap}
 .zt-admin .filters>*{max-width:100%;min-width:0}
 .zt-portal #overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .zt-portal #overview-reminders{height:192px;min-height:192px;overflow:auto}
 :is(.zt-admin,.zt-portal) main{min-width:0;max-width:100%}
 :is(.zt-admin,.zt-portal) .receipt{padding:20px;min-width:0}
 .pilot-grid{grid-template-columns:minmax(0,1fr)}
 .pilot-page .page-head h1{font-size:32px}
 .pilot-page .pilot-nav{display:block}
 .pilot-page .pilot-nav>summary{display:inline-flex}
 .pilot-page .pilot-nav>summary::before{content:'選單'}
 .pilot-page .pilot-nav>nav{position:absolute;display:flex;flex-direction:column;min-width:200px;background:var(--zt-surface);border:1px solid var(--zt-line);padding:8px}
 .pilot-page .pilot-nav>nav a{padding:10px 14px}
 .pilot-page .pilot-nav:not([open])>nav{display:none}
}


/* ==========================================================================
   WO-029B 畫面修正與驗收門檻 G10～G16
   ========================================================================== */

/* G11: 子分頁全站單一樣式（ink 實心 active，白底 inactive，無第三層邊框） */
.pill,
:is(.zt-admin, .zt-portal) .pill,
:is(.zt-admin, .zt-portal) .tabs button,
:is(.zt-admin, .zt-portal) .portal-support-tabs button,
:is(.zt-admin, .zt-portal) .bo-chipbar button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--zt-surface) !important;
  color: var(--zt-muted) !important;
  border: 1px solid var(--zt-line) !important;
  border-radius: 999px !important;
  padding: 8px 16px !important;
  min-height: 44px !important;
  height: 44px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

.pill:hover,
:is(.zt-admin, .zt-portal) :is(.pill, .tabs button, .portal-support-tabs button, .bo-chipbar button):hover {
  border-color: var(--zt-ink) !important;
  color: var(--zt-ink) !important;
}

.pill[aria-current="page"],
.pill[aria-pressed="true"],
:is(.zt-admin, .zt-portal) .pill[aria-current="page"],
:is(.zt-admin, .zt-portal) .pill[aria-pressed="true"],
:is(.zt-admin, .zt-portal) .tabs button[aria-current="page"],
:is(.zt-admin, .zt-portal) .tabs button[aria-pressed="true"],
:is(.zt-admin, .zt-portal) .portal-support-tabs button[aria-pressed="true"],
:is(.zt-admin, .zt-portal) .bo-chipbar button[aria-pressed="true"] {
  background: var(--zt-ink) !important;
  color: var(--zt-surface) !important;
  border-color: var(--zt-ink) !important;
  font-weight: 700 !important;
}

/* G12: 控制項列上緣下緣差 0px、高度 46px 一致、標籤基線對齊 */
:is(.filters, .filter-bar, .bo-chipbar) {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: flex-end !important;
  margin-block: 16px 20px !important;
}

:is(.filters, .filter-bar, .bo-chipbar) :is(input:not([type=checkbox]):not([type=radio]), select, button, .btn, .button) {
  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  vertical-align: bottom !important;
}

:is(.filters, .filter-bar) label {
  display: inline-flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  font-size: 15px !important;
  color: var(--zt-muted) !important;
}

:is(.filters, .filter-bar) label > :is(input, select) {
  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;
  box-sizing: border-box !important;
}

/* G13: 收據紙最大寬 420px，會員/經銷商/後台頁不放 power by */
:is(.zt-admin, .zt-portal) .receipt {
  max-width: 420px !important;
  box-sizing: border-box !important;
}

:is(.zt-portal, .zt-admin) .powered {
  display: none !important;
}

/* G14: 標題區高度統一（會員、經銷商、後台三區 h1 的 y 相同；.pill 下緣到第一張卡 24px±2） */
:is(.zt-portal, .zt-admin) main,
:is(.zt-portal, .zt-admin) .workspace,
:is(.zt-portal, .zt-admin) .console-page {
  padding-top: 24px !important;
}

:is(.zt-admin, .zt-portal) #message:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.portal-page-heading,
.workspace-heading {
  margin-top: 0 !important;
  margin-bottom: 16px !important;
  padding-top: 0 !important;
  min-height: 0 !important;
}

.portal-page-heading h1,
.workspace-heading h1 {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  line-height: 1.25 !important;
  font-size: 32px !important;
  font-weight: 900 !important;
}

.portal-page-heading p.muted,
.workspace-heading p.muted {
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

:is(.zt-admin, .zt-portal) .chips,
:is(.zt-admin, .zt-portal) .bo-chipbar,
:is(.zt-admin, .zt-portal) .tabs,
:is(.zt-admin, .zt-portal) .portal-support-tabs {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}

/* G16: 客戶 360 左欄 ≥ 480px，1920 寬下名稱、信箱不換行 */
:is(.zt-admin, .zt-portal) .customer-layout {
  display: grid !important;
  grid-template-columns: minmax(480px, 500px) minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: start !important;
}

@media (min-width: 1400px) {
  :is(.zt-admin, .zt-portal) .customer-layout .detail-fields dd {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

:is(.btn, .button, .bo-primary, .bo-secondary) {
  text-decoration: none !important;
  white-space: nowrap !important;
}
:is(.btn, .button, .bo-primary, .bo-secondary) * {
  text-decoration: none !important;
}

/* 第一天營業：7 步連續流程漏斗 */
.funnel-steps {
  display: flex !important;
  align-items: stretch !important;
  gap: 8px !important;
  overflow-x: auto !important;
  padding: 8px 0 !important;
  margin: 16px 0 24px !important;
}

.funnel-step {
  flex: 1 1 0 !important;
  min-width: 130px !important;
  background: var(--zt-surface) !important;
  border: 1px solid var(--zt-line) !important;
  border-radius: 12px !important;
  padding: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

.funnel-step .step-head {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.funnel-step .step-num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  background: var(--zt-ink) !important;
  color: var(--zt-surface) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
}

.funnel-step .step-name {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--zt-ink) !important;
  white-space: nowrap !important;
}

.funnel-step .step-body strong {
  display: block !important;
  font-size: 24px !important;
  line-height: 1.2 !important;
  color: var(--zt-primary) !important;
}

.funnel-step .step-status {
  font-size: 13px !important;
  color: var(--zt-muted) !important;
}

.step-arrow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--zt-line) !important;
  font-weight: 900 !important;
  font-size: 18px !important;
  flex-shrink: 0 !important;
  user-select: none !important;
}

/* 會員設定：表單欄位間距統一、店名頂端間距與其他欄一致 */
:is(#profile-fields, #support-fields) {
  display: flex !important;
  flex-direction: column !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

:is(#profile-fields, #support-fields) > label {
  margin-top: 16px !important;
  margin-bottom: 6px !important;
  font-weight: 700 !important;
}

:is(#profile-fields, #support-fields) > label:first-of-type {
  margin-top: 0 !important;
}

:is(#profile-fields, #support-fields) > :is(input, select, textarea) {
  width: 100% !important;
  height: 46px !important;
  box-sizing: border-box !important;
}

:is(#profile-fields, #support-fields) > textarea {
  height: auto !important;
  min-height: 100px !important;
}

.field-error:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.field-error:not(:empty) {
  margin-top: 4px !important;
  margin-bottom: 8px !important;
}

/* 會員客服：服務類型下拉與 fineprint 間距 */
#tab-support select#supportType + .fineprint,
.fineprint {
  margin-top: 12px !important;
  margin-bottom: 16px !important;
  line-height: 1.6 !important;
  color: var(--zt-muted) !important;
}

/* 會員總覽：提醒區預留高度 28px，間距 16px 在數字卡上方 */
#overview-reminders {
  min-height: 28px !important;
  margin-bottom: 16px !important;
}

.overview-reminder-row {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 15px !important;
}

/* 經銷商代開通：標準表單排版（標籤在上、欄寬一致） */
#grant-form.form-card {
  max-width: none;
}

#grant-form fieldset {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
}

#grant-form h2 {
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

#grant-form .field {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin-bottom: 16px !important;
}

#grant-form .field label {
  font-weight: 700 !important;
}

#grant-form input:not([type=checkbox]),
#grant-form select {
  width: 100% !important;
  height: 46px !important;
  box-sizing: border-box !important;
}

#grant-form .field-checkbox {
  margin: 8px 0 !important;
}

/* 實際預覽量測修正：三區共用標題幾何，控制項與分頁一致。 */
.zt-portal .member-page,.zt-portal main.console-page,.zt-admin main.workspace{padding-top:24px!important}
.zt-portal .member-page>main{padding-top:0!important}
:is(.zt-admin,.zt-portal) :is(.portal-page-heading,.workspace-heading){padding:0!important;margin:0 0 24px!important;min-height:148.25px!important;gap:0!important}
:is(.zt-admin,.zt-portal) .portal-page-heading{display:block!important}
:is(.zt-admin,.zt-portal) .workspace-heading{align-items:flex-start!important}
:is(.zt-admin,.zt-portal) .page-head .chapter-no{height:42px;line-height:42px;margin:0!important}
:is(.zt-admin,.zt-portal) .page-head h1{font-size:42px!important;line-height:52.5px!important;margin:12px 0!important}
:is(.zt-admin,.zt-portal) .page-head p.muted{font-size:17px!important;line-height:29.75px!important;margin:0!important}
.portal-tabs-page .zt-tab-pane{row-gap:0!important}
.zt-portal .zt-tab-pane>.panel{margin-top:0!important;margin-bottom:24px}
:is(.filters,.filter-bar,.bo-chipbar) :is(input:not([type=checkbox]):not([type=radio]),select,button,.btn,.button),:is(.filters,.filter-bar) label>:is(input,select){height:44px!important;min-height:44px!important;max-height:44px!important}
.zt-admin #global-search>:is(input,button){height:48px;min-height:48px}
.zt-portal #overview-reminders{height:48px!important;min-height:48px!important;overflow:auto}
.zt-portal .overview-reminder-row{min-height:32px;flex-wrap:wrap}
#support-fields[hidden],#profile-fields[hidden]{display:none!important}
.zt-portal #memberPlanSummary{display:block;max-width:420px;height:auto;min-height:0!important;overflow:visible}
.zt-portal #query-content>.receipt:first-child{margin-top:0!important}
.zt-admin #workspace-content>.customer-layout{margin-top:0!important}
.zt-admin .customer-layout .detail-fields{display:block}
.zt-admin .customer-layout .detail-fields dt{margin-top:12px}
.zt-admin .customer-layout .detail-fields dd{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.notification-row{align-items:flex-start!important}
.notification-link{display:flex;flex-direction:column;gap:4px;min-width:0;color:inherit;text-decoration:none}
.funnel-step-head{display:flex;gap:8px;align-items:center}
.funnel-step-no{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:var(--zt-ink);color:var(--zt-surface)}
.funnel-step-name{font-size:14px;white-space:nowrap}
.funnel-step-arrow{margin-left:auto;color:var(--zt-muted)}
.funnel-step-count{margin-top:12px;white-space:nowrap}
.funnel-step-count strong{font-size:24px;color:var(--zt-primary)}
.zt-admin #message.action-feedback{display:block!important;height:56px!important;min-height:56px!important;margin:12px 0 0!important;overflow:auto}
.zt-admin .customer-title{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.zt-admin .customer-title h2{flex:0 0 100%;margin:0 0 4px}
.embedded-admin .site-header,.embedded-admin .admin-section-heading{display:none!important}
.embedded-admin .admin-release-card{box-shadow:none;border:1px solid var(--zt-line)}
/* 分頁的顯示樣式不可覆蓋搜尋、權限與表單的原生隱藏狀態。 */
:is(.zt-admin,.zt-portal) [hidden]{display:none!important}
/* 帳號流程只呈現當前表單；驗證前不露出會員資料骨架。 */
html[data-auth-state=unauthenticated] .portal-tabs-page #dashboardArea{display:none!important}
html[data-member-mode=register] #loginPanel{display:none!important}
html[data-member-mode=register] .auth-secondary:has(#register)>summary{display:none}
@media(max-width:768px){
 html[data-auth-state=unauthenticated] .portal-header .portal-public-nav{display:none!important}
 html[data-auth-state=unauthenticated] .portal-header .portal-public-download{width:120px;flex:0 0 120px;height:44px;min-height:44px;font-size:14px;padding:8px}
}
@media(min-width:769px){
 :is(.zt-admin,.zt-portal) table{table-layout:auto}
 :is(.zt-admin,.zt-portal) th,:is(.zt-admin,.zt-portal) td{overflow:visible;text-overflow:clip}
 .zt-portal #dealer-todos .stat span{white-space:nowrap}
}
@media(max-width:768px){
 :is(.zt-admin,.zt-portal) .page-head h1{font-size:32px!important;line-height:40px!important}
 :is(.zt-admin,.zt-portal) :is(.portal-page-heading,.workspace-heading){min-height:0!important}
 .zt-admin .customer-layout{grid-template-columns:minmax(0,1fr)!important}
 .zt-admin .customer-layout .detail-fields dd{white-space:normal!important;overflow-wrap:anywhere}
 .zt-portal #overview-reminders{height:112px!important;min-height:112px!important}
 .zt-portal #memberPlanSummary{height:auto;min-height:0!important}
}
.portal-tabs-page #tab-plans>.panel.span-6{grid-column:span 6}
/* WO-029C：首頁與公開會員流程共用相同頁首 HTML 與幾何，避免會員樣式覆寫。 */
html:not([data-auth-state=authenticated]) .portal-tabs-page>.portal-header,
html[data-auth-state=authenticated] .portal-tabs-page>.public-site-header{display:none}
:is(body,.zt-portal) .site-header.public-site-header{font-size:17px;line-height:1.75;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
:is(body,.zt-portal) .site-header.public-site-header>.container{max-width:1440px;min-height:0;padding:14px 24px;gap:10px 28px;flex-wrap:wrap}
:is(body,.zt-portal) .site-header.public-site-header .site-brand{width:166px;flex:0 0 166px}
:is(body,.zt-portal) .site-header.public-site-header .site-nav{display:flex;flex:1 1 auto;flex-wrap:wrap;justify-content:flex-start;align-items:normal;gap:6px 22px;width:auto;height:auto;order:0;font-size:16px}
:is(body,.zt-portal) .site-header.public-site-header .site-nav a{display:inline;flex:0 1 auto;padding:0;min-height:0;font-size:16px;font-weight:400;white-space:normal;text-align:start}
:is(body,.zt-portal) .site-header.public-site-header .site-nav a[aria-current=page]{font-weight:700}
:is(body,.zt-portal) .site-header.public-site-header .btn{min-height:48px;padding:12px 24px;font-size:17px;line-height:1.75}
.portal-tabs-page #setupPanel{grid-column:1/-1}
/* 註冊與設定密碼卡片共用外框寬度及內距。 */
.portal-tabs-page #authArea:has(#setupPanel:not(.hidden))>#setupPanel{padding:16px 24px}
/* 驗證 API 回應前先保留同一張表單；送出按鈕須待連結確認才啟用。 */
html[data-member-mode=verify] #authArea{display:grid!important}
html[data-member-mode=verify] #authArea>#setupPanel{display:block!important;padding:16px 24px}
html[data-member-mode=verify] #authArea>#loginPanel,
html[data-member-mode=verify] #authArea>.auth-secondary:has(#register),
html[data-member-mode=verify] #activationArea{display:none!important}
@media(max-width:640px){
 :is(body,.zt-portal) .site-header.public-site-header{font-size:16px;position:static}
 :is(body,.zt-portal) .site-header.public-site-header>.container{padding-inline:16px}
 :is(body,.zt-portal) .site-header.public-site-header .site-nav{display:none}
 :is(body,.zt-portal) .site-header.public-site-header .site-cta{display:none}
}
.zt-portal .query-plans-layout{display:flex;gap:24px;align-items:flex-start;width:100%}
.zt-portal .query-main-column{flex:1 1 0;min-width:0}
.zt-portal .query-side-column{flex:0 0 380px;max-width:420px}
.zt-portal .query-side-column .receipt{width:100%;max-width:420px}
.zt-portal .grant-layout{display:flex;gap:24px;align-items:flex-start;width:100%}
.zt-portal .grant-layout #grant-form{flex:1 1 540px;max-width:600px;margin:0}
.zt-portal .grant-summary-column{flex:0 0 380px;max-width:420px}
.zt-portal .grant-summary-column .receipt{width:100%;max-width:420px}
.zt-admin .admin-scope-nav{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 24px}
@media(max-width:960px){
 .portal-tabs-page #tab-plans>.panel.span-6{grid-column:1/-1}
 .zt-portal .query-plans-layout{flex-direction:column-reverse}
 .zt-portal .query-side-column{flex:auto;max-width:100%;width:100%}
 .zt-portal .grant-layout{flex-direction:column}
 .zt-portal .grant-layout #grant-form,.zt-portal .grant-summary-column{max-width:100%;width:100%}
}

/* WO-029B 第4次：資料載入保留外框，單據置中；兩欄填滿內容區。 */
.zt-portal #tab-plans{grid-template-columns:minmax(0,470px) minmax(0,1fr)}
.zt-portal #tab-plans>.panel[class]{grid-column:1/-1}
.zt-portal #tab-plans>.panel.plan-summary-panel,.zt-portal #tab-plans>.panel.plan-link-panel{grid-column:auto;min-height:572px}
.zt-portal #memberPlanSummary{width:100%;max-width:420px;min-height:410px!important;margin-inline:auto}
.zt-portal .plan-devices-panel{min-height:400px}
.zt-portal #memberLinkedDevices{min-height:176px}
.zt-portal #memberLinkCode{min-height:64px}
.zt-portal #memberLinkCountdown{min-height:28px}
.zt-portal #memberPlanMessage{min-height:56px}
.zt-portal .grant-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:stretch}
.zt-portal .grant-layout #grant-form{max-width:none;width:100%;margin:0}
.zt-portal .grant-summary-column{max-width:none;width:100%;margin:0;padding:24px}
.zt-portal .grant-summary-column .receipt{max-width:420px;width:100%;margin:0 auto}
.zt-admin #workspace-content>.cards+.two-columns{margin-top:24px}
@media(max-width:960px){
 .zt-portal #tab-plans,.zt-portal .grant-layout{grid-template-columns:minmax(0,1fr)}
 .zt-portal #tab-plans>.panel.plan-summary-panel{grid-column:1/-1;min-height:662px}
 .zt-portal #tab-plans>.panel.plan-link-panel{grid-column:1/-1;min-height:500px}
 .zt-portal #memberPlanSummary{min-height:500px!important}
}

/* WO-036 共用選購元件；所有擴充限本元件與展示頁，沿用站內色票。 */
.pricing-picker { display: flex; flex-direction: column; gap: 24px; padding-bottom: 56px; }
.pricing-picker [hidden], .pp-kit [hidden] { display: none !important; }
.pp-kit { padding-bottom: 40px; }
.pp-kit #pricing-demo { min-height: 100vh; }
.pp-kit .page-head { padding: 32px 0 24px; }
.pp-kit .page-head h1 { font-size: clamp(30px, 3.4vw, 48px); line-height: 1.3; font-weight: 900; }
.pp-kit .page-head h1 em { color: var(--zt-primary); font-style: normal; }
.pp-kit-controls { border: 1px solid var(--zt-line); display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.pp-kit-controls .field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pp-kit-controls .select { width: 100%; min-height: 48px; font: inherit; border: 1px solid var(--zt-line); border-radius: 10px; padding: 8px; background: var(--zt-surface); color: var(--zt-ink); }
.pp-kit-fixed { display: flex; align-items: center; gap: 8px; }
.pp-kit-controls .notice { grid-column: 1 / -1; min-height: 38px; margin: 0; font-size: 14px; }
.pp-kit-checklist { margin-block: 16px 24px; }
.pp-kit summary, .pricing-picker summary { cursor: pointer; font-weight: 700; padding: 12px 0; }
.pp-industries { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.pp-industry { border: 1px solid var(--zt-line); background: var(--zt-surface); color: var(--zt-ink); padding-inline: 12px; }
.pp-industry[aria-pressed=true] { border-color: var(--zt-primary); background: var(--zt-primary); color: var(--zt-surface); }
.pp-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pp-status { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 8px 16px; border: 1px solid var(--zt-line); border-radius: 10px; color: var(--zt-muted); background: var(--zt-surface); }
.pricing-picker[data-state=error] .pp-status { color: var(--zt-alert); border-color: var(--zt-alert); }
.pp-version { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 15px; }
.pp-section { background: var(--zt-surface); border: 1px solid var(--zt-line); border-radius: 16px; padding: 28px; min-width: 0; }
.pp-section h2 { font-size: 26px; font-weight: 900; line-height: 1.5; }
.pp-section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.pp-free-price { font-size: 30px; color: var(--zt-primary); font-weight: 700; }
.pp-free-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.pp-free-grid > span { display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; font-size: 16px; }
.pp-free-icon { color: var(--zt-primary); background: var(--zt-bg); border-radius: 12px; width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; font-size: 28px; font-family: var(--zt-mono); }
.pp-options { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 16px; }
.pp-suggested { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pricing-picker .pp-option { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 204px; padding: 18px; margin: 0; border: 1px solid var(--zt-line); border-radius: 12px; background: var(--zt-surface); cursor: pointer; min-width: 0; }
.pp-option:has(input:checked) { border-color: var(--zt-primary); outline: 1px solid var(--zt-primary); }
.pp-option-head { display: flex; align-items: flex-start; gap: 8px; min-height: 56px; }
.pp-option input, .pp-kit input[type=checkbox] { accent-color: var(--zt-primary); width: 20px; height: 20px; flex-shrink: 0; margin: 5px 0 0; }
.pp-option-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; font-size: 23px; }
.pp-bundle-content { color: var(--zt-muted); font-size: 14px; min-height: 100px; }
.pp-beauty { margin-top: 16px; min-height: 30px; }
.pp-more { margin-top: 20px; border-top: 1px solid var(--zt-line); }
.pp-more-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding-block: 8px; }
.pp-more-grid .pp-option { min-height: 140px; }
.pp-bars { display: flex; flex-direction: column; gap: 24px; padding-block: 24px; }
.pp-bar-head { display: grid; grid-template-columns: minmax(0, 1fr) 140px 150px; align-items: center; gap: 16px; min-height: 38px; margin-bottom: 8px; }
.pp-bar-head .pp-money { text-align: right; font-size: 23px; }
.pp-adopt { font-size: 16px; color: var(--zt-ok); }
.pp-bar-head .pp-adopt[hidden] { display: block !important; visibility: hidden; }
.pp-track { background: var(--zt-bg); border-radius: 8px; height: 22px; overflow: hidden; }
.pp-bar { width: 0; height: 100%; background: var(--zt-muted); border-radius: inherit; }
.pp-bar-row[data-chosen=true] .pp-bar { background: var(--zt-primary); }
.pp-covered { border-top: 1px solid var(--zt-line); }
.pp-covered .chips { min-height: 40px; }
.pp-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 16px; margin-top: 20px; }
.pricing-picker .pp-service { border: 1px solid var(--zt-line); border-radius: 12px; padding: 20px; gap: 12px; min-height: 250px; justify-content: flex-start; }
.pp-service h3 { font-size: 19px; }
.pp-service-title { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.pp-service-title .pp-money { color: var(--zt-primary); font-size: 23px; }
.pp-stepper { display: flex; gap: 8px; align-items: center; }
.pp-stepper .btn { width: 48px; padding: 0; border: 1px solid var(--zt-line); background: var(--zt-bg); color: var(--zt-ink); }
.pp-stepper .input { width: 100%; min-width: 0; max-width: 180px; min-height: 48px; text-align: center; border: 1px solid var(--zt-line); border-radius: 8px; padding: 6px; font-size: 18px; }
.pp-service input[type=range] { width: 100%; accent-color: var(--zt-primary); min-height: 32px; margin: 0; }
.pp-coverage { min-height: 27px; font-variant-numeric: tabular-nums; }
.pricing-picker .pp-linepay { justify-content: flex-start; align-items: flex-start; }
.pp-linepay .chip { color: var(--zt-muted); }
.pp-receipt-section { display: flex; justify-content: center; background: var(--zt-bg); padding-bottom: 38px; }
.pricing-picker .pp-receipt { max-width: 500px; font-size: 16px; padding-top: 24px; }
.pp-receipt-title { font-size: 28px; letter-spacing: 0.2em; }
.pp-receipt .row { min-height: 35px; align-items: baseline; padding-block: 4px; }
.pp-receipt .row > span:first-child { flex: 1; min-width: 0; }
.pp-receipt .total { min-height: 56px; align-items: center; }
.pp-receipt .total strong { font-size: 26px; }
.pp-receipt .pp-money { white-space: nowrap; text-align: right; }
.pp-receipt .note { margin-top: 12px; }
.pricing-picker [data-receipt-row=mobile][hidden] { display: flex !important; visibility: hidden; }
.pp-money { display: inline-block; min-width: 78px; min-height: 1.75em; font-variant-numeric: tabular-nums; }
.pp-skeleton { display: inline-block; width: 5em; max-width: 100%; height: 1em; background: var(--zt-line); border-radius: 5px; vertical-align: middle; }
.pp-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pp-kit :is(button,input,select,summary,a):focus-visible { outline: 3px solid var(--zt-primary); outline-offset: 3px; }
@media (max-width: 760px) {
  .pp-kit-controls { grid-template-columns: 1fr; }
  .pp-kit-controls .notice { min-height: 76px; }
  .pp-industries { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .pp-heading { flex-wrap: wrap; }
  .pp-section { padding: 18px; }
  .pp-section h2 { font-size: 23px; }
  .pp-section-title { flex-wrap: wrap; }
  .pp-free-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
  .pp-free-grid > span { font-size: 15px; }
  .pp-options, .pp-suggested, .pp-more-grid { grid-template-columns: 1fr; }
  .pricing-picker .pp-option { min-height: 138px; }
  .pp-option-head { min-height: 28px; }
  .pp-bundle-content { min-height: 100px; }
  .pp-bar-head { grid-template-columns: 1fr auto; gap: 4px 8px; min-height: 70px; }
  .pp-adopt { grid-column: 1; grid-row: 2; }
  .pp-bar-head .pp-money { grid-column: 2; grid-row: 1 / 3; font-size: 22px; }
  .pp-services { grid-template-columns: 1fr; }
  .pp-service-title .pp-money { font-size: 22px; }
  .pp-stepper { gap: 6px; }
  .pp-stepper .btn { flex: 0 0 40px; width: 40px; }
  .pp-stepper .input { flex: 1; width: 80px; }
  .pricing-picker .pp-service { padding: 14px; min-height: 0; }
  .pp-receipt-section { padding-inline: 0; }
  .pricing-picker .pp-receipt { font-size: 13px; }
  .pp-receipt .total strong { font-size: 22px; }
  .pp-status { min-height: 96px; flex-wrap: wrap; }
}

/* WO-036 S3：僅方案頁，既有頁面樣式不動。 */
.pricing-page { padding-block: 32px 80px; }
.pricing-page [hidden] { display: none !important; }
.pricing-page .page-head { padding: 0 0 32px; }
.pricing-page .page-head h1 { font-size: clamp(30px, 3.4vw, 48px); line-height: 1.3; font-weight: 900; }
.pricing-page .page-head h1 em { color: var(--zt-primary); font-style: normal; }
.pricing-workspace { min-height: 100vh; }
.pricing-gate { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; min-height: 100px; }
.pricing-continue { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-block: 0 32px; }
.pricing-continue p { margin-block: 8px 0; }
.pricing-continue .btn { flex-shrink: 0; }
.pricing-rules { max-width: none; }
.pricing-page :is(button,input,summary,a):focus-visible { outline: 3px solid var(--zt-primary); outline-offset: 3px; }
@media(max-width:760px) { .pricing-continue { align-items: stretch; flex-direction: column; } }

/* WO-036 S4：會員本店選購沿用既有卡片與共用元件。 */
.member-shopping-panel [hidden] { display: none !important; }
.member-shopping-panel .member-industry-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-block: 16px; }
.member-shopping-panel .member-industry-options label { padding: 16px; cursor: pointer; }
.member-shopping-panel :is(button,input,summary,a):focus-visible { outline: 3px solid var(--zt-primary); outline-offset: 3px; }
.plan-summary-panel li { overflow-wrap: anywhere; }
/* 權益填好後才顯示內容，載入時保留原區塊位置，避免聯絡區被推動。 */
#tab-overview[aria-busy=true] .bo-overview-workspace > .bo-surface { visibility: hidden; }
@media(max-width:760px) { .member-shopping-panel .member-industry-options { grid-template-columns: 1fr; } }

/* WO-036 S8：固定月費勾選與光貿費用小表。 */
.pp-service-choice { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; cursor: pointer; }
.pp-section-title .pp-free-price { flex: 0 0 78px; width: 78px; }
.pp-service-choice input { width: 20px; height: 20px; accent-color: var(--zt-primary); flex: 0 0 auto; }
.pp-service-rate { color: var(--zt-primary); white-space: nowrap; }
/* 服務卡月費依文字寬度排列；共用金額占位與收據寬度維持原設定。 */
.pp-service-rate .pp-money { min-width: 0; }
.pp-amego-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.pp-amego-table caption { text-align: left; color: var(--zt-muted); padding-bottom: 8px; }
.pp-amego-table th, .pp-amego-table td { border-bottom: 1px solid var(--zt-line); padding: 6px 0; }
.pp-amego-table th { text-align: left; font-weight: 400; }
.pp-amego-table td { text-align: right; }
/* 會員頁的大表格手機卡片規則不適用於此費用小表。 */
.pricing-picker .pp-amego-table { display: table; table-layout: fixed; border: 0; }
.pricing-picker .pp-amego-table caption { display: table-caption; width: auto; }
.pricing-picker .pp-amego-table tbody { display: table-row-group; }
.pricing-picker .pp-amego-table tr { display: table-row; border: 0; margin: 0; padding: 0; }
.pricing-picker .pp-amego-table th, .pricing-picker .pp-amego-table td { display: table-cell; width: auto; background: transparent; }
.pricing-picker .pp-amego-table td { text-align: right !important; }
.pricing-picker .pp-amego-table td::before { display: none; }

/* WO-039：有效權益依到期日與來源分組，共用於會員三個分頁。 */
.member-entitlements .entitlements-summary{font-weight:700}
.member-entitlements .entitlements-group{margin-block:16px}
.member-entitlements .entitlements-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font-size:14px}
.member-entitlements .entitlements-heading .mono{white-space:nowrap}
.member-entitlements .entitlements-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.member-entitlements .entitlements-tag{min-width:0;padding:8px 10px;border:1px solid var(--zt-line);border-radius:8px;background:var(--zt-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.member-entitlements [hidden]{display:none!important}
.site-nav [data-public-member-link]{display:inline-block;min-width:4em;white-space:nowrap}
@media(max-width:768px){.member-entitlements .entitlements-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-entitlements .entitlements-tag{padding:8px 6px;font-size:13px}}

/* WO-039：僅通知名單採八欄配置；手機保留卡片內水平捲動。 */
.zt-admin #download-notification-list{table-layout:fixed;width:100%;min-width:1300px}
.zt-admin #download-notification-list :is(th,td){white-space:nowrap;vertical-align:middle}
.zt-admin #download-notification-list :is(th,td):first-child{width:auto;text-align:left}
.zt-admin #download-notification-list :is(th,td):last-child{width:220px;text-align:right}
.zt-admin #download-notification-list .notification-email{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zt-admin #download-notification-list .notification-confirmation{display:inline-block;white-space:nowrap}
.zt-admin #download-notification-list .notification-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px}
.zt-admin #download-notification-list .notification-actions .btn{flex:0 0 auto;white-space:nowrap}

.zt-admin #download-notification-list td>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* WO-039：目前方案的項數與說明各維持單行。 */
.zt-portal #overview-cards .current-plan-card strong,.zt-portal #overview-cards .current-plan-card .bo-card-note{white-space:nowrap}
@media(max-width:768px){.zt-portal #overview-cards .current-plan-card .bo-card-note{font-size:12px}.zt-portal #overview-cards .current-plan-card strong{font-size:24px}}
/* WO-042：公開頁與會員中心共用帳號元件。 */
.public-member-actions{display:flex;align-items:flex-start;gap:14px;margin-left:auto;padding-left:20px;border-left:1px solid var(--zt-line)}
.public-account-slot{min-width:0}.member-login{white-space:nowrap}
.member-cta-group{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.member-notification-note{display:block;max-width:260px;font-size:12px;line-height:1.5;color:var(--zt-muted)}
.member-cta-group [hidden],.member-download-banner[hidden]{display:none!important}
.member-account{position:relative;width:fit-content;min-width:0;max-width:230px}.member-account>summary.member-account-trigger{display:grid;width:fit-content;grid-template-columns:minmax(0,1fr) auto;gap:0 7px;align-items:center;max-width:100%;list-style:none;cursor:pointer;line-height:1.4}
.member-account>summary::-webkit-details-marker{display:none}.member-account .member-account-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12em}
.member-login-state{grid-column:1/-1;font-size:12px;font-weight:400;color:var(--zt-muted)}.member-dealer-badge{grid-column:1/-1;font-size:11px;color:var(--zt-muted)}
.member-account .member-account-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:65;width:270px;max-width:calc(100vw - 32px);padding:12px;background:var(--zt-surface);border:1px solid var(--zt-line);border-radius:14px;box-shadow:0 10px 30px color-mix(in srgb,var(--zt-ink) 14%,transparent)}
.member-account-menu>*{display:block;padding:10px 8px;overflow-wrap:anywhere;text-decoration:none}.member-account-menu>strong{font-size:14px;color:var(--zt-muted);border-bottom:1px solid var(--zt-line)}
.member-account-menu>button{width:100%;text-align:left;background:transparent;border:0;font:inherit;color:var(--zt-alert);cursor:pointer}.member-account-menu a:hover,.member-account-menu button:hover{background:var(--zt-bg)}
.member-download-banner>.container{padding-block:28px}.member-download-banner h2{overflow-wrap:anywhere}.member-download-banner .btn{margin-right:16px}.member-download-banner .mono{overflow-wrap:anywhere}
.zt-portal .portal-account.member-account{width:fit-content;max-width:200px;flex:0 1 auto}.portal-header .portal-account.member-account>summary.member-account-trigger{width:fit-content;max-width:200px;height:auto;min-height:54px;padding:7px 14px;text-align:left;justify-content:start}.portal-header .member-account #portal-account-name{text-align:left;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zt-portal #overview-cards .member-expiry-card strong{font-variant-numeric:tabular-nums;font-size:28px;white-space:nowrap}
@media(max-width:768px){
 .site-header>.container>.public-member-actions{display:none}.site-menu nav>.public-account-slot{order:-2}.site-menu nav>.member-cta-group{order:-1}.site-menu nav>.member-cta-group .btn{display:block;text-align:center}.site-menu .member-account{width:auto;max-width:none}.site-menu .member-account>summary.member-account-trigger{max-width:100%;width:fit-content}.site-menu .member-account .member-account-menu{position:static;width:auto;max-width:none;box-shadow:none;margin-top:8px}.site-menu .member-notification-note{max-width:none}.site-menu .member-cta-group{margin-bottom:12px}
 .zt-portal .portal-account.member-account{width:fit-content;max-width:104px;flex-basis:auto}.portal-header .portal-account.member-account>summary.member-account-trigger{max-width:104px;min-height:44px;padding:4px 8px;font-size:14px;gap:0 3px}.portal-header .member-login-state{font-size:10px}.portal-header .member-dealer-badge{font-size:10px}.zt-portal #overview-cards .member-expiry-card strong{font-size:24px}
}
/* 載入期間先固定可見外框，避免狀態回覆後推動正文。 */
.site-header:not(.portal-header){min-height:106px}
.site-header:not(.portal-header)>.container{min-height:105px}
body:has(script[src*="/assets/site-public.js?v=c0de61c27b"]) .site-header:not(.portal-header):not(.member-state-ready)>.container{visibility:hidden}
.public-member-actions{width:480px;flex:0 0 480px}
.public-member-actions>.public-account-slot{width:190px;flex:0 0 190px}
.member-cta-group .member-notification-note{min-height:36px}
.member-cta-group .member-notification-note[hidden]{display:block!important;visibility:hidden}
.public-member-actions>.member-cta-group{flex:1;max-width:255px}
.hero-actions:has(a[data-download-label]){min-height:105px;align-items:flex-start}
body:has(#download-request):not(.member-session-ready) main{visibility:hidden}
.zt-portal #tab-overview[aria-busy=true]{visibility:hidden}
.member-account .member-login-state{grid-row:2;grid-column:1}
.member-account .member-dealer-badge{grid-row:2;grid-column:2}
@media(max-width:768px){.site-header:not(.portal-header){min-height:73px}.site-header:not(.portal-header)>.container{min-height:72px}.site-menu .member-cta-group .member-notification-note[hidden]{display:none!important}}
.public-member-actions .member-notification-note{min-height:18px}
.hero-actions>a[data-download-label]{margin-bottom:41px}
.member-login{border:1px solid var(--zt-line);background:var(--zt-surface)}
.site-menu nav a.btn-primary{color:var(--zt-surface)}
