@import '_content/BlazorInputTags/BlazorInputTags.z0l08yt8g8.bundle.scp.css';
@import '_content/KNSoft.Accounting.Blazor/KNSoft.Accounting.Blazor.ik40wnaljl.bundle.scp.css';
@import '_content/KNSoft.Core.Blazor/KNSoft.Core.Blazor.nsjr7vtedo.bundle.scp.css';
@import '_content/KNSoft.Inventories.Blazor/KNSoft.Inventories.Blazor.qo6oml5r27.bundle.scp.css';
@import '_content/KNSoft.Purchase.Blazor/KNSoft.Purchase.Blazor.pkkxipzwl4.bundle.scp.css';
@import '_content/KNSoft.Sales.Blazor/KNSoft.Sales.Blazor.vf3nls74tg.bundle.scp.css';
@import '_content/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.p33ll9g8os.bundle.scp.css';

/* /Components/Pages/BusinessFlowMap.razor.rz.scp.css */
/*
    Sơ đồ nghiệp vụ — dùng lại design token của launcher trang chủ (--knsoft-space-*, --knsoft-radius-*).

    🔴 Thẻ node do component FlowNodeCard render nên KHÔNG mang scope-id của trang này ⇒ mọi rule
    nhắm vào .flow-node* bắt buộc đi qua ::deep. Bỏ ::deep = build xanh, giao diện vỡ.
*/

/* ── Layout ─────────────────────────────────────────────────────────────── */

.flow-container[b-gomf6vywnt] {
    padding-top: var(--knsoft-space-3);
    padding-bottom: var(--knsoft-space-8);
}

.flow-page[b-gomf6vywnt] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-5);
}

.flow-page[b-gomf6vywnt]  .flow-muted {
    color: var(--mud-palette-text-secondary);
}

/* ── Lời dẫn (tiêu đề trang do <PageHeader> lo, đây chỉ là một câu dẫn) ──── */

.flow-intro[b-gomf6vywnt] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-3);
    padding: var(--knsoft-space-3) var(--knsoft-space-4);
    border: 1px solid rgba(var(--mud-palette-primary-rgb), .16);
    border-radius: var(--knsoft-radius-lg);
    background: rgba(var(--mud-palette-primary-rgb), .055);
}

.flow-intro-icon[b-gomf6vywnt] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    border-radius: var(--knsoft-radius-md);
    color: var(--mud-palette-primary);
    background: rgba(var(--mud-palette-primary-rgb), .12);
}

.flow-page[b-gomf6vywnt]  .flow-home-btn {
    flex: 0 0 auto;
    border-radius: var(--knsoft-radius-md);
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
}

/* ── Chọn luồng ─────────────────────────────────────────────────────────── */

.flow-picker[b-gomf6vywnt] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--knsoft-space-2);
}

.flow-page[b-gomf6vywnt]  .flow-picker-btn {
    min-height: 36px;
    padding-inline: var(--knsoft-space-3);
    border-radius: 999px;
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
}

/* ── Khung sơ đồ ────────────────────────────────────────────────────────── */

.flow-body[b-gomf6vywnt] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-4);
    padding: var(--knsoft-space-5);
    border: 1px solid var(--mud-palette-lines-default);
    border-top: 3px solid var(--flow-accent);
    border-radius: var(--knsoft-radius-lg);
    background: var(--mud-palette-surface);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
}

.flow-body-heading[b-gomf6vywnt] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--knsoft-space-3);
}

.flow-page[b-gomf6vywnt]  .flow-body-title {
    font-weight: 700 !important;
}

.flow-body-tag[b-gomf6vywnt] {
    flex: 0 0 auto;
    padding: var(--knsoft-space-1) var(--knsoft-space-3);
    border-radius: 999px;
    color: var(--mud-palette-text-secondary);
    background: var(--mud-palette-action-default-hover);
    font-size: var(--knsoft-font-size-xs);
    font-weight: 600;
}

