:root {
    /* Vorher nur innerhalb .btcodex-species/.btcodex-index definiert,
       wodurch andere Seitentypen (Gattung, Kulturgruppe, Systemartikel)
       die Variablen nur zufällig als Nachfahren geerbt haben. Auf :root
       gehoben, damit jede Seite verlässlich dieselbe Farbwelt bekommt. */

    /* Precision-System-Realignment (0.1.14): Der Codex entstand in der
       fruheren "Herbarium Ledger"-Phase (warmes Creme/Nah-Schwarz, Georgia-
       Serife fuer Namen). Diese Palette und Font-Stacks werden hier auf die
       inzwischen eingefrorenen Precision-System-Tokens (project-blacktrap-
       design-system, Entscheidung §18) angehoben - identisch zu
       growbook-base.css und den Elementor-Kit-Variablen. Einzige bewusste
       Abweichung: --bt-soft/--bt-muted bleiben zwei Stufen (siehe unten),
       und --bt-water bleibt ein eigener, domänenspezifischer Akzent ohne
       Site-weites Gegenstueck. */

    /* Raw-rgba-Nacharbeit (0.1.15): Die 0.1.14-Migration liess ~54 dekorative
       rgba(...)-Werte unangetastet, weil sie die ALTE Palette direkt als RGB-
       Tripel dekomponieren statt eine CSS-Variable zu referenzieren. In diesem
       Pass wurden rgba(8,10,9|18,28,23|9,14,12, X) auf die neuen --bt-bg/
       --bt-panel-soft-Dekompositionen (22,22,24 / 27,27,33) und rgba(184,255,210|
       156,203,173, X) auf die neue --bt-green-Dekomposition (107,176,121) bzw.
       eine proportional dazu aufgehellte Mint-Toenung (126,221,147) umgestellt;
       Alpha-Werte blieben unveraendert. */

    /* Restposten-Nacharbeit (0.1.16): Die letzten drei uebersehenen rgba-
       Tripel aus der alten Palette (17,26,22 / 11,16,14 / 17,21,19) wurden
       anhand ihres jeweiligen Gradient-Partners auf die passende neue
       Precision-Dekomposition umgestellt (--bt-bg 22,22,24 bzw. --bt-panel
       33,33,41), Alpha unveraendert. Ausserdem wurde --bt-cream entfernt:
       alle 6 Verwendungsstellen dienten nachweislich nur als Ersatz fuer
       bereits vorhandene Tokens an Stellen, wo das analoge Element auf
       Species-/Index-Seiten laengst --bt-ink, --bt-soft oder #ffffff nutzt
       (kein eigenstaendiger "besonders/aktiv"-Marker) - daher auf diese
       Tokens zusammengefuehrt statt als eigener warmer Akzent beibehalten. */

    /* Zweiter Restposten-Nacharbeit (0.1.17): Ein Adversarial-Review fand
       einen zweiten, unmigriert gebliebenen Cluster roher Alt-Paletten-
       rgba()-Werte, konzentriert in der Genus-/Kulturgruppen-Seitenfamilie
       (Species-TOC/-Sections, Footer-Nav-Hover, Genus-Textpanels/-Kultur-
       karten, Kulturgruppen-Stats/-Werte, Reference-Profile-Card-Cluster).
       24 rgba()-Tripel wurden konvertiert, Alpha jeweils unveraendert:
       dunkle gruenschwarze Tripel (16,24,20 / 12,24,18 / 10,24,18 / 9,17,13 /
       4,7,6 / Gradient-Paar 26,38,32+10,14,12) -> --bt-bg-Dekomposition
       (22,22,24) bzw. beim Footer-Nav-Hover auf das bereits im Nicht-Hover-
       Geschwisterselektor etablierte Paar (27,27,33 / 22,22,24), damit der
       Hover nicht in die alte Palette zurueckblitzt; blasse Mint-Tripel
       (172,214,190 / 177,214,196) -> --bt-green-Dekomposition (107,176,121),
       ein naeher am hellen Mint-Ton liegendes Tripel (183,227,204) -> die
       helle Mint-Hervorhebung (126,221,147), jeweils per Distanzvergleich zu
       den beiden in 0.1.15 dokumentierten Alt-Paletten-Referenzpunkten
       (156,203,173 bzw. 184,255,210) zugeordnet. */

    /* Hex-Bereinigung, Abschluss (0.1.18): Der in 0.1.17 zurueckgestellte
       Cluster solider Alt-Paletten-Hex-Werte wurde jetzt konvertiert -
       damit ist die Precision-System-Migration dieser Datei vollstaendig.
       #07100b/#06100b (dunkle Nah-Schwarz-Textfarbe AUF hellem/gruenem
       Akzent-Hintergrund, sitweites Pendant zur Elementor-Globalvariable
       "bt-on-live" #0E1410) -> neuer Token --bt-on-live, an allen 4
       tatsaechlichen Text-auf-Akzent-Stellen (Index-Search-Button,
       Product-Card-Button, Reference-Profile-Card-Button inkl. dessen
       !important-Override). Eine 5. Fundstelle von #06100b
       (.btcodex-reference-profile-card Hintergrund) war KEINE Text-auf-Gruen-
       Rolle, sondern eine solide dunkle Panel-Flaeche mit gruenlich getoentem
       Rand - strukturell identisch zu .btcodex-genus-page .btcodex-index-card
       (bereits auf --bt-panel migriert) - daher stattdessen auf --bt-panel
       gemappt. #b7e3cc (183,227,204) deckt sich exakt mit dem in 0.1.15
       dokumentierten hellen Mint-Referenzpunkt und tritt an 8 Stellen im
       Reference-Profile-Card-/Core-Score-Panel-/Core-Match-Badge-Cluster als
       solide Fuellung auf (Kicker-Label, Value-dd, Button-Hintergrund,
       Badge-/Panel-Akzente, Border-Top, Hover-Border) - wegen dieses
       wiederholten, einheitlichen Bedarfs als eigener Token --bt-green-bright
       (#7edd93, solides Pendant zum bereits etablierten rgba(126,221,147,*))
       festgeschrieben statt einzeln als Literal wiederholt. #dbe8df
       (Reference-Profile-Card-Summary, Fliesstext mit line-height 1.65) ->
       var(--bt-soft), analog zu allen anderen Fliesstext-Absaetzen der Datei.
       #8da898 (zwei 10px-Uppercase-Labels in Core-Match-Badge/Core-Score-
       Panel) -> var(--bt-muted), analog zu allen anderen dt-/Label-Selektoren
       der Datei. #0d1210 (.btcodex-related-card Basis-Hintergrund, von Media-/
       Body-Layern vollstaendig ueberdeckt, aber strukturell eine Karte) ->
       var(--bt-panel), wie die bereits migrierte, analoge .btcodex-index-card.
       #050605 (4x, Media-Platzhalter-Hintergrund von Hero/Index-Card/Related-
       Card/Product-Card) und #070907 (2x, Gradient-Endstop hinter denselben
       Platzhalter-Icons) -> var(--bt-bg), naechstliegender Precision-Wert zum
       alten Nah-Schwarz und farblich identisch zur Rolle "rezessierte Flaeche
       hinter Bildinhalt". #030605 (.btcodex-citation-box__copy, ein
       eingesenktes Steuerelement innerhalb eines Panels) -> var(--bt-bg),
       gleiche "eingesenkt"-Logik. #19201c (.btcodex-index-card:hover,
       Hover-Zustand des Basiswerts var(--bt-panel)) -> var(--bt-panel-soft),
       die naechstliegende Precision-Stufe UND die bereits in 0.1.16 fuer
       Hover-Zustaende etablierte Zwischenstufe.

       Zusaetzlich fand die Abschluss-Suche zwei nie zuvor erfasste rohe
       rgba()-Rueckstaende der ALTEN Palette, ausserhalb des Genus-/Kultur-
       gruppen-Clusters: rgba(238,232,220,0.34) (.btcodex-index-card__status
       Border, alte Creme/Ink-Dekomposition) -> rgba(242,242,240,0.34) (neue
       --bt-ink-Dekomposition), plus die zugehoerige Textfarbe #eef5ec ->
       var(--bt-ink); und rgba(201,168,95,0.14) (.btcodex-list--risks::before
       Hintergrund, alte Amber-Dekomposition) -> rgba(224,179,90,0.14) (neue
       --bt-amber-Dekomposition). Damit ist der komplette Farb-Migrationspfad
       (0.1.14-0.1.18) fuer diese Datei abgeschlossen. Finales Token-Set:
       --bt-bg #161618, --bt-ink #f2f2f0, --bt-soft #a8a8ae, --bt-muted
       #6c6c72, --bt-line #2e2e36, --bt-line-strong #35353f, --bt-panel
       #212129, --bt-panel-soft #1b1b21,
       --bt-green #6bb079, --bt-green-bright #7edd93, --bt-amber #e0b35a,
       --bt-water #8baebc, --bt-on-live #0e1410. Alle rgba()- und Hex-
       Vorkommen der alten "Herbarium Ledger"-Palette in dieser Datei sind
       auf diese Tokens (oder auf domaenenfremde, bewusst unveraenderte Werte
       wie #ffffff/reines Schwarz) zurueckgefuehrt; verbleibende Hex-Literale
       ausserhalb von :root sind entweder Precision-fremde, absichtliche
       Werte (z.B. #ffffff fuer Ueberschriften) oder liegen ausserhalb dieses
       Farb-Scopes (Layout/Spacing/Font-Family unveraendert). */

    /* Mobile-Layout-Fix (0.1.19): Reiner Grid-Collapse-Bugfix, UNABHAENGIG
       von der oben dokumentierten Color/Font-Migration (0.1.14-0.1.18) -
       keine Hex-/rgba-/Font-Family-Werte in diesem Pass veraendert. Zwei
       vorbestehende Responsive-Buecke behoben, die auf echten Telefon-
       breiten (~375-412px) zu ueberlappendem Text fuehrten:
       (1) .btcodex-profile-panels (2-spaltiger Kurzprofil-/System-Vergleich)
       hatte in keinem @media-Block einen Treffer - der vorhandene Mobile-
       Fix bei max-width:720px zielte faelschlich auf .btcodex-profile-panel
       (Singular, die einzelne Karte) statt auf den Plural-Container. Beim
       Grep auf dasselbe Singular/Plural-Muster wurden zwei weitere, bisher
       komplett unkollabierte 2-Spalten-Grids gefunden und im selben
       720px-Block ergaenzt: .btcodex-species__text-panels und
       .btcodex-species-toc__list.
       (2) .btcodex-related-species__grid (3-spaltiges "Mehr aus diesem
       Profil"-Raster) blieb bis zur kleinsten Breite bei repeat(3,...),
       wodurch die 24px kursiven Mono-Binomialnamen in .btcodex-related-
       card__title (sowie die analogen .btcodex-index-card__title/
       .btcodex-reference-profile-card__title) auf ~110px Spaltenbreite
       umbrachen und mit dem 150px-Media-Bild/Nachbarkarten kollidierten
       (nur 1px Grid-Gap). Neue Stufen ergaenzt: repeat(2,...) bei
       max-width:760px, 1fr bei max-width:480px (Muster wie bereits bei
       .btcodex-recommendation-grid). Zusaetzlich overflow-wrap:anywhere
       auf allen drei Binomial-Titel-Klassen sowie grid-template-rows von
       "150px 1fr" auf "150px minmax(0, auto)" bei .btcodex-related-
       card__link, damit umbrechender Text die Karte kontrolliert waechst
       statt ihren festen Rahmen zu durchbrechen. */

    /* Growbook-Kontext (0.1.20): fehlende Button-/Ueberschriftfarbe
       ergaenzt, keine funktionale Aenderung. */

    /* Exhaustive mobile-grid audit (0.1.23): supersedes the three prior
       one-off fixes (0.1.19's .btcodex-profile-panels singular/plural
       typo, plus the two separately-discovered uncollapsed 3-column
       grids .btcodex-related-species__grid and .btcodex-footer-nav__grid,
       the latter fixed only in this pass). Every grid-template-columns
       declaration in this file (base rules and inside all 7 @media
       blocks) and every no-wrap display:flex row was swept in one pass
       instead of waiting for the next screenshot. Fixes in this pass:
       (1) .btcodex-footer-nav__grid (repeat(3,...), zero prior mobile
       override anywhere) -> repeat(2,...) at max-width:760px, 1fr at
       max-width:480px, matching the .btcodex-related-species__grid
       pattern. (2) .btcodex-index-search (grid-template-columns:
       minmax(260px,1fr) minmax(210px,270px) 132px - hard px minimums
       summing to 602px, guaranteed to overflow any phone viewport, zero
       prior override) -> minmax(0, 1fr) (stacked single column) at
       max-width:760px, plus a matching border/padding adjustment on
       .btcodex-index-search__field and .btcodex-index-search__button for
       the stacked layout. (3) .btcodex-species-sidebar - a display:grid
       with no base grid-template-columns, expanded to an explicit
       repeat(2,...) by the max-width:1120px rule with no narrower
       override to collapse it back - now gets grid-template-columns:1fr
       at max-width:760px so it cannot get stuck 2-wide on a phone (a
       full-repo grep found no template currently rendering this class,
       but the CSS-side trap is closed regardless). (4)
       .btcodex-core-match-badge (flex row, no wrap, fixed ~25-char
       uppercase label + variable-length value) gets flex-wrap:wrap as a
       defensive safety net. Every other multi-column grid and no-wrap
       flex row was re-verified against its real markup in
       includes/class-btcodex-shortcodes.php and either already collapses
       correctly or is a small-fixed-column + 1fr icon/label pattern
       (92px/120px/150px 1fr) that does not overflow at phone widths, so
       it was left untouched. One dead selector, .btcodex-metric-grid--bt,
       is referenced in two @media rules but does not exist anywhere in
       the codebase; left as-is because it is harmless - the real
       .btcodex-metric-grid is always listed in the same rule and already
       receives the override. No further .btcodex-profile-panels/
       .btcodex-profile-panel-style singular/plural or misnamed-selector
       mismatches were found in any @media block. No color, font, or
       non-layout property was touched. */

    /* Word-wrap precision pass (0.1.24): overflow-wrap: anywhere -> break-word
       on profile-panel values, fixes ugly mid-word line breaks on short
       phrases; unrelated to color/font/grid work. Also downgraded on
       .btcodex-data-row__value, .btcodex-metric__label/__value, and
       .btcodex-citation-box__link (same short-phrase/URL reasoning; a
       genuinely too-long single token still gets broken by break-word's
       last-resort fallback). Left as overflow-wrap: anywhere on the three
       binomial-name title classes (.btcodex-related-card__title,
       .btcodex-index-card__title, .btcodex-reference-profile-card__title)
       per the 0.1.19 note above, since those can render a genuinely
       unbreakable long single token (species epithet or quoted cultivar
       name) inside a narrow card column. */
    --bt-bg: #161618;             /* Precision "plane" (vorher #080a09) */
    --bt-ink: #f2f2f0;            /* Precision "text-1" (vorher warmes Creme #eee8dc) */
    --bt-soft: #a8a8ae;           /* Precision "text-2", fuer laufenden Sekundaertext (vorher #c9c0ad) */
    --bt-muted: #6c6c72;          /* eigene, dunklere dritte Stufe fuer Eyebrow-/Label-Text
                                      (uppercase, 10-11px) - spiegelt growbook-base.css' eigene
                                      Zwei-Stufen-Loesung (--btgb-text-secondary/--btgb-muted);
                                      nicht auf ein einziges text-2 zusammengefuehrt, weil beide
                                      Stufen im Codex durchgaengig unterschiedliche Rollen haben */
    --bt-line: #2e2e36;           /* Precision "hairline", flacher Hex statt rgba (vorher rgba(238,232,220,.16)) */
    --bt-line-strong: #35353f;    /* growbook "--btgb-border-strong"-Aequivalent (vorher rgba(...,.3)) */
    --bt-panel: #212129;          /* Precision "raised" (vorher #111513) */
    --bt-panel-soft: #1b1b21;     /* Zwischenstufe plane/raised (vorher #151b18); siehe Docblock unten */
    --bt-green: #6bb079;          /* Precision Chlorophyll = --btgb-green (vorher #9ccbad) */
    --bt-green-bright: #7edd93;   /* solides Pendant zu rgba(126,221,147,*); Reference-Profile-
                                      Card-/Core-Score-Panel-/Core-Match-Badge-Cluster (vorher #b7e3cc) */
    --bt-amber: #e0b35a;          /* Precision "bt-attention" (vorher #c9a85f) */
    --bt-water: #8baebc;          /* unveraendert: kein Site-weites Aequivalent, Kontrast gegen
                                      #161618 weiterhin > die vorherige Kombination gegen #080a09 */
    --bt-on-live: #0e1410;        /* identisch zur Elementor-Globalvariable "bt-on-live": dunkle
                                      Tinte fuer Text auf var(--bt-green)/--bt-green-bright-Flaechen
                                      (vorher #06100b/#07100b) */

    /* Schriften - Precision System (DESIGN.md §18, FROZEN 2026-08-27), identisch
       zu growbook-base.css: Space Grotesk = Subject/Identity, IBM Plex Sans =
       Interface/Fliesstext, IBM Plex Mono (kursiv) = binomische/wissenschaftliche
       Namen und Daten-/Referenzwerte. Alle drei werden bereits sitewide ueber das
       Elementor-Kit geladen (elementor-gf-spacegrotesk-css, elementor-gf-ibmplexsans-css,
       elementor-gf-ibmplexmono-css); kein eigenes @font-face/Enqueue notwendig, da
       /codex-v2/... als normale WP-Shortcode-Seiten im Theme gerendert werden und
       somit den Kit-Head wie jede andere Seite erhalten. */
    --bt-font-display:
        "Space Grotesk",
        "Segoe UI Variable Text",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
    --bt-font-text:
        "IBM Plex Sans",
        "Segoe UI Variable Text",
        "Segoe UI Variable",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;
    --bt-font-mono:
        "IBM Plex Mono",
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Consolas,
        monospace;
}

.btcodex-route {
    background: var(--bt-bg);
    color: var(--bt-ink);
}

.btcodex-route *,
.btcodex-species *,
.btcodex-index * {
    box-sizing: border-box;
}

.btcodex-species,
.btcodex-index {
    width: min(1180px, calc(100vw - 40px));
    margin: 0 auto;
    padding: 0 0 80px;
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
}

.btcodex-kicker,
.btcodex-species__kicker {
    margin: 0 0 14px;
    color: var(--bt-green);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 2.6px;
    text-transform: uppercase;
}

/* Systemartikel - Shell war bisher unstyled (0 Regeln), wird jetzt an
   das Grundlayout (Breite/Zentrierung wie .btcodex-species/.btcodex-index)
   und den Hero-Look der übrigen Seiten angeglichen. */

.btcodex-system-article {
    width: min(860px, calc(100vw - 40px));
    margin: 0 auto;
    padding: 0 0 80px;
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
}

.btcodex-system-article__hero {
    padding: 54px 0 34px;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-system-article__title {
    margin: 0;
    color: #ffffff;
    font-family: var(--bt-font-display);
    font-size: clamp(34px, 4.6vw, 54px);
    font-weight: 400;
    line-height: 1.05;
}

.btcodex-system-article__subtitle {
    max-width: 620px;
    margin: 14px 0 0;
    color: var(--bt-soft);
    font-size: 17px;
    line-height: 1.55;
}

.btcodex-system-article__summary {
    max-width: 680px;
    margin: 18px 0 0;
    color: var(--bt-muted);
    font-size: 14px;
    line-height: 1.6;
}

/* Species hero */

.btcodex-species-hero {
    display: grid;
    grid-template-columns: minmax(360px, 46%) minmax(0, 1fr);
    min-height: 520px;
    border: 1px solid var(--bt-line);
    background: rgba(22, 22, 24, 0.92);
}

.btcodex-species-hero__media {
    position: relative;
    min-height: 520px;
    background: var(--bt-bg);
    overflow: hidden;
}

.btcodex-species-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(22, 22, 24, 0) 42%, rgba(22, 22, 24, 0.58) 100%),
        linear-gradient(0deg, rgba(22, 22, 24, 0.16), rgba(22, 22, 24, 0.16));
    pointer-events: none;
}

.btcodex-species-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
}

