body { font-family: 'Segoe UI', Tahoma, sans-serif; margin: 0; padding: 0; background: #333; color: #fff; } header { background: #333; padding: 1rem; color: #fff; } header h1 { color: goldenrod; } header h1 { margin: 0 0 0.5rem; } .usage-bar { display: flex; align-items: center; gap: 0.5rem; } progress { flex: 1; height: 1rem; accent-color: #50e3c2; } main { padding: 1rem; } table { width: 100%; border-collapse: collapse; background: #444; box-shadow: 0 2px 5px rgba(0,0,0,0.5); } th, td { padding: 0.75rem 1rem; border-bottom: 1px solid #555; text-align: left; } thead { background: #555; color: #fff; } tbody tr:nth-child(even) { background: #3c3c3c; } tbody tr:hover { background: #555; } .lesson-row td { background: #5a5a5a !important; font-style: italic; } .actions button { padding: 0.4rem 0.8rem; border: none; border-radius: 4px; cursor: pointer; font-size: 0.9rem; margin-right: 0.5rem; } button.download { background: #50e3c2; color: white; } button.download:hover { background: #3cbfa0; } button.del-transcript { background: #e94e77; color: white; } button.del-transcript:hover { background: #c83b5f; } button.del-lesson { background: #ff9f1c; color: white; } button.del-lesson:hover { background: #c83b5f; } .controls { padding: 0.5rem 1rem; background: #222; display: flex; align-items: center; gap: 1rem; } .controls label { font-weight: bold; color: #fff; } .controls button { padding: 0.3rem 0.6rem; border: 1px solid #888; background: #444; color: #fff; border-radius: 3px; cursor: pointer; } .controls button:disabled { opacity: 0.5; cursor: default; } header { background: #333; padding: 1rem; color: goldenrod; text-align: center; /* center header content */ } header h1 { margin: 0 0 0.5rem; } .controls { padding: 0.5rem 1rem; background: #222; display: flex; justify-content: center; /* center pagination buttons */ align-items: center; gap: 1rem; } /* If you want the “Page X of Y” text itself centered under the table */ #pageInfo { margin: 0 1rem; } .actions button { background: none; border: none; padding: 0.25rem; cursor: pointer; color: inherit; } .actions button i { vertical-align: middle; width: 1.2em; height: 1.2em; } .actions button:hover { opacity: 0.8; } main { padding: 1rem; overflow-x: auto; /* allow horizontal scroll on narrow screens */ } @media (max-width: 600px) { th:nth-child(3), td:nth-child(3) { display: none; } /* hide “Size” column */ th:nth-child(4), td:nth-child(4) { display: none; } /* hide “Created” column */ } .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; z-index: 999; } .modal-overlay.hidden { display: none; } .modal { background: #222; color: #fff; padding: 1.5rem; border-radius: 8px; width: 90%; max-width: 400px; } .modal p { margin-bottom: 1rem; } .modal-actions { display: flex; justify-content: flex-end; gap: 0.5rem; } .modal-actions button { padding: 0.5rem 1rem; border: none; border-radius: 4px; cursor: pointer; } #cancelDelete { background: #555; color: #ddd; } #confirmDelete { background: #e94e77; color: #fff; } /* spinner overlay covers the table while loading */ .spinner-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 10; } .spinner-overlay.hidden { display: none; } /* the spinner itself */ .spinner { border: 4px solid #444; border-top: 4px solid #50e3c2; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* in styles4.css (or wherever your CSS lives) */ @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .spin { animation: spin 1s linear infinite; }