/* app.css — 组件样式唯一来源：全部颜色 / 间距 / 圆角 / 动效走 design-tokens.css 的 var(--xxx)。
   本文件禁止出现任何 hex / rgb / hsl 色值；pc-* 前缀，Product 寄存器，hairline 分层。 */
:root { --risk-h: 34px; --tabbar-h: 58px; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: var(--bg); color: var(--fg); font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-body); -webkit-font-smoothing: antialiased; }
h1, h2, h3, p { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
button { cursor: pointer; }
.pc-icon { flex: none; vertical-align: middle; }
.num, .pc-card__price, .pc-num { font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }

/* ---------- 全站常驻风险条 ---------- */
.pc-riskbar { position: sticky; top: 0; z-index: var(--z-sticky); display: flex; align-items: center; gap: var(--space-2); min-height: var(--risk-h); padding: var(--space-1) var(--gutter-h5); background: var(--warn-soft); color: var(--warn); font-size: var(--text-xs); line-height: 1.35; border-bottom: var(--border-hairline); }
.pc-riskbar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#riskbar { max-width: var(--container-h5); margin: 0 auto; }
#app { max-width: var(--container-h5); margin: 0 auto; padding: 0 var(--gutter-h5) calc(var(--tabbar-h) + var(--space-12) + var(--safe-bottom)); }
.pc-page { padding-top: var(--space-3); }
.pc-page__gap { height: var(--space-4); }

/* ---------- 顶栏 / 区块标题 ---------- */
.pc-topbar { position: sticky; top: var(--risk-h); z-index: var(--z-sticky); display: flex; align-items: center; gap: var(--space-2); height: 48px; margin: 0 calc(0px - var(--gutter-h5)); padding: 0 var(--gutter-h5); background: var(--surface); border-bottom: var(--border-hairline); }
.pc-topbar h1 { flex: 1; font-size: var(--text-lg); font-weight: var(--weight-announce); letter-spacing: var(--tracking-display); text-align: center; }
.pc-topbar__brand, .pc-topbar__sp { min-width: 44px; font-size: var(--text-sm); font-weight: var(--weight-emphasize); color: var(--accent-ink); }
.pc-topbar__sp { min-width: 32px; }
.pc-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: var(--tap-min); height: var(--tap-min); border: 0; background: var(--btn-ghost-bg); color: var(--fg-2); border-radius: var(--radius-md); }
.pc-iconbtn:hover { background: var(--surface-sunk); }
.pc-section { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); padding: var(--space-5) 0 var(--space-2); }
.pc-section h2 { font-size: var(--text-lg); font-weight: var(--weight-announce); letter-spacing: var(--tracking-display); }
.pc-section span { font-size: var(--text-xs); color: var(--meta); }

/* ---------- 按钮 ---------- */
.pc-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--tap-min); padding: var(--space-3) var(--space-4); border: var(--border-w) solid transparent; border-radius: var(--radius-md); background: var(--btn-primary-bg); color: var(--btn-primary-fg); font-size: var(--text-base); font-weight: var(--weight-emphasize); line-height: 1.2; transition: background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard); }
.pc-btn:hover { background: var(--btn-primary-bg-hover); transform: translateY(-1px); box-shadow: var(--elev-raised); }
.pc-btn:active { background: var(--btn-primary-bg-active); transform: none; }
.pc-btn:disabled, .pc-btn[disabled] { background: var(--btn-disabled-bg); color: var(--btn-disabled-fg); border-color: var(--btn-disabled-border); cursor: not-allowed; transform: none; box-shadow: var(--elev-flat); }
.pc-btn--secondary { background: var(--btn-secondary-bg); color: var(--btn-secondary-fg); border-color: var(--btn-secondary-border); }
.pc-btn--secondary:hover { background: var(--accent-soft); }
.pc-btn--ghost { background: var(--btn-ghost-bg); color: var(--btn-ghost-fg); }
.pc-btn--ghost:hover { background: var(--surface-sunk); }
.pc-btn--danger { background: var(--btn-danger-bg); color: var(--btn-danger-fg); }
.pc-btn--block { display: flex; width: 100%; }
.pc-btn--lg { min-height: 48px; font-size: var(--text-lg); }
.pc-stickybar { position: sticky; bottom: calc(var(--tabbar-h) + var(--safe-bottom)); z-index: var(--z-sticky); margin: var(--space-4) calc(0px - var(--gutter-h5)) 0; padding: var(--space-3) var(--gutter-h5); background: var(--surface); border-top: var(--border-hairline); }

