/* =========================================================================
   Trittsiegel – Datenbank / Systematik
   ========================================================================= */

.database-page .ts-header--solid {
    background: var(--ts-surface);
    border-bottom: 1px solid var(--ts-line);
}

.db {
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 5vw, 3rem) 4rem;
}
.db-head { max-width: 680px; margin-bottom: 2rem; }
.db-head .section-eyebrow { color: var(--ts-accent); }
.db-head h1 {
    font-family: var(--ts-font-head); font-weight: 600;
    font-size: clamp(2rem, 5vw, 3.2rem); margin: .3rem 0 .6rem;
}
.db-lead { color: var(--ts-muted); font-size: 1.1rem; margin: 0; }

/* ---- Toolbar ---- */
.db-toolbar {
    display: flex; flex-wrap: wrap; gap: .7rem;
    padding: 1rem; margin-bottom: 1rem;
    background: var(--ts-surface); border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius); box-shadow: var(--ts-shadow);
}
.db-search { flex: 1 1 240px; }
#db-search {
    width: 100%; box-sizing: border-box;
    padding: .7rem .9rem; font-size: 1rem; font-family: inherit;
    border: 1.5px solid var(--ts-line); border-radius: 9px; background: var(--ts-bg); color: var(--ts-ink);
}
#db-search:focus { outline: none; border-color: var(--ts-accent); }
.db-filter {
    flex: 0 1 auto; min-width: 150px;
    padding: .7rem .8rem; font-size: .95rem; font-family: inherit;
    border: 1.5px solid var(--ts-line); border-radius: 9px; background: var(--ts-surface); color: var(--ts-ink);
    cursor: pointer;
}
.db-filter:focus { outline: none; border-color: var(--ts-accent); }
.db-reset {
    padding: .7rem 1rem; font-size: .9rem; font-family: inherit; font-weight: 600;
    border: 1.5px solid var(--ts-line); border-radius: 9px; background: transparent; color: var(--ts-muted);
    cursor: pointer;
}
.db-reset:hover { border-color: var(--ts-ink); color: var(--ts-ink); }

.db-count { color: var(--ts-muted); font-size: .9rem; margin: 0 0 .6rem .2rem; }
.db-count #db-count { font-weight: 700; color: var(--ts-ink); }

/* ---- Tabelle ---- */
.db-tablewrap {
    background: var(--ts-surface); border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius); overflow: hidden; box-shadow: var(--ts-shadow);
}
.db-table { width: 100%; border-collapse: collapse; }
.db-table thead th {
    text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .07em;
    color: var(--ts-muted); font-weight: 600;
    padding: .9rem 1rem; border-bottom: 2px solid var(--ts-line); background: color-mix(in srgb, var(--ts-accent) 5%, var(--ts-surface));
}
.db-row { cursor: pointer; transition: background .12s; }
.db-row > td { padding: .85rem 1rem; border-bottom: 1px solid var(--ts-line); vertical-align: middle; }
.db-row:last-child > td { border-bottom: none; }
.db-row:hover { background: color-mix(in srgb, var(--ts-accent) 8%, var(--ts-surface)); }
.db-cell-name a {
    font-family: var(--ts-font-head); font-weight: 600; font-size: 1.1rem;
    color: var(--ts-ink); text-decoration: none;
}
.db-row:hover .db-cell-name a { color: var(--ts-accent); }
.db-cell-sci em { color: var(--ts-muted); font-style: italic; }

.iucn {
    display: inline-block; min-width: 2.1rem; text-align: center;
    padding: .2rem .5rem; border-radius: 6px; font-size: .78rem; font-weight: 700;
    background: #e6e6e6; color: #444;
}
.iucn[data-s="LC"] { background: #d8efd0; color: #2f6b22; }
.iucn[data-s="NT"] { background: #eef0c9; color: #6b6a1f; }
.iucn[data-s="VU"] { background: #f7e6c4; color: #8a5a18; }
.iucn[data-s="EN"] { background: #f6d6c1; color: #9a3d16; }
.iucn[data-s="CR"] { background: #f3c6c6; color: #952121; }

.db-empty { padding: 2.5rem 1rem; text-align: center; color: var(--ts-muted); }

@media (max-width: 680px) {
    .db-table thead { display: none; }
    .db-row:not([hidden]) { display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem; padding: .8rem 1rem; border-bottom: 1px solid var(--ts-line); }
    .db-row > td { border: none; padding: .1rem 0; }
    .db-cell-sci { grid-column: 1 / -1; }
}

/* ---- Katalog (Register-Liste mit Nr. + Shop-Link) ---- */
#cat-search {
    width: 100%; box-sizing: border-box;
    padding: .7rem .9rem; font-size: 1rem; font-family: inherit;
    border: 1.5px solid var(--ts-line); border-radius: 9px;
    background: var(--ts-surface); color: var(--ts-ink);
}
#cat-search:focus { outline: none; border-color: var(--ts-accent); }
.cat-row > td { padding: .8rem 1rem; border-bottom: 1px solid var(--ts-line); vertical-align: middle; }
.cat-row:last-child > td { border-bottom: none; }
.cat-row:hover { background: color-mix(in srgb, var(--ts-accent) 8%, var(--ts-surface)); }
.cat-nr { font-family: var(--ts-font-head); font-weight: 700; white-space: nowrap; color: var(--ts-muted); font-size: .9rem; letter-spacing: .02em; }
.cat-name { font-family: var(--ts-font-head); font-weight: 600; font-size: 1.05rem; color: var(--ts-ink); }
.cat-latin em { color: var(--ts-muted); font-style: italic; }
.cat-shop { text-align: right; white-space: nowrap; }
.cat-shop-link { color: #b3590a; font-weight: 700; text-decoration: none; font-size: .92rem; }
.cat-shop-link:hover { text-decoration: underline; }
.cat-soon { color: var(--ts-muted); }

@media (max-width: 680px) {
    .cat-table thead { display: none; }
    .cat-row:not([hidden]) { display: grid; grid-template-columns: auto 1fr; gap: .15rem .8rem; padding: .8rem 1rem; border-bottom: 1px solid var(--ts-line); align-items: baseline; }
    .cat-row > td { border: none; padding: .1rem 0; }
    .cat-name { grid-column: 2; }
    .cat-nr { grid-row: 1; }
    .cat-latin { grid-column: 2; }
    .cat-shop { grid-column: 1 / -1; text-align: left; margin-top: .3rem; }
}
