/* =========================================================== GENERAL STYLES & BASE LAYOUT =========================================================== */ /* GENERAL STYLES */ body { font-family: 'Roboto', sans-serif; background-color: #f5f5f5; margin: 0; transition: background-color 0.3s, color 0.3s; } /* CONTAINER */ .container { margin-top: 20px; } .container-fluid { padding-left: 5px !important; /* Default padding for small screens */ padding-right: 5px !important; margin-top: 20px; /* Restores space below the header */ } /* Increase left/right padding for larger screens */ @media (min-width: 768px) { .container-fluid { padding-left: 50px !important; padding-right: 50px !important; } } @media (min-width: 1200px) { .container-fluid { padding-left: 100px !important; /* More space on extra-large screens */ padding-right: 100px !important; } } /* =========================================================== HEADER & NAVIGATION =========================================================== */ /************************************************************/ /* FLEXBOX HEADER: LOGO, TITLE, BUTTONS FIXED */ /************************************************************/ /* 🔹 Header Container (Keeps Everything Aligned) */ .header-container { display: flex; align-items: center; justify-content: space-between; /* Ensures logo-left, title-center, buttons-right */ width: 100%; height: 80px; padding: 10px 20px; background-color: #2196F3; /* Light Mode */ transition: background-color 0.3s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } /* 🔹 Dark Mode */ body.dark-mode .header-container { background-color: #1f1f1f; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.7); } /* 🔹 Logo (Left Side) */ .header-left { display: flex; align-items: center; flex: 0 0 auto; /* Prevent it from growing */ } /* 🔹 Make Logo Bigger */ .header-left img { max-height: 70px; /* Previously 60px */ width: auto; /* Ensures aspect ratio stays correct */ } .header-logo { max-height: 50px; width: auto; display: block; } /* 🔹 Header Layout */ header { display: flex; align-items: center; justify-content: space-between; /* Ensures left, center, right alignment */ width: 100%; height: 80px; padding: 0 20px; background-color: #2196F3; /* Light mode */ transition: background-color 0.3s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } /* 🔹 Dark Mode: Header */ body.dark-mode header { background-color: #1f1f1f; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.7); } /* 🔹 Left Section (Logo) */ /* 🔹 Left Section (Logo) */ .header-left { display: flex; align-items: center; flex: 1; min-width: 100px; } /* 🔹 Title (Perfectly Centered) */ .header-title { position: absolute; left: 50%; transform: translateX(-50%); text-align: center; white-space: nowrap; } .header-title h1 { font-size: 2rem; color: #fff; margin: 0; } /* 🔹 Right Section (Buttons) */ .header-buttons { display: flex; align-items: center; justify-content: flex-end; flex: 1; /* Equal space to prevent shifting */ min-width: 150px; /* Prevent shrinking */ gap: 10px; } /* 🔹 Buttons */ .header-buttons button { background: none; border: none; cursor: pointer; padding: 10px; border-radius: 50%; color: #fff; transition: background-color 0.2s ease, box-shadow 0.2s ease; } .header-buttons button:hover { background-color: rgba(255, 255, 255, 0.2); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } /* 🔹 Small Screens: Stack Layout */ @media (max-width: 600px) { header { flex-direction: column; text-align: center; height: auto; padding: 10px; } .header-left, .header-buttons { justify-content: center; flex: unset; } .header-title { order: 1; width: 100%; margin-bottom: 10px; position: relative; left: auto; transform: none; } .header-buttons { order: 2; flex-wrap: wrap; justify-content: center; } } .header-buttons button { background: none; border: none; cursor: pointer; padding: 10px; border-radius: 50%; color: #fff; transition: background-color 0.2s ease, box-shadow 0.2s ease; } .header-buttons button i { font-size: 24px; /* Ensures Material Icons show correctly */ } .header-buttons button:hover { background-color: rgba(255, 255, 255, 0.2); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } /* 🔹 Dark Mode Toggle Button */ .dark-mode-toggle { background-color: #424242; border: 1px solid #fff; color: #fff; padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: 0.9em; transition: background 0.3s; } .dark-mode-toggle:hover { background-color: rgba(255, 255, 255, 0.2); } /************************************************************/ /* RESPONSIVE HEADER FIXES */ /************************************************************/ /* 🔹 Medium Screens */ @media (max-width: 900px) { .header-container { flex-wrap: wrap; height: auto; } .header-title { text-align: center; flex-basis: 100%; order: 2; } .header-right { order: 3; flex-basis: 100%; justify-content: center; margin-top: 10px; } } /* 🔹 Small Screens */ @media (max-width: 600px) { .header-container { flex-direction: column; text-align: center; } .header-left { justify-content: center; flex-basis: 100%; } .header-title { font-size: 1.7rem; margin-top: 5px; } .header-buttons { flex-direction: row; justify-content: center; gap: 5px; margin-top: 10px; } } /* end of header */ /* =========================================================== MATERIAL ICONS =========================================================== */ .material-icons { font-size: 24px; vertical-align: middle; color: white; } /* =========================================================== FORMS & LOGIN =========================================================== */ #loginForm { margin: 0 auto; max-width: 400px; background: white; padding: 20px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); border-radius: 4px; } /* Dark mode for login form */ body.dark-mode #loginForm { background-color: #2c2c2c; /* Dark background */ color: #e0e0e0; /* Light text */ padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(255, 255, 255, 0.2); } /* Dark mode for input fields */ body.dark-mode #loginForm input { background-color: #333; color: #fff; border: 1px solid #555; } /* Dark mode for labels */ body.dark-mode #loginForm label { color: #ddd; } /* Dark mode for login button */ body.dark-mode #loginForm button { background-color: #007bff; /* Keep Bootstrap blue button */ color: white; border: none; } body.dark-mode #loginForm button:hover { background-color: #0056b3; /* Darker blue on hover */ } /* =========================================================== CARDS & MODALS =========================================================== */ /* Cards */ .card { background-color: #fff; color: #000; border: 1px solid #ddd; } body.dark-mode .card { background-color: #2c2c2c; color: #e0e0e0; border: 1px solid #444; } /* Modal & Editor Modal */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1050; } .modal .modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; padding: 20px; border: 1px solid #ccc; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); max-width: 400px; width: 90%; overflow-y: auto; white-space: normal; /* Allow text wrapping */ word-wrap: break-word; overflow-wrap: break-word; height: auto; /* Let the modal height adjust based on content */ max-height: 90vh; /* But limit to 90% of the viewport height */ } body.dark-mode .modal .modal-content { background-color: #2c2c2c; color: #e0e0e0; border-color: #444; } .editor-header { display: flex; justify-content: space-between; align-items: center; padding: 5px 10px; } body.dark-mode .editor-header { background-color: #2c2c2c; } /* Fully Centered Close Button with Slight X Adjustment */ .editor-close-btn { position: absolute; top: 10px; right: 10px; display: flex; justify-content: center; align-items: center; font-size: 20px; /* Keep it readable */ font-weight: bold; cursor: pointer; z-index: 1000; /* Perfectly Sized Circular Button */ width: 32px; height: 32px; border-radius: 50%; text-align: center; /* Fix X alignment */ line-height: 30px; /* Slightly reduce so "X" moves up */ color: #ff4d4d; background-color: rgba(255, 255, 255, 0.9); border: 2px solid transparent; transition: all 0.3s ease-in-out; } /* Hover Effect */ .editor-close-btn:hover { color: white; background-color: #ff4d4d; box-shadow: 0px 0px 6px rgba(255, 77, 77, 0.8); transform: scale(1.05); } /* Dark Mode Fix */ body.dark-mode .editor-close-btn { background-color: rgba(0, 0, 0, 0.7); color: #ff6666; } body.dark-mode .editor-close-btn:hover { background-color: #ff6666; color: #000; } /* Default Editor Modal */ .editor-modal { position: fixed; top: 50%; left: 50%; transform: translate(5%, 5%); background-color: #fff; padding: 20px; border: 1px solid #ccc; border-radius: 4px; width: 50vw; max-width: 90vw; min-width: 400px; height: 600px; resize: both; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); z-index: 1100; display: flex; flex-direction: column; max-height: 90vh; overflow: hidden; } /* Dark mode styling */ body.dark-mode .editor-modal { background-color: #2c2c2c; color: #e0e0e0; border-color: #444; } /* 🔹 Small Screens: Adjust Position */ @media (max-width: 768px) { .editor-modal { top: 0%; left: 0%; transform: translate(4%, 4%) !important; /* Reset transform */ width: 90vw !important; /* Expand width */ max-height: 90vh; padding: 15px; min-width: auto !important; /* Remove min-width restriction */ } } .editor-title { white-space: nowrap !important; /* Prevents wrapping */ overflow: hidden !important; /* Hides overflow */ text-overflow: ellipsis !important; /* Adds "..." when text is too long */ font-size: 1.5rem; /* Default font size */ max-width: 95%; display: block; /* Ensures it's a block element for proper sizing */ } @media (max-width: 600px) { .editor-title { font-size: 1.2rem; /* Smaller font size on small screens */ max-width: 95%; /* Ensures it doesn't overflow the container */ } } .editor-controls { text-align: right; margin-bottom: 5px; } .editor-textarea { flex-grow: 1; min-height: 5px !important; /* Allow shrinking */ height: auto !important; /* Let JavaScript control height */ max-height: 100vh !important; /* Prevent overflow */ resize: none; overflow: auto; } .editor-footer { margin-top: 5px; text-align: right; } /* =========================================================== LOGOUT & USER CONTROLS =========================================================== */ .logout-container { position: absolute; top: 10px; right: 10px; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; } #uploadBtn { font-size: 16px; padding: 10px 22px; align-items: center; } #customChooseBtn { background-color: #9E9E9E; color: #fff; border: none; border-radius: 4px; padding: 8px 18px; font-size: 16px; cursor: pointer; white-space: nowrap; } @media (max-width: 768px) { #customChooseBtn { font-size: 14px; padding: 6px 14px; } } /* =========================================================== UPLOAD PROGRESS STYLES =========================================================== */ #uploadProgressContainer ul { list-style: none; padding: 0; margin: 0; } #uploadProgressContainer li { display: flex; align-items: center; margin-bottom: 10px; flex-wrap: wrap; } #uploadProgressContainer .file-preview { width: 32px !important; height: 32px !important; margin-right: 0; flex-shrink: 0; } #uploadProgressContainer .file-preview img { width: 32px !important; height: 32px !important; object-fit: cover; } #uploadProgressContainer .file-name { margin: 0 20px 0 2px; flex-grow: 1; word-break: break-word; } #uploadProgressContainer .progress { background-color: #e9ecef; border-radius: 5px; overflow: hidden; margin: 5px 0 10px; height: 24px; width: 250px; } #uploadProgressContainer .progress-bar { background-color: #007bff; height: 100%; line-height: 24px; color: #000; text-align: center; transition: width 0.4s ease; font-size: 0.9rem; } #uploadProgressContainer { margin-top: 20px; } /* =========================================================== RESPONSIVE ADJUSTMENTS (General Small Screens) =========================================================== */ @media (max-width: 768px) { .logout-container { position: static; align-items: flex-end; text-align: right; margin-top: 10px; } .logout-container button { width: auto; min-width: 120px; } .hide-small { display: none; } } @media (min-width: 768px) and (max-width: 991px) { .hide-medium { display: none !important; } } /* =========================================================== BUTTON STYLES (MATERIAL THEME) & Preserve Bootstrap colors =========================================================== */ .btn { font-size: 0.9rem; border: none; border-radius: 4px; padding: 8px 16px; cursor: pointer; white-space: nowrap; text-decoration: none; display: inline-block; } .btn:hover { opacity: 0.9; } /* Specific Action Buttons */ #deleteSelectedBtn { background-color: #f44336; color: white; } #deleteSelectedBtn:hover { background-color: #d32f2f; } #copySelectedBtn { background-color: #9E9E9E; color: white; } #copySelectedBtn:hover { background-color: #757575; } #moveSelectedBtn { background-color: #ff9800; color: white; } #moveSelectedBtn:hover { background-color: #fb8c00; } #downloadZipBtn { background-color: #009688; color: white; } #downloadZipBtn:hover { background-color: #00796B; } #fileList button.edit-btn { background-color: #4CAF50; color: white; } #fileList button.edit-btn:hover { background-color: #43A047; } /* =========================================================== FILE LIST & TABLE STYLES =========================================================== */ #fileList table { background-color: transparent; border-collapse: collapse !important; border-spacing: 0 !important; table-layout: auto !important; /* Ensures flexible column widths */ width: 100% !important; } #fileList table tr:nth-child(even) { background-color: transparent; } #fileList table tr:hover { background-color: #e0e0e0; } body.dark-mode #fileList table tr:hover { background-color: #444; } #fileListTitle { white-space: normal !important; /* Allow text to wrap */ word-wrap: break-word !important; /* Break long words */ overflow-wrap: break-word !important; /* Ensure compatibility */ max-width: 100% !important; /* Prevent it from going outside the container */ display: block !important; /* Ensure it behaves as a block element */ text-align: left !important; /* Keep it aligned properly */ } /* Small screens: Reduce font size for better wrapping */ @media (max-width: 600px) { #fileListTitle { font-size: 1.4rem !important; /* Adjust size for smaller screens */ } } #fileList table tr { box-shadow: none; border: none !important; outline: none !important; } body.dark-mode #fileList table tr { box-shadow: none; border: none !important; outline: none !important; } #fileList table th, #fileList table td { border: none !important; white-space: nowrap; /* Prevents wrapping for all other columns */ } /* Ensure only File Name column wraps */ #fileList table th[data-column="name"], #fileList table td:nth-child(2) { white-space: normal !important; /* Allow wrapping */ word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: break-word !important; text-align: left !important; line-height: 1.2 !important; /* Reduce spacing between lines */ padding: 8px 10px !important; /* Adjust padding for better fit */ /* Default (Small Screens) */ max-width: 200px !important; min-width: 120px !important; } /* Medium Screens */ @media (min-width: 500px) { #fileList table th[data-column="name"], #fileList table td:nth-child(2) { max-width: 250px !important; min-width: 120px !important; } } /* Large Screens */ @media (min-width: 1024px) { #fileList table th[data-column="name"], #fileList table td:nth-child(2) { max-width: 280px !important; min-width: 180px !important; } } /* Ensure all other columns stay in one line */ #fileList table th:not([data-column="name"]), #fileList table td:not(:nth-child(2)) { white-space: nowrap !important; } /* Reduce excessive row height */ #fileList table td { vertical-align: middle !important; /* Keep content centered */ padding: 8px 10px !important; /* Reduce excess padding */ } /* =========================================================== HEADINGS & FORM LABELS =========================================================== */ h2 { font-size: 2em; } .form-group { margin-bottom: 10px; } label { font-size: 0.9rem; } /* =========================================================== UTILITY CLASSES =========================================================== */ .align-items-center { display: flex; align-items: center; } .table th button { background: none; border: none; color: inherit; cursor: pointer; padding: 0; } #loginForm, #uploadForm { display: none; } /* Add spacing below the row of cards */ #uploadFolderRow { margin-bottom: 20px; } @media (max-width: 768px) { #uploadFolderRow .col-md-6 { margin-bottom: 15px; /* Adjust the spacing between stacked cards */ } #uploadFolderRow .col-md-6:last-child { margin-bottom: 0; /* Remove extra spacing from the last stacked card */ } } .card-header { font-size: 1.2rem; /* Increase font size */ font-weight: bold; /* Make it bold */ } .card-body .form-group { margin-bottom: 5px !important; } #createFolderBtn { margin-top: 0px !important; } .folder-actions { display: flex; flex-wrap: nowrap; padding-left: 8px; align-items: center; white-space: nowrap; } @media (min-width: 600px) and (max-width: 992px) { .folder-actions { white-space: nowrap; } } .row-selected { background-color: #f2f2f2 !important; } body.dark-mode .row-selected { background-color: #444 !important; /* Dark background */ color: #fff !important; /* White text for contrast */ } .custom-prev-next-btn { background-color: #e0e0e0; color: #000; border: none; padding: 6px 12px; font-size: 14px; border-radius: 4px; margin: 0 4px; cursor: pointer; } .custom-prev-next-btn:hover:not(:disabled) { background-color: #d5d5d5; } body.dark-mode .custom-prev-next-btn { background-color: #444; /* Darker background for dark mode */ color: #fff; /* White text for contrast */ border: none; } body.dark-mode .custom-prev-next-btn:hover:not(:disabled) { background-color: #555; /* Slightly lighter background for hover effect */ } .folder-option:hover { background-color: #f0f0f0; padding: 2px 4px; } .folder-option.selected { background-color: #d0d0d0; border-radius: 4px; padding: 2px 4px; } body.dark-mode .folder-option.selected { background-color: #444; /* a dark gray that stands out */ color: #fff; /* white text */ border-radius: 4px; padding: 2px 4px; } body.dark-mode .folder-option:hover { background-color: #333; /* a dark gray background */ color: #fff; /* ensure the text remains white */ padding: 2px 4px; } .custom-folder-card-body { padding-top: 5px !important; } /* Toast Notifications */ #customToast { position: fixed; top: 20px; right: 20px; background: #333; color: #fff; padding: 15px; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); opacity: 0; transition: opacity 0.5s ease; z-index: 9999; min-width: 250px; display: none; } #customToast.show { opacity: 1; } /* Button Wrap */ .button-wrap { display: flex; flex-wrap: wrap; row-gap: 5px; /* Removes vertical gap */ column-gap: 0px; /* Optional: Keeps a small horizontal gap */ } /* Center-align on small screens */ @media (max-width: 500px) { .button-wrap { width: 100%; } } .button-wrap .btn { align-items: center; height: 32px !important; /* Adjust as needed to match Download/Rename */ font-size: 14px !important; /* Keeps text aligned */ } /* Ensure Material Icons inside buttons do not enlarge buttons */ .button-wrap .btn i.material-icons { font-size: 16px !important; /* Match text size */ line-height: 1 !important; vertical-align: middle !important; /* Align icon with text */ } /* File List Section */ #fileListContainer { padding: 10px; margin-top: 20px; margin-bottom: 20px; } body.dark-mode #fileListContainer { background-color: #2c2c2c; color: #e0e0e0; border: 1px solid #444; /* adjust border color if needed */ border-radius: 8px; /* adjust the roundness as desired */ padding: 10px; margin-top: 20px; } #fileListContainer > h2, #fileListContainer > .file-list-actions, #fileListContainer > #fileList { margin-left: 15px; /* Moves title, buttons, and file list to the right */ } @media (max-width: 768px) { #fileListContainer > h2, #fileListContainer > .file-list-actions, #fileListContainer > #fileList { margin-left: 1px; /* Smaller adjustment for mobile */ } } .col-12.col-md-4.text-left { margin-left: -15px; /* Adjust the value as needed */ } @media (max-width: 600px) { .col-12.col-md-4.text-left { margin-left: -15px; /* Slightly adjust for smaller screens */ } } #fileListTitle { font-size: 1.8em; margin-bottom: 15px; } .file-list-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 20px; } .file-list-actions .action-btn { flex: 0 1 auto; } .modal-footer { margin-top: 15px; text-align: right; } .modal-input { width: 100%; margin-top: 10px; } /* Responsive adjustments for File List */ @media (max-width: 600px) { #fileListTitle { font-size: 1.4em; } .file-list-actions { flex-direction: column; align-items: stretch; } .file-list-actions .action-btn { width: 100%; } .modal-content { width: 95%; margin: 20% auto; } } /* =========================================================== FOLDER TREE STYLES =========================================================== */ .folder-tree { list-style-type: none; padding-left: 20px; margin: 0; } .folder-tree.collapsed { display: none; } .folder-tree.expanded { display: block; } .folder-item { margin: 4px 0; display: block; } .folder-toggle { cursor: pointer; margin-right: 5px; } .folder-indent-placeholder { display: inline-block; width: 18px; } .folder-option { cursor: pointer; } #folderTreeContainer { display: block; } /* =========================================================== FILE MANAGER INLINE STYLE REMOVAL - New Classes =========================================================== */ .image-modal-header { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; /* Allows filename to wrap */ text-align: center; min-height: 30px; /* Ensures enough space if wrapping */ margin: 0 auto 10px; /* Centers it properly */ padding: 10px; width: 95%; } .image-preview-modal-content { max-width: 90vw; max-height: 90vh; background: #fff; padding: 20px; border-radius: 4px; overflow: hidden !important; /* Prevents unexpected scrolling */ margin: auto; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; } body.dark-mode .image-preview-modal-content { background: #2c2c2c; border-color: #444; } /* Ensure the image resizes properly */ .image-modal-img { max-width: 100%; max-height: 80vh; /* Ensure it doesn't force a scrollbar */ object-fit: contain; /* Prevents stretching */ display: block; margin: 0 auto; } /* Image Preview Close Button (Perfect Alignment) */ .close-image-modal { position: absolute; top: 10px; right: 15px; font-size: 24px; /* Ensures X is same size */ font-weight: bold; cursor: pointer; z-index: 1000; color: #ff4d4d; background-color: rgba(255, 255, 255, 0.8); border-radius: 50%; width: 32px; /* Ensures exact width */ height: 32px; /* Ensures exact height */ display: flex; justify-content: center; align-items: center; line-height: 1; /* Fixes text alignment */ padding-bottom: 2px; /* Moves X up slightly */ transition: all 0.3s ease-in-out; } /* Hover Effect */ .close-image-modal:hover { color: white; background-color: #ff4d4d; box-shadow: 0px 0px 6px rgba(255, 77, 77, 0.8); transform: scale(1.05); /* Keeps position even on hover */ } /* Dark Mode Adjustments */ body.dark-mode .close-image-modal { background-color: rgba(0, 0, 0, 0.6); color: #ff6666; } body.dark-mode .close-image-modal:hover { background-color: #ff6666; color: #000; } /* Fix Dark Mode */ body.dark-mode .image-preview-modal-content { background: #2c2c2c; border-color: #444; } .image-modal-img { max-width: 100%; max-height: 80vh; object-fit: contain; display: block; margin: 0 auto; } .page-indicator { margin: 0 8px; white-space: nowrap; } .clickable-row { cursor: pointer; } .file-icon { color: #333; margin-right: 0; margin-left: 0; font-size: 32px; } /* Dark Mode Styles */ body.dark-mode .file-icon { color: white; } .bottom-select { display: inline-block; width: auto !important; font-size: 16px !important; height: 28px !important; /* Matches the dropdown */ padding: 2px 8px !important; line-height: 1.2 !important; border-radius: 4px !important; vertical-align: middle !important; } .label-inline { display: inline-flex; align-items: center; /* Ensure vertical alignment */ height: 28px !important; /* Match dropdown */ font-size: 16px !important; line-height: 1.2; margin-bottom: 0; /* Remove any extra space */ } .items-per-page-text { display: inline-flex; align-items: center; height: 28px !important; /* Match dropdown */ font-size: 16px !important; line-height: 1.2; margin-left: 8px; /* Add a small gap */ } /* =========================================================== UPLOAD MODULE INLINE STYLE REMOVAL - New Classes =========================================================== */ .upload-instruction { margin-bottom: 10px; font-size: 16px; } /* Upload row stays a row */ .upload-file-row { display: flex; align-items: center; justify-content: center; word-break: break-word; } /* New wrapper ensures File Info appears below */ .file-info-wrapper { display: flex; flex-direction: column; /* Stack content below */ justify-content: center !important; /* Keep it centered */ align-items: center !important; margin-top: 10px; /* Add spacing */ } /* Ensure file info wraps properly */ .file-info-container { display: flex; flex-wrap: wrap !important; /* Allow wrapping */ justify-content: center !important; /* Keep it centered */ align-items: center; flex-wrap: wrap; gap: 5px; } .file-preview-container { display: flex !important; /* Use flex to control layout */ flex-wrap: wrap !important; /* Allow wrapping */ justify-content: center !important; /* Keep it centered */ align-items: center !important; /* Align items properly */ gap: 5px !important; /* Small spacing between previews */ max-width: 100% !important; /* Prevent overflow */ text-align: center !important; } /* Ensure images are responsive */ .file-preview-img { max-width: 100px; max-height: 100px; margin-right: 5px; justify-content: center !important; /* Keep it centered */ height: auto; display: block !important; /* Prevent spacing issues */ } /* Small screens: Ensure it wraps properly */ @media (max-width: 600px) { .file-preview-container { justify-content: center !important; } } .file-name-display { vertical-align: middle; margin-left: 5px; } .upload-progress-list { list-style: none; padding: 0; } .upload-progress-item { padding-top: 10px; margin-bottom: 10px; display: flex; align-items: center; flex-wrap: wrap; } .upload-progress-extra { padding-top: 10px; margin-bottom: 10px; display: flex; } .upload-file-name { flex-grow: 1; margin-left: 5px; word-break: break-word; } .upload-progress-div { flex: 0 0 250px; margin-left: 5px; } /* =========================================================== DARK MODE STYLES =========================================================== */ body.dark-mode { background-color: #121212; color: #e0e0e0; } /* Remove/override container background in dark mode */ body.dark-mode .container { /* background-color: #1e1e1e; */ /* comment this out or remove */ background-color: transparent !important; } /* Preserve Bootstrap button colors in dark mode */ body.dark-mode .btn-primary { background-color: #007bff; color: #fff; border-color: #007bff; } body.dark-mode .btn-secondary { background-color: #6c757d; color: #fff; border-color: #6c757d; } body.dark-mode .btn-danger { background-color: #dc3545; color: #fff; border-color: #dc3545; } /* Dark mode for modals */ body.dark-mode .modal .modal-content, body.dark-mode .editor-modal { background-color: #2c2c2c; color: #e0e0e0; border: 1px solid #444; } /* Dark mode for file list/table */ body.dark-mode table { background-color: #2c2c2c; color: #e0e0e0; } body.dark-mode table tr:hover { background-color: #444; } /* Dark mode for uploads */ body.dark-mode #uploadProgressContainer .progress { background-color: #333; } body.dark-mode #uploadProgressContainer .progress-bar { background-color: #007bff; color: #e0e0e0; } /* 🔹 Dark Mode Toggle Styled to Blend into Header */ .dark-mode-toggle { background-color: transparent !important; /* Match header */ border: 1px solid transparent !important; /* Invisible border */ color: white !important; /* White text */ padding: 6px 12px !important; border-radius: 6px !important; /* Rounded edges */ font-size: 0.9em !important; font-weight: 500 !important; cursor: pointer !important; transition: background 0.3s, border 0.3s !important; } /* 🔹 Hover Effect - Subtle Border */ .dark-mode-toggle:hover { background-color: rgba(255, 255, 255, 0.15) !important; /* Slight highlight */ } /* 🔹 Active/Clicked Effect */ .dark-mode-toggle:active { background-color: rgba(255, 255, 255, 0.25) !important; } /* 🔹 Dark Mode Version */ body.dark-mode .dark-mode-toggle { background-color: transparent !important; /* Match dark header */ color: white !important; } /* 🔹 Dark Mode Hover Effect */ body.dark-mode .dark-mode-toggle:hover { background-color: rgba(255, 255, 255, 0.15) !important; } /* 🔹 Remove Circle Effect */ .dark-mode-toggle:focus { outline: none !important; box-shadow: none !important; } /* Default (light mode) styling */ .folder-help-details { margin-top: 2px; font-size: 12px; color: #555; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px; padding: 10px; } .folder-help-summary { cursor: pointer; list-style: none; color: #000; background: #f9f9f9; padding: 2px; display: inline-block; /* or block, up to you */ } .folder-help-icon { vertical-align: middle; color: #d96601; /* the orange color for info icon */ font-size: 20px !important; } .folder-help-list { margin: 0; padding-left: 20px; } /* Dark mode overrides */ body.dark-mode .folder-help-details { color: #ddd; background-color: #2c2c2c; border-color: #444; } body.dark-mode .folder-help-summary { color: #ddd; background: #2c2c2c; } body.dark-mode .folder-help-icon { color: #f6a72c; /* or another color you prefer for the icon in dark mode */ font-size: 20px; } body.dark-mode #searchIcon { background-color: #444; /* dark background */ border: 1px solid #555; /* subtle border */ border-radius: 4px; /* rounded corners */ color: #fff; /* white icon color */ padding: 4px 8px; /* adjust padding as needed */ } body.dark-mode #searchInput { background-color: #333; color: #e0e0e0; border: 1px solid #555; } /* Default (light mode) styling for folderExplanation */ .folder-explanation { margin-top: 5px; padding: 5px; font-size: 12px; color: #555; background-color: solid transparent; border: 1px solid transparent; border-radius: 2px; } /* Dark mode override */ body.dark-mode .folder-explanation { color: #ddd; /* or another light color for text */ background-color: solid transparent; /* or another dark color for the background */ border: 1px solid transparent; /* darker border in dark mode */ } /* Apply dark theme for CodeMirror when dark mode is enabled */ body.dark-mode .CodeMirror { background: #1e1e1e !important; /* Dark background */ color: #ffffff !important; /* White text */ } /* Ensure cursor is visible */ body.dark-mode .CodeMirror-cursor { border-left: 2px solid #ffffff !important; } /* Change line number gutter background */ body.dark-mode .CodeMirror-gutters { background: #252526 !important; border-right: 1px solid #444 !important; } /* Change line number text color */ body.dark-mode .CodeMirror-linenumber { color: #aaaaaa !important; } /* Change text selection background */ body.dark-mode .CodeMirror-selected { background: rgba(255, 255, 255, 0.2) !important; } /* Change matching brackets highlight */ body.dark-mode .CodeMirror-matchingbracket { background-color: rgba(255, 255, 255, 0.1) !important; border-bottom: 1px solid #ffffff !important; }