/* _content/MyTSp_Blazor/Components/Layout/MainLayout.razor.rz.scp.css */
/* ── Layout general ─────────────────────────────────────────────────────── */
.page[b-4rumk6t657] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #16191d;
}

/* ── Wrapper row: main content + sidebar ────────────────────────────────── */
/* Sidebar-ul (ScheduleSidebar.razor) stă în dreapta, main-ul în stânga.    */
.page-body[b-4rumk6t657] {
    display: flex;
    flex: 1;
    min-height: 0;       /* important în flex column */
    overflow: hidden;
}

.app-content[b-4rumk6t657] {
    flex: 1;
    min-width: 0;        /* evită overflow-ul text în flex */
    overflow-y: auto;
    padding-top: 1.25rem;
    padding-bottom: 2rem;
    max-width: 100%;
}

/* Desktop – padding mai compact */
@media (min-width: 992px) {
    .app-content[b-4rumk6t657] {
        padding-top: 1rem;
        padding-bottom: 1.5rem;
    }
}

/* ── Eroare Blazor ──────────────────────────────────────────────────────── */
#blazor-error-ui[b-4rumk6t657] {
    background: #2b1a00;
    border-top: 1px solid #7a4500;
    bottom: 0;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.5);
    color: #ffb347;
    display: none;
    left: 0;
    padding: 0.75rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1080;
}

#blazor-error-ui .dismiss[b-4rumk6t657] {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 0.5rem;
    font-size: 1.1rem;
    color: #ffb347;
}
/* _content/MyTSp_Blazor/Components/Layout/NavMenu.razor.rz.scp.css */
/* ── Toolbar ────────────────────────────────────────────────────────────── */
.app-navbar[b-nt9d9ml5qb] {
    background: linear-gradient(90deg, #0c1a3a 0%, #1a0828 100%);
    box-shadow: 0 1px 0 rgba(255,255,255,0.07), 0 2px 8px rgba(0, 0, 0, 0.5);
    position: sticky;
    top: 0;
    z-index: 1030;
    min-height: 3rem;
    padding-top: 0;
    padding-bottom: 0;
}

/* ── Brand ──────────────────────────────────────────────────────────────── */
.app-brand[b-nt9d9ml5qb] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff !important;
    text-decoration: none !important;
    letter-spacing: 0.06em;
    opacity: 0.95;
}

.app-brand:hover[b-nt9d9ml5qb] {
    opacity: 1;
}

/* ── Nav links ──────────────────────────────────────────────────────────── */
[b-nt9d9ml5qb] .nav-link,
[b-nt9d9ml5qb] .nav-link.dropdown-toggle {
    color: rgba(255, 255, 255, 0.78) !important;
    font-size: 0.855rem;
    padding: 0.45rem 0.8rem !important;
    border-radius: 4px;
    transition: background 0.12s, color 0.12s;
    line-height: 1.4;
}

[b-nt9d9ml5qb] .nav-link:hover,
[b-nt9d9ml5qb] .nav-link.show {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.10);
}

[b-nt9d9ml5qb] .nav-link.begin-group {
    margin-left: 0.5rem !important;
    border-left: 1px solid rgba(255, 255, 255, 0.15);
    padding-left: 1.3rem !important;
}
    [b-nt9d9ml5qb] .nav-item.begin-group {
        margin-left: 0.5rem !important;
        border-left: 1px solid rgba(255, 255, 255, 0.15);
    }

/* ── Dropdown menu ──────────────────────────────────────────────────────── */
[b-nt9d9ml5qb] .dropdown-menu {
    background-color: #111827;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 5px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.65);
    padding: 0.25rem 0;
    min-width: 200px;
    margin-top: 2px !important;
}

[b-nt9d9ml5qb] .dropdown-item {
    color: rgba(220, 225, 235, 0.82);
    font-size: 0.84rem;
    padding: 0.4rem 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: background 0.1s, color 0.1s;
    line-height: 1.45;
}

[b-nt9d9ml5qb] .dropdown-item:hover,
[b-nt9d9ml5qb] .dropdown-item:focus,
[b-nt9d9ml5qb] .dropdown-item.active {
    background-color: rgba(77, 159, 236, 0.15);
    color: #fff;
}

[b-nt9d9ml5qb] .dropdown-item i {
    opacity: 0.65;
    font-size: 0.82rem;
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
}

[b-nt9d9ml5qb] .dropdown-item:hover i {
    opacity: 1;
    color: #4d9fec;
}

[b-nt9d9ml5qb] .dropdown-divider {
    border-color: rgba(255, 255, 255, 0.10);
    margin: 0.2rem 0;
}

/* ── Login (dreapta) ────────────────────────────────────────────────────── */
.navbar-login[b-nt9d9ml5qb] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding-left: 0.85rem;
    margin-left: 0.5rem;
    border-left: 1px solid rgba(255, 255, 255, 0.15);
    white-space: nowrap;
}

[b-nt9d9ml5qb] .navbar-text-username {
    color: rgba(255, 255, 255, 0.70);
    font-size: 0.82rem;
}

/* Rolul utilizatorului — în paranteză, ton mai estompat */
[b-nt9d9ml5qb] .navbar-text-role {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.78rem;
}

/* Numele agenţiei — accent uşor cu albastru deschis */
[b-nt9d9ml5qb] .navbar-text-company {
    color: #4d9fec;
    font-size: 0.82rem;
    font-weight: 500;
}

[b-nt9d9ml5qb] .navbar-login a,
[b-nt9d9ml5qb] .navbar-login .btn-link {
    color: rgba(255, 255, 255, 0.80) !important;
    font-size: 0.84rem;
    text-decoration: none;
}

[b-nt9d9ml5qb] .navbar-login a:hover,
[b-nt9d9ml5qb] .navbar-login .btn-link:hover {
    color: #fff !important;
    text-decoration: underline;
}

/* ── Buton Logout ───────────────────────────────────────────────────────── */
[b-nt9d9ml5qb] .btn-logout {
    background: transparent;
    border: 1px solid rgba(255,255,255,0.25);
    color: rgba(255,255,255,0.75);
    font-size: 0.82rem;
    padding: 0.2rem 0.65rem;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
    line-height: 1.5;
}

[b-nt9d9ml5qb] .btn-logout:hover {
    background: rgba(255,255,255,0.12);
    color: #fff;
    border-color: rgba(255,255,255,0.4);
}

/* ── Hamburger ──────────────────────────────────────────────────────────── */
.navbar-toggler[b-nt9d9ml5qb] {
    border-color: rgba(255, 255, 255, 0.30);
}

.navbar-toggler-icon[b-nt9d9ml5qb] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-toggler:focus[b-nt9d9ml5qb] {
    box-shadow: none;
    outline: none;
}

/* ── Mobile ─────────────────────────────────────────────────────────────── */
@media (max-width: 767.98px) {
    [b-nt9d9ml5qb] .dropdown-menu {
        background-color: rgba(255, 255, 255, 0.05);
        border: none;
        box-shadow: none;
        padding-left: 0.75rem;
        margin-top: 0 !important;
    }

    .navbar-login[b-nt9d9ml5qb] {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        padding-top: 0.6rem;
        padding-left: 0;
        margin-left: 0;
        margin-top: 0.3rem;
    }
}

/* ── Desktop – navbar compact ───────────────────────────────────────────── */
@media (min-width: 992px) {
    .app-navbar[b-nt9d9ml5qb] {
        min-height: 2.8rem;
    }
}

/* ── Buton toggle sidebar ────────────────────────────────────────────────── */
.sidebar-toggle-btn[b-nt9d9ml5qb] {
    background: transparent;
    border: none;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.12s, color 0.12s;
}

.sidebar-toggle-btn.sidebar-toggle-active[b-nt9d9ml5qb] {
    color: #4d9fec !important;
    background: rgba(77, 159, 236, 0.15) !important;
    border-radius: 4px;
}
/* _content/MyTSp_Blazor/Components/Layout/ScheduleSidebar.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════════
   ScheduleSidebar — stiluri scoped la componentă
   CSS-ul de aici se aplică DOAR elementelor din ScheduleSidebar.razor.
   Astfel .sidebar-hidden / .sidebar-visible funcționează corect.
════════════════════════════════════════════════════════════════════════════ */

/* ── Container principal ────────────────────────────────────────────────── */
.schedule-sidebar[b-eiqgm7dm1t] {
    width: 460px;
    flex-shrink: 0;
    background-color: #1e2228;
    border-left: 1px solid rgba(255,255,255,0.09);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    font-size: 0.78rem;
    color: #dde1e9;
}

.sidebar-hidden[b-eiqgm7dm1t]  { display: none !important; }
.sidebar-visible[b-eiqgm7dm1t] { display: flex; }

/* ── Header ─────────────────────────────────────────────────────────────── */
.sidebar-header[b-eiqgm7dm1t] {
    display: flex;
    align-items: center;
    padding: 0.4rem 0.6rem;
    background: #262b33;
    border-bottom: 1px solid rgba(255,255,255,0.09);
    flex-shrink: 0;
    gap: 0.3rem;
}

.sidebar-title[b-eiqgm7dm1t] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #dde1e9;
    white-space: nowrap;
}

/* ── Butoane icon header ─────────────────────────────────────────────────── */
.sidebar-icon-btn[b-eiqgm7dm1t] {
    background: transparent;
    border: none;
    color: #9aa3b0;
    padding: 0.18rem 0.32rem;
    border-radius: 3px;
    cursor: pointer;
    font-size: 0.78rem;
    line-height: 1.4;
    transition: background 0.1s, color 0.1s;
    flex-shrink: 0;
}

.sidebar-icon-btn:hover[b-eiqgm7dm1t] {
    background: rgba(255,255,255,0.08);
    color: #dde1e9;
}

.sidebar-icon-btn.active[b-eiqgm7dm1t] {
    color: #4d9fec;
    background: rgba(77,159,236,0.12);
}

.sidebar-icon-btn:disabled[b-eiqgm7dm1t] {
    opacity: 0.38;
    cursor: default;
}

/* ── Bara refresh ───────────────────────────────────────────────────────── */
.sidebar-refresh-bar[b-eiqgm7dm1t] {
    display: flex;
    align-items: center;
    padding: 0.18rem 0.6rem;
    background: #16191d;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    font-size: 0.7rem;
    color: #626c7a;
    flex-shrink: 0;
    min-height: 1.4rem;
}

/* ── Header secțiune ────────────────────────────────────────────────────── */
.sidebar-section-header[b-eiqgm7dm1t] {
    display: flex;
    align-items: center;
    padding: 0.32rem 0.6rem;
    background: #262b33;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    cursor: pointer;
    user-select: none;
    font-size: 0.78rem;
    font-weight: 600;
    color: #c8cdd8;
    flex-shrink: 0;
    transition: background 0.1s;
}

.sidebar-section-header:hover[b-eiqgm7dm1t] {
    background: #2e3440;
}

/* ── Tabel secțiunea 1 ──────────────────────────────────────────────────── */
.sidebar-table-wrap[b-eiqgm7dm1t] {
    overflow: auto;         /* scroll atât vertical cât și orizontal */
    flex: 1;
    min-height: 0;
    background: #1a1e25;
}

.sidebar-empty[b-eiqgm7dm1t] {
    padding: 0.8rem 0.6rem;
    color: #626c7a;
    text-align: center;
    font-size: 0.78rem;
}

.sidebar-table[b-eiqgm7dm1t] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.74rem;
    white-space: nowrap;
}

.sidebar-table thead th[b-eiqgm7dm1t] {
    position: sticky;
    top: 0;
    background: #262b33;
    color: #9aa3b0;
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.28rem 0.4rem;
    border-bottom: 1px solid rgba(255,255,255,0.10);
    z-index: 1;
}

