/*
 * ourOps — doplňky nad Bootstrap 5.3 (vzor ourShift; Bootstrap je vendorovaný
 * v public/vendor/). Jen značka a pár komponent, které Bootstrap nemá.
 *
 * Barva značky pochází ze soustavy rodiny ourApps (ourLib/branding, grafický
 * manuál na ourapps.cloud/brand) — ourOps je v ní purpurová #D946EF. Neměnit
 * ji tady zvlášť: škála je počítaná jako celek a odstíny jsou vyvážené proti
 * sobě, aby žádné dvě appky nebyly zaměnitelné.
 */

:root {
    --ops-brand: #D946EF;
    --ops-brand-2: #2c5282;
}

.text-brand { color: var(--ops-brand); }

.btn-brand {
    --bs-btn-bg: var(--ops-brand);
    --bs-btn-border-color: var(--ops-brand);
    --bs-btn-hover-bg: #C026D3;
    --bs-btn-hover-border-color: #C026D3;
    --bs-btn-active-bg: #A21CAF;
    --bs-btn-active-border-color: #A21CAF;
    --bs-btn-color: #fff;
    --bs-btn-hover-color: #fff;
    --bs-btn-active-color: #fff;
    --bs-btn-disabled-bg: var(--ops-brand);
    --bs-btn-disabled-border-color: var(--ops-brand);
    --bs-btn-disabled-color: #fff;
}

/* ── Odstín podle role ───────────────────────────────────────────────
   Správcovské položky (napojení na ourCIS) mají vlastní tlumený odstín,
   stejný jako v ourShiftu — kdo práva má, jinak nepozná, co ostatním
   v liště chybí. Barví se jen písmo, nikdy plocha. */
:root      { --role-admin: #B45309; }
[data-bs-theme="dark"] { --role-admin: #F0A868; }

.role-admin { --role-accent: var(--role-admin); }

.nav-link.role-admin {
    color: color-mix(in srgb, var(--role-accent) 78%, var(--bs-body-color));
}

.nav-link.role-admin:hover,
.nav-link.role-admin:focus,
.nav-link.role-admin.active {
    color: var(--role-accent);
}

/* Hranice mezi skupinami v liště (vlastní evidence × okno do ourCISu). */
.nav-divider {
    align-self: center;
    width: 1px;
    height: 1.25rem;
    margin: 0 .6rem;
    background: var(--bs-border-color);
}

/* Ve sbalené (mobilní) navigaci jde řada pod sebe — svislá čárka by tam
   nedávala smysl, tak z ní udělá vodorovnou. */
@media (max-width: 991.98px) {
    .nav-divider {
        width: 100%;
        height: 1px;
        margin: .45rem 0;
    }
}

.navbar-identity { display: flex; flex-direction: column; line-height: 1.15; }
.navbar-identity-name { white-space: nowrap; }

/* ── Komponenty přenesené z původního inline <style> ────────────────
   Sidebar zmizel, tohle zůstalo — používají to karty přehledu a hlavičky
   stránek. Barvy jdou z Bootstrapu, aby fungoval tmavý motiv. */
.card { border: none; box-shadow: 0 1px 3px rgba(0, 0, 0, .1); }

.card-stat { border-left: 4px solid var(--ops-brand); }
.card-stat .stat-value { font-size: 2rem; font-weight: 700; }
.card-stat .stat-label {
    color: var(--bs-secondary-color);
    font-size: .875rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.page-header { margin-bottom: 1.5rem; }
.page-header h1 { font-weight: 600; }

.tenant-badge {
    display: inline-flex;
    align-items: center;
    padding: .25rem .75rem;
    border-radius: 9999px;
    font-size: .875rem;
    font-weight: 500;
}

.tenant-badge.connected    { background-color: #c6f6d5; color: #22543d; }
.tenant-badge.disconnected { background-color: #fed7d7; color: #742a2a; }

[data-bs-theme="dark"] .tenant-badge.connected    { background-color: #22543d; color: #c6f6d5; }
[data-bs-theme="dark"] .tenant-badge.disconnected { background-color: #742a2a; color: #fed7d7; }

/* Nabídka ⋮ ve vkládaném prohlížeči ourDisku se ořezávala o kraj tabulky.
 *
 * Táž vada jako v samotném ourDisku a v ourCIS (opraveno všude 23. 8. 2026):
 * `.table-responsive` je `overflow-x: auto` a přetékající prvek ořízne
 * i absolutně pozicovanou nabídku — nejvíc u posledního řádku, kde jí zbývá
 * nejmíň místa.
 *
 * ⚠ Pravidlo musí být tady, ne v ourLibu: ourLib šablony vydává, ale CSS
 * nikoli, takže si ho každý hostitel widgetu nese sám. Dnes jsou tři —
 * ourDisk, ourCIS a ourOps; čtvrtý ho bude potřebovat taky.
 *
 * ⚠ Bootstrap na to nemá data atribut — `data-bs-strategy` NEEXISTUJE
 * a Popperova fixed strategie jde zadat jedině přes `popperConfig` v JS.
 */
.table-responsive:has(.dropdown-menu.show) {
    overflow: visible;
}

/* ───────────────────────── Vzhled Neon ─────────────────────────
   Společnou vrstvu (proměnné Bootstrapu, lišta, okna, tlačítka, pole,
   tabulky) dává ourLib (`_boot` se `znacka: 'ourops'`). Druhá barva
   přechodu je u purpurového ourOps azurová, ne fialová (rozhodnutí
   vlastníka 29. 10. 2026, ops/docs/NEON_RODINA_PLAN.md). Odstín role
   správce se bere z tmavé varianty výš. */
[data-theme="neon"] { --ops-brand: var(--neon); }
[data-theme="neon"] .text-brand { text-shadow: 0 0 8px rgba(var(--neon-rgb), .5); }
/* Karty jsou tady bez okraje (stín místo rámečku) — v Neonu okraj nesou. */
[data-theme="neon"] .our-neon-ozdoby .card { border: var(--bs-card-border-width, 1px) solid rgba(var(--neon-rgb), .45); }
[data-theme="neon"] .card-stat { box-shadow: inset 4px 0 0 var(--neon), 0 0 24px rgba(var(--neon-rgb), .14) !important; }
[data-theme="neon"] .card-stat .stat-value { text-shadow: 0 0 10px rgba(var(--neon-rgb), .45); }
[data-theme="neon"] .tenant-badge.connected    { background-color: rgba(var(--neon-uspech-rgb), .15); color: var(--bs-success-text-emphasis); border: 1px solid rgba(var(--neon-uspech-rgb), .5); }
[data-theme="neon"] .tenant-badge.disconnected { background-color: rgba(var(--neon-chyba-rgb), .15); color: var(--bs-danger-text-emphasis); border: 1px solid rgba(var(--neon-chyba-rgb), .5); }
