/* ==========================================================================
   Layout: Sidebar
   Full-height fixed sidebar with user card + vertical navigation
   ========================================================================== */

/* Sidebar container - no scroll, expand to fit content */
.lmsc-dash--sidebar .lmsc-dash__sidebar {
    overflow: visible;
}

/*
 * Full-width page templates (including Astra) can add auto inline margins to
 * every direct content child. On grid items those margins disable stretching,
 * collapsing the size-contained sidebar and expanding the main column.
 */
.lmsc-dash.lmsc-dash--sidebar > .lmsc-dash__sidebar,
.lmsc-dash.lmsc-dash--sidebar > .lmsc-dash__main {
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-width: 0;
    max-width: 100%;
    justify-self: stretch;
}

/* Main content area - scrolls naturally with page */
.lmsc-dash--sidebar .lmsc-dash__main {
    background: var(--lmsc-bg);
    min-height: 100vh;
    padding: 28px 36px;
}

/* Sidebar-specific: courses grid uses 3 columns, constrained width */
.lmsc-dash--sidebar .lmsc-dash__courses-grid {
    grid-template-columns: repeat(3, minmax(0, 380px));
    justify-content: center;
}

/* Sidebar: tighter thumbnail proportions */
.lmsc-dash--sidebar .lmsc-dash__course-thumbnail {
    height: 140px;
}

/* Sidebar-specific: stats row uses 4 columns */
.lmsc-dash--sidebar .lmsc-dash__stats-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}


/* Sidebar nav item hover micro-animation */
.lmsc-dash--sidebar .lmsc-dash__nav-item {
    position: relative;
    overflow: hidden;
}

.lmsc-dash--sidebar .lmsc-dash__nav-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%) scaleY(0);
    width: 3px;
    height: 60%;
    background: var(--lmsc-primary);
    border-radius: 0 4px 4px 0;
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.lmsc-dash--sidebar .lmsc-dash__nav-item:hover::before {
    transform: translateY(-50%) scaleY(1);
}

.lmsc-dash--sidebar .lmsc-dash__nav-item--active::before {
    transform: translateY(-50%) scaleY(1);
    background: #fff;
}

/* Sidebar user card separator */
.lmsc-dash--sidebar .lmsc-dash__sidebar-header {
    position: relative;
}

.lmsc-dash--sidebar .lmsc-dash__sidebar-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 24px;
    right: 24px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
}

/* Responsive: collapse sidebar on tablets */
@media (max-width: 1024px) {
    .lmsc-dash--sidebar {
        grid-template-columns: 72px 1fr;
    }

    .lmsc-dash--sidebar .lmsc-dash__sidebar {
        padding: 16px 0;
    }

    .lmsc-dash--sidebar .lmsc-dash__sidebar-header {
        padding: 8px;
    }

    .lmsc-dash--sidebar .lmsc-dash__sidebar-name,
    .lmsc-dash--sidebar .lmsc-dash__sidebar-role,
    .lmsc-dash--sidebar .lmsc-dash__nav-label,
    .lmsc-dash--sidebar .lmsc-dash__sidebar-footer p,
    .lmsc-dash--sidebar .lmsc-dash__logout-btn span {
        display: none;
    }

    .lmsc-dash--sidebar .lmsc-dash__sidebar-avatar {
        width: 40px;
        height: 40px;
        margin-bottom: 0;
    }

    .lmsc-dash--sidebar .lmsc-dash__nav-item {
        justify-content: center;
        padding: 12px;
    }

    .lmsc-dash--sidebar .lmsc-dash__nav-icon {
        margin: 0;
    }

    .lmsc-dash--sidebar .lmsc-dash__logout-btn {
        justify-content: center;
        padding: 12px;
    }
}

/* Mobile: sidebar becomes bottom bar */
@media (max-width: 768px) {
    .lmsc-dash--sidebar {
        display: flex;
        flex-direction: column;
        grid-template-columns: none;
    }

    .lmsc-dash--sidebar .lmsc-dash__sidebar {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        top: auto;
        height: auto;
        flex-direction: row;
        padding: 8px 4px;
        z-index: 1000;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        overflow-x: auto;
        overflow-y: hidden;
    }

    .lmsc-dash--sidebar .lmsc-dash__sidebar-header,
    .lmsc-dash--sidebar .lmsc-dash__sidebar-footer {
        display: none;
    }

    .lmsc-dash--sidebar .lmsc-dash__nav {
        display: flex;
        flex-direction: row;
        gap: 0;
        padding: 0;
        width: 100%;
        justify-content: space-around;
    }

    .lmsc-dash--sidebar .lmsc-dash__nav-item {
        flex-direction: column;
        gap: 4px;
        padding: 6px 8px;
        font-size: 10px;
        min-width: 0;
        flex-shrink: 0;
    }

    .lmsc-dash--sidebar .lmsc-dash__nav-label {
        display: block;
        font-size: 9px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 64px;
    }

    .lmsc-dash--sidebar .lmsc-dash__main {
        padding-bottom: 80px;
        max-height: none;
    }
}
