/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-p68bwmr2d8] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-p68bwmr2d8] {
    flex: 1;
    /* Flex item mặc định min-width:auto — nội dung rộng (chat, bảng, code) sẽ đẩy main phình
       to hơn viewport làm tràn ngang cả trang. Ép min-width:0 để main co đúng không gian còn lại. */
    min-width: 0;
}

.sidebar[b-p68bwmr2d8] {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-right: 1px solid rgba(0, 0, 0, 0.06);
}

/* Khi chưa đăng nhập, NavMenu (AuthorizeView) không render gì → sidebar rỗng.
   Ẩn hẳn để không còn cột/viền trống, phần main tràn full-width. */
.sidebar:empty[b-p68bwmr2d8] {
    display: none;
    border-right: none;
}

.top-row[b-p68bwmr2d8] {
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-p68bwmr2d8]  a, .top-row[b-p68bwmr2d8]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
        color: #7e5394;
        font-weight: 600;
    }

    .top-row[b-p68bwmr2d8]  a:hover, .top-row[b-p68bwmr2d8]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-p68bwmr2d8]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-p68bwmr2d8] {
        justify-content: space-between;
    }

    .top-row[b-p68bwmr2d8]  a, .top-row[b-p68bwmr2d8]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-p68bwmr2d8] {
        flex-direction: row;
    }

    .sidebar[b-p68bwmr2d8] {
        width: 260px;
        height: 100vh;
        position: sticky;
        top: 0;
        transition: width 0.25s ease;
    }

    /* Khi NavMenu ở trạng thái thu gọn, thu hẹp luôn cột sidebar */
    .sidebar:has(.vh-nav-root.collapsed)[b-p68bwmr2d8] {
        width: 80px;
    }

    .top-row[b-p68bwmr2d8] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-p68bwmr2d8]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-p68bwmr2d8], article[b-p68bwmr2d8] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-p68bwmr2d8] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-p68bwmr2d8] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ===== VisionHub.Portal styled glass sidebar ===== */

.vh-nav-root[b-gwu8mzv4bc] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Nút thu gọn/mở rộng menu */
.vh-nav-collapse-btn[b-gwu8mzv4bc] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(255, 255, 255, 0.6);
    color: #7e5394;
    cursor: pointer;
    transition: all 0.2s ease;
    flex: 0 0 auto;
}

.vh-nav-collapse-btn:hover[b-gwu8mzv4bc] {
    background: rgba(139, 92, 246, 0.12);
}

.vh-nav-brand[b-gwu8mzv4bc] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 1.5rem 1.25rem;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.vh-brand-mark[b-gwu8mzv4bc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.6rem;
    box-shadow: 0 6px 18px -6px rgba(126, 83, 148, 0.6);
}

.vh-brand-mark img[b-gwu8mzv4bc] {
    width: 100%;
    height: 100%;
    border-radius: 0.6rem;
    object-fit: contain;
}

.vh-brand-text[b-gwu8mzv4bc] {
    font-size: 1.35rem;
    color: #0f172a;
}