/* ---------- 标签 / 提示 ---------- */
.pc-tag { display: inline-flex; align-items: center; gap: var(--space-1); padding: 2px var(--space-2); border: var(--border-w) solid transparent; border-radius: var(--radius-sm); font-size: var(--text-xs); line-height: 1.5; white-space: nowrap; }
.pc-tag--driver { background: var(--tag-type-driver-bg); color: var(--tag-type-driver-fg); border-color: var(--tag-type-driver-border); }
.pc-tag--passenger { background: var(--tag-type-passenger-bg); color: var(--tag-type-passenger-fg); border-color: var(--tag-type-passenger-border); }
.pc-tag--line { background: var(--tag-type-line-bg); color: var(--tag-type-line-fg); border-color: var(--tag-type-line-border); }
.pc-tag--status-active { background: var(--tag-status-active-bg); color: var(--tag-status-active-fg); }
.pc-tag--status-expired { background: var(--tag-status-expired-bg); color: var(--tag-status-expired-fg); }
.pc-tag--status-review { background: var(--tag-status-review-bg); color: var(--tag-status-review-fg); }
.pc-tag--status-removed, .pc-tag--status-done { background: var(--tag-status-done-bg); color: var(--tag-status-done-fg); }
.pc-tag--status-rejected { background: var(--tag-status-rejected-bg); color: var(--tag-status-rejected-fg); }
.pc-tag--pinned { background: var(--tag-status-pinned-bg); color: var(--tag-status-pinned-fg); }
.pc-chip { display: inline-block; padding: 1px var(--space-2); border-radius: var(--radius-sm); background: var(--surface-sunk); color: var(--fg-2); font-size: var(--text-xs); }
.pc-notice { display: flex; align-items: flex-start; gap: var(--space-2); padding: var(--space-3); border-radius: var(--radius-md); background: var(--info-soft); color: var(--info); font-size: var(--text-sm); line-height: 1.5; }
.pc-notice--warn { background: var(--warn-soft); color: var(--warn); }
.pc-notice--success { background: var(--success-soft); color: var(--success); }
.pc-riskblock { display: flex; gap: var(--space-3); padding: var(--space-4); border: var(--border-hairline); border-radius: var(--radius-lg); background: var(--surface-warm); color: var(--amber-ink); }
.pc-riskblock strong { display: block; font-size: var(--text-sm); margin-bottom: var(--space-1); }
.pc-riskblock p { font-size: var(--text-xs); line-height: 1.55; }
.pc-scope { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-3) 0; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent-ink); font-size: var(--text-xs); }

/* ---------- 搜索 / Tab / 城市上下文 ---------- */
.pc-citybar { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; padding: var(--space-2) var(--space-3); border: var(--border-hairline); border-radius: var(--radius-md); background: var(--surface); color: var(--accent-ink); font-size: var(--text-sm); font-weight: var(--weight-emphasize); }
.pc-citybar span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-search { display: flex; align-items: center; gap: var(--space-2); height: 48px; margin-top: var(--space-3); padding: 0 var(--space-4); border: var(--border-hairline); border-radius: var(--radius-pill); background: var(--surface); }
.pc-search input { flex: 1; min-width: 0; border: 0; outline: none; background: var(--input-bg); color: var(--input-fg); font-size: var(--text-sm); }
.pc-search input::placeholder { color: var(--input-placeholder); }
.pc-tabs { display: flex; margin-top: var(--space-3); border-bottom: var(--border-hairline); }
.pc-tab { position: relative; flex: 1; min-height: 44px; border: 0; background: var(--btn-ghost-bg); color: var(--tab-inactive-fg); font-size: var(--text-sm); font-weight: var(--weight-emphasize); }
.pc-tab.is-active { color: var(--tab-active-fg); }
.pc-tab.is-active::after { content: ''; position: absolute; left: 20%; right: 20%; bottom: 0; height: 2px; background: var(--tab-active-indicator); }
.pc-filterrow { display: flex; gap: var(--space-2); margin-top: var(--space-3); }
.pc-filterrow .pc-btn { flex: 1; font-size: var(--text-sm); }
.pc-count { padding: var(--space-3) 0 var(--space-1); font-size: var(--text-xs); color: var(--meta); }

