/* 客户端移动布局；综合管理、运营和BD页面不使用这些样式。 */
.app .topbar { gap:12px; padding:8px 16px; min-height:60px; }
.app .topbar .brandmark { width:108px; flex:0 0 108px; height:36px; }
.app .topbar .brandmark img { width:108px; }
.app .topbar .title { flex:1; }
.app .topbar .title span { margin:0; font-size:16px; font-weight:650; color:var(--ink); }
.app .topbar:not(.is-detail) .title { visibility:hidden; }
.app .topbar.is-detail { display:grid; grid-template-columns:76px minmax(0,1fr) 76px; }
.app .topbar.is-detail .brandmark { display:none; }
.app .topbar.is-detail .title { text-align:center; }
.app .topbar.is-detail .title span { white-space:normal; line-height:1.4; overflow-wrap:anywhere; }
.app .topbar.is-detail::after { content:""; width:76px; }
.app .topbar .header-button { min-width:64px; min-height:44px; padding:8px 10px; background:transparent; color:var(--blue); font-size:15px; border:0; border-radius:8px; font-weight:650; }
.app .topbar .header-button:active { background:#eef4fb; }
.app .topbar .header-button:focus-visible, .account-sheet button:focus-visible, .trial-summary a:focus-visible { outline:3px solid #71a8d5; outline-offset:2px; }
body.env-test .app .topbar { top:30px; }
.app .wrap > .panel:first-child { margin-top:0; }
.app .section-title { overflow-wrap:anywhere; line-height:1.5; }
.app .panel-title-row { align-items:flex-start; }
.app .customer-tier { display:inline-block; margin:0 0 4px; padding:4px 10px; border-radius:20px; background:#eef4fb; color:var(--blue); font-size:12px; }
.app .progress-query { min-height:44px; }
.account-sheet { position:fixed; inset:auto 0 0; width:100%; max-width:520px; max-height:85dvh; margin:0 auto; padding:16px 18px max(18px, env(safe-area-inset-bottom)); border:0; border-radius:22px 22px 0 0; background:#fff; color:var(--ink); overflow:auto; overscroll-behavior:contain; box-shadow:0 -8px 40px #16203324; }
.account-sheet::backdrop { background:rgba(9,20,40,.42); }
.account-sheet .sheet-grip { width:36px; height:4px; border-radius:4px; margin:0 auto 18px; background:#d8e0e9; }
.account-sheet .sheet-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.account-sheet h2 { font-size:18px; margin:0 0 6px; }
.account-sheet .sheet-customer { font-size:13px; color:var(--muted); line-height:1.6; overflow-wrap:anywhere; margin:0 0 16px; }
.account-sheet .sheet-close { min-width:44px; min-height:44px; padding:8px; background:#f4f7fb; color:var(--muted); border-radius:50%; font-size:20px; }
.account-sheet .sheet-action { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:54px; padding:14px 4px; background:white; color:var(--ink); text-align:left; border-bottom:1px solid var(--line); font-size:16px; }
.account-sheet .sheet-action::after { content:'›'; color:#8c9bad; font-size:20px; }
.account-sheet .sheet-action:active { background:#f4f7fb; }
.account-sheet .sheet-logout { margin-top:18px; width:100%; min-height:48px; border-radius:10px; background:#f3f5f8; color:#68758a; font-size:15px; }
body.customer-sheet-open { overflow:hidden; }
.app .refresh-notice { padding:12px 14px; margin:0 0 12px; border:1px solid #efd9b0; background:#fff8eb; border-radius:10px; color:#775e34; font-size:13px; line-height:1.6; }
.app .refresh-notice button { padding:4px 8px; min-height:44px; color:var(--blue); background:transparent; font-weight:650; }
.app .trial-summary { padding:16px; margin-top:14px; border:1px solid #c9dfef; border-radius:12px; background:linear-gradient(125deg,#eff7ff,#fff); }
.app .trial-summary .trial-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.app .trial-summary h2 { font-size:16px; margin:0; }
.app .trial-summary .trial-state { flex-shrink:0; padding:4px 9px; border-radius:20px; background:#dceefa; color:#21608b; font-size:12px; }
.app .trial-summary p { margin:10px 0 0; font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.app .trial-summary .trial-foot { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-top:14px; }
.app .trial-summary .trial-foot small { color:var(--muted); font-size:12px; line-height:1.6; }
.app .trial-summary a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; flex-shrink:0; padding:9px 14px; border-radius:8px; background:var(--blue); color:white; text-decoration:none; font-size:14px; font-weight:650; }
.app .trial-summary.is-history { background:#fff; border-color:var(--line); }
.app .trial-summary.is-history .trial-state { background:#eef1f4; color:var(--muted); }
.app .trial-summary.is-history a { background:#f2f5f9; color:var(--blue); }
.app .has-trial-summary .trial-promise { display:none; }
/* 客户首次体验详情页，保持与签约页一致的宽度、返回栏与触控尺寸。 */
body.customer-portal { max-width:520px; margin:0 auto; }
.customer-portal header { position:sticky; top:0; z-index:10; display:grid; grid-template-columns:76px minmax(0,1fr) 76px; min-height:60px; padding:8px 14px; gap:8px; }
.customer-portal header h1 { grid-column:2; grid-row:1; font-size:17px; text-align:center; }
.customer-portal header #back { grid-column:1; grid-row:1; min-height:44px; display:flex; align-items:center; border:0; background:transparent; padding:8px 4px; font-size:15px; }
.customer-portal header::after { content:''; grid-column:3; }
.customer-portal main { margin:18px auto; padding:0 14px max(24px,env(safe-area-inset-bottom)); }
.customer-portal .card { padding:16px; }
.customer-portal h2 { overflow-wrap:anywhere; line-height:1.5; font-size:17px; }
.customer-portal button, .customer-portal .button, .customer-portal select { min-height:44px; }
.customer-portal .grid { grid-template-columns:repeat(2,minmax(0,1fr)); font-size:14px; gap:16px 12px; }
.customer-portal .grid > div { min-width:0; overflow-wrap:anywhere; line-height:1.6; }
.customer-portal .history, .customer-portal .notice { overflow-wrap:anywhere; }
.customer-portal dialog { max-height:88dvh; overflow:auto; padding:20px; }
.customer-portal input, .customer-portal textarea, .customer-portal select { font-size:16px; }
@media(max-width:360px) {
  .app .topbar { padding:8px 12px; }
  .app .trial-summary .trial-foot { align-items:flex-end; }
  .app .trial-summary { padding:14px; }
  .customer-portal .toolbar { gap:6px; }
  .customer-portal .toolbar button { padding:8px 10px; }
}