.vh-text-gradient[b-gwu8mzv4bc] {
    background: linear-gradient(to right, #7e5394, #b999c7, #ea580c);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.vh-nav[b-gwu8mzv4bc] {
    display: flex;
    flex-direction: column;
    padding: 0 0.85rem 1.25rem 0.85rem;
    gap: 0.2rem;
    height: 100%;
}

.vh-nav-section[b-gwu8mzv4bc] {
    text-transform: uppercase;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: #94a3b8;
    margin: 1.1rem 0.75rem 0.4rem 0.75rem;
}

.vh-nav-spacer[b-gwu8mzv4bc] {
    flex: 1 1 auto;
}

/* Language toggle VI/EN */
.vh-nav-lang[b-gwu8mzv4bc] {
    display: flex;
    gap: 0.4rem;
    padding: 0.5rem 0.5rem 0.75rem 0.5rem;
    margin-bottom: 0.25rem;
}

.vh-lang-btn[b-gwu8mzv4bc] {
    flex: 1;
    padding: 0.35rem 0.5rem;
    border-radius: 0.6rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(255, 255, 255, 0.6);
    color: #475569;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

.vh-lang-btn:hover[b-gwu8mzv4bc] {
    background: rgba(139, 92, 246, 0.08);
}

.vh-lang-btn.active[b-gwu8mzv4bc] {
    background: linear-gradient(135deg, #7e5394, #946da7);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 12px -4px rgba(126, 83, 148, 0.5);
}



[b-gwu8mzv4bc] .vh-nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.7rem;
    color: #475569;
    font-size: 0.95rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s ease;
    position: relative;
}

[b-gwu8mzv4bc] .vh-nav-link i {
    font-size: 1.05rem;
    width: 1.3rem;
    text-align: center;
    color: #946da7;
    transition: color 0.2s ease;
}

[b-gwu8mzv4bc] .vh-nav-link:hover {
    background: rgba(139, 92, 246, 0.08);
    color: #0f172a;
}

[b-gwu8mzv4bc] .vh-nav-link.active {
    background: linear-gradient(135deg, rgba(126, 83, 148, 0.14), rgba(185, 153, 199, 0.1));
    color: #6a4785;
    font-weight: 700;
    box-shadow: inset 0 0 0 1px rgba(126, 83, 148, 0.18);
}

[b-gwu8mzv4bc] .vh-nav-link.active i {
    color: #7e5394;
}

/* Badge số lời mời chờ chấp nhận trên link Trợ lý */
[b-gwu8mzv4bc] .vh-nav-badge {
    margin-left: auto;
    min-width: 1.3rem;
    height: 1.3rem;
    padding: 0 0.4rem;
    border-radius: 0.65rem;
    background: linear-gradient(135deg, #f59e0b, #ef4444);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.3rem;
    text-align: center;
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.35);
}

/* Khi thu gọn sidebar: hiện badge dạng chấm nổi ở góc icon */
.vh-nav-root.collapsed[b-gwu8mzv4bc]  .vh-nav-badge {
    position: absolute;
    top: 0.3rem;
    right: 0.3rem;
    margin-left: 0;
    min-width: 1rem;
    height: 1rem;
    line-height: 1rem;
    padding: 0 0.25rem;
    font-size: 0.62rem;
}

[b-gwu8mzv4bc] .vh-nav-signout {
    color: #be123c;
}

[b-gwu8mzv4bc] .vh-nav-signout i {
    color: #e11d48;
}

[b-gwu8mzv4bc] .vh-nav-signout:hover {
    background: rgba(225, 29, 72, 0.08);
    color: #9f1239;
}

.vh-nav-user[b-gwu8mzv4bc] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 0.85rem;
    margin-top: 0.5rem;
    border-radius: 0.7rem;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(0, 0, 0, 0.05);
    font-size: 0.85rem;
    font-weight: 600;
    color: #334155;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.vh-nav-user i[b-gwu8mzv4bc] {
    font-size: 1.4rem;
    color: #946da7;
}

/* ===== Mobile toggler ===== */
.navbar-toggler[b-gwu8mzv4bc] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    position: absolute;
    top: 0.75rem;
    right: 1rem;
    border: 1px solid rgba(126, 83, 148, 0.2);
    border-radius: 0.5rem;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28126, 83, 148, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.6);
}

.navbar-toggler:checked[b-gwu8mzv4bc] {
    background-color: rgba(139, 92, 246, 0.15);
}

.nav-scrollable[b-gwu8mzv4bc] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-gwu8mzv4bc] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-gwu8mzv4bc] {
        display: none;
    }

    .nav-scrollable[b-gwu8mzv4bc] {
        display: block;
        height: calc(100vh - 6rem);
        overflow-y: auto;
    }
}