/* ---------- 信息卡 ---------- */
.pc-card { display: block; padding: var(--space-4); margin-top: var(--space-3); border: var(--border-hairline); border-radius: var(--radius-lg); background: var(--card-bg); color: var(--card-fg); transition: border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard); }
.pc-card:hover { border-color: var(--card-border-hover); box-shadow: var(--elev-raised); }
.pc-card__top { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
.pc-card__time { margin-left: auto; font-size: var(--text-xs); color: var(--meta); }
.pc-card__main { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-3) 0 var(--space-2); min-width: 0; font-size: var(--text-base); font-weight: var(--weight-emphasize); }
.pc-card__place { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-card__lead { flex: none; color: var(--amber-ink); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.pc-card__meta { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; font-size: var(--text-sm); color: var(--muted); }
.pc-card__foot { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-3); padding-top: var(--space-3); border-top: var(--border-divider); }
.pc-card__price { font-size: var(--text-xl); font-weight: var(--weight-announce); color: var(--accent); white-space: nowrap; }
.pc-card__author, .pc-card__views { font-size: var(--text-xs); color: var(--meta); }
.pc-card__author { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-skeleton { pointer-events: none; }
.pc-sk-line { height: 12px; margin: var(--space-2) 0; border-radius: var(--radius-sm); background: var(--skeleton-bg); }
.w40 { width: 40%; } .w55 { width: 55%; } .w70 { width: 70%; }

/* ---------- 表单 ---------- */
.pc-field { margin-top: var(--space-4); }
.pc-field__label { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); font-size: var(--text-sm); color: var(--fg-2); }
.pc-field__req { font-size: var(--text-xs); color: var(--danger); }
.pc-input { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); width: 100%; min-height: var(--tap-min); padding: var(--space-3); border: var(--border-w) solid var(--input-border); border-radius: var(--radius-md); background: var(--input-bg); color: var(--input-fg); font-size: var(--text-base); text-align: left; }
.pc-input::placeholder { color: var(--input-placeholder); }
.pc-input:focus { border-color: var(--input-border-focus); }
.pc-input--picker span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-field--error .pc-input { border-color: var(--input-border-error); }
.pc-field__help, .pc-field__err { margin-top: var(--space-1); font-size: var(--text-xs); }
.pc-field__help { color: var(--meta); }
.pc-field__err { color: var(--danger); }
.pc-steps { display: flex; gap: var(--space-2); padding: var(--space-3) 0; border-bottom: var(--border-hairline); font-size: var(--text-sm); }
.pc-steps span { flex: 1; padding-bottom: var(--space-2); border-bottom: 2px solid var(--border); color: var(--muted); }
.pc-steps span.is-active { border-color: var(--accent); color: var(--accent-ink); font-weight: var(--weight-emphasize); }
.pc-check { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3); margin-top: var(--space-4); border: var(--border-hairline); border-radius: var(--radius-md); font-size: var(--text-sm); line-height: 1.5; }
.pc-check input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--accent); }
.pc-tiers { display: grid; gap: var(--space-2); margin-top: var(--space-3); }
.pc-tier { display: flex; align-items: center; justify-content: space-between; min-height: var(--tap-min); padding: var(--space-3); border: var(--border-w) solid var(--border); border-radius: var(--radius-md); background: var(--surface); font-size: var(--text-sm); }
.pc-tier.is-active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); font-weight: var(--weight-emphasize); }

