:root {
  color-scheme: light;
  --bg: #f6f7fb;
  --panel: #ffffff;
  --text: #202533;
  --muted: #6f7787;
  --line: #e8ebf2;
  --brand: #6656f5;
  --brand-soft: #eeeaff;
  --green: #20b486;
  --orange: #ff9f43;
  --red: #ee5253;
  --blue: #2e86de;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* v293 龟蛋、龟苗与种龟库存：统一数据优先的分类比例视图。 */
#stockSpeciesDetailView:has(.stock-detail-page-heading.stock-detail-data-first) {
  max-width: 760px;
}

#stockSpeciesDetailView .stock-detail-page-heading.stock-detail-data-first {
  display: flex;
  flex-direction: column;
  margin: 0 0 12px;
}

#stockSpeciesDetailView .stock-detail-page-heading.stock-detail-data-first h1 {
  order: 1;
  color: #103c25;
  font-size: 38px;
}

#stockSpeciesDetailView .stock-detail-page-heading.stock-detail-data-first p {
  display: block !important;
  order: 2;
  margin-top: 7px;
  color: #6e796f;
  font-size: 16px;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first {
  padding: 26px 22px 20px;
  border-radius: 24px;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first > h2,
#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-summary-icon {
  display: none;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-summary-layout {
  display: block;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-metric {
  min-height: 108px;
  padding: 10px 9px;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-metric small {
  color: #184d30;
  font-size: 16px;
  font-weight: 850;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-metric strong {
  color: #144c2e;
  font-size: 42px;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-blue strong,
#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-blue small {
  color: #356ad1;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-pink strong,
#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-pink small {
  color: #d53e79;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-amber strong,
#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-amber small {
  color: #bb7313;
}

#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-green strong,
#stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-tone-green small {
  color: #16804d;
}

#stockSpeciesDetailView .stock-detail-composition {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 12px 0 0;
  font-size: 17px;
  font-weight: 850;
}

#stockSpeciesDetailView .stock-detail-composition span { color: #356ad1; }
#stockSpeciesDetailView .stock-detail-composition i { color: #9aa49d; font-style: normal; }
#stockSpeciesDetailView .stock-detail-composition b { color: #d53e79; }
#stockSpeciesDetailView .stock-detail-composition-hatchlings span { color: #16804d; }
#stockSpeciesDetailView .stock-detail-composition-hatchlings b { color: #bb7313; }
#stockSpeciesDetailView .stock-detail-composition-eggs span { color: #16804d; }
#stockSpeciesDetailView .stock-detail-composition-eggs b { color: #356ad1; }

#stockSpeciesDetailView .stock-source-card.stock-source-compact {
  margin-top: 14px;
  padding: 22px 20px;
  border-radius: 24px;
  box-shadow: 0 15px 38px rgba(29,65,41,.09);
}

#stockSpeciesDetailView .stock-source-compact .stock-source-head {
  margin-bottom: 12px;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-head > span {
  width: 44px;
  height: 44px;
  flex-basis: 44px;
  border-radius: 14px;
}

#stockSpeciesDetailView .stock-source-eggs .stock-source-head > span,
#stockSpeciesDetailView .stock-source-eggs .stock-source-farm > span:first-child,
#stockSpeciesDetailView .stock-source-hatchlings .stock-source-head > span,
#stockSpeciesDetailView .stock-source-hatchlings .stock-source-farm > span:first-child,
#stockSpeciesDetailView .stock-source-breeders .stock-source-head > span,
#stockSpeciesDetailView .stock-source-breeders .stock-source-farm > span:first-child {
  overflow: hidden;
  background: #f0edff;
}

#stockSpeciesDetailView .stock-source-eggs .stock-source-head > span img,
#stockSpeciesDetailView .stock-source-eggs .stock-source-farm > span:first-child img,
#stockSpeciesDetailView .stock-source-hatchlings .stock-source-head > span img,
#stockSpeciesDetailView .stock-source-hatchlings .stock-source-farm > span:first-child img,
#stockSpeciesDetailView .stock-source-breeders .stock-source-head > span img,
#stockSpeciesDetailView .stock-source-breeders .stock-source-farm > span:first-child img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-list {
  gap: 0;
  overflow: hidden;
  border: 1px solid #e0e8e1;
  border-radius: 18px;
  background: #fff;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-row {
  grid-template-columns: 105px minmax(0, 1fr) 64px;
  grid-template-rows: auto auto;
  gap: 9px 14px;
  padding: 15px 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-row + .stock-source-row {
  border-top: 1px solid #e7ece8;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-farm {
  grid-row: 1 / 3;
  gap: 9px;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-farm > span {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
  border-radius: 14px;
  font-size: 19px;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-farm strong {
  font-size: 17px;
  white-space: nowrap;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-farm small {
  font-size: 11px;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-count {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-count strong {
  font-size: 30px;
}

#stockSpeciesDetailView .stock-source-bar {
  display: block;
  align-self: end;
  height: 9px;
}

#stockSpeciesDetailView .stock-source-bar-scale {
  display: flex;
  height: 100%;
  min-width: 8%;
  overflow: hidden;
  border-radius: 999px;
  background: #eef1ef;
}

#stockSpeciesDetailView .stock-source-bar i { display: block; height: 100%; }
#stockSpeciesDetailView .stock-source-bar-blue { background: #4d79e6; }
#stockSpeciesDetailView .stock-source-bar-pink { background: #df598b; }
#stockSpeciesDetailView .stock-source-bar-amber { background: #d99a3c; }
#stockSpeciesDetailView .stock-source-bar-green { background: #28a568; }

#stockSpeciesDetailView .stock-source-compact .stock-source-pills {
  grid-column: 2;
  gap: 5px;
  padding: 0;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-pill {
  padding: 3px 8px;
  font-size: 11px;
}

#stockSpeciesDetailView .stock-source-compact .stock-source-pill b {
  font-size: 12px;
}

@media (max-width: 700px) {
  #stockSpeciesDetailView:has(.stock-detail-page-heading.stock-detail-data-first) {
    padding-inline: 10px;
  }

  #stockSpeciesDetailView .stock-detail-page-heading.stock-detail-data-first h1 { font-size: 31px; }
  #stockSpeciesDetailView .stock-detail-page-heading.stock-detail-data-first p { font-size: 13px; }
  #stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first { padding: 17px 8px 14px; }
  #stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-metric { min-height: 74px; padding: 6px 4px; }
  #stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-metric small { font-size: 12px; }
  #stockSpeciesDetailView .stock-detail-summary-card.stock-detail-data-first .stock-detail-metric strong { font-size: 28px; }
  #stockSpeciesDetailView .stock-detail-composition { margin-top: 7px; font-size: 13px; }
  #stockSpeciesDetailView .stock-source-card.stock-source-compact { padding: 16px 10px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-head { padding-inline: 4px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-head h2 { font-size: 20px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-row { grid-template-columns: 74px minmax(0, 1fr) 50px; gap: 7px 8px; padding: 12px 9px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-farm { gap: 6px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-farm > span { width: 36px; height: 36px; flex-basis: 36px; border-radius: 11px; font-size: 16px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-farm strong { font-size: 14px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-farm small { display: none; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-count strong { font-size: 22px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-count small { font-size: 10px; }
  #stockSpeciesDetailView .stock-source-bar { height: 7px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-pill { padding: 2px 5px; font-size: 9px; }
  #stockSpeciesDetailView .stock-source-compact .stock-source-pill b { font-size: 10px; }
}

/* v234 龟苗批量记录：种群龟池关联、母龟随机分配与六项独立数量 */
.hatchling-log-view.hatchling-log-view {
  width: min(100%, 860px);
  padding-top: 4px;
}

.hatchling-log-view .breeder-page-heading {
  min-height: 142px;
  align-content: center;
  gap: 10px;
}

.hatchling-log-view .breeder-page-heading h2 {
  color: #0f1d38;
  font-size: clamp(38px, 5vw, 54px);
  letter-spacing: .02em;
}

.hatchling-log-view .breeder-page-heading p {
  margin: 0;
  color: #778297;
  font-size: 16px;
  letter-spacing: 0;
}

.hatchling-log-view .hatchling-batch-panel {
  display: grid;
  gap: 0;
  padding: 34px 36px 28px;
  border-color: #dce5df;
  border-radius: 28px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 20px 55px rgba(32, 70, 48, .10);
}

.hatchling-source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  padding-bottom: 26px;
  border-bottom: 1px solid #e2e8e4;
}

.hatchling-source-field,
.hatchling-mother-field,
.hatchling-note-field {
  display: grid;
  gap: 12px;
  color: #101d36;
}

.hatchling-source-field > span,
.hatchling-mother-field > span,
.hatchling-note-field > span,
.hatchling-situation-section > h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #101d36;
  font-size: 20px;
  font-style: normal;
  font-weight: 900;
}

.hatchling-source-field > span img,
.hatchling-mother-field > span img,
.hatchling-note-field > span img,
.hatchling-situation-section > h3 img,
.hatchling-quantity-section img {
  width: 27px;
  height: 27px;
  object-fit: contain;
}

.hatchling-source-field > span b {
  padding: 3px 7px;
  border-radius: 999px;
  color: #19834e;
  background: #edf7ef;
  font-size: 10px;
}

.hatchling-source-field select,
.hatchling-mother-field select {
  width: 100%;
  min-height: 72px;
  padding: 0 48px 0 20px;
  border: 1px solid #d8e1dc;
  border-radius: 16px;
  color: #152039;
  background: #fff;
  font: inherit;
  font-size: 18px;
  font-weight: 800;
}

.hatchling-source-field select:focus,
.hatchling-mother-field select:focus,
.hatchling-note-field textarea:focus,
.hatchling-matrix-row label:focus-within {
  border-color: #238b58;
  outline: 3px solid rgba(35, 139, 88, .12);
}

.hatchling-source-field select:disabled,
.hatchling-mother-field select:disabled {
  color: #9ba5b2;
  background: #f7f9f8;
}

.hatchling-mother-field {
  padding: 28px 0 26px;
  border-bottom: 1px solid #e2e8e4;
}

.hatchling-mother-field > span small {
  color: #7b8699;
  font-size: 12px;
}

.hatchling-mother-field > em,
.hatchling-quantity-section > p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #758197;
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
}

.hatchling-mother-field > em img,
.hatchling-quantity-section > p img {
  width: 18px;
  height: 18px;
}

.hatchling-quantity-section {
  display: grid;
  gap: 9px;
  padding: 26px 0 20px;
}

.hatchling-quantity-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.hatchling-quantity-section > header > div {
  display: flex;
  align-items: center;
  gap: 11px;
  color: #101d36;
  font-size: 24px;
  font-weight: 900;
}

.hatchling-quantity-section > header > strong {
  color: #17824b;
  font-size: 36px;
  line-height: 1;
}

.hatchling-quantity-section > header > strong small {
  margin-left: 4px;
  font-size: 15px;
}

.hatchling-situation-section {
  display: grid;
  gap: 14px;
  padding: 8px 0 26px;
  border-bottom: 1px solid #e2e8e4;
}

.hatchling-quantity-matrix {
  overflow: hidden;
  border: 1px solid #dce4df;
  border-radius: 18px;
  background: #fff;
}

.hatchling-matrix-head,
.hatchling-matrix-row {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr) minmax(0, 1fr) 76px;
  align-items: stretch;
}

.hatchling-matrix-head {
  min-height: 52px;
  color: #17223b;
  background: #fafcfb;
  font-size: 14px;
}

.hatchling-matrix-head > * {
  display: grid;
  place-items: center;
  border-right: 1px solid #e1e7e3;
}

.hatchling-matrix-head > *:last-child { border-right: 0; }

.hatchling-matrix-row {
  min-height: 96px;
  border-top: 1px solid #e1e7e3;
}

.hatchling-matrix-row > strong {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-right: 1px solid currentColor;
  font-size: 18px;
}

.hatchling-matrix-row > strong img {
  width: 33px;
  height: 33px;
  object-fit: contain;
}

.hatchling-matrix-row > label {
  display: grid;
  min-width: 0;
  grid-template-columns: 38px minmax(34px, 1fr) 38px 22px;
  align-items: center;
  gap: 0;
  margin: 15px 10px;
  overflow: hidden;
  border: 1px solid #dce3df;
  border-radius: 12px;
  background: #fff;
}

.hatchling-matrix-row > label + label { margin-left: 0; }

.hatchling-matrix-row label button {
  align-self: stretch;
  border: 0;
  color: #334057;
  background: transparent;
  font: inherit;
  font-size: 22px;
  cursor: pointer;
}

.hatchling-matrix-row label button:hover { background: rgba(25, 131, 78, .08); }

.hatchling-matrix-row label input {
  width: 100%;
  min-width: 0;
  border: 0;
  border-right: 1px solid #edf0ee;
  border-left: 1px solid #edf0ee;
  outline: 0;
  color: #111d35;
  background: transparent;
  font: inherit;
  font-size: 23px;
  font-weight: 900;
  text-align: center;
  appearance: textfield;
}

.hatchling-matrix-row label input::-webkit-inner-spin-button,
.hatchling-matrix-row label input::-webkit-outer-spin-button { margin: 0; appearance: none; }

.hatchling-matrix-row label small {
  color: #637087;
  font-size: 11px;
  text-align: center;
}

.hatchling-matrix-row > output {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 2px;
  border-left: 1px solid #e1e7e3;
  font-size: 25px;
  font-weight: 900;
}

.hatchling-matrix-row > output small { font-size: 11px; }
.hatchling-matrix-hatch { color: #17824b; background: linear-gradient(90deg, rgba(237, 248, 241, .9), #fff 30%); }
.hatchling-matrix-sell { color: #d8790b; background: linear-gradient(90deg, rgba(255, 248, 234, .9), #fff 30%); }
.hatchling-matrix-death { color: #d83b34; background: linear-gradient(90deg, rgba(255, 242, 241, .9), #fff 30%); }
.hatchling-matrix-row.has-quantity { box-shadow: inset 4px 0 currentColor; }

.hatchling-note-field {
  position: relative;
  padding: 26px 0 4px;
}

.hatchling-note-field textarea {
  min-height: 116px;
  resize: vertical;
  padding: 17px 20px 34px;
  border: 1px solid #dbe3df;
  border-radius: 16px;
  color: #152039;
  background: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
}

.hatchling-note-field > small {
  position: absolute;
  right: 16px;
  bottom: 15px;
  color: #7d8799;
  font-size: 11px;
}

.hatchling-form-actions {
  display: grid;
  grid-template-columns: minmax(150px, .42fr) minmax(260px, 1fr);
  gap: 18px;
  padding-top: 24px;
}

.hatchling-form-actions .breeder-save-button,
.hatchling-cancel-button {
  min-height: 72px;
  margin: 0;
  border-radius: 16px;
  font: inherit;
  font-size: 20px;
  font-weight: 900;
  cursor: pointer;
}

.hatchling-form-actions .breeder-save-button {
  gap: 10px;
  background: linear-gradient(100deg, #267d4d, #36955d);
  box-shadow: 0 14px 28px rgba(39, 126, 77, .18);
}

.hatchling-form-actions .breeder-save-button img {
  width: 26px;
  height: 26px;
  filter: brightness(0) invert(1);
}

.hatchling-cancel-button {
  border: 1px solid #d7dfda;
  color: #17223a;
  background: #fff;
}

@media (max-width: 720px) {
  .hatchling-log-view .breeder-page-heading {
    min-height: 118px;
    padding: 0 55px;
  }
  .hatchling-log-view .breeder-page-heading h2 { font-size: 31px; }
  .hatchling-log-view .breeder-page-heading p { font-size: 12px; }
  .hatchling-log-view .hatchling-batch-panel { padding: 20px 14px 18px; border-radius: 22px; }
  .hatchling-source-grid { grid-template-columns: 1fr; gap: 18px; padding-bottom: 20px; }
  .hatchling-source-field > span,
  .hatchling-mother-field > span,
  .hatchling-note-field > span,
  .hatchling-situation-section > h3 { font-size: 16px; }
  .hatchling-source-field select,
  .hatchling-mother-field select { min-height: 58px; padding-left: 14px; font-size: 14px; }
  .hatchling-mother-field { padding: 22px 0 20px; }
  .hatchling-mother-field > em,
  .hatchling-quantity-section > p { align-items: flex-start; font-size: 11px; }
  .hatchling-quantity-section { padding: 20px 0 16px; }
  .hatchling-quantity-section > header > div { font-size: 20px; }
  .hatchling-quantity-section > header > strong { font-size: 29px; }
  .hatchling-matrix-head,
  .hatchling-matrix-row { grid-template-columns: 68px minmax(0, 1fr) minmax(0, 1fr) 44px; }
  .hatchling-matrix-head { min-height: 42px; font-size: 11px; }
  .hatchling-matrix-row { min-height: 82px; }
  .hatchling-matrix-row > strong { display: grid; justify-items: center; gap: 3px; font-size: 13px; }
  .hatchling-matrix-row > strong img { width: 24px; height: 24px; }
  .hatchling-matrix-row > label { grid-template-columns: 25px minmax(25px, 1fr) 25px 16px; margin: 13px 5px; }
  .hatchling-matrix-row > label + label { margin-left: 0; }
  .hatchling-matrix-row label button { font-size: 17px; }
  .hatchling-matrix-row label input { font-size: 18px; }
  .hatchling-matrix-row label small { font-size: 9px; }
  .hatchling-matrix-row > output { font-size: 19px; }
  .hatchling-matrix-row > output small { font-size: 9px; }
  .hatchling-note-field { padding-top: 20px; }
  .hatchling-note-field textarea { min-height: 98px; font-size: 14px; }
  .hatchling-form-actions { grid-template-columns: .42fr 1fr; gap: 10px; padding-top: 18px; }
  .hatchling-form-actions .breeder-save-button,
  .hatchling-cancel-button { min-height: 60px; font-size: 16px; }
}

/* 2026-08-27 母龟目录组合方案 v191 */
.female-directory-hero-art {
  display: none;
}

#matingGroupDetailView.mating-directory-mode.female-directory-mode {
  width: min(100%, 680px);
}

#matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
  position: relative;
  display: block;
  min-height: 230px;
  overflow: hidden;
  padding: 44px 48% 34px 28px;
  border: 1px solid #dce7da;
  border-bottom: 0;
  border-radius: 24px 24px 0 0;
  background: linear-gradient(105deg, #f4f6eb 0%, #fbfaf3 56%, #f3f4e7 100%);
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
}

#matingGroupDetailView.female-directory-mode .mating-group-overview-copy {
  position: relative;
  z-index: 2;
}

#matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  margin: 0 0 18px;
  color: #4c8361;
  font-size: 18px;
  font-weight: 900;
}

#matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .panel-head h2 {
  max-width: 320px;
  color: #123e2e;
  font-size: clamp(34px, 6.5vw, 49px);
  line-height: 1.08;
  letter-spacing: -1px;
}

#matingGroupDetailView.female-directory-mode .female-directory-hero-art {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  display: block;
  width: 52%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: multiply;
}

#matingGroupDetailView.female-directory-mode .mating-group-archive-count {
  position: absolute;
  z-index: 2;
  bottom: 36px;
  left: 28px;
  padding: 0;
  border-radius: 0;
  color: #4f8462;
  background: transparent;
  font-size: 21px;
  font-weight: 800;
}

#matingGroupDetailView.female-directory-mode .mating-directory-toolbar {
  padding: 20px 22px;
  border-color: #dce7da;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.96);
}

#matingGroupDetailView.female-directory-mode .mating-directory-toolbar::before {
  display: none;
}

#matingGroupDetailView.female-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
  min-height: 58px;
  padding: 0 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, #2f744c, #4f865c);
  box-shadow: 0 10px 22px rgba(39, 105, 69, 0.2);
}

#matingGroupDetailView.female-directory-mode .mating-directory-toolbar #addMatingTurtleButton span {
  color: #2f744c;
}

#matingGroupDetailView.female-directory-mode .mating-directory-search {
  min-height: 58px;
  border-color: #d4ddd3;
  border-radius: 16px;
}

#matingGroupDetailView.female-directory-mode .mating-directory-search input {
  min-height: 56px;
  font-size: 16px;
}

#matingGroupDetailView.female-directory-mode .turtle-profile-list {
  border: 1px solid #dce7da;
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
}

#matingGroupDetailView.female-directory-mode .female-turtle-directory {
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 0 0 24px 24px;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

#matingGroupDetailView.female-directory-mode .female-directory-rulebar {
  display: block;
  padding: 0 22px 20px;
}

#matingGroupDetailView.female-directory-mode .female-directory-rulebar .mother-directory-rule {
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 15px 20px;
  border: 1px solid #e5e4db;
  border-radius: 16px;
  color: #253b31;
  background: linear-gradient(100deg, #f7f6ee, #fbfaf6);
  font-size: 16px;
  line-height: 1.5;
}

#matingGroupDetailView.female-directory-mode .female-directory-rulebar .mother-directory-rule > span {
  white-space: normal;
}

#matingGroupDetailView.female-directory-mode .female-directory-rulebar .mother-directory-rule > span + span::before {
  content: "·";
  margin-right: 14px;
  color: #6c776f;
}

#matingGroupDetailView.female-directory-mode .female-turtle-directory .turtle-directory-grid {
  display: block;
  border-top: 1px solid #e3e9e2;
}

#matingGroupDetailView.female-directory-mode .female-turtle-summary {
  display: grid;
  min-height: 180px;
  grid-template-columns: 1fr;
  padding: 22px 26px 15px;
  border: 0;
  border-bottom: 1px solid #e3e9e2;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

#matingGroupDetailView.female-directory-mode .female-turtle-summary:last-child {
  border-bottom: 0;
  border-radius: 0 0 24px 24px;
}

#matingGroupDetailView.female-directory-mode .female-turtle-summary:hover,
#matingGroupDetailView.female-directory-mode .female-turtle-summary:focus-visible,
#matingGroupDetailView.female-directory-mode .female-turtle-summary:active {
  border-color: #dce7da;
  background: #f8fbf7;
  box-shadow: inset 4px 0 0 #4b8560;
  transform: none;
}

#matingGroupDetailView.female-directory-mode .female-directory-title {
  display: grid;
  min-height: 54px;
  grid-template-columns: 48px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 14px;
  margin-bottom: 15px;
}

#matingGroupDetailView.female-directory-mode .female-directory-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: #fae8ec;
}

#matingGroupDetailView.female-directory-mode .female-directory-avatar img {
  width: 25px;
  height: 25px;
}

#matingGroupDetailView.female-directory-mode .female-directory-name-and-rating {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
}

#matingGroupDetailView.female-directory-mode .female-directory-name-and-rating > strong {
  overflow: hidden;
  color: #101d18;
  font-size: 24px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#matingGroupDetailView.female-directory-mode .female-directory-name-and-rating .turtle-directory-ratings {
  justify-content: flex-start;
}

#matingGroupDetailView.female-directory-mode .female-directory-chevron {
  color: #68736c;
  font-size: 38px;
  font-weight: 300;
  line-height: 1;
  text-align: right;
}

#matingGroupDetailView.female-directory-mode .female-directory-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 10px 62px;
  border-bottom: 1px solid #e7ebe7;
}

#matingGroupDetailView.female-directory-mode .female-directory-metrics > span,
#matingGroupDetailView.female-directory-mode .female-directory-metrics > span:nth-child(even),
#matingGroupDetailView.female-directory-mode .female-directory-metrics > span:nth-child(n + 3) {
  min-height: 62px;
  padding: 4px 10px 10px;
  border-top: 0;
  border-left: 1px solid #e7ebe7;
  text-align: center;
}

#matingGroupDetailView.female-directory-mode .female-directory-metrics > span:first-child {
  border-left: 0;
}

#matingGroupDetailView.female-directory-mode .female-directory-metrics small {
  justify-content: center;
  color: #626c66;
  font-size: 11px;
}

#matingGroupDetailView.female-directory-mode .female-directory-metrics small i {
  display: none;
}

#matingGroupDetailView.female-directory-mode .female-directory-metrics > span > strong {
  margin-top: 5px;
  color: #101d18;
  font-size: 22px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

#matingGroupDetailView.female-directory-mode .female-recent-heading {
  display: none;
}

#matingGroupDetailView.female-directory-mode .female-recent-months {
  display: flex;
  gap: 18px;
  margin-left: 62px;
}

#matingGroupDetailView.female-directory-mode .female-recent-months > span {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 0;
  border: 0;
}

#matingGroupDetailView.female-directory-mode .female-recent-months > span + span::before {
  content: "·";
  margin-right: 10px;
  color: #9aa19c;
}

#matingGroupDetailView.female-directory-mode .female-recent-months small,
#matingGroupDetailView.female-directory-mode .female-recent-months strong {
  color: #242f29;
  font-size: 13px;
  font-weight: 700;
}

#matingGroupDetailView.female-directory-mode .female-recent-months .current small {
  color: #2d8050;
}

@media (max-width: 640px) {
  #matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 182px;
    padding: 28px 47% 24px 20px;
    border-radius: 20px 20px 0 0;
  }

  #matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
    margin-bottom: 13px;
    font-size: 14px;
  }

  #matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .panel-head h2 {
    font-size: clamp(27px, 8vw, 36px);
  }

  #matingGroupDetailView.female-directory-mode .mating-group-archive-count {
    bottom: 25px;
    left: 20px;
    font-size: 17px;
  }

  #matingGroupDetailView.female-directory-mode .mating-directory-toolbar {
    grid-template-columns: minmax(126px, auto) minmax(0, 1fr);
    padding: 14px 12px;
  }

  #matingGroupDetailView.female-directory-mode .mating-directory-toolbar #addMatingTurtleButton,
  #matingGroupDetailView.female-directory-mode .mating-directory-search {
    min-height: 52px;
  }

  #matingGroupDetailView.female-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
    padding: 0 10px;
    font-size: 12px;
  }

  #matingGroupDetailView.female-directory-mode .mating-directory-search input {
    min-height: 50px;
    font-size: 12px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-rulebar {
    padding: 0 12px 14px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-rulebar .mother-directory-rule {
    min-height: 94px;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.5;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-rulebar .mother-directory-rule > span + span::before {
    margin-right: 9px;
  }

  #matingGroupDetailView.female-directory-mode .female-turtle-summary {
    min-height: 166px;
    padding: 16px 14px 12px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-title {
    grid-template-columns: 44px minmax(0, 1fr) 24px;
    gap: 10px;
    margin-bottom: 11px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-avatar {
    width: 44px;
    height: 44px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-name-and-rating {
    gap: 8px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-name-and-rating > strong {
    font-size: 19px;
  }

  #matingGroupDetailView.female-directory-mode .mother-fertility-stars {
    font-size: 12px;
  }

  #matingGroupDetailView.female-directory-mode .turtle-mating-hearts {
    font-size: 14px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-metrics {
    margin-left: 54px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-metrics > span,
  #matingGroupDetailView.female-directory-mode .female-directory-metrics > span:nth-child(even),
  #matingGroupDetailView.female-directory-mode .female-directory-metrics > span:nth-child(n + 3) {
    min-height: 56px;
    padding: 3px 4px 8px;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-metrics small {
    font-size: 9px;
    white-space: normal;
  }

  #matingGroupDetailView.female-directory-mode .female-directory-metrics > span > strong {
    font-size: 18px;
  }

  #matingGroupDetailView.female-directory-mode .female-recent-months {
    gap: 8px;
    margin-left: 54px;
  }

  #matingGroupDetailView.female-directory-mode .female-recent-months > span + span::before {
    margin-right: 4px;
  }

  #matingGroupDetailView.female-directory-mode .female-recent-months small,
  #matingGroupDetailView.female-directory-mode .female-recent-months strong {
    font-size: 11px;
  }
}

/* 2026-08-27 公龟排名目录组合方案 v192 */
.male-directory-hero-art {
  display: none;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode {
  width: min(100%, 680px);
}

#matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
  position: relative;
  display: block;
  min-height: 230px;
  overflow: hidden;
  padding: 44px 48% 34px 28px;
  border: 1px solid #dce7da;
  border-bottom: 0;
  border-radius: 24px 24px 0 0;
  background: #f7f5e9;
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
}

#matingGroupDetailView.male-directory-mode .mating-group-overview-copy {
  position: relative;
  z-index: 2;
}

#matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  margin: 0 0 18px;
  color: #4c8361;
  font-size: 18px;
  font-weight: 900;
}

#matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head h2 {
  max-width: 320px;
  color: #123e2e;
  font-size: clamp(34px, 6.5vw, 49px);
  line-height: 1.08;
  letter-spacing: -1px;
}

#matingGroupDetailView.male-directory-mode .male-directory-hero-art {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  display: block;
  width: 52%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: multiply;
}

#matingGroupDetailView.male-directory-mode .mating-group-archive-count {
  position: absolute;
  z-index: 2;
  bottom: 36px;
  left: 28px;
  padding: 0;
  border-radius: 0;
  color: #4f8462;
  background: transparent;
  font-size: 21px;
  font-weight: 800;
}

#matingGroupDetailView.male-directory-mode .mating-directory-toolbar {
  padding: 20px 22px;
  border-color: #dce7da;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.97);
}

#matingGroupDetailView.male-directory-mode .mating-directory-toolbar::before {
  display: none;
}

#matingGroupDetailView.male-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
  min-height: 58px;
  padding: 0 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, #2f744c, #4f865c);
  box-shadow: 0 10px 22px rgba(39, 105, 69, 0.2);
}

#matingGroupDetailView.male-directory-mode .mating-directory-toolbar #addMatingTurtleButton span {
  color: #2f744c;
}

#matingGroupDetailView.male-directory-mode .mating-directory-search {
  min-height: 58px;
  border-color: #d4ddd3;
  border-radius: 16px;
}

#matingGroupDetailView.male-directory-mode .mating-directory-search input {
  min-height: 56px;
  font-size: 16px;
}

#matingGroupDetailView.male-directory-mode .turtle-profile-list {
  border: 1px solid #dce7da;
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory {
  gap: 0;
  padding: 0 22px 8px;
  border: 0;
  border-radius: 0 0 24px 24px;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-head {
  min-height: 78px;
  padding: 14px 0 8px;
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-head h3 {
  color: #13261f;
  font-size: 28px;
}

#matingGroupDetailView.male-directory-mode .turtle-directory-filter {
  width: 48px;
  height: 48px;
  border-color: #d9e4d8;
  border-radius: 14px;
  color: #327b54;
  background: #fbfcf8;
}

#matingGroupDetailView.male-directory-mode .male-directory-rule {
  min-height: 58px;
  margin: 0 0 16px;
  padding: 14px 18px;
  border: 1px solid #f1d8d8;
  border-radius: 16px;
  color: #963d43;
  background: #fff8f7;
  font-size: 14px;
  text-align: center;
}

#matingGroupDetailView.male-directory-mode .male-directory-rule b {
  font-weight: 900;
}

#matingGroupDetailView.male-directory-mode .male-directory-rule span {
  color: #d64c52;
}

.male-directory-columns {
  display: grid;
  min-height: 46px;
  grid-template-columns: 58px minmax(0, 1.45fr) minmax(82px, 0.85fr) minmax(74px, 0.7fr) 24px;
  align-items: center;
  padding: 0 10px;
  border: 1px solid #e7ece6;
  border-bottom: 0;
  border-radius: 16px 16px 0 0;
  color: #747d78;
  background: #fff;
  font-size: 12px;
  font-weight: 800;
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-grid {
  display: block;
  border: 1px solid #e7ece6;
  border-top: 0;
  border-radius: 0 0 16px 16px;
  background: #fff;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary {
  display: grid;
  min-height: 108px;
  grid-template-columns: 58px minmax(0, 1.45fr) minmax(82px, 0.85fr) minmax(74px, 0.7fr) 24px;
  align-items: center;
  gap: 0;
  padding: 12px 10px;
  border: 0;
  border-bottom: 1px solid #e7ece6;
  border-radius: 0;
  color: #14231d;
  background: #fff;
  box-shadow: none;
  text-align: left;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary:last-child {
  border-bottom: 0;
  border-radius: 0 0 16px 16px;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary:hover,
#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary:focus-visible,
#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary:active {
  color: #14231d;
  border-color: #e7ece6;
  background: #f7faf5;
  box-shadow: inset 4px 0 0 #3f8054;
  transform: none;
}

.male-directory-rank {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 16px;
  background: #eef7fc;
}

.male-directory-rank img {
  display: block;
  width: 31px;
  height: 31px;
}

#matingGroupDetailView.male-directory-mode .male-directory-title {
  display: grid;
  min-height: 58px;
  align-content: center;
  justify-items: start;
  gap: 7px;
  margin: 0;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-directory-name {
  color: #13213a;
  font-size: 21px;
  text-align: left;
}

#matingGroupDetailView.male-directory-mode .male-directory-title .turtle-directory-ratings {
  min-height: 16px;
  justify-content: flex-start;
}

#matingGroupDetailView.male-directory-mode .turtle-mating-hearts {
  min-height: 16px;
  color: #d94d54;
  font-size: 18px;
}

#matingGroupDetailView.male-directory-mode .male-directory-total,
#matingGroupDetailView.male-directory-mode .male-directory-recent {
  display: grid;
  min-height: 60px;
  align-content: center;
  justify-items: start;
  gap: 5px;
  padding: 0 8px;
  border-left: 1px solid #e7ece6;
}

#matingGroupDetailView.male-directory-mode .male-directory-total small,
#matingGroupDetailView.male-directory-mode .male-directory-recent small {
  color: #66706a;
  font-size: 11px;
  font-weight: 700;
}

#matingGroupDetailView.male-directory-mode .male-directory-total > span,
#matingGroupDetailView.male-directory-mode .male-directory-recent > span {
  display: flex;
  align-items: baseline;
  gap: 3px;
}

#matingGroupDetailView.male-directory-mode .male-directory-total strong,
#matingGroupDetailView.male-directory-mode .male-directory-recent strong {
  color: #2b7546;
  font-size: 25px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

#matingGroupDetailView.male-directory-mode .male-directory-total b,
#matingGroupDetailView.male-directory-mode .male-directory-recent b {
  color: #697a71;
  font-size: 12px;
}

.male-directory-chevron {
  color: #77837c;
  font-size: 34px;
  font-weight: 300;
  line-height: 1;
  text-align: right;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode.male-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 182px;
    padding: 28px 47% 24px 20px;
    border-radius: 20px 20px 0 0;
  }

  #matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
    margin-bottom: 13px;
    font-size: 14px;
  }

  #matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head h2 {
    max-width: 165px;
    font-size: 24px;
    letter-spacing: -0.8px;
    white-space: nowrap;
  }

  #matingGroupDetailView.male-directory-mode .mating-group-archive-count {
    bottom: 18px;
    left: 20px;
    font-size: 15px;
  }

  #matingGroupDetailView.male-directory-mode .mating-directory-toolbar {
    grid-template-columns: minmax(126px, auto) minmax(0, 1fr);
    padding: 14px 12px;
  }

  #matingGroupDetailView.male-directory-mode .mating-directory-toolbar #addMatingTurtleButton,
  #matingGroupDetailView.male-directory-mode .mating-directory-search {
    min-height: 52px;
  }

  #matingGroupDetailView.male-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
    padding: 0 10px;
    font-size: 12px;
  }

  #matingGroupDetailView.male-directory-mode .mating-directory-search input {
    min-height: 50px;
    font-size: 12px;
  }

  #matingGroupDetailView.male-directory-mode .male-turtle-directory {
    padding: 0 12px 6px;
  }

  #matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-head {
    min-height: 68px;
  }

  #matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-head h3 {
    font-size: 22px;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-rule {
    min-height: 52px;
    margin-bottom: 12px;
    padding: 11px 9px;
    font-size: 11px;
  }

  .male-directory-columns,
  #matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary {
    grid-template-columns: 44px minmax(0, 1.28fr) minmax(68px, 0.72fr) minmax(58px, 0.62fr) 18px;
  }

  .male-directory-columns {
    min-height: 40px;
    padding: 0 6px;
    font-size: 9px;
  }

  #matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary {
    min-height: 92px;
    padding: 10px 6px;
  }

  .male-directory-rank {
    width: 38px;
    height: 38px;
    border-radius: 13px;
  }

  .male-directory-rank img {
    width: 25px;
    height: 25px;
  }

  #matingGroupDetailView.mating-directory-mode.male-directory-mode .male-directory-name {
    font-size: 16px;
  }

  #matingGroupDetailView.male-directory-mode .turtle-mating-hearts {
    font-size: 13px;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-total,
  #matingGroupDetailView.male-directory-mode .male-directory-recent {
    min-height: 52px;
    gap: 3px;
    padding: 0 4px;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-total small,
  #matingGroupDetailView.male-directory-mode .male-directory-recent small {
    font-size: 8px;
    white-space: nowrap;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-total strong,
  #matingGroupDetailView.male-directory-mode .male-directory-recent strong {
    font-size: 19px;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-total b,
  #matingGroupDetailView.male-directory-mode .male-directory-recent b {
    font-size: 10px;
  }

  .male-directory-chevron {
    font-size: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #matingGroupDetailView.male-directory-mode .male-turtle-summary {
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #matingGroupDetailView.female-directory-mode .female-turtle-summary {
    transition: none;
  }
}

/* v189: 龟池档案采用已选第 2 套“清爽数据总览”，底部导航保持原实现。 */
body:has(#turtlePoolDetailView.active) {
  background: #fbfaf5;
}

body:has(#turtlePoolDetailView.active) #appMain {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

#turtlePoolDetailView.pool-detail-view.active {
  --pool-v189-forest: #145a40;
  --pool-v189-green: #299761;
  --pool-v189-ink: #173026;
  --pool-v189-muted: #68756f;
  --pool-v189-line: #dfe6df;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 108px;
  color: var(--pool-v189-ink);
  background: #fbfaf5;
}

#turtlePoolDetailView > .pool-detail-back {
  display: none !important;
}

#turtlePoolDetailView .pool-detail-panel {
  display: grid;
  gap: 0;
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

#turtlePoolDetailView .pool-detail-heading {
  position: relative;
  display: grid;
  min-height: 232px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-bottom: 1px solid #d9e1d8;
  background: #f8f6ea;
  text-align: left;
}

#turtlePoolDetailView .pool-detail-heading > .eyebrow {
  position: absolute;
  z-index: 3;
  top: 23px;
  left: 24px;
  display: inline-flex;
  min-height: 32px;
  margin: 0;
  align-items: center;
  gap: 9px;
  color: var(--pool-v189-forest);
  font-size: 18px;
  font-weight: 900;
}

#turtlePoolDetailView .pool-detail-heading > .eyebrow img {
  width: 23px;
  height: 23px;
  filter: sepia(0.2) saturate(0.8) hue-rotate(80deg) brightness(0.55);
}

#turtlePoolDetailView .pool-detail-hero-grid {
  display: grid;
  width: 100%;
  min-height: 232px;
  grid-template-columns: minmax(160px, 42%) minmax(0, 1fr);
  grid-template-areas: "copy photo";
  gap: 0;
  align-items: stretch;
}

#turtlePoolDetailView .pool-detail-hero-photo {
  grid-area: photo;
  min-width: 0;
  min-height: 232px;
}

#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-shell,
#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-carousel,
#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-slide {
  width: 100%;
  height: 100%;
  min-height: 232px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-slide {
  flex: 0 0 100%;
  overflow: hidden;
  scroll-snap-align: start;
}

#turtlePoolDetailView .pool-detail-hero-photo .turtle-photo-img,
#turtlePoolDetailView .pool-detail-hero-photo .pool-fallback-illustration {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#turtlePoolDetailView .pool-detail-hero-photo .pool-fallback-illustration {
  object-position: 46% center;
  mix-blend-mode: multiply;
}

#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-kind,
#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-count,
#turtlePoolDetailView .pool-detail-hero-photo .photo-meta,
#turtlePoolDetailView .pool-detail-hero-photo .archive-photo-hint,
#turtlePoolDetailView .pool-detail-hero-photo .archive-dots {
  display: none !important;
}

#turtlePoolDetailView .pool-detail-hero-copy {
  position: relative;
  z-index: 2;
  grid-area: copy;
  display: grid;
  min-width: 0;
  align-content: end;
  justify-items: start;
  gap: 8px;
  padding: 67px 12px 24px 24px;
  background: #f8f6ea;
}

#turtlePoolDetailView .pool-detail-heading .pool-detail-hero-copy h2 {
  margin: 0;
  color: #12392b;
  font-size: clamp(42px, 8vw, 64px);
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 0.96;
}

#turtlePoolDetailView .pool-detail-hero-copy > p {
  margin: 5px 0 0;
  color: var(--pool-v189-forest);
  font-size: 18px;
  font-weight: 850;
  line-height: 1.25;
}

#turtlePoolDetailView .pool-detail-edit {
  display: inline-flex;
  width: auto;
  min-width: 88px;
  min-height: 44px;
  margin-top: 4px;
  padding: 0 16px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1.5px solid var(--pool-v189-forest);
  border-radius: 14px;
  color: var(--pool-v189-forest);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: none;
}

#turtlePoolDetailView .pool-detail-edit img {
  width: 19px;
  height: 19px;
  filter: sepia(0.2) saturate(0.8) hue-rotate(80deg) brightness(0.55);
}

#turtlePoolDetailView .pool-detail-edit strong {
  font-size: 15px;
  font-weight: 900;
}

#turtlePoolDetailView #turtlePoolDetail {
  display: grid;
  gap: 0;
  background: #fff;
}

#turtlePoolDetailView .pool-overview-card {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

#turtlePoolDetailView .pool-core-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--pool-v189-line);
  border-radius: 0;
}

#turtlePoolDetailView .pool-metric {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 102px;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px;
  padding: 22px 14px;
  align-items: center;
  border: 0;
  background: #fff;
}

#turtlePoolDetailView .pool-metric + .pool-metric {
  border-left: 1px solid var(--pool-v189-line);
}

#turtlePoolDetailView .pool-metric > i {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: #edf7ef;
}

#turtlePoolDetailView .pool-metric.amber > i {
  background: #fff7e3;
}

#turtlePoolDetailView .pool-metric > i img {
  width: 24px;
  height: 24px;
}

#turtlePoolDetailView .pool-metric > span {
  display: grid;
  gap: 3px;
}

#turtlePoolDetailView .pool-metric b {
  color: #53625c;
  font-size: 14px;
  font-weight: 800;
}

#turtlePoolDetailView .pool-metric strong,
#turtlePoolDetailView .pool-metric strong.positive {
  color: #153e2f;
  font-size: 30px;
  font-weight: 900;
  line-height: 1;
}

#turtlePoolDetailView .pool-status-title {
  position: relative;
  margin: 0;
  padding: 23px 24px 15px 37px;
  color: var(--pool-v189-forest);
  font-size: 22px;
  font-weight: 900;
  line-height: 1.2;
}

#turtlePoolDetailView .pool-status-title::before {
  position: absolute;
  top: 24px;
  bottom: 15px;
  left: 24px;
  width: 3px;
  border-radius: 99px;
  background: var(--pool-v189-green);
  content: "";
}

#turtlePoolDetailView .pool-breeding-status {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0 24px 16px;
}

#turtlePoolDetailView .pool-status-metric {
  display: grid;
  min-width: 0;
  min-height: 68px;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 10px 10px 10px 0;
  border-bottom: 1px solid var(--pool-v189-line);
}

#turtlePoolDetailView .pool-status-metric:nth-child(odd) {
  padding-right: 18px;
}

#turtlePoolDetailView .pool-status-metric:nth-child(even) {
  padding-left: 18px;
  border-left: 1px solid transparent;
}

#turtlePoolDetailView .pool-status-metric > i {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #edf7ef;
}

#turtlePoolDetailView .pool-status-metric.amber > i { background: #fff5da; }
#turtlePoolDetailView .pool-status-metric.blue > i { background: #ebf5ff; }
#turtlePoolDetailView .pool-status-metric.pink > i { background: #fff0f6; }
#turtlePoolDetailView .pool-status-metric.violet > i { background: #f1efff; }

#turtlePoolDetailView .pool-status-metric > i img {
  width: 21px;
  height: 21px;
}

#turtlePoolDetailView .pool-status-metric b {
  min-width: 0;
  color: #4d5b56;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.25;
}

#turtlePoolDetailView .pool-status-metric strong {
  min-width: 20px;
  color: #153e2f;
  font-size: 18px;
  font-weight: 900;
  text-align: right;
  overflow-wrap: anywhere;
}

#turtlePoolDetailView #turtlePoolDetail .pool-egg-history {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0 24px 22px;
  border: 0;
  border-top: 1px solid var(--pool-v189-line);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

#turtlePoolDetailView .pool-egg-history .profile-history-head {
  display: flex;
  min-height: 70px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#turtlePoolDetailView .pool-egg-history .profile-history-head > strong {
  position: relative;
  padding-left: 13px;
  color: var(--pool-v189-forest);
  font-size: 22px;
  font-weight: 900;
}

#turtlePoolDetailView .pool-egg-history .profile-history-head > strong::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 3px;
  border-radius: 99px;
  background: var(--pool-v189-green);
  content: "";
}

#turtlePoolDetailView .pool-egg-history .profile-history-head > strong i {
  display: none;
}

#turtlePoolDetailView .pool-egg-history .profile-history-head > span {
  color: #6c756f;
  font-size: 16px;
  font-weight: 850;
}

#turtlePoolDetailView .pool-egg-history .profile-history-head > span img {
  width: 14px;
  height: 14px;
  opacity: 0.62;
}

#turtlePoolDetailView .pool-egg-empty {
  display: grid;
  min-height: 190px;
  place-items: center;
  place-content: center;
  gap: 8px;
  color: #707a75;
  text-align: center;
}

#turtlePoolDetailView .pool-egg-empty img {
  width: 172px;
  height: 96px;
  object-fit: cover;
  mix-blend-mode: multiply;
}

#turtlePoolDetailView .pool-egg-empty p {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

#turtlePoolDetailView .pool-egg-list {
  border-color: #dbe5dc;
  border-radius: 15px;
}

#turtlePoolDetailView .pool-egg-year-toggle,
#turtlePoolDetailView .pool-egg-month-toggle {
  color: var(--pool-v189-forest);
  background: #f5f8f3;
}

@media (max-width: 520px) {
  #turtlePoolDetailView .pool-detail-heading,
  #turtlePoolDetailView .pool-detail-hero-grid,
  #turtlePoolDetailView .pool-detail-hero-photo,
  #turtlePoolDetailView .pool-detail-hero-photo .archive-photo-shell,
  #turtlePoolDetailView .pool-detail-hero-photo .archive-photo-carousel,
  #turtlePoolDetailView .pool-detail-hero-photo .archive-photo-slide {
    min-height: 194px;
  }

  #turtlePoolDetailView .pool-detail-hero-grid {
    grid-template-columns: 46% minmax(0, 1fr);
  }

  #turtlePoolDetailView .pool-detail-heading > .eyebrow {
    top: 18px;
    left: 18px;
    font-size: 17px;
  }

  #turtlePoolDetailView .pool-detail-hero-copy {
    padding: 56px 7px 13px 18px;
  }

  #turtlePoolDetailView .pool-detail-heading .pool-detail-hero-copy h2 {
    font-size: 45px;
  }

  #turtlePoolDetailView .pool-detail-hero-copy > p {
    font-size: 16px;
  }

  #turtlePoolDetailView .pool-detail-edit {
    min-width: 82px;
    min-height: 44px;
    padding-inline: 13px;
  }

  #turtlePoolDetailView .pool-metric {
    min-height: 80px;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 7px;
    padding: 12px 8px;
  }

  #turtlePoolDetailView .pool-metric > i {
    width: 36px;
    height: 36px;
  }

  #turtlePoolDetailView .pool-metric > i img {
    width: 21px;
    height: 21px;
  }

  #turtlePoolDetailView .pool-metric b {
    font-size: 12px;
  }

  #turtlePoolDetailView .pool-metric strong,
  #turtlePoolDetailView .pool-metric strong.positive {
    font-size: 27px;
  }

  #turtlePoolDetailView .pool-status-title {
    padding: 16px 18px 10px 31px;
    font-size: 20px;
  }

  #turtlePoolDetailView .pool-status-title::before {
    top: 17px;
    bottom: 11px;
    left: 18px;
  }

  #turtlePoolDetailView .pool-breeding-status {
    padding: 0 18px 12px;
  }

  #turtlePoolDetailView .pool-status-metric {
    min-height: 54px;
    grid-template-columns: 33px minmax(0, 1fr) auto;
    gap: 7px;
    padding-block: 5px;
  }

  #turtlePoolDetailView .pool-status-metric:nth-child(odd) { padding-right: 8px; }
  #turtlePoolDetailView .pool-status-metric:nth-child(even) { padding-left: 8px; }

  #turtlePoolDetailView .pool-status-metric > i {
    width: 33px;
    height: 33px;
  }

  #turtlePoolDetailView .pool-status-metric > i img {
    width: 19px;
    height: 19px;
  }

  #turtlePoolDetailView .pool-status-metric b {
    font-size: 12px;
  }

  #turtlePoolDetailView .pool-status-metric strong {
    font-size: 17px;
  }

  #turtlePoolDetailView #turtlePoolDetail .pool-egg-history {
    padding: 0 18px 18px;
  }

  #turtlePoolDetailView .pool-egg-history .profile-history-head {
    min-height: 54px;
  }

  #turtlePoolDetailView .pool-egg-history .profile-history-head > strong {
    font-size: 20px;
  }

  #turtlePoolDetailView .pool-egg-empty {
    min-height: 134px;
    gap: 3px;
  }

  #turtlePoolDetailView .pool-egg-empty img {
    width: 150px;
    height: 78px;
  }

  #turtlePoolDetailView .pool-egg-empty p {
    font-size: 14px;
  }
}

/* v142 首页：今日概况与繁育统计合并为半屏紧凑卡片 */
.farm-breeding-hub-compact {
  padding: 10px;
}

/* v299 首页繁育统计与动态合并成连续面板 */
#farmBreedingHub {
  margin-bottom: 0;
  border-bottom: 0;
  border-radius: 25px 25px 0 0;
  box-shadow: none;
}

#farmHomeFeedCard {
  margin-top: 0;
  border-radius: 0 0 25px 25px;
}

.farm-breeding-hub-compact .farm-breeding-hub-switch {
  margin-bottom: 0;
}

.farm-breeding-species-nav {
  margin: 12px 2px 0;
}

.farm-breeding-species-nav > span {
  display: block;
  margin: 0 7px 7px;
  color: #697085;
  font-size: 12px;
  font-weight: 800;
}

.farm-breeding-species-tabs {
  display: flex;
  width: 100%;
  gap: 3px;
  overflow-x: auto;
  padding: 4px;
  border: 1px solid #dbe8d9;
  border-radius: 16px;
  background: #f0f6ee;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.farm-breeding-species-tabs::-webkit-scrollbar { display: none; }

.farm-breeding-species-tabs button {
  flex: 1 0 max-content;
  min-width: 104px;
  min-height: 39px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: 13px;
  color: #264c38;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.farm-breeding-species-tabs button.active {
  border-color: #9fc59f;
  color: #16723d;
  background: #fff;
  box-shadow: 0 2px 7px rgba(30, 95, 54, 0.1);
}

.farm-breeding-species-tabs button:focus-visible {
  outline: 3px solid rgba(34, 145, 71, 0.25);
  outline-offset: -2px;
}

.farm-breeding-hub-compact .farm-overview-merged {
  margin: 0;
  padding: 14px 5px 13px;
  border: 0;
  border-bottom: 1px solid #e7e9ee;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-section-head {
  padding: 0 4px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-section-head h3 {
  font-size: 19px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-grid {
  display: block;
  margin-top: 9px;
}

.farm-breeding-hub-compact .farm-metric-group > h4 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #697085;
  font-size: 12px;
  font-weight: 750;
  text-align: center;
}

.farm-breeding-hub-compact .farm-metric-group > h4::before,
.farm-breeding-hub-compact .farm-metric-group > h4::after {
  height: 1px;
  flex: 1;
  background: #e5e7eb;
  content: "";
}

.farm-breeding-hub-compact .farm-metric-group > div {
  display: grid;
  gap: 0;
}

.farm-breeding-hub-compact .farm-metric-group-today > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.farm-breeding-hub-compact .farm-metric-group-stock { margin-top: 4px; }
.farm-breeding-hub-compact .farm-metric-group-stock > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card {
  position: relative;
  min-height: 82px;
  padding: 4px 3px 2px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card + .farm-metric-card::before {
  position: absolute;
  top: 10px;
  bottom: 7px;
  left: 0;
  width: 1px;
  background: #e5e7eb;
  content: "";
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card h4 {
  min-height: 18px;
  margin-bottom: 3px;
  font-size: 12px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card > div {
  gap: 2px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card img {
  width: 35px;
  height: 35px;
  border-radius: 9px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card strong {
  font-size: 28px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card em {
  font-size: 10px;
}

.farm-breeding-hub-compact .farm-overview-merged .farm-metric-card > span {
  display: none;
}

.farm-breeding-hub-compact .farm-breeding-stats-card {
  padding: 11px 3px 2px;
}

.farm-breeding-hub-compact .farm-chart-head {
  gap: 6px;
}

.farm-breeding-hub-compact .farm-breeding-stats-card .farm-chart-head h3 {
  font-size: 17px;
  white-space: nowrap;
}

.farm-breeding-hub-compact .farm-chart-controls {
  gap: 4px;
}

.farm-breeding-hub-compact .farm-stats-year-select select {
  min-width: 76px;
  min-height: 35px;
  font-size: 11px;
}

.farm-breeding-hub-compact .farm-period-switch {
  grid-template-columns: repeat(3, 33px);
}

.farm-breeding-hub-compact .farm-period-switch button {
  min-height: 27px;
  font-size: 11px;
}

.farm-breeding-hub-compact .farm-combined-legend {
  gap: 12px;
  margin: 10px 0 0;
  font-size: 10px;
}

.farm-breeding-hub-compact .farm-combined-scroll {
  padding-top: 5px;
}

.farm-breeding-hub-compact .farm-combined-chart {
  width: max(100%, calc(var(--farm-stat-columns) * 20%));
  grid-template-columns: repeat(var(--farm-stat-columns), minmax(0, 1fr));
}

.farm-breeding-hub-compact .farm-combined-column {
  grid-template-rows: 18px 112px 25px 43px;
}

.farm-breeding-hub-compact .farm-combined-column > strong {
  font-size: 9px;
}

.farm-breeding-hub-compact .farm-combined-bars {
  height: 103px;
  gap: 3px;
}

.farm-breeding-hub-compact .farm-combined-bars i {
  width: 13px;
}

.farm-breeding-hub-compact .farm-combined-bars i span {
  bottom: calc(100% + 3px);
  font-size: 8px;
}

.farm-breeding-hub-compact .farm-combined-column > em {
  padding-top: 5px;
  font-size: 10px;
}

.farm-breeding-hub-compact .farm-combined-rate {
  height: 43px;
}

.farm-breeding-hub-compact .farm-combined-rate b {
  font-size: 12px;
}

.farm-breeding-hub-compact .farm-combined-rate span {
  margin-top: 1px;
  font-size: 8px;
}

@media (max-width: 640px) {
  .farm-breeding-hub-compact {
    padding: 7px;
  }

  #farmBreedingHub { border-radius: 21px 21px 0 0; }
  #farmHomeFeedCard { border-radius: 0 0 21px 21px; }

  .farm-breeding-hub-compact .farm-breeding-hub-tab {
    min-height: 42px;
  }

  .farm-breeding-hub-compact .farm-overview-merged {
    padding: 12px 2px 10px;
  }

  .farm-breeding-hub-compact .farm-overview-merged .farm-section-head h3 {
    font-size: 17px;
  }

  .farm-breeding-hub-compact .farm-overview-merged .farm-metric-card {
    min-height: 76px;
    padding-inline: 1px;
  }

  .farm-breeding-hub-compact .farm-overview-merged .farm-metric-card h4 {
    font-size: 10px;
  }

  .farm-breeding-hub-compact .farm-overview-merged .farm-metric-card img {
    width: 31px;
    height: 31px;
  }

  .farm-breeding-hub-compact .farm-overview-merged .farm-metric-card strong {
    font-size: 25px;
  }

  .farm-breeding-hub-compact .farm-overview-merged .farm-metric-card em {
    font-size: 9px;
  }
}

/* v103: corrected narrow-bridge archive composition and freshwater-turtle iconography */
.narrow-bridge-breeder-caption {
  display: block !important;
  margin: 0;
  flex: 0 0 auto;
  color: #1d673e;
  font-size: 17px;
  font-weight: 750;
  line-height: 1.2;
  white-space: nowrap;
}

.narrow-bridge-breeder-title > img {
  object-fit: contain;
  filter: none;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] {
  grid-column: 1 / span 3;
  grid-row: 2;
}

.narrow-bridge-breeder-card[data-category-card="all"] {
  grid-column: 4 / span 6;
  grid-row: 2;
}

.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  grid-column: 10 / span 3;
  grid-row: 2;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
.narrow-bridge-breeder-card[data-category-card="all"],
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  min-height: 285px;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"] {
  grid-column: 1 / span 6;
  grid-row: 3;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  grid-column: 7 / span 6;
  grid-row: 3;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"],
.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  min-height: 170px;
}

.narrow-bridge-age-icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(48, 139, 73, 0.35);
  background: rgba(249, 253, 247, 0.92);
  clip-path: polygon(25% 5%, 75% 5%, 98% 50%, 75% 95%, 25% 95%, 2% 50%);
}

.narrow-bridge-age-icon > img {
  width: 25px;
  height: 25px;
  object-fit: contain;
  filter: sepia(1) saturate(1.2) hue-rotate(86deg) brightness(0.62);
}

.narrow-bridge-turtle-icon {
  position: relative;
  display: block;
  width: 110px;
  height: 76px;
  flex: 0 0 auto;
}

.narrow-bridge-turtle-base {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 18px 10px;
  text-align: center;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-heading,
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-heading {
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value,
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value {
  width: 100%;
  justify-content: center;
  padding: 18px 0 0;
  border-top: 1px dashed rgba(49, 129, 72, 0.34);
  border-left: 0;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"],
.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(118px, 0.9fr);
  align-items: center;
  justify-content: stretch;
  padding: 18px 22px;
  text-align: left;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading,
.narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading {
  flex-direction: row;
  align-items: center;
  gap: 12px;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value,
.narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value {
  width: auto;
  justify-content: center;
  padding: 0 0 0 22px;
  border-top: 0;
  border-left: 1px dashed rgba(49, 129, 72, 0.34);
}

@media (max-width: 720px) {
  .narrow-bridge-breeder-caption {
    max-width: none;
    overflow: visible;
    font-size: 10px;
    letter-spacing: -0.2px;
    text-overflow: clip;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
  .narrow-bridge-breeder-card[data-category-card="all"],
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
    min-height: 176px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"],
  .narrow-bridge-breeder-card[data-category-card="matingMale"] {
    min-height: 104px;
  }

  .narrow-bridge-age-icon {
    width: 29px;
    height: 29px;
  }

  .narrow-bridge-age-icon > img {
    width: 17px;
    height: 17px;
  }

  .narrow-bridge-turtle-icon {
    width: 58px;
    height: 45px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
    padding: 9px 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-heading,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-heading {
    gap: 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value {
    padding-top: 10px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value b,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value b {
    font-size: 35px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"],
  .narrow-bridge-breeder-card[data-category-card="matingMale"] {
    grid-template-columns: 56px minmax(0, 1fr);
    grid-template-rows: auto auto;
    padding: 9px 8px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading {
    display: contents;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-turtle-icon,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-turtle-icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: center;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading > strong,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading > strong {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    white-space: nowrap;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value {
    grid-column: 2;
    grid-row: 2;
    justify-content: flex-start;
    padding: 5px 0 0;
    border-top: 1px dashed rgba(49, 129, 72, 0.34);
    border-left: 0;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value b,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value b {
    font-size: 36px;
  }
}

/* v142 cascade lock: keep compact dashboard sizing after legacy home rules */
#farmBreedingHub.farm-breeding-hub-compact {
  padding: 7px;
}

#farmBreedingHub.farm-breeding-hub-compact .farm-breeding-stats-card {
  padding: 11px 3px 2px;
}

/* v143 客户首页：只显示客户目录关联数据，并使用单一居中首页导航 */
body.customer-session #farmEggComposition {
  display: none !important;
}

body.customer-session #appMain {
  padding-bottom: calc(84px + env(safe-area-inset-bottom));
}

body.customer-session .farm-bottom-drawer,
body.customer-session .farm-bottom-drawer-toggle {
  display: none !important;
}

body.customer-session .farm-bottom-nav {
  display: flex !important;
  min-height: 72px;
  align-items: flex-start;
  justify-content: center;
  padding: 6px max(12px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  overflow: visible;
  touch-action: manipulation;
}

body.customer-session .farm-bottom-nav > button {
  display: none;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] {
  display: grid;
  width: 62px;
  min-width: 62px;
  height: 62px;
  min-height: 62px;
  place-items: center;
  margin-top: -18px;
  padding: 0;
  border: 5px solid rgba(255, 255, 255, 0.98);
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #29aa60, #158447);
  box-shadow: 0 9px 22px rgba(20, 113, 61, 0.28);
}

body.customer-session .farm-bottom-nav > [data-go="homeView"]:active {
  background: #13773f;
  transform: scale(0.96);
}

body.customer-session .farm-bottom-nav > [data-go="homeView"]:focus-visible {
  outline: 3px solid rgba(35, 166, 87, 0.38);
  outline-offset: 3px;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] .farm-nav-icon,
body.customer-session .farm-bottom-nav > [data-go="homeView"].active .farm-nav-icon {
  width: 38px;
  height: 38px;
  color: #fff;
  background: transparent;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] .farm-nav-icon svg {
  width: 28px;
  height: 28px;
  stroke-width: 2.1;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] .farm-nav-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"].active .farm-nav-label::after {
  display: none;
}

/* v339 AI管家：有步态、会停顿、可拖拽的小乌龟入口。 */
.ai-assistant-toggle {
  position: fixed;
  z-index: 90;
  display: block;
  width: 78px;
  height: 78px;
  padding: 0;
  border: 0;
  border-radius: 46% 46% 42% 42%;
  color: inherit;
  background: transparent;
  filter: drop-shadow(0 9px 9px rgba(20, 73, 39, 0.2));
  font: inherit;
  cursor: grab;
  opacity: 0;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  transition: left 9s linear, top 9s linear, opacity 160ms ease, filter 160ms ease, scale 160ms ease;
}

.ai-assistant-toggle.is-ready { opacity: 1; }
.ai-assistant-toggle.is-dragging {
  cursor: grabbing;
  transition: none;
  scale: 1.06;
}
.ai-assistant-toggle img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  transform-origin: 50% 88%;
  animation: ai-turtle-idle 2.4s ease-in-out infinite;
}

.ai-assistant-toggle.is-walking img {
  animation: ai-turtle-crawl 560ms ease-in-out infinite;
}

@keyframes ai-turtle-idle {
  0%, 100% { transform: translateY(0) scale(1); }
  48% { transform: translateY(-2px) scale(1.012, 0.988); }
  55% { transform: translateY(-1px) scale(0.994, 1.008); }
}

@keyframes ai-turtle-crawl {
  0%, 100% { transform: translate3d(-2px, 1px, 0) rotate(-3deg) scale(1.025, 0.975); }
  25% { transform: translate3d(0, -6px, 0) rotate(1deg) scale(0.985, 1.025); }
  50% { transform: translate3d(2px, 1px, 0) rotate(3deg) scale(1.025, 0.975); }
  75% { transform: translate3d(0, -5px, 0) rotate(-1deg) scale(0.985, 1.025); }
}

.ai-assistant-toggle:hover { filter: drop-shadow(0 11px 12px rgba(20, 73, 39, 0.28)); }
.ai-assistant-toggle:active { scale: 0.97; }
.ai-assistant-toggle:focus-visible,
.ai-assistant-dialog button:focus-visible,
.ai-assistant-dialog textarea:focus-visible {
  outline: 3px solid rgba(45, 170, 98, 0.38);
  outline-offset: 3px;
}

.ai-assistant-dialog {
  width: min(720px, calc(100vw - 24px));
  max-width: none;
  max-height: calc(100dvh - 112px);
  margin: auto auto calc(82px + env(safe-area-inset-bottom));
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 28px;
  color: #142417;
  background: transparent;
}

.ai-assistant-dialog::backdrop {
  background: rgba(12, 34, 21, 0.42);
  backdrop-filter: blur(3px);
}

.ai-assistant-sheet {
  display: flex;
  max-height: inherit;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(184, 208, 190, 0.95);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(22, 65, 38, 0.25);
}

.ai-assistant-head {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) 48px 48px;
  gap: 8px;
  align-items: center;
  padding: 18px 18px 15px;
  border-bottom: 1px solid #e3ece5;
  background: linear-gradient(135deg, #f3faf5, #fff);
}

.ai-assistant-avatar {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 17px;
  color: #fff;
  background: linear-gradient(145deg, #32b46e, #168145);
  box-shadow: 0 8px 18px rgba(27, 134, 75, 0.2);
}

.ai-assistant-avatar svg { width: 28px; height: 28px; }
.ai-assistant-head h2 { margin: 0; color: #123a22; font-size: 22px; line-height: 1.2; }
.ai-assistant-head p { margin: 4px 0 0; color: #6d7c71; font-size: 14px; line-height: 1.45; }

.ai-assistant-close,
.ai-assistant-icon-button,
.ai-assistant-send {
  display: grid;
  width: 48px;
  height: 48px;
  min-width: 48px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 15px;
  font: inherit;
  cursor: pointer;
  touch-action: manipulation;
}

.ai-assistant-close { color: #526258; background: #edf4ef; }
.ai-assistant-close svg,
.ai-assistant-icon-button svg,
.ai-assistant-send svg { width: 23px; height: 23px; }

.ai-assistant-messages {
  flex: 1;
  min-height: 210px;
  max-height: min(43dvh, 420px);
  padding: 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #f7faf7;
  scrollbar-gutter: stable;
}

.ai-message {
  width: fit-content;
  max-width: 86%;
  margin-bottom: 12px;
  padding: 12px 15px;
  border-radius: 17px;
  font-size: 16px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.ai-message p { margin: 0; }
.ai-message-assistant { border: 1px solid #deebe1; border-bottom-left-radius: 6px; background: #fff; }
.ai-message-user { margin-left: auto; border-bottom-right-radius: 6px; color: #fff; background: #218d50; }

.ai-action-preview {
  margin: 8px 0 14px;
  padding: 16px;
  border: 1.5px solid #b9ddc4;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(28, 101, 52, 0.08);
}

.ai-action-preview > span { color: #218d50; font-size: 13px; font-weight: 850; }
.ai-action-preview h3 { margin: 5px 0 7px; color: #163c24; font-size: 19px; }
.ai-action-preview p { margin: 0; color: #46584c; font-size: 15px; line-height: 1.5; }
.ai-action-preview small { display: block; margin-top: 10px; color: #718077; font-size: 13px; }
.ai-action-preview button {
  width: 100%;
  min-height: 48px;
  margin-top: 13px;
  border: 0;
  border-radius: 15px;
  color: #fff;
  background: #218d50;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}
.ai-action-preview button:disabled { color: #68756c; background: #e4ebe6; cursor: default; }

.ai-assistant-quick-actions {
  display: flex;
  gap: 8px;
  padding: 12px 16px 4px;
  overflow-x: auto;
  background: #fff;
  scrollbar-width: none;
}
.ai-assistant-quick-actions::-webkit-scrollbar { display: none; }
.ai-assistant-quick-actions button {
  min-height: 42px;
  flex: 0 0 auto;
  padding: 0 14px;
  border: 1px solid #cfe2d4;
  border-radius: 999px;
  color: #23643b;
  background: #f4faf5;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  touch-action: manipulation;
}

.ai-assistant-voice-mode {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px 16px 2px;
  background: #fff;
}
.ai-assistant-voice-mode button {
  display: inline-flex;
  min-height: 42px;
  gap: 7px;
  align-items: center;
  padding: 0 14px;
  border: 1px solid #cfe2d4;
  border-radius: 999px;
  color: #23643b;
  background: #f4faf5;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.ai-assistant-voice-mode button svg { width: 19px; height: 19px; }
.ai-assistant-voice-mode button[aria-pressed="true"] { color: #fff; border-color: #218d50; background: #218d50; }
.ai-assistant-voice-mode > span { min-width: 0; color: #718077; font-size: 13px; line-height: 1.4; }

.ai-assistant-key-form { padding: 12px 16px; border-top: 1px solid #e0ebe3; background: #f6faf7; }
.ai-assistant-key-form[hidden] { display: none; }
.ai-assistant-key-form label { display: block; margin-bottom: 7px; color: #31543d; font-size: 13px; font-weight: 800; }
.ai-assistant-key-form > div { display: flex; gap: 8px; }
.ai-assistant-key-form input { min-width: 0; flex: 1; padding: 11px 12px; border: 1px solid #cddbd1; border-radius: 12px; font: inherit; }
.ai-assistant-key-form button { padding: 0 15px; border: 0; border-radius: 12px; color: #fff; background: #218d50; font-weight: 800; }
.ai-assistant-key-form small { display: block; margin-top: 7px; color: #718077; line-height: 1.4; }

.ai-assistant-form { padding: 10px 16px 16px; background: #fff; }
.ai-assistant-form > label { display: block; margin: 0 0 7px 2px; color: #526258; font-size: 13px; font-weight: 750; }
.ai-assistant-composer {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 6px;
  border: 1.5px solid #cadbcf;
  border-radius: 18px;
  background: #fbfdfb;
}
.ai-assistant-icon-button { color: #267a47; background: #eaf5ed; }
.ai-assistant-icon-button[aria-pressed="true"] { color: #fff; background: #e45151; animation: ai-voice-pulse 1.1s ease-in-out infinite; }
.ai-assistant-send { color: #fff; background: #218d50; }
.ai-assistant-composer textarea {
  min-width: 0;
  min-height: 48px;
  max-height: 112px;
  flex: 1;
  resize: none;
  padding: 12px 4px;
  border: 0;
  outline: 0;
  color: #17261b;
  background: transparent;
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
}
.ai-assistant-composer textarea::placeholder { color: #849087; }

@keyframes ai-voice-pulse {
  50% { box-shadow: 0 0 0 7px rgba(228, 81, 81, 0.14); }
}

@media (max-width: 520px) {
  .ai-assistant-toggle {
    width: 70px;
    height: 70px;
  }
  .ai-assistant-dialog {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 88px);
    margin-bottom: calc(76px + env(safe-area-inset-bottom));
    border-radius: 24px;
  }
  .ai-assistant-sheet { border-radius: 24px; }
  .ai-assistant-head { padding: 15px; }
  .ai-assistant-messages { min-height: 190px; max-height: 42dvh; padding: 15px; }
}

@media (max-height: 520px) and (orientation: landscape) {
  .ai-assistant-dialog {
    max-height: calc(100dvh - 16px);
    margin: 8px auto;
  }
  .ai-assistant-head { padding: 10px 16px; }
  .ai-assistant-avatar { width: 46px; height: 46px; border-radius: 15px; }
  .ai-assistant-messages { min-height: 104px; max-height: none; padding: 12px 16px; }
  .ai-assistant-quick-actions { padding-top: 8px; }
  .ai-assistant-form { padding-top: 7px; padding-bottom: 10px; }
  .ai-assistant-form > label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ai-assistant-toggle { transition: none; }
  .ai-assistant-toggle img { animation: none; }
}


/* Finance dashboard v271 — faithful mobile implementation of selected concept */
#financeView.finance-dashboard-v271 {
  width: min(100%, 920px);
  max-width: 920px;
  margin: 0 auto;
  padding: 0 14px 112px;
  color: #153d2c;
  background: #fbfaf5;
}

#financeView.finance-dashboard-v271 .positive { color: #18834d; }
#financeView.finance-dashboard-v271 .negative { color: #e05a55; }

.finance-page-head-v271 {
  display: grid;
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  min-height: 58px;
}

.finance-page-head-v271 h2 {
  margin: 0;
  color: #193b2d;
  font-size: 21px;
  font-weight: 780;
  line-height: 1;
  text-align: center;
}

.finance-page-back-v271 {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  border: 0;
  color: #254535;
  background: transparent;
}

.finance-page-back-v271 svg { width: 21px; height: 21px; }

.finance-hero-v271 {
  position: relative;
  min-height: 292px;
  padding: 20px 20px 18px;
  overflow: hidden;
  border-radius: 22px;
  color: #fff;
  background: #105135;
  isolation: isolate;
}

.finance-hero-top-v271 {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.finance-month-select-wrap { position: relative; }

.finance-hero-v271 .finance-month-select-button {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 5px;
  padding: 7px 0;
  border: 0;
  color: rgba(255, 255, 255, 0.88);
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 650;
}

.finance-hero-v271 .finance-month-select-button svg { width: 16px; height: 16px; }

.finance-hero-v271 .finance-month-menu {
  position: absolute;
  z-index: 6;
  top: 40px;
  left: 0;
  display: none;
  width: 214px;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  padding: 10px;
  border: 1px solid #dce8df;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 28px rgba(8, 44, 29, 0.2);
}

.finance-hero-v271 .finance-month-menu.open { display: grid; }
.finance-hero-v271 .finance-month-menu button {
  min-height: 34px;
  padding: 5px;
  border: 0;
  border-radius: 9px;
  color: #2e5e48;
  background: #f1f6f1;
  font-size: 13px;
}
.finance-hero-v271 .finance-month-menu button.active { color: #fff; background: #6552ed; }

.finance-entry-cta-v271 {
  position: relative;
  z-index: 4;
  display: inline-flex;
  min-width: 102px;
  min-height: 43px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 15px;
  border: 0;
  border-radius: 13px;
  color: #fff;
  background: #6754ef;
  box-shadow: 0 8px 16px rgba(30, 20, 100, 0.2);
  font-size: 15px;
  font-weight: 750;
}

.finance-entry-cta-v271 svg { width: 19px; height: 19px; }

.finance-hero-balance-v271 {
  position: relative;
  z-index: 3;
  display: grid;
  gap: 5px;
  margin-top: 34px;
}

.finance-hero-balance-v271 span { color: rgba(255,255,255,.72); font-size: 14px; }
.finance-hero-balance-v271 strong {
  color: #fff !important;
  font-size: clamp(36px, 9vw, 48px);
  font-weight: 800;
  letter-spacing: -1.6px;
  line-height: 1.05;
}

.finance-hero-summary-v271 {
  position: relative;
  z-index: 3;
  display: flex;
  gap: 28px;
  margin-top: 28px;
}

.finance-hero-summary-v271 span { display: grid; gap: 4px; }
.finance-hero-summary-v271 em { color: rgba(255,255,255,.64); font-size: 12px; font-style: normal; }
.finance-hero-summary-v271 strong { color: #fff; font-size: 15px; font-weight: 700; }

.finance-hero-turtle-v271 {
  position: absolute;
  z-index: 1;
  right: -28px;
  bottom: -22px;
  width: 63%;
  max-height: 210px;
  object-fit: contain;
  object-position: right bottom;
  opacity: .48;
  filter: brightness(1.8) saturate(.15);
  pointer-events: none;
}

.finance-annual-v271,
.finance-insights-v271 .finance-chart-card,
.finance-ledger-v271 {
  margin-top: 12px;
  border: 1px solid #dce5dd;
  border-radius: 19px;
  background: #fff;
}

.finance-annual-v271 { padding: 18px; }
.finance-annual-head-v271 { display: flex; align-items: center; justify-content: space-between; }
.finance-annual-head-v271 h3,
.finance-chart-title h3,
.finance-ledger-head-v271 h2 { margin: 0; color: #183f2d; font-size: 17px; font-weight: 780; }
.finance-annual-head-v271 > span { padding: 5px 9px; border-radius: 999px; color: #557162; background: #eef4ef; font-size: 11px; }

.finance-annual-grid-v271 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.finance-annual-grid-v271 > span { display: grid; gap: 6px; min-width: 0; }
.finance-annual-grid-v271 em { color: #748379; font-size: 11px; font-style: normal; }
.finance-annual-grid-v271 strong { overflow: hidden; color: #163d2b; font-size: 14px; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }
.finance-annual-insight-v271 { display: flex; align-items: center; gap: 7px; margin: 15px 0 0; padding-top: 13px; border-top: 1px solid #edf1ed; color: #718178; font-size: 11px; }
.finance-annual-insight-v271 svg { width: 15px; height: 15px; color: #d09b36; }

.finance-insights-v271 {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 12px;
}
.finance-insights-v271 .finance-chart-card { min-width: 0; padding: 18px; }
.finance-chart-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.finance-chart-title p { display: flex; align-items: center; gap: 5px; margin: 6px 0 0; color: #87948c; font-size: 10px; }
.finance-chart-title > strong { color: #2f6048; font-size: 13px; white-space: nowrap; }
.water-dot-v271,.electric-dot-v271 { width: 7px; height: 7px; border-radius: 50%; }
.water-dot-v271 { background: #58a9d6; }
.electric-dot-v271 { margin-left: 5px; background: #e7a14b; }

.finance-kline-shell { margin-top: 14px; }
.finance-kline {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 5px;
  width: 100%;
  min-width: 0;
  overflow: visible;
}
.finance-month { display: grid; min-width: 0; align-items: end; justify-items: center; gap: 5px; }
.finance-kline-bars { display: flex; height: 104px; align-items: end; justify-content: center; gap: 2px; }
.finance-kline-bars span { display: block; width: 6px; min-height: 3px; border-radius: 4px 4px 1px 1px; }
.finance-kline-bars .water-bar { background: #58a9d6; }
.finance-kline-bars .electric-bar { background: #e7a14b; }
.finance-month small { color: #87948c; font-size: 9px; }
.finance-scroll-hint,.finance-month b { display: none !important; }

.finance-category-list { display: grid; gap: 13px; margin-top: 18px; }
.finance-category-row { display: grid; grid-template-columns: 54px minmax(60px,1fr) 82px 31px; align-items: center; gap: 8px; }
.finance-category-row > span { overflow: hidden; color: #526a5c; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.finance-category-row > div { height: 7px; overflow: hidden; border-radius: 99px; background: #edf1ed; }
.finance-category-row > div i { display: block; height: 100%; border-radius: inherit; background: #e7a14b; }
.finance-category-row strong { color: #274b39; font-size: 11px; text-align: right; }
.finance-category-row em { color: #8b968f; font-size: 10px; font-style: normal; text-align: right; }

.finance-ledger-v271 { overflow: hidden; }
.finance-ledger-head-v271 { display: grid; grid-template-columns: auto minmax(130px, 230px); align-items: center; justify-content: space-between; gap: 12px; padding: 17px 18px 12px; }
.finance-ledger-head-v271 h2 { display: flex; align-items: center; gap: 7px; }
.finance-ledger-head-v271 h2 svg { width: 18px; height: 18px; }
.finance-search-v271 { display: flex; height: 36px; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid #dce4dd; border-radius: 11px; background: #fafbf9; }
.finance-search-v271 svg { width: 15px; height: 15px; color: #87948c; }
.finance-search-v271 input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; color: #294638; background: transparent; font-size: 12px; }
.finance-filter-row-v271 { display: flex; gap: 7px; padding: 0 18px 13px; }
.finance-filter-row-v271 button { min-height: 30px; padding: 0 14px; border: 0; border-radius: 999px; color: #66776c; background: #f0f3f0; font-size: 11px; font-weight: 650; }
.finance-filter-row-v271 button.active { color: #fff; background: #1c6844; }
.finance-diary-list-v271 { border-top: 1px solid #edf1ed; }
.finance-diary-row-v271 { border-bottom: 1px solid #edf1ed; }
.finance-diary-row-v271 summary { display: grid; grid-template-columns: 37px minmax(0,1fr) auto 16px; align-items: center; gap: 10px; min-height: 70px; padding: 10px 16px; cursor: pointer; list-style: none; }
.finance-diary-row-v271 summary::-webkit-details-marker { display: none; }
.finance-diary-icon-v271 { display: grid; width: 37px; height: 37px; place-items: center; border-radius: 11px; color: #b87527; background: #fff0dc; }
.finance-diary-row-v271.income .finance-diary-icon-v271 { color: #278857; background: #e4f4e9; }
.finance-diary-icon-v271 svg { width: 18px; height: 18px; }
.finance-diary-copy-v271 { display: grid; gap: 4px; min-width: 0; }
.finance-diary-copy-v271 strong { overflow: hidden; color: #234332; font-size: 13px; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.finance-diary-copy-v271 small { overflow: hidden; color: #89948d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.finance-diary-amount-v271 { font-size: 13px; font-weight: 780; white-space: nowrap; }
.finance-diary-chevron-v271 { width: 15px; height: 15px; color: #8b9890; transition: transform .18s ease; }
.finance-diary-row-v271[open] .finance-diary-chevron-v271 { transform: rotate(90deg); }
.finance-diary-detail-v271 { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 16px 12px 63px; }
.finance-diary-detail-v271 p { margin: 0; color: #78867d; font-size: 11px; }
.finance-diary-detail-v271 .table-actions { display: flex; gap: 6px; }
.finance-diary-detail-v271 .table-actions button { min-height: 28px; padding: 0 10px; border-radius: 8px; font-size: 11px; }
.finance-diary-more-v271 { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: center; gap: 6px; border: 0; color: #436452; background: #fbfcfa; font-size: 12px; font-weight: 680; }
.finance-diary-more-v271 svg { width: 15px; height: 15px; }

@media (max-width: 700px) {
  body:has(#financeView.active) { background: #fbfaf5; }
  #financeView.finance-dashboard-v271 { padding: 0 10px 104px !important; }
  .finance-page-head-v271 { min-height: 52px; }
  .finance-hero-v271 { min-height: 282px; padding: 17px 17px 16px; border-radius: 20px; }
  .finance-entry-cta-v271 { min-width: 98px; min-height: 41px; }
  .finance-hero-balance-v271 { margin-top: 31px; }
  .finance-hero-summary-v271 { margin-top: 27px; gap: 23px; }
  .finance-annual-v271 { padding: 16px; }
  .finance-insights-v271 { grid-template-columns: 1fr; gap: 0; }
  .finance-insights-v271 .finance-chart-card { padding: 16px; }
  .finance-kline-bars { height: 92px; }
  .finance-kline-bars span { width: 5px; }
  .finance-category-row { grid-template-columns: 47px minmax(60px,1fr) 77px 29px; gap: 6px; }
  .finance-ledger-head-v271 { grid-template-columns: 1fr 154px; padding: 16px 15px 11px; }
  .finance-ledger-head-v271 h2 { font-size: 16px; }
  .finance-filter-row-v271 { padding: 0 15px 12px; }
  .finance-diary-row-v271 summary { grid-template-columns: 36px minmax(0,1fr) auto 14px; gap: 8px; padding: 9px 13px; }
  .finance-diary-amount-v271 { font-size: 12px; }
}

/* v271 mobile density pass — matches the selected 390 × 851 reference frame */
@media (max-width: 700px) {
  body:has(#financeView.active) .farm-bottom-nav,
  body:has(#financeView.active) .home-menu-dock { display: none !important; }

  #financeView.finance-dashboard-v271 {
    padding: 0 10px 18px !important;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  }
  .finance-page-head-v271 { min-height: 35px; grid-template-columns: 30px 1fr 30px; }
  .finance-page-head-v271 h2 { font-size: 15px; }
  .finance-page-back-v271 { width: 28px; height: 28px; }
  .finance-page-back-v271 svg { width: 17px; height: 17px; }

  .finance-hero-v271 { min-height: 145px; padding: 11px 14px 10px; border-radius: 11px; }
  .finance-hero-v271 .finance-month-select-button { padding: 3px 0; font-size: 10px; }
  .finance-hero-v271 .finance-month-select-button::before { content: ""; width: 13px; height: 13px; border: 1.5px solid currentColor; border-radius: 3px; }
  .finance-hero-v271 .finance-month-select-button svg { width: 12px; height: 12px; }
  .finance-entry-cta-v271 { min-width: 100px; min-height: 34px; gap: 5px; padding: 0 11px; border-radius: 17px; font-size: 13px; box-shadow: none; }
  .finance-entry-cta-v271 svg { width: 18px; height: 18px; }
  .finance-hero-balance-v271 { gap: 2px; margin-top: 12px; }
  .finance-hero-balance-v271 span { font-size: 10px; }
  .finance-hero-balance-v271 strong { font-size: 28px; letter-spacing: -.8px; }
  .finance-hero-summary-v271 { gap: 24px; margin-top: 14px; }
  .finance-hero-summary-v271 span { gap: 1px; }
  .finance-hero-summary-v271 em { font-size: 9px; }
  .finance-hero-summary-v271 strong { font-size: 12px; }
  .finance-hero-turtle-v271 { right: -8px; bottom: -17px; width: 52%; max-height: 112px; opacity: .43; }

  .finance-annual-v271,
  .finance-insights-v271 .finance-chart-card,
  .finance-ledger-v271 { margin-top: 7px; border-radius: 11px; }
  .finance-annual-v271 { padding: 10px 13px; }
  .finance-annual-head-v271 h3,
  .finance-chart-title h3,
  .finance-ledger-head-v271 h2 { display: flex; align-items: center; gap: 5px; font-size: 14px; }
  .finance-annual-head-v271 h3 svg,
  .finance-chart-title h3 svg { width: 15px; height: 15px; color: #23714b; }
  .finance-annual-head-v271 > span { display: none; }
  .finance-annual-grid-v271 { grid-template-columns: .9fr .9fr 1.2fr; gap: 10px; margin-top: 10px; }
  .finance-annual-grid-v271 > span { gap: 3px; padding-right: 8px; border-right: 1px solid #e2e8e2; }
  .finance-annual-grid-v271 em { font-size: 9px; }
  .finance-annual-grid-v271 strong { font-size: 15px; }
  .finance-annual-insight-v271 { align-self: stretch; gap: 6px; margin: 0; padding: 7px; border: 0; border-radius: 8px; background: #f2f5ef; font-size: 9px; line-height: 1.35; }
  .finance-annual-insight-v271 svg { flex: 0 0 auto; width: 14px; height: 14px; color: #52725e; }
  .finance-annual-insight-v271 span { display: grid; gap: 2px; }
  .finance-annual-insight-v271 em { color: #52725e; font-size: 9px; font-style: normal; }

  .finance-insights-v271 .finance-chart-card { padding: 10px 13px; }
  .finance-chart-title { gap: 6px; }
  .finance-chart-title p { gap: 4px; margin-top: 4px; font-size: 8px; }
  .finance-chart-title > strong { font-size: 9px; font-weight: 500; }
  .finance-chart-title > strong em { color: #6552ed; font-size: 12px; font-style: normal; font-weight: 760; }
  .finance-kline-shell { margin-top: 8px; }
  .finance-kline { gap: 2px; padding: 0 2px; border-bottom: 1px solid #dfe5df; }
  .finance-kline-bars { height: 77px; gap: 1px; }
  .finance-kline-bars > .finance-bar-wrap-v271 { position: relative; display: flex; width: 7px; height: 100%; align-items: center; justify-content: flex-end; flex-direction: column; background: transparent; }
  .finance-kline-bars .finance-bar-wrap-v271 b { display: block !important; width: 24px; margin-bottom: 1px; color: #4d5a52; font-size: 5px; font-weight: 600; line-height: 1; text-align: center; }
  .finance-kline-bars .finance-bar-wrap-v271 i { display: block; width: 5px; min-height: 2px; border-radius: 2px 2px 0 0; }
  .finance-month { gap: 3px; }
  .finance-month small { font-size: 7px; }

  .finance-category-list { gap: 7px; margin-top: 10px; }
  .finance-category-row { grid-template-columns: 37px minmax(80px,1fr) 66px 24px; gap: 5px; }
  .finance-category-row > span { font-size: 9px; }
  .finance-category-row > div { height: 6px; }
  .finance-category-row strong { font-size: 9px; }
  .finance-category-row em { font-size: 8px; }

  .finance-ledger-head-v271 { grid-template-columns: 1fr 172px 28px; gap: 7px; padding: 10px 10px 7px; }
  .finance-ledger-head-v271::after { content: ""; display: block; width: 27px; height: 27px; border: 1px solid #dce4dd; border-radius: 8px; background: #fff; }
  .finance-ledger-head-v271 h2 { font-size: 14px; }
  .finance-ledger-head-v271 h2 svg { width: 15px; height: 15px; }
  .finance-search-v271 { height: 28px; gap: 5px; padding: 0 8px; border-radius: 7px; }
  .finance-search-v271 svg { width: 13px; height: 13px; }
  .finance-search-v271 input { font-size: 9px; }
  .finance-filter-row-v271 { gap: 7px; padding: 0 10px 6px; }
  .finance-filter-row-v271 button { min-width: 43px; min-height: 24px; padding: 0 9px; border: 1px solid #dce4dd; background: #fff; font-size: 9px; }
  .finance-filter-row-v271 button.active { border-color: #6552ed; background: #6552ed; }
  .finance-diary-row-v271 summary { grid-template-columns: 29px minmax(0,1fr) auto 12px; gap: 7px; min-height: 42px; padding: 5px 9px; }
  .finance-diary-icon-v271 { width: 29px; height: 29px; border-radius: 9px; }
  .finance-diary-icon-v271 svg { width: 15px; height: 15px; }
  .finance-diary-copy-v271 { gap: 1px; }
  .finance-diary-copy-v271 strong { font-size: 11px; }
  .finance-diary-copy-v271 small { font-size: 7px; }
  .finance-diary-amount-v271 { font-size: 11px; }
  .finance-diary-chevron-v271 { width: 12px; height: 12px; }
  .finance-diary-more-v271 { min-height: 31px; font-size: 9px; }
  .finance-diary-more-v271 svg { width: 12px; height: 12px; }
}

/* 已确认的单张成长照片布局 v265 */
.photo-studio-progress {
  display: grid;
  grid-template-columns: auto 82px auto;
  align-items: start;
  justify-content: center;
  gap: 10px;
  margin-top: 18px;
}

.photo-studio-progress > span {
  display: grid;
  justify-items: center;
  gap: 7px;
  color: #6f768a;
}

.photo-studio-progress > span b {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 2px solid #d9dce7;
  border-radius: 50%;
  background: rgba(255, 255, 255, .82);
  font-size: 15px;
}

.photo-studio-progress > span strong {
  font-size: 14px;
}

.photo-studio-progress > span.active {
  color: #5b45e8;
}

.photo-studio-progress > span.active b {
  border-color: #674fee;
  color: #fff;
  background: #674fee;
}

.photo-studio-progress > i {
  height: 2px;
  margin-top: 16px;
  background: #d9dce7;
}

.photo-studio-form {
  display: grid;
  gap: 16px;
}

.photo-studio-capture-panel .photo-studio-photo-heading {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.photo-studio-capture-title {
  margin: 0;
  color: #172039;
  font-size: 21px;
  line-height: 1.2;
}

@media (max-width: 720px) {
  #updatePhotoView.photo-studio-view {
    padding-top: 16px;
  }

  #updatePhotoView .photo-studio-heading {
    margin-bottom: 12px;
  }

  #updatePhotoView .photo-studio-heading p {
    margin-bottom: 3px;
    font-size: 13px;
  }

  #updatePhotoView .photo-studio-heading h2 {
    font-size: 28px;
  }

  #updatePhotoView .photo-studio-progress {
    grid-template-columns: auto 68px auto;
    gap: 8px;
    margin-top: 10px;
  }

  #updatePhotoView .photo-studio-progress > span {
    gap: 4px;
  }

  #updatePhotoView .photo-studio-progress > span b {
    width: 28px;
    height: 28px;
    font-size: 13px;
  }

  #updatePhotoView .photo-studio-progress > span strong {
    font-size: 12px;
  }

  #updatePhotoView .photo-studio-progress > i {
    margin-top: 13px;
  }

  #updatePhotoForm.photo-studio-form {
    gap: 12px;
  }

  #updatePhotoForm > .photo-studio-panel {
    gap: 12px;
    padding: 14px;
    border-radius: 20px;
  }

  #updatePhotoForm .photo-studio-field {
    display: grid;
    min-height: 52px;
    grid-template-columns: 48px 88px minmax(0, 1fr);
    gap: 0;
    overflow: hidden;
    border: 1px solid #dfe3ee;
    border-radius: 14px;
    background: #fff;
  }

  #updatePhotoForm .photo-studio-field > strong {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    padding: 0 8px 0 14px;
    font-size: 15px;
    white-space: nowrap;
  }

  #updatePhotoForm .photo-studio-control {
    display: contents;
  }

  #updatePhotoForm .photo-studio-control > i {
    grid-column: 1;
    grid-row: 1;
    min-height: 52px;
    border-right: 1px solid #ebe8fb;
    font-size: 13px;
  }

  #updatePhotoForm .photo-studio-control select,
  #updatePhotoForm .photo-studio-control input {
    grid-column: 3;
    grid-row: 1;
    min-height: 52px;
    padding: 0 34px 0 8px;
    font-size: 15px;
  }

  #updatePhotoForm .photo-studio-control input {
    padding-right: 12px;
  }

  #updatePhotoForm .photo-studio-capture-title {
    font-size: 18px;
  }

  #updatePhotoForm .update-photo-slot {
    aspect-ratio: 1.85;
  }

  #updatePhotoForm .photo-studio-panel .update-photo-uploader {
    gap: 12px;
  }

  #updatePhotoForm .photo-studio-actions button {
    min-height: 48px;
  }

  #updatePhotoForm .photo-studio-save {
    min-height: 54px;
  }
}

#updatePhotoForm .photo-studio-control > i {
  font-size: 13px;
}

/* v235 龟苗批量记录：按方案 3 重新做视觉还原 */
body:has(#hatchlingLogView.active) .app-header {
  display: none;
}

body:has(#hatchlingLogView.active) #appMain {
  width: min(942px, 100%);
  margin: 0 auto;
  padding: 0 0 86px;
}

#hatchlingLogView.hatchling-log-view {
  width: 100%;
  max-width: none;
  padding: 0;
}

#hatchlingLogView .breeder-page-back {
  display: none;
}

#hatchlingLogView .breeder-page-heading {
  position: relative;
  min-height: 154px;
  overflow: hidden;
  padding: 42px 20px 44px;
  text-align: center;
}

#hatchlingLogView .breeder-page-heading h2 {
  position: relative;
  z-index: 2;
  color: #0b1730;
  font-size: clamp(34px, 6vw, 56px);
  font-weight: 950;
  letter-spacing: .04em;
  text-shadow: 0 1px 0 rgba(255,255,255,.7);
}

#hatchlingLogView .breeder-page-heading p {
  position: relative;
  z-index: 2;
  margin-top: 8px;
  color: #69798a;
  font-size: 15px;
  font-weight: 700;
}

.hatchling-hero-turtle {
  position: absolute;
  z-index: 1;
  right: 3%;
  bottom: -12px;
  width: 220px;
  max-height: 132px;
  object-fit: contain;
  object-position: right bottom;
  opacity: .88;
  pointer-events: none;
}

.hatchling-source-trail {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.2fr) auto minmax(0, 1.15fr);
  align-items: center;
  gap: 10px;
  width: min(860px, calc(100% - 34px));
  margin: -24px auto 16px;
}

.hatchling-source-trail > span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 50px;
  gap: 9px;
  padding: 0 14px;
  border: 1px solid rgba(211, 221, 214, .94);
  border-radius: 15px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 8px 20px rgba(28, 67, 44, .08);
}

.hatchling-source-trail img {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.hatchling-source-trail b {
  overflow: hidden;
  color: #142035;
  font-size: 15px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hatchling-source-trail > i {
  color: #1d2b3b;
  font-size: 28px;
  font-style: normal;
  font-weight: 400;
}

#hatchlingLogView .hatchling-batch-form {
  width: min(906px, calc(100% - 30px));
  margin: 0 auto;
}

#hatchlingLogView .hatchling-batch-panel {
  padding: 28px 34px 24px;
  border: 1px solid #dbe4de;
  border-radius: 27px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 48px rgba(28, 67, 44, .09);
}

#hatchlingLogView .hatchling-source-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  padding-bottom: 24px;
}

#hatchlingLogView .hatchling-source-field > span,
#hatchlingLogView .hatchling-mother-field > span,
#hatchlingLogView .hatchling-note-field > span,
#hatchlingLogView .hatchling-situation-section > h3 {
  color: #111d34;
}

#hatchlingLogView .hatchling-quantity-section > header > div,
#hatchlingLogView .hatchling-situation-section > h3,
#hatchlingLogView .hatchling-note-field > span {
  --hatchling-accent: #197d49;
}

#hatchlingLogView .hatchling-quantity-section img,
#hatchlingLogView .hatchling-situation-section > h3 img,
#hatchlingLogView .hatchling-note-field > span img {
  filter: sepia(1) saturate(3.2) hue-rotate(84deg) brightness(.72);
}

#hatchlingLogView .hatchling-matrix-hatch > strong img {
  border-radius: 50%;
}

@media (max-width: 720px) {
  body:has(#hatchlingLogView.active) #appMain {
    padding: 0 0 76px;
  }

  #hatchlingLogView .breeder-page-heading {
    min-height: 106px;
    padding: 26px 20px 24px;
  }

  #hatchlingLogView .breeder-page-heading h2 {
    font-size: 26px;
    letter-spacing: .03em;
    transform: translateY(10px);
  }

  #hatchlingLogView .breeder-page-heading p {
    margin-top: 3px;
    font-size: 10px;
    transform: translateY(10px);
  }

  .hatchling-hero-turtle {
    right: -15px;
    bottom: -5px;
    width: 106px;
    max-height: 65px;
    opacity: .72;
  }

  .hatchling-source-trail {
    gap: 4px;
    width: calc(100% - 28px);
    margin: -13px auto 8px;
  }

  .hatchling-source-trail > span {
    min-height: 32px;
    gap: 5px;
    padding: 0 7px;
    border-radius: 10px;
  }

  .hatchling-source-trail img {
    width: 15px;
    height: 15px;
  }

  .hatchling-source-trail b {
    font-size: 9px;
  }

  .hatchling-source-trail > i {
    font-size: 16px;
  }

  #hatchlingLogView .hatchling-batch-form {
    width: calc(100% - 16px);
  }

  #hatchlingLogView .hatchling-batch-panel {
    padding: 12px 12px 10px;
    border-radius: 20px;
  }

  #hatchlingLogView .hatchling-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding-bottom: 10px;
  }

  #hatchlingLogView .hatchling-source-field,
  #hatchlingLogView .hatchling-mother-field,
  #hatchlingLogView .hatchling-note-field {
    gap: 5px;
  }

  #hatchlingLogView .hatchling-source-field > span,
  #hatchlingLogView .hatchling-mother-field > span,
  #hatchlingLogView .hatchling-note-field > span,
  #hatchlingLogView .hatchling-situation-section > h3 {
    gap: 5px;
    font-size: 12px;
  }

  #hatchlingLogView .hatchling-source-field > span img,
  #hatchlingLogView .hatchling-mother-field > span img,
  #hatchlingLogView .hatchling-note-field > span img,
  #hatchlingLogView .hatchling-situation-section > h3 img,
  #hatchlingLogView .hatchling-quantity-section img {
    width: 18px;
    height: 18px;
  }

  #hatchlingLogView .hatchling-source-field > span b {
    padding: 2px 5px;
    font-size: 8px;
  }

  #hatchlingLogView .hatchling-source-field select,
  #hatchlingLogView .hatchling-mother-field select {
    height: 38px;
    min-height: 38px;
    padding: 0 25px 0 10px;
    border-radius: 11px;
    font-size: 11px;
  }

  #hatchlingLogView .hatchling-mother-field {
    gap: 5px;
    padding: 10px 0;
  }

  #hatchlingLogView .hatchling-mother-field > span small {
    font-size: 8px;
  }

  #hatchlingLogView .hatchling-mother-field > em,
  #hatchlingLogView .hatchling-quantity-section > p {
    gap: 4px;
    font-size: 8px;
    line-height: 1.3;
  }

  #hatchlingLogView .hatchling-mother-field > em img,
  #hatchlingLogView .hatchling-quantity-section > p img {
    width: 14px;
    height: 14px;
  }

  #hatchlingLogView .hatchling-quantity-section {
    gap: 3px;
    padding: 10px 0 7px;
  }

  #hatchlingLogView .hatchling-quantity-section > header > div {
    gap: 7px;
    font-size: 16px;
  }

  #hatchlingLogView .hatchling-quantity-section > header > strong {
    font-size: 24px;
  }

  #hatchlingLogView .hatchling-quantity-section > header > strong small {
    font-size: 10px;
  }

  #hatchlingLogView .hatchling-situation-section {
    gap: 6px;
    padding: 4px 0 10px;
  }

  #hatchlingLogView .hatchling-quantity-matrix {
    border-radius: 13px;
  }

  #hatchlingLogView .hatchling-matrix-head,
  #hatchlingLogView .hatchling-matrix-row {
    grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr) 42px;
  }

  #hatchlingLogView .hatchling-matrix-head {
    min-height: 28px;
    font-size: 9px;
  }

  #hatchlingLogView .hatchling-matrix-row {
    height: 45px;
    min-height: 0;
  }

  #hatchlingLogView .hatchling-matrix-row > strong {
    display: flex;
    gap: 2px;
    font-size: 10px;
  }

  #hatchlingLogView .hatchling-matrix-row > strong img {
    width: 18px;
    height: 18px;
  }

  #hatchlingLogView .hatchling-matrix-row > label {
    grid-template-columns: 18px minmax(18px, 1fr) 18px 12px;
    height: 34px;
    min-height: 0;
    margin: 5px 3px;
    border-radius: 8px;
  }

  #hatchlingLogView .hatchling-matrix-row label button {
    min-height: 0;
    height: 100%;
    padding: 0;
    font-size: 12px;
  }

  #hatchlingLogView .hatchling-matrix-row label input {
    min-height: 0;
    height: 100%;
    padding: 0;
    font-size: 14px;
  }

  #hatchlingLogView .hatchling-matrix-row label small,
  #hatchlingLogView .hatchling-matrix-row > output small {
    font-size: 7px;
  }

  #hatchlingLogView .hatchling-matrix-row > output {
    font-size: 15px;
  }

  #hatchlingLogView .hatchling-note-field {
    padding-top: 6px;
  }

  #hatchlingLogView .hatchling-note-field textarea {
    min-height: 42px;
    padding: 7px 11px 17px;
    border-radius: 11px;
    font-size: 10px;
  }

  #hatchlingLogView .hatchling-note-field > small {
    right: 11px;
    bottom: 7px;
    font-size: 8px;
  }

  #hatchlingLogView .hatchling-form-actions {
    grid-template-columns: .42fr 1fr;
    gap: 7px;
    padding-top: 6px;
  }

  #hatchlingLogView .hatchling-form-actions .breeder-save-button,
  #hatchlingLogView .hatchling-cancel-button {
    min-height: 38px;
    border-radius: 11px;
    font-size: 11px;
  }

  #hatchlingLogView .hatchling-form-actions .breeder-save-button img {
    width: 18px;
    height: 18px;
  }
}

/* v230 库存品种详情：按养殖场显示当前库存来源 */
.stock-source-card {
  margin-top: 18px;
  padding: 24px 26px;
  border: 1px solid rgba(34, 95, 57, .14);
  border-radius: 28px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 15px 38px rgba(29, 65, 41, .09);
}

.stock-source-head { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.stock-source-head > span {
  display: grid;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 15px;
  background: #eff7f0;
}
.stock-source-head img { width: 27px; height: 27px; }
.stock-source-head h2 { margin: 0; color: #101e37; font-size: 22px; }
.stock-source-head p { margin: 3px 0 0; color: #7b8597; font-size: 13px; font-weight: 700; }
.stock-source-list { display: grid; gap: 10px; }
.stock-source-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 16px;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid #e4ebe5;
  border-radius: 18px;
  background: #fbfdfb;
}
.stock-source-farm { display: flex; min-width: 0; align-items: center; gap: 11px; }
.stock-source-farm > span {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  color: #176b43;
  background: #eaf5ec;
  font-size: 17px;
  font-weight: 900;
}
.stock-source-farm div { min-width: 0; }
.stock-source-farm strong { display: block; overflow-wrap: anywhere; color: #153b29; font-size: 17px; }
.stock-source-farm small { display: block; margin-top: 2px; color: #879187; font-size: 12px; font-weight: 700; }
.stock-source-count { display: flex; align-items: baseline; justify-content: flex-end; gap: 3px; color: #174d31; }
.stock-source-count strong { font-size: 27px; line-height: 1; }
.stock-source-count small { font-size: 12px; font-weight: 800; }
.stock-source-pills { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px; padding-left: 51px; }
.stock-source-pill { padding: 5px 9px; border: 1px solid #dce6de; border-radius: 999px; color: #617168; background: #fff; font-size: 12px; font-weight: 800; white-space: nowrap; }
.stock-source-pill b { margin-left: 2px; font-size: 14px; }
.stock-source-pill-blue { color: #3569d4; border-color: #d9e3fb; background: #f2f6ff; }
.stock-source-pill-pink { color: #d63f78; border-color: #f6d9e4; background: #fff3f7; }
.stock-source-pill-amber { color: #b87412; border-color: #f1dfb8; background: #fff8e8; }
.stock-source-pill-green { color: #16804d; border-color: #d2e8d8; background: #eff8f1; }
.stock-source-empty { padding: 24px 18px; border-radius: 17px; color: #748178; background: #f7faf7; text-align: center; }
.stock-source-empty strong { display: block; color: #345341; font-size: 16px; }
.stock-source-empty span { display: block; margin-top: 5px; font-size: 13px; line-height: 1.6; }

@media (max-width: 520px) {
  .stock-source-card { padding: 18px 16px; border-radius: 23px; }
  .stock-source-head { margin-bottom: 14px; }
  .stock-source-head h2 { font-size: 20px; }
  .stock-source-row { padding: 13px; }
  .stock-source-pills { padding-left: 0; }
}

/* v204 母龟繁殖奖励说明：采用选定的左右标签双行结构。 */
#matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards {
  display: grid;
  min-height: 0;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e5e2d6;
  border-radius: 22px;
  color: #1d3150;
  background: #fbfaf5;
  box-shadow: 0 8px 24px rgba(38, 58, 48, 0.055);
  font-size: clamp(15px, 2.25vw, 18px);
  font-weight: 750;
  line-height: 1.42;
}

#matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards > .mother-reward-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(132px, 0.72fr) minmax(0, 1.65fr);
  align-items: stretch;
  padding: 18px 20px;
  white-space: normal;
}

#matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards > .mother-reward-row + .mother-reward-row {
  border-top: 1px solid #e6e2d5;
}

#matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards > .mother-reward-row + .mother-reward-row::before {
  content: none;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label {
  display: flex;
  min-width: 0;
  align-items: center;
  align-self: center;
  gap: 10px;
  padding: 9px 16px 9px 10px;
  border: 1px solid #aeb88a;
  border-radius: 999px;
  color: #36552d;
  background: #f2f4e6;
  white-space: nowrap;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label-icon {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 50%;
  background: #e2e9cb;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label-icon img {
  display: block;
  width: 21px;
  height: 21px;
  object-fit: contain;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-row--mating .mother-reward-label-icon img {
  filter: sepia(0.35) saturate(0.78) hue-rotate(43deg) brightness(0.68);
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-row--egg .mother-reward-label-icon img {
  filter: sepia(0.28) saturate(0.64) hue-rotate(48deg) brightness(0.72);
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label strong {
  font-size: 1em;
  font-weight: 900;
  letter-spacing: 0.01em;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-copy {
  display: grid;
  min-width: 0;
  align-content: center;
  gap: 2px;
  margin-left: 18px;
  padding-left: 22px;
  border-left: 2px solid #75906c;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-copy > span {
  display: block;
  white-space: normal;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-copy b {
  color: #1d3150;
  font-weight: 900;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-copy em {
  color: #6550e9;
  font-style: normal;
  font-weight: 900;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .heart {
  color: #e04452;
  font-size: 1.24em;
  line-height: 1;
}

#matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .star {
  color: #e5a000;
  font-size: 1.2em;
  line-height: 1;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards {
    gap: 0;
    padding: 0;
    font-size: 15px;
    line-height: 1.4;
  }

  #matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards > .mother-reward-row {
    grid-template-columns: minmax(112px, 0.76fr) minmax(0, 1.42fr);
    padding: 14px 12px;
  }

  #matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label {
    gap: 7px;
    padding: 8px 10px 8px 7px;
  }

  #matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }

  #matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label-icon img {
    width: 18px;
    height: 18px;
  }

  #matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-copy {
    gap: 3px;
    margin-left: 11px;
    padding-left: 13px;
  }
}

@media (max-width: 390px) {
  #matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards {
    font-size: 14px;
  }

  #matingGroupDetailView.mating-directory-mode .female-directory-rulebar .mother-directory-rule--rewards > .mother-reward-row {
    grid-template-columns: 108px minmax(0, 1fr);
    padding-inline: 10px;
  }

  #matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-label {
    gap: 6px;
    padding-right: 8px;
  }

  #matingGroupDetailView.mating-directory-mode .mother-directory-rule--rewards .mother-reward-copy {
    margin-left: 8px;
    padding-left: 10px;
  }
}

/* v203 final readability guard: keep mother rating instructions legible after legacy cascade rules. */
#matingGroupDetailView.mating-directory-mode.female-directory-mode .female-directory-rulebar .mother-directory-rule,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-rulebar .mother-directory-rule {
  min-height: 72px;
  padding: 15px 20px;
  font-size: 16px;
  line-height: 1.5;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode.female-directory-mode .female-directory-rulebar .mother-directory-rule,
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-rulebar .mother-directory-rule {
    min-height: 94px;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.5;
  }

  #matingGroupDetailView.mating-directory-mode.female-directory-mode .female-directory-rulebar .mother-directory-rule > span + span::before,
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-rulebar .mother-directory-rule > span + span::before {
    margin-right: 9px;
  }
}

/* v199 所有种群乌龟目录显示永久身份编号。 */
.turtle-directory-identity {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: baseline;
  gap: 5px;
  color: #77827b;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
}

.turtle-directory-identity b {
  flex: 0 0 auto;
  color: #68746c;
  font-weight: 800;
}

.turtle-directory-identity span {
  min-width: 0;
  overflow: hidden;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#matingGroupDetailView.mating-directory-mode .female-directory-name-and-rating {
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 5px;
}

.female-directory-name-row {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}

.female-directory-name-row > strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#matingGroupDetailView.mating-directory-mode .male-directory-title {
  min-height: 70px;
  gap: 4px;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--male .male-turtle-summary {
  min-height: 116px;
}

#matingGroupDetailView.mating-directory-mode .male-directory-title .turtle-directory-identity {
  justify-content: flex-start;
}

#matingGroupDetailView.mating-directory-mode .female-directory-title {
  min-height: 64px;
}

@media (max-width: 640px) {
  .turtle-directory-identity {
    gap: 3px;
    font-size: 8px;
  }

  #matingGroupDetailView.mating-directory-mode .male-directory-title {
    min-height: 66px;
  }

  #matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary,
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--male .male-turtle-summary {
    min-height: 108px;
  }
}

/* v198 final cascade guard: 死亡母龟完整沿用确认的横向母龟档案行。 */
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-rulebar {
  display: block;
  padding: 13px 16px;
  border-bottom: 1px solid #e7ece4;
  background: #fffdf8;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .mother-directory-rule {
  display: flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0;
  padding: 10px 14px;
  color: #253b31;
  font-size: 12px;
  line-height: 1.45;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .mother-directory-rule > span {
  white-space: normal;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .mother-directory-rule > span + span::before {
  content: "·";
  margin-right: 14px;
  color: #6c776f;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .turtle-directory-grid {
  display: block;
  width: 100%;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-turtle-summary {
  display: grid;
  width: 100%;
  max-width: none;
  min-height: 180px;
  grid-template-columns: 1fr;
  padding: 22px 26px 15px;
  border: 0;
  border-bottom: 1px solid #e3e9e2;
  border-radius: 0;
  color: #172036;
  background: #fff;
  box-shadow: none;
  text-align: left;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-turtle-summary:last-child {
  border-bottom: 0;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-turtle-summary:hover,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-turtle-summary:focus-visible,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-turtle-summary:active {
  border-color: #dce7da;
  color: #172036;
  background: #f8fbf7;
  box-shadow: inset 4px 0 0 #4b8560;
  transform: none;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-title {
  display: grid;
  min-height: 54px;
  grid-template-columns: 48px minmax(0, 1fr) 32px;
  align-content: normal;
  align-items: center;
  justify-items: stretch;
  gap: 14px;
  margin-bottom: 15px;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: #fae8ec;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-avatar img {
  width: 25px;
  height: 25px;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-name-and-rating {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-name-and-rating > strong {
  overflow: hidden;
  color: #101d18;
  font-size: 24px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-name-and-rating .turtle-directory-ratings {
  justify-content: flex-start;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-chevron {
  color: #68736c;
  font-size: 38px;
  font-weight: 300;
  line-height: 1;
  text-align: right;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 10px 62px;
  border-bottom: 1px solid #e7ebe7;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span:nth-child(even),
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span:nth-child(n + 3) {
  display: grid;
  min-width: 0;
  min-height: 62px;
  align-content: start;
  padding: 4px 10px 10px;
  border-top: 0;
  border-left: 1px solid #e7ebe7;
  text-align: center;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span:first-child {
  border-left: 0;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics small {
  display: flex;
  justify-content: center;
  color: #626c66;
  font-size: 11px;
  line-height: 1.2;
  white-space: normal;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics small i {
  display: none;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span > strong {
  margin-top: 5px;
  color: #101d18;
  font-size: 22px;
  line-height: 1;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-heading {
  display: none;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months {
  display: flex;
  grid-template-columns: none;
  gap: 18px;
  margin-left: 62px;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months > span {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 0;
  border: 0;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months > span + span::before {
  content: "·";
  margin-right: 10px;
  color: #9aa19c;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months small,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months strong {
  color: #242f29;
  font-size: 13px;
  font-weight: 700;
}

#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months .current small,
#matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months .current strong {
  color: #6753f5;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .mother-directory-rule {
    min-height: 48px;
    gap: 7px;
    padding: 9px 10px;
    font-size: 9px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .mother-directory-rule > span + span::before {
    margin-right: 7px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-turtle-summary {
    min-height: 166px;
    padding: 16px 14px 12px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-title {
    grid-template-columns: 44px minmax(0, 1fr) 24px;
    gap: 10px;
    margin-bottom: 11px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-avatar {
    width: 44px;
    height: 44px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-name-and-rating {
    gap: 8px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-name-and-rating > strong {
    font-size: 19px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics {
    margin-left: 54px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span,
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span:nth-child(even),
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span:nth-child(n + 3) {
    min-height: 56px;
    padding: 3px 4px 8px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics small {
    font-size: 9px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-directory-metrics > span > strong {
    font-size: 18px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months {
    gap: 8px;
    margin-left: 54px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months > span + span::before {
    margin-right: 4px;
  }

  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months small,
  #matingGroupDetailView.mating-directory-mode.dead-directory-mode .dead-directory-group--female .female-recent-months strong {
    font-size: 11px;
  }
}

/* v197 死亡龟目录：继承乌龟生前公/母目录信息架构，未知龟保留永久身份编码。 */
#matingGroupDetailView.mating-directory-mode.dead-directory-mode {
  width: min(100%, 680px);
}

#matingGroupDetailView.dead-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
  min-height: 178px;
  padding: 30px 28px 26px;
  border-color: #dce4d8;
  border-radius: 24px 24px 0 0;
  background: rgba(250, 248, 239, 0.97);
}

#matingGroupDetailView.dead-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  color: #66806b;
}

#matingGroupDetailView.dead-directory-mode .mating-group-detail-panel > .panel-head h2 {
  color: #183f2f;
  font-size: clamp(34px, 7vw, 48px);
}

#matingGroupDetailView.dead-directory-mode .mating-group-archive-count {
  color: #805c55;
  background: #f5e9e5;
}

#matingGroupDetailView.dead-directory-mode .mating-directory-toolbar {
  margin: 0;
  padding: 16px 22px 20px;
  border-color: #dce4d8;
  border-radius: 0;
  background: rgba(255, 254, 249, 0.98);
}

#matingGroupDetailView.dead-directory-mode .mating-directory-toolbar::before,
#matingGroupDetailView.dead-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
  display: none;
}

#matingGroupDetailView.dead-directory-mode .mating-directory-toolbar {
  grid-template-columns: minmax(0, 1fr);
}

#matingGroupDetailView.dead-directory-mode .mating-directory-search {
  min-height: 56px;
  border-color: #d8dfd4;
  background: #fffefa;
}

#matingGroupDetailView.dead-directory-mode .turtle-profile-list {
  padding: 0;
  border: 1px solid #dce4d8;
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: rgba(255, 254, 249, 0.98);
}

#matingGroupDetailView.dead-directory-mode .dead-turtle-directory {
  gap: 0;
  padding: 0 22px 24px;
  border: 0;
  border-radius: 0 0 24px 24px;
  background: transparent;
  box-shadow: none;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-titlebar {
  min-height: 92px;
  padding: 20px 0 16px;
  border-bottom: 1px solid #dde3d8;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-titlebar h3 {
  color: #173f2e;
  font-size: 27px;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-groups {
  display: grid;
  gap: 18px;
  padding-top: 18px;
}

.dead-directory-group {
  overflow: hidden;
  border: 1px solid #dfe6dc;
  border-radius: 18px;
  background: #fff;
}

.dead-directory-section-head {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #e5eae2;
  background: #fbfbf6;
}

.dead-directory-section-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.dead-directory-section-head h3 {
  margin: 0;
  color: #193e2f;
  font-size: 20px;
}

.dead-directory-section-head > b {
  padding: 5px 10px;
  border-radius: 999px;
  color: #607362;
  background: #edf2e9;
  font-size: 12px;
  white-space: nowrap;
}

.dead-sex-mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
}

.dead-sex-mark img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.dead-sex-mark--male {
  color: #357e9d;
  background: #ebf4f6;
}

.dead-sex-mark--female {
  color: #d24d61;
  background: #fcecef;
}

.dead-sex-mark--unknown {
  color: #8b7335;
  background: #fff6dc;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-rule {
  margin: 14px 14px 0;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-columns,
#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-turtle-summary {
  grid-template-columns: 58px minmax(0, 1.45fr) minmax(82px, 0.85fr) minmax(74px, 0.7fr) 24px;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-columns {
  margin: 12px 12px 0;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .turtle-directory-grid,
#matingGroupDetailView.dead-directory-mode .dead-directory-group--female .turtle-directory-grid,
#matingGroupDetailView.dead-directory-mode .dead-directory-group--unknown .turtle-directory-grid {
  display: block;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .turtle-directory-grid {
  margin: 0 12px 14px;
  overflow: hidden;
  border: 1px solid #e7ece6;
  border-top: 0;
  border-radius: 0 0 14px 14px;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-turtle-summary {
  display: grid;
  width: 100%;
  min-height: 102px;
  margin: 0;
  padding: 11px 8px;
  border: 0;
  border-bottom: 1px solid #e7ece6;
  border-radius: 0;
  box-shadow: none;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-total,
#matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-recent {
  min-width: 0;
  min-height: 56px;
  padding: 0 6px;
  border: 0;
  border-left: 1px solid #e7ece6;
  border-radius: 0;
  background: transparent;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--female .female-directory-rulebar {
  padding: 13px 16px;
  border-bottom: 1px solid #e7ece4;
  background: #fffdf8;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--female .female-turtle-summary {
  display: grid;
  min-height: 166px;
  padding: 16px 14px 12px;
  border: 0;
  border-bottom: 1px solid #e3e9e2;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.dead-directory-identity-note {
  margin: 0;
  padding: 11px 16px;
  border-bottom: 1px solid #ece7d8;
  color: #756d59;
  background: #fffcf2;
  font-size: 12px;
  font-weight: 700;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--unknown .unknown-turtle-directory-row {
  display: grid;
  width: 100%;
  min-height: 116px;
  grid-template-columns: 68px minmax(0, 1fr) 28px;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 0;
  border-bottom: 1px solid #e7e8df;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  text-align: left;
}

#matingGroupDetailView.dead-directory-mode .dead-directory-group--unknown .unknown-directory-copy strong {
  color: #173f2d;
  font-size: 23px;
}

#matingGroupDetailView.dead-directory-mode [data-directory-name].hidden,
#matingGroupDetailView.dead-directory-mode [data-death-directory-group].hidden {
  display: none !important;
}

@media (max-width: 640px) {
  #matingGroupDetailView.dead-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 148px;
    padding: 24px 20px 20px;
    border-radius: 20px 20px 0 0;
  }

  #matingGroupDetailView.dead-directory-mode .mating-group-detail-panel > .panel-head h2 {
    font-size: 30px;
  }

  #matingGroupDetailView.dead-directory-mode .mating-directory-toolbar,
  #matingGroupDetailView.dead-directory-mode .dead-turtle-directory {
    padding-right: 12px;
    padding-left: 12px;
  }

  #matingGroupDetailView.dead-directory-mode .dead-directory-titlebar h3 {
    font-size: 22px;
  }

  #matingGroupDetailView.dead-directory-mode .dead-directory-titlebar p {
    white-space: normal;
  }

  .dead-directory-section-head {
    min-height: 56px;
    padding: 10px 12px;
  }

  .dead-directory-section-head h3 {
    font-size: 17px;
  }

  .dead-sex-mark {
    width: 34px;
    height: 34px;
  }

  .dead-sex-mark img {
    width: 22px;
    height: 22px;
  }

  #matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-columns,
  #matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-turtle-summary {
    grid-template-columns: 42px minmax(0, 1.2fr) minmax(65px, 0.7fr) minmax(56px, 0.6fr) 17px;
  }

  #matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-turtle-summary {
    min-height: 90px;
    padding: 9px 4px;
  }

  #matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-total,
  #matingGroupDetailView.dead-directory-mode .dead-directory-group--male .male-directory-recent {
    min-height: 50px;
    padding: 0 3px;
  }

  #matingGroupDetailView.dead-directory-mode .dead-directory-group--unknown .unknown-turtle-directory-row {
    min-height: 104px;
    grid-template-columns: 58px minmax(0, 1fr) 22px;
    gap: 10px;
    padding: 13px 10px;
  }
}

/* v196 未知龟目录：确认的暖白档案册方案，永久身份编码随目录展示 */
#matingGroupDetailView.mating-directory-mode.unknown-directory-mode {
  width: min(100%, 680px);
}

#matingGroupDetailView.unknown-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
  position: relative;
  display: block;
  min-height: 238px;
  overflow: hidden;
  padding: 40px 45% 34px 28px;
  border: 1px solid #dde5d7;
  border-bottom: 0;
  border-radius: 24px 24px 0 0;
  background: #faf8ef;
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
}

#matingGroupDetailView.unknown-directory-mode .mating-group-overview-copy {
  position: relative;
  z-index: 2;
}

#matingGroupDetailView.unknown-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  margin: 0 0 18px;
  color: #4d7756;
  font-size: 18px;
  font-weight: 900;
}

#matingGroupDetailView.unknown-directory-mode .mating-group-detail-panel > .panel-head h2 {
  max-width: 280px;
  margin: 0;
  color: #184832;
  font-size: clamp(38px, 7vw, 54px);
  line-height: 1.05;
  letter-spacing: -1px;
  white-space: nowrap;
}

#matingGroupDetailView.unknown-directory-mode .mating-group-overview-art {
  position: absolute;
  z-index: 1;
  inset: auto -4% 0 auto;
  display: block !important;
  width: 54%;
  height: 82%;
  object-fit: contain;
  object-position: right bottom;
  mix-blend-mode: multiply;
  opacity: 0.82;
}

#matingGroupDetailView.unknown-directory-mode .mating-group-archive-count {
  position: absolute;
  z-index: 3;
  top: 34px;
  right: 24px;
  display: block;
  padding: 10px 17px;
  color: #426c49;
  background: #eeeee0;
  font-size: 16px;
}

#matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar {
  grid-template-columns: minmax(188px, auto) minmax(0, 1fr);
  gap: 14px;
  width: 100%;
  margin: 0;
  padding: 20px 22px;
  border: 1px solid #dde5d7;
  border-top: 0;
  border-radius: 0;
  background: rgba(255, 254, 249, 0.98);
}

#matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar::before {
  display: none;
}

#matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
  min-height: 58px;
  border-radius: 13px;
  color: #fff;
  background: #315f39;
  box-shadow: 0 10px 22px rgba(49, 95, 57, 0.18);
}

#matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar #addMatingTurtleButton span {
  color: #315f39;
}

#matingGroupDetailView.unknown-directory-mode .mating-directory-search {
  min-height: 58px;
  border-color: #d9dfd3;
  border-radius: 13px;
  background: #fffefa;
}

#matingGroupDetailView.unknown-directory-mode .mating-directory-search input {
  min-height: 56px;
}

#matingGroupDetailView.unknown-directory-mode .turtle-profile-list {
  padding: 0;
  border: 1px solid #dde5d7;
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: rgba(255, 254, 249, 0.98);
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory {
  gap: 0;
  padding: 0 22px 24px;
  border: 0;
  border-radius: 0 0 24px 24px;
  background: transparent;
  box-shadow: none;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head {
  min-height: 92px;
  align-items: center;
  padding: 22px 0 15px;
  border-bottom: 1px solid #dde3d5;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head > div {
  display: block;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head h3 {
  color: #184832;
  font-size: 26px;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head p {
  margin-top: 7px;
  color: #788477;
  font-size: 12px;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-grid {
  display: block;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory-row {
  display: grid;
  width: 100%;
  min-height: 132px;
  grid-template-columns: 78px minmax(0, 1fr) 32px;
  gap: 18px;
  align-items: center;
  padding: 18px 10px;
  border: 0;
  border-bottom: 1px solid #dbe2d3;
  border-radius: 0;
  color: #173f2d;
  background: transparent;
  box-shadow: none;
  text-align: left;
}

#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory-row:hover,
#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory-row:focus-visible,
#matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory-row:active {
  border-color: #b9cbb6;
  color: #173f2d;
  background: #f5f5e9;
  box-shadow: none;
  transform: none;
}

.unknown-directory-avatar {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  border: 1px dashed #cfb77a;
  border-radius: 50%;
  background: #fff9e9;
}

.unknown-directory-avatar img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.unknown-directory-copy {
  display: grid;
  min-width: 0;
  gap: 8px;
}

#matingGroupDetailView.unknown-directory-mode .unknown-directory-copy strong {
  overflow: hidden;
  color: #173f2d;
  font-size: 28px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.unknown-directory-copy small {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 10px;
  color: #667166;
  font-size: 14px;
  font-weight: 700;
}

.unknown-directory-copy small b {
  flex: 0 0 auto;
  color: #53624f;
}

.unknown-directory-copy small span {
  overflow: hidden;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.unknown-directory-chevron {
  color: #4f784c;
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
}

@media (max-width: 640px) {
  #matingGroupDetailView.unknown-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 190px;
    padding: 28px 44% 24px 20px;
    border-radius: 20px 20px 0 0;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
    margin-bottom: 12px;
    font-size: 14px;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-group-detail-panel > .panel-head h2 {
    max-width: 180px;
    font-size: 34px;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-group-archive-count {
    top: 24px;
    right: 15px;
    padding: 8px 11px;
    font-size: 12px;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar {
    grid-template-columns: minmax(136px, auto) minmax(0, 1fr);
    gap: 8px;
    padding: 14px 12px;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar #addMatingTurtleButton,
  #matingGroupDetailView.unknown-directory-mode .mating-directory-search {
    min-height: 50px;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-directory-toolbar #addMatingTurtleButton {
    padding: 0 9px;
    font-size: 12px;
  }

  #matingGroupDetailView.unknown-directory-mode .mating-directory-search input {
    min-height: 48px;
    font-size: 11px;
  }

  #matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory {
    padding: 0 13px 18px;
  }

  #matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head {
    min-height: 78px;
    padding: 17px 0 12px;
  }

  #matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head h3 {
    font-size: 21px;
  }

  #matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory .turtle-directory-head p {
    font-size: 10px;
  }

  #matingGroupDetailView.unknown-directory-mode .unknown-turtle-directory-row {
    min-height: 112px;
    grid-template-columns: 62px minmax(0, 1fr) 22px;
    gap: 12px;
    padding: 15px 4px;
  }

  .unknown-directory-avatar {
    width: 58px;
    height: 58px;
  }

  .unknown-directory-avatar img {
    width: 40px;
    height: 40px;
  }

  #matingGroupDetailView.unknown-directory-mode .unknown-directory-copy strong {
    font-size: 22px;
  }

  .unknown-directory-copy small {
    display: grid;
    gap: 3px;
    font-size: 11px;
  }

  .unknown-directory-chevron {
    font-size: 32px;
  }
}

/* v193 单只乌龟档案：采用已选“自然档案册”方案。 */
#matingGroupDetailView:has(.archive-record-heading) {
  width: min(100%, 800px);
  max-width: 800px;
}

.turtle-archive-preview:has(.archive-record-heading) {
  gap: 16px;
  width: min(100%, 768px);
  padding: 26px 34px 30px;
  border-radius: 0 0 28px 28px;
  color: #12213a;
  background: #fbf9f1;
  box-shadow: 0 18px 48px rgba(25, 56, 38, 0.09);
}

.turtle-archive-preview:has(.archive-record-heading)::before {
  height: 250px;
  background: url("./assets/home-v33/rainforest-background-v42.png") center 38% / cover no-repeat;
  opacity: 0.055;
}

.archive-record-heading {
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 116px;
  align-items: center;
  gap: 18px;
}

.archive-record-back {
  display: none;
}

.archive-record-title {
  text-align: left;
}

.archive-record-title h1 {
  color: #07452e;
  font-size: clamp(42px, 7vw, 60px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  overflow-wrap: normal;
  word-break: keep-all;
  white-space: nowrap;
}

.archive-record-title p {
  margin-top: 12px;
  color: #47745f;
  font-size: 19px;
  letter-spacing: 0.025em;
}

.archive-sex-female .archive-record-title p {
  color: #47745f;
}

.archive-record-nav {
  gap: 8px;
}

.archive-record-nav > button,
.archive-more-actions > summary {
  width: 48px;
  height: 48px;
  color: #075c3a;
  font-size: 40px;
}

.archive-record-hero {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: 18px;
}

.archive-record-photo {
  border-color: #dfe2d9;
  border-radius: 18px;
  box-shadow: none;
}

.archive-record-photo figure,
.archive-record-photo-empty {
  min-height: 430px;
}

.archive-record-photo img {
  object-fit: cover;
}

.archive-record-photo figcaption {
  right: auto;
  left: 14px;
  bottom: 14px;
  border-radius: 10px;
  background: rgba(20, 37, 29, 0.76);
  backdrop-filter: blur(6px);
}

.archive-record-identity {
  align-content: stretch;
}

.archive-identity-row {
  grid-template-columns: 76px minmax(0, 1fr);
  min-height: 78px;
  border-bottom-color: #d5ddd2;
}

.archive-identity-row span {
  color: #47775e;
  font-size: 18px;
}

.archive-identity-row strong {
  color: #13223b;
  font-size: clamp(22px, 3.4vw, 30px);
  white-space: nowrap;
}

.archive-primary-actions {
  gap: 12px;
  margin-top: 15px;
}

.archive-primary-actions button {
  min-height: 64px;
  border: 2px solid #0f6741;
  border-radius: 13px;
  color: #0d5e3d;
  background: #fbf9f1;
  font-size: 21px;
}

.archive-primary-actions button.primary {
  background: #176b43;
}

.archive-primary-actions button:hover,
.archive-primary-actions button:focus-visible,
.archive-record-link:hover,
.archive-record-link:focus-visible,
.archive-history-thumb:hover,
.archive-history-thumb:focus-visible {
  outline: 3px solid rgba(24, 110, 69, 0.18);
  outline-offset: 2px;
}

.archive-record-overview,
.archive-record-details,
.archive-record-history {
  border-color: #dfe4dc;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.75);
  box-shadow: none;
}

.archive-record-overview {
  padding: 20px 24px 10px;
}

.archive-record-section-title {
  min-height: 64px;
  padding: 1px 8px 16px;
}

.archive-record-section-title h2 {
  color: #0a5a38;
  font-size: 29px;
}

.archive-record-stat {
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  gap: 2px 12px;
  min-height: 110px;
  padding: 18px 20px;
}

.archive-record-stat > img {
  grid-row: 1 / 3;
  align-self: center;
  width: 38px;
  height: 38px;
  object-fit: contain;
}

.archive-record-stat span {
  color: #426d59;
  font-size: 14px;
}

.archive-record-stat strong {
  color: #12213a;
  font-size: 22px;
}

.archive-record-details {
  overflow: hidden;
  padding: 0;
}

.archive-record-link {
  grid-template-columns: 42px minmax(0, 1fr) 28px;
  min-height: 90px;
  padding: 15px 22px;
}

.archive-record-link > img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.archive-record-link strong {
  color: #0b5536;
  font-size: 21px;
}

.archive-record-link small {
  color: #7b857d;
}

.archive-record-history {
  padding: 20px 24px 24px;
}

.archive-record-history .archive-section-head h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #10223a;
  font-size: 23px;
}

.archive-record-history .archive-section-head h4 > img {
  width: 28px;
  height: 28px;
}

.archive-record-history .archive-section-head > span {
  color: #0b613b;
  font-size: 15px;
  font-weight: 900;
}

.archive-record-history .archive-history-strip {
  grid-auto-columns: calc((100% - 14px) / 2);
  gap: 14px;
}

.archive-record-history .archive-history-thumb {
  aspect-ratio: 1.42 / 1;
  border-radius: 12px;
}

@media (max-width: 640px) {
  .turtle-archive-preview:has(.archive-record-heading) {
    gap: 11px;
    padding: 14px 16px 22px;
    border-radius: 0 0 20px 20px;
  }

  .archive-record-heading {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 84px;
    gap: 8px;
  }

  .archive-record-title h1 {
    font-size: clamp(33px, 10.5vw, 45px);
  }

  .archive-record-title p {
    margin-top: 7px;
    font-size: 14px;
  }

  .archive-record-nav > button,
  .archive-more-actions > summary {
    width: 38px;
    height: 44px;
    font-size: 34px;
  }

  .archive-record-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 9px;
  }

  .archive-record-photo figure,
  .archive-record-photo-empty {
    min-height: clamp(246px, 71vw, 310px);
  }

  .archive-record-photo figcaption {
    left: 7px;
    bottom: 7px;
  }

  .archive-identity-row {
    grid-template-columns: 48px minmax(0, 1fr);
    min-height: clamp(47px, 14vw, 59px);
  }

  .archive-identity-row span {
    font-size: 12px;
  }

  .archive-identity-row strong {
    font-size: clamp(14px, 4.2vw, 18px);
  }

  .archive-primary-actions {
    gap: 6px;
    margin-top: 8px;
  }

  .archive-primary-actions button {
    min-height: 46px;
    border-radius: 9px;
    font-size: 15px;
  }

  .archive-record-overview {
    padding: 13px 12px 5px;
  }

  .archive-record-section-title {
    min-height: 52px;
    padding: 2px 5px 12px;
  }

  .archive-record-section-title h2 {
    font-size: 22px;
  }

  .archive-record-stat {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 2px 7px;
    min-height: 82px;
    padding: 10px 8px;
  }

  .archive-record-stat > img {
    width: 27px;
    height: 27px;
  }

  .archive-record-stat span {
    font-size: 10px;
  }

  .archive-record-stat strong {
    font-size: clamp(14px, 4.3vw, 18px);
  }

  .archive-record-link {
    grid-template-columns: 34px minmax(0, 1fr) 22px;
    min-height: 72px;
    padding: 11px 13px;
  }

  .archive-record-link > img {
    width: 27px;
    height: 27px;
  }

  .archive-record-link strong {
    font-size: 16px;
  }

  .archive-record-link small {
    font-size: 12px;
  }

  .archive-record-history {
    padding: 14px 13px 16px;
  }

  .archive-record-history .archive-section-head h4 {
    font-size: 17px;
  }

  .archive-record-history .archive-section-head h4 > img {
    width: 22px;
    height: 22px;
  }

  .archive-record-history .archive-section-head > span {
    font-size: 12px;
  }
}

@media (max-width: 380px) {
  .turtle-archive-preview:has(.archive-record-heading) {
    padding-inline: 11px;
  }

  .archive-record-nav {
    gap: 0;
  }

  .archive-record-nav > button,
  .archive-more-actions > summary {
    width: 34px;
  }

  .archive-record-photo figure,
  .archive-record-photo-empty {
    min-height: 238px;
  }

  .archive-identity-row {
    grid-template-columns: 42px minmax(0, 1fr);
  }
}

/* 成长照片：档案选择 + 单张照片 v263 */
.photo-studio-section-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 2px;
}

.photo-studio-section-heading > span {
  display: grid;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(135deg, #5c43e9, #826cf5);
  box-shadow: 0 8px 18px rgba(92, 67, 233, 0.22);
  font-size: 14px;
  font-weight: 900;
}

.photo-studio-section-heading > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.photo-studio-section-heading strong {
  color: #172039;
  font-size: 21px;
  line-height: 1.2;
}

.photo-studio-section-heading small {
  color: #7a8298;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

.photo-studio-photo-heading {
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid #eceef5;
}

.photo-studio-control > i {
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
}

.photo-studio-panel .update-photo-uploader {
  display: grid;
  width: 100%;
  justify-items: stretch;
}

.update-photo-gallery {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
}

.update-photo-slot {
  position: relative;
  min-width: 0;
  overflow: visible;
  border: 2px dashed #c9c1ff;
  border-radius: 20px;
  background: linear-gradient(145deg, #fbfaff, #f6f3ff);
  aspect-ratio: 16 / 10;
}

.update-photo-slot.has-photo {
  border-style: solid;
  border-color: #8875f3;
  background: #fff;
}

.update-photo-slot > [data-add-update-photo] {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 17px;
  color: #6753e9;
  background: transparent;
  cursor: pointer;
}

.update-photo-slot > [data-add-update-photo]:focus-visible {
  outline: 3px solid rgba(93, 67, 233, .34);
  outline-offset: 3px;
}

.update-photo-slot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.update-photo-slot [data-update-photo-empty] {
  display: grid;
  height: 100%;
  place-content: center;
  justify-items: center;
  gap: 6px;
}

.update-photo-slot [data-update-photo-empty] i {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: #6a54ed;
  font-size: 34px;
  font-style: normal;
  line-height: 1;
}

.update-photo-slot [data-update-photo-empty] b {
  color: #4e3bd1;
  font-size: 19px;
}

.update-photo-slot [data-update-photo-empty] small {
  color: #8c91a5;
  font-size: 12px;
  font-weight: 650;
}

.update-photo-remove {
  position: absolute;
  top: -9px;
  right: -9px;
  z-index: 2;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 3px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: #ed4b57;
  box-shadow: 0 5px 14px rgba(181, 43, 55, .24);
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
}

.photo-studio-hint {
  justify-content: center;
  text-align: center;
}

.photo-studio-save:disabled {
  color: #989cab;
  background: #e8e9ef;
  box-shadow: none;
  cursor: not-allowed;
}

@media (max-width: 720px) {
  .photo-studio-section-heading {
    gap: 11px;
  }

  .photo-studio-section-heading > span {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
    border-radius: 13px;
    font-size: 12px;
  }

  .photo-studio-section-heading strong {
    font-size: 18px;
  }

  .photo-studio-section-heading small {
    font-size: 12px;
  }

  .photo-studio-photo-heading {
    padding-top: 20px;
  }

  .update-photo-slot {
    border-radius: 16px;
  }

  .update-photo-slot > [data-add-update-photo] {
    border-radius: 13px;
  }

  .update-photo-slot [data-update-photo-empty] {
    gap: 3px;
  }

  .update-photo-slot [data-update-photo-empty] i {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    font-size: 20px;
  }

  .update-photo-slot [data-update-photo-empty] b {
    font-size: 13px;
  }

  .update-photo-slot [data-update-photo-empty] small {
    font-size: 10px;
  }

  .update-photo-remove {
    top: -7px;
    right: -7px;
    width: 30px;
    height: 30px;
    font-size: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .archive-record-link,
  .archive-primary-actions button,
  .archive-history-thumb {
    transition: none;
  }
}

/* v192 final cascade guard: selected male-directory hero + ranked table. */
#matingGroupDetailView.mating-directory-mode.male-directory-mode {
  width: min(100%, 680px) !important;
}

#matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
  position: relative !important;
  display: block !important;
  min-height: 260px !important;
  overflow: hidden !important;
  padding: 42px 48% 34px 28px !important;
  border: 1px solid #dce7da !important;
  border-bottom: 0 !important;
  border-radius: 24px 24px 0 0 !important;
  background: #f7f5e9 !important;
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08) !important;
}

#matingGroupDetailView.male-directory-mode .mating-group-overview-copy {
  position: relative !important;
  z-index: 2 !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
}

#matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  margin: 0 0 18px !important;
  color: #4c8361 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}

#matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head h2 {
  max-width: 310px !important;
  margin: 0 !important;
  color: #123e2e !important;
  font-size: clamp(34px, 6.5vw, 49px) !important;
  line-height: 1.08 !important;
  letter-spacing: -1px !important;
  white-space: nowrap !important;
}

#matingGroupDetailView.male-directory-mode .male-directory-hero-art {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 0 0 auto !important;
  display: block !important;
  width: 52% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  mix-blend-mode: multiply !important;
}

#matingGroupDetailView.male-directory-mode .mating-group-archive-count {
  position: absolute !important;
  z-index: 2 !important;
  bottom: 34px !important;
  left: 28px !important;
  display: block !important;
  width: auto !important;
  padding: 0 !important;
  color: #4f8462 !important;
  background: transparent !important;
  font-size: 21px !important;
}

#matingGroupDetailView.male-directory-mode .mating-directory-toolbar {
  display: grid !important;
  grid-template-columns: minmax(164px, auto) minmax(0, 1fr) !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 20px 22px !important;
  border: 1px solid #dce7da !important;
  border-top: 0 !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, 0.97) !important;
}

#matingGroupDetailView.male-directory-mode .mating-directory-toolbar::before {
  display: none !important;
}

#matingGroupDetailView.male-directory-mode .turtle-profile-list {
  width: 100% !important;
  padding: 0 !important;
  border: 1px solid #dce7da !important;
  border-top: 0 !important;
  border-radius: 0 0 24px 24px !important;
  background: rgba(255, 255, 255, 0.98) !important;
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory {
  display: block !important;
  width: 100% !important;
  padding: 0 22px 20px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-head {
  display: flex !important;
  min-height: 78px !important;
  padding: 14px 0 8px !important;
}

#matingGroupDetailView.male-directory-mode .male-directory-columns,
#matingGroupDetailView.male-directory-mode .male-turtle-summary {
  grid-template-columns: 58px minmax(0, 1.45fr) minmax(82px, 0.85fr) minmax(74px, 0.7fr) 24px !important;
}

#matingGroupDetailView.male-directory-mode .male-turtle-directory .turtle-directory-grid {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  border: 1px solid #e7ece6 !important;
  border-top: 0 !important;
  border-radius: 0 0 16px 16px !important;
  background: #fff !important;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 108px !important;
  margin: 0 !important;
  padding: 12px 10px !important;
  border: 0 !important;
  border-bottom: 1px solid #e7ece6 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}

#matingGroupDetailView.male-directory-mode .male-directory-total,
#matingGroupDetailView.male-directory-mode .male-directory-recent {
  min-width: 0 !important;
  min-height: 60px !important;
  padding: 0 8px !important;
  border-left: 1px solid #e7ece6 !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

#matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary.hidden {
  display: none !important;
}

@media (max-width: 640px) {
  #matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 204px !important;
    padding: 28px 47% 24px 20px !important;
    border-radius: 20px 20px 0 0 !important;
  }

  #matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
    margin-bottom: 13px !important;
    font-size: 14px !important;
  }

  #matingGroupDetailView.male-directory-mode .mating-group-detail-panel > .panel-head h2 {
    max-width: 170px !important;
    font-size: 25px !important;
  }

  #matingGroupDetailView.male-directory-mode .mating-group-archive-count {
    bottom: 22px !important;
    left: 20px !important;
    font-size: 15px !important;
  }

  #matingGroupDetailView.male-directory-mode .mating-directory-toolbar {
    grid-template-columns: minmax(128px, auto) minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 14px 12px !important;
  }

  #matingGroupDetailView.male-directory-mode .male-turtle-directory {
    padding: 0 12px 14px !important;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-columns,
  #matingGroupDetailView.male-directory-mode .male-turtle-summary {
    grid-template-columns: 44px minmax(0, 1.28fr) minmax(68px, 0.72fr) minmax(58px, 0.62fr) 18px !important;
  }

  #matingGroupDetailView.mating-directory-mode.male-directory-mode .male-turtle-summary {
    min-height: 92px !important;
    padding: 10px 6px !important;
  }

  #matingGroupDetailView.male-directory-mode .male-directory-total,
  #matingGroupDetailView.male-directory-mode .male-directory-recent {
    min-height: 52px !important;
    padding: 0 4px !important;
  }
}

/* v191 final cascade guard: keep the selected single-list composition */
#matingGroupDetailView.female-directory-mode .female-directory-rulebar .mother-directory-rule > span {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#matingGroupDetailView.female-directory-mode .female-turtle-directory .turtle-directory-grid {
  display: block;
  grid-template-columns: 1fr;
  gap: 0;
}

#matingGroupDetailView.mating-directory-mode.female-directory-mode .female-turtle-summary {
  display: grid;
  min-height: 166px;
  padding: 16px 14px 12px;
  border: 0;
  border-bottom: 1px solid #e3e9e2;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

#matingGroupDetailView.mating-directory-mode.female-directory-mode .female-turtle-summary:last-child {
  border-bottom: 0;
  border-radius: 0 0 24px 24px;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode.female-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 182px;
    padding: 28px 47% 24px 20px;
  }

  #matingGroupDetailView.female-directory-mode .mating-group-detail-panel > .panel-head h2 {
    max-width: 165px;
    font-size: 24px;
    letter-spacing: -0.8px;
    white-space: nowrap;
  }

  #matingGroupDetailView.female-directory-mode .mating-group-archive-count {
    bottom: 18px;
    font-size: 15px;
  }
}

/* v190 种群档案：第 2 套四象限数据总览 */
#matingGroupDetailView.mating-sex-overview-mode {
  width: min(100%, 820px);
  margin-right: auto;
  margin-left: auto;
}

#matingGroupDetailView.mating-sex-overview-mode > .back-row {
  display: none;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-detail-panel {
  overflow: hidden;
  padding: 0 0 20px;
  border: 1px solid rgba(207, 222, 211, 0.92);
  border-radius: 30px;
  background: #fbfaf4;
  box-shadow: 0 18px 46px rgba(30, 73, 52, 0.1);
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-head {
  position: relative;
  display: grid;
  min-height: 220px;
  padding: 30px 30px 26px;
  grid-template-columns: minmax(0, 0.9fr) minmax(250px, 1.1fr);
  align-items: center;
  gap: 16px;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid rgba(219, 226, 214, 0.72);
  background: #faf8ef;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-head .eyebrow {
  margin: 0 0 10px;
  color: #708176;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-head h2 {
  margin: 0;
  color: #15543e;
  font-size: clamp(42px, 7vw, 62px);
  line-height: 1.02;
  letter-spacing: -0.05em;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-count {
  margin: 20px 0 0;
  color: #244d40;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-art {
  width: 100%;
  max-height: 190px;
  object-fit: contain;
  object-position: center;
  opacity: 0.58;
  filter: sepia(16%) saturate(68%);
}

#matingGroupDetailView.mating-sex-overview-mode .mating-group-archive-count,
#matingGroupDetailView:not(.mating-sex-overview-mode) .mating-group-overview-art,
#matingGroupDetailView:not(.mating-sex-overview-mode) .mating-group-overview-count {
  display: none !important;
}

#matingGroupDetailView.mating-sex-overview-mode .turtle-profile-list {
  display: block;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-overview {
  padding: 20px 20px 0;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 225px;
  padding: 20px 20px 18px;
  grid-template-columns: minmax(0, 1fr) 38px;
  grid-template-areas:
    "icon arrow"
    "title title"
    "count count"
    "description description";
  grid-template-rows: 44px auto auto minmax(48px, auto);
  align-content: start;
  gap: 7px 10px;
  overflow: hidden;
  border: 1px solid #d6e4dc;
  border-radius: 22px;
  color: #164d3d;
  background: #f7fbf8;
  box-shadow: none;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card:hover,
#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card:focus-visible {
  border-color: currentColor;
  box-shadow: 0 12px 28px rgba(40, 73, 59, 0.12);
  transform: translateY(-2px);
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card:focus-visible {
  outline: 3px solid rgba(24, 123, 88, 0.25);
  outline-offset: 2px;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card:active {
  transform: scale(0.985);
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card--female {
  color: #b44c48;
  border-color: #efc1be;
  background: #fff7f5;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card--female.has-data {
  border-width: 2px;
  background: #fff4f1;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card--unknown {
  color: #ad7700;
  border-color: #ead9ad;
  background: #fffaf0;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card--dead {
  color: #8c5348;
  border-color: #ddd4d0;
  background: #f8f6f4;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-icon {
  display: grid;
  width: 44px;
  height: 44px;
  grid-area: icon;
  place-items: center;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.74);
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-icon img {
  width: 27px;
  height: 27px;
  object-fit: contain;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-title {
  grid-area: title;
  margin-top: 2px;
  color: currentColor;
  font-size: 23px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > strong {
  display: flex;
  grid-area: count;
  align-items: baseline;
  gap: 4px;
  margin: 0;
  color: currentColor;
  line-height: 1;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > strong b {
  font-size: 42px;
  font-weight: 900;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > strong em {
  font-size: 15px;
  font-style: normal;
  font-weight: 800;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > small {
  grid-area: description;
  align-self: end;
  color: #66716d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-arrow {
  position: absolute;
  right: 18px;
  bottom: 18px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.58);
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-arrow img {
  width: 14px;
  height: 14px;
  object-fit: contain;
  opacity: 0.72;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-note {
  display: flex;
  min-height: 52px;
  margin: 16px 0 0;
  padding: 10px 16px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid #d7e4dc;
  border-radius: 16px;
  color: #285846;
  background: #f2f8f3;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
}

#matingGroupDetailView.mating-sex-overview-mode .mating-sex-note img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  opacity: 0.72;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-sex-overview-mode .mating-group-detail-panel {
    padding-bottom: 14px;
    border-radius: 24px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-head {
    min-height: 183px;
    padding: 21px 20px 18px;
    grid-template-columns: minmax(0, 0.85fr) minmax(145px, 1.15fr);
    gap: 6px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-head .eyebrow {
    margin-bottom: 7px;
    font-size: 13px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-head h2 {
    font-size: 40px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-count {
    margin-top: 13px;
    font-size: 16px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-group-overview-art {
    width: 155%;
    max-width: none;
    max-height: 145px;
    transform: translateX(-9%);
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-overview {
    padding: 14px 14px 0;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-grid {
    gap: 10px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card {
    min-height: 216px;
    padding: 14px 13px 13px;
    grid-template-columns: minmax(0, 1fr) 34px;
    grid-template-rows: 38px auto auto minmax(51px, auto);
    gap: 5px 7px;
    border-radius: 18px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-icon img {
    width: 24px;
    height: 24px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-title {
    font-size: 19px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > strong b {
    font-size: 36px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > strong em,
  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > small {
    font-size: 11px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card > small {
    padding-right: 31px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card-arrow {
    right: 13px;
    bottom: 13px;
    width: 34px;
    height: 34px;
  }

  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-note {
    min-height: 46px;
    margin-top: 11px;
    padding: 8px 10px;
    border-radius: 14px;
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #matingGroupDetailView.mating-sex-overview-mode .mating-sex-card {
    transition: none;
  }
}

/* v144: customer-only entry for assigned turtles and pools */
.farm-bottom-nav > .customer-turtle-nav {
  display: none;
}

body.customer-session .farm-bottom-nav {
  position: fixed;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] {
  position: absolute;
  top: 6px;
  left: 50%;
  margin-top: -18px;
  transform: translateX(-50%);
}

body.customer-session .farm-bottom-nav > [data-go="homeView"]:active {
  transform: translateX(-50%) scale(0.96);
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav {
  position: absolute;
  top: 5px;
  left: calc(50% + 74px);
  display: flex;
  width: 84px;
  min-width: 84px;
  min-height: 58px;
  padding: 3px 4px 2px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border-radius: 16px;
  color: #5f6e66;
  background: transparent;
  transform: translateX(-50%);
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav .farm-nav-icon,
body.customer-session .farm-bottom-nav > .customer-turtle-nav.active .farm-nav-icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 13px;
  color: #247a4b;
  background: #edf8f1;
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav .farm-nav-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav .farm-nav-label {
  font-size: 12px;
  font-weight: 750;
  line-height: 1.1;
  white-space: nowrap;
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav.active {
  color: #168a46;
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav.active .farm-nav-icon {
  color: #fff;
  background: #1b9550;
  box-shadow: 0 5px 12px rgba(20, 113, 61, 0.2);
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav:active {
  background: #f0f7f3;
  transform: translateX(-50%) scale(0.96);
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav:focus-visible {
  outline: 3px solid rgba(35, 166, 87, 0.34);
  outline-offset: -2px;
}

body.customer-session .farm-bottom-nav > .customer-turtle-nav.active .farm-nav-label::after {
  display: none;
}

/* v138 库存卡状态胶囊：三个库存分类统一放大，并强化数字层级。 */
html body #stockView .stock-card-main {
  grid-template-columns: minmax(0, 1fr) auto 22px;
  gap: 8px;
}

html body #stockView .stock-card-pills {
  flex-wrap: nowrap;
  gap: 8px;
}

html body #stockView .stock-card-pill {
  display: inline-flex;
  min-width: 76px;
  min-height: 42px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 8px 13px;
  border-width: 1.5px;
  font-size: 14px;
  line-height: 1;
  box-shadow: 0 5px 14px rgba(32, 55, 43, .06);
}

html body #stockView .stock-card-pill > span {
  font-size: .9em;
  font-weight: 800;
}

html body #stockView .stock-card-pill > strong {
  font-size: 1.22em;
  font-weight: 950;
  line-height: 1;
}

@media (max-width: 700px) {
  html body #stockView .stock-card-main {
    grid-template-columns: minmax(0, 1fr) auto 16px;
    gap: 6px;
  }

  html body #stockView .stock-card-pills {
    gap: 6px;
  }

  html body #stockView .stock-card-pill {
    min-width: 54px;
    min-height: 38px;
    gap: 3px;
    padding: 6px 8px;
    font-size: 12px;
  }

  html body #stockView .stock-card-pill > strong {
    font-size: 15px;
  }
}

/* v112-final 库存管理：最终覆盖层，统一三个外层列表和三个详情页 */
#stockView.stock-view,
#stockSpeciesDetailView.stock-species-detail-view {
  width: min(100%, 900px);
  max-width: 900px;
  margin-inline: auto;
  padding-bottom: 110px;
  --stock-ink: #101d36;
  --stock-muted: #778299;
  --stock-green: #13834b;
  --stock-line: #dce5df;
}

#stockView > .back-button,
#stockSpeciesDetailView > .stock-detail-back {
  display: inline-flex;
  width: auto;
  min-height: 50px;
  align-items: center;
  margin: 0 0 9px;
  padding: 0 20px;
  border: 1px solid rgba(43, 95, 62, .12);
  border-radius: 999px;
  color: #5d50f7;
  background: rgba(255,255,255,.94);
  box-shadow: 0 10px 28px rgba(29, 63, 42, .09);
  font-size: 17px;
  font-weight: 850;
}

#stockView > .back-button::before,
#stockSpeciesDetailView > .stock-detail-back::before {
  content: "‹";
  margin-right: 7px;
  font-size: 27px;
  font-weight: 500;
  line-height: 0;
}

#stockView .stock-page-heading {
  margin: 4px 0 24px;
  color: var(--stock-ink);
  font-size: clamp(34px, 6vw, 52px);
  line-height: 1.08;
  text-align: center;
}

#stockView .stock-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0;
  margin: 0 0 18px;
  overflow: hidden;
  border: 1px solid rgba(36,94,58,.13);
  border-radius: 24px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 14px 38px rgba(30,65,43,.08);
}

#stockView .stock-tabs .tab {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 76px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 12px 9px;
  border: 0;
  border-right: 1px solid #e5e9e6;
  border-radius: 0;
  color: #778197;
  background: transparent;
  box-shadow: none;
  font-size: 20px;
  font-weight: 850;
}

#stockView .stock-tabs .tab:last-child { border-right: 0; }
#stockView .stock-tabs .tab.active { color: var(--stock-green); background: linear-gradient(180deg, #f4fbf6, #fff); }
#stockView .stock-tabs .tab.active::after { right: 12%; bottom: 0; left: 12%; height: 4px; background: var(--stock-green); }
#stockView .stock-tab-icon { display: block; width: 32px; height: 32px; object-fit: contain; }

#stockView .stock-panel {
  display: none;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#stockView .stock-panel.active { display: grid; }
#stockView .stock-overview { grid-column: 1 / -1; }
#stockView .stock-overview-card {
  padding: 25px 26px 22px;
  border: 1px solid rgba(36,95,59,.14);
  border-radius: 28px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 15px 38px rgba(29,62,41,.09);
}
#stockView .stock-overview-card > h2 { margin: 0 0 21px; color: var(--stock-ink); font-size: 24px; }
#stockView .stock-overview-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
#stockView .stock-overview-metrics.stock-overview-count-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
#stockView .stock-overview-metric {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  grid-template-rows: auto auto;
  align-items: center;
  min-width: 0;
  gap: 5px 13px;
  padding: 6px 22px;
  border-right: 1px solid #e3e8e4;
}
#stockView .stock-overview-metric:first-child { padding-left: 0; }
#stockView .stock-overview-metric:last-child { padding-right: 0; border-right: 0; }
#stockView .stock-overview-icon { display: grid; grid-row: 1 / span 2; width: 53px; height: 53px; place-items: center; border-radius: 17px; background: #eff7f0; }
#stockView .stock-overview-icon img { width: 36px; height: 36px; object-fit: contain; }
#stockView .stock-overview-metric small { overflow: hidden; color: var(--stock-muted); font-size: 14px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
#stockView .stock-overview-metric strong { color: var(--stock-ink); font-size: 36px; line-height: 1; }
#stockView .stock-overview-metric strong em { margin-left: 5px; color: #77839a; font-size: 13px; font-style: normal; }
#stockView .stock-tone-green strong { color: #14864d; }
#stockView .stock-tone-amber strong { color: #df8618; }
#stockView .stock-tone-blue strong { color: #3879e8; }
#stockView .stock-tone-pink strong { color: #eb3e7a; }
#stockView .stock-tone-muted strong { color: #6f788b; }

#stockView .stock-panel > .stock-list-toolbar.panel-head { display: block; min-width: 0; margin: 0; }
#stockView .stock-search { display: grid; grid-template-columns: 50px minmax(0,1fr); width: 100%; min-height: 60px; overflow: hidden; border: 1px solid #dce5de; border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: none; }
#stockView .stock-search > span { position: relative; height: 100%; padding: 0; }
#stockView .stock-search > span::before { content: ""; position: absolute; top: 50%; left: 18px; width: 16px; height: 16px; border: 3px solid #77839a; border-radius: 50%; transform: translateY(-58%); }
#stockView .stock-search > span::after { content: ""; position: absolute; top: calc(50% + 9px); left: 33px; width: 9px; height: 3px; border-radius: 999px; background: #77839a; transform: rotate(45deg); transform-origin: left center; }
#stockView .stock-search .table-search { width: 100%; max-width: none; min-height: 58px; border: 0; padding: 0 16px 0 5px; color: var(--stock-ink); background: transparent; font-size: 17px; }
#stockView .stock-panel .table-tools { display: flex; align-items: center; margin: 0; }
#stockView .stock-panel .table-column-settings { position: relative; }
#stockView .stock-panel .table-column-settings summary { display: inline-flex; min-height: 60px; align-items: center; justify-content: center; margin: 0; padding: 0 22px; border: 1px solid #cfe0d3; border-radius: 20px; color: var(--stock-green); background: rgba(255,255,255,.94); font-size: 17px; font-weight: 850; white-space: nowrap; }
#stockView .stock-panel .table-column-settings summary::before { color: var(--stock-green); }
#stockView .stock-legacy-table { display: none !important; }
#stockView .stock-card-list { display: grid; grid-column: 1 / -1; gap: 14px; }
#stockView .stock-inventory-card { display: grid; grid-template-columns: 78px minmax(0,1fr); width: 100%; min-height: 152px; align-items: center; gap: 17px; overflow: hidden; border: 1px solid #d8e4da; border-radius: 26px; padding: 18px 22px; color: var(--stock-ink); background: rgba(255,255,255,.96); box-shadow: 0 13px 30px rgba(25,68,42,.09); text-align: left; }
#stockView .stock-card-icon { display: grid; width: 76px; height: 76px; place-items: center; border-radius: 24px; background: #eff7eb; }
#stockView .stock-card-icon img { width: 58px; height: 58px; object-fit: contain; }
#stockView .stock-inventory-eggs .stock-card-icon { background: #f0edff; }
#stockView .stock-card-body { display: grid; min-width: 0; gap: 13px; }
#stockView .stock-card-main { display: grid; grid-template-columns: minmax(0,1.3fr) auto 24px; align-items: center; gap: 10px; }
#stockView .stock-inventory-static { cursor: default; }
#stockView .stock-inventory-static .stock-card-main { grid-template-columns: minmax(0,1.3fr) auto; }
#stockView .stock-card-title { display: grid; min-width: 0; gap: 8px; }
#stockView .stock-card-title b { overflow: hidden; color: var(--stock-ink); font-size: 21px; font-weight: 900; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
#stockView .stock-card-title > span { color: #7a8497; font-size: 15px; }
#stockView .stock-card-title strong { margin: 0 4px 0 8px; color: var(--stock-ink); font-size: 31px; line-height: 1; }
#stockView .stock-card-title em { font-size: 13px; font-style: normal; }
#stockView .stock-card-source { color: #6c7d70; font-size: 13px; font-weight: 750; }
#stockView .stock-card-source b { color: #17613e; font-size: inherit; }
#stockView .stock-card-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
#stockView .stock-card-pill { padding: 7px 11px; border: 1px solid #dce3df; border-radius: 999px; color: #6f788a; background: #f7f8f8; font-size: 13px; font-style: normal; font-weight: 850; white-space: nowrap; }
#stockView .stock-card-pill-green { color: #178148; border-color: #cde7d2; background: #f0f8f1; }
#stockView .stock-card-pill-amber { color: #dc7b0b; border-color: #f2d6a0; background: #fff9ed; }
#stockView .stock-card-pill-blue { color: #326fea; border-color: #d9e4ff; background: #f1f5ff; }
#stockView .stock-card-pill-pink { color: #e83e78; border-color: #f8d7e2; background: #fff1f5; }
#stockView .stock-card-caret { color: #66758a; font-size: 38px; font-weight: 450; line-height: 1; }
#stockView .stock-card-foot { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); min-height: 36px; overflow: hidden; border: 1px solid #edf0ed; border-radius: 13px; color: #778199; background: #fbfcfb; font-size: 13px; }
#stockView .stock-card-foot > span { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 8px 10px; }
#stockView .stock-card-foot > span + span { border-left: 1px solid #e8ece9; }
#stockView .stock-card-foot b { color: #68758d; font-size: 15px; }

#stockSpeciesDetailView .stock-detail-page-heading { margin: 0 0 20px; text-align: center; }
#stockSpeciesDetailView .stock-detail-page-heading p { margin: 0 0 5px; color: #75829a; font-size: 16px; font-weight: 800; }
#stockSpeciesDetailView .stock-detail-page-heading h1 { margin: 0; color: var(--stock-ink); font-size: clamp(34px,6vw,48px); line-height: 1.08; }
#stockSpeciesDetailView .stock-detail-summary-card,
#stockSpeciesDetailView .stock-detail-total-card,
#stockSpeciesDetailView .stock-detail-journal-card { border: 1px solid rgba(34,95,57,.14); border-radius: 28px; background: rgba(255,255,255,.96); box-shadow: 0 15px 38px rgba(29,65,41,.09); }
#stockSpeciesDetailView .stock-detail-summary-card { padding: 24px 26px; }
#stockSpeciesDetailView .stock-detail-summary-card > h2,
#stockSpeciesDetailView .stock-detail-total-card > h2 { margin: 0 0 20px; color: var(--stock-ink); font-size: 24px; }
#stockSpeciesDetailView .stock-detail-summary-layout { display: grid; grid-template-columns: 118px minmax(0,1fr); align-items: center; gap: 22px; }
#stockSpeciesDetailView .stock-detail-summary-icon { display: grid; width: 112px; height: 112px; place-items: center; border-radius: 30px; background: linear-gradient(145deg,#edf7ef,#f7fbf8); }
#stockSpeciesDetailView .stock-detail-summary-icon img { width: 82px; height: 82px; object-fit: contain; }
#stockSpeciesDetailView .stock-detail-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; margin: 0; }
#stockSpeciesDetailView .stock-detail-metric { display: grid; grid-template-columns: 1fr; grid-template-rows: auto auto; min-height: 96px; justify-items: center; gap: 7px; padding: 10px 14px; border: 0; border-right: 1px solid #e3e8e4; border-radius: 0; background: transparent; text-align: center; }
#stockSpeciesDetailView .stock-detail-metric:last-child { border-right: 0; }
#stockSpeciesDetailView .stock-detail-metric-icon { display: none; }
#stockSpeciesDetailView .stock-detail-metric small { color: #748198; font-size: 14px; font-weight: 750; }
#stockSpeciesDetailView .stock-detail-metric strong { color: var(--stock-ink); font-size: 35px; line-height: 1; }
#stockSpeciesDetailView .stock-detail-delete-row { display: flex; align-items: center; gap: 22px; padding: 17px 20px 0; }
#stockSpeciesDetailView .stock-detail-delete { min-width: 190px; margin: 0; color: #e03030; border-color: #ef3c3c; background: rgba(255,255,255,.9); }
#stockSpeciesDetailView .stock-detail-delete-row > span { color: #778199; font-size: 15px; font-weight: 700; }
#stockSpeciesDetailView .stock-detail-total-card { margin-top: 18px; padding: 24px 26px; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals > article { display: grid; grid-template-columns: 38px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 6px 10px; padding: 6px 20px; border-right: 1px solid #e2e8e4; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals > article:first-child { padding-left: 0; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals > article:last-child { padding-right: 0; border-right: 0; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals i { grid-row: 1 / span 2; color: #14834b; font-size: 30px; font-style: normal; text-align: center; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals span { color: #768199; font-size: 14px; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals strong { margin: 0; color: #103b24; font-size: 29px; }
#stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals small { font-size: 12px; }
#stockSpeciesDetailView .stock-detail-journal-card { margin-top: 18px; padding: 24px 26px; }
#stockSpeciesDetailView .stock-detail-year-label { display: none; }
#stockSpeciesDetailView .stock-detail-month-list { overflow: hidden; border-radius: 17px; }
#stockSpeciesDetailView .stock-detail-record-row { display: grid; grid-template-columns: 84px minmax(0,1fr) auto auto 20px; align-items: center; gap: 10px; }
#stockSpeciesDetailView .stock-detail-record-main { display: grid; min-width: 0; gap: 3px; }
#stockSpeciesDetailView .stock-detail-record-main .stock-detail-action { padding: 0; color: #16804d; background: transparent; font-size: 15px; }
#stockSpeciesDetailView .stock-detail-record-main small { overflow: hidden; color: #7b8597; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
#stockSpeciesDetailView .stock-detail-record-badge { padding: 5px 9px; border: 1px solid #d8e5da; border-radius: 9px; color: #17814b; background: #f0f8f1; font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; }
#stockSpeciesDetailView .stock-detail-record-badge.stock-detail-action-danger { color: #df4a42; border-color: #f1d8d5; background: #fff2f1; }
#stockSpeciesDetailView .stock-detail-record-quantity { font-size: 18px; white-space: nowrap; }
#stockSpeciesDetailView .stock-detail-record-quantity.positive { color: #128443; }
#stockSpeciesDetailView .stock-detail-record-quantity.negative { color: #e35816; }
#stockSpeciesDetailView .stock-detail-record-quantity small { margin-left: 3px; font-size: 12px; }
#stockSpeciesDetailView .stock-detail-record-caret { color: #17304c; font-size: 28px; }

@media (max-width: 700px) {
  #stockView.stock-view,
  #stockSpeciesDetailView.stock-species-detail-view { padding-inline: 1px; }
  #stockView > .back-button,
  #stockSpeciesDetailView > .stock-detail-back { min-height: 43px; margin-left: 3px; padding: 0 14px; font-size: 14px; }
  #stockView .stock-page-heading { margin: 2px 0 14px; font-size: 29px; }
  #stockView .stock-tabs { margin-bottom: 12px; border-radius: 17px; }
  #stockView .stock-tabs .tab { min-height: 58px; gap: 5px; padding: 8px 3px; font-size: 13px; }
  #stockView .stock-tab-icon { width: 23px; height: 23px; }
  #stockView .stock-panel { gap: 10px 8px; }
  #stockView .stock-overview-card { padding: 17px 14px 15px; border-radius: 20px; }
  #stockView .stock-overview-card > h2 { margin-bottom: 15px; font-size: 18px; }
  #stockView .stock-overview-metric { gap: 4px 7px; padding: 2px 8px; }
  #stockView .stock-overview-icon { width: 32px; height: 32px; border-radius: 11px; }
  #stockView .stock-overview-icon img { width: 22px; height: 22px; }
  #stockView .stock-overview-metric small { font-size: 9px; }
  #stockView .stock-overview-metric strong { font-size: 24px; }
  #stockView .stock-overview-metric strong em { margin-left: 2px; font-size: 9px; }
  #stockView .stock-overview-count-4 .stock-overview-metric { display: grid; grid-template-columns: 1fr; justify-items: center; gap: 4px; padding-inline: 5px; text-align: center; }
  #stockView .stock-overview-count-4 .stock-overview-icon { display: none; }
  #stockView .stock-search { grid-template-columns: 42px minmax(0,1fr); min-height: 48px; border-radius: 15px; }
  #stockView .stock-search > span::before { left: 13px; width: 14px; height: 14px; border-width: 2px; }
  #stockView .stock-search > span::after { top: calc(50% + 7px); left: 26px; width: 7px; height: 2px; }
  #stockView .stock-search .table-search { min-height: 46px; padding-left: 0; font-size: 13px; }
  #stockView .stock-panel .table-column-settings summary { min-height: 48px; padding: 0 14px; border-radius: 15px; font-size: 13px; }
  #stockView .stock-card-list { gap: 9px; }
  #stockView .stock-inventory-card { grid-template-columns: 48px minmax(0,1fr); min-height: 108px; gap: 10px; padding: 12px; border-radius: 18px; }
  #stockView .stock-card-icon { width: 48px; height: 48px; border-radius: 16px; }
  #stockView .stock-card-icon img { width: 37px; height: 37px; }
  #stockView .stock-card-body { gap: 8px; }
  #stockView .stock-card-main { grid-template-columns: minmax(0,1.25fr) auto 14px; gap: 5px; }
  #stockView .stock-card-title { gap: 4px; }
  #stockView .stock-card-title b { font-size: 15px; }
  #stockView .stock-card-title > span { font-size: 11px; white-space: nowrap; }
  #stockView .stock-card-title strong { margin: 0 2px 0 4px; font-size: 23px; }
  #stockView .stock-card-title em { font-size: 9px; }
  #stockView .stock-card-source { font-size: 11px; }
  #stockView .stock-card-pills { gap: 4px; }
  #stockView .stock-card-pill { padding: 4px 6px; font-size: 9px; }
  #stockView .stock-card-caret { font-size: 25px; }
  #stockView .stock-card-foot { min-height: 29px; border-radius: 9px; font-size: 9px; }
  #stockView .stock-card-foot > span { gap: 3px; padding: 6px 4px; }
  #stockView .stock-card-foot b { font-size: 10px; }

  #stockSpeciesDetailView .stock-detail-page-heading { margin-bottom: 14px; }
  #stockSpeciesDetailView .stock-detail-page-heading p { font-size: 12px; }
  #stockSpeciesDetailView .stock-detail-page-heading h1 { font-size: 28px; }
  #stockSpeciesDetailView .stock-detail-summary-card,
  #stockSpeciesDetailView .stock-detail-total-card,
  #stockSpeciesDetailView .stock-detail-journal-card { border-radius: 20px; }
  #stockSpeciesDetailView .stock-detail-summary-card { padding: 16px 13px; }
  #stockSpeciesDetailView .stock-detail-summary-card > h2,
  #stockSpeciesDetailView .stock-detail-total-card > h2 { margin-bottom: 14px; font-size: 18px; }
  #stockSpeciesDetailView .stock-detail-summary-layout { grid-template-columns: 63px minmax(0,1fr); gap: 8px; }
  #stockSpeciesDetailView .stock-detail-summary-icon { width: 60px; height: 60px; border-radius: 18px; }
  #stockSpeciesDetailView .stock-detail-summary-icon img { width: 45px; height: 45px; }
  #stockSpeciesDetailView .stock-detail-metric { min-height: 62px; gap: 4px; padding: 5px 7px; }
  #stockSpeciesDetailView .stock-detail-metric small { font-size: 9px; }
  #stockSpeciesDetailView .stock-detail-metric strong { font-size: 22px; }
  #stockSpeciesDetailView .stock-detail-delete-row { gap: 11px; padding: 11px 7px 0; }
  #stockSpeciesDetailView .stock-detail-delete { min-width: 126px; min-height: 40px; padding: 0 10px; font-size: 11px; }
  #stockSpeciesDetailView .stock-detail-delete-row > span { font-size: 9px; }
  #stockSpeciesDetailView .stock-detail-total-card { margin-top: 12px; padding: 16px 13px; }
  #stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals > article { grid-template-columns: 23px minmax(0,1fr); gap: 3px 5px; padding: 3px 8px; }
  #stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals i { font-size: 19px; }
  #stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals span { font-size: 9px; }
  #stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals strong { font-size: 20px; }
  #stockSpeciesDetailView .stock-detail-total-card .stock-detail-totals small { font-size: 8px; }
  #stockSpeciesDetailView .stock-detail-journal-card { margin-top: 12px; padding: 15px 12px; }
  #stockSpeciesDetailView .stock-detail-record-row { grid-template-columns: 52px minmax(0,1fr) auto auto 13px; min-height: 57px; gap: 5px; padding: 7px 9px; }
  #stockSpeciesDetailView .stock-detail-record-row time { font-size: 10px; }
  #stockSpeciesDetailView .stock-detail-record-main .stock-detail-action { font-size: 11px; }
  #stockSpeciesDetailView .stock-detail-record-main small { font-size: 8px; }
  #stockSpeciesDetailView .stock-detail-record-badge { padding: 4px 5px; border-radius: 7px; font-size: 8px; }
  #stockSpeciesDetailView .stock-detail-record-quantity { font-size: 13px; }
  #stockSpeciesDetailView .stock-detail-record-quantity small { font-size: 8px; }
  #stockSpeciesDetailView .stock-detail-record-caret { font-size: 20px; }
}

/* v112 库存中心：外层列表与三类详情统一为移动端卡片界面 */
.stock-view.stock-view {
  width: min(100%, 900px);
  max-width: 900px;
  margin-inline: auto;
  padding-bottom: 110px;
  --stock-ink: #0f1d38;
  --stock-muted: #77839a;
  --stock-green: #13834b;
  --stock-green-soft: #edf7ef;
  --stock-purple: #6452ff;
  --stock-line: #dfe7e1;
}

.stock-view > .back-button {
  display: inline-flex;
  width: auto;
  min-height: 50px;
  align-items: center;
  margin: 0 0 8px;
  padding: 0 20px;
  border: 1px solid rgba(31, 104, 64, 0.12);
  border-radius: 999px;
  color: #5e50f8;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 28px rgba(28, 66, 44, 0.09);
  font-size: 17px;
  font-weight: 850;
}

.stock-page-heading {
  margin: 4px 0 24px;
  color: var(--stock-ink);
  font-size: clamp(34px, 6vw, 52px);
  line-height: 1.08;
  text-align: center;
}

.stock-tabs.stock-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 18px;
  overflow: hidden;
  border: 1px solid rgba(36, 94, 58, 0.13);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.91);
  box-shadow: 0 14px 38px rgba(30, 65, 43, 0.08);
}

.stock-tabs .tab {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 76px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  border: 0;
  border-right: 1px solid #e5e9e6;
  border-radius: 0;
  padding: 12px 9px;
  color: #778197;
  background: transparent;
  box-shadow: none;
  font-size: 20px;
  font-weight: 850;
}

.stock-tabs .tab:last-child { border-right: 0; }
.stock-tabs .tab.active { color: var(--stock-green); background: linear-gradient(180deg, rgba(244, 251, 246, 0.98), #fff); }
.stock-tabs .tab.active::after {
  right: 12%;
  bottom: 0;
  left: 12%;
  height: 4px;
  background: var(--stock-green);
}

.stock-tab-icon {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.stock-panel.stock-panel {
  display: none;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.stock-panel.stock-panel.active { display: grid; }
.stock-overview { grid-column: 1 / -1; }

.stock-overview-card {
  padding: 25px 26px 22px;
  border: 1px solid rgba(36, 95, 59, 0.14);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 15px 38px rgba(29, 62, 41, 0.09);
  backdrop-filter: blur(10px);
}

.stock-overview-card > h2 {
  margin: 0 0 21px;
  color: var(--stock-ink);
  font-size: 24px;
  line-height: 1.15;
}

.stock-overview-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-overview-metrics.stock-overview-count-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.stock-overview-metric {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  min-width: 0;
  gap: 5px 13px;
  padding: 6px 22px;
  border-right: 1px solid #e3e8e4;
}

.stock-overview-metric:first-child { padding-left: 0; }
.stock-overview-metric:last-child { padding-right: 0; border-right: 0; }

.stock-overview-icon {
  display: grid;
  grid-row: 1 / span 2;
  width: 53px;
  height: 53px;
  place-items: center;
  border-radius: 17px;
  background: #eff7f0;
}

.stock-overview-icon img { width: 36px; height: 36px; object-fit: contain; }
.stock-overview-metric small { overflow: hidden; color: var(--stock-muted); font-size: 14px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.stock-overview-metric strong { color: var(--stock-ink); font-size: 36px; line-height: 1; }
.stock-overview-metric strong em { margin-left: 5px; color: #77839a; font-size: 13px; font-style: normal; font-weight: 750; }
.stock-tone-green strong { color: #14864d; }
.stock-tone-amber strong { color: #df8618; }
.stock-tone-blue strong { color: #3879e8; }
.stock-tone-pink strong { color: #eb3e7a; }
.stock-tone-muted strong { color: #6f788b; }

.stock-panel > .stock-list-toolbar.panel-head {
  display: block;
  min-width: 0;
  margin: 0;
}

.stock-search.stock-search {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  width: 100%;
  min-height: 60px;
  overflow: hidden;
  border: 1px solid #dce5de;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: none;
}

.stock-search > span {
  position: relative;
  height: 100%;
  padding: 0;
}

.stock-search > span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 18px;
  width: 16px;
  height: 16px;
  border: 3px solid #77839a;
  border-radius: 50%;
  transform: translateY(-58%);
}

.stock-search > span::after {
  content: "";
  position: absolute;
  top: calc(50% + 9px);
  left: 33px;
  width: 9px;
  height: 3px;
  border-radius: 999px;
  background: #77839a;
  transform: rotate(45deg);
  transform-origin: left center;
}

.stock-search .table-search {
  min-height: 58px;
  border: 0;
  padding: 0 16px 0 5px;
  color: var(--stock-ink);
  background: transparent;
  font-size: 17px;
}

.stock-panel .table-tools {
  display: flex;
  align-items: center;
  margin: 0;
}

.stock-panel .table-column-settings { position: relative; }
.stock-panel .table-column-settings summary {
  display: inline-flex;
  min-height: 60px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 22px;
  border: 1px solid #cfe0d3;
  border-radius: 20px;
  color: var(--stock-green);
  background: rgba(255, 255, 255, 0.93);
  font-size: 17px;
  font-weight: 850;
  white-space: nowrap;
}

.stock-panel .table-column-settings summary::before { color: var(--stock-green); }
.stock-legacy-table { display: none !important; }

.stock-card-list {
  display: grid;
  grid-column: 1 / -1;
  gap: 14px;
}

.stock-inventory-card {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  width: 100%;
  min-height: 152px;
  align-items: center;
  gap: 17px;
  overflow: hidden;
  border: 1px solid #d8e4da;
  border-radius: 26px;
  padding: 18px 22px;
  color: var(--stock-ink);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 13px 30px rgba(25, 68, 42, 0.09);
  text-align: left;
}

.stock-card-icon {
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  border-radius: 24px;
  background: #eff7eb;
}

.stock-card-icon img { width: 58px; height: 58px; object-fit: contain; }
.stock-inventory-eggs .stock-card-icon { background: #f0edff; }
.stock-card-body { display: grid; min-width: 0; gap: 13px; }
.stock-card-main { display: grid; grid-template-columns: minmax(0, 1.3fr) auto 24px; align-items: center; gap: 10px; }
.stock-card-title { display: grid; min-width: 0; gap: 8px; }
.stock-card-title b { overflow: hidden; font-size: 21px; font-weight: 900; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.stock-card-title > span { color: #7a8497; font-size: 15px; }
.stock-card-title strong { margin: 0 4px 0 8px; color: var(--stock-ink); font-size: 31px; line-height: 1; }
.stock-card-title em { font-size: 13px; font-style: normal; }
.stock-card-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.stock-card-pill { padding: 7px 11px; border: 1px solid #dce3df; border-radius: 999px; color: #6f788a; background: #f7f8f8; font-size: 13px; font-style: normal; font-weight: 850; white-space: nowrap; }
.stock-card-pill-green { color: #178148; border-color: #cde7d2; background: #f0f8f1; }
.stock-card-pill-amber { color: #dc7b0b; border-color: #f2d6a0; background: #fff9ed; }
.stock-card-pill-blue { color: #326fea; border-color: #d9e4ff; background: #f1f5ff; }
.stock-card-pill-pink { color: #e83e78; border-color: #f8d7e2; background: #fff1f5; }
.stock-card-caret { color: #66758a; font-size: 38px; font-weight: 450; line-height: 1; }
.stock-card-foot { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 36px; overflow: hidden; border: 1px solid #edf0ed; border-radius: 13px; color: #778199; background: #fbfcfb; font-size: 13px; }
.stock-card-foot > span { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 8px 10px; }
.stock-card-foot > span + span { border-left: 1px solid #e8ece9; }
.stock-card-foot b { color: #68758d; font-size: 15px; }
.stock-card-empty { grid-column: 1 / -1; padding: 52px 20px; border-radius: 22px; color: #788296; background: rgba(255,255,255,.9); text-align: center; }

/* v112 库存详情 */
.stock-species-detail-view.stock-species-detail-view {
  width: min(100%, 900px);
  max-width: 900px;
  margin-inline: auto;
  padding-bottom: 110px;
}

.stock-species-detail-view > .stock-detail-back {
  min-height: 50px;
  margin: 0 0 10px;
  padding: 0 20px;
  color: #5f51f8;
  border-color: rgba(95, 81, 248, .12);
  background: rgba(255,255,255,.95);
}

.stock-detail-page-heading { margin: 0 0 20px; text-align: center; }
.stock-detail-page-heading p { margin: 0 0 5px; color: #75829a; font-size: 16px; font-weight: 800; }
.stock-detail-page-heading h1 { margin: 0; color: #0f1d38; font-size: clamp(34px, 6vw, 48px); line-height: 1.08; }

.stock-detail-summary-card,
.stock-detail-total-card,
.stock-detail-journal-card {
  border: 1px solid rgba(34, 95, 57, .14);
  border-radius: 28px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 15px 38px rgba(29, 65, 41, .09);
}

.stock-detail-summary-card { padding: 24px 26px; }
.stock-detail-summary-card > h2,
.stock-detail-total-card > h2 { margin: 0 0 20px; color: #101e37; font-size: 24px; }
.stock-detail-summary-layout { display: grid; grid-template-columns: 118px minmax(0, 1fr); align-items: center; gap: 22px; }
.stock-detail-summary-icon { display: grid; width: 112px; height: 112px; place-items: center; border-radius: 30px; background: linear-gradient(145deg, #edf7ef, #f7fbf8); }
.stock-detail-summary-icon img { width: 82px; height: 82px; object-fit: contain; }
.stock-detail-summary-card.stock-detail-eggs .stock-detail-summary-icon { background: linear-gradient(145deg, #f1eeff, #faf9ff); }
.stock-detail-summary-card .stock-detail-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; }
#stockSpeciesDetailView .stock-detail-metrics.stock-detail-metrics-count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stock-detail-summary-card .stock-detail-metric { min-height: 96px; grid-template-columns: 1fr; grid-template-rows: auto auto; justify-items: center; gap: 7px; padding: 10px 14px; border: 0; border-right: 1px solid #e3e8e4; border-radius: 0; background: transparent; text-align: center; }
.stock-detail-summary-card .stock-detail-metric:last-child { border-right: 0; }
.stock-detail-summary-card .stock-detail-metric-icon { display: none; }
.stock-detail-summary-card .stock-detail-metric small { font-size: 14px; }
.stock-detail-summary-card .stock-detail-metric strong { font-size: 35px; }

.stock-detail-delete-row { display: flex; align-items: center; gap: 22px; padding: 17px 20px 0; }
.stock-detail-delete { min-width: 190px; margin: 0; color: #e03030; border-color: #ef3c3c; background: rgba(255,255,255,.9); }
.stock-detail-delete-row > span { color: #778199; font-size: 15px; font-weight: 700; }

.stock-detail-total-card { margin-top: 18px; padding: 24px 26px; }
.stock-detail-total-card .stock-detail-totals { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border: 0; border-radius: 0; background: transparent; }
.stock-detail-total-card .stock-detail-totals > article { display: grid; grid-template-columns: 38px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 6px 10px; padding: 6px 20px; border-right: 1px solid #e2e8e4; }
.stock-detail-total-card .stock-detail-totals > article:first-child { padding-left: 0; }
.stock-detail-total-card .stock-detail-totals > article:last-child { padding-right: 0; border-right: 0; }
.stock-detail-total-card .stock-detail-totals i { grid-row: 1 / span 2; color: #14834b; font-size: 30px; font-style: normal; text-align: center; }
.stock-detail-total-card .stock-detail-totals span { color: #768199; font-size: 14px; }
.stock-detail-total-card .stock-detail-totals strong { margin: 0; color: #103b24; font-size: 29px; }
.stock-detail-total-card .stock-detail-totals small { font-size: 12px; }

.stock-detail-journal-card { padding: 24px 26px; }
.stock-detail-year-label { display: none; }
.stock-detail-month-list { border-radius: 17px; }
.stock-detail-record-row { grid-template-columns: 84px minmax(0, 1fr) auto auto 20px; }
.stock-detail-record-main { display: grid; min-width: 0; gap: 3px; }
.stock-detail-record-main .stock-detail-action { padding: 0; color: #16804d; background: transparent; font-size: 15px; }
.stock-detail-record-main small { overflow: hidden; color: #7b8597; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.stock-detail-record-badge { padding: 5px 9px; border: 1px solid #d8e5da; border-radius: 9px; color: #17814b; background: #f0f8f1; font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; }
.stock-detail-record-badge.stock-detail-action-danger { color: #df4a42; border-color: #f1d8d5; background: #fff2f1; }
.stock-detail-record-quantity { font-size: 18px; white-space: nowrap; }
.stock-detail-record-quantity.positive { color: #128443; }
.stock-detail-record-quantity.negative { color: #e35816; }
.stock-detail-record-quantity small { margin-left: 3px; font-size: 12px; }
.stock-detail-record-caret { color: #17304c; font-size: 28px; }

@media (max-width: 700px) {
  .stock-view.stock-view,
  .stock-species-detail-view.stock-species-detail-view { padding-inline: 1px; }
  .stock-view > .back-button { min-height: 43px; margin-left: 3px; padding: 0 14px; font-size: 14px; }
  .stock-page-heading { margin: 2px 0 14px; font-size: 29px; }
  .stock-tabs.stock-tabs { margin-bottom: 12px; border-radius: 17px; }
  .stock-tabs .tab { min-height: 58px; gap: 5px; padding: 8px 3px; font-size: 13px; }
  .stock-tab-icon { width: 23px; height: 23px; }
  .stock-panel.stock-panel { gap: 10px 8px; }
  .stock-overview-card { padding: 17px 14px 15px; border-radius: 20px; }
  .stock-overview-card > h2 { margin-bottom: 15px; font-size: 18px; }
  .stock-overview-metric { gap: 4px 7px; padding: 2px 8px; }
  .stock-overview-icon { width: 32px; height: 32px; border-radius: 11px; }
  .stock-overview-icon img { width: 22px; height: 22px; }
  .stock-overview-metric small { font-size: 9px; }
  .stock-overview-metric strong { font-size: 24px; }
  .stock-overview-metric strong em { margin-left: 2px; font-size: 9px; }
  .stock-overview-count-4 .stock-overview-metric { display: grid; grid-template-columns: 1fr; justify-items: center; gap: 4px; padding-inline: 5px; text-align: center; }
  .stock-overview-count-4 .stock-overview-icon { display: none; }
  .stock-search.stock-search { grid-template-columns: 42px minmax(0,1fr); min-height: 48px; border-radius: 15px; }
  .stock-search > span::before { left: 13px; width: 14px; height: 14px; border-width: 2px; }
  .stock-search > span::after { top: calc(50% + 7px); left: 26px; width: 7px; height: 2px; }
  .stock-search .table-search { min-height: 46px; padding-left: 0; font-size: 13px; }
  .stock-panel .table-column-settings summary { min-height: 48px; padding: 0 14px; border-radius: 15px; font-size: 13px; }
  .stock-panel .table-column-settings summary::before { margin-right: 5px; font-size: 15px; }
  .stock-card-list { gap: 9px; }
  .stock-inventory-card { grid-template-columns: 48px minmax(0,1fr); min-height: 108px; gap: 10px; padding: 12px 12px; border-radius: 18px; }
  .stock-card-icon { width: 48px; height: 48px; border-radius: 16px; }
  .stock-card-icon img { width: 37px; height: 37px; }
  .stock-card-body { gap: 8px; }
  .stock-card-main { grid-template-columns: minmax(0, 1.25fr) auto 14px; gap: 5px; }
  .stock-card-title { gap: 4px; }
  .stock-card-title b { font-size: 15px; }
  .stock-card-title > span { font-size: 11px; white-space: nowrap; }
  .stock-card-title strong { margin: 0 2px 0 4px; font-size: 23px; }
  .stock-card-title em { font-size: 9px; }
  .stock-card-pills { gap: 4px; }
  .stock-card-pill { padding: 4px 6px; font-size: 9px; }
  .stock-card-caret { font-size: 25px; }
  .stock-card-foot { min-height: 29px; border-radius: 9px; font-size: 9px; }
  .stock-card-foot > span { gap: 3px; padding: 6px 4px; }
  .stock-card-foot b { font-size: 10px; }

  .stock-species-detail-view > .stock-detail-back { min-height: 43px; margin-left: 3px; padding: 0 14px; font-size: 14px; }
  .stock-detail-page-heading { margin-bottom: 14px; }
  .stock-detail-page-heading p { font-size: 12px; }
  .stock-detail-page-heading h1 { font-size: 28px; }
  .stock-detail-summary-card,
  .stock-detail-total-card,
  .stock-detail-journal-card { border-radius: 20px; }
  .stock-detail-summary-card { padding: 16px 13px; }
  .stock-detail-summary-card > h2,
  .stock-detail-total-card > h2 { margin-bottom: 14px; font-size: 18px; }
  .stock-detail-summary-layout { grid-template-columns: 63px minmax(0,1fr); gap: 8px; }
  .stock-detail-summary-icon { width: 60px; height: 60px; border-radius: 18px; }
  .stock-detail-summary-icon img { width: 45px; height: 45px; }
  .stock-detail-summary-card .stock-detail-metric { min-height: 62px; gap: 4px; padding: 5px 7px; }
  .stock-detail-summary-card .stock-detail-metric small { font-size: 9px; }
  .stock-detail-summary-card .stock-detail-metric strong { font-size: 22px; }
  .stock-detail-delete-row { gap: 11px; padding: 11px 7px 0; }
  .stock-detail-delete { min-width: 126px; min-height: 40px; padding: 0 10px; font-size: 11px; }
  .stock-detail-delete-row > span { font-size: 9px; }
  .stock-detail-total-card { margin-top: 12px; padding: 16px 13px; }
  .stock-detail-total-card .stock-detail-totals > article { grid-template-columns: 23px minmax(0,1fr); gap: 3px 5px; padding: 3px 8px; }
  .stock-detail-total-card .stock-detail-totals i { font-size: 19px; }
  .stock-detail-total-card .stock-detail-totals span { font-size: 9px; }
  .stock-detail-total-card .stock-detail-totals strong { font-size: 20px; }
  .stock-detail-total-card .stock-detail-totals small { font-size: 8px; }
  .stock-detail-journal-card { margin-top: 12px; padding: 15px 12px; }
  .stock-detail-journal-head { margin-bottom: 11px; }
  .stock-detail-record-row { grid-template-columns: 52px minmax(0,1fr) auto auto 13px; min-height: 57px; gap: 5px; padding: 7px 9px; }
  .stock-detail-record-row time { font-size: 10px; }
  .stock-detail-record-main .stock-detail-action { font-size: 11px; }
  .stock-detail-record-main small { font-size: 8px; }
  .stock-detail-record-badge { padding: 4px 5px; border-radius: 7px; font-size: 8px; }
  .stock-detail-record-quantity { font-size: 13px; }
  .stock-detail-record-quantity small { font-size: 8px; }
  .stock-detail-record-caret { font-size: 20px; }
}

/* v111 库存品种详情：三类统一卡片与年月折叠日记 */
.stock-species-cell {
  width: 100%;
  border: 0;
  padding: 0;
  text-align: left;
  background: transparent;
  cursor: pointer;
}

.stock-species-cell > span {
  margin-left: auto;
  color: #14814d;
  font-size: 28px;
  line-height: 1;
}

.stock-species-detail-view {
  width: min(100%, 920px);
  margin-inline: auto;
  padding-bottom: 110px;
}

.stock-species-detail-view > .stock-detail-back {
  min-height: 48px;
  margin-bottom: 16px;
  padding: 0 20px;
  border: 1px solid rgba(30, 103, 64, 0.22);
  border-radius: 999px;
  color: #17693f;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 28px rgba(24, 65, 43, 0.09);
  font-size: 17px;
  font-weight: 800;
}

.stock-species-detail-view > .stock-detail-back::before {
  content: "‹";
  margin-right: 7px;
  font-size: 27px;
  font-weight: 500;
  line-height: 0;
  vertical-align: -2px;
}

.stock-detail-hero,
.stock-detail-journal-card {
  border: 1px solid rgba(36, 103, 66, 0.16);
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 18px 48px rgba(35, 72, 48, 0.1);
  backdrop-filter: blur(12px);
}

.stock-detail-hero {
  position: relative;
  overflow: hidden;
  padding: 30px;
}

.stock-detail-hero::before {
  content: "";
  position: absolute;
  top: -80px;
  right: -70px;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(89, 169, 112, 0.15), transparent 67%);
  pointer-events: none;
}

.stock-detail-eggs::before { background: radial-gradient(circle, rgba(255, 168, 57, 0.14), transparent 67%); }
.stock-detail-hatchlings::before { background: radial-gradient(circle, rgba(61, 174, 115, 0.16), transparent 67%); }
.stock-detail-breeders::before { background: radial-gradient(circle, rgba(100, 89, 247, 0.13), transparent 67%); }

.stock-detail-heading {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e5ebe6;
}

.stock-detail-hero-icon {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border-radius: 20px;
  color: #187046;
  background: #edf8f0;
  font-size: 34px;
  font-weight: 800;
}

.stock-detail-eggs .stock-detail-hero-icon { color: #df8714; background: #fff5e7; }
.stock-detail-breeders .stock-detail-hero-icon { color: #6555ef; background: #f1eeff; }

.stock-detail-heading p {
  margin: 0 0 4px;
  color: #758578;
  font-size: 15px;
  font-weight: 750;
}

.stock-detail-heading h1 {
  margin: 0;
  overflow: hidden;
  color: #102039;
  font-size: clamp(28px, 5vw, 42px);
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-detail-species-chip {
  position: relative;
  padding: 8px 14px;
  border-radius: 999px;
  color: #16814d;
  background: #edf8f1;
  font-size: 14px;
  font-weight: 850;
}

.stock-detail-metrics {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
}

.stock-detail-metric {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  min-height: 106px;
  gap: 5px 11px;
  padding: 18px;
  border: 1px solid #e2e9e4;
  border-radius: 20px;
  background: rgba(249, 252, 250, 0.92);
}

.stock-detail-metric-icon {
  display: grid;
  grid-row: 1 / span 2;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  color: #6657f5;
  background: #f0edff;
  font-size: 20px;
}

.stock-detail-metric small {
  color: #718078;
  font-size: 13px;
  font-weight: 750;
}

.stock-detail-metric strong {
  color: #12213a;
  font-size: 27px;
  line-height: 1;
}

.stock-detail-tone-green .stock-detail-metric-icon { color: #198653; background: #eaf7ef; }
.stock-detail-tone-green strong { color: #16834f; }
.stock-detail-tone-amber .stock-detail-metric-icon { color: #df8d17; background: #fff4df; }
.stock-detail-tone-blue .stock-detail-metric-icon { color: #2885d7; background: #eaf5ff; }
.stock-detail-tone-pink .stock-detail-metric-icon { color: #d84b93; background: #fdebf4; }

.stock-detail-totals {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid #e3e9e5;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.84);
}

.stock-detail-totals > div {
  min-width: 0;
  padding: 16px 18px;
  border-right: 1px solid #e3e9e5;
}

.stock-detail-totals > div:last-child { border-right: 0; }
.stock-detail-totals span { display: block; color: #738078; font-size: 13px; font-weight: 750; }
.stock-detail-totals strong { display: block; margin-top: 5px; color: #14223a; font-size: 23px; }
.stock-detail-totals small { margin-left: 3px; color: #7a8798; font-size: 12px; }

.stock-detail-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  gap: 8px;
  margin-top: 18px;
  padding: 0 16px;
  border: 1px solid rgba(218, 56, 65, 0.24);
  border-radius: 13px;
  color: #d4323e;
  background: #fff2f3;
  font-size: 14px;
  font-weight: 850;
}

.stock-detail-delete span { font-size: 18px; }

.stock-detail-journal-card {
  margin-top: 18px;
  padding: 28px;
}

.stock-detail-journal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.stock-detail-journal-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.stock-detail-journal-head > div > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  color: #6758f5;
  background: #f0edff;
  font-size: 21px;
}

.stock-detail-journal-head h2 { margin: 0; color: #122039; font-size: 25px; }

.stock-detail-journal-head label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #758077;
  font-size: 13px;
  font-weight: 750;
}

.stock-detail-journal-head select {
  min-height: 42px;
  border: 1px solid #dce5de;
  border-radius: 12px;
  padding: 0 34px 0 13px;
  color: #183026;
  background-color: #f9fcfa;
  font-size: 14px;
  font-weight: 800;
}

.stock-detail-year-label {
  padding: 12px 16px;
  border: 1px solid #e0e5f4;
  border-bottom: 0;
  border-radius: 17px 17px 0 0;
  color: #5f56c9;
  background: linear-gradient(90deg, #f4f1ff, #fbfaff);
  font-size: 17px;
  font-weight: 850;
}

.stock-detail-month-list {
  overflow: hidden;
  border: 1px solid #e0e5e2;
  border-radius: 0 0 17px 17px;
}

.stock-detail-month + .stock-detail-month { border-top: 1px solid #e2e8e3; }

.stock-detail-month-button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  width: 100%;
  min-height: 58px;
  gap: 10px;
  border: 0;
  padding: 0 18px;
  color: #18283e;
  background: #f8fbf9;
  text-align: left;
}

.stock-detail-month-button span { font-size: 17px; font-weight: 850; }
.stock-detail-month-button small { color: #7a8798; font-size: 13px; font-weight: 750; }
.stock-detail-month-button i { color: #17814c; font-size: 21px; font-style: normal; transition: transform 180ms ease; }
.stock-detail-month.expanded .stock-detail-month-button i { transform: rotate(180deg); }

.stock-detail-month-records { display: none; }
.stock-detail-month.expanded .stock-detail-month-records { display: block; }

.stock-detail-record-row {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) auto;
  align-items: center;
  min-height: 62px;
  gap: 10px;
  padding: 10px 18px;
  border-top: 1px solid #e6ebe7;
  color: #17253c;
}

.stock-detail-record-row time { font-size: 14px; font-weight: 800; white-space: nowrap; }
.stock-detail-record-row strong { font-size: 16px; white-space: nowrap; }

.stock-detail-action {
  width: fit-content;
  max-width: 100%;
  overflow: hidden;
  padding: 5px 10px;
  border-radius: 999px;
  color: #5f6b7a;
  background: #f1f3f5;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-detail-action-success { color: #16804d; background: #eaf7ef; }
.stock-detail-action-danger { color: #d63b47; background: #ffeff1; }

.stock-detail-empty {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 42px 20px;
  color: #7f8995;
  text-align: center;
}

.stock-detail-empty b { color: #29364a; font-size: 17px; }
.stock-detail-empty span { font-size: 13px; }

@media (max-width: 700px) {
  .stock-species-detail-view { padding-inline: 2px; }
  .stock-species-detail-view > .stock-detail-back { min-height: 44px; margin: 0 0 10px 4px; padding: 0 14px; font-size: 14px; }
  .stock-detail-hero,
  .stock-detail-journal-card { border-radius: 22px; }
  .stock-detail-hero { padding: 17px 14px 15px; }
  .stock-detail-heading { grid-template-columns: auto minmax(0, 1fr) auto; gap: 9px; padding-bottom: 15px; }
  .stock-detail-hero-icon { width: 43px; height: 43px; border-radius: 14px; font-size: 24px; }
  .stock-detail-heading p { margin-bottom: 2px; font-size: 11px; }
  .stock-detail-heading h1 { font-size: 22px; }
  .stock-detail-species-chip { max-width: 82px; overflow: hidden; padding: 6px 9px; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .stock-detail-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
  .stock-detail-metric { min-height: 78px; gap: 2px 8px; padding: 11px; border-radius: 15px; }
  .stock-detail-metric-icon { width: 32px; height: 32px; border-radius: 11px; font-size: 16px; }
  .stock-detail-metric small { font-size: 10px; }
  .stock-detail-metric strong { font-size: 22px; }
  .stock-detail-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; border-radius: 15px; }
  .stock-detail-totals > div { padding: 10px 12px; border-bottom: 1px solid #e3e9e5; }
  .stock-detail-totals > div:nth-child(2) { border-right: 0; }
  .stock-detail-totals > div:nth-child(n + 3) { border-bottom: 0; }
  .stock-detail-totals span { font-size: 10px; }
  .stock-detail-totals strong { font-size: 19px; }
  .stock-detail-delete { min-height: 44px; margin-top: 12px; padding: 0 15px; border-radius: 12px; font-size: 12px; }
  .stock-detail-journal-card { margin-top: 12px; padding: 15px 12px 13px; }
  .stock-detail-journal-head { gap: 8px; margin-bottom: 12px; }
  .stock-detail-journal-head > div { gap: 7px; }
  .stock-detail-journal-head > div > span { width: 34px; height: 34px; border-radius: 11px; font-size: 17px; }
  .stock-detail-journal-head h2 { font-size: 18px; white-space: nowrap; }
  .stock-detail-journal-head label > span { display: none; }
  .stock-detail-journal-head select { min-height: 44px; padding-left: 10px; font-size: 12px; }
  .stock-detail-year-label { padding: 10px 13px; border-radius: 14px 14px 0 0; font-size: 14px; }
  .stock-detail-month-list { border-radius: 0 0 14px 14px; }
  .stock-detail-month-button { min-height: 49px; padding: 0 13px; }
  .stock-detail-month-button span { font-size: 14px; }
  .stock-detail-month-button small { font-size: 11px; }
  .stock-detail-record-row { grid-template-columns: 63px minmax(0, 1fr) auto; min-height: 54px; gap: 7px; padding: 8px 12px; }
  .stock-detail-record-row time { font-size: 11px; }
  .stock-detail-record-row strong { font-size: 13px; }
  .stock-detail-action { padding: 4px 7px; font-size: 10px; }
}

/* 龟池档案详情 v70 final override：确保旧版规则不再覆盖参考图布局 */
.pool-detail-view.pool-detail-view {
  width: min(100%, 900px);
  margin: 0 auto;
  --pool-ink: #0d1d3a;
  --pool-muted: #6f7890;
  --pool-line: #e1e7e3;
  --pool-purple: #5d4cff;
  --pool-green: #229d62;
}

.pool-detail-view .pool-detail-back {
  display: inline-flex;
  width: auto;
  min-height: 54px;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0 22px;
  border: 1px solid rgba(224, 225, 236, 0.9);
  border-radius: 999px;
  color: var(--pool-purple);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 28px rgba(48, 56, 76, 0.1);
  font-size: 17px;
  font-weight: 900;
}

.pool-detail-view .pool-detail-back span {
  margin: -2px 0 0;
  font-size: 31px;
  font-weight: 400;
  line-height: 1;
}

.pool-detail-view .pool-detail-panel {
  display: grid;
  gap: 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.pool-detail-view .pool-detail-heading {
  display: grid;
  justify-items: stretch;
  gap: 16px;
  margin: 0;
  padding: 26px 30px 30px;
  border: 1px solid rgba(224, 229, 225, 0.96);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 15px 38px rgba(49, 65, 52, 0.08);
  text-align: left;
}

.pool-detail-view .pool-detail-heading .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #68738a;
  font-size: 17px;
  font-weight: 800;
}

.pool-detail-view .pool-detail-heading .eyebrow img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.pool-detail-view .pool-detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(220px, 0.88fr) minmax(0, 1.45fr);
  align-items: center;
  gap: 38px;
}

.pool-detail-view .pool-detail-hero-photo .archive-photo-shell {
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 26px;
  background: transparent;
}

.pool-detail-view .pool-detail-hero-photo .archive-photo-carousel,
.pool-detail-view .pool-detail-hero-photo .archive-photo-slide {
  border-radius: 26px;
}

.pool-detail-view .pool-detail-hero-photo .archive-photo-slide {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  background: linear-gradient(145deg, #eff7f2, #f8fbf9);
}

.pool-detail-view .pool-detail-hero-photo .turtle-photo-placeholder {
  display: grid;
  height: 100%;
  place-items: center;
  align-content: center;
  gap: 12px;
  color: #74898a;
  font-size: 20px;
  font-weight: 900;
}

.pool-detail-view .pool-detail-hero-photo .pool-camera-icon {
  width: 62px;
  height: 62px;
  object-fit: contain;
}

.pool-detail-view .pool-detail-hero-photo .photo-corner-delete,
.pool-detail-view .pool-detail-hero-photo .archive-photo-kind {
  display: none;
}

.pool-detail-view .pool-detail-hero-copy {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 18px 20px;
}

.pool-detail-view .pool-detail-heading .pool-detail-hero-copy h2 {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--pool-ink);
  font-size: clamp(34px, 5vw, 50px);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.pool-detail-view .pool-detail-hero-copy > p {
  margin: 0;
  color: var(--pool-ink);
  font-size: 20px;
  font-weight: 800;
}

.pool-detail-view .pool-detail-edit {
  display: inline-flex;
  width: auto;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 16px;
  border: 1.5px solid var(--pool-purple);
  border-radius: 13px;
  color: var(--pool-purple);
  background: #fff;
  box-shadow: none;
}

.pool-detail-view .pool-detail-edit img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.pool-detail-view .pool-detail-edit strong {
  font-size: 16px;
  white-space: nowrap;
}

.pool-detail-view #turtlePoolDetail {
  display: grid;
  gap: 16px;
}

.pool-detail-view .pool-overview-card,
.pool-detail-view #turtlePoolDetail .pool-egg-history {
  margin: 0;
  padding: 22px;
  border: 1px solid rgba(224, 229, 225, 0.96);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 15px 38px rgba(49, 65, 52, 0.08);
}

.pool-detail-view #turtlePoolDetail .pool-egg-history {
  display: grid;
  gap: 15px;
}

.pool-detail-view .pool-egg-history .profile-history-head > strong {
  gap: 10px;
  color: var(--pool-ink);
  font-size: 23px;
}

.pool-detail-view .pool-egg-history .profile-history-head > strong i {
  color: inherit;
  background: #f0edff;
}

.pool-detail-view .pool-egg-history .profile-history-head > strong i img {
  width: 24px;
  height: 24px;
}

.pool-detail-view .pool-egg-history .profile-history-head > span {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #707991;
  font-size: 18px;
}

.pool-detail-view .pool-egg-history .profile-history-head > span img {
  width: 19px;
  height: 19px;
}

.pool-detail-view .pool-egg-list {
  border-radius: 18px;
}

.pool-detail-view .pool-egg-month > h3 {
  margin: 0;
  padding: 14px 20px;
  color: var(--pool-ink);
  background: linear-gradient(180deg, #f5f2ff, #faf9ff);
  font-size: 18px;
}

.pool-detail-view .pool-egg-entry summary {
  grid-template-columns: 120px minmax(110px, 1fr) 92px 24px;
  min-height: 72px;
  gap: 14px;
  padding: 0 20px;
}

.pool-detail-view .pool-egg-entry summary > img {
  width: 19px;
  height: 19px;
  transition: transform 0.2s ease;
}

.pool-detail-view .pool-egg-entry[open] summary > img {
  transform: rotate(90deg);
}

@media (max-width: 720px) {
  .pool-detail-view.pool-detail-view {
    width: 100%;
  }

  .pool-detail-view .pool-detail-back {
    min-height: 48px;
    margin-bottom: 14px;
    padding: 0 16px;
    font-size: 14px;
  }

  .pool-detail-view .pool-detail-back span {
    font-size: 26px;
  }

  .pool-detail-view .pool-detail-panel {
    gap: 14px;
    padding: 0;
    border-radius: 0;
  }

  .pool-detail-view .pool-detail-heading {
    gap: 13px;
    padding: 17px 15px 16px;
    border-radius: 22px;
  }

  .pool-detail-view .pool-detail-heading .eyebrow {
    gap: 8px;
    font-size: 14px;
  }

  .pool-detail-view .pool-detail-heading .eyebrow img {
    width: 20px;
    height: 20px;
  }

  .pool-detail-view .pool-detail-hero-grid {
    grid-template-columns: minmax(118px, 0.88fr) minmax(0, 1.4fr);
    gap: 16px;
  }

  .pool-detail-view .pool-detail-hero-photo .archive-photo-shell,
  .pool-detail-view .pool-detail-hero-photo .archive-photo-carousel,
  .pool-detail-view .pool-detail-hero-photo .archive-photo-slide {
    border-radius: 18px;
  }

  .pool-detail-view .pool-detail-hero-photo .turtle-photo-placeholder {
    gap: 7px;
    font-size: 14px;
  }

  .pool-detail-view .pool-detail-hero-photo .pool-camera-icon {
    width: 44px;
    height: 44px;
  }

  .pool-detail-view .pool-detail-hero-copy {
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    gap: 12px;
  }

  .pool-detail-view .pool-detail-heading .pool-detail-hero-copy h2 {
    grid-column: 1;
    font-size: 28px;
  }

  .pool-detail-view .pool-detail-hero-copy > p {
    font-size: 15px;
  }

  .pool-detail-view .pool-detail-edit {
    justify-self: start;
    min-height: 36px;
    gap: 6px;
    padding: 0 11px;
    border-radius: 10px;
  }

  .pool-detail-view .pool-detail-edit img {
    width: 19px;
    height: 19px;
  }

  .pool-detail-view .pool-detail-edit strong {
    font-size: 12px;
  }

  .pool-detail-view .pool-overview-card,
  .pool-detail-view #turtlePoolDetail .pool-egg-history {
    padding: 11px;
    border-radius: 22px;
  }

  .pool-detail-view #turtlePoolDetail .pool-egg-history {
    gap: 11px;
    padding-bottom: 12px;
  }

  .pool-detail-view .pool-egg-history .profile-history-head > strong {
    gap: 8px;
    font-size: 17px;
  }

  .pool-detail-view .pool-egg-history .profile-history-head > strong i {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .pool-detail-view .pool-egg-history .profile-history-head > strong i img {
    width: 20px;
    height: 20px;
  }

  .pool-detail-view .pool-egg-history .profile-history-head > span {
    gap: 5px;
    font-size: 13px;
  }

  .pool-detail-view .pool-egg-history .profile-history-head > span img {
    width: 15px;
    height: 15px;
  }

  .pool-detail-view .pool-egg-month > h3 {
    padding: 11px 12px;
    font-size: 14px;
  }

  .pool-detail-view .pool-egg-entry summary {
    grid-template-columns: 74px minmax(82px, 1fr) 50px 16px;
    gap: 6px;
    min-height: 58px;
    padding: 0 10px;
  }

  .pool-detail-view .pool-egg-entry summary time {
    font-size: 13px;
  }

  .pool-detail-view .pool-egg-entry summary > span {
    padding: 5px 7px;
    font-size: 10.5px;
  }

  .pool-detail-view .pool-egg-entry summary > strong {
    font-size: 12px;
  }

  .pool-detail-view .pool-egg-entry summary > img {
    width: 15px;
    height: 15px;
  }

  .pool-detail-view .pool-egg-entry > div {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0 10px 12px;
  }
}

/* 龟池档案详情 v70：按手机端档案卡样式重构 */
.pool-detail-view {
  width: min(100%, 900px);
  --pool-ink: #0d1d3a;
  --pool-muted: #6f7890;
  --pool-line: #e1e7e3;
  --pool-purple: #5d4cff;
  --pool-green: #229d62;
}

.pool-detail-back {
  min-height: 54px;
  margin-bottom: 16px;
  padding: 0 22px;
  border: 1px solid rgba(224, 225, 236, 0.9);
  border-radius: 999px;
  color: var(--pool-purple);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 28px rgba(48, 56, 76, 0.1);
  font-size: 17px;
  font-weight: 900;
}

.pool-detail-panel {
  display: grid;
  gap: 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.pool-detail-heading {
  display: grid;
  justify-items: stretch;
  gap: 16px;
  margin: 0;
  padding: 26px 30px 30px;
  border: 1px solid rgba(224, 229, 225, 0.96);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 15px 38px rgba(49, 65, 52, 0.08);
  text-align: left;
}

.pool-detail-heading .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #68738a;
  font-size: 17px;
  font-weight: 800;
}

.pool-detail-heading .eyebrow img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.pool-detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(220px, 0.88fr) minmax(0, 1.45fr);
  align-items: center;
  gap: 38px;
}

.pool-detail-hero-photo {
  min-width: 0;
}

.pool-detail-hero-photo .archive-photo-shell {
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 26px;
  background: transparent;
}

.pool-detail-hero-photo .archive-photo-carousel {
  border-radius: 26px;
}

.pool-detail-hero-photo .archive-photo-slide {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  border-radius: 26px;
  background: linear-gradient(145deg, #eff7f2, #f8fbf9);
}

.pool-detail-hero-photo .turtle-photo-placeholder {
  display: grid;
  height: 100%;
  place-items: center;
  align-content: center;
  gap: 12px;
  color: #74898a;
  font-size: 20px;
  font-weight: 900;
}

.pool-detail-hero-photo .pool-camera-icon {
  width: 62px;
  height: 62px;
  object-fit: contain;
}

.pool-detail-hero-photo .photo-corner-delete,
.pool-detail-hero-photo .archive-photo-kind {
  display: none;
}

.pool-detail-hero-copy {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 18px 20px;
}

.pool-detail-heading .pool-detail-hero-copy h2 {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--pool-ink);
  font-size: clamp(34px, 5vw, 50px);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.pool-detail-hero-copy > p {
  margin: 0;
  color: var(--pool-ink);
  font-size: 20px;
  font-weight: 800;
}

.pool-detail-hero-copy > p strong {
  font-weight: 900;
}

.pool-detail-edit {
  display: inline-flex;
  width: auto;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 16px;
  border: 1.5px solid var(--pool-purple);
  border-radius: 13px;
  color: var(--pool-purple);
  background: #fff;
  box-shadow: none;
}

.pool-detail-edit img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.pool-detail-edit strong {
  font-size: 16px;
  white-space: nowrap;
}

#turtlePoolDetail {
  display: grid;
  gap: 16px;
}

.pool-overview-card,
#turtlePoolDetail .pool-egg-history {
  margin: 0;
  padding: 22px;
  border: 1px solid rgba(224, 229, 225, 0.96);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 15px 38px rgba(49, 65, 52, 0.08);
}

.pool-overview-card {
  display: grid;
  gap: 16px;
}

.pool-core-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--pool-line);
  border-radius: 18px;
}

.pool-metric {
  display: grid;
  min-width: 0;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 110px;
  padding: 16px 18px;
  background: rgba(255, 255, 255, 0.78);
}

.pool-metric:not(:nth-child(3n + 1)) {
  border-left: 1px solid var(--pool-line);
}

.pool-metric:nth-child(n + 4) {
  border-top: 1px solid var(--pool-line);
}

.pool-metric > i {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 16px;
  background: #eef7f2;
}

.pool-metric.violet > i {
  background: #f1edff;
}

.pool-metric.amber > i {
  background: #fff4d9;
}

.pool-metric.blue > i {
  background: #eaf6ff;
}

.pool-metric.green > i {
  background: #eaf8f0;
}

.pool-metric > i img {
  width: 27px;
  height: 27px;
  object-fit: contain;
}

.pool-metric > span {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.pool-metric b {
  color: #68738a;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
}

.pool-metric strong {
  color: var(--pool-ink);
  font-size: 31px;
  font-weight: 900;
  line-height: 1;
}

.pool-metric strong.positive {
  color: var(--pool-green);
}

.pool-secondary-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--pool-line);
  border-radius: 18px;
}

.pool-compact-metric {
  display: grid;
  min-width: 0;
  grid-template-columns: 30px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 8px 10px;
  min-height: 96px;
  padding: 14px 16px;
}

.pool-compact-metric + .pool-compact-metric {
  border-left: 1px solid var(--pool-line);
}

.pool-compact-metric i {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  width: 28px;
  height: 28px;
  place-items: center;
}

.pool-compact-metric i img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.pool-compact-metric b {
  grid-column: 2;
  grid-row: 1;
  color: #68738a;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
}

.pool-compact-metric strong {
  grid-column: 1 / -1;
  grid-row: 2;
  color: var(--pool-ink);
  font-size: 20px;
  font-weight: 900;
  text-align: center;
  overflow-wrap: anywhere;
}

#turtlePoolDetail .pool-egg-history {
  display: grid;
  gap: 15px;
}

#turtlePoolDetail .pool-egg-history .profile-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
}

.pool-egg-history .profile-history-head > strong {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--pool-ink);
  font-size: 23px;
  font-weight: 900;
}

.pool-egg-history .profile-history-head > strong i {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  background: #f0edff;
}

.pool-egg-history .profile-history-head > strong i img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.pool-egg-history .profile-history-head > span {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #707991;
  font-size: 18px;
  font-weight: 900;
}

.pool-egg-history .profile-history-head > span img {
  width: 19px;
  height: 19px;
}

.pool-egg-list {
  overflow: hidden;
  border: 1px solid #ded8ff;
  border-radius: 18px;
}

.pool-egg-month + .pool-egg-month {
  border-top: 1px solid #ded8ff;
}

.pool-egg-month > h3 {
  margin: 0;
  padding: 14px 20px;
  color: var(--pool-ink);
  background: linear-gradient(180deg, #f5f2ff, #faf9ff);
  font-size: 18px;
  font-weight: 900;
}

.pool-egg-month-toggle {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 14px 20px;
  color: var(--pool-ink);
  background: linear-gradient(180deg, #f5f2ff, #faf9ff);
  cursor: pointer;
  list-style: none;
}

.pool-egg-month-toggle::-webkit-details-marker {
  display: none;
}

.pool-egg-month-toggle > strong {
  font-size: 18px;
  font-weight: 900;
}

.pool-egg-month-toggle > span {
  color: #788199;
  font-size: 14px;
  font-weight: 800;
}

.pool-egg-month-toggle > img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  transition: transform 180ms ease;
}

.pool-egg-month[open] > .pool-egg-month-toggle > img {
  transform: rotate(90deg);
}

.pool-egg-entry {
  border-top: 1px solid #e4e6ed;
  background: #fff;
}

.pool-egg-entry summary {
  display: grid;
  grid-template-columns: 120px minmax(110px, 1fr) 92px 24px;
  min-height: 72px;
  align-items: center;
  gap: 14px;
  padding: 0 20px;
  color: var(--pool-ink);
  cursor: pointer;
  list-style: none;
}

.pool-egg-entry summary::-webkit-details-marker {
  display: none;
}

.pool-egg-entry summary time {
  font-size: 18px;
  font-weight: 900;
  white-space: nowrap;
}

.pool-egg-entry summary > span {
  justify-self: start;
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
  white-space: nowrap;
}

.pool-egg-entry summary > span.fertilized {
  color: #22965e;
  background: #eaf8f0;
}

.pool-egg-entry summary > span.unfertilized {
  color: #d68520;
  background: #fff5e3;
}

.pool-egg-entry summary > span.discard {
  color: #dc4050;
  background: #fff0f2;
}

.pool-egg-entry summary > strong {
  color: var(--pool-ink);
  font-size: 17px;
  font-weight: 900;
  white-space: nowrap;
}

.pool-egg-entry summary > img {
  width: 19px;
  height: 19px;
  transition: transform 0.2s ease;
}

.pool-egg-entry[open] summary > img {
  transform: rotate(90deg);
}

.pool-egg-entry > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 0 20px 18px;
}

@media (max-width: 720px) {
  .pool-detail-back {
    min-height: 48px;
    margin-bottom: 14px;
    padding: 0 16px;
    font-size: 14px;
  }

  .pool-detail-heading {
    gap: 13px;
    padding: 17px 15px 16px;
    border-radius: 22px;
  }

  .pool-detail-heading .eyebrow {
    gap: 8px;
    font-size: 14px;
  }

  .pool-detail-heading .eyebrow img {
    width: 20px;
    height: 20px;
  }

  .pool-detail-hero-grid {
    grid-template-columns: minmax(118px, 0.88fr) minmax(0, 1.4fr);
    gap: 16px;
  }

  .pool-detail-hero-photo .archive-photo-shell,
  .pool-detail-hero-photo .archive-photo-carousel,
  .pool-detail-hero-photo .archive-photo-slide {
    border-radius: 18px;
  }

  .pool-detail-hero-photo .turtle-photo-placeholder {
    gap: 7px;
    font-size: 14px;
  }

  .pool-detail-hero-photo .pool-camera-icon {
    width: 44px;
    height: 44px;
  }

  .pool-detail-hero-copy {
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    gap: 12px;
  }

  .pool-detail-heading .pool-detail-hero-copy h2 {
    grid-column: 1;
    font-size: 28px;
  }

  .pool-detail-hero-copy > p {
    font-size: 15px;
  }

  .pool-detail-edit {
    justify-self: start;
    min-height: 36px;
    gap: 6px;
    padding: 0 11px;
    border-radius: 10px;
  }

  .pool-detail-edit img {
    width: 19px;
    height: 19px;
  }

  .pool-detail-edit strong {
    font-size: 12px;
  }

  #turtlePoolDetail,
  .pool-detail-panel {
    gap: 14px;
  }

  .pool-overview-card,
  #turtlePoolDetail .pool-egg-history {
    padding: 11px;
    border-radius: 22px;
  }

  .pool-overview-card {
    gap: 12px;
  }

  .pool-core-stats,
  .pool-secondary-stats,
  .pool-egg-list {
    border-radius: 15px;
  }

  .pool-metric {
    grid-template-columns: 35px minmax(0, 1fr);
    gap: 6px;
    min-height: 73px;
    padding: 9px 6px;
  }

  .pool-metric > i {
    width: 32px;
    height: 32px;
    border-radius: 11px;
  }

  .pool-metric > i img {
    width: 20px;
    height: 20px;
  }

  .pool-metric > span {
    gap: 4px;
  }

  .pool-metric b {
    font-size: 10.5px;
  }

  .pool-metric strong {
    font-size: 23px;
  }

  .pool-compact-metric {
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 5px 4px;
    min-height: 72px;
    padding: 9px 5px;
  }

  .pool-compact-metric i {
    width: 21px;
    height: 21px;
  }

  .pool-compact-metric i img {
    width: 20px;
    height: 20px;
  }

  .pool-compact-metric b {
    font-size: 9.5px;
  }

  .pool-compact-metric strong {
    font-size: 16px;
  }

  #turtlePoolDetail .pool-egg-history {
    gap: 11px;
    padding-bottom: 12px;
  }

  .pool-egg-history .profile-history-head > strong {
    gap: 8px;
    font-size: 17px;
  }

  .pool-egg-history .profile-history-head > strong i {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .pool-egg-history .profile-history-head > strong i img {
    width: 20px;
    height: 20px;
  }

  .pool-egg-history .profile-history-head > span {
    gap: 5px;
    font-size: 13px;
  }

  .pool-egg-history .profile-history-head > span img {
    width: 15px;
    height: 15px;
  }

  .pool-egg-month > h3 {
    padding: 11px 12px;
    font-size: 14px;
  }

  .pool-egg-month-toggle {
    grid-template-columns: minmax(0, 1fr) auto 16px;
    gap: 7px;
    min-height: 46px;
    padding: 11px 12px;
  }

  .pool-egg-month-toggle > strong {
    font-size: 14px;
  }

  .pool-egg-month-toggle > span {
    font-size: 11px;
  }

  .pool-egg-month-toggle > img {
    width: 15px;
    height: 15px;
  }

  .pool-egg-entry summary {
    grid-template-columns: 74px minmax(82px, 1fr) 50px 16px;
    gap: 6px;
    min-height: 58px;
    padding: 0 10px;
  }

  .pool-egg-entry summary time {
    font-size: 13px;
  }

  .pool-egg-entry summary > span {
    padding: 5px 8px;
    font-size: 11px;
  }

  .pool-egg-entry summary > strong {
    font-size: 12px;
  }

  .pool-egg-entry summary > img {
    width: 14px;
    height: 14px;
  }

  .pool-egg-entry > div {
    padding: 0 10px 12px;
  }
}

/* v23 总库存：三类库存卡片式界面 */
.stock-view {
  max-width: 1100px;
  margin-inline: auto;
}

.stock-view > .back-button {
  min-height: 50px;
  padding-inline: 22px;
  background: linear-gradient(135deg, #f1edff, #f8f6ff);
  box-shadow: 0 8px 22px rgba(102, 86, 245, 0.08);
  font-size: 18px;
  font-weight: 800;
}

.stock-view > .back-button::before {
  content: "‹";
  margin-right: 8px;
  font-size: 28px;
  font-weight: 400;
  line-height: 0;
  vertical-align: -2px;
}

.stock-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 28px;
  overflow: visible;
}

.stock-tabs .tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 88px;
  padding: 12px 16px;
  border: 1px solid #e1e5ef;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 5px 14px rgba(48, 55, 79, 0.025);
  color: #7f899e;
  background: rgba(255, 255, 255, 0.8);
  font-size: 22px;
  font-weight: 800;
}

.stock-tabs .tab.active {
  position: relative;
  border-color: transparent;
  color: #6656f5;
  background: linear-gradient(135deg, #f2efff, #faf9ff);
}

.stock-tabs .tab.active::after {
  content: "";
  position: absolute;
  right: 10%;
  bottom: -1px;
  left: 10%;
  height: 3px;
  border-radius: 999px;
  background: #806df8;
}

.stock-tab-icon {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  font-size: 30px;
  font-weight: 500;
}

.stock-panel {
  padding: 34px 30px 28px;
  border: 1px solid #e1e6f0;
  border-radius: 30px;
  box-shadow: 0 18px 48px rgba(56, 66, 95, 0.06);
}

.stock-panel > .panel-head {
  display: grid;
  justify-items: center;
  gap: 22px;
}

.stock-panel-title {
  display: grid;
  justify-items: center;
  gap: 11px;
  text-align: center;
}

.stock-panel-title .stock-title-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  color: #6b59f7;
  font-size: 38px;
}

.stock-panel-title h2 {
  position: relative;
  margin: 0;
  padding-inline: 48px;
  color: #131c32;
  font-size: clamp(28px, 4vw, 43px);
  line-height: 1.15;
}

.stock-panel-title h2::before,
.stock-panel-title h2::after {
  content: "⋮";
  position: absolute;
  top: 50%;
  color: #b8aaff;
  font-size: 30px;
  transform: translateY(-50%) rotate(90deg);
}

.stock-panel-title h2::before { left: 4px; }
.stock-panel-title h2::after { right: 4px; }

.stock-panel-title i {
  width: 58px;
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(90deg, #715df7 0 75%, transparent 75% 86%, #a995ff 86%);
}

.stock-search {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  width: min(820px, 92%);
  min-height: 72px;
  gap: 0;
  overflow: hidden;
  border: 1px solid #dfe4ee;
  border-radius: 24px;
  color: #768198;
  background: #fff;
  box-shadow: inset 0 1px 3px rgba(48, 55, 79, 0.02);
}

.stock-search > span {
  padding-left: 20px;
  font-size: 34px;
  font-weight: 400;
}

.stock-search .table-search {
  max-width: none;
  min-height: 70px;
  border: 0;
  padding: 0 18px 0 0;
  color: #1c263b;
  font-size: 20px;
  outline: 0;
}

.stock-search .table-search::placeholder { color: #a7afbf; }

.stock-panel .table-tools {
  margin: 26px 0 18px;
  font-size: 17px;
}

.stock-panel .table-column-settings summary {
  min-height: 52px;
  padding: 0 24px;
  border-radius: 17px;
  background: linear-gradient(135deg, #eee9ff, #f7f4ff);
  font-size: 19px;
}

.stock-panel .table-column-settings summary::before {
  content: "⚙";
  margin-right: 9px;
  font-size: 20px;
}

.stock-panel .table-tools > span {
  font-size: 17px;
}

.stock-panel .table-wrap {
  margin-top: 0;
  border: 1px solid #bfdee2;
  border-radius: 20px;
  box-shadow: none;
}

.stock-panel table { min-width: 940px; }

.stock-panel th,
.stock-panel td {
  height: 76px;
  border-color: #dfe5ec;
  padding: 10px 18px;
}

.stock-panel th {
  color: #00a5b8;
  background: linear-gradient(180deg, #e9fbfb, #f3fbfb);
  font-size: 20px;
}

.stock-panel td.number {
  color: #00a4b5;
  font-size: 24px;
  font-weight: 900;
}

.stock-panel td.number:has(:empty),
.stock-panel td.number.negative { color: #aeb7c8; }

.stock-species-cell {
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 220px;
}

.stock-species-cell i {
  display: grid;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 16px;
  color: #6959f7;
  background: #f1edff;
  font-size: 22px;
  font-style: normal;
}

.stock-species-cell b {
  color: #1b2538;
  font-size: 18px;
  font-weight: 700;
}

.stock-species-1 i,
.stock-species-6 i { color: #20b46d; background: #ebf9f1; }
.stock-species-2 i { color: #02a9bf; background: #e8f8fc; }
.stock-species-4 i { color: #e2ad22; background: #fff8df; }
.stock-species-5 i { color: #a86f36; background: #f8efe6; }

.stock-table-tip {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 24px 0 4px;
  padding: 18px 24px;
  border-radius: 17px;
  color: #7b849a;
  background: linear-gradient(90deg, #f4f0ff, #faf8ff);
  font-size: 17px;
}

.stock-table-tip span {
  color: #6656f5;
  font-size: 27px;
}

.stock-panel > .component-zone-head {
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid #eef0f5;
}

@media (max-width: 700px) {
  .stock-view > .back-button {
    min-height: 44px;
    margin-left: 4px;
    padding-inline: 14px;
    font-size: 15px;
  }

  .stock-tabs {
    gap: 5px;
    margin: 10px 0 14px;
  }

  .stock-tabs .tab {
    min-height: 66px;
    gap: 4px;
    padding: 8px 3px;
    border-radius: 14px 14px 0 0;
    font-size: 14px;
    white-space: nowrap;
  }

  .stock-tab-icon {
    width: 25px;
    height: 25px;
    font-size: 22px;
  }

  .stock-panel {
    padding: 24px 10px 18px;
    border-radius: 22px;
  }

  .stock-panel > .panel-head {
    align-items: center;
    gap: 18px;
  }

  .stock-panel-title { gap: 8px; }
  .stock-panel-title .stock-title-icon { width: 38px; height: 38px; font-size: 29px; }
  .stock-panel-title h2 { padding-inline: 32px; font-size: 27px; }
  .stock-panel-title h2::before,
  .stock-panel-title h2::after { font-size: 21px; }
  .stock-panel-title i { width: 46px; height: 5px; }

  .stock-search {
    grid-template-columns: 46px minmax(0, 1fr);
    width: 96%;
    min-height: 54px;
    border-radius: 17px;
  }

  .stock-search > span { padding-left: 15px; font-size: 27px; }
  .stock-search .table-search { min-height: 52px; font-size: 16px; }

  .stock-panel .table-tools {
    align-items: center;
    flex-direction: row;
    margin: 18px 2px 12px;
  }

  .stock-panel .table-column-settings summary {
    min-height: 44px;
    padding: 0 16px;
    border-radius: 14px;
    font-size: 15px;
  }

  .stock-panel .table-tools > span {
    width: auto;
    margin-left: auto;
    font-size: 11px;
    text-align: right;
  }

  .stock-panel .table-wrap { border-radius: 15px; }
  .stock-panel table { min-width: 760px; }
  .stock-panel th,
  .stock-panel td { height: 62px; padding: 8px 12px; }
  .stock-panel th { font-size: 15px; }
  .stock-panel td.number { font-size: 18px; }
  .stock-species-cell { min-width: 170px; gap: 10px; }
  .stock-species-cell i { flex-basis: 39px; width: 39px; height: 39px; border-radius: 13px; font-size: 18px; }
  .stock-species-cell b { font-size: 15px; }

  .stock-table-tip {
    gap: 8px;
    margin-top: 16px;
    padding: 13px 14px;
    font-size: 12px;
  }

  .stock-table-tip span { font-size: 21px; }
}

* {
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  margin: 0;
  background-color: #a9c5b2;
  background-image:
    linear-gradient(180deg, rgba(69, 105, 82, 0.10), rgba(55, 96, 70, 0.18)),
    url("./assets/home-v33/rainforest-background-v42.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;
  color: var(--text);
}

.hidden,
.app-locked {
  display: none !important;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.auth-shell {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 24px;
  background:
    linear-gradient(180deg, rgba(69, 105, 82, 0.10), rgba(55, 96, 70, 0.18)),
    url("./assets/home-v33/rainforest-background-v42.png") center / cover no-repeat;
}

.auth-card {
  width: min(460px, 100%);
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 18px 50px rgba(32, 37, 51, 0.12);
}

.auth-card h1 {
  margin-top: 8px;
  font-size: 30px;
}

.auth-subtitle {
  margin-top: 12px;
  color: var(--muted);
  line-height: 1.7;
}

.auth-form {
  display: grid;
  gap: 16px;
  margin-top: 24px;
}

.auth-form h2 {
  font-size: 22px;
}

.auth-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-weight: 700;
}

.auth-form input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--text);
  background: #fff;
  font: inherit;
}

.auth-helper-panel {
  display: grid;
  gap: 14px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px dashed var(--line);
}

.auth-helper-head {
  display: grid;
  gap: 4px;
}

.auth-helper-head strong,
.auth-recover-box strong {
  font-size: 15px;
}

.auth-helper-head small,
.auth-recover-box small,
.auth-recover-hint {
  color: var(--muted);
  line-height: 1.6;
}

.auth-known-users {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.auth-user-chip {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  padding: 10px 14px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.auth-user-chip small {
  color: var(--muted);
  font-weight: 600;
  margin-left: 6px;
}

.auth-recover-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 18px;
  background: var(--brand-soft);
}

.auth-recover-box > div {
  display: grid;
  gap: 4px;
}

.auth-recover-hint {
  margin: 0;
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 24px;
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}

.account-box {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--muted);
  font-weight: 700;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1 {
  font-size: 24px;
}

h2 {
  font-size: 20px;
}

h3 {
  font-size: 16px;
}

main {
  width: min(1280px, calc(100% - 28px));
  margin: 20px auto 48px;
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.home-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.component-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.home-card {
  min-height: 150px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 22px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.05);
  cursor: pointer;
  text-align: left;
}

.home-card span {
  display: block;
  margin-bottom: 10px;
  font-size: 26px;
  font-weight: 800;
}

.home-card small {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.home-card.primary-card {
  color: #fff;
  background: linear-gradient(135deg, var(--brand), #9285ff);
}

.home-card.primary-card small {
  color: rgba(255, 255, 255, 0.84);
}

.home-card.muted-card {
  cursor: not-allowed;
  opacity: 0.55;
}

.home-card.settings-card {
  background: #fff8e8;
  border-color: #ffe0a3;
}

.home-card.finance-card {
  background: #f0fff9;
  border-color: #b9f0dc;
}

.home-card.data-card {
  background: #f4f7ff;
  border-color: #c9d7ff;
}

.home-card.mating-card {
  background: #fff8e8;
  border-color: #ffe0a3;
}

#homeView > .home-grid {
  grid-template-columns: repeat(8, minmax(96px, 1fr));
  gap: 18px;
  align-items: center;
  margin-bottom: 18px;
}

#homeView > .home-grid .home-card {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  aspect-ratio: 1;
  min-height: 0;
  padding: 18px;
  overflow: visible;
  text-align: center;
  border-radius: 999px;
  isolation: isolate;
  transition:
    transform 180ms ease,
    filter 180ms ease;
}

#homeView > .home-grid .home-card::before {
  content: "";
  position: absolute;
  inset: 13%;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(circle at 32% 26%, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0) 42%);
  opacity: 0.9;
}

#homeView > .home-grid .home-card:hover,
#homeView > .home-grid .home-card:focus-visible {
  transform: translateY(-5px) scale(1.045);
  z-index: 2;
}

#homeView > .home-grid .home-card:active {
  transform: translateY(-2px) scale(0.97);
}

#homeView > .home-grid .home-card span {
  margin: 0;
  font-size: clamp(18px, 1.5vw, 25px);
  line-height: 1.16;
}

#homeView > .home-grid .home-card small {
  display: none;
}

#homeView > .home-grid .menu-image-card {
  color: transparent;
  background: transparent !important;
}

#homeView > .home-grid .menu-image-card::before {
  display: none;
}

#homeView > .home-grid .menu-image-card span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.home-menu-icon {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  transform: translateZ(0);
  filter:
    drop-shadow(0 18px 12px rgba(10, 14, 22, 0.30))
    drop-shadow(0 7px 4px rgba(10, 14, 22, 0.22))
    drop-shadow(0 -1px 0 rgba(255, 255, 255, 0.42));
  transition:
    transform 160ms ease,
    filter 160ms ease;
}

#homeView > .home-grid .stock-menu-image {
  background-image: url("./assets/menu/home-stock.png");
}

#homeView > .home-grid .turtle-management-menu-image {
  background-image: url("./assets/menu/home-turtle-management.png");
}

#homeView > .home-grid .diary-menu-image {
  background-image: url("./assets/menu/home-diary.png");
}

#homeView > .home-grid .finance-menu-image {
  background-image: url("./assets/menu/home-finance.jpg");
}

#homeView > .home-grid .data-center-menu-image {
  background-image: url("./assets/menu/home-data-center.jpg");
}

#homeView > .home-grid .mating-menu-image {
  background-image: url("./assets/menu/home-mating.jpg");
}

#homeView > .home-grid .photo-menu-image {
  background-image: url("./assets/menu/home-photo.jpg");
}

#homeView > .home-grid .settings-menu-image {
  background-image: url("./assets/menu/home-settings-cut.png");
}

#homeView > .home-grid .menu-image-card {
  aspect-ratio: 1 / 1 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  background: transparent !important;
}

#homeView > .home-grid .home-card-dragging {
  opacity: 0.72;
  transform: scale(1.08) rotate(2deg);
  z-index: 4;
}

#homeView > .home-grid.home-grid-sorting .home-card:not(.home-card-dragging) {
  transition:
    transform 160ms ease,
    filter 160ms ease;
}

#homeView > .home-grid .home-card-drop-before,
#homeView > .home-grid .home-card-drop-after {
  transform: scale(0.94);
}

@keyframes homeJiggle {
  0%,
  100% {
    transform: rotate(-1.1deg) scale(1);
  }

  50% {
    transform: rotate(1.1deg) scale(1.015);
  }
}

body.home-editing #homeView > .home-grid .home-card,
body.home-editing .component-zone[data-component-zone="home"] > .analysis-component {
  animation: homeJiggle 190ms ease-in-out infinite;
  cursor: grab;
  touch-action: none;
}

body.home-editing #homeView > .home-grid .home-card:nth-child(even),
body.home-editing .component-zone[data-component-zone="home"] > .analysis-component:nth-child(even) {
  animation-direction: reverse;
}

#homeView > .home-grid .home-card.home-card-dragging,
.component-zone[data-component-zone="home"] > .analysis-component.home-component-dragging {
  animation: none !important;
  opacity: 0.78;
  z-index: 8;
}

.component-zone[data-component-zone="home"] > .analysis-component.home-component-dragging {
  transform: var(--home-drag-transform) !important;
}

#homeView > .home-grid .stock-menu-image {
  background-image: url("./assets/menu/home-stock-cut.png") !important;
}

#homeView > .home-grid .turtle-management-menu-image {
  background-image: url("./assets/menu/home-turtle-management-cut.png") !important;
}

#homeView > .home-grid .diary-menu-image {
  background-image: url("./assets/menu/home-diary-cut.png") !important;
}

#homeView > .home-grid .finance-menu-image {
  background-image: url("./assets/menu/home-finance-cut.png") !important;
}

#homeView > .home-grid .data-center-menu-image {
  background-image: url("./assets/menu/home-data-center-cut.png") !important;
}

#homeView > .home-grid .mating-menu-image {
  background-image: url("./assets/menu/home-mating-cut.png") !important;
}

#homeView > .home-grid .photo-menu-image {
  background-image: url("./assets/menu/home-photo-cut.png") !important;
}

#homeView > .home-grid .settings-menu-image {
  background-image: url("./assets/menu/home-settings-cut.png") !important;
}

#homeView > .home-grid .menu-image-card {
  background: transparent !important;
  background-image: none !important;
}

.compact-form {
  margin-bottom: 16px;
}

.customer-list {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.customer-management-panel {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.customer-management-panel > .panel-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 154px;
  margin-bottom: 14px;
  padding: 24px 22px;
  border: 1px solid #ece8ff;
  border-radius: 18px;
  background:
    radial-gradient(circle at 18% 14%, rgba(102, 86, 245, 0.18), transparent 34%),
    linear-gradient(135deg, #fbf9ff 0%, #ffffff 58%, #f7fbff 100%);
  box-shadow: 0 16px 34px rgba(31, 41, 55, 0.06);
  text-align: center;
}

.customer-management-panel > .panel-head .eyebrow {
  margin: 0 0 6px;
  color: var(--brand);
}

.customer-management-panel > .panel-head h2 {
  margin: 0;
  font-size: 30px;
  line-height: 1.1;
}

.customer-hero-icon {
  position: absolute;
  right: 22px;
  top: 50%;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 12px;
  background: #f1ebff;
  box-shadow: inset 0 0 0 1px #eadfff;
  transform: translateY(-50%);
  font-size: 22px;
}

.customer-management-panel #matingCustomerForm {
  display: grid;
  gap: 12px;
  margin: -78px 22px 16px;
  position: relative;
  z-index: 2;
}

.customer-management-panel #matingCustomerForm label {
  gap: 8px;
  color: var(--text);
  font-weight: 900;
}

.customer-management-panel #matingCustomerForm input {
  min-height: 44px;
  border: 1.5px solid #735cf7;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(102, 86, 245, 0.08);
}

.customer-management-panel #matingCustomerForm .primary-button {
  min-height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #7c6bff, #5f49ee);
  box-shadow: 0 12px 24px rgba(102, 86, 245, 0.22);
}

.customer-section {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid #eef1f7;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(31, 41, 55, 0.06);
}

.customer-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.customer-section-head strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
}

.customer-section-head strong::before {
  content: "";
  width: 4px;
  height: 22px;
  border-radius: 999px;
  background: var(--brand);
}

.customer-section-head span {
  color: var(--brand);
  font-weight: 900;
}

.customer-subtitle {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 16px;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.group-list {
  display: grid;
  gap: 12px;
}

.group-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  color: inherit;
  background: #fff;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.group-card:hover {
  border-color: #cfc8ff;
  box-shadow: 0 10px 24px rgba(102, 86, 245, 0.12);
}

.warning-card {
  border-color: #ffd8a8;
  background: #fff8ed;
}

.mating-main-card {
  display: block;
  width: 100%;
  min-height: 120px;
  margin-bottom: 16px;
  padding: 24px;
  border: 1px solid #ffe0a3;
  border-radius: 22px;
  color: var(--text);
  background: #fff8e8;
  cursor: pointer;
  text-align: left;
  font: inherit;
}

.mating-main-card span,
.mating-main-card small {
  display: block;
}

.mating-main-card span {
  font-size: 28px;
  font-weight: 900;
}

.mating-main-card small {
  margin-top: 10px;
  color: var(--muted);
  font-weight: 800;
}

.group-card strong,
.group-card small {
  display: block;
}

.group-card strong {
  font-size: 18px;
}

.group-card small {
  margin-top: 6px;
  color: var(--muted);
}

.group-card-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--muted);
  font-weight: 800;
}

.customer-row-card {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-color: #edf1f8;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(31, 41, 55, 0.05);
}

.customer-row-main {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
}

.customer-avatar {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  color: #6d5df6;
  font-size: 18px;
  font-weight: 900;
  background: #f0ecff;
}

.customer-avatar.orange {
  color: #f97316;
  background: #fff0df;
}

.customer-avatar.green {
  color: #22c55e;
  background: #e8fbef;
}

.customer-avatar.blue {
  color: #2ea7ff;
  background: #eaf6ff;
}

.customer-row-main strong {
  font-size: 18px;
  line-height: 1.15;
}

.customer-row-main small {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.35;
}

.customer-row-stats {
  display: grid;
  grid-template-columns: repeat(2, 44px);
  gap: 8px;
  color: #667085;
  text-align: center;
}

.customer-row-stats span,
.customer-row-stats strong,
.customer-row-stats em {
  display: block;
}

.customer-row-stats strong {
  color: #667085;
  font-size: 20px;
  line-height: 1;
}

.customer-row-stats em {
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.2;
  font-style: normal;
  font-weight: 900;
}

.customer-row-actions {
  gap: 8px;
}

.customer-row-actions .ghost-button,
.customer-row-actions .danger-light-button {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  font-size: 13px;
}

.customer-row-actions .ghost-button::before {
  content: none;
}

.customer-row-actions .danger-light-button::before {
  content: none;
}

.customer-detail-section {
  gap: 14px;
}

.customer-detail-section .customer-section-head {
  align-items: flex-start;
}

.customer-detail-section .customer-section-head small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-weight: 800;
}

.customer-detail-section .header-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(86px, 1fr));
  gap: 8px;
  align-items: center;
}

.customer-detail-section .header-actions span {
  color: var(--brand);
  font-weight: 900;
  text-align: center;
}

.customer-detail-section .header-actions .ghost-button {
  min-height: 40px;
  border-radius: 12px;
}

.group-row-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-color: #edf1f8;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(31, 41, 55, 0.05);
}

.group-row-main {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
}

.group-avatar {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 50%;
  color: #6d5df6;
  background: #f0ecff;
  font-size: 17px;
  font-weight: 900;
}

.pool-avatar {
  color: #0ea5e9;
  background: #eaf6ff;
}

.group-row-main strong {
  color: var(--text);
  font-size: 19px;
  line-height: 1.15;
}

.group-row-main small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 800;
}

.group-row-stats {
  display: grid;
  grid-template-columns: repeat(3, 48px);
  gap: 6px;
  text-align: center;
}

.pool-row-stats {
  grid-template-columns: repeat(4, 44px);
}

.group-row-stats span,
.group-row-stats strong,
.group-row-stats em {
  display: block;
}

.group-row-stats strong {
  color: #667085;
  font-size: 19px;
  line-height: 1;
}

.group-row-stats em {
  margin-top: 3px;
  color: #667085;
  font-size: 11px;
  line-height: 1.2;
  font-style: normal;
  font-weight: 900;
}

.group-row-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.group-row-actions .ghost-button,
.group-row-actions .danger-light-button {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  font-size: 13px;
}

.turtle-profile-list {
  display: grid;
  gap: 16px;
}

.mating-sex-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 16px;
}

.mating-sex-card {
  min-height: 160px;
  padding: 22px;
  border: 1px solid #dbe3f0;
  border-radius: 22px;
  color: var(--text);
  background: #fff;
  cursor: pointer;
  text-align: left;
  font: inherit;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.04);
}

.mating-sex-card:hover {
  border-color: #cfc8ff;
  box-shadow: 0 14px 32px rgba(102, 86, 245, 0.12);
}

.mating-sex-card span,
.mating-sex-card strong,
.mating-sex-card small {
  display: block;
}

.mating-sex-card span {
  font-size: 24px;
  font-weight: 900;
}

.mating-sex-card strong {
  margin: 14px 0 8px;
  color: var(--brand);
  font-size: 36px;
}

.mating-sex-card small {
  color: var(--muted);
  font-weight: 700;
}

.unknown-sex-card {
  background: #fff8e8;
  border-color: #ffe0a3;
}

.dead-sex-card {
  background: #fff1f1;
  border-color: #ffc9c9;
}

.turtle-directory-card {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid #e2e8f0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(31, 41, 55, 0.06);
}

.turtle-directory-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.turtle-directory-head h3 {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 26px;
  line-height: 1.15;
}

.turtle-directory-head span {
  flex: 0 0 auto;
  padding: 7px 11px;
  border-radius: 999px;
  color: var(--brand);
  background: #f0ecff;
  font-weight: 900;
}

.turtle-directory-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.turtle-directory-item {
  display: grid;
  min-height: 56px;
  padding: 8px 4px;
  place-items: center;
  border: 1px solid #dce5f2;
  border-radius: 14px;
  color: var(--text);
  background: linear-gradient(135deg, #ffffff 0%, #fbfffd 100%);
  box-shadow: 0 8px 18px rgba(31, 41, 55, 0.04);
  text-align: center;
  cursor: pointer;
  font: inherit;
}

.turtle-directory-item:hover {
  border-color: #bfb5ff;
  box-shadow: 0 16px 32px rgba(102, 86, 245, 0.12);
  transform: translateY(-1px);
}

.turtle-directory-item strong {
  color: var(--text);
  font-size: 17px;
  line-height: 1.15;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.danger-light-button {
  min-height: 40px;
  padding: 0 14px;
  border: 0;
  border-radius: 12px;
  color: #c92a2a;
  background: #fff0f0;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.turtle-profile-card {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}

.turtle-photo-box {
  position: relative;
  min-height: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #f4f6fb;
}

.turtle-profile-photo,
.turtle-photo-placeholder {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.turtle-profile-photo {
  display: block;
  object-fit: contain;
}

.turtle-photo-placeholder {
  display: grid;
  place-items: center;
  color: var(--muted);
  font-weight: 800;
}

.photo-history-shell {
  display: grid;
  gap: 10px;
  align-self: start;
  width: 220px;
}

.latest-photo-box,
.previous-photo-box {
  width: 220px;
  height: 220px;
}

.previous-photo-box {
  opacity: 0.88;
}

.photo-meta-frame {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
}

.photo-open-button {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
  cursor: zoom-in;
}

.photo-meta-frame figcaption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 8px;
  padding: 3px 6px;
  border-radius: 999px;
  color: #fff;
  background: rgba(15, 23, 42, 0.64);
  font-size: 10px;
  line-height: 1.25;
  font-weight: 800;
  text-align: center;
}

.photo-history-button {
  width: 100%;
}

.photo-history-grid {
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.photo-history-shell.show-history .photo-history-grid {
  display: grid;
}

.photo-history-item {
  position: relative;
  height: 104px;
  overflow: hidden;
  border-radius: 14px;
  background: #f4f6fb;
}

.photo-history-delete {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 2;
  min-height: 24px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1;
}

.photo-corner-delete {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 3;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(32, 37, 51, 0.18);
  font-size: 12px;
}

.photo-history-item .photo-meta-frame,
.photo-history-item .turtle-profile-photo {
  min-height: 0;
}

.photo-history-item .photo-meta-frame figcaption {
  left: 8px;
  right: 8px;
  bottom: 6px;
  font-size: 8px;
  padding: 2px 5px;
}

.photo-history-shell.photo-drop-over .turtle-photo-box {
  border-color: #6656f5;
  box-shadow: 0 0 0 3px rgba(102, 86, 245, 0.14);
}

.turtle-archive-card {
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  padding: 16px;
  border-color: #e5efe9;
  border-radius: 26px;
  background: linear-gradient(135deg, #ffffff 0%, #fbfffd 100%);
  box-shadow: 0 20px 46px rgba(31, 41, 55, 0.07);
  width: min(100%, 760px);
  margin-inline: auto;
}

.archive-left,
.archive-right {
  display: grid;
  align-content: start;
  gap: 14px;
  min-width: 0;
}

.archive-photo-shell {
  width: 100%;
  gap: 8px;
}

.archive-photo-carousel {
  display: grid;
  grid-auto-columns: 100%;
  grid-auto-flow: column;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  border-radius: 18px;
}

.archive-photo-slide {
  width: 100%;
  height: clamp(260px, 42vw, 430px);
  scroll-snap-align: start;
  background: #eef6f2;
}

.archive-photo-kind {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  padding: 6px 10px;
  border-radius: 999px;
  color: #fff;
  background: rgba(28, 61, 50, 0.82);
  backdrop-filter: blur(8px);
  font-size: 12px;
  font-weight: 900;
}

.archive-photo-slide .turtle-profile-photo {
  object-fit: cover;
}

.archive-photo-count {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  padding: 4px 9px;
  border-radius: 999px;
  color: #fff;
  background: rgba(15, 23, 42, 0.68);
  font-size: 12px;
  font-weight: 900;
}

.archive-dots {
  display: flex;
  justify-content: center;
  gap: 5px;
  min-height: 8px;
}

.archive-dots span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #bfeadd;
}

.archive-dots span.active {
  width: 15px;
  border-radius: 999px;
  background: #37c896;
}

.archive-photo-hint {
  margin: 0;
  color: #7a8796;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.archive-card,
.archive-title-card {
  border: 1px solid #e4ece8;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 34px rgba(31, 41, 55, 0.05);
}

.archive-kicker-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.archive-owner-pill {
  padding: 5px 9px;
  border-radius: 999px;
  color: #237a5b;
  background: #eaf8f1;
  font-size: 12px;
  font-weight: 900;
}

.archive-title-card {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.archive-title-card p,
.archive-card h4 {
  margin: 0;
  color: #20312f;
  font-size: 14px;
  font-weight: 900;
}

.archive-name-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.archive-name-row h3 {
  margin: 0;
  color: var(--text);
  font-size: 28px;
  line-height: 1.1;
}

.archive-name-navigation {
  display: grid;
  grid-template-columns: minmax(76px, auto) minmax(0, 1fr) minmax(76px, auto);
  text-align: center;
}

.archive-name-navigation h3 {
  overflow-wrap: anywhere;
}

.archive-neighbor-button {
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid #dceae4;
  border-radius: 12px;
  color: #26785d;
  background: #f4fbf8;
  font-weight: 900;
  cursor: pointer;
}

.archive-neighbor-button:disabled {
  color: #aab7b2;
  background: #f7f9f8;
  cursor: default;
  opacity: 0.6;
}

.archive-name-row span {
  padding: 5px 9px;
  border-radius: 999px;
  color: #37a87f;
  background: #ecfbf5;
  font-size: 12px;
  font-weight: 900;
}

.archive-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.archive-actions .archive-delete {
  grid-column: 1 / -1;
}

.soft-danger {
  color: #dc2626;
  background: #fff2f2;
}

.archive-card {
  padding: 16px;
}

.archive-basic-card {
  display: grid;
  gap: 0;
}

.archive-basic-card h4 {
  margin-bottom: 8px;
}

.archive-info-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 11px 0;
  border-top: 1px solid #eef3f1;
  color: #6b7788;
  font-weight: 800;
}

.archive-inline-edit {
  min-height: 28px;
  padding: 0 9px;
  border: 0;
  border-radius: 9px;
  color: #26785d;
  background: #edf8f3;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.archive-info-row strong {
  color: #1f2937;
  font-weight: 900;
  text-align: right;
  overflow-wrap: anywhere;
}

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

.archive-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.archive-stat-card {
  min-height: 78px;
  padding: 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, #f0fbf7, #f8fffc);
  box-shadow: inset 0 0 0 1px #eaf4f0;
}

.archive-stat-card span,
.archive-stat-card strong {
  display: block;
}

.archive-stat-card span {
  color: #768394;
  font-size: 12px;
  font-weight: 900;
}

.archive-stat-card strong {
  margin-top: 8px;
  color: var(--text);
  font-size: 18px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.compact-action {
  min-height: 34px;
  padding: 0 12px;
  border-radius: 12px;
  white-space: nowrap;
}

.profile-mating-history {
  display: grid;
  gap: 10px;
}

.profile-history-head {
  display: none;
}

.archive-detail-list {
  display: grid;
  gap: 10px;
  max-height: 300px;
  overflow: auto;
  padding-right: 4px;
}

.archive-detail-item {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid #e8efec;
  border-radius: 14px;
  background: #fff;
}

.archive-detail-item span {
  color: #7a8796;
  font-size: 12px;
  font-weight: 900;
}

.archive-detail-item strong {
  color: var(--text);
  font-weight: 900;
  overflow-wrap: anywhere;
}

.archive-detail-item small {
  color: #6b7788;
  font-weight: 800;
  text-align: right;
}

.egg-detail-item {
  grid-template-columns: 68px minmax(0, 1fr) minmax(90px, auto) auto;
}

.archive-detail-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.archive-detail-actions .thumb {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  object-fit: cover;
}

.mini-action {
  min-height: 32px;
  padding: 0 10px;
  border-radius: 10px;
}

.archive-empty {
  min-height: 120px;
  border: 1px dashed #d9e7e1;
  border-radius: 14px;
  background: #fbfffd;
}

.turtle-archive-card .profile-mating-history {
  margin-top: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.turtle-archive-card .profile-history-head {
  display: none;
}

.turtle-archive-card .compact-action {
  flex: 0 0 auto;
}

.update-photo-uploader {
  display: grid;
  gap: 12px;
}

.update-photo-drop-box {
  display: grid;
  width: 220px;
  height: 220px;
  place-items: center;
  overflow: hidden;
  border: 2px dashed #cfc8ff;
  border-radius: 18px;
  color: var(--brand);
  background: #faf8ff;
  cursor: pointer;
  font-size: 18px;
  font-weight: 900;
  touch-action: none;
}

.update-photo-drop-box.is-drag-over {
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(102, 86, 245, 0.12);
}

.update-photo-drop-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: translate(var(--photo-pan-x, 0px), var(--photo-pan-y, 0px)) scale(var(--photo-zoom, 1));
  transform-origin: center;
  cursor: grab;
  user-select: none;
  pointer-events: none;
  -webkit-user-drag: none;
}

.update-photo-drop-box img:active {
  cursor: grabbing;
}

.hidden-file-input {
  display: none;
}

.upload-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.upload-actions .ghost-button {
  min-width: 90px;
}

.upload-progress {
  display: grid;
  gap: 8px;
  margin-top: 2px;
  padding: 10px 12px;
  border: 1px solid #ded8ff;
  border-radius: 14px;
  background: #fbf9ff;
}

.upload-progress.hidden {
  display: none;
}

.upload-progress-bar {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #ebeef6;
}

.upload-progress-bar span {
  display: block;
  width: var(--upload-progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6656f5, #20b486);
  transition: width 0.18s ease;
}

.upload-progress strong {
  color: var(--muted);
  font-size: 13px;
}

.photo-viewer {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
  place-items: center;
  padding: 22px;
  background: rgba(15, 23, 42, 0.82);
}

.photo-viewer img {
  max-width: min(96vw, 1200px);
  max-height: 82vh;
  border-radius: 18px;
  object-fit: contain;
  background: #111827;
}

.photo-viewer-close {
  justify-self: end;
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, 0.18);
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

#photoViewerCaption {
  color: #fff;
  font-size: 14px;
  font-weight: 800;
}

.turtle-profile-body {
  min-width: 0;
}

.turtle-profile-title {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.turtle-profile-title h3 {
  margin: 4px 0 0;
  font-size: 24px;
}

.profile-title-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pill-soft {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 12px;
  border-radius: 999px;
  color: #4f46e5;
  background: #eeeaff;
  font-weight: 800;
}

.profile-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.profile-grid span,
.profile-note {
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fafbff;
  color: var(--muted);
  font-weight: 700;
  line-height: 1.25;
}

.profile-note {
  min-height: 36px;
  margin: 10px 0 0;
}

.profile-mating-history {
  margin-top: 12px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.profile-history-head,
.profile-history-pages {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.profile-history-head {
  margin-bottom: 8px;
  color: var(--muted);
}

.profile-history-head strong {
  color: var(--text);
}

.profile-mating-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.profile-mating-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fafbff;
  color: var(--muted);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.profile-mating-item span:first-child {
  color: var(--text);
}

.profile-mating-item span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-history-pages {
  justify-content: flex-end;
  margin-top: 10px;
}

@media (max-width: 1100px) {
  .profile-mating-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  }
}

.compact-empty {
  min-height: auto;
  padding: 14px;
}

.finance-top-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(360px, 1.2fr);
  gap: 16px;
  margin-bottom: 16px;
}

.finance-profit-card {
  min-width: 0;
  min-height: 170px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.05);
}

.finance-monthly-card {
  display: grid;
  gap: 14px;
  margin: 0 0 28px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.05);
}

.finance-monthly-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.finance-monthly-head h3 {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 24px;
  line-height: 1.15;
}

.finance-monthly-head strong {
  color: var(--text);
  font-size: 22px;
  white-space: nowrap;
}

.finance-monthly-head strong.positive,
.finance-month-summary strong.positive {
  color: var(--green);
}

.finance-monthly-head strong.negative,
.finance-month-summary strong.negative {
  color: #f0525b;
}

.finance-month-select-wrap {
  position: relative;
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-weight: 900;
}

.finance-month-select-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid #ded7ff;
  border-radius: 14px;
  color: var(--brand);
  background: #f4f0ff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.finance-month-select-button em {
  font-style: normal;
  font-size: 20px;
  line-height: 1;
}

.finance-month-select-wrap.open .finance-month-select-button {
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(102, 86, 245, 0.12);
}

.finance-month-menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  display: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding: 10px;
  border: 1px solid #ded7ff;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 34px rgba(31, 41, 55, 0.16);
}

.finance-month-select-wrap.open .finance-month-menu {
  display: grid;
}

.finance-month-menu button {
  min-height: 36px;
  border: 0;
  border-radius: 10px;
  color: var(--brand);
  background: #f4f0ff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.finance-month-menu button.active {
  color: #fff;
  background: linear-gradient(135deg, #7c6bff, #5f49ee);
}

.finance-month-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.finance-month-summary span {
  display: grid;
  gap: 6px;
  min-height: 72px;
  padding: 12px;
  border-radius: 14px;
  background: #f8fafc;
  box-shadow: inset 0 0 0 1px #eef2f7;
}

.finance-month-summary em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.finance-month-summary strong {
  color: var(--text);
  font-size: 18px;
  overflow-wrap: anywhere;
}

.finance-month-detail-list {
  display: grid;
  gap: 8px;
  max-height: 340px;
  overflow: auto;
  padding-right: 3px;
}

.finance-month-detail-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid #edf1f8;
  border-radius: 14px;
  background: #fff;
}

.finance-month-detail-row strong,
.finance-month-detail-row small {
  display: block;
}

.finance-month-detail-row strong {
  color: var(--text);
  font-size: 15px;
  line-height: 1.25;
}

.finance-month-detail-row small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 800;
}

.finance-month-detail-row em {
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.finance-month-detail-row.income em {
  color: var(--green);
}

.finance-month-detail-row.expense em {
  color: #f0525b;
}

.finance-profit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.finance-profit-head h3 {
  margin: 4px 0 0;
  font-size: 22px;
}

.finance-profit-head strong {
  font-size: 28px;
}

.finance-profit-head strong.positive {
  color: var(--green);
}

.finance-profit-head strong.negative {
  color: var(--red);
}

.finance-profit-bars {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.finance-profit-row {
  display: grid;
  grid-template-columns: 110px minmax(120px, 1fr) 110px;
  align-items: center;
  gap: 12px;
}

.finance-profit-row span {
  color: var(--muted);
  font-weight: 800;
}

.finance-profit-row div {
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef1f7;
}

.finance-profit-row i {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.finance-profit-row i.income {
  background: var(--green);
}

.finance-profit-row i.expense {
  background: var(--orange);
}

.finance-profit-row i.profit {
  background: var(--brand);
}

.finance-profit-row i.loss {
  background: var(--red);
}

.finance-profit-row strong {
  text-align: right;
}

.finance-list-wrap {
  margin-top: 22px;
}

.finance-list-wrap h3 {
  margin-bottom: 12px;
}

.finance-chart-panel {
  margin-top: 18px;
  margin-bottom: 18px;
}

.finance-chart-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr);
  gap: 16px;
}

.finance-chart-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 18px;
  background: #fff;
}

.finance-chart-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.finance-chart-title h3 {
  margin: 0;
}

.finance-chart-title p {
  margin: 6px 0 0;
  color: var(--muted);
}

.finance-chart-title strong {
  color: var(--brand);
  font-size: 22px;
}

.finance-kline-shell {
  position: relative;
  min-width: 0;
  padding-bottom: 12px;
}

.finance-scroll-hint {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(102, 86, 245, 0.18);
  border-radius: 999px;
  color: var(--brand);
  background: linear-gradient(180deg, #f5f2ff, #ede8ff);
  font-size: 13px;
  font-weight: 800;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.finance-scroll-hint span {
  font-size: 16px;
  line-height: 1;
}

.finance-kline {
  display: grid;
  grid-template-columns: repeat(12, minmax(72px, 1fr));
  align-items: end;
  gap: 12px;
  overflow-x: auto;
  max-width: 100%;
  padding: 10px 0 4px;
  scrollbar-color: var(--brand) #ede8ff;
  scrollbar-width: thin;
}

.finance-kline::-webkit-scrollbar {
  height: 10px;
}

.finance-kline::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #ede8ff;
}

.finance-kline::-webkit-scrollbar-thumb {
  border: 2px solid #ede8ff;
  border-radius: 999px;
  background: var(--brand);
}

.finance-month {
  display: grid;
  gap: 6px;
  justify-items: center;
  min-width: 72px;
  color: var(--muted);
  font-size: 12px;
}

.finance-kline-bars {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 6px;
  height: 130px;
  width: 46px;
  padding: 6px;
  border-radius: 999px;
  background: #f7f8fb;
}

.finance-kline-bars span {
  display: block;
  width: 14px;
  min-height: 3px;
  border-radius: 999px 999px 4px 4px;
}

.water-bar {
  background: #2e86de;
}

.electric-bar {
  background: #ff9f43;
}

.water-text {
  color: #2e86de;
}

.electric-text {
  color: #ff9f43;
}

.finance-category-list {
  display: grid;
  gap: 12px;
}

.finance-category-row {
  display: grid;
  grid-template-columns: 82px minmax(90px, 1fr) 92px 44px;
  align-items: center;
  gap: 10px;
}

.finance-category-row div {
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef1f7;
}

.finance-category-row i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6656f5, #20b486);
}

.finance-category-row strong,
.finance-category-row em {
  text-align: right;
  font-style: normal;
}

.invoice-link {
  color: var(--brand);
  font-weight: 800;
}

.back-button {
  margin-bottom: 14px;
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  color: var(--brand);
  background: var(--brand-soft);
  cursor: pointer;
  font: inherit;
}

.back-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.back-row .back-button {
  margin-bottom: 0;
}

.section-title {
  margin-bottom: 16px;
}

#diaryView {
  max-width: 900px;
  margin-right: auto;
  margin-left: auto;
}

.diary-page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  margin: 34px 0 26px;
}

.diary-page-heading h2 {
  margin: 8px 0 0;
  font-size: 40px;
  letter-spacing: -1px;
}

.diary-top-hint {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 16px;
}

.diary-top-hint span {
  display: inline-grid;
  width: 22px;
  height: 22px;
  border: 2px solid #a99dff;
  border-radius: 50%;
  color: #8c7cff;
  place-items: center;
  font-size: 13px;
  font-weight: 900;
}

.diary-type-grid {
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: stretch;
}

.diary-option-card {
  --diary-accent: #6957ff;
  --diary-soft: #f3f0ff;
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid #e4e6ef;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(54, 61, 86, 0.08);
}

.diary-option-hatchling {
  --diary-accent: #39b982;
  --diary-soft: #effbf6;
}

.diary-option-egg {
  --diary-accent: #f3762f;
  --diary-soft: #fff4ec;
}

.diary-record-entry {
  display: grid;
  grid-template-columns: minmax(210px, 34%) minmax(0, 1fr);
  gap: 38px;
  align-items: center;
  width: 100%;
  padding: 28px;
  border: 0;
  color: var(--text);
  background: #fff;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.diary-record-entry:hover,
.diary-record-entry:focus-visible {
  background: #fdfdff;
}

.diary-card-visual {
  display: block;
  overflow: hidden;
  width: 100%;
  border-radius: 24px;
  background: var(--diary-soft);
  aspect-ratio: 1;
}

.diary-card-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.diary-card-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.diary-card-copy strong {
  margin-bottom: 18px;
  font-size: 38px;
  line-height: 1;
}

.diary-card-copy small,
.diary-card-copy em {
  display: block;
  color: var(--muted);
  font-size: 18px;
  font-style: normal;
  line-height: 1.7;
}

.diary-card-copy em {
  margin-top: 13px;
  max-width: 430px;
}

.diary-card-settings {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 0 30px;
  border: 0;
  border-top: 1px solid #ebedf3;
  color: var(--diary-accent);
  background: var(--diary-soft);
  cursor: pointer;
  font: inherit;
  font-size: 19px;
  font-weight: 900;
  text-align: left;
}

.diary-card-settings b {
  font-size: 36px;
  font-weight: 400;
  line-height: 1;
}

.diary-card-settings:hover,
.diary-card-settings:focus-visible {
  filter: saturate(1.15) brightness(0.98);
}

.diary-tip {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 26px;
  padding: 20px 24px;
  border-radius: 22px;
  color: #5e6480;
  background: linear-gradient(135deg, #f2efff, #f9f7ff);
}

.diary-tip > span {
  display: grid;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #dfd9ff;
  place-items: center;
  font-size: 22px;
}

.diary-tip p {
  margin: 0;
  line-height: 1.6;
}

.diary-tip strong {
  display: block;
  margin-bottom: 2px;
  color: var(--brand);
}

.top-actions {
  display: flex;
  justify-content: flex-end;
  margin: -4px 0 14px;
}

.hint {
  margin: 12px 0 16px;
  color: var(--muted);
  line-height: 1.7;
}

.check-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.check-item {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 10px;
  min-height: 58px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  background: #fff;
  font-size: 17px;
  font-weight: 700;
}

.check-item input {
  width: 24px;
  min-height: 24px;
  accent-color: var(--brand);
}

.eyebrow {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 13px;
}

.header-actions,
.panel-head,
.tabs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ghost-button,
.primary-button,
.link-button,
.tab {
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  font: inherit;
}

.ghost-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  color: var(--brand);
  background: var(--brand-soft);
}

.ghost-button input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.primary-button {
  min-height: 44px;
  padding: 0 22px;
  color: #fff;
  background: var(--brand);
}

.primary-button:disabled,
.ghost-button:disabled {
  cursor: not-allowed;
  opacity: 0.62;
}

.link-button {
  color: var(--muted);
  background: transparent;
}

.android-download-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid rgba(102, 86, 245, 0.22);
  border-radius: 14px;
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 750;
  text-decoration: none;
  transition: transform 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
  -webkit-tap-highlight-color: transparent;
}

.android-download-link svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.android-download-link:hover {
  background: #e8e3ff;
  box-shadow: 0 8px 20px rgba(102, 86, 245, 0.13);
  transform: translateY(-1px);
}

.android-download-link:focus-visible {
  outline: 3px solid rgba(102, 86, 245, 0.28);
  outline-offset: 2px;
}

.android-download-link:active {
  box-shadow: none;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .android-download-link {
    transition: none;
  }
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.summary-card,
.panel,
.chart-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.05);
}

.summary-card {
  padding: 18px;
}

.summary-card strong {
  display: block;
  margin-top: 8px;
  font-size: 28px;
}

.summary-card span {
  color: var(--muted);
}

.panel {
  margin-bottom: 16px;
  padding: 18px;
}

.settings-panel {
  display: grid;
  gap: 16px;
}

.settings-hero {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}

.settings-hero img {
  width: 112px;
  aspect-ratio: 1;
  object-fit: contain;
}

.settings-account {
  margin-top: 8px;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.5;
}

.settings-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
  gap: 10px;
}

.settings-section-head {
  display: grid;
  gap: 4px;
}

.log-form {
  display: grid;
  grid-template-columns: 1.4fr 0.7fr 1.2fr 1fr;
  gap: 14px;
  margin-top: 16px;
}

.simple-log-form,
.new-species-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mating-preset-notice {
  padding: 12px 14px;
  border: 1px solid #cfc8ff;
  border-radius: 14px;
  background: #f6f3ff;
  color: var(--text);
  font-weight: 800;
}

label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: var(--muted);
  font-size: 14px;
}

input,
select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 12px;
  color: var(--text);
  background: #fff;
  font: inherit;
}

.combo-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px;
  gap: 8px;
}

.wide {
  grid-column: span 3;
}

.photo-field input {
  padding-top: 9px;
}

.inline-new-form {
  display: grid;
  grid-template-columns: 1.4fr 0.7fr auto;
  align-items: end;
  gap: 12px;
  margin: 16px 0;
  padding: 14px;
  border: 1px dashed #cfc8ff;
  border-radius: 16px;
  background: #faf8ff;
}

.tabs {
  justify-content: flex-start;
  margin: 18px 0 12px;
  overflow-x: auto;
}

.tab {
  flex: 0 0 auto;
  padding: 10px 16px;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
}

.tab.active {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: transparent;
  font-weight: 700;
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

.table-search {
  max-width: 240px;
}

.table-filter {
  max-width: 150px;
}

.table-tools {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 13px;
}

.table-tools > span {
  margin-left: auto;
}

.log-category-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.data-center-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0 18px;
}

.data-center-tabs button {
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 0 22px;
  color: var(--muted);
  background: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.data-center-tabs button.active {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: transparent;
}

.data-center-date-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 4px 0 14px;
}

.data-center-date-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.data-center-date-left span {
  color: var(--muted);
  font-weight: 900;
}

.data-center-date-left select {
  width: auto;
  min-width: 112px;
}

.danger-button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  padding: 0 16px;
  color: #d90000;
  background: #fff0f0;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.permission-switch {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  color: var(--text);
  font-weight: 900;
}

.permission-switch input {
  width: 18px;
  min-height: 18px;
}

/* v327 管理账号首页：选定的顶部统计 + 连续设置表单方案 */
#userManageView:not(.account-submenu-active) > .panel {
  display: flex;
  width: min(820px, 100%);
  flex-direction: column;
  margin-inline: auto;
  padding: clamp(24px, 5vw, 48px);
  border-color: rgba(222, 228, 232, .92);
  border-radius: clamp(24px, 4vw, 36px);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 18px 48px rgba(30, 52, 39, .08);
}

#userManageView:not(.account-submenu-active) > .panel > .panel-head { order: 1; }
#userManageView:not(.account-submenu-active) > .panel > .panel-head .eyebrow { display: none; }

#userManageView:not(.account-submenu-active) > .panel > .panel-head h2 {
  color: #111a2d;
  font-size: clamp(34px, 5.5vw, 52px);
  line-height: 1.08;
  letter-spacing: -.035em;
}

#userManageView:not(.account-submenu-active) > .panel > .auth-subtitle {
  order: 2;
  max-width: 34em;
  margin: clamp(18px, 3vw, 28px) 0 0;
  color: #69748a;
  font-size: clamp(15px, 2.3vw, 21px);
  font-weight: 700;
  line-height: 1.65;
}

#userManageView:not(.account-submenu-active) #userManageCards { order: 3; }
#userManageView:not(.account-submenu-active) .permission-admin-grid { order: 4; }
#userManageView:not(.account-submenu-active) #pendingAuthReviewList { order: 5; }

#userManageView:not(.account-submenu-active) .account-role-section {
  margin-top: clamp(24px, 4vw, 38px);
}

#userManageView:not(.account-submenu-active) .account-role-grid {
  gap: 0;
  overflow: hidden;
  border: 1px solid #dfe4e8;
  border-radius: clamp(18px, 3vw, 26px);
  background: #fff;
  box-shadow: none;
}

#userManageView:not(.account-submenu-active) .account-role-card {
  min-height: clamp(104px, 17vw, 146px);
  padding: clamp(18px, 3vw, 28px) clamp(16px, 3vw, 30px);
  border: 0;
  border-radius: 0;
  color: var(--text);
  background: transparent;
  box-shadow: none;
  text-align: center;
}

#userManageView:not(.account-submenu-active) .account-role-card + .account-role-card {
  border-left: 1px solid #e1e6e9;
}

#userManageView:not(.account-submenu-active) .account-role-card:hover,
#userManageView:not(.account-submenu-active) .account-role-card:focus-visible {
  background: #f6faf6;
}

#userManageView:not(.account-submenu-active) .account-role-card:focus-visible {
  z-index: 1;
  outline: 3px solid rgba(64, 139, 78, .24);
  outline-offset: -3px;
}

#userManageView:not(.account-submenu-active) .account-role-card span {
  color: #68738a;
  font-size: clamp(15px, 2.5vw, 22px);
}

#userManageView:not(.account-submenu-active) .account-role-card strong {
  margin: clamp(12px, 2vw, 18px) 0 0;
  color: #438c52;
  font-size: clamp(38px, 6vw, 56px);
}

#userManageView:not(.account-submenu-active) .account-role-card small { display: none; }

#userManageView:not(.account-submenu-active) .permission-admin-grid {
  display: block;
  overflow: hidden;
  margin: clamp(28px, 4.5vw, 42px) 0 0;
  border: 1px solid #dfe4e8;
  border-radius: clamp(20px, 3vw, 28px);
  background: #fff;
}

#userManageView:not(.account-submenu-active) .permission-box {
  padding: clamp(22px, 4vw, 34px);
  border: 0;
  border-radius: 0;
  background: transparent;
}

#userManageView:not(.account-submenu-active) .permission-box + .permission-box {
  border-top: 1px solid #e2e7e9;
}

#userManageView:not(.account-submenu-active) .permission-section-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(12px, 2vw, 18px);
}

#userManageView:not(.account-submenu-active) .permission-section-icon {
  display: inline-flex;
  width: clamp(42px, 6vw, 56px);
  height: clamp(42px, 6vw, 56px);
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #438c52;
  background: #eef6ed;
}

#userManageView:not(.account-submenu-active) .permission-section-icon svg {
  width: 55%;
  height: 55%;
  stroke-width: 1.9;
}

#userManageView:not(.account-submenu-active) .permission-section-head h3 {
  margin: 0;
  color: #111a2d;
  font-size: clamp(20px, 3vw, 28px);
  line-height: 1.2;
}

#userManageView:not(.account-submenu-active) .permission-setting-copy {
  display: grid;
  gap: 8px;
  margin-top: clamp(18px, 3vw, 28px);
}

#userManageView:not(.account-submenu-active) .permission-setting-copy strong {
  color: #111a2d;
  font-size: clamp(16px, 2.4vw, 21px);
}

#userManageView:not(.account-submenu-active) .permission-setting-copy small {
  margin: 0;
  color: #68738a;
  font-size: clamp(13px, 2vw, 17px);
  line-height: 1.55;
}

#userManageView:not(.account-submenu-active) .permission-master-switch,
#userManageView:not(.account-submenu-active) .permission-master-switch input {
  width: 64px;
  height: 38px;
}

#userManageView:not(.account-submenu-active) .permission-master-switch input {
  position: relative;
  min-height: 38px;
  margin: 0;
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: #cfd6d3;
  cursor: pointer;
  transition: background-color 160ms ease;
}

#userManageView:not(.account-submenu-active) .permission-master-switch input::before {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 7px rgba(31, 53, 38, .22);
  content: "";
  transition: transform 160ms ease;
}

#userManageView:not(.account-submenu-active) .permission-master-switch input:checked { background: #438c52; }
#userManageView:not(.account-submenu-active) .permission-master-switch input:checked::before { transform: translateX(26px); }

#userManageView:not(.account-submenu-active) .permission-master-switch input:focus-visible {
  outline: 3px solid rgba(67, 140, 82, .26);
  outline-offset: 3px;
}

#userManageView:not(.account-submenu-active) .permission-create-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(18px, 3vw, 26px);
  align-items: stretch;
}

#userManageView:not(.account-submenu-active) .permission-create-form .permission-section-head {
  grid-template-columns: auto minmax(0, 1fr);
}

#userManageView:not(.account-submenu-active) .permission-create-form label,
#userManageView:not(.account-submenu-active) .managed-role-field {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
  color: #111a2d;
  font-size: clamp(15px, 2.2vw, 19px);
  font-weight: 800;
}

#userManageView:not(.account-submenu-active) .managed-role-field legend {
  margin-bottom: 10px;
  padding: 0;
}

#userManageView:not(.account-submenu-active) .permission-create-form input:not([type="checkbox"]) {
  min-height: clamp(54px, 8vw, 66px);
  padding: 0 clamp(16px, 2.8vw, 22px);
  border: 1px solid #dce2e7;
  border-radius: clamp(14px, 2.3vw, 18px);
  color: #111a2d;
  background: #fff;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 700;
}

#userManageView:not(.account-submenu-active) .permission-create-form input:not([type="checkbox"]):focus {
  border-color: #7f70f4;
  outline: 3px solid rgba(101, 79, 244, .14);
}

#userManageView:not(.account-submenu-active) .managed-role-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #dce2e7;
  border-radius: clamp(14px, 2.3vw, 18px);
}

#userManageView:not(.account-submenu-active) .managed-role-option {
  min-width: 0;
  min-height: clamp(54px, 8vw, 66px);
  padding: 0 10px;
  border: 0;
  color: #172036;
  background: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

#userManageView:not(.account-submenu-active) .managed-role-option + .managed-role-option {
  border-left: 1px solid #dce2e7;
}

#userManageView:not(.account-submenu-active) .managed-role-option.active {
  color: #438c52;
  background: #f0f7ef;
  box-shadow: inset 0 0 0 1px #77b083;
}

#userManageView:not(.account-submenu-active) .managed-role-option:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid rgba(67, 140, 82, .24);
  outline-offset: -3px;
}

#userManageView:not(.account-submenu-active) .permission-create-form > .primary-button {
  min-height: clamp(56px, 8.5vw, 70px);
  border-radius: clamp(14px, 2.3vw, 18px);
  font-size: clamp(18px, 2.8vw, 23px);
}

@media (max-width: 640px) {
  #userManageView:not(.account-submenu-active) > .panel {
    padding: 18px 14px;
    border-radius: 24px;
  }

  #userManageView:not(.account-submenu-active) > .panel > .panel-head {
    width: 100%;
    align-items: flex-start;
    text-align: left;
  }

  #userManageView:not(.account-submenu-active) > .panel > .panel-head h2 {
    font-size: 28px;
  }

  #userManageView:not(.account-submenu-active) > .panel > .auth-subtitle {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.45;
  }

  #userManageView:not(.account-submenu-active) .account-role-section {
    margin-top: 14px;
  }

  #userManageView:not(.account-submenu-active) .account-role-card {
    min-height: 78px;
    padding: 11px 8px;
  }

  #userManageView:not(.account-submenu-active) .account-role-card span { font-size: 13px; }

  #userManageView:not(.account-submenu-active) .account-role-card strong {
    margin-top: 8px;
    font-size: 30px;
  }

  #userManageView:not(.account-submenu-active) .permission-admin-grid {
    margin-top: 14px;
    border-radius: 18px;
  }

  #userManageView:not(.account-submenu-active) .permission-box { padding: 14px; }

  #userManageView:not(.account-submenu-active) .permission-section-icon {
    width: 34px;
    height: 34px;
  }

  #userManageView:not(.account-submenu-active) .permission-section-head {
    gap: 10px;
  }

  #userManageView:not(.account-submenu-active) .permission-section-head h3 {
    font-size: 18px;
  }

  #userManageView:not(.account-submenu-active) .permission-setting-copy {
    gap: 4px;
    margin-top: 10px;
  }

  #userManageView:not(.account-submenu-active) .permission-setting-copy strong {
    font-size: 14px;
  }

  #userManageView:not(.account-submenu-active) .permission-setting-copy small {
    font-size: 11px;
    line-height: 1.4;
  }

  #userManageView:not(.account-submenu-active) .permission-master-switch,
  #userManageView:not(.account-submenu-active) .permission-master-switch input {
    width: 54px;
    height: 32px;
  }

  #userManageView:not(.account-submenu-active) .permission-master-switch input { min-height: 32px; }

  #userManageView:not(.account-submenu-active) .permission-master-switch input::before {
    width: 24px;
    height: 24px;
  }

  #userManageView:not(.account-submenu-active) .permission-master-switch input:checked::before { transform: translateX(22px); }

  #userManageView:not(.account-submenu-active) .permission-create-form {
    gap: 10px;
  }

  #userManageView:not(.account-submenu-active) .permission-create-form label,
  #userManageView:not(.account-submenu-active) .managed-role-field {
    gap: 5px;
    font-size: 13px;
  }

  #userManageView:not(.account-submenu-active) .managed-role-field legend {
    margin-bottom: 5px;
  }

  #userManageView:not(.account-submenu-active) .permission-create-form input:not([type="checkbox"]),
  #userManageView:not(.account-submenu-active) .managed-role-option {
    min-height: 42px;
    font-size: 14px;
  }

  #userManageView:not(.account-submenu-active) .managed-role-options {
    border-radius: 12px;
  }

  #userManageView:not(.account-submenu-active) .permission-create-form > .primary-button {
    min-height: 48px;
    border-radius: 12px;
    font-size: 16px;
  }
}

.permission-admin-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(360px, 1.3fr);
  gap: 14px;
  margin: 18px 0;
}

.permission-box {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
  background: #fff;
}

.permission-box h3 {
  margin: 0 0 12px;
}

.permission-box small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-weight: 800;
}

.permission-create-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 12px;
  align-items: end;
}

.permission-create-form h3 {
  grid-column: 1 / -1;
}

.permission-create-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--muted);
  font-weight: 900;
}

.permission-create-form input,
.permission-create-form select {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 12px;
  font: inherit;
  font-weight: 800;
}

.permission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
  min-width: 720px;
}

.permission-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: #fbfcff;
}

.permission-card strong {
  color: var(--text);
}

.permission-card .permission-switch {
  align-items: flex-start;
  font-size: 0.9rem;
}

.permission-category-card {
  gap: 12px;
  padding: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(38, 46, 70, 0.05);
}

.permission-category-head {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-bottom: 1px solid #e7e8f1;
  background: linear-gradient(135deg, #f5f1ff, #fbfcff);
}

.permission-category-head strong,
.permission-category-head small {
  display: block;
}

.permission-category-head strong {
  font-size: 18px;
}

.permission-category-head small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.permission-entry-switch {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #cfc6ff;
  border-radius: 12px;
  color: #5d48ee;
  background: #fff;
}

.permission-entry-switch input {
  accent-color: #654ff4;
}

.permission-function-list {
  display: grid;
  gap: 9px;
  padding: 0 14px 14px;
}

.permission-function-list > b {
  color: #768096;
  font-size: 12px;
}

.permission-function-list .permission-switch {
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #e4e7ef;
  border-radius: 10px;
  background: #fbfcff;
}

/* v329 员工权限：一级模块选项卡 + 二级操作权限 */
.employee-permission-editor {
  display: grid;
  gap: 12px;
}

.employee-permission-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.employee-permission-intro strong,
.employee-permission-intro small {
  display: block;
}

.employee-permission-intro strong {
  color: #172033;
  font-size: 18px;
}

.employee-permission-intro small {
  max-width: 560px;
  margin-top: 5px;
  color: #707b90;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.55;
}

.permission-clear-button {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #ffd9dc;
  border-radius: 12px;
  color: #d9363e;
  background: #fff7f7;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
}

.permission-module-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding: 0;
}

.permission-module-tabs::-webkit-scrollbar {
  display: none;
}

.permission-module-tab {
  display: grid;
  min-width: 0;
  min-height: 58px;
  place-items: center;
  gap: 3px;
  padding: 7px 3px;
  border: 1px solid #e1e5eb;
  border-radius: 16px;
  color: #4c566c;
  background: rgba(255, 255, 255, 0.92);
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 5px 16px rgba(27, 36, 55, 0.04);
}

.permission-module-tab em {
  color: #929bad;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

.permission-module-tab em.enabled {
  color: #16834c;
}

.permission-module-tab.active {
  border-color: #6a55f5;
  color: #fff;
  background: linear-gradient(135deg, #6a55f5, #5944e8);
  box-shadow: 0 10px 24px rgba(96, 76, 237, 0.22);
}

.permission-module-tab.active em,
.permission-module-tab.active em.enabled {
  color: rgba(255, 255, 255, 0.82);
}

.permission-module-panel {
  overflow: hidden;
  border: 1px solid #dfe5e4;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 30px rgba(24, 45, 39, 0.07);
}

.permission-module-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
  border-bottom: 1px solid #e6ebe9;
  background: linear-gradient(135deg, #f5fbf7 0%, #fbf9ff 100%);
}

.permission-module-kicker {
  color: #238451;
  font-size: 12px;
  font-weight: 900;
}

.permission-module-head h4 {
  margin: 3px 0 2px;
  color: #162136;
  font-size: 22px;
}

.permission-module-head p {
  margin: 0;
  color: #778196;
  font-size: 12px;
  font-weight: 750;
}

.permission-master-switch {
  display: flex;
  align-items: center;
  flex: 0 0 146px;
  gap: 9px;
  min-height: 54px;
  padding: 9px 11px;
  border: 1px solid #e1e5eb;
  border-radius: 16px;
  background: #fff;
}

.permission-master-switch.enabled {
  border-color: #b9dec9;
  background: #f2fbf6;
}

.permission-master-switch input,
.permission-option input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: #1f9a5b;
}

.permission-master-switch span,
.permission-master-switch b,
.permission-master-switch small {
  display: block;
}

.permission-master-switch b {
  color: #30394b;
  font-size: 13px;
}

.permission-master-switch.enabled b {
  color: #147945;
}

.permission-master-switch small {
  margin-top: 3px;
  color: #828b9d;
  font-size: 11px;
  font-weight: 750;
}

.permission-module-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 6px;
}

.permission-module-summary strong {
  color: #273146;
  font-size: 16px;
}

.permission-module-summary span {
  color: #7d8799;
  font-size: 12px;
  font-weight: 800;
}

.permission-section-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 10px 16px 16px;
}

.permission-subsection {
  padding: 12px;
  border: 1px solid #e5e9ee;
  border-radius: 16px;
  background: #fbfcfd;
}

.permission-subsection h5 {
  margin: 0 0 10px;
  color: #59647a;
  font-size: 13px;
}

.permission-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.permission-option {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 8px 9px;
  border: 1px solid #e3e7ec;
  border-radius: 12px;
  color: #313a4c;
  background: #fff;
  font-size: 12px;
  font-weight: 850;
}

.permission-option.checked {
  border-color: #bee1cc;
  color: #147945;
  background: #f2fbf6;
}

@media (max-width: 700px) {
  .employee-permission-intro {
    align-items: flex-start;
  }

  .employee-permission-intro small {
    max-width: 235px;
  }

  .permission-clear-button {
    white-space: nowrap;
  }

  .permission-module-head {
    align-items: center;
  }

  .permission-module-head p {
    max-width: 170px;
  }

  .permission-master-switch {
    flex-basis: 130px;
  }

  .permission-section-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 760px) {
  .permission-module-tabs {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}

/* v331 员工权限方案 3：模块入口矩阵 + 具体操作面板 */
.account-action-menu {
  position: relative;
  z-index: 4;
}

.employee-permission-list-panel {
  gap: 10px;
  padding-top: 10px;
}

.permission-page-head {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
}

.permission-page-head h3 {
  grid-column: 2;
  margin: 0;
  color: #172136;
  font-size: 22px;
  text-align: center;
}

.permission-page-head button {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 0;
  border-radius: 12px;
  color: #263147;
  background: transparent;
}

.permission-page-head button:hover,
.permission-page-head button:focus-visible {
  color: #5b48e8;
  background: #f1eeff;
  outline: none;
}

.account-action-menu summary {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 12px;
  color: #5f687b;
  cursor: pointer;
  list-style: none;
}

.account-action-menu summary::-webkit-details-marker {
  display: none;
}

.account-action-menu summary:hover,
.account-action-menu summary:focus-visible {
  color: #5847e6;
  background: #f2efff;
  outline: none;
}

.account-action-menu summary svg {
  width: 24px;
  height: 24px;
}

.account-action-menu > div {
  position: absolute;
  top: 48px;
  right: 0;
  width: max-content;
  padding: 6px;
  border: 1px solid #e5e7ed;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(24, 31, 46, 0.14);
}

.account-action-menu .danger-cell-button {
  min-height: 42px;
  border: 0;
  border-radius: 9px;
}

.employee-permission-editor {
  gap: 14px;
}

.employee-permission-intro {
  padding: 4px 2px 0;
}

.employee-permission-intro strong {
  font-size: 20px;
}

.employee-permission-intro small {
  max-width: 520px;
  font-size: 13px;
  line-height: 1.45;
}

.permission-clear-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  border-color: #e3dfff;
  color: #5c49e8;
  background: #fff;
}

.permission-clear-button svg {
  width: 16px;
  height: 16px;
}

.permission-mode-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border: 1px solid #e1e4eb;
  border-radius: 18px;
  background: #f7f7fa;
}

.permission-mode-tabs button {
  min-height: 46px;
  border: 0;
  border-radius: 14px;
  color: #677085;
  background: transparent;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
}

.permission-mode-tabs button.active {
  color: #5946e8;
  background: #eeeaff;
}

.permission-mode-tabs button:focus-visible,
.permission-module-select:focus-visible,
.permission-section-tabs button:focus-visible,
.permission-sheet-head button:focus-visible {
  outline: 3px solid rgba(101, 79, 244, 0.24);
  outline-offset: 2px;
}

.permission-module-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.permission-module-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 88px;
  padding: 10px 11px;
  border: 1px solid #e2e5eb;
  border-radius: 16px;
  background: #fff;
}

.permission-module-card.active {
  border: 2px solid #6450ef;
  padding: 9px 10px;
  background: #fdfcff;
}

.permission-module-select {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 48px;
  gap: 8px;
  padding: 0;
  border: 0;
  color: #1d273b;
  background: transparent;
  font: inherit;
  text-align: left;
}

.permission-module-select > svg {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  color: #758097;
  stroke-width: 1.8;
}

.permission-module-card.active .permission-module-select > svg {
  color: #6550ef;
}

.permission-module-select span,
.permission-module-select b,
.permission-module-select small {
  display: block;
  min-width: 0;
}

.permission-module-select b {
  overflow-wrap: anywhere;
  font-size: 14px;
  line-height: 1.25;
}

.permission-module-select small {
  margin-top: 5px;
  color: #818a9c;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.permission-toggle {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  width: 46px;
  height: 28px;
  align-items: center;
}

.permission-toggle > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.permission-toggle > span:last-child {
  position: relative;
  display: block;
  width: 46px;
  height: 28px;
  border-radius: 999px;
  background: #d8dce4;
  transition: background-color 140ms ease;
}

.permission-toggle > span:last-child::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(26, 34, 48, 0.16);
  content: "";
  transition: transform 140ms ease;
}

.permission-toggle > input:checked + span {
  background: #2e9d5d;
}

.permission-toggle > input:checked + span::after {
  transform: translateX(18px);
}

.permission-toggle > input:focus-visible + span {
  outline: 3px solid rgba(101, 79, 244, 0.24);
  outline-offset: 2px;
}

.permission-module-sheet {
  overflow: hidden;
  border: 1px solid #e0e4e9;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 -8px 28px rgba(30, 38, 52, 0.07);
}

.permission-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 16px 6px;
}

.permission-sheet-head h4 {
  margin: 0;
  color: #1b2539;
  font-size: 18px;
}

.permission-sheet-head button {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 0;
  border-radius: 12px;
  color: #4f596d;
  background: transparent;
}

.permission-sheet-progress {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 0 16px;
  color: #6550ef;
  font-size: 13px;
  font-weight: 900;
}

.permission-sheet-progress progress {
  width: 100%;
  height: 5px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: #e3e5eb;
  accent-color: #6550ef;
}

.permission-sheet-progress progress::-webkit-progress-bar {
  border-radius: 999px;
  background: #e3e5eb;
}

.permission-sheet-progress progress::-webkit-progress-value {
  border-radius: 999px;
  background: #6550ef;
}

.permission-sheet-helper {
  margin: 8px 16px 10px;
  color: #858ea0;
  font-size: 12px;
  font-weight: 750;
}

.permission-section-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid #e5e8ed;
  padding: 0 12px;
}

.permission-section-tabs button {
  position: relative;
  min-height: 48px;
  padding: 0 3px;
  border: 0;
  color: #687286;
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 850;
}

.permission-section-tabs button.active {
  color: #5c48e8;
}

.permission-section-tabs button.active::after {
  position: absolute;
  right: 14%;
  bottom: -1px;
  left: 14%;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: #6550ef;
  content: "";
}

.permission-action-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 16px;
}

.permission-action-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  min-height: 62px;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border: 1.5px solid #d7dce4;
  border-radius: 14px;
  color: #2a3448;
  background: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.35;
  transition: border-color 140ms ease, background-color 140ms ease;
}

.permission-action-row:has(input:checked) {
  border-color: #58a978;
  background: #f3faf6;
}

.permission-action-row input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.permission-action-check {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid #9ba4b5;
  border-radius: 50%;
  color: transparent;
  background: #fff;
}

.permission-action-check svg {
  width: 18px;
  height: 18px;
  stroke-width: 3;
}

.permission-action-row input:checked + .permission-action-check {
  border-color: #43a469;
  color: #fff;
  background: #43a469;
}

.permission-action-row input:focus-visible + .permission-action-check {
  outline: 3px solid rgba(101, 79, 244, 0.24);
  outline-offset: 2px;
}

.permission-action-row.dangerous:not(:has(input:checked)) > span:last-child {
  color: #d24a4a;
}

.permission-action-hint {
  margin: 0 16px 16px;
  color: #8a93a4;
  font-size: 11px;
  font-weight: 750;
  text-align: center;
}

@media (max-width: 420px) {
  .employee-permission-intro small {
    max-width: 215px;
  }

  .permission-module-card {
    min-height: 84px;
    padding: 9px;
  }

  .permission-module-card.active {
    padding: 8px;
  }

  .permission-module-select {
    gap: 6px;
  }

  .permission-module-select > svg {
    width: 23px;
    height: 23px;
  }

  .permission-module-select b {
    font-size: 13px;
  }

  .permission-toggle,
  .permission-toggle > span:last-child {
    width: 42px;
  }

  .permission-toggle > input:checked + span::after {
    transform: translateX(14px);
  }

  .permission-action-list {
    gap: 8px;
    padding: 12px;
  }

  .permission-action-row {
    min-height: 58px;
    padding: 8px 9px;
    font-size: 12px;
  }
}

@media (min-width: 760px) {
  .permission-module-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .permission-toggle > span:last-child,
  .permission-toggle > span:last-child::after {
    transition: none;
  }
}

.account-role-section {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

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

.account-role-card {
  min-height: 116px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  text-align: left;
  box-shadow: 0 12px 28px rgba(31, 41, 55, 0.05);
}

.account-role-card.active {
  border-color: #cfc8ff;
  background: linear-gradient(135deg, #f7f3ff, #ffffff);
  box-shadow: 0 16px 34px rgba(102, 86, 245, 0.12);
}

.account-role-card span,
.account-role-card strong,
.account-role-card small {
  display: block;
}

.account-role-card span {
  color: var(--muted);
  font-weight: 900;
}

.account-role-card strong {
  margin: 8px 0;
  color: var(--brand);
  font-size: 34px;
  line-height: 1;
}

.account-role-card small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.account-list-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(31, 41, 55, 0.05);
}

.account-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.account-list-head h3 {
  margin: 0;
  font-size: 22px;
}

.account-card-list {
  display: grid;
  gap: 10px;
}

.account-user-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fbfcff;
  cursor: pointer;
}

.account-user-card strong,
.account-user-card small {
  display: block;
}

.account-user-card strong {
  font-size: 18px;
}

.account-user-card small {
  margin-top: 4px;
  color: var(--muted);
  font-weight: 800;
}

.account-user-card > span {
  padding: 6px 10px;
  border-radius: 999px;
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 900;
  white-space: nowrap;
}

.account-detail-card {
  display: grid;
  gap: 12px;
}

.account-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fbfcff;
}

.account-detail-head strong,
.account-detail-head small {
  display: block;
}

.account-detail-head strong {
  font-size: 20px;
}

.account-detail-head small {
  margin-top: 4px;
  color: var(--muted);
  font-weight: 800;
}

.account-detail-card .permission-grid {
  min-width: 0;
}

/* v321 客户账号详情：仅优化账号信息与可见养殖场 */
.customer-account-detail {
  gap: 16px;
}

.customer-account-detail .account-detail-head {
  align-items: center;
  padding: 18px 16px;
  border: 0;
  border-bottom: 1px solid #e2e7e5;
  border-radius: 0;
  background: transparent;
}

.account-detail-identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
}

.account-detail-identity > span:last-child {
  min-width: 0;
}

.customer-account-avatar {
  display: inline-flex;
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #4b8f5d;
  background: #edf6ed;
}

.customer-account-avatar svg {
  width: 32px;
  height: 32px;
  stroke-width: 1.8;
}

.customer-account-detail .account-detail-head strong {
  overflow-wrap: anywhere;
  color: #111a2d;
  font-size: 22px;
  line-height: 1.1;
}

.customer-account-detail .account-detail-head small {
  margin-top: 7px;
  color: #778196;
  font-size: 13px;
}

.customer-account-detail .danger-cell-button {
  display: inline-flex;
  flex: 0 0 auto;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  color: #d9261c;
  background: transparent;
  white-space: nowrap;
}

.customer-account-detail .danger-cell-button svg {
  width: 18px;
  height: 18px;
  stroke-width: 2;
}

.customer-account-detail .danger-cell-button:active {
  background: #fff1f0;
}

.customer-access-grid {
  display: block;
}

.customer-access-card {
  gap: 10px;
  padding: 4px 16px 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.customer-access-card > strong {
  color: #111a2d;
  font-size: 20px;
  line-height: 1.25;
}

.customer-access-card > small {
  max-width: 62ch;
  color: #5f6a80;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.55;
}

.customer-access-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 4px;
}

.customer-access-card .customer-access-option {
  min-width: 0;
  min-height: 58px;
  align-items: center;
  justify-content: flex-start;
  padding: 9px 12px;
  border: 1px solid #dce2e6;
  border-radius: 14px;
  color: #172036;
  background: #fff;
  cursor: pointer;
  transition: border-color 140ms ease, background-color 140ms ease;
}

.customer-access-card .customer-access-option:has(input:checked) {
  border-color: #438b4d;
  color: #214e2b;
  background: #f0f7ee;
}

.customer-access-card .customer-access-option input {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  min-height: 24px;
  margin: 0;
  accent-color: #438b4d;
}

.customer-access-card .customer-access-option span {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 16px;
  line-height: 1.2;
}

.customer-access-card .customer-access-option:focus-within {
  outline: 3px solid rgba(67, 139, 77, .2);
  outline-offset: 2px;
}

/* v324 客户账号列表：对应选定的轻量账号卡方案 */
.customer-account-list-section {
  margin-top: 0;
}

.customer-account-list-panel {
  gap: clamp(18px, 3vw, 30px);
  padding: clamp(24px, 4.2vw, 42px);
  border-color: rgba(220, 227, 231, .92);
  border-radius: clamp(22px, 4vw, 36px);
  box-shadow: 0 18px 44px rgba(27, 48, 36, .07);
}

.customer-account-list-panel .account-list-head .eyebrow {
  display: none;
}

.customer-account-list-panel .account-list-head h3 {
  color: #111a2d;
  font-size: clamp(32px, 5.2vw, 48px);
  line-height: 1.08;
  letter-spacing: -.025em;
}

.customer-account-list-summary {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: clamp(10px, 1.7vw, 18px);
  color: #68738a;
}

.customer-account-list-summary-icon {
  display: inline-flex;
  flex: 0 0 clamp(42px, 6vw, 60px);
  width: clamp(42px, 6vw, 60px);
  height: clamp(42px, 6vw, 60px);
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #3f8050;
  background: #edf5ec;
}

.customer-account-list-summary-icon svg {
  width: 55%;
  height: 55%;
  stroke-width: 1.8;
}

.customer-account-list-summary strong {
  color: #2e6d3d;
  font-size: clamp(18px, 3vw, 28px);
  line-height: 1.2;
  white-space: nowrap;
}

.customer-account-list-summary > i {
  width: 1px;
  height: 24px;
  background: #cfd6d4;
}

.customer-account-list-summary small {
  min-width: 0;
  color: #6f798e;
  font-size: clamp(13px, 2vw, 19px);
  font-weight: 700;
  line-height: 1.3;
}

.customer-account-list-panel .account-card-list {
  gap: clamp(10px, 1.8vw, 18px);
}

.customer-account-list-row {
  grid-template-columns: clamp(54px, 8vw, 78px) minmax(0, 1fr) auto clamp(18px, 2.8vw, 26px);
  gap: clamp(10px, 1.8vw, 20px);
  min-height: clamp(112px, 18vw, 160px);
  padding: clamp(16px, 2.7vw, 28px);
  border-color: #dfe5ea;
  border-radius: clamp(18px, 2.8vw, 26px);
  color: #111a2d;
  background: #fff;
  box-shadow: 0 8px 18px rgba(28, 44, 35, .025);
  transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}

.customer-account-list-row:hover,
.customer-account-list-row:focus-visible {
  border-color: #a9c8ad;
  background: #fbfdfb;
  box-shadow: 0 10px 24px rgba(34, 94, 52, .08);
}

.customer-account-list-row:focus-visible {
  outline: 3px solid rgba(58, 128, 73, .22);
  outline-offset: 2px;
}

.customer-account-list-row > .customer-account-list-avatar {
  display: inline-flex;
  width: 100%;
  aspect-ratio: 1;
  align-items: center;
  justify-content: center;
  border: 1px solid #e0e5eb;
  border-radius: 50%;
  color: #172036;
  background: #f6f8fb;
}

.customer-account-list-row > .customer-account-list-avatar svg {
  width: 52%;
  height: 52%;
  stroke-width: 1.85;
}

.customer-account-list-row .account-user-card-identity {
  min-width: 0;
}

.customer-account-list-row .account-user-card-identity strong {
  overflow-wrap: anywhere;
  color: #111a2d;
  font-size: clamp(19px, 3.4vw, 30px);
  line-height: 1.15;
}

.customer-account-list-row .account-user-card-identity small {
  margin-top: clamp(6px, 1vw, 10px);
  color: #6f798e;
  font-size: clamp(12px, 1.9vw, 18px);
  line-height: 1.25;
  white-space: nowrap;
}

.customer-account-list-row > .customer-account-list-status {
  display: grid;
  justify-items: end;
  gap: 3px;
  padding: 0;
  border-radius: 0;
  color: #2e6d3d;
  background: transparent;
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
}

.customer-account-list-status b,
.customer-account-list-status em {
  font-size: clamp(12px, 2vw, 19px);
  font-style: normal;
  line-height: 1.2;
}

.customer-account-list-status.unassigned {
  color: #748096;
}

.customer-account-list-row > .customer-account-list-chevron {
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 0;
  color: #778195;
  background: transparent;
}

.customer-account-list-row > .customer-account-list-chevron svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.8;
}

#userManageView.account-submenu-active > .panel {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#userManageView.account-submenu-active > .panel > .panel-head,
#userManageView.account-submenu-active .auth-subtitle,
#userManageView.account-submenu-active .permission-admin-grid,
#userManageView.account-submenu-active #pendingAuthReviewList {
  display: none !important;
}

@media (max-width: 640px) {
  .account-role-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .account-role-card {
    min-height: 94px;
    padding: 12px 10px;
    border-radius: 14px;
  }

  .account-role-card strong {
    font-size: 28px;
  }

  .account-role-card small {
    font-size: 10px;
    line-height: 1.25;
  }

  .account-list-panel {
    padding: 12px;
    border-radius: 16px;
  }

  .account-list-head {
    align-items: flex-start;
  }

  .account-list-head .ghost-button {
    min-height: 34px;
    padding: 0 10px;
    white-space: nowrap;
  }

  .account-user-card {
    padding: 12px;
    border-radius: 14px;
  }

  .account-user-card > span {
    padding: 5px 8px;
    font-size: 12px;
  }

  .customer-account-list-panel {
    gap: 16px;
    margin-inline: 6px;
    padding: 18px 18px 20px;
    border-radius: 22px;
  }

  .customer-account-list-panel .account-list-head h3 {
    font-size: 28px;
  }

  .customer-account-list-summary {
    grid-template-columns: 34px auto minmax(0, 1fr);
    gap: 8px;
  }

  .customer-account-list-summary-icon {
    width: 34px;
    height: 34px;
  }

  .customer-account-list-summary strong {
    font-size: 18px;
  }

  .customer-account-list-summary > i {
    display: none;
  }

  .customer-account-list-summary small {
    font-size: 12px;
  }

  .customer-account-list-row {
    grid-template-columns: 40px minmax(0, 1fr) auto 16px;
    gap: 9px;
    min-height: 78px;
    padding: 10px 12px;
    border-radius: 16px;
  }

  .customer-account-list-row > .customer-account-list-avatar,
  .customer-account-list-row > .customer-account-list-status,
  .customer-account-list-row > .customer-account-list-chevron {
    padding: 0;
  }

  .customer-account-list-row .account-user-card-identity strong {
    font-size: 18px;
  }

  .customer-account-list-row .account-user-card-identity small {
    font-size: 11px;
  }

  .customer-account-list-status b,
  .customer-account-list-status em {
    font-size: 11px;
  }

  .account-detail-head {
    align-items: flex-start;
    padding: 12px;
  }

  .account-detail-card .permission-grid {
    grid-template-columns: 1fr;
  }

  .customer-account-detail .account-detail-head {
    align-items: center;
    padding: 16px 10px 16px;
  }

  .customer-account-avatar {
    flex-basis: 52px;
    width: 52px;
    height: 52px;
  }

  .customer-account-detail .account-detail-head strong {
    font-size: 19px;
  }

  .customer-account-detail .account-detail-head small {
    font-size: 11px;
  }

  .customer-account-detail .danger-cell-button {
    min-height: 44px;
    padding-inline: 10px;
    font-size: 12px;
  }

  .customer-access-card {
    padding: 2px 10px 16px;
  }

  .customer-access-card > strong {
    font-size: 18px;
  }

  .customer-access-card > small {
    font-size: 12px;
  }

  .customer-access-options {
    gap: 8px;
  }

  .customer-access-card .customer-access-option {
    min-height: 56px;
    gap: 7px;
    padding: 8px 9px;
    border-radius: 12px;
  }

  .customer-access-card .customer-access-option input {
    width: 22px;
    height: 22px;
    min-height: 22px;
  }

  .customer-access-card .customer-access-option span {
    font-size: 14px;
  }
}

.pending-review-box {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(130px, 1fr) auto;
  gap: 10px;
  align-items: end;
  min-width: 520px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fbfcff;
}

.pending-review-box strong,
.pending-review-box small {
  grid-column: 1 / -1;
}

.pending-review-box label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--muted);
  font-weight: 900;
}

.pending-review-box select {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0 10px;
  font: inherit;
  font-weight: 800;
}

.pending-review-section {
  margin: 14px 0 18px;
  padding: 16px;
  border: 1px dashed #c8bbff;
  border-radius: 20px;
  background: #fbf8ff;
}

.pending-review-head,
.pending-review-row {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

.pending-review-head {
  margin-bottom: 12px;
  color: var(--muted);
}

.pending-review-head strong,
.pending-review-row strong {
  display: block;
  color: var(--text);
}

.pending-review-head small,
.pending-review-row small {
  display: block;
  color: var(--muted);
  font-weight: 800;
}

.pending-review-list {
  display: grid;
  gap: 12px;
}

  .pending-review-row {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    min-width: 0;
  }

.mini-primary-button {
  min-height: 38px;
  border: 0;
  border-radius: 10px;
  padding: 0 14px;
  color: #5b45ff;
  background: #efeaff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.log-date-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.log-category-buttons button {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 16px;
  color: var(--muted);
  background: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.log-category-buttons button.active {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: transparent;
}

.custom-date-range {
  display: none;
  align-items: center;
  gap: 6px;
}

.custom-date-range.active {
  display: flex;
}

.custom-date-range input {
  width: 150px;
  min-height: 38px;
}

.table-column-settings {
  position: relative;
}

.table-column-settings summary {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 16px;
  border-radius: 12px;
  color: var(--brand);
  background: var(--brand-soft);
  cursor: pointer;
  font-weight: 900;
  list-style: none;
}

.table-column-settings summary::-webkit-details-marker {
  display: none;
}

.table-column-panel {
  position: absolute;
  top: 46px;
  left: 0;
  z-index: 8;
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 8px;
  min-width: 360px;
  max-width: min(680px, 80vw);
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(32, 37, 51, 0.14);
}

.table-column-panel label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  color: var(--text);
  font-weight: 700;
}

.table-column-panel input {
  width: 18px;
  min-height: 18px;
}

.table-wrap {
  width: 100%;
  margin-top: 14px;
  overflow: auto;
  border: 1.5px solid #0d8ea5;
  border-radius: 14px;
  background: #fff;
}

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 900px;
}

th,
td {
  height: 44px;
  padding: 8px 14px;
  border-right: 1.5px solid #0d8ea5;
  border-bottom: 1.5px solid #0d8ea5;
  text-align: left;
  white-space: nowrap;
}

th:last-child,
td:last-child {
  border-right: 0;
}

tbody tr:last-child td {
  border-bottom: 0;
}

th {
  position: sticky;
  top: 0;
  z-index: 1;
  color: #08a8bd;
  background: #f5fdff;
  font-size: 16px;
  font-weight: 900;
  text-align: center;
  cursor: grab;
}

tbody tr {
  cursor: grab;
}

th:active,
tbody tr:active {
  cursor: grabbing;
}

td.number {
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-size: 18px;
  font-weight: 900;
}

td.number.positive {
  color: #08a8bd;
}

td.number.negative {
  color: #d90000;
}

.table-note-input {
  min-width: 220px;
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
}

.table-note-input:focus {
  outline: 2px solid var(--brand-soft);
  background: #fff;
}

.table-actions {
  display: flex;
  justify-content: center;
  gap: 8px;
}

.table-actions button {
  min-height: 30px;
  border: 0;
  border-radius: 8px;
  padding: 0 10px;
  color: var(--brand);
  background: var(--brand-soft);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.table-actions button:last-child {
  color: #d90000;
  background: #fff0f0;
}

.danger-cell-button {
  min-height: 30px;
  border: 0;
  border-radius: 8px;
  padding: 0 10px;
  color: #d90000;
  background: #fff0f0;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #edf0f5;
}

.chart-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  height: calc(100% - 58px);
  margin-top: 14px;
}

.chart-card {
  height: calc(100% - 18px);
  overflow: hidden;
  padding: 16px;
}

.analysis-component {
  margin-bottom: 16px;
  padding: 18px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.05);
}

.component-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  min-height: 38px;
  padding-right: 42px;
}

.component-head h2 {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.25;
}

.component-zone {
  position: relative;
  min-height: 360px;
  margin: 14px 0;
  border-radius: 18px;
}

.component-zone-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
}

.component-zone.drag-over {
  outline: 2px dashed var(--brand);
  outline-offset: 6px;
  background: var(--brand-soft);
}

.zone-placeholder {
  display: block;
  padding: 14px;
  color: var(--muted);
  border: 1px dashed var(--line);
  border-radius: 14px;
  text-align: center;
}

.component-zone.drag-over .zone-placeholder {
  display: block;
}

.analysis-component {
  cursor: move;
}

.components-locked .analysis-component,
.components-locked .component-head,
.components-locked .metric-widget {
  cursor: default;
}

#toggleComponentLock.active-lock {
  color: #fff;
  background: var(--brand);
}

.component-zone > .analysis-component {
  position: absolute;
  max-width: 100%;
}

.analysis-component.dragging {
  opacity: 0.55;
  z-index: 5;
}

.metric-widget {
  position: absolute;
  min-height: 120px;
  padding: 24px;
}

.metric-widget span {
  display: block;
  color: var(--muted);
  font-size: 16px;
  font-weight: 700;
}

.metric-widget strong {
  display: block;
  margin-top: 10px;
  font-size: clamp(26px, 8vw, 34px);
  line-height: 1;
}

.metric-widget small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 16px;
}

.metric-widget-actions {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
  opacity: 1;
  transition: opacity 0.2s;
}

.component-head,
.metric-widget {
  cursor: move;
}

.component-head button,
.component-menu,
.component-menu button,
.period-switcher,
.resize-handle {
  cursor: pointer;
}

.component-zone[data-component-zone="home"] {
  display: block;
  min-height: 520px;
}

.component-zone[data-component-zone="home"] .zone-placeholder {
  width: 100%;
}

.component-zone[data-component-zone="home"] .chart-widget {
  grid-column: auto;
}

.chart-widget {
  position: absolute;
  width: 100%;
  max-width: 100%;
  min-width: 320px;
  min-height: 260px;
  overflow: hidden;
}

.resize-handle {
  position: absolute;
  right: 16px;
  bottom: 16px;
  width: 34px;
  height: 34px;
  border-right: 0;
  border-bottom: 0;
  border-radius: 2px;
  cursor: nwse-resize;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.2s;
}

.analysis-component:hover .resize-handle {
  opacity: 0.18;
}

.components-locked .resize-handle {
  display: none;
}

.resize-handle::before,
.resize-handle::after {
  position: absolute;
  right: 10px;
  bottom: 10px;
  content: "";
  border-right: 2px solid #d9dde6;
  border-bottom: 2px solid #d9dde6;
}

.resize-handle::before {
  width: 12px;
  height: 12px;
}

.resize-handle::after {
  width: 6px;
  height: 6px;
}

.drag-hint {
  display: none;
}

.compact-actions {
  align-items: center;
  gap: 8px;
}

.component-menu {
  position: absolute;
  top: 0;
  right: 0;
  flex: 0 0 auto;
  opacity: 0;
  transition: opacity 0.2s;
}

.analysis-component:hover .component-menu,
.component-menu[open] {
  opacity: 1;
}

.component-menu summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  color: var(--brand);
  background: var(--brand-soft);
  font-size: 22px;
  font-weight: 900;
  list-style: none;
}

.component-menu summary::-webkit-details-marker {
  display: none;
}

.component-menu-panel {
  position: absolute;
  top: 44px;
  right: 0;
  z-index: 10;
  display: grid;
  gap: 6px;
  min-width: 88px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(32, 37, 51, 0.14);
}

.component-menu-panel button {
  min-height: 34px;
  border: 0;
  border-radius: 9px;
  color: var(--text);
  background: #f6f7fb;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.component-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.form-check {
  align-self: end;
  min-height: 44px;
}

.period-switcher {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f7f8fc;
}

.period-switch {
  min-width: clamp(32px, 4vw, 42px);
  min-height: 34px;
  border: 0;
  border-radius: 999px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.period-switch.active {
  color: #fff;
  background: var(--brand);
  box-shadow: 0 6px 16px rgba(102, 86, 245, 0.22);
}

.component-species-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(130px, auto);
  align-items: end;
  gap: 12px;
  padding: 14px;
  border: 1px dashed #cfc8ff;
  border-radius: 16px;
  background: #faf8ff;
}

.component-species-box label {
  min-width: 0;
}

.component-species-box #addComponentSpecies {
  width: 100%;
  max-width: 180px;
  padding: 0 12px;
  white-space: normal;
  text-align: center;
}

.component-species-box .hint {
  grid-column: 1 / -1;
  margin: 0;
}

.chip-list {
  display: flex;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  gap: 8px;
  min-height: 30px;
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  color: var(--text);
  background: #edf0f5;
  font-weight: 700;
}

.chip button {
  border: 0;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  font: inherit;
  line-height: 1;
}

.hint-inline {
  color: var(--muted);
  font-size: 14px;
}

.bar-chart {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  max-height: 260px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 2px 14px 8px 0;
  scrollbar-color: var(--brand) #ede8ff;
  scrollbar-width: auto;
}

.bar-chart::-webkit-scrollbar {
  width: 14px;
}

.bar-chart::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #ede8ff;
}

.bar-chart::-webkit-scrollbar-thumb {
  border: 3px solid #ede8ff;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--brand), #20b486);
}

.bar-row {
  display: grid;
  grid-template-columns: 80px 1fr 64px;
  align-items: center;
  gap: 10px;
}

.bar-track {
  height: 16px;
  overflow: hidden;
  background: #eef1f7;
  border-radius: 999px;
}

.bar-fill {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand), #9b8cff);
}

.preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.preview-card {
  min-height: 360px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(32, 37, 51, 0.05);
}

.preview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.preview-head p {
  margin-top: 6px;
  color: var(--muted);
  line-height: 1.6;
}

.preview-legend {
  display: grid;
  flex: 0 0 auto;
  gap: 8px;
  color: var(--muted);
  font-size: 13px;
}

.preview-legend span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.preview-legend i,
.mini-bars i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.fertile {
  background: var(--brand);
}

.infertile {
  background: var(--orange);
}

.overall-ratio-dot {
  background: var(--text);
}

.vertical-chart {
  display: flex;
  align-items: end;
  gap: clamp(6px, 1.2vw, 14px);
  min-height: 0;
  height: 100%;
  padding: clamp(18px, 2vw, 28px) 8px 0;
  border-radius: 16px;
  background: linear-gradient(180deg, #fafbff 0%, #fff 100%);
  overflow: hidden;
}

.vertical-group {
  display: grid;
  grid-template-rows: 28px var(--stack-height, 180px) 58px 24px;
  justify-items: center;
  flex: 1 1 0;
  min-width: 0;
  gap: clamp(3px, 0.8vw, 8px);
  overflow: hidden;
  align-self: end;
  max-height: 100%;
}

.vertical-group strong {
  color: var(--muted);
  font-size: var(--chart-label-size, 13px);
}

.vertical-bars {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 7px;
  height: 180px;
  width: 54px;
}

.vertical-bar {
  position: relative;
  width: 19px;
  min-height: 4px;
  border-radius: 10px 10px 4px 4px;
}

.vertical-bar span {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 4px);
  transform: translateX(-50%);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.vertical-bar.rounded {
  border-radius: 999px;
}

.change-badge,
.percent-group small,
.compact-row small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.change-up {
  color: #0b8f69;
  background: #e8fff7;
}

.change-down {
  color: #c0392b;
  background: #fff0ed;
}

.change-flat {
  color: var(--muted);
  background: #f0f2f7;
}

.percent-group {
  grid-template-rows: 180px 22px 26px;
}

.stack-bar {
  display: flex;
  flex-direction: column-reverse;
  width: clamp(12px, 28%, 22px);
  min-height: 8px;
  overflow: hidden;
  border-radius: 999px 999px 8px 8px;
  background: #eef1f7;
}

.stack-part {
  width: 100%;
}

.stack-total,
.stack-month-total {
  color: var(--text);
  font-size: var(--chart-label-size, 13px);
  font-weight: 800;
}

.stack-month-total {
  font-size: 11px;
  line-height: 1;
  max-width: 100%;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.thin-stack-group {
  position: relative;
  height: auto;
  grid-template-rows: 18px 84px 42px 22px;
  flex: 1 1 0;
  min-width: 0;
  gap: 2px;
  align-self: center;
}

.thin-stack-group .stack-bar {
  align-self: end;
}

.thin-stack-group .stack-detail {
  align-self: start;
}

.component-thin-stack {
  min-height: 0;
  height: 100%;
  min-width: max(100%, var(--thin-stack-content-width, 100%));
  width: max-content;
  align-items: center;
  padding-top: 8px;
  justify-content: flex-start;
  gap: 22px;
}

.component-thin-stack .thin-stack-group {
  flex: 0 0 var(--group-width, 76px);
}

.thin-stack-card {
  height: calc(100% - 58px);
  margin-top: 14px;
}

.thin-stack-scroll {
  height: calc(100% - 38px);
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 16px;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: var(--brand) #ede8ff;
  scrollbar-width: auto;
}

.thin-stack-scroll::-webkit-scrollbar {
  height: 14px;
}

.thin-stack-scroll::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #ede8ff;
}

.thin-stack-scroll::-webkit-scrollbar-thumb {
  border: 3px solid #ede8ff;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--brand), #20b486);
}

.thin-stack-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.stack-detail {
  display: grid;
  gap: 2px;
  color: var(--muted);
  font-size: var(--chart-detail-size, 11px);
  line-height: 1.25;
  text-align: center;
  width: 100%;
  min-width: 0;
}

.stack-detail span,
.stack-detail b {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stack-detail b {
  color: var(--text);
}

.fertile-text {
  color: var(--brand);
  font-weight: 800;
}

.infertile-text {
  color: var(--orange);
  font-weight: 800;
}

.compact-preview-card {
  min-height: 0;
}

.compact-chart {
  display: grid;
  gap: 11px;
}

.compact-row {
  display: grid;
  grid-template-columns: 80px 54px 48px 58px;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #f0f2f7;
}

.compact-row span {
  color: var(--muted);
}

.compact-row strong {
  font-variant-numeric: tabular-nums;
}

.mini-bars {
  display: flex;
  align-items: end;
  gap: 7px;
  height: 54px;
}

.mini-bars i {
  width: 18px;
  min-height: 4px;
  border-radius: 999px 999px 4px 4px;
}

.pie-layout {
  display: grid;
  grid-template-columns: minmax(150px, 180px) minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  height: calc(100% - 34px);
  margin-top: 10px;
  overflow: auto;
  padding-right: 8px;
  scrollbar-color: var(--brand) #ede8ff;
  scrollbar-width: auto;
}

.pie-layout::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

.pie-layout::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #ede8ff;
}

.pie-layout::-webkit-scrollbar-thumb {
  border: 3px solid #ede8ff;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--brand), #20b486);
}

.pie-layout canvas {
  width: min(100%, 220px);
  height: auto;
  justify-self: center;
}

.legend {
  display: grid;
  gap: 6px;
  max-height: 100%;
  overflow-y: auto;
  padding-right: 6px;
}

.legend-item {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 14px;
  min-width: 0;
}

.legend-item span:nth-child(2) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.legend-item strong {
  min-width: 40px;
  text-align: right;
}

.thumb {
  width: 58px;
  height: 58px;
  border-radius: 10px;
  object-fit: cover;
}

.empty {
  padding: 30px;
  color: var(--muted);
  text-align: center;
}

@media (max-width: 900px) {
  .app-header,
  .panel-head,
  .data-center-date-tools,
  .component-zone-head,
  .component-head,
  .preview-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .summary-grid,
  .home-grid,
  .finance-top-grid,
  .component-type-grid,
  .component-zone[data-component-zone="home"],
  .check-list,
  .preview-grid,
  .finance-chart-grid,
  .chart-grid,
  .pie-layout {
    grid-template-columns: 1fr;
  }

  .log-form {
    grid-template-columns: 1fr;
  }

  .simple-log-form,
  .new-species-form,
  .inline-new-form,
  .component-form,
  .permission-admin-grid,
  .permission-create-form {
    grid-template-columns: 1fr;
  }

  .permission-grid {
    min-width: 560px;
  }

  .wide {
    grid-column: auto;
  }

  .component-species-box {
    grid-template-columns: 1fr;
  }

  .component-species-box #addComponentSpecies {
    max-width: none;
  }

  .turtle-profile-card {
    grid-template-columns: 1fr;
  }

  .photo-history-shell,
  .latest-photo-box,
  .previous-photo-box {
    width: 220px;
    max-width: 100%;
  }

  .archive-photo-shell,
  .archive-photo-shell .latest-photo-box,
  .archive-photo-shell .previous-photo-box {
    width: 100%;
  }

  .header-actions {
    width: 100%;
  }

  .ghost-button,
  .primary-button {
    flex: 1;
  }

  .turtle-archive-card .compact-action {
    flex: 0 0 auto;
  }
}

@media (max-width: 640px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  body {
    font-size: 15px;
    background-attachment: scroll;
  }

  #diaryView {
    max-width: none;
  }

  .diary-page-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    margin: 24px 2px 20px;
  }

  .diary-page-heading h2 {
    font-size: 31px;
  }

  .diary-top-hint {
    align-self: flex-end;
    font-size: 13px;
  }

  .diary-type-grid {
    gap: 16px;
  }

  .diary-option-card {
    border-radius: 21px;
  }

  .diary-record-entry {
    grid-template-columns: minmax(112px, 36%) minmax(0, 1fr);
    gap: 16px;
    padding: 14px;
  }

  .diary-card-visual {
    border-radius: 17px;
  }

  .diary-card-copy strong {
    margin-bottom: 9px;
    font-size: 27px;
  }

  .diary-card-copy small,
  .diary-card-copy em {
    font-size: 13px;
    line-height: 1.55;
  }

  .diary-card-copy em {
    margin-top: 8px;
  }

  .diary-card-settings {
    min-height: 54px;
    padding: 0 18px;
    font-size: 15px;
  }

  .diary-card-settings b {
    font-size: 29px;
  }

  .diary-tip {
    gap: 12px;
    margin-top: 18px;
    padding: 15px 16px;
    border-radius: 17px;
    font-size: 13px;
  }

  .diary-tip > span {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  main {
    width: 100%;
    margin: 12px auto 34px;
    padding: 0 10px;
  }

  .app-header {
    display: none;
  }

  .brand h1 {
    font-size: 22px;
  }

  .brand small {
    font-size: 12px;
  }

  .account-box,
  .header-actions,
  .panel-head,
  .back-row,
  .table-tools,
  .data-center-date-tools,
  .component-zone-head,
  .component-head,
  .preview-head,
  .compact-actions,
  .upload-actions,
  .profile-title-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    gap: 8px;
  }

  .account-box {
    justify-content: flex-start;
  }

  .pending-review-section {
    padding: 12px;
    overflow: hidden;
  }

  .pending-review-head,
  .pending-review-row {
    align-items: stretch;
    flex-direction: column;
  }

  .pending-review-head span {
    align-self: flex-start;
  }

  .pending-review-box {
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    min-width: 0;
  }

  .pending-review-box .mini-primary-button {
    width: 100%;
    min-height: 44px;
  }

  .panel,
  .analysis-component,
  .home-components-panel,
  .turtle-profile-card {
    padding: 12px;
    border-radius: 18px;
  }

  .view.active {
    min-width: 0;
  }

  #homeView > .home-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 8px;
  }

  #homeView > .home-grid .home-card,
  #homeView > .home-grid .menu-image-card {
    width: 100%;
    min-width: 0;
    padding: 0;
    aspect-ratio: 1 / 1 !important;
    cursor: pointer;
    touch-action: pan-y;
    background: transparent !important;
    filter: none !important;
    transition:
      transform 160ms ease;
  }

  #homeView > .home-grid .home-card:hover,
  #homeView > .home-grid .home-card:focus-visible {
    transform: translateY(-4px) scale(1.035);
  }

  #homeView > .home-grid .home-card:hover .home-menu-icon,
  #homeView > .home-grid .home-card:focus-visible .home-menu-icon {
    filter:
      drop-shadow(0 22px 16px rgba(10, 14, 22, 0.35))
      drop-shadow(0 9px 5px rgba(10, 14, 22, 0.25))
      drop-shadow(0 -1px 0 rgba(255, 255, 255, 0.5));
  }

  #homeView > .home-grid .home-card:active {
    transform: scale(0.97);
  }

  #homeView > .home-grid .home-card:active .home-menu-icon {
    transform: translateY(4px) scale(0.98);
    filter:
      drop-shadow(0 10px 7px rgba(10, 14, 22, 0.28))
      drop-shadow(0 3px 2px rgba(10, 14, 22, 0.22));
  }

  .home-components-panel > .component-zone-head {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .home-components-panel > .component-zone-head .header-actions {
    flex: 0 0 auto;
    width: auto;
  }

  .home-grid:not(#homeView > .home-grid),
  .summary-grid,
  .finance-top-grid,
  .component-type-grid,
  .chart-grid,
  .finance-chart-grid,
  .preview-grid,
  .mating-sex-grid {
    grid-template-columns: 1fr;
  }

  .finance-top-grid,
  .finance-chart-grid {
    width: 100%;
    min-width: 0;
  }

  .finance-profit-card,
  .finance-monthly-card,
  .finance-chart-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 14px;
    border-radius: 18px;
    overflow: hidden;
  }

  .finance-profit-head,
  .finance-monthly-head,
  .finance-chart-title {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .finance-profit-head strong,
  .finance-monthly-head strong,
  .finance-chart-title strong {
    text-align: left;
    font-size: 24px;
    line-height: 1.15;
  }

  .finance-monthly-head h3 {
    font-size: 22px;
  }

  .finance-month-select-button {
    min-height: 44px;
    border-radius: 12px;
  }

  .finance-month-menu {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    padding: 8px;
  }

  .finance-month-summary {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .finance-month-summary span {
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .finance-month-detail-list {
    max-height: 300px;
  }

  .finance-month-detail-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .finance-month-detail-row em {
    justify-self: start;
  }

  .finance-profit-row {
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 8px;
  }

  .finance-profit-row strong {
    grid-column: 1 / -1;
    text-align: left;
    font-size: 14px;
  }

  .finance-kline {
    grid-template-columns: repeat(12, 62px);
    gap: 8px;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    padding: 10px 10px 14px 2px;
    scroll-snap-type: x proximity;
  }

  .finance-kline-shell::after {
    content: "";
    position: absolute;
    top: 44px;
    right: 0;
    bottom: 14px;
    width: 34px;
    pointer-events: none;
    border-radius: 0 14px 14px 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff 78%);
  }

  .finance-kline-shell::before {
    content: "";
    position: absolute;
    right: 52px;
    bottom: 0;
    left: 52px;
    height: 6px;
    border-radius: 999px;
    background:
      linear-gradient(90deg, var(--brand) 0 34%, rgba(102, 86, 245, 0.2) 34% 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  }

  .finance-scroll-hint {
    display: flex;
  }

  .finance-kline::-webkit-scrollbar {
    height: 12px;
  }

  .finance-kline::-webkit-scrollbar-track {
    background: #e8e2ff;
  }

  .finance-kline::-webkit-scrollbar-thumb {
    border: 2px solid #e8e2ff;
    background: linear-gradient(90deg, var(--brand), #20b486);
  }

  .finance-month {
    min-width: 62px;
    font-size: 11px;
    scroll-snap-align: start;
  }

  .finance-kline-bars {
    width: 42px;
    height: 118px;
    gap: 5px;
  }

  .finance-kline-bars span {
    width: 12px;
  }

  .finance-month b {
    font-size: 10px;
    line-height: 1.2;
  }

  .finance-category-row {
    grid-template-columns: 58px minmax(0, 1fr) 76px 30px;
    gap: 8px;
  }

  .finance-category-row span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .finance-category-row strong,
  .finance-category-row em {
    font-size: 12px;
  }

  .home-card {
    min-height: 116px;
    padding: 16px;
  }

  .home-card span {
    font-size: 22px;
  }

  input,
  select,
  textarea {
    min-height: 44px;
    font-size: 16px;
  }

  .ghost-button,
  .primary-button,
  .danger-light-button,
  .danger-cell-button,
  .back-button {
    min-height: 42px;
    padding: 0 12px;
    font-size: 15px;
  }

  .primary-button,
  .ghost-button {
    width: auto;
    flex: 1 1 128px;
  }

  .log-form,
  .simple-log-form,
  .new-species-form,
  .inline-new-form,
  .component-form,
  .permission-admin-grid,
  .permission-create-form,
  .component-species-box {
    grid-template-columns: 1fr !important;
  }

  .wide {
    grid-column: auto;
  }

  .table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 12px;
  }

  table {
    min-width: 760px;
    font-size: 14px;
  }

  th,
  td {
    height: 40px;
    padding: 8px 10px;
  }

  th {
    font-size: 15px;
  }

  td.number {
    font-size: 16px;
  }

  .table-actions {
    gap: 6px;
  }

  .table-actions button {
    min-height: 28px;
    padding: 0 8px;
    font-size: 14px;
  }

  .component-zone {
    min-height: 0;
    overflow: visible;
  }

  .component-zone[data-component-zone="home"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    align-content: start;
    height: auto !important;
    min-height: 0 !important;
    min-height: 0;
  }

  .component-zone > .analysis-component,
  .metric-widget,
  .chart-widget {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0;
    transform: none !important;
  }

  .component-zone[data-component-zone="home"] > .analysis-component,
  .component-zone[data-component-zone="home"] .metric-widget,
  .component-zone[data-component-zone="home"] .chart-widget {
    aspect-ratio: 1 / 1;
    height: auto !important;
    margin: 0 !important;
    padding: 8px;
    overflow: hidden;
    touch-action: pan-y;
  }

  .component-zone[data-component-zone="home"] > .chart-widget {
    grid-column: 1 / -1;
    aspect-ratio: auto !important;
    min-height: 320px !important;
    height: 340px !important;
    padding: 10px;
    overflow: hidden;
    touch-action: pan-x pan-y;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .chart-grid {
    height: calc(100% - 42px);
    margin-top: 8px;
    overflow: hidden;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .chart-card {
    height: 100%;
    overflow: hidden;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .bar-chart {
    max-height: calc(100% - 28px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .thin-stack-card {
    height: calc(100% - 38px);
    margin-top: 8px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .thin-stack-scroll {
    height: calc(100% - 48px);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .component-thin-stack {
    min-width: max(100%, calc(var(--thin-stack-month-count, 1) * 54px));
    gap: 6px;
    padding-inline: 2px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .component-thin-stack .thin-stack-group {
    flex-basis: 48px;
    grid-template-rows: 18px 90px 50px 22px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .thin-stack-group .stack-bar {
    width: 18px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .stack-detail {
    font-size: 11px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget:has(.pie-layout) {
    min-height: 420px !important;
    height: 440px !important;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .pie-layout {
    grid-template-columns: 1fr;
    align-content: start;
    height: calc(100% - 28px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .pie-layout canvas {
    width: min(230px, 74vw);
  }

  .component-zone[data-component-zone="home"] > .chart-widget .legend {
    max-height: 160px;
    overflow-y: auto;
  }

  .metric-widget {
    padding: 14px;
  }

  .metric-widget strong {
    font-size: 28px;
  }

  .component-zone[data-component-zone="home"] .metric-widget span {
    font-size: 11px;
    line-height: 1.25;
  }

  .component-zone[data-component-zone="home"] .metric-widget strong {
    margin-top: 5px;
    font-size: clamp(20px, 7vw, 28px);
    line-height: 1.05;
  }

  .component-zone[data-component-zone="home"] .metric-widget small {
    font-size: 11px;
  }

  .component-zone[data-component-zone="home"] .metric-widget-actions {
    top: 5px;
    right: 5px;
  }

  .component-zone[data-component-zone="home"] .component-menu summary {
    width: 28px;
    height: 28px;
    font-size: 14px;
  }

  .component-zone[data-component-zone="home"] .component-head {
    gap: 4px;
    min-height: 0;
    padding-right: 30px;
  }

  .component-zone[data-component-zone="home"] .component-head h2 {
    font-size: 11px;
    line-height: 1.2;
  }

  .component-zone[data-component-zone="home"] .chart-card {
    padding: 6px;
    border-radius: 10px;
  }

  .component-zone[data-component-zone="home"] .chart-card h3,
  .component-zone[data-component-zone="home"] .preview-legend,
  .component-zone[data-component-zone="home"] .empty {
    font-size: 10px;
    line-height: 1.2;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .component-head h2 {
    font-size: 15px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .chart-card h3,
  .component-zone[data-component-zone="home"] > .chart-widget .preview-legend {
    font-size: 12px;
  }

  .component-zone[data-component-zone="home"] > .chart-widget .component-menu summary {
    width: 32px;
    height: 32px;
  }

  .settings-hero {
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
  }

  .settings-hero img {
    width: 92px;
  }

  .settings-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .component-head {
    min-height: 0;
    padding-right: 44px;
  }

  .component-menu {
    top: 0;
    right: 0;
    opacity: 1;
  }

  .component-menu summary {
    width: 36px;
    height: 36px;
  }

  .period-switcher {
    margin-left: 0;
  }

  .thin-stack-scroll,
  .compact-chart {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .thin-stack-chart {
    min-width: 560px;
  }

  .pie-layout {
    grid-template-columns: 1fr;
    height: auto;
  }

  .pie-layout canvas {
    width: min(220px, 78vw);
  }

  .legend-item {
    font-size: 13px;
  }

  .turtle-profile-card {
    grid-template-columns: 1fr !important;
    gap: 12px;
    overflow: hidden;
  }

  .turtle-archive-card {
    padding: 12px;
    border-radius: 22px;
  }

  .archive-photo-slide {
    height: min(72vw, 380px);
  }

  .archive-title-card,
  .archive-card {
    border-radius: 16px;
    padding: 14px;
  }

  .archive-name-row h3 {
    font-size: 24px;
  }

  .archive-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .archive-actions .ghost-button,
  .archive-actions .danger-light-button {
    min-height: 42px;
    padding: 0 8px;
    font-size: 14px;
  }

  .archive-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .archive-stat-card {
    min-height: 72px;
    padding: 12px;
  }

  .archive-info-row {
    grid-template-columns: 76px minmax(0, 1fr) auto;
    font-size: 13px;
  }

  .archive-name-navigation {
    grid-template-columns: 74px minmax(0, 1fr) 74px;
    gap: 7px;
  }

  .archive-neighbor-button {
    padding: 0 6px;
    font-size: 12px;
  }

  .archive-section-head {
    align-items: flex-start;
  }

  .turtle-directory-card {
    padding: 14px;
    border-radius: 18px;
  }

  .turtle-directory-head {
    align-items: center;
  }

  .turtle-directory-head h3 {
    font-size: 22px;
  }

  .turtle-directory-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
  }

  .turtle-directory-item {
    min-height: 52px;
    padding: 7px 3px;
  }

  .turtle-directory-item strong {
    font-size: 15px;
  }

  .turtle-archive-card .compact-action {
    flex: 0 0 auto;
  }

  .archive-detail-list {
    max-height: 260px;
  }

  .archive-detail-item,
  .egg-detail-item {
    grid-template-columns: 60px minmax(0, 1fr);
  }

  .archive-detail-item small,
  .archive-detail-actions {
    grid-column: 2;
    text-align: left;
    justify-content: flex-start;
  }

  .customer-management-panel > .panel-head {
    min-height: 162px;
    padding: 22px 18px;
    border-radius: 18px;
  }

  .customer-management-panel > .panel-head h2 {
    font-size: 28px;
  }

  .customer-hero-icon {
    right: 18px;
    width: 38px;
    height: 38px;
    font-size: 19px;
  }

  .customer-management-panel #matingCustomerForm {
    margin: -72px 16px 14px;
  }

  .customer-section {
    padding: 12px;
    border-radius: 16px;
  }

  .customer-row-card {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "main actions"
      "stats actions";
    gap: 8px 10px;
    padding: 12px;
    border-radius: 14px;
  }

  .customer-row-main {
    grid-area: main;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 9px;
  }

  .customer-avatar {
    width: 44px;
    height: 44px;
    font-size: 20px;
  }

  .customer-row-main strong {
    font-size: 17px;
  }

  .customer-row-main small {
    font-size: 11px;
  }

  .customer-row-stats {
    grid-area: stats;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: 53px;
    text-align: left;
  }

  .customer-row-stats span {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    min-width: 0;
    padding: 2px 8px;
    border-radius: 999px;
    background: #f7f8fc;
    white-space: nowrap;
  }

  .customer-row-stats strong {
    display: inline;
    font-size: 16px;
  }

  .customer-row-stats em {
    display: inline;
    font-size: 10px;
    white-space: nowrap;
  }

  .customer-row-actions {
    grid-area: actions;
    display: grid;
    grid-template-columns: repeat(2, 52px);
    gap: 6px;
    align-self: center;
  }

  .customer-row-actions .ghost-button,
  .customer-row-actions .danger-light-button {
    min-height: 38px;
    padding: 0;
    border-radius: 12px;
    font-size: 12px;
    white-space: nowrap;
  }

  .customer-detail-section .customer-section-head {
    display: grid;
    grid-template-columns: 1fr;
  }

  .customer-detail-section .header-actions {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .group-row-card {
    grid-template-columns: minmax(0, 1fr) 82px;
    gap: 8px;
    padding: 10px;
  }

  .group-row-main {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 9px;
  }

  .group-avatar {
    width: 42px;
    height: 42px;
    font-size: 15px;
  }

  .group-row-main strong {
    font-size: 17px;
  }

  .group-row-main small {
    font-size: 11px;
  }

  .group-row-stats,
  .pool-row-stats {
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    padding-top: 4px;
  }

  .mating-group-row-card .group-row-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .group-row-stats strong {
    font-size: 18px;
  }

  .group-row-stats em {
    font-size: 10px;
  }

  .group-row-actions {
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .group-row-actions .ghost-button,
  .group-row-actions .danger-light-button {
    min-height: 34px;
    padding: 0 6px;
    font-size: 12px;
  }

  .turtle-profile-title {
    flex-direction: column;
    align-items: flex-start;
  }

  .profile-title-actions {
    justify-content: flex-start;
  }

  .photo-history-shell,
  .latest-photo-box,
  .previous-photo-box,
  .update-photo-drop-box {
    width: min(100%, 220px);
    max-width: 100%;
  }

  .photo-history-shell {
    justify-self: center;
  }

  .latest-photo-box,
  .previous-photo-box,
  .update-photo-drop-box {
    height: min(56vw, 220px);
  }

  .archive-photo-shell,
  .archive-photo-shell .latest-photo-box,
  .archive-photo-shell .previous-photo-box {
    width: 100%;
  }

  .archive-photo-shell .latest-photo-box,
  .archive-photo-shell .previous-photo-box {
    height: min(72vw, 380px);
  }

  .profile-grid {
    grid-template-columns: 1fr;
  }

  .profile-grid span,
  .profile-note {
    min-height: 36px;
    font-size: 14px;
  }

  .profile-mating-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .profile-mating-item {
    min-height: 32px;
    padding: 6px 8px;
    gap: 6px;
    font-size: 13px;
  }

  .photo-history-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .photo-viewer {
    padding: 12px;
  }

  .photo-viewer img {
    max-width: 96vw;
    max-height: 78vh;
  }

  .permission-grid {
    min-width: 0;
  }

  .permission-list {
    grid-template-columns: 1fr;
  }

  .permission-card {
    min-width: 0;
  }
}

@media (max-width: 380px) {
  main {
    padding: 0 8px;
  }

  #homeView > .home-grid {
    gap: 8px;
  }

  .panel,
  .analysis-component,
  .turtle-profile-card {
    padding: 10px;
  }

  .profile-mating-grid {
    grid-template-columns: 1fr;
  }
}

.status-toast {
  position: fixed;
  left: 50%;
  top: max(18px, env(safe-area-inset-top));
  z-index: 9999;
  width: min(320px, calc(100% - 32px));
  min-height: 54px;
  transform: translate(-50%, -18px) scale(0.98);
  padding: 0 22px;
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 18px;
  color: #fffdf7;
  background: rgba(21, 95, 71, 0.96);
  box-shadow: 0 16px 36px rgba(13, 69, 53, 0.24);
  font-size: 16px;
  font-weight: 900;
  line-height: 54px;
  text-align: center;
  backdrop-filter: blur(14px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.status-toast.show {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

.app-action-dialog {
  width: min(420px, calc(100% - 32px));
  max-width: none;
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 26px;
  color: #18231f;
  background: transparent;
}

.app-action-dialog::backdrop {
  background: rgba(7, 34, 25, 0.58);
  backdrop-filter: blur(4px);
}

.app-action-dialog-card {
  display: grid;
  gap: 18px;
  padding: 26px;
  border: 1px solid rgba(214, 224, 217, 0.94);
  border-radius: 26px;
  background: #fffdf9;
  box-shadow: 0 28px 70px rgba(6, 42, 30, 0.3);
}

.app-action-dialog-kicker {
  width: fit-content;
  margin: 0;
  padding: 7px 12px;
  border-radius: 999px;
  color: #17684d;
  background: #e8f2ea;
  font-size: 13px;
  font-weight: 900;
}

.app-action-dialog.danger .app-action-dialog-kicker {
  color: #bd3030;
  background: #fdeaea;
}

.app-action-dialog-copy h3 {
  margin: 0;
  color: #18231f;
  font-size: 24px;
  font-weight: 950;
  letter-spacing: -0.025em;
}

.app-action-dialog-copy p {
  margin: 9px 0 0;
  color: #617168;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.65;
  white-space: pre-line;
}

.app-action-dialog-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.app-action-dialog-actions button {
  min-height: 52px;
  border: 0;
  border-radius: 15px;
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
}

.app-action-dialog-cancel {
  color: #617168;
  background: #f0f3ef;
}

.app-action-dialog-confirm {
  color: #fff;
  background: #17684d;
}

.app-action-dialog-confirm.danger {
  background: #c93636;
}

.app-action-dialog-cancel.hidden + .app-action-dialog-confirm {
  grid-column: 1 / -1;
}

.app-action-dialog-actions button:focus-visible {
  outline: 3px solid rgba(7, 87, 63, 0.25);
  outline-offset: 2px;
}

/* 2026-07-16 乌龟档案本地 UI 预览 v2 */
#matingGroupDetailView:has(.turtle-archive-preview) > .back-row,
#matingGroupDetailView .panel:has(.turtle-archive-preview) > .panel-head {
  display: none;
}

#matingGroupDetailView .panel:has(.turtle-archive-preview) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.turtle-archive-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 18px;
  width: min(100%, 980px);
  padding: 18px;
  border: 1px solid #edf0f5;
  border-radius: 28px;
  background: #fcfdfd;
  box-shadow: 0 20px 55px rgba(35, 46, 70, 0.07);
}

.archive-page-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70px;
  text-align: center;
}

.archive-page-heading p,
.archive-page-heading h3 {
  margin: 0;
}

.archive-page-title-row {
  display: grid;
  grid-template-columns: minmax(78px, auto) minmax(0, 1fr) minmax(78px, auto);
  align-items: center;
  gap: 12px;
  margin-top: 3px;
}

.archive-title-neighbor {
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #e2e8ee;
  border-radius: 11px;
  color: #5f50df;
  background: #f7f5ff;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  cursor: pointer;
}

.archive-title-neighbor:disabled {
  color: #aeb6c2;
  background: #f6f7f8;
  cursor: default;
  opacity: 0.65;
}

.archive-page-heading p {
  color: #718096;
  font-size: 14px;
  font-weight: 900;
}

.archive-page-heading h3 {
  margin-top: 3px;
  color: #111d35;
  font-size: clamp(25px, 4vw, 34px);
  line-height: 1.2;
}

.archive-back-icon {
  position: absolute;
  left: 2px;
  top: 50%;
  width: 46px;
  height: 46px;
  transform: translateY(-50%);
  border: 0;
  color: #101c32;
  background: transparent;
  font-family: Arial, sans-serif;
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}

.archive-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.9fr);
  gap: 16px;
  align-items: stretch;
}

.archive-hero-grid .archive-photo-shell {
  min-width: 0;
}

.archive-hero-grid .archive-photo-carousel,
.archive-hero-grid .archive-photo-slide {
  height: 100%;
  min-height: 390px;
}

.archive-hero-grid .archive-photo-slide {
  border-radius: 22px;
}

.archive-hero-grid .archive-dots {
  margin-top: 8px;
}

.archive-profile-control-card {
  display: grid;
  align-content: start;
  gap: 16px;
  padding: 24px;
  border: 1px solid #e8ebf1;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(32, 44, 67, 0.06);
}

.archive-profile-control-card p,
.archive-profile-control-card h2 {
  margin: 0;
}

.archive-profile-control-card p {
  color: #202c42;
  font-size: 18px;
  font-weight: 900;
}

.archive-profile-control-card h2 {
  margin-top: 8px;
  color: #101b32;
  font-size: clamp(24px, 4vw, 32px);
  overflow-wrap: anywhere;
}

.archive-profile-control-card .archive-name-navigation {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}

.archive-profile-control-card .archive-name-navigation > span {
  color: #9aa4b5;
  font-size: 11px;
  font-weight: 800;
}

.archive-action-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.archive-action-tile {
  display: grid;
  place-items: center;
  gap: 7px;
  min-height: 108px;
  border: 0;
  border-radius: 16px;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}

.archive-action-tile i {
  font-style: normal;
  font-size: 34px;
  line-height: 1;
}

.archive-action-tile.purple {
  color: #6655ee;
  background: linear-gradient(145deg, #f5f1ff, #fbfaff);
}

.archive-action-tile.red {
  color: #f0444d;
  background: linear-gradient(145deg, #fff0f1, #fff8f8);
}

.archive-ui-section,
.archive-history-card {
  padding: 18px;
  border-radius: 18px;
}

.icon-section-head,
.archive-overview-card > .archive-section-head {
  padding-bottom: 12px;
  border-bottom: 1px solid #edf0f4;
}

.archive-section-head h4 i {
  display: inline-grid;
  place-items: center;
  width: 29px;
  height: 29px;
  margin-right: 7px;
  border-radius: 9px;
  color: #6856f3;
  background: #f3efff;
  font-style: normal;
}

.archive-section-head h4 i.green-icon {
  color: #24ad62;
  background: #ecfbf2;
}

.archive-basic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.archive-info-tile {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 78px;
  padding: 12px 16px;
  border-bottom: 1px solid #eef1f5;
}

.archive-info-tile:nth-child(odd) {
  border-right: 1px solid #eef1f5;
}

.archive-info-tile:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.archive-info-tile > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #6b58ee;
  background: #f4f0ff;
  font-style: normal;
  font-size: 23px;
}

.archive-info-tile span,
.archive-info-tile strong {
  display: block;
}

.archive-info-tile span {
  color: #7a8699;
  font-size: 13px;
  font-weight: 900;
}

.archive-info-tile strong {
  margin-top: 3px;
  color: #18233a;
  font-size: 16px;
  overflow-wrap: anywhere;
}

.archive-info-tile .archive-inline-edit {
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 50%;
  color: #6553ed;
  background: #f4efff;
  font-size: 18px;
}

.archive-info-tile.editing {
  grid-template-columns: 42px minmax(0, 1fr);
}

.archive-inline-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.archive-inline-input {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  padding: 8px 10px;
  border: 1.5px solid #7462ef;
  border-radius: 10px;
  outline: none;
  color: #18233a;
  background: #fff;
  font: inherit;
  font-weight: 800;
  resize: vertical;
}

textarea.archive-inline-input {
  max-height: 82px;
}

.archive-inline-editor-actions {
  display: flex;
  gap: 5px;
}

.archive-inline-save,
.archive-inline-cancel {
  min-height: 36px;
  padding: 0 9px;
  border: 0;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.archive-inline-save {
  color: #fff;
  background: #6655e9;
}

.archive-inline-cancel {
  color: #6f7888;
  background: #eef1f4;
}

.archive-field-editor {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(20, 28, 45, 0.5);
  backdrop-filter: blur(5px);
}

.archive-field-editor.hidden {
  display: none;
}

.archive-field-editor-card {
  width: min(100%, 400px);
  padding: 24px;
  border: 1px solid #e7e5f5;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(18, 25, 43, 0.24);
}

.archive-field-editor-card > p,
.archive-field-editor-card > h3 {
  margin: 0;
  text-align: center;
}

.archive-field-editor-card > p {
  color: #8175db;
  font-size: 13px;
  font-weight: 900;
}

.archive-field-editor-card > h3 {
  margin-top: 5px;
  color: #172239;
  font-size: 24px;
}

.archive-field-editor-card label {
  display: grid;
  gap: 8px;
  margin-top: 22px;
  color: #69758a;
  font-size: 14px;
  font-weight: 900;
}

#archiveFieldEditorInput {
  width: 100%;
  min-height: 50px;
  padding: 10px 13px;
  border: 2px solid #7563ee;
  border-radius: 13px;
  outline: none;
  color: #172239;
  background: #fff;
  font-size: 17px;
  font-weight: 800;
}

.archive-field-editor-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.archive-field-editor-save,
.archive-field-editor-cancel {
  min-height: 46px;
  border: 0;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
}

.archive-field-editor-save {
  color: #fff;
  background: #6654ea;
}

.archive-field-editor-cancel {
  color: #687385;
  background: #eef1f5;
}

.turtle-archive-preview .archive-stat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.turtle-archive-preview .archive-stat-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 74px;
  padding: 12px;
  border-radius: 13px;
  background: linear-gradient(145deg, #fafbfc, #f5f6f8);
  box-shadow: none;
}

.turtle-archive-preview .archive-stat-card > i {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-style: normal;
  font-size: 25px;
}

.turtle-archive-preview .archive-stat-card > i.purple { color: #8a55e8; background: #f4ecff; }
.turtle-archive-preview .archive-stat-card > i.blue { color: #2299cf; background: #eaf8ff; }
.turtle-archive-preview .archive-stat-card > i.ink { color: #263447; background: #eef1f4; }
.turtle-archive-preview .archive-stat-card > i.orange { color: #ed922f; background: #fff4e8; }
.turtle-archive-preview .archive-stat-card > i.green { color: #27ae60; background: #eaf9f0; }

.turtle-archive-preview .archive-stat-card span {
  font-size: 11px;
}

.turtle-archive-preview .archive-stat-card strong {
  margin-top: 3px;
  font-size: 16px;
}

.archive-record-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.archive-record-grid .archive-card {
  min-width: 0;
  min-height: 230px;
}

.archive-record-grid .archive-detail-list {
  max-height: 320px;
}

.archive-history-card .archive-section-head > span {
  color: #6a56ef;
  font-size: 13px;
  font-weight: 900;
}

.archive-history-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 132px;
  gap: 12px;
  overflow-x: auto;
  padding: 2px 0 6px;
  scroll-snap-type: x mandatory;
}

.archive-history-thumb {
  width: 132px;
  height: 106px;
  padding: 0;
  overflow: hidden;
  scroll-snap-align: start;
  border: 2px solid transparent;
  border-radius: 12px;
  background: #eef1f5;
  cursor: pointer;
}

.archive-history-thumb.active {
  border-color: #6c58ef;
}

.archive-history-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 760px) {
  .turtle-archive-preview {
    gap: 13px;
    padding: 11px;
    border-radius: 20px;
  }

  .archive-page-heading {
    min-height: 62px;
  }

  .archive-page-heading h3 {
    font-size: 24px;
  }

  .archive-hero-grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.94fr);
    gap: 8px;
    align-items: start;
  }

  .archive-hero-grid .archive-photo-carousel,
  .archive-hero-grid .archive-photo-slide {
    height: min(56vw, 242px);
    min-height: 0;
    border-radius: 14px;
  }

  .archive-profile-control-card {
    gap: 9px;
    height: min(56vw, 242px);
    padding: 11px;
    border-radius: 14px;
    overflow: hidden;
  }

  .archive-profile-control-card .archive-kicker-row {
    align-items: flex-start;
    gap: 5px;
  }

  .archive-profile-control-card p {
    font-size: 13px;
  }

  .archive-profile-control-card h2 {
    margin-top: 3px;
    font-size: 19px;
    line-height: 1.1;
  }

  .archive-profile-control-card .archive-owner-pill {
    padding: 4px 6px;
    font-size: 9px;
  }

  .archive-action-tile {
    min-height: 0;
    height: min(19vw, 76px);
    gap: 3px;
    border-radius: 10px;
    font-size: 12px;
  }

  .archive-action-tile i {
    font-size: 23px;
  }

  .archive-ui-section,
  .archive-history-card {
    padding: 13px;
  }

  .archive-info-tile {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    min-height: 72px;
    padding: 9px 8px;
  }

  .archive-info-tile > i {
    width: 36px;
    height: 36px;
    font-size: 19px;
  }

  .archive-info-tile.editing {
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .archive-inline-editor {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
  }

  .archive-inline-editor-actions {
    justify-content: flex-end;
  }

  .archive-inline-save,
  .archive-inline-cancel {
    min-height: 29px;
    padding: 0 8px;
    font-size: 10px;
  }

  .turtle-archive-preview .archive-stat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }

  .turtle-archive-preview .archive-stat-card {
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 4px;
    min-height: 62px;
    padding: 6px;
  }

  .turtle-archive-preview .archive-stat-card > i {
    width: 27px;
    height: 27px;
    font-size: 16px;
  }

  .turtle-archive-preview .archive-stat-card span {
    font-size: 8px;
    line-height: 1.15;
  }

  .turtle-archive-preview .archive-stat-card strong {
    font-size: 12px;
    line-height: 1.15;
  }

  .archive-record-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .archive-record-grid .archive-card {
    min-height: 190px;
    padding: 11px;
  }

  .archive-record-grid .archive-section-head h4 {
    font-size: 12px;
  }

  .archive-record-grid .archive-detail-item {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 5px;
    padding: 8px;
  }

  .archive-record-grid .archive-detail-item small,
  .archive-record-grid .archive-detail-actions {
    grid-column: 1 / -1;
  }

  .archive-photo-kind,
  .archive-photo-hint {
    display: none;
  }

  .archive-photo-count {
    top: 8px;
    right: auto;
    bottom: auto;
    left: 8px;
    padding: 3px 7px;
    font-size: 10px;
  }

  .archive-hero-grid .archive-dots {
    margin-top: 5px;
  }

  .archive-page-heading {
    min-height: 54px;
  }

  .archive-page-heading p {
    font-size: 11px;
  }

  .archive-page-heading h3 {
    font-size: 21px;
  }

  .archive-page-title-row {
    grid-template-columns: 64px minmax(0, 1fr) 64px;
    gap: 6px;
  }

  .archive-title-neighbor {
    min-height: 29px;
    padding: 0 4px;
    border-radius: 9px;
    font-size: 10px;
  }

  .archive-back-icon {
    width: 34px;
    height: 34px;
    font-size: 34px;
  }
}

@media (max-width: 420px) {
  .archive-basic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .archive-info-tile:nth-child(odd) {
    border-right: 1px solid #eef1f5;
  }

  .archive-info-tile:nth-last-child(2) {
    border-bottom: 0;
  }

  .archive-info-tile {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 5px;
    min-height: 68px;
    padding: 8px 6px;
  }

  .archive-info-tile > i {
    width: 30px;
    height: 30px;
    font-size: 16px;
  }

  .archive-info-tile span {
    font-size: 11px;
  }

  .archive-info-tile strong {
    font-size: 14px;
    line-height: 1.25;
  }

  .archive-info-tile .archive-inline-edit {
    width: 27px;
    height: 27px;
    font-size: 14px;
  }

  .archive-profile-control-card {
    padding: 8px;
  }

  .archive-action-tiles {
    gap: 5px;
  }
}

/* 龟蛋日记填写页 v12 */
.egg-log-view {
  position: relative;
  width: min(100%, 1020px);
  margin: 0 auto;
  padding-top: 8px;
}

.egg-log-back {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  min-height: 52px;
  margin: 0;
  padding: 0 22px;
  border: 1px solid rgba(108, 84, 255, 0.08);
  border-radius: 22px;
  background: linear-gradient(135deg, #f5f1ff, #eee9ff);
  box-shadow: 0 10px 28px rgba(84, 70, 169, 0.08);
  font-size: 17px;
  font-weight: 800;
}

.egg-log-heading {
  display: grid;
  justify-items: center;
  gap: 7px;
  min-height: 136px;
  padding-top: 10px;
  text-align: center;
}

.egg-log-heading p {
  color: #7c8498;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.egg-log-heading h2 {
  color: #11192f;
  font-size: clamp(30px, 4.5vw, 46px);
  line-height: 1.1;
  letter-spacing: 0.04em;
}

.egg-entry-form {
  display: grid;
  gap: 38px;
}

.egg-entry-panel {
  overflow: hidden;
  padding: 24px 40px;
  border: 1px solid #e5e8f0;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 20px 55px rgba(63, 74, 115, 0.08);
}

.egg-form-row {
  display: grid;
  grid-template-columns: 96px minmax(220px, 1fr) minmax(250px, 320px);
  align-items: center;
  gap: 30px;
  min-height: 170px;
  border-bottom: 1px solid #e9ebf2;
  color: inherit;
}

.egg-form-row:last-child {
  border-bottom: 0;
}

.egg-form-icon {
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  border-radius: 50%;
  font-size: 38px;
  font-style: normal;
  font-weight: 700;
}

.egg-icon-purple { color: #684cf5; background: #f0ebff; }
.egg-icon-blue { color: #3f83ea; background: #eaf3ff; }
.egg-icon-green { color: #12ae7b; background: #e7f8f2; }
.egg-icon-orange { color: #fb850b; background: #fff1df; }
.egg-icon-pink { color: #e94586; background: #ffedf4; }

.egg-form-copy {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.egg-form-copy strong {
  color: #11192f;
  font-size: 27px;
  line-height: 1.1;
}

.egg-form-copy strong i {
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-left: 10px;
  border-radius: 50%;
  background: #7054f5;
  vertical-align: 3px;
}

.egg-form-copy small {
  color: #778097;
  font-size: 17px;
  line-height: 1.45;
}

.egg-form-control {
  display: block;
  min-width: 0;
}

.egg-form-control input,
.egg-form-control select {
  min-height: 74px;
  border: 1px solid #dfe3ec;
  border-radius: 16px;
  padding: 0 22px;
  color: #192137;
  background: #fff;
  font-size: 19px;
  font-weight: 700;
  box-shadow: inset 0 1px 2px rgba(29, 36, 60, 0.02);
}

.egg-form-control input::placeholder {
  color: #b8bdca;
  font-weight: 500;
}

.egg-quantity-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 68px;
  overflow: hidden;
  min-height: 74px;
  border: 1px solid #dfe3ec;
  border-radius: 16px;
  background: #fff;
}

.egg-quantity-control input {
  min-width: 0;
  border: 0;
  border-radius: 0;
}

.egg-quantity-control b {
  display: grid;
  place-items: center;
  border-left: 1px solid #eef0f5;
  color: #171f34;
  font-size: 20px;
}

.egg-save-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 94px;
  border: 0;
  border-radius: 26px;
  color: #fff;
  background: linear-gradient(100deg, #5637ee, #704bf5 58%, #603ce7);
  box-shadow: 0 18px 38px rgba(96, 61, 232, 0.24);
  font: inherit;
  font-size: 27px;
  font-weight: 900;
  cursor: pointer;
}

.egg-save-button span {
  font-size: 31px;
}

@media (max-width: 720px) {
  .egg-log-view {
    padding-top: 0;
  }

  .egg-log-back {
    min-height: 42px;
    padding: 0 13px;
    border-radius: 16px;
    font-size: 14px;
  }

  .egg-log-heading {
    min-height: 104px;
    padding: 2px 68px 0;
  }

  .egg-log-heading p {
    font-size: 14px;
  }

  .egg-log-heading h2 {
    font-size: 27px;
  }

  .egg-entry-form {
    gap: 22px;
  }

  .egg-entry-panel {
    padding: 8px 14px;
    border-radius: 22px;
  }

  .egg-form-row {
    grid-template-columns: 48px minmax(0, 1fr) minmax(112px, 38%);
    gap: 10px;
    min-height: 104px;
  }

  .egg-form-icon {
    width: 44px;
    height: 44px;
    font-size: 23px;
  }

  .egg-form-copy {
    gap: 6px;
  }

  .egg-form-copy strong {
    font-size: 17px;
  }

  .egg-form-copy strong i {
    width: 7px;
    height: 7px;
    margin-left: 4px;
    vertical-align: 2px;
  }

  .egg-form-copy small {
    font-size: 11px;
  }

  .egg-form-control input,
  .egg-form-control select {
    min-height: 50px;
    padding: 0 10px;
    border-radius: 12px;
    font-size: 14px;
  }

  .egg-quantity-control {
    grid-template-columns: minmax(0, 1fr) 38px;
    min-height: 50px;
    border-radius: 12px;
  }

  .egg-quantity-control input {
    padding: 0 8px;
  }

  .egg-quantity-control b {
    font-size: 14px;
  }

  .egg-save-button {
    min-height: 64px;
    border-radius: 19px;
    font-size: 20px;
  }
}

@media (max-width: 400px) {
  .egg-form-row {
    grid-template-columns: 42px minmax(0, 1fr) minmax(105px, 36%);
    gap: 7px;
  }

  .egg-form-icon {
    width: 38px;
    height: 38px;
    font-size: 19px;
  }

  .egg-form-copy strong {
    font-size: 15px;
  }

  .egg-form-copy small {
    font-size: 10px;
  }

  .egg-form-control input,
  .egg-form-control select {
    padding: 0 7px;
    font-size: 13px;
  }
}

/* v244 龟蛋记录：沿用龟苗来源关联，按操作状态控制母龟必填规则 */
body:has(#eggLogView.active) .app-header {
  display: none;
}

body:has(#eggLogView.active) {
  background-color: #e5ecdf;
  background-image:
    linear-gradient(180deg, rgba(255, 255, 255, .34), rgba(244, 248, 239, .48)),
    url("./assets/home-v33/rainforest-background-v42.png");
}

body:has(#eggLogView.active) #appMain {
  width: min(942px, 100%);
  margin: 0 auto;
  padding: 0 0 calc(82px + env(safe-area-inset-bottom));
}

.egg-log-view.egg-log-view {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

#eggLogView .egg-log-back {
  display: none;
}

.egg-log-view .egg-log-heading {
  position: relative;
  min-height: 311px;
  overflow: hidden;
  padding: 116px 22px 24px;
  border-radius: 0;
  background: linear-gradient(180deg, rgba(247, 250, 243, .05), rgba(247, 250, 243, .36));
}

.egg-log-view .egg-log-heading h2 {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: clamp(42px, 5.35vw, 52px);
  font-weight: 950;
  letter-spacing: .025em;
  line-height: 1.12;
}

.egg-log-view .egg-log-heading p {
  display: none;
}

.egg-log-view .egg-log-heading .hatchling-hero-turtle {
  right: -120px;
  bottom: 8px;
  width: 340px;
  max-height: 180px;
  opacity: 1;
  filter: none;
}

.egg-log-view .egg-source-trail {
  grid-template-columns: 220px 20px 194px 20px 242px;
  gap: 16px;
  width: min(760px, calc(100% - 88px));
  margin-top: -90px;
  margin-bottom: 0;
}

.egg-log-view .egg-source-trail > span {
  min-height: 60px;
  padding: 0 22px;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(28, 67, 44, .09);
}

.egg-log-view .egg-source-trail img,
.egg-log-view .egg-source-trail svg {
  width: 27px;
  height: 27px;
  color: #168447;
  filter: sepia(1) saturate(3.2) hue-rotate(84deg) brightness(.72);
}

.egg-log-view .egg-source-trail svg {
  filter: none;
  stroke-width: 2.1;
}

.egg-log-view .egg-source-trail b {
  font-size: 19px;
}

.egg-log-view .egg-entry-form {
  display: block;
  margin-top: 30px;
  width: min(900px, calc(100% - 40px));
  margin-right: auto;
  margin-left: auto;
}

.egg-log-view .egg-entry-panel {
  overflow: visible;
  padding: 42px 40px 30px;
  border: 1px solid rgba(193, 204, 195, .62);
  border-radius: 28px;
  background: rgba(255, 255, 255, .965);
  box-shadow: 0 20px 56px rgba(39, 74, 54, .13);
}

.egg-source-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 52px;
  padding-bottom: 24px;
}

.egg-source-grid::after {
  position: absolute;
  top: 5px;
  bottom: 24px;
  left: 50%;
  width: 1px;
  background: #dce4df;
  content: "";
}

.egg-source-field,
.egg-mother-field,
.egg-note-field {
  display: grid;
  gap: 17px;
}

.egg-source-field > span,
.egg-mother-field > span,
.egg-note-field > span,
.egg-operation-section > h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #101a31;
  font-size: 22px;
  font-weight: 900;
}

.egg-source-field > span img,
.egg-mother-field > span img,
.egg-note-field > span img,
.egg-operation-section > h3 img,
.egg-total-bar img,
.egg-source-help img,
.egg-mother-field > em img,
.egg-source-field > span svg,
.egg-mother-field > span svg,
.egg-note-field > span svg,
.egg-operation-section > h3 svg,
.egg-total-bar svg,
.egg-source-help svg,
.egg-mother-field > em svg {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.egg-source-field > span svg,
.egg-mother-field > span svg,
.egg-note-field > span svg,
.egg-total-bar svg {
  color: #168447;
  stroke-width: 2.2;
}

.egg-operation-section > h3 svg {
  color: #f47b12;
  stroke-width: 2.3;
}

.egg-mother-field > span img,
.egg-note-field > span img,
.egg-total-bar img {
  filter: sepia(1) saturate(3.2) hue-rotate(84deg) brightness(.72);
}

.egg-operation-section > h3 img {
  filter: sepia(1) saturate(7) hue-rotate(342deg) brightness(1.02);
}

.egg-source-field > span b {
  padding: 3px 8px;
  border-radius: 999px;
  color: #177c4a;
  background: #edf8f1;
  font-size: 11px;
}

.egg-source-field select,
.egg-mother-field select {
  width: 100%;
  min-height: 82px;
  border: 1.5px solid #d6dfd8;
  border-radius: 18px;
  padding: 0 58px 0 22px;
  color: #111a2f;
  background-color: #fff;
  font: inherit;
  font-size: 21px;
  font-weight: 800;
  cursor: pointer;
}

.egg-source-field select:focus,
.egg-mother-field select:focus,
.egg-note-field textarea:focus,
.egg-quantity-card label:focus-within {
  outline: 3px solid rgba(25, 131, 78, .14);
  border-color: #19834e;
}

.egg-source-field select:disabled,
.egg-mother-field select:disabled {
  cursor: not-allowed;
  color: #909b95;
  background: #f2f5f2;
}

.egg-source-help,
.egg-mother-field > em {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #63716a;
  font-size: 15px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.55;
}

.egg-source-help {
  padding-bottom: 30px;
  border-bottom: 1px solid #e2e8e3;
}

.egg-source-help img,
.egg-mother-field > em img,
.egg-source-help svg,
.egg-mother-field > em svg {
  width: 19px;
  height: 19px;
}

.egg-source-help svg,
.egg-mother-field > em svg {
  flex: 0 0 auto;
  color: #64748b;
  stroke-width: 2;
}

.egg-mother-select-wrap {
  position: relative;
  display: block !important;
}

.egg-mother-select-wrap > select {
  padding-right: 96px;
}

.egg-mother-select-wrap > svg {
  position: absolute;
  top: 50%;
  right: 50px;
  width: 29px !important;
  height: 29px !important;
  color: #101a31 !important;
  pointer-events: none;
  transform: translateY(-50%);
}

.egg-mother-field {
  padding: 35px 0 33px;
  border-bottom: 1px solid #e2e8e3;
}

.egg-mother-field > span small {
  padding: 4px 10px;
  border-radius: 999px;
  color: #8b4a16;
  background: #fff3df;
  font-size: 11px;
  font-weight: 900;
}

.egg-mother-field.is-optional > span small {
  color: #315f9d;
  background: #edf4ff;
}

.egg-mother-field.is-pool > span small {
  color: #65716b;
  background: #eef2ef;
}

.egg-operation-section {
  padding: 36px 0 18px;
  border-bottom: 1px solid #e2e8e3;
}

.egg-operation-section > h3 {
  margin: 0 0 40px;
}

.egg-operation-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.egg-operation-choice {
  position: relative;
  cursor: pointer;
}

.egg-operation-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.egg-operation-choice span {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-height: 106px;
  border: 1.5px solid #d8e0da;
  border-radius: 18px;
  color: #1f6f47;
  background: #fff;
  font-size: 24px;
  font-weight: 900;
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}

.egg-operation-choice span b {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 25px;
  line-height: 1;
}

.egg-operation-choice .egg-operation-glyph {
  width: 40px;
  height: 40px;
  stroke-width: 2.25;
}

.egg-operation-check {
  position: absolute;
  top: -15px;
  right: -15px;
  display: none;
  width: 38px;
  height: 38px;
  border: 3px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 4px 12px rgba(15, 73, 45, .18);
}

.egg-operation-choice input:checked + span .egg-operation-check {
  display: block;
}

.egg-operation-discard input:checked + span .egg-operation-check {
  filter: hue-rotate(215deg) saturate(3) brightness(1.08);
}

.egg-operation-add input:checked + span {
  border-color: #21844f;
  color: #176d42;
  background: linear-gradient(135deg, #eff9f2, #fbfdfb);
  box-shadow: inset 0 0 0 1px rgba(33, 132, 79, .08);
}

.egg-operation-discard span {
  color: #6d7470;
}

.egg-operation-discard input:checked + span {
  border-color: #d73531;
  color: #d12d29;
  background: linear-gradient(135deg, #fff4f3, #fffafa);
  box-shadow: inset 0 0 0 1px rgba(209, 45, 41, .07);
}

.egg-operation-choice input:focus-visible + span {
  outline: 3px solid rgba(25, 131, 78, .18);
  outline-offset: 3px;
}

.egg-quantity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  padding: 20px 0 24px;
}

.egg-quantity-card {
  min-height: 178px;
  padding: 27px 24px;
  border: 1px solid #d8e5dc;
  border-radius: 18px;
}

.egg-fertilized-card {
  background: linear-gradient(135deg, #f1faf4, #fff);
}

.egg-unfertilized-card {
  border-color: #d5e2f5;
  background: linear-gradient(135deg, #f2f7ff, #fff);
}

.egg-quantity-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 22px;
  color: #111a2f;
  font-size: 22px;
}

.egg-quantity-card h3 span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #22905a;
  font-size: 17px;
}

.egg-unfertilized-card h3 span {
  background: #4c82d9;
}

.egg-quantity-card label {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 54px 42px;
  min-height: 72px;
  overflow: hidden;
  border: 1px solid #d4ddd7;
  border-radius: 15px;
  background: #fff;
}

.egg-quantity-card button,
.egg-quantity-card input,
.egg-quantity-card small {
  min-width: 0;
  border: 0;
  color: #111a2f;
  background: transparent;
  font: inherit;
}

.egg-quantity-card button {
  cursor: pointer;
  font-size: 25px;
}

.egg-quantity-card button:hover {
  background: rgba(25, 131, 78, .08);
}

.egg-quantity-card input {
  width: 100%;
  border-right: 1px solid #e6ebe7;
  border-left: 1px solid #e6ebe7;
  text-align: center;
  font-size: 27px;
  font-weight: 900;
  appearance: textfield;
}

.egg-quantity-card input::-webkit-inner-spin-button,
.egg-quantity-card input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.egg-quantity-card small {
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 800;
}

.egg-total-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 0 24px;
  border: 1px solid #d8e5dc;
  border-radius: 16px;
  color: #176d42;
  background: linear-gradient(90deg, #eff8f2, #f9fcfa);
}

.egg-total-bar > span {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #111a2f;
  font-size: 21px;
}

.egg-total-bar strong {
  font-size: 30px;
}

.egg-total-bar strong small {
  margin-left: 4px;
  font-size: 14px;
}

.egg-entry-form.is-discard .egg-total-bar {
  border-color: #d8e5dc;
  color: #176d42;
  background: linear-gradient(90deg, #eff8f2, #f9fcfa);
}

.egg-note-field {
  position: relative;
  padding-top: 15px;
}

.egg-note-field textarea {
  width: 100%;
  min-height: 103px;
  resize: vertical;
  border: 1.5px solid #d8e0da;
  border-radius: 17px;
  padding: 18px 20px 32px;
  color: #111a2f;
  background: #fff;
  font: inherit;
  font-size: 16px;
}

.egg-note-field > small {
  position: absolute;
  right: 18px;
  bottom: 13px;
  color: #718079;
  font-size: 12px;
}

.egg-form-actions {
  display: grid;
  grid-template-columns: .42fr 1fr;
  gap: 22px;
  padding-top: 31px;
}

.egg-form-actions .egg-save-button,
.egg-cancel-button {
  min-height: 88px;
  border-radius: 18px;
  font: inherit;
  font-size: 20px;
  font-weight: 900;
  cursor: pointer;
}

.egg-form-actions .egg-save-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 0;
  color: #fff;
  background: linear-gradient(105deg, #216f47, #18824d);
  box-shadow: 0 14px 32px rgba(25, 117, 70, .2);
}

.egg-form-actions .egg-save-button img,
.egg-form-actions .egg-save-button svg {
  width: 25px;
  height: 25px;
  filter: brightness(0) invert(1);
}

.egg-form-actions .egg-save-button svg {
  filter: none;
  stroke-width: 2;
}

.egg-cancel-button {
  border: 1.5px solid #d7dfd9;
  color: #111a2f;
  background: #fff;
}

@media (max-width: 720px) {
  body:has(#eggLogView.active) #appMain { padding: 0 0 calc(82px + env(safe-area-inset-bottom)); }
  .egg-log-view .egg-log-heading {
    min-height: 130px;
    padding: 46px 12px 16px;
  }

  .egg-log-view .egg-log-heading .hatchling-hero-turtle {
    right: -48px;
    bottom: 0;
    width: 142px;
    max-height: 72px;
  }

  .egg-log-view .egg-log-heading h2 { font-size: 23px; letter-spacing: .02em; }
  .egg-log-view .egg-log-heading p { font-size: 12px; }
  .egg-log-view .egg-source-trail {
    grid-template-columns: 91px 8px 81px 8px 101px;
    gap: 7px;
    width: 316px;
    margin-top: -38px;
  }
  .egg-log-view .egg-source-trail > span {
    min-height: 27px;
    padding: 0 8px;
    border-radius: 7px;
    box-shadow: 0 4px 10px rgba(28, 67, 44, .08);
  }
  .egg-log-view .egg-source-trail img,
  .egg-log-view .egg-source-trail svg { width: 12px; height: 12px; }
  .egg-log-view .egg-source-trail b { font-size: 9px; }
  .egg-log-view .egg-entry-form {
    width: calc(100% - 16px);
    margin-top: 12px;
  }
  .egg-log-view .egg-entry-panel { padding: 18px 14px 9px; border-radius: 13px; }
  .egg-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; padding-bottom: 10px; }
  .egg-source-grid::after { display: block; bottom: 10px; }
  .egg-source-field,
  .egg-mother-field,
  .egg-note-field { gap: 7px; }
  .egg-source-field > span,
  .egg-mother-field > span,
  .egg-note-field > span,
  .egg-operation-section > h3 { gap: 5px; font-size: 10px; }
  .egg-source-field > span img,
  .egg-mother-field > span img,
  .egg-note-field > span img,
  .egg-operation-section > h3 img,
  .egg-total-bar img,
  .egg-source-field > span svg,
  .egg-mother-field > span svg,
  .egg-note-field > span svg,
  .egg-operation-section > h3 svg,
  .egg-total-bar svg { width: 13px; height: 13px; }
  .egg-source-field > span b { padding: 2px 4px; font-size: 6px; }
  .egg-source-field select,
  .egg-mother-field select { min-height: 35px; padding: 0 25px 0 9px; border-radius: 8px; font-size: 10px; }
  .egg-source-help,
  .egg-mother-field > em { gap: 4px; align-items: center; font-size: 7px; line-height: 1.35; }
  .egg-source-help { padding-bottom: 12px; }
  .egg-source-help img,
  .egg-mother-field > em img,
  .egg-source-help svg,
  .egg-mother-field > em svg { width: 10px; height: 10px; }
  .egg-mother-field { padding: 13px 0 12px; }
  .egg-mother-field > span small { padding: 2px 5px; font-size: 6px; }
  .egg-mother-select-wrap > select { padding-right: 49px; }
  .egg-mother-select-wrap > svg { right: 25px; width: 15px !important; height: 15px !important; }
  .egg-operation-section { padding: 13px 0 8px; }
  .egg-operation-section > h3 { margin-bottom: 16px; }
  .egg-operation-choices { gap: 9px; }
  .egg-operation-choice span { gap: 6px; min-height: 45px; border-radius: 8px; font-size: 11px; }
  .egg-operation-choice span b { width: 19px; height: 19px; font-size: 12px; }
  .egg-operation-choice .egg-operation-glyph { width: 20px; height: 20px; }
  .egg-operation-check { top: -7px; right: -7px; width: 19px; height: 19px; border-width: 2px; }
  .egg-quantity-grid { gap: 9px; padding: 9px 0 10px; }
  .egg-quantity-card { min-height: 70px; padding: 8px; border-radius: 8px; }
  .egg-quantity-card h3 { gap: 5px; margin-bottom: 6px; font-size: 10px; }
  .egg-quantity-card h3 span { width: 15px; height: 15px; font-size: 8px; }
  .egg-quantity-card label { grid-template-columns: 27px minmax(0, 1fr) 27px 21px; min-height: 33px; border-radius: 7px; }
  .egg-quantity-card button { min-height: 0; font-size: 14px; }
  .egg-quantity-card input { min-height: 0; font-size: 14px; }
  .egg-quantity-card small { font-size: 7px; }
  .egg-total-bar { min-height: 34px; padding: 0 10px; border-radius: 8px; }
  .egg-total-bar > span { gap: 6px; font-size: 10px; }
  .egg-total-bar strong { font-size: 16px; }
  .egg-total-bar strong small { font-size: 7px; }
  .egg-note-field { padding-top: 6px; }
  .egg-note-field textarea { min-height: 45px; padding: 8px 10px 16px; border-radius: 8px; font-size: 9px; }
  .egg-note-field > small { right: 9px; bottom: 6px; font-size: 7px; }
  .egg-form-actions { grid-template-columns: .42fr 1fr; gap: 9px; padding-top: 8px; }
  .egg-form-actions .egg-save-button,
  .egg-cancel-button { min-height: 41px; border-radius: 8px; font-size: 11px; }
  .egg-form-actions .egg-save-button img,
  .egg-form-actions .egg-save-button svg { width: 14px; height: 14px; }
}

@media (max-width: 390px) {
  .egg-log-view .egg-entry-panel { padding-right: 12px; padding-left: 12px; }
  .egg-log-view .egg-source-trail { width: 306px; grid-template-columns: 88px 7px 78px 7px 98px; gap: 7px; }
  .egg-source-grid { gap: 18px; }
}

/* 种龟日记与新增龟名 v15 */
.breeder-log-view,
.new-species-view {
  position: relative;
  width: min(100%, 1120px);
  margin: 0 auto;
  padding-top: 6px;
}

.breeder-page-back {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  min-height: 56px;
  margin: 0;
  padding: 0 24px;
  border: 1px solid #e4e4f2;
  border-radius: 25px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 10px 28px rgba(78, 66, 150, 0.1);
  font-size: 18px;
  font-weight: 850;
}

.breeder-page-heading,
.new-species-heading {
  display: grid;
  justify-items: center;
  gap: 8px;
  min-height: 130px;
  text-align: center;
}

.breeder-page-heading p,
.new-species-heading p {
  color: #747d90;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.breeder-page-heading h2,
.new-species-heading h2 {
  color: #12192d;
  font-size: clamp(34px, 4.5vw, 48px);
  line-height: 1.08;
  letter-spacing: 0.04em;
}

.breeder-add-species {
  display: grid;
  width: min(360px, 48%);
  min-height: 150px;
  margin: 0 auto 28px;
  place-items: center;
  align-content: center;
  gap: 12px;
  border: 1px solid #dcd6ff;
  border-radius: 18px;
  color: #644bf2;
  background: linear-gradient(145deg, #f6f2ff, #eee9ff);
  box-shadow: 0 14px 35px rgba(92, 68, 211, 0.08);
  cursor: pointer;
  font: inherit;
}

.breeder-add-species i {
  font-size: 46px;
  font-style: normal;
  font-weight: 300;
  line-height: 1;
}

.breeder-add-species strong {
  font-size: 23px;
}

.breeder-entry-panel,
.new-species-panel {
  overflow: hidden;
  padding: 26px 28px;
  border: 1px solid #e3e6ee;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 20px 56px rgba(59, 70, 108, 0.09);
}

.breeder-form-row {
  display: grid;
  grid-template-columns: 76px 230px minmax(240px, 1fr) 40px 58px;
  align-items: center;
  gap: 18px;
  min-height: 112px;
  border-bottom: 1px solid #e9ebf2;
  color: inherit;
}

.breeder-form-row > strong,
.new-species-name-row > strong {
  color: #151c30;
  font-size: 22px;
  line-height: 1.25;
}

.breeder-form-icon {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border-radius: 16px;
  color: #674df3;
  background: linear-gradient(145deg, #f4efff, #eee9ff);
  font-size: 32px;
  font-style: normal;
  font-weight: 800;
}

.breeder-icon-blue {
  color: #3978dc;
  background: #edf4ff;
}

.breeder-icon-pink {
  color: #d43d90;
  background: #fff0f8;
}

.breeder-form-control {
  display: block;
  min-width: 0;
}

.breeder-form-control input,
.breeder-form-control select,
.new-species-name-control input {
  min-height: 68px;
  border: 1px solid #dfe3ec;
  border-radius: 15px;
  padding: 0 20px;
  color: #182036;
  background: #fff;
  font-size: 19px;
  font-weight: 700;
}

.breeder-form-control input::placeholder,
.new-species-name-control input::placeholder {
  color: #a7adbc;
  font-weight: 600;
}

.breeder-form-unit {
  color: #747d91;
  font-size: 19px;
  font-weight: 800;
  text-align: center;
}

.breeder-edit-mark {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 15px;
  color: #684df3;
  background: #f3efff;
  font-size: 24px;
  font-style: normal;
}

.breeder-photo-row input[type="file"] {
  padding: 13px;
  border-style: dashed;
  color: #737b90;
  font-weight: 600;
}

.breeder-photo-row input[type="file"]::file-selector-button {
  margin-right: 16px;
  border: 0;
  color: #6249ee;
  background: transparent;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.breeder-save-button {
  display: flex;
  width: 100%;
  min-height: 80px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 26px;
  border: 0;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(100deg, #5739ed, #704df5 58%, #5936e8);
  box-shadow: 0 16px 34px rgba(93, 59, 226, 0.23);
  font: inherit;
  font-size: 27px;
  font-weight: 900;
  cursor: pointer;
}

.breeder-save-button span {
  font-size: 31px;
}

.new-species-heading {
  min-height: 230px;
  align-content: end;
  padding-bottom: 28px;
}

.new-species-heading p {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
}

.new-species-heading p i {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 10px;
  color: #6349ed;
  background: #eee9ff;
  font-style: normal;
}

.new-species-heading > span {
  width: 80px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, #c9bcff 80%, #e9e4ff 80%);
}

.new-species-name-row {
  display: grid;
  grid-template-columns: 76px 1fr;
  align-items: center;
  gap: 16px;
  padding: 0 4px 34px;
  border-bottom: 1px solid #e9ebf2;
  color: inherit;
}

.new-species-name-control {
  grid-column: 1 / -1;
  display: block;
}

.new-species-name-control input {
  min-height: 88px;
  border: 2px solid #c7baff;
  border-radius: 22px;
  font-size: 26px;
}

@media (max-width: 720px) {
  .breeder-page-back {
    min-height: 42px;
    padding: 0 13px;
    border-radius: 16px;
    font-size: 14px;
  }

  .breeder-page-heading {
    min-height: 100px;
    padding: 0 70px;
  }

  .breeder-page-heading p,
  .new-species-heading p {
    font-size: 14px;
  }

  .breeder-page-heading h2,
  .new-species-heading h2 {
    font-size: 27px;
  }

  .breeder-add-species {
    width: min(190px, 58%);
    min-height: 105px;
    margin-bottom: 18px;
    gap: 6px;
    border-radius: 16px;
  }

  .breeder-add-species i {
    font-size: 34px;
  }

  .breeder-add-species strong {
    font-size: 16px;
  }

  .breeder-entry-panel,
  .new-species-panel {
    padding: 10px 12px 16px;
    border-radius: 22px;
  }

  .breeder-form-row {
    grid-template-columns: 40px 82px minmax(0, 1fr) 20px 34px;
    gap: 6px;
    min-height: 86px;
  }

  .breeder-form-row > strong,
  .new-species-name-row > strong {
    font-size: 15px;
  }

  .breeder-form-icon {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    font-size: 20px;
  }

  .breeder-form-control input,
  .breeder-form-control select,
  .new-species-name-control input {
    min-height: 48px;
    padding: 0 8px;
    border-radius: 11px;
    font-size: 13px;
  }

  .breeder-form-unit {
    font-size: 13px;
  }

  .breeder-edit-mark {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    font-size: 16px;
  }

  .breeder-photo-row input[type="file"] {
    min-height: 54px;
    padding: 7px;
    font-size: 0;
  }

  .breeder-photo-row input[type="file"]::file-selector-button {
    margin: 0;
    font-size: 12px;
  }

  .breeder-save-button {
    min-height: 62px;
    margin-top: 16px;
    border-radius: 16px;
    font-size: 20px;
  }

  .new-species-heading {
    min-height: 150px;
    padding-bottom: 18px;
  }

  .new-species-name-row {
    grid-template-columns: 42px 1fr;
    gap: 8px;
    padding: 5px 0 22px;
  }

  .new-species-name-control input {
    min-height: 62px;
    border-radius: 15px;
    font-size: 17px;
  }

  .new-species-panel .breeder-form-row {
    grid-template-columns: 40px 62px minmax(0, 1fr) 20px;
  }

  .new-species-panel .breeder-form-row > span:last-child {
    display: none;
  }
}

@media (max-width: 400px) {
  .breeder-form-row {
    grid-template-columns: 36px 72px minmax(0, 1fr) 18px 30px;
    gap: 5px;
  }

  .breeder-photo-row > strong {
    font-size: 13px;
  }

  .new-species-panel .breeder-form-row {
    grid-template-columns: 36px 56px minmax(0, 1fr) 18px;
  }
}

/* 龟苗记录与新品龟苗 v16 */
.hatchling-icon {
  color: #21a979;
  background: linear-gradient(145deg, #eaf9f3, #e2f6ee);
}

.hatchling-add-species {
  border-color: #ccefe2;
  color: #159b6d;
  background: linear-gradient(145deg, #effbf6, #e7f8f1);
  box-shadow: 0 14px 35px rgba(32, 180, 134, 0.1);
}

.new-hatchling-heading p i {
  color: #159b6d;
  background: #e5f7ef;
}

.new-hatchling-heading > span {
  background: linear-gradient(90deg, #94dfc4 80%, #e1f5ed 80%);
}

.new-hatchling-view .new-species-name-control input {
  border-color: #a7dfcb;
}

@media (max-width: 720px) {
  .new-hatchling-heading h2 {
    font-size: 25px;
  }
}

/* 种龟、龟苗表单手机布局 v17 */
@media (max-width: 720px) {
  .breeder-log-view,
  .new-species-view {
    width: 100%;
    padding-top: 0;
  }

  .breeder-entry-panel,
  .new-species-panel {
    padding: 10px 14px 18px;
  }

  .breeder-form-row,
  .new-species-panel .breeder-form-row {
    grid-template-columns: 42px minmax(0, 1fr) 34px !important;
    grid-template-rows: auto auto;
    column-gap: 10px;
    row-gap: 10px;
    min-height: 0;
    padding: 15px 2px;
  }

  .breeder-form-row > .breeder-form-icon {
    grid-column: 1;
    grid-row: 1;
  }

  .breeder-form-row > strong {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    font-size: 17px;
  }

  .breeder-form-row > .breeder-form-control {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
  }

  .breeder-form-row > .breeder-form-unit {
    grid-column: 3;
    grid-row: 2;
    z-index: 1;
    align-self: center;
    justify-self: end;
    padding-right: 13px;
    pointer-events: none;
  }

  .breeder-form-row > .breeder-edit-mark {
    grid-column: 3;
    grid-row: 1;
  }

  .breeder-form-row > span:last-child:empty {
    display: none;
  }

  .breeder-form-control input,
  .breeder-form-control select {
    min-height: 56px;
    padding-right: 42px;
    padding-left: 14px;
    border-radius: 14px;
    font-size: 16px;
  }

  .breeder-photo-row .breeder-form-control input[type="file"] {
    min-height: 60px;
    padding: 10px 12px;
  }

  .breeder-photo-row input[type="file"]::file-selector-button {
    margin-right: 10px;
    font-size: 14px;
  }

  .breeder-save-button {
    min-height: 66px;
    font-size: 21px;
  }

  .new-species-name-row {
    padding: 12px 2px 20px;
  }

  .new-species-name-control input {
    min-height: 60px;
    padding: 0 14px;
    font-size: 16px;
  }
}

/* 乌龟照相馆：上传成长照片 v18 */
.photo-studio-view {
  position: relative;
  width: min(100%, 980px);
  margin: 0 auto;
  padding-top: 12px;
}

.photo-studio-back {
  position: absolute;
  top: 8px;
  left: 0;
  z-index: 2;
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  border: 0;
  border-radius: 24px;
  color: #5d4cf4;
  background: linear-gradient(135deg, #f0edff, #f7f5ff);
  box-shadow: 0 10px 26px rgba(75, 60, 185, 0.08);
  font-size: 18px;
  font-weight: 800;
}

.photo-studio-back span {
  margin-top: -2px;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
}

.photo-studio-heading {
  display: grid;
  place-items: center;
  margin: 0 auto 22px;
  text-align: center;
}

.photo-studio-heading p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
  color: #697187;
  font-size: 17px;
  font-weight: 800;
}

.photo-studio-heading p span {
  color: #687087;
  font-size: 18px;
}

.photo-studio-heading h2 {
  margin: 0;
  color: #121a2e;
  font-size: clamp(30px, 5vw, 42px);
  line-height: 1.12;
  letter-spacing: 0.02em;
}

.photo-studio-heading > i {
  width: 82px;
  height: 7px;
  margin-top: 16px;
  border-radius: 99px;
  background: linear-gradient(90deg, #9a87f4 78%, transparent 78%);
  position: relative;
}

.photo-studio-heading > i::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #806cf0;
  content: "";
}

.photo-studio-form {
  margin: 0;
}

.photo-studio-panel {
  display: grid;
  gap: 22px;
  padding: 36px 38px 30px;
  border: 1px solid #e7e9f1;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 48px rgba(68, 72, 112, 0.08);
}

.photo-studio-field {
  display: grid;
  gap: 10px;
  margin: 0;
}

.photo-studio-field > strong,
.photo-studio-adjust-title {
  color: #172039;
  font-size: 18px;
  font-weight: 900;
}

.photo-studio-control {
  position: relative;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  min-width: 0;
  min-height: 64px;
  overflow: hidden;
  border: 1px solid #dfe3ee;
  border-radius: 16px;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(45, 52, 85, 0.02);
}

.photo-studio-control > i {
  display: grid;
  place-items: center;
  color: #6754ed;
  background: linear-gradient(135deg, #f1efff, #faf9ff);
  font-size: 22px;
  font-style: normal;
}

.photo-studio-control select,
.photo-studio-control input {
  width: 100%;
  min-width: 0;
  min-height: 62px;
  margin: 0;
  padding: 0 52px 0 24px;
  border: 0;
  border-radius: 0;
  outline: 0;
  color: #18213a;
  background-color: transparent;
  box-shadow: none;
  font-size: 18px;
  font-weight: 700;
}

.photo-studio-control input::placeholder {
  color: #9399ac;
  font-weight: 600;
}

.photo-studio-adjust-title {
  margin-top: 4px;
}

.photo-studio-adjust-title span {
  color: #747c92;
  font-size: 16px;
  font-weight: 700;
}

.photo-studio-panel .update-photo-uploader {
  justify-items: center;
  gap: 16px;
}

.photo-studio-panel .update-photo-drop-box {
  width: 300px;
  height: 300px;
  border: 2px dashed #c9c1ff;
  border-radius: 18px;
  color: #6250e9;
  background: linear-gradient(145deg, #fbfaff, #f7f4ff);
}

.photo-studio-panel #updatePhotoPlaceholder {
  display: grid;
  place-items: center;
  gap: 16px;
}

.photo-studio-panel #updatePhotoPlaceholder.hidden {
  display: none;
}

.photo-studio-panel #updatePhotoPlaceholder i {
  display: grid;
  width: 76px;
  height: 66px;
  place-items: center;
  border: 3px solid currentColor;
  border-radius: 13px;
  font-size: 34px;
  font-style: normal;
  line-height: 1;
}

.photo-studio-panel #updatePhotoPlaceholder b {
  font-size: 20px;
}

.photo-studio-actions {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.photo-studio-actions button {
  min-height: 66px;
  justify-content: center;
  border: 0;
  border-radius: 14px;
  font-size: 18px;
  font-weight: 900;
}

.photo-studio-actions .ghost-button {
  color: #6150e9;
  background: linear-gradient(135deg, #f2efff, #f8f6ff);
}

.photo-studio-actions .danger-light-button {
  grid-column: 1 / -1;
  color: #ef3e49;
  background: linear-gradient(135deg, #fff0f1, #fff6f6);
}

.photo-studio-actions button span {
  margin-right: 8px;
  font-size: 20px;
}

.photo-studio-panel .upload-progress {
  width: 100%;
}

.photo-studio-hint {
  display: flex;
  width: 100%;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  padding: 18px 20px;
  border-radius: 14px;
  color: #737a90;
  background: linear-gradient(135deg, #f7f5ff, #fbfaff);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.65;
}

.photo-studio-hint span {
  flex: 0 0 auto;
  color: #6c59ed;
  font-size: 22px;
}

.photo-studio-save {
  width: 100%;
  min-height: 70px;
  margin-top: 0;
  border-radius: 14px;
  background: linear-gradient(100deg, #5738e9, #6849f0 50%, #5e3ae8);
  box-shadow: 0 12px 28px rgba(92, 64, 231, 0.22);
  font-size: 21px;
}

.photo-studio-save span {
  margin-right: 8px;
}

@media (max-width: 720px) {
  .photo-studio-view {
    width: 100%;
    padding-top: 72px;
  }

  .photo-studio-back {
    top: 4px;
    left: 0;
    min-height: 48px;
    padding: 0 15px;
    border-radius: 20px;
    font-size: 16px;
  }

  .photo-studio-back span {
    font-size: 30px;
  }

  .photo-studio-heading {
    margin-bottom: 18px;
  }

  .photo-studio-heading p {
    margin-bottom: 6px;
    font-size: 15px;
  }

  .photo-studio-heading h2 {
    font-size: 31px;
  }

  .photo-studio-heading > i {
    width: 64px;
    height: 6px;
    margin-top: 12px;
  }

  .photo-studio-panel {
    gap: 18px;
    padding: 22px 14px 18px;
    border-radius: 22px;
  }

  .photo-studio-field {
    gap: 8px;
  }

  .photo-studio-field > strong,
  .photo-studio-adjust-title {
    font-size: 16px;
  }

  .photo-studio-adjust-title span {
    display: block;
    margin-top: 3px;
    font-size: 13px;
  }

  .photo-studio-control {
    grid-template-columns: 54px minmax(0, 1fr);
    min-height: 56px;
    border-radius: 14px;
  }

  .photo-studio-control > i {
    font-size: 18px;
  }

  .photo-studio-control select,
  .photo-studio-control input {
    min-height: 54px;
    padding: 0 38px 0 14px;
    font-size: 15px;
  }

  .photo-studio-panel .update-photo-drop-box {
    width: min(58vw, 220px);
    height: min(58vw, 220px);
  }

  .photo-studio-panel #updatePhotoPlaceholder i {
    width: 60px;
    height: 52px;
    font-size: 26px;
  }

  .photo-studio-panel #updatePhotoPlaceholder b {
    font-size: 17px;
  }

  .photo-studio-actions {
    gap: 10px;
  }

  .photo-studio-actions button {
    min-width: 0;
    min-height: 54px;
    padding: 0 8px;
    font-size: 15px;
  }

  .photo-studio-actions button span {
    margin-right: 5px;
    font-size: 16px;
  }

  .photo-studio-hint {
    gap: 8px;
    padding: 14px;
    font-size: 13px;
    line-height: 1.55;
  }

  .photo-studio-save {
    min-height: 60px;
    font-size: 18px;
  }
}

@media (max-width: 380px) {
  .photo-studio-heading h2 {
    font-size: 27px;
  }

  .photo-studio-panel {
    padding-right: 11px;
    padding-left: 11px;
  }

  .photo-studio-actions button {
    font-size: 14px;
  }
}

/* 填写交配记录 v19 */
.mating-record-view {
  width: min(100%, 960px);
  margin: 0 auto;
}

.mating-record-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 22px;
}

.mating-record-nav .back-button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  gap: 7px;
  padding: 0 20px;
  border: 0;
  border-radius: 26px;
  color: #604cf0;
  background: linear-gradient(135deg, #f0edff, #faf9ff);
  box-shadow: 0 10px 28px rgba(76, 60, 178, 0.1);
  font-size: 17px;
  font-weight: 900;
}

.mating-record-nav .back-button span {
  margin-top: -2px;
  font-size: 32px;
  font-weight: 400;
  line-height: 1;
}

.mating-record-nav .back-button:first-child {
  color: #fff;
  background: linear-gradient(105deg, #5a3bea, #7559f1);
}

.mating-record-panel {
  padding: 46px 36px 38px;
  border: 1px solid #e7e9f2;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 18px 54px rgba(53, 59, 104, 0.08);
}

.mating-record-heading {
  display: grid;
  place-items: center;
  margin-bottom: 36px;
  text-align: center;
}

.mating-record-heading p {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 12px;
  color: #555e75;
  font-size: 21px;
  font-weight: 800;
}

.mating-record-heading p span {
  color: #5e47e7;
  font-size: 31px;
}

.mating-record-heading p i {
  color: #b9aff9;
  font-size: 22px;
  font-style: normal;
}

.mating-record-heading h2 {
  color: #121a2e;
  font-size: clamp(32px, 5vw, 46px);
  line-height: 1.15;
  letter-spacing: 0.02em;
}

.mating-record-heading b {
  position: relative;
  width: 68px;
  height: 7px;
  margin-top: 18px;
  border-radius: 99px;
  background: linear-gradient(90deg, #775cf0 78%, transparent 78%);
}

.mating-record-heading b::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #7359ed;
  content: "";
}

.mating-record-form {
  display: grid;
  gap: 28px;
}

.mating-record-form .mating-preset-notice {
  margin: 0;
  padding: 15px 18px;
  border-color: #d7d0ff;
  background: #f8f6ff;
}

.mating-male-recommendations {
  min-width: 0;
  padding: 18px;
  border: 1px solid #e5dfff;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(249, 247, 255, 0.98), rgba(255, 255, 255, 0.98));
  box-shadow: 0 10px 26px rgba(83, 62, 183, 0.07);
}

.mating-male-recommendations-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.mating-male-recommendations-head > div {
  display: grid;
  gap: 3px;
}

.mating-male-recommendations-head strong {
  color: #172039;
  font-size: 19px;
  font-weight: 900;
}

.mating-male-recommendations-head span,
.mating-male-recommendations > p {
  color: #7d8596;
  font-size: 13px;
  line-height: 1.5;
}

.mating-male-recommendations-head small {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  color: #6a51e8;
  background: #eeeaff;
  font-size: 11px;
  font-weight: 800;
}

.mating-male-recommendation-list {
  display: grid;
  grid-auto-columns: minmax(124px, 1fr);
  grid-auto-flow: column;
  gap: 10px;
  min-width: 0;
  margin: 0 -4px 12px;
  padding: 4px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-width: thin;
}

.mating-male-option {
  position: relative;
  display: grid;
  min-height: 105px;
  align-content: center;
  gap: 7px;
  padding: 13px 12px;
  overflow: hidden;
  border: 1px solid #e2e5ef;
  border-radius: 16px;
  color: #172039;
  background: #fff;
  box-shadow: 0 5px 14px rgba(49, 57, 91, 0.05);
  text-align: left;
  scroll-snap-align: start;
  cursor: pointer;
}

.mating-male-option:hover,
.mating-male-option:focus-visible {
  border-color: #a996ff;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(111, 81, 238, 0.11);
}

.mating-male-option.selected {
  border-color: #7154ef;
  background: linear-gradient(145deg, #6747eb, #8064f3);
  box-shadow: 0 9px 21px rgba(91, 64, 218, 0.21);
}

.mating-male-option > strong {
  max-width: 100%;
  overflow: hidden;
  font-size: 16px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mating-male-hearts {
  display: flex;
  min-height: 16px;
  align-items: center;
  gap: 1px;
}

.mating-male-hearts img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.mating-male-option > small {
  color: #7a8293;
  font-size: 11px;
  font-weight: 700;
}

.mating-male-option > i {
  position: absolute;
  top: 8px;
  right: 8px;
  display: none;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  color: #6748e8;
  background: #fff;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.mating-male-option.selected > strong,
.mating-male-option.selected > small { color: #fff; }
.mating-male-option.selected > i { display: grid; }

.mating-choice-error {
  margin: -12px 0 0;
  padding: 12px 14px;
  border: 1px solid #ffd7d9;
  border-radius: 13px;
  color: #c8323c;
  background: #fff5f5;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}

.mating-record-row {
  display: grid;
  grid-template-columns: 78px 180px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 120px;
  margin: 0;
  padding: 20px 24px;
  border: 1px solid #e7e9f2;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(55, 60, 98, 0.045);
}

.mating-record-icon {
  display: grid;
  width: 68px;
  height: 68px;
  place-items: center;
  border-radius: 22px;
  color: #624bed;
  background: linear-gradient(135deg, #f0edff, #faf9ff);
  font-size: 32px;
  font-style: normal;
  font-weight: 800;
}

.mating-record-icon.female {
  color: #e34a9b;
  background: linear-gradient(135deg, #fdebf5, #fff7fb);
}

.mating-record-row > strong {
  color: #151d32;
  font-size: 23px;
  font-weight: 900;
}

.mating-record-row select {
  min-width: 0;
  min-height: 72px;
  margin: 0;
  padding: 0 54px 0 24px;
  border: 1px solid #dfe3ee;
  border-radius: 18px;
  color: #172039;
  background-color: #fff;
  box-shadow: inset 0 1px 2px rgba(45, 52, 85, 0.02);
  font-size: 20px;
  font-weight: 700;
}

.mating-record-note {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 26px;
  border-radius: 20px;
  background: linear-gradient(135deg, #f4f1ff, #fbfaff);
}

.mating-record-note > span {
  display: flex;
  align-items: center;
  gap: 15px;
}

.mating-record-note > span i {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 18px;
  color: #604bea;
  background: #ebe7ff;
  font-size: 27px;
  font-style: normal;
}

.mating-record-note > span strong {
  color: #252d43;
  font-size: 22px;
  font-weight: 900;
}

.mating-record-note textarea {
  width: 100%;
  min-height: 128px;
  resize: vertical;
  padding: 22px 24px;
  border: 1px solid #e0e3ec;
  border-radius: 18px;
  outline: 0;
  color: #172039;
  background: #fff;
  font: inherit;
  font-size: 19px;
}

.mating-record-note textarea::placeholder {
  color: #a2a7b6;
}

.mating-record-save {
  width: 100%;
  min-height: 82px;
  border-radius: 18px;
  background: linear-gradient(100deg, #5637e9, #704ff0 52%, #5e3bea);
  box-shadow: 0 14px 30px rgba(91, 61, 228, 0.22);
  font-size: 23px;
  font-weight: 900;
}

.mating-record-save span {
  margin-right: 9px;
}

@media (max-width: 720px) {
  .mating-record-view {
    width: 100%;
  }

  .mating-record-nav {
    gap: 8px;
    margin-bottom: 14px;
  }

  .mating-record-nav .back-button {
    min-height: 46px;
    padding: 0 13px;
    border-radius: 19px;
    font-size: 14px;
  }

  .mating-record-nav .back-button span {
    font-size: 27px;
  }

  .mating-record-panel {
    padding: 28px 13px 18px;
    border-radius: 22px;
  }

  .mating-record-heading {
    margin-bottom: 24px;
  }

  .mating-record-heading p {
    gap: 8px;
    margin-bottom: 8px;
    font-size: 16px;
  }

  .mating-record-heading p span {
    font-size: 24px;
  }

  .mating-record-heading h2 {
    font-size: 29px;
  }

  .mating-record-heading b {
    width: 56px;
    height: 6px;
    margin-top: 12px;
  }

  .mating-record-form {
    gap: 14px;
  }

  .mating-male-recommendations {
    padding: 15px 12px;
    border-radius: 17px;
  }

  .mating-male-recommendations-head strong { font-size: 17px; }
  .mating-male-recommendations-head span { font-size: 11px; }

  .mating-male-recommendation-list {
    grid-auto-columns: 116px;
    gap: 8px;
  }

  .mating-male-option {
    min-height: 98px;
    padding: 12px 10px;
    border-radius: 14px;
  }

  .mating-male-option > strong { font-size: 15px; }
  .mating-male-hearts img { width: 12px; height: 12px; }

  .mating-record-row {
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 10px 12px;
    min-height: 0;
    padding: 15px 12px;
    border-radius: 16px;
  }

  .mating-record-icon {
    grid-column: 1;
    grid-row: 1;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    font-size: 24px;
  }

  .mating-record-row > strong {
    grid-column: 2;
    grid-row: 1;
    font-size: 18px;
  }

  .mating-record-row select {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 56px;
    padding: 0 42px 0 14px;
    border-radius: 14px;
    font-size: 16px;
  }

  .mating-record-note {
    gap: 12px;
    padding: 16px 12px;
    border-radius: 16px;
  }

  .mating-record-note > span i {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    font-size: 21px;
  }

  .mating-record-note > span strong {
    font-size: 18px;
  }

  .mating-record-note textarea {
    min-height: 100px;
    padding: 15px;
    border-radius: 14px;
    font-size: 16px;
  }

  .mating-record-save {
    min-height: 64px;
    border-radius: 15px;
    font-size: 19px;
  }
}

@media (max-width: 370px) {
  .mating-record-nav .back-button {
    padding-right: 10px;
    padding-left: 10px;
    font-size: 13px;
  }
}

/* 交配日记：公母龟配对关系布局 v233 */
.mating-record-panel {
  max-width: 820px;
  margin-inline: auto;
  padding: 42px 32px 34px;
}

.mating-record-heading {
  margin-bottom: 30px;
}

.mating-record-form {
  gap: 22px;
}

.mating-pair-shell {
  padding: 20px;
  border: 1px solid #e4e6f1;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 16px 38px rgba(54, 58, 96, 0.075);
}

.mating-partner-section {
  overflow: hidden;
  border: 1px solid #ddd7ff;
  border-radius: 24px;
  background: #fff;
}

.mating-partner-section.female {
  border-color: #f6d6e7;
}

.mating-partner-heading {
  display: flex;
  min-height: 106px;
  align-items: center;
  gap: 18px;
  padding: 20px 24px;
  background: linear-gradient(105deg, #f5f2ff 0%, #fbfaff 100%);
}

.mating-partner-section.female .mating-partner-heading {
  background: linear-gradient(105deg, #fff1f8 0%, #fffafd 100%);
}

.mating-partner-symbol {
  display: grid;
  width: 66px;
  height: 66px;
  flex: 0 0 66px;
  place-items: center;
  border: 2px solid #917dff;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.72);
}

.mating-partner-section.female .mating-partner-symbol {
  border-color: #ec8dbc;
}

.mating-partner-symbol img {
  display: block;
  width: 34px;
  height: 34px;
}

.mating-partner-section.male .mating-partner-symbol img {
  filter: hue-rotate(35deg) saturate(1.05);
}

.mating-partner-heading > span:last-child {
  display: grid;
  gap: 4px;
}

.mating-partner-heading strong {
  color: #151d32;
  font-size: 25px;
  font-weight: 900;
  line-height: 1.2;
}

.mating-partner-heading small {
  color: #7058ef;
  font-size: 14px;
  font-weight: 700;
}

.mating-partner-section.female .mating-partner-heading strong,
.mating-partner-section.female .mating-partner-heading small {
  color: #d8428d;
}

.mating-partner-fields {
  padding: 6px 24px 12px;
}

.mating-record-row {
  grid-template-columns: 146px minmax(0, 1fr);
  min-height: 88px;
  gap: 18px;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid #eceef4;
  border-radius: 0;
  box-shadow: none;
}

.mating-record-row:last-child {
  border-bottom: 0;
}

.mating-record-row > strong {
  font-size: 19px;
}

.mating-record-row select {
  min-height: 62px;
  padding-right: 48px;
  padding-left: 22px;
  border-color: #dfe2ed;
  border-radius: 17px;
  font-size: 18px;
}

.mating-partner-section.female .mating-record-row select {
  border-color: #f1d6e4;
}

.mating-record-row select:focus-visible {
  border-color: #6c50ed;
  outline: 3px solid rgba(108, 80, 237, 0.14);
}

.mating-partner-section.female .mating-record-row select:focus-visible {
  border-color: #df4d96;
  outline-color: rgba(223, 77, 150, 0.13);
}

.mating-record-icon {
  display: none;
}

.mating-pair-connector {
  position: relative;
  display: grid;
  height: 58px;
  place-items: center;
}

.mating-pair-connector::before {
  width: 1px;
  height: 100%;
  background: linear-gradient(#a991ff, #f0aacd);
  content: "";
}

.mating-pair-connector span {
  position: absolute;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid #f3d9e7;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 6px 16px rgba(113, 71, 173, 0.1);
}

.mating-pair-connector img {
  display: block;
  width: 22px;
  height: 22px;
  filter: hue-rotate(325deg) saturate(0.72) brightness(1.08);
}

.mating-record-note {
  gap: 14px;
  padding: 20px 22px;
  border: 1px solid #e5e7f0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 25px rgba(54, 58, 96, 0.055);
}

.mating-record-note > span i {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: #f0edff;
}

.mating-record-note > span i img {
  width: 25px;
  height: 25px;
}

.mating-record-note textarea {
  min-height: 92px;
  padding: 17px 20px;
}

.mating-record-save {
  min-height: 72px;
  border-radius: 20px;
  background: linear-gradient(100deg, #4f36e8, #694cf0 50%, #4e34e7);
}

@media (max-width: 720px) {
  .mating-record-panel {
    padding: 25px 10px 16px;
  }

  .mating-record-heading {
    margin-bottom: 22px;
  }

  .mating-record-heading h2 {
    font-size: 31px;
  }

  .mating-record-form {
    gap: 14px;
  }

  .mating-pair-shell {
    padding: 9px;
    border-radius: 22px;
  }

  .mating-partner-section {
    border-radius: 18px;
  }

  .mating-partner-heading {
    min-height: 82px;
    gap: 13px;
    padding: 13px 15px;
  }

  .mating-partner-symbol {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }

  .mating-partner-symbol img {
    width: 27px;
    height: 27px;
  }

  .mating-partner-heading strong {
    font-size: 21px;
  }

  .mating-partner-heading small {
    font-size: 12px;
  }

  .mating-partner-fields {
    padding: 4px 14px 8px;
  }

  .mating-record-row {
    grid-template-columns: 102px minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 9px;
    min-height: 72px;
    padding: 9px 0;
  }

  .mating-record-row > strong {
    grid-column: 1;
    grid-row: 1;
    font-size: 16px;
  }

  .mating-record-row select {
    grid-column: 2;
    grid-row: 1;
    min-height: 54px;
    padding: 0 35px 0 13px;
    border-radius: 14px;
    font-size: 16px;
  }

  .mating-pair-connector {
    height: 48px;
  }

  .mating-pair-connector span {
    width: 38px;
    height: 38px;
  }

  .mating-pair-connector img {
    width: 19px;
    height: 19px;
  }

  .mating-record-note {
    padding: 14px;
    border-radius: 18px;
  }

  .mating-record-note > span i {
    width: 42px;
    height: 42px;
  }

  .mating-record-note textarea {
    min-height: 82px;
    padding: 14px;
  }

  .mating-record-save {
    min-height: 64px;
    border-radius: 17px;
  }
}

@media (max-width: 380px) {
  .mating-record-row {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .mating-record-row > strong,
  .mating-record-row select {
    font-size: 15px;
  }
}

/* 数据中心：所有日记记录 v20 */
.data-center-view {
  width: min(100%, 1040px);
  margin: 0 auto;
}

.data-center-back {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  border: 0;
  border-radius: 25px;
  color: #5b49ee;
  background: linear-gradient(135deg, #eeebff, #faf9ff);
  box-shadow: 0 10px 28px rgba(74, 61, 168, 0.08);
  font-size: 18px;
  font-weight: 900;
}

.data-center-back span {
  margin-top: -2px;
  font-size: 32px;
  font-weight: 400;
  line-height: 1;
}

.data-center-page-title {
  display: grid;
  gap: 7px;
  margin: 26px 0 24px;
}

.data-center-page-title .eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #727b91;
  font-size: 17px;
}

.data-center-page-title h2 {
  color: #121a2e;
  font-size: clamp(30px, 5vw, 42px);
  letter-spacing: 0.02em;
}

.data-center-panel {
  padding: 30px 34px 34px;
  overflow: hidden;
  border: 1px solid #e7e9f1;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 18px 50px rgba(59, 64, 102, 0.07);
}

.data-center-panel-head {
  display: grid;
  justify-items: center;
  gap: 22px;
  text-align: center;
}

.data-center-panel-head > div {
  display: grid;
  place-items: center;
  gap: 7px;
}

.data-center-panel-head .eyebrow {
  display: flex;
  align-items: center;
  gap: 13px;
  color: #778097;
  font-size: 17px;
}

.data-center-panel-head .eyebrow i {
  width: 20px;
  height: 1px;
  background: #aeb5c5;
}

.data-center-panel-head h2 {
  color: #121a2e;
  font-size: 30px;
}

.data-center-search {
  position: relative;
  display: block;
  width: min(100%, 720px);
  margin: 0 auto;
}

.data-center-search > span {
  position: absolute;
  top: 50%;
  left: 20px;
  z-index: 1;
  color: #727b91;
  font-size: 31px;
  font-weight: 400;
  line-height: 1;
  transform: translateY(-52%);
  pointer-events: none;
}

.data-center-search .table-search {
  width: 100%;
  min-height: 64px;
  padding: 0 22px 0 60px;
  border: 1px solid #dfe3ed;
  border-radius: 16px;
  color: #172039;
  background: #fff;
  font-size: 18px;
}

.data-center-search .table-search::placeholder {
  color: #adb2c0;
}

.data-center-panel .data-center-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 26px 12px 32px;
}

.data-center-panel .data-center-tabs button {
  display: inline-flex;
  min-width: 0;
  min-height: 62px;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 0 18px;
  border-color: #dfe3ed;
  border-radius: 15px;
  color: #687188;
  background: #fff;
  box-shadow: 0 4px 12px rgba(52, 59, 94, 0.025);
  font-size: 18px;
}

.data-center-panel .data-center-tabs button span {
  color: #6451eb;
  font-size: 25px;
  font-weight: 600;
}

.data-center-panel .data-center-tabs button:nth-child(3) span,
.data-center-panel .data-center-tabs button:nth-child(4) span {
  color: #67b7c7;
}

.data-center-panel .data-center-tabs button:nth-child(6) span {
  color: #e0579f;
}

.data-center-panel .data-center-tabs button.active {
  border-color: transparent;
  color: #5d49e9;
  background: linear-gradient(135deg, #ebe7ff, #f7f5ff);
  box-shadow: 0 8px 18px rgba(94, 72, 220, 0.08);
}

.data-center-panel .data-center-date-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px 20px;
  margin: 0 12px 26px;
  padding: 14px 0 0;
}

.data-center-panel .data-center-date-left {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 150px 180px 150px;
  align-items: center;
  gap: 12px;
}

.data-center-panel .data-center-date-left > span {
  position: relative;
  padding-left: 38px;
  color: #687188;
  font-size: 17px;
}

.data-center-panel .data-center-date-left > span::before {
  position: absolute;
  top: 50%;
  left: 0;
  color: #6d7690;
  content: "▣";
  font-size: 24px;
  transform: translateY(-50%);
}

.data-center-panel .data-center-date-left select {
  width: 100%;
  min-width: 0;
  min-height: 58px;
  padding: 0 42px 0 18px;
  border-color: #dfe3ed;
  border-radius: 15px;
  color: #172039;
  background-color: #fff;
  font-size: 18px;
  font-weight: 800;
}

.data-center-panel .data-center-date-tools .danger-button {
  min-height: 54px;
  padding: 0 20px;
  border-radius: 14px;
  background: linear-gradient(135deg, #fff0f1, #fff5f5);
  font-size: 16px;
}

.data-center-panel .table-tools {
  gap: 14px;
  margin: 0 0 14px;
  color: #747c91;
  font-size: 15px;
}

.data-center-panel .table-tools > span {
  font-weight: 700;
}

.data-center-panel .table-column-settings summary {
  min-height: 48px;
  padding: 0 22px;
  border-radius: 14px;
  background: linear-gradient(135deg, #eeeaff, #f7f5ff);
  font-size: 17px;
}

.data-center-panel .table-wrap {
  margin-top: 0;
  border: 1px solid #d9d2ff;
  border-radius: 0;
}

.data-center-panel table {
  min-width: 900px;
}

.data-center-panel th,
.data-center-panel td {
  height: 50px;
  border-color: #e3e5ed;
  text-align: center;
}

.data-center-panel th {
  color: #604bea;
  background: linear-gradient(180deg, #eeeaff, #f5f2ff);
  font-size: 17px;
}

.data-center-panel tbody tr:nth-child(even) td {
  background: #fdfdff;
}

.data-center-panel .pill {
  border: 0;
  color: #242a3c;
  background: linear-gradient(135deg, #ede9ff, #f7f5ff);
}

@media (max-width: 720px) {
  .data-center-view {
    width: 100%;
  }

  .data-center-back {
    min-height: 46px;
    padding: 0 14px;
    border-radius: 19px;
    font-size: 15px;
  }

  .data-center-back span {
    font-size: 28px;
  }

  .data-center-page-title {
    gap: 5px;
    margin: 20px 2px 18px;
  }

  .data-center-page-title .eyebrow {
    font-size: 15px;
  }

  .data-center-page-title h2 {
    font-size: 29px;
  }

  .data-center-panel {
    padding: 24px 10px 18px;
    border-radius: 21px;
  }

  .data-center-panel-head {
    gap: 16px;
  }

  .data-center-panel-head .eyebrow {
    font-size: 14px;
  }

  .data-center-panel-head h2 {
    font-size: 25px;
  }

  .data-center-search .table-search {
    min-height: 54px;
    padding-left: 50px;
    border-radius: 14px;
    font-size: 15px;
  }

  .data-center-search > span {
    left: 16px;
    font-size: 26px;
  }

  .data-center-panel .data-center-tabs {
    gap: 8px;
    margin: 18px 0 22px;
  }

  .data-center-panel .data-center-tabs button {
    min-height: 52px;
    gap: 7px;
    padding: 0 7px;
    border-radius: 13px;
    font-size: 14px;
  }

  .data-center-panel .data-center-tabs button span {
    font-size: 19px;
  }

  .data-center-panel .data-center-date-tools {
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 0 0 22px;
  }

  .data-center-panel .data-center-date-left {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .data-center-panel .data-center-date-left > span {
    grid-column: 1 / -1;
    padding-left: 30px;
    font-size: 15px;
  }

  .data-center-panel .data-center-date-left > span::before {
    font-size: 20px;
  }

  .data-center-panel .data-center-date-left select {
    min-height: 52px;
    padding: 0 35px 0 13px;
    border-radius: 13px;
    font-size: 15px;
  }

  .data-center-panel .data-center-date-tools .danger-button {
    width: 100%;
    min-height: 50px;
  }

  .data-center-panel .table-tools {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
  }

  .data-center-panel .table-tools > span {
    margin: 0;
    text-align: right;
    font-size: 12px;
  }

  .data-center-panel .table-column-settings summary {
    min-height: 42px;
    padding: 0 16px;
    font-size: 14px;
  }

  .data-center-panel .table-column-panel {
    left: 0;
    grid-template-columns: 1fr;
    min-width: min(280px, calc(100vw - 48px));
    max-height: 55vh;
    overflow: auto;
  }

  .data-center-panel table {
    min-width: 820px;
    font-size: 13px;
  }

  .data-center-panel th,
  .data-center-panel td {
    height: 44px;
    padding: 7px 10px;
  }

  .data-center-panel th {
    font-size: 14px;
  }
}

@media (max-width: 370px) {
  .data-center-panel .data-center-tabs button {
    font-size: 13px;
  }

  .data-center-panel .data-center-tabs button span {
    font-size: 17px;
  }
}

/* v141 数据中心：日期时间线 */
.data-center-view.data-center-view {
  width: min(100%, 920px);
  padding-bottom: 110px;
}

.data-center-hero {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto minmax(150px, 1fr);
  align-items: center;
  gap: 16px;
  margin: 0 0 24px;
}

.data-center-hero h1 {
  margin: 0;
  color: #111b35;
  font-size: 34px;
  line-height: 1;
  text-align: center;
}

.data-center-hero .data-center-back {
  justify-self: start;
  min-height: 48px;
  padding-inline: 16px;
  color: #5145de;
  background: rgba(255, 255, 255, .92);
}

.data-center-back img {
  width: 15px;
  height: 24px;
  transform: rotate(180deg);
}

.data-center-more-menu {
  position: relative;
  z-index: 20;
  justify-self: end;
}

.data-center-more-menu summary {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border: 1px solid rgba(215, 224, 216, .94);
  border-radius: 20px;
  color: #14203a;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 24px rgba(49, 72, 55, .08);
  font-size: 15px;
  font-weight: 850;
  cursor: pointer;
  list-style: none;
}

.data-center-more-menu summary::-webkit-details-marker { display: none; }

.data-center-more-menu > div {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: 190px;
  overflow: hidden;
  border: 1px solid #e3e9e3;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(26, 53, 35, .16);
}

.data-center-more-menu > div button {
  min-height: 48px;
  padding: 0 16px;
  border: 0;
  border-radius: 0;
  color: #263247;
  background: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 750;
  text-align: left;
}

.data-center-more-menu > div button + button { border-top: 1px solid #edf0ed; }
.data-center-more-menu > div button.danger { color: #d43c36; }

.data-center-panel.data-center-panel {
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.data-center-search {
  position: relative;
  display: block;
  width: 100%;
  margin: 0 0 18px;
}

.data-center-search .table-search {
  width: 100%;
  min-height: 62px;
  padding: 0 22px;
  border: 1px solid rgba(214, 222, 215, .96);
  border-radius: 22px;
  color: #172039;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 30px rgba(43, 74, 52, .06);
  font-size: 17px;
}

.data-center-panel .data-center-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 16px;
  padding: 0;
}

.data-center-panel .data-center-tabs button {
  flex: 1 1 88px;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid rgba(216, 223, 216, .96);
  border-radius: 17px;
  color: #30394b;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 5px 15px rgba(42, 68, 49, .035);
  font-size: 15px;
  font-weight: 800;
  white-space: nowrap;
}

.data-center-panel .data-center-tabs button[data-data-center-tab="management"] {
  flex: 2 1 160px;
}

.data-center-panel .data-center-tabs button.active {
  border-color: #d8d0ff;
  color: #5442dc;
  background: #eeeaff;
  box-shadow: 0 7px 18px rgba(94, 72, 220, .1);
}

.data-center-panel .data-center-date-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px;
  padding: 10px;
  border: 1px solid rgba(215, 224, 216, .96);
  border-radius: 20px;
  background: rgba(255, 255, 255, .88);
}

.data-center-panel .data-center-date-left {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
}

.data-center-panel .data-center-date-left select {
  width: auto;
  min-width: 92px;
  min-height: 46px;
  padding: 0 34px 0 14px;
  border: 1px solid #e0e5e0;
  border-radius: 14px;
  color: #19233a;
  background-color: #fff;
  font-size: 15px;
  font-weight: 800;
}

.data-center-filter-label {
  padding: 0 12px;
  color: #16804b;
  font-size: 16px;
  font-weight: 900;
}

.data-center-timeline {
  display: grid;
  gap: 22px;
}

.data-center-day-group {
  position: relative;
  padding-left: 28px;
}

.data-center-day-group::before {
  position: absolute;
  top: 13px;
  bottom: -23px;
  left: 8px;
  width: 2px;
  border-radius: 99px;
  background: #c9e3d1;
  content: "";
}

.data-center-day-group:last-child::before { bottom: 12px; }

.data-center-day-group > h2 {
  position: relative;
  margin: 0 0 12px;
  color: #16804b;
  font-size: 20px;
  line-height: 1.25;
}

.data-center-day-group > h2::before {
  position: absolute;
  top: 5px;
  left: -26px;
  width: 14px;
  height: 14px;
  border: 3px solid #eef7f0;
  border-radius: 50%;
  background: #58a873;
  box-shadow: 0 0 0 1px #a9d0b5;
  content: "";
}

.data-center-day-group > h2 span {
  margin-left: 5px;
  font-size: .78em;
  font-weight: 750;
}

.data-center-day-list {
  overflow: hidden;
  border: 1px solid rgba(227, 234, 228, .98);
  border-radius: 20px;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 10px 28px rgba(37, 72, 47, .055);
}

.data-center-timeline-row {
  display: grid;
  grid-template-columns: 54px 72px minmax(0, 1fr) auto 44px;
  min-height: 76px;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 10px 16px;
}

.data-center-timeline-row + .data-center-timeline-row { border-top: 1px solid #edf0ed; }
.data-center-timeline-row > time { color: #1a2438; font-size: 14px; font-variant-numeric: tabular-nums; }

.data-center-category-badge {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  padding: 0 9px;
  border-radius: 999px;
  color: #5b45df;
  background: #eeeaff;
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
}

.tone-hatchling .data-center-category-badge { color: #168399; background: #e8f7f8; }
.tone-breeder .data-center-category-badge { color: #277b49; background: #edf7ee; }
.tone-income .data-center-category-badge { color: #147847; background: #eaf7ef; }
.tone-expense .data-center-category-badge { color: #ca7414; background: #fff3e3; }
.tone-mating .data-center-category-badge { color: #d24880; background: #fff0f5; }

.data-center-row-main {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.data-center-row-main b,
.data-center-row-main small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.data-center-row-main b { color: #121c32; font-size: 16px; }
.data-center-row-main small { color: #687386; font-size: 13px; font-weight: 700; }

.data-center-proof-status {
  display: inline-flex;
  width: fit-content;
  min-height: 22px;
  align-items: center;
  gap: 5px;
  padding: 0;
  border: 0;
  color: #98a09b;
  background: transparent;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
}

button.data-center-proof-status {
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid #cbe4d3;
  border-radius: 999px;
  color: #167847;
  background: #eef8f1;
  cursor: pointer;
  touch-action: manipulation;
}

.data-center-proof-status svg { width: 14px; height: 14px; }
button.data-center-proof-status:active { background: #dff1e5; }
button.data-center-proof-status:focus-visible { outline: 3px solid rgba(41, 137, 80, .25); outline-offset: 1px; }
.data-center-timeline-row > strong { color: #07834a; font-size: 17px; white-space: nowrap; }
.tone-expense.data-center-timeline-row > strong { color: #d46d16; }

.data-center-timeline-row.is-expandable {
  cursor: pointer;
  touch-action: manipulation;
}

.data-center-timeline-row.is-expandable:active { background: #f5faf6; }

.data-center-timeline-row.expanded {
  align-items: start;
  padding-block: 16px;
}

.data-center-timeline-row.expanded .data-center-row-main small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.data-center-timeline-row.expanded .data-center-row-expand svg { transform: rotate(180deg); }

.data-center-row-more {
  display: inline-grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 14px;
  color: #5d6879;
  background: transparent;
  font-size: 19px;
  font-weight: 900;
  letter-spacing: 1px;
}

.data-center-row-more:active { background: #eef5ef; }
.data-center-row-more:focus-visible { outline: 3px solid rgba(41, 137, 80, .25); outline-offset: 1px; }

.data-center-timeline-empty {
  display: grid;
  min-height: 180px;
  place-content: center;
  gap: 7px;
  border-radius: 22px;
  color: #788296;
  background: rgba(255, 255, 255, .9);
  text-align: center;
}

.data-center-timeline-empty strong { color: #263247; font-size: 18px; }
.data-center-load-more {
  justify-self: center;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid #cfe2d4;
  border-radius: 17px;
  color: #167747;
  background: rgba(255, 255, 255, .94);
  font: inherit;
  font-size: 14px;
  font-weight: 850;
}
.data-center-load-more b { margin: 0 2px; }
.data-center-load-more span { margin-left: 7px; color: #7b8595; font-size: 11px; }
.data-center-legacy-tables { display: none; }
.data-center-table-mode .data-center-timeline { display: none; }
.data-center-table-mode .data-center-legacy-tables { display: block; }
.data-center-table-mode .data-center-legacy-tables > .table-tools { margin-top: 14px; }

.data-center-action-sheet {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  align-items: end;
}

.data-center-action-sheet.hidden { display: none !important; }
.data-center-sheet-backdrop { position: absolute; inset: 0; border: 0; border-radius: 0; background: rgba(14, 27, 21, .42); }

.data-center-action-sheet > section {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 12px;
  width: min(100%, 520px);
  margin: 0 auto;
  padding: 10px 16px calc(18px + env(safe-area-inset-bottom));
  border-radius: 26px 26px 0 0;
  background: #f7faf7;
  box-shadow: 0 -18px 50px rgba(18, 46, 29, .18);
}

.data-center-sheet-handle {
  width: 48px;
  height: 5px;
  margin: 0 auto;
  border-radius: 99px;
  background: #cbd6cd;
}

.data-center-sheet-heading { display: grid; gap: 4px; padding: 6px 4px; text-align: center; }
.data-center-sheet-heading strong { color: #142039; font-size: 18px; }
.data-center-sheet-heading small { color: #778195; font-size: 12px; }
.data-center-sheet-actions { display: grid; overflow: hidden; border: 1px solid #e1e8e2; border-radius: 18px; background: #fff; }

.data-center-sheet-actions button,
.data-center-sheet-cancel {
  min-height: 54px;
  border: 0;
  border-radius: 0;
  color: #173d28;
  background: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 850;
}

.data-center-sheet-actions button + button { border-top: 1px solid #edf0ed; }
.data-center-sheet-actions button.danger { color: #d83f39; }
.data-center-sheet-cancel { border: 1px solid #e1e8e2; border-radius: 18px; }
body.data-center-sheet-open { overflow: hidden; }

@media (max-width: 720px) {
  .data-center-view.data-center-view { padding-inline: 3px; }
  .data-center-hero { grid-template-columns: 104px minmax(0, 1fr) 74px; gap: 5px; margin-bottom: 18px; }
  .data-center-hero h1 { font-size: 25px; }
  .data-center-hero .data-center-back { min-height: 44px; padding-inline: 10px; border-radius: 18px; font-size: 13px; }
  .data-center-back img { width: 11px; height: 19px; }
  .data-center-more-menu summary { min-height: 44px; padding-inline: 12px; border-radius: 18px; font-size: 13px; }
  .data-center-more-menu > div { width: 174px; }
  .data-center-search { margin-bottom: 13px; }
  .data-center-search .table-search { min-height: 56px; padding-inline: 18px; border-radius: 19px; font-size: 15px; }
  .data-center-panel .data-center-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 13px; overflow: visible; }
  .data-center-panel .data-center-tabs::-webkit-scrollbar { display: none; }
  .data-center-panel .data-center-tabs button { min-width: 0; min-height: 44px; padding-inline: 8px; border-radius: 15px; font-size: 12px; }
  .data-center-panel .data-center-tabs button[data-data-center-tab="management"] { flex-basis: 100%; }
  .data-center-panel .data-center-date-tools { margin-bottom: 18px; padding: 7px; border-radius: 17px; }
  .data-center-panel .data-center-date-left { gap: 6px; }
  .data-center-panel .data-center-date-left select { min-width: 64px; min-height: 43px; padding: 0 27px 0 9px; border-radius: 12px; font-size: 12px; }
  .data-center-panel .data-center-date-left select[data-data-center-year] { min-width: 89px; }
  .data-center-panel .data-center-date-left select[data-data-center-month] { min-width: 68px; }
  .data-center-filter-label { padding-inline: 7px; font-size: 13px; }
  .data-center-timeline { gap: 18px; }
  .data-center-day-group { padding-left: 19px; }
  .data-center-day-group::before { left: 5px; }
  .data-center-day-group > h2 { margin-bottom: 9px; font-size: 17px; }
  .data-center-day-group > h2::before { top: 3px; left: -18px; width: 11px; height: 11px; border-width: 2px; }
  .data-center-day-list { border-radius: 17px; }
  .data-center-timeline-row { grid-template-columns: 37px 49px minmax(0, 1fr) auto 38px; min-height: 70px; gap: 6px; padding: 8px 6px 8px 10px; }
  .data-center-timeline-row > time { font-size: 11px; }
  .data-center-category-badge { min-height: 27px; padding-inline: 6px; font-size: 10px; }
  .data-center-row-main { gap: 3px; }
  .data-center-row-main b { font-size: 13px; }
  .data-center-row-main small { font-size: 10px; }
  .data-center-timeline-row > strong { font-size: 13px; }
  .data-center-row-more { width: 38px; height: 44px; border-radius: 12px; font-size: 16px; }
  .data-center-table-mode .data-center-legacy-tables { overflow-x: auto; }
}

/* 龟池档案详情 v21 */
.pool-detail-view {
  width: min(100%, 980px);
  margin: 0 auto;
}

.pool-detail-back {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
  padding: 0 22px;
  border: 0;
  border-radius: 26px;
  color: #5b49ee;
  background: linear-gradient(135deg, #eeebff, #faf9ff);
  box-shadow: 0 10px 28px rgba(74, 61, 168, 0.09);
  font-size: 18px;
  font-weight: 900;
}

.pool-detail-back span {
  margin-top: -2px;
  font-size: 33px;
  font-weight: 400;
  line-height: 1;
}

.pool-detail-panel {
  padding: 30px 26px 26px;
  border: 1px solid #e7e9f1;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 18px 50px rgba(58, 63, 100, 0.07);
}

.pool-detail-heading {
  display: grid;
  justify-items: center;
  gap: 22px;
  margin-bottom: 0;
  text-align: center;
}

.pool-detail-heading > div {
  display: grid;
  place-items: center;
  gap: 8px;
}

.pool-detail-heading .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #778097;
  font-size: 17px;
}

.pool-detail-heading .eyebrow span {
  color: #8f98ad;
  font-size: 19px;
}

.pool-detail-heading h2 {
  color: #131b30;
  font-size: clamp(30px, 5vw, 42px);
}

.pool-detail-edit {
  display: grid;
  width: 230px;
  min-height: 170px;
  place-items: center;
  align-content: center;
  gap: 15px;
  border: 0;
  border-radius: 30px;
  color: #604bea;
  background: linear-gradient(145deg, #f0edff, #faf9ff);
  box-shadow: 0 14px 30px rgba(86, 66, 192, 0.08);
}

.pool-detail-edit span {
  font-size: 54px;
  line-height: 1;
}

.pool-detail-edit strong {
  font-size: 21px;
}

#turtlePoolDetail {
  display: grid;
  gap: 28px;
}

#turtlePoolDetail .pool-detail-card {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  margin: 0;
  padding: 16px 0 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.pool-detail-card .archive-photo-shell {
  width: 100%;
  padding: 14px;
  border: 1px solid #dfe3ed;
  border-radius: 22px;
  background: #fff;
}

.pool-detail-card .archive-photo-carousel {
  border-radius: 24px;
}

.pool-detail-card .archive-photo-slide {
  width: 100%;
  height: clamp(270px, 43vw, 390px);
  border-radius: 24px;
  background: linear-gradient(135deg, #eff9f5, #f6fbf9);
}

.pool-detail-card .turtle-photo-placeholder {
  display: grid;
  height: 100%;
  place-items: center;
  align-content: center;
  gap: 14px;
  color: #8197a1;
  font-size: 20px;
  font-weight: 900;
}

.pool-camera-icon {
  color: #86c9ad;
  font-size: 56px;
  line-height: 1;
}

.pool-detail-card .archive-photo-kind {
  background: rgba(73, 135, 112, 0.82);
}

.pool-detail-card .archive-dots span {
  background: #c6e8dc;
}

.pool-detail-card .archive-dots span.active {
  background: #61c29d;
}

.pool-detail-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.pool-detail-stats > span {
  display: grid;
  grid-template-columns: 48px minmax(90px, auto) minmax(0, 1fr);
  min-height: 72px;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border: 1px solid #e1e4ed;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 5px 14px rgba(52, 58, 90, 0.025);
}

.pool-detail-stats i {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  font-size: 21px;
  font-style: normal;
  font-weight: 900;
}

.pool-detail-stats i.violet {
  color: #604bea;
  background: #f0edff;
}

.pool-detail-stats i.blue {
  color: #2789d7;
  background: #ebf6ff;
}

.pool-detail-stats i.pink {
  color: #dd4f98;
  background: #fdeef6;
}

.pool-detail-stats i.amber {
  color: #d79013;
  background: #fff5df;
}

.pool-detail-stats i.green {
  color: #2d9d69;
  background: #eaf8f1;
}

.pool-detail-stats b {
  color: #687188;
  font-size: 16px;
  font-weight: 900;
}

.pool-detail-stats strong {
  min-width: 0;
  color: #172039;
  font-size: 18px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.pool-detail-stats .pool-detail-note {
  grid-column: 1 / -1;
}

#turtlePoolDetail .pool-egg-history {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 20px 24px 24px;
  border: 1px solid #e1e4ed;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(52, 58, 90, 0.045);
}

#turtlePoolDetail .pool-egg-history .profile-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
}

.pool-egg-history .profile-history-head > strong {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #172039;
  font-size: 22px;
}

.pool-egg-history .profile-history-head > strong i {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  color: #604bea;
  background: #f0edff;
  font-style: normal;
}

.pool-egg-history .profile-history-head > span {
  color: #7b8398;
  font-size: 17px;
  font-weight: 900;
}

.pool-egg-history .profile-history-head > span b {
  margin-left: 6px;
  color: #29344c;
  font-size: 28px;
  font-weight: 400;
}

.pool-egg-list {
  overflow: hidden;
  border: 1px solid #ded8ff;
  border-radius: 16px;
}

.pool-egg-list-title {
  display: grid;
  grid-template-columns: 26px 120px minmax(100px, 1fr) 100px 28px;
  min-height: 58px;
  align-items: center;
  gap: 10px;
  padding: 0 22px;
  color: #604bea;
  background: linear-gradient(180deg, #f0edff, #f7f5ff);
  font-size: 18px;
  font-weight: 900;
}

.pool-egg-list-title b {
  font-size: inherit;
}

.pool-egg-list-title i {
  display: block;
}

.pool-egg-entry {
  border-top: 1px solid #e4e6ed;
  background: #fff;
}

.pool-egg-entry summary {
  display: grid;
  grid-template-columns: 120px minmax(100px, 1fr) 100px 28px;
  min-height: 66px;
  align-items: center;
  gap: 15px;
  padding: 0 22px;
  color: #1d273d;
  cursor: pointer;
  list-style: none;
}

.pool-egg-entry summary::-webkit-details-marker {
  display: none;
}

.pool-egg-entry summary time {
  font-size: 18px;
  font-weight: 700;
}

.pool-egg-entry summary > span {
  justify-self: start;
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
}

.pool-egg-entry summary > span.fertilized {
  color: #269268;
  background: #eaf8f1;
}

.pool-egg-entry summary > span.unfertilized {
  color: #d68520;
  background: #fff5e3;
}

.pool-egg-entry summary > span.discard {
  color: #df3f53;
  background: #fff0f2;
}

.pool-egg-entry summary > strong {
  color: #172039;
  font-size: 17px;
  text-align: left;
}

.pool-egg-entry summary b {
  font-size: 30px;
  font-weight: 400;
  transition: transform 0.2s ease;
}

.pool-egg-entry[open] summary b {
  transform: rotate(90deg);
}

.pool-egg-entry > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 0 22px 18px;
}

.pool-egg-entry > div span {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f8f7fc;
}

.pool-egg-entry > div em {
  color: #7a8295;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.pool-egg-entry > div strong {
  color: #172039;
  font-size: 14px;
}

.pool-egg-entry > div .thumb {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  object-fit: cover;
}

@media (max-width: 720px) {
  .pool-detail-view {
    width: 100%;
  }

  .pool-detail-back {
    min-height: 48px;
    margin-bottom: 16px;
    padding: 0 14px;
    border-radius: 20px;
    font-size: 14px;
  }

  .pool-detail-back span {
    font-size: 28px;
  }

  .pool-detail-panel {
    padding: 24px 10px 18px;
    border-radius: 22px;
  }

  .pool-detail-heading {
    gap: 16px;
  }

  .pool-detail-heading .eyebrow {
    font-size: 15px;
  }

  .pool-detail-heading h2 {
    font-size: 29px;
  }

  .pool-detail-edit {
    width: 150px;
    min-height: 116px;
    gap: 10px;
    border-radius: 22px;
  }

  .pool-detail-edit span {
    font-size: 38px;
  }

  .pool-detail-edit strong {
    font-size: 17px;
  }

  #turtlePoolDetail {
    gap: 18px;
  }

  #turtlePoolDetail .pool-detail-card {
    gap: 12px;
    padding-top: 12px;
  }

  .pool-detail-card .archive-photo-shell {
    padding: 8px;
    border-radius: 18px;
  }

  .pool-detail-card .archive-photo-slide {
    height: min(58vw, 250px);
    border-radius: 17px;
  }

  .pool-detail-card .turtle-photo-placeholder {
    gap: 9px;
    font-size: 16px;
  }

  .pool-camera-icon {
    font-size: 42px;
  }

  .pool-detail-stats {
    gap: 8px;
  }

  .pool-detail-stats > span {
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 3px 8px;
    min-height: 74px;
    padding: 9px 10px;
    border-radius: 13px;
  }

  .pool-detail-stats i {
    grid-column: 1;
    grid-row: 1 / 3;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    font-size: 17px;
  }

  .pool-detail-stats b {
    grid-column: 2;
    grid-row: 1;
    font-size: 12px;
  }

  .pool-detail-stats strong {
    grid-column: 2;
    grid-row: 2;
    font-size: 15px;
  }

  .pool-detail-stats .pool-detail-note {
    grid-template-columns: 38px 66px minmax(0, 1fr);
    grid-template-rows: 1fr;
  }

  .pool-detail-stats .pool-detail-note i,
  .pool-detail-stats .pool-detail-note b,
  .pool-detail-stats .pool-detail-note strong {
    grid-row: 1;
    align-self: center;
  }

  .pool-detail-stats .pool-detail-note b {
    grid-column: 2;
  }

  .pool-detail-stats .pool-detail-note strong {
    grid-column: 3;
  }

  #turtlePoolDetail .pool-egg-history {
    gap: 12px;
    padding: 15px 10px 12px;
    border-radius: 18px;
  }

  .pool-egg-history .profile-history-head > strong {
    gap: 8px;
    font-size: 17px;
  }

  .pool-egg-history .profile-history-head > strong i {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .pool-egg-history .profile-history-head > span {
    font-size: 14px;
  }

  .pool-egg-list-title {
    grid-template-columns: 19px 72px minmax(68px, 1fr) 58px 18px;
    gap: 5px;
    min-height: 48px;
    padding: 0 10px;
    font-size: 13px;
  }

  .pool-egg-entry summary {
    grid-template-columns: 72px minmax(68px, 1fr) 58px 18px;
    gap: 6px;
    min-height: 56px;
    padding: 0 10px;
  }

  .pool-egg-entry summary time {
    font-size: 14px;
    white-space: nowrap;
  }

  .pool-egg-entry summary > span {
    padding: 5px 8px;
    font-size: 12px;
    white-space: nowrap;
  }

  .pool-egg-entry summary > strong {
    font-size: 13px;
    white-space: nowrap;
  }

  .pool-egg-entry summary > b {
    font-size: 24px;
  }

  .pool-egg-entry > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0 12px 14px;
  }
}

/* v24 首页小卡片：设置菜单不得被卡片裁切 */
.component-zone[data-component-zone="home"] > .analysis-component:has(.component-menu[open]),
.component-zone[data-component-zone="home"] > .analysis-component.component-menu-open {
  z-index: 100 !important;
  overflow: visible !important;
}

.component-zone[data-component-zone="home"] .component-menu[open] {
  z-index: 101;
}

.component-zone[data-component-zone="home"] .component-menu[open] .component-menu-panel {
  z-index: 102;
  min-width: 104px;
  padding: 9px;
  border-radius: 14px;
  box-shadow: 0 16px 34px rgba(32, 37, 51, 0.2);
}

/* v27 客户账号直接进入“我的乌龟管理系统” */
.customer-portal-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding: 14px 18px;
  border: 1px solid #e8e5ff;
  border-radius: 20px;
  background: linear-gradient(135deg, #f7f5ff, #fff);
  box-shadow: 0 10px 28px rgba(102, 86, 245, 0.08);
}

.customer-portal-bar strong {
  color: #20283a;
  font-size: 19px;
}

.customer-portal-logout {
  min-height: 42px;
  border: 0;
  border-radius: 14px;
  padding: 0 18px;
  color: #6554f5;
  background: #eeeaff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

body.customer-session #matingView > .back-row {
  display: none !important;
}

body.customer-session #appHeader {
  display: none !important;
}

body.customer-session #matingView .customer-management-panel > .panel-head {
  display: none !important;
}

body.customer-session #matingView .customer-hero-icon {
  display: none;
}

body.customer-session #matingView .customer-detail-section .customer-section-head .header-actions > span {
  display: none !important;
}

body.customer-session #matingView .customer-detail-section > .customer-section-head {
  display: none !important;
}

body.customer-session #matingView .customer-management-panel > .panel-head h2 {
  font-size: clamp(28px, 5vw, 42px);
}

@media (max-width: 900px) {
  body.customer-session main {
    margin-top: 8px;
  }

  .customer-portal-bar {
    position: sticky;
    top: 8px;
    z-index: 20;
    min-height: 58px;
    margin: 0 2px 12px;
    padding: 9px 10px 9px 15px;
    border-radius: 17px;
  }

  .customer-portal-bar strong {
    min-width: 0;
    font-size: clamp(17px, 5vw, 23px);
    line-height: 1.2;
    white-space: nowrap;
  }

  .customer-portal-logout {
    min-height: 40px;
    padding: 0 14px;
    font-size: 14px;
  }

  body.customer-session #matingView .customer-management-panel > .panel-head {
    align-items: center;
  }
}

@media (max-width: 900px) {
  .component-zone[data-component-zone="home"] .component-menu-panel {
    top: 34px;
    right: 0;
    min-width: 92px;
  }

  .component-zone[data-component-zone="home"] .component-menu-panel button {
    min-height: 40px;
    font-size: 15px;
  }
}

/* v33 首页：窄桥养殖驾驶舱 */
#homeView {
  --farm-purple: #5d4df5;
  --farm-green: #28ad52;
  --farm-orange: #ff8a00;
  max-width: 980px;
  margin-inline: auto;
  padding-bottom: 58px;
}
.farm-home-header { display:flex; align-items:center; gap:16px; padding:10px 8px 18px; }
.farm-home-logo-button { display:block; flex:0 0 72px; width:72px; height:72px; margin:0; overflow:hidden; padding:0; border:0; border-radius:50%; background:#fff; box-shadow:0 9px 20px rgba(31,38,57,.15); }
.farm-home-logo-button:not(:disabled) { cursor:pointer; }
.farm-home-logo-button:not(:disabled):active { opacity:.82; }
.farm-home-logo-button:focus-visible { outline:3px solid #6657ff; outline-offset:3px; }
.farm-home-logo-button:disabled { cursor:default; }
.farm-home-logo { display:block; width:100%; height:100%; object-fit:cover; border:0; border-radius:50%; background:#fff; }
.farm-home-title { flex:1 1 auto; min-width:0; }
.farm-home-heading-row,.farm-home-lower-row { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:12px; }
.farm-home-title h2 { min-width:0; margin:0; color:#131825; font-size:23px; line-height:1.15; white-space:nowrap; }
.farm-home-version { flex:0 0 auto; padding:5px 9px; border:1px solid rgba(133,143,154,.3); border-radius:999px; color:#485363; background:rgba(255,255,255,.58); font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.farm-home-title p { margin:10px 0 0; color:#3c4250; font-size:15px; }
.farm-home-utility-actions { display:flex; flex:0 0 auto; align-items:center; gap:8px; margin-top:9px; }
.farm-home-settings,.farm-home-logout { display:inline-flex; min-height:42px; align-items:center; justify-content:center; gap:6px; margin:0; padding:0 13px; border-radius:12px; box-shadow:none; font-size:12px; font-weight:800; line-height:1; cursor:pointer; touch-action:manipulation; }
.farm-home-settings { border:1px solid #b9ddc6; color:#24894e; background:rgba(241,250,244,.88); }
.farm-home-logout { border:1px solid #d8d1ff; color:#6657ff; background:rgba(243,240,255,.9); }
.farm-home-settings svg,.farm-home-logout svg { width:17px; height:17px; stroke-width:2; }
.farm-home-settings:active,.farm-home-logout:active { opacity:.75; }
.farm-home-settings:focus-visible,.farm-home-logout:focus-visible { outline:3px solid rgba(93,77,245,.25); outline-offset:2px; }
.brand-settings-form { display:grid; gap:16px; margin-top:24px; }
.brand-settings-form label { display:grid; gap:8px; color:#253149; font-weight:800; }
.brand-settings-form input { width:100%; min-height:48px; padding:0 14px; border:1px solid #dfe5e2; border-radius:14px; color:#172036; background:#fff; font:inherit; }
.brand-settings-form input[type="file"] { height:auto; padding:11px 12px; color:#6b7588; }
.brand-settings-form input:focus { outline:3px solid rgba(38,163,106,.16); border-color:#68b889; }
.brand-settings-version { display:flex; min-height:48px; align-items:center; justify-content:space-between; padding:0 14px; border:1px solid #e4e8e6; border-radius:14px; color:#778094; background:#f7faf8; }
.brand-settings-version strong { color:#25834b; font-variant-numeric:tabular-nums; }
.brand-settings-form .primary-button { min-height:48px; }
.farm-overview-card,.farm-dashboard-card,#homeView > .home-grid { border:1px solid #edf0f5; border-radius:25px; background:rgba(255,255,255,.96); box-shadow:0 10px 26px rgba(31,38,57,.055); }
.home-components-panel.hidden { display:none !important; }
.farm-overview-card { margin-bottom:12px; padding:17px 15px 15px; }
.farm-section-head,.farm-card-title,.farm-chart-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.farm-section-head h3,.farm-card-title h3,.farm-chart-head h3 { margin:0; color:#151b28; font-size:18px; }
.farm-section-head > span,.farm-card-title > span { color:#9098aa; font-size:12px; }
.farm-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:9px; }
.farm-metric-card { min-width:0; padding:10px 8px 9px; border-radius:16px; background:linear-gradient(155deg,#fff,#fafafa); box-shadow:inset 0 0 0 1px #f5f5f7; text-align:center; }
.farm-metric-card h4 { display:flex; min-height:20px; align-items:center; justify-content:center; margin:0 0 5px; color:#252a35; font-size:13px; line-height:1.25; white-space:nowrap; }
.farm-metric-card > div { display:flex; align-items:flex-end; justify-content:center; gap:4px; }
.farm-metric-card img { display:block; width:42px; height:42px; object-fit:cover; border-radius:10px; }
.farm-metric-card strong { color:#101520; font-size:31px; line-height:1; }
.farm-metric-card em { margin-bottom:2px; color:#353b48; font-size:12px; font-style:normal; }
.farm-metric-card > span { display:block; margin-top:6px; color:#454b59; font-size:11px; }
.farm-metric-card > span b.up { color:#20a847; }
.farm-metric-card > span b.down { color:#ef5252; }
.farm-metric-card > span b.flat { color:#8c95a6; }
.farm-metric-current { color:#8c95a6 !important; }

/* v54 首页：单行今日动态，最多显示五行 */
.farm-activity-card {
  margin-bottom: 12px;
  padding: 14px 15px 13px;
  border: 1px solid rgba(231, 235, 242, 0.95);
  border-radius: 25px;
  background:
    radial-gradient(circle at 96% 0%, rgba(99, 87, 245, 0.08), transparent 35%),
    rgba(255, 255, 255, 0.97);
  box-shadow: 0 10px 26px rgba(31, 38, 57, 0.055);
}

.farm-mating-task-card {
  background:
    radial-gradient(circle at 96% 0%, rgba(38, 163, 106, 0.11), transparent 38%),
    rgba(255, 255, 255, 0.97);
}

/* v109：首页动态与交配任务合并为同一卡片，动态列表只自动滚动 */
.farm-home-feed-card {
  transition: background-color 180ms ease, border-color 180ms ease;
}

.farm-home-feed-card.showing-mating-tasks {
  border-color: rgba(210, 232, 220, 0.98);
  background:
    radial-gradient(circle at 96% 0%, rgba(38, 163, 106, 0.11), transparent 38%),
    rgba(255, 255, 255, 0.97);
}

.farm-home-feed-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  width: min(270px, 100%);
  margin: 0 0 11px;
  padding: 4px;
  border: 1px solid #ebe9f5;
  border-radius: 16px;
  background: rgba(247, 247, 251, 0.9);
}

.farm-home-feed-tab {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  border: 0;
  border-radius: 12px;
  color: #6f7788;
  background: transparent;
  font: inherit;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}

.farm-home-feed-tab.active {
  color: #fff;
  background: linear-gradient(135deg, #6655f4, #5140e7);
  box-shadow: 0 6px 14px rgba(87, 70, 231, 0.18);
}

.farm-home-feed-card.showing-mating-tasks .farm-home-feed-tab.active {
  background: linear-gradient(135deg, #238653, #147040);
  box-shadow: 0 6px 14px rgba(24, 116, 71, 0.16);
}

.farm-home-feed-tab:active { opacity: 0.86; }
.farm-home-feed-tab:focus-visible { outline: 3px solid rgba(99, 87, 245, 0.24); outline-offset: 2px; }

.farm-home-feed-panel.hidden { display: none !important; }

.farm-home-feed-panel[data-home-feed-panel="activity"] {
  touch-action: pan-y;
}

.farm-home-feed-panel[data-home-feed-panel="activity"] .farm-activity-list {
  overflow-y: hidden;
  overscroll-behavior: auto;
  pointer-events: none;
  touch-action: pan-y;
  user-select: none;
}

.farm-activity-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 2px 10px;
}

.farm-activity-head h3 {
  margin: 0;
  color: #151b28;
  font-size: 18px;
}

.farm-mating-task-today-count {
  display: inline-grid;
  min-width: 62px;
  min-height: 26px;
  padding: 0 8px;
  place-items: center;
  border: 1px solid rgba(28, 126, 76, .16);
  border-radius: 999px;
  color: #187447;
  background: rgba(233, 248, 239, .96);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.farm-home-feed-tab.active .farm-mating-task-today-count {
  color: #fff;
  border-color: rgba(255, 255, 255, .28);
  background: rgba(255, 255, 255, .16);
}

.farm-mating-task-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 2px 10px;
  padding: 4px;
  border: 1px solid #e2eee7;
  border-radius: 16px;
  background: rgba(244, 249, 246, 0.92);
}

.farm-mating-task-tab {
  display: inline-flex;
  min-width: 0;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 11px;
  border: 0;
  border-radius: 12px;
  color: #697486;
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.farm-mating-task-tab b {
  display: inline-grid;
  min-width: 25px;
  min-height: 25px;
  padding-inline: 6px;
  place-items: center;
  border-radius: 999px;
  color: #557064;
  background: rgba(255, 255, 255, 0.88);
  font-size: 11px;
}

.farm-mating-task-tab.active {
  color: #fff;
  background: linear-gradient(135deg, #238653, #147040);
  box-shadow: 0 6px 14px rgba(24, 116, 71, 0.16);
}

.farm-mating-task-tab.active b { color: #187447; background: #fff; }
.farm-mating-task-tab:active { transform: translateY(1px); }
.farm-mating-task-tab:focus-visible { outline: 3px solid rgba(38, 163, 106, 0.24); outline-offset: 2px; }

.farm-activity-count {
  flex: 0 0 auto;
  padding: 7px 11px;
  border: 1px solid #e9e6ff;
  border-radius: 999px;
  color: #6555ed;
  background: #f6f4ff;
  font-size: 11px;
  font-weight: 800;
}

.farm-activity-list {
  --farm-activity-row-height: 58px;
  max-height: calc(var(--farm-activity-row-height) * 5);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
  scrollbar-width: none;
}

.farm-activity-list::-webkit-scrollbar { display: none; }

.farm-activity-item {
  display: flex !important;
  min-height: var(--farm-activity-row-height);
  min-width: 0;
  align-items: center;
  gap: 14px;
  padding: 8px 12px;
  border-top: 1px solid #eff1f6;
  background: rgba(252, 253, 255, 0.78);
}

.farm-activity-item:first-child { border-top: 0; }
.farm-activity-item.delete { background: rgba(255, 248, 248, 0.82); }
.farm-activity-item.edit { background: rgba(247, 251, 255, 0.82); }
.farm-mating-task-item.pending { background: rgba(255, 250, 241, 0.88); }
.farm-mating-task-item.complete { background: rgba(244, 252, 247, 0.9); }

.farm-activity-detail {
  flex: 1 1 0;
  width: 0;
  min-width: 0;
  overflow: hidden;
  color: #252b38;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  white-space: normal !important;
}

.farm-activity-operator {
  flex: 0 0 auto;
  min-width: 0;
  max-width: 46%;
  overflow: hidden;
  color: #8a92a2;
  font-size: 10px;
  text-overflow: ellipsis;
  text-align: right;
  white-space: nowrap !important;
}

.farm-activity-operator b {
  color: #5e6677;
  font-weight: 800;
}

.farm-mating-task-item .farm-activity-detail b {
  color: #143e2b;
  font-weight: 850;
}

.farm-mating-task-item.complete .farm-activity-detail { color: #1d7b4e; }

.farm-mating-task-state {
  flex: 0 0 auto;
  color: #d87715;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.farm-mating-task-list {
  --farm-activity-row-height: 58px;
}

.farm-mating-task-detail {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  white-space: normal !important;
}

.farm-mating-task-detail b,
.farm-mating-task-detail small {
  display: block;
  overflow: hidden;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.farm-mating-task-detail b {
  font-size: 11px;
}

.farm-mating-task-detail small {
  color: #667066;
  font-size: 9px;
  font-weight: 700;
}

.farm-mating-task-actions {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
}

.farm-mating-task-go {
  position: relative;
  display: inline-grid;
  min-width: 54px;
  min-height: 30px;
  padding: 0 9px;
  place-items: center;
  border: 1px solid #cfe8da;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #238653, #147040);
  box-shadow: 0 4px 9px rgba(24, 116, 71, 0.13);
  font: inherit;
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}

.farm-mating-task-go::after {
  position: absolute;
  inset: -7px -3px;
  content: "";
}

.farm-mating-task-go:hover { background: linear-gradient(135deg, #1f794b, #105f37); }
.farm-mating-task-go:active { transform: translateY(1px); }
.farm-mating-task-go:focus-visible { outline: 3px solid rgba(38, 163, 106, 0.28); outline-offset: 2px; }

.farm-mating-task-empty { border-color: #cfe9da; background: rgba(245, 252, 248, 0.78); }

.farm-activity-empty {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px dashed #ddd9ff;
  border-radius: 17px;
  color: #7f8797;
  background: rgba(249, 248, 255, 0.72);
}

.farm-activity-empty > span {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 50%;
  color: #26a36a;
  background: #e6f8ef;
  font-size: 16px;
  font-weight: 900;
}

.farm-activity-empty strong { color: #384052; font-size: 13px; }
.farm-activity-empty p { margin: 4px 0 0; font-size: 10px; }

#homeView > .home-grid { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:18px 8px !important; margin:0 0 12px !important; padding:24px 14px !important; }
#homeView > .home-grid .home-card,#homeView > .home-grid .menu-image-card { display:flex !important; width:100% !important; min-width:0 !important; min-height:108px !important; padding:2px !important; overflow:visible !important; flex-direction:column !important; align-items:center !important; justify-content:flex-start !important; aspect-ratio:auto !important; border:0 !important; border-radius:15px !important; box-shadow:none !important; color:#171c27 !important; background:transparent !important; background-image:none !important; text-align:center !important; filter:none !important; }
#homeView > .home-grid .home-card::before { display:none !important; }
#homeView > .home-grid .home-card span { position:static !important; display:block !important; width:auto !important; height:auto !important; margin:7px 0 4px !important; overflow:visible !important; opacity:1 !important; color:#171c27 !important; font-size:16px !important; font-weight:800 !important; line-height:1.2 !important; }
#homeView > .home-grid .home-card small { display:block !important; color:#72798a !important; font-size:10px !important; line-height:1.35 !important; }
.farm-menu-picture { display:block; width:55px; height:55px; object-fit:contain; border-radius:12px; box-shadow:0 6px 15px rgba(37,42,54,.08); background:#fff; }

.farm-dashboard-card { margin-bottom:12px; padding:18px; }
.farm-pie-layout { display:grid; grid-template-columns:42% minmax(0,1fr); gap:22px; align-items:center; margin-top:17px; }
.farm-donut { display:grid; width:180px; max-width:100%; margin-inline:auto; aspect-ratio:1; place-items:center; border-radius:50%; transform:rotate(-90deg); }
.farm-donut > div { display:grid; width:55%; aspect-ratio:1; place-content:center; border-radius:50%; background:#fff; text-align:center; transform:rotate(90deg); }
.farm-donut strong { color:#111620; font-size:31px; line-height:1; }
.farm-donut span { margin-top:5px; color:#626b7d; font-size:11px; }
.farm-pie-legend { display:grid; gap:10px; }
.farm-pie-legend > span { display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:9px; align-items:center; min-width:0; }
.farm-pie-legend i,.farm-chart-legend i { display:inline-block; width:10px; height:10px; border-radius:50%; }
.farm-pie-legend b { overflow:hidden; color:#343a48; font-size:12px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.farm-pie-legend strong { color:#202633; font-size:13px; }
.farm-pie-legend p { color:#8a92a2; font-size:13px; text-align:center; }
.farm-period-switch { display:grid; grid-template-columns:repeat(3,34px); align-items:center; padding:3px; border-radius:999px; background:#f5f5f5; text-align:center; }
.farm-period-switch span,.farm-period-switch b { padding:4px 0; border-radius:999px; color:#151a24; font-size:12px; }
.farm-period-switch b { color:#fff; background:#22a641; }
.farm-chart-legend { display:flex; flex-wrap:wrap; gap:16px; margin:12px 0 5px; color:#242a36; font-size:11px; }
.farm-chart-legend span { display:inline-flex; align-items:center; gap:6px; }
.farm-chart-legend .purple,.farm-stack-bar .purple { background:#6041ee; }
.farm-chart-legend .orange,.farm-stack-bar .orange,.farm-group-column i.orange { background:#ff8a00; }
.farm-chart-legend .green,.farm-group-column i.green { background:#46b25d; }
.farm-stacked-chart,.farm-grouped-chart { display:grid; grid-template-columns:repeat(7,minmax(36px,1fr)); gap:5px; align-items:end; min-height:185px; padding-top:18px; }
.farm-stack-column,.farm-group-column { display:flex; min-width:0; flex-direction:column; align-items:center; justify-content:flex-end; text-align:center; }
.farm-stack-column > strong { margin-bottom:4px; color:#252b37; font-size:9px; }
.farm-stack-bar { display:flex; width:25px; min-height:3px; overflow:hidden; flex-direction:column; justify-content:flex-start; border-radius:4px 4px 0 0; background:#ececf3; }
.farm-stack-bar i { display:grid; min-height:0; place-items:center; color:#fff; font-size:9px; font-style:normal; }
.farm-stack-column > b { margin-top:5px; color:#232936; font-size:10px; }
.farm-stack-column > em,.farm-group-column > em { margin-top:3px; color:#171c26; font-size:10px; font-style:normal; }
.farm-group-column > div { display:flex; height:124px; align-items:flex-end; gap:4px; }
.farm-group-column i { position:relative; display:block; width:17px; min-height:3px; border-radius:4px 4px 0 0; font-style:normal; }
.farm-group-column i span { position:absolute; bottom:calc(100% + 3px); left:50%; color:#202632; font-size:9px; transform:translateX(-50%); }

.farm-bottom-drawer { position:fixed; bottom:calc(clamp(68px,13.05vw,167px) + env(safe-area-inset-bottom)); left:50%; z-index:49; width:min(980px,100%); padding:clamp(18px,3.15vw,40px) clamp(18px,3.2vw,40px) clamp(9px,1.7vw,22px); border:1px solid rgba(211,221,214,.88); border-bottom:0; border-radius:clamp(22px,3.2vw,40px) clamp(22px,3.2vw,40px) 0 0; background:rgba(255,255,255,.985); box-shadow:0 -12px 32px rgba(24,64,42,.13); opacity:0; pointer-events:none; transform:translate(-50%,calc(100% + 24px)); transition:transform .24s ease,opacity .18s ease; }
.farm-bottom-drawer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,2.2vw,28px); }
.farm-bottom-drawer-grid button { display:flex; min-width:0; min-height:clamp(60px,12.5vw,160px); align-items:center; justify-content:center; gap:clamp(5px,1.4vw,18px); padding:0 3px; border:0; border-radius:14px; color:#171c27; background:transparent; flex-direction:column; font:inherit; font-weight:850; cursor:pointer; touch-action:manipulation; }
.farm-bottom-drawer-grid button:active { background:#f0f7f2; }
.farm-bottom-drawer-grid button:focus-visible { outline:3px solid rgba(24,138,70,.3); outline-offset:1px; }
.farm-drawer-icon { display:grid; width:clamp(38px,7.1vw,90px); height:clamp(38px,7.1vw,90px); place-items:center; border-radius:clamp(14px,2.3vw,29px); color:#23864d; background:#eef8ef; }
.farm-bottom-drawer-grid button:nth-child(2) .farm-drawer-icon { color:#438a36; background:#f1f8e8; }
.farm-bottom-drawer-grid button:nth-child(3) .farm-drawer-icon { color:#a9620b; background:#fff6df; }
.farm-bottom-drawer-grid button:nth-child(4) .farm-drawer-icon { color:#c66d13; background:#fff1e5; }
.farm-drawer-icon svg { display:block; width:clamp(25px,4.8vw,61px); height:clamp(25px,4.8vw,61px); stroke-width:1.9; }
.farm-bottom-drawer-grid button > span:last-child { overflow:hidden; width:100%; font-size:clamp(13px,1.8vw,23px); line-height:1.15; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.farm-bottom-drawer-toggle { position:fixed; bottom:calc(clamp(68px,13.05vw,167px) + env(safe-area-inset-bottom)); left:50%; z-index:52; display:grid; width:clamp(52px,7.8vw,100px); min-height:clamp(20px,3.2vw,41px); place-items:center; margin:0; padding:0; border:0; border-radius:999px 999px 0 0; outline:0; color:#25884f; background:transparent; box-shadow:none; transform:translateX(-50%); transition:bottom .24s ease,color .16s ease; touch-action:manipulation; }
.farm-bottom-drawer-toggle:focus,.farm-bottom-drawer-toggle:focus-visible { outline:0; box-shadow:none; }
.farm-bottom-drawer-toggle span { display:block; width:clamp(26px,4.6vw,59px); height:clamp(5px,.65vw,8px); border:0; border-radius:999px; background:currentColor; transform:none; transition:background-color .16s ease; }
body.farm-bottom-drawer-open .farm-bottom-drawer { opacity:1; pointer-events:auto; transform:translate(-50%,0); }
body.farm-bottom-drawer-open .farm-bottom-drawer-toggle { bottom:calc(clamp(136px,27.9vw,357px) + env(safe-area-inset-bottom)); color:#25884f; }
body.farm-bottom-drawer-open .farm-bottom-drawer-toggle span { transform:none; }
.farm-bottom-nav { position:fixed; right:0; bottom:0; left:0; z-index:50; display:grid; grid-template-columns:repeat(5,1fr); min-height:clamp(68px,13.05vw,167px); padding:clamp(5px,1.2vw,15px) max(10px,env(safe-area-inset-right)) calc(clamp(5px,1.2vw,15px) + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); border-top:1px solid rgba(218,226,221,.82); box-shadow:0 -8px 28px rgba(23,47,33,.08); background:rgba(255,255,255,.985); backdrop-filter:blur(18px) saturate(145%); touch-action:auto; user-select:none; }
.farm-bottom-nav button { display:flex; min-width:0; min-height:clamp(56px,10.7vw,137px); padding:3px 4px 2px; border:0; border-radius:16px; flex-direction:column; align-items:center; justify-content:center; gap:clamp(3px,.8vw,10px); color:#69766f; background:transparent; font:inherit; font-weight:700; cursor:pointer; touch-action:manipulation; transition:color .16s ease,background-color .16s ease; }
.farm-bottom-nav button:active { background:#f0f6f2; }
.farm-bottom-nav button:focus-visible { outline:3px solid rgba(24,154,75,.34); outline-offset:-2px; }
.farm-nav-icon { display:grid; width:clamp(42px,9.2vw,117px); height:clamp(29px,4.25vw,54px); place-items:center; border-radius:clamp(16px,3vw,38px); background:transparent; transition:background-color .16s ease,color .16s ease; }
.farm-nav-icon svg { display:block; width:clamp(21px,3.7vw,47px); height:clamp(21px,3.7vw,47px); fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.farm-nav-label { font-size:clamp(11px,1.5vw,19px); line-height:1.1; letter-spacing:.02em; white-space:nowrap; }
.farm-bottom-nav button.active { color:#168a46; font-weight:800; }
.farm-bottom-nav button.active .farm-nav-icon { color:#168a46; background:#eaf7ec; }
.farm-bottom-nav button.active .farm-nav-label::after { display:block; width:12px; height:2px; margin:3px auto 0; border-radius:999px; background:currentColor; content:""; }
.farm-bottom-nav .farm-nav-back { position:relative; z-index:2; overflow:visible; color:#07573f; }
.farm-bottom-nav .farm-nav-back .farm-nav-icon { width:clamp(40px,6.5vw,83px); height:clamp(40px,6.5vw,83px); margin-top:clamp(-34px,-2.65vw,-17px); border:clamp(3px,.38vw,5px) solid #fff; border-radius:50%; color:#fff; background:linear-gradient(145deg,#65ad7a,#2d8a51); box-shadow:0 6px 16px rgba(36,113,65,.24); }
.farm-bottom-nav .farm-nav-back .farm-nav-icon svg { width:clamp(21px,3.6vw,46px); height:clamp(21px,3.6vw,46px); stroke-width:2.3; }
.farm-bottom-nav .farm-nav-back .farm-nav-label { margin-top:0; color:#438665; font-weight:850; }
.farm-bottom-nav .farm-nav-back:active { background:transparent; }
.farm-bottom-nav .farm-nav-back:active .farm-nav-icon { transform:scale(.95); }
.farm-bottom-nav .farm-nav-back:disabled { cursor:default; opacity:.48; }
.farm-bottom-nav .farm-nav-back:disabled .farm-nav-icon { box-shadow:none; }

/* 所有页面统一使用底部返回球，页面内容区不再显示返回或返回首页按钮。 */
.view .back-button,
.view .turtle-editor-back,
.view .archive-record-back,
#userManageView [data-close-auth-detail],
#userManageView [data-back-auth-role-menu] { display:none !important; }
.view .back-row:has(.back-button) { display:none !important; }
body.customer-session .farm-bottom-nav,body.customer-session .farm-bottom-drawer,body.customer-session .farm-bottom-drawer-toggle { display:none !important; }
body:not(.customer-session) #appMain { padding-bottom:78px; }

@media (prefers-reduced-motion:reduce) {
  .farm-bottom-drawer,.farm-bottom-drawer-toggle,.farm-bottom-drawer-toggle span,.farm-bottom-nav button,.farm-nav-icon { transition:none; }
}

@media (min-width:641px) {
  .farm-bottom-nav { right:auto; left:50%; width:min(980px,100%); border:1px solid #eceef3; border-radius:22px 22px 0 0; transform:translateX(-50%); }
}

@media (max-width:640px) {
  #homeView { padding:0 2px 84px; }
  .farm-home-header { padding:9px 8px 16px; }
  .farm-home-logo-button { flex-basis:64px; width:64px; height:64px; }
  .farm-home-heading-row,.farm-home-lower-row { gap:7px; }
  .farm-home-title h2 { font-size:16px; }
  .farm-home-version { padding:4px 7px; font-size:10px; }
  .farm-home-title p { margin-top:8px; font-size:12px; white-space:nowrap; }
  .farm-home-utility-actions { gap:6px; margin-top:7px; }
  .farm-home-settings,.farm-home-logout { min-height:44px; gap:4px; padding-inline:9px; border-radius:10px; font-size:10px; }
  .farm-home-settings svg,.farm-home-logout svg { width:15px; height:15px; }
  .farm-overview-card,.farm-dashboard-card,#homeView > .home-grid { border-radius:21px; }
  .farm-overview-card { padding:15px 8px 12px; }
  .farm-section-head { padding-inline:4px; }
  .farm-section-head > span,.farm-card-title > span { display:none; }
  .farm-metric-grid { gap:5px; margin-top:8px; }
  .farm-metric-card { padding:8px 3px 8px; }
  .farm-metric-card h4 { min-height:18px; margin-bottom:4px; font-size:11px; }
  .farm-metric-card img { width:38px; height:38px; }
  .farm-metric-card strong { font-size:25px; }
  .farm-metric-card em,.farm-metric-card > span { font-size:9px; }
  .farm-activity-card { padding: 12px 8px 9px; border-radius: 21px; }
  .farm-home-feed-switch { width: 100%; margin-bottom: 9px; }
  .farm-home-feed-tab { padding-inline: 9px; font-size: 14px; }
  .farm-activity-head { padding: 0 4px 9px; }
  .farm-activity-head h3 { font-size: 16px; }
  .farm-mating-task-today-count { min-width: 56px; min-height: 24px; padding-inline: 6px; font-size: 9px; }
  .farm-mating-task-tabs { margin-inline: 0; }
  .farm-mating-task-tab { padding-inline: 7px; font-size: 11px; }
  .farm-mating-task-tab b { min-width: 23px; min-height: 23px; font-size: 10px; }
  .farm-activity-list { --farm-activity-row-height: 56px; }
  .farm-mating-task-list { --farm-activity-row-height: 58px; }
  .farm-activity-item { gap:8px; padding:0 8px; }
  .farm-activity-detail { font-size: 10.5px; }
  .farm-activity-operator { max-width:45%; font-size:9px; }
  #homeView > .home-grid { gap:15px 3px !important; padding:21px 7px !important; }
  #homeView > .home-grid .home-card,#homeView > .home-grid .menu-image-card { min-height:102px !important; }
  #homeView > .home-grid .home-card span { font-size:14px !important; }
  #homeView > .home-grid .home-card small { font-size:9px !important; }
  .farm-menu-picture { width:51px; height:51px; }
  .farm-dashboard-card { padding:15px 12px; }
  .farm-pie-layout { grid-template-columns:43% minmax(0,1fr); gap:12px; }
  .farm-donut { width:142px; }
  .farm-donut strong { font-size:27px; }
  .farm-pie-legend { gap:8px; }
  .farm-pie-legend b { font-size:11px; }
.farm-chart-head h3,.farm-card-title h3 { font-size:17px; }
}

/* v73 首页：合并窄桥繁育统计，日/月/年切换与横向月份浏览 */
.farm-breeding-hub {
  margin-bottom: 12px;
  padding: 12px;
  overflow: hidden;
  border: 1px solid #edf0f5;
  border-radius: 25px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 10px 26px rgba(31, 38, 57, 0.055);
}

.farm-breeding-hub-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  padding: 4px;
  border: 1px solid #ebe9f5;
  border-radius: 16px;
  background: rgba(247, 247, 251, 0.92);
}

.farm-breeding-hub-tab {
  display: flex;
  min-width: 0;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 12px;
  border: 0;
  border-radius: 12px;
  color: #397152;
  background: transparent;
  font: inherit;
  font-size: 16px;
  font-weight: 850;
  cursor: pointer;
  transition: color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.farm-breeding-hub-tab > img {
  width: 27px;
  height: 27px;
  flex: 0 0 auto;
  object-fit: contain;
  border-radius: 8px;
}

.farm-breeding-hub-tab.active {
  color: #fff;
  background: linear-gradient(135deg, #6655f4, #5140e7);
  box-shadow: 0 6px 14px rgba(87, 70, 231, 0.18);
}

.farm-breeding-hub.showing-archive .farm-breeding-hub-tab.active {
  background: linear-gradient(135deg, #2e9a62, #187645);
  box-shadow: 0 6px 14px rgba(24, 116, 71, 0.16);
}

.farm-breeding-hub-tab:active { opacity: 0.86; }
.farm-breeding-hub-tab:focus-visible { outline: 3px solid rgba(99, 87, 245, 0.28); outline-offset: 2px; }
.farm-breeding-panel-hidden { display: none !important; }

.farm-breeding-hub .farm-breeding-stats-card {
  margin: 0;
  padding: 18px 8px 5px;
}

.farm-breeding-hub .narrow-bridge-breeder-panel {
  margin: 0;
  padding: 18px 6px 6px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.farm-breeding-stats-card {
  overflow: hidden;
  padding: 22px 20px 18px;
}

.farm-breeding-stats-card .farm-chart-head h3 {
  font-size: 24px;
  letter-spacing: 0.01em;
}

.farm-chart-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}

.farm-stats-year-select {
  position: relative;
  flex: 0 0 auto;
}

.farm-stats-year-select select {
  min-width: 88px;
  min-height: 44px;
  padding: 0 28px 0 12px;
  border: 1px solid #e1e5e1;
  border-radius: 999px;
  color: #176b3b;
  background: rgba(247, 251, 247, 0.96);
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.farm-stats-year-select select:focus-visible {
  outline: 3px solid rgba(96, 65, 238, 0.24);
  outline-offset: 2px;
}

.farm-period-switch {
  grid-template-columns: repeat(3, 44px);
  padding: 4px;
  border: 1px solid #ececec;
  background: #f7f7f7;
}

.farm-period-switch button {
  min-height: 34px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  color: #151a24;
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.farm-period-switch button.active {
  color: #fff;
  background: #22a641;
  box-shadow: 0 5px 12px rgba(34, 166, 65, 0.22);
}

.farm-period-switch button:focus-visible {
  outline: 3px solid rgba(96, 65, 238, 0.24);
  outline-offset: 2px;
}

.farm-combined-legend {
  gap: 24px;
  margin: 18px 0 4px;
  font-size: 14px;
}

.farm-combined-legend .green,
.farm-combined-bars .green {
  background: #32a852;
}

.farm-combined-scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 10px 0 2px;
  overscroll-behavior-x: contain;
  scroll-snap-type: none;
  scroll-behavior: auto;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
}

.farm-combined-scroll.is-dragging {
  scroll-snap-type: none;
  cursor: grabbing;
}

.farm-combined-scroll::-webkit-scrollbar { display: none; }

.farm-combined-empty {
  display: grid;
  min-height: 170px;
  place-items: center;
  color: #7a8292;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}

.farm-combined-chart {
  display: grid;
  width: max(100%, calc(var(--farm-stat-columns) * 82px));
  min-width: 100%;
  grid-template-columns: repeat(var(--farm-stat-columns), minmax(76px, 1fr));
  align-items: end;
}

.farm-combined-column {
  display: grid;
  min-width: 0;
  grid-template-rows: 24px 172px 30px 62px;
  align-items: end;
  text-align: center;
  scroll-snap-align: none;
}

.farm-combined-column > strong {
  align-self: start;
  color: #697085;
  font-size: 13px;
  font-weight: 800;
}

.farm-combined-bars {
  display: flex;
  height: 160px;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
  border-bottom: 1px solid #9ca5b5;
}

.farm-combined-bars i {
  position: relative;
  display: block;
  width: 17px;
  min-height: 3px;
  border-radius: 5px 5px 0 0;
  font-style: normal;
}

.farm-combined-bars i.purple { background: #6041ee; }
.farm-combined-bars i.orange { background: #ff8a00; }

.farm-combined-bars i span {
  position: absolute;
  bottom: calc(100% + 5px);
  left: 50%;
  color: #263044;
  font-size: 11px;
  font-weight: 800;
  transform: translateX(-50%);
  white-space: nowrap;
}

.farm-combined-bars i.purple span { color: #5034e9; }
.farm-combined-bars i.orange span { color: #f17c00; }
.farm-combined-bars i.green span { color: #178a36; }

.farm-combined-column > em {
  align-self: start;
  padding-top: 6px;
  color: #111827;
  font-size: 13px;
  font-style: normal;
  white-space: nowrap;
}

.farm-combined-rate {
  display: grid;
  height: 62px;
  align-content: center;
  border-left: 1px solid #e1ddf4;
  background: #f7f5ff;
}

.farm-combined-column:first-child .farm-combined-rate {
  border-left: 0;
  border-radius: 16px 0 0 16px;
}

.farm-combined-column:last-child .farm-combined-rate {
  border-radius: 0 16px 16px 0;
}

.farm-combined-rate b {
  color: #4f3bea;
  font-size: 15px;
}

.farm-combined-rate span {
  margin-top: 3px;
  color: #32394a;
  font-size: 11px;
}

@media (max-width: 640px) {
  .farm-breeding-hub {
    padding: 8px;
    border-radius: 21px;
  }

  .farm-breeding-hub-tab {
    min-height: 44px;
    gap: 6px;
    padding-inline: 7px;
    font-size: 14px;
  }

  .farm-breeding-hub-tab > img {
    width: 24px;
    height: 24px;
    border-radius: 7px;
  }

  .farm-breeding-hub .farm-breeding-stats-card {
    padding: 14px 4px 5px;
  }

  .farm-breeding-hub .narrow-bridge-breeder-panel {
    padding: 14px 4px 5px;
  }

  .farm-breeding-stats-card {
    padding: 16px 12px 13px;
  }

  .farm-breeding-stats-card .farm-chart-head h3 {
    font-size: 18px;
  }

  .farm-chart-controls {
    gap: 5px;
  }

  .farm-stats-year-select select {
    min-width: 74px;
    min-height: 37px;
    padding: 0 20px 0 9px;
    font-size: 11px;
  }

  .farm-period-switch {
    grid-template-columns: repeat(3, 34px);
    padding: 3px;
  }

  .farm-period-switch button {
    min-height: 29px;
    font-size: 12px;
  }

  .farm-combined-legend {
    gap: 14px;
    margin: 14px 0 0;
    font-size: 11px;
  }

  .farm-combined-chart {
    width: max(100%, calc(var(--farm-stat-columns) * 68px));
    grid-template-columns: repeat(var(--farm-stat-columns), minmax(68px, 1fr));
  }

  .farm-combined-column {
    grid-template-rows: 21px 148px 28px 56px;
  }

  .farm-combined-column > strong { font-size: 10px; }
  .farm-combined-bars { height: 138px; gap: 3px; }
  .farm-combined-bars i { width: 14px; }
  .farm-combined-bars i span { font-size: 9px; }
  .farm-combined-column > em { font-size: 11px; }
  .farm-combined-rate { height: 56px; }
  .farm-combined-rate b { font-size: 13px; }
  .farm-combined-rate span { font-size: 9px; }
}

/* v52 电脑端：首页组件在锁定浏览状态下自动排列，避免历史坐标重叠 */
@media (min-width: 641px) {
  body.components-locked .home-components-panel {
    overflow: visible;
  }

  body.components-locked .component-zone[data-component-zone="home"] {
    display: grid !important;
    min-height: 0 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
  }

  body.components-locked .component-zone[data-component-zone="home"] > .zone-placeholder {
    grid-column: 1 / -1;
  }

  body.components-locked .component-zone[data-component-zone="home"] > .analysis-component {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }

  body.components-locked .component-zone[data-component-zone="home"] > .metric-widget {
    height: 150px !important;
    min-height: 150px;
  }

  body.components-locked .component-zone[data-component-zone="home"] > .chart-widget {
    height: auto !important;
    min-height: 320px;
    grid-column: 1 / -1;
  }
}

/* 2026-08-21 种群母/公龟目录卡片版 */
#matingGroupDetailView.mating-directory-mode {
  width: min(100%, 640px);
  margin-right: auto;
  margin-left: auto;
}

#matingGroupDetailView.mating-directory-mode > .back-row {
  gap: 12px;
  margin: 4px 0 18px;
}

#matingGroupDetailView.mating-directory-mode > .back-row .back-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 15px;
  border: 1px solid #86aa92;
  border-radius: 9px;
  color: #2c7658;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 7px 20px rgba(45, 85, 59, 0.05);
  font-weight: 800;
}

#matingGroupDetailView.mating-directory-mode > .back-row .back-button span {
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
}

#matingGroupDetailView.mating-directory-mode .mating-group-detail-panel {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#matingGroupDetailView.mating-directory-mode .mating-group-detail-panel > .panel-head {
  display: flex;
  align-items: center;
  flex-direction: row;
  justify-content: space-between;
  gap: 14px;
  min-height: 110px;
  padding: 19px 21px 15px;
  border: 1px solid rgba(218, 229, 218, 0.9);
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 13px 34px rgba(45, 78, 55, 0.07);
}

#matingGroupDetailView.mating-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  margin: 0 0 8px;
  color: #75a27e;
  font-size: 15px;
  font-weight: 800;
}

#matingGroupDetailView.mating-directory-mode .mating-group-detail-panel > .panel-head h2 {
  margin: 0;
  color: #172036;
  font-size: 29px;
  line-height: 1.12;
  letter-spacing: -0.5px;
}

.mating-group-archive-count {
  flex: 0 0 auto;
  padding: 9px 14px;
  border-radius: 999px;
  color: #6656f5;
  background: #f2edff;
  font-size: 15px;
  font-weight: 900;
  white-space: nowrap;
}

.mating-directory-toolbar {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 14px;
  padding: 12px 21px 19px;
  border: 1px solid rgba(218, 229, 218, 0.9);
  border-top: 0;
  border-radius: 0 0 18px 18px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 13px 34px rgba(45, 78, 55, 0.07);
}

.mating-directory-toolbar::before {
  content: "";
  grid-column: 1 / -1;
  height: 1px;
  margin-bottom: 1px;
  background: #e8edf1;
}

.mating-directory-toolbar #addMatingTurtleButton {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  min-height: 54px;
  padding: 0 16px;
  color: #fff;
  background: linear-gradient(135deg, #6754f5, #7049ed);
  box-shadow: 0 10px 24px rgba(102, 86, 245, 0.22);
  font-weight: 900;
  white-space: nowrap;
}

.mating-directory-toolbar #addMatingTurtleButton span {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  color: #6852f3;
  background: #fff;
  font-size: 20px;
  line-height: 1;
}

.mating-directory-search {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  min-height: 54px;
  overflow: hidden;
  border: 1px solid #d8dfeb;
  border-radius: 13px;
  color: #7a8292;
  background: #fff;
}

.mating-directory-search > span {
  display: grid;
  height: 100%;
  place-items: center;
  font-size: 29px;
  font-weight: 300;
  transform: rotate(-18deg);
}

.mating-directory-search input {
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 0 12px 0 0;
  border: 0;
  outline: 0;
  color: #172036;
  background: transparent;
  font: inherit;
  font-weight: 700;
}

.mating-directory-search input::placeholder {
  color: #a0a7b5;
  font-weight: 600;
}

#matingGroupDetailView.mating-directory-mode .turtle-profile-list {
  gap: 0;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-card {
  gap: 18px;
  padding: 20px;
  border-color: rgba(218, 229, 218, 0.92);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 16px 38px rgba(45, 78, 55, 0.08);
  backdrop-filter: blur(10px);
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-head {
  align-items: center;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-head > div {
  display: flex;
  align-items: baseline;
  gap: 16px;
  min-width: 0;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-head h3 {
  margin: 0;
  color: #172036;
  font-size: 21px;
  white-space: nowrap;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-head p {
  margin: 0;
  overflow: hidden;
  color: #9aa2b2;
  font-size: 13px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.turtle-directory-filter {
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #d4e4d7;
  border-radius: 10px;
  color: #28795a;
  background: #f5faf4;
  cursor: pointer;
  font: inherit;
  font-size: 23px;
  font-weight: 900;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-item {
  min-height: 94px;
  padding: 8px 5px;
  border-color: #d9e0ee;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff 0%, #fbfcff 100%);
  box-shadow: 0 7px 17px rgba(31, 41, 55, 0.035);
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-item:hover,
#matingGroupDetailView.mating-directory-mode .turtle-directory-item:focus-visible,
#matingGroupDetailView.mating-directory-mode .turtle-directory-item:active {
  border-color: #7565f5;
  color: #fff;
  background: linear-gradient(145deg, #6554f4 0%, #714dea 100%);
  box-shadow: 0 12px 24px rgba(102, 86, 245, 0.24);
  transform: translateY(-1px);
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-item:hover strong,
#matingGroupDetailView.mating-directory-mode .turtle-directory-item:focus-visible strong,
#matingGroupDetailView.mating-directory-mode .turtle-directory-item:active strong {
  color: #fff;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-item strong {
  font-size: 16px;
}

.turtle-directory-filter-empty {
  padding: 20px 12px 10px;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode > .back-row {
    flex-wrap: nowrap;
    gap: 7px;
  }

  #matingGroupDetailView.mating-directory-mode > .back-row .back-button {
    min-height: 40px;
    padding: 0 9px;
    font-size: 12px;
    white-space: nowrap;
  }

  #matingGroupDetailView.mating-directory-mode .mating-group-detail-panel > .panel-head {
    min-height: 96px;
    padding: 15px 14px 11px;
  }

  #matingGroupDetailView.mating-directory-mode .mating-group-detail-panel > .panel-head h2 {
    font-size: 25px;
  }

  .mating-group-archive-count {
    padding: 7px 10px;
    font-size: 12px;
  }

  .mating-directory-toolbar {
    grid-template-columns: minmax(132px, auto) minmax(0, 1fr);
    gap: 7px;
    padding: 10px 14px 15px;
  }

  .mating-directory-toolbar #addMatingTurtleButton {
    min-height: 48px;
    padding: 0 10px;
    font-size: 12px;
  }

  .mating-directory-toolbar #addMatingTurtleButton span {
    width: 21px;
    height: 21px;
    font-size: 17px;
  }

  .mating-directory-search {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 48px;
  }

  .mating-directory-search > span {
    font-size: 24px;
  }

  .mating-directory-search input {
    min-height: 46px;
    padding-right: 6px;
    font-size: 12px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-card {
    gap: 15px;
    padding: 14px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-head > div {
    gap: 9px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-head h3 {
    font-size: 17px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-head p {
    font-size: 10px;
  }

  .turtle-directory-filter {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    font-size: 19px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-grid {
    gap: 7px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-item {
    min-height: 82px;
    padding: 6px 3px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-item strong {
    font-size: 13px;
  }
}

/* 2026-08-21 公母龟目录繁殖数据卡片 */
#matingGroupDetailView.mating-directory-mode .female-turtle-directory .turtle-directory-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#matingGroupDetailView.mating-directory-mode .male-turtle-directory .turtle-directory-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

#matingGroupDetailView.mating-directory-mode .female-turtle-summary,
#matingGroupDetailView.mating-directory-mode .male-turtle-summary {
  display: block;
  height: auto;
  color: #172036;
  border: 1px solid #d9e4db;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 7px 20px rgba(31, 68, 44, 0.04);
  text-align: left;
  transform: none;
}

#matingGroupDetailView.mating-directory-mode .female-turtle-summary:hover,
#matingGroupDetailView.mating-directory-mode .female-turtle-summary:focus-visible,
#matingGroupDetailView.mating-directory-mode .male-turtle-summary:hover,
#matingGroupDetailView.mating-directory-mode .male-turtle-summary:focus-visible {
  color: #172036;
  border-color: #7663f4;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 11px 24px rgba(102, 86, 245, 0.13);
  transform: translateY(-1px);
}

#matingGroupDetailView.mating-directory-mode .female-turtle-summary:hover strong,
#matingGroupDetailView.mating-directory-mode .female-turtle-summary:focus-visible strong,
#matingGroupDetailView.mating-directory-mode .male-turtle-summary:hover strong,
#matingGroupDetailView.mating-directory-mode .male-turtle-summary:focus-visible strong {
  color: inherit;
}

#matingGroupDetailView.mating-directory-mode .female-turtle-summary {
  min-height: 220px;
  padding: 13px 12px 11px;
  border-radius: 11px;
}

.directory-item-title {
  display: flex;
  align-items: center;
  min-height: 27px;
  margin-bottom: 7px;
}

.female-directory-title {
  display: grid;
  min-height: 45px;
  align-content: start;
  justify-items: center;
  gap: 4px;
}

.male-directory-title {
  display: grid;
  min-height: 45px;
  align-content: start;
  justify-items: center;
  gap: 4px;
  margin-bottom: 10px;
}

.turtle-directory-ratings {
  display: flex;
  min-height: 14px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  white-space: nowrap;
}

.mother-directory-rule {
  display: grid;
  min-width: 0;
  gap: 2px;
  margin: 0;
  color: #52617a;
  font-size: clamp(9px, 2.35vw, 12px);
  font-style: normal;
  font-weight: 700;
  line-height: 1.3;
}

#matingGroupDetailView.mating-directory-mode .turtle-directory-head .mother-directory-rule {
  display: grid;
  margin: 0;
  overflow: visible;
  color: #52617a;
  font-size: clamp(9px, 2.35vw, 12px);
  font-weight: 700;
  line-height: 1.3;
  text-overflow: clip;
  white-space: normal;
}

.mother-directory-rule > span {
  display: block;
  white-space: nowrap;
}

.mother-directory-rule b {
  color: #31415c;
  font-weight: 900;
}

.mother-directory-rule .heart {
  color: #e04452;
  font-size: 1.15em;
  font-style: normal;
}

.mother-directory-rule .star {
  color: #e6a000;
  font-size: 1.16em;
  font-style: normal;
}

#matingGroupDetailView.mating-directory-mode .female-turtle-directory .turtle-directory-head > div {
  align-items: center;
}

.narrow-bridge-category-heading > div:has(#narrowBridgeCategoryRatingRule:not(.hidden)) {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "eyebrow eyebrow"
    "title rule";
  align-items: center;
  column-gap: 10px;
}

.narrow-bridge-category-heading > div:has(#narrowBridgeCategoryRatingRule:not(.hidden)) > p:first-child {
  grid-area: eyebrow;
}

.narrow-bridge-category-heading > div:has(#narrowBridgeCategoryRatingRule:not(.hidden)) > h2 {
  grid-area: title;
}

.narrow-bridge-category-heading #narrowBridgeCategoryRatingRule {
  grid-area: rule;
  margin: 0;
  color: #52617a;
  font-size: clamp(9px, 2.35vw, 12px);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
}

@media (max-width: 520px) {
  #matingGroupDetailView.mating-directory-mode .female-turtle-directory .turtle-directory-head > div {
    gap: 6px;
  }

  #matingGroupDetailView.mating-directory-mode .turtle-directory-head .mother-directory-rule,
  .narrow-bridge-category-heading #narrowBridgeCategoryRatingRule {
    font-size: 8px;
  }

  .narrow-bridge-category-heading > div:has(#narrowBridgeCategoryRatingRule:not(.hidden)) {
    column-gap: 6px;
  }
}

.mother-fertility-stars {
  display: inline-flex;
  min-height: 14px;
  align-items: center;
  color: #d79a08;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 1px;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9), 0 2px 7px rgba(185, 119, 0, 0.17);
}

.mother-fertility-stars.is-empty {
  visibility: hidden;
}

.turtle-directory-ratings .mother-fertility-stars {
  min-height: 0;
}

.turtle-mating-hearts {
  display: inline-flex;
  min-height: 14px;
  align-items: center;
  color: #e04452;
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.5px;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.92), 0 2px 7px rgba(190, 39, 57, 0.16);
}

.turtle-mating-hearts.is-empty {
  visibility: hidden;
}

#matingGroupDetailView.mating-directory-mode .directory-item-title > strong {
  color: #17264a;
  font-size: 16px;
  line-height: 1.15;
}

.female-directory-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 9px;
  border-bottom: 1px solid #e6ebe7;
}

.female-directory-metrics > span {
  display: grid;
  align-content: start;
  min-width: 0;
  min-height: 55px;
  padding: 4px 6px 7px 0;
}

.female-directory-metrics > span:nth-child(even) {
  padding-left: 9px;
  border-left: 1px solid #e6ebe7;
}

.female-directory-metrics > span:nth-child(n + 3) {
  padding-top: 7px;
  border-top: 1px solid #e6ebe7;
}

.female-directory-metrics small {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  color: #647087;
  font-size: 10px;
  line-height: 1.2;
  white-space: nowrap;
}

.female-directory-metrics small i {
  display: inline-block;
  flex: 0 0 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #6b55f5;
}

.female-directory-metrics small i.orange {
  background: #f28a16;
}

.female-directory-metrics small i.green {
  background: #19764d;
}

.female-directory-metrics small i.gray {
  background: #89919c;
}

#matingGroupDetailView.mating-directory-mode .female-directory-metrics > span > strong {
  margin-top: 3px;
  color: #17264a;
  font-size: 17px;
  line-height: 1;
  text-align: left;
}

.female-recent-heading {
  display: block;
  margin-bottom: 6px;
  color: #58647a;
  font-size: 10px;
  font-weight: 800;
}

.female-recent-months {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.female-recent-months > span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 0 6px;
  border-left: 1px solid #e6ebe7;
  text-align: center;
}

.female-recent-months > span:first-child {
  padding-left: 0;
  border-left: 0;
}

.female-recent-months small {
  color: #657187;
  font-size: 10px;
  line-height: 1.1;
}

#matingGroupDetailView.mating-directory-mode .female-recent-months strong {
  color: #17264a;
  font-size: 13px;
  line-height: 1.15;
}

#matingGroupDetailView.mating-directory-mode .female-recent-months .current small,
#matingGroupDetailView.mating-directory-mode .female-recent-months .current strong {
  color: #6753f5;
}

#matingGroupDetailView.mating-directory-mode .male-turtle-summary {
  min-height: 218px;
  padding: 19px 10px 13px;
  border-radius: 15px;
  text-align: center;
}

.male-directory-name {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color: #17264a;
  font-size: 16px;
  line-height: 1.15;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#matingGroupDetailView.mating-directory-mode .male-directory-title .male-directory-name {
  margin-bottom: 0;
}

.male-directory-rule {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: -3px 0 0;
  padding: 9px 12px;
  border: 1px solid #f2dfe3;
  border-radius: 13px;
  color: #7d3540;
  background: #fff6f7;
  font-size: 12px;
  line-height: 1.35;
  text-align: center;
}

.male-directory-rule > span {
  flex: 0 0 auto;
  color: #e04452;
  font-size: 18px;
  line-height: 1;
}

.male-directory-rule strong {
  color: inherit;
  font-size: inherit;
}

.male-directory-total {
  display: grid;
  min-width: 0;
  justify-items: center;
  gap: 4px;
  margin-top: 7px;
}

.male-directory-total > small {
  color: #68748a;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
}

.male-directory-total > span {
  display: flex;
  max-width: 100%;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
}

.male-directory-total strong {
  color: #13814d;
  font-size: 38px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.male-directory-total b,
.male-directory-recent b {
  color: #738096;
  font-size: 10px;
  font-weight: 800;
}

.male-directory-recent {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px;
  margin-top: 12px;
  padding: 8px 9px;
  border: 1px solid #eee8fa;
  border-radius: 11px;
  background: #f8f6ff;
  text-align: left;
}

.male-directory-recent > small {
  color: #6e778b;
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}

.male-directory-recent > span {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 2px;
}

.male-directory-recent strong {
  color: #6b54f5;
  font-size: 18px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode .female-turtle-directory,
  #matingGroupDetailView.mating-directory-mode .male-turtle-directory {
    padding: 13px;
  }

  #matingGroupDetailView.mating-directory-mode .female-turtle-directory .turtle-directory-grid,
  #matingGroupDetailView.mating-directory-mode .male-turtle-directory .turtle-directory-grid {
    gap: 8px;
  }

  #matingGroupDetailView.mating-directory-mode .female-turtle-summary {
    min-height: 211px;
    padding: 12px 10px 10px;
  }

  #matingGroupDetailView.mating-directory-mode .directory-item-title > strong,
  #matingGroupDetailView.mating-directory-mode .male-directory-name {
    font-size: 14px;
  }

  .female-directory-title {
    min-height: 42px;
  }

  .male-directory-title {
    min-height: 42px;
    margin-bottom: 11px;
  }

  .mother-fertility-stars {
    min-height: 13px;
    font-size: 13px;
  }

  .turtle-directory-ratings {
    min-height: 13px;
    gap: 4px;
  }

  .turtle-mating-hearts {
    min-height: 13px;
    font-size: 17px;
  }

  .female-directory-metrics small {
    gap: 4px;
    font-size: 8px;
  }

  #matingGroupDetailView.mating-directory-mode .female-directory-metrics > span > strong {
    font-size: 16px;
  }

  .female-recent-heading,
  .female-recent-months small {
    font-size: 9px;
  }

  #matingGroupDetailView.mating-directory-mode .female-recent-months strong {
    font-size: 12px;
  }

  #matingGroupDetailView.mating-directory-mode .male-turtle-summary {
    min-height: 205px;
    padding: 16px 7px 11px;
  }

  .male-directory-rule {
    min-height: 36px;
    padding: 8px 10px;
    font-size: 11px;
  }

  .male-directory-total strong {
    font-size: 34px;
  }

  .male-directory-total > small {
    font-size: 9px;
  }

  .male-directory-recent {
    padding: 7px 6px;
  }

  .male-directory-recent > small {
    font-size: 8px;
  }

  .male-directory-recent strong {
    font-size: 16px;
  }
}

/* v64 单只乌龟档案：公龟与母龟分开显示 */
#matingGroupDetailView:has(.archive-record-heading) {
  max-width: 920px;
  margin-inline: auto;
}

#matingGroupDetailView .panel:has(.archive-record-heading) {
  overflow: visible;
}

.turtle-archive-preview:has(.archive-record-heading) {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: 17px;
  width: min(100%, 860px);
  margin-inline: auto;
  padding: 18px 24px 28px;
  overflow: hidden;
  border: 0;
  border-radius: 0 0 28px 28px;
  background: #fbfaf6;
  box-shadow: 0 18px 48px rgba(25, 56, 38, 0.08);
}

.turtle-archive-preview:has(.archive-record-heading)::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 0 auto;
  height: 210px;
  background: url("./assets/home-v33/rainforest-background-v42.png") center 42% / cover no-repeat;
  opacity: 0.09;
  pointer-events: none;
}

.archive-record-heading {
  display: grid;
  grid-template-columns: minmax(112px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 72px;
}

.archive-record-heading button,
.archive-record-heading summary,
.archive-primary-actions button {
  font: inherit;
}

.archive-record-back,
.archive-record-nav > button,
.archive-more-actions > summary {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  color: #0b5b39;
  background: transparent;
  font-family: Arial, sans-serif;
  font-size: 38px;
  line-height: 1;
  cursor: pointer;
}

.archive-record-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: auto;
  min-width: 112px;
  height: 40px;
  padding: 0 13px;
  border: 1px solid rgba(17, 97, 60, 0.3);
  border-radius: 999px;
  color: #0b5b39;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 7px 18px rgba(20, 70, 42, 0.08);
  font-family: inherit;
  font-size: 14px;
  font-weight: 850;
  white-space: nowrap;
}

.archive-record-back span {
  margin-top: -2px;
  font-family: Arial, sans-serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
}

.archive-record-back b {
  font: inherit;
}

.archive-record-nav > button:disabled {
  opacity: 0.24;
  cursor: default;
}

.archive-record-title {
  min-width: 0;
  text-align: center;
}

.archive-record-title h1,
.archive-record-title p {
  margin: 0;
}

.archive-record-title h1 {
  color: #083f29;
  font-size: clamp(29px, 5vw, 40px);
  line-height: 1.08;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}

.archive-record-title p {
  margin-top: 5px;
  color: #789885;
  font-size: 17px;
  font-weight: 800;
}

.archive-record-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}

.archive-more-actions {
  position: relative;
}

.archive-more-actions > summary {
  list-style: none;
  font-size: 36px;
}

.archive-more-actions > summary::-webkit-details-marker {
  display: none;
}

.archive-more-actions > div {
  position: absolute;
  z-index: 20;
  top: 44px;
  right: 0;
  display: grid;
  width: 136px;
  padding: 6px;
  border: 1px solid #dfe9e1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(20, 50, 31, 0.18);
}

.archive-more-actions > div button {
  min-height: 39px;
  border: 0;
  border-radius: 9px;
  color: #1d4f39;
  background: transparent;
  font-size: 13px;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.archive-more-actions > div button:hover {
  background: #eff7f1;
}

.archive-more-actions > div button.danger {
  color: #c73838;
}

.archive-record-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}

.archive-record-photo {
  display: block;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e1e4df;
  border-radius: 19px;
  background: #f0f1ec;
  box-shadow: 0 8px 24px rgba(34, 55, 41, 0.06);
  cursor: zoom-in;
}

.archive-record-photo figure {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 330px;
  margin: 0;
  overflow: hidden;
}

.archive-record-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate(var(--photo-pan-x, 0), var(--photo-pan-y, 0)) scale(var(--photo-zoom, 1));
}

.archive-record-photo figcaption {
  position: absolute;
  right: 14px;
  bottom: 13px;
  left: 14px;
  display: flex;
  align-items: center;
  width: max-content;
  max-width: calc(100% - 28px);
  overflow: hidden;
  border-radius: 10px;
  color: #fff;
  background: rgba(15, 28, 22, 0.62);
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
  backdrop-filter: blur(4px);
}

.archive-record-photo figcaption strong,
.archive-record-photo figcaption span {
  padding: 8px 12px;
}

.archive-record-photo figcaption strong {
  background: rgba(0, 83, 48, 0.75);
}

.archive-record-photo figcaption span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.archive-record-photo-empty {
  display: grid;
  min-height: 330px;
  place-items: center;
  color: #7a8d80;
  font-weight: 800;
  cursor: default;
}

.archive-record-identity {
  display: grid;
  align-content: stretch;
  min-width: 0;
}

.archive-identity-rows {
  display: grid;
  align-content: stretch;
  min-width: 0;
}

.archive-identity-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  min-height: 66px;
  border-bottom: 1px dotted #aac0b0;
}

.archive-identity-row span {
  color: #4d7d63;
  font-size: 16px;
  font-weight: 800;
}

.archive-identity-row strong {
  min-width: 0;
  color: #15243c;
  font-size: clamp(19px, 3vw, 27px);
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.archive-primary-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.archive-primary-actions button {
  min-height: 55px;
  border: 2px solid #13633f;
  border-radius: 12px;
  color: #105b3b;
  background: #fff;
  font-size: 18px;
  font-weight: 900;
  cursor: pointer;
}

.archive-primary-actions button.primary {
  color: #fff;
  background: #17653f;
}

.archive-record-overview,
.archive-record-details,
.archive-record-history {
  padding: 20px 22px;
  border: 1px solid #e1e4dd;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 7px 22px rgba(34, 55, 41, 0.035);
}

.archive-record-section-title {
  min-height: 60px;
  padding: 2px 0 15px;
  border-bottom: 1px solid #e4e6e2;
}

.archive-record-section-title h2 {
  margin: 0;
  color: #0e5838;
  font-size: 26px;
}

.archive-record-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.archive-record-stat {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
  min-height: 104px;
  padding: 16px 22px;
  border-bottom: 1px solid #e5e7e3;
}

.archive-record-stat:nth-child(odd) {
  border-right: 1px solid #e5e7e3;
}

.archive-record-stat-grid.female .archive-record-stat:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.archive-record-stat-grid.male .archive-record-stat {
  border-bottom: 1px solid #e5e7e3;
}

.archive-record-stat span,
.archive-record-wide-stat span {
  color: #778295;
  font-size: 14px;
  font-weight: 800;
}

.archive-record-stat strong,
.archive-record-wide-stat strong {
  color: #102038;
  font-size: 22px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.archive-record-wide-stat {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 72px;
  padding: 14px 22px 2px;
}

.archive-record-details {
  padding: 0;
  overflow: hidden;
}

.archive-record-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  width: 100%;
  min-height: 88px;
  gap: 12px;
  padding: 16px 22px;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.archive-record-link + .archive-record-link {
  border-top: 1px solid #e4e7e2;
}

.archive-record-link:hover,
.archive-record-link:focus-visible {
  background: rgba(238, 247, 240, 0.72);
}

.archive-record-link span,
.archive-record-link strong,
.archive-record-link small {
  display: block;
}

.archive-record-link strong {
  color: #16223a;
  font-size: 20px;
}

.archive-record-link small {
  margin-top: 5px;
  color: #7d8797;
  font-size: 15px;
  font-weight: 800;
}

.archive-record-link b {
  color: #758090;
  font-family: Arial, sans-serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
}

.archive-records-page {
  width: min(100%, 860px);
  margin-inline: auto;
}

.archive-records-back {
  margin-bottom: 14px;
}

.archive-records-page-panel {
  overflow: hidden;
  border: 1px solid rgba(209, 224, 213, 0.95);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 15px 36px rgba(22, 63, 39, 0.1);
}

.archive-records-page-head {
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 1px solid #e3e9e4;
}

.archive-records-page-head h2 {
  margin-top: 4px;
  color: #113c2b;
  font-size: clamp(28px, 5vw, 42px);
}

.archive-records-summary {
  padding: 9px 14px;
  border-radius: 999px;
  color: #5d4bf4;
  background: #f0edff;
  font-size: 15px;
  white-space: nowrap;
}

.archive-records-page-list {
  padding: 18px 22px 24px;
}

.archive-records-page-list .profile-mating-history,
.archive-records-page-list .archive-detail-list {
  display: grid;
  gap: 10px;
  max-height: none;
  overflow: visible;
}

.archive-records-page-list .profile-mating-grid {
  grid-template-columns: 1fr;
}

.archive-records-page-list .archive-detail-item {
  min-height: 78px;
  padding: 14px 16px;
  border: 1px solid #e3e9e4;
  border-radius: 14px;
  background: #fbfcfa;
}

.archive-record-disclosure + .archive-record-disclosure {
  border-top: 1px solid #e4e7e2;
}

.archive-record-disclosure > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  min-height: 88px;
  gap: 12px;
  padding: 16px 22px;
  list-style: none;
  cursor: pointer;
}

.archive-record-disclosure > summary::-webkit-details-marker {
  display: none;
}

.archive-record-disclosure > summary span,
.archive-record-disclosure > summary strong,
.archive-record-disclosure > summary small {
  display: block;
}

.archive-record-disclosure > summary strong {
  color: #16223a;
  font-size: 20px;
}

.archive-record-disclosure > summary small {
  margin-top: 5px;
  color: #7d8797;
  font-size: 15px;
  font-weight: 800;
}

.archive-record-disclosure > summary b {
  color: #758090;
  font-family: Arial, sans-serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
  transition: transform 160ms ease;
}

.archive-record-disclosure[open] > summary b {
  transform: rotate(90deg);
}

.archive-record-disclosure-body {
  padding: 0 20px 18px;
}

.archive-record-disclosure-body .profile-mating-history,
.archive-record-disclosure-body .archive-detail-list {
  max-height: 280px;
  overflow-y: auto;
}

.archive-record-disclosure-body .archive-detail-item {
  background: #f8faf8;
}

.archive-record-history .archive-section-head {
  align-items: center;
  margin-bottom: 14px;
}

.archive-record-history .archive-section-head h4 {
  color: #13233c;
  font-size: 21px;
}

.archive-record-history .archive-section-head h4 small {
  margin-left: 5px;
  color: #7e8794;
  font-size: 16px;
  font-weight: 700;
}

.archive-record-history .archive-section-head > span {
  color: #0e633c;
  font-size: 14px;
}

.archive-record-history .archive-history-strip {
  grid-auto-columns: calc((100% - 20px) / 3);
  gap: 10px;
}

.archive-record-history .archive-history-thumb {
  width: 100%;
  height: auto;
  aspect-ratio: 1.22 / 1;
  border-radius: 10px;
}

.archive-record-history .archive-history-thumb.active {
  border-color: #11613c;
}

@media (max-width: 640px) {
  .turtle-archive-preview:has(.archive-record-heading) {
    gap: 12px;
    width: 100%;
    padding: 8px 10px 18px;
    border-radius: 0 0 20px 20px;
  }

  .archive-record-heading {
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 6px;
    min-height: 64px;
  }

  .archive-record-back,
  .archive-record-nav > button,
  .archive-more-actions > summary {
    width: 32px;
    height: 36px;
    font-size: 31px;
  }

  .archive-record-back {
    width: auto;
    min-width: 88px;
    height: 34px;
    padding: 0 8px;
    font-family: inherit;
    font-size: 11px;
  }

  .archive-record-back span {
    font-size: 22px;
  }

  .archive-record-title h1 {
    font-size: 26px;
  }

  .archive-record-title p {
    margin-top: 3px;
    font-size: 13px;
  }

  .archive-record-nav {
    gap: 0;
  }

  .archive-more-actions > div {
    top: 38px;
    width: 126px;
  }

  .archive-record-hero {
    gap: 8px;
  }

  .archive-record-photo figure,
  .archive-record-photo-empty {
    min-height: 212px;
  }

  .archive-record-photo {
    border-radius: 13px;
  }

  .archive-record-photo figcaption {
    right: 7px;
    bottom: 7px;
    left: 7px;
    max-width: calc(100% - 14px);
    border-radius: 7px;
    font-size: 10px;
  }

  .archive-record-photo figcaption strong,
  .archive-record-photo figcaption span {
    padding: 6px 7px;
  }

  .archive-identity-row {
    grid-template-columns: 48px minmax(0, 1fr);
    min-height: 44px;
  }

  .archive-identity-row span {
    font-size: 12px;
  }

  .archive-identity-row strong {
    font-size: 15px;
  }

  .archive-primary-actions {
    gap: 6px;
    margin-top: 7px;
  }

  .archive-primary-actions button {
    min-height: 43px;
    border-width: 1.5px;
    border-radius: 9px;
    font-size: 14px;
  }

  .archive-record-overview,
  .archive-record-details,
  .archive-record-history {
    padding: 12px 12px;
    border-radius: 13px;
  }

  .archive-record-section-title {
    min-height: 48px;
    padding: 2px 4px 11px;
  }

  .archive-record-section-title h2 {
    font-size: 20px;
  }

  .archive-record-stat {
    min-height: 76px;
    padding: 10px 12px;
  }

  .archive-record-stat span,
  .archive-record-wide-stat span {
    font-size: 11px;
  }

  .archive-record-stat strong,
  .archive-record-wide-stat strong {
    font-size: 16px;
  }

  .archive-record-wide-stat {
    min-height: 54px;
    padding: 10px 12px 0;
  }

  .archive-record-details {
    padding: 0;
  }

  .archive-record-link {
    min-height: 68px;
    padding: 11px 14px;
  }

  .archive-record-link strong {
    font-size: 15px;
  }

  .archive-record-link small {
    margin-top: 3px;
    font-size: 12px;
  }

  .archive-record-link b {
    font-size: 31px;
  }

  .archive-records-page {
    width: 100%;
    padding: 8px 10px 18px;
  }

  .archive-records-back {
    margin: 0 0 10px;
  }

  .archive-records-page-panel {
    border-radius: 18px;
  }

  .archive-records-page-head {
    align-items: start;
    gap: 10px;
    padding: 18px 16px 15px;
  }

  .archive-records-page-head h2 {
    font-size: 27px;
  }

  .archive-records-page-head .eyebrow {
    font-size: 13px;
  }

  .archive-records-summary {
    padding: 7px 10px;
    font-size: 12px;
  }

  .archive-records-page-list {
    padding: 12px 12px 18px;
  }

  .archive-records-page-list .archive-detail-item {
    min-height: 66px;
    padding: 11px 12px;
    border-radius: 11px;
  }

  .archive-record-disclosure > summary {
    min-height: 68px;
    padding: 11px 14px;
  }

  .archive-record-disclosure > summary strong {
    font-size: 15px;
  }

  .archive-record-disclosure > summary small {
    margin-top: 3px;
    font-size: 12px;
  }

  .archive-record-disclosure > summary b {
    font-size: 31px;
  }

  .archive-record-disclosure-body {
    padding: 0 10px 12px;
  }

  .archive-record-history .archive-section-head {
    margin-bottom: 9px;
  }

  .archive-record-history .archive-section-head h4 {
    font-size: 16px;
  }

  .archive-record-history .archive-section-head h4 small {
    font-size: 12px;
  }

  .archive-record-history .archive-section-head > span {
    font-size: 11px;
  }
}

@media (max-width: 380px) {
  .archive-record-title h1 {
    font-size: 23px;
  }

  .archive-record-title p {
    font-size: 11px;
  }

  .archive-record-photo figure,
  .archive-record-photo-empty {
    min-height: 195px;
  }

  .archive-identity-row {
    grid-template-columns: 42px minmax(0, 1fr);
    min-height: 40px;
  }

  .archive-identity-row span {
    font-size: 10px;
  }

  .archive-identity-row strong {
    font-size: 13px;
  }

  .archive-primary-actions button {
    min-height: 39px;
    font-size: 12px;
  }
}

/* v67 乌龟档案编辑、交配记录与产蛋记录 */
.turtle-editor-view {
  width: min(100%, 860px);
  min-height: 100vh;
  margin-inline: auto;
  padding: 26px 22px 92px;
}

.turtle-editor-heading {
  position: relative;
  display: grid;
  min-height: 170px;
  place-items: start center;
  padding-top: 30px;
}

.turtle-editor-heading::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -46px -44px 0;
  border-radius: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.52), rgba(249, 249, 244, 0.84)),
    url("./assets/home-v33/rainforest-background-v42.png") center 15% / cover no-repeat;
}

.turtle-editor-heading > div {
  display: grid;
  justify-items: center;
  gap: 7px;
}

.turtle-editor-heading p {
  color: #718071;
  font-size: 15px;
  font-weight: 800;
}

.turtle-editor-heading h2 {
  color: #0b1733;
  font-size: clamp(30px, 6vw, 42px);
  letter-spacing: 0.02em;
}

.turtle-editor-back {
  position: absolute;
  top: 23px;
  left: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 48px;
  padding: 0 17px;
  border: 0;
  border-radius: 999px;
  color: #116b34;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 7px 22px rgba(42, 75, 51, 0.08);
  font: inherit;
  font-size: 17px;
  font-weight: 800;
  cursor: pointer;
}

.turtle-editor-back span {
  font-family: Arial, sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
}

.turtle-editor-panel {
  margin: 0;
  padding: 28px;
  border: 1px solid rgba(220, 225, 220, 0.96);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 46px rgba(35, 67, 45, 0.1);
}

#newMatingTurtleView .turtle-editor-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 28px;
  margin: 0;
}

#newMatingTurtleView .turtle-editor-photo {
  grid-column: 1 / -1;
  grid-template-columns: minmax(220px, 0.8fr) minmax(240px, 1.1fr);
  align-items: center;
  gap: 24px;
  padding-bottom: 28px;
  border-bottom: 1px solid #e5e9e6;
}

#newMatingTurtleView .turtle-editor-photo .update-photo-drop-box {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 0.78;
  border: 0;
  border-radius: 20px;
  color: #7e8a80;
  background: #f3f6f1;
  font-size: 16px;
}

#newMatingTurtleView .turtle-editor-photo .update-photo-drop-box img {
  object-fit: cover;
}

#newMatingTurtleView .turtle-editor-photo .upload-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

#newMatingTurtleView .turtle-editor-photo .ghost-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 70px;
  border: 1px solid #d8ded9;
  border-radius: 16px;
  color: #0d6232;
  background: #fff;
  box-shadow: none;
  font-size: 19px;
  font-weight: 800;
}

#newMatingTurtleView .turtle-editor-photo .ghost-button img {
  width: 46px;
  height: 46px;
  padding: 9px;
  border-radius: 50%;
  background: #edf6ef;
  box-sizing: border-box;
  filter: none;
  object-fit: contain;
}

#newMatingTurtleView .turtle-editor-photo .danger-light-button {
  display: none;
}

#newMatingTurtleView .turtle-editor-form > label {
  position: relative;
  gap: 11px;
  min-width: 0;
  color: #17223a;
  font-size: 18px;
  font-weight: 800;
}

#newMatingTurtleView .turtle-editor-form > label::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 4px;
  height: 21px;
  border-radius: 999px;
  background: #15912c;
}

#newMatingTurtleView .turtle-editor-form > label {
  padding-left: 15px;
}

#newMatingTurtleView .turtle-editor-form > label.wide {
  grid-column: auto;
}

#newMatingTurtleView .turtle-editor-form input,
#newMatingTurtleView .turtle-editor-form select {
  min-height: 60px;
  border-color: #dfe4ea;
  border-radius: 15px;
  padding-inline: 16px;
  color: #132039;
  background: #fff;
  box-shadow: 0 3px 10px rgba(29, 44, 34, 0.025);
  font-size: 19px;
  font-weight: 500;
}

#newMatingTurtleView .turtle-editor-form > .primary-button {
  grid-column: 1 / -1;
  min-height: 64px;
  margin-top: 4px;
  border-radius: 15px;
  background: linear-gradient(100deg, #3729ef, #4830ff);
  box-shadow: 0 14px 28px rgba(61, 43, 244, 0.2);
  font-size: 22px;
  font-weight: 800;
}

body.archive-records-mode #appMain {
  padding-bottom: 78px;
}

body.archive-records-mode .farm-bottom-drawer,
body.archive-records-mode .farm-bottom-drawer-toggle {
  display: none !important;
}

.archive-records-page {
  width: min(100%, 860px);
  min-height: 100vh;
  padding: 30px 22px 90px;
}

.archive-records-back {
  min-height: 52px;
  margin: 0 0 20px;
  padding: 0 20px;
  border: 0;
  border-radius: 999px;
  color: #5d4bf4;
  background: #efeaff;
  box-shadow: 0 8px 22px rgba(74, 56, 190, 0.08);
  font-size: 18px;
  font-weight: 800;
}

.archive-records-page-panel {
  min-height: 690px;
  margin: 0;
  padding: 28px 30px 42px;
  border: 0;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 22px 50px rgba(24, 57, 37, 0.12);
}

.archive-records-page-head {
  display: block;
  padding: 4px 4px 28px;
  border-bottom: 1px solid #dfe6df;
}

.archive-records-page-head .eyebrow {
  color: #53617b;
  font-size: 16px;
  font-weight: 800;
}

.archive-records-page-head h2 {
  margin-top: 14px;
  color: #053523;
  font-size: clamp(34px, 7vw, 48px);
  line-height: 1.05;
  letter-spacing: 0.01em;
}

.archive-records-summary {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.archive-records-page-list {
  padding: 26px 0 0;
}

.archive-month-list {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid #dfe6df;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.8);
}

.archive-month-group + .archive-month-group {
  border-top: 1px solid #e3e9e4;
}

.archive-month-group > h3 {
  padding: 13px 20px;
  color: #315f4c;
  background: linear-gradient(90deg, rgba(237, 242, 238, 0.92), rgba(248, 249, 247, 0.76));
  font-size: 19px;
}

.archive-month-rows {
  padding: 0 20px;
}

.archive-timeline-row {
  display: grid;
  align-items: center;
  gap: 18px;
  min-height: 110px;
  padding: 14px 4px;
}

.archive-timeline-row + .archive-timeline-row {
  border-top: 1px solid #e2e7e3;
}

.archive-mating-row {
  grid-template-columns: 84px minmax(0, 1fr) auto;
}

.archive-egg-row {
  grid-template-columns: 84px minmax(0, 1fr) auto 44px;
}

.archive-day-badge {
  display: flex;
  align-items: baseline;
  justify-content: center;
  min-height: 76px;
  padding: 12px 8px;
  border: 1px solid #d8e0da;
  border-radius: 16px;
  color: #063522;
  background: #f8faf8;
}

.archive-day-badge b {
  font-size: 32px;
  line-height: 1;
}

.archive-day-badge span {
  margin-left: 2px;
  font-size: 17px;
  font-weight: 800;
}

.archive-row-name,
.archive-row-copy > b {
  min-width: 0;
  color: #063522;
  font-size: 23px;
  overflow-wrap: anywhere;
}

.archive-row-copy {
  display: grid;
  gap: 7px;
}

.archive-row-copy small {
  color: #5f7295;
  font-size: 15px;
  font-weight: 700;
}

.archive-row-count {
  color: #18243c;
  font-size: 20px;
  font-weight: 800;
  white-space: nowrap;
}

.archive-row-edit {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #6c57ff;
  background: #efeaff;
  font: inherit;
  font-size: 22px;
  font-weight: 900;
  cursor: pointer;
}

.archive-records-page-list .profile-history-pages {
  padding: 14px 12px;
  background: #fff;
}

@media (max-width: 640px) {
  .turtle-editor-view {
    padding: 10px 0 72px;
  }

  .turtle-editor-heading {
    min-height: 128px;
    padding: 51px 14px 0;
  }

  .turtle-editor-heading::before {
    inset: -24px -10px 0;
    border-radius: 0;
  }

  .turtle-editor-heading p {
    display: none;
  }

  .turtle-editor-heading h2 {
    font-size: 29px;
  }

  .turtle-editor-back {
    top: 5px;
    left: 6px;
    min-height: 42px;
    padding: 0 12px;
    font-size: 14px;
  }

  .turtle-editor-panel {
    padding: 18px 14px 22px;
    border-radius: 20px;
  }

  #newMatingTurtleView .turtle-editor-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 12px;
  }

  #newMatingTurtleView .turtle-editor-photo {
    grid-template-columns: 122px minmax(0, 1fr) !important;
    gap: 12px;
    padding-bottom: 20px;
  }

  #newMatingTurtleView .turtle-editor-photo .update-photo-drop-box {
    aspect-ratio: 1;
    border-radius: 15px;
    font-size: 13px;
  }

  #newMatingTurtleView .turtle-editor-photo .upload-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 9px;
  }

  #newMatingTurtleView .turtle-editor-photo .ghost-button {
    width: 100%;
    min-height: 50px;
    padding: 0 8px;
    flex: none;
    border-radius: 13px;
    font-size: 14px;
  }

  #newMatingTurtleView .turtle-editor-photo .ghost-button img {
    width: 34px;
    height: 34px;
    padding: 7px;
  }

  #newMatingTurtleView .turtle-editor-form > label {
    gap: 8px;
    padding-left: 10px;
    font-size: 14px;
  }

  #newMatingTurtleView .turtle-editor-form > label::before {
    width: 3px;
    height: 17px;
  }

  #newMatingTurtleView .turtle-editor-form input,
  #newMatingTurtleView .turtle-editor-form select {
    min-height: 49px;
    padding-inline: 10px;
    border-radius: 12px;
    font-size: 15px;
  }

  #newMatingTurtleView .turtle-editor-form > .primary-button {
    min-height: 54px;
    margin-top: 2px;
    flex: none;
    font-size: 18px;
  }

  .archive-records-page {
    padding: 16px 4px 55px;
  }

  .archive-records-back {
    min-height: 45px;
    margin-left: 8px;
    margin-bottom: 13px;
    padding: 0 14px;
    font-size: 15px;
  }

  .archive-records-page-panel {
    min-height: 650px;
    padding: 25px 16px 30px;
    border-radius: 25px;
  }

  .archive-records-page-head {
    padding: 2px 7px 24px;
  }

  .archive-records-page-head .eyebrow {
    font-size: 13px;
  }

  .archive-records-page-head h2 {
    margin-top: 12px;
    font-size: 31px;
  }

  .archive-records-page-list {
    padding-top: 20px;
  }

  .archive-month-list {
    border-radius: 18px;
  }

  .archive-month-group > h3 {
    padding: 11px 14px;
    font-size: 16px;
  }

  .archive-month-rows {
    padding: 0 12px;
  }

  .archive-timeline-row {
    gap: 11px;
    min-height: 84px;
    padding: 10px 0;
  }

  .archive-mating-row {
    grid-template-columns: 63px minmax(0, 1fr) auto;
  }

  .archive-egg-row {
    grid-template-columns: 63px minmax(0, 1fr) auto 34px;
  }

  .archive-day-badge {
    min-height: 58px;
    padding: 8px 4px;
    border-radius: 12px;
  }

  .archive-day-badge b {
    font-size: 25px;
  }

  .archive-day-badge span {
    font-size: 13px;
  }

  .archive-row-name,
  .archive-row-copy > b {
    font-size: 17px;
  }

  .archive-row-copy {
    gap: 4px;
  }

  .archive-row-copy small {
    font-size: 11px;
  }

  .archive-row-count {
    font-size: 15px;
  }

  .archive-row-edit {
    width: 32px;
    height: 32px;
    font-size: 17px;
  }
}

/* v70 龟池档案最终层：放在文件末尾，避免历史样式回盖 */
.pool-detail-view.pool-detail-view {
  width: min(100%, 900px);
  margin: 0 auto;
}

.pool-detail-view .pool-detail-back {
  display: inline-flex;
  width: auto;
  min-height: 54px;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0 22px;
  border: 1px solid rgba(224, 225, 236, 0.9);
  border-radius: 999px;
  color: var(--pool-purple);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 28px rgba(48, 56, 76, 0.1);
  font-size: 17px;
}

.pool-detail-view .pool-detail-back span {
  margin: -2px 0 0;
  font-size: 31px;
}

.pool-detail-view .pool-detail-panel {
  display: grid;
  gap: 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.pool-detail-view .pool-detail-heading {
  display: grid;
  justify-items: stretch;
  gap: 16px;
  margin: 0;
  padding: 26px 30px 30px;
  border: 1px solid rgba(224, 229, 225, 0.96);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 15px 38px rgba(49, 65, 52, 0.08);
  text-align: left;
}

.pool-detail-view .pool-detail-heading > div {
  place-items: initial;
  gap: 38px;
}

.pool-detail-view .pool-detail-heading .eyebrow {
  justify-self: stretch;
  gap: 10px;
  margin: 0;
  font-size: 17px;
}

.pool-detail-view .pool-detail-heading .pool-detail-hero-copy h2 {
  grid-column: 1 / -1;
  margin: 0;
  font-size: clamp(34px, 5vw, 50px);
}

.pool-detail-view .pool-detail-edit {
  display: inline-flex;
  width: auto;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 16px;
  border: 1.5px solid var(--pool-purple);
  border-radius: 13px;
  background: #fff;
  box-shadow: none;
}

.pool-detail-view .pool-detail-edit strong {
  font-size: 16px;
}

.pool-detail-view #turtlePoolDetail {
  gap: 16px;
}

.pool-detail-view #turtlePoolDetail .pool-egg-history {
  gap: 15px;
  margin: 0;
  padding: 22px;
  border-radius: 28px;
  box-shadow: 0 15px 38px rgba(49, 65, 52, 0.08);
}

.pool-detail-view .pool-egg-history .profile-history-head > strong {
  gap: 10px;
  font-size: 23px;
}

.pool-detail-view .pool-egg-month-toggle {
  grid-template-columns: minmax(0, 1fr) auto 20px;
  gap: 10px;
  padding: 14px 20px;
}

.pool-detail-view .pool-egg-month-toggle > strong {
  font-size: 18px;
}

.pool-detail-view .pool-egg-month-toggle > span {
  font-size: 14px;
}

.pool-detail-view .pool-egg-entry summary {
  grid-template-columns: 120px minmax(110px, 1fr) 92px 24px;
  min-height: 72px;
  gap: 14px;
  padding: 0 20px;
}

@media (max-width: 720px) {
  .pool-detail-view.pool-detail-view {
    width: 100%;
  }

  .pool-detail-view .pool-detail-back {
    min-height: 48px;
    margin-bottom: 14px;
    padding: 0 16px;
    border-radius: 999px;
    font-size: 14px;
  }

  .pool-detail-view .pool-detail-back span {
    font-size: 26px;
  }

  .pool-detail-view .pool-detail-panel {
    gap: 14px;
    padding: 0;
    border-radius: 0;
  }

  .pool-detail-view .pool-detail-heading {
    gap: 13px;
    padding: 17px 15px 16px;
    border-radius: 22px;
  }

  .pool-detail-view .pool-detail-heading > div {
    place-items: initial;
    gap: 16px;
  }

  .pool-detail-view .pool-detail-heading .eyebrow {
    font-size: 14px;
  }

  .pool-detail-view .pool-detail-heading .pool-detail-hero-copy h2 {
    font-size: 28px;
  }

  .pool-detail-view .pool-detail-edit {
    display: inline-flex;
    width: auto;
    min-height: 36px;
    justify-self: start;
    gap: 6px;
    padding: 0 11px;
    border-radius: 10px;
  }

  .pool-detail-view .pool-detail-edit strong {
    font-size: 12px;
  }

  .pool-detail-view #turtlePoolDetail {
    gap: 14px;
  }

  .pool-detail-view #turtlePoolDetail .pool-egg-history {
    gap: 11px;
    padding: 11px 11px 12px;
    border-radius: 22px;
  }

  .pool-detail-view .pool-egg-history .profile-history-head > strong {
    gap: 8px;
    font-size: 17px;
  }

  .pool-detail-view .pool-egg-month-toggle {
    grid-template-columns: minmax(0, 1fr) auto 16px;
    gap: 7px;
    min-height: 46px;
    padding: 11px 12px;
  }

  .pool-detail-view .pool-egg-month-toggle > strong {
    font-size: 14px;
  }

  .pool-detail-view .pool-egg-month-toggle > span {
    font-size: 11px;
  }

  .pool-detail-view .pool-egg-entry summary {
    grid-template-columns: 74px minmax(82px, 1fr) 50px 16px;
    gap: 6px;
    min-height: 58px;
    padding: 0 10px;
  }
}

/* v72 档案记录：年份 → 月份两级折叠 */
.archive-year-group + .archive-year-group,
.pool-egg-year + .pool-egg-year {
  border-top: 1px solid #dfe7e1;
}

.archive-year-toggle,
.archive-month-toggle,
.pool-egg-year-toggle {
  display: grid;
  align-items: center;
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.archive-year-toggle::-webkit-details-marker,
.archive-month-toggle::-webkit-details-marker,
.pool-egg-year-toggle::-webkit-details-marker {
  display: none;
}

.archive-year-toggle,
.pool-egg-year-toggle {
  grid-template-columns: minmax(0, 1fr) auto 20px;
  gap: 10px;
  min-height: 62px;
  padding: 15px 20px;
  color: #0c4b35;
  background: linear-gradient(90deg, rgba(229, 239, 231, 0.98), rgba(246, 249, 244, 0.92));
}

.archive-year-toggle > strong,
.pool-egg-year-toggle > strong {
  font-size: 21px;
  font-weight: 900;
}

.archive-year-toggle > span,
.pool-egg-year-toggle > span {
  color: #728079;
  font-size: 14px;
  font-weight: 800;
}

.archive-year-toggle > img,
.archive-month-toggle > img,
.pool-egg-year-toggle > img {
  width: 18px;
  height: 18px;
  transition: transform 180ms ease;
}

.archive-year-group[open] > .archive-year-toggle > img,
.archive-month-group[open] > .archive-month-toggle > img,
.pool-egg-year[open] > .pool-egg-year-toggle > img {
  transform: rotate(90deg);
}

.archive-year-months,
.pool-egg-year-months {
  padding: 0;
  background: rgba(255, 255, 255, 0.7);
}

.archive-month-group + .archive-month-group,
.pool-egg-year-months .pool-egg-month + .pool-egg-month {
  border-top: 1px solid #e5e9e6;
}

.archive-month-toggle {
  grid-template-columns: minmax(0, 1fr) auto 18px;
  gap: 9px;
  min-height: 54px;
  padding: 12px 20px;
  color: #315f4c;
  background: linear-gradient(90deg, rgba(246, 247, 244, 0.96), rgba(252, 252, 250, 0.86));
}

.archive-month-toggle > strong {
  font-size: 18px;
  font-weight: 900;
}

.archive-month-toggle > span {
  color: #87918a;
  font-size: 13px;
  font-weight: 800;
}

.pool-detail-view .pool-egg-year {
  overflow: hidden;
  border: 1px solid #e0e7e1;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
}

.pool-detail-view .pool-egg-year + .pool-egg-year {
  margin-top: 10px;
}

.pool-detail-view .pool-egg-year-toggle {
  grid-template-columns: minmax(0, 1fr) auto 20px;
  padding: 14px 20px;
}

.pool-detail-view .pool-egg-year-toggle > strong {
  font-size: 19px;
}

.pool-detail-view .pool-egg-year-toggle > span {
  font-size: 13px;
}

.pool-detail-view .pool-egg-year-months .pool-egg-month {
  border-radius: 0;
}

@media (max-width: 720px) {
  .archive-year-toggle,
  .pool-detail-view .pool-egg-year-toggle {
    grid-template-columns: minmax(0, 1fr) auto 16px;
    gap: 7px;
    min-height: 50px;
    padding: 11px 13px;
  }

  .archive-year-toggle > strong,
  .pool-detail-view .pool-egg-year-toggle > strong {
    font-size: 16px;
  }

  .archive-year-toggle > span,
  .pool-detail-view .pool-egg-year-toggle > span {
    font-size: 11px;
  }

  .archive-year-toggle > img,
  .archive-month-toggle > img,
  .pool-detail-view .pool-egg-year-toggle > img {
    width: 15px;
    height: 15px;
  }

  .archive-month-toggle {
    grid-template-columns: minmax(0, 1fr) auto 15px;
    gap: 7px;
    min-height: 46px;
    padding: 10px 13px;
  }

  .archive-month-toggle > strong {
    font-size: 14px;
  }

  .archive-month-toggle > span {
    font-size: 10px;
  }

  .pool-detail-view .pool-egg-year {
    border-radius: 15px;
  }

  .pool-detail-view .pool-egg-year + .pool-egg-year {
    margin-top: 8px;
  }
}

/* v79: fixed narrow-bridge breeder archive categories */
.narrow-bridge-breeder-panel {
  margin-top: 18px;
  padding: 28px;
  border: 1px solid rgba(38, 91, 57, 0.13);
  border-radius: 32px;
  background:
    radial-gradient(circle at 96% 8%, rgba(104, 166, 118, 0.12), transparent 29%),
    rgba(255, 255, 255, 0.95);
  box-shadow: 0 16px 38px rgba(29, 61, 40, 0.11);
}

.narrow-bridge-breeder-panel.hidden {
  display: none !important;
}

.narrow-bridge-breeder-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.narrow-bridge-breeder-head p,
.narrow-bridge-category-heading p {
  margin: 0 0 5px;
  color: #67806f;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.narrow-bridge-breeder-head h3,
.narrow-bridge-category-heading h2 {
  margin: 0;
  color: #132033;
  font-size: 27px;
  line-height: 1.15;
}

.narrow-bridge-breeder-head > span {
  color: #768397;
  font-size: 13px;
  font-weight: 700;
}

.narrow-bridge-breeder-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

.narrow-bridge-breeder-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 168px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 18px;
  padding: 20px 18px 16px;
  overflow: hidden;
  border: 1px solid #e0e6e2;
  border-radius: 24px;
  color: #172237;
  text-align: left;
  background: linear-gradient(148deg, #fff 36%, var(--category-wash, #f4f8f5) 100%);
  box-shadow: 0 7px 19px rgba(29, 60, 40, 0.06);
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.narrow-bridge-breeder-card:hover,
.narrow-bridge-breeder-card:focus-visible {
  z-index: 1;
  border-color: var(--category-accent, #236f49);
  outline: none;
  box-shadow: 0 11px 24px rgba(29, 75, 48, 0.14);
  transform: translateY(-2px);
}

.narrow-bridge-breeder-card.female-mature { --category-accent: #a34b84; --category-wash: #fff2f8; }
.narrow-bridge-breeder-card.female-laying { --category-accent: #df7f26; --category-wash: #fff7e8; }
.narrow-bridge-breeder-card.female-waiting { --category-accent: #7c6bdd; --category-wash: #f4f1ff; }
.narrow-bridge-breeder-card.male-mature { --category-accent: #176f4a; --category-wash: #eef9f2; }
.narrow-bridge-breeder-card.male-mating { --category-accent: #316da4; --category-wash: #eef7ff; }
.narrow-bridge-breeder-card.male-waiting { --category-accent: #64748b; --category-wash: #f3f6f8; }
.narrow-bridge-breeder-card.age-young { --category-accent: #4e8b66; --category-wash: #edf9f1; }
.narrow-bridge-breeder-card.age-growing { --category-accent: #538ab7; --category-wash: #eff7ff; }
.narrow-bridge-breeder-card.age-subadult { --category-accent: #8a6ac8; --category-wash: #f5f0ff; }
.narrow-bridge-breeder-card.all-total { --category-accent: #d08a26; --category-wash: #fff6e7; }

.narrow-bridge-breeder-card > strong {
  max-width: 100%;
  color: #667286;
  font-size: 16px;
  line-height: 1.25;
  white-space: nowrap;
}

.narrow-bridge-card-value {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 0;
}

.narrow-bridge-card-value b {
  color: #172033;
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.narrow-bridge-card-value small {
  color: #758196;
  font-size: 15px;
  font-weight: 700;
}

.narrow-bridge-breeder-card.has-total-breakdown {
  gap: 10px;
  justify-content: center;
}

.narrow-bridge-total-card-grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.narrow-bridge-total-card-grid > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
  padding-left: 8px;
  border-left: 2px solid color-mix(in srgb, var(--category-accent, #d08a26) 34%, transparent);
}

.narrow-bridge-total-card-grid small {
  color: #778296;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.narrow-bridge-total-card-grid b {
  min-width: 0;
  overflow: hidden;
  color: #172033;
  font-size: 22px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-overflow: ellipsis;
}

.narrow-bridge-category-view {
  max-width: 980px;
  margin: 0 auto;
}

.narrow-bridge-category-back {
  margin-bottom: 14px;
}

.narrow-bridge-category-panel {
  padding: 30px;
  border: 1px solid rgba(38, 91, 57, 0.14);
  border-radius: 32px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 48px rgba(29, 62, 41, 0.13);
}

.narrow-bridge-category-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.narrow-bridge-category-heading > strong {
  flex: 0 0 auto;
  padding: 9px 14px;
  border-radius: 999px;
  color: #5c4cf2;
  font-size: 15px;
  background: #f1edff;
}

.narrow-bridge-category-description {
  margin: 13px 0 20px;
  color: #748095;
  font-size: 14px;
  line-height: 1.6;
}

.narrow-bridge-category-search {
  display: flex;
  min-height: 52px;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  padding: 0 16px;
  border: 1px solid #dce4df;
  border-radius: 16px;
  background: #fff;
}

.narrow-bridge-category-search > span {
  color: #69768a;
  font-size: 25px;
  line-height: 1;
}

.narrow-bridge-category-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  color: #172033;
  font-size: 16px;
  background: transparent;
}

.narrow-bridge-total-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}

.narrow-bridge-total-summary.hidden {
  display: none !important;
}

.narrow-bridge-total-metric {
  display: flex;
  min-width: 0;
  min-height: 92px;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 14px;
  border: 1px solid #e1e7e3;
  border-radius: 17px;
  background: linear-gradient(145deg, #fff, #f6faf7);
}

.narrow-bridge-total-metric span {
  color: #6e7a8d;
  font-size: 13px;
  font-weight: 800;
}

.narrow-bridge-total-metric strong {
  color: #162138;
  font-size: 28px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.narrow-bridge-total-metric strong small {
  margin-left: 4px;
  color: #778397;
  font-size: 12px;
}

.narrow-bridge-total-metric.all { background: linear-gradient(145deg, #fff, #fff7e9); }
.narrow-bridge-total-metric.male { background: linear-gradient(145deg, #fff, #eef7ff); }
.narrow-bridge-total-metric.female { background: linear-gradient(145deg, #fff, #fff1f8); }
.narrow-bridge-total-metric.unknown { background: linear-gradient(145deg, #fff, #f3f5f7); }

.narrow-bridge-category-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.narrow-bridge-category-directory.male-turtle-card-directory {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.narrow-bridge-category-directory.female-turtle-card-directory {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.narrow-bridge-category-directory.compact-turtle-card-directory {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.narrow-bridge-category-directory .female-turtle-summary {
  display: block;
  min-width: 0;
  min-height: 220px;
  height: auto;
  padding: 13px 12px 11px;
  border: 1px solid #d9e4db;
  border-radius: 11px;
  color: #172036;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 7px 20px rgba(31, 68, 44, 0.04);
  cursor: pointer;
  text-align: left;
}

.narrow-bridge-category-directory .female-turtle-summary:hover,
.narrow-bridge-category-directory .female-turtle-summary:focus-visible {
  border-color: #7663f4;
  outline: none;
  color: #172036;
  background: rgba(255, 255, 255, 0.99);
  box-shadow: 0 11px 24px rgba(102, 86, 245, 0.13);
  transform: translateY(-1px);
}

.narrow-bridge-category-directory .female-turtle-summary .directory-item-title > strong,
.narrow-bridge-category-directory .female-turtle-summary .female-directory-metrics > span > strong,
.narrow-bridge-category-directory .female-turtle-summary .female-recent-months strong {
  color: #17264a;
}

.narrow-bridge-category-directory .female-turtle-summary .directory-item-title > strong {
  font-size: 16px;
  line-height: 1.15;
}

.narrow-bridge-category-directory .female-turtle-summary .female-directory-metrics > span > strong {
  margin-top: 3px;
  font-size: 17px;
  line-height: 1;
  text-align: left;
}

.narrow-bridge-category-directory .female-turtle-summary .female-recent-months strong {
  font-size: 13px;
  line-height: 1.15;
}

.narrow-bridge-category-directory .female-turtle-summary .female-recent-months .current small,
.narrow-bridge-category-directory .female-turtle-summary .female-recent-months .current strong {
  color: #6753f5;
}

.male-turtle-card-directory > .male-directory-rule {
  grid-column: 1 / -1;
}

.narrow-bridge-category-directory .male-turtle-summary {
  display: block;
  min-width: 0;
  min-height: 218px;
  padding: 19px 10px 13px;
  border: 1px solid #d9e4db;
  border-radius: 15px;
  color: #172036;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 7px 20px rgba(31, 68, 44, 0.04);
  cursor: pointer;
  text-align: center;
}

.narrow-bridge-category-directory .male-turtle-summary:hover,
.narrow-bridge-category-directory .male-turtle-summary:focus-visible {
  border-color: #7663f4;
  outline: none;
  box-shadow: 0 11px 24px rgba(102, 86, 245, 0.13);
  transform: translateY(-1px);
}

.narrow-bridge-directory-item {
  display: grid;
  min-width: 0;
  min-height: 118px;
  grid-template-columns: 42px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 11px;
  padding: 16px;
  border: 1px solid #dfe7e1;
  border-radius: 19px;
  color: #142037;
  text-align: left;
  background: linear-gradient(145deg, #fff, #f7faf7);
  cursor: pointer;
}

.narrow-bridge-directory-item:hover,
.narrow-bridge-directory-item:focus-visible {
  border-color: #27724c;
  outline: none;
  box-shadow: 0 8px 20px rgba(28, 72, 45, 0.11);
}

.narrow-bridge-directory-symbol {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  font-size: 22px;
  font-weight: 900;
}

.narrow-bridge-directory-symbol.female {
  color: #c44f8b;
  background: #fcecf5;
}

.narrow-bridge-directory-symbol.male {
  color: #267ab5;
  background: #eaf5fc;
}

.narrow-bridge-directory-symbol.unknown {
  color: #976400;
  background: #fff3d9;
}

.narrow-bridge-directory-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.narrow-bridge-directory-copy .mother-fertility-stars {
  min-height: 12px;
  justify-content: flex-start;
  font-size: 12px;
  letter-spacing: 0.5px;
}

.narrow-bridge-directory-copy .turtle-directory-ratings {
  display: grid;
  min-height: 26px;
  justify-content: flex-start;
  justify-items: start;
  align-content: start;
  gap: 1px;
}

.narrow-bridge-directory-copy .turtle-mating-hearts {
  min-height: 12px;
  font-size: 13px;
}

.narrow-bridge-directory-copy strong,
.narrow-bridge-directory-copy small,
.narrow-bridge-directory-copy em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.narrow-bridge-directory-copy strong {
  font-size: 18px;
}

.narrow-bridge-directory-copy small {
  color: #718078;
  font-size: 12px;
  font-weight: 700;
}

.narrow-bridge-directory-copy em {
  color: #677388;
  font-size: 12px;
  font-style: normal;
}

.narrow-bridge-directory-open {
  color: #176d49;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.narrow-bridge-category-empty {
  grid-column: 1 / -1;
}

@media (max-width: 720px) {
  .narrow-bridge-breeder-panel {
    margin-top: 12px;
    padding: 16px 14px 15px;
    border-radius: 24px;
  }

  .narrow-bridge-breeder-head {
    align-items: center;
    gap: 8px;
    margin-bottom: 13px;
  }

  .narrow-bridge-breeder-head p {
    display: none;
  }

  .narrow-bridge-breeder-head h3 {
    font-size: 19px;
  }

  .narrow-bridge-breeder-head > span {
    font-size: 10px;
  }

  .narrow-bridge-breeder-grid {
    gap: 8px;
  }

  .narrow-bridge-breeder-card {
    min-height: 0;
    aspect-ratio: 1 / 1;
    gap: 9px;
    padding: 10px 8px;
    border-radius: 18px;
  }

  .narrow-bridge-breeder-card > strong {
    max-width: 100%;
    font-size: 12px;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .narrow-bridge-card-value {
    gap: 4px;
    margin-top: 0;
  }

  .narrow-bridge-card-value b {
    font-size: 30px;
  }

  .narrow-bridge-card-value small {
    font-size: 11px;
  }

  .narrow-bridge-breeder-card.has-total-breakdown {
    gap: 5px;
    padding: 9px 7px;
  }

  .narrow-bridge-total-card-grid {
    gap: 6px 4px;
  }

  .narrow-bridge-total-card-grid > span {
    gap: 1px;
    padding-left: 5px;
    border-left-width: 1px;
  }

  .narrow-bridge-total-card-grid small {
    font-size: 9px;
  }

  .narrow-bridge-total-card-grid b {
    font-size: 17px;
  }

  .narrow-bridge-category-view {
    padding-bottom: 78px;
  }

  .narrow-bridge-category-panel {
    padding: 19px 14px 18px;
    border-radius: 24px;
  }

  .narrow-bridge-category-heading {
    gap: 10px;
  }

  .narrow-bridge-category-heading h2 {
    font-size: 24px;
  }

  .narrow-bridge-category-heading > strong {
    padding: 7px 11px;
    font-size: 13px;
  }

  .narrow-bridge-category-description {
    margin: 10px 0 14px;
    font-size: 12px;
  }

  .narrow-bridge-category-search {
    min-height: 48px;
    margin-bottom: 12px;
    padding: 0 12px;
    border-radius: 14px;
  }

  .narrow-bridge-category-search input {
    font-size: 14px;
  }

  .narrow-bridge-total-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
  }

  .narrow-bridge-total-metric {
    min-height: 76px;
    gap: 6px;
    padding: 11px 12px;
    border-radius: 14px;
  }

  .narrow-bridge-total-metric span {
    font-size: 11px;
  }

  .narrow-bridge-total-metric strong {
    font-size: 25px;
  }

  .narrow-bridge-category-directory {
    gap: 8px;
  }

  .narrow-bridge-category-directory.male-turtle-card-directory {
    gap: 8px;
  }

  .narrow-bridge-category-directory .male-turtle-summary {
    min-height: 205px;
    padding: 16px 7px 11px;
  }

  .narrow-bridge-category-directory .female-turtle-summary {
    min-height: 211px;
    padding: 12px 10px 10px;
  }

  .narrow-bridge-category-directory .female-turtle-summary .directory-item-title > strong {
    font-size: 14px;
  }

  .narrow-bridge-category-directory .female-turtle-summary .female-directory-metrics > span > strong {
    font-size: 16px;
  }

  .narrow-bridge-category-directory .female-turtle-summary .female-recent-months strong {
    font-size: 12px;
  }

  .narrow-bridge-directory-item {
    min-height: 122px;
    grid-template-columns: 31px minmax(0, 1fr) 22px;
    gap: 7px;
    padding: 11px 9px;
    border-radius: 15px;
  }

  .narrow-bridge-directory-symbol {
    width: 31px;
    height: 31px;
    border-radius: 10px;
    font-size: 17px;
  }

  .narrow-bridge-directory-copy strong {
    font-size: 15px;
  }

  .narrow-bridge-directory-copy .mother-fertility-stars {
    min-height: 11px;
    font-size: 11px;
  }

  .narrow-bridge-directory-copy .turtle-directory-ratings {
    min-height: 24px;
    gap: 1px;
  }

  .narrow-bridge-directory-copy .turtle-mating-hearts {
    min-height: 11px;
    font-size: 12px;
  }

  .narrow-bridge-directory-copy small,
  .narrow-bridge-directory-copy em {
    font-size: 10px;
  }

  .narrow-bridge-directory-open {
    font-size: 9px;
  }
}

/* v90 窄桥公龟目录：紧凑搜索栏、规则提示与数据卡片 */
.narrow-bridge-category-search {
  min-height: 44px;
  flex-direction: row;
  gap: 8px;
  margin-bottom: 12px;
  padding: 0 13px;
  border-radius: 13px;
}

.narrow-bridge-category-search > span {
  flex: 0 0 auto;
  font-size: 21px;
}

.narrow-bridge-category-search input {
  height: 42px;
  min-height: 0;
  padding: 0;
  font-size: 14px;
}

.male-directory-rule {
  min-height: 36px;
  gap: 6px;
  padding: 7px 10px;
}

.male-directory-rule strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.male-directory-rule strong b {
  color: #ca4050;
  font-size: inherit;
  white-space: nowrap;
}

.male-directory-rule strong > span {
  color: #e04452;
  font-size: 16px;
  line-height: 1;
}

.narrow-bridge-category-directory .male-turtle-summary {
  min-height: 168px;
  padding: 10px 7px 9px;
}

.narrow-bridge-category-directory .male-directory-title {
  min-height: 35px;
  gap: 2px;
  margin-bottom: 4px;
}

.narrow-bridge-category-directory .male-directory-total {
  gap: 2px;
  margin-top: 2px;
}

.narrow-bridge-category-directory .male-directory-total strong {
  font-size: 34px;
}

.narrow-bridge-category-directory .male-directory-recent {
  margin-top: 8px;
  padding: 6px 7px;
}

@media (max-width: 720px) {
  .narrow-bridge-category-search {
    min-height: 44px;
    margin-bottom: 10px;
    padding: 0 11px;
    border-radius: 12px;
  }

  .narrow-bridge-category-search input {
    height: 42px;
    min-height: 0;
    padding: 0;
    font-size: 13px;
  }

  .male-turtle-card-directory > .male-directory-rule {
    min-height: 34px;
    padding: 6px 8px;
    font-size: 10px;
  }

  .male-turtle-card-directory > .male-directory-rule strong > span {
    font-size: 16px;
  }

  .narrow-bridge-category-directory .male-turtle-summary {
    min-height: 166px;
    padding: 9px 6px 8px;
  }

  .narrow-bridge-category-directory .male-directory-title {
    min-height: 34px;
    margin-bottom: 3px;
  }

  .narrow-bridge-category-directory .male-directory-total {
    margin-top: 1px;
  }

  .narrow-bridge-category-directory .male-directory-total strong {
    font-size: 32px;
  }

  .narrow-bridge-category-directory .male-directory-recent {
    margin-top: 7px;
    padding: 6px;
  }
}

/* v102: narrow-bridge breeding archive dashboard */
.narrow-bridge-breeder-panel {
  position: relative;
  padding: 28px 26px 30px;
  overflow: hidden;
  border: 1px solid rgba(43, 129, 74, 0.22);
  border-radius: 30px;
  background:
    radial-gradient(circle at 94% 4%, rgba(132, 193, 139, 0.13), transparent 30%),
    linear-gradient(155deg, rgba(255, 255, 252, 0.98), rgba(247, 252, 245, 0.96));
  box-shadow: 0 18px 46px rgba(26, 73, 42, 0.12);
}

.narrow-bridge-breeder-head {
  align-items: center;
  margin-bottom: 24px;
}

.narrow-bridge-breeder-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.narrow-bridge-title-rule {
  width: 7px;
  height: 54px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: linear-gradient(#4fb76d, #72c689);
  box-shadow: 0 0 0 1px rgba(31, 124, 64, 0.08);
}

.narrow-bridge-breeder-title > img {
  width: 58px;
  height: 58px;
  flex: 0 0 auto;
  object-fit: contain;
  filter: saturate(0.68) brightness(0.72);
}

.narrow-bridge-breeder-head h3 {
  color: #0d2b3f;
  font-size: clamp(27px, 3.25vw, 43px);
  font-weight: 900;
  letter-spacing: 0.015em;
}

.narrow-bridge-breeder-open-all {
  display: inline-flex;
  min-height: 44px;
  flex: 0 0 auto;
  align-items: center;
  gap: 13px;
  padding: 8px 4px 8px 12px;
  border: 0;
  color: #1d673e;
  font: inherit;
  font-size: 17px;
  font-weight: 750;
  background: transparent;
  cursor: pointer;
}

.narrow-bridge-breeder-open-all > img {
  width: 35px;
  height: 35px;
  padding: 7px;
  border: 1px solid rgba(31, 112, 62, 0.64);
  border-radius: 8px;
  filter: sepia(1) saturate(1.4) hue-rotate(90deg) brightness(0.68);
}

.narrow-bridge-breeder-open-all:hover,
.narrow-bridge-breeder-open-all:focus-visible {
  outline: none;
  color: #0d7a3b;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.narrow-bridge-breeder-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}

.narrow-bridge-breeder-card {
  min-height: 0;
  gap: 12px;
  padding: 20px;
  border: 1px solid rgba(73, 155, 95, 0.37);
  border-radius: 22px;
  color: #0d2b3f;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(245, 251, 244, 0.94));
  box-shadow: 0 8px 22px rgba(38, 86, 50, 0.055);
}

.narrow-bridge-breeder-card[data-category-card="age1To12"],
.narrow-bridge-breeder-card[data-category-card="age12To24"],
.narrow-bridge-breeder-card[data-category-card="age24To36"] {
  grid-column: span 4;
  min-height: 150px;
  align-items: flex-start;
  justify-content: space-between;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  grid-column: 1 / span 3;
}

.narrow-bridge-breeder-card[data-category-card="all"] {
  grid-column: 4 / span 6;
}

.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  grid-column: 10 / span 3;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"],
.narrow-bridge-breeder-card[data-category-card="all"],
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  grid-row: 2;
  min-height: 285px;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
.narrow-bridge-breeder-card[data-category-card="layingFemale"] {
  grid-column: span 6;
  min-height: 170px;
}

.narrow-bridge-card-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 11px;
}

.narrow-bridge-card-heading > img {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  padding: 7px;
  border: 1px solid rgba(54, 145, 81, 0.3);
  border-radius: 12px;
  object-fit: contain;
  filter: sepia(1) saturate(1.25) hue-rotate(86deg) brightness(0.66);
  background: rgba(246, 252, 245, 0.82);
}

.narrow-bridge-card-heading > img.is-turtle {
  width: 90px;
  height: 72px;
  padding: 0;
  border: 0;
  border-radius: 0;
  filter: saturate(0.72) brightness(0.68);
  background: transparent;
}

.narrow-bridge-card-heading > strong,
.narrow-bridge-total-card-title > strong {
  color: #183247;
  font-size: 20px;
  line-height: 1.2;
}

.narrow-bridge-card-value b {
  color: #0d2b3f;
  font-size: clamp(48px, 6.7vw, 76px);
  font-weight: 900;
}

.narrow-bridge-card-value small {
  color: #17374a;
  font-size: 18px;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"],
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  align-items: center;
  justify-content: center;
  text-align: center;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading,
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-heading {
  flex-direction: column;
  gap: 10px;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value,
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value {
  width: 100%;
  justify-content: center;
  padding-top: 19px;
  border-top: 1px dashed rgba(49, 129, 72, 0.34);
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
.narrow-bridge-breeder-card[data-category-card="layingFemale"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, 0.9fr);
  align-items: center;
  justify-content: stretch;
  text-align: left;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-heading,
.narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading {
  align-items: center;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value,
.narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value {
  justify-content: center;
  padding-left: 22px;
  border-left: 1px dashed rgba(49, 129, 72, 0.34);
}

.narrow-bridge-breeder-card.has-total-breakdown {
  position: relative;
  align-items: stretch;
  justify-content: flex-start;
  gap: 13px;
  padding: 22px;
  border-color: rgba(38, 151, 77, 0.72);
  border-radius: 9px;
  background:
    linear-gradient(135deg, rgba(250, 255, 249, 0.99), rgba(240, 249, 239, 0.96));
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.5), 0 12px 30px rgba(33, 97, 51, 0.1);
}

.narrow-bridge-total-card-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.narrow-bridge-total-card-title > img {
  width: 39px;
  height: 39px;
  padding: 6px;
  border: 1px solid rgba(49, 144, 74, 0.52);
  border-radius: 50%;
  filter: sepia(1) saturate(1.25) hue-rotate(86deg) brightness(0.66);
}

.narrow-bridge-total-card-title > strong {
  font-size: 23px;
  font-weight: 900;
}

.narrow-bridge-total-card-grid {
  flex: 1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border: 1px solid rgba(67, 146, 89, 0.22);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.54);
}

.narrow-bridge-total-card-grid > span {
  display: grid;
  min-height: 84px;
  grid-template-columns: 25px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  gap: 3px 7px;
  padding: 10px 12px;
  border: 0;
}

.narrow-bridge-total-card-grid > span:nth-child(odd) {
  border-right: 1px dotted rgba(48, 128, 71, 0.38);
}

.narrow-bridge-total-card-grid > span:nth-child(-n + 2) {
  border-bottom: 1px dotted rgba(48, 128, 71, 0.38);
}

.narrow-bridge-total-card-grid img {
  width: 24px;
  height: 24px;
  grid-row: 1 / span 2;
  align-self: start;
  object-fit: contain;
}

.narrow-bridge-total-card-grid small {
  color: #19364a;
  font-size: 13px;
  line-height: 1.1;
}

.narrow-bridge-total-card-grid b {
  color: #0d2b3f;
  font-size: clamp(30px, 4.1vw, 46px);
  font-weight: 900;
  line-height: 0.95;
}

@media (max-width: 720px) {
  .narrow-bridge-breeder-panel {
    margin-top: 12px;
    padding: 16px 12px 18px;
    border-radius: 25px;
  }

  .narrow-bridge-breeder-head {
    gap: 6px;
    margin-bottom: 14px;
  }

  .narrow-bridge-breeder-title {
    gap: 7px;
  }

  .narrow-bridge-title-rule {
    width: 4px;
    height: 35px;
  }

  .narrow-bridge-breeder-title > img {
    width: 34px;
    height: 34px;
  }

  .narrow-bridge-breeder-head h3 {
    font-size: 21px;
  }

  .narrow-bridge-breeder-open-all {
    min-height: 40px;
    gap: 6px;
    padding: 4px 0 4px 5px;
    font-size: 11px;
    white-space: nowrap;
  }

  .narrow-bridge-breeder-open-all > img {
    width: 28px;
    height: 28px;
    padding: 5px;
  }

  .narrow-bridge-breeder-grid {
    gap: 8px;
  }

  .narrow-bridge-breeder-card {
    aspect-ratio: auto;
    gap: 7px;
    padding: 10px 9px;
    border-radius: 15px;
  }

  .narrow-bridge-breeder-card[data-category-card="age1To12"],
  .narrow-bridge-breeder-card[data-category-card="age12To24"],
  .narrow-bridge-breeder-card[data-category-card="age24To36"] {
    min-height: 94px;
  }

  .narrow-bridge-card-heading {
    gap: 5px;
  }

  .narrow-bridge-card-heading > img {
    width: 27px;
    height: 27px;
    padding: 5px;
    border-radius: 8px;
  }

  .narrow-bridge-card-heading > strong,
  .narrow-bridge-total-card-title > strong {
    font-size: 12px;
    white-space: normal;
  }

  .narrow-bridge-card-value {
    gap: 3px;
  }

  .narrow-bridge-card-value b {
    font-size: 34px;
  }

  .narrow-bridge-card-value small {
    font-size: 10px;
  }

  .narrow-bridge-breeder-card[data-category-card="matingMale"],
  .narrow-bridge-breeder-card[data-category-card="all"],
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
    min-height: 176px;
  }

  .narrow-bridge-card-heading > img.is-turtle {
    width: 56px;
    height: 48px;
  }

  .narrow-bridge-breeder-card[data-category-card="matingMale"],
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
    padding: 9px 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-heading {
    gap: 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value {
    padding-top: 10px;
  }

  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value b,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value b {
    font-size: 35px;
  }

  .narrow-bridge-breeder-card.has-total-breakdown {
    gap: 7px;
    padding: 10px 7px 8px;
    border-radius: 8px;
  }

  .narrow-bridge-total-card-title {
    gap: 5px;
  }

  .narrow-bridge-total-card-title > img {
    width: 27px;
    height: 27px;
    padding: 4px;
  }

  .narrow-bridge-total-card-title > strong {
    font-size: 15px;
  }

  .narrow-bridge-total-card-grid {
    border-radius: 10px;
  }

  .narrow-bridge-total-card-grid > span {
    min-height: 62px;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 2px 3px;
    padding: 6px 4px;
  }

  .narrow-bridge-total-card-grid img {
    width: 15px;
    height: 15px;
  }

  .narrow-bridge-total-card-grid small {
    font-size: 9px;
  }

  .narrow-bridge-total-card-grid b {
    font-size: 22px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
  .narrow-bridge-breeder-card[data-category-card="layingFemale"] {
    min-height: 104px;
    grid-template-columns: minmax(0, 1.15fr) minmax(72px, 0.85fr);
    padding: 10px 9px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-heading,
  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading {
    flex-direction: column;
    align-items: flex-start;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value,
  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value {
    padding-left: 9px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value b,
  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value b {
    font-size: 38px;
  }
}

/* v103 final override: exact card order and freshwater turtle icons */
.narrow-bridge-breeder-caption {
  margin: 0;
  flex: 0 0 auto;
  color: #1d673e;
  font-size: 17px;
  font-weight: 750;
  line-height: 1.2;
  white-space: nowrap;
}

.narrow-bridge-breeder-title > img {
  object-fit: contain;
  filter: none;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] {
  grid-column: 1 / span 3;
  grid-row: 2;
}

.narrow-bridge-breeder-card[data-category-card="all"] {
  grid-column: 4 / span 6;
  grid-row: 2;
}

.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  grid-column: 10 / span 3;
  grid-row: 2;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
.narrow-bridge-breeder-card[data-category-card="all"],
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  min-height: 285px;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"] {
  grid-column: 1 / span 6;
  grid-row: 3;
}

.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  grid-column: 7 / span 6;
  grid-row: 3;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"],
.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  min-height: 170px;
}

.narrow-bridge-age-icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(48, 139, 73, 0.35);
  background: rgba(249, 253, 247, 0.92);
  clip-path: polygon(25% 5%, 75% 5%, 98% 50%, 75% 95%, 25% 95%, 2% 50%);
}

.narrow-bridge-age-icon > img {
  width: 25px;
  height: 25px;
  object-fit: contain;
  filter: sepia(1) saturate(1.2) hue-rotate(86deg) brightness(0.62);
}

.narrow-bridge-turtle-icon {
  position: relative;
  display: block;
  width: 110px;
  height: 76px;
  flex: 0 0 auto;
}

.narrow-bridge-turtle-base {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 18px 10px;
  text-align: center;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-heading,
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-heading {
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value,
.narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value {
  width: 100%;
  justify-content: center;
  padding: 18px 0 0;
  border-top: 1px dashed rgba(49, 129, 72, 0.34);
  border-left: 0;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"],
.narrow-bridge-breeder-card[data-category-card="matingMale"] {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(118px, 0.9fr);
  align-items: center;
  justify-content: stretch;
  padding: 18px 22px;
  text-align: left;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading,
.narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading {
  flex-direction: row;
  align-items: center;
  gap: 12px;
}

.narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value,
.narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value {
  width: auto;
  justify-content: center;
  padding: 0 0 0 22px;
  border-top: 0;
  border-left: 1px dashed rgba(49, 129, 72, 0.34);
}

@media (max-width: 720px) {
  .narrow-bridge-breeder-caption {
    display: block !important;
    width: max-content;
    min-width: max-content;
    max-width: none;
    overflow: visible;
    flex-shrink: 0;
    font-size: 10px;
    letter-spacing: -0.2px;
    text-overflow: clip;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
  .narrow-bridge-breeder-card[data-category-card="all"],
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
    min-height: 176px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"],
  .narrow-bridge-breeder-card[data-category-card="matingMale"] {
    min-height: 104px;
  }

  .narrow-bridge-age-icon {
    width: 29px;
    height: 29px;
  }

  .narrow-bridge-age-icon > img {
    width: 17px;
    height: 17px;
  }

  .narrow-bridge-turtle-icon {
    width: 58px;
    height: 45px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"],
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] {
    padding: 9px 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-heading,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-heading {
    gap: 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value {
    padding-top: 10px;
  }

  .narrow-bridge-breeder-card[data-category-card="notLayingFemale"] .narrow-bridge-card-value b,
  .narrow-bridge-breeder-card[data-category-card="notMatingMale"] .narrow-bridge-card-value b {
    font-size: 35px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"],
  .narrow-bridge-breeder-card[data-category-card="matingMale"] {
    grid-template-columns: minmax(0, 1.18fr) minmax(68px, 0.82fr);
    padding: 9px 8px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-heading,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-heading {
    gap: 5px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value {
    padding-left: 8px;
  }

  .narrow-bridge-breeder-card[data-category-card="layingFemale"] .narrow-bridge-card-value b,
  .narrow-bridge-breeder-card[data-category-card="matingMale"] .narrow-bridge-card-value b {
    font-size: 36px;
  }
}

/* v143 final cascade: customer-only centered home navigation */
/* v193 final archive guard: keep selected natural-ledger design above legacy archive rules. */
#matingGroupDetailView:has(.archive-record-heading) { width: min(100%, 800px); max-width: 800px; }
.turtle-archive-preview:has(.archive-record-heading) { gap: 16px; width: min(100%, 768px); padding: 26px 34px 30px; border-radius: 0 0 28px 28px; background: #fbf9f1; }
.turtle-archive-preview:has(.archive-record-heading)::before { height: 250px; opacity: 0.055; }
.archive-record-heading { grid-template-columns: minmax(0, 1fr) auto; min-height: 116px; }
.archive-record-back { display: none; }
.archive-record-title { text-align: left; }
.archive-record-title h1 { color: #07452e; font-size: clamp(42px, 7vw, 60px); line-height: .98; overflow-wrap: normal; word-break: keep-all; white-space: nowrap; }
.archive-record-title p { margin-top: 12px; color: #47745f; font-size: 19px; }
.archive-record-nav { gap: 8px; }
.archive-record-nav > button, .archive-more-actions > summary { width: 48px; height: 48px; color: #075c3a; }
.archive-record-hero { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 18px; }
.archive-record-photo figure, .archive-record-photo-empty { min-height: 430px; }
.archive-identity-row { grid-template-columns: 76px minmax(0, 1fr); min-height: 78px; }
.archive-identity-row span { color: #47775e; font-size: 18px; }
.archive-identity-row strong { color: #13223b; font-size: clamp(22px, 3.4vw, 30px); white-space: nowrap; }
.archive-primary-actions { gap: 12px; margin-top: 15px; }
.archive-primary-actions button { min-height: 64px; border: 2px solid #0f6741; border-radius: 13px; color: #0d5e3d; background: #fbf9f1; font-size: 21px; }
.archive-primary-actions button.primary { background: #176b43; }
.archive-record-overview, .archive-record-details, .archive-record-history { border-color: #dfe4dc; border-radius: 20px; background: rgba(255,255,255,.75); box-shadow: none; }
.archive-record-overview { padding: 20px 24px 10px; }
.archive-record-section-title h2 { color: #0a5a38; font-size: 29px; }
.archive-record-stat { grid-template-columns: 46px minmax(0, 1fr); grid-template-rows: auto auto; gap: 2px 12px; min-height: 110px; padding: 18px 20px; }
.archive-record-stat > img { grid-row: 1 / 3; width: 38px; height: 38px; object-fit: contain; }
.archive-record-stat span { color: #426d59; }
.archive-record-stat strong { color: #12213a; }
.archive-record-details { padding: 0; }
.archive-record-link { grid-template-columns: 42px minmax(0, 1fr) 28px; min-height: 90px; }
.archive-record-link > img { width: 34px; height: 34px; object-fit: contain; }
.archive-record-link strong { color: #0b5536; font-size: 21px; }
.archive-record-history { padding: 20px 24px 24px; }
.archive-record-history .archive-section-head h4 { display: flex; align-items: center; gap: 8px; font-size: 23px; }
.archive-record-history .archive-section-head h4 > img { width: 28px; height: 28px; }
.archive-record-history .archive-history-strip { grid-auto-columns: calc((100% - 14px) / 2); gap: 14px; }

@media (max-width: 640px) {
  .turtle-archive-preview:has(.archive-record-heading) { gap: 11px; padding: 14px 16px 22px; border-radius: 0 0 20px 20px; }
  .archive-record-heading { min-height: 84px; }
  .archive-record-title h1 { font-size: clamp(33px, 10.5vw, 45px); }
  .archive-record-title p { margin-top: 7px; font-size: 14px; }
  .archive-record-nav > button, .archive-more-actions > summary { width: 38px; height: 44px; font-size: 34px; }
  .archive-record-hero { gap: 9px; }
  .archive-record-photo figure, .archive-record-photo-empty { min-height: clamp(246px, 71vw, 310px); }
  .archive-identity-row { grid-template-columns: 48px minmax(0, 1fr); min-height: clamp(47px, 14vw, 59px); }
  .archive-identity-row span { font-size: 12px; }
  .archive-identity-row strong { font-size: clamp(14px, 4.2vw, 18px); }
  .archive-primary-actions { gap: 6px; margin-top: 8px; }
  .archive-primary-actions button { min-height: 46px; font-size: 15px; }
  .archive-record-overview { padding: 13px 12px 5px; }
  .archive-record-section-title h2 { font-size: 22px; }
  .archive-record-stat { grid-template-columns: 32px minmax(0, 1fr); gap: 2px 7px; min-height: 82px; padding: 10px 8px; }
  .archive-record-stat > img { width: 27px; height: 27px; }
  .archive-record-stat span { font-size: 10px; }
  .archive-record-stat strong { font-size: clamp(14px, 4.3vw, 18px); }
  .archive-record-link { grid-template-columns: 34px minmax(0, 1fr) 22px; min-height: 72px; padding: 11px 13px; }
  .archive-record-link > img { width: 27px; height: 27px; }
  .archive-record-link strong { font-size: 16px; }
  .archive-record-history { padding: 14px 13px 16px; }
  .archive-record-history .archive-section-head h4 { font-size: 17px; }
  .archive-record-history .archive-section-head h4 > img { width: 22px; height: 22px; }
}

/* v193 QA polish: one continuous archival sheet, with a unified icon tone. */
.archive-record-overview {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.archive-record-details {
  border-right: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
}

.archive-record-history {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.archive-record-stat > img,
.archive-record-link > img,
.archive-record-history .archive-section-head h4 > img {
  filter: brightness(0) saturate(100%) invert(31%) sepia(24%) saturate(1072%) hue-rotate(102deg) brightness(89%) contrast(91%);
}

/* v194 turtle editor + permanent identity registry */
.turtle-editor-view {
  width: min(100%, 800px);
  padding: 0 16px 104px;
  color: #10281f;
  background: #fbf9f1;
}

.turtle-editor-heading {
  min-height: 132px;
  padding-top: 43px;
}

.turtle-editor-heading::before {
  inset: 0 -18px;
  background:
    linear-gradient(180deg, rgba(251, 249, 241, 0.64), rgba(251, 249, 241, 0.92)),
    url("./assets/home-v33/rainforest-background-v42.png") center 18% / cover no-repeat;
}

.turtle-editor-heading p,
.turtle-editor-back {
  display: none;
}

.turtle-editor-heading h2 {
  color: #083f2a;
  font-size: clamp(34px, 6vw, 48px);
  line-height: 1.05;
}

.turtle-editor-panel {
  padding: 28px 30px 32px;
  border: 0;
  border-radius: 28px 28px 0 0;
  background: rgba(253, 252, 247, 0.98);
  box-shadow: none;
}

#newMatingTurtleView .turtle-editor-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 28px;
}

#newMatingTurtleView:not(.is-editing) .turtle-editor-form.is-context-locked > .turtle-context-field {
  display: none;
}

#newMatingTurtleView .turtle-editor-photo {
  grid-template-columns: minmax(220px, 0.9fr) minmax(250px, 1.1fr);
  gap: 28px;
  padding-bottom: 28px;
  border-bottom: 1px dashed #d7dccf;
}

#newMatingTurtleView .turtle-editor-photo .update-photo-drop-box {
  aspect-ratio: 1;
  border-radius: 22px;
  background: #f1f4ed;
}

#newMatingTurtleView .turtle-editor-photo .ghost-button {
  min-height: 72px;
  border: 1px solid #a9b9aa;
  border-radius: 18px;
  color: #17613d;
  background: #fffefa;
  font-size: 19px;
}

#newMatingTurtleView .turtle-editor-photo .ghost-button:focus-visible,
.turtle-state-options input:focus-visible + span,
.turtle-identity-field button:focus-visible,
.turtle-identity-lookup :is(input, button):focus-visible {
  outline: 3px solid rgba(27, 114, 70, 0.28);
  outline-offset: 3px;
}

.turtle-editor-photo-count {
  display: flex;
  min-height: 44px;
  align-items: center;
  color: #496f5d;
  font-size: 16px;
  font-weight: 800;
}

#newMatingTurtleView .turtle-editor-form > label {
  gap: 10px;
  padding-left: 14px;
  color: #153126;
  font-size: 18px;
}

#newMatingTurtleView .turtle-editor-form > label::before {
  background: #2d874f;
}

#newMatingTurtleView .turtle-editor-form > label.wide,
#newMatingTurtleView .turtle-editor-form > .wide {
  grid-column: 1 / -1;
}

#newMatingTurtleView .turtle-editor-form input,
#newMatingTurtleView .turtle-editor-form select {
  min-height: 62px;
  border: 1px solid #cdd7cc;
  border-radius: 17px;
  color: #123829;
  background: #fffefa;
  box-shadow: none;
  font-size: 19px;
}

.turtle-state-field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.turtle-state-field legend {
  position: relative;
  margin-bottom: 11px;
  padding-left: 14px;
  color: #153126;
  font-size: 18px;
  font-weight: 800;
}

.turtle-state-field legend::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 4px;
  height: 22px;
  border-radius: 999px;
  background: #2d874f;
}

.turtle-state-options {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-height: 58px;
  overflow: hidden;
  border: 1px solid #bfcbbf;
  border-radius: 17px;
  background: #fffefa;
}

.turtle-state-options label {
  position: relative;
  min-width: 0;
  cursor: pointer;
}

.turtle-state-options label + label {
  border-left: 1px solid #d6ddd4;
}

.turtle-state-options input {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  opacity: 0;
}

.turtle-state-options span {
  display: grid;
  min-height: 58px;
  place-items: center;
  color: #143a2a;
  font-size: 18px;
  font-weight: 850;
}

.turtle-state-options input:checked + span {
  color: #0f5b39;
  background: #edf3e8;
  box-shadow: inset 0 0 0 2px #2f7347;
}

.turtle-state-options .death span {
  color: #bd3535;
}

.turtle-state-options .death input:checked + span {
  color: #a92929;
  background: #fff0ee;
  box-shadow: inset 0 0 0 2px #bd5b55;
}

.turtle-state-options .sold span {
  color: #9a5f16;
}

.turtle-state-options .sold input:checked + span {
  color: #7f4b0c;
  background: #fff6df;
  box-shadow: inset 0 0 0 2px #b77a28;
}

.turtle-state-options input:disabled + span {
  color: #7c8580;
  background: #f2f3f0;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.52;
}

.turtle-state-options label:has(input:disabled) {
  cursor: not-allowed;
}

.turtle-state-options input:checked:disabled + span {
  color: #34483e;
  background: #e6eae4;
  box-shadow: inset 0 0 0 2px #8c9a90;
  opacity: 0.82;
}

.turtle-state-hint {
  display: block;
  margin-top: 9px;
  color: #68766f;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
}

.turtle-state-hint.is-warning {
  color: #9b5c12;
}

.turtle-state-hint.is-locked {
  color: #a12d34;
  font-weight: 800;
}

#matingGroupDetailView .turtle-lifecycle-badge {
  display: inline-flex;
  width: fit-content;
  min-height: 24px;
  margin: 0;
  padding: 3px 8px;
  align-items: center;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

#matingGroupDetailView .turtle-lifecycle-badge--dead {
  color: #a12d34;
  background: #fff0ee;
}

#matingGroupDetailView .turtle-lifecycle-badge--sold {
  color: #87520f;
  background: #fff3d5;
}

.turtle-identity-field {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 112px;
  padding: 17px 20px;
  border: 1px solid #bdc9ad;
  border-radius: 17px;
  background: #f1f2e7;
}

.turtle-identity-field > img {
  width: 28px;
  height: 28px;
  filter: brightness(0) saturate(100%) invert(31%) sepia(24%) saturate(1072%) hue-rotate(102deg) brightness(89%) contrast(91%);
}

.turtle-identity-field > span {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.turtle-identity-field strong {
  color: #284b3c;
  font-size: 15px;
}

.turtle-identity-field code {
  overflow-wrap: anywhere;
  color: #16553a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: clamp(18px, 3vw, 25px);
  font-weight: 800;
  letter-spacing: 0.03em;
}

.turtle-identity-field small {
  color: #718476;
  font-size: 13px;
  font-weight: 700;
}

.turtle-identity-field button {
  min-width: 54px;
  min-height: 44px;
  border: 1px solid #a8b9a6;
  border-radius: 12px;
  color: #17613d;
  background: #fffefa;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.turtle-identity-field.is-pending code {
  color: #6f8075;
  font-family: inherit;
  font-size: 18px;
}

#newMatingTurtleView .turtle-editor-form > .primary-button {
  min-height: 70px;
  border-radius: 16px;
  background: #236b3b;
  box-shadow: 0 10px 24px rgba(25, 91, 53, 0.16);
  font-size: 22px;
}

.turtle-identity-lookup {
  display: grid;
  gap: 12px;
  margin: 0 0 24px;
  padding: 18px 20px;
  border: 1px solid #d2ded2;
  border-radius: 20px;
  background: rgba(250, 251, 246, 0.94);
}

#matingView:not(.farm-directory-mode) .turtle-identity-lookup {
  display: none;
}

.turtle-identity-lookup > label {
  display: flex;
  gap: 12px;
  align-items: center;
}

.turtle-identity-lookup > label img {
  width: 32px;
  height: 32px;
}

.turtle-identity-lookup > label span {
  display: grid;
  gap: 2px;
}

.turtle-identity-lookup > label strong {
  color: #0f4f34;
  font-size: 18px;
}

.turtle-identity-lookup > label small,
.turtle-identity-lookup > p {
  color: #6c7e72;
  font-size: 13px;
  font-weight: 700;
}

.turtle-identity-lookup > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.turtle-identity-lookup input,
.turtle-identity-lookup button {
  min-height: 50px;
  border-radius: 14px;
  font: inherit;
}

.turtle-identity-lookup input {
  min-width: 0;
  padding: 0 15px;
  border: 1px solid #c6d1c7;
  color: #173d2e;
  background: #fff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 16px;
  text-transform: uppercase;
}

.turtle-identity-lookup button {
  padding: 0 20px;
  border: 0;
  color: #fff;
  background: #176b43;
  font-weight: 800;
  cursor: pointer;
}

.turtle-identity-lookup > p {
  margin: 0;
  color: #a52d2d;
}

.turtle-identity-dialog {
  width: min(92vw, 680px);
  max-height: min(86vh, 760px);
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: 24px;
  background: #fbf9f1;
  box-shadow: 0 28px 80px rgba(16, 48, 34, 0.24);
}

.turtle-identity-dialog::backdrop {
  background: rgba(11, 35, 25, 0.48);
  backdrop-filter: blur(3px);
}

.turtle-identity-dialog-card {
  padding: 22px;
}

.turtle-identity-dialog-heading,
.turtle-identity-dialog-code {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

.turtle-identity-dialog-heading span {
  color: #51705f;
  font-weight: 800;
}

.turtle-identity-dialog-heading button,
.turtle-identity-dialog-code button {
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #bccabd;
  border-radius: 12px;
  color: #175f3d;
  background: #fff;
  font: inherit;
  font-weight: 800;
}

.turtle-identity-dialog-code {
  margin: 16px 0;
  padding: 16px;
  border-radius: 16px;
  background: #eef3e8;
}

.turtle-identity-dialog-code span {
  color: #547363;
  font-size: 13px;
  font-weight: 800;
}

.turtle-identity-dialog-code strong {
  margin-right: auto;
  color: #0d5637;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: clamp(16px, 3vw, 22px);
}

.turtle-identity-dialog-profile {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 18px;
}

.turtle-identity-dialog-photo {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 18px;
  object-fit: cover;
  background: #edf2eb;
}

.turtle-identity-dialog-photo.empty {
  display: grid;
  place-items: center;
  color: #75847a;
}

.turtle-identity-dialog-profile dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.turtle-identity-dialog-profile dl > div {
  min-width: 0;
  padding: 9px 12px;
  border-bottom: 1px solid #e0e5dc;
}

.turtle-identity-dialog-profile dl > .wide {
  grid-column: 1 / -1;
}

.turtle-identity-dialog-profile dt {
  color: #678071;
  font-size: 12px;
  font-weight: 800;
}

.turtle-identity-dialog-profile dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
  color: #173326;
  font-weight: 800;
}

.turtle-identity-dialog-note {
  margin: 18px 0 0;
  color: #5e7567;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}

@media (max-width: 640px) {
  .turtle-editor-view { padding: 0 0 92px; }
  .turtle-editor-heading { min-height: 102px; padding-top: 34px; }
  .turtle-editor-heading h2 { font-size: 31px; }
  .turtle-editor-panel { padding: 18px 16px 24px; border-radius: 24px 24px 0 0; }
  #newMatingTurtleView .turtle-editor-form { gap: 19px 12px; }
  #newMatingTurtleView .turtle-editor-photo { grid-template-columns: minmax(116px, .86fr) minmax(0, 1.14fr) !important; gap: 12px; padding-bottom: 20px; }
  #newMatingTurtleView .turtle-editor-photo .ghost-button { min-height: 52px; font-size: 15px; }
  #newMatingTurtleView .turtle-editor-photo .ghost-button img { width: 36px; height: 36px; }
  .turtle-editor-photo-count { min-height: 32px; font-size: 12px; }
  #newMatingTurtleView .turtle-editor-form > label { padding-left: 10px; font-size: 14px; }
  #newMatingTurtleView .turtle-editor-form input,
  #newMatingTurtleView .turtle-editor-form select { min-height: 52px; padding-inline: 11px; border-radius: 13px; font-size: 15px; }
  .turtle-state-field legend { padding-left: 10px; font-size: 14px; }
  .turtle-state-field legend::before { width: 3px; height: 18px; }
  .turtle-state-options,
  .turtle-state-options span { min-height: 50px; }
  .turtle-state-options span { font-size: 15px; }
  .turtle-identity-field { grid-template-columns: 26px minmax(0, 1fr) auto; min-height: 100px; padding: 14px 13px; }
  .turtle-identity-field > img { width: 23px; height: 23px; }
  .turtle-identity-field code { font-size: 16px; }
  .turtle-identity-field strong,
  .turtle-identity-field small { font-size: 11px; }
  .turtle-identity-field button { min-width: 48px; padding: 0 8px; font-size: 13px; }
  #newMatingTurtleView .turtle-editor-form > .primary-button { min-height: 58px; font-size: 19px; }
  .turtle-identity-lookup { margin: 0 0 18px; padding: 14px; }
  .turtle-identity-lookup > div { grid-template-columns: minmax(0, 1fr) 88px; }
  .turtle-identity-lookup button { padding: 0 10px; }
  .turtle-identity-dialog-profile { grid-template-columns: 1fr; }
  .turtle-identity-dialog-photo { max-height: 220px; aspect-ratio: 16 / 9; }
  .turtle-identity-dialog-code { display: grid; grid-template-columns: 1fr auto; }
  .turtle-identity-dialog-code span { grid-column: 1 / -1; }
  .turtle-identity-dialog-code strong { min-width: 0; overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  .turtle-state-options span,
  .turtle-identity-field button,
  .turtle-identity-lookup button { transition: none !important; }
}

/* v196 final cascade guard: show the approved turtle illustration in the unknown directory header. */
#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-overview-art {
  display: block !important;
}

#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
  position: relative !important;
  display: block !important;
  min-height: 238px !important;
  overflow: hidden !important;
  padding: 40px 45% 34px 28px !important;
  border: 1px solid #dde5d7 !important;
  border-bottom: 0 !important;
  border-radius: 24px 24px 0 0 !important;
  background: #faf8ef !important;
}

#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-overview-copy {
  position: relative !important;
  z-index: 2 !important;
}

#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
  margin: 0 0 18px !important;
  color: #4d7756 !important;
  font-size: 18px !important;
}

#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-detail-panel > .panel-head h2 {
  max-width: 280px !important;
  margin: 0 !important;
  color: #184832 !important;
  font-size: clamp(38px, 7vw, 54px) !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
}

#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-overview-art {
  position: absolute !important;
  z-index: 1 !important;
  inset: auto -4% 0 auto !important;
  width: 54% !important;
  height: 82% !important;
  object-fit: contain !important;
  object-position: right bottom !important;
  opacity: 0.82 !important;
}

#matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-archive-count {
  position: absolute !important;
  z-index: 3 !important;
  top: 34px !important;
  right: 24px !important;
  bottom: auto !important;
  left: auto !important;
  display: block !important;
  width: auto !important;
  padding: 10px 17px !important;
  color: #426c49 !important;
  background: #eeeee0 !important;
  font-size: 16px !important;
}

@media (max-width: 640px) {
  #matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-detail-panel > .mating-group-overview-head {
    min-height: 190px !important;
    padding: 28px 44% 24px 20px !important;
    border-radius: 20px 20px 0 0 !important;
  }

  #matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-detail-panel > .panel-head .eyebrow {
    margin-bottom: 12px !important;
    font-size: 14px !important;
  }

  #matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-detail-panel > .panel-head h2 {
    max-width: 180px !important;
    font-size: 34px !important;
  }

  #matingGroupDetailView.mating-directory-mode.unknown-directory-mode .mating-group-archive-count {
    top: 24px !important;
    right: 15px !important;
    padding: 8px 11px !important;
    font-size: 12px !important;
  }
}

body.customer-session .farm-bottom-nav {
  display: flex !important;
  min-height: 72px;
  align-items: flex-start;
  justify-content: center;
  padding: 6px max(12px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  overflow: visible;
  touch-action: manipulation;
}

body.customer-session .farm-bottom-nav > button {
  display: none;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] {
  display: grid;
  width: 62px;
  min-width: 62px;
  height: 62px;
  min-height: 62px;
  place-items: center;
  margin-top: -18px;
  padding: 0;
  border: 5px solid rgba(255, 255, 255, 0.98);
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #29aa60, #158447);
  box-shadow: 0 9px 22px rgba(20, 113, 61, 0.28);
}

body.customer-session .farm-bottom-nav > [data-go="homeView"]:active {
  background: #13773f;
  transform: translateX(-50%) scale(0.96);
}

body.customer-session .farm-bottom-nav > [data-go="homeView"]:focus-visible {
  outline: 3px solid rgba(35, 166, 87, 0.38);
  outline-offset: 3px;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] .farm-nav-icon,
body.customer-session .farm-bottom-nav > [data-go="homeView"].active .farm-nav-icon {
  width: 38px;
  height: 38px;
  color: #fff;
  background: transparent;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] .farm-nav-icon svg {
  width: 28px;
  height: 28px;
  stroke-width: 2.1;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"] .farm-nav-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

body.customer-session .farm-bottom-nav > [data-go="homeView"].active .farm-nav-label::after {
  display: none;
}
