/* /Components/Admin/CdscCategoriesPage.razor.rz.scp.css */
/* Shared component styles have been moved to wwwroot/srm-components.css
   Add any CdscCategoriesPage-specific overrides below this line. */
/* /Components/Admin/TenantList.razor.rz.scp.css */
/* Page-specific styles for TenantList.razor
   Shared utilities come from wwwroot/srm-components.css */

/* Tenant ID chip */
.tenant-id-chip[b-g23littpga] {
    font-size: 0.72rem;
    color: var(--text-muted);
    background: var(--surface-2);
    padding: 0.1em 0.45em;
    border-radius: 5px;
    font-family: ui-monospace, monospace;
    border: 1px solid var(--border-clr);
}

html.dark .tenant-id-chip[b-g23littpga] { background: #1a1640; }

/* Status badge */
.state-badge[b-g23littpga] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.28em 0.65em;
    border-radius: 20px;
    letter-spacing: 0.01em;
}

.state-dot[b-g23littpga] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.state-badge--active[b-g23littpga]    { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.state-badge--active    .state-dot[b-g23littpga] { background: #22c55e; }

.state-badge--suspended[b-g23littpga] { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.state-badge--suspended .state-dot[b-g23littpga] { background: #f59e0b; }

.state-badge--inactive[b-g23littpga]  { background: var(--surface-2); color: var(--text-muted); border: 1px solid var(--border-clr); }
.state-badge--inactive  .state-dot[b-g23littpga] { background: #9ca3af; }

html.dark .state-badge--active[b-g23littpga]    { background: rgba(5,150,105,0.12);  color: #86efac; border-color: rgba(5,150,105,0.25); }
html.dark .state-badge--suspended[b-g23littpga] { background: rgba(251,191,36,0.10); color: #fbbf24; border-color: rgba(251,191,36,0.25); }
html.dark .state-badge--inactive[b-g23littpga]  { background: rgba(100,100,120,0.10); }

/* Section label (modal) */
.section-label[b-g23littpga] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
    margin-bottom: 0.65rem;
}

/* Connection strings panel */
.cs-panel[b-g23littpga] {
    background: var(--surface-2);
    border: 1px solid var(--border-clr);
    border-radius: var(--radius-md);
    padding: 1rem;
}

html.dark .cs-panel[b-g23littpga] { background: #1a1640; border-color: #3a3570; }

.cs-list[b-g23littpga] {
    max-height: 190px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--border-clr) transparent;
}

.cs-item[b-g23littpga] {
    background: var(--surface);
    border: 1px solid var(--border-clr);
    border-radius: var(--radius-sm);
    padding: 0.55rem 0.7rem;
    margin-bottom: 0.5rem;
}

html.dark .cs-item[b-g23littpga] { background: #161230; border-color: #3a3570; }

.cs-value[b-g23littpga] {
    color: var(--text-muted);
    font-size: 0.74rem;
    word-break: break-all;
}

.cs-add-form[b-g23littpga] {
    border-top: 1px solid var(--border-clr);
    padding-top: 0.75rem;
}
/* /Components/CertificateDocument.razor.rz.scp.css */
/* ── CertificateDocument.razor.css ──────────────────────────────────────────
   Scoped styles for the printable certificate document.
   The global @page / html / body print rules live in
   wwwroot/css/certificate-print.css (linked from App.razor).
   ──────────────────────────────────────────────────────────────────────────── */

/* Toolbar (screen only) */
.oa-print-toolbar[b-ymcikm5m14] {
    display: flex;
    justify-content: center;
    margin-bottom: 1.5rem;
    padding: .75rem 1.5rem;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
}

.oa-toolbar-inner[b-ymcikm5m14] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    width: 100%;
    max-width: 600px;
}

.oa-toolbar-label[b-ymcikm5m14] {
    font-size: .78rem;
    font-weight: 600;
    color: #6c757d;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.oa-toolbar-actions[b-ymcikm5m14] {
    display: flex;
    gap: .75rem;
    justify-content: center;
    flex-wrap: wrap;
}

.oa-action-btn[b-ymcikm5m14] {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: none;
    padding: .55rem 1.5rem;
    border-radius: 6px;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    letter-spacing: .02em;
    transition: background .18s, transform .1s, box-shadow .18s;
    box-shadow: 0 2px 6px rgba(0,0,0,.12);
}

.oa-action-btn:hover:not(:disabled)[b-ymcikm5m14] {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,.18);
}

.oa-action-btn:active:not(:disabled)[b-ymcikm5m14] {
    transform: translateY(0);
}

.oa-print-btn[b-ymcikm5m14] {
    background: #1a3a6b;
    color: #fff;
}

.oa-print-btn:hover:not(:disabled)[b-ymcikm5m14] { background: #0f2347; }

.oa-download-btn[b-ymcikm5m14] {
    background: #198754;
    color: #fff;
}

.oa-download-btn:hover:not(:disabled)[b-ymcikm5m14] { background: #146c43; }
.oa-download-btn:disabled[b-ymcikm5m14] { opacity: .65; cursor: not-allowed; box-shadow: none; }

/* Spinner inside button */
.oa-spinner[b-ymcikm5m14] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: oa-spin-b-ymcikm5m14 .7s linear infinite;
}

@keyframes oa-spin-b-ymcikm5m14 { to { transform: rotate(360deg); } }

/* Page shell */
.oa-cert-wrapper[b-ymcikm5m14] { font-family: 'Times New Roman', Times, serif; color: #000; }

.oa-cert-page[b-ymcikm5m14] {
    width: 210mm;
    min-height: 297mm;
    margin: 0 auto 24px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,.18);
    box-sizing: border-box;
    padding: 8mm;
}

@media print {
    .oa-print-toolbar[b-ymcikm5m14] { display: none !important; }
    .oa-cert-page[b-ymcikm5m14] {
        box-shadow: none;
        margin: 0;
        width: 210mm;
        height: 297mm;
        min-height: unset;
        overflow: hidden;
        padding: 8mm;
        page-break-after: always;
    }
    .oa-cert-border[b-ymcikm5m14] {
        height: calc(297mm - 16mm);
        min-height: unset;
        overflow: hidden;
    }
    .oa-page-break[b-ymcikm5m14] { page-break-before: always; }
    .oa-cert-content[b-ymcikm5m14] { gap: .5rem; }
}

/* Decorative border */
.oa-cert-border[b-ymcikm5m14] {
    border: 3px solid #000;
    border-radius: 8px;
    height: 100%;
    min-height: calc(297mm - 16mm);
    padding: 6mm;
    box-sizing: border-box;
    position: relative;
}

.oa-cert-content[b-ymcikm5m14] { display: flex; flex-direction: column; gap: 1rem; }

/* Cover block (page 2 top) */
.oa-cert-cover[b-ymcikm5m14] { text-align: center; margin-bottom: .6rem; }

.oa-title-xl[b-ymcikm5m14] {
    font-size: 3.4rem;
    font-weight: 900;
   /* letter-spacing: .12em;*/
    color: #000;
    margin: 0 0 .3rem;
    text-transform: uppercase;
  
}

.oa-subtitle[b-ymcikm5m14] { font-size: 1rem; font-weight: 700; margin: 0 0 .5rem; }

.oa-title-numbers[b-ymcikm5m14] { justify-content: flex-start; gap: 3rem; font-size: 1rem; font-weight: 700; margin-top: .4rem; }

/* Header: logo + text */
.oa-header-block[b-ymcikm5m14] {
    display: flex;
    align-items: flex-start;
    gap: 1.2rem;
}

.oa-logo[b-ymcikm5m14] {
    width: 90px;
    height: 90px;
    object-fit: contain;
    flex-shrink: 0;
}

.oa-header-text[b-ymcikm5m14] { flex: 1; }

/* Large bold fund name used in the header */
.oa-fund-name-lg[b-ymcikm5m14] {
    font-size: 1.9rem;
    font-weight: 900;
    color: #000;
    margin: 0 0 .3rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.oa-legal[b-ymcikm5m14] { font-size: .82rem; margin: 0 0 .25rem; line-height: 1.5; }

/* Divider */
.oa-divider[b-ymcikm5m14] { border: none; border-top: 2px solid #000; margin: .5rem 0; }

/* Section title */
.oa-section-title[b-ymcikm5m14] { text-align: center; margin: .3rem 0; }
.oa-section-h3[b-ymcikm5m14] { font-size: 1.25rem; font-weight: 900; margin: 0 0 .15rem; color: #000; text-transform: uppercase; letter-spacing: .06em; }
.oa-section-sub[b-ymcikm5m14]  { font-size: .92rem; font-weight: 700; margin: 0; color: #000; }

/* Page 1 meta row */
.oa-p1-meta[b-ymcikm5m14] { margin: .4rem 0; }

/* Owner table */
.oa-owner-table[b-ymcikm5m14] { width: 100%; border-collapse: collapse; font-size: .92rem; }
.oa-owner-table th[b-ymcikm5m14], .oa-owner-table td[b-ymcikm5m14] { border: 1px solid #000; padding: 7px 8px; vertical-align: top; }
.oa-owner-table thead th[b-ymcikm5m14] { font-weight: 700; font-size: .9rem; }
.oa-owner-table tbody td[b-ymcikm5m14] { min-height: 2rem; }
.oa-certifies[b-ymcikm5m14] { width: 60%; }
.oa-narrow-col[b-ymcikm5m14] { width: 20%; text-align: center; }
.oa-side-cell[b-ymcikm5m14] { text-align: center; vertical-align: middle; }
.oa-certifies-empty[b-ymcikm5m14] { width: 60%; }

/* Acknowledgement block (page 1 bottom) */
.oa-ack-block[b-ymcikm5m14] { margin-top: 2rem; font-size: .95rem; }
.oa-ack-title[b-ymcikm5m14] { text-align: center; margin: 0 0 1.2rem; font-size: 1rem; font-weight: 700; }
.oa-ack-line[b-ymcikm5m14] { display: flex; margin: 1rem 0; }
.oa-fill-short[b-ymcikm5m14] { min-width: 40px; flex: 0 0 40px; }

/* Owns block */
.oa-owns-block[b-ymcikm5m14] { font-size: .95rem; }
.oa-owns-block p[b-ymcikm5m14] { margin: .5rem 0; }
.oa-line[b-ymcikm5m14] { display: flex; }

/* Fill underline */
.oa-fill[b-ymcikm5m14] {
    display: inline-block;
    flex: 1;
    border-bottom: 1px solid #000;
    min-width: 120px;
    margin-left: 6px;
}
.oa-inline-fill[b-ymcikm5m14] { min-width: 80px; margin: 0 6px; }

/* Centred paragraphs */
.oa-centered[b-ymcikm5m14] { text-align: center; font-size: .95rem; margin: .5rem 0; }
.oa-warning[b-ymcikm5m14]   { font-weight: 700; font-size: 1rem; }
.oa-fund-footer[b-ymcikm5m14] { font-weight: 900; color: #000; font-size: 1rem; }

/* Signature */
.oa-signature-block[b-ymcikm5m14] { display: flex; justify-content: center; margin: .4rem 0; }
.oa-sig-wrap[b-ymcikm5m14] { display: flex; flex-direction: column; align-items: center; }
.oa-sig-img[b-ymcikm5m14] { width: 45mm; height: auto; display: block; margin-bottom: -4px; }
.oa-sig-line[b-ymcikm5m14] { width: 55mm; border-top: 1px solid #000; }

/* Serial */
.oa-serial[b-ymcikm5m14] { font-size: .9rem; margin-top: .6rem; text-align: right; }

/* Row helpers */
.oa-row-2col[b-ymcikm5m14] { display: flex; gap: 2rem; }
.oa-row-3col[b-ymcikm5m14] { display: flex; gap: 1rem; font-size: .95rem; }
.oa-row-3col > div[b-ymcikm5m14], .oa-row-2col > div[b-ymcikm5m14] { display: flex; flex: 1; }
/* /Components/Investors/FrontOfficePage.razor.rz.scp.css */
/* Front Office Page - scoped styles
   Shared utilities come from wwwroot/srm-components.css */

/* Investor detail label/value pairs */
.fo-detail-label[b-48p0idqqj4] {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    margin-bottom: 2px;
}

.fo-detail-value[b-48p0idqqj4] {
    display: block;
    font-size: 0.875rem;
    color: var(--text-primary);
}

/* Section divider with centred label */
.fo-section-divider[b-48p0idqqj4] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1.25rem 0 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.fo-section-divider[b-48p0idqqj4]::before,
.fo-section-divider[b-48p0idqqj4]::after {
    content: "";
    flex: 1;
    border-top: 1px solid var(--border-clr);
}

/* Tab table scroll container */
.fo-tab-table[b-48p0idqqj4] {
    max-height: 340px;
    overflow-y: auto;
}

/* Query text - truncated */
.fo-query-text[b-48p0idqqj4] {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    max-height: 2.6rem;
    line-height: 1.3rem;
    font-size: 0.85rem;
    cursor: default;
    transition: all 0.15s ease;
    color: var(--text-primary);
}

.fo-query-text:hover[b-48p0idqqj4] {
    overflow: visible;
    -webkit-line-clamp: unset;
    max-height: none;
    position: relative;
    z-index: 10;
    background: var(--surface-2);
    padding: 0.25rem 0.4rem;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
}

/* Response card */
.fo-response-card[b-48p0idqqj4] {
    background: var(--surface-2);
    border: 1px solid var(--border-clr);
    border-radius: var(--radius-md);
    padding: 0.75rem 1rem;
}

html.dark .fo-response-card[b-48p0idqqj4] { background: #1a1640; border-color: #3a3570; }

/* Panel header (match srm-params style) */
.srm-params-panel-header[b-48p0idqqj4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.25rem;
    border-bottom: 1px solid var(--border-clr);
    font-weight: 600;
    font-size: 0.875rem;
    background: var(--surface-2);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    color: var(--text-primary);
}

html.dark .srm-params-panel-header[b-48p0idqqj4] {
    background: #1a1640;
    border-bottom-color: #3a3570;
}

/* Compact action buttons in tables */
.fo-tab-table .btn-sm[b-48p0idqqj4] {
    padding: 0.2rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.4;
}
/* /Components/Investors/InvestorDetails.razor.rz.scp.css */
/* Scoped styles for InvestorDetails.razor
   Shared utility classes come from wwwroot/srm-components.css  */

/* Search results row cursor */
.result-row[b-pboy1gefam] {
    cursor: pointer;
    user-select: none;
}

.result-row:hover td[b-pboy1gefam] { background: rgba(37,12,119,0.05) !important; }
html.dark .result-row:hover td[b-pboy1gefam] { background: rgba(255,255,255,0.05) !important; }

/* Sticky thead in search modal */
.srm-table thead.sticky-top th[b-pboy1gefam] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-2);
}

html.dark .srm-table thead.sticky-top th[b-pboy1gefam] { background: #1a1640; }

/* Tab panel transition */
.tab-panel-body[b-pboy1gefam] {
    animation: tab-fade-b-pboy1gefam 0.15s ease-in;
}

@keyframes tab-fade-b-pboy1gefam {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Form-control read-only */
.form-control.bg-light[readonly][b-pboy1gefam] {
    border-color: var(--border-clr);
    color: var(--text-muted);
    cursor: not-allowed;
    background: var(--surface-2) !important;
}
/* /Components/Layout/DisplayLayout.razor.rz.scp.css */
[b-bbw0ntgrne] .tv-display-body {
    margin: 0;
    padding: 0;
    width: 100vw;
    min-height: 100vh;
    overflow-x: hidden;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* MainLayout.razor - scoped styles
   Layout shell is handled by app.css (.srm-layout, .srm-sidebar, .top-header etc.)
   Only component-specific overrides belong here. */

/* Reconnect / error UI handled by ReconnectModal.razor.css */
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* NavMenu scoped styles – layout handled by app.css */

.srm-nav form[b-lt688oe2ti] {
    display: contents;
}
/* /Components/Layout/PrintLayout.razor.rz.scp.css */
.print-layout-root[b-9luoda8u1o] {
    all: initial;
    display: block;
    font-family: inherit;
}

/* Hide every app-shell element that bleeds through */
[b-9luoda8u1o]::slotted(*), :host[b-9luoda8u1o] { all: initial; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-zhil7if8x8],
.components-reconnect-repeated-attempt-visible[b-zhil7if8x8],
.components-reconnect-failed-visible[b-zhil7if8x8],
.components-pause-visible[b-zhil7if8x8],
.components-resume-failed-visible[b-zhil7if8x8],
.components-rejoining-animation[b-zhil7if8x8] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-retrying[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-failed[b-zhil7if8x8],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-zhil7if8x8] {
    display: block;
}


#components-reconnect-modal[b-zhil7if8x8] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-zhil7if8x8 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-zhil7if8x8 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-zhil7if8x8 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-zhil7if8x8]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-zhil7if8x8 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-zhil7if8x8 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-zhil7if8x8 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-zhil7if8x8 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-zhil7if8x8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-zhil7if8x8] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-zhil7if8x8] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-zhil7if8x8] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-zhil7if8x8] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-zhil7if8x8] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-zhil7if8x8] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-zhil7if8x8 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-zhil7if8x8] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-zhil7if8x8 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Queue/QueryDashboard.razor.rz.scp.css */
/* Tab styling */
.tabs[b-3ib1g2ihui] {
  margin-top: 2rem;
}

.tab[b-3ib1g2ihui] {
  font-weight: 500;
}

.lpx-heading[b-3ib1g2ihui] {
   font-weight: 600;
   margin-bottom: 0.75rem;
 }

.lpx-divider[b-3ib1g2ihui] {
  margin: 1rem 0;
  opacity: 0.2;
}

.shadow-sm[b-3ib1g2ihui] {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.fs-2[b-3ib1g2ihui] {
  font-size: 1.75rem !important;
}

/* Tab styling */
.tabs[b-3ib1g2ihui] {
  margin-top: 2rem;
}

.tab[b-3ib1g2ihui] {
  font-weight: 500;
}

.query-text-truncate[b-3ib1g2ihui] {
  white-space: normal;
  word-break: break-word;
  overflow: visible;
  line-height: 1.4;
  max-height: 5.6em; /* Approximately 4 lines of text */
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.chart-container[b-3ib1g2ihui] {
  height: 300px;
  width: 100%;
}


/* /Components/Queue/TicketDisplay.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════
   TV Ticket Display – full-screen board styles
   Designed for 32"+ monitors at 1080p / 4K
   ══════════════════════════════════════════════════════════ */

/* ── Root board ── */
.tv-board[b-27f5uztvqq] {
    display: flex;
    flex-direction: column;
    width: 100vw;
    min-height: 100vh;
    background: #0d0f1a;
    font-family: 'Segoe UI', system-ui, sans-serif;
    color: #f0f4ff;
    overflow: hidden;
    padding: 0.9rem;
    background-image:
        linear-gradient(#0d0f1a, #0d0f1a),
        linear-gradient(135deg, #3b82f6 0%, #7c3aed 35%, #eab308 65%, #22c55e 100%);
    background-origin: padding-box, border-box;
    background-clip: padding-box, border-box;
    border: 0.9rem solid transparent;
    box-sizing: border-box;
}

/* ── Header ── */
.tv-header[b-27f5uztvqq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.2rem 2.5rem;
    background: linear-gradient(135deg, #1a1f3a 0%, #0f1525 100%);
    border-bottom: 3px solid #3b82f6;
    flex-shrink: 0;
}

.tv-header-left[b-27f5uztvqq] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.tv-brand-block[b-27f5uztvqq] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.tv-welcome-line[b-27f5uztvqq] {
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #93c5fd;
    opacity: 0.85;
}

.tv-brand-name[b-27f5uztvqq] {
    font-size: 1.8rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: linear-gradient(90deg, #60a5fa 0%, #a78bfa 50%, #f472b6 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: none;
}

.tv-header-center[b-27f5uztvqq] {
    text-align: center;
}

.tv-clock[b-27f5uztvqq] {
    font-size: 3rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #facc15;
    letter-spacing: 0.06em;
    text-shadow: 0 0 18px rgba(250, 204, 21, 0.5);
}

.tv-header-right[b-27f5uztvqq] {
    display: flex;
    align-items: center;
}

.tv-live-pill[b-27f5uztvqq] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    background: rgba(34, 197, 94, 0.15);
    border: 2px solid #22c55e;
    color: #4ade80;
    border-radius: 999px;
    padding: 0.4rem 1.4rem;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.tv-live-dot[b-27f5uztvqq] {
    width: 0.8rem;
    height: 0.8rem;
    background: #4ade80;
    border-radius: 50%;
    animation: tv-pulse-b-27f5uztvqq 1.4s ease-in-out infinite;
    box-shadow: 0 0 8px #4ade80;
}

@keyframes tv-pulse-b-27f5uztvqq {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.4; transform: scale(0.7); }
}

/* ── Two-column layout ── */
.tv-columns[b-27f5uztvqq] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    flex: 1;
    min-height: 0;
}

/* ── Panel shared ── */
.tv-panel[b-27f5uztvqq] {
    display: flex;
    flex-direction: column;
    border-right: 1px solid #1e2540;
    min-height: 0;
}

.tv-panel:last-child[b-27f5uztvqq] {
    border-right: none;
}

.tv-panel-header[b-27f5uztvqq] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.2rem 2rem;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    flex-shrink: 0;
}

/* Active / In-Progress panel */
.tv-panel-header-active[b-27f5uztvqq] {
    background: linear-gradient(90deg, #1e3a8a 0%, #1d4ed8 100%);
    color: #bfdbfe;
    border-bottom: 3px solid #3b82f6;
}

/* Waiting panel */
.tv-panel-header-waiting[b-27f5uztvqq] {
    background: linear-gradient(90deg, #713f12 0%, #a16207 100%);
    color: #fef3c7;
    border-bottom: 3px solid #eab308;
}

.tv-count-badge[b-27f5uztvqq] {
    margin-left: auto;
    border-radius: 999px;
    padding: 0.2rem 1rem;
    font-size: 1.6rem;
    font-weight: 800;
    min-width: 3rem;
    text-align: center;
}

.tv-count-active[b-27f5uztvqq] {
    background: rgba(255, 255, 255, 0.15);
    color: #93c5fd;
    border: 2px solid #60a5fa;
}

.tv-count-waiting[b-27f5uztvqq] {
    background: rgba(255, 255, 255, 0.15);
    color: #fde68a;
    border: 2px solid #fbbf24;
}

/* ── Panel body ── */
.tv-panel-body[b-27f5uztvqq] {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.tv-panel-scroll[b-27f5uztvqq] {
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #1e2540 transparent;
}

/* ── Table ── */
.tv-table[b-27f5uztvqq] {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.55rem;
}

.tv-table thead tr[b-27f5uztvqq] {
    background: #111627;
    border-bottom: 2px solid #1e2a4a;
}

.tv-table thead th[b-27f5uztvqq] {
    padding: 1rem 1.4rem;
    font-size: 1.1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #6b7db3;
}

.tv-table tbody tr[b-27f5uztvqq] {
    border-bottom: 1px solid #161c30;
    transition: background 0.2s;
}

.tv-table tbody tr:hover[b-27f5uztvqq] {
    background: rgba(59, 130, 246, 0.08);
}

.tv-table tbody tr.tv-row-active[b-27f5uztvqq] {
    background: rgba(29, 78, 216, 0.12);
}

.tv-table tbody tr.tv-row-active:hover[b-27f5uztvqq] {
    background: rgba(29, 78, 216, 0.2);
}

.tv-table td[b-27f5uztvqq] {
    padding: 1.1rem 1.4rem;
    vertical-align: middle;
}

/* ── Ticket number chip ── */
.tv-ticket-num[b-27f5uztvqq] {
    display: inline-block;
    background: linear-gradient(135deg, #1d4ed8, #7c3aed);
    color: #fff;
    font-size: 1.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    padding: 0.25rem 1rem;
    border-radius: 8px;
    min-width: 4.5rem;
    text-align: center;
    box-shadow: 0 0 14px rgba(124, 58, 237, 0.4);
}

.tv-ticket-waiting[b-27f5uztvqq] {
    background: linear-gradient(135deg, #78350f, #d97706);
    box-shadow: 0 0 14px rgba(217, 119, 6, 0.35);
}

/* ── Counter badge ── */
.tv-counter-badge[b-27f5uztvqq] {
    display: inline-block;
    background: #1e3a8a;
    color: #93c5fd;
    font-size: 1.5rem;
    font-weight: 800;
    padding: 0.2rem 0.9rem;
    border-radius: 6px;
    border: 1px solid #2563eb;
}

/* ── Name ── */
.tv-name[b-27f5uztvqq] {
    font-size: 1.6rem;
    font-weight: 600;
    color: #e2e8f0;
}

/* ── Position / time ── */
.tv-pos[b-27f5uztvqq] {
    font-size: 1.6rem;
    font-weight: 700;
    color: #475569;
    width: 3rem;
    text-align: center;
}

.tv-time[b-27f5uztvqq] {
    font-size: 1.4rem;
    color: #4b5563;
    font-variant-numeric: tabular-nums;
}

/* ── Priority badges ── */
.tv-badge[b-27f5uztvqq] {
    display: inline-flex;
    align-items: center;
    font-size: 1.2rem;
    font-weight: 700;
    padding: 0.3rem 0.9rem;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.tv-badge-premium[b-27f5uztvqq] {
    background: linear-gradient(135deg, #6d28d9, #a855f7);
    color: #f5f3ff;
    box-shadow: 0 0 10px rgba(168, 85, 247, 0.4);
}

.tv-badge-priority[b-27f5uztvqq] {
    background: linear-gradient(135deg, #b45309, #f59e0b);
    color: #fffbeb;
    box-shadow: 0 0 10px rgba(245, 158, 11, 0.35);
}

.tv-badge-standard[b-27f5uztvqq] {
    background: #1e293b;
    color: #64748b;
    border: 1px solid #334155;
}

/* ── Empty state ── */
.tv-empty[b-27f5uztvqq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    flex: 1;
    padding: 5rem 2rem;
    color: #374151;
    font-size: 1.6rem;
    font-weight: 600;
}

.tv-empty-icon[b-27f5uztvqq] {
    font-size: 5rem;
    opacity: 0.3;
}

.tv-empty-icon-green[b-27f5uztvqq] {
    color: #22c55e;
}
