/*
 * Anwalt-Lotse Bootstrap theme (PDF color mapping).
 * Loaded after Bootstrap on the main site only (_base.html).
 */
:root,
[data-bs-theme="light"] {
    /* Core palette */
    --bs-primary: #003158;
    --bs-primary-rgb: 0, 49, 88;
    --bs-secondary: #6f6f6e;
    --bs-secondary-rgb: 111, 111, 110;
    --bs-success: #2a722b;
    --bs-success-rgb: 42, 114, 43;
    --bs-danger: #c41314;
    --bs-danger-rgb: 196, 19, 20;
    --bs-warning: #de7e00;
    --bs-warning-rgb: 222, 126, 0;
    --bs-info: #87ceeb;
    --bs-info-rgb: 135, 206, 235;
    --bs-light: #fde4d4;
    --bs-light-rgb: 253, 228, 212;
    --bs-dark: #003158;
    --bs-dark-rgb: 0, 49, 88;

    /* Emphasis / subtle variants */
    --bs-primary-text-emphasis: #002846;
    --bs-primary-bg-subtle: #6a85a6;
    --bs-primary-border-subtle: #4a6380;
    --bs-secondary-text-emphasis: #4a4a49;
    --bs-secondary-bg-subtle: #b2b2b1;
    --bs-secondary-border-subtle: #969695;
    --bs-success-text-emphasis: #1a4a1b;
    --bs-success-bg-subtle: #9bb389;
    --bs-success-border-subtle: #6f8f5f;
    --bs-danger-text-emphasis: #8a0e0f;
    --bs-danger-bg-subtle: #e29176;
    --bs-danger-border-subtle: #c96f52;
    --bs-warning-text-emphasis: #553600;
    --bs-warning-bg-subtle: #f1bf87;
    --bs-warning-border-subtle: #d9a05a;
    --bs-info-text-emphasis: #003158;
    --bs-info-bg-subtle: #c9e7f2;
    --bs-info-border-subtle: #9fd4e8;
    --bs-light-text-emphasis: #003158;
    --bs-light-bg-subtle: #fac9a9;
    --bs-light-border-subtle: #f5b080;

    /* Body */
    --bs-body-color: #003158;
    --bs-body-color-rgb: 0, 49, 88;
    --bs-body-bg: #ffffff;
    --bs-body-bg-rgb: 255, 255, 255;

    /* Links */
    --bs-link-color: #003158;
    --bs-link-color-rgb: 0, 49, 88;
    --bs-link-hover-color: #124571;
    --bs-link-hover-color-rgb: 18, 69, 113;

    /* Search-page button states (custom components) */
    --al-primary-hover: #124571;
    --al-primary-active: #002846;
    --al-warning-hover: #c57000;
    --al-warning-active: #b36600;
}

/* Solid buttons */
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--al-primary-hover);
    --bs-btn-hover-border-color: var(--al-primary-hover);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--al-primary-active);
    --bs-btn-active-border-color: var(--al-primary-active);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #5a5a59;
    --bs-btn-hover-border-color: #545453;
    --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #484847;
    --bs-btn-active-border-color: #424241;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-secondary);
    --bs-btn-disabled-border-color: var(--bs-secondary);
}

.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #225a23;
    --bs-btn-hover-border-color: #205421;
    --bs-btn-focus-shadow-rgb: var(--bs-success-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1b481c;
    --bs-btn-active-border-color: #19431a;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-success);
    --bs-btn-disabled-border-color: var(--bs-success);
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #a01011;
    --bs-btn-hover-border-color: #960f10;
    --bs-btn-focus-shadow-rgb: var(--bs-danger-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #850d0e;
    --bs-btn-active-border-color: #7d0c0d;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-danger);
    --bs-btn-disabled-border-color: var(--bs-danger);
}

.btn-warning {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--al-warning-hover);
    --bs-btn-hover-border-color: var(--al-warning-hover);
    --bs-btn-focus-shadow-rgb: var(--bs-warning-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--al-warning-active);
    --bs-btn-active-border-color: var(--al-warning-active);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-warning);
    --bs-btn-disabled-border-color: var(--bs-warning);
}

.btn-info {
    --bs-btn-color: var(--bs-body-color);
    --bs-btn-bg: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: var(--bs-body-color);
    --bs-btn-hover-bg: #6bb8d6;
    --bs-btn-hover-border-color: #62b0cf;
    --bs-btn-focus-shadow-rgb: var(--bs-info-rgb);
    --bs-btn-active-color: var(--bs-body-color);
    --bs-btn-active-bg: #52a8cc;
    --bs-btn-active-border-color: #4da0c4;
    --bs-btn-disabled-color: var(--bs-body-color);
    --bs-btn-disabled-bg: var(--bs-info);
    --bs-btn-disabled-border-color: var(--bs-info);
}

/* Outline buttons */
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--al-primary-active);
    --bs-btn-active-border-color: var(--al-primary-active);
}

.btn-outline-secondary {
    --bs-btn-color: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-secondary);
    --bs-btn-hover-border-color: var(--bs-secondary);
    --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #484847;
    --bs-btn-active-border-color: #484847;
}

.btn-outline-success {
    --bs-btn-color: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-success);
    --bs-btn-hover-border-color: var(--bs-success);
    --bs-btn-focus-shadow-rgb: var(--bs-success-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1b481c;
    --bs-btn-active-border-color: #1b481c;
}