/* Cuộn ngang bị nhốt trong khung này — thân trang không bao giờ cuộn ngang theo. */
.flow-canvas-scroll[b-gomf6vywnt] {
    overflow-x: auto;
    padding-bottom: var(--knsoft-space-2);
}

.flow-canvas[b-gomf6vywnt] {
    display: flex;
    align-items: stretch;
    gap: var(--knsoft-space-2);
    min-width: min-content;
}

/* ── Cột (một bước) ─────────────────────────────────────────────────────── */

.flow-stage[b-gomf6vywnt] {
    display: flex;
    flex: 0 0 216px;
    flex-direction: column;
    gap: var(--knsoft-space-2);
    width: 216px;
}

.flow-stage-title[b-gomf6vywnt] {
    padding-bottom: var(--knsoft-space-1);
    border-bottom: 2px solid rgba(var(--flow-accent-rgb), .28);
    color: var(--mud-palette-text-primary);
    font-size: var(--knsoft-font-size-sm);
    font-weight: 700;
    line-height: 1.35;
}

/* ── Mũi tên & mối nối giữa hai cột ─────────────────────────────────────── */

.flow-link[b-gomf6vywnt] {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    gap: var(--knsoft-space-2);
    padding-top: 26px;
    width: 40px;
}

.flow-link--seam[b-gomf6vywnt] {
    width: 172px;
}

.flow-page[b-gomf6vywnt]  .flow-link-arrow {
    color: var(--mud-palette-text-secondary);
}

.flow-page[b-gomf6vywnt]  .flow-link--seam .flow-link-arrow {
    color: var(--mud-palette-warning);
}

.flow-seam[b-gomf6vywnt] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-1);
    padding: var(--knsoft-space-2);
    border: 1px solid rgba(var(--mud-palette-warning-rgb), .4);
    border-radius: var(--knsoft-radius-md);
    background: rgba(var(--mud-palette-warning-rgb), .1);
    color: var(--mud-palette-warning-darken);
    font-size: var(--knsoft-font-size-xs);
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease;
}

.flow-seam:hover[b-gomf6vywnt] {
    border-color: var(--mud-palette-warning);
    background: rgba(var(--mud-palette-warning-rgb), .18);
}

.flow-seam-label[b-gomf6vywnt] {
    flex: 1 1 auto;
}

.flow-seam-count[b-gomf6vywnt] {
    flex: 0 0 auto;
    min-width: 26px;
    padding: 1px var(--knsoft-space-1);
    border-radius: 999px;
    background: var(--mud-palette-action-default-hover);
    color: var(--mud-palette-text-secondary);
    font-size: var(--knsoft-font-size-xs);
    font-weight: 700;
    text-align: center;
}

.flow-seam-count--hot[b-gomf6vywnt] {
    background: var(--mud-palette-warning);
    color: var(--mud-palette-warning-text);
}

.flow-page[b-gomf6vywnt]  .flow-seam-spinner {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

/* ── Thẻ node (render bởi FlowNodeCard ⇒ bắt buộc ::deep) ────────────────── */

.flow-page[b-gomf6vywnt]  .flow-node-wrap {
    display: flex;
}

.flow-page[b-gomf6vywnt]  .flow-node {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    padding: var(--knsoft-space-2) var(--knsoft-space-3);
    border: 1px solid var(--mud-palette-lines-default);
    border-left: 3px solid var(--flow-accent);
    border-radius: var(--knsoft-radius-md);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.flow-page[b-gomf6vywnt]  a.flow-node:hover {
    border-color: rgba(var(--flow-accent-rgb), .5);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .09);
    transform: translateY(-2px);
}

.flow-page[b-gomf6vywnt]  a.flow-node:focus-visible {
    outline: 3px solid rgba(var(--flow-accent-rgb), .28);
    outline-offset: 2px;
}

/* Thiếu quyền: vẫn thấy bước để không đứt mạch quy trình, nhưng rõ ràng là không bấm được. */
.flow-page[b-gomf6vywnt]  .flow-node--locked {
    border-style: dashed;
    background: var(--mud-palette-background-grey);
    color: var(--mud-palette-text-disabled);
    cursor: not-allowed;
}

.flow-page[b-gomf6vywnt]  .flow-node-head {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-1);
}

