/* ========================================
   Huawei Family Shop - Mobile App Styles
   ======================================== */

:root {
  --app-bg: #F6F7F9;
  --app-bg-soft: #FAFBFC;
  --surface: #FFFFFF;
  --surface-soft: #F2F4F7;
  --surface-brand: #FFF3F5;
  --line: #E6E8EC;
  --line-soft: #F0F2F5;
  --text: #1F2329;
  --text-secondary: #5F6673;
  --text-muted: #9AA1AD;
  --brand: #CF0A2C;
  --brand-dark: #A80723;
  --brand-light: #FCE7EB;
  --accent: #2563EB;
  --success: #16A34A;
  --warning: #F59E0B;
  --danger: #DC2626;
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 12px;
  --space-page: 16px;
  --shadow-card: 0 8px 24px rgba(31,35,41,0.06);
  --shadow-soft: 0 4px 14px rgba(31,35,41,0.05);
  --shadow-brand: 0 10px 22px rgba(207,10,44,0.20);
}

/* Reset & Base */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { width: 100%; height: 100%; overflow: hidden; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  color: #333;
}

/* ===== Phone Frame ===== */
.phone-frame {
  width: 390px;
  height: 844px;
  background: #000;
  border-radius: 50px;
  padding: 12px;
  box-shadow: 0 0 0 2px #333, 0 20px 60px rgba(0,0,0,0.5);
  position: relative;
  flex-shrink: 0;
}
.phone-notch {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: 150px;
  height: 30px;
  background: #000;
  border-radius: 0 0 20px 20px;
  z-index: 100;
}
.phone-screen {
  width: 100%;
  height: 100%;
  background: #f5f6f8;
  border-radius: 40px;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
}

/* ===== Status Bar ===== */
.status-bar {
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  flex-shrink: 0;
  position: relative;
  z-index: 50;
}
.status-time { font-size: 15px; font-weight: 700; }
.status-icons { display: flex; align-items: center; gap: 6px; color: #333; }
.status-battery {
  width: 24px; height: 12px;
  border: 1.5px solid #333;
  border-radius: 3px;
  position: relative;
  display: inline-block;
}
.battery-level { width: 80%; height: 100%; background: #333; border-radius: 1px; }
.battery-cap { position: absolute; right: -3px; top: 3px; width: 2px; height: 6px; background: #333; border-radius: 0 1px 1px 0; }

/* ===== Screens Container ===== */
.screens-container {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch;
}
.screens-container::-webkit-scrollbar { width: 0; }

.screen {
  display: none;
  min-height: 100%;
  position: relative;
  animation: screenIn 0.25s ease;
}
.screen.active { display: block; }
@keyframes screenIn {
  from { opacity: 0; transform: translateX(15px); }
  to { opacity: 1; transform: translateX(0); }
}

/* ===== Screen Header ===== */
.screen-header {
  height: 50px;
  display: flex;
  align-items: center;
  padding: 0 16px;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  position: sticky;
  top: 0;
  z-index: 20;
  gap: 8px;
}
.btn-back {
  width: 32px;
  height: 32px;
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.btn-back::before {
  content: '';
  width: 10px;
  height: 10px;
  border-left: 2.5px solid #333;
  border-bottom: 2.5px solid #333;
  transform: rotate(45deg);
  margin-right: -4px;
}
.header-title {
  flex: 1;
  text-align: center;
  font-size: 17px;
  font-weight: 600;
  color: #1a1a1a;
}
.detail-actions { display: flex; gap: 8px; }
.icon-btn {
  width: 32px; height: 32px;
  border: none; background: none;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #666;
}
.step-dots { display: flex; gap: 6px; }
.step-dots .dot { width: 8px; height: 8px; border-radius: 50%; background: #ddd; }
.step-dots .dot.active { background: #CF0A2C; width: 24px; border-radius: 4px; }
.step-dots .dot.done { background: #CF0A2C; }

/* ===== Splash Screen ===== */
#screen-splash {
  background: linear-gradient(180deg, #CF0A2C 0%, #a00721 100%);
}
.splash-bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,0.06) 0%, transparent 50%);
}
.splash-content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #fff;
}
.app-icon {
  width: 100px; height: 100px;
  border-radius: 24px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.2s;
  animation: pulse 2s ease-in-out infinite;
  border: 1px solid rgba(255,255,255,0.2);
}
.app-icon:active { transform: scale(0.92); }
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0.3); }
  50% { box-shadow: 0 0 0 15px rgba(255,255,255,0); }
}
.app-icon-inner { display: flex; align-items: center; justify-content: center; }
.splash-title {
  font-size: 28px;
  font-weight: 700;
  margin-top: 24px;
  letter-spacing: 2px;
}
.splash-subtitle {
  font-size: 14px;
  margin-top: 8px;
  opacity: 0.85;
}
.splash-tap {
  margin-top: 40px;
  font-size: 13px;
  opacity: 0.6;
  animation: blink 1.5s ease-in-out infinite;
}
@keyframes blink { 0%,100% { opacity: 0.4; } 50% { opacity: 0.9; } }

