/* ============================================================
   YardMate — plant pages (programmatic SEO)
   Extends the marketing site's styles.css: same variables
   (--parchment, --card, --green, --serif, --sans…), same nav
   and footer chrome. Card language mirrors the iOS plant
   detail page (radius 22, warm cards, eyebrow labels).
   ============================================================ */

.plant-body { background: var(--parchment); }

/* fixed site nav needs a solid ground on subpages (no hero behind it) */
.nav--solid {
  background: rgba(242, 238, 227, 0.92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line-2);
}

.plant-page {
  max-width: 760px;
  margin: 0 auto;
  padding: 108px var(--gutter) 0;
}

/* ---------- breadcrumbs ---------- */
.crumbs { font-size: 0.84rem; color: var(--muted); margin-bottom: 18px; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--ink); }
.crumbs .sep { margin: 0 7px; opacity: 0.55; }

/* ---------- hero ---------- */
.plant-hero {
  width: 100%; height: auto; display: block;
  border-radius: 22px;
  box-shadow: var(--shadow-md);
}

/* gallery strip under hero (like the app's photo gallery row) */
.plant-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.plant-gallery img { width: 100%; height: auto; border-radius: 14px; box-shadow: var(--shadow-sm); }

/* ---------- title block (name · scientific · difficulty pill) ---------- */
.title-block { margin: 26px 0 8px; }
.title-block h1 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(2rem, 5vw, 2.7rem);
  color: var(--ink);
}
.title-block .sci {
  font-family: var(--serif);
  font-style: italic;
  color: var(--muted);
  font-size: 1.08rem;
  margin-top: 6px;
}
.diff-pill {
  display: inline-flex; align-items: center; gap: 0.5em;
  margin-top: 14px;
  border-radius: 999px;
  padding: 0.42em 1em;
  font-size: 0.84rem; font-weight: 600;
  background: rgba(110, 138, 99, 0.16); color: #3F5A38;
}
.diff-pill--1 { background: rgba(201, 162, 75, 0.18); color: #7A5E1E; }
.diff-pill--2 { background: rgba(176, 90, 55, 0.16); color: #8A4326; }

/* ---------- generic card + section titles ---------- */
.pcard {
  background: var(--card);
  border: 1px solid var(--line-2);
  border-radius: 22px;
  box-shadow: var(--shadow-sm);
  padding: 22px 24px;
  margin: 18px 0;
}
.plant-page h2 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.5rem;
  margin: 40px 0 14px;
  color: var(--ink);
}
.plant-page h3 { font-size: 1.02rem; margin: 20px 0 10px; color: var(--ink); }
.plant-page p { color: var(--ink-soft); margin: 0.55em 0; }
.plant-page .eyebrow { margin-bottom: 0.45rem; }

/* ---------- quick stats (WATER / LIGHT / HARDY three columns) ---------- */
.quickstats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: center; }
.quickstats .qs__label {
  font-size: 0.68rem; font-weight: 600; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--muted);
}
.quickstats .qs__value { font-weight: 600; color: var(--ink); margin-top: 4px; font-size: 0.98rem; }
.quickstats .qs__sub { font-size: 0.78rem; color: var(--muted); margin-top: 2px; line-height: 1.35; }
.quickstats > div:nth-child(2) { border-left: 1px solid var(--line-2); border-right: 1px solid var(--line-2); }
.quickstats--1 { grid-template-columns: 1fr; }
.quickstats--2 { grid-template-columns: 1fr 1fr; }
.quickstats--1 > div:nth-child(2), .quickstats--2 > div:nth-child(2) { border: none; }
@media (max-width: 480px) {
  .quickstats, .quickstats--1, .quickstats--2 { grid-template-columns: 1fr; text-align: left; }
  /* 单列堆叠时每格变「图标左 · 文字右」两列小格,图标不再居中悬空 */
  .quickstats > div { padding: 9px 0; display: grid; grid-template-columns: 36px 1fr; align-items: center; column-gap: 8px; }
  .quickstats .ic { margin: 0; grid-row: 1 / 4; justify-self: center; }
  .quickstats > div:nth-child(2) { border: none; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
}

/* ---------- seasonal grids (watering / fertilizing) ---------- */
.season-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; padding: 0; margin: 8px 0 0; list-style: none; }
.season-grid li { background: var(--card-warm); border-radius: 14px; padding: 10px 14px; font-size: 0.92rem; color: var(--ink); }
.season-grid .k { display: block; color: var(--muted); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.08em; }