.flow-page[b-gomf6vywnt]  .flow-node-icon {
    flex: 0 0 auto;
    color: var(--flow-accent);
}

.flow-page[b-gomf6vywnt]  .flow-node--locked .flow-node-icon,
.flow-page[b-gomf6vywnt]  .flow-node-lock {
    color: var(--mud-palette-text-disabled);
}

.flow-page[b-gomf6vywnt]  .flow-node-lock {
    flex: 0 0 auto;
    margin-left: auto;
}

.flow-page[b-gomf6vywnt]  .flow-node-title {
    font-size: var(--knsoft-font-size-sm);
    font-weight: 600;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.flow-page[b-gomf6vywnt]  .flow-node-owner {
    align-self: flex-start;
    padding: 0 var(--knsoft-space-1);
    border-radius: var(--knsoft-radius-sm);
    background: rgba(var(--flow-accent-rgb), .12);
    color: var(--flow-accent);
    font-size: var(--knsoft-font-size-xs);
    font-weight: 600;
}

.flow-page[b-gomf6vywnt]  .flow-node--locked .flow-node-owner {
    background: var(--mud-palette-action-default-hover);
    color: var(--mud-palette-text-disabled);
}

.flow-page[b-gomf6vywnt]  .flow-node-note {
    color: var(--mud-palette-text-secondary);
    font-size: var(--knsoft-font-size-xs);
    line-height: 1.35;
}

/* ── Nhánh phụ ──────────────────────────────────────────────────────────── */

.flow-side[b-gomf6vywnt] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-2);
    padding-top: var(--knsoft-space-3);
    border-top: 1px dashed var(--mud-palette-lines-default);
}

.flow-side-title[b-gomf6vywnt] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-2);
    color: var(--mud-palette-text-secondary);
    font-size: var(--knsoft-font-size-sm);
    font-weight: 700;
}

.flow-side-list[b-gomf6vywnt] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(216px, 1fr));
    gap: var(--knsoft-space-2);
}

/* ── Chú giải ───────────────────────────────────────────────────────────── */

.flow-legend[b-gomf6vywnt] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--knsoft-space-2) var(--knsoft-space-5);
    color: var(--mud-palette-text-secondary);
    font-size: var(--knsoft-font-size-xs);
}

.flow-legend-item[b-gomf6vywnt] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-1);
}

.flow-legend-swatch[b-gomf6vywnt] {
    width: 12px;
    height: 12px;
    border-radius: var(--knsoft-radius-sm);
    background: var(--mud-palette-primary);
}

/* ── Màn hẹp: sơ đồ đổ dọc, mũi tên quay xuống ──────────────────────────── */

@media (max-width: 900px) {
    .flow-canvas[b-gomf6vywnt] {
        flex-direction: column;
        min-width: 0;
    }

    .flow-stage[b-gomf6vywnt],
    .flow-link[b-gomf6vywnt],
    .flow-link--seam[b-gomf6vywnt] {
        flex-basis: auto;
        width: 100%;
    }

    .flow-link[b-gomf6vywnt] {
        flex-direction: row;
        align-items: center;
        padding-top: 0;
    }

    .flow-page[b-gomf6vywnt]  .flow-link-arrow {
        transform: rotate(90deg);
    }
}

