/*
 * ua-admin.css — 後台設計系統（REQ-20261009-001 改版 P0：token＋共用外框元件）
 *
 * 來源：docs/design/ua-store-backend-redesign/after/assets/ua-admin.css（mock 原型），只收 P0 用得到的部分。
 * 手寫純 CSS、直接放 public/：部署與 CI 都沒有 npm／Vite build，不得改走 Vite build，也不要用 CSS import 拆檔。
 *
 * 命名規則：
 *   - 所有 class 一律 ua- 前綴（.ua-topbar、.ua-nav-item、.ua-btn…），狀態用 BEM 修飾（.ua-nav-item--active）。
 *     唯一的例外是下面「相容層」區段列出的幾個 class（JS 與彈窗外殼 markup 仍依賴），不得再增加。
 *   - 已被佔用、不可在這裡定義：.ua-scroll-visible／.ua-scroll-hint*（layouts/admin 的 inline 樣式）、
 *     .ua-searchable*（admin/partials/searchable-select）、--ua-scroll-hint-from／--ua-scroll-hint-to。
 *   - token 一律 --ua-*。最小字級 12px。斷點 760px（以下側欄改左側抽屜）。
 *
 * REQ-20261011-003（改版 P5）起：Tailwind Play CDN、layouts/admin 的 .content-area !important 覆寫層、Inter／Outfit 字型都已拿掉，
 * 後台、達人後台、登入頁、無權限頁只剩這一份樣式。
 */

/* ── Tokens ─────────────────────────────────────────────── */
:root {
  /* 底色層 */
  --ua-bg: #f1f1f1;
  --ua-surface: #ffffff;
  --ua-surface-subdued: #f7f7f7;
  --ua-surface-hover: #f6f6f7;
  --ua-nav-bg: #ebebeb;
  --ua-nav-hover: #e3e3e3;
  --ua-nav-active: #fafafa;
  --ua-topbar-bg: #1c1d1f;
  --ua-topbar-input: #303134;
  --ua-topbar-line: #4a4b4e;
  --ua-topbar-text: #e3e3e3;
  --ua-topbar-muted: #b5b5b5;

  /* 文字 */
  --ua-text: #303030;
  --ua-text-secondary: #616161;
  --ua-text-disabled: #b5b5b5;
  --ua-text-link: #005bd3;

  /* 線 */
  --ua-border: #e3e3e3;
  --ua-border-strong: #c9c9c9;
  --ua-border-input: #8a8a8a;
  --ua-divider: #ebebeb;

  /* 品牌與動作 */
  --ua-brand: #faa500;
  --ua-brand-hover: #e09400;
  --ua-brand-ink: #3d2800;
  --ua-ink: #303030;
  --ua-ink-hover: #1a1a1a;
  --ua-focus: #005bd3;
  --ua-focus-on-dark: #8ab4ff;

  /* 狀態色（底／字／點） */
  --ua-success-bg: #cdfee1; --ua-success-text: #0c5132; --ua-success-dot: #29845a;
  --ua-attention-bg: #ffef9d; --ua-attention-text: #4f4700; --ua-attention-dot: #b28400;
  --ua-warning-bg: #ffd6a4; --ua-warning-text: #5e4200; --ua-warning-dot: #e67a00;
  --ua-critical-bg: #fedad9; --ua-critical-text: #8e0b21; --ua-critical-dot: #e51c00;
  --ua-info-bg: #e0f0ff; --ua-info-text: #00527c; --ua-info-dot: #0094d5;
  --ua-neutral-bg: #e3e3e3; --ua-neutral-text: #616161; --ua-neutral-dot: #8a8a8a;
  --ua-critical-strong: #c70a24;

  /* 字型與字級（最小 12px） */
  --ua-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;
  --ua-mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;
  --ua-text-xs: 12px;
  --ua-text-sm: 13px;
  --ua-text-md: 14px;
  --ua-text-lg: 16px;
  --ua-text-xl: 18px;
  --ua-text-2xl: 20px;

  /* 間距（4px 格） */
  --ua-space-1: 4px;
  --ua-space-2: 8px;
  --ua-space-3: 12px;
  --ua-space-4: 16px;
  --ua-space-5: 20px;
  --ua-space-6: 24px;
  --ua-space-8: 32px;

  /* 圓角與陰影 */
  --ua-radius-sm: 6px;
  --ua-radius: 8px;
  --ua-radius-lg: 12px;
  --ua-shadow-card: 0 1px 0 0 rgba(26, 26, 26, 0.07), 0 0 0 1px rgba(26, 26, 26, 0.06);
  --ua-shadow-pop: 0 8px 24px -4px rgba(26, 26, 26, 0.18), 0 0 0 1px rgba(26, 26, 26, 0.08);
  --ua-shadow-btn: inset 0 -1px 0 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 0 rgba(255, 255, 255, 0.12);

  /* 外框尺寸與動態 */
  --ua-topbar-h: 56px;
  --ua-nav-w: 240px;
  --ua-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ua-drawer-duration: 0.22s;
}

/* ══ 基礎（REQ-20261011-003 P5）════════════════════════════════════════════
 * 取代 Tailwind CDN 的 preflight，只留畫面與 P4 一致所需的部分：box-sizing 與邊框歸零、表單元素繼承字型、
 * 標題／段落／清單預設 margin 歸零、連結繼承顏色、圖片與 svg 為 block。全部是元素選擇器（權重低於任何 ua- class）。
 */
