:root {
  color-scheme: light; --paper:#f5f7f4; --ink:#172b27; --muted:#52635d; --pine:#103a32;
  --accent:#17634e; --line:#dce5df; --soft:#eaf3ec; --white:#fff;
  font: 16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--paper); color:var(--ink);
}
*, *::before, *::after { box-sizing:border-box; }
body,h1,h2,h3,p,dl,dd { margin:0; }
body { min-width:0; }
h1,h2,h3 { line-height:1.15; letter-spacing:-.025em; overflow-wrap:anywhere; }
h1 { font-size:clamp(2.05rem,5vw,3.55rem); }
h2 { font-size:1.35rem; }
h3 { font-size:1.12rem; }
a { color:var(--accent); text-underline-offset:.2em; overflow-wrap:anywhere; }
a:hover { color:var(--pine); }
:focus-visible { outline:2px solid #11805f; outline-offset:3px; }
[hidden] { display:none !important; }
.wrap { max-width:1440px; margin-inline:auto; padding-inline:clamp(1rem,3vw,2rem); }
.top,.footer { background:var(--white); border-block-end:1px solid var(--line); }
.top-inner,.footer-inner { display:flex; gap:.7rem 1.5rem; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.top-inner { min-height:61px; padding-block:.7rem; }
.footer { margin-top:3.5rem; border-block-start:1px solid var(--line); border-block-end:0; padding-block:1.4rem; color:var(--muted); font-size:.85rem; }
.brand { display:flex; align-items:center; gap:.65rem; color:var(--ink); font-weight:780; text-decoration:none; font-size:1.2rem; }
.brand-mark { display:grid; place-items:center; width:2rem; height:2rem; border-radius:.56rem; background:var(--pine); color:var(--white); font-size:1rem; }
.top nav { display:flex; flex-wrap:wrap; gap:.45rem 1.2rem; }
.top nav a { text-decoration:none; color:var(--muted); font-size:.88rem; font-weight:620; }
.top nav a:hover { color:var(--accent); text-decoration:underline; }
.pill { padding:.22rem .58rem; display:inline-block; border-radius:100px; background:#edf2ec; color:var(--pine); font-weight:700; font-size:.75rem; }
.skip { position:absolute; top:-3rem; left:1rem; padding:.4rem .65rem; background:var(--white); z-index:1100; }
.skip:focus { top:1rem; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero { background-color:var(--pine); color:var(--white); padding-block:clamp(1.8rem,4vw,3.1rem);
  background-image:radial-gradient(ellipse at 92% 10%,#23614e,transparent 65%),repeating-linear-gradient(90deg,transparent 0 79px,#fff1 80px),repeating-linear-gradient(0deg,transparent 0 47px,#fff1 48px); }
.kicker,.eyebrow { font-size:.72rem; font-weight:750; text-transform:uppercase; letter-spacing:.15em; }
.kicker { color:#bce3d0; margin-bottom:.8rem; }
.eyebrow { color:var(--accent); margin-top:.75rem; }
.hero-copy { margin-top:.7rem; color:#d2e5dc; max-width:68ch; }
.notice { border:1px solid #d5e4d8; border-radius:.55rem; padding:.62rem .9rem; background:var(--soft); color:var(--pine); font-size:.86rem; margin-bottom:1rem; }
.registry { padding-top:1.15rem; }
.registry-grid { display:grid; grid-template-columns:236px minmax(0,1fr); gap:1rem; align-items:start; }
.main-col { display:grid; gap:1rem; min-width:0; align-content:start; }
.panel { padding:1.05rem; border:1px solid var(--line); border-radius:.82rem; background:var(--white); min-width:0; }
.panel p + p,.panel h2 + p,.panel h3 + p { margin-top:.4rem; }
.panel h3 { margin-top:.3rem; }
.sidebar h2 { font-size:1.05rem; padding-bottom:.65rem; border-bottom:1px solid var(--line); margin-bottom:.85rem; }
.filter-form { display:grid; gap:.65rem; }
.filter-form label,.filter-form legend { font-size:.83rem; font-weight:680; }
.filter-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.filter-form small { color:var(--muted); font-weight:400; }
.filter-form input,.filter-form select { width:100%; min-width:0; font:inherit; font-weight:500; color:var(--ink); margin-top:.2rem; border:1px solid var(--line); border-radius:.35rem; background:var(--white); padding:.52rem; }
.input-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
.muted { color:var(--muted); }
.small { font-size:.87rem; }
.tiny { font-size:.75rem; }
.block { display:block; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem .85rem; }
.actions a { font-size:.88rem; font-weight:670; }
.button { border:1px solid transparent; border-radius:.48rem; padding:.55rem .85rem; color:var(--white); background:var(--pine); cursor:pointer; font:inherit; font-size:.88rem; font-weight:700; text-decoration:none; }
.button:hover { background:var(--accent); color:var(--white); }
.button.secondary { border-color:var(--line); background:var(--white); color:var(--pine); }
.button.secondary:hover { background:var(--soft); }
.mobile-controls { display:none; }
dialog { inset:0 0 0 auto; margin:0; border:0; border-left:1px solid var(--line); width:min(100vw,390px); max-width:none; height:100%; max-height:none; padding:1.15rem; color:var(--ink); }
dialog::backdrop { background:#172b2780; }
.dialog-title { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.map-panel { overflow:hidden; padding:0; }
.map-heading,.section-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.4rem 1rem; }
.map-heading { border-bottom:1px solid var(--line); padding:.7rem 1rem; }
.map-heading h2 { font-size:1.02rem; }
.map-preview,.map-canvas { height:clamp(210px,29vw,310px); background-color:#eaf1ed; }
.map-preview { display:grid; place-items:center; background-image:url('world.svg'),linear-gradient(#dce7e1 1px,transparent 1px),linear-gradient(90deg,#dce7e1 1px,transparent 1px);
  background-position:center; background-repeat:no-repeat,repeat,repeat; background-size:contain,42px 42px,42px 42px; }
.map-canvas { position:relative; z-index:0; }
.map-status { padding:.4rem 1rem; }
.map-pin { border-radius:50%; background:var(--accent); border:2px solid white; box-shadow:0 1px 4px #172b2770; }
.section-heading { margin-bottom:.65rem; }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.plant-card { display:flex; flex-direction:column; }
.plant-card:hover { border-color:#9ebbad; }
.card-top { display:flex; justify-content:space-between; align-items:center; gap:.4rem; }
.card-icon { display:grid; place-items:center; width:2rem; height:2rem; border-radius:.5rem; background:#e8f1eb; color:var(--accent); font-weight:800; }
.plant-card h3 a { color:var(--ink); text-decoration:none; }
.plant-card h3 a:hover { text-decoration:underline; }
.plant-card h3 + p { margin-top:.4rem; }
.card-stats { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin-block:.7rem; padding-block:.65rem; border-block:1px solid var(--line); }
.card-stats dt,.metric dt,.hero-stats dt { color:var(--muted); font-size:.75rem; }
.card-stats dd,.metric-value,.hero-stats dd { font-weight:750; font-variant-numeric:tabular-nums; }
.card-link { margin-top:auto; padding-top:.65rem; font-weight:700; font-size:.85rem; }
.pager { margin-top:.85rem; }
.detail { max-width:1260px; padding-top:1.1rem; }
.entity-hero { border-radius:.85rem; padding:clamp(1.15rem,3.5vw,2.2rem); }
.entity-hero .actions { margin-bottom:.7rem; }
.hero-stats { border-top:1px solid #ffffff47; margin-top:1rem; padding-top:.7rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.hero-stats dt { color:#d2e5dc; }
.hero-stats dd { font-size:1.1rem; }
.detail-grid { display:grid; align-items:start; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:1rem; margin-top:1rem; }
.metric-grid,.simple-stats { margin-top:.75rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.metric { background:var(--paper); border-radius:.45rem; padding:.7rem; overflow-wrap:anywhere; }
.metric dt { text-transform:uppercase; font-weight:700; letter-spacing:.035em; }
.metric-value { font-size:1.08rem; margin-block:.15rem; }
.simple-stats { margin-bottom:.7rem; font-size:.9rem; }
.simple-stats dt { font-weight:700; }
.trail { font-size:.85rem; margin-bottom:.75rem; color:var(--muted); }
.trail ol { margin:0; padding:0; list-style:none; display:flex; gap:.4rem; flex-wrap:wrap; }
.trail li + li::before { content:"/"; margin-right:.4rem; }
.clean-list { padding:0; margin:.65rem 0 0; list-style:none; display:grid; gap:.45rem; }
.separated li + li { border-top:1px solid var(--line); padding-top:.55rem; }
.brief { background:#eaf4ec; border-color:#cee3d3; }
.pre-line { white-space:pre-line; }
@media (max-width:1180px) { .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:870px) {
  .registry-grid,.detail-grid { grid-template-columns:minmax(0,1fr); }
  .sidebar { display:none; }
  .mobile-controls { display:block; }
}
@media (max-width:575px) {
  .top nav { order:3; width:100%; }
  .card-grid,.hero-stats { grid-template-columns:minmax(0,1fr); }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