/* ---------- chips ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 10px 0 0; list-style: none; }
.chips li {
  background: var(--card-warm); border: 1px solid var(--line-2);
  border-radius: 999px; padding: 4px 13px; font-size: 0.86rem; color: var(--ink-soft);
}

/* ---------- At a Glance rows ---------- */
.glance { padding: 0; margin: 0; list-style: none; }
.glance li {
  display: flex; justify-content: space-between; gap: 18px;
  padding: 9px 0; border-bottom: 1px solid var(--line-2);
  font-size: 0.93rem;
}
.glance li:last-child { border-bottom: none; }
.glance .k { color: var(--muted); flex-shrink: 0; }
.glance .v { color: var(--ink); text-align: right; }

/* ---------- bloom cycle strip ---------- */
.bloom-strip { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; padding: 0; margin: 10px 0 4px; list-style: none; }
.bloom-strip li {
  text-align: center; font-size: 0.66rem; color: var(--muted);
  padding: 7px 0 5px; border-radius: 8px; background: var(--card-warm);
}
.bloom-strip li.on { background: var(--sage); color: #F6F1E6; font-weight: 600; }

/* ---------- toxicity ---------- */
.tox-headline { font-weight: 700; color: var(--ink); font-size: 1.02rem; margin: 0 0 8px; }
.tox-row { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--line-2); font-size: 0.93rem; }
.tox-row:last-of-type { border-bottom: none; }
.tox-row .v { color: var(--ink); text-align: right; }
.disclaimer { color: var(--muted); font-size: 0.79rem; margin-top: 12px; }

/* ---------- story / history ---------- */
.hist-fig { margin: 0 0 16px; }
.hist-fig img { width: 100%; height: auto; border-radius: 16px; box-shadow: var(--shadow-sm); }

/* ---------- meaning cards ---------- */
.meaning-cards { display: grid; gap: 14px; }
.meaning-cards .eyebrow { margin-bottom: 0.35rem; }
.sym-list { padding: 0; margin: 10px 0 0; list-style: none; }
.sym-list li { margin: 0.4em 0; color: var(--ink-soft); font-size: 0.94rem; }
.sym-list .kw { font-weight: 600; color: var(--ink); }
.uses-list { padding: 0; margin: 6px 0 0; list-style: none; }
.uses-list li { margin: 0.45em 0; padding-left: 1.1em; position: relative; color: var(--ink-soft); font-size: 0.94rem; }
.uses-list li::before { content: "❧"; position: absolute; left: 0; color: var(--sage); font-size: 0.8em; }

/* ---------- similar plants ---------- */
.similar-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; padding: 0; margin: 12px 0 0; list-style: none; }
.similar-grid a { display: block; }
.similar-grid img { width: 100%; height: auto; border-radius: 14px; box-shadow: var(--shadow-sm); transition: transform 0.25s ease; }
.similar-grid a:hover img { transform: translateY(-3px); }
.similar-grid .sname { display: block; font-weight: 600; font-size: 0.88rem; color: var(--ink); margin-top: 7px; line-height: 1.3; }
.similar-grid .ssci { display: block; font-size: 0.76rem; font-style: italic; color: var(--muted); }

/* ---------- FAQ ---------- */
.faq details {
  background: var(--card); border: 1px solid var(--line-2); border-radius: 16px;
  margin: 10px 0; padding: 4px 18px;
}
.faq summary { cursor: pointer; font-weight: 600; color: var(--ink); padding: 12px 0; font-size: 0.96rem; }
.faq details p { margin: 0 0 14px; font-size: 0.93rem; }

