/* ========== RESET & BASE LAYOUT ========== */ html, body { height: 100%; margin: 0; display: flex; flex-direction: column; font-family: Arial, sans-serif; } .content-wrapper { flex: 1; padding-bottom: 50px; /* adds space above footer */ } /* ========== CONTAINER & FLEX LAYOUT ========== */ /* Avoid overriding Bootstrap's .container-fluid globally, which can break layouts on laptops. If a full-height flex container is needed, prefer a dedicated utility class (e.g., .app-flex). */ .main-content { flex: 1; padding: 5px; background-color: #f1f3f4; overflow-x: hidden; padding-bottom: 50px; /* <-- add this */ } .sidebar { width: 250px; background-color: #fff; padding-top: 10px; border-right: 1px solid #ddd; position: sticky; top: 0; height: 100vh; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } .sidebar a { display: block; color: #333; padding: 5px; text-decoration: none; font-weight: bold; } .sidebar a:hover { background-color: #f1f1f1; color: #007bff; } .sidebar a.active { background-color: #007bff; color: #fff; } /* ========== FOOTER ========== */ .footer { background-color: #f1f1f1; padding: 5px; text-align: center; width: 100%; margin-top: auto; font-size: 16px; position: relative; /* prevents overlap */ z-index: 1; } /* ========== TABLE STYLING ========== */ .table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; display: block; } table { width: 100%; border-collapse: collapse; margin-top: 20px; font-size: 1rem; table-layout: auto; /* Allow tables to shrink on smaller screens; the responsive wrapper will handle overflow when needed. */ min-width: 0; } table, th, td { border: 1px solid #ccc; } th, td { padding: 5px; text-align: left; } /* Keep headers compact but allow cell content to wrap for better adaptability */ th { white-space: nowrap; } td { white-space: normal; overflow-wrap: anywhere; /* wrap long words/URLs/emails */ word-break: break-word; } th { background-color: #f8f9fa; } thead th { background-color: lightgray; color: black; } /* ========== ALIGNMENT HELPERS ========== */ .text-left { text-align: left !important; } .right-align { text-align: right !important; } /* ========== DASHBOARD TITLE ========== */ .dashboard-title { /*border-bottom: 4px solid #007bff; */ padding-bottom: 10px; width: 100%; margin-bottom: 20px; text-align: left; } .dashboard-title h2 { margin: 0; padding-left: 5px; } /* ========== FORMS & BUTTONS ========== */ .disabled-select, .disabled-checkbox { background-color: #e9ecef; cursor: not-allowed; } .custom-button { width: 120px; } .form-group { margin-bottom: 1.5rem; } .support-form { max-width: 800px; margin: 0 auto; padding: 5px; border: 1px solid #ccc; border-radius: 8px; background-color: #f9f9f9; } #message { height: 350px; } /* ========== MESSAGES ========== */ .message { text-align: center; margin-top: 20%; } .message img { max-width: 100%; height: auto; } .message-list, .message-form-container { background-color: #fff; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); padding: 5px; margin-bottom: 20px; } /* ========== CALENDAR ========== */ #calendar-container { width: 100%; padding: 5px; overflow-x: auto; box-sizing: border-box; } #calendar { width: 100%; box-sizing: border-box; background-color: #fff; border-radius: 8px; padding: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } /* FullCalendar force 100% width */ .fc { width: 100% !important; max-width: 100% !important; box-sizing: border-box; } .fc-scrollgrid, .fc-view, .fc-daygrid, .fc-daygrid-body { width: 100% !important; box-sizing: border-box; overflow-x: auto; } .fc-toolbar { flex-wrap: wrap; gap: 8px; } .fc-toolbar h2 { font-size: 1.5rem; } /* Responsive adjustments */ @media (max-width: 768px) { .fc-toolbar { flex-direction: column; align-items: flex-start; } .fc-toolbar h2 { font-size: 1.2rem; } .fc-col-header-cell, .fc-daygrid-day-number, .fc-event { font-size: 0.8rem; } .fc-daygrid-day-frame { padding: 5px; } } /*================DISPLAY ERROR RECTANGLE================*/ .alert-error { background-color: #f8d7da; border: 1px solid #f5c2c7; color: #842029; padding: 5px; border-radius: 4px; margin: 20px 0; font-weight: bold; font-size: 1rem; box-shadow: 0 0 5px rgba(255, 0, 0, 0.1); } /*================NAVBAR================*/ .custom-navbar { background: linear-gradient(to right, #ffffff 0%, /* almost white */ #d8f5d0 40%, #9cd88f 100% ); color: #080808; padding-top: 0.3rem; padding-bottom: 0.3rem; position: sticky; top: 0; z-index: 1050; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15); } /* Toggler icon override */ .navbar-toggler { background-color: white; border-radius: 5px; } /* Ensure proper spacing for nav links */ .nav-link { padding: 0.5rem 0.75rem; font-weight: 500; } /* Fix collapse dropdown for mobile */ @media (max-width: 991.98px) { .navbar-collapse { background: linear-gradient(to right, #c6f7c5 0%, #b6d490 30%, #359f04 100%); color: white; padding: 1rem; position: absolute; top: 100%; left: 0; right: 0; z-index: 1051; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .navbar .btn { margin-top: 1rem; width: 100%; } } .navbar-logo { height: 50px !important; width: 50px !important; object-fit: cover; border-radius: 50%; margin-right: 1rem; } .school-logo-circle { border-radius: 50%; object-fit: cover; } .logout-btn { font-weight: bold; padding: 0.25rem 0.75rem; /* smaller height */ font-size: 0.95rem; /* slightly smaller text */ line-height: 1.2; /* tighter vertical alignment */ } /* ================= PROFILE DROPDOWN ================= */ .account-btn { background-color: #28a745; border: none; color: #fff; border-radius: 50%; width: 40px; height: 20px; display: flex; align-items: center; justify-content: center; cursor: pointer; } .dropdown-menu-custom { right: 0; left: auto; transform: translateX(-75%); width: 1px !important; max-width: 300px !important; background-color: chartreuse; } .profile-container { text-align: center; padding: 5px; } .profile-picture { width: 60px; height: 60px; border-radius: 50%; background-color: #f0f0f0; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: bold; margin: 0 auto 20px auto; color: rgb(6, 126, 14); cursor: pointer; } .profile-details { padding: 5px; margin-bottom: 20px; } .sign-out-btn { width: 100%; padding: 10px 20px; border: 2px solid #2c9b09; background-color: #2c9b09; color: #fff; font-weight: bold; } .dropdown-hover:hover .dropdown-menu { display: block; } .top-right { position: fixed; top: 10px; right: 10px; z-index: 1000; } .dropdown-menu { min-width: 200px; } .menu-title{ color: rgba(248, 76, 8, 0.842) } .flash-error { animation: flash 1.2s ease-in-out; border: 2px solid red !important; } @keyframes flash { 0% { background-color: #ffe6e6; } 50% { background-color: #ffcccc; } 100% { background-color: #fff; } } .is-invalid { border-color: red !important; } .invalid-feedback { color: red; font-size: 0.875rem; display: block; } .invalid-feedback { color: red; font-size: 0.875em; display: none; } .is-invalid { border-color: red; }