/* Reset body padding since we removed the sidebar */ body { padding-left: 0 !important; padding-top: 0 !important; } /* Material Design Color System */ :root { --primary: #3F51B5; /* Indigo */ --primary-light: #7986CB; --secondary: #9E9E9E; /* Grey */ --success: #4CAF50; /* Green */ --warning: #FFC107; /* Amber */ --danger: #F44336; /* Red */ --info: #2196F3; /* Blue */ --background: #F5F5F5; /* Grey 100 */ --card-bg: #FFFFFF; --text-primary: #212121; /* Grey 900 */ --text-secondary: #757575; /* Grey 600 */ --border-color: #BDBDBD; /* Grey 400 */ --hover-bg: #E8EAF6; /* Indigo 50 */ --card-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Base Layout Styles */ body { background-color: var(--background); min-height: 100vh; padding-bottom: 80px; position: relative; color: var(--text-primary); font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } /* Modern Card Styles */ .content-card { background-color: var(--card-bg); border-radius: 8px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); padding: 20px; margin-bottom: 20px; transition: var(--transition); } .content-card:hover { transform: translateY(-2px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); } /* Bottom Navigation */ .bottom-nav { position: fixed; bottom: 0; left: 0; right: 0; background-color: white; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); z-index: 1000; } .nav-container { display: flex; overflow-x: auto; padding: 10px; justify-content: space-around; } .nav-item { display: flex; flex-direction: column; align-items: center; color: var(--secondary); text-decoration: none; padding: 8px; font-size: 0.8rem; transition: all 0.2s; border-radius: 5px; min-width: 60px; } .nav-item i { font-size: 1.2rem; margin-bottom: 4px; } .nav-item.active { color: var(--primary); background-color: var(--hover-bg); transform: scale(1.1); } .nav-item:hover:not(.active) { background-color: rgba(0, 0, 0, 0.04); } /* Content Section Styles */ .content-section { display: none; opacity: 0; transform: translateY(20px); transition: opacity 0.3s ease, transform 0.3s ease; } .content-section.active { display: block; opacity: 1; transform: translateY(0); } /* Summary Cards */ .summary-card { background-color: var(--card-bg); border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); overflow: hidden; } .summary-card .card-header { background-color: var(--hover-bg); padding: 12px 16px; border-bottom: 1px solid var(--border-color); } .card-body { padding: 1.5rem; } /* Progress Bars */ .progress { height: 12px; background-color: #E8EAF6; border-radius: 24px; overflow: hidden; } .progress-bar { border-radius: 24px; transition: var(--transition); } /* Add this to replace inline style attributes */ .progress-bar[style] { width: var(--progress-width, 0%); } /* Tables */ .table { background: #FFFFFF; border-radius: 16px; overflow: hidden; box-shadow: var(--card-shadow); border-collapse: separate; border-spacing: 0; } .table thead th { background: var(--hover-bg); border: none; padding: 1rem 1.5rem; font-weight: 600; color: var(--primary); } .table tbody td { padding: 1rem 1.5rem; border-top: 1px solid var(--border-color); transition: var(--transition); } .table tbody tr:hover td { background-color: var(--hover-bg); } /* Status Badges */ .status-badge { padding: 4px 8px; border-radius: 4px; font-size: 0.75rem; font-weight: 500; display: inline-block; } .bg-success, .completed, .leave-approved { background-color: var(--success) !important; color: white; } .bg-warning, .ongoing, .leave-pending { background-color: var(--warning) !important; color: #212121; /* Material design suggests dark text on light colors like Amber */ } .bg-danger, .leave-rejected { background-color: var(--danger) !important; color: white; } .bg-info, .upcoming { background-color: var(--info) !important; color: white; } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Responsive Design */ @media (max-width: 768px) { .container-fluid { padding: 0.5rem; } .content-card { padding: 16px; } .summary-card { margin-bottom: 1rem; } .card-header { padding: 1rem; } .card-body { padding: 1rem; } .table { font-size: 0.875rem; } .table th, .table td { padding: 0.75rem; white-space: nowrap; } .table-responsive { margin: 0 -0.5rem; } .row { margin-left: -0.5rem; margin-right: -0.5rem; } .col-12, .col-md-6 { padding-left: 0.5rem; padding-right: 0.5rem; } .bottom-nav { padding: 0.5rem; } .nav-item { padding: 0.375rem; } .nav-item i { font-size: 1.25rem; } .nav-item span { display: none; } .nav-item.active::after { bottom: -0.5rem; } /* Welcome Section */ .welcome-section img { width: 60px !important; height: 60px !important; } .welcome-section h2 { font-size: 1.5rem; } /* Course Cards */ .course-card { margin-bottom: 1rem; } .course-card .card-title { font-size: 1.1rem; } /* Subject Cards */ .subject-card { margin-bottom: 1rem; } /* Feedback Cards */ .feedback-card { margin-bottom: 1rem; } /* Notice Cards */ .notice-card { margin-bottom: 1rem; } /* Profile Section */ .profile-image { width: 120px !important; height: 120px !important; } /* Modal Adjustments */ .modal-dialog { margin: 0.5rem; } .modal-body { padding: 1rem; } /* Form Elements */ .form-control, .form-select { font-size: 0.875rem; } .btn { padding: 0.375rem 0.75rem; font-size: 0.875rem; } /* Rating Stars */ .rating-container .fa-star { font-size: 1.25rem; } .nav-item { min-width: auto; } } /* Small Mobile Devices */ @media (max-width: 480px) { .nav-container { padding: 0 0.5rem; } .nav-item { padding: 0.25rem; } .nav-item i { font-size: 1.1rem; } .nav-item span { font-size: 0.65rem; } .content-card { padding: 0.75rem; } .card-header { padding: 0.75rem; } .card-body { padding: 0.75rem; } .table th, .table td { padding: 0.5rem; } .status-badge { padding: 0.2rem 0.5rem; font-size: 0.75rem; } .btn { padding: 0.25rem 0.5rem; font-size: 0.75rem; } } /* Landscape Mode */ @media (max-height: 500px) and (orientation: landscape) { .bottom-nav { position: static; margin-top: 1rem; } body { padding-bottom: 0; } .content-card { margin-bottom: 1rem; } } /* High-DPI Screens */ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .content-card { box-shadow: 0 5px 10px -3px rgba(0, 0, 0, 0.1); } } /* Print Styles */ @media print { .bottom-nav, .btn-primary, .modal, .modal-backdrop { display: none !important; } .content-card { box-shadow: none; border: 1px solid #ddd; } .table { box-shadow: none; } } /* Modal styles */ .modal { z-index: 1050 !important; } .modal-backdrop { z-index: 1040 !important; } .modal-content { border-radius: 8px !important; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1) !important; } .modal-header { border-bottom: 1px solid #e5e7eb; padding: 1rem 1.5rem; } .modal-body { padding: 1.5rem; } .modal-footer { border-top: 1px solid #e5e7eb; padding: 1rem 1.5rem; } /* Navigation enhanced styles */ .nav-item { transition: transform 0.2s ease-in-out; } .content-section { transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out; opacity: 0; transform: translateY(20px); } .content-section.active { opacity: 1; transform: translateY(0); } /* Improve active state visibility */ .nav-item.active { color: var(--primary); font-weight: 600; } .nav-item.active i { transform: scale(1.1); } /* Add ripple effect for touch devices */ .nav-item { position: relative; overflow: hidden; } .nav-item::after { content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; background: rgba(79, 70, 229, 0.3); opacity: 0; border-radius: 100%; transform: scale(1, 1) translate(-50%); transform-origin: 50% 50%; } .nav-item:active::after { animation: ripple 0.6s ease-out; } @keyframes ripple { 0% { transform: scale(0, 0); opacity: 0.5; } 100% { transform: scale(100, 100); opacity: 0; } } /* Star Rating Styles */ .rating-container .form-check-label { cursor: pointer; padding: 0.25rem; } .rating-container .fa-star, .rating-container .fa-star-half-alt { color: #f8d74c; } /* Profile Images */ .profile-image-small { width: 80px; height: 80px; object-fit: cover; } .profile-image-large { width: 200px; height: 200px; object-fit: cover; } /* Add notification toast styles if they don't already exist */ .notification-toast { position: fixed; top: 20px; right: 20px; z-index: 9999; min-width: 250px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); border-radius: 4px; } /* Welcome Section */ .welcome-section { background: linear-gradient(to right, #4338ca, #6366f1); color: white; padding: 20px; } /* Schedule styling */ .schedule-item { padding: 12px; border-radius: 6px; margin-bottom: 10px; background-color: #f8f9fa; border-left: 4px solid var(--primary); } /* Rating stars styling */ .rating-stars { color: #FFD700; } /* Custom tabs styling */ .feedback-tabs { border-bottom: 2px solid #e9ecef; margin-bottom: 1.5rem; } .feedback-tab-btn { padding: 10px 20px; cursor: pointer; border-radius: 4px; transition: var(--transition); border: 1px solid var(--border-color); background-color: white; color: var(--text-primary); text-align: center; flex: 1; } .feedback-tab-btn.active { background-color: var(--primary); color: white; border-color: var(--primary); } .feedback-tab-btn:hover:not(.active) { background-color: var(--hover-bg); } .tab-pane { display: none; } .tab-pane.active { display: block; } /* Star rating styling */ .rating-container .form-check-label i.fas { color: #FFD700; } /* Custom smaller scrollbar styling */ .activity-scroll::-webkit-scrollbar { width: 4px; } .activity-scroll::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; } .activity-scroll::-webkit-scrollbar-thumb { background: #ccc; border-radius: 10px; } .activity-scroll::-webkit-scrollbar-thumb:hover { background: #999; } /* Firefox scrollbar */ .activity-scroll { scrollbar-width: thin; scrollbar-color: #ccc #f1f1f1; } @media (min-width: 992px) { .container-fluid { padding-bottom: 60px; } } /* Custom Tab System */ .custom-tabs { display: flex; border-bottom: 1px solid #dee2e6; margin-bottom: 1rem; } .custom-tab-btn { padding: 0.5rem 1rem; margin-bottom: -1px; background: none; border: 1px solid transparent; border-top-left-radius: 0.25rem; border-top-right-radius: 0.25rem; cursor: pointer; color: var(--secondary); } .custom-tab-btn.active { color: var(--primary); background-color: #fff; border-color: #dee2e6 #dee2e6 #fff; } .custom-tab-content { display: none; } .custom-tab-content.active { display: block; } /* Fix for profile tab visibility */ #profileSection.active .tab-pane.active { display: block !important; } #profileSection.active .nav-tabs .nav-link.active { color: var(--primary); border-color: var(--primary); background-color: #fff; } /* Action buttons enhanced */ .action-button { border-radius: 50px; padding: 10px 20px; font-weight: 500; transition: var(--transition); display: inline-flex; align-items: center; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15); } .action-button:hover { transform: translateY(-3px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .action-button i { margin-right: 8px; }