/* ---------- 详情 ---------- */
.pc-detail__title { padding: var(--space-4) 0; font-size: var(--text-xl); font-weight: var(--weight-announce); letter-spacing: var(--tracking-display); line-height: var(--leading-heading); }
.pc-kv { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: var(--border-divider); font-size: var(--text-sm); }
.pc-kv dt { flex: none; color: var(--muted); }
.pc-kv dd { margin: 0; text-align: right; font-weight: var(--weight-emphasize); }
.pc-price-big { font-size: var(--text-2xl); font-weight: var(--weight-announce); color: var(--accent); }
.pc-phone { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-4); border: var(--border-hairline); border-radius: var(--radius-lg); background: var(--surface); font-family: var(--font-numeric); font-size: var(--text-xl); font-variant-numeric: tabular-nums; letter-spacing: var(--tracking-caps); }
.pc-phone.is-masked { color: var(--muted); }

/* ---------- 积分墙 / 个人中心 ---------- */
.pc-balance { display: flex; align-items: baseline; justify-content: space-between; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--surface-warm); color: var(--amber-ink); }
.pc-balance strong { font-size: var(--text-3xl); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.pc-pkgs { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); margin-top: var(--space-3); }
.pc-pkg { min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border: var(--border-w) solid var(--border); border-radius: var(--radius-md); background: var(--surface); font-size: var(--text-sm); }
.pc-pkg b { font-family: var(--font-numeric); font-variant-numeric: tabular-nums; font-size: var(--text-lg); }
.pc-pkg small { color: var(--meta); font-size: var(--text-xs); }
.pc-pkg.is-active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); }
.pc-ledger { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3) 0; border-bottom: var(--border-divider); font-size: var(--text-sm); }
.pc-ledger span { color: var(--muted); font-size: var(--text-xs); }
.pc-ledger b { font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.pc-row { display: flex; align-items: center; gap: var(--space-3); min-height: 52px; padding: var(--space-2) 0; border-bottom: var(--border-divider); }
.pc-row__label { flex: 1; font-size: var(--text-base); }
.pc-row__value { font-size: var(--text-sm); color: var(--muted); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.pc-userblock { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-5) 0; }
.pc-avatar { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--radius-pill); background: var(--accent-soft); color: var(--accent-ink); }
.pc-group { padding: var(--space-2) 0; border-top: var(--border-block); }

/* ---------- 空态 / Toast / 弹层 ---------- */
.pc-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); padding: var(--space-12) var(--space-4); text-align: center; color: var(--empty-fg); }
.pc-empty h3 { font-size: var(--text-lg); color: var(--fg); font-weight: var(--weight-announce); }
.pc-empty p { max-width: 30ch; font-size: var(--text-sm); }
.pc-toast { position: fixed; left: 50%; bottom: calc(var(--tabbar-h) + var(--space-6) + var(--safe-bottom)); z-index: var(--z-toast); display: flex; align-items: center; gap: var(--space-2); max-width: 90vw; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--toast-bg); color: var(--toast-fg); font-size: var(--text-sm); opacity: 0; transform: translate(-50%, 8px); pointer-events: none; transition: opacity var(--motion-base) var(--ease-enter), transform var(--motion-base) var(--ease-enter); }
.pc-toast.is-show { opacity: 1; transform: translate(-50%, 0); }
.pc-toast--error { background: var(--danger); color: var(--accent-on); }
.pc-overlay { position: fixed; inset: 0; z-index: var(--z-overlay); display: flex; align-items: flex-end; justify-content: center; background: var(--overlay-scrim); }
.pc-sheet { width: 100%; max-width: var(--container-h5); max-height: 82vh; overflow: auto; padding: var(--space-2) var(--gutter-h5) calc(var(--space-4) + var(--safe-bottom)); border-radius: var(--radius-xl) var(--radius-xl) 0 0; background: var(--surface); box-shadow: var(--elev-overlay); animation: pc-sheet-in var(--motion-slow) var(--ease-enter); }
@keyframes pc-sheet-in { from { transform: translateY(16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.pc-sheet__handle { width: 36px; height: 4px; margin: 0 auto var(--space-2); border-radius: var(--radius-pill); background: var(--border-strong); }
.pc-sheet__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: var(--space-2) 0; border-bottom: var(--border-hairline); }
.pc-sheet__head h2 { font-size: var(--text-lg); font-weight: var(--weight-announce); }
.pc-sheet__body { padding: var(--space-2) 0; }
.pc-sheet__foot { padding-top: var(--space-3); border-top: var(--border-hairline); }
.pc-pk__path { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3); border-radius: var(--radius-md); background: var(--accent-soft); color: var(--accent-ink); font-size: var(--text-sm); }
.pc-pk__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); height: 280px; margin-top: var(--space-3); }
.pc-pk__col { overflow-y: auto; border-right: var(--border-divider); }
.pc-pk__col:last-child { border-right: 0; }
.pc-pk__item { display: block; width: 100%; min-height: 40px; padding: var(--space-2); border: 0; border-left: 2px solid transparent; background: var(--btn-ghost-bg); color: var(--fg-2); font-size: var(--text-sm); text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-pk__item:hover { background: var(--surface-sunk); }
.pc-pk__item.is-active { border-left-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); font-weight: var(--weight-emphasize); }

