.diary-page-header {
  margin-bottom: 20px;
  padding: 18px 22px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(var(--color-primary-rgb), 0.12), rgba(var(--color-primary-rgb), 0.05));
  border: 1px solid rgba(var(--color-primary-rgb), 0.2);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  animation: slideDown 0.5s ease-out 0.1s both;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.diary-page-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(var(--color-primary-rgb), 0.15);
}

.diary-page-header__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.diary-page-header .page-title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text, #1f1f1f);
}

.diary-page-subtitle {
  font-size: 14px;
  color: var(--color-text-secondary, #666);
  line-height: 1.5;
  max-width: 480px;
  margin: 0;
}

.diary-page-header__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-shrink: 0;
}

.diary-date-wrapper {
  display: inline-flex;
  align-items: center;
}

.diary-date-input {
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(var(--color-primary-rgb), 0.2);
  font-size: 14px;
  color: var(--color-text);
  transition: all 0.3s ease;
  cursor: pointer;
}

.diary-date-input:hover {
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(var(--color-primary-rgb), 0.4);
  box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.1);
}

.diary-date-input:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(var(--color-primary-rgb), 0.5);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
}

/* 健康日记 - 优化后的排版 */
.overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.kcard {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 16px;
  transition: all 0.3s ease;
}

.kcard:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.kcard--metric {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  align-items: center;
}

.kcard__icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: var(--color-primary-weak);
  color: var(--color-primary);
  border-radius: 10px;
  font-size: 20px;
}

.kcard__title {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 4px;
}

.kcard__value {
  font-weight: 700;
  margin-top: 4px;
  font-size: 15px;
  line-height: 1.4;
}

.kcard__status {
  margin-top: 6px;
  font-size: 12px;
}

.kcard--ok {
  border-color: rgba(var(--color-primary-rgb), .3);
}

.kcard--warn {
  border-color: rgba(250, 173, 20, .3);
}

.kcard--bad {
  border-color: rgba(255, 77, 79, .3);
}

.card--section {
  padding: 20px;
  margin-bottom: 20px;
}

.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.section-title {
  font-size: 18px;
  margin: 0;
  font-weight: 600;
}

.form__row--cols2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.form__row--cols3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

.template-chips {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.chip--ghost {
  background: transparent;
  border-color: var(--color-border);
  color: var(--color-text);
}

.chip--ghost:active {
  transform: scale(.98);
}

.diary-form {
  padding: 20px;
}

.diary-form form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.diary-section {
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 18px;
  padding: 20px;
  background: linear-gradient(130deg, rgba(255, 255, 255, 0.9), rgba(var(--color-primary-rgb), 0.04));
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.02);
}

.diary-section+.diary-section {
  margin-top: 16px;
}

.diary-section__header {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.diary-section__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--color-primary-weak);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  font-size: 20px;
  flex-shrink: 0;
}

.diary-section__eyebrow {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 4px 0;
  color: var(--color-text-muted);
}

.diary-section__title {
  font-size: 17px;
  margin: 4px 0;
  font-weight: 600;
}

.diary-section__hint {
  margin: 6px 0 0 0;
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

.diary-field-grid {
  display: grid;
  gap: 14px;
}

.diary-field-grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.diary-field-grid--2 {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.diary-field-grid--notes {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.diary-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.03);
  border-radius: 12px;
  padding: 12px 14px;
}

.diary-field__label {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 2px;
}

.diary-field__meta {
  font-size: 11px;
  color: var(--color-text-muted);
  margin-top: 2px;
}

.input--textarea {
  min-height: 80px;
  resize: vertical;
}

.diary-field--textarea .input {
  width: 100%;
  min-height: 80px;
}

.diary-slider {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(var(--color-primary-rgb), 0.05);
}

.diary-field--slider input[type="range"] {
  width: 100%;
  accent-color: var(--color-primary);
}

.diary-slider__scale {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 8px;
}

.diary-section__actions {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 18px;
}

.diary-form__cta {
  border: 1px dashed rgba(var(--color-primary-rgb), 0.35);
  border-radius: 14px;
  padding: 16px;
  background: rgba(var(--color-primary-rgb), 0.04);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.diary-form__cta-text {
  margin: 0;
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

.segment {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  overflow: hidden;
}

.segment__btn {
  padding: 8px 14px;
  font-size: 13px;
  transition: all 0.2s ease;
}

.segment__btn.is-active {
  background: var(--color-primary);
  color: #fff;
}

.chart-card {
  margin-top: 20px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 12px;
}

.chart-title {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 4px;
}

/* Diary Tabs */
.diary-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
  overflow-x: auto;
  padding: 4px 2px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  /* Firefox */
}

.diary-tabs::-webkit-scrollbar {
  display: none;
}

/* Chrome/Safari */

.diary-tab {
  padding: 10px 18px;
  border-radius: 12px;
  background: var(--color-bg-elev);
  border: 1px solid transparent;
  color: var(--color-text-secondary);
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  flex-shrink: 0;
}

.diary-tab:hover {
  background: #fff;
  color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.diary-tab.is-active {
  background: var(--color-primary);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.3);
}

.diary-tab-content {
  display: none;
  animation: tabFadeIn 0.3s ease-out forwards;
}

.diary-tab-content.is-active {
  display: block;
}

@keyframes tabFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.diary-form__footer {
  margin-top: 24px;
  padding-top: 4px;
}

/* 趋势图展开/折叠样式 */
.trends-section {
  overflow: hidden;
}

.trends-toggle-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  transition: all 0.3s ease;
}

.trends-toggle-btn svg {
  transition: transform 0.3s ease;
}

.trends-toggle-btn.is-expanded svg {
  transform: rotate(180deg);
}

.trends-toggle-btn:hover {
  background: rgba(var(--color-primary-rgb), 0.08);
  border-color: var(--color-primary);
}

.trends-content {
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  max-height: 0;
  opacity: 0;
}

.trends-content.is-visible {
  max-height: 3000px;
  opacity: 1;
  margin-top: 16px;
}

.trends-controls {
  margin-bottom: 16px;
  display: flex;
  justify-content: center;
}

/* Calendar */
.calendar {
  margin-bottom: 12px;
}

.calendar__weekhead {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-secondary, #666);
  text-align: center;
  margin-bottom: 8px;
  padding: 8px 0;
}

.calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.cal-cell {
  height: 44px;
  border: 1.5px solid var(--color-border, #e8e8e8);
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 500;
  background: var(--color-bg-elev, #fafafa);
  color: var(--color-text, #333);
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.cal-cell:hover {
  border-color: var(--color-primary, #1890ff);
  background: var(--color-bg, #fff);
  transform: scale(1.05);
}

.cal-cell--muted {
  opacity: .4;
  background: transparent;
  cursor: default;
}

.cal-cell--muted:hover {
  transform: none;
  border-color: var(--color-border, #e8e8e8);
}

.cal-cell--ok {
  border-color: rgba(var(--color-primary-rgb), .6);
  background: rgba(var(--color-primary-rgb), .08);
  color: var(--color-primary);
}

.cal-cell--warn {
  border-color: rgba(250, 173, 20, .6);
  background: rgba(250, 173, 20, .08);
  color: #faad14;
}

.cal-cell--bad {
  border-color: rgba(255, 77, 79, .6);
  background: rgba(255, 77, 79, .08);
  color: #ff4d4f;
}

/* Meds Page Styles */
.meds-page-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  padding: 24px 20px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(110, 198, 177, 0.15) 0%, rgba(163, 216, 244, 0.12) 50%, rgba(110, 198, 177, 0.08) 100%);
  border: 1px solid rgba(110, 198, 177, 0.25);
  box-shadow: 0 8px 32px rgba(110, 198, 177, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
  position: relative;
  overflow: hidden;
  animation: medsHeaderFadeIn 0.6s ease-out;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.meds-page-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(110, 198, 177, 0.18), 0 4px 12px rgba(0, 0, 0, 0.06);
}

.meds-page-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgba(110, 198, 177, 0.8) 0%, rgba(163, 216, 244, 0.6) 50%, rgba(110, 198, 177, 0.4) 100%);
  animation: shimmer 3s ease-in-out infinite;
}

.meds-page-header::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(110, 198, 177, 0.08) 0%, transparent 70%);
  animation: rotate 20s linear infinite;
  pointer-events: none;
}

.meds-page-header__content {
  text-align: center;
  width: 100%;
  position: relative;
  z-index: 1;
  animation: fadeInUp 0.6s ease-out 0.2s both;
}

.meds-page-header .page-title {
  margin: 0 0 8px 0;
  font-size: 26px;
  font-weight: 700;
  color: var(--color-text);
  text-align: center;
  background: linear-gradient(135deg, var(--color-text) 0%, rgba(110, 198, 177, 0.9) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.meds-page-subtitle {
  font-size: 14px;
  color: var(--color-text-secondary, #666);
  margin: 0;
  text-align: center;
  font-weight: 500;
  line-height: 1.5;
}

.meds-page-header__actions {
  margin-top: 16px;
  position: relative;
  z-index: 1;
  animation: fadeInUp 0.6s ease-out 0.3s both;
}

.meds-stats-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(110, 198, 177, 0.2);
  transition: all 0.3s ease;
}

.meds-stats-btn:hover {
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(110, 198, 177, 0.4);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(110, 198, 177, 0.15);
}

@keyframes medsHeaderFadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes shimmer {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.6;
  }
}

@keyframes rotate {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.meds-calendar-section {
  margin-bottom: 20px;
  background: var(--color-bg-elev, #fafafa);
  border: 1px solid var(--color-border, #e8e8e8);
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.meds-calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-border, #e8e8e8);
}

.meds-calendar-month {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--color-text, #333);
  text-align: center;
  flex: 1;
}

.meds-calendar-nav-btn {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg, #fff);
  color: var(--color-text, #333);
  border: 1.5px solid var(--color-border, #e8e8e8);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  flex-shrink: 0;
}

.meds-calendar-nav-btn:hover {
  border-color: var(--color-primary, #1890ff);
  background: var(--color-primary-weak, rgba(24, 144, 255, 0.1));
  color: var(--color-primary, #1890ff);
  transform: scale(1.05);
}

.meds-calendar-nav-btn:active {
  transform: scale(0.95);
}

@media (max-width: 768px) {
  .pharmacy-search-input {
    padding: 11px 90px 11px 40px;
    font-size: 14px;
  }

  .pharmacy-search-btn {
    right: 6px;
    width: 30px;
    height: 30px;
  }

  .pharmacy-search-clear {
    right: 44px;
    width: 26px;
    height: 26px;
  }

  .meds-page-header {
    padding: 20px 16px;
    margin-bottom: 20px;
  }

  .meds-page-header .page-title {
    font-size: 22px;
  }

  .meds-page-header__actions {
    margin-top: 12px;
  }

  .meds-stats-btn {
    width: auto;
    justify-content: center;
  }

  .meds-calendar-section {
    padding: 16px;
    border-radius: 14px;
  }

  .meds-calendar-header {
    margin-bottom: 12px;
    padding-bottom: 12px;
  }

  .meds-calendar-month {
    font-size: 16px;
  }

  .meds-calendar-nav-btn {
    width: 36px;
    height: 36px;
  }

  .cal-cell {
    height: 40px;
    font-size: 13px;
  }
}

.list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-bg-elev);
}

.list-item__title {
  font-weight: 600;
}

.list-item__meta {
  font-size: 12px;
  color: var(--color-text-muted);
}

.badge-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 6px;
}

.badge-dot--ok {
  background: var(--color-primary);
}

.badge-dot--warn {
  background: #faad14;
}

.badge-dot--bad {
  background: #ff4d4f;
}

/* 高保真卡片式设计 */
.med-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 16px;
  box-shadow: var(--shadow-card);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  animation: medCardFadeIn 0.5s ease-out both;
  cursor: pointer;
}

.med-card:nth-child(1) {
  animation-delay: 0.1s;
}

.med-card:nth-child(2) {
  animation-delay: 0.15s;
}

.med-card:nth-child(3) {
  animation-delay: 0.2s;
}

.med-card:nth-child(4) {
  animation-delay: 0.25s;
}

.med-card:nth-child(5) {
  animation-delay: 0.3s;
}

.med-card:nth-child(n+6) {
  animation-delay: 0.35s;
}

@keyframes medCardFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.med-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(180deg, var(--color-primary) 0%, rgba(24, 144, 255, 0.3) 100%);
  transition: width 0.3s ease;
}

.med-card:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
  border-color: var(--color-primary, #1890ff);
}

.med-card:hover::before {
  width: 5px;
}

.med-card:active {
  transform: translateY(-2px) scale(1.01);
  transition: transform 0.1s ease;
}

.med-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}

.med-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.15) 0%, rgba(24, 144, 255, 0.08) 100%);
  display: grid;
  place-items: center;
  font-size: 24px;
  flex-shrink: 0;
  margin-right: 12px;
}

.med-card__content {
  flex: 1;
  min-width: 0;
}

.med-card__name {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 6px;
}

.med-card__spec {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 8px;
}

.med-card__info {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}

.med-card__stat {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--color-text-muted);
}

.med-card__stat-icon {
  font-size: 14px;
}

.med-card__actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.med-card__stock {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}

.med-card__stock--normal {
  background: rgba(var(--color-primary-rgb), 0.1);
  color: var(--color-primary);
}

.med-card__stock--low {
  background: rgba(250, 173, 20, 0.15);
  color: #faad14;
}

.med-card__stock--critical {
  background: rgba(255, 77, 79, 0.15);
  color: #ff4d4f;
}

.med-card__stock--warning {
  background: rgba(250, 173, 20, 0.15);
  color: #faad14;
}

.med-card__stock--notice {
  background: rgba(24, 144, 255, 0.15);
  color: #1890ff;
}

.med-card__stat--expiry {
  font-weight: 500;
}

.med-card__stat--expiry.med-card__stat--expired {
  color: #ff4d4f;
}

.med-card__stat--expiry.med-card__stat--warning {
  color: #faad14;
}

.med-card__stat--expiry.med-card__stat--notice {
  color: #1890ff;
}

/* Pharmacy Page Styles */
.pharmacy-page-header {
  margin-bottom: 20px;
  padding: 18px 22px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.12), rgba(24, 144, 255, 0.05));
  border: 1px solid rgba(24, 144, 255, 0.2);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  animation: slideDown 0.5s ease-out 0.1s both;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pharmacy-page-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(24, 144, 255, 0.15);
}

.pharmacy-page-header__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pharmacy-page-header .page-title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text, #1f1f1f);
}

.pharmacy-page-subtitle {
  font-size: 14px;
  color: var(--color-text-secondary, #666);
  line-height: 1.5;
  max-width: 480px;
}

.pharmacy-page-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.pharmacy-meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(24, 144, 255, 0.12);
  color: var(--color-primary, #1890ff);
  border: 1px solid rgba(24, 144, 255, 0.18);
  font-weight: 500;
  white-space: nowrap;
  transition: all 0.3s ease;
  animation: chipFadeIn 0.6s ease-out 0.2s both;
}

@keyframes chipFadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px) scale(0.9);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.pharmacy-meta-chip:hover {
  transform: translateY(-2px) scale(1.05);
  background: rgba(24, 144, 255, 0.18);
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2);
}

.pharmacy-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.pharmacy-summary-card {
  position: relative;
  border-radius: 18px;
  padding: 18px 20px;
  background: var(--color-bg-elev, #fff);
  border: 1px solid var(--color-border, #e0e0e0);
  box-shadow: var(--shadow-card, 0 8px 20px rgba(15, 23, 42, 0.08));
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 110px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  animation: cardSlideUp 0.5s ease-out both;
  cursor: pointer;
  overflow: hidden;
}

.pharmacy-summary-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-primary, #1890ff), rgba(24, 144, 255, 0.3));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.pharmacy-summary-card:nth-child(1) {
  animation-delay: 0.15s;
}

.pharmacy-summary-card:nth-child(2) {
  animation-delay: 0.2s;
}

.pharmacy-summary-card:nth-child(3) {
  animation-delay: 0.25s;
}

.pharmacy-summary-card:nth-child(4) {
  animation-delay: 0.3s;
}

@keyframes cardSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.pharmacy-summary-card:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.16);
}