.btn-outline-danger {
    --bs-btn-color: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-danger);
    --bs-btn-hover-border-color: var(--bs-danger);
    --bs-btn-focus-shadow-rgb: var(--bs-danger-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #850d0e;
    --bs-btn-active-border-color: #850d0e;
}

.btn-outline-warning {
    --bs-btn-color: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-warning);
    --bs-btn-hover-border-color: var(--bs-warning);
    --bs-btn-focus-shadow-rgb: var(--bs-warning-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--al-warning-active);
    --bs-btn-active-border-color: var(--al-warning-active);
}

.btn-outline-info {
    --bs-btn-color: var(--bs-info-text-emphasis);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: var(--bs-body-color);
    --bs-btn-hover-bg: var(--bs-info);
    --bs-btn-hover-border-color: var(--bs-info);
    --bs-btn-focus-shadow-rgb: var(--bs-info-rgb);
    --bs-btn-active-color: var(--bs-body-color);
    --bs-btn-active-bg: #52a8cc;
    --bs-btn-active-border-color: #52a8cc;
}

/* Contrast-safe text on colored badges */
.text-bg-warning {
    color: #fff !important;
}

.text-bg-info,
.text-bg-light {
    color: var(--bs-body-color) !important;
}

/* BRAK Zweigstelle: one icon column, chevron shows it expands */
details[data-brak-branch] > summary {
    list-style: none;
    cursor: pointer;
}

details[data-brak-branch] > summary::-webkit-details-marker {
    display: none;
}

details[data-brak-branch] > summary .brak-branch-chevron {
    transition: transform 0.15s ease;
}

details[data-brak-branch][open] > summary .brak-branch-chevron {
    transform: rotate(180deg);
}

details[data-brak-branch] .brak-branch-body {
    /* Match summary geo icon (1em) + Bootstrap me-2 */
    padding-left: calc(1em + 0.5rem);
}

/* Profile actions next to the freshness badge („Bearbeiten“, „Profil beanspruchen“):
   one row from 576px up, full-width buttons stacked below the badge on phones. */
@media (max-width: 575.98px) {
    .profile-actions,
    .profile-actions .btn:not(.btn-link) {
        width: 100%;
    }
}

/* BRAK freshness: green when <24h, browner as the check ages. */
.brak-freshness-badge {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.brak-freshness-badge .brak-freshness-full {
    display: none;
}
.brak-freshness-badge:hover .brak-freshness-compact,
.brak-freshness-badge:focus-visible .brak-freshness-compact {
    display: none;
}
.brak-freshness-badge:hover .brak-freshness-full,
.brak-freshness-badge:focus-visible .brak-freshness-full {
    display: inline;
}
.brak-freshness-badge .brak-freshness-elapsed {
    display: none;
}
.brak-freshness-refreshing {
    animation: brak-freshness-pulse 2s ease-in-out infinite;
}
.brak-freshness-refreshing:hover,
.brak-freshness-refreshing:focus-visible {
    animation: none;
}
.brak-freshness-refreshing:hover .brak-freshness-elapsed,
.brak-freshness-refreshing:focus-visible .brak-freshness-elapsed {
    display: inline;
}
@keyframes brak-freshness-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}
@media (prefers-reduced-motion: reduce) {
    .brak-freshness-refreshing {
        animation: none;
    }
}
.brak-freshness-0 {
    background: #2a722b;
    color: #fff;
}
.brak-freshness-1 {
    background: #5c7a2e;
    color: #fff;
}
.brak-freshness-2 {
    background: #8a6a24;
    color: #fff;
}
.brak-freshness-3 {
    background: #8b5a2b;
    color: #fff;
}
.brak-freshness-4 {
    background: #6e3f22;
    color: #fff;
}
.brak-freshness-5 {
    background: #4a2c14;
    color: #fff;
}
.brak-freshness-none {
    background: #c41314;
    color: #fff;
}

/* Verification-age table: bar length is the count (share of the
   largest row). ``display: block`` would make fit-content = 100% of
   the cell, so the bar is inline-block inside a full-width track. */
.verification-age-track {
    display: block;
    width: 100%;
}
.verification-age-bar {
    display: inline-block;
    box-sizing: border-box;
    min-width: fit-content;
    max-width: 100%;
    padding: 0.35em 0.75em;
    border-radius: var(--bs-border-radius-pill);
    color: #fff;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    text-align: left;
    overflow: visible;
    vertical-align: middle;
}

/* Bootstrap Icons shift glyphs 0.125em below the baseline to center them
   on body text. In headings the glyph bottom should sit on the text
   baseline instead (the icon font's glyph box already ends there). */
.bi-on-baseline::before {
    vertical-align: baseline;
}

/* „Statistiken | Rankings“ tabs above every page under „Zahlen“: muted
   tabs, the active one in the brand colour, its underline on the bar's
   bottom border. */
.zahlen-tabs .nav-underline {
    --bs-nav-link-color: var(--bs-secondary-color);
    --bs-nav-link-hover-color: var(--bs-primary);
    --bs-nav-underline-link-active-color: var(--bs-primary);
    margin-bottom: -1px;
}

/* Grouped overview of „Statistiken“: a small card (the whole card is the
   link) shows that it is one on hover and keyboard focus. */
.catalog-card {
    transition: border-color 0.15s ease-in-out;
}

.catalog-card:hover,
.catalog-card:focus-within {
    border-color: var(--bs-primary) !important;
}
