/* 杜康好客 · 总部管理端全局样式(Taro H5 / 小程序通用) */ :root { --hq-red: #a61d24; --hq-red-dark: #820012; --hq-amber: #c9a227; --hq-bg: #f5f3f0; --hq-surface: #ffffff; --hq-text: #1f1a17; --hq-muted: #8d706e; --hq-line: #ece7e2; --hq-green: #2d6a4f; --hq-blue: #2a6ebb; --hq-orange: #c26a1b; --hq-radius: 16px; --hq-shadow: 0 2px 12px rgba(93, 64, 55, 0.08); --hq-safe-top: env(safe-area-inset-top, 0px); --hq-safe-bottom: env(safe-area-inset-bottom, 0px); } page, body { background: var(--hq-bg); color: var(--hq-text); font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'PingFang SC', sans-serif; margin: 0; -ms-overflow-style: none; scrollbar-width: none; } /* 隐藏滚动条,保留触摸/滚轮滚动 */ html, body, page, #app, .taro_page, .hq-page, scroll-view, .taro-scroll, .taro-scroll-view, .taro-scroll-view__scroll-x, .taro-scroll-view__scroll-y { -ms-overflow-style: none; scrollbar-width: none; } html::-webkit-scrollbar, body::-webkit-scrollbar, page::-webkit-scrollbar, #app::-webkit-scrollbar, .hq-page::-webkit-scrollbar, scroll-view::-webkit-scrollbar, .taro-scroll::-webkit-scrollbar, .taro-scroll-view::-webkit-scrollbar, .taro-scroll-view__scroll-x::-webkit-scrollbar, .taro-scroll-view__scroll-y::-webkit-scrollbar { display: none; width: 0 !important; height: 0 !important; background: transparent; } .material-symbols-outlined { font-family: 'Material Symbols Outlined'; font-weight: normal; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; } /* 页面骨架 */ .hq-page { min-height: 100vh; padding-bottom: calc(24px + var(--hq-safe-bottom)); background: var(--hq-bg); box-sizing: border-box; } .hq-page--tab { padding-bottom: calc(96px + var(--hq-safe-bottom)); } /* 顶部安全区头部(刘海 / 状态栏适配) */ .hq-header { position: sticky; top: 0; z-index: 50; padding-top: var(--hq-safe-top); background: linear-gradient(135deg, var(--hq-red), var(--hq-red-dark)); color: #fff; box-shadow: var(--hq-shadow); } .hq-header__bar { height: 52px; display: flex; align-items: center; justify-content: center; position: relative; padding: 0 16px; } .hq-header__title { font-size: 17px; font-weight: 700; } .hq-header__back, .hq-header__action { position: absolute; top: 50%; transform: translateY(-50%); display: flex; align-items: center; color: #fff; font-size: 22px; } .hq-header__back { left: 12px; } .hq-header__action { right: 12px; font-size: 14px; gap: 4px; } .hq-header--plain { background: var(--hq-surface); color: var(--hq-text); } .hq-header--plain .hq-header__title { color: var(--hq-red); } .hq-header--plain .hq-header__back, .hq-header--plain .hq-header__action { color: var(--hq-red); } /* 卡片 */ .hq-card { background: var(--hq-surface); border-radius: var(--hq-radius); margin: 12px 16px; padding: 16px; box-shadow: var(--hq-shadow); box-sizing: border-box; } .hq-section-title { font-size: 15px; font-weight: 700; margin: 20px 16px 8px; display: flex; align-items: center; justify-content: space-between; } .hq-muted { color: var(--hq-muted); } .hq-row { display: flex; align-items: center; justify-content: space-between; } /* 统计网格 */ .hq-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 16px; } .hq-stat { background: var(--hq-surface); border-radius: var(--hq-radius); padding: 16px; box-shadow: var(--hq-shadow); } .hq-stat__label { font-size: 12px; color: var(--hq-muted); } .hq-stat__value { font-size: 24px; font-weight: 800; color: var(--hq-red); margin-top: 6px; font-variant-numeric: tabular-nums; } .hq-stat__sub { font-size: 11px; color: var(--hq-muted); margin-top: 4px; } /* 列表项 */ .hq-list-item { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--hq-surface); border-bottom: 1px solid var(--hq-line); } .hq-list-item:active { background: #faf8f6; } .hq-avatar { width: 44px; height: 44px; border-radius: 12px; background: rgba(166, 29, 36, 0.08); color: var(--hq-red); display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; } /* 徽标 / 状态 */ .hq-badge { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; } .hq-badge--warn { background: rgba(194, 106, 27, 0.12); color: var(--hq-orange); } .hq-badge--ok { background: rgba(45, 106, 79, 0.12); color: var(--hq-green); } .hq-badge--info { background: rgba(42, 110, 187, 0.12); color: var(--hq-blue); } .hq-badge--danger { background: rgba(166, 29, 36, 0.12); color: var(--hq-red); } /* 按钮 */ .hq-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: none; border-radius: 12px; padding: 12px 18px; font-size: 15px; font-weight: 600; line-height: 1.2; } .hq-btn--primary { background: var(--hq-red); color: #fff; } .hq-btn--ghost { background: rgba(166, 29, 36, 0.08); color: var(--hq-red); } .hq-btn--outline { background: transparent; border: 1px solid var(--hq-line); color: var(--hq-text); } .hq-btn--block { width: 100%; } .hq-btn:active { opacity: 0.85; } .hq-btn[disabled] { opacity: 0.5; } /* 快捷入口宫格 */ .hq-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 12px 16px; background: var(--hq-surface); border-radius: var(--hq-radius); padding: 16px 8px; box-shadow: var(--hq-shadow); } .hq-grid__item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 0; } .hq-grid__icon { width: 44px; height: 44px; border-radius: 14px; background: rgba(166, 29, 36, 0.08); color: var(--hq-red); display: flex; align-items: center; justify-content: center; font-size: 24px; } .hq-grid__label { font-size: 12px; color: var(--hq-text); } /* 分段 Tab */ .hq-tabs { display: flex; gap: 4px; overflow-x: auto; overflow-y: hidden; padding: 8px 16px; background: var(--hq-surface); border-bottom: 1px solid var(--hq-line); position: sticky; top: calc(52px + var(--hq-safe-top)); z-index: 40; -ms-overflow-style: none; scrollbar-width: none; } .hq-tabs::-webkit-scrollbar { display: none; width: 0 !important; height: 0 !important; } .hq-tab { flex-shrink: 0; padding: 6px 14px; border-radius: 999px; font-size: 13px; color: var(--hq-muted); background: transparent; } .hq-tab--active { background: var(--hq-red); color: #fff; font-weight: 600; } /* 空态 / 加载 */ .hq-empty { text-align: center; padding: 60px 24px; color: var(--hq-muted); font-size: 14px; } /* 表单 */ .hq-field { margin: 12px 16px; } .hq-field__label { font-size: 13px; color: var(--hq-muted); margin-bottom: 6px; display: block; } .hq-input { width: 100%; box-sizing: border-box; background: var(--hq-surface); border: 1px solid var(--hq-line); border-radius: 12px; padding: 12px 14px; font-size: 15px; color: var(--hq-text); } .store-cover { width: 100%; height: 180px; display: block; } /* 底部固定操作栏 */ .hq-footer-bar { position: fixed; left: 0; right: 0; bottom: 0; display: flex; gap: 12px; padding: 12px 16px calc(12px + var(--hq-safe-bottom)); background: var(--hq-surface); border-top: 1px solid var(--hq-line); z-index: 60; }