/* External-image attribution (Namensnennung). Neutral, high-contrast overlay
   in the hero's bottom-right corner; only rendered when the entry has an
   image_author or image_license value (see class-btcodex-shortcodes.php). */
.btcodex-species-hero__credit {
    position: absolute;
    z-index: 1;
    right: 16px;
    bottom: 14px;
    margin: 0;
    max-width: calc(100% - 32px);
    padding: 7px 10px;
    border-radius: 2px;
    background: rgba(16, 16, 18, 0.88);
    color: #fff;
    font-family: var(--bt-font-text);
    font-size: 12px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    text-align: right;
    overflow-wrap: break-word;
}

.btcodex-index-card__credit,
.btcodex-related-card__credit {
    margin: 0;
    padding: 8px 14px;
    color: var(--bt-ink);
    font-size: 12px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.btcodex-species-hero__credit a {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.7);
}

.btcodex-index-card__credit a,
.btcodex-related-card__credit a {
    color: var(--bt-muted);
    text-decoration: underline;
    text-decoration-color: var(--bt-line-strong);
}

.btcodex-species-hero__credit a:hover {
    color: #fff;
}

.btcodex-index-card__credit a:hover,
.btcodex-related-card__credit a:hover {
    color: var(--bt-ink);
}

.btcodex-species-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 64px 58px;
    background:
        linear-gradient(180deg, rgba(22, 22, 24, 0.92), rgba(22, 22, 24, 0.96));
}