@media (max-width: 600px) {
    .flow-container[b-gomf6vywnt] {
        padding-top: var(--knsoft-space-2);
        padding-bottom: var(--knsoft-space-5);
    }

    .flow-intro[b-gomf6vywnt] {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: var(--knsoft-space-3);
    }

    .flow-body[b-gomf6vywnt] {
        padding: var(--knsoft-space-4);
    }

    .flow-body-tag[b-gomf6vywnt] {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .flow-page[b-gomf6vywnt]  .flow-node,
    .flow-seam[b-gomf6vywnt] {
        transition: none;
    }

    .flow-page[b-gomf6vywnt]  a.flow-node:hover {
        transform: none;
    }
}
/* /Components/Pages/Index.razor.rz.scp.css */
/* ── Layout ─────────────────────────────────────────────────────────────── */

.launcher-container[b-7on18n4x8t] {
    padding-top: var(--knsoft-space-3);
    padding-bottom: var(--knsoft-space-8);
}

.launcher-page[b-7on18n4x8t] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-6);
}

.launcher-welcome[b-7on18n4x8t] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-4);
    padding: var(--knsoft-space-5) var(--knsoft-space-6);
    border: 1px solid rgba(var(--mud-palette-primary-rgb), .16);
    border-radius: var(--knsoft-radius-xl);
    background: rgba(var(--mud-palette-primary-rgb), .055);
}

.launcher-welcome-icon[b-7on18n4x8t] {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    border-radius: var(--knsoft-radius-lg);
    color: var(--mud-palette-primary);
    background: rgba(var(--mud-palette-primary-rgb), .12);
}

.launcher-greeting[b-7on18n4x8t] {
    min-width: 0;
}

.launcher-greeting-title[b-7on18n4x8t] {
    margin-bottom: var(--knsoft-space-1);
    font-weight: 700 !important;
    overflow-wrap: anywhere;
}

.launcher-page[b-7on18n4x8t]  .launcher-muted-text {
    color: var(--mud-palette-text-secondary);
}

/* ── Shared section heading ─────────────────────────────────────────────── */

.launcher-section-heading[b-7on18n4x8t],
.launcher-modules-heading[b-7on18n4x8t] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-3);
}

.launcher-section-title[b-7on18n4x8t] {
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.launcher-section-icon[b-7on18n4x8t] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    border-radius: var(--knsoft-radius-md);
}

.launcher-section-icon--quick[b-7on18n4x8t] {
    color: var(--mud-palette-warning);
    background: rgba(var(--mud-palette-warning-rgb), .14);
}

/* ── Quick Actions ──────────────────────────────────────────────────────── */

.launcher-page[b-7on18n4x8t]  .launcher-quick-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--knsoft-space-4);
    padding: var(--knsoft-space-4) var(--knsoft-space-5);
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--knsoft-radius-lg);
    background: var(--mud-palette-surface);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
}

.launcher-quick-actions-list[b-7on18n4x8t] {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: var(--knsoft-space-2);
}

.launcher-page[b-7on18n4x8t]  .launcher-quick-action-btn {
    min-height: 36px;
    padding-inline: var(--knsoft-space-3);
    border-color: rgba(var(--mud-palette-primary-rgb), .28);
    border-radius: var(--knsoft-radius-md);
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
}

.launcher-page[b-7on18n4x8t]  .launcher-quick-action-btn:hover {
    border-color: rgba(var(--mud-palette-primary-rgb), .48);
    background: rgba(var(--mud-palette-primary-rgb), .07);
}

/* ── Modules ────────────────────────────────────────────────────────────── */

.launcher-modules[b-7on18n4x8t] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-4);
}

/* Tiêu đề đẩy sang trái, nút "Sơ đồ nghiệp vụ" + đếm phân hệ bám phải. */
.launcher-modules-heading > div:first-child[b-7on18n4x8t] {
    margin-right: auto;
}

.launcher-page[b-7on18n4x8t]  .launcher-flow-btn {
    flex: 0 0 auto;
    min-height: 36px;
    padding-inline: var(--knsoft-space-3);
    border-color: rgba(var(--mud-palette-primary-rgb), .28);
    border-radius: var(--knsoft-radius-md);
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
}

.launcher-page[b-7on18n4x8t]  .launcher-flow-btn:hover {
    border-color: rgba(var(--mud-palette-primary-rgb), .48);
    background: rgba(var(--mud-palette-primary-rgb), .07);
}

