/* Shivakarma LMS Common CSS File */
/* Based on exact sidebar menu structure with 64 pages */






/* Shivakarma LMS Common CSS File */
/* Based on exact sidebar menu structure with 64 pages */

:root {
    --primary-blue: #006c35;
    --primary-orange: #dea757;
    --secondary-blue: #00d266;
    --light-blue: #e3f2fd;
    --dark-gray: #2c3e50;
    --medium-gray: #49797c;
    --light-gray: #ecf0f1;
    --white: #ffffff;
    --success: #27ae60;
    --warning: #f39c12;
    --danger: #e74c3c;
    --info: #3498db;
    --sidebar-width: 280px;
    --header-height: 70px;
    --border-radius: 8px;
    --box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s ease;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f8f9fa;
    color: var(--dark-gray);
    line-height: 1.6;
}

ul {
    list-style: none;
}
/* Header Styles */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--header-height);
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    box-shadow: var(--box-shadow);
    z-index: 1000;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.menu-toggle {
    background: none;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    padding: 8px;
    border-radius: 4px;
    transition: var(--transition);
}

.menu-toggle:hover {
    background: rgba(255, 255, 255, 0.1);
}

.logo {
    display: flex;
    align-items: center;
}

.logo-img {
    height: 45px;
    width: auto;
}

.header-center {
   margin-left: 100px;
}

.header-center h1 {
    color: white;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
}

.header-right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.notifications {
    position: relative;
    cursor: pointer;
    color: white;
    font-size: 18px;
    padding: 8px;
    border-radius: 50%;
    transition: var(--transition);
}

.notifications:hover {
    background: rgba(255, 255, 255, 0.1);
}

.notification-count {
    position: absolute;
    top: -5px;
    right: -5px;
    background: var(--primary-orange);
    color: white;
    border-radius: 50%;
    font-size: 12px;
    padding: 2px 6px;
    min-width: 18px;
    text-align: center;
}

.user-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    color: white;
    padding: 8px 12px;
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.user-profile:hover {
    background: rgba(255, 255, 255, 0.1);
}

.user-avatar {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.user-name {
    font-weight: 500;
}

.welcome-section {
    margin-bottom: 20px;
}

.welcome-section .welcome-card {
    background: white;
    padding: 25px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    display: flex;
    align-items: center;
    gap: 20px;
    transition: var(--transition);
}

.WelUser {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #006c35;
    margin-top: 10px;
}

.welcome-section .welcome-content h3 {
    font-size: 24px;
}

/* Sidebar Styles */
.sidebar {
    position: fixed;
    top: var(--header-height);
    left: 0;
    width: var(--sidebar-width);
    height: calc(100vh - var(--header-height));
    background: white;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
    overflow-y: auto;
    transition: var(--transition);
    z-index: 999;
}

.sidebar.collapsed {
    left: -300px;
}


.sidebar.show {
    transform: translateX(0);
}

.sidebar-header {
    padding: 20px;
    border-bottom: 1px solid var(--light-gray);
    background: #ddffee;
    border-bottom: 3px solid #006632;
}

.user-info {
    display: flex;
    align-items: center;
    gap: 15px;
}

.user-avatar-large {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--primary-blue);
}

.user-details h3 {
    font-size: 16px;
    color: var(--primary-blue);
    margin-bottom: 5px;
}

.user-details p {
    font-size: 14px;
    color: var(--medium-gray);
}


/* Sidebar Menu Styles */
.sidebar-menu {
    list-style: none;
    margin: 0;
    padding: 10px 0;
}

.sidebar-menu > li {
    position: relative;
    margin: 0;
    padding: 0;
}

.sidebar-menu > li > a {
    display: block;
    padding: 12px 15px;
    color: var(--dark-gray);
    text-decoration: none;
    transition: var(--transition);
    border-left: 3px solid transparent;
}

.sidebar-menu > li:hover > a,
.sidebar-menu > li.current-page > a,
.sidebar-menu > li.menu-open > a {
    background: linear-gradient(135deg, var(--primary-orange), #dea757);
    color: white;
    border-left-color: var(--primary-blue);
}

.sidebar-menu > li > a > i {
    width: 20px;
    text-align: center;
    margin-right: 10px;
}

.sidebar-menu > li > a > span {
    display: inline-block;
}

.pull-right-container {
    float: right;
}

.pull-right {
    transition: var(--transition);
}

.treeview.menu-open > a > .pull-right-container > .pull-right {
    transform: rotate(-90deg);
}

/* Treeview Menu Styles */
.treeview-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    background: #f8f9fa;
    border-left: 3px solid var(--light-gray);
    margin-left: 20px;
    display: none;
}

.treeview-menu[style*="display: block"],
.treeview-menu[style*="display: block;"] {
    display: block !important;
}

.treeview-menu > li {
    margin: 0;
}

.treeview-menu > li > a {
    display: block;
    padding: 10px 15px;
    color: var(--medium-gray);
    text-decoration: none;
    transition: var(--transition);
    font-size: 14px;
    border-left: 2px solid transparent;
}

.treeview-menu > li > a:hover {
    background: var(--light-blue);
    color: var(--primary-blue);
    border-left-color: var(--primary-orange);
    padding-left: 20px;
}

.treeview-menu > li > a > i {
    width: 16px;
    text-align: center;
    margin-right: 8px;
    font-size: 12px;
}

/* Nested Treeview (third level) */
.treeview-menu .treeview > a {
    background: #f0f0f0;
    font-weight: 500;
}

.treeview-menu .treeview-menu {
    background: #e8e8e8;
    margin-left: 15px;
    border-left-color: var(--primary-orange);
}

.treeview-menu .treeview-menu > li > a {
    padding-left: 25px;
    font-size: 13px;
}

.treeview-menu .treeview-menu > li > a:hover {
    padding-left: 30px;
    background: var(--light-blue);
}

/* Active states */
.sidebar-menu li.active > a,
.treeview-menu li.active > a {
    background: var(--primary-blue);
    color: white;
}

/* Arrow rotation for nested items */
.treeview-menu .treeview.menu-open > a > .pull-right-container > .pull-right {
    transform: rotate(-90deg);
}

/* Main Content Styles */
.main-content {
    margin-left: var(--sidebar-width);
    margin-top: var(--header-height);
    padding: 30px;
    min-height: calc(100vh - var(--header-height));
    transition: var(--transition);
}

.sidebar.collapsed + .main-content {
    margin-left: 0px;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--light-gray);
}

.page-header h2 {
    color: var(--primary-blue);
    font-size: 28px;
    font-weight: 600;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--medium-gray);
    font-size: 14px;
}

.breadcrumb i {
    font-size: 12px;
}

/* PAGE-SPECIFIC STYLES */

/* Dashboard Styles */
.dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.stat-card {
    background: white;
    padding: 25px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    display: flex;
    align-items: center;
    gap: 20px;
    transition: var(--transition);
}

.stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

.stat-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: white;
}