.btcodex-species-hero__title,
.btcodex-index-hero__title,
.btcodex-section__title,
.btcodex-species__section-title {
    margin: 0;
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
    font-weight: 400;
    line-height: 1.04;
    letter-spacing: 0;
}

.btcodex-species-hero__title {
    max-width: 760px;
    margin: 0;
    color: #ffffff;
    font-family: var(--bt-font-mono);
    font-style: italic;
    font-size: clamp(42px, 4.6vw, 76px);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0;
}

.btcodex-species-hero__subtitle {
    max-width: 620px;
    margin: 18px 0 0;
    color: var(--bt-soft);
    font-size: 18px;
    line-height: 1.6;
}

.btcodex-status-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px;
}

.btcodex-status-line__item {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    color: var(--bt-ink);
    border: 1px solid var(--bt-line-strong);
    background: rgba(107, 176, 121, 0.08);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.btcodex-species-hero__meta {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 11px 18px;
    max-width: 560px;
    margin: 34px 0 0;
    padding-top: 26px;
    border-top: 1px solid var(--bt-line);
}

/* Shared data rows */

.btcodex-data-row {
    display: contents;
}

.btcodex-data-row__label {
    color: var(--bt-muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.45;
    text-transform: uppercase;
}

.btcodex-data-row__value {
    margin: 0;
    color: var(--bt-soft);
    font-size: 15px;
    line-height: 1.45;
    overflow-wrap: break-word;
}

/* Profile panels */

.btcodex-section--profile-panels {
    padding: 58px 0;
}

.btcodex-profile-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.btcodex-profile-panels--single {
    grid-template-columns: minmax(0, 1fr);
}

.btcodex-profile-panel {
    padding: 30px;
    border: 1px solid rgba(126, 221, 147, 0.14);
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.94), rgba(27, 27, 33, 0.98));
}

.btcodex-profile-panel__title {
    margin: 10px 0 24px;
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-size: clamp(25px, 2vw, 34px);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0;
}

.btcodex-profile-panel__list {
    display: grid;
    gap: 1px;
    margin: 0;
    padding: 0;
    background: rgba(126, 221, 147, 0.12);
    border: 1px solid rgba(126, 221, 147, 0.12);
}

/* 0.1.27: increased .btcodex-profile-panel__item horizontal padding
   16px->20px for more comfortable mobile right-edge spacing, purely
   cosmetic, no functional/overflow bug. */
.btcodex-profile-panel__item {
    display: grid;
    grid-template-columns: minmax(120px, 0.72fr) minmax(0, 1fr);
    gap: 18px;
    align-items: baseline;
    padding: 15px 20px;
    background: rgba(22, 22, 24, 0.84);
}

.btcodex-profile-panel__item dt {
    margin: 0;
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.btcodex-profile-panel__item dd {
    display: grid;
    gap: 5px;
    margin: 0;
    color: #ffffff;
    overflow-wrap: break-word;
}

.btcodex-profile-panel__value {
    display: block;
    font-family: var(--bt-font-mono);
    font-size: clamp(16px, 1.05vw, 20px);
    font-weight: 400;
    line-height: 1.22;
}

.btcodex-profile-panel__hint {
    display: block;
    max-width: 32em;
    color: var(--bt-muted);
    font-family: var(--bt-font-text);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.45;
}

.btcodex-profile-panel__item--bt-air .btcodex-profile-panel__value,
.btcodex-profile-panel__item--bt-flow .btcodex-profile-panel__value {
    color: var(--bt-green);
}

.btcodex-profile-panel__item--bt-water .btcodex-profile-panel__value,
.btcodex-profile-panel__item--bt-ph .btcodex-profile-panel__value {
    color: var(--bt-water);
}

.btcodex-profile-panel__item--bt-density .btcodex-profile-panel__value,
.btcodex-profile-panel__item--bt-capillary .btcodex-profile-panel__value {
    color: var(--bt-amber);
}

/* Metrics */

.btcodex-console,
.btcodex-reference-strip,
.btcodex-metric-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-left: 1px solid var(--bt-line);
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-metric-grid {
    background: rgba(126, 221, 147, 0.035);
}

.btcodex-reference-strip {
    margin-bottom: 64px;
}

.btcodex-metric {
    display: grid;
    align-content: start;
    gap: 10px;
    min-height: 104px;
    padding: 18px 20px;
    border: 1px solid rgba(126, 221, 147, 0.13);
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.92), rgba(27, 27, 33, 0.96));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
    min-width: 0;
}

.btcodex-metric__label {
    display: block;
    margin: 0;
    color: var(--bt-muted);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.07em;
    line-height: 1.2;
    text-transform: uppercase;
    overflow-wrap: break-word;
}

.btcodex-metric__value {
    display: block;
    margin: 0;
    color: #ffffff;
    font-family: var(--bt-font-mono);
    font-size: clamp(18px, 1.25vw, 23px);
    font-weight: 400;
    line-height: 1.16;
    overflow-wrap: break-word;
}

.btcodex-metric--bt-air .btcodex-metric__value,
.btcodex-metric--bt-flow .btcodex-metric__value {
    color: var(--bt-green);
}

.btcodex-metric--bt-water .btcodex-metric__value,
.btcodex-metric--bt-ph .btcodex-metric__value {
    color: var(--bt-water);
}

.btcodex-metric--bt-density .btcodex-metric__value,
.btcodex-metric--bt-capillary .btcodex-metric__value {
    color: var(--bt-amber);
}

/* Species layout */

.btcodex-species-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 42px;
    align-items: start;
}

.btcodex-species-main {
    min-width: 0;
}

.btcodex-species-sidebar {
    position: sticky;
    top: 120px;
    display: grid;
    gap: 16px;
}

.btcodex-section,
.btcodex-species__genus-profile {
    padding: 64px 0;
    border-bottom: 1px solid var(--bt-line);
}

/* Keep section links clear of the fixed site navigation. */
.btcodex-section[id] {
    scroll-margin-top: 8rem;
}

.btcodex-section__header {
    max-width: 760px;
    margin-bottom: 30px;
}

.btcodex-section--quick-profile .btcodex-section__header,
.btcodex-section--bt-profile .btcodex-section__header {
    margin-bottom: 22px;
}

.btcodex-section__title,
.btcodex-species__section-title {
    font-size: clamp(30px, 3vw, 46px);
}

.btcodex-species__lead {
    max-width: 760px;
    margin: 18px 0 0;
    color: var(--bt-soft);
    font-size: 18px;
    line-height: 1.75;
}

.btcodex-species__text-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: 34px;
    background: var(--bt-line);
    border: 1px solid var(--bt-line);
}

.btcodex-species__text-panel {
    padding: 30px;
    background: var(--bt-panel);
}

.btcodex-species__panel-title {
    margin: 0 0 14px;
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
    font-size: 26px;
    font-weight: 400;
    line-height: 1.12;
}

.btcodex-species__panel-content,
.btcodex-section--description,
.btcodex-section--practice,
.btcodex-section--sources {
    color: var(--bt-soft);
    font-size: 16px;
    line-height: 1.8;
}

.btcodex-section--description,
.btcodex-section--practice,
.btcodex-section--sources {
    max-width: 900px;
}

.btcodex-section--description h2,
.btcodex-section--description h3,
.btcodex-section--practice h2,
.btcodex-section--practice h3,
.btcodex-section--sources h2,
.btcodex-section--sources h3 {
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
    font-weight: 400;
    letter-spacing: 0;
}

.btcodex-section--description a,
.btcodex-section--practice a,
.btcodex-section--sources a {
    color: var(--bt-green);
}

/* Sidebar */

.btcodex-sidebox {
    padding: 22px;
    border: 1px solid var(--bt-line);
    background: var(--bt-panel);
}

.btcodex-sidebox__kicker {
    margin: 0 0 10px;
    color: var(--bt-green);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.btcodex-sidebox__title {
    margin: 0 0 14px;
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.12;
}

.btcodex-sidebox__text {
    margin: 0;
    color: var(--bt-soft);
    font-size: 15px;
    line-height: 1.65;
}

.btcodex-sidebox__muted {
    margin: 0;
    color: var(--bt-muted);
    font-size: 14px;
    line-height: 1.6;
}

.btcodex-side-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.btcodex-side-list li {
    padding: 10px 0;
    color: var(--bt-soft);
    font-size: 14px;
    line-height: 1.55;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-side-list li:last-child {
    border-bottom: 0;
}

.btcodex-token-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.btcodex-token {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    color: var(--bt-ink);
    border: 1px solid var(--bt-line-strong);
    background: var(--bt-panel-soft);
    font-size: 13px;
    line-height: 1.3;
}

/* Index */

.btcodex-index-hero {
    padding: 76px 0 48px;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-index-hero__title {
    font-size: clamp(42px, 5vw, 72px);
}

.btcodex-index-hero__intro {
    max-width: 780px;
    margin: 20px 0 0;
    color: var(--bt-soft);
    font-size: 18px;
    line-height: 1.75;
}

.btcodex-index-search {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(210px, 270px) 132px;
    align-items: stretch;
    max-width: none;
    margin-top: 34px;
    border: 1px solid rgba(126, 221, 147, 0.18);
    background: linear-gradient(180deg, rgba(27, 27, 33, 0.9), rgba(22, 22, 24, 0.92));
}

.btcodex-index-search__field {
    display: grid;
    gap: 7px;
    padding: 11px 14px 12px;
    border-right: 1px solid var(--bt-line);
}

.btcodex-index-search__label {
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* 0.1.26: hardened search-form input/select against the same Blocksy
   [type=submit]-class specificity-tie collision fixed in 0.1.25. Blocksy's
   main.min.css has "input:is([type=url],[type=tel],[type=text],[type=search],
   ...)" which for our type="search" input resolves to specificity (0,1,1) -
   actually HIGHER than this single class (0,1,0), not merely a tie, so
   without !important the theme's default blue text/background would win
   outright regardless of stylesheet order. The <select> has no equivalent
   theme selector above its specificity (Blocksy only matches it via the bare
   "select" element selector, (0,0,1)), but !important is added anyway for
   defense-in-depth/consistency with the rest of this form. */
.btcodex-index-search__input {
    min-width: 0;
    height: 30px;
    padding: 0;
    color: var(--bt-ink) !important;
    background: transparent !important;
    border: 0;
    outline: 0;
    font-size: 15px;
}

.btcodex-index-search__input::placeholder {
    color: var(--bt-muted) !important;
}

.btcodex-index-search__select {
    min-width: 0;
    height: 30px;
    padding: 0;
    color: var(--bt-ink) !important;
    background-color: transparent !important;
    border: 0 !important;
    outline: 0;
    font-size: 15px;
    font-family: var(--bt-font-text);
}

.btcodex-index-search__button {
    min-width: 130px;
    padding: 0 22px;
    /* !important: Blocksy theme's main.min.css has [type=submit] at equal
       specificity (0,1,0) to this class and loads later in the stylesheet
       order, so on the tie the theme rule would win the cascade and paint
       this <button type="submit"> its default blue instead of green. */
    color: var(--bt-on-live) !important;
    background: var(--bt-green) !important;
    border: 0 !important;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    cursor: pointer;
}

.btcodex-index-overview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-left: 1px solid var(--bt-line);
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-index-overview__item {
    padding: 22px;
    border-right: 1px solid var(--bt-line);
    background: var(--bt-panel);
}

.btcodex-index-overview__item strong {
    display: block;
    color: var(--bt-green);
    font-family: var(--bt-font-mono);
    font-size: 34px;
    font-weight: 400;
    line-height: 1;
}

.btcodex-index-overview__item span {
    display: block;
    margin-top: 8px;
    color: var(--bt-soft);
    font-size: 13px;
}

.btcodex-index-list {
    padding: 54px 0 0;
}

.btcodex-index__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--bt-line);
    border: 1px solid var(--bt-line);
}

.btcodex-index-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: var(--bt-panel);
}

