/* ═══════════════════════════════════════════════════════════
   DatumWeb.Blazor.Core — Common CSS
   Shared by ALL apps: DatumWeb, SideShow sites, any future Blazor app.
   Referenced as: _content/DatumWeb.Blazor.Core/css/datumweb-core.css
   ═══════════════════════════════════════════════════════════ */

/* ── Blazor validation states ────────────────────────────── */
.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e52a00;
}

/* Blazor focus handling — remove outline from headings after navigation */
h1:focus, h2:focus, h3:focus {
    outline: none;
}

/* ── Background image utility ────────────────────────────── */
.bg-image {
    background-position: 50% 50%;
    background-size: cover;
}

/* ── Link reset ──────────────────────────────────────────── */
a {
    text-decoration: none;
}

/* ── Avatar ──────────────────────────────────────────────── */
.avatar-text {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--bs-secondary-bg);
    border-radius: 50%;
    font-family: sans-serif;
    color: var(--bs-body-bg);
    font-weight: 700;
    font-size: 16px;
    border: 2px solid var(--bs-border-color);
}

.avatar-text-sm { width: 28px; height: 28px; font-size: 12px; }
.avatar-text-lg { width: 48px; height: 48px; font-size: 22px; }

/* ── Modal backdrop ──────────────────────────────────────── */
.modal-backdrop.show {
    opacity: .75;
}

/* ── Toast container ─────────────────────────────────────── */
.toast-container {
    z-index: 1055;
}

.toast {
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* ── Transparent background utility ──────────────────────── */
.bg-transparent {
    background-color: transparent;
}

/* ── Black overlays (for hero images) ────────────────────── */
.bg-black-10 { background-color: rgba(0, 0, 0, 0.1); }
.bg-black-25 { background-color: rgba(0, 0, 0, 0.25); }
.bg-black-50 { background-color: rgba(0, 0, 0, 0.5); }
.bg-black-75 { background-color: rgba(0, 0, 0, 0.75); }

/* ── White text opacity helpers ──────────────────────────── */
.text-white-50 { color: rgba(255, 255, 255, 0.5); }
.text-white-75 { color: rgba(255, 255, 255, 0.75); }



/* ── Side Panel (slide-out right sidebar) ────────────────── */
#sidebar-right {
    position: fixed;
    top: 0;
    right: -420px;
    width: 400px;
    height: 100%;
    background-color: var(--bs-body-bg);
    border-left: 1px solid var(--bs-border-color);
    transition: right 0.3s ease;
    z-index: 1040;
    overflow-y: auto;
    box-shadow: -4px 0 12px rgba(0, 0, 0, 0.1);
}

#sidebar-right.open {
    right: 0;
}

#sidebar-right.closed {
    right: -420px;
}

.sidebar-right-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    background-color: var(--bs-body-bg);
    position: sticky;
    top: 0;
    z-index: 1;
}

.sidebar-right-content {
    padding: 1rem;
}