.pharmacy-summary-card:hover::before {
  transform: scaleX(1);
}

.pharmacy-summary-card:active {
  transform: translateY(-2px) scale(1.01);
  transition: transform 0.1s ease;
}

.pharmacy-summary-card__label {
  font-size: 13px;
  color: var(--color-text-secondary, #666);
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.pharmacy-summary-card__value {
  font-size: 30px;
  font-weight: 700;
  color: var(--color-text, #1f1f1f);
  line-height: 1.1;
  transition: transform 0.3s ease, color 0.3s ease;
  display: inline-block;
}

.pharmacy-summary-card__value.updating {
  animation: valuePulse 0.5s ease-out;
}

@keyframes valuePulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.2);
    color: var(--color-primary, #1890ff);
  }
}

.pharmacy-summary-card:hover .pharmacy-summary-card__value {
  transform: scale(1.1);
}

.pharmacy-summary-card--warn {
  border-color: rgba(250, 173, 20, 0.28);
  background: rgba(250, 173, 20, 0.1);
}

.pharmacy-summary-card--warn .pharmacy-summary-card__value {
  color: #d48806;
}

.pharmacy-summary-card--notice {
  border-color: rgba(24, 144, 255, 0.28);
  background: rgba(24, 144, 255, 0.1);
}

.pharmacy-summary-card--notice .pharmacy-summary-card__value {
  color: var(--color-primary, #1890ff);
}

.pharmacy-summary-card--critical {
  border-color: rgba(255, 77, 79, 0.28);
  background: rgba(255, 77, 79, 0.12);
}

.pharmacy-summary-card--critical .pharmacy-summary-card__value {
  color: #cf1322;
}

.pharmacy-toolbar {
  margin-bottom: 28px;
  display: flex;
  justify-content: center;
  animation: slideUpFade 0.6s ease-out 0.35s both;
}

@keyframes slideUpFade {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pharmacy-toolbar__panel {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: center;
  padding: 20px 24px;
  border-radius: 20px;
  background: var(--color-bg-elev, #fff);
  border: 1px solid var(--color-border, #e0e0e0);
  box-shadow: var(--shadow-card, 0 12px 24px rgba(15, 23, 42, 0.08));
  max-width: 800px;
  width: 100%;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.pharmacy-toolbar__panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(24, 144, 255, 0.05), transparent);
  transition: left 0.5s ease;
}

.pharmacy-toolbar__panel:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
  border-color: rgba(24, 144, 255, 0.3);
}

.pharmacy-toolbar__panel:hover::before {
  left: 100%;
}

.pharmacy-search-wrapper {
  flex: 1;
  min-width: 220px;
}

.pharmacy-search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--color-bg, #fff);
  border-radius: 14px;
  border: 1.5px solid var(--color-border, #e0e0e0);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pharmacy-search-input-wrapper:focus-within {
  border-color: var(--color-primary, #1890ff);
  box-shadow: 0 0 0 4px rgba(24, 144, 255, 0.12), 0 4px 12px rgba(24, 144, 255, 0.08);
  transform: scale(1.01);
}

.pharmacy-search-input-wrapper:hover:not(:focus-within) {
  border-color: rgba(24, 144, 255, 0.4);
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.06);
}

.pharmacy-search-icon {
  position: absolute;
  left: 16px;
  color: var(--color-text-muted, #999);
  pointer-events: none;
  z-index: 1;
}

.pharmacy-search-input {
  width: 100%;
  padding: 14px 110px 14px 46px;
  font-size: 15px;
  border: none;
  background: transparent;
  color: var(--color-text, #333);
}

.pharmacy-search-input:focus {
  outline: none;
}

.pharmacy-search-input::placeholder {
  color: var(--color-text-muted, #999);
}

.pharmacy-search-btn {
  position: absolute;
  right: 10px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary, #1890ff);
  color: #fff;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
  flex-shrink: 0;
}

.pharmacy-search-btn:hover {
  background: var(--color-primary-hover, #40a9ff);
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
}

.pharmacy-search-btn:active {
  transform: translateY(0) scale(0.98);
  transition: transform 0.1s ease;
}

.pharmacy-search-clear {
  position: absolute;
  right: 56px;
  width: 30px;
  height: 30px;
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-secondary, #f5f5f5);
  color: var(--color-text-secondary, #666);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out, transform 0.15s ease-in-out;
  z-index: 1;
}

.pharmacy-search-clear:hover {
  background: var(--color-bg-elev, #ededed);
  transform: translateY(-1px);
}

.pharmacy-search-clear:active {
  transform: translateY(0);
}

.pharmacy-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

.pharmacy-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(24, 144, 255, 0.12);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.pharmacy-action-btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  transform: translate(-50%, -50%);
  transition: width 0.4s ease, height 0.4s ease;
}

.pharmacy-action-btn:hover::before {
  width: 300px;
  height: 300px;
}

.pharmacy-action-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(24, 144, 255, 0.25);
}

.pharmacy-action-btn:active {
  transform: translateY(0) scale(0.98);
  transition: transform 0.1s ease;
}

.pharmacy-action-btn.btn--ghost {
  box-shadow: none;
}

.pharmacy-list-section {
  margin-bottom: 16px;
}

.pharmacy-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  animation: listFadeIn 0.4s ease-out 0.4s both;
}

@keyframes listFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.pharmacy-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 68px 20px;
  text-align: center;
  border-radius: 20px;
  border: 1.5px dashed var(--color-border, #d9d9d9);
  background: var(--color-bg-elev, #fff);
}

.pharmacy-empty-icon {
  font-size: 46px;
  margin-bottom: 14px;
  opacity: 0.6;
}

.pharmacy-empty-text {
  font-size: 17px;
  font-weight: 600;
  color: var(--color-text-secondary, #666);
  margin-bottom: 6px;
}

.pharmacy-empty-hint {
  font-size: 13px;
  color: var(--color-text-muted, #999);
}

.pharmacy-bottom-bar {
  position: sticky;
  bottom: calc(var(--tabbar-height, 60px) + var(--safe-bottom, 0px) + 12px);
  display: flex;
  justify-content: center;
  padding: 16px 0 8px;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.72) 65%, transparent 100%);
  backdrop-filter: blur(12px);
  margin-top: 32px;
  z-index: 10;
}

.pharmacy-bottom-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 999px;
  font-weight: 600;
  box-shadow: 0 10px 20px rgba(24, 144, 255, 0.15);
}

.med-card {
  position: relative;
  background: var(--color-bg-elev, #fff);
  border: 1.5px solid var(--color-border, #e1e1e1);
  border-radius: 20px;
  padding: 22px;
  box-shadow: var(--shadow-card, 0 12px 28px rgba(15, 23, 42, 0.12));
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.med-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.08), transparent);
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

.med-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.18);
}

.med-card:hover::after {
  opacity: 1;
}

.med-card__top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.med-card__identity {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.med-card__icon {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.18), rgba(24, 144, 255, 0.06));
  display: grid;
  place-items: center;
  font-size: 26px;
  flex-shrink: 0;
}

.med-card__title {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.med-card__name {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text, #1f1f1f);
  line-height: 1.2;
}

.med-card__name mark {
  background: rgba(24, 144, 255, 0.2);
  color: inherit;
  border-radius: 4px;
  padding: 0 2px;
}

.med-card__spec {
  font-size: 14px;
  color: var(--color-text-muted, #8c8c8c);
}

.med-card__chips {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}

.med-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  background: rgba(24, 144, 255, 0.12);
  color: var(--color-primary, #1890ff);
}

.med-chip__icon {
  font-size: 15px;
}

.med-chip__strong {
  font-weight: 700;
}

.med-chip--normal {
  background: rgba(var(--color-primary-rgb), 0.15);
  color: var(--color-primary);
}

.med-chip--low {
  background: rgba(250, 173, 20, 0.18);
  color: #d48806;
}

.med-chip--critical {
  background: rgba(255, 77, 79, 0.18);
  color: #a8071a;
}

.med-chip--notice {
  background: rgba(24, 144, 255, 0.18);
  color: var(--color-primary, #1890ff);
}

.med-card__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.med-card__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 12px;
  margin: 0;
}

.med-card__stat {
  padding: 12px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.02);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.med-card__stat dt {
  font-size: 12px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--color-text-muted, #8c8c8c);
}

.med-card__stat dd {
  margin: 0;
  font-size: 15px;
  color: var(--color-text, #262626);
  font-weight: 600;
}

.med-card__stat--warning dd {
  color: #d48806;
}

.med-card__stat--critical dd {
  color: #a8071a;
}

.med-card__stat--notice dd {
  color: var(--color-primary, #1890ff);
}

.med-card__schedule {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.med-card__schedule-tag {
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(24, 144, 255, 0.1);
  color: var(--color-primary, #1890ff);
  font-size: 12px;
  font-weight: 600;
}

.med-card__note {
  font-size: 11px;
  font-weight: 500;
  color: var(--color-text-muted, #8c8c8c);
  margin-left: 4px;
}

.med-card__actions {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

@media (max-width: 900px) {
  .pharmacy-page-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .pharmacy-page-header__meta {
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .pharmacy-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pharmacy-toolbar__panel {
    flex-direction: column;
    align-items: stretch;
  }

  .pharmacy-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .pharmacy-action-btn {
    width: auto;
  }

  .pharmacy-list {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }

  .med-card {
    padding: 20px;
  }

  .med-card__top {
    flex-direction: column;
    align-items: flex-start;
  }

  .med-card__chips {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .med-card__stats {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }
}

/* Pharmacy Editor Modal */
.pharmacy-editor-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
  pointer-events: none;
}

.pharmacy-editor-modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

.pharmacy-editor-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.pharmacy-editor-modal__content {
  position: relative;
  width: 90%;
  max-width: 600px;
  max-height: 90vh;
  background: var(--color-bg, #fff);
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.95) translateY(20px);
  transition: transform 0.3s ease-in-out;
  z-index: 1;
}

.pharmacy-editor-modal.is-active .pharmacy-editor-modal__content {
  transform: scale(1) translateY(0);
}

.pharmacy-editor-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-border, #e8e8e8);
  background: var(--color-bg, #fff);
  flex-shrink: 0;
}

.pharmacy-editor-modal__title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--color-text, #333);
}

.pharmacy-editor-modal__close {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-secondary, #f5f5f5);
  color: var(--color-text-secondary, #666);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out, transform 0.15s ease-in-out;
  flex-shrink: 0;
}

.pharmacy-editor-modal__close:hover {
  background: var(--color-bg-elev, #e8e8e8);
  transform: scale(1.1);
}

.pharmacy-editor-modal__close:active {
  transform: scale(0.95);
}

.pharmacy-editor-modal__body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.pharmacy-editor-modal__body .form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.pharmacy-editor-modal__footer {
  display: flex;
  gap: 12px;
  padding: 16px 24px;
  border-top: 1px solid var(--color-border, #e8e8e8);
  background: var(--color-bg-secondary, #fafafa);
  flex-shrink: 0;
  justify-content: flex-end;
}

.pharmacy-editor-modal__footer .btn {
  min-width: 100px;
}

@media (max-width: 768px) {
  .pharmacy-editor-modal__content {
    width: 95%;
    max-height: 95vh;
    border-radius: 16px;
  }

  .pharmacy-editor-modal__header {
    padding: 16px 20px;
  }

  .pharmacy-editor-modal__title {
    font-size: 18px;
  }

  .pharmacy-editor-modal__body {
    padding: 20px;
  }

  .pharmacy-editor-modal__footer {
    padding: 14px 20px;
    flex-direction: column-reverse;
  }

  .pharmacy-editor-modal__footer .btn {
    width: 100%;
    min-width: auto;
  }
}

/* 知识库文章卡片 */
.article-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 16px;
  box-shadow: var(--shadow-card);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
}

.article-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.article-card__header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}

.article-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(110, 198, 177, 0.2) 0%, rgba(163, 216, 244, 0.15) 100%);
  display: grid;
  place-items: center;
  font-size: 28px;
  flex-shrink: 0;
}

.article-card__content {
  flex: 1;
}

.article-card__title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--color-text);
  line-height: 1.4;
}

.article-card__meta {
  font-size: 12px;
  color: var(--color-text-muted);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}

.article-card__category {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 8px;
  background: rgba(24, 144, 255, 0.1);
  color: var(--color-primary);
  font-size: 11px;
}

/* 用药记录卡片状态样式 */
.meds-card__status--done {
  background: rgba(var(--color-primary-rgb), 0.1);
  color: var(--color-primary);
}

.meds-card__status--pending {
  background: rgba(250, 173, 20, 0.1);
  color: #faad14;
}

.meds-card__status--missed {
  background: rgba(255, 77, 79, 0.1);
  color: #ff4d4f;
}

/* Meds Today Section */
.meds-today-section {
  margin-bottom: 16px;
}

.meds-today-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
  min-height: 60px;
}

.meds-today-list:empty::before {
  content: '今日暂无用药提醒';
  display: block;
  text-align: center;
  padding: 40px 20px;
  color: var(--color-text-muted, #999);
  font-size: 14px;
}

.meds-progress-wrapper {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--color-border, #e8e8e8);
}

.meds-progress-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.meds-progress-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-secondary, #666);
}

.meds-progress-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text, #333);
  font-family: monospace;
}

.progressbar {
  height: 10px;
  border-radius: 10px;
  background: var(--color-bg-secondary, #f0f0f0);
  overflow: hidden;
  position: relative;
}

.progressbar__bar {
  height: 100%;
  background: linear-gradient(90deg,
      var(--color-primary) 0%,
      color-mix(in srgb, var(--color-primary) 70%, #ffffff 30%) 50%,
      color-mix(in srgb, var(--color-primary) 45%, #ffffff 55%) 100%);
  width: 0%;
  transition: width 0.3s ease-in-out;
  border-radius: 10px;
}

/* 优化meds-card样式 */
.meds-card {
  background: var(--color-bg-elev, #fafafa);
  border: 1px solid var(--color-border, #e8e8e8);
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  position: relative;
  overflow: hidden;
  transition: all 0.2s ease-in-out;
}

.meds-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-1px);
}

.meds-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(180deg, var(--color-primary, #1890ff) 0%, rgba(24, 144, 255, 0.3) 100%);
  opacity: 0.8;
}

.meds-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.meds-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.12) 0%, rgba(24, 144, 255, 0.06) 100%);
  display: grid;
  place-items: center;
  font-size: 22px;
  flex-shrink: 0;
  border: 1px solid rgba(24, 144, 255, 0.1);
}

.meds-card__info {
  flex: 1;
  min-width: 0;
}

.meds-card__name {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 6px;
  color: var(--color-text, #333);
  line-height: 1.4;
}

.meds-card__time {
  font-size: 13px;
  color: var(--color-text-secondary, #666);
  display: flex;
  align-items: center;
  gap: 4px;
}

.meds-card__status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 心理咨询师卡片 */
.counselor-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 16px;
  box-shadow: var(--shadow-card);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.counselor-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.counselor-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.counselor-card__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(110, 198, 177, 0.3) 0%, rgba(163, 216, 244, 0.2) 100%);
  display: grid;
  place-items: center;
  font-size: 24px;
  border: 2px solid rgba(110, 198, 177, 0.2);
}

.counselor-card__info {
  flex: 1;
}

.counselor-card__name {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 4px;
}

.counselor-card__title {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-bottom: 6px;
}

.counselor-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.counselor-card__tag {
  padding: 2px 8px;
  border-radius: 8px;
  background: rgba(110, 198, 177, 0.1);
  color: #2f6f63;
  font-size: 11px;
}

/* 设置项卡片 */
.setting-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.setting-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.setting-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.setting-card__title {
  font-size: 15px;
  font-weight: 600;
}

.setting-card__desc {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 4px;
}

.progressbar {
  height: 8px;
  border-radius: 999px;
  background: var(--color-border);
  margin-top: 8px;
  overflow: hidden;
}

.progressbar__bar {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), #faad14);
  width: 0%;
  transition: width .2s ease;
}

/* CSS Reset (minimal mobile-friendly) */
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html,
body,
#app {
  height: 100%;
}

html,
body {
  padding: 0;
  margin: 0;
}

img,
svg {
  display: block;
  max-width: 100%;
}

button,
input {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: none;
  padding: 0;
}

:root {
  /* Color system */
  --color-primary: #52c41a;
  /* 医疗绿 */
  --color-primary-rgb: 82, 196, 26;
  --color-primary-weak: rgba(82, 196, 26, 0.1);
  --color-text: #1f1f1f;
  --color-text-muted: #8c8c8c;
  --color-bg: #ffffff;
  --color-bg-elev: #ffffff;
  --color-border: #f0f0f0;

  /* Typography */
  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  --font-size-base: 16px;
  /* Mobile base */
  --radius-md: 12px;
  --radius-sm: 8px;
  --shadow-card: 0 4px 16px rgba(0, 0, 0, 0.06);

  /* Layout */
  --tabbar-height: 56px;
  /* visual height */
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-top: env(safe-area-inset-top);

  /* Mental (治愈系) palette */
  --mental-primary: #6ec6b1;
  /* 温柔青绿 */
  --mental-secondary: #a3d8f4;
  /* 天空浅蓝 */
  --mental-accent: #ffd6a5;
  /* 暖杏 */
  --mental-soft: #f6fffb;
  /* 极浅绿背景 */
  --mental-grad: linear-gradient(135deg, rgba(110, 198, 177, 0.18) 0%, rgba(163, 216, 244, 0.14) 100%);
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-text: #eaeaea;
    --color-text-muted: #a6a6a6;
    --color-bg: #0f1115;
    --color-bg-elev: #141720;
    --color-border: #202635;
    --shadow-card: 0 4px 16px rgba(0, 0, 0, 0.4);
  }
}

/* Light/Dark toggle via data-theme */
[data-theme="dark"] {
  --color-text: #eaeaea;
  --color-text-muted: #a6a6a6;
  --color-bg: #0f1115;
  --color-bg-elev: #141720;
  --color-border: #202635;
  --shadow-card: 0 4px 16px rgba(0, 0, 0, 0.4);
}

/* Care mode: comprehensive accessibility features */

/* 关怀模式基础 - 启用时应用 */
[data-care-enabled="1"] {
  /* 增加触摸目标大小 */
  --min-touch-target: 44px;
  /* 确保所有元素使用border-box，防止边框变化导致布局问题 */
  box-sizing: border-box;
}

[data-care-enabled="1"] *,
[data-care-enabled="1"] *::before,
[data-care-enabled="1"] *::after {
  box-sizing: border-box;
}

[data-care-enabled="1"] button,
[data-care-enabled="1"] .btn,
[data-care-enabled="1"] .chip,
[data-care-enabled="1"] .feature-card {
  min-height: var(--min-touch-target, 44px);
  min-width: var(--min-touch-target, 44px);
}

/* 防止内容溢出 */
[data-care-enabled="1"] .page-container,
[data-care-enabled="1"] .page {
  overflow-x: hidden;
  word-wrap: break-word;
  word-break: break-word;
}

[data-care-enabled="1"] .card,
[data-care-enabled="1"] .list-item,
[data-care-enabled="1"] .feature-card {
  overflow-wrap: break-word;
  word-wrap: break-word;
  max-width: 100%;
}

/* 字体大小设置 */
[data-care-font="normal"] {
  --care-font-scale: 1;
  --care-font-base: 16px;
}

[data-care-font="large"] {
  --care-font-scale: 1.125;
  --care-font-base: 18px;
}

[data-care-font="xlarge"] {
  --care-font-scale: 1.25;
  --care-font-base: 20px;
}

/* 应用字体大小到关怀模式 - 基础字体和行高 */
[data-care-enabled="1"][data-care-font="normal"] body,
[data-care-enabled="1"][data-care-font="normal"],
[data-care-enabled="1"][data-care-font="large"] body,
[data-care-enabled="1"][data-care-font="large"],
[data-care-enabled="1"][data-care-font="xlarge"] body,
[data-care-enabled="1"][data-care-font="xlarge"] {
  font-size: var(--care-font-base);
  line-height: 1.6;
  /* 增加行高，提高可读性 */
}

/* 全局间距调整 - 使布局更协调 */
[data-care-enabled="1"][data-care-font="large"],
[data-care-enabled="1"][data-care-font="xlarge"] {
  /* Grid gap 响应式 */
  --care-gap-scale: var(--care-font-scale);
}

/* 页面容器间距调整 */
[data-care-enabled="1"][data-care-font="large"] .page-container,
[data-care-enabled="1"][data-care-font="xlarge"] .page-container {
  padding: calc((12px + var(--safe-top)) * var(--care-font-scale)) calc(16px * var(--care-font-scale)) calc(12px * var(--care-font-scale)) calc(16px * var(--care-font-scale));
}

/* 卡片间距调整 */
[data-care-enabled="1"][data-care-font="large"] .card,
[data-care-enabled="1"][data-care-font="xlarge"] .card {
  margin-bottom: calc(12px * var(--care-font-scale));
}

/* 列表间距调整 */
[data-care-enabled="1"][data-care-font="large"] .list,
[data-care-enabled="1"][data-care-font="xlarge"] .list {
  gap: calc(12px * var(--care-font-scale));
}

/* Grid gap 调整 */
[data-care-enabled="1"][data-care-font="large"] .overview-grid,
[data-care-enabled="1"][data-care-font="xlarge"] .overview-grid {
  gap: calc(10px * var(--care-font-scale));
  margin-bottom: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .features-grid,
[data-care-enabled="1"][data-care-font="xlarge"] .features-grid {
  gap: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .form__row--cols2,
[data-care-enabled="1"][data-care-font="xlarge"] .form__row--cols2,
[data-care-enabled="1"][data-care-font="large"] .form__row--cols3,
[data-care-enabled="1"][data-care-font="xlarge"] .form__row--cols3 {
  gap: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .template-chips,
[data-care-enabled="1"][data-care-font="xlarge"] .template-chips {
  gap: calc(8px * var(--care-font-scale));
  margin-top: calc(4px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .chips,
[data-care-enabled="1"][data-care-font="xlarge"] .chips {
  gap: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .calendar__grid,
[data-care-enabled="1"][data-care-font="xlarge"] .calendar__grid {
  gap: calc(6px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .calendar__weekhead,
[data-care-enabled="1"][data-care-font="xlarge"] .calendar__weekhead {
  gap: calc(4px * var(--care-font-scale));
  margin-bottom: calc(6px * var(--care-font-scale));
}

/* 标题间距调整 */
[data-care-enabled="1"][data-care-font="large"] .page-title,
[data-care-enabled="1"][data-care-font="xlarge"] .page-title {
  margin: calc(4px * var(--care-font-scale)) 0 calc(12px * var(--care-font-scale)) 0;
  line-height: 1.4;
  /* 标题行高 */
}

[data-care-enabled="1"][data-care-font="large"] .section-title,
[data-care-enabled="1"][data-care-font="xlarge"] .section-title {
  margin: calc(8px * var(--care-font-scale)) 0;
  line-height: 1.4;
}

[data-care-enabled="1"][data-care-font="large"] .section-head,
[data-care-enabled="1"][data-care-font="xlarge"] .section-head {
  margin-bottom: calc(6px * var(--care-font-scale));
}

/* 表单间距调整 */
[data-care-enabled="1"][data-care-font="large"] .form,
[data-care-enabled="1"][data-care-font="xlarge"] .form {
  gap: calc(10px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .form__row,
[data-care-enabled="1"][data-care-font="xlarge"] .form__row {
  gap: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .form__error,
[data-care-enabled="1"][data-care-font="xlarge"] .form__error {
  margin-top: calc(4px * var(--care-font-scale));
  min-height: calc(16px * var(--care-font-scale));
}

/* 保持图标和图片大小不变 */
[data-care-enabled="1"][data-care-font="large"] img:not(.feature-card__icon):not(.tabbar__icon),
[data-care-enabled="1"][data-care-font="xlarge"] img:not(.feature-card__icon):not(.tabbar__icon),
[data-care-enabled="1"][data-care-font="large"] .feature-card__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .feature-card__icon,
[data-care-enabled="1"][data-care-font="large"] .tabbar__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .tabbar__icon {
  /* 保持图标和图片原始大小 */
  width: auto;
  height: auto;
  max-width: 100%;
}

[data-care-enabled="1"][data-care-font="large"] .feature-card__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .feature-card__icon {
  width: 28px !important;
  height: 28px !important;
}

[data-care-enabled="1"][data-care-font="large"] .tabbar__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .tabbar__icon {
  width: 22px !important;
  height: 22px !important;
}

/* 保持轮播图片区域不变 */
[data-care-enabled="1"][data-care-font="large"] .carousel-container,
[data-care-enabled="1"][data-care-font="xlarge"] .carousel-container,
[data-care-enabled="1"][data-care-font="large"] .carousel-slide,
[data-care-enabled="1"][data-care-font="xlarge"] .carousel-slide {
  /* 保持轮播容器尺寸 */
}

/* 图表容器保持原样 */
[data-care-enabled="1"][data-care-font="large"] .chart-wrap,
[data-care-enabled="1"][data-care-font="xlarge"] .chart-wrap,
[data-care-enabled="1"][data-care-font="large"] .chart-wrap canvas,
[data-care-enabled="1"][data-care-font="xlarge"] .chart-wrap canvas {
  /* 保持图表尺寸 */
}

/* 标题响应式 */
[data-care-enabled="1"][data-care-font="large"] .page-title,
[data-care-enabled="1"][data-care-font="xlarge"] .page-title {
  font-size: calc(20px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .section-title,
[data-care-enabled="1"][data-care-font="xlarge"] .section-title {
  font-size: calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .card__title,
[data-care-enabled="1"][data-care-font="xlarge"] .card__title {
  font-size: calc(16px * var(--care-font-scale));
}

/* 按钮响应式 - 包括高度、内边距、字体、边框圆角 */
[data-care-enabled="1"][data-care-font="large"] .btn,
[data-care-enabled="1"][data-care-font="xlarge"] .btn,
[data-care-enabled="1"][data-care-font="large"] button,
[data-care-enabled="1"][data-care-font="xlarge"] button {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
  padding: 0 calc(16px * var(--care-font-scale));
  height: calc(44px * var(--care-font-scale));
  min-height: calc(44px * var(--care-font-scale));
  border-radius: calc(22px * var(--care-font-scale));
  line-height: 1.5;
}

[data-care-enabled="1"][data-care-font="large"] .btn--block,
[data-care-enabled="1"][data-care-font="xlarge"] .btn--block {
  height: calc(48px * var(--care-font-scale));
  min-height: calc(48px * var(--care-font-scale));
  padding: 0 calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .btn--sm,
[data-care-enabled="1"][data-care-font="xlarge"] .btn--sm {
  height: calc(36px * var(--care-font-scale));
  min-height: calc(36px * var(--care-font-scale));
  padding: 0 calc(12px * var(--care-font-scale));
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
  border-radius: calc(18px * var(--care-font-scale));
}

/* 输入框响应式 - 确保高度、内边距、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] .input,
[data-care-enabled="1"][data-care-font="xlarge"] .input {
  font-size: var(--care-font-base);
  padding: 0 calc(12px * var(--care-font-scale));
  height: calc(44px * var(--care-font-scale));
  min-height: calc(44px * var(--care-font-scale));
  border-radius: calc(8px * var(--care-font-scale));
  line-height: 1.5;
}

[data-care-enabled="1"][data-care-font="large"] .input--sm,
[data-care-enabled="1"][data-care-font="xlarge"] .input--sm {
  height: calc(40px * var(--care-font-scale));
  min-height: calc(40px * var(--care-font-scale));
  padding: 0 calc(10px * var(--care-font-scale));
}

/* 表单标签响应式 */
[data-care-enabled="1"][data-care-font="large"] .form__label,
[data-care-enabled="1"][data-care-font="xlarge"] .form__label {
  font-size: calc(13px * var(--care-font-scale));
}

/* 卡片响应式 - 内边距和字体，保持比例 */
[data-care-enabled="1"][data-care-font="large"] .card,
[data-care-enabled="1"][data-care-font="xlarge"] .card {
  padding: calc(16px * var(--care-font-scale));
  font-size: var(--care-font-base);
  line-height: 1.6;
  border-radius: calc(var(--radius-md) * var(--care-font-scale));
  margin-bottom: calc(12px * var(--care-font-scale));
  min-height: auto;
}

[data-care-enabled="1"][data-care-font="large"] .card--section,
[data-care-enabled="1"][data-care-font="xlarge"] .card--section {
  padding: calc(14px * var(--care-font-scale));
  margin-bottom: calc(12px * var(--care-font-scale));
}

/* 列表项响应式 - 确保内边距、外边距、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] .list-item,
[data-care-enabled="1"][data-care-font="xlarge"] .list-item {
  padding: calc(10px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  font-size: var(--care-font-base);
  line-height: 1.5;
  border-radius: calc(10px * var(--care-font-scale));
  margin-bottom: calc(8px * var(--care-font-scale));
  min-height: calc(44px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .list-item__title,
[data-care-enabled="1"][data-care-font="xlarge"] .list-item__title {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .list-item__meta,
[data-care-enabled="1"][data-care-font="xlarge"] .list-item__meta {
  font-size: calc(12px * var(--care-font-scale));
}

/* 功能卡片响应式 - 保持图标大小，只调整文字和内边距 */
[data-care-enabled="1"][data-care-font="large"] .feature-card,
[data-care-enabled="1"][data-care-font="xlarge"] .feature-card {
  padding: calc(14px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  font-size: var(--care-font-base);
  gap: calc(8px * var(--care-font-scale));
  border-radius: calc(16px * var(--care-font-scale));
  min-height: calc(60px * var(--care-font-scale));
  margin-bottom: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .feature-card__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .feature-card__icon {
  /* 保持图标大小 */
  width: 28px;
  height: 28px;
}

[data-care-enabled="1"][data-care-font="large"] .feature-card__name,
[data-care-enabled="1"][data-care-font="xlarge"] .feature-card__name {
  font-size: calc(13px * var(--care-font-scale));
}

/* 标签响应式 - 确保内边距、高度、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] .chip,
[data-care-enabled="1"][data-care-font="xlarge"] .chip {
  padding: calc(10px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
  min-height: calc(44px * var(--care-font-scale));
  border-radius: calc(20px * var(--care-font-scale));
  gap: calc(6px * var(--care-font-scale));
}

/* 分段按钮响应式 - 确保内边距、高度、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] .segment,
[data-care-enabled="1"][data-care-font="xlarge"] .segment {
  gap: calc(4px * var(--care-font-scale));
  border-radius: calc(8px * var(--care-font-scale));
  padding: calc(2px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .segment__btn,
[data-care-enabled="1"][data-care-font="xlarge"] .segment__btn {
  padding: calc(8px * var(--care-font-scale)) calc(14px * var(--care-font-scale));
  font-size: calc(13px * var(--care-font-scale));
  min-height: calc(36px * var(--care-font-scale));
  border-radius: calc(6px * var(--care-font-scale));
}

/* 底部导航响应式 */
[data-care-enabled="1"][data-care-font="large"] .tabbar__text,
[data-care-enabled="1"][data-care-font="xlarge"] .tabbar__text {
  font-size: calc(12px * var(--care-font-scale));
}

/* 其他文本元素响应式 */
[data-care-enabled="1"][data-care-font="large"] .muted,
[data-care-enabled="1"][data-care-font="xlarge"] .muted {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .home-welcome__greet,
[data-care-enabled="1"][data-care-font="xlarge"] .home-welcome__greet {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .home-welcome__sub,
[data-care-enabled="1"][data-care-font="xlarge"] .home-welcome__sub {
  font-size: calc(13px * var(--care-font-scale));
}

/* 首页欢迎区域间距调整 */
[data-care-enabled="1"][data-care-font="large"] .home-welcome,
[data-care-enabled="1"][data-care-font="xlarge"] .home-welcome {
  padding: calc(16px * var(--care-font-scale));
  margin: calc(8px * var(--care-font-scale)) 0 calc(16px * var(--care-font-scale)) 0;
  gap: calc(12px * var(--care-font-scale));
  border-radius: calc(var(--radius-md) * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .home-welcome__avatar,
[data-care-enabled="1"][data-care-font="xlarge"] .home-welcome__avatar {
  /* 保持头像大小 */
  width: 48px;
  height: 48px;
}

/* Diary page header 间距调整 */
[data-care-enabled="1"][data-care-font="large"] .diary-page-header,
[data-care-enabled="1"][data-care-font="xlarge"] .diary-page-header {
  padding: calc(18px * var(--care-font-scale)) calc(22px * var(--care-font-scale));
  margin-bottom: calc(20px * var(--care-font-scale));
  border-radius: calc(20px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .diary-page-header__meta,
[data-care-enabled="1"][data-care-font="xlarge"] .diary-page-header__meta {
  gap: calc(10px * var(--care-font-scale));
}

/* 轮播区域间距调整 */
[data-care-enabled="1"][data-care-font="large"] .home-carousel,
[data-care-enabled="1"][data-care-font="xlarge"] .home-carousel {
  margin: calc(16px * var(--care-font-scale)) 0;
}

[data-care-enabled="1"][data-care-font="large"] .carousel-indicators,
[data-care-enabled="1"][data-care-font="xlarge"] .carousel-indicators {
  gap: calc(8px * var(--care-font-scale));
  margin-top: calc(12px * var(--care-font-scale));
  padding: 0 calc(8px * var(--care-font-scale));
}

/* 功能区域间距调整 */
[data-care-enabled="1"][data-care-font="large"] .home-features,
[data-care-enabled="1"][data-care-font="xlarge"] .home-features {
  margin-top: calc(4px * var(--care-font-scale));
}

/* 标签间距调整 */
[data-care-enabled="1"][data-care-font="large"] .selected-chips,
[data-care-enabled="1"][data-care-font="xlarge"] .selected-chips {
  gap: calc(6px * var(--care-font-scale));
  margin-top: calc(8px * var(--care-font-scale));
}

/* 症状网格间距调整 */
[data-care-enabled="1"][data-care-font="large"] .symptom-grid,
[data-care-enabled="1"][data-care-font="xlarge"] .symptom-grid {
  gap: calc(8px * var(--care-font-scale));
  margin-top: calc(8px * var(--care-font-scale));
}

/* Stepper 步骤条间距调整 */
[data-care-enabled="1"][data-care-font="large"] .stepper,
[data-care-enabled="1"][data-care-font="xlarge"] .stepper {
  margin: calc(8px * var(--care-font-scale)) 0 calc(12px * var(--care-font-scale)) 0;
  gap: calc(6px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .stepper__line,
[data-care-enabled="1"][data-care-font="xlarge"] .stepper__line {
  margin: 0 calc(6px * var(--care-font-scale));
}

/* Triage 头部间距调整 */
[data-care-enabled="1"][data-care-font="large"] .triage-header,
[data-care-enabled="1"][data-care-font="xlarge"] .triage-header {
  gap: calc(8px * var(--care-font-scale));
  margin-bottom: calc(8px * var(--care-font-scale));
}

/* Actions 间距调整 */
[data-care-enabled="1"][data-care-font="large"] .actions,
[data-care-enabled="1"][data-care-font="xlarge"] .actions {
  gap: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .actions--wrap,
[data-care-enabled="1"][data-care-font="xlarge"] .actions--wrap {
  gap: calc(8px * var(--care-font-scale));
  flex-wrap: wrap;
}

/* Triage footer 间距调整 */
[data-care-enabled="1"][data-care-font="large"] .triage-footer,
[data-care-enabled="1"][data-care-font="xlarge"] .triage-footer {
  gap: calc(8px * var(--care-font-scale));
  padding-top: calc(8px * var(--care-font-scale));
}

/* 进度条间距调整 */
[data-care-enabled="1"][data-care-font="large"] .progressbar,
[data-care-enabled="1"][data-care-font="xlarge"] .progressbar {
  margin-top: calc(8px * var(--care-font-scale));
  height: calc(8px * var(--care-font-scale));
}

/* Chart card 间距调整 */
[data-care-enabled="1"][data-care-font="large"] .chart-card,
[data-care-enabled="1"][data-care-font="xlarge"] .chart-card {
  margin-top: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .chart-title,
[data-care-enabled="1"][data-care-font="xlarge"] .chart-title {
  margin-bottom: calc(4px * var(--care-font-scale));
}

/* Calendar 间距调整 */
[data-care-enabled="1"][data-care-font="large"] .calendar,
[data-care-enabled="1"][data-care-font="xlarge"] .calendar {
  margin-bottom: calc(12px * var(--care-font-scale));
}

/* 海报卡片响应式 - 保持卡片尺寸，只调整文字 */
[data-care-enabled="1"][data-care-font="large"] .poster-card__title,
[data-care-enabled="1"][data-care-font="xlarge"] .poster-card__title {
  font-size: calc(18px * var(--care-font-scale));
  line-height: 1.4;
  margin-bottom: calc(10px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .poster-card__content,
[data-care-enabled="1"][data-care-font="xlarge"] .poster-card__content {
  font-size: calc(14px * var(--care-font-scale));
  line-height: 1.6;
  margin-bottom: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .poster-card__tip,
[data-care-enabled="1"][data-care-font="xlarge"] .poster-card__tip {
  font-size: calc(13px * var(--care-font-scale));
  padding: calc(8px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  line-height: 1.5;
}

/* Select 下拉框响应式 */
[data-care-enabled="1"][data-care-font="large"] select,
[data-care-enabled="1"][data-care-font="xlarge"] select,
[data-care-enabled="1"][data-care-font="large"] .input select,
[data-care-enabled="1"][data-care-font="xlarge"] .input select {
  font-size: var(--care-font-base);
  padding: 0 calc(12px * var(--care-font-scale));
  height: calc(40px * var(--care-font-scale));
}

/* Textarea 响应式 */
[data-care-enabled="1"][data-care-font="large"] textarea,
[data-care-enabled="1"][data-care-font="xlarge"] textarea,
[data-care-enabled="1"][data-care-font="large"] .input textarea {
  font-size: var(--care-font-base);
  padding: calc(8px * var(--care-font-scale));
}

/* 复选框和单选按钮响应式 */
[data-care-enabled="1"][data-care-font="large"] .checkbox,
[data-care-enabled="1"][data-care-font="xlarge"] .checkbox {
  font-size: calc(13px * var(--care-font-scale));
}

/* 导航按钮响应式 */
[data-care-enabled="1"][data-care-font="large"] .triage-header__back,
[data-care-enabled="1"][data-care-font="xlarge"] .triage-header__back {
  width: calc(36px * var(--care-font-scale));
  height: calc(36px * var(--care-font-scale));
  font-size: calc(20px * var(--care-font-scale));
}

/* Switch 开关响应式 */
[data-care-enabled="1"][data-care-font="large"] .switch {
  width: calc(44px * var(--care-font-scale));
  height: calc(24px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .switch .switch-slider:before,
[data-care-enabled="1"][data-care-font="xlarge"] .switch .switch-slider:before {
  width: calc(18px * var(--care-font-scale));
  height: calc(18px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="xlarge"] .switch {
  width: calc(44px * var(--care-font-scale));
  height: calc(24px * var(--care-font-scale));
}

/* 健康卡片响应式 */
[data-care-enabled="1"][data-care-font="large"] .kcard,
[data-care-enabled="1"][data-care-font="xlarge"] .kcard {
  padding: calc(10px * var(--care-font-scale));
  font-size: var(--care-font-base);
  line-height: 1.5;
  border-radius: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .kcard--metric,
[data-care-enabled="1"][data-care-font="xlarge"] .kcard--metric {
  gap: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .kcard__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .kcard__icon {
  /* 保持图标大小或轻微调整 */
  width: calc(36px * var(--care-font-scale));
  height: calc(36px * var(--care-font-scale));
  font-size: calc(18px * var(--care-font-scale));
  border-radius: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .kcard__title,
[data-care-enabled="1"][data-care-font="xlarge"] .kcard__title {
  font-size: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .kcard__value,
[data-care-enabled="1"][data-care-font="xlarge"] .kcard__value {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

/* 药品卡片响应式 */
[data-care-enabled="1"][data-care-font="large"] .med-card,
[data-care-enabled="1"][data-care-font="xlarge"] .med-card {
  padding: calc(16px * var(--care-font-scale));
  font-size: var(--care-font-base);
}

[data-care-enabled="1"][data-care-font="large"] .med-card__name,
[data-care-enabled="1"][data-care-font="xlarge"] .med-card__name {
  font-size: calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .med-card__spec,
[data-care-enabled="1"][data-care-font="xlarge"] .med-card__spec {
  font-size: calc(13px * var(--care-font-scale));
}

/* 文章卡片响应式 */
[data-care-enabled="1"][data-care-font="large"] .article-card,
[data-care-enabled="1"][data-care-font="xlarge"] .article-card {
  padding: calc(16px * var(--care-font-scale));
  font-size: var(--care-font-base);
}

[data-care-enabled="1"][data-care-font="large"] .article-card__title,
[data-care-enabled="1"][data-care-font="xlarge"] .article-card__title {
  font-size: calc(16px * var(--care-font-scale));
}

/* 咨询师卡片响应式 */
[data-care-enabled="1"][data-care-font="large"] .counselor-card,
[data-care-enabled="1"][data-care-font="xlarge"] .counselor-card {
  padding: calc(16px * var(--care-font-scale));
  font-size: var(--care-font-base);
}

[data-care-enabled="1"][data-care-font="large"] .counselor-card__name,
[data-care-enabled="1"][data-care-font="xlarge"] .counselor-card__name {
  font-size: calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .counselor-card__title,
[data-care-enabled="1"][data-care-font="xlarge"] .counselor-card__title {
  font-size: calc(12px * var(--care-font-scale));
}

/* 日历响应式 */
[data-care-enabled="1"][data-care-font="large"] .calendar__weekhead,
[data-care-enabled="1"][data-care-font="xlarge"] .calendar__weekhead {
  font-size: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .cal-cell,
[data-care-enabled="1"][data-care-font="xlarge"] .cal-cell {
  font-size: calc(13px * var(--care-font-scale));
  height: calc(42px * var(--care-font-scale));
}

/* 图表标题响应式 */
[data-care-enabled="1"][data-care-font="large"] .chart-title,
[data-care-enabled="1"][data-care-font="xlarge"] .chart-title {
  font-size: calc(13px * var(--care-font-scale));
}

/* Stepper 步骤条响应式 */
[data-care-enabled="1"][data-care-font="large"] .stepper__text,
[data-care-enabled="1"][data-care-font="xlarge"] .stepper__text {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .stepper__dot,
[data-care-enabled="1"][data-care-font="xlarge"] .stepper__dot {
  width: calc(22px * var(--care-font-scale));
  height: calc(22px * var(--care-font-scale));
  font-size: calc(12px * var(--care-font-scale));
}

/* 分诊标题响应式 */
[data-care-enabled="1"][data-care-font="large"] .triage-subtitle,
[data-care-enabled="1"][data-care-font="xlarge"] .triage-subtitle {
  font-size: calc(16px * var(--care-font-scale));
}

/* 进度条文本响应式 */
[data-care-enabled="1"][data-care-font="large"] .progress,
[data-care-enabled="1"][data-care-font="xlarge"] .progress {
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

/* 徽章响应式 */
[data-care-enabled="1"][data-care-font="large"] .badge,
[data-care-enabled="1"][data-care-font="xlarge"] .badge {
  padding: calc(2px * var(--care-font-scale)) calc(8px * var(--care-font-scale));
  font-size: calc(12px * var(--care-font-scale));
}

/* 快捷方式按钮响应式 */
[data-care-enabled="1"][data-care-font="large"] .shortcut,
[data-care-enabled="1"][data-care-font="xlarge"] .shortcut {
  padding: calc(12px * var(--care-font-scale));
  font-size: calc(var(--font-size-base) * var(--care-font-scale));
}

/* 轮播相关响应式 - 保持按钮和指示器大小不变，只调整字体 */
[data-care-enabled="1"][data-care-font="large"] .carousel-btn,
[data-care-enabled="1"][data-care-font="xlarge"] .carousel-btn {
  font-size: calc(20px * var(--care-font-scale));
  /* 保持按钮尺寸不变 */
}

[data-care-enabled="1"][data-care-font="large"] .carousel-indicator,
[data-care-enabled="1"][data-care-font="xlarge"] .carousel-indicator {
  /* 保持指示器尺寸不变 */
}

[data-care-enabled="1"][data-care-font="large"] .carousel-indicator.is-active,
[data-care-enabled="1"][data-care-font="xlarge"] .carousel-indicator.is-active {
  /* 保持激活状态尺寸不变 */
}

/* 轮播图片和海报卡片 - 保持尺寸不变 */
[data-care-enabled="1"][data-care-font="large"] .poster-card,
[data-care-enabled="1"][data-care-font="xlarge"] .poster-card {
  /* 保持内边距不变，只调整文字 */
}

[data-care-enabled="1"][data-care-font="large"] .poster-card__icon,
[data-care-enabled="1"][data-care-font="xlarge"] .poster-card__icon {
  /* 保持图标大小不变 */
  font-size: 48px;
}

/* 对比度模式 - 高对比 */
[data-care-enabled="1"][data-care-contrast="high"] {
  --color-text: #000000;
  --color-text-muted: #1a1a1a;
  --color-bg: #ffffff;
  --color-bg-elev: #ffffff;
  --color-border: #000000;
  --color-primary: #0066cc;
  --color-primary-weak: #e6f2ff;
}

/* 高对比度模式下的边框适配 - 使用box-sizing防止布局变化 */
[data-care-enabled="1"][data-care-contrast="high"] .btn--primary {
  background: #000000;
  color: #ffffff;
  border-color: #000000;
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] .btn--primary:hover,
[data-care-enabled="1"][data-care-contrast="high"] .btn--primary:active {
  background: #333333;
  border-color: #333333;
}

[data-care-enabled="1"][data-care-contrast="high"] .btn {
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] .input {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] .input:focus {
  border-color: #0066cc;
  box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.3);
  outline: 2px solid #0066cc;
  outline-offset: 2px;
}

[data-care-enabled="1"][data-care-contrast="high"] .card {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] .tabbar {
  border-top-width: 2px;
  border-top-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] .muted {
  color: #1a1a1a;
}

[data-care-enabled="1"][data-care-contrast="high"] .chip,
[data-care-enabled="1"][data-care-contrast="high"] .feature-card,
[data-care-enabled="1"][data-care-contrast="high"] .list-item {
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] select,
[data-care-enabled="1"][data-care-contrast="high"] textarea {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

/* 简化布局 */
[data-care-enabled="1"][data-care-simple="1"] .card {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .feature-card {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .tabbar {
  box-shadow: none !important;
  border-top-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .btn {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .input:focus {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5) !important;
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

[data-care-enabled="1"][data-care-simple="1"] .poster-card {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .home-welcome {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 简化布局 - 增加间距，但保持响应式 */
[data-care-enabled="1"][data-care-simple="1"] .card {
  margin-bottom: 16px;
}

[data-care-enabled="1"][data-care-simple="1"][data-care-font="large"] .card,
[data-care-enabled="1"][data-care-simple="1"][data-care-font="xlarge"] .card {
  padding: calc(18px * var(--care-font-scale));
  margin-bottom: calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-simple="1"] .form__row {
  margin-bottom: 16px;
}

[data-care-enabled="1"][data-care-simple="1"][data-care-font="large"] .form__row,
[data-care-enabled="1"][data-care-simple="1"][data-care-font="xlarge"] .form__row {
  margin-bottom: calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-simple="1"] .list-item {
  margin-bottom: 8px;
}

[data-care-enabled="1"][data-care-simple="1"][data-care-font="large"] .list-item,
[data-care-enabled="1"][data-care-simple="1"][data-care-font="xlarge"] .list-item {
  padding: calc(14px * var(--care-font-scale));
  margin-bottom: calc(8px * var(--care-font-scale));
}

/* 简化布局 - 移除渐变和装饰 */
[data-care-enabled="1"][data-care-simple="1"] .poster-card::before,
[data-care-enabled="1"][data-care-simple="1"] .home-welcome,
[data-care-enabled="1"][data-care-simple="1"] .diary-page-header {
  background: var(--color-bg-elev) !important;
  background-image: none !important;
}

[data-care-enabled="1"][data-care-simple="1"] .med-card::before,
[data-care-enabled="1"][data-care-simple="1"] .meds-card::before {
  display: none;
}

/* 聊天容器关怀模式适配 */
[data-care-enabled="1"] .chat-container {
  overflow-x: hidden;
  word-wrap: break-word;
  max-width: 100%;
}

[data-care-enabled="1"][data-care-font="large"] .chat-container,
[data-care-enabled="1"][data-care-font="xlarge"] .chat-container {
  border-radius: calc(16px * var(--care-font-scale)) calc(16px * var(--care-font-scale)) 0 0;
}

[data-care-enabled="1"][data-care-font="large"] .chat-messages,
[data-care-enabled="1"][data-care-font="xlarge"] .chat-messages {
  padding: calc(16px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  gap: calc(8px * var(--care-font-scale));
  font-size: var(--care-font-base);
}

[data-care-enabled="1"][data-care-font="large"] .chat-message,
[data-care-enabled="1"][data-care-font="xlarge"] .chat-message {
  max-width: 85%;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

[data-care-enabled="1"][data-care-font="large"] .chat-message__content,
[data-care-enabled="1"][data-care-font="xlarge"] .chat-message__content {
  padding: calc(10px * var(--care-font-scale)) calc(14px * var(--care-font-scale));
  font-size: var(--care-font-base);
  line-height: 1.6;
  border-radius: calc(18px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .chat-input,
[data-care-enabled="1"][data-care-font="xlarge"] .chat-input {
  font-size: var(--care-font-base);
  padding: calc(10px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  height: calc(44px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .chat-container {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .chat-container {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 模态框关怀模式适配 */
[data-care-enabled="1"] .custom-modal__content {
  overflow-x: hidden;
  word-wrap: break-word;
  max-width: 90%;
}

[data-care-enabled="1"][data-care-font="large"] .custom-modal__content,
[data-care-enabled="1"][data-care-font="xlarge"] .custom-modal__content {
  padding: calc(18px * var(--care-font-scale)) calc(20px * var(--care-font-scale));
  border-radius: calc(16px * var(--care-font-scale));
  font-size: var(--care-font-base);
}

[data-care-enabled="1"][data-care-font="large"] .custom-modal__title,
[data-care-enabled="1"][data-care-font="xlarge"] .custom-modal__title {
  font-size: calc(18px * var(--care-font-scale));
  margin-bottom: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .custom-modal__message,
[data-care-enabled="1"][data-care-font="xlarge"] .custom-modal__message {
  font-size: var(--care-font-base);
  line-height: 1.6;
}

[data-care-enabled="1"][data-care-contrast="high"] .custom-modal__content {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .custom-modal__content {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 欢迎卡片关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .welcome-card,
[data-care-enabled="1"][data-care-font="xlarge"] .welcome-card {
  padding: calc(18px * var(--care-font-scale)) calc(20px * var(--care-font-scale));
  border-radius: calc(16px * var(--care-font-scale));
  font-size: var(--care-font-base);
  max-width: 90%;
}

[data-care-enabled="1"][data-care-font="large"] .welcome-title,
[data-care-enabled="1"][data-care-font="xlarge"] .welcome-title {
  font-size: calc(18px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .welcome-card {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .welcome-card {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 设置页面关怀模式适配 - 确保内边距、外边距、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] .settings-card,
[data-care-enabled="1"][data-care-font="xlarge"] .settings-card {
  border-radius: calc(12px * var(--care-font-scale));
  margin: 0 calc(16px * var(--care-font-scale)) calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .settings-list-item,
[data-care-enabled="1"][data-care-font="xlarge"] .settings-list-item {
  padding: calc(16px * var(--care-font-scale)) calc(18px * var(--care-font-scale));
  font-size: var(--care-font-base);
  gap: calc(12px * var(--care-font-scale));
  min-height: calc(56px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .settings-section-title,
[data-care-enabled="1"][data-care-font="xlarge"] .settings-section-title {
  font-size: calc(14px * var(--care-font-scale));
  margin: 0 0 calc(8px * var(--care-font-scale)) calc(16px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .settings-icon,
[data-care-enabled="1"][data-care-font="xlarge"] .settings-icon {
  font-size: calc(20px * var(--care-font-scale));
  width: calc(24px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .settings-card {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-contrast="high"] .settings-list-item {
  border-bottom-width: 2px;
  border-bottom-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .settings-card {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 表格和列表关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] table,
[data-care-enabled="1"][data-care-font="xlarge"] table {
  font-size: var(--care-font-base);
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
}

[data-care-enabled="1"][data-care-font="large"] th,
[data-care-enabled="1"][data-care-font="xlarge"] th,
[data-care-enabled="1"][data-care-font="large"] td,
[data-care-enabled="1"][data-care-font="xlarge"] td {
  padding: calc(8px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  font-size: var(--care-font-base);
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* 防止所有容器溢出 */
[data-care-enabled="1"] img,
[data-care-enabled="1"] video,
[data-care-enabled="1"] iframe {
  max-width: 100%;
  height: auto;
}

[data-care-enabled="1"] .grid,
[data-care-enabled="1"] .overview-grid,
[data-care-enabled="1"] .features-grid {
  width: 100%;
  overflow-x: hidden;
}

/* 表单元素关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .form,
[data-care-enabled="1"][data-care-font="xlarge"] .form {
  gap: calc(10px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .form__label,
[data-care-enabled="1"][data-care-font="xlarge"] .form__label {
  font-size: calc(13px * var(--care-font-scale));
  margin-bottom: calc(6px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .form__error,
[data-care-enabled="1"][data-care-font="xlarge"] .form__error {
  font-size: calc(12px * var(--care-font-scale));
  margin-top: calc(4px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .form__label {
  color: #000000;
  font-weight: 600;
}

[data-care-enabled="1"][data-care-contrast="high"] .form__error {
  color: #cc0000;
  font-weight: 600;
}

/* 选择器关怀模式适配 - 确保高度、内边距、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] select,
[data-care-enabled="1"][data-care-font="xlarge"] select {
  font-size: var(--care-font-base);
  padding: 0 calc(12px * var(--care-font-scale));
  height: calc(44px * var(--care-font-scale));
  min-height: calc(44px * var(--care-font-scale));
  border-radius: calc(8px * var(--care-font-scale));
  line-height: 1.5;
}

[data-care-enabled="1"][data-care-contrast="high"] select {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] select {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 文本域关怀模式适配 - 确保内边距、高度、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] textarea,
[data-care-enabled="1"][data-care-font="xlarge"] textarea {
  font-size: var(--care-font-base);
  padding: calc(10px * var(--care-font-scale)) calc(12px * var(--care-font-scale));
  line-height: 1.6;
  border-radius: calc(8px * var(--care-font-scale));
  min-height: calc(100px * var(--care-font-scale));
  resize: vertical;
}

[data-care-enabled="1"][data-care-contrast="high"] textarea {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] textarea {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 复选框和单选按钮关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .checkbox,
[data-care-enabled="1"][data-care-font="xlarge"] .checkbox,
[data-care-enabled="1"][data-care-font="large"] .radio,
[data-care-enabled="1"][data-care-font="xlarge"] .radio {
  font-size: calc(13px * var(--care-font-scale));
  gap: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] input[type="checkbox"],
[data-care-enabled="1"][data-care-font="xlarge"] input[type="checkbox"],
[data-care-enabled="1"][data-care-font="large"] input[type="radio"],
[data-care-enabled="1"][data-care-font="xlarge"] input[type="radio"] {
  width: calc(18px * var(--care-font-scale));
  height: calc(18px * var(--care-font-scale));
  min-width: calc(18px * var(--care-font-scale));
  min-height: calc(18px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] input[type="checkbox"],
[data-care-enabled="1"][data-care-contrast="high"] input[type="radio"] {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

/* 分段按钮关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .segment,
[data-care-enabled="1"][data-care-font="xlarge"] .segment {
  gap: calc(4px * var(--care-font-scale));
  border-radius: calc(8px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .segment__btn {
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .segment {
  box-shadow: none !important;
}

/* 标签页关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .tabs,
[data-care-enabled="1"][data-care-font="xlarge"] .tabs {
  gap: calc(8px * var(--care-font-scale));
  margin-bottom: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-font="large"] .tab,
[data-care-enabled="1"][data-care-font="xlarge"] .tab {
  padding: calc(8px * var(--care-font-scale)) calc(16px * var(--care-font-scale));
  font-size: calc(14px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .tab {
  border-width: 2px;
  box-sizing: border-box;
}

[data-care-enabled="1"][data-care-simple="1"] .tab {
  box-shadow: none !important;
  border-width: 2px;
  box-sizing: border-box;
}

/* 进度条关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .progressbar,
[data-care-enabled="1"][data-care-font="xlarge"] .progressbar {
  height: calc(8px * var(--care-font-scale));
  border-radius: calc(4px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .progressbar {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

/* 徽章关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .badge,
[data-care-enabled="1"][data-care-font="xlarge"] .badge {
  padding: calc(2px * var(--care-font-scale)) calc(8px * var(--care-font-scale));
  font-size: calc(12px * var(--care-font-scale));
  border-radius: calc(12px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .badge {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

/* 工具提示关怀模式适配 */
[data-care-enabled="1"][data-care-font="large"] .tooltip,
[data-care-enabled="1"][data-care-font="xlarge"] .tooltip {
  font-size: calc(12px * var(--care-font-scale));
  padding: calc(6px * var(--care-font-scale)) calc(10px * var(--care-font-scale));
}

[data-care-enabled="1"][data-care-contrast="high"] .tooltip {
  border-width: 2px;
  border-color: #000000;
  box-sizing: border-box;
}

/* 确保所有交互元素都有足够的触摸目标 */
[data-care-enabled="1"] a,
[data-care-enabled="1"] .link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: calc(8px * var(--care-font-scale, 1));
}

/* 确保所有文本都能正确换行 */
[data-care-enabled="1"] p,
[data-care-enabled="1"] span,
[data-care-enabled="1"] div,
[data-care-enabled="1"] h1,
[data-care-enabled="1"] h2,
[data-care-enabled="1"] h3,
[data-care-enabled="1"] h4,
[data-care-enabled="1"] h5,
[data-care-enabled="1"] h6 {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* 确保所有容器都能正确滚动 */
[data-care-enabled="1"] .scrollable,
[data-care-enabled="1"] [data-scrollable] {
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

/* 响应式容器最大宽度限制 */
[data-care-enabled="1"] .container,
[data-care-enabled="1"] .page-container {
  max-width: 100%;
  width: 100%;
  overflow-x: hidden;
}

/* 通用容器适配 - 确保所有容器内边距、外边距、边框都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] .container,
[data-care-enabled="1"][data-care-font="xlarge"] .container,
[data-care-enabled="1"][data-care-font="large"] .wrapper,
[data-care-enabled="1"][data-care-font="xlarge"] .wrapper {
  padding: calc(16px * var(--care-font-scale));
  gap: calc(12px * var(--care-font-scale));
}

/* 确保所有间距（margin、padding、gap）都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] *,
[data-care-enabled="1"][data-care-font="xlarge"] * {
  /* 使用CSS变量来统一管理间距 */
}

/* 确保所有边框圆角都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] [class*="radius"],
[data-care-enabled="1"][data-care-font="xlarge"] [class*="radius"] {
  border-radius: calc(var(--radius-md, 12px) * var(--care-font-scale));
}

/* 确保所有有边框的元素边框宽度也适当调整 */
[data-care-enabled="1"][data-care-font="large"] [class*="border"],
[data-care-enabled="1"][data-care-font="xlarge"] [class*="border"] {
  border-width: calc(1px * var(--care-font-scale));
}

/* 确保所有flex容器的gap都随字体缩放 */
[data-care-enabled="1"][data-care-font="large"] [style*="gap"],
[data-care-enabled="1"][data-care-font="xlarge"] [style*="gap"],
[data-care-enabled="1"][data-care-font="large"] .flex,
[data-care-enabled="1"][data-care-font="xlarge"] .flex {
  gap: calc(var(--gap, 8px) * var(--care-font-scale));
}

/* Switch 开关组件 */
.switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch .switch-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--color-border);
  transition: 0.3s;
  border-radius: 24px;
}

.switch .switch-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.3s;
  border-radius: 50%;
}

.switch input:checked+.switch-slider {
  background-color: var(--color-primary);
}

.switch input:focus+.switch-slider {
  box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.2);
}

.switch input:checked+.switch-slider:before {
  transform: translateX(20px);
}

.switch input:disabled+.switch-slider {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 关怀模式预览区域 */
#care-preview-card {
  transition: all 0.3s ease;
  margin-top: 8px;
}

#care-preview {
  min-height: 80px;
  transition: all 0.3s ease;
}

/* 预览区域应用关怀模式样式 - 通过父元素属性控制 */
#care-preview-card[data-care-preview-enabled="1"] {
  border-width: 2px;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="large"] {
  font-size: 18px;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="large"] #care-preview,
#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="large"] .card__title,
#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="large"] .muted {
  font-size: 18px;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="xlarge"] {
  font-size: 20px;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="xlarge"] #care-preview,
#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="xlarge"] .card__title,
#care-preview-card[data-care-preview-enabled="1"][data-care-preview-font="xlarge"] .muted {
  font-size: 20px;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-contrast="high"] {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  border-width: 2px;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-contrast="high"] .card__title {
  color: #000000;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-contrast="high"] .muted {
  color: #1a1a1a;
}

#care-preview-card[data-care-preview-enabled="1"][data-care-preview-simple="1"] {
  box-shadow: none !important;
  border-width: 2px;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Smooth behaviors */
html {
  scroll-behavior: smooth;
}

/* Generic transitions to soften interactions (limit to safe properties) */
*,
*::before,
*::after {
  transition: color .2s ease-in-out, background-color .2s ease-in-out, border-color .2s ease-in-out;
  will-change: auto;
}

/* Buttons micro-interactions */
.btn {
  transition: transform .18s ease-in-out, box-shadow .22s ease-in-out, background-color .2s ease-in-out, border-color .2s ease-in-out;
  will-change: transform, box-shadow;
}

.btn:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.btn:active,
.btn.is-pressed {
  transform: scale(0.97);
}

/* Ripple (ink) effect container */
.btn,
.feature-card,
.chip {
  position: relative;
  overflow: hidden;
}

.ripple-wave {
  position: absolute;
  border-radius: 999px;
  transform: translate(-50%, -50%) scale(0);
  pointer-events: none;
  opacity: .25;
  animation: ripple-anim .45s ease-out forwards;
  background: currentColor;
}

@keyframes ripple-anim {
  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0;
  }
}

/* Inputs focus/validation feedback */
.input {
  transition: border-color .2s ease-in-out, box-shadow .2s ease-in-out, background-color .2s ease-in-out;
}

.input.is-valid {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.18);
}

.input.is-invalid {
  border-color: #ff4d4f;
  box-shadow: 0 0 0 3px rgba(255, 77, 79, 0.18);
}

/* Cards and menus show/hide softening */
.card {
  transition: box-shadow .25s ease-in-out, transform .25s ease-in-out, background-color .2s ease-in-out, border-color .2s ease-in-out;
}

.card--enter {
  opacity: 0;
  transform: translateY(8px);
  animation: fade-in .3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.card--leave {
  animation: fade-out .2s ease-in-out forwards;
}

/* Stagger animation for list items */
.stagger-item {
  opacity: 0;
  transform: translateY(10px);
  animation: stagger-fade-in .4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.stagger-item:nth-child(1) {
  animation-delay: 0.05s;
}

.stagger-item:nth-child(2) {
  animation-delay: 0.1s;
}

.stagger-item:nth-child(3) {
  animation-delay: 0.15s;
}

.stagger-item:nth-child(4) {
  animation-delay: 0.2s;
}

.stagger-item:nth-child(5) {
  animation-delay: 0.25s;
}

.stagger-item:nth-child(6) {
  animation-delay: 0.3s;
}

.stagger-item:nth-child(7) {
  animation-delay: 0.35s;
}

.stagger-item:nth-child(8) {
  animation-delay: 0.4s;
}

.stagger-item:nth-child(n+9) {
  animation-delay: 0.45s;
}

@keyframes stagger-fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Global utility: high-quality staggered entry */
.animate-enter {
  opacity: 0;
  animation: stagger-fade-up 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-delay: var(--animate-delay, 0s);
}

.delay-1 {
  --animate-delay: 0.1s;
}

.delay-2 {
  --animate-delay: 0.2s;
}

.delay-3 {
  --animate-delay: 0.3s;
}

.delay-4 {
  --animate-delay: 0.4s;
}

.delay-5 {
  --animate-delay: 0.5s;
}

.delay-6 {
  --animate-delay: 0.6s;
}

@keyframes stagger-fade-up {
  from {
    opacity: 0;
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* Page transitions: entering/leaving with direction awareness */
.page {
  will-change: opacity, transform;
  position: relative;
  overflow: hidden;
}

.page--active {
  opacity: 1;
}

.page--leaving {
  animation: slide-fade-out .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.page--enter {
  animation: fade-in-up 0.45s cubic-bezier(0.23, 1, 0.32, 1) both;
}

.page--enter.page--slide-left {
  animation: fade-in-up 0.45s cubic-bezier(0.23, 1, 0.32, 1) both,
    slide-in-left 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.page--enter.page--slide-right {
  animation: fade-in-up 0.45s cubic-bezier(0.23, 1, 0.32, 1) both,
    slide-in-right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Direction-aware page transitions */
.page--slide-left,
.page--slide-right {
  will-change: transform, opacity;
}

.page--leaving-left {
  animation: slide-out-left .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.page--leaving-right {
  animation: slide-out-right .3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-out {
  from {
    opacity: 1;
    transform: translateY(0);
  }

  to {
    opacity: 0;
    transform: translateY(4px);
  }
}

@keyframes slide-fade-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 统一的页面进入动画 - 应用于所有页面 */
@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translate3d(0, 32px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, -2px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slide-fade-out {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  to {
    opacity: 0;
    transform: translateY(-8px) scale(0.98);
  }
}

@keyframes slide-in-left {
  from {
    opacity: 0;
    transform: translateX(20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slide-in-right {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slide-out-left {
  from {
    opacity: 1;
    transform: translateX(0);
  }

  to {
    opacity: 0;
    transform: translateX(-20px);
  }
}

@keyframes slide-out-right {
  from {
    opacity: 1;
    transform: translateX(0);
  }

  to {
    opacity: 0;
    transform: translateX(20px);
  }
}

/* Hover/active unification for chips/feature-card */
.chip {
  transition: transform .16s cubic-bezier(0.4, 0, 0.2, 1),
    background-color .2s ease-in-out,
    border-color .2s ease-in-out;
  will-change: transform;
}

.chip:active {
  transform: scale(0.95);
}

.feature-card {
  transition: transform .2s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow .25s cubic-bezier(0.4, 0, 0.2, 1),
    background-color .2s ease-in-out;
  will-change: transform, box-shadow;
}

.feature-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.feature-card:active,
.feature-card.is-pressed {
  transform: scale(0.97) translateY(0);
}

/* Subtle lift on hover (desktop) */
@media (hover:hover) and (pointer:fine) {

  .btn:hover,
  .feature-card:hover {
    transform: translateY(-2px);
  }
}

/* Tabbar interactions - moved to components.css */

/* Reduce motion respect */
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }

  .page--active,
  .page--enter,
  .page--leaving,
  .page--slide-left,
  .page--slide-right,
  .page--leaving-left,
  .page--leaving-right,
  .animate-enter {
    animation: none !important;
  }
}

.app {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

.page-container {
  flex: 1 1 auto;
  min-height: 0;
  /* allow child to shrink on mobile */
  padding: calc(12px + var(--safe-top)) 16px 12px 16px;
  padding-bottom: calc(var(--tabbar-height) + var(--safe-bottom) + 24px);
}

/* Ensure every page content has extra breathing room above the fixed tabbar */
.page {
  padding-bottom: calc(var(--tabbar-height) + var(--safe-bottom) + 16px);
}

.page-title {
  font-size: 20px;
  font-weight: 700;
  margin: 4px 0 12px 0;
}

/* 隐藏首页标题 */
#page-home #home-title {
  display: none;
}

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

.text-success {
  color: var(--color-primary);
}

.text-warning {
  color: #faad14;
}

/* Cards and basic UI */
.card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 16px;
  box-shadow: var(--shadow-card);
  margin-bottom: 12px;
}

.card__title {
  font-size: 16px;
  margin: 0 0 6px 0;
}

.card__desc {
  color: var(--color-text-muted);
  margin: 0 0 12px 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--color-border);
}

.btn--primary {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

.btn--danger {
  background: #ff4d4f;
  color: #fff;
  border-color: #ff4d4f;
}

.btn--block {
  width: 100%;
  height: 44px;
}

.btn--sm {
  height: 32px;
  padding: 0 10px;
  border-radius: 10px;
}

.btn--ghost {
  background: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.btn[disabled] {
  opacity: .5;
  cursor: not-allowed;
}

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.shortcut {
  background: var(--color-primary-weak);
  color: var(--color-primary);
  border-radius: var(--radius-sm);
  padding: 12px;
  text-align: center;
}

/* Page views */
.page {
  display: none;
  animation: slide-fade-in 200ms ease;
}

.page--active {
  display: block;
}

@keyframes slide-fade-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Bottom Tab Bar */
.tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(var(--tabbar-height) + var(--safe-bottom));
  padding-bottom: var(--safe-bottom);
  background: var(--color-bg-elev);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  z-index: 100;
}

.tabbar__item {
  flex: 1 1 25%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--color-text-muted);
}

.tabbar__item.is-active {
  color: var(--color-primary);
}

.tabbar__icon {
  width: 22px;
  height: 22px;
  filter: none;
  /* 图标颜色会通过 JavaScript 动态更新 */
}

.tabbar__item.is-active .tabbar__icon {
  /* 激活状态的图标颜色会通过 JavaScript 动态设置为主题色 */
  filter: var(--tabbar-icon-filter, none);
}

.tabbar__text {
  font-size: 12px;
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
  .page {
    animation: none;
  }
}

/* Auth pages */
.auth-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 16px;
  box-shadow: var(--shadow-card);
}

.auth-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.auth-brand__logo {
  width: 28px;
  height: 28px;
}

.auth-brand__name {
  font-weight: 700;
  font-size: 18px;
}

.form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.form__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
}

.form__row--password {
  position: relative;
  grid-template-columns: 1fr auto;
}

.form__row--code {
  grid-template-columns: 1fr auto;
}

.form__label {
  grid-column: 1 / -1;
  font-size: 13px;
  color: var(--color-text-muted);
}

.input {
  grid-column: 1 / 2;
  appearance: none;
  width: 100%;
  height: 40px;
  padding: 0 12px;
  background: var(--color-bg);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 10px;
}

.input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.15);
}

.input-toggle {
  grid-column: 2 / 3;
  color: var(--color-primary);
}

.input--sm {
  height: 36px;
}

.checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--color-text-muted);
}

.form__error {
  grid-column: 1 / -1;
  color: #ff4d4f;
  font-size: 12px;
  min-height: 16px;
}

.form__extras {
  display: flex;
  justify-content: flex-end;
}

.form__footer {
  text-align: center;
  color: var(--color-text-muted);
}

.link {
  color: var(--color-primary);
  text-decoration: none;
}

.link:active {
  opacity: .8;
}

.hidden {
  display: none !important;
}

/* Home: Welcome banner */
.home-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  margin: 8px 0 16px 0;
  border-radius: var(--radius-md);
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
}

.home-welcome__content {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}

.home-welcome__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.home-welcome__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.home-welcome__text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

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

.home-welcome__sub {
  color: var(--color-text-muted);
  font-size: 13px;
}

.home-welcome__date {
  color: var(--color-text);
  font-size: 14px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Home: Carousel */
.home-carousel {
  margin: 12px 0;
  /* 只保留上下间距 */
  position: relative;
  /* 使用负边距延伸到页面边缘，消除左右空白，实现无缝显示 */
  margin-left: -16px;
  margin-right: -16px;
  width: calc(100% + 32px);
}

.carousel-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  /* 移除所有圆角和内边距，实现无缝显示 */
  border-radius: 0;
  padding: 0;
  margin: 0;
}

.carousel-track {
  display: -webkit-box;
  /* 旧版 Safari */
  display: -webkit-flex;
  /* Safari 6.1+ */
  display: -ms-flexbox;
  /* IE 10 */
  display: flex;
  -webkit-flex-direction: row;
  /* 确保横向排列 */
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  /* 防止换行 */
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-box-orient: horizontal;
  /* 旧版webkit */
  -webkit-box-direction: normal;
  /* 旧版webkit */
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  -ms-transition: -ms-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  /* 确保无缝衔接，无间隙 */
  gap: 0;
  margin: 0;
  padding: 0;
  /* 确保横向排列，不换行 */
  white-space: nowrap;
  /* 防止换行 */
  word-wrap: normal;
  word-break: normal;
}

/* 微信浏览器特殊处理 - 使用绝对定位和显示/隐藏 */
.wechat-browser .carousel-track {
  position: relative;
  display: block !important;
  width: 100%;
  height: auto;
  min-height: 120px;
  /* 清除flex相关属性 */
  -webkit-box-orient: initial !important;
  -webkit-box-direction: initial !important;
  -webkit-flex-direction: initial !important;
  flex-direction: initial !important;
  -webkit-flex-wrap: initial !important;
  flex-wrap: initial !important;
}

.wechat-browser .carousel-slide {
  position: absolute !important;
  top: 0;
  left: 0;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.4s ease, visibility 0.4s ease;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  /* 清除flex相关属性 */
  display: flex !important;
  -webkit-box-flex: initial !important;
  -webkit-flex-grow: initial !important;
  flex-grow: initial !important;
  -webkit-flex-shrink: initial !important;
  flex-shrink: initial !important;
  -webkit-flex-basis: initial !important;
  flex-basis: initial !important;
}

.wechat-browser .carousel-slide.is-active {
  position: relative !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 1;
}

.carousel-track:active {
  cursor: grabbing;
}

.carousel-slide {
  display: -webkit-box;
  /* 旧版 Safari */
  display: -webkit-flex;
  /* Safari 6.1+ */
  display: -ms-flexbox;
  /* IE 10 */
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  /* 确保每个slide占据全宽，防止竖直排列 */
  min-width: 100%;
  width: 100%;
  max-width: 100%;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -webkit-flex-basis: 100%;
  -ms-flex-preferred-size: 100%;
  flex-basis: 100%;
  -webkit-box-flex: 0;
  /* 旧版webkit */
  -ms-flex-positive: 0;
  flex-grow: 0;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  /* 确保无缝衔接 */
  overflow: hidden;
  position: relative;
  /* 消除任何可能的间隙 */
  line-height: 0;
  font-size: 0;
  /* 确保图片垂直居中显示 */
  background: var(--color-bg);
  /* 防止换行 */
  white-space: nowrap;
  /* 防止换行 */
  word-wrap: normal;
  word-break: normal;
  /* 确保横向排列 */
  float: none;
  clear: none;
}

/* 轮播图片样式 - 完整显示，不被裁剪 */
.carousel-image {
  width: 100%;
  height: auto;
  /* 高度自适应，保持图片比例 */
  max-height: 200px;
  /* 限制最大高度，避免图片过大 */
  min-height: 120px;
  /* 设置最小高度，确保可见 */
  object-fit: contain;
  /* 使用contain保持图片完整，不被裁剪 */
  object-position: center;
  /* 居中显示 */
  display: block;
  pointer-events: none;
  /* 防止图片拖拽 */
  user-select: none;
  -webkit-user-select: none;
  /* 移除所有边距和圆角，实现无缝 */
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  /* 确保图片之间完全无缝，消除任何可能的间隙 */
  vertical-align: top;
  line-height: 0;
  /* 确保图片紧贴容器边缘 */
  position: relative;
}

@media (min-width: 520px) {
  .carousel-image {
    max-height: 240px;
    /* 桌面端稍大一些 */
    min-height: 140px;
  }
}

@media (min-width: 768px) {
  .carousel-image {
    max-height: 280px;
    /* 大屏幕更大 */
    min-height: 160px;
  }
}

/* Home: Info/Quote Section */
.home-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  margin: 12px 0;
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  gap: 12px;
}

.home-info__icon {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.info-icon {
  width: 24px;
  height: 24px;
  opacity: 0.8;
}

.info-label {
  font-size: 13px;
  color: var(--color-primary);
  font-weight: 500;
}

.home-info__quote {
  flex: 1;
  text-align: right;
  overflow: hidden;
  height: 21px;
  /* 一行文字的高度 */
  position: relative;
}

.quote-carousel {
  position: relative;
  height: 21px;
  /* 固定高度，确保只显示一行 */
  overflow: hidden;
  width: 100%;
}

.quote-carousel__container {
  position: relative;
  will-change: transform;
  /* 优化动画性能 */
  -webkit-transform: translateZ(0);
  /* 开启硬件加速 */
  transform: translateZ(0);
}

.quote-text {
  font-size: 14px;
  color: var(--color-text);
  margin: 0;
  line-height: 21px;
  /* 与高度一致 */
  height: 21px;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}

/* 微信浏览器特殊处理 */
.wechat-browser .quote-carousel {
  height: 21px;
  overflow: hidden;
}

.wechat-browser .quote-carousel__container {
  transition: transform 0.5s ease-in-out;
}

/* Home: Schedule Section */
.home-schedule {
  margin-top: 16px;
}

.schedule-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  position: relative;
}

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

.schedule-title__underline {
  flex: 1;
  height: 2px;
  background: var(--color-primary);
  opacity: 0.3;
  border-radius: 1px;
}

.schedule-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.schedule-item {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.schedule-item:active {
  transform: scale(0.98);
}

.schedule-item__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.schedule-item__title {
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text);
}

.schedule-item__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--color-text-muted);
}

.schedule-item__time {
  display: flex;
  align-items: center;
  gap: 4px;
}

.schedule-item__time::before {
  content: '🕐';
  font-size: 14px;
}

.schedule-item__location {
  display: flex;
  align-items: center;
  gap: 4px;
}

.schedule-item__location::before {
  content: '📍';
  font-size: 14px;
}

/* Poster card styles */
.poster-card {
  background: var(--color-bg-elev);
  border-radius: 16px;
  padding: 20px 18px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  text-align: center;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--color-border);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.poster-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, currentColor, transparent);
}

.poster-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.poster-card__icon {
  font-size: 48px;
  margin-bottom: 12px;
  display: block;
}

.poster-card__title {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 10px 0;
  color: var(--color-text);
}

.poster-card__content {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text-muted);
  margin: 0 0 12px 0;
}

.poster-card__tip {
  font-size: 13px;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.04);
  color: var(--color-text);
  display: inline-block;
}

/* Poster card color themes */
.poster-card--blue {
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.08) 0%, rgba(24, 144, 255, 0.03) 100%);
  border-color: rgba(24, 144, 255, 0.2);
}

.poster-card--blue::before {
  background: linear-gradient(90deg, #1890ff, rgba(24, 144, 255, 0.3));
}

.poster-card--blue .poster-card__title {
  color: #1890ff;
}

.poster-card--green {
  background: linear-gradient(135deg, rgba(var(--color-primary-rgb), 0.08) 0%, rgba(var(--color-primary-rgb), 0.03) 100%);
  border-color: rgba(var(--color-primary-rgb), 0.2);
}

.poster-card--green::before {
  background: linear-gradient(90deg, var(--color-primary), rgba(var(--color-primary-rgb), 0.3));
}

.poster-card--green .poster-card__title {
  color: var(--color-primary);
}

.poster-card--orange {
  background: linear-gradient(135deg, rgba(250, 173, 20, 0.08) 0%, rgba(250, 173, 20, 0.03) 100%);
  border-color: rgba(250, 173, 20, 0.2);
}

.poster-card--orange::before {
  background: linear-gradient(90deg, #faad14, rgba(250, 173, 20, 0.3));
}

.poster-card--orange .poster-card__title {
  color: #faad14;
}

.poster-card--purple {
  background: linear-gradient(135deg, rgba(114, 46, 209, 0.08) 0%, rgba(114, 46, 209, 0.03) 100%);
  border-color: rgba(114, 46, 209, 0.2);
}

.poster-card--purple::before {
  background: linear-gradient(90deg, #722ed1, rgba(114, 46, 209, 0.3));
}

.poster-card--purple .poster-card__title {
  color: #722ed1;
}

.poster-card--teal {
  background: linear-gradient(135deg, rgba(19, 194, 194, 0.08) 0%, rgba(19, 194, 194, 0.03) 100%);
  border-color: rgba(19, 194, 194, 0.2);
}

.poster-card--teal::before {
  background: linear-gradient(90deg, #13c2c2, rgba(19, 194, 194, 0.3));
}

.poster-card--teal .poster-card__title {
  color: #13c2c2;
}

/* Carousel indicators */
.carousel-indicators {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  padding: 0 8px;
}

.carousel-indicator {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--color-border);
  padding: 0;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
}

.carousel-indicator.is-active {
  background: var(--color-primary);
  width: 24px;
  border-radius: 4px;
}

.carousel-indicator:hover {
  background: var(--color-primary);
  opacity: 0.7;
}

.carousel-indicator:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* 移除轮播控制按钮 - 使用滑动和自动播放 */

/* Dark mode adjustments */
@media (prefers-color-scheme: dark) {
  .poster-card {
    background: var(--color-bg-elev);
  }

  .carousel-btn {
    background: rgba(20, 23, 32, 0.9);
    border-color: var(--color-border);
  }
}

/* Home: Feature grid */
.home-features {
  margin-top: 4px;
  margin-bottom: 12px;
  /* 为轮播图留出空间 */
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  /* 减小间距 */
}

@media (min-width: 520px) {
  .features-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.features-grid__placeholder {
  visibility: hidden;
}

.feature-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  /* 减小圆角 */
  padding: 10px 6px;
  /* 减小内边距 */
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  /* 减小间距 */
  transition: transform 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}

.feature-card:active {
  transform: scale(0.98);
}

.feature-card__icon {
  width: 24px;
  height: 24px;
}

/* 缩小图标 */
.feature-card__name {
  font-size: 12px;
}

/* 缩小字体 */

/* Feature accent colors */
[data-feature="stethoscope"] .feature-card__icon {
  filter: none;
}

[data-feature="heartbeat"] .feature-card__icon {
  filter: none;
}

[data-feature="pills"] .feature-card__icon {
  filter: none;
}

[data-feature="calendar-check"] .feature-card__icon {
  filter: none;
}

[data-feature="camera"] .feature-card__icon {
  filter: none;
}

[data-feature="book-medical"] .feature-card__icon {
  filter: none;
}

[data-feature="brain"] .feature-card__icon {
  filter: none;
}

[data-feature="cog"] .feature-card__icon {
  filter: none;
}

/* Triage */
#page-triage {
  padding-bottom: 100px;
  /* 为footer留出足够空间 */
}

.triage-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-border);
}

.triage-header__back {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.2s ease;
}

.triage-header__back:hover {
  background: var(--color-bg-elev);
  transform: scale(1.05);
}

/* Profile Info Page Styles */
.profile-info-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
}

.profile-info-header__back {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--color-border, #e0e0e0);
  border-radius: 12px;
  background: var(--color-bg, #fff);
  color: var(--color-text, #333);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  flex-shrink: 0;
}

.profile-info-header__back:hover {
  border-color: var(--color-primary, #1890ff);
  background: rgba(24, 144, 255, 0.08);
  color: var(--color-primary, #1890ff);
  transform: translateX(-2px);
}

.profile-info-header__back:active {
  transform: translateX(-1px) scale(0.98);
}

.profile-info-header__title {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text, #1f1f1f);
  margin: 0;
  flex: 1;
}

.profile-info-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: var(--color-bg-elev, #fff);
  border: 1px solid var(--color-border, #e0e0e0);
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
}

.profile-info-avatar-section {
  margin-bottom: 8px;
}

.profile-info-avatar-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px 0;
}

.profile-info-avatar-preview {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 3px solid var(--color-border, #e0e0e0);
  overflow: hidden;
  background: var(--color-bg, #fff);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.profile-info-avatar-preview:hover {
  border-color: var(--color-primary, #1890ff);
  box-shadow: 0 8px 24px rgba(24, 144, 255, 0.2);
  transform: scale(1.05);
}

.profile-info-avatar-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.profile-info-avatar-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  color: #fff;
}

.profile-info-avatar-preview:hover .profile-info-avatar-overlay {
  opacity: 1;
}

.profile-info-avatar-preview input[type="file"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}

.profile-info-avatar-hint {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.profile-info-avatar-hint__text {
  font-size: 14px;
  color: var(--color-primary, #1890ff);
  font-weight: 500;
  cursor: pointer;
  transition: color 0.2s ease;
}

.profile-info-avatar-hint__text:hover {
  color: var(--color-primary-hover, #40a9ff);
}

.profile-info-avatar-hint__format {
  font-size: 12px;
  color: var(--color-text-muted, #999);
}

.profile-info-form .form__row {
  margin-bottom: 0;
}

.profile-info-form__footer {
  margin-top: 8px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border, #e0e0e0);
}

@media (max-width: 768px) {
  .profile-info-form {
    padding: 20px;
    gap: 16px;
  }

  .profile-info-avatar-preview {
    width: 100px;
    height: 100px;
  }

  .profile-info-header__title {
    font-size: 20px;
  }
}

.stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 24px 0 32px;
  padding: 16px;
  background: var(--color-bg-elev);
  border-radius: 16px;
  border: 1px solid var(--color-border);
}

.stepper__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--color-text-muted);
  flex: 1;
  transition: color 0.2s ease;
}

.stepper__dot {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--color-border);
  font-size: 14px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.stepper__text {
  font-size: 13px;
  font-weight: 500;
}

.stepper__line {
  flex: 1;
  height: 2px;
  background: var(--color-border);
  margin: 0 8px;
  max-width: 60px;
  transition: background 0.3s ease;
}

.stepper__item--active {
  color: var(--color-primary);
}

.stepper__item--active .stepper__dot {
  background: var(--color-primary);
  color: #fff;
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.3);
}

.stepper__item--active~.stepper__line {
  background: var(--color-primary);
}

.triage-steps {
  min-height: 400px;
  padding: 8px 0;
}

.triage-subtitle {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 20px 0;
  color: var(--color-text);
  line-height: 1.4;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}

.chip {
  padding: 14px 20px;
  border-radius: 12px;
  border: 1px solid var(--color-border);
  background: var(--color-bg-elev);
  font-size: 15px;
  font-weight: 500;
  transition: all 0.2s ease;
  cursor: pointer;
}

.chip:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: var(--color-primary);
}

.chip.is-selected {
  background: var(--color-primary-weak);
  color: var(--color-primary);
  border-color: var(--color-primary);
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
}

.symptom-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 16px;
}

.symptom-grid .chip {
  text-align: center;
  padding: 12px 8px;
  font-size: 14px;
}

.selected-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border);
}

.selected-chips::before {
  content: '已选症状：';
  display: block;
  width: 100%;
  font-size: 13px;
  color: var(--color-text-muted);
  font-weight: 500;
  margin-bottom: 12px;
}

#symptom-search {
  margin-top: 16px;
  margin-bottom: 8px;
}

.triage-footer {
  position: sticky;
  bottom: calc(var(--tabbar-height) + var(--safe-bottom));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 0 20px;
  background: linear-gradient(to top, var(--color-bg) 85%, transparent 100%);
  margin-top: 32px;
}

.progress {
  color: var(--color-text-muted);
  font-size: 14px;
  font-weight: 500;
}

.actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  justify-content: flex-end;
}

.actions .btn {
  min-width: 100px;
  padding: 12px 24px;
  font-weight: 500;
}

.result-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 20px;
  box-shadow: var(--shadow-card);
  margin-top: 16px;
}

.result-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 16px;
}

.dept-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  background: var(--color-bg);
  border-radius: 12px;
  border: 1px solid var(--color-border);
  transition: all 0.2s ease;
}

.dept-item:hover {
  transform: translateX(4px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.badge {
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid transparent;
}

.badge--red {
  background: rgba(255, 77, 79, .12);
  color: #ff4d4f;
  border-color: rgba(255, 77, 79, .3);
}

.badge--yellow {
  background: rgba(250, 173, 20, .12);
  color: #faad14;
  border-color: rgba(250, 173, 20, .3);
}

.badge--green {
  background: rgba(var(--color-primary-rgb), .12);
  color: var(--color-primary);
  border-color: rgba(var(--color-primary-rgb), .3);
}

.triage-step {
  display: none;
  animation: slide-fade-in 200ms ease;
  padding: 8px 0;
}

.triage-step--active {
  display: block;
}

/* 优化表单在分诊页面的显示 */
#page-triage .form__row {
  margin-bottom: 24px;
}

#page-triage .form__label {
  margin-bottom: 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
}

#page-triage .input {
  padding: 14px 16px;
  font-size: 15px;
  border-radius: 12px;
  height: auto;
  min-height: 48px;
  box-sizing: border-box;
  width: 100%;
}

/* 修复 select 元素显示问题 */
#page-triage select.input {
  padding-right: 40px;
  /* 为下拉箭头留出空间 */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  overflow: visible;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  box-sizing: border-box;
}

/* 确保 select 在下拉时文本完整显示 */
#page-triage select.input:focus {
  overflow: visible;
}

#page-triage select.input option {
  padding: 12px 16px;
  white-space: normal;
  word-wrap: break-word;
  overflow-wrap: break-word;
  min-height: 44px;
  display: block;
}

/* 优化两列布局 */
#page-triage .form__row>div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}

#page-triage .form__row>div>div {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  /* 防止内容溢出 */
  flex: 1;
  width: 100%;
}

#page-triage .form__row>div>div .form__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 8px;
}

#page-triage .form__row>div>div .input {
  width: 100%;
  min-width: 0;
  /* 防止内容溢出 */
}

/* 优化第3步整体布局 */
#page-triage [data-step="3"] {
  padding: 16px 0;
}

#page-triage [data-step="3"] .triage-subtitle {
  margin-bottom: 24px;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text);
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-border);
}

/* 为表单行添加卡片样式 */
#page-triage [data-step="3"] .form__row {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
  transition: all 0.2s ease;
}

#page-triage [data-step="3"] .form__row:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border-color: var(--color-primary);
}

#page-triage [data-step="3"] .form__row>div {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
}

/* 优化输入框焦点状态 */
#page-triage [data-step="3"] .input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.15);
  transform: translateY(-1px);
}

/* 确保文本输入框也有足够的空间 */
#page-triage [data-step="3"] input[type="text"],
#page-triage [data-step="3"] input[type="number"] {
  width: 100%;
  min-width: 0;
}

/* 优化第3步的表单标签样式 */
#page-triage [data-step="3"] label.form__row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* 确保所有输入框在卡片中有足够的空间 */
#page-triage [data-step="3"] .form__row .input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 优化年龄和性别两列布局的响应式 */
@media (max-width: 480px) {
  #page-triage .form__row>div {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* 为第3步添加更美观的视觉层次 */
#page-triage [data-step="3"] {
  animation: fadeInUp 0.3s ease-out;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Diary */
.diary-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.overview {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 8px 0 12px;
}

.kcard {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 10px;
}

.kcard__title {
  font-size: 13px;
  color: var(--color-text-muted);
}

.kcard__value {
  font-weight: 700;
  margin-top: 4px;
}

.kcard__status {
  margin-top: 2px;
  font-size: 12px;
}

.kcard--ok {
  border-color: rgba(82, 196, 26, .3);
}

.kcard--warn {
  border-color: rgba(250, 173, 20, .3);
}

.kcard--bad {
  border-color: rgba(255, 77, 79, .3);
}

.chart-wrap {
  position: relative;
  width: 100%;
  height: 220px;
  margin-top: 8px;
}



/* --- Mental (治愈系) styles --- */
#page-mental .home-welcome {
  background: var(--mental-grad);
  box-shadow: 0 8px 24px rgba(110, 198, 177, 0.12);
}

#page-mental .chip,
#page-mental-tree .chip,
#page-mental-assess .chip {
  background: var(--mental-soft);
  border-color: rgba(110, 198, 177, 0.35);
  color: var(--color-text);
  transition: transform 120ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

#page-mental .chip:active,
#page-mental-tree .chip:active,
#page-mental-assess .chip:active {
  transform: scale(0.97);
}

#page-mental .chip.is-selected {
  background: rgba(110, 198, 177, 0.18);
  color: #2f6f63;
  border-color: var(--mental-primary);
}

#page-mental .cal-cell {
  transition: box-shadow 160ms ease, transform 120ms ease;
}

#page-mental .cal-cell:hover {
  box-shadow: 0 6px 14px rgba(163, 216, 244, 0.28);
  transform: translateY(-1px);
}

@keyframes breathe {

  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 8px 24px rgba(110, 198, 177, 0.10);
  }

  50% {
    transform: scale(1.005);
    box-shadow: 0 10px 28px rgba(110, 198, 177, 0.16);
  }
}

#page-mental .home-welcome {
  animation: breathe 4.5s ease-in-out infinite;
}

#page-mental-tree #tree-feedback {
  color: #2f6f63;
}

#page-mental-tree .list-item {
  background: #ffffff;
  border-color: rgba(163, 216, 244, 0.45);
}

#page-mental-assess #mh-question {
  border: 1px solid rgba(110, 198, 177, 0.45);
}

#page-mental-result .chart-title {
  color: #2f6f63;
}

#page-mental-counsel .card {
  box-shadow: 0 8px 24px rgba(163, 216, 244, 0.12);
}

/* 系统设置页面样式优化 */
#page-profile .setting {
  margin: 0 16px 24px 16px;
  padding: 14px 16px;
  background: var(--color-bg-elev);
  border-radius: 12px;
  border: 1px solid var(--color-border);
}

#page-profile .setting__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
}

.settings-section {
  margin-bottom: 24px;
}

.settings-section-title {
  font-size: 14px;
  color: #999;
  margin: 0 0 8px 16px;
  font-weight: normal;
}

.settings-card {
  background: var(--color-bg-elev);
  border-radius: 12px;
  margin: 0 16px;
  overflow: hidden;
  border: 1px solid var(--color-border);
}

.settings-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: var(--color-bg-elev);
  cursor: pointer;
  transition: background-color 0.2s ease;
  border-bottom: 1px solid #f0f0f0;
}

.settings-list-item:last-child {
  border-bottom: none;
}

.settings-list-item:active {
  background-color: #f5f5f5;
}

.settings-list-item__left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}

.settings-icon {
  font-size: 20px;
  width: 24px;
  text-align: center;
  display: inline-block;
}

.settings-arrow {
  font-size: 20px;
  color: #999;
  font-weight: 300;
  margin-left: 8px;
}

.settings-list-item--danger {
  color: #ff4d4f;
}

.settings-list-item--danger .settings-icon,
.settings-list-item--danger .settings-arrow {
  color: #ff4d4f;
}

/* 深色模式适配 */
[data-theme="dark"] .settings-list-item {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .settings-list-item:active {
  background-color: rgba(255, 255, 255, 0.05);
}

[data-theme="dark"] .settings-section-title {
  color: #888;
}

[data-theme="dark"] .settings-arrow {
  color: #888;
}

/* Coze overrides: hide vendor launcher/logo; adjust container bottom to avoid tabbar overlap */
.coze-web-sdk-launcher,
[class*="coze-web-sdk-launcher"],
[class*="coze-launcher"] {
  display: none !important;
}

.coze-web-sdk-header__logo,
[class*="coze-web-sdk-header__logo"],
[class*="coze-logo"] {
  display: none !important;
}

.coze-web-sdk-container,
[class*="coze-web-sdk-container"] {
  bottom: calc(var(--tabbar-height) + var(--safe-bottom) + 8px) !important;
  max-height: calc(100vh - var(--tabbar-height) - var(--safe-bottom) - 24px) !important;
  right: 12px !important;
  left: auto !important;
  z-index: 110 !important;
}

/* Floating AI chat button (above tabbar) */
#fab-ai-chat {
  position: fixed;
  right: 16px;
  bottom: calc(var(--tabbar-height) + var(--safe-bottom) + 16px);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #fff;
  border: none;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  z-index: 120;
}

#fab-ai-chat:active {
  transform: scale(0.96);
}

@media (hover:hover) and (pointer:fine) {
  #fab-ai-chat:hover {
    transform: translateY(-2px);
  }
}

/* Welcome overlay */
#welcome-overlay {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 200;
  pointer-events: none;
  opacity: 0;
  transform: scale(1.02);
  background: rgba(0, 0, 0, 0.0);
  transition: opacity .28s ease-in-out, transform .28s ease-in-out, background-color .28s ease-in-out;
}

#welcome-overlay.is-active {
  opacity: 1;
  transform: scale(1);
  background: rgba(0, 0, 0, 0.18);
  pointer-events: auto;
}

.welcome-card {
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  animation: fade-in .28s ease-in-out;
}

.welcome-title {
  font-size: 18px;
  font-weight: 700;
}

/* Custom Modal Dialog */
.custom-modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 300;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s cubic-bezier(0.4, 0, 0.2, 1);
}

.custom-modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

.custom-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(2px);
  transition: opacity .25s cubic-bezier(0.4, 0, 0.2, 1), backdrop-filter .25s cubic-bezier(0.4, 0, 0.2, 1);
}

.custom-modal:not(.is-active) .custom-modal__overlay {
  opacity: 0;
  backdrop-filter: blur(0);
}

.custom-modal__content {
  position: relative;
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 20px;
  max-width: 320px;
  width: calc(100% - 32px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
  transform: scale(0.9) translateY(20px);
  opacity: 0;
  transition: transform .3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.custom-modal.is-active .custom-modal__content {
  transform: scale(1) translateY(0);
  opacity: 1;
}

/* Modal closing animation */
.custom-modal.is-closing .custom-modal__content {
  transform: scale(0.95) translateY(10px);
  opacity: 0;
}

.custom-modal.is-closing .custom-modal__overlay {
  opacity: 0;
}

.custom-modal__header {
  margin-bottom: 12px;
}

.custom-modal__title {
  font-size: 18px;
  font-weight: 600;
  margin: 0;
  color: var(--color-text);
}

.custom-modal__body {
  margin-bottom: 16px;
}

.custom-modal__message {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text);
  margin: 0;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.custom-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.custom-modal__footer .btn {
  min-width: 80px;
}

/* Utility classes to replace inline styles */
.mt-0 {
  margin-top: 0 !important;
}

.mt-4 {
  margin-top: 4px !important;
}

.mt-6 {
  margin-top: 6px !important;
}

.mt-8 {
  margin-top: 8px !important;
}

.mt-12 {
  margin-top: 12px !important;
}

.mt-16 {
  margin-top: 16px !important;
}

.mb-6 {
  margin-bottom: 6px !important;
}

.mb-8 {
  margin-bottom: 8px !important;
}

.mb-12 {
  margin-bottom: 12px !important;
}

.text-center {
  text-align: center !important;
}

.line-height-1-6 {
  line-height: 1.6 !important;
}

.hidden-inline {
  display: none !important;
}

/* Specific component styles */
.textarea-large {
  height: 100px;
  padding: 8px;
}

.chart-wrap-medium {
  height: 200px;
}

/* Grid layouts */
.grid-2col {
  grid-template-columns: 200px 1fr;
  gap: 12px;
  align-items: flex-start;
}

.grid-full {
  grid-column: 1 / -1;
}

.flex-wrap {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* Sticky positioning */
.sticky-top {
  position: sticky;
  top: 8px;
  padding: 12px;
}

/* Form spacing */
.form-spacing {
  margin-top: 8px;
}

.form-spacing-large {
  margin-top: 16px;
}

/* Card spacing */
.card-spacing {
  margin-top: 12px;
}

/* Theme color picker styles */
.theme-presets-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.theme-preset-item {
  width: 100%;
  aspect-ratio: 1;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  padding: 0;
  background: none;
}

.theme-preset-item:hover {
  transform: scale(1.05);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.theme-preset-item.is-active {
  border-color: var(--color-primary);
  border-width: 3px;
  box-shadow: 0 0 0 2px var(--color-primary-weak);
}

.theme-preset-item.is-active::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.theme-color-input {
  width: 60px;
  height: 40px;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  padding: 2px;
  background: none;
  margin-right: 8px;
}

.theme-color-input:hover {
  border-color: var(--color-primary);
}

.theme-color-input::-webkit-color-swatch-wrapper {
  padding: 0;
}

.theme-color-input::-webkit-color-swatch {
  border: none;
  border-radius: calc(var(--radius-sm) - 2px);
}

/* Utility Classes - Spacing */
.mt-0 {
  margin-top: 0;
}

.mt-4 {
  margin-top: 4px;
}

.mt-6 {
  margin-top: 6px;
}

.mt-8 {
  margin-top: 8px;
}

.mt-10 {
  margin-top: 10px;
}

.mt-12 {
  margin-top: 12px;
}

.mb-0 {
  margin-bottom: 0;
}

.mb-4 {
  margin-bottom: 4px;
}

.mb-6 {
  margin-bottom: 6px;
}

.mb-8 {
  margin-bottom: 8px;
}

.mb-10 {
  margin-bottom: 10px;
}

.mb-12 {
  margin-bottom: 12px;
}

.p-0 {
  padding: 0;
}

.p-4 {
  padding: 4px;
}

.p-8 {
  padding: 8px;
}

.p-12 {
  padding: 12px;
}

/* Barcode Scanner Modal */
.scanner-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.scanner-modal.is-active {
  opacity: 1;
}

.scanner-modal__content {
  position: relative;
  width: 90%;
  max-width: 500px;
  background: var(--color-bg, #fff);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

.scanner-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
  background: var(--color-bg, #fff);
}

.scanner-modal__title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--color-text, #333);
}

.scanner-modal__close {
  background: none;
  border: none;
  font-size: 28px;
  line-height: 1;
  color: var(--color-text-secondary, #666);
  cursor: pointer;
  padding: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

.scanner-modal__close:hover {
  background: var(--color-bg-secondary, #f5f5f5);
  color: var(--color-text, #333);
}

.scanner-modal__body {
  padding: 20px;
  overflow-y: auto;
  flex: 1;
}

.scanner-container {
  position: relative;
  width: 100%;
  margin-bottom: 16px;
}

.scanner-video-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 12px;
}

.scanner-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.scanner-canvas {
  display: none;
}

.scanner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.scanner-overlay__frame {
  width: 80%;
  max-width: 300px;
  aspect-ratio: 2 / 1;
  border: 2px solid #1890ff;
  border-radius: 8px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5);
  position: relative;
}

.scanner-overlay__frame::before,
.scanner-overlay__frame::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border: 3px solid #1890ff;
}

.scanner-overlay__frame::before {
  top: -3px;
  left: -3px;
  border-right: none;
  border-bottom: none;
}

.scanner-overlay__frame::after {
  bottom: -3px;
  right: -3px;
  border-left: none;
  border-top: none;
}

.scanner-overlay__hint {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 14px;
  text-align: center;
  background: rgba(0, 0, 0, 0.6);
  padding: 8px 16px;
  border-radius: 20px;
  white-space: nowrap;
}

.scanner-status {
  text-align: center;
  color: var(--color-text-secondary, #666);
  font-size: 14px;
  margin-bottom: 16px;
  min-height: 20px;
}

.scanner-actions {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-bottom: 16px;
}

.scanner-manual {
  border-top: 1px solid var(--color-border, #e0e0e0);
  padding-top: 16px;
  margin-top: 16px;
}

@media (max-width: 768px) {
  .scanner-modal__content {
    width: 95%;
    max-height: 95vh;
  }

  .scanner-modal__header {
    padding: 12px 16px;
  }

  .scanner-modal__body {
    padding: 16px;
  }

  .scanner-overlay__frame {
    width: 90%;
  }
}

/* Barcode Scan Page Styles */
.scan-page-header {
  margin-bottom: 20px;
  padding: 0 4px;
  text-align: center;
}

.scan-page-header .page-title {
  margin-bottom: 6px;
  font-size: 24px;
  font-weight: 600;
}

.scan-page-header .muted {
  font-size: 14px;
  color: var(--color-text-secondary, #666);
}

.scan-section {
  margin-bottom: 20px;
}

.scan-area {
  position: relative;
  width: 100%;
  margin-bottom: 20px;
}

.scan-video-container {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  border: 2px solid var(--color-border, rgba(255, 255, 255, 0.1));
}

.scan-page-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.scan-page-canvas {
  display: none;
}

.scan-guide-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.scan-guide-frame {
  width: 80%;
  max-width: 320px;
  aspect-ratio: 2 / 1;
  position: relative;
  border-radius: 8px;
}

.scan-guide-corner {
  position: absolute;
  width: 24px;
  height: 24px;
  border: 3px solid #1890ff;
}

.scan-guide-corner--tl {
  top: -3px;
  left: -3px;
  border-right: none;
  border-bottom: none;
  border-radius: 8px 0 0 0;
}

.scan-guide-corner--tr {
  top: -3px;
  right: -3px;
  border-left: none;
  border-bottom: none;
  border-radius: 0 8px 0 0;
}

.scan-guide-corner--bl {
  bottom: -3px;
  left: -3px;
  border-right: none;
  border-top: none;
  border-radius: 0 0 0 8px;
}

.scan-guide-corner--br {
  bottom: -3px;
  right: -3px;
  border-left: none;
  border-top: none;
  border-radius: 0 0 8px 0;
}

.scan-guide-text {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 14px;
  text-align: center;
  background: rgba(0, 0, 0, 0.7);
  padding: 8px 16px;
  border-radius: 20px;
  white-space: nowrap;
  backdrop-filter: blur(4px);
}

.scan-page-status {
  text-align: center;
  color: var(--color-text-secondary, #666);
  font-size: 13px;
  min-height: 20px;
  padding: 10px 12px;
  background: var(--color-bg-secondary, #f5f5f5);
  border-radius: 10px;
  font-weight: 500;
}

.scan-controls {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.scan-btn-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
  transition: box-shadow 0.2s ease-in-out, transform 0.15s ease-in-out;
}

.scan-btn-primary:active {
  transform: scale(0.98);
}

.scan-btn-icon {
  font-size: 20px;
  line-height: 1;
}

.scan-controls-row {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.scan-controls-row .btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
}

.scan-manual-section {
  margin-bottom: 20px;
}

.scan-manual-section .card {
  padding: 18px;
  border-radius: 16px;
  background: var(--color-bg-elev, #fafafa);
  border: 1px solid var(--color-border, #e8e8e8);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.scan-manual-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}

.scan-manual-icon {
  font-size: 18px;
  line-height: 1;
}

.scan-manual-header .section-title {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text-secondary, #666);
}

.scan-manual-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.scan-manual-input {
  width: 100%;
  padding: 12px 48px 12px 16px;
  font-size: 15px;
  border: 1.5px solid var(--color-border, #e0e0e0);
  border-radius: 12px;
  background: var(--color-bg, #fff);
  color: var(--color-text, #333);
  transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
  letter-spacing: 0.5px;
}

.scan-manual-input:focus {
  outline: none;
  border-color: var(--color-primary, #1890ff);
  box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.1);
}

.scan-manual-input::placeholder {
  color: var(--color-text-muted, #999);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  letter-spacing: normal;
}

.scan-manual-submit-btn {
  position: absolute;
  right: 6px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary, #1890ff);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out, transform 0.15s ease-in-out;
  flex-shrink: 0;
}

.scan-manual-submit-btn:hover {
  background: var(--color-primary-hover, #40a9ff);
  transform: scale(1.05);
}

.scan-manual-submit-btn:active {
  transform: scale(0.95);
}

.scan-manual-submit-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.scan-history-section {
  margin-bottom: 16px;
}

.scan-history-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.scan-history-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  background: var(--color-bg-elev, #fafafa);
  border: 1px solid var(--color-border, #e0e0e0);
  border-radius: 8px;
}

.scan-history-item__code {
  font-family: monospace;
  font-size: 14px;
  color: var(--color-text, #333);
}

.scan-history-item__time {
  font-size: 12px;
  color: var(--color-text-secondary, #666);
}

@media (max-width: 768px) {
  .scan-page-header {
    margin-bottom: 16px;
  }

  .scan-page-header .page-title {
    font-size: 22px;
  }

  .scan-video-container {
    border-radius: 16px;
    margin-bottom: 12px;
  }

  .scan-guide-frame {
    width: 90%;
  }

  .scan-controls-row {
    flex-direction: column;
  }

  .scan-controls-row .btn {
    width: 100%;
  }

  .scan-manual-section .card {
    padding: 14px;
    border-radius: 14px;
  }

  .scan-manual-input {
    padding: 11px 44px 11px 14px;
    font-size: 14px;
  }

  .scan-manual-submit-btn {
    width: 34px;
    height: 34px;
    right: 5px;
  }
}

/* Diary page header responsive */
@media (max-width: 640px) {
  .diary-page-header {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .diary-page-header__meta {
    justify-content: flex-start;
  }

  .diary-date-input {
    width: 100%;
  }
}

/* Optimized Header Layout - Centered */
.diary-page-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
  margin-bottom: 24px;
  padding: 24px;
  background: linear-gradient(135deg, rgba(var(--color-primary-rgb), 0.12), rgba(var(--color-primary-rgb), 0.05));
  border-radius: 16px;
  border: 1px solid rgba(var(--color-primary-rgb), 0.2);
  box-shadow: var(--shadow-sm);
}

.diary-page-header__text {
  width: 100%;
}

.diary-page-header__meta {
  width: 100%;
  display: flex;
  justify-content: center;
}

.diary-date-wrapper {
  width: auto;
  min-width: 200px;
  max-width: 300px;
}

.diary-date-input {
  text-align: center;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 10px 16px;
  font-weight: 500;
}

/* Trend Toggle Animation */
.trends-content {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.trends-content.is-visible {
  max-height: 2000px;
  /* Large enough to fit content */
  opacity: 1;
  margin-top: 20px;
}

.trends-toggle-btn svg {
  transition: transform 0.3s ease;
}

.trends-toggle-btn.is-expanded svg {
  transform: rotate(180deg);
}

/* Segment Control */
.segment {
  display: inline-flex;
  background: var(--color-bg-elev);
  padding: 4px;
  border-radius: 12px;
  border: 1px solid var(--color-border);
  margin-bottom: 16px;
}

.segment__btn {
  padding: 6px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-secondary);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.segment__btn:hover {
  color: var(--color-text);
}

.segment__btn.is-active {
  background: #fff;
  color: var(--color-primary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  font-weight: 600;
}