.btcodex-index-card:hover {
    background: var(--bt-panel-soft);
}

.btcodex-index-card__click {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.btcodex-index-card__media {
    position: relative;
    display: block;
    width: 100%;
    height: 250px;
    background: var(--bt-bg);
    overflow: hidden;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-index-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(22, 22, 24, 0.02), rgba(22, 22, 24, 0.62)),
        linear-gradient(0deg, rgba(22, 22, 24, 0.18), rgba(22, 22, 24, 0.18));
    pointer-events: none;
}

.btcodex-index-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.92) contrast(1.08);
    transform: scale(1.01);
    transition: transform 220ms ease, filter 220ms ease;
}

.btcodex-index-card:hover .btcodex-index-card__image {
    transform: scale(1.045);
    filter: saturate(1.08) contrast(1.12) brightness(1.08);
}

.btcodex-index-card__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 250px;
    color: var(--bt-green);
    font-family: var(--bt-font-display);
    font-size: 44px;
    background:
        linear-gradient(135deg, rgba(107, 176, 121, 0.12), transparent),
        var(--bt-bg);
}

.btcodex-index-card__status {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    width: auto;
    min-height: 28px;
    padding: 7px 10px;
    color: var(--bt-ink);
    background: rgba(22, 22, 24, 0.78);
    border: 1px solid rgba(242, 242, 240, 0.34);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}

.btcodex-index-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 300px;
    padding: 22px 24px 24px;
}

.btcodex-index-card__family {
    margin: 0 0 14px;
    color: var(--bt-green);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.btcodex-index-card__title {
    margin: 0;
    color: var(--bt-ink);
    font-family: var(--bt-font-mono);
    font-style: italic;
    font-size: 26px;
    font-weight: 400;
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.btcodex-index-card__trivial {
    margin: 10px 0 18px;
    color: var(--bt-muted);
    font-size: 14px;
    line-height: 1.45;
}

.btcodex-index-card__facts {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 6px 12px;
    margin: 0;
}

.btcodex-index-card__facts .btcodex-data-row__label {
    font-size: 10px;
}

.btcodex-index-card__facts .btcodex-data-row__value {
    font-size: 13px;
    line-height: 1.35;
}

.btcodex-index-card__facts .btcodex-data-row--origin .btcodex-data-row__value {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Empty state */

.btcodex-empty-state {
    padding: 42px;
    color: var(--bt-soft);
    border: 1px solid var(--bt-line);
    background: var(--bt-panel);
}

.btcodex-empty-state h2 {
    margin: 0 0 10px;
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
    font-size: 32px;
    font-weight: 400;
}

.btcodex-empty-state p {
    margin: 0;
    color: var(--bt-muted);
}

/* Recommendations */

.btcodex-recommendation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 22px;
    border: 1px solid rgba(126, 221, 147, 0.16);
    background: rgba(126, 221, 147, 0.16);
}

.btcodex-recommendation-card {
    display: grid;
    gap: 12px;
    min-height: 118px;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.96), rgba(22, 22, 24, 0.98));
}

.btcodex-recommendation-card__label {
    color: var(--bt-green);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.btcodex-recommendation-card__value {
    color: #ffffff;
    font-family: var(--bt-font-mono);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.14;
}

/* Citation */

.btcodex-citation-box {
    padding: 54px 0;
    border-top: 1px solid var(--bt-line);
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-citation-box__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 22px;
    margin-top: 24px;
    padding: 24px;
    border: 1px solid rgba(126, 221, 147, 0.14);
    background: rgba(27, 27, 33, 0.86);
}

.btcodex-citation-box__label {
    display: block;
    margin-bottom: 8px;
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.btcodex-citation-box__copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(126, 221, 147, 0.18);
    background: var(--bt-bg);
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.btcodex-citation-box__copy-label {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid rgba(126, 221, 147, 0.28);
    color: #ffffff;
    background: rgba(22, 22, 24, 0.82);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.btcodex-citation-box__copy:hover .btcodex-citation-box__link {
    color: var(--bt-green);
}

.btcodex-citation-box__copy.is-copied .btcodex-citation-box__copy-label {
    color: #ffffff;
    border-color: var(--bt-green);
    background: rgba(22, 22, 24, 0.7);
}

.btcodex-citation-box__link {
    display: block;
    color: var(--bt-green);
    text-decoration: none;
    overflow-wrap: break-word;
    font-size: 13px;
    line-height: 1.35;
    letter-spacing: 0;
}

.btcodex-citation-box__link:hover {
    color: #ffffff;
}

.btcodex-citation-box__date {
    color: #ffffff;
    font-family: var(--bt-font-mono);
    font-size: 22px;
    font-weight: 400;
}

.btcodex-citation-box__text {
    max-width: 900px;
    margin: 18px 0 0;
    color: var(--bt-soft);
    font-size: 14px;
    line-height: 1.6;
}

/* Species reference chapters */

.btcodex-species-toc {
    padding: 38px 0 24px;
    border-top: 1px solid var(--bt-line);
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-species-toc__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--bt-line);
    background: var(--bt-line);
}

.btcodex-species-toc__list li {
    margin: 0;
    background: rgba(22, 22, 24, 0.92);
}

.btcodex-species-toc__list a {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    min-height: 72px;
    padding: 16px 20px;
    color: var(--bt-soft);
    text-decoration: none;
    line-height: 1.35;
}

.btcodex-species-toc__number {
    color: var(--bt-green);
    font-family: var(--bt-font-mono);
    font-size: 20px;
    font-weight: 400;
}

.btcodex-species-toc__text {
    display: grid;
    gap: 4px;
}

.btcodex-species-toc__title {
    color: var(--bt-ink);
    font-family: var(--bt-font-text);
    font-size: 17px;
    font-weight: 400;
}

.btcodex-species-toc__group {
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.btcodex-species-toc__list a:hover {
    color: var(--bt-ink);
    background: rgba(126, 221, 147, 0.06);
}

/* 0.1.21: grid min-width overflow fix. This was an implicit-column grid
   (no grid-template-columns), so its track kept the browser default
   min-width:auto and would not shrink below the widest min-content child
   - the "Systematische Einordnung" taxonomy table in a sibling section's
   .btcodex-species-section__content. That stretched every section
   (including plain paragraphs) off the right edge on phone widths.
   grid-template-columns: minmax(0, 1fr) below plus min-width: 0 on the
   grid item (.btcodex-species-section) are the two reinforcing fixes. */
.btcodex-species-sections {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.btcodex-species-section {
    min-width: 0;
    max-width: none;
    padding-top: 76px;
    padding-bottom: 82px;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-species-section .btcodex-section__header {
    max-width: 980px;
}

.btcodex-species .btcodex-section__title {
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-weight: 400;
    letter-spacing: 0;
}

.btcodex-species-section__content {
    max-width: 900px;
    color: var(--bt-soft);
    font-size: 17px;
    line-height: 1.86;
}

.btcodex-species-section__content p {
    margin: 0 0 1.25em;
}

.btcodex-species .btcodex-species-section__content h2,
.btcodex-species .btcodex-species-section__content h3,
.btcodex-species .btcodex-species-section__content h4,
.btcodex-species .btcodex-species-section__content h5 {
    margin: 2em 0 0.75em;
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.18;
}

.btcodex-species-section__content ul,
.btcodex-species-section__content ol {
    display: grid;
    gap: 10px;
    margin: 0 0 1.6em;
    padding: 0;
    list-style: none;
}

.btcodex-species-section__content li {
    position: relative;
    margin: 0;
    padding-left: 24px;
    color: var(--bt-soft);
}

.btcodex-species-section__content li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 7px;
    height: 7px;
    border: 1px solid var(--bt-green);
    background: rgba(126, 221, 147, 0.12);
    transform: rotate(45deg);
}

.btcodex-list--risks {
    display: grid;
    gap: 10px;
    margin: 0 0 1.6em;
    padding: 0;
    list-style: none;
}

.btcodex-list--risks li {
    position: relative;
    margin: 0;
    padding-left: 24px;
    color: var(--bt-soft);
}

.btcodex-list--risks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 7px;
    height: 7px;
    border: 1px solid var(--bt-amber);
    background: rgba(224, 179, 90, 0.14);
    transform: rotate(45deg);
}

.btcodex-species-section__content p:has(> strong:first-child) {
    margin: 30px 0;
    padding: 20px 22px;
    border: 1px solid rgba(126, 221, 147, 0.14);
    border-left: 3px solid var(--bt-green);
    background: rgba(126, 221, 147, 0.045);
    color: var(--bt-soft);
}

.btcodex-species-section__content p:has(> strong:first-child) strong:first-child {
    color: #ffffff;
}

.btcodex-species-section__content li {
    margin-bottom: 0.55em;
}

.btcodex-species-section__content table {
    width: 100%;
    margin: 34px 0;
    border-collapse: collapse;
    border: 1px solid rgba(126, 221, 147, 0.16);
    background: linear-gradient(180deg, rgba(27, 27, 33, 0.96), rgba(22, 22, 24, 0.96));
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
}

.btcodex-species-section__content th,
.btcodex-species-section__content td {
    padding: 16px 18px;
    border: 1px solid rgba(126, 221, 147, 0.11);
    text-align: left;
    vertical-align: top;
}

.btcodex-species-section__content th {
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    background: rgba(126, 221, 147, 0.08);
}

.btcodex-species-section__content td {
    color: var(--bt-soft);
}

.btcodex-species-section__content td:first-child {
    color: #ffffff;
    font-weight: 700;
}

.btcodex-species-section__content tr:hover td {
    background: rgba(126, 221, 147, 0.035);
}

.btcodex-species-section__content a {
    color: var(--bt-green);
}

.btcodex-species-section--taxonomy .btcodex-species-section__content,
.btcodex-species-section--sources .btcodex-species-section__content {
    padding: 26px;
    border: 1px solid var(--bt-line);
    background: rgba(22, 22, 24, 0.82);
}

.btcodex-species-section--substrate .btcodex-section__title,
.btcodex-species-section--culture .btcodex-section__title {
    color: var(--bt-green);
}

/* Keep species profile tables quiet and consistent across every section. */
.btcodex-species-section__content table {
    border-color: rgba(255, 255, 255, 0.16);
    background: #171717;
    box-shadow: none;
}

.btcodex-species-section__content th,
.btcodex-species-section__content td {
    border-color: rgba(255, 255, 255, 0.12);
}

.btcodex-species-section__content th {
    background: #202020;
}

.btcodex-species-section__content tr:hover td {
    background: rgba(255, 255, 255, 0.035);
}

.btcodex-species-section__content p:has(> strong:first-child) {
    margin: 0 0 1.25em;
    padding: 0;
    border: 0;
    background: transparent;
}

/* Footer navigation */

.btcodex-footer-nav {
    padding-top: 58px;
}

.btcodex-footer-nav__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 26px;
    border: 1px solid rgba(126, 221, 147, 0.16);
    background: rgba(126, 221, 147, 0.16);
}

.btcodex-footer-nav__item,
.btcodex-footer-nav__item:visited {
    display: grid;
    gap: 10px;
    min-height: 132px;
    padding: 24px;
    color: inherit;
    text-decoration: none;
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.96), rgba(22, 22, 24, 0.98));
}