/* ===== Mode Selection ===== */
.mode-intro { padding: 20px 16px 8px; text-align: center; }
.mode-intro-text { font-size: 15px; color: #666; }
.mode-cards { display: flex; flex-direction: column; gap: 16px; padding: 12px 20px; }
.mode-card {
  background: #fff;
  border-radius: 16px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s;
  border: 2px solid transparent;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.mode-card:active { transform: scale(0.97); }
.mode-card:hover { border-color: #CF0A2C; }
.mode-icon { margin-bottom: 12px; }
.mode-card h3 { font-size: 20px; font-weight: 700; color: #1a1a1a; margin-bottom: 6px; }
.mode-card p { font-size: 14px; color: #666; margin-bottom: 10px; }
.mode-tag {
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 20px;
  background: #f5f5f5;
  color: #999;
}
.mode-elderly .mode-tag { background: #FFF3E0; color: #E65100; }
.mode-normal .mode-tag { background: #E3F2FD; color: #1565C0; }
.mode-child .mode-tag { background: #E8F5E9; color: #2E7D32; }
.mode-hint { padding: 16px 20px; text-align: center; font-size: 13px; color: #999; }

/* ===== Login ===== */
.login-content {
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.login-logo { margin-bottom: 16px; }
.login-title { font-size: 22px; font-weight: 700; color: #1a1a1a; margin-bottom: 32px; }
.login-form { width: 100%; }
.form-group { margin-bottom: 20px; }
.form-label { display: block; font-size: 14px; color: #666; margin-bottom: 8px; font-weight: 500; }
.input-wrap {
  display: flex;
  align-items: center;
  background: #f5f5f7;
  border-radius: 12px;
  padding: 0 16px;
  height: 52px;
}
.input-wrap input {
  flex: 1;
  border: none;
  background: none;
  outline: none;
  font-size: 16px;
  height: 100%;
  color: #333;
}
.input-verify { gap: 8px; }
.btn-verify {
  border: none;
  background: none;
  color: #CF0A2C;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  padding: 4px 8px;
}
.btn-verify:disabled { color: #ccc; cursor: default; }
.btn-primary {
  width: 100%;
  height: 50px;
  border: none;
  background: linear-gradient(135deg, #CF0A2C, #e6163a);
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  border-radius: 25px;
  cursor: pointer;
  transition: all 0.2s;
  letter-spacing: 4px;
}
.btn-primary:active { transform: scale(0.97); opacity: 0.9; }
.btn-login { margin-top: 8px; }
.login-agreement {
  margin-top: 16px;
  font-size: 13px;
  color: #999;
  display: flex;
  align-items: center;
  gap: 6px;
}
.login-agreement input { width: 16px; height: 16px; accent-color: #CF0A2C; }
.link-text { color: #CF0A2C; }

/* Guidance Box (for elderly/child mode) */
.guidance-box {
  margin-top: 16px;
  padding: 12px 16px;
  background: #FFF8E1;
  border-radius: 10px;
  border-left: 3px solid #FF9800;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
}
.guidance-icon {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #FF9800;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.guidance-text { color: #795548; line-height: 1.5; }

/* ===== Home ===== */
.home-header {
  padding: 12px 16px 16px;
  background: linear-gradient(180deg, #CF0A2C 0%, #b00824 100%);
  color: #fff;
}
.home-greeting { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
#homeGreeting { font-size: 18px; font-weight: 600; }
.home-mode-badge {
  font-size: 12px;
  padding: 4px 10px;
  background: rgba(255,255,255,0.2);
  border-radius: 20px;
}
.home-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.15);
  border-radius: 22px;
  padding: 10px 16px;
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  cursor: pointer;
}
.home-banner {
  margin: 16px;
  background: linear-gradient(135deg, #1a1a2e, #16213e);
  border-radius: 16px;
  padding: 24px 20px;
  color: #fff;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.banner-content { position: relative; z-index: 2; }
.banner-content h2 { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.banner-content p { font-size: 13px; opacity: 0.7; margin-bottom: 16px; line-height: 1.5; }
.banner-btn {
  padding: 8px 20px;
  background: #CF0A2C;
  border: none;
  border-radius: 20px;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  font-weight: 500;
}
.banner-deco {
  position: absolute;
  right: -20px;
  top: -20px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: rgba(207,10,44,0.15);
}
.home-section { padding: 0 16px 20px; }
.section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.section-title { font-size: 17px; font-weight: 700; color: #1a1a1a; margin-bottom: 12px; }
.section-more { font-size: 13px; color: #CF0A2C; cursor: pointer; }
.quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.quick-item { display: flex; flex-direction: column; align-items: center; gap: 6px; cursor: pointer; }
.quick-icon {
  width: 56px; height: 56px;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
}
.quick-item span { font-size: 13px; color: #333; }
.hot-products { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.hot-products::-webkit-scrollbar { height: 0; }
.hot-product-card {
  min-width: 150px;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.hot-product-img {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hot-product-info { padding: 10px 12px; }
.hot-product-name { font-size: 13px; font-weight: 500; color: #333; line-height: 1.3; margin-bottom: 4px; }
.hot-product-price { font-size: 16px; font-weight: 700; color: #CF0A2C; }
.bottom-nav-space { height: 70px; }

/* ===== Wizard (Needs) ===== */
.wizard-content { padding: 24px 20px; }
.wizard-question { font-size: 22px; font-weight: 700; color: #1a1a1a; margin-bottom: 8px; }
.wizard-hint { font-size: 14px; color: #999; margin-bottom: 24px; }
.person-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.person-card {
  background: #fff;
  border-radius: 16px;
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.2s;
  border: 2px solid transparent;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.person-card:active { transform: scale(0.96); }
.person-card.selected { border-color: #CF0A2C; }
.person-avatar {
  width: 72px; height: 72px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.person-card span { font-size: 16px; font-weight: 600; color: #333; }

.function-grid { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.function-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: #fff;
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s;
  border: 2px solid transparent;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
}
.function-item:active { transform: scale(0.98); }
.function-item.selected { border-color: #CF0A2C; background: #FFF5F6; }
.function-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.function-text { flex: 1; }
.function-text .fn-name { font-size: 16px; font-weight: 600; color: #1a1a1a; }
.function-text .fn-desc { font-size: 13px; color: #999; margin-top: 2px; }
.function-check {
  width: 24px; height: 24px;
  border-radius: 50%;
  border: 2px solid #ddd;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s;
}
.function-item.selected .function-check {
  border-color: #CF0A2C;
  background: #CF0A2C;
}
.function-item.selected .function-check::after {
  content: '✓';
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}
.btn-next { margin-top: 8px; }

.budget-options { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.budget-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: #fff;
  border-radius: 12px;
  cursor: pointer;
  border: 2px solid transparent;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
  transition: all 0.2s;
}
.budget-option:active { transform: scale(0.98); }
.budget-option.selected { border-color: #CF0A2C; background: #FFF5F6; }
.budget-option .bo-range { font-size: 16px; font-weight: 600; color: #333; }
.budget-option .bo-label { font-size: 13px; color: #999; }
.budget-slider-wrap {
  background: #fff;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 24px;
}
.budget-display { font-size: 18px; font-weight: 700; color: #CF0A2C; margin: 8px 0 12px; }
.budget-slider {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: #e0e0e0;
  appearance: none;
  outline: none;
}
.budget-slider::-webkit-slider-thumb {
  appearance: none;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #CF0A2C;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(207,10,44,0.3);
}

/* ===== Recommendations ===== */
.rec-summary {
  padding: 16px 20px 8px;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
}
.rec-summary .rs-title { font-size: 15px; color: #333; }
.rec-summary .rs-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rec-summary .rs-tag {
  font-size: 12px;
  padding: 3px 10px;
  background: #f5f5f7;
  border-radius: 20px;
  color: #666;
}
.sort-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
}
.sort-label { font-size: 13px; color: #999; }
.sort-item {
  font-size: 14px;
  color: #666;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
}
.sort-item.active { color: #CF0A2C; font-weight: 600; background: #FFF5F6; }
.product-list { padding: 12px 16px; }
.product-card {
  background: #fff;
  border-radius: 14px;
  margin-bottom: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.product-card-top { display: flex; gap: 12px; padding: 14px; }
.product-img {
  width: 100px; height: 100px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.product-info { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.product-name { font-size: 15px; font-weight: 600; color: #1a1a1a; line-height: 1.3; }
.product-desc { font-size: 13px; color: #999; margin-top: 4px; line-height: 1.4; }
.product-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.product-tag {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  background: #FFF3E0;
  color: #E65100;
}
.product-tag.match { background: #E8F5E9; color: #2E7D32; }
.product-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px 14px;
}
.product-price { font-size: 20px; font-weight: 700; color: #CF0A2C; }
.product-price small { font-size: 13px; font-weight: 400; }
.match-score {
  font-size: 12px;
  color: #4CAF50;
  font-weight: 600;
}
.product-actions { display: flex; gap: 8px; }
.btn-mini {
  padding: 7px 14px;
  border: none;
  border-radius: 18px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-mini:active { transform: scale(0.94); }
.btn-know { background: #f5f5f7; color: #333; }
.btn-fav { background: #FFF3E0; color: #FF9800; }
.btn-buy { background: #CF0A2C; color: #fff; }

/* ===== Product Detail ===== */
.detail-content { padding: 0; }
.detail-img {
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.detail-name { padding: 16px 20px 8px; font-size: 20px; font-weight: 700; color: #1a1a1a; }
.detail-price { padding: 0 20px 12px; font-size: 26px; font-weight: 700; color: #CF0A2C; }
.detail-price small { font-size: 14px; font-weight: 400; color: #999; text-decoration: line-through; margin-left: 8px; }
.detail-specs { padding: 0 20px 16px; }
.spec-item {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #f5f5f5;
  font-size: 14px;
}
.spec-item .si-label { color: #999; }
.spec-item .si-value { color: #333; font-weight: 500; }
.detail-tabs {
  display: flex;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  position: sticky;
  top: 50px;
  z-index: 10;
}
.detail-tabs .tab {
  flex: 1;
  text-align: center;
  padding: 14px 0;
  font-size: 15px;
  color: #666;
  cursor: pointer;
  position: relative;
  font-weight: 500;
}
.detail-tabs .tab.active { color: #CF0A2C; font-weight: 600; }
.detail-tabs .tab.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 3px;
  background: #CF0A2C;
  border-radius: 2px;
}
.detail-tab-content { padding: 16px 20px; min-height: 200px; }

/* Learn More - Reading tab */
.learn-reading { text-align: center; }
.reading-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: #CF0A2C;
  color: #fff;
  border: none;
  border-radius: 30px;
  font-size: 16px;
  cursor: pointer;
  font-weight: 600;
  margin: 20px 0;
}
.reading-btn:active { transform: scale(0.96); }
.reading-text {
  font-size: 15px;
  color: #333;
  line-height: 1.8;
  text-align: left;
  background: #f9f9f9;
  border-radius: 12px;
  padding: 16px;
}
.reading-text p { margin-bottom: 10px; }

/* Learn More - Article tab */
.learn-article .article-title { font-size: 18px; font-weight: 700; color: #1a1a1a; margin-bottom: 12px; }
.learn-article .article-meta { font-size: 12px; color: #999; margin-bottom: 16px; }
.learn-article .article-body { font-size: 15px; color: #444; line-height: 1.8; }
.learn-article .article-body p { margin-bottom: 12px; }
.learn-article .article-body h4 { font-size: 16px; font-weight: 600; color: #1a1a1a; margin: 16px 0 8px; }

/* Learn More - Video tab */
.learn-video { text-align: center; }
.video-player {
  width: 100%;
  height: 200px;
  border-radius: 12px;
  background: #1a1a1a;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.video-play-btn {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: rgba(207,10,44,0.9);
  display: flex;
  align-items: center;
  justify-content: center;
}
.video-play-btn::after {
  content: '';
  width: 0; height: 0;
  border-left: 16px solid #fff;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  margin-left: 4px;
}
.video-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin-top: 16px; text-align: left; }
.video-list { margin-top: 16px; }
.video-list-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f5f5f5;
  cursor: pointer;
}
.vli-thumb {
  width: 80px; height: 50px;
  border-radius: 8px;
  background: #333;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  position: relative;
}
.vli-thumb::after {
  content: '▶';
  color: #fff;
  font-size: 14px;
}
.vli-info { flex: 1; }
.vli-title { font-size: 14px; color: #333; font-weight: 500; }
.vli-duration { font-size: 12px; color: #999; margin-top: 2px; }

/* Detail Bottom Bar */
.detail-bottom-bar {
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  z-index: 20;
}
.dbb-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 6px 12px;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 11px;
  color: #666;
}
.dbb-btn svg { width: 22px; height: 22px; }
.dbb-buy {
  flex: 1;
  height: 44px;
  border: none;
  border-radius: 22px;
  background: linear-gradient(135deg, #FF9800, #FF6F00);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}

/* ===== Purchase ===== */
.purchase-content { padding: 12px 16px 80px; }
.purchase-product {
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}
.pp-img { width: 80px; height: 80px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pp-info { flex: 1; }
.pp-name { font-size: 15px; font-weight: 600; color: #1a1a1a; line-height: 1.3; }
.pp-price { font-size: 18px; font-weight: 700; color: #CF0A2C; margin-top: 8px; }
.purchase-section { background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.purchase-section-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin-bottom: 12px; }
.delivery-options { display: flex; flex-direction: column; gap: 10px; }
.delivery-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 2px solid #f0f0f0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s;
}
.delivery-option.active { border-color: #CF0A2C; background: #FFF5F6; }
.delivery-radio {
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 2px solid #ccc;
  flex-shrink: 0;
  position: relative;
  transition: all 0.2s;
}
.delivery-option.active .delivery-radio { border-color: #CF0A2C; }
.delivery-option.active .delivery-radio::after {
  content: '';
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #CF0A2C;
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.delivery-info { flex: 1; display: flex; flex-direction: column; }
.delivery-name { font-size: 15px; font-weight: 600; color: #333; }
.delivery-desc { font-size: 13px; color: #999; margin-top: 2px; }
.address-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px;
  background: #f9f9f9;
  border-radius: 10px;
  cursor: pointer;
}
.address-info { flex: 1; display: flex; flex-direction: column; }
.address-name { font-size: 15px; font-weight: 600; color: #333; }
.address-detail { font-size: 13px; color: #666; margin-top: 4px; }
.address-edit { font-size: 13px; color: #CF0A2C; }
.store-card {
  background: #f9f9f9;
  border-radius: 10px;
  padding: 14px;
}
.store-info { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.store-name { font-size: 15px; font-weight: 600; color: #333; }
.store-distance { font-size: 13px; color: #CF0A2C; }
.store-addr { font-size: 13px; color: #666; }
.store-status { font-size: 12px; color: #4CAF50; }
.store-actions { display: flex; gap: 10px; }
.btn-store-call, .btn-store-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 0;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}
.btn-store-call { background: #CF0A2C; color: #fff; }
.btn-store-nav { background: #f0f0f0; color: #333; }
.order-info-row { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; color: #666; }
.order-info-row.total { border-top: 1px solid #f0f0f0; margin-top: 6px; padding-top: 12px; font-size: 16px; font-weight: 600; color: #333; }
.text-green { color: #4CAF50; }
.price-red { color: #CF0A2C; font-weight: 700; }
.purchase-bottom-bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  z-index: 30;
}
.purchase-total { display: flex; flex-direction: column; }
.purchase-total span:first-child { font-size: 12px; color: #999; }
.btn-submit-order {
  width: 160px;
  height: 44px;
  border-radius: 22px;
  letter-spacing: 2px;
}

/* ===== Order Success ===== */
#screen-order-success { background: #fff; }
.success-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 60px 24px 0;
  text-align: center;
}
.success-icon {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: #E8F5E9;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
#screen-order-success h2 { font-size: 22px; font-weight: 700; color: #1a1a1a; }
.success-desc { font-size: 14px; color: #999; margin-top: 8px; }
.success-order-info {
  width: 100%;
  background: #f9f9f9;
  border-radius: 12px;
  padding: 16px;
  margin-top: 24px;
  text-align: left;
}
.soi-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 14px; }
.soi-row .si-label { color: #999; }
.soi-row .si-value { color: #333; font-weight: 500; }
.success-actions { display: flex; gap: 12px; margin-top: 32px; width: 100%; }
.btn-outline {
  flex: 1;
  height: 44px;
  border: 1.5px solid #CF0A2C;
  background: #fff;
  color: #CF0A2C;
  border-radius: 22px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

/* ===== Orders ===== */
.orders-tabs { display: flex; background: #fff; border-bottom: 1px solid #f0f0f0; }
.order-tab {
  flex: 1;
  text-align: center;
  padding: 14px 0;
  font-size: 15px;
  color: #666;
  cursor: pointer;
  position: relative;
}
.order-tab.active { color: #CF0A2C; font-weight: 600; }
.order-tab.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 3px;
  background: #CF0A2C;
  border-radius: 2px;
}
.orders-list { padding: 12px 16px; }
.order-card {
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
}
.order-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.order-num { font-size: 13px; color: #999; }
.order-status { font-size: 13px; font-weight: 600; }
.order-status.pending { color: #FF9800; }
.order-status.done { color: #4CAF50; }
.order-product { display: flex; gap: 10px; align-items: center; }
.op-img { width: 64px; height: 64px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.op-info { flex: 1; }
.op-name { font-size: 14px; font-weight: 500; color: #333; }
.op-price { font-size: 16px; font-weight: 700; color: #CF0A2C; margin-top: 4px; }
.order-card-bottom { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #f5f5f5; }

/* ===== Rating ===== */
.rating-content { padding: 20px; }
.rating-product {
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 24px;
}
.rating-content h3 { font-size: 17px; font-weight: 600; color: #1a1a1a; margin-bottom: 16px; text-align: center; }
.star-rating { display: flex; justify-content: center; gap: 12px; margin-bottom: 8px; }
.star {
  font-size: 36px;
  color: #ddd;
  cursor: pointer;
  transition: all 0.15s;
}
.star.active { color: #FFB300; transform: scale(1.1); }
.rating-text { text-align: center; font-size: 14px; color: #666; margin-bottom: 20px; }
.rating-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.rating-tag {
  padding: 8px 16px;
  background: #f5f5f7;
  border-radius: 20px;
  font-size: 14px;
  color: #666;
  cursor: pointer;
  border: 1.5px solid transparent;
}
.rating-tag.active { background: #FFF5F6; color: #CF0A2C; border-color: #CF0A2C; }
.rating-input {
  width: 100%;
  min-height: 80px;
  padding: 12px 16px;
  border: 1.5px solid #e0e0e0;
  border-radius: 12px;
  font-size: 14px;
  resize: none;
  outline: none;
  font-family: inherit;
  margin-bottom: 20px;
}
.rating-input:focus { border-color: #CF0A2C; }
.btn-submit-rating { letter-spacing: 2px; }

/* ===== Customer Service ===== */
.service-content { padding: 20px 16px; }
.service-intro { text-align: center; margin-bottom: 24px; }
.service-intro h3 { font-size: 20px; font-weight: 700; color: #1a1a1a; margin-bottom: 8px; }
.service-intro p { font-size: 14px; color: #666; line-height: 1.5; }
.service-options { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.service-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  background: #fff;
  border-radius: 14px;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  transition: all 0.2s;
}
.service-card:active { transform: scale(0.98); }
.service-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  background: #FFF5F6;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.service-info { flex: 1; }
.service-title { font-size: 16px; font-weight: 600; color: #1a1a1a; }
.service-desc { font-size: 13px; color: #999; margin-top: 2px; }
.service-flow {
  background: #fff;
  border-radius: 14px;
  padding: 20px 16px;
}
.service-flow h4 { font-size: 16px; font-weight: 600; color: #1a1a1a; margin-bottom: 16px; text-align: center; }
.flow-step { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.flow-num {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: #CF0A2C;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.flow-step span:last-child { font-size: 14px; color: #333; }
.flow-arrow { text-align: center; color: #ccc; font-size: 18px; }

/* ===== Chat ===== */
.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.chat-messages::-webkit-scrollbar { width: 0; }
.chat-msg { display: flex; gap: 8px; max-width: 80%; }
.chat-msg.user { align-self: flex-end; flex-direction: row-reverse; }
.chat-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.chat-msg.bot .chat-avatar { background: #CF0A2C; color: #fff; }
.chat-msg.user .chat-avatar { background: #2196F3; color: #fff; }
.chat-bubble {
  padding: 10px 14px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.5;
}
.chat-msg.bot .chat-bubble { background: #fff; color: #333; border-top-left-radius: 4px; }
.chat-msg.user .chat-bubble { background: #CF0A2C; color: #fff; border-top-right-radius: 4px; }
.chat-quick-msgs {
  display: flex;
  gap: 8px;
  padding: 8px 16px;
  overflow-x: auto;
  background: #fff;
  border-top: 1px solid #f0f0f0;
}
.chat-quick-msgs::-webkit-scrollbar { height: 0; }
.chat-quick {
  white-space: nowrap;
  padding: 6px 14px;
  background: #f5f5f7;
  border-radius: 20px;
  font-size: 13px;
  color: #666;
  cursor: pointer;
}
.chat-input-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
}
.chat-input-bar input {
  flex: 1;
  height: 40px;
  border: 1.5px solid #e0e0e0;
  border-radius: 20px;
  padding: 0 16px;
  font-size: 14px;
  outline: none;
}
.chat-input-bar input:focus { border-color: #CF0A2C; }
.btn-chat-send {
  padding: 8px 18px;
  background: #CF0A2C;
  color: #fff;
  border: none;
  border-radius: 20px;
  font-size: 14px;
  cursor: pointer;
  font-weight: 500;
}

/* ===== Favorites ===== */
.favorites-list { padding: 12px 16px; }
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  gap: 16px;
}
.empty-state p { font-size: 15px; color: #999; }

/* ===== Categories ===== */
.category-tabs {
  display: flex;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  overflow-x: auto;
}
.category-tabs::-webkit-scrollbar { height: 0; }
.cat-tab {
  white-space: nowrap;
  padding: 12px 16px;
  font-size: 14px;
  color: #666;
  cursor: pointer;
  border-bottom: 2px solid transparent;
}
.cat-tab.active { color: #CF0A2C; font-weight: 600; border-color: #CF0A2C; }
.category-products { padding: 12px 16px; }

/* ===== Profile ===== */
.profile-header {
  background: linear-gradient(135deg, #CF0A2C, #a00721);
  padding: 24px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.profile-avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.profile-info { color: #fff; }
.profile-name { font-size: 20px; font-weight: 700; display: block; }
.profile-phone { font-size: 14px; opacity: 0.8; }
.profile-menu { background: #fff; margin: 12px; border-radius: 14px; overflow: hidden; }
.menu-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  cursor: pointer;
  border-bottom: 1px solid #f5f5f5;
  color: #333;
}
.menu-item:last-child { border-bottom: none; }
.menu-item:active { background: #f9f9f9; }
.menu-item span:nth-child(2) { flex: 1; font-size: 15px; }
.menu-arrow { color: #ccc; font-size: 20px; }

/* ===== Bottom Nav ===== */
.bottom-nav {
  display: none;
  height: 60px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  flex-shrink: 0;
}
.bottom-nav.show { display: flex; }
.nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #999;
  cursor: pointer;
  font-size: 11px;
  transition: color 0.2s;
  position: relative;
}
.nav-item.active { color: #CF0A2C; }
.nav-item svg { width: 24px; height: 24px; }
.nav-badge {
  position: absolute;
  top: 2px;
  left: calc(50% + 8px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: #CF0A2C;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  line-height: 16px;
  text-align: center;
  box-sizing: border-box;
  display: none;
  z-index: 2;
}
.nav-badge.show { display: block; }

/* ===== Toast ===== */
.toast {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  background: rgba(0,0,0,0.75);
  color: #fff;
  padding: 12px 24px;
  border-radius: 12px;
  font-size: 14px;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: all 0.25s;
  white-space: nowrap;
}
.toast.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* ===== Mode: Elderly ===== */
.phone-screen.elderly { font-size: 18px; }
.phone-screen.elderly .header-title { font-size: 20px; }
.phone-screen.elderly .wizard-question { font-size: 24px; }
.phone-screen.elderly .wizard-hint { font-size: 16px; }
.phone-screen.elderly .product-name { font-size: 17px; }
.phone-screen.elderly .product-desc { font-size: 15px; }
.phone-screen.elderly .btn-primary { font-size: 19px; height: 54px; }
.phone-screen.elderly .btn-mini { font-size: 15px; padding: 9px 16px; }
.phone-screen.elderly .nav-item span { font-size: 12px; }
.phone-screen.elderly .nav-item svg { width: 24px; height: 24px; }
.phone-screen.elderly .mode-card h3 { font-size: 22px; }
.phone-screen.elderly .mode-card p { font-size: 16px; }
.phone-screen.elderly .form-label { font-size: 16px; }
.phone-screen.elderly .input-wrap { height: 56px; }
.phone-screen.elderly .input-wrap input { font-size: 18px; }
.phone-screen.elderly .quick-item span { font-size: 15px; }
.phone-screen.elderly .section-title { font-size: 19px; }
.phone-screen.elderly .home-search { padding: 12px 16px; font-size: 16px; }
.phone-screen.elderly .banner-content h2 { font-size: 24px; }
.phone-screen.elderly .banner-content p { font-size: 15px; }
.phone-screen.elderly .guidance-box { font-size: 16px; padding: 14px 16px; }
.phone-screen.elderly .guidance-text { font-size: 16px; }
.phone-screen.elderly .menu-item span:nth-child(2) { font-size: 17px; }
.phone-screen.elderly .person-card span { font-size: 18px; }
.phone-screen.elderly .function-text .fn-name { font-size: 18px; }
.phone-screen.elderly .function-text .fn-desc { font-size: 15px; }
.phone-screen.elderly .budget-option .bo-range { font-size: 18px; }
.phone-screen.elderly .budget-display { font-size: 20px; }
.phone-screen.elderly .detail-name { font-size: 22px; }
.phone-screen.elderly .detail-price { font-size: 28px; }
.phone-screen.elderly .spec-item { font-size: 16px; }
.phone-screen.elderly .reading-text { font-size: 17px; line-height: 1.9; }
.phone-screen.elderly .article-body { font-size: 17px; }
.phone-screen.elderly .delivery-name { font-size: 17px; }
.phone-screen.elderly .delivery-desc { font-size: 15px; }
.phone-screen.elderly .store-name { font-size: 17px; }
.phone-screen.elderly .chat-bubble { font-size: 16px; }

/* ===== Mode: Child ===== */
.phone-screen.child { font-size: 15px; }
.phone-screen.child .quick-icon { border-radius: 20px; }
.phone-screen.child .person-card { border-radius: 20px; }
.phone-screen.child .function-item { border-radius: 16px; }
.phone-screen.child .btn-primary { border-radius: 30px; }
.phone-screen.child .product-card { border-radius: 18px; }
.phone-screen.child .mode-card { border-radius: 20px; }
.phone-screen.child .reading-btn {
  font-size: 18px;
  padding: 14px 32px;
  background: linear-gradient(135deg, #4CAF50, #2E7D32);
}
.phone-screen.child .detail-tabs .tab { font-size: 16px; }
.phone-screen.child .nav-item span { font-size: 11px; color: #666; }
.phone-screen.child .nav-item svg { width: 24px; height: 24px; }
.phone-screen.child .guidance-box {
  background: #E8F5E9;
  border-left-color: #4CAF50;
}
.phone-screen.child .guidance-icon { background: #4CAF50; }
.phone-screen.child .guidance-text { color: #2E7D32; }
.phone-screen.child .banner-btn {
  background: #4CAF50;
}
.phone-screen.child .home-mode-badge { background: #4CAF50; }
.phone-screen.child .sort-item.active { color: #4CAF50; background: #E8F5E9; }
.phone-screen.child .btn-buy { background: #4CAF50; }
.phone-screen.child .flow-num { background: #4CAF50; }

/* ===== Community ===== */
.community-tabs {
  display: flex;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  position: sticky;
  top: 50px;
  z-index: 10;
}
.com-tab {
  flex: 1;
  text-align: center;
  padding: 13px 0;
  font-size: 14px;
  color: #666;
  cursor: pointer;
  position: relative;
  white-space: nowrap;
}
.com-tab.active { color: #CF0A2C; font-weight: 600; }
.com-tab.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 3px;
  background: #CF0A2C;
  border-radius: 2px;
}
.community-list { padding: 10px 16px 20px; }
.community-post-card {
  background: #fff;
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 1px 8px rgba(0,0,0,0.05);
}
.cpc-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.cpc-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.cpc-user-info { flex: 1; }
.cpc-username { font-size: 14px; font-weight: 600; color: #1a1a1a; }
.cpc-meta { font-size: 12px; color: #999; margin-top: 2px; display: flex; gap: 6px; align-items: center; }
.cpc-type-badge {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}
.cpc-type-badge.discussion { background: #E3F2FD; color: #1565C0; }
.cpc-type-badge.review { background: #FFF3E0; color: #E65100; }
.cpc-type-badge.recommend { background: #E8F5E9; color: #2E7D32; }
.cpc-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin-bottom: 6px; line-height: 1.4; }
.cpc-content { font-size: 14px; color: #444; line-height: 1.6; margin-bottom: 10px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cpc-product-link {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f9f9f9;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 10px;
  cursor: pointer;
}
.cpc-product-img { width: 48px; height: 48px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cpc-product-img svg { width: 60%; height: 60%; }
.cpc-product-info { flex: 1; }
.cpc-product-name { font-size: 13px; font-weight: 500; color: #333; }
.cpc-product-price { font-size: 15px; font-weight: 700; color: #CF0A2C; margin-top: 2px; }
.cpc-rating-row { display: flex; align-items: center; gap: 4px; margin-bottom: 8px; }
.cpc-stars { color: #FFB300; font-size: 14px; letter-spacing: 1px; }
.cpc-stars .empty { color: #ddd; }
.cpc-rating-text { font-size: 12px; color: #999; margin-left: 6px; }
.cpc-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; border-top: 1px solid #f5f5f5; }
.cpc-actions { display: flex; gap: 16px; }
.cpc-action { display: flex; align-items: center; gap: 4px; font-size: 13px; color: #999; cursor: pointer; }
.cpc-action:active { color: #CF0A2C; }
.cpc-action.liked { color: #CF0A2C; }
.cpc-action svg { width: 18px; height: 18px; }
.cpc-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.cpc-tag {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  background: #f5f5f7;
  color: #666;
}

/* Community FAB */
.community-fab {
  position: absolute;
  right: 16px;
  bottom: 80px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #CF0A2C, #e6163a);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(207,10,44,0.4);
  cursor: pointer;
  z-index: 30;
  transition: transform 0.2s;
}
.community-fab:active { transform: scale(0.9); }

/* Home Community Preview */
.home-community-preview { display: flex; flex-direction: column; gap: 10px; }
.hcp-card {
  background: #fff;
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
  cursor: pointer;
}
.hcp-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.hcp-content { flex: 1; overflow: hidden; }
.hcp-name { font-size: 13px; font-weight: 600; color: #333; }
.hcp-text { font-size: 13px; color: #666; margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Post Detail */
.post-detail-content { padding: 0; }
.pdc-header { padding: 16px 20px 12px; display: flex; align-items: center; gap: 12px; background: #fff; }
.pdc-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.pdc-user-info { flex: 1; }
.pdc-username { font-size: 15px; font-weight: 600; color: #1a1a1a; }
.pdc-meta { font-size: 12px; color: #999; margin-top: 2px; display: flex; gap: 6px; align-items: center; }
.pdc-body { padding: 0 20px 16px; background: #fff; }
.pdc-title { font-size: 18px; font-weight: 700; color: #1a1a1a; margin-bottom: 10px; line-height: 1.4; }
.pdc-text { font-size: 15px; color: #333; line-height: 1.8; }
.pdc-product-link {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #f9f9f9;
  border-radius: 12px;
  padding: 12px;
  margin-top: 16px;
  cursor: pointer;
}
.pdc-product-img { width: 56px; height: 56px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pdc-product-img svg { width: 60%; height: 60%; }
.pdc-product-info { flex: 1; }
.pdc-product-name { font-size: 14px; font-weight: 500; color: #333; }
.pdc-product-price { font-size: 16px; font-weight: 700; color: #CF0A2C; margin-top: 2px; }
.pdc-rating-row { display: flex; align-items: center; gap: 6px; margin-top: 12px; }
.pdc-stars { color: #FFB300; font-size: 18px; letter-spacing: 2px; }
.pdc-stars .empty { color: #ddd; }
.pdc-footer {
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding: 12px 20px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
}
.pdc-action { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #666; cursor: pointer; padding: 6px 12px; border-radius: 8px; }
.pdc-action:active { background: #f5f5f5; }
.pdc-action.liked { color: #CF0A2C; }
.pdc-action svg { width: 20px; height: 20px; }

/* Comments */
.post-comments-section { padding: 16px 20px 80px; }
.comments-title { font-size: 15px; font-weight: 600; color: #1a1a1a; margin-bottom: 12px; }
.comments-list { display: flex; flex-direction: column; gap: 12px; }
.comment-item { display: flex; gap: 10px; }
.comment-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.comment-body { flex: 1; }
.comment-header { display: flex; align-items: center; gap: 6px; }
.comment-name { font-size: 13px; font-weight: 600; color: #333; }
.comment-time { font-size: 11px; color: #aaa; }
.comment-text { font-size: 14px; color: #444; margin-top: 4px; line-height: 1.5; }

/* Comment Input Bar */
.comment-input-bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  z-index: 30;
}
.comment-input-bar input {
  flex: 1;
  height: 38px;
  border: 1.5px solid #e0e0e0;
  border-radius: 19px;
  padding: 0 16px;
  font-size: 14px;
  outline: none;
}
.comment-input-bar input:focus { border-color: #CF0A2C; }
.btn-comment-send {
  padding: 8px 16px;
  background: #CF0A2C;
  color: #fff;
  border: none;
  border-radius: 19px;
  font-size: 14px;
  cursor: pointer;
  font-weight: 500;
}

/* Create Post */
.create-post-content { padding: 16px 20px 120px; }
.post-type-selector { margin-bottom: 20px; }
.post-type-options { display: flex; gap: 10px; margin-top: 8px; }
.post-type-option {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 8px;
  background: #fff;
  border-radius: 12px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 13px;
  color: #666;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
}
.post-type-option:active { transform: scale(0.96); }
.post-type-option.active { border-color: #CF0A2C; background: #FFF5F6; color: #CF0A2C; }
.post-title-input { margin-bottom: 16px; }
.post-title-input input {
  width: 100%;
  height: 48px;
  border: 1.5px solid #e0e0e0;
  border-radius: 12px;
  padding: 0 16px;
  font-size: 15px;
  outline: none;
  background: #fff;
}
.post-title-input input:focus { border-color: #CF0A2C; }
.post-content-input { margin-bottom: 16px; }
.post-content-input textarea {
  width: 100%;
  border: 1.5px solid #e0e0e0;
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 15px;
  outline: none;
  font-family: inherit;
  resize: none;
  background: #fff;
}
.post-content-input textarea:focus { border-color: #CF0A2C; }
.char-count { text-align: right; font-size: 12px; color: #999; margin-top: 4px; }
.post-product-link { margin-bottom: 16px; }
.post-product-select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 12px;
  cursor: pointer;
  font-size: 14px;
  color: #999;
}
.post-product-select:active { border-color: #CF0A2C; }
.post-product-select.selected { color: #333; border-color: #CF0A2C; background: #FFF5F6; }
.post-rating-section { margin-bottom: 20px; }
.btn-submit-post { margin-top: 8px; letter-spacing: 4px; }

/* Product Picker */
.picker-list { padding: 10px 16px; }
.picker-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: #fff;
  border-radius: 12px;
  margin-bottom: 8px;
  cursor: pointer;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
}
.picker-item:active { background: #f9f9f9; }
.picker-img { width: 48px; height: 48px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.picker-img svg { width: 60%; height: 60%; }
.picker-info { flex: 1; }
.picker-name { font-size: 14px; font-weight: 500; color: #333; }
.picker-price { font-size: 15px; font-weight: 700; color: #CF0A2C; margin-top: 2px; }

/* Community Empty State */
.community-empty {
  text-align: center;
  padding: 60px 24px;
  color: #999;
}
.community-empty svg { margin-bottom: 12px; }

/* Bottom Nav - 6 items */
.bottom-nav .nav-item svg { width: 22px; height: 22px; }
.bottom-nav .nav-item span { font-size: 10px; }

/* ===== Mode: Elderly - Community ===== */
.phone-screen.elderly .com-tab { font-size: 16px; }
.phone-screen.elderly .cpc-username { font-size: 16px; }
.phone-screen.elderly .cpc-content { font-size: 16px; -webkit-line-clamp: 4; }
.phone-screen.elderly .cpc-title { font-size: 18px; }
.phone-screen.elderly .cpc-action { font-size: 15px; }
.phone-screen.elderly .cpc-action svg { width: 20px; height: 20px; }
.phone-screen.elderly .community-fab { width: 60px; height: 60px; }
.phone-screen.elderly .community-fab svg { width: 32px; height: 32px; }
.phone-screen.elderly .post-type-option { font-size: 15px; }
.phone-screen.elderly .pdc-text { font-size: 17px; line-height: 1.9; }
.phone-screen.elderly .comment-text { font-size: 16px; }

/* ===== Mode: Child - Community ===== */
.phone-screen.child .community-post-card { border-radius: 18px; }
.phone-screen.child .cpc-avatar { border-radius: 30%; }
.phone-screen.child .community-fab { background: linear-gradient(135deg, #4CAF50, #2E7D32); box-shadow: 0 4px 16px rgba(76,175,80,0.4); }
.phone-screen.child .com-tab.active { color: #4CAF50; }
.phone-screen.child .com-tab.active::after { background: #4CAF50; }
.phone-screen.child .cpc-type-badge.discussion { background: #E8F5E9; color: #2E7D32; }
.phone-screen.child .cpc-type-badge.review { background: #FFF3E0; color: #E65100; }
.phone-screen.child .cpc-type-badge.recommend { background: #E8F5E9; color: #2E7D32; }
.phone-screen.child .post-type-option.active { border-color: #4CAF50; background: #E8F5E9; color: #2E7D32; }
.phone-screen.child .btn-comment-send { background: #4CAF50; }
.phone-screen.child .pdc-action.liked { color: #4CAF50; }
.phone-screen.child .cpc-action.liked { color: #4CAF50; }

/* ===== Product Image Gradients ===== */
.img-phone-red { background: linear-gradient(135deg, #FF6B6B, #CF0A2C); }
.img-phone-blue { background: linear-gradient(135deg, #64B5F6, #1976D2); }
.img-phone-green { background: linear-gradient(135deg, #81C784, #2E7D32); }
.img-phone-black { background: linear-gradient(135deg, #555, #1a1a1a); }
.img-phone-purple { background: linear-gradient(135deg, #BA68C8, #7B1FA2); }
.img-tablet { background: linear-gradient(135deg, #90A4AE, #455A64); }
.img-watch { background: linear-gradient(135deg, #FFB74D, #E65100); }
.img-earbuds { background: linear-gradient(135deg, #FFF176, #F9A825); }
.img-laptop { background: linear-gradient(135deg, #B0BEC5, #546E7A); }
.img-router { background: linear-gradient(135deg, #CE93D8, #6A1B9A); }
.img-speaker { background: linear-gradient(135deg, #80CBC4, #00695C); }
.img-screen { background: linear-gradient(135deg, #9FA8DA, #283593); }

/* SVG in product images */
.product-img svg, .pp-img svg, .op-img svg, .detail-img svg, .hot-product-img svg {
  width: 60%; height: 60%;
}

/* ===== Search Screen ===== */
.search-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  position: sticky;
  top: 0;
  z-index: 10;
}
.search-input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f5f5f5;
  border-radius: 20px;
  padding: 0 14px;
  height: 38px;
  border: 1.5px solid transparent;
  transition: border-color 0.2s, background 0.2s;
}
.search-input-wrap:focus-within {
  background: #fff;
  border-color: #CF0A2C;
}
.search-input-wrap input {
  flex: 1;
  border: none;
  outline: none;
  background: none;
  font-size: 15px;
  color: #333;
  height: 100%;
  min-width: 0;
}
.search-input-wrap input::placeholder { color: #bbb; }
.search-clear-btn {
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  display: none;
  flex-shrink: 0;
}
.search-clear-btn.visible { display: flex; }
.search-action-btn {
  border: none;
  background: #CF0A2C;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  padding: 9px 18px;
  border-radius: 20px;
  cursor: pointer;
  flex-shrink: 0;
}
.search-action-btn:active { opacity: 0.85; }

/* Guidance */
.search-guidance {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 16px 0;
  padding: 12px 16px;
  background: #FFF8E1;
  border-radius: 12px;
  font-size: 14px;
  color: #795548;
}

/* Default view: hot + history */
.search-default { padding: 16px; }
.search-section { margin-bottom: 24px; }
.search-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.search-section-header h4 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0;
}
.search-history-clear {
  display: flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: none;
  color: #999;
  font-size: 12px;
  cursor: pointer;
  padding: 4px 6px;
}
.search-history-clear:active { color: #CF0A2C; }
.search-hot-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.search-hot-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 7px 14px;
  background: #f5f5f5;
  border-radius: 16px;
  font-size: 13px;
  color: #444;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.search-hot-tag:active { background: #FCE4E8; color: #CF0A2C; }
.search-hot-tag .hot-rank {
  font-size: 11px;
  font-weight: 700;
  color: #CF0A2C;
}
.search-hot-tag .hot-rank.r2 { color: #FF6D00; }
.search-hot-tag .hot-rank.r3 { color: #FF9800; }
.search-hot-tag .hot-rank.rn { color: #bbb; }
.search-history-list { display: flex; flex-direction: column; }
.search-history-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 4px;
  border-bottom: 1px solid #f5f5f5;
  cursor: pointer;
  font-size: 14px;
  color: #444;
}
.search-history-item:active { color: #CF0A2C; }
.search-history-item svg { flex-shrink: 0; }
.search-history-item .shi-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.search-history-item .shi-delete {
  border: none;
  background: none;
  padding: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.search-history-empty { font-size: 13px; color: #bbb; padding: 8px 4px; }

/* Suggestions */
.search-suggestions { padding: 6px 16px; }
.search-suggest-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 8px;
  border-bottom: 1px solid #f5f5f5;
  cursor: pointer;
}
.search-suggest-item:active { background: #fafafa; }
.search-suggest-item svg { flex-shrink: 0; color: #999; }
.search-suggest-name {
  font-size: 15px;
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.search-suggest-name b { color: #CF0A2C; font-weight: 600; }
.search-suggest-desc {
  margin-left: auto;
  font-size: 12px;
  color: #bbb;
  flex-shrink: 0;
}
.search-suggest-none {
  text-align: center;
  padding: 36px 20px;
  color: #999;
  font-size: 14px;
}

/* Results */
.search-results-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 6px;
}
.search-results-count { font-size: 13px; color: #666; }
.search-results-count b { color: #CF0A2C; }
.search-sort-group { display: flex; gap: 4px; }
.search-sort-item {
  font-size: 12px;
  color: #666;
  padding: 5px 10px;
  border-radius: 12px;
  cursor: pointer;
}
.search-sort-item.active { background: #FCE4E8; color: #CF0A2C; font-weight: 600; }
.search-category-tabs {
  display: flex;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  overflow-x: auto;
}
.search-cat-tab {
  white-space: nowrap;
  padding: 10px 14px;
  font-size: 13px;
  color: #666;
  cursor: pointer;
  position: relative;
}
.search-cat-tab.active { color: #CF0A2C; font-weight: 600; }
.search-cat-tab.active::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 20px;
  height: 3px;
  border-radius: 2px;
  background: #CF0A2C;
}
.search-products { padding: 12px 16px 20px; }
.search-empty {
  text-align: center;
  padding: 60px 24px;
  color: #999;
}
.search-empty svg { margin-bottom: 12px; }
.search-empty p { font-size: 14px; margin: 0 0 6px; }
.search-empty .se-hint { font-size: 12px; color: #bbb; }
.search-keyword-highlight { color: #CF0A2C; font-weight: 600; }

/* ===== Mode: Elderly - Search ===== */
.phone-screen.elderly .search-input-wrap { height: 48px; }
.phone-screen.elderly .search-input-wrap input { font-size: 18px; }
.phone-screen.elderly .search-action-btn { font-size: 17px; padding: 11px 20px; }
.phone-screen.elderly .search-guidance { font-size: 16px; padding: 14px 16px; }
.phone-screen.elderly .search-section-header h4 { font-size: 18px; }
.phone-screen.elderly .search-hot-tag { font-size: 16px; padding: 9px 16px; }
.phone-screen.elderly .search-history-item { font-size: 17px; }
.phone-screen.elderly .search-suggest-name { font-size: 17px; }
.phone-screen.elderly .search-cat-tab { font-size: 15px; }
.phone-screen.elderly .search-sort-item { font-size: 14px; }
.phone-screen.elderly .search-results-count { font-size: 15px; }

/* ===== Mode: Child - Search ===== */
.phone-screen.child .search-input-wrap { border-radius: 24px; background: #E8F5E9; }
.phone-screen.child .search-input-wrap:focus-within { background: #fff; border-color: #4CAF50; }
.phone-screen.child .search-action-btn { background: linear-gradient(135deg, #4CAF50, #2E7D32); }
.phone-screen.child .search-hot-tag:active { background: #E8F5E9; color: #2E7D32; }
.phone-screen.child .search-cat-tab.active { color: #2E7D32; }
.phone-screen.child .search-cat-tab.active::after { background: #4CAF50; }
.phone-screen.child .search-sort-item.active { background: #E8F5E9; color: #2E7D32; }
.phone-screen.child .search-results-count b { color: #2E7D32; }
.phone-screen.child .search-suggest-name b { color: #2E7D32; }
.phone-screen.child .search-keyword-highlight { color: #2E7D32; }

/* ===== Unified UI polish layer ===== */
body {
  background: linear-gradient(135deg, #181A20 0%, #2A1118 52%, #3B0B18 100%);
  color: var(--text);
}

.phone-frame {
  box-shadow: 0 0 0 2px rgba(255,255,255,0.08), 0 28px 70px rgba(0,0,0,0.42);
}

.phone-screen {
  background: var(--app-bg);
}

.status-bar {
  color: var(--text);
  background: rgba(246,247,249,0.94);
}

.status-icons { color: var(--text); }
.status-battery { border-color: var(--text); }
.battery-level,
.battery-cap { background: var(--text); }

.screen-header,
.search-header {
  height: 52px;
  padding: 0 var(--space-page);
  background: rgba(255,255,255,0.96);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 rgba(255,255,255,0.7);
}

.header-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}

.btn-back,
.icon-btn,
.search-clear-btn,
.search-history-clear {
  color: var(--text-secondary);
  border-radius: var(--radius-sm);
}

.btn-back:active,
.icon-btn:active,
.search-clear-btn:active,
.search-history-clear:active {
  background: var(--surface-soft);
}

.btn-back::before {
  border-color: var(--text);
}

.screen:not(#screen-splash) {
  background: var(--app-bg);
  overflow-x: hidden;
}

#screen-splash,
.home-header,
.profile-header {
  background: linear-gradient(160deg, var(--brand) 0%, var(--brand-dark) 100%);
}

.splash-bg {
  background:
    linear-gradient(155deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0) 44%),
    linear-gradient(0deg, rgba(0,0,0,0.08), rgba(0,0,0,0));
}

.splash-title {
  letter-spacing: 0;
  font-size: 30px;
}

.splash-subtitle,
.splash-tap {
  letter-spacing: 0;
}

.home-header {
  padding: 14px var(--space-page) 16px;
}

.home-search,
.home-mode-badge {
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.22);
}

.home-search {
  min-height: 42px;
  color: rgba(255,255,255,0.86);
}

.home-banner {
  margin: 14px var(--space-page) 18px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, #242833, #111318);
  box-shadow: var(--shadow-card);
}

.banner-deco {
  display: none;
}

.banner-content h2,
.wizard-question,
.login-title,
.service-intro h3,
#screen-order-success h2 {
  color: var(--text);
  letter-spacing: 0;
}

.home-banner .banner-content h2,
.home-banner .banner-content p {
  color: #fff;
}

.section-title,
.purchase-section-title,
.rating-content h3,
.service-flow h4,
.comments-title,
.search-section-header h4,
.learn-article .article-title,
.learn-article .article-body h4,
.video-title,
.detail-name,
.product-name,
.cpc-title,
.pdc-title,
.profile-name {
  color: var(--text);
  letter-spacing: 0;
}

.mode-intro-text,
.wizard-hint,
.form-label,
.product-desc,
.function-text .fn-desc,
.budget-option .bo-label,
.sort-label,
.delivery-desc,
.service-desc,
.success-desc,
.order-num,
.rating-text,
.empty-state p,
.cpc-meta,
.pdc-meta,
.comment-time,
.char-count,
.search-results-count,
.search-empty,
.search-history-empty {
  color: var(--text-muted);
}

.mode-card,
.person-card,
.function-item,
.budget-option,
.budget-slider-wrap,
.rec-summary,
.product-card,
.hot-product-card,
.purchase-product,
.purchase-section,
.delivery-option,
.address-card,
.store-card,
.success-order-info,
.order-card,
.rating-product,
.service-card,
.service-flow,
.profile-menu,
.community-post-card,
.hcp-card,
.pdc-header,
.pdc-body,
.pdc-product-link,
.cpc-product-link,
.picker-item,
.post-type-option,
.post-product-select,
.reading-text {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-soft);
}

.rec-summary,
.detail-tabs,
.orders-tabs,
.category-tabs,
.community-tabs,
.search-category-tabs,
.chat-quick-msgs,
.chat-input-bar,
.comment-input-bar,
.detail-bottom-bar,
.purchase-bottom-bar,
.pdc-footer,
.bottom-nav {
  background: rgba(255,255,255,0.96);
  border-color: var(--line);
}

.mode-card,
.person-card,
.function-item,
.budget-option,
.delivery-option,
.service-card,
.community-post-card,
.hcp-card,
.picker-item,
.quick-item,
.menu-item,
.product-card-top {
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.mode-card:active,
.person-card:active,
.function-item:active,
.budget-option:active,
.delivery-option:active,
.service-card:active,
.community-post-card:active,
.hcp-card:active,
.picker-item:active,
.quick-item:active,
.menu-item:active,
.product-card-top:active {
  transform: translateY(1px) scale(0.99);
  background: var(--app-bg-soft);
}

.mode-card:hover,
.person-card.selected,
.function-item.selected,
.budget-option.selected,
.delivery-option.active,
.post-type-option.active,
.post-product-select.selected,
.rating-tag.active {
  border-color: var(--brand);
  background: var(--surface-brand);
}

.btn-primary,
.banner-btn,
.btn-buy,
.btn-store-call,
.btn-chat-send,
.btn-comment-send,
.search-action-btn,
.reading-btn,
.community-fab,
.flow-num {
  background: linear-gradient(135deg, var(--brand), #E11D48);
  color: #fff;
  box-shadow: var(--shadow-brand);
}

.btn-primary,
.btn-outline,
.banner-btn,
.btn-mini,
.btn-store-call,
.btn-store-nav,
.btn-chat-send,
.btn-comment-send,
.search-action-btn,
.reading-btn {
  border-radius: var(--radius-sm);
  letter-spacing: 0;
  font-weight: 700;
}

.btn-primary {
  height: 48px;
}

.btn-outline {
  border-color: var(--brand);
  color: var(--brand);
  background: var(--surface);
  box-shadow: none;
}

.btn-verify,
.link-text,
.section-more,
.product-price,
.hot-product-price,
.detail-price,
.pp-price,
.op-price,
.picker-price,
.cpc-product-price,
.pdc-product-price,
.budget-display,
.address-edit,
.store-distance,
.price-red,
.nav-item.active,
.cat-tab.active,
.order-tab.active,
.com-tab.active,
.detail-tabs .tab.active,
.sort-item.active,
.search-sort-item.active,
.search-cat-tab.active,
.search-results-count b,
.search-keyword-highlight,
.search-suggest-name b,
.cpc-action.liked,
.pdc-action.liked {
  color: var(--brand);
}

.step-dots .dot.active,
.step-dots .dot.done,
.function-item.selected .function-check,
.budget-slider::-webkit-slider-thumb,
.detail-tabs .tab.active::after,
.order-tab.active::after,
.com-tab.active::after,
.cat-tab.active,
.search-cat-tab.active::after,
.nav-badge {
  background: var(--brand);
}

.function-item.selected .function-check,
.delivery-option.active .delivery-radio,
.rating-input:focus,
.post-title-input input:focus,
.post-content-input textarea:focus,
.search-input-wrap:focus-within,
.chat-input-bar input:focus,
.comment-input-bar input:focus {
  border-color: var(--brand);
}

.input-wrap,
.search-input-wrap,
.chat-input-bar input,
.comment-input-bar input,
.post-title-input input,
.post-content-input textarea,
.rating-input {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--text);
  box-shadow: none;
}

.search-input-wrap,
.search-results-count {
  min-width: 0;
}

.search-results-header {
  gap: 8px;
  flex-wrap: wrap;
}

.input-wrap {
  height: 50px;
}

.input-wrap input,
.search-input-wrap input,
.chat-input-bar input,
.comment-input-bar input,
.post-title-input input,
.post-content-input textarea,
.rating-input {
  color: var(--text);
}

.quick-grid {
  gap: 10px;
}

.quick-item {
  min-height: 86px;
  justify-content: center;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-soft);
}

.quick-icon,
.function-icon,
.person-avatar,
.service-icon {
  border-radius: var(--radius-sm);
}

.quick-icon {
  width: 44px;
  height: 44px;
  background: var(--brand-light) !important;
  color: var(--brand);
}

.quick-item:nth-child(2) .quick-icon,
.quick-item:nth-child(6) .quick-icon { background: #EAF1FF !important; color: var(--accent); }
.quick-item:nth-child(3) .quick-icon,
.quick-item:nth-child(5) .quick-icon { background: #EAF8EF !important; color: var(--success); }
.quick-item:nth-child(7) .quick-icon { background: var(--surface-soft) !important; color: var(--text-secondary); }

.quick-icon svg,
.service-icon svg,
.menu-item svg {
  color: currentColor;
}

.quick-icon svg *,
.service-icon svg *,
.menu-item svg * {
  stroke: currentColor;
}

.function-icon {
  width: 44px;
  height: 44px;
  background: var(--brand-light) !important;
  color: var(--brand);
}

.function-icon svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
}

.function-text .fn-name,
.budget-option .bo-range,
.delivery-name,
.service-title,
.menu-item span:nth-child(2),
.cpc-username,
.pdc-username,
.comment-name {
  color: var(--text);
}

.product-tag,
.cpc-tag,
.mode-tag,
.search-hot-tag,
.chat-quick,
.rating-tag,
.rec-summary .rs-tag,
.sort-item,
.search-sort-item {
  border-radius: var(--radius-xs);
  background: var(--surface-soft);
  color: var(--text-secondary);
}

.product-tag.match,
.text-green,
.store-status,
.order-status.done {
  color: var(--success);
}

.order-status.pending,
.btn-fav,
.cpc-stars,
.pdc-stars,
.star.active {
  color: var(--warning);
}

.btn-know,
.btn-fav,
.btn-store-nav {
  background: var(--surface-soft);
  box-shadow: none;
}

.product-img,
.pp-img,
.op-img,
.detail-img,
.hot-product-img,
.cpc-product-img,
.pdc-product-img,
.picker-img {
  border-radius: var(--radius-sm);
}

.detail-img {
  height: 248px;
}

.product-card,
.order-card,
.community-post-card {
  overflow: hidden;
}

.product-card-top {
  align-items: stretch;
}

.product-bottom,
.order-card-bottom,
.store-actions,
.success-actions,
.product-actions {
  gap: 8px;
}

.product-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.btn-mini {
  min-height: 32px;
  padding: 7px 12px;
}

.detail-tabs .tab,
.order-tab,
.cat-tab,
.com-tab,
.search-cat-tab {
  color: var(--text-secondary);
  font-weight: 600;
}

.bottom-nav {
  height: 64px;
  box-shadow: 0 -8px 20px rgba(31,35,41,0.06);
}

.bottom-nav .nav-item svg,
.nav-item svg {
  width: 21px;
  height: 21px;
}

.bottom-nav .nav-item span,
.nav-item {
  font-size: 10px;
  font-weight: 600;
}

.nav-item {
  color: var(--text-muted);
}

.nav-item.active::before {
  content: "";
  position: absolute;
  top: 7px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--brand);
}

.bottom-nav-space {
  height: 82px;
}

.guidance-box,
.search-guidance {
  background: #FFF8EA;
  border: 1px solid #FDE7B6;
  border-left: 3px solid var(--warning);
  border-radius: var(--radius-sm);
  color: #7A4B00;
}

.guidance-icon {
  background: var(--warning);
}

.guidance-text {
  color: #7A4B00;
}

.toast {
  border-radius: var(--radius-sm);
  background: rgba(31,35,41,0.88);
}

#screen-chat.active {
  display: flex;
  flex-direction: column;
}

.chat-messages {
  background: var(--app-bg);
}

.chat-msg.user .chat-avatar {
  background: var(--brand);
}

.chat-msg.bot .chat-avatar {
  background: var(--text);
}

.chat-msg.user .chat-bubble {
  background: var(--brand);
}

.chat-msg.bot .chat-bubble {
  border: 1px solid var(--line-soft);
}

.mode-elderly .mode-tag,
.mode-normal .mode-tag,
.mode-child .mode-tag,
.cpc-type-badge.discussion,
.cpc-type-badge.review,
.cpc-type-badge.recommend {
  border-radius: var(--radius-xs);
}

.phone-screen.child .reading-btn,
.phone-screen.child .banner-btn,
.phone-screen.child .btn-buy,
.phone-screen.child .flow-num,
.phone-screen.child .community-fab,
.phone-screen.child .search-action-btn,
.phone-screen.child .btn-comment-send,
.phone-screen.child .btn-primary {
  background: linear-gradient(135deg, var(--brand), #E11D48);
  color: #fff;
  box-shadow: var(--shadow-brand);
}

.phone-screen.child .home-mode-badge {
  background: rgba(255,255,255,0.18);
}

.phone-screen.child .sort-item.active,
.phone-screen.child .com-tab.active,
.phone-screen.child .search-cat-tab.active,
.phone-screen.child .search-sort-item.active,
.phone-screen.child .search-results-count b,
.phone-screen.child .search-suggest-name b,
.phone-screen.child .search-keyword-highlight,
.phone-screen.child .pdc-action.liked,
.phone-screen.child .cpc-action.liked {
  color: var(--brand);
}

.phone-screen.child .com-tab.active::after,
.phone-screen.child .search-cat-tab.active::after {
  background: var(--brand);
}

.phone-screen.child .search-input-wrap:focus-within,
.phone-screen.child .post-type-option.active {
  border-color: var(--brand);
}

.phone-screen.child .post-type-option.active,
.phone-screen.child .search-sort-item.active {
  background: var(--surface-brand);
}

@media (max-width: 430px), (max-height: 880px) {
  .phone-frame {
    width: min(390px, calc(100vw - 16px));
    height: min(844px, calc(100vh - 16px));
    border-radius: 42px;
    padding: 10px;
  }

  .phone-screen {
    border-radius: 32px;
  }

  .phone-notch {
    top: 10px;
  }
}