.launcher-module-count[b-7on18n4x8t] {
    flex: 0 0 auto;
    padding: var(--knsoft-space-1) var(--knsoft-space-3);
    border-radius: 999px;
    color: var(--mud-palette-text-secondary);
    background: var(--mud-palette-action-default-hover);
    font-size: var(--knsoft-font-size-xs);
    font-weight: 600;
}

.launcher-page[b-7on18n4x8t]  .launcher-module-item {
    display: flex;
}

/* ── Module Card ────────────────────────────────────────────────────────── */

.launcher-page[b-7on18n4x8t]  .launcher-card {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--mud-palette-lines-default);
    border-top: 3px solid var(--launcher-accent);
    border-radius: var(--knsoft-radius-lg);
    background: var(--mud-palette-surface);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.launcher-page[b-7on18n4x8t]  .launcher-card:hover {
    border-color: rgba(var(--launcher-accent-rgb), .34);
    border-top-color: var(--launcher-accent);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .09);
    transform: translateY(-2px);
}

.launcher-card-header[b-7on18n4x8t] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-3);
    padding: var(--knsoft-space-4) var(--knsoft-space-4) var(--knsoft-space-3);
}

.launcher-card-icon[b-7on18n4x8t] {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    border-radius: var(--knsoft-radius-lg);
    color: var(--launcher-accent);
    background: rgba(var(--launcher-accent-rgb), .11);
}

.launcher-card-heading[b-7on18n4x8t] {
    min-width: 0;
}

.launcher-card-title[b-7on18n4x8t] {
    color: var(--mud-palette-text-primary);
    font-size: var(--knsoft-font-size-md);
    font-weight: 700;
    line-height: 1.35;
}

.launcher-card-count[b-7on18n4x8t] {
    margin-top: 2px;
    color: var(--mud-palette-text-secondary);
    font-size: var(--knsoft-font-size-xs);
}

.launcher-page[b-7on18n4x8t]  .launcher-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--knsoft-space-1);
    padding: var(--knsoft-space-1) var(--knsoft-space-3) var(--knsoft-space-3);
}

/* ── Function buttons ───────────────────────────────────────────────────── */

.launcher-page[b-7on18n4x8t]  .launcher-fn-btn {
    justify-content: flex-start;
    min-height: 38px;
    padding: var(--knsoft-space-2) var(--knsoft-space-3);
    border-radius: var(--knsoft-radius-md);
    color: var(--mud-palette-text-primary);
    text-align: left;
    text-transform: none;
    font-size: var(--knsoft-font-size-sm);
    font-weight: 400;
    letter-spacing: 0;
}

.launcher-page[b-7on18n4x8t]  .launcher-fn-btn .mud-button-icon-start {
    color: var(--launcher-accent);
}

.launcher-page[b-7on18n4x8t]  .launcher-fn-btn:hover {
    background: rgba(var(--launcher-accent-rgb), .075);
}

.launcher-page[b-7on18n4x8t]  .launcher-card-actions {
    min-height: 48px;
    padding: var(--knsoft-space-2) var(--knsoft-space-3);
    border-top: 1px solid var(--mud-palette-lines-default);
}

.launcher-page[b-7on18n4x8t]  .launcher-open-btn {
    border-radius: var(--knsoft-radius-md);
    text-transform: none;
    font-weight: 600;
    letter-spacing: 0;
}

.launcher-page[b-7on18n4x8t]  .launcher-quick-action-btn:focus-visible,
.launcher-page[b-7on18n4x8t]  .launcher-fn-btn:focus-visible,
.launcher-page[b-7on18n4x8t]  .launcher-open-btn:focus-visible {
    outline: 3px solid rgba(var(--mud-palette-primary-rgb), .2);
    outline-offset: 2px;
}

@media (max-width: 960px) {
    .launcher-page[b-7on18n4x8t]  .launcher-quick-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .launcher-quick-actions-list[b-7on18n4x8t] {
        justify-content: flex-start;
    }
}

