/* ============================================================================
   DaysMenu Admin — brandová vrstva
   Načítá se AŽ ZA adminlte.min.css, takže přepisuje Bootstrap (--bs-*)
   a AdminLTE (--lte-*) custom properties bez forku šablony.

   Identita: NAVY (#003955) jako primární barva, ČERVENÁ (#E7344E) jako akcent,
   typografie Inter (sjednoceno s public webem).

   Pozn.: Mnoho Bootstrap komponent má #0d6efd zadrátované přímo ve
   zkompilovaném CSS (nečte var(--bs-primary)). Proto níže přepisujeme i jejich
   lokální --bs-* proměnné / selektory, aby v adminu nezůstala modrá.
   ========================================================================== */

/* --- Inter (variable, latin + latin-ext kvůli češtině) ------------------- */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* --- Brandové tokeny (hodnoty převzaté z public e-shopu, ne sdílené) -----
   Public app.css používá názvy --brand-*; zde --days-* se stejnými hodnotami. */
:root {
    --days-red: #E7344E;
    --days-dark-red: #B92A3E;
    --days-navy: #003955;
    --days-navy-dark: #002A3F;
    --days-blue: #0B3A58;
    --days-text: #092634;
    --days-beige: #F7F2EC;
    --days-light-blue: #EBF6FD;
    --days-gray: #F0F0F0;
    --days-green: #3B8A3E;
}

/* --- Hustota UI / velikost písma (admin = desktopový nástroj pro data) ----
   Jediný řídicí knoflík: --days-root-font-size.
   100% = 16px (výchozí), 87.5% = 14px (zvoleno), 93.75% = 15px, 81.25% = 13px.
   % (ne px) zachovává zoom prohlížeče i OS škálování (přístupnost). */
:root {
    --days-root-font-size: 87.5%;
}

html {
    font-size: var(--days-root-font-size);
}

/* Vstupní pole a popisky (-sm varianty) drží ~13px, ať neklesnou pod 12px.
   Bez podlahy: 0.875rem × 14px = 12.25px; s 0.929rem × 14px ≈ 13px. */
.form-control-sm,
.form-select-sm,
.col-form-label-sm {
    font-size: 0.929rem;
}

/* Vnitřní svislý rytmus karty (vnější mezeru řeší mb-3 na .card v Card.razor). */
.card-body {
    padding: 0.75rem;
}

/* --- Typografie + primární = navy ----------------------------------------
   Mirror obou selektorů (:root i [data-bs-theme=light]), aby override platil
   i uvnitř podstromů, které mají data-bs-theme=light (např. sidebar). */
:root,
[data-bs-theme="light"] {
    --bs-font-sans-serif: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';

    --bs-primary: #003955;
    --bs-primary-rgb: 0, 57, 85;
    --bs-primary-text-emphasis: #00222f;
    --bs-primary-bg-subtle: #ccd7dd;
    --bs-primary-border-subtle: #99b0bb;

    --bs-link-color: #003955;
    --bs-link-color-rgb: 0, 57, 85;
    --bs-link-hover-color: #002A3F;
    --bs-link-hover-color-rgb: 0, 42, 63;

    --bs-focus-ring-color: rgba(0, 57, 85, .25);
}

/* --- Tlačítka (btn-primary/outline mají #0d6efd natvrdo) ----------------- */
.btn-primary {
    --bs-btn-bg: #003955;
    --bs-btn-border-color: #003955;
    --bs-btn-hover-bg: #0B3A58;
    --bs-btn-hover-border-color: #0B3A58;
    --bs-btn-active-bg: #002A3F;
    --bs-btn-active-border-color: #002233;
    --bs-btn-disabled-bg: #003955;
    --bs-btn-disabled-border-color: #003955;
    --bs-btn-focus-shadow-rgb: 38, 87, 110;
}

.btn-outline-primary {
    --bs-btn-color: #003955;
    --bs-btn-border-color: #003955;
    --bs-btn-hover-bg: #003955;
    --bs-btn-hover-border-color: #003955;
    --bs-btn-active-bg: #003955;
    --bs-btn-active-border-color: #003955;
    --bs-btn-disabled-color: #003955;
    --bs-btn-disabled-border-color: #003955;
    --bs-btn-focus-shadow-rgb: 0, 57, 85;
}

.btn-link {
    --bs-btn-color: #003955;
    --bs-btn-hover-color: #002A3F;
    --bs-btn-active-color: #002A3F;
}

/* --- Karty (AdminLTE card-* varianta má #0d6efd natvrdo) ----------------
   Přebarví 3px horní okraj .card-outline i barevné hlavičky .card-primary. */
.card-primary,
.bg-primary,
.text-bg-primary {
    --lte-card-variant-bg: #003955;
    --lte-card-variant-bg-rgb: 0, 57, 85;
}

/* --- Formulářové prvky (checked/indeterminate/focus mají modrou natvrdo) - */
.form-check-input:checked {
    background-color: #003955;
    border-color: #003955;
}

.form-check-input[type=checkbox]:indeterminate {
    background-color: #003955;
    border-color: #003955;
}

.form-control:focus,
.form-select:focus {
    border-color: #6694a8;
    box-shadow: var(--bs-box-shadow-inset), 0 0 0 .25rem rgba(0, 57, 85, .25);
}

.form-check-input:focus {
    border-color: #6694a8;
    box-shadow: 0 0 0 .25rem rgba(0, 57, 85, .25);
}

.form-range::-webkit-slider-thumb {
    background-color: #003955;
}

.form-range::-moz-range-thumb {
    background-color: #003955;
}

.form-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 .25rem rgba(0, 57, 85, .25);
}

.form-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 .25rem rgba(0, 57, 85, .25);
}

