/* ═══════════════════════════════════════
   MIJN DIEREN  —  /mijn/dieren
   ═══════════════════════════════════════ */

/* ── Groep headers (scoped tot dieren-blok) ─────────────── */
.nib-dieren-block .animal-group-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

/* Hoofdgroep (klasse) — lichte tint van groen */
.nib-dieren-block .animal-group-order {
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 82%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    padding: 0.55rem 1rem;
    margin-left: 0;
}

.nib-dieren-block .animal-group-order .animal-group-type {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 60%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    flex-shrink: 0;
    white-space: nowrap;
}

.nib-dieren-block .animal-group-order .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    font-size: 0.95rem;
    font-weight: 700;
}

.nib-dieren-block .animal-group-order .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 60%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 25%);
}

/* Subgroep (familie) — iets lichtere tint, geen inspringing, geen border */
.nib-dieren-block .animal-group-family {
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 91%);
    border-left: none;
    padding: 0.4rem 1rem;
    margin-left: 0;
}

.nib-dieren-block .animal-group-family .animal-group-type {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 72%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    flex-shrink: 0;
    white-space: nowrap;
}

.nib-dieren-block .animal-group-family .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 35%);
    font-size: 0.88rem;
    font-weight: 600;
}

.nib-dieren-block .animal-group-family .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 72%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 25%);
}

/* Donker thema */
.rz-material-dark .nib-dieren-block .animal-group-order {
    background: color-mix(in oklab, var(--group-color, #3a7d44), black 35%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 80%);
}

.rz-material-dark .nib-dieren-block .animal-group-order .animal-group-type {
    background: color-mix(in oklab, var(--group-color, #3a7d44), black 20%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 80%);
}

.rz-material-dark .nib-dieren-block .animal-group-order .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 85%);
}

.rz-material-dark .nib-dieren-block .animal-group-order .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #3a7d44), black 20%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 80%);
}

.rz-material-dark .nib-dieren-block .animal-group-family {
    background: color-mix(in oklab, var(--group-color, #3a7d44), black 55%);
    border-left: none;
}

.rz-material-dark .nib-dieren-block .animal-group-family .animal-group-type {
    background: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 70%);
}

.rz-material-dark .nib-dieren-block .animal-group-family .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 75%);
}

.rz-material-dark .nib-dieren-block .animal-group-family .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 70%);
}

/* ═══════════════════════════════════════
   DIEREN OVERZICHT  —  /dieren
   Zelfde patroon als mijn-dieren, scoped
   op .nib-animals-main-block
   ═══════════════════════════════════════ */

.nib-animals-main-block .animal-group-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.nib-animals-main-block .animal-group-order {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), white 82%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 30%);
    padding: 0.55rem 1rem;
    margin-left: 0;
}

.nib-animals-main-block .animal-group-order .animal-group-type {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: color-mix(in oklab, var(--group-color, #1a6b3c), white 60%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 30%);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    flex-shrink: 0;
    white-space: nowrap;
}

.nib-animals-main-block .animal-group-order .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 30%);
    font-size: 0.95rem;
    font-weight: 700;
}

.nib-animals-main-block .animal-group-order .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), white 60%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 25%);
}

.nib-animals-main-block .animal-group-family {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), white 91%);
    border-left: none;
    padding: 0.4rem 1rem;
    margin-left: 0;
}

.nib-animals-main-block .animal-group-family .animal-group-type {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: color-mix(in oklab, var(--group-color, #1a6b3c), white 72%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 30%);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    flex-shrink: 0;
    white-space: nowrap;
}

.nib-animals-main-block .animal-group-family .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 35%);
    font-size: 0.88rem;
    font-weight: 600;
}

.nib-animals-main-block .animal-group-family .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), white 72%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), black 25%);
}

.rz-material-dark .nib-animals-main-block .animal-group-order {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), black 35%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 80%);
}

.rz-material-dark .nib-animals-main-block .animal-group-order .animal-group-type {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), black 20%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 80%);
}

.rz-material-dark .nib-animals-main-block .animal-group-order .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 85%);
}

.rz-material-dark .nib-animals-main-block .animal-group-order .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), black 20%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 80%);
}

.rz-material-dark .nib-animals-main-block .animal-group-family {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), black 55%);
    border-left: none;
}

.rz-material-dark .nib-animals-main-block .animal-group-family .animal-group-type {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), black 30%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 70%);
}