/* ---------- 底部 TabBar ---------- */
.pc-tabbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-sticky); display: flex; max-width: var(--container-h5); height: calc(var(--tabbar-h) + var(--safe-bottom)); margin: 0 auto; padding-bottom: var(--safe-bottom); border-top: var(--border-hairline); background: var(--surface); }
.pc-tabbar__item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border: 0; background: var(--btn-ghost-bg); color: var(--muted); font-size: var(--text-xs); }
.pc-tabbar__item.is-active { color: var(--accent); }
.pc-tabbar__pub { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; border: 0; background: var(--btn-ghost-bg); color: var(--muted); font-size: var(--text-xs); }
.pc-tabbar__pub i { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-top: -14px; border-radius: var(--radius-pill); background: var(--accent); color: var(--accent-on); box-shadow: var(--elev-raised); }

/* ---------- 管理后台 ---------- */
#admin-app { min-height: 100vh; }
.pc-admin { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
.pc-admin__side { padding: var(--space-5) var(--space-3); border-right: var(--border-hairline); background: var(--surface); }
.pc-admin__logo { display: flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-2) var(--space-5); font-size: var(--text-lg); font-weight: var(--weight-announce); color: var(--accent-ink); }
.pc-admin__nav { display: flex; flex-direction: column; gap: var(--space-1); }
.pc-admin__nav button { display: flex; align-items: center; gap: var(--space-3); min-height: 44px; padding: var(--space-2) var(--space-3); border: 0; border-radius: var(--radius-md); background: var(--btn-ghost-bg); color: var(--fg-2); font-size: var(--text-sm); text-align: left; }
.pc-admin__nav button.is-active { background: var(--accent-soft); color: var(--accent-ink); font-weight: var(--weight-emphasize); }
.pc-admin__main { padding: var(--space-6) var(--gutter-desktop); max-width: var(--container-admin); }
.pc-admin__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding-bottom: var(--space-4); border-bottom: var(--border-block); }
.pc-admin__head h1 { font-size: var(--text-2xl); letter-spacing: var(--tracking-display); }
.pc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); margin: var(--space-5) 0; }
.pc-stat { padding: var(--space-4); border: var(--border-hairline); border-radius: var(--radius-lg); background: var(--surface); }
.pc-stat span { display: block; font-size: var(--text-xs); color: var(--muted); }
.pc-stat strong { display: block; margin-top: var(--space-2); font-size: var(--text-3xl); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; color: var(--accent); }
.pc-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.pc-table th, .pc-table td { padding: var(--space-3) var(--space-2); border-bottom: var(--border-divider); text-align: left; }
.pc-table th { color: var(--muted); font-weight: var(--weight-emphasize); font-size: var(--text-xs); }
.pc-table td.num { text-align: right; }
.pc-table tr:hover td { background: var(--surface-sunk); }
.pc-table .pc-btn { min-height: 32px; padding: var(--space-1) var(--space-3); font-size: var(--text-xs); }
.pc-admin__cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); margin-top: var(--space-5); }
.pc-admin__mobile { display: none; }