.btcodex-footer-nav__item:hover {
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.98), rgba(22, 22, 24, 0.98));
}

.btcodex-footer-nav__item span {
    color: var(--bt-green);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.btcodex-footer-nav__item strong {
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-size: 25px;
    font-weight: 400;
    line-height: 1.12;
}

/* Responsive */

@media (max-width: 1120px) {
    .btcodex-species-hero {
        grid-template-columns: 1fr;
    }

    .btcodex-species-hero__media,
    .btcodex-species-hero__image {
        min-height: 380px;
    }

    .btcodex-species-hero__media::after {
        background: linear-gradient(0deg, rgba(22, 22, 24, 0.55), rgba(22, 22, 24, 0.05));
    }

    .btcodex-species-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: end;
    min-height: 560px;
    padding: 72px 58px;
    background:
        linear-gradient(90deg, rgba(22, 22, 24, 0.96), rgba(22, 22, 24, 0.72) 58%, rgba(22, 22, 24, 0.22)),
        radial-gradient(circle at 12% 18%, rgba(126, 221, 147, 0.08), transparent 34%);
}

    .btcodex-console,
    .btcodex-reference-strip,
    .btcodex-metric-grid,
    .btcodex-metric-grid--bt,
    .btcodex-index__grid,
    .btcodex-genus-page .btcodex-index-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .btcodex-species-layout {
        grid-template-columns: 1fr;
    }

        .btcodex-species-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Related species */

.btcodex-related-species {
    padding-top: 58px;
}

.btcodex-related-species__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid rgba(126, 221, 147, 0.16);
    background: rgba(126, 221, 147, 0.16);
}

.btcodex-related-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--bt-panel);
}

.btcodex-related-card__link,
.btcodex-related-card__link:visited,
.btcodex-related-card__link:hover,
.btcodex-related-card__link:focus {
    display: grid;
    grid-template-rows: 150px minmax(0, auto);
    flex: 1 0 auto;
    min-height: 315px;
    color: inherit;
    text-decoration: none;
}

.btcodex-related-card__media {
    position: relative;
    min-width: 0;
    height: 150px;
    overflow: hidden;
    background: var(--bt-bg);
}

.btcodex-related-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(22, 22, 24, 0.04), rgba(22, 22, 24, 0.68)),
        linear-gradient(0deg, rgba(22, 22, 24, 0.18), rgba(22, 22, 24, 0.18));
    pointer-events: none;
}

.btcodex-related-card__image {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: cover;
    filter: saturate(0.92) contrast(1.08);
    transition: transform 220ms ease, filter 220ms ease;
}

.btcodex-related-card__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 150px;
    color: var(--bt-green);
    font-family: var(--bt-font-display);
    font-size: 32px;
    background:
        linear-gradient(135deg, rgba(107, 176, 121, 0.12), transparent),
        var(--bt-bg);
}

.btcodex-related-card__body {
    display: grid;
    align-content: end;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.96), rgba(22, 22, 24, 0.98));
}

.btcodex-related-card__link:hover .btcodex-related-card__image {
    transform: scale(1.045);
    filter: saturate(1.08) contrast(1.12) brightness(1.08);
}