/* ===================== TRẠNG THÁI THU GỌN (COLLAPSED) ===================== */
/* Chỉ áp dụng trên desktop (>=641px); mobile vẫn dùng cơ chế hamburger riêng. */
@media (min-width: 641px) {
    /* Ẩn chữ thương hiệu, căn icon toggle ra giữa */
    .vh-nav-root.collapsed .vh-brand-text[b-gwu8mzv4bc] {
        display: none;
    }

    /* Khi thu gọn: logo "L" ở trên, nút toggle xuống dưới (xếp dọc) cho dễ bấm, không chật */
    .vh-nav-root.collapsed .vh-nav-brand[b-gwu8mzv4bc] {
        flex-direction: column;
        padding: 1rem 0.5rem 0.75rem;
        gap: 0.5rem;
    }

    .vh-nav-root.collapsed .vh-nav-collapse-btn[b-gwu8mzv4bc] {
        margin-left: 0;
        width: 2rem;
        height: 2rem;
    }

    /* Ẩn nhãn nhóm mục (OVERVIEW, ADMIN...) */
    .vh-nav-root.collapsed .vh-nav-section[b-gwu8mzv4bc] {
        height: 1px;
        margin: 0.75rem 0.5rem;
        overflow: hidden;
        color: transparent;
        border-top: 1px solid rgba(0, 0, 0, 0.06);
    }

    /* Ẩn chữ trong các link điều hướng, chỉ chừa icon (căn giữa) */
    .vh-nav-root.collapsed[b-gwu8mzv4bc]  .vh-nav-link span {
        display: none;
    }

    .vh-nav-root.collapsed[b-gwu8mzv4bc]  .vh-nav-link {
        justify-content: center;
        padding: 0.7rem 0;
        gap: 0;
    }

    /* Icon to hơn một chút khi thu gọn để dễ nhìn/bấm */
    .vh-nav-root.collapsed[b-gwu8mzv4bc]  .vh-nav-link i {
        font-size: 1.2rem;
        width: auto;
    }

    /* Thu gọn padding container nav để icon căn giữa cột hẹp */
    .vh-nav-root.collapsed .vh-nav[b-gwu8mzv4bc] {
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }

    /* Ẩn toggle ngôn ngữ + tên người dùng khi thu gọn (giữ giao diện gọn) */
    .vh-nav-root.collapsed .vh-nav-lang[b-gwu8mzv4bc],
    .vh-nav-root.collapsed .vh-nav-user span[b-gwu8mzv4bc] {
        display: none;
    }

    .vh-nav-root.collapsed .vh-nav-user[b-gwu8mzv4bc] {
        justify-content: center;
        padding: 0.7rem 0;
    }
}


/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-ktxh2i4527],
.components-reconnect-repeated-attempt-visible[b-ktxh2i4527],
.components-reconnect-failed-visible[b-ktxh2i4527],
.components-pause-visible[b-ktxh2i4527],
.components-resume-failed-visible[b-ktxh2i4527],
.components-rejoining-animation[b-ktxh2i4527] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-retrying[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-failed[b-ktxh2i4527],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-ktxh2i4527] {
    display: block;
}


