/* NEXUS mobile experience layer.
   Loaded after the desktop design system so phone/tablet behavior can be
   improved without changing the desktop layout contracts. */

:root {
    --nx-mobile-top: 112px;
    --nx-mobile-bottom: calc(82px + env(safe-area-inset-bottom, 0px));
}

html {
    overflow-x: hidden;
}

body {
    max-width: 100%;
    overflow-x: hidden;
}

img,
video,
canvas,
svg {
    max-width: 100%;
}

.table-responsive,
.adm-table-wrap,
.nxs-table-wrap,
.overflow-x-auto {
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 920px) {
    body {
        background:
            radial-gradient(circle at top left, rgba(59, 130, 246, .10), transparent 32rem),
            linear-gradient(180deg, #f8fbff 0%, #ffffff 44%, #f7f9fc 100%) !important;
    }

    .container,
    .container-fluid {
        max-width: 100% !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    /* Authenticated user shell */
    .brand-bar {
        height: auto !important;
        min-height: 64px;
        padding: 10px 12px !important;
        align-items: center !important;
        gap: 10px !important;
        flex-wrap: wrap;
        background: rgba(255, 255, 255, .90) !important;
        border-bottom-color: rgba(226, 232, 240, .82) !important;
        backdrop-filter: blur(18px) saturate(1.25);
        -webkit-backdrop-filter: blur(18px) saturate(1.25);
        box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
    }

    .brand-left {
        min-width: 0;
        flex: 0 0 auto;
    }

    .brand-ico {
        width: 38px !important;
        height: 38px !important;
    }

    .brand-name {
        font-size: 18px !important;
        letter-spacing: 0 !important;
    }

    .brand-bar > form {
        order: 3;
        flex: 1 0 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    .brand-bar > form input[type="text"] {
        min-height: 42px;
        border-radius: 14px !important;
        background: #f8fafc !important;
        font-size: 14px !important;
    }

    .brand-right {
        margin-left: auto;
        max-width: calc(100% - 54px);
        gap: 6px !important;
    }

    .brand-right button,
    .ah-icon-btn,
    .ah-toggle,
    .section-btn {
        min-width: 38px !important;
        min-height: 38px !important;
    }

    .brand-right button[title] > span:not(.brand-avatar) {
        display: none !important;
    }

    .below-brand {
        display: block !important;
        min-height: 100vh;
        padding-top: var(--nx-mobile-top) !important;
    }

    .main-area,
    .main-area.is-collapsed {
        width: 100% !important;
        margin-left: 0 !important;
        min-width: 0;
    }

    .section-bar {
        top: var(--nx-mobile-top) !important;
        padding: 10px 14px !important;
        gap: 10px;
        background: rgba(255, 255, 255, .92) !important;
        border-bottom-color: rgba(226, 232, 240, .82) !important;
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }

    .section-bar > div {
        min-width: 0;
    }

    .section-title {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 15px !important;
    }

    .page-content {
        padding: 16px 14px calc(var(--nx-mobile-bottom) + 18px) !important;
        min-width: 0;
    }

    .sidebar,
    .sidebar.is-collapsed {
        position: fixed !important;
        inset: auto 10px calc(8px + env(safe-area-inset-bottom, 0px)) 10px !important;
        width: auto !important;
        height: 72px !important;
        max-height: 72px !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid rgba(226, 232, 240, .88) !important;
        border-radius: 24px !important;
        background: rgba(255, 255, 255, .94) !important;
        box-shadow: 0 22px 70px rgba(15, 23, 42, .18), 0 2px 8px rgba(15, 23, 42, .06);
        backdrop-filter: blur(22px) saturate(1.35);
        -webkit-backdrop-filter: blur(22px) saturate(1.35);
        z-index: 1050 !important;
    }

    .sidebar-section {
        height: 100%;
        display: flex;
        align-items: center;
        gap: 4px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 7px 8px !important;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .sidebar-section::-webkit-scrollbar {
        display: none;
    }

    .sidebar-label,
    .sidebar-footer {
        display: none !important;
    }

    .sidebar-item,
    .sidebar.is-collapsed .sidebar-item {
        flex: 0 0 68px;
        width: 68px;
        min-height: 58px;
        margin: 0 !important;
        padding: 7px 6px !important;
        border-radius: 18px !important;
        display: flex !important;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 4px !important;
        box-shadow: none !important;
        font-size: 10px !important;
        line-height: 1.05;
        text-align: center;
        white-space: normal;
    }

    .sidebar-item.active {
        background: linear-gradient(180deg, rgba(59, 130, 246, .16), rgba(20, 184, 166, .10)) !important;
        box-shadow: inset 0 0 0 1px rgba(59, 130, 246, .20) !important;
    }

    .sidebar-item.active::before,
    .sidebar-item.active::after {
        display: none !important;
    }

    .sidebar-item svg {
        width: 20px !important;
        height: 20px !important;
    }

    .sidebar-item span:not(.badge):not(.sidebar-desktop-badge),
    .sidebar.is-collapsed .sidebar-item span:not(.badge):not(.sidebar-desktop-badge) {
        display: block !important;
        max-width: 58px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 10px !important;
    }

    .sidebar-desktop-badge,
    .nxf-unread-badge {
        position: absolute !important;
        top: 4px;
        right: 7px;
        margin: 0 !important;
        transform: scale(.88);
        transform-origin: top right;
    }

    #nxs-notif-dropdown,
    #avatar-menu,
    #adm-um,
    .dropdown-menu {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: calc(var(--nx-mobile-top) + 8px) !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100vh - var(--nx-mobile-top) - var(--nx-mobile-bottom) - 28px);
        overflow-y: auto !important;
        border-radius: 20px !important;
        z-index: 1200 !important;
    }

    /* Admin shell */
    .ah {
        height: auto !important;
        min-height: 64px;
        padding: 8px 10px !important;
        gap: 8px;
        background: rgba(255, 255, 255, .92) !important;
        backdrop-filter: blur(18px) saturate(1.25);
        -webkit-backdrop-filter: blur(18px) saturate(1.25);
    }

    .ah-brand {
        width: auto !important;
        min-width: 44px;
        height: 46px !important;
        padding: 0 8px !important;
        border-right: 0 !important;
        gap: 7px;
    }

    .ah-logo {
        width: 34px !important;
        height: 34px !important;
    }

    .ah-brand-text {
        display: none !important;
    }

    .ah-center {
        min-width: 0;
        flex: 1 1 auto;
        padding: 0 !important;
        gap: 8px !important;
    }

    .ah-breadcrumb {
        display: none !important;
    }

    .ah-title {
        max-width: 42vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 15px !important;
    }

    .ah-right {
        min-width: 0;
        gap: 5px !important;
        padding: 0 !important;
    }

    .ah-date-chip {
        display: none !important;
    }

    .ah-ops {
        display: none !important;
    }

    .ah-search {
        display: none !important;
    }

    .ah-user {
        min-width: 38px !important;
        min-height: 38px !important;
        padding: 4px !important;
        border-radius: 999px !important;
    }

    .ah-user > div:not(.ah-avatar),
    .ah-user > svg {
        display: none !important;
    }

    .asb,
    .asb.col {
        position: fixed !important;
        inset: auto 10px calc(8px + env(safe-area-inset-bottom, 0px)) 10px !important;
        top: auto !important;
        bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        height: 74px !important;
        max-height: 74px !important;
        overflow: hidden !important;
        border: 1px solid rgba(226, 232, 240, .88) !important;
        border-radius: 24px !important;
        background: rgba(255, 255, 255, .94) !important;
        box-shadow: 0 22px 70px rgba(15, 23, 42, .18), 0 2px 8px rgba(15, 23, 42, .06);
        backdrop-filter: blur(22px) saturate(1.35);
        -webkit-backdrop-filter: blur(22px) saturate(1.35);
        z-index: 1050 !important;
    }

    .asb-nav {
        height: 100%;
        display: flex !important;
        align-items: center;
        gap: 4px;
        padding: 7px 8px !important;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .asb-nav::-webkit-scrollbar {
        display: none;
    }

    .asb-section {
        display: flex !important;
        align-items: center;
        gap: 4px;
        margin: 0 !important;
    }

    .asb-label,
    .asb-div,
    .asb-foot {
        display: none !important;
    }

    .asb-item,
    .asb.col .asb-item {
        flex: 0 0 68px;
        width: 68px !important;
        min-height: 60px !important;
        padding: 7px 6px !important;
        margin: 0 !important;
        border-radius: 18px !important;
        flex-direction: column;
        justify-content: center !important;
        align-items: center;
        gap: 4px !important;
        white-space: normal !important;
        text-align: center;
    }

    .asb-item.on::before {
        display: none !important;
    }

    .asb-item.on {
        background: linear-gradient(180deg, rgba(59, 130, 246, .16), rgba(20, 184, 166, .10)) !important;
        box-shadow: inset 0 0 0 1px rgba(59, 130, 246, .20) !important;
    }

    .asb-ico {
        width: 20px !important;
        height: 20px !important;
    }

    .asb-lbl,
    .asb.col .asb-lbl {
        display: block !important;
        max-width: 58px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 10px !important;
        line-height: 1.05;
        flex: 0 0 auto !important;
    }

    .asb-arr {
        display: none !important;
    }

    .asb-pill,
    .asb.col .asb-pill {
        display: inline-flex !important;
        position: absolute !important;
        top: 5px;
        right: 7px;
        margin: 0 !important;
        transform: scale(.88);
        transform-origin: top right;
    }

    .asb-sub.open,
    .asb.col .asb-sub.open {
        position: fixed !important;
        left: 12px;
        right: 12px;
        bottom: calc(var(--nx-mobile-bottom) + 8px);
        max-height: none !important;
        display: flex !important;
        gap: 6px;
        padding: 8px;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        background: rgba(255, 255, 255, .96);
        border: 1px solid rgba(226, 232, 240, .92);
        border-radius: 20px;
        box-shadow: 0 20px 60px rgba(15, 23, 42, .18);
        z-index: 1100;
    }

    .asb-sub-item {
        flex: 0 0 auto;
        min-height: 42px;
        padding: 10px 13px !important;
        border-radius: 14px !important;
        background: #f8fafc;
        font-size: 12px !important;
    }

    .asb-sub-item::before {
        display: none !important;
    }

    .am,
    .am.col {
        margin-left: 0 !important;
        padding-top: 64px !important;
        min-width: 0;
    }

    .am-body {
        padding: 16px 14px calc(var(--nx-mobile-bottom) + 18px) !important;
        min-width: 0;
    }

    #adm-nd {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: 72px !important;
        width: auto !important;
        max-height: calc(100vh - var(--nx-mobile-bottom) - 96px);
        overflow-y: auto !important;
        border-radius: 20px !important;
        z-index: 1200 !important;
    }

    /* Content ergonomics */
    .card,
    .adm-card,
    .adm-panel,
    .adm-metric,
    .ac,
    .nxs-card,
    .nxf-topic,
    .nxr-card,
    .grp-card,
    .gc-card,
    .course-card,
    .profile-card {
        border-radius: 18px !important;
        max-width: 100%;
    }

    .card-body,
    .ac-body {
        padding: 16px !important;
    }

    .row {
        --bs-gutter-x: 1rem;
    }

    .nxf-layout,
    .nxd-layout,
    .nxf-shell,
    .nxf-grid,
    .course-grid,
    .course-grid-2,
    .quiz-main-grid,
    .quiz-toolbar,
    .grp-featured,
    .gs-layout,
    .gs-main-grid,
    .gs-ov-grid,
    .profile-grid,
    .admin-grid,
    .adm-grid,
    .adm-stats-grid,
    .adm-panels-grid,
    .adm-kpi-grid,
    .so-grid,
    .so-cards-grid,
    .so-pending-grid,
    .so-metrics-grid,
    .mc-grid,
    .mc-stats,
    .ld-grid,
    .ob-grid2,
    .ob-roles,
    .ops-grid,
    .ops-action-row,
    .type-picker,
    .sh-ai-grid,
    .sh-metric-grid,
    .sh-svc-grid,
    .ln-role-grid,
    .ln-platform-grid,
    .ln-form-grid,
    .ln-foot-grid,
    .ln-feats,
    .ln-contact,
    .ln-recent-grid,
    .rc-cards {
        grid-template-columns: 1fr !important;
    }

    /* .ln-mission is a flex row (text + a 3-stat block) with
       flex-shrink: 0 on the stats — deliberately never shrinks at
       desktop width, which is exactly wrong once the row can't fit
       both anymore. */
    .ln-mission {
        flex-wrap: wrap !important;
        gap: 24px !important;
        padding: 28px 24px !important;
    }

    .ln-mission-stats {
        flex-shrink: 1 !important;
        flex-wrap: wrap;
        gap: 24px !important;
    }

    /* Same flex-shrink:0-on-everything problem as .ln-mission, on the
       bottom "Ready to be part of something bigger?" CTA banner. */
    .ln-cta {
        flex-wrap: wrap !important;
        padding: 28px 24px !important;
        gap: 18px !important;
    }

    .ln-cta-btn,
    .ln-cta-btn-sec {
        flex-shrink: 1 !important;
    }

    /* .ln-feats-wrap's <div class="ln-feats"> uses a hardcoded 4-column
       grid (see auth/landing.blade.php) with no other responsive
       override anywhere — collapsing it above is necessary but not
       sufficient, since each .ln-feat also carries a fixed border-right
       meant to separate side-by-side columns, which stays visible (and
       looks wrong) once stacked into rows. */
    .ln-feat {
        border-right: none !important;
        border-bottom: 1px solid #f1f5f9;
    }

    .ln-feat:last-child {
        border-bottom: none;
    }

    [style*="grid-template-columns:320px 1fr"],
    [style*="grid-template-columns: 320px 1fr"],
    [style*="grid-template-columns:1fr 1fr"],
    [style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }

    .nxf-sidebar,
    .grp-aside,
    .gs-sidebar,
    .course-side,
    .quiz-side {
        width: 100% !important;
        max-width: none !important;
    }

    .nxf-topic {
        gap: 10px !important;
        padding: 14px !important;
    }

    .nxf-topic-av {
        width: 42px !important;
        height: 42px !important;
        flex: 0 0 42px;
    }

    .nxf-actions,
    .section-actions,
    .adm-actions,
    .ac-actions,
    .quiz-actions,
    .grp-actions {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .btn:not(.btn-link):not(.btn-close),
    .adm-btn,
    .abtn,
    input[type="submit"],
    button[type="submit"] {
        min-height: 38px !important;
        padding: .44rem .82rem !important;
        border-radius: 11px !important;
        font-size: .86rem !important;
        line-height: 1.15 !important;
    }

    .btn-sm,
    .btn-group-sm > .btn {
        min-height: 32px !important;
        padding: .32rem .62rem !important;
        border-radius: 9px !important;
        font-size: .78rem !important;
    }

    .adm-btn-icon,
    .btn-icon,
    .icon-btn,
    .section-btn,
    .ah-icon-btn {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        padding: 0 !important;
        border-radius: 12px !important;
    }

    input,
    select,
    textarea,
    .form-control,
    .form-select,
    .adm-fb-input,
    .adm-fb-select,
    .afb-input,
    .afb-select {
        max-width: 100%;
        font-size: 16px !important;
    }

    table.table,
    table.adm-tbl,
    table.at,
    table.la-table,
    table.quiz-table,
    table.ops-table,
    table.an-table,
    table.roc-table,
    table.ml-table,
    table.rlg-table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .modal-dialog {
        margin: 12px !important;
        max-width: calc(100% - 24px) !important;
    }

    .modal-content,
    .adm-modal {
        max-height: calc(100vh - 24px);
        overflow-y: auto;
        border-radius: 22px !important;
    }

    /* Landing page nav (.ln-nav — a separate, page-specific nav from
       .guest-nav below, used only by auth/landing.blade.php). It ships
       its own .ln-nav-hamburger, hardcoded display:none with no media
       query to ever show it, no click handler, and no mobile menu
       markup anywhere in the page — a decorative dead element, not a
       working responsive nav waiting on CSS. Making it visible would
       trade an invisible bug for a worse one (a button that visibly
       does nothing). Instead, same fix as .guest-nav-links below:
       horizontally scrollable rather than a hamburger menu, so every
       link stays reachable without needing new JS/markup. */
    .ln-nav {
        padding: 9px 14px 10px !important;
        height: auto !important;
        min-height: 96px;
        overflow: visible !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px 10px !important;
    }

    .ln-nav::-webkit-scrollbar {
        display: none;
    }

    .ln-brand {
        margin-right: 0 !important;
        flex: 1 0 100%;
        min-width: 0;
        max-width: 100%;
        gap: 8px !important;
    }

    .ln-brand-ico {
        width: 34px !important;
        height: 34px !important;
        border-radius: 9px !important;
    }

    .ln-brand-name {
        font-size: 16px !important;
        letter-spacing: -.02em !important;
    }

    .ln-brand-sub {
        display: none !important;
    }

    .ln-reg-dropdown,
    .ln-nav-reg,
    .ln-nav-reg-btn,
    .ln-nav-hamburger,
    .ln-desktop-only {
        display: none !important;
    }

    .ln-navlinks {
        order: 2;
        flex: 1 1 0 !important;
        min-width: 0;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 3px;
        padding: 3px;
        border: 1px solid rgba(226, 232, 240, .82);
        border-radius: 999px;
        background: rgba(248, 250, 252, .92);
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .9),
            0 8px 18px rgba(15, 23, 42, .045);
    }

    .ln-navlink {
        min-width: 0;
        min-height: 30px;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        padding: 0 6px !important;
        border-radius: 999px !important;
        font-size: 11.5px !important;
        font-weight: 800 !important;
        color: #64748b !important;
        white-space: nowrap;
    }

    .ln-navlink:hover,
    .ln-navlink.is-active {
        background: rgba(255, 255, 255, .96) !important;
        color: #1d4ed8 !important;
        box-shadow: 0 7px 16px rgba(15, 23, 42, .08);
    }

    .ln-navlink.is-active::after {
        display: none !important;
    }

    .ln-nav-btns {
        order: 2;
        flex: 0 0 auto !important;
        margin-left: 0;
    }

    .ln-nav-login {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-height: 36px;
        padding: 0 14px !important;
        border-radius: 999px !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        color: #ffffff !important;
        border-color: transparent !important;
        background: linear-gradient(135deg, #2747f7 0%, #0ea5e9 100%) !important;
        white-space: nowrap;
        box-shadow: 0 10px 22px rgba(29, 78, 216, .24) !important;
    }

    .ln-nav-login:hover,
    .ln-nav-login:focus-visible {
        color: #ffffff !important;
        background: linear-gradient(135deg, #3158ff 0%, #12b7ef 100%) !important;
        box-shadow: 0 12px 26px rgba(29, 78, 216, .30) !important;
    }

    /* Guest/login/public screens */
    .guest-wrap {
        background:
            radial-gradient(circle at 18% 0%, rgba(0, 120, 212, .13), transparent 24rem),
            linear-gradient(180deg, #f0f5ff 0%, #ffffff 58%, #f7fafc 100%) !important;
    }

    .guest-nav {
        position: sticky;
        top: 0;
        z-index: 50;
        flex-wrap: wrap;
        gap: 10px;
        padding: 10px 14px !important;
        margin: 0 !important;
        border-radius: 0 0 22px 22px !important;
        background: rgba(255, 255, 255, .90) !important;
        border: 1px solid rgba(226, 232, 240, .82) !important;
        border-top: 0 !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .guest-nav-links {
        display: flex;
        flex: 1 1 100%;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .guest-nav-links::-webkit-scrollbar {
        display: none;
    }

    .guest-nav-links .btn {
        flex: 1 0 auto;
        white-space: nowrap;
    }

    .guest-nav-links a[href*="/desktop/windows"] {
        display: none !important;
    }

    a[href*="/desktop/windows"] {
        display: none !important;
    }

    .min-h-screen {
        min-height: 100svh !important;
    }

    /* Landing page hero: .ln-bubble cards are positioned at percentage
       offsets (e.g. "left: 1%") around a *fixed-size* 205px logo/318px
       glow — fine at desktop width, but once .ln-hero-right shrinks
       below roughly 400px the fixed-size logo no longer leaves room for
       four floating cards, and they overlap it instead of framing it.
       Purely decorative, so simplest correct fix is hiding them here
       rather than trying to responsively reflow four absolutely
       positioned elements. */
    .ln-hero-right {
        max-width: 240px !important;
        height: 240px !important;
        margin: 8px auto 0 !important;
    }

    .ln-stage {
        width: 200px !important;
        height: 200px !important;
    }

    .ln-logo-3d {
        width: 130px !important;
        height: 130px !important;
    }

    .ln-bubble,
    .ln-dot {
        display: none !important;
    }
}

/* Tablet width: the bottom nav's icons fit without scrolling, so center
   them instead of leaving them flush left. The desktop sidebar-collapse
   toggle is meaningless here (the sidebar is already the fixed floating
   bottom bar, not a collapsible rail), so hide it like on phones instead
   of only below 640px. */
@media (min-width: 700px) and (max-width: 920px) {
    .sidebar-section {
        justify-content: center;
    }

    .section-bar .sidebar-toggle {
        display: none !important;
    }
}

@media (max-width: 640px) {
    :root {
        --nx-mobile-top: 116px;
        --nx-mobile-bottom: calc(86px + env(safe-area-inset-bottom, 0px));
    }

    body:has(.ln-nav) {
        background:
            linear-gradient(180deg, #f6f8ff 0%, #ffffff 46%, #f8fbff 100%) !important;
    }

    .brand-name {
        display: none !important;
    }

    .brand-right {
        max-width: calc(100% - 48px);
    }

    .brand-right button,
    .ah-icon-btn,
    .ah-toggle {
        min-width: 40px !important;
        width: 40px !important;
        min-height: 40px !important;
        height: 40px !important;
    }

    .brand-avatar,
    .ah-avatar {
        width: 32px !important;
        height: 32px !important;
    }

    .section-bar .sidebar-toggle {
        display: none !important;
    }

    .page-content,
    .am-body {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .sidebar,
    .asb {
        left: 8px !important;
        right: 8px !important;
        border-radius: 22px !important;
    }

    .sidebar-item,
    .sidebar.is-collapsed .sidebar-item,
    .asb-item,
    .asb.col .asb-item {
        flex-basis: 64px;
        width: 64px !important;
    }

    .card,
    .adm-card,
    .adm-panel,
    .ac,
    .nxs-card,
    .nxf-topic,
    .nxr-card {
        border-radius: 16px !important;
    }

    .adm-ph-title,
    .course-title,
    h1 {
        font-size: clamp(1.35rem, 7vw, 1.85rem) !important;
        line-height: 1.12 !important;
    }

    .nxf-topic-title {
        font-size: clamp(.98rem, 4vw, 1.08rem) !important;
        line-height: 1.38 !important;
        font-weight: 740 !important;
        letter-spacing: 0 !important;
        -webkit-line-clamp: 2;
    }

    .nxf-topic-preview {
        font-size: .88rem !important;
        line-height: 1.55 !important;
    }

    .topic-title {
        font-size: clamp(1.2rem, 5.8vw, 1.55rem) !important;
        line-height: 1.16 !important;
        font-weight: 780 !important;
        letter-spacing: 0 !important;
    }

    .topic-post-body {
        font-size: .94rem !important;
        line-height: 1.66 !important;
    }

    h2 {
        font-size: clamp(1.15rem, 5.8vw, 1.55rem) !important;
    }

    .ln-h1 {
        font-size: clamp(2.6rem, 12vw, 3.45rem) !important;
        line-height: .96 !important;
    }

    .ln-nav {
        padding: 14px 18px 12px !important;
        min-height: 136px !important;
        gap: 14px 12px !important;
        background:
            linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(248, 251, 255, .92)) !important;
        border-bottom: 1px solid rgba(226, 232, 240, .72) !important;
        box-shadow: 0 12px 34px rgba(15, 23, 42, .07) !important;
    }

    .ln-brand {
        order: 1;
        flex: 1 1 auto !important;
        max-width: calc(100% - 92px) !important;
        gap: 11px !important;
    }

    .ln-brand-ico {
        width: 44px !important;
        height: 44px !important;
    }

    .ln-brand-name {
        font-size: 20px !important;
        font-weight: 900 !important;
        color: #111827 !important;
    }

    .ln-nav-btns {
        order: 1;
        margin-left: auto !important;
    }

    .ln-nav-login {
        min-height: 36px !important;
        padding: 0 14px !important;
        border-radius: 12px !important;
        font-size: 12.5px !important;
        background: linear-gradient(135deg, #3158ff 0%, #5b4bff 100%) !important;
        box-shadow: 0 9px 20px rgba(49, 88, 255, .22) !important;
    }

    .ln-navlinks {
        order: 2;
        flex: 1 0 100% !important;
        gap: 6px !important;
        padding: 6px !important;
        border-radius: 20px !important;
        background: rgba(255, 255, 255, .88) !important;
        border-color: rgba(226, 232, 240, .88) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .95),
            0 14px 34px rgba(15, 23, 42, .09) !important;
    }

    .ln-navlink {
        min-height: 38px !important;
        gap: 6px;
        font-size: 12.5px !important;
        color: #64748b !important;
        border-radius: 14px !important;
    }

    .ln-navlink.is-active {
        color: #2747f7 !important;
        background: #ffffff !important;
        box-shadow: 0 10px 22px rgba(39, 71, 247, .13) !important;
    }

    .ln-hero-wrap {
        background:
            linear-gradient(135deg, #f6f8ff 0%, #ffffff 58%, #eef6ff 100%) !important;
        overflow: hidden !important;
    }

    .ln-hero-wrap::before {
        opacity: .55 !important;
    }

    .ln-hero {
        padding-top: 46px !important;
        padding-bottom: 26px !important;
        gap: 14px !important;
    }

    .ln-tag-pill {
        border-radius: 999px !important;
        padding: 9px 14px !important;
        background: rgba(255, 255, 255, .9) !important;
        box-shadow: 0 10px 28px rgba(39, 71, 247, .10) !important;
    }

    .ln-hero-desc {
        max-width: 94% !important;
        font-size: 15.5px !important;
        line-height: 1.72 !important;
        color: #5f6f86 !important;
    }

    .ln-hero-btns {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 10px !important;
        margin-top: 22px !important;
        margin-bottom: 14px !important;
        align-items: stretch !important;
    }

    .ln-hero-btns > .ln-btn-primary,
    .ln-hero-btns > .ln-btn-outline {
        width: auto !important;
        min-height: 118px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        text-align: left !important;
        border-radius: 16px !important;
        padding: 15px 14px !important;
        box-shadow: 0 12px 26px rgba(15, 23, 42, .09) !important;
    }

    .ln-hero-btns > .ln-btn-primary {
        background: linear-gradient(145deg, #2d6bff 0%, #5b38f5 100%) !important;
        color: #ffffff !important;
        border: 0 !important;
    }

    .ln-hero-btns > .ln-btn-primary::before {
        content: "";
        width: 42px;
        height: 42px;
        border-radius: 13px;
        background:
            rgba(255, 255, 255, .18)
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5Z'/%3E%3Cpath d='M6 12v4c3.6 2.4 8.4 2.4 12 0v-4'/%3E%3Cpath d='M22 10v6'/%3E%3Cpath d='M22 16.5v.5'/%3E%3C/svg%3E")
            center / 23px 23px no-repeat !important;
        border: 1px solid rgba(255, 255, 255, .24);
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .22),
            0 12px 24px rgba(15, 23, 42, .14);
        flex: 0 0 auto;
    }

    .ln-hero-btns > .ln-btn-outline {
        background: rgba(255, 255, 255, .94) !important;
        border: 1px solid rgba(226, 232, 240, .9) !important;
        color: #111827 !important;
        justify-content: flex-start !important;
        gap: 12px !important;
    }

    .ln-hero-btns > .ln-btn-primary svg,
    .ln-hero-btns > .ln-btn-outline svg {
        align-self: flex-end !important;
        width: 30px !important;
        height: 30px !important;
        padding: 7px !important;
        border-radius: 999px !important;
        background: rgba(255, 255, 255, .92) !important;
        color: #2747f7 !important;
        box-shadow: 0 10px 20px rgba(15, 23, 42, .11) !important;
    }

    .ln-hero-sub-link {
        margin-top: 2px !important;
        padding: 16px 18px !important;
        border-radius: 18px !important;
        background: rgba(255, 255, 255, .9) !important;
        border: 1px solid rgba(226, 232, 240, .82) !important;
        box-shadow: 0 12px 30px rgba(15, 23, 42, .06) !important;
    }

    .ln-social {
        padding: 0 2px !important;
    }

    .ln-sec-title {
        font-size: clamp(2rem, 8vw, 2.65rem) !important;
        line-height: 1.06 !important;
    }

    .ln-hero,
    .ln-section,
    .ln-footer {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (max-width: 420px) {
    .brand-bar {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .ah-title {
        max-width: 34vw;
    }

    .sidebar-item,
    .sidebar.is-collapsed .sidebar-item,
    .asb-item,
    .asb.col .asb-item {
        flex-basis: 60px;
        width: 60px !important;
    }

    .sidebar-item span:not(.badge):not(.sidebar-desktop-badge),
    .asb-lbl,
    .asb.col .asb-lbl {
        max-width: 52px;
        font-size: 9.5px !important;
    }

    .guest-nav-links .btn {
        flex-basis: auto;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 920px) {
    .sidebar-item,
    .asb-item,
    .card,
    .adm-card,
    .nxf-topic,
    .nxr-card,
    .btn,
    .adm-btn,
    .abtn {
        transition:
            transform .18s cubic-bezier(.2, .8, .2, 1),
            box-shadow .18s cubic-bezier(.2, .8, .2, 1),
            background .18s ease,
            border-color .18s ease !important;
    }

    .sidebar-item:active,
    .asb-item:active,
    .btn:active,
    .adm-btn:active,
    .abtn:active {
        transform: scale(.97);
    }

    .nxf-topic:hover,
    .nxr-card:hover,
    .card:hover,
    .adm-card:hover {
        transform: translateY(-1px);
    }
}

[data-theme="dark"] .brand-bar,
[data-theme="dark"] .section-bar,
[data-theme="dark"] .sidebar,
[data-theme="dark"] .ah,
[data-theme="dark"] .asb,
[data-theme="dark"] .guest-nav,
[data-theme="dark"] .asb-sub.open {
    background: rgba(15, 23, 42, .92) !important;
    border-color: rgba(51, 65, 85, .86) !important;
}

[data-theme="dark"] .asb-sub-item {
    background: rgba(30, 41, 59, .92) !important;
}

/* Role-consistent mobile shell
   The full desktop sidebars remain desktop/tablet UI. Phones get a real app
   shell: compact header, slide-out drawer, five-item bottom navigation, and
   role-aware quick actions. */
.nxs-mobile-menu-btn,
.nxm-header-icon,
.nxm-backdrop,
.nxm-drawer,
.nxm-bottom-nav,
.nxm-sheet-backdrop,
.nxm-sheet {
    display: none !important;
}

@media (max-width: 920px) {
    :root {
        --nx-mobile-top: 64px;
        --nx-mobile-bottom: calc(82px + env(safe-area-inset-bottom, 0px));
    }

    html.nxm-lock,
    html.nxm-lock body {
        overflow: hidden !important;
    }

    .nxs-mobile-menu-btn,
    .nxm-header-icon {
        width: 42px;
        height: 42px;
        border: 1px solid rgba(226, 232, 240, .88);
        border-radius: 14px;
        background: rgba(248, 250, 252, .92);
        color: #334155;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        text-decoration: none;
    }

    .brand-bar {
        flex-wrap: nowrap !important;
        min-height: var(--nx-mobile-top) !important;
        height: var(--nx-mobile-top) !important;
        padding: 9px 12px !important;
    }

    .brand-bar > form,
    .ah-search {
        display: none !important;
    }

    .brand-left,
    .ah-brand {
        min-width: 0;
    }

    .brand-name {
        display: inline !important;
        max-width: 84px;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .brand-right {
        margin-left: auto !important;
        gap: 6px !important;
    }

    .ah {
        min-height: var(--nx-mobile-top) !important;
        height: var(--nx-mobile-top) !important;
        padding: 9px 12px !important;
        flex-wrap: nowrap !important;
    }

    .ah-center {
        min-width: 0;
    }

    .ah-center .ah-toggle {
        display: none !important;
    }

    .ah-title {
        max-width: 48vw !important;
    }

    .below-brand {
        padding-top: var(--nx-mobile-top) !important;
    }

    .section-bar {
        top: var(--nx-mobile-top) !important;
    }

    .am,
    .am.col {
        padding-top: var(--nx-mobile-top) !important;
    }

    .sidebar,
    .sidebar.is-collapsed,
    .asb,
    .asb.col {
        display: none !important;
    }

    .main-area,
    .main-area.is-collapsed,
    .am,
    .am.col {
        width: 100% !important;
        margin-left: 0 !important;
    }

    .page-content,
    .am-body {
        padding-bottom: calc(var(--nx-mobile-bottom) + 18px) !important;
    }

    .nxm-backdrop,
    .nxm-sheet-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .46);
        backdrop-filter: blur(3px);
        -webkit-backdrop-filter: blur(3px);
        z-index: 2200;
    }

    .nxm-backdrop:not([hidden]),
    .nxm-sheet-backdrop:not([hidden]) {
        display: block !important;
    }

    .nxm-drawer {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(86vw, 340px);
        max-width: 340px;
        display: flex !important;
        flex-direction: column;
        background: rgba(255, 255, 255, .96);
        color: #1c1e21;
        border-right: 1px solid rgba(226, 232, 240, .88);
        backdrop-filter: blur(22px) saturate(1.3);
        -webkit-backdrop-filter: blur(22px) saturate(1.3);
        z-index: 2210;
        transform: translateX(-104%);
        transition: transform .24s cubic-bezier(.2, .8, .2, 1);
        box-shadow: 28px 0 80px rgba(15, 23, 42, .18);
        padding: calc(16px + env(safe-area-inset-top, 0px)) 14px calc(16px + env(safe-area-inset-bottom, 0px));
    }

    .nxm-drawer.is-open {
        transform: translateX(0);
    }

    .nxm-drawer-head {
        display: grid;
        grid-template-columns: 54px minmax(0, 1fr) 42px;
        align-items: center;
        gap: 12px;
        padding: 4px 2px 16px;
    }

    .nxm-avatar {
        width: 54px;
        height: 54px;
        border-radius: 18px;
        overflow: hidden;
        background: linear-gradient(135deg, #dbeafe, #ccfbf1);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #1d4ed8;
        font-weight: 800;
        box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
    }

    .nxm-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .nxm-profile-copy {
        min-width: 0;
        display: grid;
        gap: 2px;
    }

    .nxm-profile-copy strong,
    .nxm-profile-copy span,
    .nxm-profile-copy small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nxm-profile-copy strong {
        color: #0f172a;
        font-size: 14px;
        line-height: 1.2;
    }

    .nxm-profile-copy span {
        color: #2563eb;
        font-size: 12px;
        font-weight: 700;
    }

    .nxm-profile-copy small {
        color: #64748b;
        font-size: 11px;
    }

    .nxm-icon-btn {
        width: 40px;
        height: 40px;
        border: 1px solid #e2e8f0;
        border-radius: 14px;
        background: #f8fafc;
        color: #334155;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .nxm-icon-btn svg {
        transform: rotate(45deg);
    }

    .nxm-summary {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        padding: 0 2px 14px;
    }

    .nxm-summary span {
        border: 1px solid #e2e8f0;
        border-radius: 999px;
        padding: 6px 10px;
        color: #475569;
        background: #f8fafc;
        font-size: 11px;
        font-weight: 700;
    }

    .nxm-drawer-nav {
        display: grid;
        gap: 4px;
        overflow-y: auto;
        padding: 4px 0 12px;
        scrollbar-width: thin;
        scrollbar-color: rgba(100, 116, 139, .35) transparent;
    }

    .nxm-drawer-section-title {
        margin: 13px 10px 5px;
        color: #8390a3;
        font-size: 10px;
        font-weight: 850;
        letter-spacing: .12em;
        text-transform: uppercase;
    }

    .nxm-drawer-section-title:first-child {
        margin-top: 4px;
    }

    .nxm-drawer-link,
    .nxm-logout button {
        min-height: 46px;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 12px;
        border-radius: 15px;
        color: #475569;
        text-decoration: none;
        font-size: 13px;
        font-weight: 750;
        border: 0;
        background: transparent;
        width: 100%;
        text-align: left;
    }

    .nxm-drawer-link.is-active {
        color: #1d4ed8;
        background: rgba(37, 99, 235, .10);
        box-shadow: inset 0 0 0 1px rgba(37, 99, 235, .16);
    }

    .nxm-link-icon {
        width: 24px;
        height: 24px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #64748b;
        flex: 0 0 auto;
    }

    .nxm-drawer-link.is-active .nxm-link-icon {
        color: #2563eb;
    }

    .nxm-drawer-link b,
    .nxm-bottom-link b,
    .nxm-sheet-action b {
        margin-left: auto;
        min-width: 19px;
        height: 19px;
        border-radius: 999px;
        padding: 0 6px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #2563eb;
        color: #fff;
        font-size: 10px;
        font-weight: 800;
    }

    .nxm-logout {
        margin: auto 0 0;
        padding-top: 12px;
        border-top: 1px solid #eef2f7;
    }

    .nxm-logout button {
        color: #dc2626;
        cursor: pointer;
    }

    .nxm-bottom-nav {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: calc(8px + env(safe-area-inset-bottom, 0px));
        height: 72px;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        align-items: center;
        gap: 4px;
        padding: 8px;
        border-radius: 24px;
        background: rgba(255, 255, 255, .94);
        border: 1px solid rgba(226, 232, 240, .88);
        box-shadow: 0 22px 70px rgba(15, 23, 42, .18), 0 2px 8px rgba(15, 23, 42, .06);
        backdrop-filter: blur(22px) saturate(1.35);
        -webkit-backdrop-filter: blur(22px) saturate(1.35);
        z-index: 2100;
        transform: translateY(0);
        transition:
            transform .24s cubic-bezier(.2, .8, .2, 1),
            opacity .18s ease,
            box-shadow .18s ease;
        will-change: transform;
    }

    .nxm-bottom-nav.is-hidden {
        transform: translateY(calc(100% + 18px + env(safe-area-inset-bottom, 0px)));
        opacity: .08;
        pointer-events: none;
        box-shadow: none;
    }

    .nxm-bottom-link {
        border: 0;
        background: transparent;
        min-width: 0;
        min-height: 54px;
        border-radius: 18px;
        color: #64748b;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        text-decoration: none;
        font-size: 10px;
        font-weight: 750;
        line-height: 1;
        position: relative;
        cursor: pointer;
    }

    .nxm-bottom-menu {
        font: inherit;
    }

    .nxm-bottom-link.is-active {
        color: #2563eb;
        background: linear-gradient(180deg, rgba(37, 99, 235, .12), rgba(20, 184, 166, .07));
    }

    .nxm-bottom-link b {
        position: absolute;
        top: 4px;
        right: 8px;
        margin: 0;
    }

    .nxm-bottom-create {
        width: 58px;
        height: 58px;
        justify-self: center;
        border: 0;
        border-radius: 21px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        background: linear-gradient(135deg, #2563eb, #14b8a6);
        box-shadow: 0 16px 34px rgba(37, 99, 235, .34);
        cursor: pointer;
    }

    .nxm-sheet {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        display: block !important;
        padding: 10px 16px calc(18px + env(safe-area-inset-bottom, 0px));
        border-radius: 28px 28px 0 0;
        background: #fff;
        z-index: 2220;
        transform: translateY(110%);
        transition: transform .24s cubic-bezier(.2, .8, .2, 1);
        box-shadow: 0 -26px 70px rgba(15, 23, 42, .22);
        max-height: min(78vh, 680px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .nxm-sheet.is-open {
        transform: translateY(0);
    }

    .nxm-sheet-grip {
        width: 42px;
        height: 5px;
        border-radius: 999px;
        background: #cbd5e1;
        margin: 0 auto 14px;
    }

    .nxm-sheet-head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        margin-bottom: 12px;
    }

    .nxm-sheet-head strong {
        display: block;
        color: #0f172a;
        font-size: 15px;
    }

    .nxm-sheet-head span {
        color: #64748b;
        font-size: 12px;
    }

    .nxm-sheet .nxm-icon-btn {
        background: #f8fafc;
        border-color: #e2e8f0;
        color: #334155;
    }

    .nxm-sheet-actions {
        display: grid;
        gap: 8px;
        padding-bottom: 4px;
    }

    .nxm-sheet-action {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        min-height: 64px;
        padding: 10px 12px;
        border-radius: 18px;
        text-decoration: none;
        background: #f8fafc;
        color: #0f172a;
        border: 1px solid #eef2f7;
    }

    .nxm-sheet-action > span:first-child {
        width: 46px;
        height: 46px;
        border-radius: 16px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #2563eb;
        background: #eff6ff;
    }

    .nxm-sheet-action strong,
    .nxm-sheet-action small {
        display: block;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nxm-sheet-action strong {
        color: #0f172a;
        font-size: 13px;
        font-weight: 800;
    }

    .nxm-sheet-action small {
        color: #64748b;
        font-size: 11.5px;
        margin-top: 2px;
    }

    [data-theme="dark"] .nxs-mobile-menu-btn,
    [data-theme="dark"] .nxm-header-icon,
    [data-theme="dark"] .nxm-bottom-nav,
    [data-theme="dark"] .nxm-sheet {
        background: rgba(15, 23, 42, .94) !important;
        border-color: rgba(51, 65, 85, .88) !important;
        color: #e2e8f0 !important;
    }

    [data-theme="dark"] .nxm-sheet-head strong,
    [data-theme="dark"] .nxm-sheet-action,
    [data-theme="dark"] .nxm-sheet-action strong {
        color: #f8fafc !important;
    }

    [data-theme="dark"] .nxm-sheet-action {
        background: rgba(30, 41, 59, .9) !important;
        border-color: rgba(51, 65, 85, .86) !important;
    }

    /* Drawer sidebar (hamburger menu) — was permanently dark navy
       regardless of site theme; this restores that same dark look only
       when [data-theme="dark"] is actually set, matching how
       .nxm-bottom-nav/.nxm-sheet above (and the desktop .sidebar in
       nexus-design-system.css) already behave. */
    [data-theme="dark"] .nxm-drawer {
        background: #0f172a !important;
        color: #e5edf8 !important;
        border-right-color: rgba(51, 65, 85, .7) !important;
        box-shadow: 28px 0 80px rgba(0, 0, 0, .5) !important;
    }

    [data-theme="dark"] .nxm-profile-copy strong {
        color: #fff !important;
    }

    [data-theme="dark"] .nxm-profile-copy span {
        color: #93c5fd !important;
    }

    [data-theme="dark"] .nxm-profile-copy small {
        color: #94a3b8 !important;
    }

    [data-theme="dark"] .nxm-drawer .nxm-icon-btn {
        border-color: rgba(148, 163, 184, .22) !important;
        background: rgba(255, 255, 255, .06) !important;
        color: inherit !important;
    }

    [data-theme="dark"] .nxm-summary span {
        border-color: rgba(148, 163, 184, .20) !important;
        color: #cbd5e1 !important;
        background: rgba(255, 255, 255, .05) !important;
    }

    [data-theme="dark"] .nxm-drawer-section-title {
        color: #64748b !important;
    }

    [data-theme="dark"] .nxm-drawer-link,
    [data-theme="dark"] .nxm-logout button {
        color: #cbd5e1 !important;
    }

    [data-theme="dark"] .nxm-drawer-link.is-active {
        color: #fff !important;
        background: rgba(59, 130, 246, .22) !important;
        box-shadow: inset 0 0 0 1px rgba(96, 165, 250, .25) !important;
    }

    [data-theme="dark"] .nxm-link-icon {
        color: #93a4bb !important;
    }

    [data-theme="dark"] .nxm-drawer-link.is-active .nxm-link-icon {
        color: #60a5fa !important;
    }

    [data-theme="dark"] .nxm-logout {
        border-top-color: rgba(148, 163, 184, .16) !important;
    }

    [data-theme="dark"] .nxm-logout button {
        color: #fca5a5 !important;
    }
}

@media (max-width: 640px) {
    :root {
        --nx-mobile-top: 64px;
        --nx-mobile-bottom: calc(82px + env(safe-area-inset-bottom, 0px));
    }

    .brand-name {
        display: inline !important;
    }
}

/* Mobile messaging: direct messages, group chats, and older conversation routes. */
.adm-msg-mobile-back {
    display: none;
}

@media (max-width: 768px) {
    body.adm-msg-page,
    body.nxg-page,
    body.msg-show-page {
        overflow: hidden !important;
        background: #f6f8fc !important;
    }

    body.adm-msg-page .section-bar,
    body.nxg-page .section-bar,
    body.msg-show-page .section-bar,
    body.adm-msg-page .sidebar,
    body.nxg-page .sidebar,
    body.msg-show-page .sidebar,
    body.adm-msg-page .nxm-bottom-nav,
    body.nxg-page .nxm-bottom-nav,
    body.msg-show-page .nxm-bottom-nav {
        /* .nxm-bottom-nav is fixed at the bottom of every mobile page with
           z-index:2100, far above the message composer's z-index:5 -- left
           visible here it sits directly on top of the composer, making the
           text input and send button completely covered and unusable.
           Hidden for the whole messaging page (not just the open-thread
           state) so the composer's own sticky bottom-0 positioning is never
           fought by another fixed element competing for the same space. */
        display: none !important;
    }

    body.adm-msg-page .below-brand,
    body.nxg-page .below-brand,
    body.msg-show-page .below-brand {
        padding-top: var(--nx-mobile-top) !important;
    }

    body.adm-msg-page .main-area,
    body.nxg-page .main-area,
    body.msg-show-page .main-area {
        height: calc(100dvh - var(--nx-mobile-top)) !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body.adm-msg-page .page-content,
    body.nxg-page .page-content,
    body.msg-show-page .page-content,
    body.adm-msg-page .am-body,
    body.nxg-page .am-body {
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
    }

    .adm-msg-outer-layout,
    .adm-msg-workspace,
    .nxg-workspace {
        height: 100% !important;
        min-height: 0 !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        gap: 0 !important;
        position: relative !important;
        background: #f6f8fc !important;
    }

    .adm-msg-workspace,
    .nxg-workspace {
        display: block !important;
    }

    .adm-msg-workspace > .nxs-resize-handle {
        display: none !important;
    }

    .adm-msg-workspace.has-list-only .adm-msg-workspace-right,
    .adm-msg-workspace.has-list-only .adm-msg-empty-thread {
        display: none !important;
    }

    .adm-msg-workspace.has-open-thread .adm-msg-list {
        display: none !important;
    }

    .adm-msg-workspace.has-open-thread .adm-msg-workspace-right,
    .nxg-right.nxg-mob-open {
        display: flex !important;
        position: relative !important;
        inset: auto !important;
        left: auto !important;
        top: auto !important;
        width: 100% !important;
        height: 100% !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
        z-index: 20 !important;
    }

    .adm-msg-list,
    .nxg-left {
        width: 100% !important;
        min-width: 0 !important;
        height: 100% !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: #f8fbff !important;
    }

    .adm-msg-list-toolbar,
    .nxg-left-hdr,
    .nxg-search-wrap {
        background: rgba(248, 251, 255, .94) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .adm-msg-list-toolbar {
        padding: 12px 14px 10px !important;
        border-bottom: 1px solid rgba(226, 232, 240, .85) !important;
    }

    .adm-msg-search-input,
    .nxg-search-input {
        min-height: 42px !important;
        border-radius: 16px !important;
        border-color: #dbeafe !important;
        background-color: #fff !important;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .05) !important;
    }

    .adm-msg-nav-btn {
        min-height: 40px !important;
        border-radius: 15px !important;
        box-shadow: 0 10px 22px rgba(37, 99, 235, .20) !important;
    }

    .adm-msg-conversations,
    .nxg-group-list {
        padding: 8px 10px 16px !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .adm-msg-conv-item,
    .nxg-group-item {
        width: auto !important;
        margin: 8px 0 !important;
        padding: 12px !important;
        border-radius: 18px !important;
        border-color: rgba(219, 234, 254, .9) !important;
        box-shadow: 0 10px 28px rgba(15, 23, 42, .06) !important;
        background: rgba(255, 255, 255, .96) !important;
    }

    .adm-msg-conv-item.active,
    .adm-msg-conv-item.unread,
    .nxg-group-item.active {
        background: linear-gradient(135deg, rgba(239, 246, 255, .98), rgba(240, 253, 250, .92)) !important;
        border-color: #bfdbfe !important;
    }

    .adm-msg-conv-avatar,
    .adm-msg-thread-mini-avatar,
    .nxg-gi-av,
    .nxg-win-av {
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        border-radius: 16px !important;
        box-shadow: 0 10px 20px rgba(37, 99, 235, .18) !important;
    }

    .adm-msg-conv-name,
    .nxg-gi-name {
        font-size: 14px !important;
        font-weight: 800 !important;
        color: #0f172a !important;
    }

    .adm-msg-conv-preview,
    .nxg-gi-preview {
        font-size: 12px !important;
        color: #64748b !important;
    }

    .adm-msg-thread-header,
    .nxg-win-hdr {
        min-height: 64px !important;
        padding: 10px 12px !important;
        border-bottom: 1px solid rgba(226, 232, 240, .88) !important;
        background: rgba(255, 255, 255, .94) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        flex-shrink: 0 !important;
        z-index: 4 !important;
    }

    .adm-msg-mobile-back,
    .nxg-back-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        padding: 0 !important;
        border: 1px solid #dbeafe !important;
        border-radius: 14px !important;
        color: #1d4ed8 !important;
        background: #eff6ff !important;
        text-decoration: none !important;
    }

    .adm-msg-thread-close {
        width: 40px !important;
        height: 40px !important;
        border-radius: 14px !important;
    }

    .adm-msg-thread-mini,
    .nxg-win-hdr-left {
        min-width: 0 !important;
        flex: 1 1 auto !important;
        gap: 9px !important;
    }

    .adm-msg-thread-mini-name,
    .nxg-win-hdr-name {
        display: block !important;
        min-width: 0 !important;
        max-width: 44vw !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        font-size: 14px !important;
        font-weight: 800 !important;
    }

    .adm-msg-thread-mini-status,
    .nxg-win-hdr-sub {
        font-size: 11px !important;
        color: #64748b !important;
        white-space: nowrap !important;
    }

    .adm-msg-thread,
    .nxg-chat-win,
    .nxg-feed {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        background: #f6f8fc !important;
    }

    .nxg-chat-body {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    .adm-msg-messages,
    .nxg-feed-scroll {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 14px 12px 18px !important;
        background:
            radial-gradient(circle at 12% 4%, rgba(59, 130, 246, .10), transparent 18rem),
            #f6f8fc !important;
        -webkit-overflow-scrolling: touch;
        scroll-padding-bottom: 96px;
    }

    .adm-msg-message-row,
    .nxg-msg-row {
        margin: 5px 0 !important;
    }

    .adm-msg-message,
    .nxg-bubble {
        max-width: min(84vw, 520px) !important;
        padding: 10px 12px 8px !important;
        border-radius: 20px !important;
        font-size: 14px !important;
        line-height: 1.42 !important;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .07) !important;
    }

    .adm-msg-message-row.sent .adm-msg-message,
    .nxg-msg-row.mine .nxg-bubble {
        border-radius: 20px 20px 6px 20px !important;
        background: linear-gradient(135deg, #2563eb, #06b6d4) !important;
        color: #fff !important;
        border: 0 !important;
    }

    .adm-msg-message-row.received .adm-msg-message,
    .nxg-msg-row.theirs .nxg-bubble {
        border-radius: 20px 20px 20px 6px !important;
        background: #fff !important;
        color: #0f172a !important;
        border: 1px solid #e2e8f0 !important;
    }

    .adm-msg-message-meta,
    .nxg-bubble-foot {
        font-size: 10.5px !important;
        gap: 5px !important;
    }

    .adm-msg-ticks.read,
    .nxg-tick.read,
    .msg-show-tick.read {
        color: #38bdf8 !important;
    }

    .adm-msg-composer,
    .nxg-win-foot {
        flex-shrink: 0 !important;
        padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px)) !important;
        border-top: 1px solid rgba(226, 232, 240, .88) !important;
        background: rgba(255, 255, 255, .94) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        box-shadow: 0 -16px 36px rgba(15, 23, 42, .08) !important;
    }

    .adm-msg-composer-form {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) auto !important;
        align-items: end !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .adm-msg-file-list {
        grid-column: 1 / -1 !important;
    }

    .adm-msg-input,
    .nxg-compose-input {
        min-height: 42px !important;
        max-height: 120px !important;
        border: 1px solid #dbeafe !important;
        border-radius: 18px !important;
        background: #fff !important;
        color: #0f172a !important;
        box-shadow: inset 0 1px 0 rgba(15, 23, 42, .03) !important;
    }

    .adm-msg-send-btn,
    .nxg-send-btn {
        min-width: 44px !important;
        height: 44px !important;
        border-radius: 16px !important;
        background: linear-gradient(135deg, #2563eb, #06b6d4) !important;
        box-shadow: 0 12px 24px rgba(37, 99, 235, .24) !important;
    }

    .adm-msg-composer-tools,
    .nxg-foot-btn {
        flex-shrink: 0 !important;
    }

    .adm-msg-group-info-panel,
    .nxg-details.open {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        z-index: 30 !important;
        border-radius: 0 !important;
        background: #fff !important;
    }

    /* Legacy conversation route */
    .msg-show-shell {
        height: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
    }

    .msg-show-shell > .col-12,
    .msg-show-shell .profile-card,
    .msg-show-shell .card-body {
        height: 100% !important;
        min-height: 0 !important;
    }

    .msg-show-shell .profile-card {
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
    }

    .msg-show-shell .card-body {
        display: flex !important;
        flex-direction: column !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .msg-show-shell .card-body > .d-flex:first-child {
        min-height: 64px !important;
        margin: 0 !important;
        padding: 10px 12px !important;
        border-bottom: 1px solid rgba(226, 232, 240, .88) !important;
        background: rgba(255, 255, 255, .94) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        flex-wrap: nowrap !important;
    }

    #msg-skeleton,
    #msg-feed {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow-y: auto !important;
        border: 0 !important;
        border-radius: 0 !important;
        padding: 14px 12px !important;
        background: #f6f8fc !important;
        -webkit-overflow-scrolling: touch;
    }

    .msg-show-bubble {
        max-width: min(84vw, 520px) !important;
        border-radius: 20px !important;
        padding: 10px 12px 8px !important;
        font-size: 14px !important;
        line-height: 1.42 !important;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .07) !important;
    }

    .msg-show-bubble.mine {
        border-radius: 20px 20px 6px 20px !important;
        background: linear-gradient(135deg, #2563eb, #06b6d4) !important;
        border: 0 !important;
        color: #fff !important;
    }

    .msg-show-bubble.theirs {
        border-radius: 20px 20px 20px 6px !important;
        background: #fff !important;
        border-color: #e2e8f0 !important;
    }

    .msg-show-bubble.mine .msg-show-time,
    .msg-show-bubble.mine .msg-show-tick {
        color: rgba(255, 255, 255, .78) !important;
    }

    #compose-form {
        flex-shrink: 0 !important;
        margin: 0 !important;
        padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px)) !important;
        border-top: 1px solid rgba(226, 232, 240, .88) !important;
        background: rgba(255, 255, 255, .94) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        box-shadow: 0 -16px 36px rgba(15, 23, 42, .08) !important;
    }

    #compose-form .input-group {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px !important;
        align-items: center !important;
    }

    #msg-input {
        min-height: 44px !important;
        border-radius: 18px !important;
        border: 1px solid #dbeafe !important;
        background: #fff !important;
        padding-inline: 14px !important;
    }

    #compose-form button[type="submit"] {
        min-width: 54px !important;
        height: 44px !important;
        border-radius: 16px !important;
        margin: 0 !important;
        background: linear-gradient(135deg, #2563eb, #06b6d4) !important;
        border: 0 !important;
        box-shadow: 0 12px 24px rgba(37, 99, 235, .24) !important;
    }

    [data-theme="dark"] body.adm-msg-page,
    [data-theme="dark"] body.nxg-page,
    [data-theme="dark"] body.msg-show-page {
        background: #0f172a !important;
    }

    [data-theme="dark"] .adm-msg-list,
    [data-theme="dark"] .nxg-left,
    [data-theme="dark"] .adm-msg-workspace.has-open-thread .adm-msg-workspace-right,
    [data-theme="dark"] .nxg-right.nxg-mob-open,
    [data-theme="dark"] .msg-show-shell .profile-card {
        background: #0f172a !important;
    }

    [data-theme="dark"] .adm-msg-thread-header,
    [data-theme="dark"] .nxg-win-hdr,
    [data-theme="dark"] .adm-msg-composer,
    [data-theme="dark"] .nxg-win-foot,
    [data-theme="dark"] #compose-form {
        background: rgba(15, 23, 42, .94) !important;
        border-color: #334155 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nxm-drawer,
    .nxm-sheet,
    .nxm-bottom-link,
    .nxm-bottom-create,
    .nxm-drawer-link,
    .nxm-sheet-action {
        transition: none !important;
    }
}