@media (max-width: 600px) {
    .launcher-container[b-7on18n4x8t] {
        padding-top: var(--knsoft-space-2);
        padding-bottom: var(--knsoft-space-5);
    }

    .launcher-page[b-7on18n4x8t] {
        gap: var(--knsoft-space-4);
    }

    .launcher-welcome[b-7on18n4x8t] {
        align-items: flex-start;
        padding: var(--knsoft-space-4);
        border-radius: var(--knsoft-radius-lg);
    }

    .launcher-welcome-icon[b-7on18n4x8t] {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .launcher-page[b-7on18n4x8t]  .launcher-quick-actions {
        padding: var(--knsoft-space-4);
    }

    .launcher-quick-actions-list[b-7on18n4x8t],
    .launcher-page[b-7on18n4x8t]  .launcher-quick-action-btn {
        width: 100%;
    }

    .launcher-page[b-7on18n4x8t]  .launcher-quick-action-btn {
        justify-content: flex-start;
    }

    .launcher-module-count[b-7on18n4x8t] {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .launcher-page[b-7on18n4x8t]  .launcher-card {
        transition: none;
    }

    .launcher-page[b-7on18n4x8t]  .launcher-card:hover {
        transform: none;
    }
}
/* /Components/Pages/Reporting/Index.razor.rz.scp.css */
/* ── Layout ─────────────────────────────────────────────────────────────── */

.launcher-container[b-m70wjst2h8] {
    padding-top: var(--knsoft-space-3);
    padding-bottom: var(--knsoft-space-8);
}

.launcher-page[b-m70wjst2h8] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-6);
}

.launcher-welcome[b-m70wjst2h8] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-4);
    padding: var(--knsoft-space-5) var(--knsoft-space-6);
    border: 1px solid rgba(var(--mud-palette-primary-rgb), .16);
    border-radius: var(--knsoft-radius-xl);
    background: rgba(var(--mud-palette-primary-rgb), .055);
}

.launcher-welcome-icon[b-m70wjst2h8] {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    border-radius: var(--knsoft-radius-lg);
    color: var(--mud-palette-primary);
    background: rgba(var(--mud-palette-primary-rgb), .12);
}

.launcher-greeting[b-m70wjst2h8] {
    min-width: 0;
}

.launcher-greeting-title[b-m70wjst2h8] {
    margin-bottom: var(--knsoft-space-1);
    font-weight: 700 !important;
    overflow-wrap: anywhere;
}

.launcher-page[b-m70wjst2h8]  .launcher-muted-text {
    color: var(--mud-palette-text-secondary);
}

/* ── Shared section heading ─────────────────────────────────────────────── */

.launcher-section-heading[b-m70wjst2h8],
.launcher-modules-heading[b-m70wjst2h8] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-3);
}

.launcher-section-title[b-m70wjst2h8] {
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.launcher-section-icon[b-m70wjst2h8] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    border-radius: var(--knsoft-radius-md);
}

.launcher-section-icon--quick[b-m70wjst2h8] {
    color: var(--mud-palette-warning);
    background: rgba(var(--mud-palette-warning-rgb), .14);
}

/* ── Modules ────────────────────────────────────────────────────────────── */

.launcher-modules[b-m70wjst2h8] {
    display: flex;
    flex-direction: column;
    gap: var(--knsoft-space-4);
}

.launcher-modules-heading[b-m70wjst2h8] {
    justify-content: space-between;
}

.launcher-module-count[b-m70wjst2h8] {
    flex: 0 0 auto;
    padding: var(--knsoft-space-1) var(--knsoft-space-3);
    border-radius: 999px;
    color: var(--mud-palette-text-secondary);
    background: var(--mud-palette-action-default-hover);
    font-size: var(--knsoft-font-size-xs);
    font-weight: 600;
}

.launcher-page[b-m70wjst2h8]  .launcher-module-item {
    display: flex;
}

/* ── Module Card ────────────────────────────────────────────────────────── */