.btcodex-related-card__family {
    margin: 0 0 10px;
    color: var(--bt-green);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.btcodex-related-card__title {
    margin: 0;
    color: #ffffff;
    font-family: var(--bt-font-mono);
    font-style: italic;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.btcodex-related-card__trivial {
    margin: 9px 0 0;
    color: var(--bt-soft);
    font-size: 14px;
    line-height: 1.45;
}

.btcodex-related-card__cta {
    display: inline-flex;
    width: fit-content;
    margin-top: 20px;
    padding: 7px 10px;
    color: var(--bt-green);
    border: 1px solid rgba(126, 221, 147, 0.24);
    background: rgba(22, 22, 24, 0.72);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Product recommendation cards */

.btcodex-product-card {
    display: grid;
    grid-template-rows: 170px 1fr;
    min-height: 360px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(27, 27, 33, 0.96), rgba(22, 22, 24, 0.98));
}

.btcodex-product-card__media {
    display: block;
    min-width: 0;
    height: 170px;
    overflow: hidden;
    background: var(--bt-bg);
}

.btcodex-product-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 220ms ease, filter 220ms ease;
}

.btcodex-product-card:hover .btcodex-product-card__media img {
    transform: scale(1.045);
    filter: brightness(1.08) contrast(1.08);
}

.btcodex-product-card__body {
    display: grid;
    align-content: end;
    padding: 22px;
}

.btcodex-product-card__label {
    margin-bottom: 10px;
    color: var(--bt-green);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.btcodex-product-card__title {
    margin: 0;
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.12;
}

.btcodex-product-card__price {
    margin-top: 12px;
    color: var(--bt-soft);
    font-size: 14px;
    line-height: 1.4;
}

.btcodex-product-card__price ins {
    color: #ffffff;
    text-decoration: none;
}

.btcodex-product-card__button {
    display: inline-flex;
    width: fit-content;
    margin-top: 18px;
    padding: 9px 12px;
    color: var(--bt-on-live);
    background: var(--bt-green);
    border: 1px solid var(--bt-green);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.btcodex-product-card__button:hover {
    color: #ffffff;
    background: transparent;
}

.btcodex-recommendation-grid--single-product {
    display: block;
    max-width: 680px;
    border: 1px solid rgba(126, 221, 147, 0.16);
    background: transparent;
}

.btcodex-recommendation-grid--single-product .btcodex-product-card {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    grid-template-rows: auto;
    min-height: 0;
}

.btcodex-recommendation-grid--single-product .btcodex-product-card__media {
    height: 150px;
}

.btcodex-recommendation-grid--single-product .btcodex-product-card__body {
    align-content: center;
    padding: 20px 22px;
}

.btcodex-recommendation-grid--single-product .btcodex-product-card__title {
    font-size: 21px;
}

/* Genus culture groups */

/* Genus pages */

.btcodex-route .btcodex-genus-page,
.btcodex-genus-page {
    width: min(1180px, calc(100vw - 48px));
    max-width: 1180px;
    margin: 0 auto;
    padding: 76px 0 90px;
    color: var(--bt-ink);
}

.btcodex-genus-page .btcodex-index__title,
.btcodex-genus-page .btcodex-section__title,
.btcodex-genus-page .btcodex-species__section-title,
.btcodex-genus-page .btcodex-genus-group-block__header h3,
.btcodex-genus-page .btcodex-genus-culture-card h3 {
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-weight: 400;
    letter-spacing: 0;
}

.btcodex-genus-page .btcodex-index__title {
    margin: 0 0 28px;
}

.btcodex-genus-page a,
.btcodex-genus-page a:visited {
    color: #ffffff;
    text-decoration: none;
}

.btcodex-genus-page a:hover {
    color: var(--bt-green);
}

.btcodex-genus-page .btcodex-kicker {
    display: block;
    margin: 0 0 12px;
    color: var(--bt-green);
}

/* Genus overview */

.btcodex-genus-page .btcodex-index-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 0 42px;
}

/* Genus profile */

.btcodex-genus-page .btcodex-species__genus-profile {
    margin-top: 44px;
    padding: 38px 0;
    border-top: 1px solid var(--bt-line);
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-genus-page .btcodex-species__genus-profile h2 {
    margin: 0 0 18px;
}

.btcodex-genus-page .btcodex-species__text-panels {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
    gap: 18px;
    margin-top: 22px;
    border: 0;
    background: transparent;
}

.btcodex-genus-page .btcodex-species__text-panel {
    min-height: 0;
    padding: 20px;
    border: 1px solid var(--bt-line);
    background: rgba(22, 22, 24, .72);
}

.btcodex-genus-page .btcodex-species__text-panel h3 {
    margin: 0 0 14px;
    color: var(--bt-ink);
}

.btcodex-genus-page .btcodex-species__text-panel p {
    margin: 0;
    max-width: 72ch;
}

/* Genus culture groups */

.btcodex-genus-page .btcodex-section {
    margin-top: 86px;
    padding-top: 54px;
    border-top: 1px solid var(--bt-line);
}

.btcodex-genus-page .btcodex-section__title {
    margin: 0 0 34px;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.08;
}

.btcodex-genus-culture-groups__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
}

.btcodex-genus-culture-card {
    max-width: 780px;
    padding: 26px;
    border: 1px solid var(--bt-line);
    background: rgba(22, 22, 24, .78);
}

.btcodex-genus-culture-card h3 {
    margin: 0 0 18px;
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
}

.btcodex-genus-culture-card > p:not(.btcodex-kicker) {
    margin: 0 0 24px;
    max-width: 76ch;
    line-height: 1.65;
}

.btcodex-genus-culture-card__values {
    display: grid;
    margin: 24px 0 0;
    padding: 0;
    border: 1px solid var(--bt-line);
    background: rgba(22, 22, 24, .72);
}

.btcodex-genus-culture-card__values .btcodex-profile-panel__item {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 24px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-genus-culture-card__values .btcodex-profile-panel__item:last-child {
    border-bottom: 0;
}

.btcodex-genus-culture-card__values dt {
    color: var(--bt-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.btcodex-genus-culture-card__values dd {
    margin: 0;
}

.btcodex-genus-culture-card__values .btcodex-profile-panel__value {
    display: block;
    color: var(--bt-green);
    font-family: var(--bt-font-mono);
    font-size: 22px;
    line-height: 1.15;
}

.btcodex-genus-culture-card__values .btcodex-profile-panel__hint {
    display: block;
    margin-top: 6px;
    color: var(--bt-muted);
    font-size: 12px;
    line-height: 1.45;
}

/* Genus species groups */

.btcodex-genus-group-block {
    margin-top: 54px;
}

.btcodex-genus-group-block + .btcodex-genus-group-block {
    margin-top: 72px;
}

.btcodex-genus-group-block__header {
    margin-bottom: 32px;
}

.btcodex-genus-group-block__header .btcodex-kicker {
    margin-bottom: 14px;
}

.btcodex-genus-group-block__header h3 {
    margin: 0 0 22px;
    color: #ffffff;
    font-family: var(--bt-font-text);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
}

.btcodex-genus-group-block__header p:not(.btcodex-kicker) {
    margin: 0 0 34px;
    max-width: 78ch;
    line-height: 1.65;
}

.btcodex-genus-page .btcodex-index-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    width: 100%;
    margin-top: 28px;
    border: 1px solid var(--bt-line);
    background: transparent;
}

.btcodex-genus-page .btcodex-index-grid--single {
    display: block;
    width: 394px;
    max-width: 100%;
    border: 1px solid var(--bt-line);
    background: transparent;
}

.btcodex-genus-page .btcodex-index-grid--single .btcodex-index-card {
    width: 100%;
    outline: 0;
}

.btcodex-genus-page .btcodex-index-card {
    min-height: 0;
    border: 0;
    outline: 1px solid var(--bt-line);
    background: var(--bt-panel);
}

.btcodex-genus-page .btcodex-index-card__click {
    min-height: 0;
}

.btcodex-genus-page .btcodex-index-card__media,
.btcodex-genus-page .btcodex-index-card__placeholder {
    height: 150px;
}

.btcodex-genus-page .btcodex-index-card__body {
    min-height: 0;
    padding: 16px 20px 18px;
}

.btcodex-genus-page .btcodex-index-card__family {
    margin-bottom: 10px;
}

.btcodex-genus-page .btcodex-index-card__title {
    font-size: 24px;
    line-height: 1.12;
}

.btcodex-genus-page .btcodex-index-card__trivial {
    margin: 6px 0 14px;
    font-size: 14px;
}

.btcodex-genus-page .btcodex-index-card__facts {
    margin-top: 0;
    gap: 7px;
}

/* Species taxonomy link */

.btcodex-species-hero__meta .btcodex-data-row--genus {
    display: contents;
}

.btcodex-species-hero__meta .btcodex-data-row--genus dt {
    color: var(--bt-muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.45;
    text-transform: uppercase;
}

.btcodex-species-hero__meta .btcodex-data-row--genus dd {
    margin: 0;
    color: var(--bt-soft);
    font-size: 15px;
    line-height: 1.45;
}

.btcodex-species-hero__meta .btcodex-data-row--genus a {
    color: var(--bt-green);
    font-weight: 400;
    text-decoration: none;
}

/* Taxonomy path */

.btcodex-taxonomy-path {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--bt-line);
}

.btcodex-taxonomy-path__label {
    margin: 0 0 8px;
    color: var(--bt-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.btcodex-taxonomy-path__items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.btcodex-taxonomy-path a,
.btcodex-data-row__link {
    color: var(--bt-green);
    text-decoration: none;
}

.btcodex-taxonomy-path a:hover,
.btcodex-data-row__link:hover {
    color: #ffffff;
}

.btcodex-taxonomy-path__sep {
    color: var(--bt-muted);
}

/* Inheritance notice */

.btcodex-inheritance-notice {
    margin: 28px 0 18px;
    padding: 22px 24px;
    border: 1px solid var(--bt-line);
    border-left: 3px solid var(--bt-green);
    background:
        linear-gradient(
            90deg,
            rgba(107, 176, 121, 0.1),
            rgba(33, 33, 41, 0.92) 55%
        );
    color: var(--bt-soft);
    font-size: 14px;
    line-height: 1.65;
}

.btcodex-inheritance-notice .btcodex-kicker {
    margin: 0 0 10px;
    color: var(--bt-green);
}

.btcodex-inheritance-notice > p:last-child {
    max-width: 920px;
    margin: 0;
}

.btcodex-inheritance-notice a {
    color: var(--bt-green);
    font-weight: 700;
    text-decoration: none;
}

.btcodex-inheritance-notice a:hover {
    color: #ffffff;
}

/* Culture group route */
.btcodex-culture-group-page .btcodex-index__hero h1,
.btcodex-culture-group-page h1,
.btcodex-culture-group-page h2,
.btcodex-culture-group-page h3 {
    color: #ffffff !important;
}

.btcodex-culture-group-page .btcodex-index__hero {
    margin-bottom: 64px;
}

.btcodex-culture-group-page .btcodex-genus-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid rgba(107, 176, 121, 0.18);
    background: rgba(22, 22, 24, 0.72);
    margin-top: 32px;
}

.btcodex-culture-group-page .btcodex-genus-stats > div {
    padding: 22px 26px;
    border-right: 1px solid rgba(107, 176, 121, 0.16);
}

.btcodex-culture-group-page .btcodex-genus-stats > div:last-child {
    border-right: 0;
}

.btcodex-culture-group-page .btcodex-genus-stats strong {
    display: block;
    color: var(--bt-green);
    font-family: var(--bt-font-mono);
    font-size: 26px;
    font-weight: 400;
    line-height: 1.12;
    margin-bottom: 7px;
}

.btcodex-culture-group-page .btcodex-genus-stats span {
    display: block;
    color: var(--bt-soft);
    font-size: 11px;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.btcodex-culture-group-system {
    margin-top: 0;
}

/* 0.1.21: same implicit-grid min-width trap as .btcodex-species-sections
   above - this grid had no grid-template-columns either, and its sibling
   .btcodex-culture-group-summary__text renders an admin-authored,
   free-text description field. Explicit minmax(0, 1fr) added so a future
   long/unbreakable description can't stretch this grid's track. */
.btcodex-culture-group-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 0;
    border: 0;
    background: transparent;
}

.btcodex-culture-group-summary__text {
    max-width: 82ch;
    margin: 0;
    color: var(--bt-soft);
    font-size: 16px;
    line-height: 1.65;
}

.btcodex-culture-group-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border: 1px solid rgba(107, 176, 121, 0.18);
    background: rgba(22, 22, 24, 0.72);
}

.btcodex-culture-group-values .btcodex-profile-panel__item {
    display: grid;
    gap: 8px;
    align-content: start;
    min-height: 118px;
    padding: 20px 22px;
    border-right: 1px solid rgba(107, 176, 121, 0.14);
    border-bottom: 1px solid rgba(107, 176, 121, 0.14);
    background: rgba(22, 22, 24, 0.72);
}

.btcodex-culture-group-values .btcodex-profile-panel__item:nth-child(3n) {
    border-right: 0;
}

.btcodex-culture-group-values .btcodex-profile-panel__item:nth-last-child(-n+3) {
    border-bottom: 0;
}

.btcodex-culture-group-values dt {
    margin: 0;
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.btcodex-culture-group-values dd {
    display: grid;
    gap: 5px;
    margin: 0;
}

.btcodex-culture-group-values .btcodex-profile-panel__value {
    display: block;
    color: var(--bt-green);
    font-family: var(--bt-font-mono);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.15;
}

.btcodex-culture-group-values .btcodex-profile-panel__hint {
    display: block;
    color: var(--bt-muted);
    font-size: 11px;
    line-height: 1.4;
}

.btcodex-section--recommendations .btcodex-recommendation-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 760px) !important;
    justify-content: start !important;
    align-items: start !important;
    gap: 22px !important;
    border: 0 !important;
    background: transparent !important;
}

.btcodex-reference-profile-card {
    width: 100%;
    max-width: 760px;
    border: 1px solid rgba(107, 176, 121, 0.22);
    background: var(--bt-panel);
}

.btcodex-reference-profile-card__body {
    padding: 22px;
}

.btcodex-reference-profile-card__label {
    display: block;
    margin-bottom: 8px;
    color: var(--bt-green-bright);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.btcodex-reference-profile-card__title {
    margin: 0 0 12px;
    color: #ffffff;
    font-size: 24px;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.btcodex-reference-profile-card__summary {
    max-width: 620px;
    margin: 0 0 18px;
    color: var(--bt-soft);
    font-size: 15px;
    line-height: 1.65;
}

.btcodex-reference-profile-card__values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 22px;
    margin: 20px 0 0;
}

.btcodex-reference-profile-card__value {
    min-width: 0;
}

.btcodex-reference-profile-card__value dt {
    margin: 0 0 6px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
}

.btcodex-reference-profile-card__value dd {
    margin: 0;
    color: var(--bt-green-bright);
    font-size: 16px;
    line-height: 1.35;
    word-break: normal;
    overflow-wrap: normal;
}

.btcodex-reference-profile-card__button {
    display: inline-flex;
    margin-top: 26px;
    padding: 13px 17px;
    background: var(--bt-green-bright);
    color: var(--bt-on-live);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
}

.btcodex-core-match-badge {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 20px 0 0;
    padding: 14px 16px;
    border: 1px solid rgba(107, 176, 121, 0.22);
    background: rgba(126, 221, 147, 0.08);
}

.btcodex-core-match-badge span {
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.btcodex-core-match-badge strong {
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
}

.btcodex-core-match-badge em {
    color: var(--bt-green-bright);
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}

.btcodex-core-score-panel {
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    margin-top: 22px;
}

.btcodex-core-score-panel__main {
    min-height: 180px;
    padding: 20px;
    border: 1px solid rgba(107, 176, 121, 0.34);
    border-top: 3px solid var(--bt-green-bright);
    background: rgba(0, 0, 0, 0.24);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.btcodex-core-score-panel__main span,
.btcodex-core-score-panel__item dt {
    color: var(--bt-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.btcodex-core-score-panel__main strong {
    color: #ffffff;
    font-size: 48px;
    line-height: 1;
    font-weight: 900;
}

.btcodex-core-score-panel__main small {
    color: var(--bt-green-bright);
    font-size: 15px;
    font-weight: 900;
    margin-left: 4px;
}

.btcodex-core-score-panel__main em {
    color: var(--bt-green-bright);
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
}

.btcodex-core-score-panel__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.btcodex-core-score-panel__item {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid rgba(107, 176, 121, 0.16);
    background: rgba(0, 0, 0, 0.16);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.btcodex-core-score-panel__item dt,
.btcodex-core-score-panel__item dd {
    margin: 0;
}

.btcodex-core-score-panel__item dd {
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
}

.btcodex-section--recommendations .btcodex-product-card {
    width: min(100%, 680px) !important;
    max-width: 680px !important;
    margin-top: 22px !important;
}

.btcodex-culture-group-page .btcodex-section--recommendations {
    margin-top: 64px;
    padding-top: 54px;
    padding-bottom: 64px;
    border-top: 1px solid var(--bt-line);
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-culture-group-page .btcodex-section--recommendations .btcodex-section__header {
    margin-bottom: 28px;
}

.btcodex-culture-group-page .btcodex-section--recommendations .btcodex-kicker {
    display: block;
    margin: 0 0 14px;
}

.btcodex-culture-group-page .btcodex-section--recommendations .btcodex-section__title {
    font-size: clamp(30px, 3vw, 46px);
}

.btcodex-reference-profile-card__button {
    color: var(--bt-on-live) !important;
    font-family: var(--bt-font-text) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

.btcodex-reference-profile-card__button:hover {
    color: #ffffff !important;
    background: transparent !important;
    border-color: var(--bt-green-bright) !important;
}

.btcodex-section--recommendations .btcodex-recommendation-grid--single-product {
    margin-top: 26px;
    max-width: 680px;
}

.btcodex-section--recommendations .btcodex-product-card {
    border: 1px solid rgba(107, 176, 121, 0.18);
}

@media (max-width: 760px) {
    .btcodex-section--recommendations .btcodex-recommendation-grid {
        grid-template-columns: 1fr !important;
    }

    .btcodex-related-species__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .btcodex-footer-nav__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .btcodex-species-sidebar {
        grid-template-columns: 1fr;
    }

    .btcodex-index-search {
        grid-template-columns: minmax(0, 1fr);
    }

    .btcodex-index-search__field {
        border-right: 0;
        border-bottom: 1px solid var(--bt-line);
    }

    .btcodex-index-search__button {
        min-width: 0;
        padding: 16px 22px;
    }

    .btcodex-reference-profile-card {
        max-width: none;
    }

    .btcodex-reference-profile-card__values,
    .btcodex-core-score-panel,
    .btcodex-core-score-panel__list {
        grid-template-columns: 1fr;
    }

    .btcodex-culture-group-page .btcodex-genus-stats,
    .btcodex-culture-group-values {
        grid-template-columns: 1fr;
    }

    .btcodex-culture-group-page .btcodex-genus-stats > div {
        border-right: 0;
        border-bottom: 1px solid rgba(107, 176, 121, 0.16);
    }

    .btcodex-culture-group-page .btcodex-genus-stats > div:last-child {
        border-bottom: 0;
    }

    .btcodex-culture-group-values .btcodex-profile-panel__item,
    .btcodex-culture-group-values .btcodex-profile-panel__item:nth-child(2n),
    .btcodex-culture-group-values .btcodex-profile-panel__item:nth-child(3n) {
        border-right: 0;
        border-bottom: 1px solid rgba(107, 176, 121, 0.14);
    }

    .btcodex-culture-group-values .btcodex-profile-panel__item:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 900px) {
    .btcodex-culture-group-values {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .btcodex-culture-group-values .btcodex-profile-panel__item:nth-child(3n) {
        border-right: 1px solid rgba(107, 176, 121, 0.14);
    }

    .btcodex-culture-group-values .btcodex-profile-panel__item:nth-child(2n) {
        border-right: 0;
    }

    .btcodex-culture-group-values .btcodex-profile-panel__item:nth-last-child(-n+3) {
        border-bottom: 1px solid rgba(107, 176, 121, 0.14);
    }

    .btcodex-culture-group-values .btcodex-profile-panel__item:nth-last-child(-n+2) {
        border-bottom: 0;
    }
}

/* Responsive */

@media (max-width: 980px) {
    .btcodex-genus-page .btcodex-index-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .btcodex-genus-culture-groups__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .btcodex-index,
    .btcodex-species,
    .btcodex-genus-page {
        width: min(100% - 28px, 1180px);
        padding: 54px 0 72px;
    }

    .btcodex-index__title,
    .btcodex-species__title,
    .btcodex-genus-page .btcodex-index__title {
        font-size: clamp(46px, 16vw, 72px);
    }

    .btcodex-index-overview,
    .btcodex-profile-panel,
    .btcodex-profile-panels,
    .btcodex-species__text-panels,
    .btcodex-species-toc__list {
        grid-template-columns: 1fr;
    }

    .btcodex-genus-page .btcodex-index-overview,
    .btcodex-genus-page .btcodex-index-grid,
    .btcodex-index__grid {
        grid-template-columns: 1fr;
    }

    .btcodex-genus-page .btcodex-index-grid--single {
        width: 100%;
    }

    .btcodex-profile-panel__row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .btcodex-genus-culture-card__values .btcodex-profile-panel__item {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .btcodex-citation-box__grid,
    .btcodex-citation-box__linkrow {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .btcodex-species-hero__content {
        padding: 32px 22px;
    }

    .btcodex-index-card__media,
    .btcodex-index-card__placeholder {
        height: 190px;
    }

    .btcodex-console,
    .btcodex-reference-strip,
    .btcodex-metric-grid,
    .btcodex-metric-grid--bt,
    .btcodex-related-species__grid,
    .btcodex-footer-nav__grid {
        grid-template-columns: 1fr;
    }

    .btcodex-system-article__hero {
        padding: 34px 0 24px;
    }
}

/* Core-match badge label + em-value: safety wrap so the fixed uppercase
   label never forces the badge wider than its container on very narrow
   phones (see 0.1.23 docblock). */
.btcodex-core-match-badge {
    flex-wrap: wrap;
}
.btcodex-growbook-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 22px 0;
    padding: 24px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    backdrop-filter: blur(18px);
}
.btcodex-growbook-context h2 { margin: 4px 0 14px; font-size: clamp(20px, 2vw, 30px); color: var(--bt-ink); }
.btcodex-growbook-context__plants { display: flex; flex-wrap: wrap; gap: 10px; }
.btcodex-growbook-context__plant { display: inline-flex; align-items: center; gap: 8px; color: inherit; }
.btcodex-growbook-context__plant img,
.btcodex-growbook-context__plant i { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: #111; font-style: normal; font-size: 10px; }
.btcodex-growbook-context__actions { display: flex; flex-direction: column; gap: 10px; min-width: 210px; }
.btcodex-growbook-context .btcodex-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 12px 20px;
    font-family: var(--bt-font-text);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--bt-on-live);
    background: var(--bt-green);
    border: 1px solid var(--bt-green);
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}
.btcodex-growbook-context .btcodex-button:hover,
.btcodex-growbook-context .btcodex-button:focus-visible {
    color: #ffffff;
    background: transparent;
}
.btcodex-growbook-context .btcodex-button--ghost {
    color: var(--bt-green);
    background: transparent;
    border: 1px solid var(--bt-line);
}
.btcodex-growbook-context .btcodex-button--ghost:hover,
.btcodex-growbook-context .btcodex-button--ghost:focus-visible {
    color: var(--bt-on-live);
    background: var(--bt-green);
    border-color: var(--bt-green);
}

/* Keep image-free species heroes composed without reserving an empty media column. */
.btcodex-species-hero--no-image {
    grid-template-columns: minmax(0, 1fr);
}

.btcodex-species-hero--no-image .btcodex-species-hero__content {
    width: 100%;
    max-width: 960px;
    min-height: 520px;
    margin-inline: auto;
    padding: 72px clamp(30px, 6vw, 72px);
    background: linear-gradient(180deg, rgba(22, 22, 24, 0.92), rgba(22, 22, 24, 0.96));
}

@media (max-width: 1120px) {
    .btcodex-species-hero--no-image .btcodex-species-hero__content {
        min-height: 520px;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .btcodex-species-hero--no-image .btcodex-species-hero__content {
        min-height: 0;
        padding: 40px 22px 46px;
    }
}

@media (max-width: 720px) {
    .btcodex-growbook-context { align-items: stretch; flex-direction: column; padding: 18px; }
    .btcodex-growbook-context__actions { min-width: 0; }
}

/* CC BY-ND images keep their full frame, colors, and proportions. */
.btcodex-species-hero__media:has(> .btcodex-image--no-derivatives)::after,
.btcodex-index-card__media:has(> .btcodex-image--no-derivatives)::after,
.btcodex-related-card__media:has(> .btcodex-image--no-derivatives)::after {
    display: none;
}

.btcodex-image--no-derivatives {
    object-fit: contain !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
    background: var(--bt-bg);
}

/* Prevent a long cultivar name from breaking in the middle on phone widths. */
@media (max-width: 480px) {
    .btcodex-species-hero__title {
        font-size: clamp(34px, 9vw, 38px);
        overflow-wrap: break-word;
        word-break: normal;
        hyphens: none;
    }
}

/* 0.1.30: Artenindex mit Seiten statt Endlosliste.
   Gattungs-Navigation (Chips), Trefferzeile und Blaetterleiste.
   Gleiche Tokens/Formensprache wie der Rest des Index: eckig, 1px-Linien,
   Gruen nur fuer den aktiven Zustand. Zaehler in Mono mit tabellarischen Ziffern. */
.btcodex-genus-nav,
.btcodex-pagination {
    --bt-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

.btcodex-index-list {
    scroll-margin-top: 8rem;
}

.btcodex-genus-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 28px 0;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-genus-nav__chip,
.btcodex-pagination__page,
.btcodex-pagination__step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 16px;
    color: var(--bt-soft);
    background: var(--bt-panel-soft);
    border: 1px solid var(--bt-line);
    font-family: var(--bt-font-text);
    font-size: 14px;
    line-height: 1;
    text-decoration: none;
    /* Nur die Eigenschaften, die sich aendern; kein "all". */
    transition:
        background-color 150ms var(--bt-ease-out),
        border-color 150ms var(--bt-ease-out),
        color 150ms var(--bt-ease-out),
        transform 120ms var(--bt-ease-out);
}

.btcodex-genus-nav__count,
.btcodex-pagination__page {
    font-family: var(--bt-font-mono);
    font-variant-numeric: tabular-nums;
}

.btcodex-genus-nav__count {
    font-size: 12px;
    /* soft statt muted: muted (#6c6c72) haelt auf dem Chip-Grund keine 4.5:1 */
    opacity: 0.8;
}

@media (hover: hover) and (pointer: fine) {
    .btcodex-genus-nav__chip:hover,
    a.btcodex-pagination__page:hover,
    a.btcodex-pagination__step:hover {
        color: var(--bt-ink);
        background: var(--bt-panel);
        border-color: var(--bt-line-strong);
    }
}

.btcodex-genus-nav__chip:active,
a.btcodex-pagination__page:active,
a.btcodex-pagination__step:active {
    transform: scale(0.97);
}

.btcodex-genus-nav__chip:focus-visible,
a.btcodex-pagination__page:focus-visible,
a.btcodex-pagination__step:focus-visible {
    outline: 2px solid var(--bt-green);
    outline-offset: 2px;
}

.btcodex-genus-nav__chip.is-active,
.btcodex-pagination__page.is-current {
    color: var(--bt-on-live);
    background: var(--bt-green);
    border-color: var(--bt-green);
    font-weight: 700;
}

.btcodex-genus-nav__chip.is-active .btcodex-genus-nav__count {
    opacity: 0.75;
}

.btcodex-index-list__meta {
    margin: 12px 0 0;
    color: var(--bt-soft);
    font-family: var(--bt-font-mono);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.btcodex-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--bt-line);
}

/* Variante oberhalb der Liste: Trennlinie unten statt oben, Abstand zur Liste. */
.btcodex-pagination--top {
    margin: 24px 0;
    padding: 0 0 24px;
    border-top: 0;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-pagination__pages {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.btcodex-pagination__pages li {
    margin: 0;
    padding: 0;
}

.btcodex-pagination__page {
    min-width: 44px;
    padding: 0 12px;
}

.btcodex-pagination__gap {
    min-width: 24px;
    color: var(--bt-soft);
    text-align: center;
}

.btcodex-pagination__step.is-disabled {
    opacity: 0.4;
    cursor: default;
}

@media (max-width: 640px) {
    /* Auf dem Handy eine einzeilige Wischleiste statt 9 Zeilen Chips (501 px Hoehe).
       Randverlauf rechts zeigt, dass es weitergeht; Scrollbar ausgeblendet. */
    .btcodex-genus-nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        padding: 16px 32px 16px 0;
        -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
        mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
    }

    .btcodex-genus-nav::-webkit-scrollbar {
        display: none;
    }

    .btcodex-genus-nav__chip {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    /* Zahlen oben ueber die volle Breite, Zurueck/Weiter darunter nebeneinander. */
    .btcodex-pagination {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .btcodex-pagination__pages {
        grid-column: 1 / -1;
        order: -1;
        justify-content: center;
    }
}

/* Einzelseiten (Pruefung): Dritte Textstufe war #6c6c72 und erreichte auf Panel/Plane nur
   3,1 bis 3,5:1 (10-11px Labels, Zitierlink, Lizenzlinks). #8c8c94 liegt bei 4,8 bis 5,4:1,
   bleibt aber sichtbar unter --bt-soft. Gilt codexweit, weil das Token hier definiert wird. */
:root {
    --bt-muted: #8c8c94;
}

/* Lesebreite: Fliesstext lief mit 900px auf ca. 106 Zeichen pro Zeile (Ziel 65 bis 75).
   Tabellen, Bilder und Raster behalten die volle Breite. */
.btcodex-species-section__content > p,
.btcodex-species-section__content > ul,
.btcodex-species-section__content > ol {
    max-width: 72ch;
}

/* Pruefung (Emil/Taste): Hover nur mit echtem Zeiger, Ease-out-Kurve statt "ease",
   sichtbarer Tastaturfokus auf den Karten, Kontrast der Mini-Labels, einheitlich eckig. */
.btcodex-index {
    --bt-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

.btcodex-index-card__image {
    transition:
        transform 220ms var(--bt-ease-out),
        filter 220ms var(--bt-ease-out);
}

/* Touch: kein haengenbleibender Hover nach dem Tippen */
.btcodex-index-card:hover {
    background: var(--bt-panel);
}

.btcodex-index-card:hover .btcodex-index-card__image {
    transform: scale(1.01);
    filter: saturate(0.92) contrast(1.08);
}

@media (hover: hover) and (pointer: fine) {
    .btcodex-index-card:hover {
        background: var(--bt-panel-soft);
    }

    .btcodex-index-card:hover .btcodex-index-card__image {
        transform: scale(1.045);
        filter: saturate(1.08) contrast(1.12) brightness(1.08);
    }
}

.btcodex-index-card__click:focus-visible {
    outline: 2px solid var(--bt-green);
    outline-offset: -2px;
}

/* 10px-Labels: --bt-muted (#6c6c72) erreicht auf Panel/Plane nur 3,1:1 bzw. 3,5:1 (Ziel 4,5:1) */
.btcodex-index-search__label,
.btcodex-index-card__facts .btcodex-data-row__label {
    color: var(--bt-soft);
    opacity: 0.85;
}

/* Suchbutton war 3px, alles andere im Index ist eckig */
.btcodex-index-search__button {
    border-radius: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    .btcodex-genus-nav__chip,
    .btcodex-pagination__page,
    .btcodex-pagination__step,
    .btcodex-index-card__image {
        transition: none;
    }

    .btcodex-genus-nav__chip:active,
    a.btcodex-pagination__page:active,
    a.btcodex-pagination__step:active {
        transform: none;
    }

    .btcodex-index-card:hover .btcodex-index-card__image {
        transform: scale(1.01);
    }
}

/* 0.1.31: Codex-Einzelseite, Abschnitte als Akkordeon (<details>) statt Endlos-Scroll.
   Erste Zeile offen, der Rest je eine Zeile. Gleiche Tokens, eckig, 1px-Linien.
   Das alte Inhaltsverzeichnis entfaellt: die Zeilen sind das Verzeichnis. */
.btcodex-species-sections {
    --bt-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    display: block;
}

.btcodex-species-sections__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 56px 0 16px;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-species-sections__count {
    margin: 0;
    color: var(--bt-soft);
    font-family: var(--bt-font-mono);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

/* !important: Blocksy faerbt <button> mit eigenem Hintergrund/Radius (siehe Suchbutton) */
.btcodex-species-sections__toggle {
    min-height: 44px;
    padding: 0 18px;
    color: var(--bt-soft) !important;
    background: var(--bt-panel-soft) !important;
    border: 1px solid var(--bt-line) !important;
    border-radius: 0 !important;
    font-family: var(--bt-font-text);
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition:
        background-color 150ms var(--bt-ease-out),
        border-color 150ms var(--bt-ease-out),
        color 150ms var(--bt-ease-out),
        transform 120ms var(--bt-ease-out);
}

@media (hover: hover) and (pointer: fine) {
    .btcodex-species-sections__toggle:hover {
        color: var(--bt-ink) !important;
        background: var(--bt-panel) !important;
        border-color: var(--bt-line-strong) !important;
    }

    .btcodex-species-section__summary:hover .btcodex-species-section__chevron {
        border-color: var(--bt-ink);
    }
}

.btcodex-species-sections__toggle:active {
    transform: scale(0.97);
}

.btcodex-species-sections__toggle:focus-visible,
.btcodex-species-section__summary:focus-visible {
    outline: 2px solid var(--bt-green);
    outline-offset: 2px;
}

.btcodex-species-section {
    padding: 0;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-species-section__summary {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 12px;
    padding: 22px 0;
    list-style: none;
    cursor: pointer;
}

.btcodex-species-section__summary::-webkit-details-marker {
    display: none;
}

.btcodex-species-section__summary::marker {
    content: "";
}

.btcodex-species-section__number {
    color: var(--bt-soft);
    font-family: var(--bt-font-mono);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.btcodex-species-section__heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 16px;
    min-width: 0;
}

.btcodex-species .btcodex-species-section__summary .btcodex-section__title {
    margin: 0;
    font-size: clamp(20px, 2.2vw, 26px);
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.btcodex-species-section__group {
    color: var(--bt-soft);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.btcodex-species-section__chevron {
    justify-self: end;
    width: 10px;
    height: 10px;
    margin-right: 6px;
    border-right: 2px solid var(--bt-soft);
    border-bottom: 2px solid var(--bt-soft);
    transform: rotate(45deg) translateY(-2px);
    transition:
        transform 200ms var(--bt-ease-out),
        border-color 150ms var(--bt-ease-out);
}

.btcodex-species-section__details[open] > .btcodex-species-section__summary .btcodex-species-section__chevron {
    transform: rotate(-135deg) translateY(-2px);
}

.btcodex-species-section__content {
    padding: 4px 0 48px 56px;
}

.btcodex-species-section__details[open] > .btcodex-species-section__content {
    animation: btcodex-acc-in 180ms ease-out;
}

@keyframes btcodex-acc-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (max-width: 640px) {
    .btcodex-species-sections__bar {
        padding-top: 32px;
    }

    .btcodex-species-section__summary {
        grid-template-columns: 30px minmax(0, 1fr) 24px;
        gap: 8px;
        padding: 18px 0;
    }

    .btcodex-species-section__content {
        padding-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .btcodex-species-section__chevron,
    .btcodex-species-sections__toggle {
        transition: none;
    }

    .btcodex-species-section__details[open] > .btcodex-species-section__content {
        animation: none;
    }

    .btcodex-species-sections__toggle:active {
        transform: none;
    }
}

/* 0.1.32: Kurzprofil, Kulturgruppe und Gattungsprofil auf der Artenseite als geschlossene
   Akkordeonzeilen (gleiche Zeile wie die Langtext-Abschnitte, nur ohne Nummer). */
.btcodex-species .btcodex-collapsible {
    padding: 0;
    border-bottom: 1px solid var(--bt-line);
}

.btcodex-species-section__summary--plain {
    grid-template-columns: minmax(0, 1fr) 24px;
}

.btcodex-species-section__content--flush {
    padding-left: 0;
}

.btcodex-species-section__content--flush .btcodex-species__lead {
    margin-top: 0;
}