.stat-icon.blue { background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue)); }
.stat-icon.orange { background: linear-gradient(135deg, var(--primary-orange), #dea757); }
.stat-icon.purple { background: linear-gradient(135deg, #8e44ad, #9b59b6); }
.stat-icon.red { background: linear-gradient(135deg, var(--danger), #ec7063); }
.stat-icon.green { background: linear-gradient(135deg, var(--success), #58d68d); }

.stat-info h3 {
    font-size: 32px;
    font-weight: 700;
    color: var(--dark-gray);
    margin-bottom: 5px;
}

.stat-info p {
    color: var(--medium-gray);
    font-size: 14px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 20px;
}

.dashboard-card {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
    transition: var(--transition);
}

.dashboard-card:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

.card-header {
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    color: white;
    padding: 20px;
}

.card-header h3 {
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.card-content, .card-body {
    padding: 20px;
}

/* Cards */
.card {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
    margin-bottom: 20px;
    transition: var(--transition);
}

.card:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

.card-footer {
    background: var(--light-gray);
    padding: 15px 20px;
    border-top: 1px solid #dee2e6;
}

/* Forms */
.form-group {
    margin-bottom: 20px;
}

.form-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: var(--dark-gray);
}

.form-control {
    width: 100%;
    padding: 12px;
    border: 2px solid var(--light-gray);
    border-radius: var(--border-radius);
    font-size: 14px;
    transition: var(--transition);
}

.form-control:focus {
    outline: none;
    border-color: var(--primary-blue);
    box-shadow: 0 0 0 3px rgba(44, 90, 160, 0.1);
}

.form-control.error {
    border-color: var(--danger);
}

.form-control.success {
    border-color: var(--success);
}

.form-text {
    font-size: 12px;
    color: var(--medium-gray);
    margin-top: 5px;
}

.form-text.error {
    color: var(--danger);
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 24px;
    border: none;
    border-radius: var(--border-radius);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: var(--transition);
    text-align: center;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    color: white;
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--secondary-blue), var(--primary-blue));
    transform: translateY(-2px);
}

.btn-secondary {
    background: linear-gradient(135deg, var(--primary-orange), #dea757);
    color: white;
}

.btn-secondary:hover {
    background: linear-gradient(135deg, #dea757, var(--primary-orange));
    transform: translateY(-2px);
}

.btn-success {
    background: linear-gradient(135deg, var(--success), #58d68d);
    color: white;
}

.btn-danger {
    background: linear-gradient(135deg, var(--danger), #ec7063);
    color: white;
}

.btn-warning {
    background: linear-gradient(135deg, var(--warning), #f7dc6f);
    color: white;
}

.btn-info {
    background: linear-gradient(135deg, var(--info), #7fb3d3);
    color: white;
}

.btn-outline {
    background: transparent;
    border: 2px solid var(--primary-blue);
    color: var(--primary-blue);
}

.btn-outline:hover {
    background: var(--primary-blue);
    color: white;
}

.btn-sm {
    padding: 8px 16px;
    font-size: 12px;
}

.btn-lg {
    padding: 16px 32px;
    font-size: 16px;
}

/* Tables */
.table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--box-shadow);
}

.table th,
.table td {
    padding: 15px;
    text-align: left;
    border-bottom: 1px solid var(--light-gray);
}

.table th {
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    color: white;
    font-weight: 600;
    font-size: 14px;
}

.table tbody tr:hover {
    background: var(--light-blue);
}

.table tbody tr:last-child td {
    border-bottom: none;
}

/* Data Table Specific */
.data-table th[data-sortable] {
    cursor: pointer;
    position: relative;
}

.data-table th[data-sortable]:hover {
    background: var(--secondary-blue);
}

.data-table th.sort-asc::after {
    content: '▲';
    position: absolute;
    right: 10px;
}

.data-table th.sort-desc::after {
    content: '▼';
    position: absolute;
    right: 10px;
}

/* Search */
.search-container {
    position: relative;
    margin-bottom: 20px;
}

.search-input {
    width: 100%;
    padding: 12px 45px 12px 15px;
    border: 2px solid var(--light-gray);
    border-radius: var(--border-radius);
    font-size: 14px;
    transition: var(--transition);
}

.search-input:focus {
    outline: none;
    border-color: var(--primary-blue);
}

.search-btn {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--medium-gray);
    cursor: pointer;
    font-size: 16px;
}

/* Badges */
.badge {
    display: inline-block;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 4px;
    text-transform: uppercase;
}

.badge-primary { background: var(--primary-blue); color: white; }
.badge-secondary { background: var(--primary-orange); color: white; }
.badge-success { background: var(--success); color: white; }
.badge-danger { background: var(--danger); color: white; }
.badge-warning { background: var(--warning); color: white; }
.badge-info { background: var(--info); color: white; }

/* Progress Bars */
.progress-item {
    margin-bottom: 20px;
}

.progress-info {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
}

.progress-bar {
    height: 8px;
    background: var(--light-gray);
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(135deg, var(--primary-orange), #dea757);
    border-radius: 4px;
    transition: width 0.3s ease;
}

/* Modals */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition);
}

.modal.show {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    background: white;
    border-radius: var(--border-radius);
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    transform: scale(0.8);
    transition: var(--transition);
}

.modal.show .modal-content {
    transform: scale(1);
}

.modal-header {
    padding: 20px;
    border-bottom: 1px solid var(--light-gray);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-body {
    padding: 20px;
}

.modal-footer {
    padding: 15px 20px;
    border-top: 1px solid var(--light-gray);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.modal-close {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--medium-gray);
}

/* Tabs */
.nav-tabs {
    display: flex;
    border-bottom: 2px solid var(--light-gray);
    margin-bottom: 20px;
}

.nav-tab {
    padding: 15px 25px;
    background: none;
    border: none;
    color: var(--medium-gray);
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: var(--transition);
    font-weight: 500;
}

.nav-tab.active,
.nav-tab:hover {
    color: var(--primary-blue);
    border-bottom-color: var(--primary-orange);
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

/* Alerts */
.alert {
    padding: 15px;
    border-radius: var(--border-radius);
    margin-bottom: 20px;
    border-left: 4px solid;
}

.alert-success {
    background: #d4edda;
    border-color: var(--success);
    color: #155724;
}

.alert-danger {
    background: #f8d7da;
    border-color: var(--danger);
    color: #721c24;
}

.alert-warning {
    background: #fff3cd;
    border-color: var(--warning);
    color: #856404;
}

.alert-info {
    background: #d1ecf1;
    border-color: var(--info);
    color: #0c5460;
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin: 20px 0;
}

.page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--light-gray);
    color: var(--dark-gray);
    text-decoration: none;
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.page-link:hover,
.page-link.active {
    background: var(--primary-blue);
    color: white;
    border-color: var(--primary-blue);
}

/* Assignment Submission Specific */
.file-upload-zone {
    border: 2px dashed var(--light-gray);
    border-radius: var(--border-radius);
    padding: 30px;
    text-align: center;
    cursor: pointer;
    transition: var(--transition);
    background: #f8f9fa;
}

.file-upload-zone:hover {
    border-color: var(--primary-blue);
    background: var(--light-blue);
}

.file-upload-zone.dragover {
    border-color: var(--primary-orange);
    background: #fff5f0;
}

.file-list {
    margin-top: 15px;
}

.file-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    border: 1px solid var(--light-gray);
    border-radius: var(--border-radius);
    margin-bottom: 10px;
    background: white;
}

/* Digital Library Specific */
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.category-card {
    background: white;
    padding: 25px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    text-align: center;
    cursor: pointer;
    transition: var(--transition);
    border: 2px solid transparent;
}

.category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
    border-color: var(--primary-orange);
}

.category-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px;
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: white;
}

/* Attendance Specific */
.checkin-methods {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.method-card {
    background: white;
    padding: 30px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    text-align: center;
    cursor: pointer;
    transition: var(--transition);
    border: 2px solid transparent;
}

.method-card:hover {
    border-color: var(--primary-blue);
    transform: translateY(-3px);
}

.method-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px;
    background: var(--light-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: var(--primary-blue);
}

.class-item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px;
    border: 1px solid var(--light-gray);
    border-radius: var(--border-radius);
    margin-bottom: 15px;
    background: white;
    transition: var(--transition);
}

.class-item.completed {
    border-left: 4px solid var(--success);
}

.class-item.current {
    border-left: 4px solid var(--warning);
    background: #fff8e7;
}

.class-item.upcoming {
    border-left: 4px solid var(--info);
}

.status-badge {
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.status-badge.success {
    background: var(--success);
    color: white;
}

.status-badge.warning {
    background: var(--warning);
    color: white;
}

.status-badge.info {
    background: var(--info);
    color: white;
}

/* Course Management Specific */
.courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 20px;
}

.course-card {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
    transition: var(--transition);
}

.course-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

.course-header {
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    color: white;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.course-image {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.course-actions {
    padding: 15px 20px;
    border-top: 1px solid var(--light-gray);
    display: flex;
    gap: 10px;
}

/* Gradebook Specific */
.grade-display {
    text-align: center;
    padding: 20px;
    background: var(--light-blue);
    border-radius: var(--border-radius);
    margin-bottom: 20px;
}

.grade-score {
    display: block;
    font-size: 48px;
    font-weight: 700;
    color: var(--primary-blue);
}

.grade-letter {
    display: block;
    font-size: 24px;
    font-weight: 600;
    color: var(--success);
}

/* Calendar Specific */
.calendar {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
}

.calendar-header {
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    color: white;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.calendar-days-header {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: var(--light-gray);
}

.calendar-days-header > div {
    padding: 15px;
    text-align: center;
    font-weight: 600;
    color: var(--dark-gray);
}

.calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.calendar-day {
    padding: 15px;
    text-align: center;
    border: 1px solid var(--light-gray);
    cursor: pointer;
    transition: var(--transition);
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.calendar-day:hover {
    background: var(--light-blue);
}

.calendar-day.today {
    background: var(--primary-blue);
    color: white;
}

.calendar-day.has-events {
    background: var(--primary-orange);
    color: white;
}

.calendar-day.empty {
    background: #f5f5f5;
    color: var(--medium-gray);
}

/* Video Player Specific */
.video-player {
    background: black;
    border-radius: var(--border-radius);
    overflow: hidden;
    position: relative;
}

.video-controls {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.8));
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.play-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--primary-orange);
    border: none;
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.progress-slider {
    flex: 1;
    height: 5px;
    background: rgba(255,255,255,0.3);
    border-radius: 3px;
    cursor: pointer;
}

.progress-slider-fill {
    height: 100%;
    background: var(--primary-orange);
    border-radius: 3px;
    transition: width 0.1s ease;
}

/* Quiz/Test Specific */
.question-container {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 30px;
    margin-bottom: 20px;
}

.question-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--light-gray);
}

.question-number {
    background: var(--primary-blue);
    color: white;
    padding: 8px 15px;
    border-radius: var(--border-radius);
    font-weight: 600;
}

.question-timer {
    background: var(--warning);
    color: white;
    padding: 8px 15px;
    border-radius: var(--border-radius);
    font-weight: 600;
}

.answer-options {
    margin: 20px 0;
}

.answer-option {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px;
    border: 2px solid var(--light-gray);
    border-radius: var(--border-radius);
    margin-bottom: 10px;
    cursor: pointer;
    transition: var(--transition);
}

.answer-option:hover {
    border-color: var(--primary-blue);
    background: var(--light-blue);
}

.answer-option.selected {
    border-color: var(--primary-orange);
    background: #fff5f0;
}

.answer-option input[type="radio"] {
    width: 20px;
    height: 20px;
}

/* Message/Chat Specific */
.message-container {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    height: 600px;
    display: flex;
    flex-direction: column;
}

.message-header {
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    color: white;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.message-list {
    flex: 1;
    padding: 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.message-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.message-item.sent {
    flex-direction: row-reverse;
}

.message-avatar {
    /* width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover; */

    width: 80px;
   height: 80px;
   border-radius: 50%;
   object-fit: cover;
   border: 4px solid var(--primary-blue);
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
   transition: var(--transition);

}

.message-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.message-content {
    background: var(--light-gray);
    padding: 12px 15px;
    border-radius: var(--border-radius);
    max-width: 70%;
}

.message-item.sent .message-content {
    background: var(--primary-blue);
    color: white;
}

.message-input-container {
    padding: 20px;
    border-top: 1px solid var(--light-gray);
    display: flex;
    gap: 10px;
}

.message-input {
    flex: 1;
    padding: 12px 15px;
    border: 2px solid var(--light-gray);
    border-radius: var(--border-radius);
    resize: none;
}

/* Notification Styles */
.notification {
    position: fixed;
    top: 80px;
    right: 20px;
    max-width: 350px;
    padding: 15px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    z-index: 2000;
    opacity: 0;
    transform: translateX(100%);
    transition: var(--transition);
}

.notification.show {
    opacity: 1;
    transform: translateX(0);
}

.notification.success {
    background: var(--success);
    color: white;
}

.notification.error {
    background: var(--danger);
    color: white;
}

.notification.warning {
    background: var(--warning);
    color: white;
}

.notification.info {
    background: var(--info);
    color: white;
}

/* Loading Spinner */
.loading-spinner {
    display: inline-block;
    width: 40px;
    height: 40px;
    border: 4px solid var(--light-gray);
    border-left-color: var(--primary-blue);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Dropdown */
.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    min-width: 200px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: var(--transition);
    z-index: 1000;
}

.dropdown.show .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-item {
    display: block;
    padding: 12px 20px;
    color: var(--dark-gray);
    text-decoration: none;
    transition: var(--transition);
}

.dropdown-item:hover {
    background: var(--light-blue);
    color: var(--primary-blue);
}

/* Certificate/Achievement Styles */
.certificate-container {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border: 10px solid var(--primary-blue);
    border-radius: 15px;
    padding: 50px;
    text-align: center;
    position: relative;
    margin: 30px 0;
}

.certificate-header {
    margin-bottom: 30px;
}

.certificate-title {
    font-size: 36px;
    color: var(--primary-blue);
    font-weight: 700;
    margin-bottom: 10px;
}

.certificate-subtitle {
    font-size: 18px;
    color: var(--medium-gray);
}

.certificate-content {
    margin: 40px 0;
}

.certificate-recipient {
    font-size: 24px;
    color: var(--dark-gray);
    margin-bottom: 20px;
}

.certificate-course {
    font-size: 20px;
    color: var(--primary-orange);
    font-weight: 600;
}

.certificate-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 40px;
}

.certificate-seal {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--primary-orange);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 24px;
}

/* Achievement Badge */
.achievement-badge {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--warning), #f7dc6f);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 36px;
    margin: 0 auto 15px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

/* Timetable/Schedule Specific */
.timetable-grid {
    display: grid;
    grid-template-columns: 100px repeat(7, 1fr);
    gap: 1px;
    background: var(--light-gray);
    border-radius: var(--border-radius);
    overflow: hidden;
}

.time-slot {
    background: white;
    padding: 15px 10px;
    text-align: center;
    font-weight: 600;
    color: var(--dark-gray);
}

.timetable-cell {
    background: white;
    padding: 10px;
    min-height: 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    transition: var(--transition);
}

.timetable-cell:hover {
    background: var(--light-blue);
}

.timetable-cell.has-class {
    background: var(--primary-blue);
    color: white;
}

.class-subject {
    font-weight: 600;
    margin-bottom: 5px;
}

.class-room {
    font-size: 12px;
    opacity: 0.8;
}

/* Footer */
.footer {
    background: linear-gradient(135deg, var(--dark-gray), #34495e);
    color: white;
    padding: 20px;
    text-align: center;
    margin-top: 50px;
}

.footer-content p {
    margin-bottom: 5px;
}

/* Utility Classes */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-primary { color: var(--primary-blue); }
.text-secondary { color: var(--primary-orange); }
.text-success { color: var(--success); }
.text-danger { color: var(--danger); }
.text-warning { color: var(--warning); }
.text-info { color: var(--info); }
.text-muted { color: var(--medium-gray); }

.bg-primary { background: var(--primary-blue); }
.bg-secondary { background: var(--primary-orange); }
.bg-success { background: var(--success); }
.bg-danger { background: var(--danger); }
.bg-warning { background: var(--warning); }
.bg-info { background: var(--info); }
.bg-light { background: var(--light-gray); }

.d-none { display: none; }
.d-block { display: block; }
.d-flex { display: flex; }
.d-grid { display: grid; }

.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.align-center { align-items: center; }

.mt-1 { margin-top: 10px; }
.mt-2 { margin-top: 20px; }
.mt-3 { margin-top: 30px; }
.mb-1 { margin-bottom: 10px; }
.mb-2 { margin-bottom: 20px; }
.mb-3 { margin-bottom: 30px; }
.p-1 { padding: 10px; }
.p-2 { padding: 20px; }
.p-3 { padding: 30px; }

.w-100 { width: 100%; }
.h-100 { height: 100%; }

.gap-1 { gap: 10px; }
.gap-2 { gap: 20px; }
.gap-3 { gap: 30px; }


/* Responsive Design */
@media (max-width: 768px) {

     .sidebar {
    left: -300px;
}

.sidebar.collapsed {
    left:0px;
    top: 99px;
}
    
    .sidebar.show {
        transform: translateX(0);
    }
    
    .main-content {
        margin-left: 0;
        padding: 20px 15px;
    }
    
    .header-center h1 {
        font-size: 18px;
    }
    
 
    .user-name {
        display: none;
    }
    
    .dashboard-stats {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 15px;
    }
    
    .dashboard-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    
    .courses-grid {
        grid-template-columns: 1fr;
    }
    
    .category-grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
    
    .checkin-methods {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
    
    .timetable-grid {
        grid-template-columns: 80px repeat(7, 1fr);
    }
    
    .certificate-container {
        padding: 30px 20px;
    }
    
    .certificate-title {
        font-size: 28px;
    }
    
    .certificate-footer {
        flex-direction: column;
        gap: 20px;
    }
}

@media (max-width: 480px) {
    .header {
        padding: 0 15px;
    }
    
    .header-center h1 {
        font-size: 16px;
    }
    
    .stat-card {
        padding: 20px 15px;
    }
    
    .stat-icon {
        width: 50px;
        height: 50px;
        font-size: 20px;
    }
    
    .stat-info h3 {
        font-size: 24px;
    }
    
    .card-content,
    .card-body {
        padding: 15px;
    }
    
    .btn {
        padding: 10px 20px;
        font-size: 13px;
    }
    
    .table th,
    .table td {
        padding: 10px 8px;
        font-size: 13px;
    }
    
    .timetable-grid {
        grid-template-columns: 60px repeat(5, 1fr);
        font-size: 12px;
    }
    
    .certificate-title {
        font-size: 24px;
    }
    
    .certificate-recipient {
        font-size: 20px;
    }
}/* Shivakarma LMS Common CSS File */
/* Based on exact sidebar menu structure with 64 pages */

/* :root {
    --primary-blue: #2c5aa0;
    --primary-orange: #ff6b35;
    --secondary-blue: #4a90e2;
    --light-blue: #e3f2fd;
    --dark-gray: #2c3e50;
    --medium-gray: #7f8c8d;
    --light-gray: #ecf0f1;
    --white: #ffffff;
    --success: #27ae60;
    --warning: #f39c12;
    --danger: #e74c3c;
    --info: #3498db;
    --sidebar-width: 280px;
    --header-height: 70px;
    --border-radius: 8px;
    --box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s ease;
} */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f8f9fa;
    color: var(--dark-gray);
    line-height: 1.6;
}

/* Header Styles */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--header-height);
    /* background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue)); */
    background: #006c35;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    box-shadow: var(--box-shadow);
    z-index: 1000;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.menu-toggle {
    background: none;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    padding: 8px;
    border-radius: 4px;
    transition: var(--transition);
}

.menu-toggle:hover {
    background: rgba(255, 255, 255, 0.1);
}

.logo {
    display: flex;
    align-items: center;
}

.logo-img {
    height: 45px;
    width: auto;
}

.header-center h1 {
    color: white;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
}

.header-right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.notifications {
    position: relative;
    cursor: pointer;
    color: white;
    font-size: 18px;
    padding: 8px;
    border-radius: 50%;
    transition: var(--transition);
}

.notifications:hover {
    background: rgba(255, 255, 255, 0.1);
}

.notification-count {
    position: absolute;
    top: -5px;
    right: -5px;
    background: var(--primary-orange);
    color: white;
    border-radius: 50%;
    font-size: 12px;
    padding: 2px 6px;
    min-width: 18px;
    text-align: center;
}

.user-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    color: white;
    padding: 8px 12px;
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.user-profile:hover {
    background: rgba(255, 255, 255, 0.1);
}

.user-avatar {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.user-name {
    font-weight: 500;
}

/* Sidebar Styles */
/* .sidebar {
    position: fixed;
    top: var(--header-height);
    left: 0;
    width: var(--sidebar-width);
    height: calc(100vh - var(--header-height));
    background: white;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
    overflow-y: auto;
    transition: var(--transition);
    z-index: 999;
}


.sidebar.show {
    transform: translateX(0);
}

.sidebar-header {
    padding: 20px;
    border-bottom: 1px solid var(--light-gray);
    background: linear-gradient(135deg, var(--light-blue), #f0f8ff);
} */

.user-info {
    display: flex;
    align-items: center;
    gap: 15px;
}

.user-avatar-large {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #006c35;
}

.user-details h3 {
    font-size: 16px;
    color: #006632;
    margin-bottom: 5px;
}

.user-details p {
    font-size: 12px;
    color: #404040;
    font-weight: 600;
}

/* Sidebar Menu Styles */
.sidebar-menu {
    list-style: none;
    margin: 0;
    padding: 10px 0;
}

.sidebar-menu > li {
    position: relative;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #b3b3b3;
}

.sidebar-menu > li > a {
    display: block;
    padding: 6px 8px;
    color: var(--dark-gray);
    text-decoration: none;
    transition: var(--transition);
    border-left: 3px solid transparent;
    font-size: 16px;
}

.sidebar-menu > li:hover > a,
.sidebar-menu > li.current-page > a,
.sidebar-menu > li.menu-open > a {
    /* background: linear-gradient(135deg, var(--primary-orange), #dea757); */
    background: #006c35;
    color: white;
    border-left-color: #00c45f;
}

.sidebar-menu > li > a > i {
    width: 20px;
    text-align: center;
    margin-right: 10px;
}

.sidebar-menu > li > a > span {
    display: inline-block;
}

.pull-right-container {
    float: right;
}

.pull-right {
    transition: var(--transition);
}

.treeview.menu-open > a > .pull-right-container > .pull-right {
    transform: rotate(-90deg);
}

/* Treeview Menu Styles */
.treeview-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    background: #f8f9fa;
    border-left: 3px solid var(--light-gray);
    margin-left: 20px;
    display: none;
}

.treeview-menu[style*="display: block"],
.treeview-menu[style*="display: block;"] {
    display: block !important;
}

.treeview-menu > li {
    margin: 0;
    border-bottom: 1px solid #b3b3b3;
}

.treeview-menu > li > a {
    display: block;
    padding: 5px 7px;
    color: #333;
    text-decoration: none;
    transition: var(--transition);
    font-size: 14px;
    border-left: 2px solid transparent;
    font-weight: 500;
}

.treeview-menu > li > a:hover {
    background: #006c35;
    color: #fff;
    border-left-color: #00c45f;
    padding-left: 20px;
}

.treeview-menu > li > a > i {
    width: 16px;
    text-align: center;
    margin-right: 8px;
    font-size: 12px;
}

/* Nested Treeview (third level) */
.treeview-menu .treeview > a {
    background: #f0f0f0;
    font-weight: 500;
    color: #333;
}

.treeview-menu .treeview-menu {
    background: #f7f7f7;
    margin-left: 15px;
    border-left-color: var(--primary-orange);
}

.treeview-menu .treeview-menu > li > a {
    padding-left: 25px;
    font-size: 13px;
}

.treeview-menu .treeview-menu > li > a:hover {
    padding-left: 30px;
    background: var(--light-blue);
}

/* Active states */
.sidebar-menu li.active > a,
.treeview-menu li.active > a {
    background: var(--primary-blue);
    color: white;
}

/* Arrow rotation for nested items */
.treeview-menu .treeview.menu-open > a > .pull-right-container > .pull-right {
    transform: rotate(-90deg);
}

/* Main Content Styles */
.main-content {
    margin-left: var(--sidebar-width);
    margin-top: var(--header-height);
    padding: 30px;
    min-height: calc(100vh - var(--header-height));
    transition: var(--transition);
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--light-gray);
}

.page-header h2 {
    color: #000;
    font-size: 28px;
    font-weight: 600;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--medium-gray);
    font-size: 14px;
}

.breadcrumb i {
    font-size: 12px;
}

/* Footer */
.footer {
    background: linear-gradient(135deg, var(--dark-gray), #34495e);
    color: white;
    padding: 5px;
    text-align: right;
    margin-top: 50px;
}

.footer-content p {
    margin: 0px 10px 0px 0px;
    font-size: 12px;
}

/* Responsive Design */
@media (max-width: 768px) {
    
    .sidebar.show {
        transform: translateX(0);
    }
    
    .main-content {
        margin-left: 0;
        padding: 20px 15px;
    }
    
    .header-center h1 {
        font-size: 18px;
    }
    
    .user-name {
        display: none;
    }
    
    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        margin-top: 20px;
    }
}

@media (max-width: 768px) {
   .header-center {
   margin-left: 0px;
   position: absolute;
    background: #00a451;
    width: 100%;
    top: 70px;
    padding: 6px 4px;
    left: 0;
    text-align: center;
}

.header-center h1 {
        font-size: 16px;
        line-height: 16px;
        text-align: center;
        /* margin-left: 9px; */
    }
}

/* Additional CSS for sidebar enhancements */
/* Add this to your common.css file */

.sidebar-menu .treeview-menu .treeview-menu {
    margin-left: 25px;
    border-left-color: #00c45f;
}

.sidebar-menu .treeview-menu .treeview-menu > li > a {
    padding-left: 15px;
    font-size: 12px;
    color: #333;
}

.sidebar-menu .treeview-menu .treeview-menu > li > a:hover {
    padding-left: 25px;
}

.sidebar .current-page > a {
    background:#006c35;
    color: white !important;
    border-left-color: var(--primary-blue) !important;
}

.sidebar .active > a {
    background: var(--light-blue) !important;
    color: var(--primary-blue) !important;
    font-weight: 600;
}



/* Appointment History */
.appointment-history {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 30px;
}

/* Appointment Item */
.appointment-item {
   display: flex;
   gap: 20px;
   padding: 20px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 15px;
   transition: var(--transition);
   background: white;
}

.appointment-item:hover {
   box-shadow: 0 2px 8px rgba(0,0,0,0.1);
   transform: translateY(-1px);
}

.appointment-item.upcoming {
   border-left: 4px solid var(--info);
   background: linear-gradient(to right, #e3f2fd, white);
}

.appointment-item.completed {
   border-left: 4px solid var(--success);
   background: linear-gradient(to right, #f1f8e9, white);
   opacity: 0.9;
}

.appointment-item.cancelled {
   border-left: 4px solid var(--danger);
   background: linear-gradient(to right, #ffebee, white);
   opacity: 0.8;
}

.appointment-item.missed {
   border-left: 4px solid var(--warning);
   background: linear-gradient(to right, #fff8e1, white);
   opacity: 0.8;
}

/* Appointment Date */
.appointment-date {
   display: flex;
   flex-direction: column;
   align-items: center;
   min-width: 80px;
   padding: 10px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
   text-align: center;
}

.date-day {
   font-size: 24px;
   font-weight: 700;
   color: var(--primary-blue);
   line-height: 1;
}

.date-month {
   font-size: 12px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 600;
   margin-top: 2px;
}

.date-time {
   font-size: 11px;
   color: var(--dark-gray);
   font-weight: 500;
   margin-top: 5px;
   padding: 2px 6px;
   background: white;
   border-radius: 3px;
}

/* Appointment Details */
.appointment-details {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.appointment-header {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   margin-bottom: 10px;
}

.appointment-meta {
   display: flex;
   flex-direction: column;
   gap: 5px;
   flex: 1;
}

.appointment-with {
   font-size: 18px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 5px;
}

.appointment-location {
   font-size: 14px;
   color: var(--medium-gray);
   display: flex;
   align-items: center;
   gap: 5px;
}

.appointment-location::before {
   content: '\f3c5';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 12px;
}

/* Appointment Info */
.appointment-info {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
   gap: 10px;
   margin: 10px 0;
   padding: 10px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
}

.appointment-type {
   font-size: 13px;
   color: var(--dark-gray);
}

.appointment-type::before {
   content: 'Type: ';
   font-weight: 600;
}

.appointment-duration {
   font-size: 13px;
   color: var(--dark-gray);
}

.appointment-duration::before {
   content: 'Duration: ';
   font-weight: 600;
}

.appointment-mode {
   font-size: 13px;
   color: var(--dark-gray);
}

.appointment-mode::before {
   content: 'Mode: ';
   font-weight: 600;
}

.appointment-purpose {
   grid-column: 1 / -1;
   font-size: 13px;
   color: var(--dark-gray);
}

.appointment-purpose::before {
   content: 'Purpose: ';
   font-weight: 600;
}

/* Appointment Status */
.appointment-status {
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 12px;
   font-weight: 600;
   text-transform: uppercase;
   align-self: flex-start;
}

.appointment-status.upcoming {
   background: var(--info);
   color: white;
}

.appointment-status.completed {
   background: var(--success);
   color: white;
}

.appointment-status.cancelled {
   background: var(--danger);
   color: white;
}

.appointment-status.missed {
   background: var(--warning);
   color: white;
}

/* Appointment Actions */
.appointment-actions {
   display: flex;
   gap: 8px;
   align-items: flex-start;
   flex-wrap: wrap;
}

/* Appointment Notes */
.appointment-notes {
   background: #f8f9fa;
   padding: 10px;
   border-radius: var(--border-radius);
   border-left: 3px solid var(--primary-orange);
   margin-top: 10px;
   font-size: 14px;
   color: var(--dark-gray);
   line-height: 1.4;
}

.appointment-notes::before {
   content: '\f304';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   margin-right: 8px;
   color: var(--primary-orange);
}

/* Responsive Design */
@media (max-width: 768px) {
   .appointment-item {
       flex-direction: column;
       gap: 15px;
   }
   
   .appointment-date {
       align-self: flex-start;
       min-width: 60px;
   }
   
   .appointment-header {
       flex-direction: column;
       gap: 10px;
   }
   
   .appointment-info {
       grid-template-columns: 1fr;
   }
   
   .appointment-actions {
       justify-content: flex-start;
   }
}

@media (max-width: 480px) {
   .appointment-history {
       padding: 15px;
   }
   
   .appointment-item {
       padding: 15px;
   }
   
   .date-day {
       font-size: 20px;
   }
   
   .appointment-with {
       font-size: 16px;
   }
}

/* Exam Filters */
.exam-filters {
   background: white;
   padding: 20px;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   margin-bottom: 30px;
}

.semester-filter {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 20px;
   flex-wrap: wrap;
}

.filter-buttons {
   display: flex;
   gap: 10px;
   flex-wrap: wrap;
}

.btn.btn-outline {
   background: transparent;
   border: 2px solid var(--light-gray);
   color: #00090a;
   padding: 8px 16px;
   border-radius: var(--border-radius);
   font-size: 14px;
   font-weight: 500;
   cursor: pointer;
   transition: var(--transition);
}

.btn.btn-outline:hover {
   border-color: var(--primary-blue);
   color: var(--primary-orange);
   background: var(--light-blue);
}

.btn.btn-outline.active {
   background: var(--primary-blue);
   border-color: var(--primary-blue);
   color: rgb(0, 0, 0);
}

.form-control {
   width: 100%;
   padding: 12px;
   border: 2px solid var(--light-gray);
   border-radius: var(--border-radius);
   font-size: 14px;
   transition: var(--transition);
   background: white;
}

.form-control:focus {
   outline: none;
   border-color: var(--primary-blue);
   box-shadow: 0 0 0 3px rgba(44, 90, 160, 0.1);
}

/* Card Styles */
.card {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   overflow: hidden;
   margin-bottom: 20px;
   transition: var(--transition);
}

.card:hover {
   box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

.card-header {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   padding: 20px;
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.card-content {
   padding: 20px;
}

/* Exam Timeline */
.exam-timeline {
   display: flex;
   flex-direction: column;
   gap: 30px;
}

.exam-section {
   position: relative;
}

.exam-section::before {
   content: '';
   position: absolute;
   left: 40px;
   top: 0;
   bottom: 0;
   width: 2px;
   background: var(--light-gray);
   z-index: 1;
}

/* Exam Item */
.exam-item {
   display: flex;
   gap: 20px;
   padding: 20px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 15px;
   transition: var(--transition);
   background: white;
   position: relative;
}

.exam-item:hover {
   box-shadow: 0 2px 8px rgba(0,0,0,0.1);
   transform: translateY(-1px);
}

.exam-item.theory {
   border-left: 4px solid var(--primary-blue);
}

.exam-item.practical {
   border-left: 4px solid var(--success);
}

.exam-item.viva {
   border-left: 4px solid var(--warning);
}

.exam-item.upcoming {
   background: linear-gradient(to right, #e3f2fd, white);
}

.exam-item.completed {
   background: linear-gradient(to right, #f1f8e9, white);
   opacity: 0.9;
}

.exam-item.ongoing {
   background: linear-gradient(to right, #fff8e1, white);
   border-left-color: var(--warning);
}

/* Exam Date */
.exam-date {
   display: flex;
   flex-direction: column;
   align-items: center;
   min-width: 80px;
   padding: 15px 10px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
   text-align: center;
   position: relative;
}

.exam-date::after {
   content: '';
   position: absolute;
   left: -10px;
   top: 50%;
   transform: translateY(-50%);
   width: 12px;
   height: 12px;
   background: var(--primary-blue);
   border-radius: 50%;
   border: 3px solid white;
   z-index: 2;
}

.exam-date .date-day {
   font-size: 24px;
   font-weight: 700;
   color: var(--primary-blue);
   line-height: 1;
}

.exam-date .date-month {
   font-size: 12px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 600;
   margin-top: 2px;
}

/* Exam Details */
.exam-details {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.exam-meta {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   margin-bottom: 10px;
}

.exam-meta h4 {
   font-size: 18px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 5px;
}

.exam-time {
   font-size: 14px;
   color: var(--primary-blue);
   font-weight: 600;
   display: flex;
   align-items: center;
   gap: 5px;
}

.exam-time::before {
   content: '\f017';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 12px;
}

.exam-venue {
   font-size: 14px;
   color: var(--medium-gray);
   display: flex;
   align-items: center;
   gap: 5px;
   margin-bottom: 5px;
}

.exam-venue::before {
   content: '\f3c5';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 12px;
}

.exam-duration {
   font-size: 13px;
   color: var(--dark-gray);
   display: flex;
   align-items: center;
   gap: 5px;
}

.exam-duration::before {
   content: '\f254';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 12px;
}

.exam-code {
   font-size: 13px;
   color: var(--medium-gray);
   font-family: monospace;
   background: var(--light-gray);
   padding: 2px 6px;
   border-radius: 3px;
   display: inline-block;
}

.exam-marks {
   font-size: 13px;
   color: var(--dark-gray);
   font-weight: 500;
}

.exam-marks::before {
   content: 'Max Marks: ';
   font-weight: 600;
}

.seat-number {
   font-size: 13px;
   color: var(--primary-blue);
   font-weight: 600;
   background: var(--light-blue);
   padding: 4px 8px;
   border-radius: var(--border-radius);
   display: inline-block;
}

.seat-number::before {
   content: 'Seat: ';
   font-weight: 400;
}

/* Exam Status */
.exam-status {
   padding: 6px 12px;
   border-radius: var(--border-radius);
   font-size: 12px;
   font-weight: 600;
   text-transform: uppercase;
   align-self: flex-start;
   white-space: nowrap;
}

.exam-status.upcoming {
   background: var(--info);
   color: white;
}

.exam-status.ongoing {
   background: var(--warning);
   color: white;
   animation: pulse 2s infinite;
}

.exam-status.completed {
   background: var(--success);
   color: white;
}

.exam-status.cancelled {
   background: var(--danger);
   color: white;
}

@keyframes pulse {
   0%, 100% { opacity: 1; }
   50% { opacity: 0.7; }
}

/* Responsive Design */
@media (max-width: 768px) {
   .exam-filters {
       padding: 15px;
   }
   
   .semester-filter {
       flex-direction: column;
       align-items: stretch;
       gap: 15px;
   }
   
   .filter-buttons {
       justify-content: center;
   }
   
   .exam-item {
       flex-direction: column;
       gap: 15px;
   }
   
   .exam-date {
       align-self: flex-start;
       min-width: 60px;
   }
   
   .exam-meta {
       flex-direction: column;
       gap: 10px;
   }
   
   .exam-section::before {
       left: 30px;
   }
}

@media (max-width: 480px) {
   .card-header,
   .card-content {
       padding: 15px;
   }
   
   .exam-item {
       padding: 15px;
   }
   
   .exam-date .date-day {
       font-size: 20px;
   }
   
   .exam-meta h4 {
       font-size: 16px;
   }
   
   .btn.btn-outline {
       padding: 6px 12px;
       font-size: 13px;
   }
}

/* Counselor Profile */
.counselor-profile {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 25px;
   margin-bottom: 30px;
   display: flex;
   gap: 20px;
   align-items: flex-start;
}

.counselor-info {
   display: flex;
   gap: 20px;
   align-items: center;
   flex: 1;
}

.counselor-details {
   flex: 1;
}

.counselor-details h3 {
   font-size: 22px;
   font-weight: 600;
   color: var(--primary-blue);
   margin-bottom: 8px;
}

.counselor-details p {
   color: var(--medium-gray);
   font-size: 16px;
   margin-bottom: 15px;
}

.counselor-credentials {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-bottom: 15px;
}

.counselor-credentials .badge {
   background: var(--light-blue);
   color: var(--primary-blue);
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 12px;
   font-weight: 500;
}

.contact-info {
   display: flex;
   flex-direction: column;
   gap: 8px;
   margin-top: 10px;
}

.contact-info div {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 14px;
   color: var(--dark-gray);
}

.contact-info i {
   width: 16px;
   color: var(--medium-gray);
}

.counselor-status {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 10px;
   min-width: 120px;
}

.counselor-status .status-indicator {
   width: 12px;
   height: 12px;
   border-radius: 50%;
   background: var(--success);
   display: inline-block;
   margin-right: 5px;
}

.counselor-status .status-indicator.busy {
   background: var(--warning);
}

.counselor-status .status-indicator.offline {
   background: var(--medium-gray);
}

.next-available {
   font-size: 12px;
   color: var(--medium-gray);
   text-align: center;
   padding: 8px 12px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
}

.quick-actions {
   display: flex;
   gap: 10px;
   margin-top: 15px;
}

/* Sessions List */
.sessions-list {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 30px;
}

.session-item {
   display: flex;
   gap: 20px;
   padding: 20px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 15px;
   transition: var(--transition);
   background: white;
}

.session-item:hover {
   box-shadow: 0 2px 8px rgba(0,0,0,0.1);
   transform: translateY(-1px);
}

.session-item.upcoming {
   border-left: 4px solid var(--info);
   background: linear-gradient(to right, #e3f2fd, white);
}

.session-item.completed {
   border-left: 4px solid var(--success);
   background: linear-gradient(to right, #f1f8e9, white);
   opacity: 0.9;
}

.session-item.cancelled {
   border-left: 4px solid var(--danger);
   background: linear-gradient(to right, #ffebee, white);
   opacity: 0.8;
}

/* Session Date */
.session-date {
   display: flex;
   flex-direction: column;
   align-items: center;
   min-width: 80px;
   padding: 15px 10px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
   text-align: center;
}

.session-date .date-day {
   font-size: 24px;
   font-weight: 700;
   color: var(--primary-blue);
   line-height: 1;
}

.session-date .date-month {
   font-size: 12px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 600;
   margin-top: 2px;
}

.session-date .date-time {
   font-size: 11px;
   color: var(--dark-gray);
   font-weight: 500;
   margin-top: 5px;
   padding: 2px 6px;
   background: white;
   border-radius: 3px;
}

/* Session Details */
.session-details {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 10px;
}

.session-info {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   margin-bottom: 10px;
}

.session-info h4 {
   font-size: 18px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 5px;
}

.session-info .session-type {
   background: var(--primary-blue);
   color: white;
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 12px;
   font-weight: 500;
   text-transform: uppercase;
}

.session-description {
   color: var(--medium-gray);
   font-size: 14px;
   line-height: 1.5;
   margin-bottom: 10px;
}

.session-preparation {
   background: var(--light-blue);
   padding: 12px;
   border-radius: var(--border-radius);
   border-left: 3px solid var(--primary-blue);
   margin: 10px 0;
}

.session-preparation h5 {
   font-size: 14px;
   font-weight: 600;
   color: var(--primary-blue);
   margin-bottom: 8px;
}

.session-preparation ul {
   margin: 0;
   padding-left: 18px;
   color: var(--dark-gray);
   font-size: 13px;
}

.session-preparation li {
   margin-bottom: 4px;
}

.session-actions {
   display: flex;
   gap: 10px;
   align-items: center;
   margin-top: 10px;
   flex-wrap: wrap;
}

/* Services List */
.services-list {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
}

.service-item {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 15px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 12px;
   transition: var(--transition);
   background: white;
}

.service-item:hover {
   box-shadow: 0 2px 8px rgba(0,0,0,0.1);
   background: var(--light-blue);
}

.service-details {
   flex: 1;
}

.service-details h4 {
   font-size: 16px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 5px;
}

.service-details p {
   color: var(--medium-gray);
   font-size: 14px;
   margin: 0;
}

.service-duration {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 5px;
   min-width: 80px;
   text-align: center;
}

.service-duration .duration-time {
   font-size: 18px;
   font-weight: 700;
   color: var(--primary-blue);
}

.service-duration .duration-label {
   font-size: 11px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 500;
}

.service-duration .duration-price {
   font-size: 12px;
   color: var(--success);
   font-weight: 600;
   background: #f1f8e9;
   padding: 2px 6px;
   border-radius: 3px;
}

/* Responsive Design */
@media (max-width: 768px) {
   .counselor-profile {
       flex-direction: column;
       gap: 15px;
       padding: 20px;
   }
   
   .counselor-info {
       flex-direction: column;
       text-align: center;
   }
   
   .counselor-status {
       align-self: center;
   }
   
   .session-item {
       flex-direction: column;
       gap: 15px;
   }
   
   .session-date {
       align-self: flex-start;
       min-width: 60px;
   }
   
   .session-info {
       flex-direction: column;
       gap: 10px;
   }
   
   .session-actions {
       justify-content: flex-start;
   }
   
   .service-item {
       flex-direction: column;
       gap: 10px;
       text-align: center;
   }
   
   .service-duration {
       flex-direction: row;
       justify-content: center;
   }
}

@media (max-width: 480px) {
   .counselor-profile,
   .sessions-list,
   .services-list {
       padding: 15px;
   }
   
   .session-item {
       padding: 15px;
   }
   
   .session-date .date-day {
       font-size: 20px;
   }
   
   .session-info h4 {
       font-size: 16px;
   }
   
   .counselor-details h3 {
       font-size: 20px;
   }
   
   .quick-actions {
       flex-direction: column;
   }
}

/* Counselor Avatar */
.counselor-avatar {
   width: 80px;
   height: 80px;
   border-radius: 50%;
   object-fit: cover;
   border: 4px solid var(--primary-blue);
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
   transition: var(--transition);
}

.counselor-avatar:hover {
   transform: scale(1.05);
   box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

/* Responsive Design */
@media (max-width: 768px) {
   .counselor-avatar {
       width: 70px;
       height: 70px;
       border-width: 3px;
   }
}

@media (max-width: 480px) {
   .counselor-avatar {
       width: 60px;
       height: 60px;
       border-width: 2px;
   }
}

/* Message Item Unread */
.message-item.unread {
   background: linear-gradient(to right, #e3f2fd, white);
   border-left: 4px solid var(--primary-blue);
   font-weight: 600;
}

.message-item.unread .message-content {
   background: var(--light-blue);
   border-left: 3px solid var(--primary-blue);
}

.message-item.unread .message-title {
   color: var(--primary-blue);
   font-weight: 700;
}

.message-item.unread::before {
   content: '';
   position: absolute;
   left: -2px;
   top: 50%;
   transform: translateY(-50%);
   width: 8px;
   height: 8px;
   background: var(--primary-orange);
   border-radius: 50%;
   border: 2px solid white;
}

.message-item.unread:hover {
   background: linear-gradient(to right, #bbdefb, #f5f5f5);
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Course Catalog Header */
.course-catalog-header {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   padding: 30px;
   border-radius: var(--border-radius);
   margin-bottom: 30px;
   position: relative;
   overflow: hidden;
}

.course-catalog-header::before {
   content: '';
   position: absolute;
   top: -50%;
   right: -10%;
   width: 200px;
   height: 200px;
   background: rgba(255, 255, 255, 0.1);
   border-radius: 50%;
   transform: scale(2);
}

.course-catalog-header h2 {
   font-size: 28px;
   font-weight: 600;
   margin-bottom: 10px;
   position: relative;
   z-index: 2;
}

.course-catalog-header p {
   font-size: 16px;
   opacity: 0.9;
   margin-bottom: 20px;
   position: relative;
   z-index: 2;
}

.course-catalog-header .catalog-stats {
   display: flex;
   gap: 30px;
   margin-top: 20px;
   position: relative;
   z-index: 2;
   flex-wrap: wrap;
}

.course-catalog-header .stat-item {
   display: flex;
   align-items: center;
   gap: 10px;
}

.course-catalog-header .stat-icon {
   width: 40px;
   height: 40px;
   background: rgba(255, 255, 255, 0.2);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 18px;
}

.course-catalog-header .stat-text {
   display: flex;
   flex-direction: column;
}

.course-catalog-header .stat-number {
   font-size: 20px;
   font-weight: 700;
   line-height: 1;
}

.course-catalog-header .stat-label {
   font-size: 12px;
   opacity: 0.8;
   text-transform: uppercase;
   font-weight: 500;
}

/* Responsive Design */
@media (max-width: 768px) {
   .course-catalog-header {
       padding: 25px 20px;
   }
   
   .course-catalog-header h2 {
       font-size: 24px;
   }
   
   .course-catalog-header .catalog-stats {
       gap: 20px;
   }
   
   .course-catalog-header .stat-icon {
       width: 35px;
       height: 35px;
       font-size: 16px;
   }
   
   .course-catalog-header .stat-number {
       font-size: 18px;
   }
}

@media (max-width: 480px) {
   .course-catalog-header {
       padding: 20px 15px;
   }
   
   .course-catalog-header h2 {
       font-size: 22px;
   }
   
   .course-catalog-header p {
       font-size: 14px;
   }
   
   .course-catalog-header .catalog-stats {
       flex-direction: column;
       gap: 15px;
   }
}

/* Courses Container */
.courses-container {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
   gap: 25px;
   margin-bottom: 30px;
}

/* Course Catalog Item */
.course-catalog-item {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   overflow: hidden;
   transition: var(--transition);
   border: 1px solid var(--light-gray);
}

.course-catalog-item:hover {
   transform: translateY(-5px);
   box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
   border-color: var(--primary-blue);
}

/* Course Image */
.course-image {
   width: 100%;
   height: 200px;
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   display: flex;
   align-items: center;
   justify-content: center;
   position: relative;
   overflow: hidden;
}

.course-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.course-image::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   background: linear-gradient(45deg, rgba(44, 90, 160, 0.8), rgba(74, 144, 226, 0.8));
   z-index: 1;
}

.course-image .course-icon {
   font-size: 48px;
   color: white;
   z-index: 2;
   position: relative;
}

/* Course Basic Info */
.course-basic-info {
   padding: 20px;
}

.course-basic-info h3 {
   font-size: 18px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 8px;
   line-height: 1.3;
}

.course-subtitle {
   color: var(--medium-gray);
   font-size: 14px;
   margin-bottom: 15px;
   line-height: 1.4;
}

/* Course Meta */
.course-meta {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 15px;
   flex-wrap: wrap;
   gap: 10px;
}

.course-code {
   background: var(--light-gray);
   color: var(--dark-gray);
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 12px;
   font-weight: 600;
   font-family: monospace;
   text-transform: uppercase;
}

.instructor {
   color: var(--primary-blue);
   font-size: 13px;
   font-weight: 500;
   display: flex;
   align-items: center;
   gap: 5px;
}

.instructor::before {
   content: '\f007';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 11px;
}

/* Enrollment Status */
.enrollment-status {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 15px;
}

.status-badge {
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 11px;
   font-weight: 600;
   text-transform: uppercase;
}

.status-badge.open {
   background: var(--success);
   color: white;
}

.status-badge.closed {
   background: var(--danger);
   color: white;
}

.status-badge.waitlist {
   background: var(--warning);
   color: white;
}

.status-badge.full {
   background: var(--medium-gray);
   color: white;
}

.enrollment-count {
   font-size: 12px;
   color: var(--medium-gray);
   display: flex;
   align-items: center;
   gap: 5px;
}

.enrollment-count::before {
   content: '\f0c0';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
}

/* Course Info Grid */
.course-info-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 12px;
   margin-bottom: 20px;
   padding: 15px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
}

.info-item {
   display: flex;
   flex-direction: column;
   gap: 4px;
}

.info-item .label {
   font-size: 11px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 600;
}

.info-item .value {
   font-size: 13px;
   color: var(--dark-gray);
   font-weight: 500;
}

.info-item .value.highlight {
   color: var(--primary-blue);
   font-weight: 600;
}

/* Course Actions */
.course-catalog-item .course-actions {
   padding: 0 20px 20px;
   display: flex;
   gap: 10px;
}

.course-catalog-item .btn-enroll {
   flex: 1;
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   border: none;
   padding: 12px;
   border-radius: var(--border-radius);
   font-weight: 600;
   cursor: pointer;
   transition: var(--transition);
}

.course-catalog-item .btn-enroll:hover {
   background: linear-gradient(135deg, var(--secondary-blue), var(--primary-blue));
   transform: translateY(-1px);
}

.course-catalog-item .btn-enroll:disabled {
   background: var(--medium-gray);
   cursor: not-allowed;
   transform: none;
}

.course-catalog-item .btn-info {
   background: var(--light-blue);
   color: var(--primary-blue);
   border: 2px solid var(--primary-blue);
   padding: 10px 15px;
   border-radius: var(--border-radius);
   font-weight: 500;
   cursor: pointer;
   transition: var(--transition);
}

.course-catalog-item .btn-info:hover {
   background: var(--primary-blue);
   color: white;
}

/* Special States */
.course-catalog-item.enrolled {
   border-left: 4px solid var(--success);
}

.course-catalog-item.enrolled .course-image::after {
   content: '\f00c';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   position: absolute;
   top: 15px;
   right: 15px;
   background: var(--success);
   color: white;
   width: 30px;
   height: 30px;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 14px;
   z-index: 3;
}

.course-catalog-item.prerequisite-missing {
   opacity: 0.7;
   border-left: 4px solid var(--warning);
}

.course-catalog-item.prerequisite-missing::before {
   content: 'Prerequisites Required';
   position: absolute;
   top: 10px;
   left: 10px;
   background: var(--warning);
   color: white;
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 11px;
   font-weight: 600;
   z-index: 4;
}

/* Responsive Design */
@media (max-width: 768px) {
   .courses-container {
       grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
       gap: 20px;
   }
   
   .course-image {
       height: 150px;
   }
   
   .course-basic-info {
       padding: 15px;
   }
   
   .course-info-grid {
       grid-template-columns: 1fr;
       gap: 8px;
       padding: 12px;
   }
   
   .course-meta {
       flex-direction: column;
       align-items: flex-start;
       gap: 8px;
   }
}

@media (max-width: 480px) {
   .courses-container {
       grid-template-columns: 1fr;
       gap: 15px;
   }
   
   .course-image {
       height: 120px;
   }
   
   .course-image .course-icon {
       font-size: 36px;
   }
   
   .course-basic-info h3 {
       font-size: 16px;
   }
   
   .course-catalog-item .course-actions {
       flex-direction: column;
       padding: 0 15px 15px;
   }
}

/* Course Catalog Footer */
.course-catalog-footer {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   padding: 20px;
   border-radius: var(--border-radius);
   text-align: center;
   margin-top: 30px;
}

/* Recommendations */
.recommendations {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 30px;
}

.recommendations h3 {
   color: var(--primary-blue);
   font-size: 20px;
   font-weight: 600;
   margin-bottom: 20px;
   display: flex;
   align-items: center;
   gap: 10px;
}

.recommendations h3::before {
   content: '\f0eb';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 18px;
   color: var(--primary-orange);
}

/* Recommendation Item */
.recommendation-item {
   display: flex;
   gap: 15px;
   padding: 20px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 15px;
   transition: var(--transition);
   background: linear-gradient(to right, #f8f9fa, white);
}

.recommendation-item:hover {
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
   transform: translateY(-2px);
   border-color: var(--primary-blue);
}

.recommendation-item:last-child {
   margin-bottom: 0;
}

/* Recommendation Icon */
.recommendation-icon {
   width: 50px;
   height: 50px;
   border-radius: 50%;
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 20px;
   flex-shrink: 0;
   box-shadow: 0 3px 10px rgba(44, 90, 160, 0.3);
}

.recommendation-icon.academic {
   background: linear-gradient(135deg, var(--success), #58d68d);
}

.recommendation-icon.skill {
   background: linear-gradient(135deg, var(--warning), #f7dc6f);
}

.recommendation-icon.career {
   background: linear-gradient(135deg, var(--info), #7fb3d3);
}

.recommendation-icon.personal {
   background: linear-gradient(135deg, var(--primary-orange), #dea757);
}

/* Recommendation Content */
.recommendation-content {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.recommendation-content h4 {
   font-size: 16px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 5px;
   line-height: 1.3;
}

.recommendation-content p {
   color: var(--medium-gray);
   font-size: 14px;
   line-height: 1.5;
   margin-bottom: 10px;
}

/* Recommendation Reasons */
.recommendation-reasons {
   background: var(--light-blue);
   padding: 10px 12px;
   border-radius: var(--border-radius);
   border-left: 3px solid var(--primary-blue);
   margin: 8px 0;
}

.recommendation-reasons h5 {
   font-size: 12px;
   font-weight: 600;
   color: var(--primary-blue);
   text-transform: uppercase;
   margin-bottom: 6px;
}

.recommendation-reasons ul {
   margin: 0;
   padding-left: 15px;
   color: var(--dark-gray);
   font-size: 13px;
}

.recommendation-reasons li {
   margin-bottom: 3px;
   line-height: 1.4;
}

.recommendation-reasons .match-score {
   display: inline-block;
   background: var(--success);
   color: white;
   padding: 2px 6px;
   border-radius: 3px;
   font-size: 11px;
   font-weight: 600;
   margin-left: 8px;
}

/* Recommendation Actions */
.recommendation-actions {
   display: flex;
   gap: 8px;
   margin-top: 10px;
   flex-wrap: wrap;
}

.recommendation-actions .btn-primary {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   border: none;
   padding: 8px 16px;
   border-radius: var(--border-radius);
   font-size: 12px;
   font-weight: 600;
   cursor: pointer;
   transition: var(--transition);
}

.recommendation-actions .btn-primary:hover {
   background: linear-gradient(135deg, var(--secondary-blue), var(--primary-blue));
   transform: translateY(-1px);
}

.recommendation-actions .btn-secondary {
   background: transparent;
   color: var(--primary-blue);
   border: 1px solid var(--primary-blue);
   padding: 7px 15px;
   border-radius: var(--border-radius);
   font-size: 12px;
   font-weight: 500;
   cursor: pointer;
   transition: var(--transition);
}

.recommendation-actions .btn-secondary:hover {
   background: var(--primary-blue);
   color: white;
}

.recommendation-actions .btn-dismiss {
   background: transparent;
   color: var(--medium-gray);
   border: 1px solid var(--light-gray);
   padding: 7px 12px;
   border-radius: var(--border-radius);
   font-size: 12px;
   cursor: pointer;
   transition: var(--transition);
}

.recommendation-actions .btn-dismiss:hover {
   background: var(--danger);
   color: white;
   border-color: var(--danger);
}

/* Priority Indicators */
.recommendation-item.high-priority {
   border-left: 4px solid var(--danger);
}

.recommendation-item.high-priority::before {
   content: 'High Priority';
   position: absolute;
   top: 10px;
   right: 10px;
   background: var(--danger);
   color: white;
   padding: 3px 8px;
   border-radius: 3px;
   font-size: 10px;
   font-weight: 600;
   text-transform: uppercase;
}

.recommendation-item.medium-priority {
   border-left: 4px solid var(--warning);
}

.recommendation-item.low-priority {
   border-left: 4px solid var(--info);
}

/* Recommendation Categories */
.recommendation-item.academic {
   background: linear-gradient(to right, #f1f8e9, white);
}

.recommendation-item.skill {
   background: linear-gradient(to right, #fff8e1, white);
}

.recommendation-item.career {
   background: linear-gradient(to right, #e3f2fd, white);
}

.recommendation-item.personal {
   background: linear-gradient(to right, #fff5f0, white);
}

/* Empty State */
.recommendations.empty {
   text-align: center;
   padding: 40px 20px;
   color: var(--medium-gray);
}

.recommendations.empty .empty-icon {
   font-size: 48px;
   color: var(--light-gray);
   margin-bottom: 15px;
}

.recommendations.empty p {
   font-size: 16px;
   margin-bottom: 20px;
}

/* Responsive Design */
@media (max-width: 768px) {
   .recommendation-item {
       flex-direction: column;
       gap: 12px;
       padding: 15px;
   }
   
   .recommendation-icon {
       align-self: flex-start;
       width: 40px;
       height: 40px;
       font-size: 16px;
   }
   
   .recommendation-actions {
       justify-content: flex-start;
   }
   
   .recommendation-reasons {
       padding: 8px 10px;
   }
}

@media (max-width: 480px) {
   .recommendations {
       padding: 15px;
   }
   
   .recommendation-item {
       padding: 12px;
   }
   
   .recommendation-content h4 {
       font-size: 15px;
   }
   
   .recommendation-actions {
       flex-direction: column;
   }
   
   .recommendation-actions .btn-primary,
   .recommendation-actions .btn-secondary,
   .recommendation-actions .btn-dismiss {
       text-align: center;
   }
}

/* Recent Courses */
.recent-courses {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 30px;
}

.recent-courses h3 {
   color: var(--primary-blue);
   font-size: 20px;
   font-weight: 600;
   margin-bottom: 20px;
   display: flex;
   align-items: center;
   gap: 10px;
}

.recent-courses h3::before {
   content: '\f017';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 18px;
   color: var(--primary-orange);
}

/* Recent Course Item */
.recent-course-item {
   display: flex;
   gap: 15px;
   padding: 15px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 12px;
   transition: var(--transition);
   background: white;
}

.recent-course-item:hover {
   box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
   transform: translateY(-2px);
   border-color: var(--primary-blue);
   background: var(--light-blue);
}

.recent-course-item:last-child {
   margin-bottom: 0;
}

/* Course Thumbnail */
.course-thumbnail {
   width: 60px;
   height: 60px;
   border-radius: var(--border-radius);
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 20px;
   flex-shrink: 0;
   overflow: hidden;
   box-shadow: 0 2px 8px rgba(44, 90, 160, 0.2);
}

.course-thumbnail img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.course-thumbnail.completed {
   background: linear-gradient(135deg, var(--success), #58d68d);
}

.course-thumbnail.in-progress {
   background: linear-gradient(135deg, var(--warning), #f7dc6f);
}

.course-thumbnail.not-started {
   background: linear-gradient(135deg, var(--medium-gray), #bdc3c7);
}

/* Course Info */
.course-info {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 6px;
   justify-content: center;
}

.course-info h4 {
   font-size: 16px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 4px;
   line-height: 1.3;
}

.course-info .course-code {
   background: var(--light-gray);
   color: var(--dark-gray);
   padding: 2px 6px;
   border-radius: 3px;
   font-size: 11px;
   font-weight: 600;
   font-family: monospace;
   text-transform: uppercase;
   display: inline-block;
   margin-bottom: 6px;
}

.course-info .course-instructor {
   color: var(--medium-gray);
   font-size: 13px;
   display: flex;
   align-items: center;
   gap: 5px;
}

.course-info .course-instructor::before {
   content: '\f007';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 11px;
}

.course-info .course-progress {
   display: flex;
   align-items: center;
   gap: 8px;
   margin-top: 4px;
}

.course-info .progress-bar-mini {
   flex: 1;
   height: 4px;
   background: var(--light-gray);
   border-radius: 2px;
   overflow: hidden;
}

.course-info .progress-fill-mini {
   height: 100%;
   background: linear-gradient(135deg, var(--success), #58d68d);
   border-radius: 2px;
   transition: width 0.3s ease;
}

.course-info .progress-text-mini {
   font-size: 11px;
   color: var(--medium-gray);
   font-weight: 500;
   min-width: 35px;
}

.course-info .last-accessed {
   color: var(--medium-gray);
   font-size: 12px;
   margin-top: 2px;
}

.course-info .last-accessed::before {
   content: 'Last accessed: ';
   font-weight: 500;
}

/* Course Actions */
.course-actions {
   display: flex;
   flex-direction: column;
   gap: 8px;
   align-items: flex-end;
   justify-content: center;
   min-width: 80px;
}

.course-actions .btn-continue {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   border: none;
   padding: 8px 12px;
   border-radius: var(--border-radius);
   font-size: 12px;
   font-weight: 600;
   cursor: pointer;
   transition: var(--transition);
   text-align: center;
   min-width: 70px;
}

.course-actions .btn-continue:hover {
   background: linear-gradient(135deg, var(--secondary-blue), var(--primary-blue));
   transform: translateY(-1px);
}

.course-actions .btn-view {
   background: transparent;
   color: var(--primary-blue);
   border: 1px solid var(--primary-blue);
   padding: 6px 12px;
   border-radius: var(--border-radius);
   font-size: 11px;
   font-weight: 500;
   cursor: pointer;
   transition: var(--transition);
   text-align: center;
   min-width: 70px;
}

.course-actions .btn-view:hover {
   background: var(--primary-blue);
   color: white;
}

.course-actions .course-status {
   font-size: 10px;
   font-weight: 600;
   text-transform: uppercase;
   padding: 3px 6px;
   border-radius: 3px;
   text-align: center;
}

.course-actions .course-status.completed {
   background: var(--success);
   color: white;
}

.course-actions .course-status.in-progress {
   background: var(--warning);
   color: white;
}

.course-actions .course-status.not-started {
   background: var(--medium-gray);
   color: white;
}

.course-actions .course-status.overdue {
   background: var(--danger);
   color: white;
}

/* Recent Course Variants */
.recent-course-item.priority {
   border-left: 4px solid var(--primary-orange);
}

.recent-course-item.completed {
   opacity: 0.8;
   background: linear-gradient(to right, #f1f8e9, white);
}

.recent-course-item.deadline-approaching {
   border-left: 4px solid var(--danger);
   background: linear-gradient(to right, #ffebee, white);
}

.recent-course-item.new {
   border-left: 4px solid var(--info);
   background: linear-gradient(to right, #e3f2fd, white);
}

/* Empty State */
.recent-courses.empty {
   text-align: center;
   padding: 40px 20px;
   color: var(--medium-gray);
}

.recent-courses.empty .empty-icon {
   font-size: 48px;
   color: var(--light-gray);
   margin-bottom: 15px;
}

.recent-courses.empty p {
   font-size: 16px;
   margin-bottom: 20px;
}

.recent-courses.empty .btn-browse {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   color: white;
   padding: 12px 24px;
   border: none;
   border-radius: var(--border-radius);
   font-weight: 600;
   cursor: pointer;
   transition: var(--transition);
}

.recent-courses.empty .btn-browse:hover {
   background: linear-gradient(135deg, var(--secondary-blue), var(--primary-blue));
   transform: translateY(-2px);
}

/* Responsive Design */
@media (max-width: 768px) {
   .recent-course-item {
       flex-direction: column;
       gap: 12px;
       padding: 12px;
   }
   
   .course-thumbnail {
       align-self: flex-start;
       width: 50px;
       height: 50px;
       font-size: 16px;
   }
   
   .course-actions {
       flex-direction: row;
       align-items: center;
       justify-content: flex-start;
       min-width: auto;
   }
   
   .course-info .course-progress {
       margin-top: 8px;
   }
}

@media (max-width: 480px) {
   .recent-courses {
       padding: 15px;
   }
   
   .recent-course-item {
       padding: 10px;
   }
   
   .course-thumbnail {
       width: 45px;
       height: 45px;
       font-size: 14px;
   }
   
   .course-info h4 {
       font-size: 15px;
   }
   
   .course-actions {
       flex-direction: column;
       gap: 6px;
   }
   
   .course-actions .btn-continue,
   .course-actions .btn-view {
       min-width: 60px;
       padding: 6px 10px;
       font-size: 11px;
   }
}

/* Connection Status */
.connection-status {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 20px;
}

.connection-status h4 {
   color: var(--primary-blue);
   font-size: 16px;
   font-weight: 600;
   margin-bottom: 15px;
   display: flex;
   align-items: center;
   gap: 8px;
}

.connection-status h4::before {
   content: '\f1eb';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 14px;
   color: var(--success);
}

.status-item {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 12px 0;
   border-bottom: 1px solid var(--light-gray);
}

.status-item:last-child {
   border-bottom: none;
}

.status-item .status-label {
   font-size: 14px;
   color: var(--dark-gray);
   font-weight: 500;
}

.status-item .status-value {
   font-size: 13px;
   font-weight: 600;
   padding: 4px 8px;
   border-radius: 4px;
}

.status-item .status-value.good {
   background: var(--success);
   color: white;
}

.status-item .status-value.fair {
   background: var(--warning);
   color: white;
}

.status-item .status-value.poor {
   background: var(--danger);
   color: white;
}

/* Settings Group */
.settings-group {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 20px;
}

.settings-group h4 {
   color: var(--primary-blue);
   font-size: 16px;
   font-weight: 600;
   margin-bottom: 15px;
}

.settings-group .form-group {
   margin-bottom: 15px;
}

/* Streaming Settings */
.streaming-settings {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
}

.streaming-settings .quality-options {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
   gap: 10px;
   margin: 15px 0;
}

.streaming-settings .quality-option {
   padding: 12px;
   border: 2px solid var(--light-gray);
   border-radius: var(--border-radius);
   text-align: center;
   cursor: pointer;
   transition: var(--transition);
}

.streaming-settings .quality-option.selected {
   border-color: var(--primary-blue);
   background: var(--light-blue);
}

/* Stream Actions */
.stream-actions {
   display: flex;
   gap: 15px;
   margin-top: 20px;
   flex-wrap: wrap;
}

.stream-actions .btn-start-stream {
   background: linear-gradient(135deg, var(--danger), #ec7063);
   color: white;
   border: none;
   padding: 12px 24px;
   border-radius: var(--border-radius);
   font-weight: 600;
   cursor: pointer;
   transition: var(--transition);
   display: flex;
   align-items: center;
   gap: 8px;
}

.stream-actions .btn-start-stream:hover {
   background: linear-gradient(135deg, #ec7063, var(--danger));
   transform: translateY(-2px);
}

.stream-actions .btn-start-stream.recording {
   background: linear-gradient(135deg, var(--success), #58d68d);
   animation: pulse 2s infinite;
}

/* Stream Details */
.stream-details {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
   margin-bottom: 20px;
}

.stream-details .detail-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
   gap: 15px;
}

.stream-details .detail-item {
   text-align: center;
   padding: 15px;
   background: var(--light-gray);
   border-radius: var(--border-radius);
}

.stream-details .detail-value {
   font-size: 24px;
   font-weight: 700;
   color: var(--primary-blue);
   margin-bottom: 5px;
}

.stream-details .detail-label {
   font-size: 12px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 500;
}

/* Recent Stream Item */
.recent-stream-item {
   display: flex;
   gap: 15px;
   padding: 15px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 12px;
   transition: var(--transition);
   background: white;
}

.recent-stream-item:hover {
   box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
   transform: translateY(-1px);
   border-color: var(--primary-blue);
}

/* Stream Thumbnail Small */
.stream-thumbnail-small {
   width: 80px;
   height: 60px;
   border-radius: var(--border-radius);
   background: linear-gradient(135deg, var(--dark-gray), #34495e);
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 16px;
   flex-shrink: 0;
   overflow: hidden;
   position: relative;
}

.stream-thumbnail-small img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

/* Recorded Badge */
.recorded-badge {
   position: absolute;
   top: 5px;
   right: 5px;
   background: var(--danger);
   color: white;
   padding: 2px 5px;
   border-radius: 3px;
   font-size: 9px;
   font-weight: 600;
   text-transform: uppercase;
}

/* Stream Info */
.stream-info {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 6px;
   justify-content: center;
}

.stream-info h4 {
   font-size: 16px;
   font-weight: 600;
   color: var(--dark-gray);
   margin-bottom: 4px;
}

.stream-info .stream-subject {
   color: var(--primary-blue);
   font-size: 13px;
   font-weight: 500;
}

.stream-info .stream-instructor {
   color: var(--medium-gray);
   font-size: 13px;
}

.stream-info .stream-duration {
   color: var(--medium-gray);
   font-size: 12px;
   display: flex;
   align-items: center;
   gap: 5px;
}

.stream-info .stream-duration::before {
   content: '\f017';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 10px;
}

/* Stream Time */
.stream-time {
   color: var(--medium-gray);
   font-size: 12px;
   text-align: right;
   min-width: 80px;
}

/* Upcoming Stream Item */
.upcoming-stream-item {
   display: flex;
   gap: 15px;
   padding: 20px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 15px;
   transition: var(--transition);
   background: linear-gradient(to right, #e3f2fd, white);
   border-left: 4px solid var(--info);
}

.upcoming-stream-item:hover {
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   transform: translateY(-2px);
}

/* Stream Countdown */
.stream-countdown {
   display: flex;
   flex-direction: column;
   align-items: center;
   min-width: 100px;
   text-align: center;
}

.countdown-timer {
   font-size: 20px;
   font-weight: 700;
   color: var(--primary-blue);
   margin-bottom: 5px;
   font-family: monospace;
}

.countdown-timer.urgent {
   color: var(--danger);
   animation: pulse 1s infinite;
}

.stream-countdown .countdown-label {
   font-size: 11px;
   color: var(--medium-gray);
   text-transform: uppercase;
   font-weight: 500;
}

/* Subject Tag */
.subject-tag {
   display: inline-block;
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 11px;
   font-weight: 600;
   text-transform: uppercase;
   margin-bottom: 8px;
}

.subject-tag.pharmacology {
   background: var(--success);
   color: white;
}

.subject-tag.pathology {
   background: var(--danger);
   color: white;
}

.subject-tag.anatomy {
   background: var(--warning);
   color: white;
}

.subject-tag.physiology {
   background: var(--info);
   color: white;
}

.subject-tag.microbiology {
   background: var(--primary-orange);
   color: white;
}

/* Stream Description */
.stream-description {
   color: var(--medium-gray);
   font-size: 14px;
   line-height: 1.5;
   margin: 8px 0;
}

/* Live Streams */
.live-streams {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   padding: 20px;
}

/* Live Stream Item */
.live-stream-item {
   display: flex;
   gap: 20px;
   padding: 20px;
   border: 1px solid var(--light-gray);
   border-radius: var(--border-radius);
   margin-bottom: 15px;
   transition: var(--transition);
   background: white;
}

.live-stream-item.active {
   border-left: 4px solid var(--danger);
   background: linear-gradient(to right, #ffebee, white);
   box-shadow: 0 4px 15px rgba(231, 76, 60, 0.2);
}

.live-stream-item:hover {
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   transform: translateY(-2px);
}

/* Stream Thumbnail */
.stream-thumbnail {
   width: 160px;
   height: 120px;
   border-radius: var(--border-radius);
   background: linear-gradient(135deg, var(--dark-gray), #34495e);
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 24px;
   flex-shrink: 0;
   overflow: hidden;
   position: relative;
}

.stream-thumbnail img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

/* Stream Preview */
.stream-preview {
   position: relative;
   width: 100%;
   height: 100%;
}

.stream-preview::after {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   background: linear-gradient(45deg, rgba(0,0,0,0.3), transparent);
}

/* Badge Danger */
.badge.badge-danger {
   background: var(--danger);
   color: white;
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 11px;
   font-weight: 600;
   text-transform: uppercase;
}

/* Viewer Badge */
.viewer-badge {
   position: absolute;
   bottom: 8px;
   left: 8px;
   background: rgba(0, 0, 0, 0.7);
   color: white;
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 11px;
   font-weight: 600;
   display: flex;
   align-items: center;
   gap: 4px;
}

.viewer-badge::before {
   content: '\f007';
   font-family: 'Font Awesome 6 Free';
   font-weight: 900;
   font-size: 10px;
}

/* Live Badge */
.live-badge {
   position: absolute;
   top: 8px;
   left: 8px;
   background: var(--danger);
   color: white;
   padding: 4px 8px;
   border-radius: 4px;
   font-size: 11px;
   font-weight: 600;
   text-transform: uppercase;
   animation: pulse 2s infinite;
   display: flex;
   align-items: center;
   gap: 4px;
}

.live-badge::before {
   content: '';
   width: 6px;
   height: 6px;
   background: white;
   border-radius: 50%;
   animation: blink 1s infinite;
}

@keyframes blink {
   0%, 100% { opacity: 1; }
   50% { opacity: 0.3; }
}

/* Responsive Design */
@media (max-width: 768px) {
   .stream-actions {
       flex-direction: column;
   }
   
   .live-stream-item,
   .recent-stream-item,
   .upcoming-stream-item {
       flex-direction: column;
       gap: 12px;
   }
   
   .stream-thumbnail {
       width: 100%;
       height: 180px;
   }
   
   .stream-thumbnail-small {
       width: 100%;
       height: 80px;
   }
   
   .stream-countdown {
       align-self: flex-start;
   }
   
   .stream-details .detail-grid {
       grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
   }
}

@media (max-width: 480px) {
   .connection-status,
   .settings-group,
   .streaming-settings,
   .stream-details,
   .live-streams {
       padding: 15px;
   }
   
   .stream-thumbnail {
       height: 150px;
   }
   
   .countdown-timer {
       font-size: 18px;
   }
   
   .stream-info h4 {
       font-size: 15px;
   }
   
   .streaming-settings .quality-options {
       grid-template-columns: 1fr;
   }
}


/* Card */
.card {
   background: white;
   border-radius: var(--border-radius);
   box-shadow: var(--box-shadow);
   overflow: hidden;
   margin-bottom: 20px;
   transition: var(--transition);
}

.card:hover {
   box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

/* Card Header */
.card-header {
   background: linear-gradient(135deg, #006632, #00d266);
   color: white;
   padding: 10px;
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.card-header h3 {
   font-size: 18px;
   font-weight: 600;
   margin: 0;
   display: flex;
   align-items: center;
   gap: 10px;
}

.card-header .card-actions {
   display: flex;
   gap: 10px;
}

/* Card Content */
.card-content {
   padding: 20px;
}

/* Simple Chart */
.simple-chart {
   padding: 20px;
   text-align: center;
}

.simple-chart h4 {
   color: var(--primary-blue);
   font-size: 18px;
   font-weight: 600;
   margin-bottom: 20px;
}

.simple-chart .chart-bars {
   display: flex;
   align-items: flex-end;
   justify-content: space-around;
   gap: 10px;
   height: 200px;
   margin: 20px 0;
   padding: 0 10px;
   background: linear-gradient(to right, transparent 0%, var(--light-gray) 50%, transparent 100%);
   border-radius: var(--border-radius);
}

/* Chart Bar */
.chart-bar {
   background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
   border-radius: 4px 4px 0 0;
   min-height: 20px;
   width: 40px;
   position: relative;
   transition: var(--transition);
   cursor: pointer;
   display: flex;
   align-items: flex-end;
   justify-content: center;
}

.chart-bar:hover {
   background: linear-gradient(135deg, var(--primary-orange), #dea757);
   transform: scaleY(1.05);
}

.chart-bar:nth-child(2n) {
   background: linear-gradient(135deg, var(--success), #58d68d);
}

.chart-bar:nth-child(3n) {
   background: linear-gradient(135deg, var(--warning), #f7dc6f);
}

.chart-bar:nth-child(4n) {
   background: linear-gradient(135deg, var(--info), #7fb3d3);
}

.chart-bar span {
   position: absolute;
   top: -25px;
   color: var(--dark-gray);
   font-size: 12px;
   font-weight: 600;
   background: white;
   padding: 2px 6px;
   border-radius: 3px;
   box-shadow: 0 2px 4px rgba(0,0,0,0.1);
   opacity: 0;
   transition: opacity 0.3s ease;
}

.chart-bar:hover span {
   opacity: 1;
}

.chart-bar .bar-value {
   position: absolute;
   top: -20px;
   left: 50%;
   transform: translateX(-50%);
   color: var(--dark-gray);
   font-size: 11px;
   font-weight: 600;
   background: white;
   padding: 2px 4px;
   border-radius: 3px;
   box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.chart-bar .bar-label {
   position: absolute;
   bottom: -25px;
   left: 50%;
   transform: translateX(-50%);
   color: var(--medium-gray);
   font-size: 11px;
   font-weight: 500;
   text-align: center;
   width: 50px;
}

/* Chart Labels */
.chart-labels {
   display: flex;
   justify-content: space-around;
   margin-top: 10px;
   padding: 0 10px;
}

.chart-labels span {
   color: var(--medium-gray);
   font-size: 12px;
   font-weight: 500;
   text-align: center;
   min-width: 40px;
}

/* Chart Variants */
.simple-chart.horizontal .chart-bars {
   flex-direction: column;
   height: auto;
   align-items: flex-start;
}

.simple-chart.horizontal .chart-bar {
   width: auto;
   height: 20px;
   min-width: 40px;
   border-radius: 0 4px 4px 0;
   margin-bottom: 10px;
}

.simple-chart.horizontal .chart-labels {
   flex-direction: column;
   align-items: flex-start;
   margin-top: 0;
   margin-left: 10px;
}

/* Chart with Grid Lines */
.simple-chart.with-grid {
   position: relative;
}

.simple-chart.with-grid::before {
   content: '';
   position: absolute;
   top: 20%;
   left: 10%;
   right: 10%;
   bottom: 30%;
   background-image: 
       linear-gradient(to right, var(--light-gray) 1px, transparent 1px),
       linear-gradient(to bottom, var(--light-gray) 1px, transparent 1px);
   background-size: 20px 20px;
   opacity: 0.5;
   pointer-events: none;
}

/* Responsive Design */
@media (max-width: 768px) {
   .card-header {
       padding: 15px;
       flex-direction: inherit;
       gap: 10px;
       text-align: center;
   }
   
   .card-content {
       padding: 15px;
   }
   
   .simple-chart {
       padding: 15px;
   }
   
   .simple-chart .chart-bars {
       height: 150px;
       gap: 8px;
   }
   
   .chart-bar {
       width: 30px;
   }
   
   .chart-bar .bar-label {
       font-size: 10px;
       width: 40px;
   }
   .footer-content p {
    margin: 0px 10px 0px 0px;
    font-size: 10px;
    text-align: center;
    line-height: 13px;
}

.welcome-section .welcome-card {
    display: block;
}

.welcome-section .welcome-image {
    text-align: center;
}
.welcome-section .welcome-content h3 {
    font-size: 20px;
    text-align: center;
}

.welcome-section .welcome-content {
    text-align: center;
}
.welcome-section .welcome-content p {
        line-height: 18px;
    font-size: 14px;
}

.welcome-section .welcome-stats {
    text-align: center;
    margin-top: 10px;
}

}

@media (max-width: 480px) {
   .card-header {
       padding: 12px;
   }
   
   .card-header h3 {
       font-size: 16px;
       text-align: left;
       line-height: 18px;
   }
   
   .card-content {
       padding: 12px;
   }
   
   .simple-chart .chart-bars {
       height: 120px;
       gap: 6px;
   }
   
   .chart-bar {
       width: 25px;
   }
   
   .chart-bar span,
   .chart-bar .bar-value {
       font-size: 10px;
   }
   
   .chart-labels span {
       font-size: 10px;
       min-width: 30px;
   }
}



.DRecentActi .fc-drop1 {
    width: 220px;
}

.quick-actions-grid a {
    font-size: 14px;
    display: block;
    color:#333;
    text-decoration: none;
    margin-bottom: 8px;
    font-weight: 500;
}

.quick-actions-grid a i {
    color:#2c3e50;
    margin-right: 6px;
} 

.quick-actions-grid a:hover {
    color:#000;
}