.sidebar-table tbody tr[b-eiqgm7dm1t] {
    border-bottom: 1px solid rgba(255,255,255,0.04);
    transition: background 0.1s;
}

.sidebar-table tbody tr:hover[b-eiqgm7dm1t] {
    background: rgba(77,159,236,0.07);
}

.sidebar-table tbody td[b-eiqgm7dm1t] {
    padding: 0.28rem 0.4rem;
    vertical-align: middle;
    color: #c8cdd8;
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Rând status=0 (closed) */
.sidebar-table tbody tr.row-closed[b-eiqgm7dm1t] {
    opacity: 0.45;
}

/* Rând status=2 open till — fundal verde subtil */
.row-open-till td[b-eiqgm7dm1t] {
    background: rgba(60, 196, 122, 0.12) !important;
    color: #dde1e9;
}

.row-open-till:hover td[b-eiqgm7dm1t] {
    background: rgba(60, 196, 122, 0.20) !important;
}

/* Rând status=2 closing soon (≤5 min) — fundal roșu + animație puls */
.row-closing-soon td[b-eiqgm7dm1t] {
    background: rgba(220, 53, 69, 0.18) !important;
    color: #ff8a95;
    animation: pulse-row-b-eiqgm7dm1t 1.4s ease-in-out infinite;
}

.row-closing-soon:hover td[b-eiqgm7dm1t] {
    background: rgba(220, 53, 69, 0.28) !important;
}

@keyframes pulse-row-b-eiqgm7dm1t {
    0%, 100% { background: rgba(220, 53, 69, 0.18) !important; }
    50%       { background: rgba(220, 53, 69, 0.32) !important; }
}

/* ── Buton Open ─────────────────────────────────────────────────────────── */
.btn-open[b-eiqgm7dm1t] {
    background: #1a5bb5;
    color: #fff;
    border: none;
    border-radius: 3px;
    padding: 0.12rem 0.45rem;
    font-size: 0.7rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.1s;
}

.btn-open:hover[b-eiqgm7dm1t] {
    background: #1e69cf;
}

.btn-open-disabled[b-eiqgm7dm1t] {
    color: #4a5060;
    font-size: 0.7rem;
    padding: 0.12rem 0.45rem;
}

/* ── Badge status ───────────────────────────────────────────────────────── */
.status-0[b-eiqgm7dm1t] { color: #626c7a; }
.status-1[b-eiqgm7dm1t] { color: #3cc47a; font-weight: 600; }
.status-2[b-eiqgm7dm1t] { color: #f0a040; }

/* ── closeIn "closing soon" ─────────────────────────────────────────────── */
.close-soon[b-eiqgm7dm1t] {
    color: #f0a040;
    font-weight: 700;
}

/* ── Secțiunea "Older dates" (jos) ─────────────────────────────────────── */
.sidebar-section-older[b-eiqgm7dm1t] {
    border-top: 1px solid rgba(255,255,255,0.07);
    flex-shrink: 0;
}

.sidebar-dropdowns[b-eiqgm7dm1t] {
    padding: 0.5rem 0.6rem;
    background: #1a1e25;
    flex-shrink: 0;
}

.sidebar-label[b-eiqgm7dm1t] {
    display: block;
    font-size: 0.72rem;
    color: #9aa3b0;
    margin-bottom: 0.18rem;
}

.sidebar-select[b-eiqgm7dm1t] {
    font-size: 0.75rem !important;
    padding: 0.18rem 0.5rem !important;
    background-color: #262b33 !important;
    border-color: rgba(255,255,255,0.09) !important;
    color: #dde1e9 !important;
}

/* DxTabs container pentru zonele Available / Older dates */
[b-eiqgm7dm1t] .sidebar-tabs {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* Tab header bar — fundal armonizat cu sidebar-ul dark */
[b-eiqgm7dm1t] .sidebar-tabs .dxbl-tabs-header {
    background: #1a1e25;
    border-bottom: 1px solid rgba(255,255,255,0.09);
    padding: 0 .25rem;
    flex-shrink: 0;
}

[b-eiqgm7dm1t] .sidebar-tabs .dxbl-tab {
    font-size: .78rem;
    color: #9aa3b0;
    padding: .4rem .65rem;
}

[b-eiqgm7dm1t] .sidebar-tabs .dxbl-tab-active {
    color: #fff;
}

/* Body-ul activ ocupă restul înălţimii şi face scroll dacă e nevoie */
[b-eiqgm7dm1t] .sidebar-tabs .dxbl-tabs-body {
    flex: 1;
    min-height: 0;
    overflow: auto;
}

/* Badge cu counter pe tab Available */
[b-eiqgm7dm1t] .sidebar-tab-badge {
    background: #1a5bb5;
    color: #fff;
    font-size: .62rem;
    padding: .12rem .35rem;
    border-radius: .8rem;
}

/* DxCalendar pentru selecţia datei (Older dates section) */
[b-eiqgm7dm1t] .sidebar-calendar {
    width: 100%;
    font-size: .72rem;
}

[b-eiqgm7dm1t] .sidebar-calendar .dxbl-calendar {
    width: 100%;
    background: #262b33;
    border: 1px solid rgba(255,255,255,0.09);
    border-radius: .25rem;
    padding: .15rem;
}

/* Mesaj hint sub eticheta Date când canalul nu e selectat */
.sidebar-calendar-hint[b-eiqgm7dm1t] {
    font-size: .72rem;
    color: #9aa3b0;
    background: #262b33;
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: .25rem;
    padding: .35rem .5rem;
}

.sidebar-select:focus[b-eiqgm7dm1t] {
    border-color: #4d9fec !important;
    box-shadow: none !important;
}

.sidebar-select:disabled[b-eiqgm7dm1t] {
    opacity: 0.45 !important;
}

/* ── Dropdown interval auto-refresh ────────────────────────────────────── */
.sidebar-refresh-select[b-eiqgm7dm1t] {
    font-size: 0.7rem;
    padding: 0.1rem 0.22rem;
    height: 1.55rem;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 3px;
    color: #9aa3b0;
    cursor: pointer;
    appearance: none;           /* ascunde săgeata nativă — e mic, nu are loc */
    -webkit-appearance: none;
    min-width: 3.6rem;
    text-align: center;
}

.sidebar-refresh-select:hover[b-eiqgm7dm1t] {
    border-color: rgba(255,255,255,0.25);
    color: #dde1e9;
}

.sidebar-refresh-select:focus[b-eiqgm7dm1t] {
    outline: none;
    border-color: #4d9fec;
}

.sidebar-refresh-select option[b-eiqgm7dm1t] {
    background: #262b33;
    color: #dde1e9;
    appearance: auto;
}

/* ── Animație spin refresh ──────────────────────────────────────────────── */
@keyframes spin-b-eiqgm7dm1t {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.spin[b-eiqgm7dm1t] {
    display: inline-block;
    animation: spin-b-eiqgm7dm1t 0.9s linear infinite;
}
/* _content/MyTSp_Blazor/Components/Pages/Admin/MissingDays.razor.rz.scp.css */
/* MissingDays — layout & toolbar */

.md-root[b-2dsldomiy8] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 60px);
    padding: .5rem 1rem 0;
}

.md-toolbar[b-2dsldomiy8] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 0;
    border-bottom: 1px solid #dee2e6;
    flex-wrap: wrap;
}

.md-toolbar-divider[b-2dsldomiy8] {
    width: 1px;
    height: 24px;
    background: #dee2e6;
    margin: 0 .25rem;
}

.md-body[b-2dsldomiy8] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding-top: .5rem;
}

.md-welcome[b-2dsldomiy8] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #6c757d;
}

.md-tabs[b-2dsldomiy8] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.md-tab-body[b-2dsldomiy8] {
    padding-top: .5rem;
    width: 100%;
}

.md-tab-split[b-2dsldomiy8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 1rem;
}

.md-split-pane[b-2dsldomiy8] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.md-pane-title[b-2dsldomiy8] {
    font-weight: 600;
    font-size: .85rem;
    color: #495057;
    padding: .25rem 0;
    border-bottom: 1px solid #e9ecef;
    margin-bottom: .25rem;
}

/* Focused row — highlight vizibil pe TreeList (echivalent VB FocusedRow background) */
[b-2dsldomiy8] .md-tree .dxbl-grid-focused-row > td,
[b-2dsldomiy8] .md-tree .dxbl-grid-focused-row {
    background: rgba(13, 110, 253, 0.22) !important;
    color: inherit !important;
}

[b-2dsldomiy8] .md-tree .dxbl-grid-focused-row > td:first-child {
    box-shadow: inset 3px 0 0 0 #0d6efd;
}
/* _content/MyTSp_Blazor/Components/Pages/Home.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════════
   Home.razor.css  —  Landing page styles (scoped)
   Variabilele de culoare sunt cele din app.css (--bg-*, --accent, --border-color)
   NU se folosesc variabile Bootstrap (--bs-*) pentru că acestea au valori
   diferite față de tema custom dark a aplicației.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ────────────────────────────────────────────────────────────────── */
.home-hero[b-ixyw4h7dff] {
    background: transparent;
    margin: 0 -1.5rem 0;   /* compensează px-4 al .app-content (1.5rem pe fiecare parte) */
}

.home-hero-badge[b-ixyw4h7dff] {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: var(--bg-elevated, #262b33);
    border: 2px solid var(--border-color, rgba(255, 255, 255, .09));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    color: var(--accent, #4d9fec);
    flex-shrink: 0;
}

.home-chip[b-ixyw4h7dff] {
    background: var(--bg-elevated, #262b33);
    border: 1px solid var(--border-color, rgba(255, 255, 255, .09));
    border-radius: 999px;
    padding: .25rem .85rem;
    font-size: .78rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .85);
    letter-spacing: .02em;
}

/* Sublinii / paragrafe descriptive — mai aproape de alb decât text-secondary default */
.text-secondary[b-ixyw4h7dff] {
    color: rgba(255, 255, 255, .82) !important;
}

/* ── Section label ───────────────────────────────────────────────────────── */
.home-section-label[b-ixyw4h7dff] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--accent, #4d9fec);
    margin-bottom: .35rem;
}

/* ── Features band ─────────────────────────────────────────────────────────
   --bg-elevated (#262b33) — ușor mai deschis decât --bg-body (#16191d)
   pentru a crea separare vizuală clară față de secțiunile adiacente.     */
.home-features-band[b-ixyw4h7dff] {
    background-color: var(--bg-elevated, #262b33);
    border-top:    1px solid var(--border-color, rgba(255, 255, 255, .09));
    border-bottom: 1px solid var(--border-color, rgba(255, 255, 255, .09));
}

/* ── Feature card ────────────────────────────────────────────────────────── */
.home-feature-card[b-ixyw4h7dff] {
    border: 1px solid var(--border-color, rgba(255, 255, 255, .09)) !important;
    border-radius: .75rem !important;
    background: var(--bg-surface, #1e2228);
    transition: transform .2s ease, box-shadow .2s ease;
}

.home-feature-card:hover[b-ixyw4h7dff] {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0, 0, 0, .35) !important;
    border-color: var(--accent, #4d9fec) !important;
}

/* Icon box — explicit dimensions so it never stretches in any flex context */
.home-feat-icon[b-ixyw4h7dff] {
    width: 48px;
    height: 48px;
    min-width: 48px;        /* prevent flex shrink */
    border-radius: .55rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    /* background and color set via inline style per card */
}

/* ── Architecture diagram ─────────────────────────────────────────────────── */
.home-schema-wrap[b-ixyw4h7dff] {
    border: 1px solid var(--border-color, rgba(255, 255, 255, .09));
    border-radius: .75rem;
    overflow: hidden;
    background: var(--bg-surface, #1e2228);
    padding: 1.25rem;
    box-shadow: 0 2px 16px rgba(0, 0, 0, .25);
}

.home-schema-wrap img[b-ixyw4h7dff] {
    border-radius: .5rem;
    max-width: 100%;
    height: auto;
}

/* ── Quick access dashboard cards (logged-in users) ────────────────────────
   Wrapper NavLink peste o `.home-feature-card` din secţiunea Key Features —
   reset link styling (color, underline) ca să arate identic cu Key Features,
   focus ring vizibil pentru accesibilitate (Tab navigation). Hover-ul în sine
   (lift + shadow + border albastru) e definit pe `.home-feature-card`. */
.home-feature-link[b-ixyw4h7dff] {
    display: block;
    color: inherit;
    text-decoration: none;
    height: 100%;
}

.home-feature-link:hover[b-ixyw4h7dff],
.home-feature-link:focus[b-ixyw4h7dff] {
    color: inherit;
    text-decoration: none;
}

.home-feature-link:focus-visible[b-ixyw4h7dff] {
    outline: 2px solid rgba(77, 159, 236, .65);
    outline-offset: 4px;
    border-radius: .75rem;
}
/* _content/MyTSp_Blazor/Components/Pages/MediaPlans/MediaPlanEditPopup.razor.rz.scp.css */
/* ── Edit/View popup ─────────────────────────────────────────────────────── */

.mp-edit-popup[b-gpm6gtj5xd]  .modal-body {
    padding: 1rem 1.25rem 1.25rem;
    overflow-y: auto;
}

/* Padding uniform pentru toate popup-urile interne (confirm-uri, bulk update, edit spot, delete) */
.mp-confirm-popup[b-gpm6gtj5xd]  .modal-body {
    padding: 1rem 1.25rem;
}

/* ── Sections (Header / Items / Spots) ───────────────────────────────────── */

.mp-edit-section[b-gpm6gtj5xd] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    margin-bottom: .8rem;
    background: var(--bs-body-bg, #fff);
}

.mp-edit-section-title[b-gpm6gtj5xd] {
    font-size: .82rem;
    font-weight: 600;
    padding: .35rem .65rem;
    background: rgba(255, 255, 255, .04);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    color: var(--bs-body-color, #212529);
    text-transform: uppercase;
    letter-spacing: .03em;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    min-height: 2.1rem;
}

[b-gpm6gtj5xd] .mp-edit-section-action {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
}

/* Section title clickable (toggle expand/collapse) */
.mp-edit-section-title-toggle[b-gpm6gtj5xd] {
    cursor: pointer;
    user-select: none;
    transition: background .12s;
}
.mp-edit-section-title-toggle:hover[b-gpm6gtj5xd] {
    background: rgba(255, 255, 255, .08);
}
.mp-edit-section-title-toggle .bi-chevron-right[b-gpm6gtj5xd],
.mp-edit-section-title-toggle .bi-chevron-down[b-gpm6gtj5xd] {
    transition: transform .15s ease;
    color: var(--bs-secondary-color, #9aa3b0);
}

/* Bleu light pentru Save — mai aerat decât Primary contained default */
[b-gpm6gtj5xd] .mp-btn-bright-primary {
    background-color: #4ea8de;
    border-color: #4ea8de;
    color: #fff;
}
[b-gpm6gtj5xd] .mp-btn-bright-primary:hover:not(:disabled),
[b-gpm6gtj5xd] .mp-btn-bright-primary:focus:not(:disabled) {
    background-color: #6cb6e3;
    border-color: #6cb6e3;
    color: #fff;
}
[b-gpm6gtj5xd] .mp-btn-bright-primary:disabled {
    background-color: rgba(78, 168, 222, .4);
    border-color: rgba(78, 168, 222, .4);
    color: rgba(255, 255, 255, .65);
}

.mp-edit-section-todo[b-gpm6gtj5xd] {
    opacity: .65;
}

/* ── Form ────────────────────────────────────────────────────────────────── */

.mp-edit-form[b-gpm6gtj5xd] {
    padding: .65rem .8rem .9rem;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.mp-edit-row[b-gpm6gtj5xd] {
    display: grid;
    grid-template-columns: 130px 1fr;
    align-items: center;
    gap: .6rem;
}

.mp-edit-label[b-gpm6gtj5xd] {
    font-size: .78rem;
    font-weight: 500;
    color: var(--bs-secondary-color, #6c757d);
    margin: 0;
}

[b-gpm6gtj5xd] .mp-edit-combo,
[b-gpm6gtj5xd] .mp-edit-memo {
    width: 100%;
    max-width: 480px;
}

/* Audit info row */
.mp-edit-audit[b-gpm6gtj5xd] {
    margin-top: .25rem;
    padding: .35rem .55rem;
    font-size: .72rem;
    color: var(--bs-secondary-color, #6c757d);
    background: rgba(0, 0, 0, .03);
    border-radius: 4px;
    border: 1px solid var(--bs-border-color, #dee2e6);
}

/* ── Tabs (Items section: List | Grid | Spots) ───────────────────────────── */

[b-gpm6gtj5xd] .mp-edit-tabs {
    padding: 0 .65rem .65rem;
}

.mp-edit-tabbody[b-gpm6gtj5xd] {
    padding: .5rem 0 0;
}

.mp-edit-tabbody-pivot[b-gpm6gtj5xd] {
    height: var(--mp-pivot-h, calc(86vh - 420px));
    min-height: 250px;
    display: flex;
    flex-direction: column;
}

.mp-edit-tab-toolbar[b-gpm6gtj5xd] {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
    padding: .15rem 0 .5rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    margin-bottom: .35rem;
}

.mp-edit-tab-toolbar-spacer[b-gpm6gtj5xd] {
    flex: 1 1 auto;
}

[b-gpm6gtj5xd] .mp-edit-items-grid {
    font-size: .78rem;
}

/* ── Dialog footer (Cancel / Delete pe acelaşi rând, padding clasic) ─────── */
.mp-dialog-footer[b-gpm6gtj5xd] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1rem;
    width: 100%;
}

/* ── Bulk update popup ──────────────────────────────────────────────────── */
.mp-bulk-section[b-gpm6gtj5xd] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 4px;
    padding: .55rem .65rem;
    margin-bottom: .55rem;
}
.mp-bulk-section-title[b-gpm6gtj5xd] {
    font-size: .72rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: .35rem;
}
.mp-bulk-row[b-gpm6gtj5xd] {
    display: grid;
    grid-template-columns: 150px 1fr auto;
    align-items: center;
    gap: .5rem;
    margin-bottom: .35rem;
}
.mp-bulk-row:last-child[b-gpm6gtj5xd] {
    margin-bottom: 0;
}
.mp-bulk-toggle[b-gpm6gtj5xd] {
    font-size: .82rem;
}
.mp-bulk-label[b-gpm6gtj5xd] {
    font-size: .82rem;
    color: var(--bs-body-color, #212529);
}
[b-gpm6gtj5xd] .mp-bulk-input {
    max-width: 280px;
}

/* ── Toolbar buttons: grey-out when disabled ──────────────────────────────
   "Delete selected" (.mp-btn-bright-danger) şi "Bulk update" (.mp-btn-bright-info)
   au culori vii când sunt active. Când sunt disabled (no row selected sau
   operaţia rulează), le forţăm la grey neutru ca să fie clar că nu sunt
   accesibile. Pattern identic cu mp-btn-bright-danger din MediaPlans.razor.css.
   Folosim selectorii :disabled + .disabled + [disabled] pentru a acoperi toate
   variantele de redare DevExpress. */
[b-gpm6gtj5xd] .mp-btn-bright-danger:disabled,
[b-gpm6gtj5xd] .mp-btn-bright-danger.disabled,
[b-gpm6gtj5xd] .mp-btn-bright-danger[disabled],
[b-gpm6gtj5xd] .mp-btn-bright-info:disabled,
[b-gpm6gtj5xd] .mp-btn-bright-info.disabled,
[b-gpm6gtj5xd] .mp-btn-bright-info[disabled] {
    color: #6c757d !important;
    border-color: #495057 !important;
    background-color: transparent !important;
    opacity: 1;  /* fără opacity Bootstrap default — păstrăm contrastul gri-pe-fond */
}
/* _content/MyTSp_Blazor/Components/Pages/MediaPlans/MediaPlanImport.razor.rz.scp.css */
/* MediaPlanImport — theme-aware styling.
   App rulează în dark mode by default (data-bs-theme="dark") — toate
   culorile folosesc CSS vars Bootstrap cu fallback dark. */

[b-7if6xsmhhm] .mp-import-root {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    color: var(--bs-body-color, #dee2e6);
}

[b-7if6xsmhhm] .mp-import-step {
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 6px;
    padding: .75rem 1rem;
    background: var(--bs-tertiary-bg, #343a40);
}

[b-7if6xsmhhm] .mp-import-step-title {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: .5rem;
    color: var(--bs-body-color, #f8f9fa);
}

[b-7if6xsmhhm] .mp-import-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: #0d6efd;
    color: #fff;
    font-weight: 700;
    font-size: .75rem;
    flex-shrink: 0;
}

/* Upload */
[b-7if6xsmhhm] .mp-import-step-upload .mp-import-file {
    max-width: 540px;
}

[b-7if6xsmhhm] .mp-import-file-info {
    margin-top: .35rem;
    font-size: .82rem;
    color: var(--bs-secondary-color, #adb5bd);
}

/* Detect summary */
[b-7if6xsmhhm] .mp-import-detect-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem;
    font-size: .85rem;
    color: var(--bs-body-color, #dee2e6);
}

[b-7if6xsmhhm] .mp-import-badge-list {
    background: #198754;
    color: #fff;
    padding: .4rem .5rem;
    border-radius: 4px;
    font-size: 1.2rem;
}
[b-7if6xsmhhm] .mp-import-badge-grid {
    background: #0d6efd;
    color: #fff;
    padding: .4rem .5rem;
    border-radius: 4px;
    font-size: 1.2rem;
}
[b-7if6xsmhhm] .mp-import-badge-ambiguous {
    background: #ff1800;
    color: #fff;
    padding: .4rem .5rem;
    border-radius: 4px;
    font-size:1.2rem;
}
[b-7if6xsmhhm] .mp-import-badge-standardtemplate {
    background: #6f42c1;
    color: #fff;
    padding: .4rem .5rem;
    border-radius: 4px;
    font-size: 1.2rem;
}

[b-7if6xsmhhm] .mp-import-verdict-autosafe            { background: #198754; color: #fff; padding: .1rem .4rem; border-radius: 3px; font-size: .7rem; }
[b-7if6xsmhhm] .mp-import-verdict-previewwithwarning  { background: #fd7e14; color: #fff; padding: .1rem .4rem; border-radius: 3px; font-size: .7rem; }
[b-7if6xsmhhm] .mp-import-verdict-forcemanual         { background: #dc3545; color: #fff; padding: .1rem .4rem; border-radius: 3px; font-size: .7rem; }

/* Meta — 3 rânduri logice (campaign / period / order) */
[b-7if6xsmhhm] .mp-import-meta {
    margin-top: .5rem;
    padding: .5rem .75rem;
    background: var(--bs-body-bg, #2b3035);
    border: 1px dashed var(--bs-border-color, #495057);
    border-radius: 4px;
    font-size: .82rem;
    color: var(--bs-body-color, #dee2e6);
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

[b-7if6xsmhhm] .mp-import-meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem 1.25rem;
}

[b-7if6xsmhhm] .mp-import-meta-cell {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    white-space: nowrap;
}

[b-7if6xsmhhm] .mp-import-meta strong {
    color: var(--bs-emphasis-color, #fff);
}

/* Row 2: period — Start Date editabilă + Apply (Grid only) */
[b-7if6xsmhhm] .mp-import-meta-row-period {
    padding: .25rem 0;
    border-top: 1px dashed var(--bs-border-color, #495057);
    border-bottom: 1px dashed var(--bs-border-color, #495057);
}

[b-7if6xsmhhm] .mp-import-meta-startdate {
    gap: .35rem;
}

/* Apply hidden când layout = List (păstrăm spaţiul prin visibility) */
[b-7if6xsmhhm] .mp-import-hide-in-list {
    visibility: hidden;
    pointer-events: none;
}

/* Header form (CreateNew) */
[b-7if6xsmhhm] .mp-import-header-grid {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: .5rem .75rem;
    align-items: center;
    max-width: 600px;
}

[b-7if6xsmhhm] .mp-import-header-grid label {
    margin: 0;
    font-size: .85rem;
    color: var(--bs-body-color, #dee2e6);
}

/* Combo + "add new" button (Advertiser / Campaign) share one grid cell */
[b-7if6xsmhhm] .mp-import-combo-add {
    display: flex;
    align-items: center;
    gap: .35rem;
}

[b-7if6xsmhhm] .mp-import-combo-add > *:first-child {
    flex: 1 1 auto;
    min-width: 0;
}

[b-7if6xsmhhm] .mp-import-add-btn {
    flex: 0 0 auto;
}

/* Mode selector (AppendToExisting) */
[b-7if6xsmhhm] .mp-import-mode-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: .5rem;
}

[b-7if6xsmhhm] .mp-import-mode-row label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    cursor: pointer;
    font-size: .9rem;
    color: var(--bs-body-color, #dee2e6);
}

[b-7if6xsmhhm] .mp-import-mode-date {
    width: 160px;
}

[b-7if6xsmhhm] .mp-import-mode-help {
    margin-top: .25rem;
    color: var(--bs-secondary-color, #adb5bd);
}

/* Start date editor (used in Meta row 2) */
[b-7if6xsmhhm] .mp-import-startdate-edit {
    width: 140px;
}

/* Highlight când Start Date lipseşte (Grid + nedetectat) — utilizatorul trebuie
   să o seteze manual + să apese Apply ca să se reconstruiască preview-ul. */
[b-7if6xsmhhm] .mp-import-startdate-needed input {
    background-color: rgba(220, 53, 69, 0.18) !important;
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .15rem rgba(220, 53, 69, 0.35);
}

[b-7if6xsmhhm] .mp-import-startdate-warning {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin-left: .5rem;
    color: #f1aeb5;
    font-size: .78rem;
    font-style: italic;
}

/* Preview */
[b-7if6xsmhhm] .mp-import-preview-grid .dxbs-grid {
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 4px;
}

/* Actions */
[b-7if6xsmhhm] .mp-import-actions {
    display: flex;
    gap: .5rem;
    padding-top: .5rem;
}

/* Footer: active Excel engine info */
[b-7if6xsmhhm] .mp-import-engine-footer {
    margin-top: 1rem;
    padding: .4rem .75rem;
    border-top: 1px solid var(--bs-border-color, #495057);
    font-size: .78rem;
    color: var(--bs-secondary-color, #adb5bd);
    text-align: right;
}

[b-7if6xsmhhm] .mp-import-engine-footer strong {
    color: var(--bs-emphasis-color, #f8f9fa);
}

[b-7if6xsmhhm] .mp-import-engine-footer code {
    font-size: .76rem;
    color: var(--bs-info-text-emphasis, #6ea8fe);
}

/* Inline-edit cell in Preview grid (Broadcast Id) — slim down padding so the
   row height does not grow disproportionately versus other read-only cells. */
[b-7if6xsmhhm] .mp-import-preview-grid .mp-edit-cell .dxbs-textbox,
[b-7if6xsmhhm] .mp-import-preview-grid .mp-edit-cell .dxbs-textbox input {
    padding: 1px 4px;
    min-height: 22px;
    font-size: .76rem;
}

[b-7if6xsmhhm] .mp-import-preview-grid .mp-edit-cell {
    width: 100%;
}

/* ── Merge action badges (Spots Mapping, AppendToExisting mode) ──────────
   Code colorat per acţiune:
     • new                       → albastru deschis (info)
     • use-mp-spot / already-in… → gri (neutral)
     • will-update…              → galben (warning)
     • conflict…                 → portocaliu (alert)
     • blocker                   → roşu (danger)
   Aceleaşi convenţii ca în alte locuri din app pentru consistenţă vizuală. */
[b-7if6xsmhhm] .mp-merge-badge {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 3px;
    line-height: 1.4;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .25);
}

[b-7if6xsmhhm] .mp-merge-newspot                       { background: #0d3a82; color: #9ec5ff; }   /* info blue   */
[b-7if6xsmhhm] .mp-merge-useexistingmpspot             { background: #2c3137; color: #adb5bd; }   /* neutral gri */
[b-7if6xsmhhm] .mp-merge-alreadyinmpnobroadcastid      { background: #2c3137; color: #adb5bd; }
[b-7if6xsmhhm] .mp-merge-mphasbroadcastidimportempty   { background: #2c3137; color: #adb5bd; }
[b-7if6xsmhhm] .mp-merge-alreadyinmpsamebroadcastid    { background: #2c3137; color: #adb5bd; }
[b-7if6xsmhhm] .mp-merge-willupdatempbroadcastid       { background: #6b4d00; color: #ffe18a; }   /* warning amber */
[b-7if6xsmhhm] .mp-merge-conflictdifferentbroadcastid  { background: #7a3500; color: #ffc999; }   /* alert orange  */
[b-7if6xsmhhm] .mp-merge-blocker                       { background: #6c1d1d; color: #ffb3b3; }   /* danger red    */
/* _content/MyTSp_Blazor/Components/Pages/MediaPlans/MediaPlanPivotGridView.razor.rz.scp.css */
/* ── Pivot host (toolbar + scroll wrapper + table) ───────────────────────── */

.mp-pivot-host[b-n06xrbfloq] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.mp-pivot-toolbar[b-n06xrbfloq] {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .15rem 0 .5rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    margin-bottom: .35rem;
}

.mp-pivot-toolbar-spacer[b-n06xrbfloq] {
    flex: 1 1 auto;
}

/* ── Scroll wrapper — mărimi diferite în funcţie de container (popup vs tab) ── */

.mp-pivot-wrapper[b-n06xrbfloq] {
    flex: 1 1 auto;
    overflow: auto;
    min-height: 0;
}

/* ── Tabel pivot ─────────────────────────────────────────────────────────── */

.mp-pivot-table[b-n06xrbfloq] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: .75rem;
    width: max-content;
}

.mp-pivot-table th[b-n06xrbfloq],
.mp-pivot-table td[b-n06xrbfloq] {
    padding: .25rem .45rem;
    border-right:  1px solid var(--bs-border-color, #495057);
    border-bottom: 1px solid var(--bs-border-color, #495057);
    text-align: center;
    white-space: nowrap;
    line-height: 1.25;
}

.mp-pivot-table th[b-n06xrbfloq] {
    background: var(--bs-body-bg, #2b3035);
    color: var(--bs-body-color, #f8f9fa);
    font-weight: 600;
    border-top: 1px solid var(--bs-border-color, #495057);
    position: sticky;
    top: 0;
    z-index: 3;
}

/* ── Coloane fixe (Timeslot + Program) — sticky stânga ──────────────────── */

.mp-pivot-table .mp-pivot-fixed-col[b-n06xrbfloq] {
    position: sticky;
    background: var(--bs-body-bg, #2b3035);
    text-align: left;
    font-weight: 500;
    z-index: 2;
}

/* Header-ul fix-stânga e şi top + left → z-index mai mare ca să bată celelalte */
.mp-pivot-table thead .mp-pivot-fixed-col[b-n06xrbfloq] {
    z-index: 4;
}

.mp-pivot-table .mp-pivot-col-ts[b-n06xrbfloq]  { left: 0;     min-width: 110px; max-width: 130px; }
.mp-pivot-table .mp-pivot-col-pgm[b-n06xrbfloq] { left: 110px; min-width: 200px; max-width: 280px;
                                    overflow: hidden; text-overflow: ellipsis; }

/* ── Cell formatting ─────────────────────────────────────────────────────── */

.mp-pivot-cell-filled[b-n06xrbfloq] {
    background: #4ade80f0;
    color: #062f15;
    font-weight: 500;
    /*background: rgba(60, 196, 122, .15);
    color: #4ade80;*/
}

/* ── Footer (totals) ─────────────────────────────────────────────────────── */

.mp-pivot-table tfoot td[b-n06xrbfloq] {
    font-weight: 600;
    background: var(--bs-tertiary-bg, #343a40);
    position: sticky;
    bottom: 0;
    z-index: 2;
}
.mp-pivot-table tfoot .mp-pivot-fixed-col[b-n06xrbfloq] {
    z-index: 3;
}
/* _content/MyTSp_Blazor/Components/Pages/MediaPlans/MediaPlans.razor.rz.scp.css */
/* ── MediaPlans page (master list) ───────────────────────────────────────── */

.mp-page[b-1iw2aww0zj] {
    padding: 0.75rem 1rem;
}

/* ── Filter bar — stil identic cu SchedulePage ───────────────────────────── */

.mp-filterbar[b-1iw2aww0zj] {
    display: flex;
    align-items: flex-end;
    gap: .5rem;
    padding: .4rem .75rem;
    background: var(--bs-body-bg, #fff);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    flex-wrap: wrap;
}

.mp-filter-item[b-1iw2aww0zj] {
    display: flex;
    flex-direction: column;
    min-width: 170px;
    max-width: 260px;
}

.mp-filter-item-narrow[b-1iw2aww0zj] {
    min-width: 110px;
    max-width: 140px;
}

.mp-filter-label[b-1iw2aww0zj] {
    font-size: .72rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: .18rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

/* Combo + clear-button row */
.mp-combo-row[b-1iw2aww0zj] {
    display: flex;
    align-items: stretch;
    gap: .25rem;
}

[b-1iw2aww0zj] .mp-combo-grow {
    flex: 1 1 auto;
    min-width: 0;
}

/* Buton mic "x" la dreapta combo-ului — clear selection */
.mp-combo-clear[b-1iw2aww0zj] {
    flex: 0 0 auto;
    width: 26px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
    color: #9aa3b0;
    border-radius: .25rem;
    padding: 0;
    font-size: .75rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mp-combo-clear:hover:not(:disabled)[b-1iw2aww0zj] {
    background: rgba(220, 53, 69, .18);
    color: #ff6b78;
    border-color: rgba(220, 53, 69, .4);
}
.mp-combo-clear:disabled[b-1iw2aww0zj] {
    opacity: .35;
    cursor: not-allowed;
}

.mp-spin[b-1iw2aww0zj] {
    width: 100%;
}

/* ── Toolbar ─────────────────────────────────────────────────────────────── */

.mp-toolbar[b-1iw2aww0zj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
    padding: 0.4rem 0.2rem;
    margin-bottom: 0.25rem;
    border-bottom: 1px solid #e3e6ea;
}

.mp-toolbar-spacer[b-1iw2aww0zj] {
    flex: 1 1 auto;
}

/* ── Bright button variants — pe fundal dark, paletele Bootstrap default ──
   sunt prea închise; folosim variante mai luminoase (lime / coral / sky). */

[b-1iw2aww0zj] .mp-btn-bright-success {
    color: #5dd39e;
    border-color: #5dd39e;
}
[b-1iw2aww0zj] .mp-btn-bright-success:hover:not(:disabled),
[b-1iw2aww0zj] .mp-btn-bright-success:focus:not(:disabled) {
    background-color: #5dd39e;
    border-color: #5dd39e;
    color: #0b2e1f;
}

[b-1iw2aww0zj] .mp-btn-bright-danger {
    color: #ff7a87;
    border-color: #ff7a87;
}
[b-1iw2aww0zj] .mp-btn-bright-danger:hover:not(:disabled),
[b-1iw2aww0zj] .mp-btn-bright-danger:focus:not(:disabled) {
    background-color: #ff7a87;
    border-color: #ff7a87;
    color: #2a0d10;
}
[b-1iw2aww0zj] .mp-btn-bright-danger:disabled,
[b-1iw2aww0zj] .mp-btn-bright-danger.disabled {
    color: #6c757d;
    border-color: #495057;
    background-color: transparent;
    opacity: 1;  /* fără opacity Bootstrap default — păstrăm contrastul gri-coral */
}

/* ── Dialog footer (Cancel / Delete pe acelaşi rând, padding clasic) ─────── */
.mp-dialog-footer[b-1iw2aww0zj] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1rem;
    width: 100%;
}

/* ── ViewGrid popup body — pivot ocupă tot spaţiul disponibil ────────────── */
.mp-viewgrid-popup-body[b-1iw2aww0zj] {
    height: calc(86vh - 130px);
    display: flex;
    flex-direction: column;
}

/* ── Padding uniform pentru toate popup-urile (confirm, viewgrid, import) ── */
.mp-confirm-popup[b-1iw2aww0zj]  .modal-body {
    padding: 1rem 1.25rem;
}

/* ── Main grid ───────────────────────────────────────────────────────────── */

.mp-main-grid[b-1iw2aww0zj] {
    font-size: 0.82rem;
}

/* ── Status badge ────────────────────────────────────────────────────────── */

.mp-status-badge[b-1iw2aww0zj] {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    font-size: 0.7rem;
    font-weight: 600;            /* mai vizibil pe orice background, inclusiv row selectat */
    border-radius: 3px;
    text-transform: lowercase;
    /* Outline subtil — îl scoate de pe fundal când DevExpress aplică
       selection-blue pe toată celula. Fără asta, badge-ul "se topeşte" în
       fundalul rândului focused. */
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .35);
}

/* Background dark + text light — inversul schemei pastel iniţiale.
   Motiv: pe row focused/selected DevExpress aplică un highlight albastru
   relativ deschis, care înghiţea badge-urile cu fundal pastel. Cu badge dark
   + text light, badge-ul iese în relief faţă de orice background (dark theme
   normal sau blue selection). `!important` păstrat ca DX-ul să nu suprascrie
   color: white pe row focused. */
.mp-status-0[b-1iw2aww0zj] { background: #6b4d00 !important; color: #ffe18a !important; }   /* in progress (amber)   */
.mp-status-1[b-1iw2aww0zj] { background: #0a4d28 !important; color: #8de1ad !important; }   /* broadcast ready (green) */
.mp-status-2[b-1iw2aww0zj] { background: #0d3a82 !important; color: #9ec5ff !important; }   /* received / imported (blue) */

/* Wrapper cell — buton/icon prefix într-un slot fix, apoi etichetă */
.mp-status-cell[b-1iw2aww0zj] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    justify-content: flex-start;
}

/* Prefix slot — width fix pentru aliniere verticală a etichetelor */
.mp-status-prefix[b-1iw2aww0zj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    flex-shrink: 0;
}

.mp-status-btn[b-1iw2aww0zj] {
    background: transparent;
    border: 1px solid #c3cad2;
    border-radius: 3px;
    padding: 0.05rem 0.3rem;
    cursor: pointer;
    font-size: 0.75rem;
    color: #b3e8cf;
    flex-shrink: 0;
}

.mp-status-btn:hover[b-1iw2aww0zj] {
    background: #d1e7dd;
    border-color: #0f5132;
}

/* ── Actions panel ───────────────────────────────────────────────────────── */

.mp-actions-panel[b-1iw2aww0zj] {
    margin-top: 0.5rem;
    padding: 0.4rem 0.5rem;
    background: #212529;
    border: 1px solid #d8dee5;
    border-radius: 6px;
}

.mp-actions-header[b-1iw2aww0zj] {
    margin-bottom: 0.3rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid #e3e6ea;
    font-size: 0.85rem;
}

.mp-actions-grid[b-1iw2aww0zj] {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 4px;
}
/* _content/MyTSp_Blazor/Components/Pages/MediaPlans/SheetMatrixView.razor.rz.scp.css */
/* SheetMatrixView — theme-aware Excel-like table.
   Default = dark (matching app's data-bs-theme="dark"). */

.sm-view[b-mnbep7wsk1] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    color: var(--bs-body-color, #dee2e6);
}

.sm-view-toolbar[b-mnbep7wsk1] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: .8rem;
}

.sm-view-info[b-mnbep7wsk1] {
    color: var(--bs-emphasis-color, #f8f9fa);
}

.sm-view-spacer[b-mnbep7wsk1] {
    flex: 1;
}

.sm-legend[b-mnbep7wsk1] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .75rem;
    color: var(--bs-secondary-color, #adb5bd);
}

.sm-legend-chip[b-mnbep7wsk1] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 2px;
    margin-left: .5rem;
    vertical-align: middle;
}

.sm-legend-meta[b-mnbep7wsk1]     { background: rgba(255, 193, 7, .35); }
.sm-legend-header[b-mnbep7wsk1]   { background: rgba(25, 135, 84, .55); }
.sm-legend-data[b-mnbep7wsk1]     { background: rgba(13, 110, 253, .25); }
.sm-legend-spotseed[b-mnbep7wsk1] { background: rgba(132, 94, 247, .55); }
.sm-legend-hidden[b-mnbep7wsk1]   { background: rgba(108, 117, 125, .35); }

.sm-view-rowlimit[b-mnbep7wsk1] {
    margin: 0;
    cursor: pointer;
    user-select: none;
}

/* Scrollable container for the matrix */
.sm-view-scroll[b-mnbep7wsk1] {
    max-height: 480px;
    overflow: auto;
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 4px;
    background: var(--bs-body-bg, #2b3035);
}

.sm-view-table[b-mnbep7wsk1] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: .72rem;
    font-family: ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;
    width: max-content;
}

/* Sticky headers — col-letters row + row-numbers col */
.sm-view-table thead th[b-mnbep7wsk1] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bs-tertiary-bg, #343a40);
    color: var(--bs-emphasis-color, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color, #495057);
    padding: 2px 6px;
    font-weight: 600;
    font-size: .7rem;
}

.sm-rowhdr[b-mnbep7wsk1] {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--bs-tertiary-bg, #343a40);
    color: var(--bs-secondary-color, #adb5bd);
    border-right: 1px solid var(--bs-border-color, #495057);
    padding: 2px 6px;
    font-weight: 600;
    text-align: right;
    min-width: 36px;
}

.sm-corner[b-mnbep7wsk1] {
    left: 0;
    z-index: 3 !important;
}

.sm-colhdr[b-mnbep7wsk1] {
    text-align: center;
    min-width: 60px;
}

/* Cells */
.sm-cell[b-mnbep7wsk1] {
    border-right: 1px solid var(--bs-border-color, #495057);
    border-bottom: 1px solid var(--bs-border-color, #495057);
    padding: 2px 6px;
    max-width: 220px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--bs-body-color, #dee2e6);
}

/* Row tints (transparent so cell tints can layer if needed) */
.sm-row-meta   .sm-cell[b-mnbep7wsk1] { background: rgba(255, 193, 7, .12); }
.sm-row-header .sm-cell[b-mnbep7wsk1] { background: rgba(25, 135, 84, .22); font-weight: 600; }
.sm-row-data   .sm-cell[b-mnbep7wsk1] { background: rgba(13, 110, 253, .08); }
.sm-row-plain  .sm-cell[b-mnbep7wsk1] { background: transparent; }

/* Cell-level overrides (mai forte decât row tint) */
.sm-cell-spotseed[b-mnbep7wsk1] {
    background: rgba(132, 94, 247, .55) !important;
    color: #fff !important;
    font-weight: 600;
}
.sm-cell-meta[b-mnbep7wsk1]   { background: rgba(255, 193, 7, .35); }
.sm-cell-header[b-mnbep7wsk1] { background: rgba(25, 135, 84, .42); font-weight: 600; }

/* Hidden row */
.sm-row-hidden .sm-cell[b-mnbep7wsk1] {
    opacity: .45;
    text-decoration: line-through;
    background: rgba(108, 117, 125, .12);
}
.sm-row-hidden .sm-rowhdr[b-mnbep7wsk1] {
    color: var(--bs-secondary-color, #6c757d);
    text-decoration: line-through;
}

.sm-view-truncated[b-mnbep7wsk1] {
    text-align: center;
    padding: .25rem;
}
/* _content/MyTSp_Blazor/Components/Pages/Schedule.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════════
   Schedule.razor.css  —  Schedule page styles (scoped)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Welcome screen ─────────────────────────────────────────────────────── */
.sch-welcome[b-u046gbdxzj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 55vh;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
}

.sch-welcome-icon[b-u046gbdxzj] {
    font-size: 3.5rem;
    opacity: .25;
    line-height: 1;
}

/* ── Top bar — canal + dată + status ───────────────────────────────────── */
.sch-topbar[b-u046gbdxzj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .45rem .75rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem .375rem 0 0;
    gap: .75rem;
    flex-wrap: wrap;
}

.sch-topbar-left[b-u046gbdxzj] {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
}

.sch-topbar-right[b-u046gbdxzj] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.sch-ch-name[b-u046gbdxzj] {
    font-weight: 600;
    font-size: .95rem;
}

.sch-date[b-u046gbdxzj] {
    font-size: .88rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* Day status badges */
.sch-status-1[b-u046gbdxzj]  { background: #198754 !important; }   /* Open — green */
.sch-status-2[b-u046gbdxzj]  { background: #fd7e14 !important; }   /* View only — orange */
.sch-status-0[b-u046gbdxzj]  { background: #dc3545 !important; }   /* Closed — red */
.sch-status--1[b-u046gbdxzj] { background: #6c757d !important; }   /* Past — grey */

/* ── Filter bar ─────────────────────────────────────────────────────────── */
.sch-filterbar[b-u046gbdxzj] {
    display: flex;
    align-items: flex-end;
    gap: .5rem;
    padding: .4rem .75rem;
    background: var(--bs-body-bg, #fff);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    flex-wrap: wrap;
}

.sch-filter-item[b-u046gbdxzj] {
    display: flex;
    flex-direction: column;
    min-width: 170px;
    max-width: 260px;
}

.sch-filter-label[b-u046gbdxzj] {
    font-size: .72rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: .18rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.sch-filter-select[b-u046gbdxzj] {
    font-size: .8rem !important;
}

.sch-btn-reset[b-u046gbdxzj] {
    align-self: flex-end;
    font-size: .78rem;
    padding: .22rem .55rem;
    white-space: nowrap;
}

.sch-filter-status[b-u046gbdxzj] {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
    padding-bottom: .1rem;
}

.sch-rowcount[b-u046gbdxzj] {
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* ── Empty state ────────────────────────────────────────────────────────── */
.sch-empty[b-u046gbdxzj] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
    font-size: .9rem;
}

/* ── Grid wrapper (scroll orizontal + vertical) ─────────────────────────── */
.sch-grid-wrap[b-u046gbdxzj] {
    overflow-x: auto;
    overflow-y: auto;
    max-height: calc(100vh - 190px);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-top: none;
    border-radius: 0 0 .375rem .375rem;
}

/* ── Schedule table ─────────────────────────────────────────────────────── */
.sch-grid[b-u046gbdxzj] {
    width: max-content;
    min-width: 100%;
    font-size: .78rem;
    border-collapse: collapse;
    table-layout: fixed;
}

.sch-grid thead tr th[b-u046gbdxzj] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-bottom: 2px solid var(--bs-border-color, #dee2e6);
    padding: .3rem .4rem;
    white-space: nowrap;
    font-size: .73rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--bs-secondary-color, #6c757d);
    cursor: default;
    user-select: none;
}

.sch-grid tbody tr td[b-u046gbdxzj] {
    padding: .22rem .4rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0,0,0,.06));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.sch-grid tbody tr:hover td[b-u046gbdxzj] {
    background: var(--bs-primary-bg-subtle, #cfe2ff) !important;
}

.sch-grid tfoot tr td.sch-grid-footer[b-u046gbdxzj] {
    position: sticky;
    bottom: 0;
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-top: 2px solid var(--bs-border-color, #dee2e6);
    padding: .25rem .5rem;
    font-size: .75rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* ── Column widths ──────────────────────────────────────────────────────── */
.col-timeslot[b-u046gbdxzj] { width: 80px;  min-width: 70px;  }
.col-inout[b-u046gbdxzj]    { width: 36px;  min-width: 30px;  }
.col-timeband[b-u046gbdxzj] { width: 78px;  min-width: 60px;  }
.col-pts[b-u046gbdxzj]      { width: 78px;  min-width: 60px;  }
.col-prog[b-u046gbdxzj]     { width: 130px; min-width: 90px;  }
.col-prem[b-u046gbdxzj]     { width: 36px;  min-width: 30px;  }
.col-tax[b-u046gbdxzj]      { width: 42px;  min-width: 36px;  }
.col-comm[b-u046gbdxzj]     { width: 160px; min-width: 110px; }
.col-lg[b-u046gbdxzj]       { width: 38px;  min-width: 30px;  }
.col-code[b-u046gbdxzj]     { width: 50px;  min-width: 40px;  }
.col-st[b-u046gbdxzj]       { width: 34px;  min-width: 28px;  }
.col-camp[b-u046gbdxzj]     { width: 130px; min-width: 90px;  }
.col-adv[b-u046gbdxzj]      { width: 130px; min-width: 90px;  }
.col-grp[b-u046gbdxzj]      { width: 110px; min-width: 70px;  }
.col-tvdid[b-u046gbdxzj]    { width: 90px;  min-width: 60px;  font-size: .7rem; }
.col-bcast[b-u046gbdxzj]    { width: 90px;  min-width: 60px;  font-size: .7rem; }

/* ── Row colour rules ───────────────────────────────────────────────────── */

.row-dpi td[b-u046gbdxzj]       { background: #dbeafe; }                      /* DPI diff — albastru */
.row-inventory td[b-u046gbdxzj] { background: #fef9c3; }                      /* În inventar — galben */
.row-tail td[b-u046gbdxzj]      { font-style: italic; color: #6b7280; }       /* Tail — italic gri */
.row-premium td[b-u046gbdxzj]   { background: rgba(245, 166, 35, .08); }      /* Premium — auriu subtil */

.row-premium.row-inventory td[b-u046gbdxzj] { background: #fef3c7; }          /* Premium + inventar */
/* _content/MyTSp_Blazor/Components/Pages/SchedulePage.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════════
   SchedulePage.razor.css  —  Schedule page styles (scoped)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Welcome screen ─────────────────────────────────────────────────────── */
.sch-welcome[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 55vh;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
}

.sch-welcome-icon[b-i9az2mddou] {
    font-size: 3.5rem;
    opacity: .25;
    line-height: 1;
}

/* ── Top bar — canal + dată + status ───────────────────────────────────── */
.sch-topbar[b-i9az2mddou] {
    display: flex;
    align-items: center;
    justify-content: space-between;  /* left la stânga, right la dreapta indiferent de prezenţa progress bar-ului */
    padding: .45rem .75rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem .375rem 0 0;
    gap: .75rem;
    flex-wrap: nowrap;  /* nu se face wrap — centrul se comprimă pe mobile */
}

.sch-topbar-left[b-i9az2mddou] {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
}

.sch-topbar-right[b-i9az2mddou] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-left: auto;   /* lipeşte blocul la dreapta când lipseşte bara de progres din centru */
}

.sch-ch-name[b-i9az2mddou] {
    font-weight: 600;
    font-size: .95rem;
}

.sch-date[b-i9az2mddou] {
    font-size: .88rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* Day status badges */
.sch-status-1[b-i9az2mddou]  { background: #198754 !important; }   /* Open — green */
.sch-status-2[b-i9az2mddou]  { background: #3cc47a !important; }   /* Open till — green (aliniat cu sidebar) */
.sch-status-0[b-i9az2mddou]  { background: #dc3545 !important; }   /* Closed — red */
.sch-status--1[b-i9az2mddou] { background: #6c757d !important; }   /* Past — grey */

/* ── Countdown badge (topbar-right) ─────────────────────────────────────── */
.sch-countdown[b-i9az2mddou] {
    display: inline-flex;
    align-items: center;
    padding: .2rem .6rem;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .02em;
    background: rgba(60, 196, 122, .14);
    color: #3cc47a;
    border: 1px solid rgba(60, 196, 122, .35);
    white-space: nowrap;
}

.sch-countdown-urgent[b-i9az2mddou] {
    background: rgba(220, 53, 69, .15);
    color: #dc3545;
    border-color: rgba(220, 53, 69, .4);
    animation: sch-cd-pulse-b-i9az2mddou 1s ease-in-out infinite;
}

@keyframes sch-cd-pulse-b-i9az2mddou {
    0%, 100% { opacity: 1; }
    50%       { opacity: .65; }
}

/* ── Progress bar "Open till" ───────────────────────────────────────────── */
.sch-freeze-bar[b-i9az2mddou] {
    padding: .28rem .75rem .22rem;
    background: rgba(253, 126, 20, .07);
    border-bottom: 1px solid rgba(253, 126, 20, .22);
    color: #fd7e14;
}

.sch-freeze-bar.sch-freeze-urgent[b-i9az2mddou] {
    background: rgba(220, 53, 69, .09);
    border-color: rgba(220, 53, 69, .28);
    color: #dc3545;
    animation: sch-bar-pulse-b-i9az2mddou 1.6s ease-in-out infinite;
}

@keyframes sch-bar-pulse-b-i9az2mddou {
    0%, 100% { background: rgba(220, 53, 69, .09); }
    50%       { background: rgba(220, 53, 69, .18); }
}

.sch-freeze-info[b-i9az2mddou] {
    display: flex;
    align-items: center;
    font-size: .8rem;
    gap: .3rem;
    margin-bottom: .22rem;
}

.sch-freeze-remaining[b-i9az2mddou] {
    margin-left: auto;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .03em;
}

/* Track — fundalul barei */
.sch-freeze-track[b-i9az2mddou] {
    height: 5px;
    background: rgba(255, 255, 255, .10);
    border-radius: 3px;
    overflow: hidden;
}

/* Fill — progresul efectiv */
.sch-freeze-fill[b-i9az2mddou] {
    height: 100%;
    border-radius: 3px;
    background: #fd7e14;
    transition: width .8s linear;
}

.sch-freeze-urgent .sch-freeze-fill[b-i9az2mddou] {
    background: #dc3545;
}

/* ── Filter bar ─────────────────────────────────────────────────────────── */
.sch-filterbar[b-i9az2mddou] {
    display: flex;
    align-items: flex-end;
    gap: .5rem;
    padding: .4rem .75rem;
    background: var(--bs-body-bg, #fff);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    flex-wrap: wrap;
}

.sch-filter-item[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    min-width: 170px;
    max-width: 260px;
}

.sch-filter-label[b-i9az2mddou] {
    font-size: .72rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: .18rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.sch-filter-select[b-i9az2mddou] {
    font-size: .8rem !important;
}

/* Combo + clear-button row (Agency / Group / Advertiser / Campaign) */
.sch-combo-row[b-i9az2mddou] {
    display: flex;
    align-items: stretch;
    gap: .25rem;
}

[b-i9az2mddou] .sch-combo-grow {
    flex: 1 1 auto;
    min-width: 0;
}

/* Buton mic "x" la dreapta combo-ului — clear selection */
.sch-combo-clear[b-i9az2mddou] {
    flex: 0 0 auto;
    width: 26px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
    color: #9aa3b0;
    border-radius: .25rem;
    padding: 0;
    font-size: .75rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sch-combo-clear:hover:not(:disabled)[b-i9az2mddou] {
    background: rgba(220, 53, 69, .18);
    color: #ff6b78;
    border-color: rgba(220, 53, 69, .4);
}
.sch-combo-clear:disabled[b-i9az2mddou] {
    opacity: .35;
    cursor: not-allowed;
}

.sch-btn-reset[b-i9az2mddou] {
    align-self: flex-end;
    font-size: .78rem;
    padding: .22rem .55rem;
    white-space: nowrap;
}

.sch-filter-status[b-i9az2mddou] {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
    padding-bottom: .1rem;
}

.sch-rowcount[b-i9az2mddou] {
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* ── Empty state ────────────────────────────────────────────────────────── */
.sch-empty[b-i9az2mddou] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
    font-size: .9rem;
}

/* ── Grid wrapper (scroll orizontal + vertical) ─────────────────────────── */
.sch-grid-wrap[b-i9az2mddou] {
    overflow-x: auto;
    overflow-y: auto;
    max-height: calc(100vh - 190px);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-top: none;
    border-radius: 0 0 .375rem .375rem;
}

/* ── Schedule table ─────────────────────────────────────────────────────── */
.sch-grid[b-i9az2mddou] {
    width: max-content;
    min-width: 100%;
    font-size: .78rem;
    border-collapse: collapse;
    table-layout: fixed;
}

.sch-grid thead tr th[b-i9az2mddou] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-bottom: 2px solid var(--bs-border-color, #dee2e6);
    padding: .3rem .4rem;
    white-space: nowrap;
    font-size: .73rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--bs-secondary-color, #6c757d);
    cursor: default;
    user-select: none;
}

.sch-grid tbody tr td[b-i9az2mddou] {
    padding: .22rem .4rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0,0,0,.06));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.sch-grid tfoot tr td.sch-grid-footer[b-i9az2mddou] {
    position: sticky;
    bottom: 0;
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-top: 2px solid var(--bs-border-color, #dee2e6);
    padding: .25rem .5rem;
    font-size: .75rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* ── Column widths ──────────────────────────────────────────────────────── */
.col-timeslot[b-i9az2mddou] { width: 80px;  min-width: 70px;  }
.col-inout[b-i9az2mddou]    { width: 36px;  min-width: 30px;  }
.col-timeband[b-i9az2mddou] { width: 78px;  min-width: 60px;  }
.col-pts[b-i9az2mddou]      { width: 78px;  min-width: 60px;  }
.col-prog[b-i9az2mddou]     { width: 130px; min-width: 90px;  }
.col-prem[b-i9az2mddou]     { width: 36px;  min-width: 30px;  }
.col-tax[b-i9az2mddou]      { width: 42px;  min-width: 36px;  }
.col-comm[b-i9az2mddou]     { width: 160px; min-width: 110px; }
.col-lg[b-i9az2mddou]       { width: 38px;  min-width: 30px;  }
.col-code[b-i9az2mddou]     { width: 50px;  min-width: 40px;  }
.col-toptail[b-i9az2mddou]  { width: 51px;  min-width: 40px;  }
.col-st[b-i9az2mddou]       { width: 34px;  min-width: 28px;  }
.col-camp[b-i9az2mddou]     { width: 130px; min-width: 90px;  }
.col-adv[b-i9az2mddou]      { width: 130px; min-width: 90px;  }
.col-grp[b-i9az2mddou]      { width: 110px; min-width: 70px;  }
.col-tvdid[b-i9az2mddou]    { width: 90px;  min-width: 60px;  font-size: .7rem; }
.col-bcast[b-i9az2mddou]    { width: 90px;  min-width: 60px;  font-size: .7rem; }

/* ── Row colour rules — ordinea CSS = ordinea regulilor VB (ultima câștigă) ── */
/* Format_cm_istail (ApplyToRow=False, coloană invizibilă în grid) → ignorat   */

/* VB Format0: InOut="OUT" → text roșu */
.row-out td[b-i9az2mddou] { color: #dc3545; }

/* VB Format1: Timeband="PT" → LightCyan */
.row-pt td[b-i9az2mddou]  { background: #E0FFFF; }

/* VB Format2: DpiWebTsstatus=1 → portocaliu deschis (Replaced spot) */
.row-replaced td[b-i9az2mddou]  { background: #FFE0C0; }

/* VB Format3: DpiWebTsstatus=2 → galben deschis (Replacing spot) */
.row-replacing td[b-i9az2mddou] { background: #FFFFC0; }

/* VB Format4: dpb_cod în lista specială → text silver */
.row-special td[b-i9az2mddou]   { color: #adb5bd; }

/* VB Format5: inv_id≠0 → Thistle (violet deschis) */
.row-inventory td[b-i9az2mddou] { background: #D8BFD8; }

/* VB Format6: cy_id=0 → silver */
.row-no-company td[b-i9az2mddou] { background: #C0C0C0; }

/* Hover — prioritate maximă (specificitate mai mare) */
.sch-grid tbody tr:hover td[b-i9az2mddou] {
    background: var(--bs-primary-bg-subtle, #cfe2ff) !important;
    color: inherit !important;
}

/* ── Statistics panel ───────────────────────────────────────────────────── */
.sch-stats-wrap[b-i9az2mddou] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-top: none;
    background: var(--bs-body-bg, #fff);
}

.sch-stats-header[b-i9az2mddou] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .3rem .75rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    cursor: pointer;
    user-select: none;
    font-size: .82rem;
}

.sch-stats-header:hover[b-i9az2mddou] {
    background: var(--bs-secondary-bg, #e9ecef);
}

.sch-stats-table[b-i9az2mddou] {
    width: auto;
    font-size: .78rem;
    border-collapse: collapse;
    margin: 0;
}

.sch-stats-table th[b-i9az2mddou],
.sch-stats-table td[b-i9az2mddou] {
    padding: .2rem .6rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0,0,0,.06));
    white-space: nowrap;
}

.sch-stats-table th[b-i9az2mddou] {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--bs-secondary-color, #6c757d);
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.sch-stats-allday td[b-i9az2mddou] {
    font-weight: 700;
    color: var(--bs-emphasis-color);
    border-top: 2px solid var(--bs-primary);
    border-bottom: 2px solid var(--bs-border-color);
}

/* ── Grid footer bar (below DxGrid) ─────────────────────────────────────── */
.sch-grid-footer-bar[b-i9az2mddou] {
    display: flex;
    align-items: center;
    padding: .25rem .75rem;
    background: var(--bs-tertiary-bg, #f1f3f5);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-top: none;
    font-size: .75rem;
    color: var(--bs-secondary-color, #6c757d);
    gap: 0;
}

/* ── Layout principal: grid + panel Replace (flex row) ──────────────────── */
.sch-content-row[b-i9az2mddou] {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.sch-grid-col[b-i9az2mddou] {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ── Panel Replace/Commercials (echivalent SplitContainerControlSchedule.Panel2) ── */
.sch-replace-col[b-i9az2mddou] {
    width: 460px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    border-left: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg);
    height: calc(100vh - 310px);   /* identic cu grid-ul */
    overflow: hidden;
}

/* Tabbar */
.sch-replace-tabbar[b-i9az2mddou] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-tertiary-bg, #f8f9fa);
    flex-shrink: 0;
}

.sch-replace-tab[b-i9az2mddou] {
    flex: 1;
    padding: .3rem .5rem;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    font-size: .75rem;
    font-weight: 500;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    transition: color .15s, border-color .15s;
    white-space: nowrap;
    text-align: center;
}

.sch-replace-tab:hover[b-i9az2mddou] {
    color: var(--bs-body-color);
}

.sch-replace-tab.active[b-i9az2mddou] {
    color: var(--bs-primary, #0d6efd);
    border-bottom-color: var(--bs-primary, #0d6efd);
    background: var(--bs-body-bg);
}

/* Body tab */
.sch-replace-body[b-i9az2mddou] {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Tree-list Replacements (echivalent VB TreeListReplace) — nodul cu icon */
.sch-replace-treelist[b-i9az2mddou]  .sch-rl-node {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    line-height: 1;
}

/* Headerele de grup G/GS/GR — bold + indent vizibil */
.sch-replace-treelist[b-i9az2mddou] {
    font-size: .75rem;
}

/* Butoane în coloana Remove (echivalent VB ribeRemove / ribeRemoveGoto / ribeGoto) */
.sch-replace-treelist[b-i9az2mddou]  .sch-rl-actions {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    justify-content: center;
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    background: transparent;
    border-radius: .2rem;
    padding: 1px 5px;
    line-height: 1;
    font-size: .82rem;
    cursor: pointer;
    color: var(--bs-body-color, #c0c0c0);
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-btn:hover {
    background: rgba(255,255,255,.08);
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-btn-remove {
    color: #ff7070;
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-btn-remove:hover {
    background: rgba(220, 53, 69, .18);
    border-color: rgba(220, 53, 69, .35);
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-btn-goto {
    color: #4d9fec;
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-btn-goto:hover {
    background: rgba(77, 159, 236, .18);
    border-color: rgba(77, 159, 236, .35);
}

/* SchrSent indicator (icon) — verde dacă trimis, galben/portocaliu altfel */
.sch-replace-treelist[b-i9az2mddou]  .sch-rl-icon {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    font-size: .82rem;
    margin-left: .15rem;
    cursor: help;
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-icon-sent {
    color: #28a745;   /* bootstrap success */
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-icon-unsent {
    color: #f0ad4e;   /* bootstrap warning */
}

/* Ownership dot — bulina mică care indică dacă replacementul e al userului curent */
.sch-replace-treelist[b-i9az2mddou]  .sch-rl-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-left: .2rem;
    border: 1px solid rgba(255,255,255,.18);
    cursor: help;
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-dot-mine {
    background: #4d9fec;     /* albastru — e al meu */
    box-shadow: 0 0 0 2px rgba(77, 159, 236, .25);
}

.sch-replace-treelist[b-i9az2mddou]  .sch-rl-dot-other {
    background: #6c757d;     /* gri — alt user */
}

/* Buton toggle panou (în footer-bar grid) */
.sch-panel-toggle[b-i9az2mddou] {
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .25rem;
    padding: .1rem .45rem;
    font-size: .72rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    white-space: nowrap;
}

.sch-panel-toggle:hover[b-i9az2mddou] {
    background: var(--bs-secondary-bg, #e9ecef);
    color: var(--bs-body-color);
}

/* ── Legend ─────────────────────────────────────────────────────────────── */
.sch-legend[b-i9az2mddou] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding: .35rem .75rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-top: none;
    border-radius: 0 0 .375rem .375rem;
    font-size: .75rem;
    color: var(--bs-secondary-color, #6c757d);
}

.sch-legend-title[b-i9az2mddou] {
    font-weight: 600;
    color: var(--bs-body-color);
    margin-right: .25rem;
}

.sch-legend-item[b-i9az2mddou] {
    display: flex;
    align-items: center;
    gap: .3rem;
}

.sch-legend-swatch[b-i9az2mddou] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(0,0,0,.12);
    flex-shrink: 0;
}

/* ── Premium / SpecialType inline badges ─────────────────────────────────── */
.sch-badge[b-i9az2mddou] {
    display: inline-block;
    padding: .08rem .28rem;
    border-radius: .2rem;
    font-size: .68rem;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
    letter-spacing: .01em;
}

/* ── Export button in topbar ─────────────────────────────────────────────── */
.sch-btn-export[b-i9az2mddou] {
    font-size: .78rem;
    padding: .22rem .55rem;
    white-space: nowrap;
}

/* ── Replace button in filter bar ────────────────────────────────────────── */
.sch-btn-replace[b-i9az2mddou] {
    align-self: flex-end;
    font-size: .78rem;
    padding: .22rem .55rem;
    white-space: nowrap;
}

.sch-replace-validation[b-i9az2mddou] {
    align-self: center;
    font-size: .78rem;
    color: #dc3545;
    white-space: nowrap;
}

/* ── Replace Popup — layout: top full-width + bottom 2 coloane ──────────── */

/* Popup body override (DxPopup adds .sch-replace-popup via CssClass) */
[b-i9az2mddou] .sch-replace-popup .dxbl-popup-body {
    padding: 0;
    overflow: hidden;
}

/* Container principal: coloană flex — top + bottom */
.sch-rp-layout[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 6px;
    height: calc(88vh - 58px);   /* compensăm header-ul popup-ului */
    box-sizing: border-box;
    overflow: hidden;
}

/* ── TOP: Commercials to replace (full-width, fix ~35% din înălțime) ── */
.sch-rp-top[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    flex: 0 0 34%;
    min-height: 0;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    overflow: hidden;
    margin-bottom: 5px;
}

/* Grid-ul din top */
.sch-rp-top-grid[b-i9az2mddou] {
    flex: 1;
    overflow: hidden;
    min-height: 0;
}

/* ── BOTTOM: stânga + dreapta (flex row, restul de înălțime) ── */
.sch-rp-bottom[b-i9az2mddou] {
    display: flex;
    flex-direction: row;
    flex: 1;
    min-height: 0;
    gap: 5px;
}

/* ── Coloana stânga: 2 griduri stacked (Available commercials) ── */
.sch-rp-left[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    overflow: hidden;
}

/* Fiecare dintre cele 2 griduri disponibile (media plan / schedule OUT) */
.sch-rp-avail-section[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Separator între cele două griduri disponibile */
.sch-rp-avail-divider[b-i9az2mddou] {
    height: 4px;
    background: var(--bs-border-color, #dee2e6);
    flex-shrink: 0;
}

/* ── Coloana dreapta: Replacement spots + info + butoane ── */
.sch-rp-right[b-i9az2mddou] {
    display: flex;
    flex-direction: column;
    flex: 0 0 42%;
    min-width: 0;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    overflow: hidden;
}

/* Label "Seconds to replace: X" deasupra grid-ului dreapta */
.sch-rp-seconds-label[b-i9az2mddou] {
    padding: .22rem .6rem;
    font-size: .76rem;
    background: var(--bs-secondary-bg, #e9ecef);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    flex-shrink: 0;
}

/* Grid-ul cu spoturile alese pentru înlocuire */
.sch-rp-result-grid[b-i9az2mddou] {
    flex: 1;
    overflow: hidden;
    min-height: 0;
}

/* Header secțiune (top, stânga, dreapta) */
.sch-rp-header[b-i9az2mddou] {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .6rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    font-size: .78rem;
    flex-shrink: 0;
}

/* Info bar — echivalent lblInfo din VB */
.sch-rp-info[b-i9az2mddou] {
    padding: .3rem .6rem;
    font-size: .78rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    min-height: 28px;
    flex-shrink: 0;
}

.sch-rp-info-green[b-i9az2mddou] {
    background: rgba(25, 135, 84, .18);
    color: #4ade80;
    font-weight: 600;
}

.sch-rp-info-green :deep(b)[b-i9az2mddou],
.sch-rp-info-green :deep(strong)[b-i9az2mddou] {
    color: #ffffff;
}

.sch-rp-info-red[b-i9az2mddou] {
    background: rgba(220, 53, 69, .18);
    color: #fca5a5;
    font-weight: 600;
}

.sch-rp-info-red :deep(b)[b-i9az2mddou],
.sch-rp-info-red :deep(strong)[b-i9az2mddou] {
    color: #ffffff;
}

/* Butoane Replace / Cancel */
.sch-rp-actions[b-i9az2mddou] {
    display: flex;
    align-items: center;
    padding: .35rem .6rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    flex-shrink: 0;
}

/* Buton Add (în coloana stânga) */
.sch-rp-add-btn[b-i9az2mddou] {
    padding: .1rem .35rem;
    font-size: .7rem;
    line-height: 1.3;
    background: #198754;
    color: #fff;
    border: none;
    border-radius: .2rem;
    cursor: pointer;
    white-space: nowrap;
}

.sch-rp-add-btn:hover[b-i9az2mddou] {
    background: #157347;
}

/* Buton Remove / ✕ (în coloana dreapta) */
.sch-rp-remove-btn[b-i9az2mddou] {
    padding: .1rem .35rem;
    font-size: .72rem;
    line-height: 1.3;
    background: #dc3545;
    color: #fff;
    border: none;
    border-radius: .2rem;
    cursor: pointer;
}

.sch-rp-remove-btn:hover[b-i9az2mddou] {
    background: #bb2d3b;
}
/* _content/MyTSp_Blazor/Components/Pages/ScheduleStatistics/ScheduleStatisticsPage.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════════
   ScheduleStatisticsPage — stiluri scoped
   Layout: toolbar sus, body cu drawer stânga (toggleable) + tabs.
═══════════════════════════════════════════════════════════════════════════ */

.ssp-root[b-jueozv7sm9] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 105px);
    overflow: hidden;
}

/* ── Toolbar superior ───────────────────────────────────────────────────── */
.ssp-toolbar[b-jueozv7sm9] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .45rem .75rem;
    background: var(--bs-tertiary-bg, #1a1e25);
    border-bottom: 1px solid rgba(255,255,255,0.09);
    border-radius: .375rem .375rem 0 0;
    flex-shrink: 0;
}

.ssp-toolbar-divider[b-jueozv7sm9] {
    width: 1px;
    height: 24px;
    background: rgba(255,255,255,0.12);
    margin: 0 .35rem;
}

.ssp-toolbar-label[b-jueozv7sm9] {
    font-size: .76rem;
    color: #9aa3b0;
    margin: 0;
    white-space: nowrap;
}

/* Grup label + input — împiedică spargerea pe rânduri diferite la flex-wrap */
.ssp-toolbar-field[b-jueozv7sm9] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}

.ssp-month-combo[b-jueozv7sm9] {
    width: 130px;
}

.ssp-agency-combo[b-jueozv7sm9] {
    width: 200px;
}

/* ── Status banner — feedback global Save/Reset/etc., vizibil între toolbar şi body ── */
.ssp-status-banner[b-jueozv7sm9] {
    border-radius: 0;
    border-left: none;
    border-right: none;
    flex-shrink: 0;
    background: rgba(13, 110, 253, .14);
    border-color: rgba(77, 159, 236, .35);
    color: #cfe1f5;
}
.ssp-status-banner .btn-close[b-jueozv7sm9] {
    filter: invert(1) brightness(.85);
    opacity: .65;
    width: .55rem;
    height: .55rem;
}
.ssp-status-banner .btn-close:hover[b-jueozv7sm9] {
    opacity: 1;
}

/* ── Body — drawer + content ───────────────────────────────────────────── */
.ssp-body[b-jueozv7sm9] {
    flex: 1;
    display: flex;
    min-height: 0;
    overflow: hidden;
}

/* Filter drawer — alunecă din stânga când toggle-uit */
.ssp-filter-drawer[b-jueozv7sm9] {
    width: 0;
    overflow: hidden;
    background: #1a1e25;
    border-right: 1px solid rgba(255,255,255,0.09);
    display: flex;
    flex-direction: column;
    transition: width .22s ease-out;
    flex-shrink: 0;
}

.ssp-filter-drawer-open[b-jueozv7sm9] {
    width: 280px;
}

.ssp-filter-header[b-jueozv7sm9] {
    display: flex;
    align-items: center;
    padding: .5rem .75rem;
    background: #14171c;
    border-bottom: 1px solid rgba(255,255,255,0.09);
    font-size: .78rem;
    flex-shrink: 0;
}

.ssp-filter-options[b-jueozv7sm9] {
    padding: .5rem .75rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    flex-shrink: 0;
}

.ssp-filter-section[b-jueozv7sm9] {
    padding: .35rem .55rem .5rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}

.ssp-filter-section-header[b-jueozv7sm9] {
    font-size: .72rem;
    color: #9aa3b0;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: .25rem;
    display: flex;
    align-items: center;
}

[b-jueozv7sm9] .ssp-filter-listbox {
    max-height: 130px;
    font-size: .76rem;
}

[b-jueozv7sm9] .ssp-filter-listbox .dxbl-listbox {
    background: #262b33;
}

/* ── Content — tabs + welcome ──────────────────────────────────────────── */
.ssp-content[b-jueozv7sm9] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

[b-jueozv7sm9] .ssp-tabs {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

[b-jueozv7sm9] .ssp-tabs .dxbl-tabs-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* .dxbl-tabs-content-panel constraint este în wwwroot/app.css (GLOBAL):
   ::deep din razor.css scoped nu prinde elementul DevExpress când acesta
   randerează în propriul scope. */


.ssp-tab-body[b-jueozv7sm9] {
    height: 100%;
    padding: .35rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

[b-jueozv7sm9] .ssp-tab-body .dxbl-grid {
    flex: 1;
    min-height: 0;
}

/* Footer TotalSummary — stil pe paleta dark */
[b-jueozv7sm9] .ssp-spots-grid .dxbl-grid-footer,
[b-jueozv7sm9] .ssp-spots-grid .dxbl-grid-summary-footer {
    background: rgba(255, 255, 255, .04);
    color: #dde1e9;
    border-top: 1px solid rgba(255, 255, 255, .15);
    font-weight: 600;
    font-size: .78rem;
}

/* Loading overlay → în wwwroot/app.css (.app-loading-overlay) — global, reutilizabil. */

/* ── Welcome / empty state ─────────────────────────────────────────────── */
.ssp-welcome[b-jueozv7sm9] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #9aa3b0;
    text-align: center;
    padding: 2rem;
}

.ssp-welcome i.bi[b-jueozv7sm9] {
    font-size: 3rem;
    opacity: .35;
}

/* ── Master-detail byDay ────────────────────────────────────────────────── */
.ssp-detail-byday[b-jueozv7sm9] {
    padding: .5rem .75rem;
    background: rgba(0,0,0,.18);
    border-radius: .25rem;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TAB SUMMARY — pivot stânga + charts dreapta
═══════════════════════════════════════════════════════════════════════════ */

.ssp-summary-root[b-jueozv7sm9] {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.ssp-summary-toolbar[b-jueozv7sm9] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .35rem .55rem;
    background: rgba(255,255,255,0.03);
    border-radius: .25rem;
    flex-shrink: 0;
}

/* Spacer flex — împinge grupurile care urmează (Chart view / Show / Hide charts) la dreapta */
.ssp-toolbar-spacer[b-jueozv7sm9] {
    flex: 1 1 auto;
}

[b-jueozv7sm9] .ssp-radio-inline .dxbl-radio {
    margin-right: .35rem;
}

/* Bootstrap btn-group radios — segmented-control look pe temă întunecată.
   Înlocuim btn-outline-primary (albastru saturat, urât pe fundal negru) cu
   o paletă neutră subtilă; activul devine un fundal soft blue. */
.ssp-radio-btn-group[b-jueozv7sm9] {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: .3rem;
    padding: 2px;
    overflow: hidden;
}

.ssp-radio-btn-group .btn[b-jueozv7sm9] {
    font-size: .75rem;
    padding: .15rem .6rem;
    line-height: 1.25;
    border: none;
    border-radius: .22rem !important;
    background: transparent;
    color: #c8cdd6;
    transition: background .12s ease-out, color .12s ease-out;
    margin: 0;
}

.ssp-radio-btn-group .btn:hover[b-jueozv7sm9] {
    background: rgba(255,255,255,.06);
    color: #eef1f5;
}

/* Activul — fundal soft blue, text alb, fără chenar gros */
.ssp-radio-btn-group .btn-check:checked + .btn[b-jueozv7sm9],
.ssp-radio-btn-group .btn.active[b-jueozv7sm9] {
    background: rgba(77,159,236,.22);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(77,159,236,.45);
}

.ssp-radio-btn-group .btn-check:focus-visible + .btn[b-jueozv7sm9] {
    outline: 2px solid rgba(77,159,236,.55);
    outline-offset: 1px;
}

/* Wrapper cu înălţime garantată + flex row pentru cele 2 panes */
.ssp-splitter-wrapper[b-jueozv7sm9] {
    flex: 1 1 auto;
    height: calc(100vh - 290px);
    min-height: 400px;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    gap: 4px;
}

/* Pane stâng — Pivot, 60% lăţime default; 100% când Charts sunt colapsate */
.ssp-summary-pane-pivot[b-jueozv7sm9] {
    flex: 0 0 60%;
    overflow: auto;
    min-height: 0;
    background: rgba(0,0,0,0.05);
    border-right: 4px solid rgba(255,255,255,0.06);
}

.ssp-summary-pane-pivot.ssp-pane-full[b-jueozv7sm9] {
    flex: 1 1 100%;
    border-right: none;
}

.ssp-summary-pivot[b-jueozv7sm9] {
    height: 100%;
    width: 100%;
    overflow: auto;            /* scroll orizontal+vertical pe pivot */
    min-width: 0;
    min-height: 0;
}

[b-jueozv7sm9] .ssp-pivot {
    font-size: .76rem;
    height: 99%;
    /* Lăsăm dimensiunea naturală — DxPivotTable îşi gestionează propriul layout
       (filter chips + axe + data grid). Dacă rămâne zonă goală sub el,
       e mai puţin enervant decât stretching-ul forţat care strică chips-urile. */
}

/* Pane dreapta — Charts (40%) */
.ssp-summary-pane-charts[b-jueozv7sm9] {
    flex: 1 1 40%;
    overflow: hidden;
    min-height: 0;
    min-width: 0;
}

.ssp-summary-charts[b-jueozv7sm9] {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

/* Drill-down bar */
.ssp-drill-bar[b-jueozv7sm9] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .25rem .35rem;
    background: rgba(0,0,0,.2);
    border-radius: .25rem;
    flex-shrink: 0;
    font-size: .78rem;
}

.ssp-breadcrumb[b-jueozv7sm9] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem;
    color: #9aa3b0;
}

.ssp-breadcrumb-item[b-jueozv7sm9] {
    cursor: pointer;
    padding: 1px 6px;
    border-radius: .2rem;
    color: #4d9fec;
}

.ssp-breadcrumb-item:hover[b-jueozv7sm9] {
    background: rgba(77,159,236,.18);
}

.ssp-breadcrumb-item.active[b-jueozv7sm9] {
    color: #fff;
    font-weight: 600;
    cursor: default;
    background: rgba(77,159,236,.12);
}

.ssp-breadcrumb-item.active:hover[b-jueozv7sm9] {
    background: rgba(77,159,236,.12);
}

.ssp-breadcrumb-sep[b-jueozv7sm9] {
    color: #6c757d;
    font-size: .9rem;
}

.ssp-drill-hint[b-jueozv7sm9] {
    flex-shrink: 0;
    text-align: center;
    padding: .15rem;
    opacity: .7;
}