/* ---------- app CTA band (site dark-band language) ---------- */
.plant-cta {
  background: var(--green);
  border-radius: 26px;
  padding: 44px 28px;
  margin: 48px 0 56px;
  text-align: center;
  box-shadow: var(--shadow-md);
}
.plant-cta h2 { font-family: var(--serif); color: #F6F1E6; margin: 0 0 8px; font-size: 1.7rem; }
/* 深绿底上的文字必须压过 .plant-page p / .plant-page .eyebrow 的深色墨水规则 */
.plant-cta .eyebrow { color: rgba(246, 241, 230, 0.72); }
.plant-cta p { color: rgba(246, 241, 230, 0.88); }
.plant-cta__sub { max-width: 46ch; margin: 0 auto 20px; font-size: 1.02rem; }

/* ---------- hub & letter pages ---------- */
.hub-head h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(2rem, 5vw, 2.6rem); color: var(--ink); }
.hub-head .lead { margin-top: 10px; }
.letters { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 20px 0; list-style: none; }
.letters a {
  display: inline-block; min-width: 46px; text-align: center;
  background: var(--card); border: 1px solid var(--line-2); border-radius: 13px;
  padding: 9px 11px 7px; font-weight: 600; color: var(--ink);
  box-shadow: var(--shadow-sm);
}
.letters a:hover { background: var(--card-warm); }
.letters .cnt { display: block; font-size: 0.68rem; color: var(--muted); font-weight: 400; }
.plant-index { columns: 2; column-gap: 30px; padding: 0; margin: 18px 0; list-style: none; }
@media (max-width: 560px) { .plant-index { columns: 1; } }
.plant-index li { break-inside: avoid; margin: 0 0 12px; }
.plant-index a { font-weight: 600; color: var(--ink); font-size: 0.95rem; }
.plant-index a:hover { color: var(--rust); }
.plant-index .rsci { display: block; color: var(--muted); font-size: 0.82rem; font-style: italic; }

