/* ═══════════════════════════════════════════════════════════ * page-dashboard.css — Dashboard 專屬樣式 * ───────────────────────────────────────────────────────────── * 從原 dashboard.html 1548 行 inline style 抽出。 * 已移除: * - 藍紫色硬編碼(#667eea / #764ba2 / #4F46E5 等) * - 暗藍 navbar 漸層(已由 ewoooc_base 接管) * - 全局 body 漸層背景 * - 大量 box-shadow / hover translateY * 改用 ewoooc-tokens.css 的 var(--momo-*) 系統。 * ═══════════════════════════════════════════════════════════ */ /* ──────────────── KPI 卡片 1:商品監控概況 ──────────────── */ .momo-app .stat-card { position: relative; border: 1px solid var(--momo-border-light); border-radius: var(--momo-radius-lg); background: var(--momo-bg-paper); overflow: hidden; transition: border-color 0.2s ease; } .momo-app .stat-card:hover { border-color: var(--momo-page-accent-line); } /* 取代原本的 .bg-primary text-white:改成暖色系 inverse 卡 */ .momo-app .stat-card.bg-primary { background: var(--momo-page-accent) !important; color: var(--momo-page-inverse) !important; border-color: var(--momo-page-accent-dark); } .momo-app .stat-card.bg-primary .text-white-50 { color: rgba(255, 248, 239, 0.78) !important; font-family: var(--momo-font-display); font-size: var(--momo-text-label); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; } .momo-app .stat-card .card-body { padding: var(--momo-space-5); } .momo-app .stat-card .card-title { font-family: var(--momo-font-display); font-size: var(--momo-text-body); font-weight: 700; letter-spacing: 0; text-transform: none; margin-bottom: var(--momo-space-4); opacity: 1; } .momo-app .stat-card h2 { font-family: var(--momo-font-mono); font-size: 2rem; font-weight: 700; letter-spacing: 0; text-shadow: none; margin-bottom: 0; } /* 移除原本貼右下角的巨大裝飾 icon — 過於裝飾,干擾數字閱讀 */ .momo-app .stat-icon { display: none; } /* 卡內 4 格 KPI grid container */ .momo-app .stat-card .row .col-6 > div { background: rgba(255, 248, 239, 0.12) !important; border: 1px solid rgba(255, 248, 239, 0.18); border-radius: var(--momo-radius-md); transition: background 0.15s ease; } .momo-app .stat-card .row .col-6 > div:hover { background: rgba(255, 248, 239, 0.20) !important; } /* ──────────────── KPI 卡片 2:今日價格動態 grid ──────────────── */ .momo-app .kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--momo-space-3); } .momo-app .kpi-item { padding: var(--momo-space-4); border-radius: var(--momo-radius-md); background: var(--momo-bg-paper); border: 1px solid var(--momo-border-light); cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease; min-height: 110px; display: flex; flex-direction: column; justify-content: space-between; } .momo-app .kpi-item:hover { border-color: var(--momo-page-accent-line); background: var(--momo-page-accent-soft); } .momo-app .kpi-item-label { font-family: var(--momo-font-display); font-size: var(--momo-text-label); font-weight: 600; color: var(--momo-text-secondary); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: var(--momo-space-2); } .momo-app .kpi-item-value { font-family: var(--momo-font-mono); font-size: 1.5rem; font-weight: 700; color: var(--momo-text-primary); letter-spacing: 0; line-height: 1.1; } .momo-app .kpi-item-sub { font-size: var(--momo-text-label); color: var(--momo-text-tertiary); margin-top: var(--momo-space-1); } /* KPI 變化色 — 漲價(暖紅)/ 降價(橄欖綠) */ .momo-app .kpi-item.increase .kpi-item-value { color: var(--momo-tag-rust-text); } .momo-app .kpi-item.decrease .kpi-item-value { color: var(--momo-tag-olive-text); } .momo-app .kpi-item.neutral .kpi-item-value { color: var(--momo-text-primary); } /* ──────────────── 表格 ──────────────── */ .momo-app .table-responsive { border-radius: var(--momo-radius-md); border: 1px solid var(--momo-border-light); overflow: hidden; } /* 商品縮圖 */ .momo-app .product-thumb { width: 56px; height: 56px; object-fit: cover; border-radius: var(--momo-radius-sm); border: 1px solid var(--momo-border-light); background: var(--momo-bg-subtle); } .momo-app .product-info .flex-grow-1 { margin-left: var(--momo-space-3); min-width: 0; } .momo-app .product-link, .momo-app .product-name { color: var(--momo-text-primary); text-decoration: none; font-weight: 600; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; } .momo-app .product-link:hover { color: var(--momo-page-accent-dark); text-decoration: underline; } .momo-app .product-id { font-family: var(--momo-font-mono); font-size: var(--momo-text-label); color: var(--momo-text-tertiary); cursor: pointer; } .momo-app .product-id:hover { color: var(--momo-page-accent-dark); } /* 排序連結 */ .momo-app .sort-link { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; } .momo-app .sort-link.active { color: var(--momo-page-accent-dark); } .momo-app .sort-link:hover { color: var(--momo-page-accent-dark); } /* 漲跌色 */ .momo-app .price-up { color: var(--momo-tag-rust-text); font-weight: 600; } .momo-app .price-down { color: var(--momo-tag-olive-text); font-weight: 600; } .momo-app .price-display { font-family: var(--momo-font-mono); font-size: 1.05rem; color: var(--momo-text-primary); } /* status soft badge — 從原本的 bg-danger-soft / bg-success-soft 改用 token */ .momo-app .badge.bg-danger-soft { background: var(--momo-tag-rust-bg) !important; color: var(--momo-tag-rust-text) !important; border: 1px solid var(--momo-tag-rust-border); } .momo-app .badge.bg-success-soft { background: var(--momo-tag-olive-bg) !important; color: var(--momo-tag-olive-text) !important; border: 1px solid var(--momo-tag-olive-border); } .momo-app .badge.bg-secondary-soft { background: var(--momo-tag-ink-bg) !important; color: var(--momo-tag-ink-text) !important; border: 1px solid var(--momo-tag-ink-border); } .momo-app .badge-status { margin-left: var(--momo-space-2); font-family: var(--momo-font-mono); font-size: 11px; font-weight: 600; padding: 2px 6px; } .momo-app .cursor-pointer { cursor: pointer; } .momo-app .fs-08 { font-size: 0.8rem; } /* ──────────────── Modal 內表格 ──────────────── */ .momo-app .modal-body .table-light { background: var(--momo-bg-paper); } .momo-app .modal-body .table-light th { background: var(--momo-bg-paper) !important; color: var(--momo-text-secondary) !important; } /* 響應式:手機收成單欄 */ @media (max-width: 768px) { .momo-app .kpi-grid { grid-template-columns: repeat(2, 1fr); } .momo-app .stat-card h2 { font-size: 1.6rem; } }