*,
::before,
::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: var(--ua-font); -webkit-tap-highlight-color: transparent; }
body { margin: 0; line-height: inherit; }
hr { height: 0; color: inherit; border-top-width: 1px; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: inherit; }
b, strong { font-weight: bolder; }
code, kbd, samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 1em; }
small { font-size: 80%; }
table { text-indent: 0; border-color: inherit; border-collapse: collapse; }
button, input, optgroup, select, textarea {
  margin: 0; padding: 0;
  font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit;
}
button, select { text-transform: none; }
button, input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; background-color: transparent; background-image: none; }
::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
summary { display: list-item; }
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; }
fieldset { margin: 0; padding: 0; }
legend { padding: 0; }
ol, ul, menu { list-style: none; margin: 0; padding: 0; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { opacity: 1; color: #9ca3af; }
button, [role="button"] { cursor: pointer; }
:disabled { cursor: default; }
img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }

/* ══ 相容層（REQ-20261011-003 P5；不得再增加）═══════════════════════════════
 * 拿掉 Tailwind 之後，JS 與彈窗外殼 markup 仍依賴的 class（tests/Feature/TailwindRemovalTest::COMPAT_CLASSES 是白名單）：
 *   - .hidden：全站 JS 以 classList 開關（classList.add／remove／toggle('hidden')）；
 *   - [hidden]：hidden 屬性一律隱藏（元件自己有 display 也一樣）；
 *   - .fixed .inset-0 .z-50 .flex .items-center .justify-center .p-4：彈窗外殼
 *     （<div class="fixed inset-0 z-50 hidden flex items-center justify-center p-4 ua-modal-scrim">；
 *     layouts/admin 的 UAScrollLock 以 .fixed.inset-0 辨認彈窗）。
 * 新畫面一律用 ua- 元件，不要再用這些 class 排版。
 */
.hidden { display: none !important; }
[hidden] { display: none !important; }
.fixed { position: fixed; }
.inset-0 { inset: 0; }
.z-50 { z-index: 50; }
.flex { display: flex; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.p-4 { padding: 16px; }

/* ── 外框自己的 box model ── */
.ua-page,
.ua-page *,
.ua-page *::before,
.ua-page *::after,
.ua-topbar,
.ua-topbar *,
.ua-sidebar,
.ua-sidebar *,
.ua-app-main,
.ua-content,
.ua-portal-top,
.ua-portal-top * { box-sizing: border-box; }

/* ── 共用小工具 ─────────────────────────────────────────── */
.ua-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;
}
.ua-icon { width: 16px; height: 16px; flex: none; display: block; }
.ua-icon-lg { width: 20px; height: 20px; flex: none; display: block; }

/* 整頁（登入、無權限、達人後台）的底色與字型；後台版面的 body 另有 inline 覆寫層，不套這個 */
.ua-page {
  margin: 0;
  min-height: 100vh;
  background: var(--ua-bg);
  color: var(--ua-text);
  font: 400 var(--ua-text-md)/1.55 var(--ua-font);
  -webkit-font-smoothing: antialiased;
}
.ua-page :focus-visible { outline: 2px solid var(--ua-focus); outline-offset: 2px; }

/* ── 頂欄（後台） ───────────────────────────────────────── */
.ua-topbar {
  position: sticky; top: 0; z-index: 30;
  height: var(--ua-topbar-h);
  display: flex; align-items: center; gap: var(--ua-space-4);
  padding: 0 var(--ua-space-3) 0 var(--ua-space-4);
  background: var(--ua-topbar-bg);
  color: var(--ua-topbar-text);
  font-family: var(--ua-font);
  font-size: var(--ua-text-sm);
  line-height: 1.4;
}
.ua-topbar :focus-visible { outline: 2px solid var(--ua-focus-on-dark); outline-offset: 2px; }
.ua-topbar-menu {
  display: none; place-items: center; flex: none;
  width: 36px; height: 36px; margin: 0; padding: 0;
  border: 0; border-radius: var(--ua-radius);
  background: transparent; color: var(--ua-topbar-text); cursor: pointer;
}
.ua-topbar-menu:hover { background: var(--ua-topbar-input); }
.ua-brand {
  display: flex; align-items: center; gap: 10px; flex: none;
  width: calc(var(--ua-nav-w) - var(--ua-space-4));
  color: #ffffff; text-decoration: none;
  font-size: var(--ua-text-md); font-weight: 650; line-height: 1.25;
}
.ua-brand:hover { text-decoration: none; }
.ua-brand-logo { width: 30px; height: 30px; flex: none; display: block; }
.ua-brand-text { display: block; white-space: nowrap; }
.ua-brand-sub { display: block; font-size: var(--ua-text-xs); font-weight: 450; color: var(--ua-topbar-muted); }
.ua-topbar-center { flex: 1; min-width: 0; display: flex; justify-content: center; }
.ua-global-search {
  display: flex; align-items: center; gap: var(--ua-space-2);
  width: min(560px, 100%); height: 34px; margin: 0; padding: 0 10px;
  border: 1px solid #3c3d40; border-radius: var(--ua-radius);
  background: var(--ua-topbar-input); color: #a8a8a8;
  font: 400 var(--ua-text-sm)/1 var(--ua-font);
  text-align: left; white-space: nowrap; overflow: hidden; cursor: pointer;
}
.ua-global-search:hover { border-color: #5c5f62; color: var(--ua-topbar-text); }
.ua-global-search-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ua-global-search-kbd {
  margin-left: auto; padding: 2px 6px;
  border: 1px solid var(--ua-topbar-line); border-radius: 5px;
  background: #26272a; color: #c9c9c9;
  font: 500 var(--ua-text-xs)/1.2 var(--ua-font);
}
.ua-topbar-right { display: flex; align-items: center; gap: 10px; flex: none; }
.ua-topbar-link {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px;
  border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-topbar-line);
  color: var(--ua-topbar-text); text-decoration: none; white-space: nowrap;
  font-size: var(--ua-text-sm); font-weight: 600;
}
.ua-topbar-link:hover { background: var(--ua-topbar-input); color: #ffffff; text-decoration: none; }
.ua-topbar-time {
  font-size: var(--ua-text-xs); color: var(--ua-topbar-muted);
  white-space: nowrap; font-variant-numeric: tabular-nums; cursor: help;
}
.ua-user-chip { display: flex; align-items: center; gap: var(--ua-space-2); min-width: 0; color: var(--ua-topbar-text); font-size: var(--ua-text-sm); }
.ua-user-chip-name { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ua-avatar {
  width: 30px; height: 30px; flex: none; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--ua-topbar-line); color: #ffffff;
  font-size: var(--ua-text-xs); font-weight: 600; line-height: 1;
}

/* 環境標籤：正式機紅、測試機琥珀、本機灰；未列出的 APP_ENV 用中性色顯示原字串 */
.ua-env-tag {
  display: inline-block; white-space: nowrap;
  padding: 6px 8px; border-radius: var(--ua-radius-sm);
  font: 700 var(--ua-text-xs)/1 var(--ua-font); letter-spacing: 0.04em;
}
.ua-env-tag--production { background: var(--ua-critical-strong); color: #ffffff; }
.ua-env-tag--staging { background: var(--ua-brand); color: var(--ua-brand-ink); }
.ua-env-tag--local { background: #5c5f62; color: #ffffff; }
.ua-env-tag--other { background: var(--ua-neutral-bg); color: var(--ua-text); }

/* ── 側欄（後台）：桌機固定在左；< 760px 變成左側抽屜（同一個 <aside>） ── */
.ua-sidebar {
  position: fixed; top: var(--ua-topbar-h); bottom: 0; left: 0; z-index: 20;
  width: var(--ua-nav-w);
  display: flex; flex-direction: column;
  background: var(--ua-nav-bg);
  border-right: 1px solid var(--ua-border);
  color: var(--ua-text);
  font-family: var(--ua-font);
  font-size: var(--ua-text-sm);
  line-height: 1.4;
}
.ua-sidebar :focus-visible { outline: 2px solid var(--ua-focus); outline-offset: -2px; }
.ua-nav { flex: 1; min-height: 0; overflow-y: auto; padding: var(--ua-space-3) var(--ua-space-2) var(--ua-space-4); }
.ua-nav-group + .ua-nav-group { margin-top: 14px; }
.ua-nav-heading {
  margin: 0; padding: 6px 10px 4px;
  font-size: var(--ua-text-xs); font-weight: 600; color: var(--ua-text-secondary);
}
.ua-nav-item {
  display: flex; align-items: center; gap: 10px;
  min-height: 32px; padding: 4px 10px;
  border-radius: var(--ua-radius);
  color: var(--ua-text); text-decoration: none;
  font-size: var(--ua-text-sm); font-weight: 550;
}
.ua-nav-item + .ua-nav-item { margin-top: 2px; }
.ua-nav-item:hover { background: var(--ua-nav-hover); color: var(--ua-text); text-decoration: none; }
.ua-nav-item--active,
.ua-nav-item--active:hover { background: var(--ua-nav-active); box-shadow: var(--ua-shadow-card); font-weight: 650; }
.ua-nav-icon { width: 16px; height: 16px; flex: none; color: #4a4a4a; }
.ua-nav-label { flex: 1; min-width: 0; }
.ua-nav-badge {
  flex: none; display: inline-grid; place-items: center;
  min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px;
  font-size: var(--ua-text-xs); font-weight: 650; line-height: 1; font-variant-numeric: tabular-nums;
}
.ua-nav-badge--critical { background: var(--ua-critical-bg); color: var(--ua-critical-text); }
.ua-nav-badge--attention { background: var(--ua-attention-bg); color: var(--ua-attention-text); }
.ua-sidebar-footer {
  display: flex; align-items: center; gap: 10px; flex: none;
  padding: var(--ua-space-3);
  border-top: 1px solid var(--ua-border);
}
.ua-sidebar-footer .ua-avatar { background: var(--ua-ink); }
.ua-sidebar-user { flex: 1; min-width: 0; }
.ua-sidebar-user-name { margin: 0; font-size: var(--ua-text-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ua-sidebar-user-role { margin: 0; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ua-sidebar-scrim { display: none; }

/* 內容區：位置與內距（內容區沿用的 P4 外觀見檔尾 P5 區段的 .ua-content 規則） */
.ua-app-main { margin-left: var(--ua-nav-w); min-width: 0; min-height: calc(100vh - var(--ua-topbar-h)); display: flex; flex-direction: column; }
.ua-content { flex: 1; min-width: 0; padding: var(--ua-space-8); }

/* ── 按鈕 ───────────────────────────────────────────────── */
.ua-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 32px; margin: 0; padding: 0 var(--ua-space-3);
  border: 0; border-radius: var(--ua-radius);
  background: var(--ua-surface); color: var(--ua-text);
  box-shadow: var(--ua-shadow-card), inset 0 -1px 0 0 #d4d4d4;
  font: 600 var(--ua-text-sm)/1 var(--ua-font);
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color 0.15s var(--ua-ease);
}
.ua-btn:hover { background: var(--ua-surface-hover); text-decoration: none; }
.ua-btn--primary { background: var(--ua-ink); color: #ffffff; box-shadow: var(--ua-shadow-btn), 0 1px 0 rgba(0, 0, 0, 0.25); }
.ua-btn--primary:hover { background: var(--ua-ink-hover); color: #ffffff; }
.ua-btn--brand { background: var(--ua-brand); color: var(--ua-brand-ink); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.18); }
.ua-btn--brand:hover { background: var(--ua-brand-hover); color: var(--ua-brand-ink); }
.ua-btn--attention { background: var(--ua-attention-bg); color: var(--ua-attention-text); box-shadow: inset 0 0 0 1px #e6d27a; }
.ua-btn--attention:hover { background: #fde784; }
.ua-btn--plain { background: transparent; box-shadow: none; color: var(--ua-text-secondary); padding: 0 var(--ua-space-2); }
.ua-btn--plain:hover { background: rgba(0, 0, 0, 0.05); color: var(--ua-text); }
.ua-btn--sm { height: 28px; padding: 0 10px; font-size: var(--ua-text-xs); }
.ua-btn--block { display: flex; width: 100%; height: 40px; font-size: var(--ua-text-md); }
.ua-icon-btn {
  display: inline-grid; place-items: center; flex: none;
  width: 32px; height: 32px; margin: 0; padding: 0;
  border: 0; border-radius: var(--ua-radius);
  background: transparent; color: var(--ua-text-secondary); cursor: pointer;
}
.ua-icon-btn:hover { background: var(--ua-critical-bg); color: var(--ua-critical-text); }

/* ── 卡片 ───────────────────────────────────────────────── */
.ua-card { background: var(--ua-surface); border-radius: var(--ua-radius-lg); box-shadow: var(--ua-shadow-card); min-width: 0; }
.ua-card-section { padding: var(--ua-space-4); }

/* ── Banner ─────────────────────────────────────────────── */
.ua-banner {
  display: flex; gap: 10px; align-items: flex-start;
  padding: var(--ua-space-3) 14px; border-radius: var(--ua-radius-lg);
  font-size: var(--ua-text-sm); line-height: 1.5; text-align: left;
}
.ua-banner--info { background: var(--ua-info-bg); color: var(--ua-info-text); }
.ua-banner--warning { background: #fff1e3; color: var(--ua-warning-text); box-shadow: inset 0 0 0 1px #ffd6a4; }
.ua-banner--critical { background: #fff4f4; color: var(--ua-critical-text); box-shadow: inset 0 0 0 1px #fedad9; }
.ua-banner--success { background: #f1fdf6; color: var(--ua-success-text); box-shadow: inset 0 0 0 1px #cdfee1; }

/* ── 表單欄位 ───────────────────────────────────────────── */
.ua-field { display: grid; gap: var(--ua-space-1); text-align: left; }
.ua-field + .ua-field { margin-top: 14px; }
.ua-label { font-size: var(--ua-text-sm); font-weight: 550; color: var(--ua-text); }
.ua-help { font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-input {
  width: 100%; height: 32px; margin: 0; padding: 0 10px;
  border: 0; border-radius: var(--ua-radius);
  box-shadow: inset 0 0 0 1px var(--ua-border-input);
  background: #ffffff; color: var(--ua-text);
  font: 400 var(--ua-text-md) var(--ua-font);
}
.ua-input:focus { outline: 2px solid var(--ua-focus); outline-offset: 0; }
.ua-input--lg { height: 40px; }

/* ── 登入卡片（管理員登入、達人登入、無權限頁） ───────────── */
.ua-login-wrap { min-height: 100vh; display: grid; place-items: center; padding: var(--ua-space-6); background: var(--ua-bg); }
.ua-login-card { width: min(400px, 100%); }
.ua-login-body { padding: var(--ua-space-8) 28px 28px; text-align: center; }
.ua-login-logo { width: 60px; height: 60px; display: block; margin: 0 auto 14px; }
.ua-login-title { margin: 0; font-size: var(--ua-text-xl); font-weight: 700; line-height: 1.35; color: var(--ua-text); }
.ua-login-lead { margin: var(--ua-space-1) 0 0; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-login-alert { margin-top: var(--ua-space-5); }
.ua-login-form { margin-top: 22px; text-align: left; }
.ua-login-form-alert { margin-bottom: var(--ua-space-4); }
.ua-login-action { margin-top: 22px; }
.ua-login-note { margin: var(--ua-space-3) 0 0; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); line-height: 1.6; text-align: center; }
.ua-login-foot { margin: 18px 0 0; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); text-align: center; }

/* ── 達人後台頂欄（獨立版面，沒有後台側欄、沒有 Ctrl+K） ─────── */
.ua-portal-top {
  position: sticky; top: 0; z-index: 30;
  background: var(--ua-surface); border-bottom: 1px solid var(--ua-border);
  color: var(--ua-text); font-family: var(--ua-font); font-size: var(--ua-text-sm); line-height: 1.4;
}
.ua-portal-inner { max-width: 1280px; margin: 0 auto; padding: 0 var(--ua-space-6); }
.ua-portal-bar { min-height: 56px; display: flex; align-items: center; gap: var(--ua-space-4); flex-wrap: wrap; padding: var(--ua-space-2) 0; }
.ua-portal-brand { display: flex; align-items: center; gap: 10px; flex: none; }
.ua-portal-title { margin: 0; font-size: var(--ua-text-md); font-weight: 700; color: var(--ua-text); white-space: nowrap; }
.ua-portal-switch { display: flex; align-items: center; gap: var(--ua-space-2); min-width: 0; }
.ua-portal-switch-label { font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-portal-actions { margin-left: auto; display: flex; align-items: center; gap: var(--ua-space-3); flex-wrap: wrap; justify-content: flex-end; }
.ua-portal-note { font-size: var(--ua-text-xs); color: var(--ua-text-secondary); white-space: nowrap; }
.ua-portal-user { font-size: var(--ua-text-sm); color: var(--ua-text-secondary); white-space: nowrap; }
.ua-portal-tabs { display: flex; gap: var(--ua-space-1); margin-bottom: -1px; overflow-x: auto; }
.ua-portal-tab {
  display: inline-flex; align-items: center; height: 40px; padding: 0 10px;
  border-bottom: 2px solid transparent;
  color: var(--ua-text-secondary); text-decoration: none; white-space: nowrap;
  font-size: var(--ua-text-sm); font-weight: 550;
}
.ua-portal-tab:hover { color: var(--ua-text); text-decoration: none; }
.ua-portal-tab--active { color: var(--ua-text); border-bottom-color: var(--ua-ink); font-weight: 650; }
.ua-viewas-bar { background: #fff1e3; color: var(--ua-warning-text); box-shadow: inset 0 -1px 0 #ffd6a4; font-size: var(--ua-text-sm); }
.ua-viewas-inner { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: var(--ua-space-2); padding-bottom: var(--ua-space-2); }
.ua-viewas-title { font-weight: 650; }
.ua-viewas-form { margin: 0 0 0 auto; }

/* ══ 頁面內容元件（REQ-20261009-002 P1a 起：會員列表、會員明細） ══════════════
 * 用在 <main class="ua-content"> 裡（P1–P4 期間與 .content-area 覆寫層並存，P5 已拿掉覆寫層）。
 * 輸入框用真的 border；彈窗外層沿用相容層的 fixed inset-0 hidden（UAScrollLock 靠它判斷開關），這裡只管外觀。
 */
:root {
  --ua-band-track: #ebebeb;
  --ua-band-active: #29845a;
  --ua-band-pending: #ffd6a4;
  --ua-band-ended: #b5b5b5;
  --ua-band-today: #303030;
}

.ua-view {
  max-width: 1240px; margin: 0 auto;
  color: var(--ua-text);
  font-family: var(--ua-font); font-size: var(--ua-text-md); line-height: 1.5;
}
.ua-view,
.ua-view *,
.ua-view *::before,
.ua-view *::after { box-sizing: border-box; }
.ua-view :focus-visible { outline: 2px solid var(--ua-focus); outline-offset: 2px; }
.ua-mono { font-family: var(--ua-mono); font-size: var(--ua-text-xs); }
.ua-muted { color: var(--ua-text-secondary); }
.ua-nowrap { white-space: nowrap; }
.ua-text-sm { font-size: var(--ua-text-sm); }
.ua-text-xs { font-size: var(--ua-text-xs); }
.ua-strong { font-weight: 600; }
.ua-text-critical { color: var(--ua-critical-text); }
.ua-link { color: var(--ua-text-link); font-weight: 550; text-decoration: none; }
.ua-link:hover { text-decoration: underline; }
.ua-link-btn {
  margin: 0; padding: 0; border: 0; background: none; cursor: pointer;
  color: var(--ua-text-link); font: 600 var(--ua-text-xs)/1.4 var(--ua-font);
}
.ua-link-btn:hover { text-decoration: underline; }
.ua-spacer { flex: 1; }
.ua-row { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; }

/* 頁首 */
.ua-page-header { display: flex; align-items: center; gap: var(--ua-space-3); flex-wrap: wrap; margin-bottom: var(--ua-space-4); }
.ua-back {
  display: grid; place-items: center; flex: none; width: 32px; height: 32px;
  border-radius: var(--ua-radius); color: var(--ua-text); text-decoration: none;
}
.ua-back:hover { background: rgba(0, 0, 0, 0.06); }
.ua-page-heading { display: flex; align-items: center; gap: var(--ua-space-3); min-width: 0; flex: 1 1 280px; }
.ua-page-title-row { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; }
.ua-page-title { margin: 0; font-size: var(--ua-text-2xl); font-weight: 700; line-height: 1.3; color: var(--ua-text); }
.ua-page-sub { margin-top: 2px; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-page-actions { margin-left: auto; display: flex; gap: var(--ua-space-2); align-items: center; flex-wrap: wrap; }
.ua-member-avatar {
  display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%;
  background: var(--ua-ink); color: #ffffff; font-size: var(--ua-text-lg); font-weight: 700;
}
.ua-banner-stack { display: grid; gap: var(--ua-space-3); margin-bottom: var(--ua-space-4); }
.ua-banner-body { flex: 1; min-width: 0; }
.ua-banner-title { font-weight: 650; }
.ua-banner-list { margin: 0; padding-left: 18px; }

/* 版面：主欄＋320px 側欄 */
.ua-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--ua-space-4); align-items: start; }
.ua-col { display: grid; gap: var(--ua-space-4); align-content: start; min-width: 0; }
/* grid 子項預設 min-width:auto 會被表格的最小寬撐開（手機整頁橫捲）；寬表格改在 .ua-table-wrap 內橫捲 */
.ua-layout > *,
.ua-col > * { min-width: 0; }

/* 卡片 */
.ua-card-header { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; padding: 14px var(--ua-space-4) 0; }
.ua-card-header + .ua-card-section { padding-top: var(--ua-space-3); }
.ua-card-title { margin: 0; font-size: var(--ua-text-md); font-weight: 650; line-height: 1.4; color: var(--ua-text); }
.ua-card-count { font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-card-actions { margin-left: auto; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.ua-card--flush { overflow: hidden; }
.ua-card-note { padding: 4px var(--ua-space-4) 0; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); line-height: 1.6; }
.ua-card-empty { padding: var(--ua-space-6) var(--ua-space-4); text-align: center; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-card--danger { box-shadow: 0 0 0 1px #fedad9; }
.ua-card--danger .ua-card-title { color: var(--ua-critical-text); }
.ua-card--attention { box-shadow: 0 0 0 1px #f3e2a0; }

/* 頁內分頁籤（會員明細）與列表分頁籤（會員列表） */
.ua-tabs { display: flex; gap: 4px; margin-bottom: var(--ua-space-4); border-bottom: 1px solid var(--ua-divider); overflow-x: auto; }
.ua-tab {
  height: 40px; margin: 0 0 -1px; padding: 0 var(--ua-space-3);
  border: 0; border-bottom: 2px solid transparent; background: transparent; cursor: pointer;
  color: var(--ua-text-secondary); font: 550 var(--ua-text-sm)/1 var(--ua-font); white-space: nowrap;
}
.ua-tab:hover { color: var(--ua-text); }
.ua-tab--active { color: var(--ua-text); border-bottom-color: var(--ua-ink); font-weight: 650; }
.ua-index-tabs { display: flex; gap: 2px; padding: var(--ua-space-2) var(--ua-space-2) 0; box-shadow: inset 0 -1px 0 var(--ua-divider); overflow-x: auto; }
.ua-index-tab {
  display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 var(--ua-space-3);
  border-bottom: 2px solid transparent; border-radius: var(--ua-radius) var(--ua-radius) 0 0;
  color: var(--ua-text-secondary); text-decoration: none; white-space: nowrap;
  font-size: var(--ua-text-sm); font-weight: 550;
}
.ua-index-tab:hover { color: var(--ua-text); background: var(--ua-surface-hover); text-decoration: none; }
.ua-index-tab--active { color: var(--ua-text); border-bottom-color: var(--ua-ink); font-weight: 650; }

/* 篩選列 */
.ua-filter-bar { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; padding: var(--ua-space-2); border-bottom: 1px solid var(--ua-divider); }
.ua-search { position: relative; flex: 1; min-width: 200px; display: flex; align-items: center; }
.ua-search-icon { position: absolute; left: 10px; width: 16px; height: 16px; color: var(--ua-text-secondary); pointer-events: none; }
.ua-view .ua-search .ua-input { padding-left: 34px; }
.ua-filter-help { width: 100%; padding: 0 2px; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }

/* 表格 */
/* position: relative：表格裡的 ua-sr-only（絕對定位）要被包在捲動框內，否則會把整頁撐出橫捲 */
.ua-table-wrap { position: relative; overflow-x: auto; }
.ua-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--ua-text-sm); }
.ua-table th {
  height: 36px; padding: var(--ua-space-2) var(--ua-space-3);
  background: var(--ua-surface-subdued); border-bottom: 1px solid var(--ua-divider);
  color: var(--ua-text-secondary); font-size: var(--ua-text-xs); font-weight: 600; text-align: left; white-space: nowrap;
}
.ua-table td { padding: 10px var(--ua-space-3); border-bottom: 1px solid var(--ua-divider); vertical-align: middle; }
.ua-table .ua-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ua-table .ua-cell-act { width: 1%; text-align: right; white-space: nowrap; }
.ua-table--minw { min-width: 640px; }
.ua-cell-primary { font-weight: 600; color: var(--ua-text); }
.ua-cell-sub { display: block; margin-top: 2px; font-size: var(--ua-text-xs); font-weight: 400; line-height: 1.4; color: var(--ua-text-secondary); }
.ua-cell-mode { min-width: 140px; }
.ua-link-input { min-width: 220px; font-size: var(--ua-text-xs); }
.ua-history-action { display: inline-flex; align-items: center; height: 22px; padding: 0 var(--ua-space-2); border-radius: var(--ua-radius-sm); font-size: var(--ua-text-xs); font-weight: 600; white-space: nowrap; }
.ua-row-hint > td { text-align: center; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); background: var(--ua-surface-subdued); }
.ua-table-footer {
  display: flex; align-items: center; justify-content: space-between; gap: var(--ua-space-2); flex-wrap: wrap;
  padding: 10px var(--ua-space-3); border-top: 1px solid var(--ua-divider);
  font-size: var(--ua-text-sm); color: var(--ua-text-secondary);
}
.ua-table-footer > * { flex: 1; min-width: 0; }

/* 狀態標籤（五種色調＋中性）與小標籤 */
.ua-badge {
  display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px 0 7px;
  border-radius: 999px; background: var(--ua-neutral-bg); color: var(--ua-neutral-text);
  font-size: var(--ua-text-xs); font-weight: 550; line-height: 1; white-space: nowrap;
}
.ua-badge::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--ua-neutral-dot); }
.ua-badge--success { background: var(--ua-success-bg); color: var(--ua-success-text); }
.ua-badge--success::before { background: var(--ua-success-dot); }
.ua-badge--attention { background: var(--ua-attention-bg); color: var(--ua-attention-text); }
.ua-badge--attention::before { background: var(--ua-attention-dot); }
.ua-badge--warning { background: var(--ua-warning-bg); color: var(--ua-warning-text); }
.ua-badge--warning::before { background: var(--ua-warning-dot); }
.ua-badge--critical { background: var(--ua-critical-bg); color: var(--ua-critical-text); }
.ua-badge--critical::before { background: var(--ua-critical-dot); }
.ua-badge--info { background: var(--ua-info-bg); color: var(--ua-info-text); }
.ua-badge--info::before { background: var(--ua-info-dot); }
.ua-badge--outline { background: transparent; box-shadow: inset 0 0 0 1px var(--ua-border-strong); color: var(--ua-text-secondary); }
.ua-badge--outline::before { display: none; }
.ua-tag {
  display: inline-flex; align-items: center; height: 22px; padding: 0 var(--ua-space-2);
  border-radius: var(--ua-radius-sm); background: #f1f1f1; color: var(--ua-text-secondary);
  font-size: var(--ua-text-xs); line-height: 1; white-space: nowrap;
}
.ua-tags { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 4px; }

/* 鍵值與清單 */
.ua-kv { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--ua-space-2) var(--ua-space-3); margin: 0; font-size: var(--ua-text-sm); }
.ua-kv dt { color: var(--ua-text-secondary); }
.ua-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.ua-list { margin: var(--ua-space-2) 0 0; padding: 0; list-style: none; }
.ua-list > li {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 10px var(--ua-space-4); border-top: 1px solid var(--ua-divider); font-size: var(--ua-text-sm);
}
.ua-list > li:first-child { border-top: 0; }
.ua-list-stack { align-items: flex-start; }
.ua-bound { margin-top: 2px; font-size: var(--ua-text-xs); line-height: 1.5; color: var(--ua-text-secondary); overflow-wrap: anywhere; }

/* 訂閱列「管理」選單：表格列下方展開的一列動作（每項一句後果，不可恢復的在分隔線後、紅字） */
.ua-act-stack { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.ua-row-menu > td { padding: 10px var(--ua-space-3) var(--ua-space-3); background: var(--ua-surface-subdued); }
.ua-menu { display: flex; gap: var(--ua-space-2); flex-wrap: wrap; align-items: flex-start; }
.ua-menu-item { display: grid; gap: 4px; justify-items: start; max-width: 240px; }
.ua-menu-item form { margin: 0; }
.ua-menu-hint { font-size: var(--ua-text-xs); line-height: 1.4; color: var(--ua-text-secondary); white-space: normal; }
.ua-menu-item--danger .ua-menu-hint { color: var(--ua-critical-text); }
.ua-menu-sep { align-self: stretch; width: 1px; margin: 0 4px; background: var(--ua-divider); }

/* 按鈕（補） */
.ua-btn--danger { background: var(--ua-critical-strong); color: #ffffff; box-shadow: var(--ua-shadow-btn); }
.ua-btn--danger:hover { background: #a5081e; color: #ffffff; }
.ua-btn--danger-outline { background: var(--ua-surface); color: var(--ua-critical-text); box-shadow: 0 0 0 1px #f3b5b2, inset 0 -1px 0 0 #f3b5b2; }
.ua-btn--danger-outline:hover { background: #fff4f4; }
.ua-btn:disabled { opacity: 0.45; cursor: not-allowed; }

/* 表單（補） */
.ua-view .ua-input,
.ua-select,
.ua-textarea {
  width: 100%; margin: 0;
  border: 1px solid var(--ua-border-input); border-radius: var(--ua-radius); box-shadow: none;
  background: #ffffff; color: var(--ua-text); font: 400 var(--ua-text-sm) var(--ua-font);
}
.ua-view .ua-input,
.ua-select { height: 34px; padding: 0 10px; }
.ua-select { padding-right: 28px; }
/* 原生多選列表框（訂單篩選 REQ-20261015-002；Tom Select 沒載入時的降級）：要看得到多列才選得了 */
.ua-select[multiple] { height: auto; min-height: 132px; padding: 4px; }
.ua-textarea { min-height: 80px; padding: var(--ua-space-2) 10px; line-height: 1.5; resize: vertical; }
.ua-file { width: 100%; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px var(--ua-space-4); align-items: start; }
.ua-form-grid > .ua-field + .ua-field { margin-top: 0; }
.ua-field--full { grid-column: 1 / -1; }
.ua-checkbox-row { display: flex; align-items: flex-start; gap: var(--ua-space-2); font-size: var(--ua-text-sm); cursor: pointer; }
.ua-checkbox-row input { margin: 3px 0 0; flex: none; }
.ua-field-error { font-size: var(--ua-text-xs); color: var(--ua-critical-text); }
.ua-fieldset { display: grid; gap: 14px; padding: var(--ua-space-3) 14px; border-radius: var(--ua-radius); background: var(--ua-surface-subdued); box-shadow: inset 0 0 0 1px var(--ua-border); }

/* 彈窗：外層沿用相容層的 fixed inset-0 hidden flex（UAScrollLock 監看），這裡只管遮罩色與面板 */
.ua-modal-scrim { background: rgba(0, 0, 0, 0.45); }
.ua-modal {
  display: flex; flex-direction: column;
  width: min(560px, 100%); max-height: calc(100vh - 32px); overflow-y: auto;
  background: var(--ua-surface); border-radius: var(--ua-radius-lg); box-shadow: var(--ua-shadow-pop);
  color: var(--ua-text); font-family: var(--ua-font); font-size: var(--ua-text-md); line-height: 1.5; text-align: left;
}
.ua-modal--lg { width: min(720px, 100%); }
.ua-modal,
.ua-modal *,
.ua-modal *::before,
.ua-modal *::after { box-sizing: border-box; }
.ua-modal :focus-visible { outline: 2px solid var(--ua-focus); outline-offset: 2px; }
.ua-modal-header {
  position: sticky; top: 0; z-index: 1;
  display: flex; align-items: flex-start; gap: var(--ua-space-3);
  padding: 14px var(--ua-space-4); border-bottom: 1px solid var(--ua-divider); background: var(--ua-surface);
}
.ua-modal-heading { flex: 1; min-width: 0; }
.ua-modal-title { margin: 0; font-size: var(--ua-text-lg); font-weight: 650; line-height: 1.4; color: var(--ua-text); }
.ua-modal-title--danger { color: var(--ua-critical-text); }
.ua-modal-ctx { margin-top: 2px; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); overflow-wrap: anywhere; }
.ua-modal-close {
  display: grid; place-items: center; flex: none; width: 32px; height: 32px; margin: -4px -6px 0 0; padding: 0;
  border: 0; border-radius: var(--ua-radius); background: transparent; color: var(--ua-text-secondary); cursor: pointer;
}
.ua-modal-close:hover { background: rgba(0, 0, 0, 0.06); color: var(--ua-text); }
.ua-modal-body { display: grid; gap: 14px; padding: var(--ua-space-4); }
.ua-modal-body > .ua-field + .ua-field { margin-top: 0; }
.ua-modal-section + .ua-modal-section { padding-top: 14px; border-top: 1px solid var(--ua-divider); }
.ua-modal-section-title { margin: 0 0 10px; font-size: var(--ua-text-sm); font-weight: 650; }
.ua-modal-footer {
  display: flex; justify-content: flex-end; gap: var(--ua-space-2); flex-wrap: wrap;
  padding: var(--ua-space-3) var(--ua-space-4); border-top: 1px solid var(--ua-divider); background: var(--ua-surface-subdued);
}
.ua-confirm-text { margin: 0; white-space: pre-line; overflow-wrap: anywhere; font-size: var(--ua-text-md); line-height: 1.6; }

/* 危險區（工程模式） */
.ua-danger-sub + .ua-danger-sub { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ua-divider); }
.ua-danger-title { margin: 0; font-size: var(--ua-text-sm); font-weight: 650; }
.ua-fd-card { display: grid; gap: 6px; margin-top: var(--ua-space-2); padding: 10px var(--ua-space-3); border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-border); font-size: var(--ua-text-sm); }
.ua-fd-card .ua-kv { grid-template-columns: 72px minmax(0, 1fr); gap: 2px var(--ua-space-2); font-size: var(--ua-text-xs); }

/* 縮圖 */
.ua-thumbs { display: flex; gap: 6px; flex-wrap: wrap; }
.ua-thumb { display: block; width: 44px; height: 44px; overflow: hidden; border-radius: var(--ua-radius); background: var(--ua-surface-subdued); box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-thumb-img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* 權益期間帶：每個訂閱一列，本期起訖、今天位置、下次扣款點（只畫既有資料，不畫歷史次數） */
.ua-band { display: grid; gap: 10px; padding: var(--ua-space-4); }
.ua-band-scale { display: flex; justify-content: space-between; padding-left: 148px; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-band-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: var(--ua-space-2); align-items: center; }
.ua-band-name { font-size: var(--ua-text-xs); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.ua-band-name-sub { display: block; font-weight: 400; color: var(--ua-text-secondary); }
.ua-band-track { position: relative; height: 22px; border-radius: var(--ua-radius-sm); background: var(--ua-band-track); }
.ua-band-seg {
  position: absolute; top: 3px; bottom: 3px; min-width: 4px;
  display: flex; align-items: center; padding: 0 6px; overflow: hidden;
  border-radius: 4px; background: var(--ua-band-active); color: #ffffff;
  font-size: var(--ua-text-xs); font-weight: 600; white-space: nowrap;
}
.ua-band-seg--pending { background: var(--ua-band-pending); color: var(--ua-warning-text); box-shadow: inset 0 0 0 1.5px var(--ua-warning-dot); }
.ua-band-seg--ended { background: var(--ua-band-ended); color: #3a3a3a; }
.ua-band-today { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--ua-band-today); }
.ua-band-tick { position: absolute; top: 5px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: #ffffff; box-shadow: inset 0 0 0 2px var(--ua-band-today); }
.ua-band-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-band-swatch { display: inline-block; width: 10px; height: 10px; margin-right: 5px; border-radius: 3px; vertical-align: -1px; background: var(--ua-band-active); }
.ua-band-swatch--pending { background: var(--ua-band-pending); box-shadow: inset 0 0 0 1px var(--ua-warning-dot); }
.ua-band-swatch--ended { background: var(--ua-band-ended); }
.ua-band-swatch--tick { border-radius: 50%; background: #ffffff; box-shadow: inset 0 0 0 2px var(--ua-band-today); }
.ua-band-swatch--today { width: 2px; border-radius: 1px; background: var(--ua-band-today); }
/* REQ-20261012-006：永久有效的 bar 尾端漸層淡出（有到期日的照舊實心收尾） */
.ua-band-seg--forever {
  border-top-right-radius: 0; border-bottom-right-radius: 0;
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 14px), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 14px), transparent);
}
.ua-band-swatch--forever { background: linear-gradient(90deg, var(--ua-band-active) 40%, transparent); }
/* 太窄放不下狀態字的 bar：字放 bar 外（左側右對齊 bar 起點；左側不夠放右側），色點跟 bar 同色 */
.ua-band-outlabel {
  position: absolute; top: 0; bottom: 0; display: inline-flex; align-items: center; gap: 5px;
  font-size: var(--ua-text-xs); font-weight: 600; line-height: 1; white-space: nowrap; pointer-events: none;
}
.ua-band-outlabel--left { transform: translateX(calc(-100% - 6px)); }
.ua-band-outlabel--right { margin-left: 10px; } /* 讓開 bar 尾端的下次扣款圓點（±6px） */
.ua-band-outlabel > i { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--ua-band-active); }
.ua-band-outlabel--active { color: var(--ua-band-active); }
.ua-band-outlabel--pending { color: var(--ua-warning-text); }
.ua-band-outlabel--pending > i { background: var(--ua-warning-dot); }
.ua-band-outlabel--ended { color: var(--ua-text-secondary); }
.ua-band-outlabel--ended > i { background: var(--ua-band-ended); }
.ua-band-name-note { display: block; margin-top: 2px; font-weight: 400; color: var(--ua-text-secondary); }
/* 收合的未完成結帳列：縮排、灰色（預設 hidden，由卡片標題旁的切換鈕展開） */
.ua-row-attempt > td { padding-top: 8px; padding-bottom: 8px; background: var(--ua-surface-subdued); font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-row-attempt-title { position: relative; display: block; padding-left: 18px; }
.ua-row-attempt-title::before { content: "\21B3"; position: absolute; left: 2px; }
.ua-row-attempt-group > td { background: var(--ua-surface-subdued); font-size: var(--ua-text-xs); font-weight: 600; color: var(--ua-text); }

@media (max-width: 1100px) {
  .ua-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ua-page-actions { margin-left: 0; width: 100%; }
  .ua-form-grid { grid-template-columns: 1fr; }
  .ua-table .ua-hide-sm { display: none; }
  .ua-table--minw { min-width: 600px; }
  .ua-table--minw th,
  .ua-table--minw td { white-space: nowrap; }
  .ua-table--minw .ua-cell-sub,
  .ua-row-menu > td { white-space: normal; }
  .ua-band-scale { padding-left: 0; }
  .ua-band-row { grid-template-columns: 1fr; gap: 4px; }
  .ua-modal-footer > .ua-btn { flex: 1 1 auto; }
}

/* ══ 頁面內容元件（REQ-20261009-003 P1b：訂單中心、審核中心、主控儀表板、Ctrl+K） ══════════════ */

/* 統計列 */
.ua-stat-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: var(--ua-space-4); }
.ua-stat { min-width: 0; padding: 14px var(--ua-space-4); }
.ua-stat + .ua-stat { border-left: 1px solid var(--ua-divider); }
.ua-stat-label { margin: 0; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-stat-value { margin: 4px 0 0; font-size: 22px; font-weight: 650; line-height: 1.2; font-variant-numeric: tabular-nums; color: var(--ua-text); }
.ua-stat-note { margin: 2px 0 0; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-stat-note--critical { color: var(--ua-critical-text); }
.ua-stat-note--attention { color: var(--ua-warning-text); }

/* 篩選 chip＋展開的 popover（日期、金額等需要輸入的在 popover 內按「套用」） */
.ua-chip-wrap { position: relative; }
.ua-chip {
  display: inline-flex; align-items: center; gap: 6px; height: 28px; margin: 0; padding: 0 10px;
  border: 0; border-radius: 999px; background: var(--ua-surface); cursor: pointer; white-space: nowrap;
  box-shadow: inset 0 0 0 1px var(--ua-border-strong);
  color: var(--ua-text); font: 550 var(--ua-text-xs)/1 var(--ua-font);
}
.ua-chip:hover { background: var(--ua-surface-hover); }
.ua-chip--on { background: #f1f1f1; box-shadow: inset 0 0 0 1px var(--ua-ink); }
.ua-chip-pop {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 25;
  display: grid; gap: 10px; width: max-content; min-width: 240px; max-width: min(360px, calc(100vw - 32px));
  padding: var(--ua-space-3); border-radius: var(--ua-radius-lg); background: var(--ua-surface); box-shadow: var(--ua-shadow-pop);
}
.ua-chip-pop[hidden] { display: none; }
.ua-chip-pop-actions { display: flex; justify-content: flex-end; gap: var(--ua-space-2); }
.ua-filter-row { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; padding: var(--ua-space-2); border-bottom: 1px solid var(--ua-divider); }
.ua-filter-row .ua-select { width: auto; min-width: 128px; }
.ua-row-actions { display: inline-flex; align-items: center; gap: 6px; justify-content: flex-end; }
.ua-tag--legacy { background: #f3e8ff; color: #6b21a8; }

/* 右側抽屜（訂單明細）：外層沿用 fixed inset-0 hidden（UAScrollLock 監看），面板從右側滑出 */
.ua-drawer-scrim { background: rgba(0, 0, 0, 0.45); }
.ua-drawer {
  position: absolute; top: 0; right: 0; bottom: 0;
  display: flex; flex-direction: column;
  width: min(880px, 100%); background: var(--ua-surface); box-shadow: var(--ua-shadow-pop);
  color: var(--ua-text); font-family: var(--ua-font); font-size: var(--ua-text-sm); line-height: 1.5; text-align: left;
  animation: ua-drawer-in 0.22s var(--ua-ease);
}
.ua-drawer,
.ua-drawer *,
.ua-drawer *::before,
.ua-drawer *::after { box-sizing: border-box; }
.ua-drawer :focus-visible { outline: 2px solid var(--ua-focus); outline-offset: 2px; }
@keyframes ua-drawer-in { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.ua-drawer-header { display: flex; align-items: flex-start; gap: var(--ua-space-3); padding: 14px var(--ua-space-5); border-bottom: 1px solid var(--ua-divider); }
.ua-drawer-scroll { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.ua-drawer-body { flex: 1; min-height: 0; overflow-y: auto; }
.ua-drawer-section { padding: var(--ua-space-4) var(--ua-space-5); border-bottom: 1px solid var(--ua-divider); }
.ua-drawer-section:last-child { border-bottom: 0; }
.ua-drawer-section-title { display: flex; align-items: center; gap: var(--ua-space-2); margin: 0 0 var(--ua-space-3); font-size: var(--ua-text-md); font-weight: 650; }
.ua-det-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ua-space-3) var(--ua-space-4); }
.ua-det-field { min-width: 0; }
.ua-det-field--full { grid-column: 1 / -1; }
.ua-det-label { display: block; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-det-value { display: block; margin-top: 2px; font-weight: 600; overflow-wrap: anywhere; }
.ua-det-value--muted { color: var(--ua-text-disabled); }
.ua-stack { display: grid; gap: var(--ua-space-3); }
.ua-refund-item { display: grid; gap: 4px; padding: 10px var(--ua-space-3); border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-border); font-size: var(--ua-text-xs); }
.ua-refund-item--warning { background: #fff8eb; box-shadow: inset 0 0 0 1px #f3d58a; }
.ua-refund-head { display: flex; align-items: center; gap: var(--ua-space-2); }
.ua-timeline { display: grid; gap: var(--ua-space-2); margin: 0; padding: 0; list-style: none; }
.ua-timeline-item { display: grid; gap: 4px; padding: 10px var(--ua-space-3); border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-border); font-size: var(--ua-text-xs); }
.ua-timeline-head { display: flex; align-items: center; justify-content: space-between; gap: var(--ua-space-2); }
.ua-timeline-meta { display: flex; justify-content: space-between; gap: var(--ua-space-2); padding-top: 4px; border-top: 1px solid var(--ua-divider); color: var(--ua-text-secondary); }

/* 審核中心：核准／駁回旁一句後果、浮動批次工具列 */
.ua-decide { display: grid; grid-template-columns: auto minmax(160px, 1fr); gap: 6px var(--ua-space-2); align-items: center; }
.ua-decide-what { font-size: var(--ua-text-xs); line-height: 1.4; color: var(--ua-text); }
.ua-decide-what--danger { color: var(--ua-critical-text); }
.ua-bulk-toolbar {
  position: fixed; left: 50%; bottom: 24px; z-index: 40; transform: translateX(-50%);
  display: flex; align-items: center; gap: var(--ua-space-3); flex-wrap: wrap;
  max-width: calc(100vw - 32px); padding: 10px 14px; border-radius: var(--ua-radius-lg);
  background: var(--ua-surface); box-shadow: var(--ua-shadow-pop); font-family: var(--ua-font); font-size: var(--ua-text-sm);
}
.ua-legend { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }

/* 命令面板（Ctrl+K） */
.ua-cmdk-scrim { background: rgba(0, 0, 0, 0.45); }
.ua-cmdk {
  width: min(640px, 100%); margin: 72px auto 0; overflow: hidden;
  border-radius: var(--ua-radius-lg); background: var(--ua-surface); box-shadow: var(--ua-shadow-pop);
  color: var(--ua-text); font-family: var(--ua-font); font-size: var(--ua-text-md); text-align: left;
}
.ua-cmdk,
.ua-cmdk *,
.ua-cmdk *::before,
.ua-cmdk *::after { box-sizing: border-box; }
.ua-cmdk-input { display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 var(--ua-space-3) 0 14px; border-bottom: 1px solid var(--ua-divider); }
.ua-cmdk-field { flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; outline: 0; background: transparent; color: var(--ua-text); font: 500 var(--ua-text-lg) var(--ua-font); }
.ua-cmdk-kbd { padding: 2px 6px; border: 1px solid var(--ua-border-strong); border-bottom-width: 2px; border-radius: 5px; background: #ffffff; color: var(--ua-text-secondary); font: 500 var(--ua-text-xs)/1.2 var(--ua-font); }
.ua-cmdk-body { max-height: min(60vh, 480px); overflow-y: auto; padding: 6px 0; }
.ua-cmdk-group + .ua-cmdk-group { border-top: 1px solid var(--ua-divider); }
.ua-cmdk-heading { margin: 0; padding: var(--ua-space-2) var(--ua-space-4) 4px; font-size: var(--ua-text-xs); font-weight: 600; color: var(--ua-text-secondary); }
.ua-cmdk-item { display: flex; align-items: center; gap: var(--ua-space-3); margin: 0 6px; padding: var(--ua-space-2) 10px; border-radius: var(--ua-radius); color: var(--ua-text); text-decoration: none; }
.ua-cmdk-item:hover,
.ua-cmdk-item--active { background: #f1f1f1; box-shadow: inset 0 0 0 1px var(--ua-border); text-decoration: none; }
.ua-cmdk-main { flex: 1; min-width: 0; }
.ua-cmdk-title { display: block; font-size: var(--ua-text-md); font-weight: 600; overflow-wrap: anywhere; }
.ua-cmdk-desc { display: block; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); overflow-wrap: anywhere; }
.ua-cmdk-empty { margin: 0; padding: var(--ua-space-4); text-align: center; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-cmdk-error { color: var(--ua-critical-text); }

@media (max-width: 760px) {
  .ua-stat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ua-stat:nth-child(odd) { border-left: 0; }
  .ua-stat:nth-child(n+3) { border-top: 1px solid var(--ua-divider); }
  .ua-det-grid { grid-template-columns: 1fr; }
  .ua-drawer-section,
  .ua-drawer-header { padding-left: var(--ua-space-4); padding-right: var(--ua-space-4); }
  .ua-cmdk { margin-top: var(--ua-space-4); }
  .ua-chip-pop { position: fixed; top: auto; left: var(--ua-space-4); right: var(--ua-space-4); bottom: var(--ua-space-4); min-width: 0; max-width: none; width: auto; }
  /* 審核中心手機版：一案一張卡（thead 藏起來、每格成一行並以 data-label 標示欄名） */
  .ua-table--stack { min-width: 0; }
  .ua-table--stack thead { display: none; }
  .ua-table--stack tr { display: block; padding: var(--ua-space-2) 0; border-bottom: 1px solid var(--ua-divider); }
  .ua-table--stack td { display: block; padding: 6px var(--ua-space-3); border-bottom: 0; white-space: normal; }
  .ua-table--stack td[data-label]::before { content: attr(data-label); display: block; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
  .ua-decide { grid-template-columns: auto minmax(0, 1fr); }
  .ua-bulk-toolbar { bottom: var(--ua-space-3); }
}
@media (prefers-reduced-motion: reduce) {
  .ua-drawer { animation: none; }
}

/* ══ 頁面內容元件（REQ-20261009-004 P2：產品與方案、優惠券、每日投資新聞、共用頁內確認視窗） ══════════════ */

/* 被 hidden 屬性收起的提示（.ua-banner 自己有 display，要明寫） */
.ua-banner[hidden] { display: none; }
.ua-page-notice { margin-bottom: var(--ua-space-4); }
.ua-block { display: block; }
.ua-stack > .ua-field + .ua-field { margin-top: 0; }
.ua-cell-clip { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 可展開列：列首的展開鈕＋下方一列（列內方案清單） */
.ua-table .ua-cell-expand { width: 1%; padding-right: 0; }
.ua-expander {
  display: inline-grid; place-items: center; width: 28px; height: 28px; margin: 0; padding: 0;
  border: 0; border-radius: var(--ua-radius-sm); background: transparent; color: var(--ua-text-secondary); cursor: pointer;
}
.ua-expander:hover { background: rgba(0, 0, 0, 0.06); color: var(--ua-text); }
.ua-expander .ua-icon { transition: transform 0.15s var(--ua-ease); }
.ua-expander[aria-expanded="true"] .ua-icon { transform: rotate(90deg); }
.ua-subrow > td { padding: 4px var(--ua-space-3) var(--ua-space-3) 52px; background: var(--ua-surface-subdued); }
.ua-plan-lines { display: grid; gap: 6px; max-width: 760px; margin: 0; padding: 0; list-style: none; font-size: var(--ua-text-sm); }
.ua-plan-lines > li {
  display: grid; grid-template-columns: minmax(140px, 1.2fr) minmax(0, 1fr) minmax(0, 1.3fr) auto;
  gap: 2px var(--ua-space-3); align-items: baseline;
}
.ua-plan-lines .ua-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ua-strike { color: var(--ua-text-secondary); font-size: var(--ua-text-xs); text-decoration: line-through; }
.ua-text-success { color: var(--ua-success-text); }

/* 定價抽屜：較窄的右側抽屜＋固定頁尾；方案清單與可收合段落 */
.ua-drawer--md { width: min(560px, 100%); }
.ua-drawer-footer {
  display: flex; justify-content: flex-end; gap: var(--ua-space-2); flex-wrap: wrap;
  padding: var(--ua-space-3) var(--ua-space-5); border-top: 1px solid var(--ua-divider); background: var(--ua-surface-subdued);
}
.ua-disclosure {
  display: flex; align-items: center; gap: var(--ua-space-2); width: 100%; margin: 0 0 var(--ua-space-3); padding: 0;
  border: 0; background: none; cursor: pointer; text-align: left;
  color: var(--ua-text); font: 650 var(--ua-text-md)/1.4 var(--ua-font);
}
.ua-disclosure .ua-icon { margin-left: auto; color: var(--ua-text-secondary); transition: transform 0.15s var(--ua-ease); }
.ua-disclosure[aria-expanded="true"] .ua-icon { transform: rotate(180deg); }
.ua-plan-list { margin: 0; padding: 0; list-style: none; }
.ua-plan-item { display: flex; align-items: center; gap: var(--ua-space-3); padding: 10px 0; border-top: 1px solid var(--ua-divider); }
.ua-plan-item:first-child { border-top: 0; padding-top: 0; }
.ua-plan-main { flex: 1; min-width: 0; }
.ua-plan-name { display: block; font-weight: 600; overflow-wrap: anywhere; }
.ua-plan-meta { display: block; font-size: var(--ua-text-xs); line-height: 1.5; color: var(--ua-text-secondary); overflow-wrap: anywhere; }
.ua-plan-amount { flex: none; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ua-plan-amount--free { color: var(--ua-success-text); }
.ua-plan-item--archived .ua-plan-name { color: var(--ua-text-secondary); }
.ua-plan-item form { margin: 0; flex: none; }
.ua-plan-empty { padding: var(--ua-space-3) 0; text-align: center; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }

/* 優惠券：用量條、折扣欄（共用 _discount 的兩行文字放大到 12px 以上） */
.ua-meter { display: block; width: 96px; height: 4px; margin: 6px 0 0 auto; overflow: hidden; border-radius: 2px; background: var(--ua-band-track); }
.ua-meter-fill { display: block; height: 100%; border-radius: inherit; background: var(--ua-ink); }
.ua-meter--near .ua-meter-fill { background: var(--ua-attention-dot); }
.ua-meter--full .ua-meter-fill { background: var(--ua-neutral-dot); }
.ua-discount > span { font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-discount > span:first-child { font-size: var(--ua-text-sm); font-weight: 600; color: var(--ua-text); white-space: nowrap; }
.ua-past { color: var(--ua-text-secondary); text-decoration: line-through; }
.ua-check-list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px var(--ua-space-3);
  max-height: 200px; overflow-y: auto; padding: var(--ua-space-2) var(--ua-space-3);
  border-radius: var(--ua-radius); background: var(--ua-surface-subdued); box-shadow: inset 0 0 0 1px var(--ua-border);
}
.ua-check-list--single { grid-template-columns: minmax(0, 1fr); }
.ua-check-list .ua-checkbox-row { font-size: var(--ua-text-xs); overflow-wrap: anywhere; }
.ua-summary { margin: 0; padding: 10px var(--ua-space-3); border-radius: var(--ua-radius); background: var(--ua-surface-subdued); font-size: var(--ua-text-sm); line-height: 1.6; }
.ua-view .ua-input:disabled,
.ua-modal .ua-input:disabled,
.ua-select:disabled,
.ua-textarea:disabled { background: var(--ua-surface-subdued); color: var(--ua-text-secondary); cursor: not-allowed; }
.ua-modal-tabs { margin: 0 calc(-1 * var(--ua-space-4)); padding: 0 var(--ua-space-4); }
.ua-modal-footer--sticky { position: sticky; bottom: 0; z-index: 1; }
.ua-modal-footer--inline { margin: 0 calc(-1 * var(--ua-space-4)) calc(-1 * var(--ua-space-4)); }
.ua-modal .ua-table-wrap { border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-preview-box { max-height: 220px; overflow-y: auto; padding: 10px var(--ua-space-3); border-radius: var(--ua-radius); background: var(--ua-surface-subdued); font-size: var(--ua-text-xs); line-height: 1.6; overflow-wrap: anywhere; }

/* 每日投資新聞：顯示中摘要卡、縮圖、左表單右預覽、分段切換、編輯器外框、發布前後對照 */
.ua-live { display: flex; align-items: center; gap: var(--ua-space-4); padding: var(--ua-space-4); }
.ua-live-body { flex: 1; min-width: 0; }
.ua-live-title { margin-top: 4px; font-size: var(--ua-text-lg); font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.ua-live-excerpt { margin-top: 2px; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ua-thumb--wide { position: relative; width: 64px; height: 36px; flex: none; display: grid; place-items: center; color: var(--ua-text-secondary); }
.ua-thumb--xl { width: 176px; height: 99px; }
.ua-thumb--lg { width: 128px; height: 72px; }
.ua-thumb--none { background: transparent; box-shadow: inset 0 0 0 1px var(--ua-border-strong); font-size: var(--ua-text-xs); }
.ua-split { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--ua-space-4); align-items: start; }
.ua-split > * { min-width: 0; }
.ua-split-aside { position: sticky; top: calc(var(--ua-topbar-h) + var(--ua-space-4)); }
.ua-preview-stage { padding: var(--ua-space-4); border-radius: var(--ua-radius-lg); background: #e9e9e9; box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-preview-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ua-space-2); margin-bottom: var(--ua-space-3); font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-preview-head strong { font-size: var(--ua-text-sm); color: var(--ua-text); }
.ua-segmented { display: inline-flex; gap: 2px; padding: 2px; border-radius: var(--ua-radius); background: #f1f1f1; box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-segmented-btn {
  height: 28px; margin: 0; padding: 0 10px; border: 0; border-radius: var(--ua-radius-sm);
  background: transparent; color: var(--ua-text-secondary); font: 550 var(--ua-text-xs)/1 var(--ua-font); cursor: pointer;
}
.ua-segmented-btn[aria-pressed="true"] { background: var(--ua-surface); color: var(--ua-text); box-shadow: var(--ua-shadow-card); font-weight: 650; }
.ua-segmented-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.ua-editor { overflow: hidden; border-radius: var(--ua-radius); background: #ffffff; box-shadow: inset 0 0 0 1px var(--ua-border-input); }
.ua-editor-source { width: 100%; min-height: 240px; margin: 0; padding: var(--ua-space-3); border: 0; background: transparent; color: var(--ua-text); font: 400 var(--ua-text-xs)/1.6 var(--ua-mono); resize: vertical; }
.ua-editor-source:focus { outline: 2px solid var(--ua-focus); outline-offset: -2px; }
.ua-field-head { display: flex; align-items: center; justify-content: space-between; gap: var(--ua-space-2); flex-wrap: wrap; }
.ua-field-foot { display: flex; justify-content: space-between; gap: var(--ua-space-4); font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-dropzone {
  flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; padding: var(--ua-space-8) var(--ua-space-4);
  border: 2px dashed var(--ua-border-strong); border-radius: var(--ua-radius-lg); background: var(--ua-surface-subdued);
  color: var(--ua-text-secondary); font-size: var(--ua-text-xs); text-align: center; cursor: pointer;
}
.ua-dropzone:hover { border-color: var(--ua-text-secondary); }
.ua-dropzone:focus-within { border-color: var(--ua-focus); }
.ua-file-row { align-items: center; gap: var(--ua-space-4); padding: var(--ua-space-3); border-radius: var(--ua-radius-lg); box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-swap { display: grid; gap: var(--ua-space-2); margin: 0; padding: 0; list-style: none; }
.ua-swap > li { display: flex; align-items: center; gap: 6px var(--ua-space-2); flex-wrap: wrap; padding: 10px var(--ua-space-3); border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-swap-title { flex: 1 1 100%; font-weight: 600; overflow-wrap: anywhere; }
.ua-swap-arrow { color: var(--ua-text-secondary); }
.ua-cell-title { min-width: 220px; overflow-wrap: anywhere; }
.ua-dropzone--over { border-color: var(--ua-focus); }
.ua-file-row-actions { margin-top: var(--ua-space-2); }
.ua-form-actions {
  position: sticky; bottom: var(--ua-space-3); z-index: 2;
  display: flex; justify-content: flex-end; gap: var(--ua-space-2); flex-wrap: wrap; padding: var(--ua-space-3) var(--ua-space-4);
  box-shadow: var(--ua-shadow-pop);
}
.ua-preview-dialog { width: min(384px, 100%); }
.ua-preview-head--on-scrim,
.ua-preview-head--on-scrim strong { color: #ffffff; }

@media (max-width: 1100px) {
  .ua-split { grid-template-columns: minmax(0, 1fr); }
  .ua-split-aside { position: static; }
}
@media (max-width: 760px) {
  .ua-subrow > td { padding-left: var(--ua-space-3); }
  .ua-plan-lines > li { grid-template-columns: minmax(0, 1fr) auto; }
  .ua-plan-lines > li > .ua-plan-line-name { order: -2; }
  .ua-plan-lines > li > .ua-plan-line-amount { order: -1; }
  .ua-plan-lines > li > .ua-plan-line-meta { grid-column: 1 / -1; }
  .ua-cell-clip { max-width: 200px; }
  .ua-drawer-footer { padding-left: var(--ua-space-4); padding-right: var(--ua-space-4); }
  .ua-drawer-footer > .ua-btn { flex: 1 1 auto; }
  .ua-live { flex-direction: column; align-items: stretch; }
  .ua-thumb--xl { width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .ua-check-list { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .ua-expander .ua-icon,
  .ua-disclosure .ua-icon { transition: none; }
}

/* ══ 頁面內容元件（REQ-20261010-001 P3a：對帳、試跑扣款排程、0 元方案到期、全局主要金流設定） ══════════════ */

.ua-stat-row[hidden] { display: none; }
.ua-view--narrow { max-width: 820px; }
.ua-row--end { align-items: flex-end; gap: var(--ua-space-3); }
.ua-field--date { width: min(240px, 100%); }
.ua-preview-rule { margin-top: var(--ua-space-2); }
.ua-stack--tight { gap: 10px; }
.ua-section-title { margin-bottom: var(--ua-space-3); }
.ua-banner--spaced { margin-top: var(--ua-space-3); }
.ua-stat-value--sm { font-size: var(--ua-text-lg); }

/* 試跑扣款排程：結果表格的篩選頁籤（按鈕版）、重試點、文字表 */
.ua-index-tab-btn { margin: 0; border-top: 0; border-left: 0; border-right: 0; background: transparent; cursor: pointer; font-family: var(--ua-font); }
.ua-table--compact td { padding-top: var(--ua-space-2); padding-bottom: var(--ua-space-2); }
.ua-band-tick--retry { background: var(--ua-attention-dot); box-shadow: inset 0 0 0 2px var(--ua-attention-dot); }
.ua-band-swatch--retry { border-radius: 50%; background: var(--ua-attention-dot); }
.ua-pre-wrap { overflow-x: auto; }
.ua-pre { margin: 0; font: 400 var(--ua-text-xs)/1.7 var(--ua-mono); white-space: pre; }

/* 全局主要金流設定：未儲存變更列、選項卡、說明卡、變更前後對照 */
.ua-save-bar {
  position: sticky; top: calc(var(--ua-topbar-h) + var(--ua-space-2)); z-index: 5;
  display: flex; align-items: center; justify-content: space-between; gap: var(--ua-space-3); flex-wrap: wrap;
  margin-bottom: var(--ua-space-4); padding: 10px 14px; border-radius: var(--ua-radius-lg);
  background: var(--ua-topbar-bg); color: #ffffff; box-shadow: var(--ua-shadow-pop); font-size: var(--ua-text-sm);
}
.ua-save-bar[hidden] { display: none; }
.ua-save-bar-text { min-width: 0; overflow-wrap: anywhere; }
.ua-save-bar strong { color: #ffffff; }
.ua-choice-list { display: grid; gap: var(--ua-space-3); }
.ua-choice {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: var(--ua-space-3); row-gap: 2px; align-items: start;
  padding: 14px var(--ua-space-4); border-radius: var(--ua-radius-lg); box-shadow: inset 0 0 0 1px var(--ua-border-strong); cursor: pointer;
}
.ua-choice:hover { background: var(--ua-surface-hover); }
.ua-choice:has(.ua-choice-input:checked) { box-shadow: inset 0 0 0 2px var(--ua-ink); }
.ua-choice-input { grid-column: 1; grid-row: 1 / span 2; margin: 3px 0 0; }
.ua-choice-title { grid-column: 2; grid-row: 1; font-size: var(--ua-text-md); font-weight: 650; }
.ua-choice-desc { grid-column: 2; grid-row: 2; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); line-height: 1.6; }
.ua-choice-badges { grid-column: 3; grid-row: 1; display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.ua-choice-badges .ua-badge[hidden] { display: none; }
.ua-effects { display: grid; gap: var(--ua-space-2); margin: 0; padding-left: 18px; font-size: var(--ua-text-sm); line-height: 1.7; }
.ua-from-to { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: var(--ua-space-3); align-items: center; padding: var(--ua-space-3) 14px; border-radius: var(--ua-radius); background: var(--ua-surface-subdued); box-shadow: inset 0 0 0 1px var(--ua-border); }

@media (max-width: 760px) {
  .ua-choice { grid-template-columns: auto minmax(0, 1fr); }
  .ua-choice-badges { grid-column: 2; grid-row: 3; justify-content: flex-start; }
  .ua-save-bar { top: var(--ua-space-2); }
}

/* ══ 頁面內容元件（REQ-20261011-001 P3b：帳號權限、稽核日誌、對外行為紀錄、通知信紀錄、E2E 模擬） ══════════════ */

/* 用 hidden 屬性收起的元件（元件自己有 display，要明寫） */
.ua-btn[hidden],
.ua-tab-panel[hidden],
.ua-fieldset[hidden] { display: none; }

/* 小工具 */
.ua-btn--icon { width: 32px; padding: 0; }
.ua-btn--sm.ua-btn--icon { width: 28px; }
.ua-badge--plain { padding: 0 8px; }
.ua-badge--plain::before { display: none; }
.ua-tag .ua-icon { width: 14px; height: 14px; margin-right: 4px; }
.ua-text-attention { color: var(--ua-attention-text); font-weight: 600; }
.ua-stat-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ua-stat-value--critical { color: var(--ua-critical-text); }
.ua-stat-value--attention { color: var(--ua-warning-text); }
.ua-stat-note .ua-link { font-size: var(--ua-text-xs); }
.ua-table--nowrap th,
.ua-table--nowrap td { white-space: nowrap; }
.ua-cell-clip--sm { max-width: 180px; }
.ua-kv--wide { grid-template-columns: 112px minmax(0, 1fr); }
.ua-row-selected > td { background: var(--ua-surface-subdued); }
.ua-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ua-space-4); align-items: start; }
.ua-grid-2 > * { min-width: 0; }
.ua-pre-line { white-space: pre-wrap; overflow-wrap: anywhere; }
.ua-per-page { display: inline-flex; align-items: center; gap: 6px; flex: none; white-space: nowrap; }
.ua-view .ua-per-page .ua-select { width: auto; height: 28px; }

/* 深色程式碼區塊（Request／Response、Payload）；--wrap 讓長字串換行 */
.ua-code {
  margin: 0; padding: var(--ua-space-3); overflow-x: auto;
  border-radius: var(--ua-radius); background: var(--ua-topbar-bg); color: var(--ua-topbar-text);
  font: 400 var(--ua-text-xs)/1.6 var(--ua-mono); white-space: pre;
}
.ua-code--wrap { white-space: pre-wrap; overflow-wrap: anywhere; }

/* 權限群組抽屜：表單包住捲動區與固定頁尾；權限樹（群組列三態＋已選數、兩欄權限項） */
.ua-drawer--perm { width: min(680px, 100%); }
.ua-drawer-form { display: flex; flex-direction: column; flex: 1; min-height: 0; margin: 0; }
.ua-drawer-footer-note { flex: 1 1 200px; min-width: 0; align-self: center; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); overflow-wrap: anywhere; }
.ua-perm-tree { display: grid; gap: 10px; }
.ua-perm-toolbar { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; }
.ua-perm-group { min-width: 0; margin: 0; padding: 0; border: 0; border-radius: var(--ua-radius); box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-perm-group--admin-only { background: var(--ua-surface-subdued); }
.ua-perm-head { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; padding: var(--ua-space-2) var(--ua-space-3); border-bottom: 1px solid var(--ua-divider); }
.ua-perm-toggle { display: inline-flex; align-items: center; gap: var(--ua-space-2); cursor: pointer; }
.ua-perm-count { margin-left: auto; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); font-variant-numeric: tabular-nums; }
.ua-perm-note { height: auto; min-height: 22px; padding: 2px var(--ua-space-2); line-height: 1.4; white-space: normal; }
.ua-perm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--ua-space-3); padding: 6px; }
.ua-perm-item { display: flex; align-items: flex-start; gap: var(--ua-space-2); padding: 6px; border-radius: var(--ua-radius-sm); cursor: pointer; }
.ua-perm-item:hover { background: var(--ua-surface-hover); }
.ua-perm-item--readonly { cursor: default; }
.ua-perm-item--readonly:hover { background: transparent; }
.ua-perm-tree input[type="checkbox"] { flex: none; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--ua-ink); }
.ua-perm-head input[type="checkbox"] { margin-top: 0; }
.ua-perm-label { display: block; font-size: var(--ua-text-sm); line-height: 1.4; }
.ua-perm-key { display: block; font: 400 var(--ua-text-xs)/1.4 var(--ua-mono); color: var(--ua-text-secondary); overflow-wrap: anywhere; }
.ua-perm-details > summary { cursor: pointer; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-perm-details > summary:hover { color: var(--ua-text); }
.ua-perm-details .ua-tags { max-width: 560px; }

/* E2E 模擬：圓形步驟編號、結果卡三分區 */
.ua-step-no {
  display: inline-grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%;
  background: var(--ua-ink); color: #ffffff; font-size: var(--ua-text-xs); font-weight: 650; line-height: 1;
}
.ua-result-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ua-divider); }
.ua-result-cols > * { min-width: 0; }
.ua-result-cols > * + * { border-left: 1px solid var(--ua-divider); }
.ua-result-title { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font-size: var(--ua-text-sm); font-weight: 650; }
.ua-card-actions-row { display: flex; gap: var(--ua-space-2); flex-wrap: wrap; padding: var(--ua-space-3) var(--ua-space-4); border-top: 1px solid var(--ua-divider); }

@media (max-width: 1100px) {
  .ua-result-cols { grid-template-columns: minmax(0, 1fr); }
  .ua-result-cols > * + * { border-left: 0; border-top: 1px solid var(--ua-divider); }
}
@media (max-width: 760px) {
  .ua-grid-2,
  .ua-perm-grid { grid-template-columns: minmax(0, 1fr); }
  .ua-stat-row--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ua-drawer-footer-note { flex-basis: 100%; }
  .ua-kv--wide { grid-template-columns: 96px minmax(0, 1fr); }
}

/* ══ 頁面內容元件（REQ-20261011-002 P4：達人後台外框內容區與 14 個畫面） ══════════════
 * 達人後台用 layouts/expert_portal（獨立版面），內容區 <main class="ua-portal-main ua-view">。
 * 不可出現 <aside>（外部達人頁面以「沒有 <aside」判斷沒有後台側欄）：側欄一律用 .ua-col。
 */
/* 與頂欄 .ua-portal-inner 同寬（1280，左右 24px 內距），內容和頂欄的標誌、分頁對齊 */
.ua-portal-main { max-width: 1280px; padding: var(--ua-space-6); }
.ua-portal-main--narrow { max-width: 868px; }
.ua-calc-row[hidden],
.ua-badge[hidden],
.ua-drawer-layer[hidden],
.ua-calc-sub[hidden] { display: none; }
.ua-neg { color: var(--ua-critical-text); }
.ua-page-sub-sep { margin: 0 6px; color: var(--ua-text-disabled); }
/* 內容區直接排列的卡片與 banner 之間留 16px（只在達人後台；.ua-col／.ua-grid-2 內由 gap 負責） */
.ua-portal-main > .ua-card + .ua-card,
.ua-portal-main > .ua-card + .ua-banner,
.ua-portal-main > .ua-banner + .ua-card,
.ua-portal-main > form > .ua-card + .ua-card,
.ua-portal-main > form > .ua-card + .ua-banner,
.ua-portal-main > form > .ua-banner + .ua-card,
.ua-portal-main > form > .ua-banner + .ua-banner { margin-top: var(--ua-space-4); }
.ua-card-header--flush { padding-bottom: var(--ua-space-3); }
.ua-card--narrow { max-width: 720px; }
.ua-card-empty > p { margin: 0; }
.ua-card-empty > p + * { margin-top: var(--ua-space-3); }
.ua-card-sub { font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-card-foot { padding: 10px var(--ua-space-4) var(--ua-space-3); border-top: 1px solid var(--ua-divider); font-size: var(--ua-text-xs); color: var(--ua-text-secondary); line-height: 1.6; }
.ua-card-foot > summary { cursor: pointer; font-weight: 600; color: var(--ua-text); }
.ua-card-foot > summary + * { margin-top: 6px; }
.ua-list--plain > li { padding-left: var(--ua-space-4); }
.ua-stat-value a { color: inherit; }
.ua-stat-row--inner { margin: 0; box-shadow: none; }
.ua-stat-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* 篩選列的開始日／結束日 */
.ua-date-field { display: inline-flex; align-items: center; gap: 6px; font-size: var(--ua-text-sm); color: var(--ua-text-secondary); white-space: nowrap; }
.ua-view .ua-date-field .ua-input { width: 156px; }
.ua-filter-note { margin-left: auto; font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }

/* 表格：合計列、兩行格、等寬數字 */
.ua-table tfoot td { padding: 10px var(--ua-space-3); background: var(--ua-surface-subdued); border-top: 1px solid var(--ua-divider); font-weight: 650; white-space: nowrap; }
.ua-table .ua-strong { font-weight: 650; }
.ua-cell-badges { display: inline-flex; gap: 4px; margin-left: 6px; vertical-align: middle; }

/* 撥款單「算式梯」：運算子欄＋項目＋金額，小計列與最後的匯款列加底色（明細頁唯讀；開單頁 --editable 有輸入框） */
.ua-calc { margin: 0; padding: 0; list-style: none; font-size: var(--ua-text-sm); border-top: 1px solid var(--ua-divider); }
.ua-calc-row {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; column-gap: 10px; align-items: center;
  min-height: 42px; padding: 9px var(--ua-space-4); border-top: 1px solid var(--ua-divider);
}
.ua-calc-row:first-child { border-top: 0; }
.ua-calc-op { font-family: var(--ua-mono); font-size: var(--ua-text-md); color: var(--ua-text-secondary); text-align: center; }
.ua-calc-k { min-width: 0; overflow-wrap: anywhere; }
.ua-calc-sub { display: block; margin-top: 2px; font-size: var(--ua-text-xs); font-weight: 400; line-height: 1.5; color: var(--ua-text-secondary); }
.ua-calc-sub .ua-badge { vertical-align: 1px; }
.ua-calc-v { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ua-calc-row--subtotal { background: var(--ua-surface-subdued); font-weight: 650; }
.ua-calc-row--total { background: var(--ua-surface-subdued); font-weight: 700; border-top: 1px solid var(--ua-border-strong); }
.ua-calc-row--total .ua-calc-v { font-size: var(--ua-text-xl); }
.ua-calc-row--group { min-height: 0; padding-top: 10px; padding-bottom: 4px; font-size: var(--ua-text-xs); font-weight: 600; color: var(--ua-text-secondary); }
.ua-calc-row--item .ua-calc-k { padding-left: var(--ua-space-3); }
.ua-calc-row--negative,
.ua-calc-row--negative .ua-calc-v { color: var(--ua-critical-text); }
.ua-calc-row--negative { background: #fff4f4; }
.ua-calc-ro {
  display: inline-block; min-width: 168px; height: 32px; padding: 0 10px; line-height: 32px;
  border-radius: var(--ua-radius); background: var(--ua-surface-subdued); box-shadow: inset 0 0 0 1px var(--ua-border); text-align: right; color: var(--ua-text);
}
.ua-view input.ua-calc-ro { margin: 0; border: 0; font: inherit; font-variant-numeric: tabular-nums; }
.ua-input-group { display: flex; align-items: stretch; width: 168px; margin-left: auto; }
.ua-input-addon {
  display: inline-flex; align-items: center; padding: 0 8px;
  border: 1px solid var(--ua-border-input); border-right: 0; border-radius: var(--ua-radius) 0 0 var(--ua-radius);
  background: var(--ua-surface-subdued); color: var(--ua-text-secondary); font-size: var(--ua-text-xs);
}
.ua-view .ua-input-group .ua-input { flex: 1; min-width: 0; border-radius: 0 var(--ua-radius) var(--ua-radius) 0; text-align: right; font-variant-numeric: tabular-nums; }
.ua-calc-actions { display: flex; align-items: center; gap: var(--ua-space-2); flex-wrap: wrap; }

/* 唯讀系統值的小格（App 開單：標籤在上、數字在下） */
.ua-figure-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ua-space-3) var(--ua-space-4); margin: 0; }
.ua-figure-grid dt { font-size: var(--ua-text-xs); color: var(--ua-text-secondary); }
.ua-figure-grid dd { margin: 2px 0 0; font-size: var(--ua-text-md); font-weight: 600; font-variant-numeric: tabular-nums; }

/* 其他調整項一列（名稱＋金額） */
.ua-adj-list { display: grid; gap: 10px; }
.ua-adj-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--ua-space-2); align-items: start; }
.ua-adj-row .ua-input-group { width: 100%; }

/* 達人後台的 save-bar：撥款單表單頂端（桌機貼在頂欄下；手機貼在畫面底部，不和頂欄搶空間） */
.ua-save-bar--portal { top: calc(var(--ua-portal-top-h, 97px) + var(--ua-space-2)); }
.ua-btn--on-dark { background: #ffffff; color: var(--ua-text); box-shadow: none; }
.ua-btn--on-dark:hover { background: #ececec; color: var(--ua-text); }
.ua-btn--ghost-dark { background: transparent; color: #ffffff; box-shadow: inset 0 0 0 1px var(--ua-topbar-line); }
.ua-btn--ghost-dark:hover { background: var(--ua-topbar-input); color: #ffffff; }

/* 模擬達人 banner：剩 5 分鐘以內轉紅 */
.ua-viewas-bar--critical { background: #fff4f4; color: var(--ua-critical-text); box-shadow: inset 0 -1px 0 #fedad9; }
.ua-viewas-expired { font-weight: 650; }

/* 右側抽屜外層（達人設定）：用 hidden 屬性開關（達人後台沒有 UAScrollLock） */
.ua-drawer-layer { position: fixed; inset: 0; z-index: 50; background: rgba(0, 0, 0, 0.45); }
.ua-drawer-close {
  display: grid; place-items: center; flex: none; width: 32px; height: 32px; margin: -4px -6px 0 auto; padding: 0;
  border: 0; border-radius: var(--ua-radius); background: transparent; color: var(--ua-text-secondary); cursor: pointer;
}
.ua-drawer-close:hover { background: rgba(0, 0, 0, 0.06); color: var(--ua-text); }
.ua-drawer-title { margin: 0; font-size: var(--ua-text-lg); font-weight: 650; line-height: 1.4; }
.ua-check-list .ua-tag { margin-left: auto; }
.ua-check-list .ua-checkbox-row { align-items: center; }
.ua-check-list .ua-checkbox-row input { margin-top: 0; }
.ua-input-suffix { display: flex; align-items: center; gap: 6px; }
.ua-view .ua-input--rate { width: 120px; }
.ua-view .ua-input-suffix .ua-input { flex: 1; min-width: 0; }

@media (max-width: 1100px) {
  .ua-figure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .ua-portal-main { padding: var(--ua-space-4); }
  .ua-stat-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ua-filter-note { margin-left: 0; width: 100%; }
  .ua-date-field { flex: 1 1 140px; }
  .ua-view .ua-date-field .ua-input { width: 100%; min-width: 0; }
  .ua-calc-row { padding-left: var(--ua-space-3); padding-right: var(--ua-space-3); }
  .ua-calc--editable .ua-calc-row { grid-template-columns: 18px minmax(0, 1fr); row-gap: 6px; }
  .ua-calc--editable .ua-calc-v { grid-column: 2; text-align: left; }
  .ua-calc--editable .ua-input-group,
  .ua-calc--editable .ua-calc-ro { width: 100%; min-width: 0; }
  .ua-figure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ua-adj-row { grid-template-columns: minmax(0, 1fr); }
  /* 手機：save-bar 固定貼在畫面底部（sticky 放在表單頂端，往下捲就離開畫面）；表單底部留白，不遮住最後的欄位 */
  .ua-save-bar--portal {
    position: fixed; top: auto; left: var(--ua-space-2); right: var(--ua-space-2); z-index: 40;
    bottom: calc(var(--ua-space-2) + env(safe-area-inset-bottom, 0px)); margin: 0;
  }
  .ua-portal-form { padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)); }
  .ua-page-actions > .ua-btn { flex: 1 1 auto; }
}

/* ══ REQ-20261011-003 P5：後台版面本體、分頁、稽核徽章、每日新聞前台彈窗預覽、其他收尾 ══════════════ */

/* 後台版面的 <body>（取代原本 layouts/admin 的 inline body 樣式；字型改用系統字型 --ua-font） */
.ua-shell { margin: 0; min-height: 100vh; background-color: #f8fafc; color: #0f172a; font-family: var(--ua-font); }

/*
 * 後台內容區沿用 P4 的外觀：原本 layouts/admin 的 .content-area !important 覆寫層對 ua- 元件「實際造成的效果」
 * （標題色、文字輸入框與下拉的底色／框色／聚焦光暈、placeholder 色、表頭字色、表格列 hover 底色），
 * 改寫成一般規則（沒有 !important、只套在 <main class="ua-content"> 內），畫面與 P4 一致。
 * 選擇器重複 .ua-content 是為了權重高於元件本身的規則（例：.ua-view .ua-input:disabled），效果等同原本的 !important。
 * 日後要讓這些元件回到 ua- 設計值（與達人後台一致），整段刪掉即可。
 */
.ua-content.ua-content h1,
.ua-content.ua-content h2,
.ua-content.ua-content h3 { color: #0f172a; }
.ua-content.ua-content input[type="text"],
.ua-content.ua-content input[type="email"],
.ua-content.ua-content input[type="password"],
.ua-content.ua-content select,
.ua-content.ua-content textarea { background-color: #f8fafc; border: 1px solid #cbd5e1; color: #0f172a; }
.ua-content.ua-content input::placeholder,
.ua-content.ua-content textarea::placeholder { color: #94a3b8; }
.ua-content.ua-content input:focus,
.ua-content.ua-content select:focus,
.ua-content.ua-content textarea:focus { border-color: #475569; box-shadow: 0 0 0 2px rgba(71, 85, 105, 0.1); }
.ua-content.ua-content th { color: #475569; }
.ua-content.ua-content tr:hover { background-color: #f1f5f9; }
.ua-content.ua-content .ua-discount > span + span { color: #475569; }

/* 行內表單（登出、重寄等一顆按鈕的表單） */
.ua-inline { display: inline; }

/* 圖片鋪滿外框（每日新聞縮圖、前台彈窗預覽） */
.ua-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* 試跑扣款排程的結果區（白底深字） */
.ua-pre--result { color: #1e293b; }

/* 優惠券折扣欄（admin/coupons/_discount：兩行，第一行是折扣、第二行是說明） */
.ua-discount > span { display: block; }
.ua-discount > span:first-child { line-height: 16px; }
.ua-discount > span + span { margin-top: 2px; }

/* 達人後台頂欄的達人下拉：不撐滿，最少 12rem（可搜尋下拉初始化後外層也帶這個 class） */
.ua-portal-switch .ua-portal-switch-select { width: auto; min-width: 12rem; }

/* 分頁（resources/views/vendor/pagination/tailwind、simple-tailwind；檔名沿用 Laravel 預設，不改 AppServiceProvider） */
.ua-pagination { font-family: var(--ua-font); font-size: var(--ua-text-sm); color: var(--ua-text-secondary); }
.ua-pagination,
.ua-pagination * { box-sizing: border-box; }
.ua-pagination-mobile,
.ua-pagination--simple { display: flex; align-items: center; justify-content: space-between; gap: var(--ua-space-2); }
.ua-pagination-full { display: none; align-items: center; justify-content: space-between; gap: var(--ua-space-2); flex-wrap: wrap; }
.ua-pagination-summary { margin: 0; line-height: 20px; }
.ua-pagination-num { font-weight: 600; color: var(--ua-text); font-variant-numeric: tabular-nums; }
.ua-pagination-pages { display: inline-flex; align-items: center; gap: 2px; }
.ua-page-link,
.ua-page-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  min-width: 32px; height: 32px; padding: 0 var(--ua-space-2);
  border-radius: var(--ua-radius); color: var(--ua-text); text-decoration: none; white-space: nowrap;
  font-size: var(--ua-text-sm); font-weight: 550; font-variant-numeric: tabular-nums;
}
.ua-page-btn { padding: 0 var(--ua-space-3); background: var(--ua-surface); box-shadow: var(--ua-shadow-card), inset 0 -1px 0 0 #d4d4d4; }
a.ua-page-link:hover,
a.ua-page-btn:hover { background: var(--ua-surface-hover); color: var(--ua-text); text-decoration: none; }
.ua-page-link--current { background: var(--ua-ink); color: #ffffff; font-weight: 650; cursor: default; }
.ua-page-link--gap { min-width: 24px; padding: 0; color: var(--ua-text-secondary); cursor: default; }
.ua-page-link--disabled,
.ua-page-btn--disabled { color: var(--ua-text-disabled); cursor: not-allowed; }
.ua-page-btn--disabled { box-shadow: var(--ua-shadow-card); }
.ua-page-link .ua-icon { width: 16px; height: 16px; }
.ua-pagination a:focus-visible { outline: 2px solid var(--ua-focus); outline-offset: 2px; }
@media (min-width: 761px) {
  .ua-pagination-mobile { display: none; }
  .ua-pagination-full { display: flex; flex: 1; }
}

/* 稽核歷程的動作徽章（AuditActionPresenter::badgeClass() 回傳的修飾 class；色調意義見該類別的 TONES 說明） */
.ua-history-action--neutral { background: #f1f1f1; color: var(--ua-text-secondary); box-shadow: inset 0 0 0 1px var(--ua-border); }
.ua-history-action--success { background: #f1fdf6; color: var(--ua-success-text); box-shadow: inset 0 0 0 1px #b4f0cf; }
.ua-history-action--critical { background: #fff4f4; color: var(--ua-critical-text); box-shadow: inset 0 0 0 1px #fdc7c5; }
.ua-history-action--attention { background: #fff8db; color: var(--ua-attention-text); box-shadow: inset 0 0 0 1px #f3e2a0; }
.ua-history-action--info { background: #eef7ff; color: var(--ua-info-text); box-shadow: inset 0 0 0 1px #bfe0fb; }
.ua-history-action--manual { background: #eef0ff; color: #3730a3; box-shadow: inset 0 0 0 1px #c9cdf8; }
.ua-history-action--sync { background: #f3e8ff; color: #6b21a8; box-shadow: inset 0 0 0 1px #e1c8fb; }

/* 每日投資新聞：前台彈窗預覽（admin/daily_news/_popup；示意，不是前台實際樣式） */
.ua-popup {
  width: 100%; max-width: 360px; margin: 0 auto; overflow: hidden;
  border: 1px solid #e2e8f0; border-radius: 16px; background: #ffffff;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  color: #0f172a; text-align: left;
}
.ua-popup-media { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #f1f5f9; }
.ua-popup-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #64748b; }
.ua-popup-placeholder svg { width: 32px; height: 32px; }
.ua-popup-filename { max-width: 100%; padding: 0 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 12px/16px var(--ua-mono); }
.ua-popup-body { padding: 20px; }
.ua-popup-date { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.025em; color: #475569; }
.ua-popup-title { margin-top: 4px; font-size: 18px; line-height: 1.375; font-weight: 700; color: #0f172a; overflow-wrap: break-word; }
.ua-popup-content { max-height: 256px; margin-top: 12px; overflow-y: auto; }
.ua-popup-skip { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 12px; line-height: 16px; color: #475569; cursor: pointer; user-select: none; }
.ua-popup-skip input { width: 16px; height: 16px; }
.ua-popup-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.ua-popup-btn { padding: 8px 16px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; color: #334155; font-size: 12px; line-height: 16px; font-weight: 600; cursor: default; }
.ua-popup-btn--link { border: 0; background: #0284c7; color: #ffffff; }

/* ── 中寬度：頂欄右側收一點 ─────────────────────────────── */
@media (max-width: 1100px) {
  .ua-user-chip-name { display: none; }
  .ua-global-search-kbd { display: none; }
}

/* ── 手機（< 760px）：側欄改左側抽屜、內容佔滿寬度 ─────────── */
@media (max-width: 760px) {
  .ua-topbar { gap: var(--ua-space-2); padding: 0 var(--ua-space-2); }
  .ua-topbar-menu { display: inline-grid; }
  .ua-brand { width: auto; }
  .ua-brand-text { display: none; }
  .ua-topbar-center { justify-content: flex-end; }
  .ua-global-search { width: 34px; padding: 0; justify-content: center; }
  .ua-global-search-text,
  .ua-global-search-kbd,
  .ua-topbar-time { display: none; }
  .ua-topbar-right { gap: 6px; }
  .ua-topbar-link { padding: 0 var(--ua-space-2); }
  .ua-env-tag { padding: 6px; }

  .ua-sidebar {
    top: 0; z-index: 45;
    width: min(280px, 86vw);
    transform: translateX(-100%);
    visibility: hidden;
    transition: transform var(--ua-drawer-duration) var(--ua-ease), visibility 0s linear var(--ua-drawer-duration);
  }
  .ua-sidebar--open {
    transform: translateX(0);
    visibility: visible;
    box-shadow: var(--ua-shadow-pop);
    transition: transform var(--ua-drawer-duration) var(--ua-ease), visibility 0s linear 0s;
  }
  .ua-sidebar-scrim--open {
    display: block;
    position: fixed; inset: 0; z-index: 44;
    background: rgba(0, 0, 0, 0.45);
  }
  .ua-app-main { margin-left: 0; }
  .ua-content { padding: var(--ua-space-4); }

  .ua-login-wrap { padding: var(--ua-space-4); }
  .ua-login-body { padding: 28px var(--ua-space-5) var(--ua-space-6); }

  .ua-portal-inner { padding: 0 var(--ua-space-4); }
  .ua-portal-bar { gap: 10px; }
  .ua-portal-switch { order: 10; flex: 1 1 100%; }
  .ua-portal-note { display: none; }
}

/* 減少動態：抽屜與按鈕不做過場 */
@media (prefers-reduced-motion: reduce) {
  .ua-sidebar,
  .ua-sidebar--open,
  .ua-btn { transition: none; }
}