/* ---------- inline lucide icons (same set as the app) ---------- */
.ic { width: 18px; height: 18px; vertical-align: -3px; flex-shrink: 0; }
.ic--eyebrow { width: 15px; height: 15px; margin-right: 6px; vertical-align: -3px; }
.ic--glance { width: 16px; height: 16px; margin-right: 8px; color: var(--sage); }
.ic--tab { width: 16px; height: 16px; margin-right: 6px; }
.ic--water { color: var(--water); }
.ic--sun { color: var(--gold); }
.ic--sky { color: #6C9FC4; }
.ic--cta { width: 22px; height: 22px; color: var(--rust); }
.quickstats .ic { width: 22px; height: 22px; display: block; margin: 0 auto 6px; }
.eyebrow--sage { color: var(--sage); }
.eyebrow--rose { color: #C77B8E; }
.eyebrow--water { color: var(--water); }

/* ---------- soil profile (app: SoilMixCard layered diagram) ---------- */
.soil-wrap { display: flex; gap: 18px; align-items: stretch; margin-top: 6px; }
.soil-stack {
  display: flex; flex-direction: column; width: 84px; min-height: 150px;
  border-radius: 12px; overflow: hidden; flex-shrink: 0;
  box-shadow: inset 0 0 0 1px var(--line-2);
}
.soil-stack i { display: block; }
.soil-legend { list-style: none; padding: 0; margin: 0; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.soil-legend li { display: flex; align-items: baseline; gap: 9px; font-size: 0.9rem; }
.soil-legend .dot, .npk-legend .dot, .map-legend .dot {
  width: 11px; height: 11px; border-radius: 4px; flex-shrink: 0; display: inline-block; align-self: center;
}
.soil-l { color: var(--ink); font-weight: 600; flex: 1; }
.soil-l em { display: block; font-style: normal; font-weight: 400; color: var(--muted); font-size: 0.82rem; }
.soil-pct { color: var(--muted); font-size: 0.85rem; }
.card-tip { color: var(--ink-soft); font-style: italic; font-size: 0.88rem; margin-top: 14px; }

/* ---------- fertilizer (app: FertilizerCard NPK ratio bar) ---------- */
.fert-name { font-weight: 700; color: var(--ink); font-size: 1.05rem; margin: 2px 0 4px; }
.fert-npk { color: var(--muted); font-weight: 500; font-size: 0.86rem; margin-left: 6px; }
.npk-bar { display: flex; gap: 3px; border-radius: 10px; overflow: hidden; margin: 14px 0 8px; }
.npk-bar i {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  height: 34px; font-style: normal; color: #F6F1E6; font-size: 0.78rem; font-weight: 500;
  min-width: 44px;
}
.npk-bar b { font-size: 0.9rem; }
.npk-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 0; margin: 0 0 12px; }
.npk-legend li { display: flex; align-items: center; gap: 7px; font-size: 0.82rem; color: var(--ink-soft); }

/* ---------- bloom cycle bar chart (app: BloomCycleCard) ---------- */
.bloom-peak-label { color: var(--muted); font-size: 0.8rem; margin: 8px 0 0; }
.bloom-range { font-family: var(--serif); font-style: italic; font-size: 1.5rem; color: var(--ink); margin: 0 0 14px; }
.bloom-bars { display: flex; align-items: flex-end; gap: 5px; }
.bloom-bars > div { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.bloom-bars i { display: block; width: 100%; max-width: 22px; border-radius: 4px 4px 2px 2px; }
.bloom-bars span { font-size: 0.68rem; color: var(--muted); }
.bloom-bars .on span { color: var(--ink); font-weight: 700; }

/* ---------- toxicity (app: ToxicityCard with target switcher) ---------- */
.tox-head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.ic--tox { width: 30px; height: 30px; }
.sev-safe { color: #4C7D4F; }
.sev-caution { color: #B08A2E; }
.sev-danger { color: #B03A2E; }
.sev-neutral { color: var(--muted); }
.tox-headline { font-weight: 700; color: var(--ink); font-size: 1.04rem; margin: 0; }
.tox-compound { display: flex; align-items: center; color: var(--ink-soft); font-size: 0.88rem; margin: 4px 0 10px; }
.tox-tabs input { position: absolute; opacity: 0; pointer-events: none; }
.tox-tabs label {
  display: inline-flex; align-items: center; cursor: pointer;
  border: 1px solid var(--line); border-radius: 999px;
  padding: 6px 14px; margin: 0 8px 12px 0; font-size: 0.88rem; font-weight: 600; color: var(--ink-soft);
}
.tox-panel { display: none; border-top: 1px solid var(--line-2); padding-top: 12px; }
/* radio -> label -> panel wiring (order: inputs+labels interleaved, panels after) */
.tox-tabs input:nth-of-type(1):checked ~ .tox-panel:nth-of-type(1),
.tox-tabs input:nth-of-type(2):checked ~ .tox-panel:nth-of-type(2),
.tox-tabs input:nth-of-type(3):checked ~ .tox-panel:nth-of-type(3) { display: block; }
.tox-tabs input:checked + label {
  background: var(--green); color: #F6F1E6; border-color: var(--green);
}
.tox-degree { font-weight: 700; font-size: 1rem; margin: 0 0 6px; }
.tox-detail { display: flex; align-items: baseline; font-size: 0.9rem; color: var(--ink-soft); margin: 7px 0; }
.tox-detail .ic--glance { align-self: center; }
.tox-detail b { margin-right: 6px; color: var(--ink); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; }

/* ---------- distribution map (app: DistributionMapCard) ---------- */
.dist-map { position: relative; border-radius: 14px; overflow: hidden; background: #EAE4D3; }
.dist-map img { width: 100%; height: auto; display: block; }
.dist-map .dist-overlay { position: absolute; inset: 0; }
.map-legend { list-style: none; display: flex; gap: 18px; padding: 0; margin: 12px 0 0; }
.map-legend li { display: flex; align-items: center; gap: 7px; font-size: 0.84rem; color: var(--ink-soft); }
.map-legend .dot { border-radius: 50%; }

/* ---------- lightbox(纯 CSS :target,点图当前页放大) ---------- */
.lb-open { display: block; cursor: zoom-in; }
.lightbox {
  display: none; position: fixed; inset: 0; z-index: 200;
  background: rgba(20, 25, 20, 0.92);
  align-items: center; justify-content: center; padding: 4vh 4vw;
}
.lightbox:target { display: flex; }
.lightbox img {
  position: relative; max-width: 100%; max-height: 100%; width: auto; height: auto;
  border-radius: 14px; box-shadow: var(--shadow-lg);
}
.lightbox__close { position: absolute; inset: 0; cursor: zoom-out; }
.lightbox__close::after {
  content: "×"; position: absolute; top: 14px; right: 22px;
  font-size: 2.2rem; line-height: 1; color: rgba(246, 241, 230, 0.85);
}

/* ---------- inline app CTA card ---------- */
.inline-cta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 14px;
  border: 1px solid rgba(30, 49, 39, 0.18);
  background: var(--card-warm);
}
.inline-cta span { flex: 1; min-width: 220px; color: var(--ink); font-weight: 600; font-size: 0.95rem; }
.inline-cta b {
  background: var(--green); color: #F6F1E6;
  padding: 0.65em 1.3em; border-radius: 999px;
  font-size: 0.88rem; font-weight: 600; white-space: nowrap;
  box-shadow: var(--shadow-sm);
}
.inline-cta:hover { box-shadow: var(--shadow-md); }
.inline-cta:hover b { box-shadow: var(--shadow-md); }

/* ---------- desktop floating download rail (right of content) ---------- */
.page-main { min-width: 0; }
.side-cta { display: none; }
@media (min-width: 1200px) {
  .plant-page { max-width: 1120px; }
  .page-cols { display: flex; gap: 44px; align-items: flex-start; justify-content: center; }
  .page-main { flex: 0 1 760px; max-width: 760px; }
  .side-cta {
    display: block; position: sticky; top: 104px; width: 296px; flex-shrink: 0;
    background: var(--card); border: 1px solid var(--line-2); border-radius: 22px;
    box-shadow: var(--shadow-sm); padding: 22px;
  }
}
.side-cta__head { display: flex; gap: 12px; align-items: center; }
.side-cta__head img { border-radius: 10px; }
.side-cta__head strong { font-size: 1.05rem; color: var(--ink); }
.side-cta__head span { display: block; font-size: 0.76rem; color: var(--muted); margin-top: 2px; }
/* 4 张 App Store 截图轮播:纯 CSS radio 驱动(零 JS)。
   左右箭头 + 下方功能文字互为控制,当前项高亮。radio 是 shots / feats 的前置兄弟。 */
.side-cta__carousel { position: relative; }
/* 视觉隐藏但保留焦点与键盘方向键切换(radio 组的原生能力)。
   定位在轮播中心而非容器顶部:label 激活时浏览器会把 radio 滚入视图,
   放在流首会让整页跳一大段。不用 pointer-events:none —— 那会连带
   让 <label for> 无法激活它。 */
.shot-radio {
  position: absolute; top: 50%; left: 50%;
  width: 1px; height: 1px; margin: 0; opacity: 0;
}
.side-cta__shots { position: relative; height: 330px; margin: 16px 0 2px; }
/* 机身边框用 box-shadow 的 spread 画（不占布局、圆角自动跟随），
   再叠一层落地阴影把浅色截图从同为浅色的卡片背景里拉开。 */
.shot {
  position: absolute; inset: 0; margin: auto;
  height: 100%; width: auto; border-radius: 22px;
  box-shadow:
    0 0 0 6px #1e3127,
    0 0 0 7px rgba(255, 255, 255, .16),
    0 14px 30px rgba(30, 49, 39, .26),
    0 3px 8px rgba(30, 49, 39, .16);
  opacity: 0; transition: opacity .35s ease;
}
#ymshot-0:checked ~ .side-cta__shots .shot--0,
#ymshot-1:checked ~ .side-cta__shots .shot--1,
#ymshot-2:checked ~ .side-cta__shots .shot--2,
#ymshot-3:checked ~ .side-cta__shots .shot--3 { opacity: 1; }

.shot-nav {
  display: none; position: absolute; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border-radius: 50%; cursor: pointer;
  align-items: center; justify-content: center;
  background: var(--card); border: 1px solid var(--line-2);
  color: var(--ink-soft); box-shadow: var(--shadow-sm); z-index: 2;
}
.shot-nav:hover { background: var(--card-warm); color: var(--green); }
.shot-nav .ic { width: 17px; height: 17px; }
.shot-nav--prev { left: -6px; }
.shot-nav--next { right: -6px; }
#ymshot-0:checked ~ .side-cta__shots .nav--0,
#ymshot-1:checked ~ .side-cta__shots .nav--1,
#ymshot-2:checked ~ .side-cta__shots .nav--2,
#ymshot-3:checked ~ .side-cta__shots .nav--3 { display: flex; }
/* 键盘焦点落在 radio 上时,把焦点环画到当前这对箭头上 */
#ymshot-0:focus-visible ~ .side-cta__shots .nav--0,
#ymshot-1:focus-visible ~ .side-cta__shots .nav--1,
#ymshot-2:focus-visible ~ .side-cta__shots .nav--2,
#ymshot-3:focus-visible ~ .side-cta__shots .nav--3 { outline: 2px solid var(--green); outline-offset: 2px; }

.side-cta__feats { list-style: none; padding: 0; margin: 18px 0; display: flex; flex-direction: column; gap: 4px; }
.side-cta__feats li { font-size: 0.9rem; color: var(--ink-soft); }
.side-cta__feats label {
  display: flex; align-items: center; gap: 10px; cursor: pointer;
  padding: 7px 9px; margin: 0 -9px; border-radius: 10px;
  transition: background .2s ease, color .2s ease;
}
.side-cta__feats label:hover { background: var(--card-warm); }
.side-cta__feats .ic { color: var(--sage); width: 17px; height: 17px; flex-shrink: 0; }
/* 当前项高亮 */
#ymshot-0:checked ~ .side-cta__feats .feat--0 label,
#ymshot-1:checked ~ .side-cta__feats .feat--1 label,
#ymshot-2:checked ~ .side-cta__feats .feat--2 label,
#ymshot-3:checked ~ .side-cta__feats .feat--3 label {
  background: var(--card-warm); color: var(--ink); font-weight: 600;
}
#ymshot-0:checked ~ .side-cta__feats .feat--0 .ic,
#ymshot-1:checked ~ .side-cta__feats .feat--1 .ic,
#ymshot-2:checked ~ .side-cta__feats .feat--2 .ic,
#ymshot-3:checked ~ .side-cta__feats .feat--3 .ic { color: var(--green); }
@media (prefers-reduced-motion: reduce) {
  .shot { transition: none; }
  .side-cta__feats label { transition: none; }
}
.side-cta__btn { width: 100%; justify-content: center; }

/* ---------- sticky mobile app bar ---------- */
.app-bar {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  align-items: center; gap: 11px; padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
  background: rgba(242, 238, 227, 0.96);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-top: 1px solid var(--line);
}
.app-bar img { border-radius: 8px; }
.app-bar__txt { flex: 1; line-height: 1.25; }
.app-bar__txt strong { display: block; font-size: 0.92rem; color: var(--ink); }
.app-bar__txt span { font-size: 0.74rem; color: var(--muted); }
@media (max-width: 720px) {
  .app-bar { display: flex; }
  body.plant-body { padding-bottom: 64px; }
}

/* ---------- language switcher dropdown (reuses site .lang-switch look) ---------- */
.plant-body .lang-switch { position: relative; }
.plant-body .lang-switch summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
  color: var(--ink-soft); font-size: 0.88rem; padding: 6px 4px;
}
.plant-body .lang-switch summary::-webkit-details-marker { display: none; }
.plant-body .lang-switch ul {
  position: absolute; right: 0; z-index: 120; margin: 8px 0 0; padding: 8px;
  list-style: none; background: var(--card); border: 1px solid var(--line);
  border-radius: 14px; box-shadow: var(--shadow-md); min-width: 168px; max-height: 62vh; overflow: auto;
}
.plant-body .lang-switch li a { display: block; padding: 6px 10px; border-radius: 8px; color: var(--ink); font-size: 0.9rem; }
.plant-body .lang-switch li a:hover { background: var(--card-warm); }
.plant-body .lang-switch li a[aria-current="true"] { color: var(--rust); font-weight: 600; }

@media (max-width: 720px) {
  .plant-page { padding-top: 92px; }
  .pcard { padding: 18px; }
}