.rz-material-dark .nib-animals-main-block .animal-group-family .animal-group-name {
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 75%);
}

.rz-material-dark .nib-animals-main-block .animal-group-family .animal-group-count {
    background: color-mix(in oklab, var(--group-color, #1a6b3c), black 30%);
    color: color-mix(in oklab, var(--group-color, #1a6b3c), white 70%);
}

/* ── Search ─────────────────────────────────────────── */
.nib-dieren-search {
    display: flex;
    align-items: center;
    position: relative;
}

.nib-dieren-search-input {
    height: 2rem;
    padding: 0 2rem 0 0.75rem;
    border: 1px solid color-mix(in oklab, var(--group-color, #3a7d44), white 55%);
    border-radius: 1rem;
    background: color-mix(in oklab, var(--group-color, #3a7d44), white 88%);
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 30%);
    font-size: 0.85rem;
    outline: none;
    width: 13rem;
    transition: border-color .15s;
}

.nib-dieren-search-input:focus {
    border-color: color-mix(in oklab, var(--group-color, #3a7d44), white 25%);
}

.nib-dieren-search-icon {
    position: absolute;
    right: 0.6rem;
    font-size: 0.75rem;
    color: color-mix(in oklab, var(--group-color, #3a7d44), white 30%);
    pointer-events: none;
}

/* ── Empty state ─────────────────────────────────────── */
.nib-dieren-block .nib-coll-empty {
    padding: 3rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    color: color-mix(in oklab, var(--group-color, #3a7d44), black 15%);
    font-size: 0.95rem;
}

.nib-dieren-block .nib-coll-empty i {
    font-size: 2.5rem;
    opacity: 0.35;
}

/* ── Animal card grid ────────────────────────────────────── */
.nib-animal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1px;
}

/* ── Animal card — gebaseerd op nib-cover-card ───────────── */
.nib-animal-card {
    --cc-bar:      color-mix(in oklab, var(--pc-color, #3a7d44), white 50%);
    --cc-bar-text: color-mix(in oklab, var(--pc-color, #3a7d44), black 48%);
    --cc-bar-sub:  color-mix(in oklab, var(--pc-color, #3a7d44), black 22%);
    --cc-bar-icon: color-mix(in oklab, var(--pc-color, #3a7d44), black 12%);
    --cc-detail:   color-mix(in oklab, var(--pc-color, #3a7d44), black 8%);
    --cc-detail-h: color-mix(in oklab, var(--pc-color, #3a7d44), black 18%);

    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 0;
    cursor: pointer;
    background: color-mix(in oklab, var(--pc-color, #3a7d44), black 40%);
    display: block;
}

.rz-material-dark .nib-animal-card {
    --cc-bar:      color-mix(in oklab, var(--pc-color, #3a7d44), black 42%);
    --cc-bar-text: #fff;
    --cc-bar-sub:  rgba(255,255,255,0.78);
    --cc-bar-icon: rgba(255,255,255,0.6);
    --cc-detail:   rgba(255,255,255,0.18);
    --cc-detail-h: rgba(255,255,255,0.32);
}

/* Foto */
.nib-animal-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease, filter 0.3s ease;
}

.nib-animal-card:hover .nib-animal-card-img {
    transform: scale(1.04);
    filter: brightness(0.92);
}

/* Foto count linksboven — zelfde als nib-cover-card-score */
.nib-animal-card-score {
    position: absolute;
    top: 0.6rem;
    left: 0.6rem;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.22rem 0.55rem;
    border-radius: 20px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #fff;
    background: rgba(0,0,0,0.52);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.nib-animal-card-score i {
    font-size: 0.58rem;
}

/* Info-balk onderin — identiek aan nib-cover-card-bar */
.nib-animal-card-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.75rem;
    background: var(--cc-bar);
}

.nib-animal-card-bar-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.nib-animal-card-title {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--cc-bar-text);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nib-animal-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.5rem;
}

.nib-animal-card-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.65rem;
    color: var(--cc-bar-sub);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nib-animal-card-meta-item i {
    font-size: 0.54rem;
    color: var(--cc-bar-icon);
}

/* Pijl-knop rechts in de balk — identiek aan nib-cover-card-detail */
.nib-animal-card-detail {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--cc-detail);
    color: var(--cc-bar-text);
    font-size: 0.68rem;
    flex-shrink: 0;
}

/* Skeleton */
.nib-animal-card-sk {
    aspect-ratio: 4 / 3;
}