#components-reconnect-modal[b-ktxh2i4527] {
    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-ktxh2i4527 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-ktxh2i4527 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-ktxh2i4527 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-ktxh2i4527]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-ktxh2i4527 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-ktxh2i4527 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-ktxh2i4527 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-ktxh2i4527 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-ktxh2i4527] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-ktxh2i4527] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-ktxh2i4527] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-ktxh2i4527] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-ktxh2i4527] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-ktxh2i4527] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-ktxh2i4527] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-ktxh2i4527 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-ktxh2i4527] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-ktxh2i4527 {
    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/Pages/KnowledgeChat.razor.rz.scp.css */
/* Trang Trợ Lý Luna — dùng tối đa không gian làm việc, không lồng thêm khung container */

/* ---------- Cộng tác (collaboration) ---------- */
.luna-shared-banner[b-wi0wxd7bcu] {
    margin: 0.4rem 0.6rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.7rem;
    background: linear-gradient(135deg, #06b6d4, #0891b2);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(8, 145, 178, 0.25);
}

/* ---------- Lời mời chờ chấp nhận ---------- */
.luna-invite-box[b-wi0wxd7bcu] {
    margin: 0.4rem 0.6rem;
    padding: 0.5rem 0.6rem;
    border-radius: 0.7rem;
    background: rgba(245, 158, 11, 0.08);
    border: 1px solid rgba(245, 158, 11, 0.35);
}

.luna-invite-title[b-wi0wxd7bcu] {
    font-size: 0.74rem;
    font-weight: 700;
    color: #b45309;
    margin-bottom: 0.35rem;
}

.luna-invite-item[b-wi0wxd7bcu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.35rem 0.25rem;
    border-top: 1px solid rgba(245, 158, 11, 0.2);
}

.luna-invite-info[b-wi0wxd7bcu] {
    min-width: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 0.35rem;
    font-size: 0.78rem;
}

.luna-invite-name[b-wi0wxd7bcu] {
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 9rem;
}

.luna-invite-from[b-wi0wxd7bcu] {
    font-size: 0.68rem;
    color: #64748b;
    width: 100%;
}

.luna-invite-actions[b-wi0wxd7bcu] {
    display: flex;
    gap: 0.3rem;
    flex-shrink: 0;
}

.luna-presence-dot[b-wi0wxd7bcu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    color: #7e5394;
    font-size: 0.7rem;
    font-weight: 700;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.luna-invite-btn[b-wi0wxd7bcu] {
    border-radius: 0.6rem;
    font-weight: 600;
    font-size: 0.75rem;
    color: #7e5394;
}

.luna-invite-panel[b-wi0wxd7bcu] {
    background: rgba(248, 250, 252, 0.95);
}

.luna-queue-badge[b-wi0wxd7bcu] {
    background: rgba(126, 83, 148, 0.08);
    border: 1px dashed rgba(126, 83, 148, 0.35);
    border-radius: 0.7rem;
    color: #7e5394;
}

.luna-typing-dots[b-wi0wxd7bcu] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.luna-typing-dots span[b-wi0wxd7bcu] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #946da7;
    animation: luna-typing 1.2s infinite ease-in-out;
}

.luna-typing-dots span:nth-child(2)[b-wi0wxd7bcu] {
    animation-delay: 0.2s;
}

.luna-typing-dots span:nth-child(3)[b-wi0wxd7bcu] {
    animation-delay: 0.4s;
}

@@keyframes luna-typing {
    0%[b-wi0wxd7bcu], 60%[b-wi0wxd7bcu], 100%[b-wi0wxd7bcu] {
        transform: translateY(0);
        opacity: 0.4;
    }
    30%[b-wi0wxd7bcu] {
        transform: translateY(-4px);
        opacity: 1;
    }
}

.luna-chat-layout[b-wi0wxd7bcu] {
    display: flex;
    gap: 0.75rem;
    height: calc(100vh - 3.5rem - 2rem);
    margin: -0.5rem 0;
}

.luna-session-sidebar[b-wi0wxd7bcu] {
    flex: 0 0 250px;
    display: flex;
    flex-direction: column;
    background: var(--glass-bg, rgba(255, 255, 255, 0.85));
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 1.25rem;
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.luna-session-head[b-wi0wxd7bcu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 0.85rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.85rem;
    color: #334155;
}

.luna-newsession-btn[b-wi0wxd7bcu] {
    border-radius: 0.6rem;
    font-weight: 600;
    font-size: 0.75rem;
}

.luna-session-analyzing[b-wi0wxd7bcu] {
    padding: 0.5rem 0.85rem;
    font-size: 0.72rem;
    color: #7e5394;
    background: rgba(126, 83, 148, 0.06);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.luna-session-list[b-wi0wxd7bcu] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.luna-session-item[b-wi0wxd7bcu] {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: left;
    border: 1px solid transparent;
    background: transparent;
    border-radius: 0.6rem;
    padding: 0.55rem 0.6rem;
    font-size: 0.8rem;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s ease;
}

.luna-session-item:hover[b-wi0wxd7bcu] {
    background: rgba(126, 83, 148, 0.06);
}

.luna-session-item.active[b-wi0wxd7bcu] {
    background: linear-gradient(135deg, rgba(126, 83, 148, 0.12), rgba(185, 153, 199, 0.12));
    border-color: rgba(126, 83, 148, 0.3);
    color: #7e5394;
    font-weight: 600;
}

.luna-session-title[b-wi0wxd7bcu] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.luna-session-delete[b-wi0wxd7bcu] {
    flex: 0 0 auto;
    margin-left: auto;
    border: none;
    background: transparent;
    color: #cbd5e1;
    padding: 0.1rem 0.3rem;
    border-radius: 0.4rem;
    cursor: pointer;
    opacity: 0;
    transition: all 0.15s ease;
}

.luna-session-item:hover .luna-session-delete[b-wi0wxd7bcu] {
    opacity: 1;
}

.luna-session-delete:hover[b-wi0wxd7bcu] {
    color: #ef4444;
    background: rgba(239, 68, 68, 0.1);
}

.luna-session-confirm[b-wi0wxd7bcu] {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    gap: 0.2rem;
}

.luna-confirm-btn[b-wi0wxd7bcu] {
    border: none;
    background: transparent;
    padding: 0.1rem 0.3rem;
    border-radius: 0.4rem;
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1;
}

.luna-confirm-btn.yes[b-wi0wxd7bcu] {
    color: #16a34a;
}

.luna-confirm-btn.yes:hover[b-wi0wxd7bcu] {
    background: rgba(22, 163, 74, 0.15);
}

.luna-confirm-btn.no[b-wi0wxd7bcu] {
    color: #ef4444;
}

.luna-confirm-btn.no:hover[b-wi0wxd7bcu] {
    background: rgba(239, 68, 68, 0.12);
}

.luna-chat-wrapper[b-wi0wxd7bcu] {
    flex: 1 1 auto;
    /* Flex item mặc định min-width:auto — nội dung dài (textarea, code block) sẽ đẩy cột tràn ngang. Ép min-width:0 để co lại đúng không gian còn lại. */
    min-width: 0;
    display: flex;
    flex-direction: column;
    /* Lấp đầy chiều cao còn lại: 100vh trừ thanh top-row (3.5rem) và padding article */
    height: calc(100vh - 3.5rem - 2rem);
    margin: -0.5rem 0;
    background: var(--glass-bg, rgba(255, 255, 255, 0.85));
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 1.25rem;
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.luna-chat-header[b-wi0wxd7bcu] {
    flex: 0 0 auto;
    background: linear-gradient(135deg, #7e5394, #b999c7);
}

/* Nút điều khiển chỉ dành cho mobile — mặc định ẩn trên desktop */
.luna-mobile-newsession-btn[b-wi0wxd7bcu] {
    display: none;
}

/* Nút menu hiện ở mọi kích thước: mobile mở drawer, desktop thu gọn panel phiên */
.luna-mobile-menu-btn[b-wi0wxd7bcu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.5rem;
}

/* Desktop: panel phiên thu gọn mượt về 0 */
@media (min-width: 769px) {
    .luna-session-sidebar[b-wi0wxd7bcu] {
        transition: flex-basis 0.25s ease, opacity 0.2s ease;
    }

    .luna-session-sidebar.luna-sidebar-collapsed[b-wi0wxd7bcu] {
        flex-basis: 0;
        min-width: 0;
        opacity: 0;
        border: none;
        pointer-events: none;
    }
}

.luna-sidebar-overlay[b-wi0wxd7bcu] {
    display: none;
}

.luna-presence-more[b-wi0wxd7bcu] {
    background: rgba(255, 255, 255, 0.35) !important;
}

.luna-chat-box[b-wi0wxd7bcu] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1.5rem;
    background-color: rgba(248, 250, 252, 0.6);
}

.luna-chat-footer[b-wi0wxd7bcu] {
    flex: 0 0 auto;
    background: #ffffff;
    max-height: 45vh;
    overflow-y: auto;
}

/* Ô nhập trong input-group không được đẩy tràn chiều ngang */
.luna-chat-footer[b-wi0wxd7bcu]  .input-group {
    flex-wrap: nowrap;
}

.luna-chat-footer[b-wi0wxd7bcu]  .form-control {
    min-width: 0;
}

/* ===================== RESPONSIVE / MOBILE ===================== */
@media (max-width: 768px) {
    .luna-chat-layout[b-wi0wxd7bcu] {
        gap: 0;
        position: relative;
    }

    /* Sidebar -> drawer trượt từ trái, KHÔNG ẩn cứng để vẫn truy cập được */
    .luna-session-sidebar[b-wi0wxd7bcu] {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 1050;
        width: 80vw;
        max-width: 320px;
        flex: 0 0 auto;
        border-radius: 0 1.25rem 1.25rem 0;
        transform: translateX(-105%);
        transition: transform 0.25s ease;
    }

    .luna-session-sidebar.luna-sidebar-open[b-wi0wxd7bcu] {
        transform: translateX(0);
        box-shadow: 0 10px 60px -5px rgba(0, 0, 0, 0.35);
    }

    /* Lớp phủ tối phía sau drawer */
    .luna-sidebar-overlay[b-wi0wxd7bcu] {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1040;
        background: rgba(0, 0, 0, 0.45);
        backdrop-filter: blur(2px);
    }

    /* Khung chat chiếm toàn bộ chiều ngang trên mobile */
    .luna-chat-wrapper[b-wi0wxd7bcu] {
        margin: -0.5rem 0;
        /* 100dvh: chiều cao thật của viewport mobile (trừ thanh URL động) — khung chat cao tối đa */
        height: calc(100dvh - 3.5rem - 1rem);
        border-radius: 0.75rem;
    }

    /* Hiện nút tạo phiên trên header mobile */
    .luna-mobile-newsession-btn[b-wi0wxd7bcu] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0.25rem 0.5rem;
    }

    /* Dọn header: giảm padding, thu gọn phần tử phụ */
    .luna-chat-header[b-wi0wxd7bcu] {
        padding-left: 0.85rem !important;
        padding-right: 0.85rem !important;
    }

    .luna-header-title[b-wi0wxd7bcu] {
        font-size: 1rem;
    }

    /* Ẩn các nhãn/badge phụ gây rối trên màn hình hẹp, giữ icon cốt lõi */
    .luna-shared-badge[b-wi0wxd7bcu],
    .luna-secure-badge[b-wi0wxd7bcu],
    .luna-invite-label[b-wi0wxd7bcu] {
        display: none;
    }

    /* Toggle ngôn ngữ thu gọn */
    .luna-lang-toggle .btn[b-wi0wxd7bcu] {
        padding: 0.15rem 0.4rem;
        font-size: 0.7rem;
    }

    .luna-chat-box[b-wi0wxd7bcu] {
        padding: 1rem;
    }

    /* Bong bóng tin nhắn rộng hơn để tận dụng màn hình hẹp */
    .max-w-75[b-wi0wxd7bcu] {
        max-width: 90% !important;
    }

    /* Vùng nhập liệu: to, dễ chạm. font-size >=16px để iOS không tự zoom khi focus */
    .luna-chat-footer[b-wi0wxd7bcu] {
        max-height: none;
        padding: 0.5rem 0.6rem 0.65rem !important;
    }

    .luna-chat-footer .form-control[b-wi0wxd7bcu] {
        font-size: 16px;
        min-height: 2.9rem;
    }

    .luna-chat-footer .input-group .btn[b-wi0wxd7bcu] {
        min-height: 2.9rem;
        min-width: 2.9rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Nút "Lưu Chat & Plan" gọn lại nhường chỗ cho ô nhập */
    .luna-chat-footer .btn-outline-success[b-wi0wxd7bcu] {
        font-size: 0.78rem;
        padding: 0.25rem 0.5rem;
    }

    /* Ghi chú bảo mật chiếm chỗ quý giá trên mobile — ẩn */
    .luna-security-note[b-wi0wxd7bcu] {
        display: none;
    }
}

/* /Components/Pages/OcrDemo.razor.rz.scp.css */
[b-e25p2ax2z7] .ocr-rendered {
    font-size: 0.9rem;
    line-height: 1.55;
}

[b-e25p2ax2z7] .ocr-rendered table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.5rem 0 1rem;
}

[b-e25p2ax2z7] .ocr-rendered th,
[b-e25p2ax2z7] .ocr-rendered td {
    border: 1px solid #dee2e6;
    padding: 0.3rem 0.5rem;
}

[b-e25p2ax2z7] .ocr-rendered th {
    background: #f8f9fa;
}

[b-e25p2ax2z7] .ocr-rendered h1 { font-size: 1.35rem; margin-top: 0.75rem; }
[b-e25p2ax2z7] .ocr-rendered h2 { font-size: 1.2rem; margin-top: 0.75rem; }
[b-e25p2ax2z7] .ocr-rendered h3 { font-size: 1.05rem; margin-top: 0.5rem; }

[b-e25p2ax2z7] .ocr-rendered img {
    max-width: 100%;
}

[b-e25p2ax2z7] .ocr-rendered pre {
    background: #f8f9fa;
    padding: 0.5rem;
    border-radius: 4px;
    white-space: pre-wrap;
}