.launcher-page[b-m70wjst2h8]  .launcher-card {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--mud-palette-lines-default);
    border-top: 3px solid var(--launcher-accent);
    border-radius: var(--knsoft-radius-lg);
    background: var(--mud-palette-surface);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.launcher-page[b-m70wjst2h8]  .launcher-card:hover {
    border-color: rgba(var(--launcher-accent-rgb), .34);
    border-top-color: var(--launcher-accent);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .09);
    transform: translateY(-2px);
}

.launcher-card-header[b-m70wjst2h8] {
    display: flex;
    align-items: center;
    gap: var(--knsoft-space-3);
    padding: var(--knsoft-space-4) var(--knsoft-space-4) var(--knsoft-space-3);
}

.launcher-card-icon[b-m70wjst2h8] {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    border-radius: var(--knsoft-radius-lg);
    color: var(--launcher-accent);
    background: rgba(var(--launcher-accent-rgb), .11);
}

.launcher-card-heading[b-m70wjst2h8] {
    min-width: 0;
}

.launcher-card-title[b-m70wjst2h8] {
    color: var(--mud-palette-text-primary);
    font-size: var(--knsoft-font-size-md);
    font-weight: 700;
    line-height: 1.35;
}

.launcher-card-count[b-m70wjst2h8] {
    margin-top: 2px;
    color: var(--mud-palette-text-secondary);
    font-size: var(--knsoft-font-size-xs);
}

.launcher-page[b-m70wjst2h8]  .launcher-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--knsoft-space-1);
    padding: var(--knsoft-space-1) var(--knsoft-space-3) var(--knsoft-space-3);
}

/* ── Function buttons ───────────────────────────────────────────────────── */

.launcher-page[b-m70wjst2h8]  .launcher-fn-btn {
    justify-content: flex-start;
    min-height: 38px;
    padding: var(--knsoft-space-2) var(--knsoft-space-3);
    border-radius: var(--knsoft-radius-md);
    color: var(--mud-palette-text-primary);
    text-align: left;
    text-transform: none;
    font-size: var(--knsoft-font-size-sm);
    font-weight: 400;
    letter-spacing: 0;
}

.launcher-page[b-m70wjst2h8]  .launcher-fn-btn .mud-button-icon-start {
    color: var(--launcher-accent);
}

.launcher-page[b-m70wjst2h8]  .launcher-fn-btn:hover {
    background: rgba(var(--launcher-accent-rgb), .075);
}

.launcher-page[b-m70wjst2h8]  .launcher-fn-btn:focus-visible {
    outline: 3px solid rgba(var(--mud-palette-primary-rgb), .2);
    outline-offset: 2px;
}

@media (max-width: 600px) {
    .launcher-container[b-m70wjst2h8] {
        padding-top: var(--knsoft-space-2);
        padding-bottom: var(--knsoft-space-5);
    }

    .launcher-page[b-m70wjst2h8] {
        gap: var(--knsoft-space-4);
    }

    .launcher-welcome[b-m70wjst2h8] {
        align-items: flex-start;
        padding: var(--knsoft-space-4);
        border-radius: var(--knsoft-radius-lg);
    }

    .launcher-welcome-icon[b-m70wjst2h8] {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .launcher-module-count[b-m70wjst2h8] {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .launcher-page[b-m70wjst2h8]  .launcher-card {
        transition: none;
    }

    .launcher-page[b-m70wjst2h8]  .launcher-card:hover {
        transform: none;
    }
}

/* ── Riêng trang Trung tâm báo cáo ──────────────────────────────────────── */

/* Mỗi nút báo cáo được bọc trong MudTooltip để hiện mô tả. Wrapper của MudTooltip mặc định là
   inline-block ⇒ nuốt mất FullWidth của nút; ép nó chiếm trọn chiều ngang thẻ. */
.launcher-page[b-m70wjst2h8]  .launcher-card-content .mud-tooltip-root {
    display: block;
    width: 100%;
}