/* --- Stránkování (DataGrid), seznamy, dropdowny, progress --------------- */
.pagination {
    --bs-pagination-active-bg: #003955;
    --bs-pagination-active-border-color: #003955;
    --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0, 57, 85, .25);
}

.dropdown-menu {
    --bs-dropdown-link-active-bg: #003955;
}

.nav-pills {
    --bs-nav-pills-link-active-bg: #003955;
}

.list-group {
    --bs-list-group-active-bg: #003955;
    --bs-list-group-active-border-color: #003955;
}

.progress,
.progress-stacked {
    --bs-progress-bar-bg: #003955;
}

.accordion {
    --bs-accordion-active-color: #003955;
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23003955' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(0, 57, 85, .25);
}

.accordion-button:focus {
    box-shadow: 0 0 0 .25rem rgba(0, 57, 85, .25);
}

.btn-close:focus {
    box-shadow: 0 0 0 .25rem rgba(0, 57, 85, .25);
}

/* AdminLTE má na .nav-link:focus-visible modrý focus ring natvrdo → navy. */
.nav-link:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 .25rem rgba(0, 57, 85, .25);
}

/* --- Sidebar: světlé pozadí, navy text, ČERVENÝ aktivní akcent ----------
   AdminLTE light proměnné jsou na .app-sidebar nepodmíněně → přepíšeme je. */
.app-sidebar {
    --lte-sidebar-color: #092634;
    --lte-sidebar-hover-color: #003955;
    --lte-sidebar-hover-bg: #EBF6FD;
    --lte-sidebar-active-color: #003955;
    --lte-sidebar-menu-active-color: #003955;
    --lte-sidebar-menu-active-bg: rgba(231, 52, 78, .10);
    --lte-sidebar-submenu-color: #51606b;
    --lte-sidebar-submenu-hover-color: #003955;
    --lte-sidebar-submenu-hover-bg: #EBF6FD;
    --lte-sidebar-submenu-active-color: #003955;
    --lte-sidebar-submenu-active-bg: rgba(231, 52, 78, .08);
    --lte-sidebar-header-color: #51606b;
}

/* Aktivní položka: navy popisek (kontrast AA ~10:1), červený akcent nese
   ikona + levý 3px proužek + jemné červené podbarvení řádku. */
.app-sidebar .sidebar-menu > .nav-item > .nav-link.active,
.app-sidebar .sidebar-menu .nav-treeview > .nav-item > .nav-link.active {
    box-shadow: inset 3px 0 0 0 var(--days-red);
}

.app-sidebar .sidebar-menu > .nav-item > .nav-link.active > .nav-icon,
.app-sidebar .sidebar-menu .nav-treeview > .nav-item > .nav-link.active > .nav-icon {
    color: var(--days-red);
}

/* --- Branding sidebaru a hlavičky ---------------------------------------- */
.sidebar-brand {
    padding-top: .55rem;
    padding-bottom: .55rem;
}

.sidebar-brand .brand-link {
    display: flex;
    align-items: center;
    color: var(--days-text);
}

.sidebar-brand .brand-link .brand-image {
    height: 2.4rem;
    max-height: 2.4rem;
    width: auto;
    margin: 0;
    opacity: 1;
    box-shadow: none;
}

/* --- Stavový odznak „brand" pro StatusBadge ------------------------------
   Tmavší brandová červená kvůli kontrastu bílého textu (WCAG AA). */
.badge-brand {
    color: #fff;
    background-color: var(--days-dark-red);
}

/* --- Fixní zásobník hlášek (AppAlerts → toast) ---------------------------
   Hlášky z AppState se vykreslují fixně vpravo nahoře, takže jsou viditelné
   nezávisle na scrollu i u dlouhých formulářů. Zachovává tónované Bootstrap
   alerty (alert-danger/success/...), doplňuje ikonu, slide-in a progress-bar
   u auto-mizejících hlášek. */
.app-toast-container {
    position: fixed;
    top: calc(2.5rem + 1rem);
    right: 1rem;
    z-index: var(--bs-toast-zindex, 1090);
    width: 380px;
    max-width: calc(100vw - 2rem);
    display: flex;
    flex-direction: column;
    gap: .5rem;
    pointer-events: none;
}

    .app-toast-container > * {
        pointer-events: auto;
    }

.app-toast-clearall {
    align-self: flex-end;
}

    .app-toast-clearall .btn-link {
        text-decoration: none;
        color: var(--days-navy);
        padding: 0 .25rem;
        font-size: .8125rem;
    }

.app-toast {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    margin-bottom: 0;
    padding: .75rem 2.25rem .75rem .75rem;
    animation: app-toast-in 180ms ease-out;
}

.app-toast__icon {
    flex: 0 0 auto;
    font-size: 1.1rem;
    line-height: 1.4;
}

.app-toast__body {
    flex: 1 1 auto;
    min-width: 0;
}

.app-toast__title {
    font-weight: 600;
}

.app-toast__text {
    overflow-wrap: anywhere;
}

.app-toast .btn-close {
    position: absolute;
    top: .6rem;
    right: .6rem;
}

.app-toast__progress {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background: currentColor;
    opacity: .35;
    transform-origin: left;
    animation-name: app-toast-progress;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes app-toast-in {
    from {
        opacity: 0;
        transform: translateX(1rem);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes app-toast-progress {
    from {
        transform: scaleX(1);
    }

    to {
        transform: scaleX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .app-toast {
        animation: none;
    }

    .app-toast__progress {
        animation: none;
        display: none;
    }
}

@media (max-width: 575.98px) {
    .app-toast-container {
        top: auto;
        bottom: 1rem;
        left: 1rem;
        right: 1rem;
        width: auto;
        max-width: none;
    }
}