/* ---------- 响应式 ---------- */
@media (min-width: 768px) {
  #app, #riskbar { border-left: var(--border-hairline); border-right: var(--border-hairline); }
  .pc-overlay { align-items: center; }
  .pc-sheet { border-radius: var(--radius-xl); }
}
@media (max-width: 389px) {
  .pc-card__foot { flex-wrap: wrap; }
  .pc-card__author { flex-basis: 100%; }
  .pc-pkgs { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .pc-admin { grid-template-columns: 1fr; }
  .pc-admin__side { display: none; }
  .pc-admin__main { padding: var(--space-4) var(--gutter-h5); }
  .pc-admin__cols { grid-template-columns: 1fr; }
  .pc-stats { grid-template-columns: repeat(2, 1fr); }
  .pc-table th:nth-child(n+5), .pc-table td:nth-child(n+5) { display: none; }
}
@media (max-width: 1023px) and (min-width: 768px) {
  .pc-admin { grid-template-columns: 64px 1fr; }
  .pc-admin__side { padding: var(--space-3) var(--space-1); }
  .pc-admin__logo span, .pc-admin__nav button span { display: none; }
}

/* ---------- 补充：搜索按钮 / 分站网格 / 弹层脚 / 明细 / 表单联动 ---------- */
.pc-search button { display: inline-flex; align-items: center; gap: var(--space-1); border: 0; background: var(--btn-ghost-bg); color: var(--accent-ink); font-size: var(--text-sm); font-weight: var(--weight-emphasize); white-space: nowrap; }
.pc-chipgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); margin-top: var(--space-2); }
.pc-chipbtn { min-height: var(--tap-min); padding: var(--space-2); border: var(--border-w) solid var(--border); border-radius: var(--radius-md); background: var(--surface); color: var(--fg-2); font-size: var(--text-sm); }
.pc-chipbtn:hover { border-color: var(--accent); color: var(--accent-ink); }
.pc-sheet__foot { display: flex; flex-direction: column; gap: var(--space-2); }
.pc-kvlist { margin: var(--space-3) 0 0; }
.pc-up { color: var(--success); }
.pc-down { color: var(--danger); }
.pc-tabbar__pub.is-active { color: var(--accent); }
.pc-filterrow--tight { margin: 0; }
.pc-filterrow input.pc-input { flex: 1; min-width: 0; }
.pc-group .pc-row:last-child { border-bottom: 0; }
.pc-admin__main .pc-count { line-height: 1.5; }
.pc-section a { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--text-xs); color: var(--accent-ink); }
.pc-line-entry { text-decoration: none; }

/* ---------- 会员双角色：身份徽章 / 认证状态卡 ---------- */
.pc-badge { display: inline-flex; align-items: center; gap: var(--space-1); padding: 1px var(--space-2); border: var(--border-w) solid var(--border); border-radius: var(--radius-sm); font-size: var(--text-xs); line-height: 1.5; white-space: nowrap; }
.pc-badge--passenger { background: var(--surface-sunk); color: var(--fg-2); }
.pc-badge--driver { background: var(--accent-soft); color: var(--accent-ink); border-color: var(--accent); }
.pc-badge--verified { background: var(--success-soft); color: var(--success); border-color: var(--success); }
.pc-badge--pending { background: var(--amber-soft); color: var(--amber); border-color: var(--amber); }
.pc-badge--rejected, .pc-badge--expired { background: var(--danger-soft); color: var(--danger); border-color: var(--danger); }
.pc-verify { margin: var(--space-3) 0; padding: var(--space-3); border: var(--border-w) solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
.pc-verify__head { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.pc-verify__head h3 { margin: 0; font-size: var(--text-base); }
.pc-verify__meta { margin: 0; font-size: var(--text-sm); color: var(--fg-2); line-height: 1.7; }
.pc-verify__meta b { color: var(--fg); font-weight: var(--weight-emphasize); }
.pc-steps--vert { flex-direction: column; align-items: stretch; gap: var(--space-2); }
.pc-steps--vert span { text-align: left; }
button.pc-row { width: 100%; background: transparent; border: 0; border-bottom: var(--border-divider); color: var(--fg); font: inherit; text-align: left; cursor: pointer; }
button.pc-row:last-child { border-bottom: 0; }
.pc-chipbtn.is-active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); font-weight: var(--weight-emphasize); }
