/* ================================================================== */
/* v1.0 家园经营                                                       */
/* ================================================================== */

.home-screen {
  position: absolute;
  inset: 0;
  z-index: 22;
  pointer-events: none;
  color: var(--ink);
}
.home-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(32, 24, 16, 0.58), transparent 18%, transparent 72%, rgba(29, 22, 14, 0.7)),
    radial-gradient(ellipse at 50% 46%, transparent 40%, rgba(34, 26, 17, 0.18));
  pointer-events: none;
}
.home-screen > * { pointer-events: auto; }
.home-topbar {
  position: absolute;
  top: 1rem;
  left: 1.15rem;
  right: 1.15rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem;
  pointer-events: none;
}
.home-topbar > * { pointer-events: auto; }
.home-brand {
  min-width: 12.5rem;
  padding: 0.45rem 0.8rem 0.5rem;
  border: 2px solid #32251c;
  border-radius: 0.8rem;
  color: #fff4de;
  background:
    linear-gradient(135deg, rgba(79, 58, 40, 0.97), rgba(54, 41, 29, 0.97));
  box-shadow: 0 0.24rem 0 rgba(38, 26, 16, 0.4), 0 0.7rem 1.4rem rgba(29, 21, 13, 0.2);
}
.home-kicker { display: block; font-size: 0.48rem; letter-spacing: 0.18em; color: #dfbd87; }
.home-brand-row { display: flex; align-items: center; gap: 0.48rem; margin-top: 0.12rem; }
.home-brand-row h1 {
  margin: 0;
  font-family: var(--display);
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.18);
}
.home-day-pill {
  padding: 0.13rem 0.43rem;
  border-radius: 999px;
  font-size: 0.5rem;
  font-weight: 800;
  color: #5e3526;
  background: #efd5a8;
  border: 1px solid #a98355;
  white-space: nowrap;
}
.home-resources { display: flex; align-items: stretch; gap: 0.42rem; }
.home-wallet,
.home-menu-count,
.home-star-card {
  border: 2px solid var(--ink);
  border-radius: 0.72rem;
  background: rgba(255, 248, 232, 0.95);
  box-shadow: 0 0.2rem 0 rgba(61, 44, 36, 0.28);
  backdrop-filter: blur(6px);
}
.home-wallet {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.32rem 0.65rem;
}
.home-wallet strong { font-size: 1rem; color: #765128; font-variant-numeric: tabular-nums; }
.home-wallet small { font-size: 0.46rem; color: #a28564; }
.home-star-card { min-width: 9.8rem; padding: 0.3rem 0.55rem 0.34rem; }
.home-star-head { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; font-size: 0.58rem; font-weight: 800; color: #71533a; }
.home-stars { display: flex; gap: 0.05rem; color: #d4bf9d; font-size: 0.62rem; letter-spacing: 0.02em; }
.home-stars .on { color: #e2a93c; }
.home-xp-track { height: 0.24rem; margin-top: 0.2rem; border-radius: 999px; background: #e5d5b8; overflow: hidden; }
.home-xp-track i { display: block; height: 100%; width: 0%; border-radius: inherit; background: linear-gradient(90deg, #a7bb6f, #e2b24e); transition: width 0.3s; }
.home-star-card > small { display: block; margin-top: 0.14rem; font-size: 0.44rem; color: #ae916c; text-align: right; }
.home-menu-count { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 3.9rem; padding: 0.2rem 0.5rem; }
.home-menu-count span { font-size: 0.45rem; color: #a18462; letter-spacing: 0.08em; }
.home-menu-count strong { font-size: 0.74rem; color: #57402c; }
.home-top-actions { display: flex; gap: 0.3rem; }

.home-greeting {
  position: absolute;
  top: 5.2rem;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  background: rgba(55, 41, 28, 0.58);
  color: #f7ebd3;
  font-size: 0.6rem;
  letter-spacing: 0.03em;
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 0.3rem 1rem rgba(32, 23, 15, 0.14);
  backdrop-filter: blur(5px);
}
.home-greeting em { font-style: normal; color: #ddc59e; margin-left: 0.5rem; }

.zone-card {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 12.8rem;
  min-height: 3.2rem;
  padding: 0.38rem 0.5rem 0.38rem 0.45rem;
  border: 2px solid #4d3726;
  border-radius: 0.78rem;
  background: rgba(255, 248, 232, 0.94);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 0.22rem 0 rgba(47, 33, 22, 0.34), 0 0.55rem 1.2rem rgba(40, 27, 16, 0.15);
  transition: transform 0.16s, box-shadow 0.16s, background 0.16s;
  backdrop-filter: blur(5px);
}
.zone-card::after {
  content: "";
  position: absolute;
  left: -0.42rem;
  top: 50%;
  width: 0.7rem;
  height: 0.7rem;
  transform: translateY(-50%) rotate(45deg);
  background: inherit;
  border-left: 2px solid #4d3726;
  border-bottom: 2px solid #4d3726;
}
.zone-card:hover { transform: translateY(-2px); background: #fffdf5; box-shadow: 0 0.32rem 0 rgba(47, 33, 22, 0.3), 0 0.8rem 1.4rem rgba(40, 27, 16, 0.18); }
.zone-card:active { transform: translateY(1px); }
.zone-icon {
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  border: 1.5px solid #a68155;
  background: #efe0c3;
  color: #6f7f4f;
}
.zone-icon svg { width: 1.8rem; height: 1.8rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.zone-copy { flex: 1; min-width: 0; }
.zone-copy strong { display: block; font-family: var(--display); font-size: 0.92rem; line-height: 1.15; letter-spacing: 0.04em; }
.zone-copy small { display: block; margin-top: 0.1rem; font-size: 0.47rem; color: #917352; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zone-arrow { color: #a78358; font-size: 1.5rem; line-height: 1; font-weight: 800; padding-right: 0.1rem; }

.zone-livestock { left: 2.4%; top: 33%; }
.zone-farm { left: 2.4%; top: 59%; }
.zone-fishing { left: 42%; top: 70%; }
.zone-fishing .zone-icon { color: #507f87; background: #d9ece8; }
.zone-residence { left: 34%; top: 15.5%; }
.zone-menu { left: 34%; top: 29%; }
.zone-menu .zone-icon { color: #a05a3f; background: #f1ddc1; }
.zone-residence .zone-icon { color: #86603d; background: #ead6b7; }

.home-function-stack {
  position: absolute;
  right: 2.2%;
  top: 32%;
  display: flex;
  flex-direction: column;
  gap: 0.38rem;
  width: 10.8rem;
}
.func-btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.42rem;
  width: 100%;
  min-height: 2.6rem;
  padding: 0.3rem 0.48rem;
  border: 1.5px solid #58402e;
  border-radius: 0.65rem;
  background: rgba(255, 248, 232, 0.92);
  color: #58402e;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 0.16rem 0 rgba(47, 33, 22, 0.28);
  transition: transform 0.15s, background 0.15s;
}
.func-btn:hover { transform: translateX(-2px); background: #fffdf4; }
.func-btn:disabled, .func-btn[disabled] { cursor: not-allowed; opacity: 0.82; }
.func-icon {
  width: 1.95rem;
  height: 1.95rem;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  border: 1px solid #b59062;
  background: #f0e0c2;
  color: #8b5e3d;
}
.func-icon svg { width: 1.55rem; height: 1.55rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.func-btn > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.func-btn strong { font-size: 0.66rem; }
.func-btn small { margin-top: 0.05rem; font-size: 0.43rem; color: #967958; }
.func-dot { width: 0.4rem; height: 0.4rem; border-radius: 50%; background: #cf5c41; box-shadow: 0 0 0 2px rgba(207, 92, 65, 0.15); }
.func-lock {
  position: absolute;
  right: 0.4rem;
  top: 0.28rem;
  font-style: normal;
  font-size: 0.38rem;
  color: #9a7b5b;
  background: #ead9bd;
  border: 1px solid #c5a67d;
  border-radius: 999px;
  padding: 0.05rem 0.26rem;
}

.home-tip-card {
  position: absolute;
  left: 50%;
  bottom: 5.4rem;
  transform: translateX(-50%);
  width: min(30rem, 43%);
  padding: 0.38rem 0.7rem 0.42rem;
  border: 1.5px solid rgba(88, 64, 43, 0.7);
  border-radius: 0.6rem;
  background: rgba(255, 249, 235, 0.91);
  box-shadow: 0 0.18rem 0 rgba(47, 33, 22, 0.18), 0 0.5rem 1rem rgba(38, 25, 15, 0.12);
  backdrop-filter: blur(5px);
  text-align: center;
}
.home-tip-label { display: block; font-size: 0.4rem; font-weight: 800; letter-spacing: 0.16em; color: #aa7b4b; }
.home-tip-card p { margin: 0.15rem 0 0; font-size: 0.53rem; line-height: 1.5; color: #756049; }

.home-footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 1.2rem 0.75rem;
  background: linear-gradient(0deg, rgba(36, 26, 17, 0.8), rgba(36, 26, 17, 0.08));
  pointer-events: none;
}
.home-footer > * { pointer-events: auto; }
.home-footer-meta { width: 22%; color: #eadbc2; text-shadow: 0 1px 3px rgba(28, 19, 11, 0.3); }
.home-footer-meta span { display: block; font-size: 0.55rem; font-weight: 700; }
.home-footer-meta small { display: block; margin-top: 0.1rem; font-size: 0.44rem; color: #c9b494; }
.service-btn {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 10.5rem;
  min-height: 3.1rem;
  padding: 0.25rem 1.5rem 0.35rem;
  border: 2px solid #5b3022;
  border-radius: 0.8rem;
  background: linear-gradient(180deg, #d87550, #bf5738);
  color: #fff7e1;
  cursor: pointer;
  box-shadow: 0 0.27rem 0 #713524, 0 0.6rem 1.4rem rgba(60, 31, 18, 0.3);
  transition: transform 0.16s, filter 0.16s;
}
.service-btn::after {
  content: "";
  position: absolute;
  inset: 0.2rem;
  border: 1px solid rgba(255, 234, 198, 0.32);
  border-radius: 0.55rem;
  pointer-events: none;
}
.service-btn:hover { transform: translateY(-2px); filter: brightness(1.04); }
.service-btn:active { transform: translateY(1px); }
.service-btn span { font-size: 0.92rem; font-weight: 800; letter-spacing: 0.12em; }
.service-btn small { margin-top: 0.08rem; font-size: 0.46rem; opacity: 0.8; }
.home-codex-btn { min-height: 2.4rem; background: rgba(255, 248, 232, 0.2); color: #f2e6d1; border-color: rgba(255, 244, 218, 0.5); }
.home-codex-btn:hover { background: rgba(255, 248, 232, 0.3); }

/* ---- 家园管理通用面板 ---- */
.manage-modal { width: min(100%, 68rem); }
.manage-head-right { display: flex; align-items: center; gap: 0.6rem; }
.manage-wallet { display: flex; align-items: center; gap: 0.28rem; padding: 0.24rem 0.55rem; border: 1.5px solid #c2a376; border-radius: 999px; background: #fff5dd; color: #74512d; font-size: 0.7rem; }
.manage-wallet .coin-dot { width: 1rem; height: 1rem; }
.manage-body { min-height: 0; overflow-y: auto; padding: 1rem 1.25rem; }
.manage-foot { justify-content: space-between; }
.manage-foot > span { font-size: 0.5rem; color: #96795c; }
.manage-section { margin-bottom: 0.85rem; }
.manage-section:last-child { margin-bottom: 0; }
.manage-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 0.7rem; margin-bottom: 0.45rem; }
.manage-section-head h3 { margin: 0; font-family: var(--display); font-size: 1.05rem; letter-spacing: 0.02em; }
.manage-section-head p { margin: 0.1rem 0 0; font-size: 0.5rem; color: #9c7d5d; }
.manage-badge { display: inline-flex; align-items: center; gap: 0.2rem; padding: 0.16rem 0.44rem; border: 1px solid #cfb28a; border-radius: 999px; background: #f4e7cf; color: #8c633e; font-size: 0.46rem; font-weight: 700; white-space: nowrap; }
.manage-badge.good { border-color: #a9bc82; background: #f0f5de; color: #617e45; }
.manage-badge.warn { border-color: #d3a18a; background: #f9e8dd; color: #a35742; }
.manage-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.55rem; flex-wrap: wrap; }
.manage-toolbar .toolbar-left { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }
.manage-empty { padding: 1.2rem; border: 1px dashed #c9af89; border-radius: 0.6rem; text-align: center; color: #a18566; font-size: 0.6rem; background: rgba(255, 251, 240, 0.45); }
.manage-btn {
  padding: 0.29rem 0.6rem;
  border: 1.4px solid #94704b;
  border-radius: 0.42rem;
  background: #fff8e8;
  color: #6b4e34;
  font-size: 0.53rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, transform 0.15s, opacity 0.15s;
  white-space: nowrap;
}
.manage-btn:hover { background: #fffdf6; transform: translateY(-1px); }
.manage-btn:active { transform: translateY(1px); }
.manage-btn.primary { border-color: #6a4730; background: linear-gradient(180deg, #d87952, #bd5a3c); color: #fff7e3; box-shadow: 0 0.12rem 0 #793f2b; }
.manage-btn.primary:hover { filter: brightness(1.04); }
.manage-btn.green { border-color: #627d45; background: #eef4d9; color: #526b38; }
.manage-btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }
.manage-btn.danger { border-color: #b17764; color: #9d4d3d; }
.manage-btn.small { font-size: 0.47rem; padding: 0.2rem 0.45rem; }
.manage-btn.icon-only { padding: 0.2rem 0.35rem; }
.manage-tag { display: inline-block; padding: 0.1rem 0.35rem; border-radius: 999px; background: #ecdfc6; color: #856848; font-size: 0.43rem; font-weight: 700; }
.manage-tag.fantasy { background: #e3e7f5; color: #6878a0; }
.manage-tag.spicy { background: #f8ded6; color: #ae513b; }

/* 种植 */
.farm-layout { display: grid; grid-template-columns: 18rem minmax(0, 1fr); gap: 0.8rem; align-items: start; }
.seed-browser { border: 1px solid #d2bb95; border-radius: 0.65rem; background: rgba(255, 249, 235, 0.62); padding: 0.55rem; }
.seed-browser h4, .farm-plots-wrap h4 { margin: 0 0 0.45rem; font-family: var(--display); font-size: 0.92rem; }
.seed-list { display: flex; flex-direction: column; gap: 0.36rem; max-height: 25rem; overflow-y: auto; }
.seed-card {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  width: 100%;
  padding: 0.38rem 0.42rem;
  border: 1.4px solid #c9af89;
  border-radius: 0.5rem;
  background: #fff9ec;
  text-align: left;
  cursor: pointer;
  color: #5e4834;
  transition: border-color 0.15s, background 0.15s, transform 0.15s;
}
.seed-card:hover { transform: translateX(2px); background: #fffdf7; }
.seed-card.selected { border-color: #789453; background: #f1f6dd; box-shadow: 0 0 0 2px rgba(120, 148, 83, 0.18); }
.seed-card.locked { opacity: 0.5; cursor: not-allowed; }
.seed-card .seed-icon { width: 2.1rem; height: 2.1rem; flex: none; display: grid; place-items: center; border-radius: 50%; background: #f0e2c8; border: 1px solid #ceb28a; }
.seed-card .seed-icon img { width: 1.75rem; height: 1.75rem; object-fit: contain; }
.seed-card .seed-main { flex: 1; min-width: 0; }
.seed-card strong { display: block; font-size: 0.6rem; }
.seed-card small { display: block; margin-top: 0.06rem; font-size: 0.43rem; color: #9d7e5d; }
.seed-card .seed-count { font-size: 0.5rem; color: #9d6d3e; white-space: nowrap; }
.farm-plots-wrap { min-width: 0; }
.farm-tools { display: flex; gap: 0.35rem; flex-wrap: wrap; margin-bottom: 0.45rem; }
.farm-tool { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.2rem 0.4rem; border: 1px solid #cdb38e; border-radius: 999px; background: #f9efdc; font-size: 0.46rem; color: #856342; }
.farm-tool b { color: #5c402a; }
.plot-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.plot-card {
  position: relative;
  min-height: 8.1rem;
  padding: 0.45rem;
  border: 1.5px solid #c5a77e;
  border-radius: 0.6rem;
  background: #f6ecd8;
  overflow: hidden;
}
.plot-card.empty { background: rgba(255, 251, 240, 0.55); border-style: dashed; }
.plot-card.locked { opacity: 0.52; background: #e9dfcf; }
.plot-card.ready { border-color: #799a55; background: #f1f7df; }
.plot-card .plot-no { position: absolute; top: 0.35rem; left: 0.4rem; font-size: 0.42rem; color: #a88962; letter-spacing: 0.08em; }
.plot-visual { display: flex; align-items: center; justify-content: center; height: 3.2rem; margin-top: 0.4rem; position: relative; }
.plot-visual img { width: 2.8rem; height: 2.8rem; object-fit: contain; filter: drop-shadow(0 2px 1px rgba(85, 55, 29, 0.16)); transition: transform 0.3s; }
.plot-card.ready .plot-visual img { animation: readyBounce 1.8s ease-in-out infinite; }
.plot-soil { position: absolute; bottom: 0.9rem; width: 4.4rem; height: 0.9rem; border-radius: 50%; background: rgba(101, 71, 42, 0.18); }
.plot-info { text-align: center; margin-top: 0.1rem; }
.plot-info strong { display: block; font-size: 0.58rem; }
.plot-info small { display: block; margin-top: 0.1rem; font-size: 0.45rem; color: #9a7d5d; }
.plot-progress { height: 0.24rem; margin: 0.25rem 0.15rem 0; border-radius: 999px; background: #dccbae; overflow: hidden; }
.plot-progress i { display: block; height: 100%; background: linear-gradient(90deg, #89a663, #c4bf65); border-radius: inherit; }
.plot-actions { display: flex; justify-content: center; gap: 0.18rem; flex-wrap: wrap; margin-top: 0.32rem; }
.plot-actions .manage-btn { padding: 0.16rem 0.3rem; font-size: 0.43rem; }
.plot-lock-note { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 7rem; font-size: 0.5rem; color: #9a8164; }

/* 养殖 */
.pen-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; }
.pen-card {
  min-height: 10.5rem;
  padding: 0.55rem;
  border: 1.5px solid #c9ae85;
  border-radius: 0.65rem;
  background: #f7edd9;
  text-align: center;
}
.pen-card.empty { border-style: dashed; background: rgba(255, 251, 240, 0.5); }
.pen-card.locked { opacity: 0.55; background: #e9dfcf; }
.pen-visual { height: 4rem; display: flex; align-items: center; justify-content: center; margin: 0.2rem 0; }
.pen-visual img { width: 4rem; height: 4rem; object-fit: contain; filter: drop-shadow(0 3px 2px rgba(77, 50, 26, 0.16)); }
.pen-card h4 { margin: 0.1rem 0 0; font-family: var(--display); font-size: 0.88rem; }
.pen-card p { margin: 0.15rem 0 0.4rem; font-size: 0.46rem; color: #9b7d5d; line-height: 1.4; }
.pen-actions { display: flex; justify-content: center; gap: 0.25rem; flex-wrap: wrap; }
.pen-status { display: inline-flex; align-items: center; gap: 0.18rem; margin: 0.2rem 0; padding: 0.16rem 0.36rem; border-radius: 999px; background: #ede0c8; color: #8a6b4a; font-size: 0.44rem; }
.pen-status.ready { background: #e6f0cd; color: #5c7a42; }
.pen-status.hungry { background: #f5e1d5; color: #a75e44; }
.animal-stock-row { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; margin-top: 0.5rem; padding: 0.45rem; border: 1px dashed #c9ae86; border-radius: 0.5rem; background: #f8efdc; font-size: 0.5rem; color: #876849; }
.animal-stock-row .manage-btn { margin-left: auto; }

/* 钓鱼 */
.fishing-layout { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: 0.75rem; align-items: start; }
.water-list { display: flex; flex-direction: column; gap: 0.4rem; }
.water-card {
  padding: 0.5rem 0.55rem;
  border: 1.4px solid #c5ad89;
  border-radius: 0.6rem;
  background: #fff9ec;
  text-align: left;
  cursor: pointer;
  color: #5e4732;
}
.water-card.selected { border-color: #648e91; background: #edf7f2; box-shadow: 0 0 0 2px rgba(100, 142, 145, 0.15); }
.water-card.locked { opacity: 0.5; cursor: not-allowed; }
.water-card strong { display: block; font-size: 0.66rem; }
.water-card small { display: block; margin-top: 0.1rem; font-size: 0.43rem; color: #957a5b; }
.fishing-stage { border: 1.5px solid #ab9680; border-radius: 0.65rem; background: linear-gradient(180deg, #c4ddd7, #9ec4c2); padding: 0.65rem; min-height: 16rem; position: relative; overflow: hidden; }
.fishing-stage::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 120%, rgba(255,255,255,.3), transparent 55%); pointer-events: none; }
.fishing-title { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; color: #355d5d; font-size: 0.6rem; font-weight: 800; }
.fishing-bar {
  position: relative;
  height: 2.4rem;
  margin: 2.2rem 0 0.7rem;
  border: 2px solid #4b6460;
  border-radius: 0.6rem;
  background: rgba(244, 252, 238, 0.8);
  overflow: hidden;
}
.fishing-bar::after { content: ""; position: absolute; inset: 0.45rem 0.5rem; border-radius: 0.35rem; border: 1px dashed rgba(64, 95, 89, 0.28); }
.fishing-target { position: absolute; top: 0; bottom: 0; border-radius: 0.42rem; background: rgba(107, 160, 82, 0.5); border-left: 2px solid #5d8b48; border-right: 2px solid #5d8b48; }
.fishing-marker { position: absolute; top: -0.2rem; bottom: -0.2rem; width: 0.32rem; border-radius: 999px; background: #c95d3e; box-shadow: 0 0 0.4rem rgba(201, 93, 62, 0.5); transform: translateX(-50%); }
.fishing-marker::before { content: ""; position: absolute; top: -0.45rem; left: 50%; transform: translateX(-50%); width: 0.9rem; height: 0.9rem; border-radius: 50%; background: #f3d47c; border: 2px solid #a65d3e; }
.fishing-controls { position: relative; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.fishing-readout { margin-left: auto; font-size: 0.48rem; color: #4f6d68; }
.fishing-result { position: relative; margin-top: 0.7rem; padding: 0.55rem; border: 1.5px solid #b79a72; border-radius: 0.55rem; background: rgba(255, 249, 235, 0.92); }
.fishing-result h4 { margin: 0; font-family: var(--display); font-size: 0.9rem; }
.fishing-result p { margin: 0.2rem 0 0.4rem; font-size: 0.48rem; color: #8d6f51; }
.fish-catch-actions { display: flex; gap: 0.3rem; flex-wrap: wrap; }
.fish-float { position: absolute; right: 1.3rem; top: 3.8rem; width: 2.3rem; height: 2.3rem; }
.fish-float img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 4px 3px rgba(37, 65, 63, 0.2)); }
.fish-table { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.4rem; }
.fish-card { display: flex; align-items: center; gap: 0.4rem; padding: 0.4rem; border: 1px solid #cfb58e; border-radius: 0.5rem; background: #fff9ec; }
.fish-card .fish-icon { width: 2.3rem; height: 2.3rem; flex: none; display: grid; place-items: center; border-radius: 50%; background: #e4f0ed; }
.fish-card .fish-icon img { width: 2rem; height: 2rem; object-fit: contain; }
.fish-card-main { flex: 1; min-width: 0; }
.fish-card strong { display: block; font-size: 0.56rem; }
.fish-card small { display: block; font-size: 0.42rem; color: #987a5b; margin-top: 0.06rem; }
.fish-sex { display: inline-grid; place-items: center; width: 0.9rem; height: 0.9rem; border-radius: 50%; font-size: 0.56rem; font-weight: 800; }
.fish-sex.male { background: #dce8f4; color: #4e7294; }
.fish-sex.female { background: #f6e1e2; color: #a45561; }
.breed-panel { margin-top: 0.6rem; padding: 0.55rem; border: 1px solid #c7ad86; border-radius: 0.55rem; background: #f6ecd8; }
.breed-panel h4 { margin: 0; font-family: var(--display); font-size: 0.85rem; }
.breed-panel p { margin: 0.15rem 0 0.35rem; font-size: 0.46rem; color: #8b6e50; }
.breed-job { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; padding: 0.35rem 0.45rem; margin-top: 0.35rem; border-radius: 0.4rem; background: #fff9ec; border: 1px solid #d2b992; font-size: 0.5rem; }

/* 居住 */
.residence-layout { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 0.8rem; align-items: start; }
.room-preview {
  position: relative;
  min-height: 13rem;
  border: 2px solid #6b5137;
  border-radius: 0.7rem;
  overflow: hidden;
  background: #f7ecd7;
  box-shadow: inset 0 0 0 0.35rem rgba(255, 255, 255, 0.18);
}
.room-wall { height: 58%; background: var(--room-wall, #f7ecd7); position: relative; }
.room-wall::after { content: ""; position: absolute; left: 50%; top: 1.1rem; width: 3.1rem; height: 3.1rem; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle at 40% 30%, rgba(255,255,255,.75), rgba(255,225,157,.45)); border: 0.3rem solid rgba(119, 87, 54, 0.18); }
.room-floor { height: 42%; background: var(--room-floor, #b78d61); position: relative; }
.room-floor::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(100deg, transparent 0 2.2rem, rgba(88, 59, 34, 0.13) 2.2rem 2.35rem); }
.room-furniture { position: absolute; left: 0; right: 0; bottom: 8%; display: flex; justify-content: space-around; align-items: flex-end; padding: 0 1rem; }
.room-furniture span { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; font-size: 0.42rem; color: #654830; font-weight: 700; }
.room-furniture i { display: block; width: 3.5rem; height: 2.2rem; border-radius: 0.35rem 0.35rem 0.15rem 0.15rem; background: var(--furniture, #a87e4f); border: 1.5px solid rgba(84, 57, 33, 0.5); box-shadow: 0 0.3rem 0 rgba(60, 41, 24, 0.18); }
.room-furniture span:nth-child(2) i { width: 2.4rem; height: 3rem; border-radius: 999px 999px 0.2rem 0.2rem; background: #9caf68; }
.room-furniture span:nth-child(3) i { width: 2rem; height: 1.5rem; border-radius: 50%; background: #cf9f5d; }
.room-comfort { position: absolute; right: 0.7rem; top: 0.6rem; padding: 0.2rem 0.5rem; border-radius: 999px; background: rgba(255, 248, 233, 0.85); border: 1px solid #c4a477; color: #785738; font-size: 0.45rem; font-weight: 700; }
.theme-list { display: flex; flex-direction: column; gap: 0.42rem; }
.theme-card { display: flex; align-items: center; gap: 0.45rem; padding: 0.48rem; border: 1.4px solid #c9ae87; border-radius: 0.55rem; background: #fff9ec; }
.theme-card.active { border-color: #789453; background: #f1f6dc; }
.theme-card .theme-swatch { width: 2.5rem; height: 2.5rem; flex: none; border-radius: 0.45rem; border: 1px solid #b99569; background: linear-gradient(160deg, var(--sw1), var(--sw2)); }
.theme-card-main { flex: 1; min-width: 0; }
.theme-card strong { display: block; font-size: 0.6rem; }
.theme-card small { display: block; margin-top: 0.08rem; font-size: 0.42rem; color: #987a5b; }
.theme-perks { display: flex; gap: 0.25rem; flex-wrap: wrap; margin-top: 0.2rem; }
.theme-perks span { font-size: 0.4rem; color: #67804c; background: #eef4dd; border-radius: 999px; padding: 0.08rem 0.3rem; }

/* 菜单 / 研发 */
.menu-layout { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 0.8rem; align-items: start; }
.menu-slots { display: grid; grid-template-columns: 1fr; gap: 0.38rem; }
.menu-slot {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.48rem;
  border: 1.4px solid #ceb38b;
  border-radius: 0.55rem;
  background: #fff9ec;
}
.menu-slot.empty { border-style: dashed; background: rgba(255, 251, 241, 0.5); }
.menu-slot .slot-no { width: 1.35rem; height: 1.35rem; display: grid; place-items: center; flex: none; border-radius: 50%; background: #ecdbbf; color: #92724e; font-size: 0.5rem; font-weight: 800; }
.menu-slot-main { flex: 1; min-width: 0; }
.menu-slot-main strong { display: block; font-size: 0.58rem; }
.menu-slot-main small { display: block; margin-top: 0.08rem; font-size: 0.42rem; color: #997b5b; }
.menu-slot select {
  max-width: 8.2rem;
  padding: 0.28rem 0.35rem;
  border: 1px solid #bfa27a;
  border-radius: 0.35rem;
  background: #fffdf4;
  color: #604932;
  font-family: var(--font);
  font-size: 0.48rem;
}
.menu-slot .stock-pill { font-size: 0.45rem; color: #6f8b4e; background: #edf4d9; border-radius: 999px; padding: 0.08rem 0.32rem; white-space: nowrap; }
.recipe-list { display: flex; flex-direction: column; gap: 0.35rem; max-height: 20rem; overflow-y: auto; }
.recipe-mini {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.38rem 0.42rem;
  border: 1px solid #cfb58f;
  border-radius: 0.5rem;
  background: #fff9ec;
}
.recipe-mini img { width: 2.15rem; height: 2.15rem; object-fit: contain; flex: none; }
.recipe-mini-main { flex: 1; min-width: 0; }
.recipe-mini strong { display: block; font-size: 0.56rem; }
.recipe-mini small { display: block; font-size: 0.42rem; color: #967858; }
.rating-row { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; margin-top: 0.1rem; }
.rating-item { font-size: 0.4rem; color: #8c7155; white-space: nowrap; }
.rating-item b { color: #bc8a3d; letter-spacing: 0.03em; }
.recipe-lab { border: 1.5px solid #c9ad86; border-radius: 0.65rem; background: #f7ecd7; padding: 0.6rem; }
.recipe-lab h4 { margin: 0; font-family: var(--display); font-size: 0.92rem; }
.recipe-lab > p { margin: 0.16rem 0 0.45rem; font-size: 0.46rem; color: #8f7152; line-height: 1.5; }
.ingredient-picker { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.3rem; }
.ing-pick {
  position: relative;
  padding: 0.28rem 0.2rem;
  border: 1px solid #cbb08a;
  border-radius: 0.45rem;
  background: #fffaf0;
  color: #6c5138;
  font-size: 0.43rem;
  text-align: center;
  cursor: pointer;
}
.ing-pick img { display: block; width: 1.5rem; height: 1.5rem; margin: 0 auto 0.1rem; object-fit: contain; }
.ing-pick.picked { border-color: #6e8d50; background: #eff5db; box-shadow: 0 0 0 2px rgba(110, 141, 80, 0.15); }
.ing-pick .ing-have { position: absolute; top: 0.14rem; right: 0.2rem; font-size: 0.36rem; color: #b17d46; }
.selection-chips { display: flex; flex-wrap: wrap; gap: 0.22rem; min-height: 1.45rem; margin: 0.4rem 0; }
.selection-chip { display: inline-flex; align-items: center; gap: 0.18rem; padding: 0.12rem 0.32rem; border-radius: 999px; background: #e9dcc1; color: #705236; font-size: 0.43rem; }
.selection-chip button { border: none; background: transparent; color: #9b6d4d; cursor: pointer; font-size: 0.6rem; line-height: 1; padding: 0; }
.recipe-result { margin-top: 0.45rem; padding: 0.5rem; border: 1px solid #d1b58e; border-radius: 0.5rem; background: #fffaf0; }
.recipe-result h5 { margin: 0; font-family: var(--display); font-size: 0.92rem; }
.recipe-result p { margin: 0.15rem 0 0; font-size: 0.46rem; color: #927353; line-height: 1.5; }
.recipe-result .rating-row { margin-top: 0.28rem; }
.recipe-result.fail { border-color: #d2a58f; background: #f8e9df; }
.recipe-result.fail h5 { color: #9e533d; }

/* 商店 */
.shop-wallet { display: flex; align-items: center; gap: 0.3rem; }
.shop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.shop-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.2rem;
  padding: 0.55rem;
  border: 1.5px solid #c9ad85;
  border-radius: 0.6rem;
  background: #fff9ec;
}
.shop-card.sold { opacity: 0.5; filter: saturate(0.6); }
.shop-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: #f0e1c8; border: 1px solid #c8a97f; }
.shop-icon img { width: 2.4rem; height: 2.4rem; object-fit: contain; }
.shop-icon svg { width: 2rem; height: 2rem; fill: none; stroke: #8e6543; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.shop-card strong { font-size: 0.58rem; }
.shop-card small { min-height: 1.1rem; font-size: 0.42rem; color: #957756; line-height: 1.35; }
.shop-price { display: inline-flex; align-items: center; gap: 0.2rem; font-size: 0.55rem; font-weight: 800; color: #a06c30; }
.shop-price .coin-dot { width: 0.9rem; height: 0.9rem; }
.bound-tag { font-size: 0.36rem; color: #a78c6b; border: 1px solid #ceb797; border-radius: 999px; padding: 0.03rem 0.25rem; }

/* 扭蛋 */
.gacha-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 0.8rem; align-items: stretch; }
.gacha-machine { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 17rem; border: 2px solid #624936; border-radius: 0.8rem; background: linear-gradient(180deg, #e8d7bb, #c9aa82); overflow: hidden; }
.gacha-machine::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 25%, rgba(255,255,255,.4), transparent 45%); }
.gacha-dome { position: relative; width: 8.5rem; height: 8.5rem; border-radius: 50%; border: 0.38rem solid #8c6242; background: radial-gradient(circle at 35% 25%, #fff9ec, #efd7b4 45%, #d7b78c); box-shadow: inset 0 0 1.5rem rgba(88, 59, 33, 0.18), 0 0.5rem 0 rgba(78, 52, 30, 0.18); overflow: hidden; }
.gacha-dome::before { content: ""; position: absolute; left: 50%; top: 52%; width: 0.5rem; height: 0.5rem; transform: translate(-50%, -50%); border-radius: 50%; background: #8e6a4a; }
.gacha-dome::after { content: "?"; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: rgba(122, 83, 48, 0.62); font-family: var(--display); font-size: 2.2rem; font-weight: 800; }
.gacha-balls { position: absolute; inset: 0; }
.gacha-balls i { position: absolute; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--ball, #e9b24b); border: 1px solid rgba(91, 59, 31, 0.35); box-shadow: inset -2px -2px 3px rgba(120, 72, 30, 0.18); }
.gacha-balls i:nth-child(1) { left: 1.2rem; top: 4.5rem; }
.gacha-balls i:nth-child(2) { right: 1.1rem; top: 5.1rem; background: #8fb39a; }
.gacha-balls i:nth-child(3) { left: 3rem; top: 6.3rem; background: #d58c77; }
.gacha-balls i:nth-child(4) { right: 2.7rem; top: 3.1rem; background: #89a7c5; }
.gacha-base { position: relative; width: 9.5rem; height: 3.1rem; margin-top: -0.4rem; border-radius: 0.45rem 0.45rem 0.8rem 0.8rem; background: linear-gradient(180deg, #b87e4f, #8d5b38); border: 2px solid #5e3e28; display: flex; align-items: center; justify-content: center; }
.gacha-base span { font-family: var(--display); color: #f8e6c4; font-size: 0.95rem; letter-spacing: 0.12em; text-shadow: 0 2px 0 rgba(67, 40, 22, 0.3); }
.gacha-panel { border: 1.5px solid #c9ad85; border-radius: 0.65rem; background: #f8eedc; padding: 0.65rem; display: flex; flex-direction: column; }
.gacha-panel h4 { margin: 0; font-family: var(--display); font-size: 1.05rem; }
.gacha-panel > p { margin: 0.18rem 0 0.55rem; font-size: 0.48rem; color: #937454; line-height: 1.5; }
.gacha-luck { display: flex; align-items: center; gap: 0.45rem; margin: 0.2rem 0 0.5rem; padding: 0.35rem 0.5rem; border: 1px dashed #c6a87e; border-radius: 0.42rem; background: #fff8e8; font-size: 0.48rem; color: #8a6848; }
.gacha-luck strong { color: #aa6635; font-size: 0.72rem; }
.gacha-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.gacha-result { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin-top: 0.5rem; }
.gacha-result-card { flex: 0 1 10rem; min-width: 8rem; max-width: 12rem; padding: 0.6rem 0.7rem; border: 1.4px solid #c9ad85; border-radius: 0.55rem; background: #fff9ec; text-align: center; animation: resultPop 0.4s cubic-bezier(.2,1.4,.4,1) both; }
.gacha-result-card .reward-icon { width: 3rem; height: 3rem; margin: 0 auto 0.2rem; display: grid; place-items: center; border-radius: 50%; background: #f1e3c9; border: 1px solid #c8a87e; }
.gacha-result-card .reward-icon img { width: 2.3rem; height: 2.3rem; object-fit: contain; }
.gacha-result-card .reward-icon svg { width: 1.9rem; height: 1.9rem; fill: none; stroke: #8d6645; stroke-width: 1.8; }
.gacha-result-card strong { display: block; font-size: 0.58rem; }
.gacha-result-card small { display: block; margin-top: 0.08rem; font-size: 0.42rem; color: #977a5a; }
.rarity-凡 { border-color: #cab08d; }
.rarity-良 { border-color: #94a877; }
.rarity-珍 { border-color: #7e9ec0; }
.rarity-奇 { border-color: #b18dc5; }
.rarity-传 { border-color: #d3a63e; background: #fff8db; box-shadow: 0 0 0 2px rgba(211,166,62,.13); }

/* 图鉴 / 帮助列表 */
.codex-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.55rem; }
.codex-card { padding: 0.5rem; border: 1.5px solid #c9ad85; border-radius: 0.55rem; background: #fff9ec; text-align: center; }
.codex-card.locked { opacity: 0.45; filter: grayscale(0.5); }
.codex-card img { width: 3rem; height: 3rem; object-fit: contain; }
.codex-card strong { display: block; font-size: 0.58rem; }
.codex-card small { display: block; margin-top: 0.08rem; font-size: 0.42rem; color: #957756; }
.help-list { display: flex; flex-direction: column; gap: 0.5rem; }
.help-block { padding: 0.55rem 0.65rem; border: 1px solid #d0b68f; border-radius: 0.5rem; background: #fff9ed; }
.help-block h4 { margin: 0 0 0.2rem; font-family: var(--display); font-size: 0.9rem; }
.help-block p, .help-block li { font-size: 0.5rem; line-height: 1.7; color: #806449; margin: 0; }
.help-block ul { padding-left: 1rem; margin: 0; }

/* 房间主题等 */
.theme-buy-row { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.3rem; }
.seed-section-title { display: flex; align-items: center; gap: 0.35rem; margin: 0.5rem 0 0.3rem; font-size: 0.48rem; font-weight: 800; letter-spacing: 0.1em; color: #9a7b59; }

@keyframes readyBounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes resultPop { from { opacity: 0; transform: scale(0.9) translateY(6px); } to { opacity: 1; transform: scale(1) translateY(0); } }

/* 家园界面响应式 */
@media (max-width: 1180px) {
  .zone-card { width: 10.7rem; min-height: 2.85rem; }
  .zone-icon { width: 1.9rem; height: 1.9rem; }
  .zone-icon svg { width: 1.55rem; height: 1.55rem; }
  .zone-copy strong { font-size: 0.8rem; }
  .zone-copy small { font-size: 0.42rem; }
  .home-function-stack { width: 9.3rem; }
  .func-btn { min-height: 2.3rem; }
  .func-icon { width: 1.65rem; height: 1.65rem; }
  .func-btn strong { font-size: 0.6rem; }
  .home-tip-card { bottom: 4.9rem; }
  .farm-layout { grid-template-columns: 15rem minmax(0, 1fr); }
  .fishing-layout { grid-template-columns: 13rem minmax(0, 1fr); }
}

@media (max-width: 900px) {
  .home-topbar { left: 0.55rem; right: 0.55rem; top: 0.55rem; }
  .home-brand { min-width: 9rem; padding: 0.3rem 0.55rem; }
  .home-brand-row h1 { font-size: 1.2rem; }
  .home-kicker { font-size: 0.4rem; }
  .home-resources { gap: 0.25rem; }
  .home-wallet { padding: 0.2rem 0.4rem; }
  .home-star-card { min-width: 7.5rem; padding: 0.2rem 0.38rem; }
  .home-menu-count { min-width: 3rem; }
  .home-greeting { top: 3.8rem; font-size: 0.5rem; padding: 0.2rem 0.5rem; max-width: 70%; white-space: normal; }
  .home-greeting em { display: none; }
  .home-top-actions .icon-btn { width: 2rem; height: 2rem; }
  .zone-card { width: 9.4rem; min-height: 2.45rem; padding: 0.25rem 0.35rem; }
  .zone-card::after { display: none; }
  .zone-icon { width: 1.6rem; height: 1.6rem; }
  .zone-icon svg { width: 1.3rem; height: 1.3rem; }
  .zone-copy strong { font-size: 0.68rem; }
  .zone-copy small { font-size: 0.38rem; }
  .zone-arrow { font-size: 1.1rem; }
  .zone-livestock { top: 31%; }
  .zone-farm { top: 55%; }
  .zone-residence { top: 13.5%; }
  .zone-menu { top: 25.5%; }
  .zone-fishing { top: 72%; left: 41%; }
  .home-function-stack { width: 8.1rem; top: 33%; right: 1.4%; }
  .func-btn { min-height: 2rem; padding: 0.2rem 0.3rem; gap: 0.25rem; }
  .func-icon { width: 1.4rem; height: 1.4rem; }
  .func-icon svg { width: 1.15rem; height: 1.15rem; }
  .func-btn strong { font-size: 0.53rem; }
  .func-btn small { display: none; }
  .home-tip-card { width: 54%; bottom: 4.4rem; padding: 0.25rem 0.5rem; }
  .home-tip-card p { font-size: 0.45rem; }
  .home-footer { padding: 0.4rem 0.6rem 0.5rem; }
  .home-footer-meta { width: 26%; }
  .home-footer-meta span { font-size: 0.46rem; }
  .home-footer-meta small { font-size: 0.38rem; }
  .service-btn { min-width: 8rem; min-height: 2.5rem; padding: 0.18rem 0.9rem 0.24rem; }
  .service-btn span { font-size: 0.75rem; }
  .service-btn small { font-size: 0.4rem; }
  .home-codex-btn { font-size: 0.56rem; min-height: 2rem; }
  .manage-modal { width: 100%; }
  .manage-body { padding: 0.7rem 0.8rem; }
  .farm-layout, .fishing-layout, .residence-layout, .menu-layout, .gacha-layout { grid-template-columns: 1fr; }
  .farm-plots-wrap { order: -1; }
  .seed-list { max-height: 10rem; }
  .plot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pen-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ingredient-picker { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .codex-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .manage-modal { max-height: 96%; }
}

@media (max-height: 480px) and (pointer: coarse) {
  .home-topbar { top: 0.3rem; left: 0.4rem; right: 0.4rem; }
  .home-brand { min-width: 7rem; padding: 0.2rem 0.4rem; border-width: 1.5px; }
  .home-kicker { display: none; }
  .home-brand-row h1 { font-size: 1rem; }
  .home-day-pill { font-size: 0.38rem; padding: 0.08rem 0.3rem; }
  .home-wallet { gap: 0.18rem; padding: 0.12rem 0.3rem; border-width: 1.5px; }
  .home-wallet strong { font-size: 0.8rem; }
  .home-wallet small { display: none; }
  .home-star-card { min-width: 5.6rem; padding: 0.12rem 0.3rem; border-width: 1.5px; }
  .home-star-head { font-size: 0.42rem; }
  .home-star-card > small { display: none; }
  .home-menu-count { min-width: 2.4rem; padding: 0.1rem 0.25rem; border-width: 1.5px; }
  .home-menu-count span { font-size: 0.34rem; }
  .home-menu-count strong { font-size: 0.54rem; }
  .home-top-actions .icon-btn { width: 1.8rem; height: 1.8rem; }
  .home-greeting { display: none; }
  .zone-card { width: 8rem; min-height: 2.5rem; border-width: 1.5px; border-radius: 0.5rem; }
  .zone-icon { width: 1.45rem; height: 1.45rem; }
  .zone-icon svg { width: 1.2rem; height: 1.2rem; }
  .zone-copy strong { font-size: 0.62rem; }
  .zone-copy small { display: none; }
  .zone-arrow { display: none; }
  .zone-livestock { left: 2%; top: 27%; }
  .zone-farm { left: 2%; top: 51%; }
  .zone-fishing { left: 41%; top: 67%; }
  .zone-residence { left: 35%; top: 11%; }
  .zone-menu { left: 35%; top: 22%; }
  .home-function-stack { width: 7rem; top: 28%; right: 1%; gap: 0.3rem; }
  .func-btn { min-height: 2.5rem; padding: 0.18rem 0.3rem; border-width: 1.2px; }
  .func-icon { width: 1.3rem; height: 1.3rem; }
  .func-icon svg { width: 1.1rem; height: 1.1rem; }
  .func-btn strong { font-size: 0.56rem; }
  .func-btn small { display: none; }
  .func-dot { width: 0.32rem; height: 0.32rem; }
  .func-lock { font-size: 0.3rem; padding: 0.02rem 0.2rem; }
  .home-tip-card { display: none; }
  .home-footer { padding: 0.2rem 0.45rem 0.25rem; justify-content: center; }
  .home-footer-meta { display: none; }
  .service-btn { min-width: 9rem; min-height: 2.6rem; padding: 0.15rem 0.8rem 0.2rem; }
  .service-btn span { font-size: 0.72rem; }
  .service-btn small { display: none; }
  .home-codex-btn { position: absolute; right: 0.55rem; bottom: 0.45rem; min-height: 2rem; font-size: 0.5rem; padding: 0.12rem 0.55rem; }
  .manage-body { padding: 0.5rem 0.55rem; }
  .manage-modal .modal-head { padding: 0.5rem 0.7rem; }
  .manage-modal .modal-icon { width: 1.7rem; height: 1.7rem; font-size: 0.8rem; }
  .manage-modal .modal-title h2 { font-size: 1rem; }
  .manage-modal .modal-title p { font-size: 0.42rem; }
  .manage-modal .modal-foot { padding: 0.35rem 0.7rem 0.4rem; }
  .manage-foot > span { display: none; }
  .plot-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.3rem; }
  .plot-card { min-height: 6.7rem; padding: 0.3rem; }
  .plot-visual { height: 2.4rem; }
  .plot-visual img { width: 2rem; height: 2rem; }
  .pen-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.3rem; }
  .pen-card { min-height: 8rem; padding: 0.35rem; }
  .pen-visual { height: 2.8rem; }
  .pen-visual img { width: 2.8rem; height: 2.8rem; }
  .shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.3rem; }
  .shop-card { padding: 0.35rem; }
  .gacha-machine { min-height: 11rem; }
  .gacha-dome { width: 5.5rem; height: 5.5rem; }
  .gacha-base { width: 6.5rem; height: 2.2rem; }
  .gacha-layout { grid-template-columns: 9rem minmax(0, 1fr); }
  .ingredient-picker { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .menu-layout { grid-template-columns: 1fr 1fr; }
  .fish-table { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (pointer: coarse) {
  .home-top-actions .icon-btn { width: 40px; height: 40px; }
}

@media (max-width: 560px) {
  .home-resources { gap: 0.2rem; }
  .home-star-card { display: none; }
  .home-top-actions #home-help-btn { display: none; }
  .zone-card { width: 6.8rem; min-height: 2rem; }
  .zone-copy small { display: none; }
  .zone-livestock { top: 30%; }
  .zone-farm { top: 56%; }
  .zone-fishing { left: 40%; top: 72%; }
  .zone-residence { top: 14%; }
  .zone-menu { top: 27%; }
  .home-function-stack { width: 6rem; }
  .func-btn strong { font-size: 0.48rem; }
  .home-tip-card { display: none; }
  .home-footer { gap: 0.35rem; }
  .home-footer-meta { width: auto; }
  .home-footer-meta small { display: none; }
  .home-codex-btn { display: none; }
  .service-btn { min-width: 8.5rem; }
  .farm-layout, .fishing-layout, .residence-layout, .menu-layout, .gacha-layout { grid-template-columns: 1fr; }
  .plot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pen-grid { grid-template-columns: 1fr; }
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .codex-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ingredient-picker { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
